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

これらのタグはすべてコンプレックスタイプで表示され、tag1とtag2は必須です。tag3はオプションであり、何度でも発生する可能性があります。tag1、tag2、tag3は任意の順序で表示できます

4

1 に答える 1

1

「all」グループセレクターを使用し、minOccurs を使用して必須であることを示すことができます。

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

これは正しいです:

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

したがって、これは次のとおりです。

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

しかし、これではありません:

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