概要
<?xml version="1.0" encoding="Shift_JIS" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
・・・・・・
</xsd:schema>
XML Schemaでは2種類のデータ型が存在する。要素の宣言は以下のデータ型の種類により異なる。
データ型 |
説明 |
複雑型 |
子要素または属性を持つ要素のデータ型 |
単純型 |
子要素及び属性を持たない要素のデータ型、あるいは属性値のデータ型 |
これらの考え方(複雑型の"sequence"要素や"choice"要素等)はデータ型を記述するASN.1と似ている。
参考
単純型
要素を宣言するにはxsd:element要素を使用して宣言する。
<xsd:element name="string" type="xsd:string" minOccurs="number" maxOccurs="number" />
- 属性
- name
属性には要素名を指定する。
- type
データ型として、組み込みデータ型または複合型(xsd:complexType)を指定する。
- maxOccurs
最大出現回数を指定します。maxOccursを省略すると"1"を指定したものとみなされます。出現回数の上限をなくす場合は maxOccurs="unbounded" と指定します。
- minOccurs
最少出現回数を指定します。minOccursを省略すると"1"を指定したものとみなされます。"0"を指定すると省略可能な要素となります。
複雑型(子要素の定義)
複雑型の要素を宣言する場合は、xsd:complexType要素を"xsd:elemnet"要素の直下に記述します。
子要素が複数存在する場合は"xsd:complexType"要素の内容として、xsd:sequence要素を用い、"xsd:element"要素を宣言します。
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="customer">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="address" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="customer">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="address">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="prefecture" type="xsd:string" />
<xsd:element name="city" type="xsd:string" />
<xsd:element name="street" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="customer">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name" type="xsd:string" />
<xsd:element ref="address" /> ... (参照)
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="address">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="prefecture" type="xsd:string" />
<xsd:element name="city" type="xsd:string" />
<xsd:element name="street" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
複雑型(属性の定義)
属性は子要素と同様、"xsd:complexType"の内容に記述し、子要素を記述した後にxsd:attribute要素を使用して宣言する。
<xsd:attribute name="名前" type="データ型" use="..." default="デフォルト値" fixed="固定値" />
- 属性
- type
データ型として、組み込みデータ型または複合型(xsd:complexType)を指定します。
- use
定義した属性が必須かどうかを次の値の中から指定します。- required:必須
- optional:省略可能(規定値)
- prohibited:存在を禁止
- default
use属性がoptional の場合、省略時のデフォルト値を指定します。default 属性と fixed 属性は併用できません。
- fixed
固定値を指定します。default属性とfixed属性は併用できません。
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="customer">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="address" type="xsd:string" />
</xsd:sequence>
<!-- 属性を追加する -->
<xsd:attribute name="id" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
</xsd:schema>
最終更新:2011年05月06日 13:41