XML > XML Schema > 型の派生
型の派生とは
型の派生とは予め用意されているデータ型に制限や拡張を加えた新しいデータ型を定義すること。
型の派生には元となる型の種類によって2 つに分けられる。
・単純型の派生:単純型定義によるデータ型の制限
・複合型の派生:複合型定義による型の制限と拡張
単純型の派生
単純型の派生は simpleType を用いる。
(書式) <xsd:simpleType name="新データ型名前"> <xsd:restiction base="元データ型名"> <制限種類 value="制限値"> </xsd:restriction> </xsd:simpleType> |
利用可能な制限は以下のとおりである。
制限種類 | 内容 |
---|---|
xsd:enumeration | 列挙値 |
xsd:fractionDigits | 小数点以下の桁数 |
xsd:length | 文字列の文字数 |
xsd:maxExclusive | 最大値(最大値未満) |
xsd:maxInclusive | 最大値(最大値以下) |
xsd:maxLength | 文字数の最大値 |
xsd:minExclusive | 最小値(最小値より大きい) |
xsd:minInclusive | 最小値(最小値以上) |
xsd:minLength | 文字数の最小値 |
xsd:pattern | 許可する文字列のパターン |
xsd:totalDigits | 数値の桁数 |
xsd:whiteSpace | 空白文字の正規化 |
(例)1〜12までの整数型 <simpleType name="intMonth"> <xsd:restriction base="xsd:int"> <xsd:minInclusive value="1"/> <xsd:maxInclusive value="12"/> </xsd:restriction> </simpleType> <xsd:element name="月" type="intMonth"> |
ただし、boolean 型に length の制限を付けたり
float 型に totalDigits の制限を付けたりすることはできない。
複合型の派生
複合型の派生には以下のタグを用いる。
制限 | 内容 |
---|---|
complexContent | 複合型からの派生 |
extension | 拡張 |
simpleContent | 単純型からの派生 |
restriction | 制約 |
(例)氏名と性別を持ったスタッフ型を拡張し、 所属部署を持った正社員型、派遣元を持った派遣社員型を定義する <xsd:complexType name="スタッフ"> <xsd:attribute name="氏名" type="xs:string"/> <xsd:attribute name="性別" type="xs:string"/> </xsd:complexType"> <xsd:complexType name="正社員"> <xsd:complexContent> <xsd:extension base="スタッフ"> <xsd:attribute name="所属部署" type="xs:string"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="派遣社員"> <xsd:complexContent> <xsd:extension base="スタッフ"> <xsd:attribute name="派遣元" type="xs:string"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> |