1

少し問題があります。XSD All要素の仕様ではこちら: http://www.w3schools.com/schema/el_all.aspに、使用できる親要素がグループを定義するGROUPであると書かれています。私はこれらのXSDファイルを持っています:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:group name="DescriptionGroup">
    <xs:all>
      <xs:element name="description" type="xs:string"/>
      <xs:element name="comment" type="xs:string" minOccurs="0"/>
    </xs:all>
  </xs:group>

</xs:schema>

次のように、このファイルでさらにグループを指定します。

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:group name="DescriptionGroup">
    <xs:all>
      <xs:element name="description" type="xs:string"/>
      <xs:element name="comment" type="xs:string" minOccurs="0"/>
    </xs:all>
  </xs:group>

  <xs:group name="DescriptionGroup2">
    <xs:all>
      <xs:element name="description2" type="xs:string"/>
      <xs:element name="comment2" type="xs:string" minOccurs="0"/>
    </xs:all>
  </xs:group>

  <xs:group name="DescriptionGroup3">
    <xs:all>
      <xs:element name="description3" type="xs:string"/>
      <xs:element name="comment3" type="xs:string" minOccurs="0"/>
    </xs:all>
  </xs:group>

</xs:schema>

ポイントは、 group 要素が element を使用する必要があること<xs:all>です。定義グループを使用すると、これ以上問題はありません。すべて問題ありませんが、このコンテンツでグループを使用する必要がある場合:

<xs:element name="tesName">
  <xs:complexType>
    <xs:choice minOccurs="0">
      <xs:group minOccurs="0" ref="DescriptionGroup" />
      <xs:group minOccurs="0" ref="DescriptionGroup2" />
      <xs:group minOccurs="0" ref="DescriptionGroup3" />
    </xs:choice>
  </xs:complexType>
</xs:element>

XSD 検証でエラーがスローされる

エラー 'all' へのグループ リファレンスがルート パーティクルではないか、拡張として使用されています。

グループで使用することも<xs:all>できます。1 つの XML ファイル要素 (testName) で、次のような 3 つの種類の組み合わせが必要です。

<?xml version="1.0" encoding="windows-1250" ?>
<testing>
  <tesName>
    <description>bla bla bla</description>
    <comment>ble ble ble</comment>
  </tesName>
  <tesName>
    <description2>bla bla bla</description>
  </tesName>
  <tesName>
    <comment3>bla bla bla</comment3>
  </tesName>
  <tesName>
    <comment2>bla bla bla</comment2>
  </tesName>
</testing>
4

0 に答える 0