Formato di persistenza XML
ADO usa la codifica UTF-8 per il flusso XML di persistenza.
Il formato ADO XML è suddiviso in due sezioni, una sezione dello schema seguita dalla sezione dei dati. Di seguito è riportato un file XML di esempio per la tabella Shippers del database Northwind. Dopo l’esempio vengono illustrate le varie parti del codice XML.
Osservazioni:
<xml xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882"
xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882"
xmlns:rs="urn:schemas-microsoft-com:rowset"
xmlns:z="#RowsetSchema">
<s:Schema id="RowsetSchema">
<s:ElementType name="row" content="eltOnly" rs:updatable="true">
<s:AttributeType name="ShipperID" rs:number="1"
rs:basetable="shippers" rs:basecolumn="ShipperID"
rs:keycolumn="true">
<s:datatype dt:type="int" dt:maxLength="4" rs:precision="10"
rs:fixedlength="true" rs:maybenull="false"/>
</s:AttributeType>
<s:AttributeType name="CompanyName" rs:number="2"
rs:nullable="true" rs:write="true" rs:basetable="shippers"
rs:basecolumn="CompanyName">
<s:datatype dt:type="string" dt:maxLength="40" />
</s:AttributeType>
<s:AttributeType name="Phone" rs:number="3" rs:nullable="true"
rs:write="true" rs:basetable="shippers"
rs:basecolumn="Phone">
<s:datatype dt:type="string" dt:maxLength="24"/>
</s:AttributeType>
<s:extends type="rs:rowbase"/>
</s:ElementType>
</s:Schema>
<rs:data>
<z:row ShipperID="1" CompanyName="Speedy Express"
Phone="(503) 555-9831"/>
<z:row ShipperID="2" CompanyName="United Package"
Phone="(503) 555-3199"/>
<z:row ShipperID="3" CompanyName="Federal Shipping"
Phone="(503) 555-9931"/>
</rs:data>
</xml>
Lo schema mostra le dichiarazioni degli spazi dei nomi, la sezione dello schema e la sezione dei dati. La sezione dello schema contiene le definizioni per riga, ShipperID, CompanyName e Phone.
Le definizioni dello schema sono conformi alla specifica W3C XML-Data e possono essere convalidate completamente (anche se la convalida non verrà eseguita in Internet Explorer 5). XML-Data è attualmente l'unico formato di schema supportato per la persistenza di Recordset.
La sezione dei dati contiene tre righe contenenti informazioni sugli spedizionieri. Per un set di righe vuoto, la sezione dei dati può essere vuota, ma i tag <rs:data> devono essere presenti. Senza dati, è possibile scrivere la sintassi abbreviata del tag semplicemente come <rs:data/>. Qualsiasi tag preceduto da "rs" indica che si trova nello spazio dei nomi definito da urn:schemas-microsoft-com:rowset.