Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL databáze v Microsoft Fabric
Ne deterministické modely obsahu jsou na SQL Serveru přijímány, pokud jsou omezení výskytu 0, 1 nebo nevázaná.
Před aktualizací Service Pack 1 (SP1) SYSTÉMU SQL Server 2005 (9.x) odmítl sql Server schémata XML, která obsahovala ne deterministické modely obsahu.
Příklad: Model ne deterministického obsahu byl odmítnut.
Následující příklad se pokusí vytvořit schéma XML s ne deterministickým modelem obsahu. Kód selže, protože není jasné, zda <root> má prvek mít posloupnost dvou <a> prvků, nebo pokud <root> by prvek měl mít dvě sekvence, z nichž každý má prvek <a> .
CREATE XML SCHEMA COLLECTION MyCollection AS '
<schema xmlns="http://www.w3.org/2001/XMLSchema">
<element name="root">
<complexType>
<sequence minOccurs="1" maxOccurs="2">
<element name="a" type="string" minOccurs="1" maxOccurs="2"/>
</sequence>
</complexType>
</element>
</schema>
';
GO
Schéma lze opravit přesunutím omezení výskytu do jedinečného umístění. Omezení lze například přesunout do obsahující sekvenční částice:
<sequence minOccurs="1" maxOccurs="4">
<element name="a" type="string" minOccurs="1" maxOccurs="1"/>
</sequence>
Nebo omezení lze přesunout do obsaženého prvku:
<sequence minOccurs="1" maxOccurs="1">
<element name="a" type="string" minOccurs="1" maxOccurs="4"/>
</sequence>
Příklad: Model ne deterministického obsahu byl přijat.
Následující schéma by bylo odmítnuto ve verzích SQL Serveru před SQL Serverem 2005 (9.x) SP1.
CREATE XML SCHEMA COLLECTION MyCollection AS '
<schema xmlns="http://www.w3.org/2001/XMLSchema">
<element name="root">
<complexType>
<sequence minOccurs="0" maxOccurs="unbounded">
<element name="a" type="string" minOccurs="0" maxOccurs="1"/>
<element name="b" type="string" minOccurs="1" maxOccurs="unbounded"/>
</sequence>
</complexType>
</element>
</schema>
';
GO