Opis ograniczenia przyporządkowanie unikatowy cząstek
W pliku XSD złożonych modeli zawartości są ograniczone przez regułę ograniczenie unikatowe cząstka przyporządkowanie (UPA).Ta reguła wymaga, że każdy element dokumentu instancji odpowiadają jednoznacznie dokładnie jeden <xsd:element> lub <xsd:any> cząstka w jego nadrzędnym zawartości modelu.Dowolnego schematu, zawierający typ z potencjalnie niejednoznaczne model zawartości jest odrzucana.
Najbardziej typowe przyczyny niejednoznaczności są <xsd:any> wieloznacznych i cząsteczek, które mają zakresów wystąpieniu zmiennej, takich jak minOccurs < maxOccurs.Na przykład, następujący model zawartości jest niejednoznaczny, ponieważ <e1> element może odpowiadać albo <xsd:element> lub <xsd:any> elementu.
<xsd:element name="root">
<xsd:complexType>
<xsd:choice>
<xsd:element name="e1"/>
<xsd:any namespace="##any"/>
</xsd:choice>
</xsd:complexType>
</xsd:element>
Model zawartości następujących również jest niejednoznaczny:
<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>
Chociaż dokumentu, takie jak <root><e1/><e2/><e1/></root> może być sprawdzony jednoznaczny dokumentu takie jak <root><e1/><e1/></root> nie, ponieważ nie jest jasne której <xsd:element> drugi <e1/> odpowiada.Mimo że niektóre dokumenty mogą być jednoznacznie sprawdzone, schemat zostanie odrzucone, z powodu niejednoznaczności potencjał.
Należy zauważyć, że dla modelu zawartości jest nieprawidłowy, musi być możliwe sprawdzenie poprawności dowolne wystąpienie jednoznacznie bez Spojrzenie w przyszłość.Na przykład rozważmy następujący model zawartości:
<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>
Dla dokumentu, takie jak <root><e1/><e3/></root>, sekwencja <e1/><e3/> jednoznacznie odpowiada drugi <xsd:sequence>.Jednak ponieważ <xsd:element> do którego <e1/> odpowiada nie może być ustalona bez Spojrzenie w przyszłość do <e3/>, model zawartości narusza reguły ograniczenia UPA.
Wyszukiwanie więcej informacji
Następujący dokument jest publikowana przez World Wide Web Consortium (W3C) i zawiera opis techniczny ograniczenie przyporządkowanie unikatowy cząstka:
"Część schematu XML: Drugie wydanie struktur W3C proponowane edytowane zalecenie ":
Sekcja 3.8.6: Ograniczenia dotyczące składników schematu grupy modelu
Dodatek H: Analiza cząstek przyporządkowanie ograniczenia Unique (nie normatywnych)
Aby wyświetlić dokument, odwiedź witrynę http://www.w3.org/TR/xmlschema-1.