次の方法で共有


一意のパーティクル属性の制約

適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance

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> に一致します。 ただし、<xsd:element> まで先行読み取りしないと <e1/> が対応する <e3/> を特定できないので、コンテンツ モデルは 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 を参照してください。

関連項目