XML模式中元素中的元素

XML模式中元素中的元素,xml,xsd,Xml,Xsd,是否可以在“帐户”元素下指定至少一个选项?(或) 是否可以在“Account”元素下默认一个选项 如果“强制至少一个选项”的意思是要求至少出现一个用户或组,那么是的,您可以,您显示的XSD片段就是这样做的。如果您的意思是要求该用户(例如)在每个帐户下至少出现一次,那么您也可以这样做,但在这种情况下,您显示的片段不会这样做 如果“default one choice”的意思是,如果文档实例既不包含用户也不包含组,则假定用户(例如),那么,我所知道的任何XML模式语言都没有这种能力(当然,处理软件

是否可以在“帐户”元素下指定至少一个选项?(或) 是否可以在“Account”元素下默认一个选项


如果“强制至少一个选项”的意思是要求至少出现一个用户或组,那么是的,您可以,您显示的XSD片段就是这样做的。如果您的意思是要求该用户(例如)在每个帐户下至少出现一次,那么您也可以这样做,但在这种情况下,您显示的片段不会这样做


如果“default one choice”的意思是,如果文档实例既不包含用户也不包含组,则假定用户(例如),那么,我所知道的任何XML模式语言都没有这种能力(当然,处理软件的行为仅受您自己的独创性的限制)。另一方面,如果“default one choice”是指如果XML文档实例包含空的Group元素,则为Group提供一个默认值,那么是的,如果Group有一个简单的类型,这是可能的。

如果我正确理解问题的第一部分,elment
帐户必须有子元素
用户
或子元素
或两者-但它不能没有子元素,也不能有多个
用户
子元素

如果这是要求,则使用:

<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>

我不知道你在问题的第二部分所说的“默认一种选择”是什么意思

<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>