UNIQUE PARTICLE ATTRIBUTION 제약 조건

XSD에서 복잡한 콘텐츠 모델은 UPA(Unique Particle Attribution) 제약 조건 규칙에 의해 제한됩니다. 이 규칙에서는 항목 문서의 각 요소가 해당 부모 콘텐츠 모델에 있는 정확히 하나의 <xsd:element> 또는 <xsd:any> 파티클과 분명하게 일치해야 합니다. 잠재적으로 모호한 콘텐츠 모델이 있는 유형이 포함되는 스키마는 모두 거부됩니다.

모호성에 대한 가장 일반적인 원인은 minOccurs < maxOccurs와 같은 변수 발생 범위가 있는 <xsd:any> 와일드카드 문자 및 파티클입니다. 예를 들어 다음 콘텐츠 모델은 <e1> 요소가 <xsd:element> 또는 <xsd:any> 요소 중 하나와 일치할 수 있기 때문에 모호합니다.

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

다음 콘텐츠 모델도 모호합니다.

<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>와 같은 문서는 분명하게 유효성을 검사할 수 있지만 <root><e1/><e1/></root>와 같은 문서는 두 번째 <e1/>에 해당하는 <xsd:element>가 명확하지 않기 때문에 분명하게 유효성을 검사할 수 없습니다. 일부 문서는 분명하게 유효성을 검사할 수 있더라도 잠재적 모호성으로 인해 스키마가 거부됩니다.

콘텐츠 모델이 유효하려면 자세한 검사 없이도 모든 항목의 유효성을 분명하게 검사할 수 있어야 합니다. 예를 들어 다음과 같은 콘텐츠 모델에 유의하십시오.

<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>

<root><e1/><e3/></root>와 같은 문서에서 <e1/><e3/> 시퀀스는 두 번째 <xsd:sequence>와 분명하게 일치합니다. 하지만 <e3/>을 검사하지 않고서는 <e1/>에 해당하는 <xsd:element>를 확인할 수 없기 때문에 이 콘텐츠 모델은 UPA 제약 조건 규칙에 위배됩니다.

추가 정보 찾기

다음 문서는 W3C(World Wide Web Consortium)에서 발행했으며 UNIQUE PARTICLE ATTRIBUTION 제약 조건에 대한 기술적인 설명이 포함되어 있습니다.

"XML Schema Part 1: 구조 제2판, W3C 제안 수정 추천:

  • Section 3.8.6: 모델 그룹 스키마 구성 요소의 제한 사항

  • Appendix H: Unique Particle Attribution 제약 조건 분석(비표준)

문서를 보려면 http://www.w3.org/TR/xmlschema-1을 참조하십시오.

참고 항목

참조

XML 스키마 컬렉션 [SQL Server]