Einführung in XDR-Schemas mit Anmerkungen (in SQLXML 4.0 veraltet)
Wichtig |
---|
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). |
Sie können XML-Sichten von relationalen Daten mit XDR-Schemas (XML-Data Reduced) erstellen. Diese Sichten können dann mit XPath-Abfragen abgefragt werden. Dieser Vorgang ähnelt 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 Microsoft SQL Server 2000 wurde die XML-Data Reduced-Sprache (XDR) zuerst eingeführt, um XML-Schemas zu erstellen. Zu diesem Zeitpunkt war XDR flexibel und überwand einige der Einschränkungen von DTDs (Document Type Definitions), die ebenfalls zur Beschreibung der XML-Dokumentstruktur verwendet werden können. Im Gegensatz zu DTDs beschreiben XDR-Schemas die Struktur des Dokuments mit derselben Syntax wie das XML-Dokument. Darüber hinaus besteht in einer DTD der gesamte Dateninhalt aus Zeichendaten. XDR-Sprachschemas ermöglichen es Ihnen, den Datentyp eines Elements oder eines Attributs anzugeben.
In einem XDR-Schema umschließt das <Schema>-Element das gesamte Schema. Sie können Attribute, die den Schemanamen und die Namespaces, in denen sich das Schema befindet, definieren, als Eigenschaften des <Schema>-Elements beschreiben. In der XDR-Sprache müssen alle Elementdeklarationen im <Schema>-Element enthalten sein.
Das minimale XDR-Schema ist:
<?xml version="1.0" ?>
<Schema xmlns="urn:schemas-microsoft-com:xml-data">
...
</Schema>
Das <Schema>-Element wird vom xml-data-Namespace (urn:schemas-microsoft-com:xml-data) abgeleitet.
Hinweis |
---|
In dieser Dokumentation wird davon ausgegangen, dass Sie mit der XML-Datensprache vertraut sind. |
Anmerkungen zum XDR-Schema
Sie können ein XDR-Schema mit Anmerkungen verwenden, welche die Zuordnung zu einer Datenbank beschreiben, die Datenbank abfragen und die Ergebnisse in Form eines XML-Dokuments zurückgeben. In SQL Server 2000 wurden erstmalig bestimmte Anmerkungen eingeführt, mit deren Hilfe Sie das XDR-Schema SQL-Datenbanktabellen und -spalten zuordnen konnten. XPath-Abfragen können für die XML-Sicht, die durch das XDR-Schema erstellt wird, angegeben werden, um die Datenbank abzufragen und die Ergebnisse als XML-Dokument zu erhalten.
Dies ist eine Alternative zum komplexeren Prozess des Schreibens einer SQL-Abfrage, die den Modus FOR XML EXPLICIT zum Beschreiben der XML-Dokumentstruktur als Teil der Abfrage verwendet. Um jedoch die meisten Einschränkungen von XPath-Abfragen für Zuordnungsschemas zu umgehen, verwenden Sie SQL-Abfragen mit dem FOR XML EXPLICIT-Modus, um Ergebnisse in Form eines XML-Dokuments zurückzugeben.
Wenn Sie über öffentliche XDR-Schemas verfügen (z. B. Microsoft BizTalk-Schemas), haben Sie folgende Möglichkeiten:
Schreiben Sie die Abfrage im FOR XML EXPLICIT-Modus so, dass die erzeugten Daten für das öffentliche XDR-Schema gültig sind. Das Schreiben von FOR XML EXPLICIT-Abfragen kann jedoch aufwendig sein.
Erstellen Sie eine private Kopie des öffentlichen XDR-Schemas. Fügen Sie dann Anmerkungen dieser privaten Kopie hinzu, und generieren Sie so ein Zuordnungsschema. Sie können XPath-Abfragen für das Zuordnungsschema angeben. Das Ergebnis der Abfrage sind die Daten im Namespace des öffentlichen Schemas. Das Erstellen von Schemas mit Anmerkungen und das Festlegen von XPath-Abfragen ist sehr viel einfacher als das Schreiben komplexer FOR XML EXPLICIT-Abfragen. Der Vorgang wird in der Abbildung veranschaulicht.
Zuordnungsschema
Im Kontext relationaler Datenbanken ist es nützlich, das willkürliche XDR-Schema einem relationalen Datenspeicher zuzuordnen. Dies lässt sich beispielsweise erreichen, indem das XDR-Schema mit Anmerkungen versehen wird. Ein XDR-Schema mit Anmerkungen wird als mapping schema bezeichnet, das Informationen darüber bereitstellt, wie XML-Daten dem relationalen Datenspeicher zugeordnet werden sollen. Ein Zuordnungsschema ist im Endeffekt eine XML-Sicht der relationalen Daten. Diese Zuordnungen können verwendet werden, um relationale Daten als XML-Dokument abzurufen.
In SQL Server 2000 wurde verschieden Anmerkungen eingeführt, die im XDR-Schema zum Zuordnen der Elemente und Attribute zu den Tabellen und Spalten der Datenbank verwendet werden können. Sie können Abfragen für die Zuordnungsschemas (XML-Sichten) mit XPath (XML-Pfad) angeben. Das Zuordnungsschema beschreibt die resultierende Dokumentstruktur.
Namespace für Anmerkungen
In einem XDR-Schema werden die Anmerkungen mit diesem Namespace angegeben: urn:schemas-microsoft-com:xml-sql.
Wie im folgenden Beispiel gezeigt, wird der Namespace am einfachsten im <Schema>-Tag angegeben. Die Anmerkungen müssen mit dem urn:schemas-microsoft-com:xml-sql-Namespace qualifiziert werden.
<?xml version="1.0" ?>
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
xmlns:sql="urn:schemas-microsoft-com:xml-sql"
>
...........
</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.
Namespace für Datentypen
XDR-Schemas ermöglichen es Ihnen, den Datentyp eines Elements oder eines Attributs anzugeben. Die Datentypen werden mit diesem Namespace angegeben: urn:schemas-microsoft-com:datatypes.
Dies ist das minimale XDR-Schema mit den Namespacedeklarationen:
<?xml version="1.0" ?>
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
xmlns:sql="urn:schemas-microsoft-com:xml-sql"
xmlns:dt="urn:schemas-microsoft-com:datatypes">
...
</Schema>
Es kann ein beliebiges Namespacepräfix verwendet werden. In dieser Dokumentation wird das Präfix dt zur Angabe des Datentypnamespace und zur Unterscheidung der in diesem Namespace enthaltenen Anmerkungen von den in anderen Namespaces enthaltenen Anmerkungen verwendet.
Das <Schema>-Element wird vom xml-data-Namespace (urn:schemas-microsoft-com:xml-data) abgeleitet.
Beispiel eines XDR-Schemas
In diesem Beispiel wird gezeigt, wie dem XDR-Schema Anmerkungen hinzugefügt werden. Dieses XDR-Schema besteht aus einem <Contacts>-Element und den Attributen CID, FName und LName.
<?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="Contacts" >
<AttributeType name="CID" />
<AttributeType name="FName" />
<AttributeType name="LName" />
<attribute type="CID" />
<attribute type="FName" />
<attribute type="LName" />
</ElementType>
</Schema>
Diesem XDR-Schema werden nun Anmerkungen hinzugefügt, um die darin enthaltenen Elemente und Attribute den Namen von SQL-Tabellen und -spalten in der AdventureWorks2008R2-Beispieldatenbank zuzuordnen. Dies ist das XDR-Schema mit Anmerkungen:
<?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="Contacts" sql:relation="Person.Person" >
<AttributeType name="CID" />
<AttributeType name="FName" />
<AttributeType name="LName" />
<attribute type="CID" sql:field="BusinessEntityID" />
<attribute type="FName" sql:field="FirstName" />
<attribute type="LName" sql:field="LastName" />
</ElementType>
</Schema>
Im Zuordnungsschema wird das <Contacts>-Element unter Verwendung der sql:relation-Anmerkung der Person.Contact-Tabelle zugeordnet. Die Attribute CID, FName und LName werden mithilfe der sql:field-Anmerkungen den Spalten BusinessEntityID, FirstName und LastName in der Person.Person-Tabelle zugeordnet.
Dieses XDR-Schema mit Anmerkungen stellt die XML-Sicht der relationalen Daten bereit. Diese XML-Sicht kann mit der XPath-Sprache (XML-Pfad) abgefragt werden. Die Abfrage gibt als Ergebnis ein XML-Dokument zurück, kein Rowset, das von SQL-Abfragen zurückgegeben wird.
Hinweis |
---|
Im Zuordnungsschema wird bei angegebenen relationalen Werten, z. B. Tabellenname und Spaltenname, die Groß-/Kleinschreibung beachtet. |