0

xsdにこの要素があります。

        <xs:element name="OuterElement">
            <xs:complexType>
                <xs:choice maxOccurs="unbounded">
                    <xs:element name="InnerElement">
                        <xs:complexType>
                            <xs:attribute name="name" type="xs:string" />
                            <xs:attribute name="value" type="xs:string" />
                        </xs:complexType>
                    </xs:element>
                </xs:choice>

                <xs:attribute name="enabled" type="xs:boolean" use="required" />
            </xs:complexType>
        </xs:element>

次のことが可能な方法で xsd をフォーマットすることは可能ですか? ...

if enabled==true {
   minOccursOfInnerElement=1
}
else {
   minOccursOfInnerElement=0
}
4

2 に答える 2

1

簡単な見方をすると、次のようになります。2 種類の親があります。有効な親は少なくとも 1 つの内部要素の子を持つ必要がありますが、有効でない親は少なくとも 1 つ持つ必要はありません。それらに異なる名前を付けた場合、問題は些細なものであり、検証への単純なアプローチよりも、2 つの異なるものに同じ名前を使用する方が重要であると判断した場合にのみ、問題が難しくなります。

于 2013-07-09T17:27:54.573 に答える
1

いいえ、そうではありません。xsd はマークアップの構造を定義し、属性の値はマークアップされるものです。

無効なメンバーと有効なメンバーを持つ選択要素を実行できます。

于 2013-07-09T12:16:50.200 に答える