Freigeben über


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

XML-Daten (SQL Server)