Aracılığıyla paylaş


Belirleyici olmayan içerik modelleri

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiMicrosoft Fabric'te SQL veritabanı

Oluşum kısıtlamaları 0, 1 veya ilişkisizse SQL Server'da belirlenemeyen içerik modelleri kabul edilir.

SQL Server 2005 (9.x) Service Pack 1 (SP1) öncesinde SQL Server, belirlenimci olmayan içerik modelleri olan XML şemalarını reddetti.

Örnek: Belirlenimi olmayan içerik modeli reddedildi

Aşağıdaki örnek, belirlenimi olmayan içerik modeline sahip bir XML şeması oluşturmayı dener. Kod başarısız olur çünkü öğenin iki <root> öğeden <a> oluşan bir dizisi olması <root> veya öğenin her biri bir <a> öğeye sahip olmak üzere iki diziye sahip olması gerekip gerekmediği net değildir.

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

Şema, oluşum kısıtlaması benzersiz bir konuma taşınarak düzeltilebilir. Örneğin, kısıtlama, içinde bulunduğu dizi parçacığına taşınabilir.

<sequence minOccurs="1" maxOccurs="4">
    <element name="a" type="string" minOccurs="1" maxOccurs="1"/>
</sequence>

Veya kısıtlama, kapsanan öğeye taşınabilir:

<sequence minOccurs="1" maxOccurs="1">
     <element name="a" type="string" minOccurs="1" maxOccurs="4"/>
</sequence>

Örnek: Belirlenimi olmayan içerik modeli kabul edildi

AŞAĞıDAKI şema SQL Server 2005 (9.x) SP1 öncesi SQL Server sürümlerinde reddedilir.

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

Ayrıca bakınız