Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-database in Microsoft Fabric
Met het XSD-patroon facet kunt u de lexicale ruimte van eenvoudige typen beperken. Wanneer een patroonbeperking wordt ingesteld op een type waarvoor meer dan één mogelijke lexicale weergave bestaat, kunnen sommige waarden onverwacht gedrag veroorzaken bij de validatie.
Dit gedrag treedt op omdat lexicale weergaven van deze waarden niet worden opgeslagen in de database. Daarom worden de waarden geconverteerd naar hun canonieke weergaven wanneer ze als uitvoer worden geserialiseerd. Als een document een waarde bevat waarvan het canonieke formulier niet voldoet aan de patroonbeperking voor het type, wordt het document geweigerd als een gebruiker het opnieuw probeert in te voegen.
Om dit te voorkomen, weigert SQL Server elk XML-document dat waarden bevat die niet opnieuw kunnen worden geplaatst, vanwege de schending van patroonbeperkingen door hun canonieke formulieren. De waarde 33.000 wordt bijvoorbeeld niet gevalideerd op basis van een type dat is afgeleid van xs:decimal met een patroonbeperking van '33\.0+'. Hoewel "33.000" voldoet aan dit patroon, voldoet de canonieke vorm, "33", niet.
Daarom moet u voorzichtig zijn wanneer u patroonfacetten toepast op typen die zijn afgeleid van de volgende primitieve typen: boolean, decimale, float, double, datum-tijd, tijd, datum, hexBinary en base64Binary. SQL Server geeft een waarschuwing wanneer u dergelijke onderdelen aan een schemaverzameling toevoegt.
Onnauwkeurige serialisatie van drijvendekommawaarden heeft een vergelijkbaar probleem. Vanwege het drijvende-kommaserialisatie-algoritme dat door SQL Server wordt gebruikt, is het mogelijk dat vergelijkbare waarden dezelfde canonieke vorm delen. Wanneer een drijvende-kommawaarde wordt geserialiseerd en vervolgens opnieuw wordt geplaatst, kan de waarde enigszins veranderen. In zeldzame gevallen kan dit resulteren in een waarde die een van de volgende facetten schendt van zijn type bij herinvoer: opsomming, minInclusive, minExclusive, maxInclusive of maxExclusive. Om dit te voorkomen, weigert SQL Server alle waarden van typen die zijn afgeleid van xs:float of xs:double die niet kunnen worden geserialiseerd en opnieuw worden ingevoegd.