タイトル
 メニューにないコーナーはTopからいけます
TOP → This Page

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>


TOP → This Page
Valid CSS!