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.
Mithilfe von Wildcardkomponenten wird die Flexibilität hinsichtlich der erlaubten Elemente in einem Inhaltsmodell erhöht. Diese Komponenten werden auf folgende Weise in der XSD-Sprache unterstützt:
Element-Wildcard-Komponenten. Diese werden durch das <Element "xsd:any> " dargestellt.
Attribut-Wildcardkomponenten. Diese werden durch das <xsd:anyAttribute-Element> dargestellt.
Sowohl Wildcardzeichenelemente, <xsd:any> als auch <xsd:anyAttribute>, unterstützen die Verwendung eines processContents-Attributes. Auf diese Weise können Sie einen Wert angeben, der angibt, wie XML-Anwendungen die Überprüfung von Dokumentinhalten behandeln, die diesen Wildcardzeichenelementen zugeordnet sind. Dies sind die unterschiedlichen Werte und deren Wirkung:
Der strenge Wert gibt an, dass der Inhalt vollständig überprüft wird.
Der Skip-Wert gibt an, dass der Inhalt nicht überprüft wird.
Der lax-Wert gibt an, dass nur Elemente und Attribute überprüft werden, für die Schemadefinitionen verfügbar sind.
Lockere Validierung und xs:anyType-Elemente
Die XML-Schemaspezifikation verwendet eine lax-Überprüfung für Elemente des anyType-Typs . Da sql Server 2005 die Lax-Überprüfung nicht unterstützt hat, wurde eine strenge Überprüfung auf Elemente des anyType-Elements angewendet. Ab SQL Server 2008 wird die lax-Überprüfung unterstützt. Der Inhalt von Elementen vom Typ anyType wird mithilfe der lax-Überprüfung überprüft.
Im folgenden Beispiel wird die lockere Validierung veranschaulicht. Das Schemaelement e weist den anyType-Typ auf. Im Beispiel werden typierte XML-Variablen erstellt und die laxe Überprüfung des Elements des anyType-Typs veranschaulicht.
CREATE XML SCHEMA COLLECTION SC AS '
<schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://ns">
<element name="e" type="anyType"/>
<element name="a" type="byte"/>
<element name="b" type="string"/>
</schema>'
GO
Das folgende Beispiel ist erfolgreich, da die Überprüfung <e> erfolgreich ist:
DECLARE @var XML(SC)
SET @var = '<e xmlns="http://ns"><a>1</a><b>data</b></e>'
GO
Das folgende Beispiel ist erfolgreich. Die Instanz wird akzeptiert, obwohl kein Element <c> im Schema definiert ist:
DECLARE @var XML(SC)
SET @var = '<e xmlns="http://ns"><a>1</a><c>Wrong</c><b>data</b></e>'
GO
Die XML-Instanz im folgenden Beispiel wird abgelehnt, da die Definition des <a> Elements keinen Zeichenfolgenwert zulässt.
DECLARE @var XML(SC)
SET @var = '<e xmlns="http://ns"><a>Wrong</a><b>data</b></e>'
SELECT @var
GO
Siehe auch
Anforderungen und Einschränkungen für XML-Schemasammlungen auf dem Server