Delen via


Vereisten en beperkingen voor XML-schemaverzamelingen op de server

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-database in Microsoft Fabric

De XSD-validatie (XML-schemadefinitietaal) heeft enkele beperkingen met betrekking tot SQL-kolommen die gebruikmaken van het xml-gegevenstype . De volgende tabel bevat informatie over deze beperkingen en richtlijnen voor het wijzigen van uw XSD-schema, zodat het kan werken met SQL Server. De artikelen in deze sectie bevatten aanvullende informatie over specifieke beperkingen en richtlijnen voor het werken met deze beperkingen.

Onderdeel Beperking
minOccurs en maxOccurs De waarden voor minOccurs - en maxOccurs-kenmerken moeten in gehele getallen van vier bytes passen. Schema's die niet voldoen, worden geweigerd door de server.
<xsd:choice> SQL Server weigert schema's met een <xsd:keuzedeeltje> zonder onderliggende elementen, tenzij het deeltje is gedefinieerd met een minOccurs-kenmerkwaarde van nul.
<xsd:include> Op dit moment biedt SQL Server geen ondersteuning voor dit element. XML-schema's met dit element worden geweigerd door de server.

Als oplossing kunnen XML-schema's met de <xsd:include-instructie> vooraf worden verwerkt om de inhoud van eventuele opgenomen schema's te kopiëren en samen te voegen in één schema voor uploaden naar de server. Zie Een schema vooraf verwerken om opgenomen schema's samen te voegen voor meer informatie.
<xsd:key>, <xsd:keyref> en <xsd:unique> Momenteel biedt SQL Server geen ondersteuning voor deze XSD-beperkingen voor het afdwingen van uniekheid of het tot stand brengen van sleutels en sleutelverwijzingen. XML-schema's die deze elementen bevatten, kunnen niet worden geregistreerd.
<xsd:herdefinieert> SQL Server biedt geen ondersteuning voor dit element. Zie Het <element xsd:opnieuw definiëren> voor informatie over een andere manier om schema's bij te werken.
<xsd:simpleType-waarden> SQL Server biedt alleen ondersteuning voor precisie van milliseconden voor eenvoudige typen die andere onderdelen hebben dan xs:time en xs:dateTime, en precisie van 100 nanoseconden voor xs:time en xs:dateTime. SQL Server beperkt alle herkende XSD-opsommingen van eenvoudige typen.

SQL Server biedt geen ondersteuning voor het gebruik van de waarde 'NaN' in <xsd:simpleType-declaraties> .

Zie Waarden voor xsd:simpleType-declaraties< voor >meer informatie.
xsi:schemaLocation en xsi:noNamespaceSchemaLocation SQL Server negeert deze kenmerken als deze aanwezig zijn in de XML-exemplaargegevens die zijn ingevoegd in een kolom of variabele van het XML-gegevenstype .
xs:QName SQL Server biedt geen ondersteuning voor typen die zijn afgeleid van xs:QName die gebruikmaken van een beperkingselement voor xml-schema's.

SQL Server biedt geen ondersteuning voor samenvoegtypen met xs:QName als lidelement.

Zie Het type xs:QName voor meer informatie.
Leden toevoegen aan een bestaande vervangingsgroep U kunt geen leden toevoegen aan een bestaande vervangingsgroep in een XML-schemaverzameling. Een vervangingsgroep in een XML-schema wordt beperkt omdat het hoofdelement en alle bijbehorende lidelementen moeten worden gedefinieerd in hetzelfde {CREATE | ALTER} XML SCHEMA COLLECTION-instructie.
Canonieke formulieren en patroonbeperkingen De canonieke weergave van een waarde kan de patroonbeperking voor het type niet schenden. Zie Canonical Forms and Pattern Restrictions voor meer informatie.
Opsommingenfacetten SQL Server biedt geen ondersteuning voor XML-schema's met typen met patroon facets of opsommingen die deze facetten schenden.
Facetlengte De lengte, minLength en maxLength facetten worden opgeslagen als een lang type. Dit type is een 32-bits type. Daarom is het bereik van acceptabele waarden voor deze waarden 2^31.
Id-kenmerk Elk XML-schemaonderdeel kan er een id-kenmerk op hebben. SQL Server dwingt uniekheid af voor <xsd:attribute-declaraties> van het id-type , maar slaat deze waarden niet op. Het bereik voor het afdwingen van uniekheid is {CREATE | ALTER} XML SCHEMA COLLECTION-instructie.
Id-type SQL Server biedt geen ondersteuning voor elementen van het type xs:ID, xs:IDREF of xs:IDREFS. Een schema kan geen elementen van dit type declareren, of elementen die zijn afgeleid door beperking of uitbreiding van dit type.
Lokale naamruimte De lokale naamruimte moet expliciet worden opgegeven voor het <xsd:any-element> . SQL Server weigert schema's die een lege tekenreeks ("") gebruiken als een waarde voor het kenmerk naamruimte. In plaats daarvan vereist SQL Server het expliciete gebruik van '##local' om een niet-gekwalificeerd element of kenmerk aan te geven als het exemplaar van het jokerteken.
Gemengd type en eenvoudige inhoud SQL Server biedt geen ondersteuning voor het beperken van een gemengd type tot een eenvoudige inhoud. Zie Mixed Type en Simple Content voor meer informatie.
NOTATIETYPE SQL Server biedt geen ondersteuning voor het notatietype.
Problemen met onvoldoende geheugen Wanneer u werkt met grote XML-schemaverzamelingen, kan er een out-of-memory situatie optreden. Zie Large XML Schema Collections and Out-of-Memory Conditions (Grote XML-schemaverzamelingen en onvoldoende geheugen) voor oplossingen voor dit probleem.
Herhaalde waarden SQL Server weigert schema's waarin het blok- of eindkenmerk herhaalde waarden heeft, zoals 'beperking van beperkingen' en 'extensie-extensie'.
Schemaonderdeel-id's SQL Server beperkt id's van schemaonderdelen tot een maximale lengte van 1000 Unicode-tekens. Surrogaattekenparen binnen id's worden ook niet ondersteund.
Tijdzonegegevens In SQL Server 2008 (10.0.x) en latere versies wordt tijdzone-informatie volledig ondersteund voor waarden voor xs:date, xs:time en xs:dateTime voor XML-schemavalidatie. Met de compatibiliteitsmodus SQL Server 2005 (9.x) wordt tijdzone-informatie altijd genormaliseerd naar Coordinated Universal Time (Greenwich Mean Time). Voor elementen van het type dateTime converteert de server de tijd die is opgegeven naar GMT met behulp van de offsetwaarde (-05:00) en retourneert de bijbehorende GMT-tijd.
Samenvoegtypen SQL Server biedt geen ondersteuning voor beperkingen van samenvoegtypen.
Decimalen voor variabele precisie SQL Server biedt geen ondersteuning voor decimalen voor variabele precisie. Het type xs:decimal vertegenwoordigt willekeurige decimale getallen met precisie. Minimaal conforme XML-processors moeten decimale getallen ondersteunen met een minimum van totalDigits=18. SQL Server ondersteunt totalDigits=38, maar beperkt de fractionele cijfers tot 10. Alle xs:decimal-geïnstantieerde waarden worden intern weergegeven door de server met behulp van het SQL-type Numeric (38, 10).

Volgende stappen

Zie ook