⑦XMLスキーマで階層構造の定義(出現順番が決まっていない場合)
XMLスキーマで階層構造を定義してみます。(出現順番が決まっていない場合)
簡単なサンプルを作ってみます。
■All.xml
<?xml version="1.0" encoding="UTF-8"?> <nameList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="All.xsd"> <id>1</id> <name>hogehoge</name> </nameList>
■All.xsd
<?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="nameList" type="nameListType" /> <xsd:complexType name="nameListType"> <xsd:all> <xsd:element name="id" type="xsd:string"/> <xsd:element name="name" type="xsd:string"/> </xsd:all> </xsd:complexType> </xsd:schema>
「nameListType」を定義しました。
「xsd:all」で定義しているので、
… <xsd:complexType name="nameListType"> <xsd:all> <xsd:element name="id" type="xsd:string"/> <xsd:element name="name" type="xsd:string"/> </xsd:all> </xsd:complexType> …
Eclipseで、XMLスキーマ検証してみます。
XMLファイルを開いて、右クリックメニューの「検証」で、XMLスキーマ検証します。
エラーは出ませんね。
All.xmlの
■All.xml
<?xml version="1.0" encoding="UTF-8"?> <nameList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="All.xsd"> <name>hogehoge</name> <id>1</id> </nameList>
「All.xsd」では、