1

我想表达在 XSD 中反复出现的无序强制和可选标签。谁能告诉这个问题如何解决?如果不可行,可以采取什么方法。

更新

<xs:element name="Tag1" type="xs:string" />
<xs:element name="Tag2" type="xs:string" />
<xs:element name="Tag3" type="xs:string" maxoccurs="Unbounded"/> 

所有这些标签都出现在 complext 类型下,并且 tag1 和 tag2 是必需的。tag3 是可选的,可以出现任意次数。tag1、tag2 和 tag3 可以按任意顺序出现

4

1 回答 1

1

You can use a "all" group selector and use minOccurs to indicate mandatory-ness.

<xs:schema xmlns="http://Message1" targetNamespace="http://Message1" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="Root">
    <xs:complexType>
      <xs:all>
        <xs:element name="TheValue" type="xs:string" />
        <xs:element name="TheValue2" type="xs:string" minOccurs="0" />
      </xs:all>
    </xs:complexType>
  </xs:element>
</xs:schema>

This are correct:

<ns0:Root xmlns:ns0="http://BizTalk_Server_Project1.Message1">
  <TheValue2>somevalue</TheValue2>
  <TheValue>somevalue</TheValue>
</ns0:Root>

and so it this:

<ns0:Root xmlns:ns0="http://BizTalk_Server_Project1.Message1">
  <!--<TheValue2>somevalue</TheValue2>-->
  <TheValue>somevalue</TheValue>
</ns0:Root>

But not this:

<ns0:Root xmlns:ns0="http://BizTalk_Server_Project1.Message1">
  <!--<TheValue2>somevalue</TheValue2>-->
  <!--<TheValue>somevalue</TheValue>-->
</ns0:Root>
于 2012-09-14T10:07:30.820 回答