一意のパーティクル属性の制約について

XSD では、UPA (一意のパーティクル属性) 制約の規則によって、複雑なコンテンツ モデルが制約を受けます。この規則では、あいまいさを排除し、インスタンス ドキュメント内の各要素が、その親のコンテンツ モデル内の <xsd:element> パーティクルまたは <xsd:any> パーティクルの 1 つに正確に対応することが必要です。あいまいなコンテンツ モデルになる可能性のある型を含むスキーマは拒否されます。

あいまいさの最も一般的な原因は、<xsd:any> のワイルドカード文字や、minOccurs < maxOccurs のような可変の出現範囲を持つパーティクルです。たとえば、次のコンテンツ モデルでは、<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> などのドキュメントは明確に検証できません。これは、2 番目の <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/> が 2 番目の <xsd:sequence> に明確に一致します。ただし、<e3/> を先行読み取りしないと、<e1/> が対応する <xsd:element> を決定できないので、コンテンツ モデルは UPA 制約規則に違反することになります。

詳細情報

次のドキュメントは W3C (World Wide Web Consortium) が発行したもので、一意のパーティクル属性の制約に関する技術的な説明が含まれています。

『XML Schema Part 1: Structures Second Edition, W3C Proposed Edited Recommendation』

  • 「Section 3.8.6: Constraints on Model Group Schema Components」
  • 「Appendix H: Analysis of the Unique Particle Attribution Constraint (non-normative)」

ドキュメントを参照するには、「http://www.w3.org/TR/xmlschema-1」を参照してください。

参照

関連項目

サーバー上の XML スキーマ コレクションの管理

ヘルプおよび情報

SQL Server 2005 の参考資料の入手