Freigeben über


Standardzuordnung von XDR-Elementen und -Attributen zu Tabellen und Spalten

Wichtiger HinweisWichtig

Dieses Thema ist als Referenz für ältere Anwendungen enthalten. Für diese Funktion wird künftig keine Entwicklungsarbeit mehr geleistet. Vermeiden Sie daher das Verwenden dieser Funktion bei neuen Entwicklungsarbeiten. Verwenden Sie stattdessen XSD-Schemas mit Anmerkungen zum Erstellen von XML-Sichten. Weitere Informationen finden Sie unter Einführung in XSD-Schemas mit Anmerkungen (SQLXML 4.0). Sie können vorhandene XDR-Schemas mit Anmerkungen in XSD-Schemas konvertieren. Weitere Informationen finden Sie unter Konvertieren von XDR-Schemas mit Anmerkungen in gleichbedeutende XSD-Schemas (SQLXML 4.0).

In einem XDR-Schema mit Anmerkungen wird ein Element standardmäßig der gleichnamigen Tabelle bzw. Sicht zugeordnet und ein Attribut wird der gleichnamigen Spalte zugeordnet.

Sie können die nicht komplexen untergeordneten Elemente im Schema den Datenbankspalten zuordnen. Um ein Element einer Spalte in der Datenbank zuzuordnen, wird das content-Attribut für das entsprechende Element mit dem textOnly-Wert angegeben. Wenn content=textOnly beim Zuordnen eines Elements zu einer Datenbankspalte nicht angegeben wird, muss die sql:field-Anmerkung explizit angegeben werden, um das <Element> einer Datenbankspalte zuzuordnen. Weitere Informationen finden Sie unter Explizite Zuordnung von XDR-Elementen und -Attributen zu Tabellen und Spalten.

Beispiele

Es müssen bestimmte Anforderungen erfüllt sein, damit aus den folgenden Beispielen funktionstüchtige Beispiele erstellt werden können. Weitere Informationen finden Sie unter Anforderungen zum Ausführen von SQLXML-Beispielen.

A. Angeben der Standardzuordnung

In diesem Beispiel wird das <Person.Person>-Element der Person.Person-Tabelle in der AdventureWorks2008R2-Datenbank zugeordnet, und alle Attribute werden den gleichnamigen Spalten in der Person.Person-Tabelle zugeordnet. In diesem XDR-Schema werden keine Anmerkungen angegeben.

<?xml version="1.0" ?>
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
        xmlns:dt="urn:schemas-microsoft-com:datatypes"
        xmlns:sql="urn:schemas-microsoft-com:xml-sql">

<ElementType name="Person.Person" >
    <AttributeType name="BusinessEntityID" />
    <AttributeType name="FirstName" />
    <AttributeType name="LastName" />

    <attribute type="BusinessEntityID" />
    <attribute type="FirstName" />
    <attribute type="LastName" />
</ElementType>
</Schema>

So testen Sie eine XPath-Beispielabfrage mit dem Schema

  1. Kopieren Sie den oben stehenden Schemacode, und fügen Sie ihn in eine Textdatei ein. Speichern Sie die Datei unter dem Dateinamen DefaultXdr.xml.

  2. Kopieren Sie die folgende Vorlage, und fügen Sie sie in eine Textdatei ein. Speichern Sie die Datei unter dem Namen DefaultXdrT.xml im gleichen Verzeichnis, in dem Sie DefaultXdr.xml gespeichert haben.

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
        <sql:xpath-query mapping-schema="DefaultXdr.xml">
            /Person.Person[@BusinessEntityID &lt; 3]
        </sql:xpath-query>
    </ROOT>
    

    Der für das Zuordnungsschema (DefaultXdr.xml) angegebene Verzeichnispfad bezieht sich auf das Verzeichnis, in dem die Vorlage gespeichert wird. Es kann auch ein absoluter Pfad angegeben werden. Beispiel:

    mapping-schema="C:\MyDir\DefaultXdr.xml"
    
  3. Erstellen und verwenden Sie das SQLXML 4.0-Testskript (Sqlxml4test.vbs), um die Vorlage auszuführen.

    Weitere Informationen finden Sie unter Verwenden von ADO zum Ausführen von SQLXML 4.0-Abfragen.

