Aracılığıyla paylaş


Benzersiz parçacık ilişkilendirme kısıtlaması

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

XSD'de karmaşık içerik modelleri benzersiz parçacık atfı (UPA) kısıtlama kuralıyla kısıtlanır. Bu kural, bir örnek belgesindeki her öğenin, üst öğesinin içerik modelindeki tam olarak bir <xsd:element> öğeye veya <xsd:any> parçacıka kesin olarak karşılık geldiğini gerektirir. Belirsiz olabilecek içerik modeline sahip bir tür içeren tüm şemalar reddedilir.

Belirsizliğin <xsd:any> en yaygın nedenleri, minOccurs maxOccurs gibi değişken oluşum aralıklarına < sahip joker karakterler ve parçacıklardır. Örneğin, aşağıdaki içerik modeli belirsizdir, çünkü bir <e1> elementi, hem <xsd:element> hem de <xsd:any> elementiyle eşleşebilir.

<xsd:element name="root">
    <xsd:complexType>
        <xsd:choice>
            <xsd:element name="e1"/>
            <xsd:any namespace="##any"/>
        </xsd:choice>
    </xsd:complexType>
</xsd:element>

Aşağıdaki içerik modeli de belirsizdir:

<xsd:element name="root">
    <xsd:complexType>
        <xsd:sequence>
            <xsd:element name="e1" maxOccurs="2"/>
            <xsd:element name="e2" minOccurs="0"/>
            <xsd:element name="e1"/>
        </xsd:sequence>
    </xsd:complexType>
</xsd:element>

<root><e1/><e2/><e1/></root> gibi bir belge kesin olarak doğrulansa da, ikinci <root><e1/><e1/></root>'ün hangi <xsd:element>'e atıfta bulunduğu açık olmadığından, <root><e1/><e1/></root> gibi bir belge doğrulanamaz. Bazı belgeler belirsiz bir şekilde doğrulansa da, belirsizlik olasılığı nedeniyle şema reddedilir.

İçerik modelinin geçerli olması için, herhangi bir örneği ileriye bakmadan kesin bir şekilde doğrulamak mümkün olmalıdır. Örneğin, aşağıdaki içerik modelini göz önünde bulundurun:

<xsd:element name="root">
    <xsd:complexType>
        <xsd:choice>
           <xsd:sequence>
               <xsd:element name="e1"/>
               <xsd:element name="e2"/>
           </xsd:sequence>
           <xsd:sequence>
               <xsd:element name="e1"/>
               <xsd:element name="e3"/>
           </xsd:sequence>
       </xsd:choice>
    </xsd:complexType>
</xsd:element>

gibi <root><e1/><e3/></root>bir belge için sıra <e1/><e3/> , ikinci <xsd:sequence>ile kesin olarak eşleşir. Ancak, <xsd:element>'ya bakmadan <e1/>'ye karşılık gelen <e3/>'nin belirlenememesi nedeniyle içerik modeli UPA kısıtlama kuralını ihlal eder.

Sonraki Adımlar

Aşağıdaki belge World Wide Web Konsorsiyumu (W3C) tarafından yayımlanır ve benzersiz parçacık ilişkilendirme kısıtlamasının teknik açıklamasını içerir:

"XML Şema Bölüm 1: Yapılar İkinci Baskı, W3C Gözden Geçirilmiş Öneri"

  • Bölüm 3.8.6: Model Grubu Şema Bileşenlerindeki Kısıtlamalar

  • Ek H: Benzersiz Parçacık İlişkilendirme Kısıtlamasının Analizi (normatif olmayan)

Belgeyi görmek için adresini ziyaret edin http://www.w3.org/TR/xmlschema-1.

Ayrıca bakınız