即使我们可以使用xsd:choice
,我看到了一个xml架构(EPP)whitch使用了xsd:enumeration
元素:
<element name="access" type="epp:dcpAccessType"/>
<complexType name="dcpAccessType">
<choice>
<element name="all"/>
<element name="none"/>
<element name="null"/>
<element name="other"/>
<element name="personal"/>
<element name="personalAndOther"/>
</choice>
</complexType>
要明确问题,我将使用此示例:
<element name="sport" type="sportType"/>
<!-- using choice-->
<complexType name="sportType">
<choice>
<element name="football"/>
<element name="tennis"/>
</choice>
</complexType>
<!-- Or using enumeration-->
<simpleType name="sportType">
<restriction base="string">
<enumeration value="football"/>
<enumeration value="tennis"/>
</restriction>
</simpleType>
使用该架构的xml示例:
<!--using choice-->
<sport>
<football/>
</sport>
<!--using enumeration-->
<sport>football</sport>
为什么他们在这种情况下更喜欢xsd:choice
而不是xsd:enumeration
?
由于
答案 0 :(得分:3)
选择是在元素之间进行选择,而枚举允许在一组值之间进行选择。这些值可以是示例中的字符串,但如果要枚举多个元素对象,则必须使用选项。
答案 1 :(得分:2)
为什么在这种情况下他们更喜欢xsd:choice而不是xsd:enumeration?
据推测,他们希望在支持的xml中使用标记而不是文本内容。
使用其中一个的决定几乎是你想要支持的xml的问题,因为它们完全不同。哪种xml形式更可取是非常主观的。