xs:choice 要素を使用しようとしていますが、XSD ファイルの検証中に、xs:choice 要素に関連していると思われるエラーが発生します。この問題をかなり検索しましたが、似たような問題がいくつか見つかりましたが、問題を解決するために探していた答えはありませんでした。
私がやろうとしているのは、「データ」と呼ばれる要素を宣言することです。その子はタイムスタンプとセンサーまたはプロバイダーになります (センサーまたはプロバイダーのみが必要なので、ここで選択要素を使用しようとしています)。タイムスタンプの兄弟としての provider 要素)。
次の XML は、検証しようとしているものです。
<?xml version="1.0" encoding="ISO-8859-1"?>
<experience xmlns="http://www.w3schools.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
<data>
<timestamp>123456789</timestamp>
<sensor origin="proximity" >
<x-axis>9</x-axis>
<y-axis>0</y-axis>
<z-axis>0</z-axis>
<w-axis>0</w-axis>
</sensor>
</data>
</experience>
そして、この XML を検証するために、次の XSD ファイルを作成しました。
<?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- definition of attributes -->
<xs:attribute name="origin" type="xs:string" />
<!-- definition of complex elements -->
<xs:element name="provider">
<xs:complexType>
<xs:all>
<xs:element name="latitude" type="xs:float" />
<xs:element name="longitude" type="xs:float" />
<xs:element name="altitude" type="xs:float" />
<xs:element name="bearing" type="xs:float" />
<xs:element name="speed" type="xs:float" />
</xs:all>
<xs:attribute ref="origin" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="sensor">
<xs:complexType>
<xs:all>
<xs:element name="x-axis" type="xs:float" />
<xs:element name="y-axis" type="xs:float" />
<xs:element name="z-axis" type="xs:float" />
<xs:element name="w-axis" type="xs:float" />
</xs:all>
<xs:attribute ref="origin" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="data">
<xs:complexType>
<xs:sequence>
<xs:element ref="timestamp" minOccurs="1" maxOccurs="1" />
<xs:choice>
<element ref="provider" />
<element ref="sensor" />
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- definition of main type -->
<xs:element name="experience">
<xs:complexType>
<xs:sequence>
<xs:element ref="data" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
しかし、ファイルをアップロードして、次の w3 web サイトを使用して検証しようとすると、次のエラーが発生します。
file:/usr/local/XSV/xsvlog/tmph7cMmLuploaded:45:6: cvc-complex-type.1.2.4 ごとに無効: 要素 {None}: ここで許可されていない要素 (1) 要素 { http://www. w3.org/2001/XMLSchema }:choice、予想 [{ http://www.w3.org/2001/XMLSchema }:annotation,$,{ http://www.w3.org/2001/XMLSchema }:element ,{ http://www.w3.org/2001/XMLSchema }:グループ,{ http://www.w3.org/2001/XMLSchema }:choice,{ http://www.w3.org/2001/ XMLSchema }:sequence,{ http://www.w3.org/2001/XMLSchema }:any]:
問題は xs:choice 要素にあると思いますが、間違っている可能性があります。
xs:choice 要素を使用するのは初めてなので、正しく使用しているかどうか疑問に思っています。w3schools の例によると私ですが、別の要素の隣に使用するつもりなので、それが正しいかどうかはわかりません。
誰かがこれについて私を助けることができれば、私は非常に感謝しています.
よろしくお願いします。