Richtlinien und Einschränkungen für die Verwendung von XML-Schemaauflistungen auf dem Server

Die Überprüfung mit der XML-Schemadefinitionssprache (XSD) weist einige Einschränkungen für SQL-Spalten auf, die den xml-Datentyp verwenden. Die folgende Tabelle liefert Einzelheiten zu diesen Einschränkungen und stellt außerdem Richtlinien zum Ändern des XSD-Schemas für die Verwendung mit SQL Server bereit. Die Themen in diesem Abschnitt enthalten zusätzliche Informationen über bestimmte Einschränkungen sowie eine Anleitung zur Arbeit mit ihnen.

Element

Einschränkung

minOccurs und maxOccurs

Die Werte für minOccurs- und maxOccurs-Attribute müssen in ganze 4-Byte-Zahlen passen. Schemas, die diese Bedingung nicht erfüllen, werden vom Server zurückgewiesen.

<xsd:choice>

SQL Server weist Schemas zurück, die einen <xsd:choice>-Partikel ohne untergeordnete Elemente besitzen, es sei denn, der Partikel ist mit einem minOccurs-Attributwert von Null definiert.

<xsd:include>

Zurzeit unterstützt SQL Server dieses Element nicht. XML-Schemas, die dieses Element enthalten, werden vom Server zurückgewiesen.

Als Lösung können XML-Schemas, die die <xsd:include>-Direktive enthalten, so vorverarbeitet werden, dass die Inhalte aller enthaltenen Schemas kopiert und in einem einzigen Schema für den Upload auf den Server zusammengeführt werden. Weitere Informationen finden Sie unter Präprozessortool für XML-Schemas.

<xsd:key>, <xsd:keyref> und <xsd:unique>

Zurzeit unterstützt SQL Server diese XSD-basierten Einschränkungen zum Erzwingen der Eindeutigkeit oder zum Einrichten von Schlüsseln oder Schlüsselverweisen nicht. XML-Schemas, die diese Elemente enthalten, können nicht registriert werden.

<xsd:redefine>

SQL Server unterstützt dieses Element nicht. Informationen über eine andere Möglichkeit, Schemas zu aktualisieren, finden Sie unter Das <xsd:redefine->-Element.

<xsd:simpleType>-Werte

SQL Server unterstützt nur Millisekundengenauigkeit für simple-Datentypen, die Sekundenkomponenten besitzen (mit Ausnahme von xs:time und xs:dateTime), und 100-Nanosekundengenauigkeit für xs:time und xs:dateTime. SQL Server beschränkt alle erkannten Enumerationen des XSD-Datentyps simple.

SQL Server unterstützt nicht den "NaN"-Wert in <xsd:simpleType>-Deklarationen.

Weitere Informationen finden Sie unter Werte für <xsd:simpleType>-Deklarationen.

xsi:schemaLocation und xsi:noNamespaceSchemaLocation

In SQL Server werden diese Attribute ignoriert, wenn sie in den XML-Instanzdaten vorhanden sind, die in eine Spalte oder Variable des xml-Datentyps eingefügt werden.

xs:QName

SQL Server unterstützt keine von xs:QName abgeleiteten Typen, die ein Beschränkungselement des XML-Schemas verwenden.

SQL Server unterstützt keine union-Typen, die xs:QName als Mitgliedselement besitzen.

Weitere Informationen finden Sie unter Der xs:QName-Typ.

Hinzufügen von Elementen zu einer vorhandenen Ersetzungsgruppe

Das Hinzufügen von Elementen zu einer vorhandenen Ersetzungsgruppe in einer XML-Schemaauflistung wird nicht unterstützt. Eine Ersetzungsgruppe in einem XML-Schema ist insofern eingeschränkt, als das Headelement und alle seine Memberelemente in der gleichen {CREATE | ALTER} XML SCHEMA COLLECTION-Anweisung definiert werden müssen.

Kanonische Formen und Musterbeschränkungen

Die kanonische Darstellung eines Werts darf die Musterbeschränkung für seinen Typ nicht verletzen. Weitere Informationen finden Sie unter Kanonische Formen und Musterbeschränkungen.

Enumerationsfacets

SQL Server unterstützt keine XML-Schemas mit Typen, die Musterfacets besitzen, oder Enumerationen, die diese Facets verletzen.

Facetlänge

Die Facets length, minLength und maxLength werden als long-Datentyp gespeichert. Dieser Datentyp ist ein 32-Bit-Typ. Der Bereich der zulässigen Werte ist daher 2^31.

ID-Attribut

Jede XML-Schemakomponente kann ein ID-Attribut aufweisen. In SQL Server wird die Eindeutigkeit für <xsd:attribute>-Deklarationen des ID-Typs erzwungen. Diese Werte werden jedoch nicht gespeichert. Der Bereich für das Erzwingen der Eindeutigkeit wird durch die [CREATE | ALTER] XML SCHEMA COLLECTION-Anweisung festgelegt.

