Einführung in XSD-Schemas mit Anmerkungen (SQLXML 4.0)

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 außerdem die verschiedenen Einschränkungen, die für Daten im Dokument gelten. 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 umschließt das <xsd:schema>-Element das gesamte Schema; alle Elementdeklarationen müssen im <xsd:schema>-Element enthalten sein. Sie können Attribute, die den Namespace, in dem sich das Schema befindet, und die im Schema verwendeten Namespaces definieren, als Eigenschaften des <xsd:schema>-Elements angeben.

Ein gültiges XSD-Schema muss das <xsd:schema>-Element enthalten, das wie folgt definiert wird:

<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 ist von der XML-Schemanamespace-Spezifikation unter http://www.w3.org/2001/XMLSchema abgeleitet.

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.

HinweisHinweis

In Microsoft SQLXML 4.0 unterstützt die XSD-Schemasprache die Anmerkungen, die in der XDR-Schemasprache (XML-Data Reduced) mit Anmerkungen in SQL Server 2000 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 Anmerkungen wird als Zuordnungsschema bezeichnet, das Informationen darüber bereitstellt, wie XML-Daten zum relationalen Datenspeicher zugeordnet werden sollen. 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 mit dem Namespace urn:schemas-microsoft-com:mapping-schema angegeben. Wie im folgenden Beispiel gezeigt, wird der Namespace am einfachsten im <xsd:schema>-Tag angegeben.

<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 Präfix sql zur Angabe des Anmerkungsnamespace und zur Unterscheidung der in diesem Namespace enthaltenen Anmerkungen von den in anderen Namespaces enthaltenen Anmerkungen verwendet.

Beispiel eines XSD-Schemas mit Anmerkungen

Im folgenden Beispiel besteht das XSD-Schema aus einem <Person.Contact>-Element. Das <Employee>-Element verfügt über ein ContactID-Attribut und die untergeordneten Elemente <FirstName> und <LastName>:

<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 mithilfe der sql:relation-Anmerkung der Person.Contact-Tabelle in der Beispieldatenbank AdventureWorks zugeordnet. Die Attribute ConID, FName und LName werden mithilfe der sql:field-Anmerkungen den Spalten ContactID, FirstName und LastName in der Person.Contact-Tabelle 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.

HinweisHinweis

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 Verwenden von SQL Server-Sortierungen.

Andere 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: