0

次のようなXMLを受け入れるXMLスキーマを作成する必要があります。

<?xml version="1.0" encoding="utf-8"?>
<Data>
  <NodeA>something</NodeA>
  <NodeB>something</NodeB>
  <NodeC>something</NodeC>
  <NodeD>something</NodeD>
</Data>

<?xml version="1.0" encoding="utf-8"?>
<Data>
  <NodeA>something</NodeA>
  <NodeC>something</NodeC>
  <NodeB>something</NodeB>
  <NodeD>something</NodeD>
</Data>

したがって、一般的には、リストの一部を任意の順序で表示できることを除いて、リスト内の要素を順序付けする必要があります。

ただし、xsdファイルに対していくつかのアプローチを試しましたが、どれも機能しません。

<xs:complexType name="Data">
  <xs:sequence>
    <xs:element name="NodeA"/>
    <xs:all xmlns:xs="">
      <xs:element name="NodeB"/>
      <xs:element name="NodeC"/>
    </xs:all>
    <xs:element name="NodeD"/>
  </xs:sequence>
</xs:complexType>

NodeBとNodeCをグループに入れることもできません。

私はそれらのエラーメッセージをグーグルで検索しましたが、有用なものを見つけることができませんでした...なぜこれらのxsdsは失敗し、どのように書くべきですか?ありがとう!

4

1 に答える 1

1

これはどう?

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="Root">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="NodeA"/>
                <xs:choice>
                    <xs:sequence>
                        <xs:element name="NodeB"/>
                        <xs:element name="NodeC"/>
                    </xs:sequence>
                    <xs:sequence>
                        <xs:element name="NodeC"/>
                        <xs:element name="NodeB"/>
                    </xs:sequence>
                </xs:choice>
                <xs:element name="NodeD"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>
于 2012-04-04T16:09:12.517 に答える