XML-Datentypunterstützung für SQLXML 4.0
Gilt für: SQL Server Azure SQL-Datenbank
Ab SQL Server 2005 (9.x) unterstützt SQL Server XML-typierte Daten mithilfe des XML-Datentyps . Dieses Thema enthält Informationen dazu, wie SQLXML 4.0 Instanzen des XML-Datentyps erkennt und unterstützung für diese implementiert.
Arbeiten mit XML-Datentypen
Weitere Informationen zum Arbeiten mit SQL-Tabellen, die XML-Datentypspalten implementieren, werden die folgenden Beispiele bereitgestellt:
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) |
Vorgehensweise Einfügen von Daten in eine XML-Spalte mit Updategrammen | "Einfügen von Daten in eine XML-Datentypspalte" | Einfügen von Daten mit XML-Updategramms (SQLXML 4.0) |
Massenladen von XML-Daten in eine XML-Spalte | "Massenladen in XML-Datentypspalten" | Beispiele für XML Bulk Load (SQLXML 4.0) |
Richtlinien und Einschränkungen
<xsd:any> kann keiner Spalte zugeordnet werden, einschließlich eines XML-Datentyps . Die Unterstützung in SQLXML für dieses Szenario wird über die sql:overflow-field-Anmerkung 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-Abfrage in den Inhalt von XML-Datentypspalten wird nicht unterstützt.
Die Verwendung einer XML-Datentypspalte in Anmerkungen, bei denen sie nicht unterstützt wird (z . B. sql:relationship und sql:key-fields) oder zulässig, führt zu SQL Server-Fehlern, die nicht von Komponenten der mittleren Ebene abgefangen 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 die Zuordnung von XML-Spalten nicht.
SQLXML 4.0 basiert auf der XML-Analyseunterstützung, die in SQL Server bereitgestellt wird. Eine XML-Spalte kann entweder als typisiertes XML oder nicht typisiertes XML zugeordnet werden. In beiden Fällen überprüft SQLXML 4.0 die XML-Eingabe nicht. Wenn die Eingabe-XML ungültig oder wohlgeformt ist, meldet SQL Server sie an SQLXML und verteilt alle relevanten Fehlerinformationen, die vom Server an den Benutzer zurückgegeben werden.
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 können, um Standardwerte zu liefern und Entitätsverweise durch ihre erweiterten Inhalte 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ändig) gehen verloren, nachdem Daten in den XML-Datentyp konvertiert wurden. Die XML-Daten werden intern als UCS-2 gespeichert. Alle anderen Verarbeitungsanweisungen in der XML-Instanz 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