Im Folgenden wird das Resultset aufgeführt:

<?xml version="1.0" encoding="UTF-8" ?>
<ROOT>
  <Person.Person BusinessEntityID="1" FirstName="Gustavo" LastName="Achong"/>
  <Person.Person BusinessEntityID="2" FirstName="Catherine" LastName="Abel">
</ROOT>

B. Zuordnen eines XML-<Elements> zu einer Datenbankspalte

Standardmäßig wird ein XML-Element einer Datenbanktabelle und ein Attribut einer Datenbankspalte zugeordnet. Um ein Element einer Datenbankspalte zuzuordnen, wird das content-Attribut mit dem textOnly-Wert angegeben.

Dieses XDR-Schema besteht aus dem gleichen <Person.Person>-Element wie das vorherige Beispiel. Die SQL-Felder (BusinessEntityID, FirstName und LastName) sind allerdings statt Attributen untergeordneten Elementen zugeordnet.

<?xml version="1.0" ?>
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
        xmlns:dt="urn:schemas-microsoft-com:datatypes"
        xmlns:sql="urn:schemas-microsoft-com:xml-sql">

<ElementType name="BusinessEntityID" content="textOnly" />
<ElementType name="FirstName" content="textOnly" />
<ElementType name="LastName"  content="textOnly" />

<ElementType name="Person.Person" >
    <element type="BusinessEntityID" />
    <element type="FirstName" />
    <element type="LastName"  />
</ElementType>
</Schema>

Standardmäßig wird das <Person.Person>-Element im XDR-Schema der Person.Person-Tabelle in der AdventureWorks2008R2-Datenbank zugeordnet. Das content-Attribut wird für die untergeordneten Elemente <FirstName> und <LastName> angegeben. Daher werden diese untergeordneten Elemente den gleichnamigen Spalten in der Person.Person-Tabelle zugeordnet.

HinweisHinweis

Gemischter Inhalt (Elemente sowohl mit Text als auch mit untergeordneten Elementen) wird nicht unterstützt.

So testen Sie eine XPath-Beispielabfrage mit dem Schema

  1. Kopieren Sie den oben stehenden Schemacode, und fügen Sie ihn in eine Textdatei ein. Speichern Sie die Datei unter dem Dateinamen ElementXdr.xml.

  2. Kopieren Sie die folgende Vorlage, und fügen Sie sie in eine Textdatei ein. Speichern Sie die Datei unter dem Namen ElementXdrT.xml im gleichen Verzeichnis, in dem Sie ElementXdr.xml gespeichert haben.

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
        <sql:xpath-query mapping-schema="ElementXdr.xml">
            /Person.Person[BusinessEntityID &lt; 3]
        </sql:xpath-query>
    </ROOT>
    

    Der für das Zuordnungsschema (ElementXdr.xml) angegebene Verzeichnispfad bezieht sich auf das Verzeichnis, in dem die Vorlage gespeichert wird. Es kann auch ein absoluter Pfad angegeben werden. Beispiel:

    mapping-schema="C:\MyDir\ElementXdr.xml"
    
  3. Erstellen und verwenden Sie das SQLXML 4.0-Testskript (Sqlxml4test.vbs), um die Vorlage auszuführen.

    Weitere Informationen finden Sie unter Verwenden von ADO zum Ausführen von SQLXML 4.0-Abfragen.

Im Folgenden wird das Resultset aufgeführt:

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
  <Person.Person>
    <BusinessEntityID>1</BusinessEntityID> 
    <FirstName>Gustavo</FirstName> 
    <LastName>Achong</LastName> 
  </Person.Person>
  <Person.Person>
    <BusinessEntityID>2</BusinessEntityID> 
    <FirstName>Catherine</FirstName> 
    <LastName>Abel</LastName> 
  </Person.Person>
</ROOT>