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
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für