Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Standardmäßig ist ein Element des komplexen Typs in einem XSD-Kommentierten Schema der Tabelle (Ansicht) mit demselben Namen in der angegebenen Datenbank zugeordnet, und ein Element oder Attribut des einfachen Typs wird der Spalte mit demselben Namen in der Tabelle zugeordnet.
Beispiele
Es müssen bestimmte Anforderungen erfüllt sein, damit aus den folgenden Beispielen funktionierende Beispiele erstellt werden können. Weitere Informationen finden Sie unter Anforderungen für das Ausführen von SQLXML-Beispielen.
Ein. Angeben der Standardzuordnung
In diesem Beispiel werden keine Anmerkungen im XSD-Schema angegeben. Das <Element Person.Contact> ist vom komplexen Typ und wird daher standardmäßig der Tabelle "Person.Contact" in der AdventureWorks-Datenbank zugeordnet. Alle Attribute (ContactID, FirstName, LastName) des <Elements "Person.Contact> " sind vom einfachen Typ und standardmäßig spalten mit denselben Namen in der Tabelle "Person.Contact" zugeordnet.
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<xsd:element name="Person.Contact" >
<xsd:complexType>
<xsd:attribute name="ContactID" type="xsd:string" />
<xsd:attribute name="FirstName" type="xsd:string" />
<xsd:attribute name="LastName" type="xsd:string" />
</xsd:complexType>
</xsd:element>
</xsd:schema>
So testen Sie eine XPath-Beispielabfrage für das Schema
Kopieren Sie den oben stehenden Schemacode, und fügen Sie ihn in eine Textdatei ein. Speichern Sie die Datei als MySchema.xml.
Kopieren Sie die folgende Vorlage, und fügen Sie sie in eine Textdatei ein. Speichern Sie die Datei als MySchemaT.xml im selben Verzeichnis, in dem Sie MySchema.xmlgespeichert haben.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="MySchema.xml"> /Person.Contact </sql:xpath-query> </ROOT>Der für das Zuordnungsschema (MySchema.xml) angegebene Verzeichnispfad ist relativ zum Verzeichnis, in dem die Vorlage gespeichert wird. Es kann auch ein absoluter Pfad angegeben werden. Beispiel:
mapping-schema="C:\SqlXmlTest\MySchema.xml"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 ein Teil des Resultsets aufgeführt:
<?xml version="1.0" encoding="UTF-8" ?>
<ROOT>
<Person.Contact ContactID="1" FirstName="Gustavo" LastName="Achong"/>
<Person.Contact ContactID="2" FirstName="Catherine" LastName="Abel"/>
...
</ROOT>
B. Zuordnen eines XML-Elements zu einer Datenbankspalte
In diesem Beispiel findet auch die Standardzuordnung statt, da keine Anmerkungen verwendet werden. Das <Element Person.Contact> weist einen komplexen Typ auf und ordnet der Tabelle mit demselben Namen in der Datenbank zu. Die Elemente <"FirstName" und "LastName>>" und< "EmployeeID" sind vom einfachen Typ und weisen daher die Spalten mit denselben Namen zu. Der einzige Unterschied zwischen diesem und dem vorherigen Beispiel ist, dass Elemente zum Zuordnen der Felder "Vorname" und "Nachname" verwendet werden.
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<xsd:element name="Person.Contact">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="FirstName" type="xsd:string" />
<xsd:element name="LastName" type="xsd:string" />
</xsd:sequence>
<xsd:attribute name="ContactID" type="xsd:integer" />
</xsd:complexType>
</xsd:element>
</xsd:schema>
So testen Sie eine XPath-Beispielabfrage für das Schema
Kopieren Sie den oben stehenden Schemacode, und fügen Sie ihn in eine Textdatei ein. Speichern Sie die Datei als MySchemaElements.xml.
Erstellen Sie die folgende Vorlage (MySchemaElementsT.xml), und speichern Sie sie im gleichen Verzeichnis, das im vorherigen Schritt verwendet wird.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="MySchemaElements.xml"> /Person.Contact </sql:xpath-query> </ROOT>Der für das Zuordnungsschema angegebene Verzeichnispfad ist relativ zum Verzeichnis, in dem die Vorlage gespeichert wird. Es kann auch ein absoluter Pfad angegeben werden. Beispiel:
mapping-schema="C:\SqlXmlTest\MySchemaElements.xml"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 ein Teil des Resultsets aufgeführt:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<Person.Contact ContactID="1">
<FirstName>Gustavo</FirstName>
<LastName>Achong</LastName>
</Person.Contact>
...
</ROOT>
C. Zuordnen eines XML-Elements zu einer XML-Datentypspalte
In diesem Beispiel findet auch die Standardzuordnung statt, da keine Anmerkungen verwendet werden. Das <Production.ProductModel-Element> ist vom komplexen Typ und wird der Tabelle mit demselben Namen in der Datenbank zugeordnet. Das ProductModelID-Attribut ist vom einfachen Typ und daher den Spalten mit denselben Namen zugeordnet. Der einzige Unterschied zwischen diesem und den vorherigen Beispielen besteht darin, dass das <Instructions-Element> einer Spalte zugeordnet ist, die den Datentyp mithilfe des xmlxsd:anyType Typs verwendet.
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<xsd:element name="Production.ProductModel">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Instructions" type="xsd:anyType" />
</xsd:sequence>
<xsd:attribute name="ProductModelID" type="xsd:integer" />
</xsd:complexType>
</xsd:element>
</xsd:schema>
Der xml Datentyp wurde in SQL Server 2005 eingeführt.
So testen Sie eine XPath-Beispielabfrage für das Schema
Kopieren Sie den oben stehenden Schemacode, und fügen Sie ihn in eine Textdatei ein. Speichern Sie die Datei als MySchemaXmlAnyElements.xml.
Erstellen Sie die folgende Vorlage (MySchemaXmlAnyElementsT.xml), und speichern Sie sie im gleichen Verzeichnis, das im vorherigen Schritt verwendet wird.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="MySchemaXmlAnyElements.xml"> /Production.ProductModel[@ProductModelID=7] </sql:xpath-query> </ROOT>Der für das Zuordnungsschema angegebene Verzeichnispfad ist relativ zum Verzeichnis, in dem die Vorlage gespeichert wird. Es kann auch ein absoluter Pfad angegeben werden. Beispiel:
mapping-schema="C:\SqlXmlTest\MySchemaXmlAnyElements.xml"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 ein Teil des Resultsets aufgeführt:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<Production.ProductModel ProductModelID="7">
<Instructions>
<root xmlns="http:
//schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstru
ctions">
...
</root>
<Instructions>
</Production.ProductModel>
</ROOT>
Siehe auch
Anmerkungen zur Schemasicherheit (SQLXML 4.0)
XML-Daten (SQL Server)
XML-Datentypunterstützung in SQLXML 4.0