是否有可能在“帐户”元素下强制要求至少一个选项? (要么) 是否可以在“帐户”元素下默认一个选项?
<xs:element name="Account">
<xs:complexType>
<xs:choice>
<xs:element name="User" type="tns:users"/>
<xs:element name="Group" type="tns:groups"/>
</xs:choice>
</xs:complexType>
</xs:element>
答案 0 :(得分:1)
如果“授权至少一个选择”是指要求用户或组中至少有一个出现,那么是的,您可以,并且您显示的XSD片段执行此操作。如果您的意思是要求用户(例如)在每个帐户下至少出现一次,那么您可以再次使用,但在这种情况下,您显示的片段不会这样做。
如果“默认一个选项”是指如果文档实例既不包含用户也不包含组,则假定用户(例如),则不,我知道没有XML模式语言具有该功能(当然,处理软件的行为仅受您自己的聪明才智的限制。另一方面,如果“默认一个选项”是指如果XML文档实例包含空的Group元素,则为Group提供默认值,那么是,如果Group具有简单类型,那么这是可能的。
答案 1 :(得分:0)
如果我正确理解问题的第一部分,则Account
元素必须包含子元素User
或子元素Group
或两者 - 但它不能没有子元素,也不是多个User
或Group
子元素。
如果这是要求,则使用:
<xs:element name="Account">
<xs:complexType>
<xs:choice>
<xs:sequence>
<xs:element name="User" type="tns:users"/>
<xs:element name="Group" type="tns:groups" minOccurs="0"/>
</xs:sequence>
<xs:element name="Group" type="tns:groups"/>
</xs:choice>
</xs:complexType>
</xs:element>
我不确定你在问题的第二部分'默认的一个选择'是什么意思。