XML Schema(XSD) - 如何指定父元素包含至少一个子元素?

joe*_*not 6 xml schema xsd

我有一个XML模式(XSD),它将元素定义为必需元素(称之为父元素); 例如,这个父级有五个子元素,它们都可以是可选的,但必须至少有一个子元素.

我怎样才能在xsd中指定这个?

澄清:孩子是不同的元素和可选的.例如.

<Parent>
   <Child1>contents are different to other siblings and arbitrary</Child1>
   <Child2>can be text, a simple element, or another complex element</Child2>
   <Child3>etc.. etc</Child3> 
</Parent>

<xs:complexType name="Parent">
  <xs:sequence>
    <xs:element minOccurs="0" name="Child1" type="xs:string"/>
    <xs:element minOccurs="0" name="Child2" />
    <xs:element minOccurs="0" name="Child3" />
  </xs:sequence>
</xs:complexType>
Run Code Online (Sandbox Code Playgroud)

即使每个孩子都是可选的,父母也需要至少有一个孩子.

WRe*_*ach 5

始终有直接的方法:

<xs:complexType name="Parent">
  <xs:choice>
    <xs:sequence>
      <xs:element name="Child1"/>
      <xs:element name="Child2" minOccurs="0"/>
      <xs:element name="Child3" minOccurs="0"/>
    </xs:sequence>
    <xs:sequence>
      <xs:element name="Child2"/>
      <xs:element name="Child3" minOccurs="0"/>
    </xs:sequence>
    <xs:sequence>
      <xs:element name="Child3"/>
    </xs:sequence>
  </xs:choice>
</xs:complexType>
Run Code Online (Sandbox Code Playgroud)

  • 直接方法可能会起作用; 但是对于很多子元素来说太麻烦了. (2认同)