4

私のスキーマのこの部分は私に問題を引き起こしています:

        <xs:element name="newrecipients">
            <xs:complexType>
                <xs:choice>
                    <xs:element name="csv" type="xs:string" />
                    <!-- List of recipients -->
                </xs:choice>
            </xs:complexType>
        </xs:element>

受信者のリストは、次のようなリストです。

<recipient>
    <field1>...</field1>
    ...
    <fieldN>...</field>
</recipient>

タグ受信者には、スキーマに不明なタグのランダムなシーケンスを含めることができます。だから私は次のようなものを使用しました

  <xs:element name="recipient">
    <xs:complexType>
      <xs:sequence>
        <xs:any minOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

問題は、受信者のリストを定義する方法がわからないことです。私は知って<xs:list>いますが、通常は次のようなものが表示されるため、この場合の使用方法を理解できません

<xs:element name="intvalues" type="valuelist">

<xs:simpleType name="valuelist">
  <xs:list itemType="xs:integer"/>
</xs:simpleType>

</xs:schema>

リストを含む要素を定義する必要があります。私は直接csvまたは直接したいlist.

私は何が欠けていますか?ありがとう。

編集:出力例

これ:

<newrecipients>
    <csv>myrecipients.csv</csv>
</newrecipients>

またはこれ:

<newrecipients>
    <recipient>
        <field1>...</field1>
        ...
        <fieldN>...</field>
    </recipient>
    ...
    <recipient>
        <field1>...</field1>
        ...
        <fieldN>...</field>
    </recipient>
</newrecipients>
4

1 に答える 1

5

xsd:choice要素内で有効かどうかはわかりません:

<xs:element name="newrecipients">
    <xs:complexType>
        <xs:choice>
            <xs:element name="csv" type="xs:string" />
            <!-- List of recipients -->
            <xs:element name="recipient" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:sequence>
                        <xs:any minOccurs="1"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:choice>
    </xs:complexType>
</xs:element>

確かに、要素宣言をxsd:sequenceタグ内にラップするこのソリューションを使用できますが、csv 要素が欠落している場合にのみリストを存在させたいかどうかはわかりません。

于 2012-07-11T07:42:07.503 に答える