XML-Beibehaltungsformat
ADO verwendet die UTF-8-Codierung für den XML-Stream, der gespeichert wird.
Das ADO-XML-Format ist in zwei Abschnitte unterteilt, einen Schemaabschnitt gefolgt vom Datenabschnitt. Nachfolgend sehen Sie eine XML-Beispieldatei für die Tabelle „Shippers“ aus der Northwind-Datenbank. Im Anschluss an das Beispiel werden verschiedene Teile des XML-Codes erläutert.
Bemerkungen
<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>
Das Schema zeigt die Deklarationen von Namespaces, dem Schemaabschnitt und dem Datenabschnitt. Der Schemaabschnitt enthält Definitionen für Zeile, ShipperID, CompanyName und Telefon.
Schemadefinitionen entsprechen der W3C-XML-Datenspezifikation und können vollständig überprüft werden (in Internet Explorer 5 wird die Überprüfung nicht durchgeführt). XML-Daten sind derzeit das einzige unterstützte Schemaformat für die Recordset-Persistenz.
Der Datenabschnitt enthält drei Zeilen, die Informationen zu „Shippers“ enthalten. Bei einem leeren Rowset kann der Datenabschnitt leer sein, aber die Tags <rs:data> müssen vorhanden sein. Ohne Daten könnten Sie die Kurzform der Tags als <rs:data/>schreiben. Jedes Tag mit dem Präfix „rs“ gibt an, dass es im Namespace durch „urn:schemas-microsoft-com:rowset“ definiert ist.