Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Das XSD-Mustermerkmal ermöglicht die Einschränkung des lexikalischen Bereichs einfacher Typen. Wenn eine Mustereinschränkung auf einen Typ angewendet wird, für den mehr als eine mögliche lexikalische Darstellung vorhanden ist, können einige Werte bei der Überprüfung zu unerwartetem Verhalten führen.
Dieses Verhalten tritt auf, da lexikalische Darstellungen dieser Werte nicht in der Datenbank gespeichert sind. Daher werden die Werte in ihre kanonischen Darstellungen konvertiert, wenn sie als Ausgabe serialisiert werden. Wenn ein Dokument einen Wert enthält, dessen kanonische Form die Mustereinschränkung für den Typ nicht erfüllt, wird das Dokument abgelehnt, wenn ein Benutzer versucht, es erneut einzugeben.
Um dies zu verhindern, lehnt SQL Server alle XML-Dokumente ab, die Werte enthalten, die nicht erneut eingefügt werden können, aufgrund der Verletzung von Mustereinschränkungen durch ihre kanonischen Formen. Der Wert "33.000" wird z. B. nicht anhand eines typs überprüft, der von "xs:decimal " mit einer Mustereinschränkung von "33\.0+" abgeleitet ist. Obwohl "33.000" diesem Muster folgt, ist die kanonische Form "33" nicht konform.
Daher sollten Sie vorsichtig sein, wenn Sie Muster-Facets auf Typen anwenden, die von den folgenden Grundtypen abgeleitet werden: boolean, decimal, float, double, dateTime, time, date, hexBinary und base64Binary. SQL Server gibt eine Warnung aus, wenn Sie einer Schemaauflistung solche Komponenten hinzufügen.
Die ungenaue Serialisierung von Gleitkommawerten stellt ein ähnliches Problem dar. Aufgrund des gleitkommabasierten Serialisierungsalgorithmus, der von SQL Server verwendet wird, ist es möglich, dass ähnliche Werte dieselbe kanonische Form gemeinsam nutzen. Wenn ein Gleitkommawert serialisiert und dann erneut eingefügt wird, kann sich der Wert leicht ändern. In seltenen Fällen kann dies zu einem Wert führen, der gegen eines der folgenden Facets für seinen Typ bei der Reinsertion verstößt: Enumeration, minInclusive, minExclusive, maxInclusive oder maxExclusive. Um dies zu verhindern, lehnt SQL Server alle Werte von Typen ab, die von xs:float oder xs:double abgeleitet sind und nicht serialisiert und erneut eingefügt werden können.
Siehe auch
Anforderungen und Einschränkungen für XML-Schemasammlungen auf dem Server