Wildcardkomponenten und Inhaltsüberprüfung
Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed Instance
Platzhalterkomponenten werden verwendet, um die Flexibilität der zulässigen Inhalte in einem Inhaltsmodell zu erhöhen. Diese Komponenten werden in der XSD-Sprache auf folgende Weise unterstützt:
Elementplatzhalterkomponenten. Diese werden durch das
<xsd:any>
-Element dargestellt.Attributplatzhalterkomponenten. Diese werden durch das
<xsd:anyAttribute>
-Element dargestellt.
Sowohl Wildcardzeichenelemente <xsd:any>
als <xsd:anyAttribute>
auch , unterstützen die Verwendung eines processContents
Attributs. Auf diese Weise können Sie einen Wert angeben, der angibt, wie XML-Anwendungen die Überprüfung des Dokumentinhalts durchführen, der diesen Platzhalterzeichenelementen zugeordnet ist. Die folgenden Werte und Auswirkungen werden bereitgestellt:
Der strict -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.
Lax-Überprüfung und xs:anyType-Elemente
Die XML-Schemaspezifikation verwendet die lax -Überprüfung für Elemente des anyType -Datentyps. Da SQL Server 2005 (9.x) keine lax-Überprüfung unterstützt hat, wurde eine strenge Überprüfung auf Elemente des anyType angewendet. Ab SQL Server 2008 (10.0.x) wird die Lax-Überprüfung unterstützt. Inhalt der Elemente des Typs anyType wird mit lax-Überprüfung überprüft.
Das folgende Beispiel veranschaulicht die laxÜberprüfung. Das Schemaelement e
weist den Typ anyType auf. Im Beispiel werden typisierte xml -Variablen erstellt und die strict -Überprüfung des Elements vom Typ anyType 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, weil die Überprüfung von <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 <c>
-Element im Schema definiert wird:
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
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