以下のような XML ファイルがあり、型置換メソッドを使用して XML スキーマを作成し、以下の XML ファイルを検証できるようにしたいと考えました。しかし、私が作成したスキーマは完全に間違っています。以下のファイル XML を検証するためにスキーマをコーディングする方法を教えてください。
詳細:
- 保管されている動物は、鳥と魚の 2 種類だけです。
- type、name、origin の両方の要素が必要です
- type:bird の場合、オプションで追加の色要素を保存できます。
type:fish の場合、追加の size 要素を格納する必要があります
<animals> <animal animalID="b-1" xsi:type="bird"> <name>Humming Bird</name> <origin>Asia</origin> <color>Blue</color> </animal> <animal animalID="b-2" xsi:type="bird"> <name>Horn Bill</name> <origin>Asia</origin> </animal> <animal animalID="f-2" xsi:type="fish"> <name>Whale</name> <origin>Europe</origin> <size>Large</size> </animal> <animal animalID="b-5" xsi:type="bird"> <name>Parrot</name> <origin>Europe</origin> </animal>
以下のスキーマが出てきましたが、完全に間違っていると思います。
<xsd:element name="bird" substitutionGroup="animals"
type="birdType"/>
<xsd:element name="fish" substitutionGroup="animals"
type="fishType"/>
<xsd:element name="animals">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="animal" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="animal">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="bird" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>