Einführung in XSD-Schemas mit Anmerkungen (SQLXML 4.0)
Gilt für: SQL Server Azure SQL-Datenbank
Sie können mit der XML-Schemadefinitionssprache (XSD) XML-Sichten von relationalen Daten erstellen. Diese Sichten können dann mit XPath (XML Path)-Abfragen abgefragt werden. Dieser Vorgang gleicht prinzipiell dem Erstellen von Sichten mit CREATE VIEW-Anweisungen und dem Definieren von SQL-Abfragen für diese Sichten.
Ein XML-Schema beschreibt die Struktur eines XML-Dokuments und beschreibt auch die verschiedenen Einschränkungen für die Daten im Dokument. Wenn XQuery-Abfragen mit dem XSD-Schema angegeben werden, wird die Struktur des resultierenden XML-Dokuments durch das Schema bestimmt, mit dem die Abfrage ausgeführt wird.
In einem XSD-Schema schließt das xsd:schema-Element> das gesamte Schema ein. Alle Elementdeklarationen müssen innerhalb des< xsd:schema-Elements> enthalten sein.< Sie können Attribute beschreiben, die den Namespace definieren, in dem sich das Schema befindet, und die Namespaces, die im Schema als Eigenschaften des <xsd:schema-Elements> verwendet werden.
Ein gültiges XSD-Schema muss das xsd:schema-Element> enthalten, das <wie folgt definiert ist:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<!-- additional schema definitions here -->
</xsd:schema>
Das <xsd:schema-Element> wird von der XML-Schemanamespacespezifikation unter http://www.w3.org/2001/XMLSchema.
Anmerkungen zum XSD-Schema
Sie können ein XSD-Schema mit Anmerkungen angeben, welche die Zuordnung zu einer Datenbank beschreiben, die Datenbank abfragen und die Ergebnisse in Form eines XML-Dokuments zurückgeben. Anmerkungen werden bereitgestellt, um ein XSD-Schema Datenbanktabellen und -spalten zuzuordnen. XPath-Abfragen können für die XML-Sicht, die durch das XSD-Schema erstellt wird, angegeben werden, um die Datenbank abzufragen und die Ergebnisse als XML-Dokument zu erhalten.
Hinweis
In Microsoft SQLXML 4.0 unterstützt die XSD-Schemasprache die Anmerkungen, die in sql Server 2000 (8.x) mit kommentierter XML-Data Reduced -Schemasprache (XDR) eingeführt wurden. XDR-Anmerkungen sind in SQLXML 4.0 veraltet.
Im Kontext relationaler Datenbanken ist es nützlich, das beliebige XSD-Schema einem relationalen Datenspeicher zuzuordnen. Dies lässt sich beispielsweise erreichen, indem das XSD-Schema mit Anmerkungen versehen wird. Ein XSD-Schema mit den Anmerkungen wird als Zuordnungsschema bezeichnet, das Informationen zur Zuordnung von XML-Daten zum relationalen Speicher bereitstellt. Ein Zuordnungsschema ist im Grunde eine XML-Sicht der relationalen Daten. Diese Zuordnungen können verwendet werden, um relationale Daten als XML-Dokument abzurufen.
Namespace für Anmerkungen
In einem XSD-Schema werden Anmerkungen mithilfe des Namespace urn:schemas-microsoft-com:mapping-schema angegeben. Wie im folgenden Beispiel gezeigt, besteht die einfachste Möglichkeit zum Angeben des Namespace darin, ihn im <xsd:schema-Tag> anzugeben.
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
...
</xsd:schema>
Es kann ein beliebiges Namespacepräfix verwendet werden. In dieser Dokumentation wird das SQL-Präfix verwendet, um den Anmerkungsnamespace zu kennzeichnen und Anmerkungen in diesem Namespace von denen in anderen Namespaces zu unterscheiden.
Beispiel eines XSD-Schemas mit Anmerkungen
Im folgenden Beispiel besteht das XSD-Schema aus einem Person.Contact-Element>.< Das Employee-Element> weist ein ContactID-Attribut und <untergeordnete Elemente "FirstName" und< "LastName>>" auf:<
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="Contact" >
<xsd:complexType>
<xsd:sequence>
<xsd:element name="FName"
type="xsd:string" />
<xsd:element name="LName"
type="xsd:string" />
</xsd:sequence>
<xsd:attribute name="ConID" type="xsd:integer" />
</xsd:complexType>
</xsd:element>
</xsd:schema>
Diesem XSD-Schema werden Anmerkungen hinzugefügt, um die darin enthaltenen Elemente und Attribute den entsprechenden Datenbanktabellen und –spalten zuzuordnen.
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<xsd:element name="Contact" sql:relation="Person.Contact" >
<xsd:complexType>
<xsd:sequence>
<xsd:element name="FName"
sql:field="FirstName"
type="xsd:string" />
<xsd:element name="LName"
sql:field="LastName"
type="xsd:string" />
</xsd:sequence>
<xsd:attribute name="ConID"
sql:field="ContactID"
type="xsd:integer" />
</xsd:complexType>
</xsd:element>
</xsd:schema>
Im Zuordnungsschema wird das <Contact-Element> der Tabelle "Person.Contact" in der Beispieldatenbank AdventureWorks2022
mithilfe der sql:relation-Anmerkung zugeordnet. Die Attribute ConID, FName und LName werden den Spalten "ContactID", "FirstName" und "LastName" in der Tabelle "Person.Contact" mithilfe der sql:field-Anmerkungen zugeordnet.
Dieses XSD-Schema mit Anmerkungen stellt die XML-Sicht der relationalen Daten bereit. Diese XML-Sicht kann mit der XPath-Sprache abgefragt werden. Xpath-Abfragen geben als Ergebnis ein XML-Dokument zurück statt eines Rowsets, das von SQL-Abfragen zurückgegeben wird.
Hinweis
Ob im Zuordnungsschema bei relationalen Werten, z. B. Tabellenname und Spaltenname, zwischen Groß-und Kleinschreibung unterschieden wird, hängt davon ab, ob in den Sortiereinstellungen auf dem SQL Server die Groß-/Kleinschreibung beachtet wird. Weitere Informationen finden Sie unter Sortierungs- und Unicode-Support.
Weitere Ressourcen
Weitere Informationen zu XSD (XML Schema Definition Language), XPath (XML Path Language) und XSLT (Extensible Stylesheet Language Transformations) finden Sie auf den folgenden Websites:
XML-Schemateil 0: Primer, W3C-Empfehlung (https://www.w3.org/TR/xmlschema-0/)
XML-Schemateil 1: Strukturen, W3C-Empfehlung (https://www.w3.org/TR/xmlschema-1/)
XML-Schemateil 2:Datentypen, W3C-Empfehlung (https://www.w3.org/TR/xmlschema-2/)
XML-Pfadsprache (XPath) (https://www.w3.org/TR/xpath)
XSL-Transformationen (XSLT) (https://www.w3.org/TR/xslt)
Weitere Informationen
Überlegungen zur Sicherheit von Schemas mit Anmerkungen (SQLXML 4.0)
XDR-Schemas mit Anmerkungen (in SQLXML 4.0 veraltet)