<option selected>
XSDでHTMLに相当するものを指定することは可能ですか?正確に、 1つの要素だけが特定の属性を持っていますか?
たとえば、次のXMLフラグメントの例を考えます。
<foo-list>
<foo/>
<foo bar="bar"/>
<foo/>
</foo-list>
次のXSDを記述して、1つだけfoo
が存在することを確認でき@bar
ます。
<xs:element name="foo-list">
<!-- FOO-LIST contains [1..n] FOO elements -->
<xs:complexType>
<xs:sequence>
<xs:element ref="foo" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<!-- any FOO with @BAR must have unique @BAR -->
<xs:unique name="oneFooBar">
<xs:selector xpath="foo"/>
<xs:field xpath="@bar"/>
</xs:unique>
</xs:element>
<xs:element name="foo">
<xs:complexType>
<!-- FOO has optional @BAR -->
<xs:attribute name="bar">
<xs:simpleType>
<!-- @BAR must = "bar", if specified -->
<xs:restriction base="xs:string">
<xs:enumeration value="bar"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
enumeration
すべてが適切に認定されており、の代わりにソリティアを使用するという私の決定は正しいと仮定しますpattern
。
1)このスキーマは、私が意図したものを意味しますか?(つまり、0または1つと<foo bar="bar"/>
0以上<foo/>
があります<foo-list>
)
2)正確に1つあることを要求する方法はあり<foo bar="bar"/>
ますか?