XML-Datentypunterstützung für SQLXML 4.0

Gilt für:SQL ServerAzure SQL-Datenbank

Ab SQL Server 2005 (9.x) unterstützt SQL Server XML-typisierte Daten mithilfe des xml-Datentyps. Dieses Thema enthält Informationen dazu, wie SQLXML 4.0 Instanzen des xml-Datentyps erkennt und die Unterstützung dafür implementiert.

Arbeiten mit XML-Datentypen

Weitere Informationen zum Arbeiten mit SQL-Tabellen, die xml-Datentypspalten implementieren, finden Sie in den folgenden Beispielen:

Aufgabe Beispiel Thema
Zuordnen und Einschließen einer XML-Spalte in einer XML-Ansicht "Zuordnen eines XML-Elements zu einer XML-Datentypspalte" Standardzuordnung von XSD-Elementen und -Attributen zu Tabellen und Spalten (SQLXML 4.0)
Einfügen von Daten in eine XML-Spalte mit Updategrams "Einfügen von Daten in eine XML-Datentypspalte" Einfügen von Daten mit XML-Updategrams (SQLXML 4.0)
Massenladen von XML-Daten in eine XML-Spalte "Massenladen in XML-Datentypspalten" Beispiele für XML-Massenladen (SQLXML 4.0)

Richtlinien und Einschränkungen

  • <xsd:any> kann keiner Spalte einschließlich eines xml-Datentyps zugeordnet werden. Die Unterstützung in SQLXML für dieses Szenario wird über die Anmerkung sql:overflow-field bereitgestellt. Eine weitere Problemumgehung besteht darin, ein XML-Datentypfeld als Element von xsd:anyType zuzuordnen. Diese Problemumgehung wird im Beispiel "Zuordnen eines XML-Elements zu einer XML-Datentypspalte" gezeigt, auf das in der oben stehenden Tabelle verwiesen wird.

  • XPath-Abfragen in den Inhalt von XML-Datentypspalten werden nicht unterstützt.

  • Die Verwendung einer XML-Datentypspalte in Anmerkungen, in denen sie nicht unterstützt wird (z. B. sql:relationship und sql:key-fields), führt zu SQL Server Fehlern, die nicht von Komponenten der mittleren Ebene erfasst werden, die SQLXML 4.0 implementieren. Der Grund dafür ist, dass SQLXML keine SQL-Typinformationen erfordert. Dieses Verhalten von SQLXML ist dem für andere Datentypen ähnlich, z. B. BLOB und binäre Typen.

  • Die Zuordnung von XML-Spalten wird nur für XSD-Schemas unterstützt. XDR-Schemas unterstützen keine Xml-Zuordnungsspalten .

  • SQLXML 4.0 basiert auf der XML-Analyseunterstützung, die in SQL Server bereitgestellt wird. Eine XML-Spalte kann entweder als typisiertes XML oder als nicht typisiertes XML zugeordnet werden. In beiden Fällen überprüft SQLXML 4.0 die XML-Eingabe nicht. Wenn eingabe-XML nicht gültig oder wohlgeformt ist, meldet SQL Server sie an SQLXML und verteilt alle relevanten Fehlerinformationen, die vom Server zurückgegeben werden, an den Benutzer.

  • SQLXML 4.0 basiert auf der eingeschränkten Unterstützung für DTDs, die in SQL Server bereitgestellt werden. SQL Server ermöglicht eine interne DTD in xml-Datentypdaten, die verwendet werden kann, um Standardwerte anzugeben und Entitätsverweise durch ihren erweiterten Inhalt zu ersetzen. SQLXML übergibt die XML-Daten unverändert an den Server (einschließlich der internen DTD). Mithilfe von Drittanbieter-Tools können Sie DTDs in XML-Schemadokumente (XSD) konvertieren und die Daten mit XML-Inlineschemas in die Datenbank laden.

  • SQLXML 4.0 behält keine XML-Deklarationsverarbeitungsanweisungen (z. B. ) basierend auf dem Verhalten von SQL Server bei. Stattdessen wird die XML-Deklaration als Direktive für den SQL Server XML-Parser behandelt, und ihre Attribute (Version, Codierung und Eigenständigkeit) gehen verloren, nachdem Daten in den xml-Datentyp konvertiert wurden. Die XML-Daten werden intern als UCS-2 gespeichert. Alle anderen Verarbeitungsanweisungen im XML-instance bleiben erhalten. Sie sind in der xml-Spalte zulässig und können von SQLXML unterstützt werden.

Weitere Informationen

XML-Daten (SQL Server)