<xs:simpleType name="ItemCategoryEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="Kitchen"></xs:enumeration>
<xs:enumeration value="Bathroom"></xs:enumeration>
</xs:restriction>
</xs:simpleType>
「ItemCategoryEnum」の可能な列挙値と同じ数の「Category」という名前のノードを持つ必要がある要素「Inventory」を定義することは可能ですか?
したがって、上記の例では、準拠する XML は次のようになります。
<Inventory>
<Category name="Kitchen">
<Item></Item>
<Item></Item>
<Item></Item>
</Category>
<Category name="Bathroom">
<Item></Item>
<Item></Item>
<Item></Item>
</Category>
</Inventory>
タイプ「ItemCategoryEnum」として「Category」の「name」属性を指定するだけでは、ここでは十分ではありません。これは、「name」属性が列挙型にリストされている以外の値を持つことができないことを確認するだけだからです。列挙値の一部が使用されていなくても問題はありません。これは、次の XML も準拠することを意味します。
<Inventory>
<Category name="Kitchen">
<Item></Item>
<Item></Item>
<Item></Item>
</Category>
</Inventory>
ここには「バスルーム」に該当するカテゴリはありません。この事実をエラーとして捉えてほしい。
-サンドディープ