Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-database in Microsoft Fabric
Wildcardcomponenten worden gebruikt om de flexibiliteit te vergroten van wat in een inhoudsmodel is toegestaan. Deze onderdelen worden op de volgende manieren ondersteund in de XSD-taal:
Elementen met jokertekens. Deze worden vertegenwoordigd door het
<xsd:any>element.Attribuut wildcard-onderdelen. Deze worden vertegenwoordigd door het
<xsd:anyAttribute>element.
Zowel jokertekenelementen als <xsd:any><xsd:anyAttribute>, ondersteunen het gebruik van een processContents kenmerk. Hiermee kunt u een waarde opgeven die aangeeft hoe XML-toepassingen de validatie verwerken van documentinhoud die is gekoppeld aan deze elementen met jokertekens. Dit zijn de verschillende waarden en het effect ervan:
De strikte waarde geeft aan dat de inhoud volledig is gevalideerd.
De waarde voor overslaan geeft aan dat de inhoud niet wordt gevalideerd.
De lax-waarde geeft aan dat alleen elementen en kenmerken waarvoor schemadefinities beschikbaar zijn, worden gevalideerd.
Lax-validatie en xs:anyType-elementen
De specificatie van het XML-schema maakt gebruik van laxvalidatie voor elementen van het anyType-type . Omdat SQL Server 2005 (9.x) geen ondersteuning biedt voor laxvalidatie, is strikte validatie toegepast op elementen van het anyType. Vanaf SQL Server 2008 (10.0.x) wordt laxvalidatie ondersteund. Inhoud van elementen van het type anyType wordt gevalideerd met laxvalidatie.
In het volgende voorbeeld wordt de niet-strikte validatie geïllustreerd. Het schema-element e is van het anyType-type . In het voorbeeld worden getypte XML-variabelen gemaakt en wordt de laxvalidatie van het element van het anyType-type geïllustreerd.
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
Het volgende voorbeeld slaagt omdat de validatie <e> is geslaagd:
DECLARE @var XML(SC);
SET @var = '<e xmlns="http://ns"><a>1</a><b>data</b></e>';
GO
Het volgende voorbeeld slaagt. Het exemplaar wordt geaccepteerd, ook al is er geen element <c> gedefinieerd in het schema:
DECLARE @var XML(SC);
SET @var = '<e xmlns="http://ns"><a>1</a><c>Wrong</c><b>data</b></e>';
GO
Het XML-exemplaar in het volgende voorbeeld wordt geweigerd, omdat de definitie van het <a> element geen tekenreekswaarde toestaat.
DECLARE @var XML(SC);
SET @var = '<e xmlns="http://ns"><a>Wrong</a><b>data</b></e>';
SELECT @var;
GO