ID-Datentyp

SQL Server unterstützt keine Elemente vom Typ xs:ID, xs:IDREF oder xs:IDREFS. Ein Schema darf keine Elemente dieses Typs oder durch Beschränkung oder Erweiterung von diesem Typ abgeleitete Elemente deklarieren.

Lokaler Namespace

Der lokale Namespace muss für das <xsd:any>-Element angegeben werden. SQL Server weist Schemas zurück, die eine leere Zeichenfolge ("") als Wert für das namespace-Attribut verwenden. SQL Server verlangt die ausdrückliche Verwendung von "##local" für die Angabe, dass ein nicht qualifiziertes Element oder Attribut als Instanz des Platzhalterzeichens verwendet wird.

Mixed-Datentyp und simple-Inhalt

SQL Server unterstützt das Beschränken eines mixed-Datentyps auf simple-Inhalt nicht. Weitere Informationen finden Sie unter Mixed-Datentyp und Simple-Inhalt.

NOTATION-Datentyp

SQL Server unterstützt den NOTATION-Datentyp nicht.

Bedingungen des Typs Nicht genügend Arbeitsspeicher

Wenn Sie mit großen XML-Schemaauflistungen arbeiten, kann es vorkommen, dass nicht genügend Arbeitsspeicher verfügbar ist. Lösungen zu diesem Problem finden Sie unter Große XML-Schemaauflistungen und Bedingungen des Typs Nicht genügend Arbeitsspeicher.

Wiederholte Werte

SQL Server weist Schemas zurück, in denen das block- oder final-Attribut wiederholte Werte aufweist, z. B. "restriction restriction" oder "extension extension".

Schemakomponentenbezeichner

SQL Server beschränkt Bezeichner von Schemakomponenten auf eine maximale Länge von 1.000 Unicode-Zeichen. Außerdem werden keine Ersatzzeichenpaare mit Bezeichnern unterstützt.

Zeitzoneninformationen

In SQL Server 2008 werden Zeitzoneninformationen für xs:date-, xs:time- und xs:dateTime-Werte zur XML-Schemaüberprüfung voll unterstützt. Im SQL Server 2005-Abwärtskompatibilitätsmodus werden Zeitzoneninformationen immer zu koordinierter Weltzeit (Greenwich Mean Time) normalisiert. Für Elemente des dateTime-Datentyps konvertiert der Server die bereitgestellte Zeit mithilfe des Offsetwerts ("-05:00") in GMT und gibt die entsprechende GMT-Zeit zurück.

Union-Datentypen

SQL Server unterstützt keine Einschränkungen aus union-Datentypen.

Variable Genauigkeitsdezimalwerte

SQL Server unterstützt keine variablen Genauigkeitsdezimalwerte. Der xs:decimal-Datentyp stellt Dezimalzahlen mit variabler Genauigkeit dar. Für minimal konforme XML-Prozessoren müssen Dezimalzahlen mit mindestens totalDigits=18 unterstützt werden. In SQL Server werden totalDigits=38, unterstützt, die Dezimalstellen sind jedoch auf 10 beschränkt. Alle xs:decimal-instanziierten Werte werden intern durch den Server mithilfe des SQL-Datentyps numeric (38, 10) dargestellt.

In diesem Abschnitt

Thema

Beschreibung

Kanonische Formen und Musterbeschränkungen

Beschreibt kanonische Formen und Musterbeschränkungen.

Platzhalterkomponenten und Inhaltsüberprüfung

Beschreibt die Einschränkungen bei der Verwendung von Platzhalterzeichen, lax-Überprüfung und anyType-Elementen mit XML-Schemaauflistungen.

Das <xsd:redefine->-Element

Erklärt die Einschränkung für die Verwendung des <xsd:redefine->-Elements und beschreibt eine Problemumgehung.

Der xs:QName-Typ

Beschreibt die Einschränkung hinsichtlich des xs:QName-Typs.

Werte für <xsd:simpleType>-Deklarationen

Beschreibt die Beschränkungen, die auf <xsd:simpleType->-Deklarationen angewendet werden.

Enumerationsfacets

Beschreibt die Einschränkung hinsichtlich der Enumerationsfacets.

Mixed-Datentyp und Simple-Inhalt

Beschreibt die Einschränkung beim Beschränken eines gemischten Typs auf einfachen Inhalt.

Große XML-Schemaauflistungen und Bedingungen des Typs Nicht genügend Arbeitsspeicher

Stellt Lösungen für Situationen bereit, in denen nicht genügend Arbeitsspeicher verfügbar ist, was gelegentlich bei großen Schemaauflistungen vorkommt.

Nicht deterministische Inhaltsmodelle

Beschreibt die Einschränkungen hinsichtlich nicht deterministischer Inhaltsmodelle.