ホーム > X-Plus > XML Square >  デベロッパーズコーナー  >  エンジニアのためのXMLスキーマ講座

この記事を送る はてなブックマークに追加する BuzzurlにブックマークBuzzurlにブックマーク Yahoo!ブックマークに登録
テキストリンクコードを取得する

デベロッパーズコーナー:エンジニアのためのXMLスキーマ講座「基礎2:新しいデータ型を作る!」(1)

2002年08月07日作成 

2002年8月7日更新
(株)日本ユニテック
奥井 康弘

<この記事はDigital Xpress 2001 Vol.6(12-1月号)に掲載されたものです>

前回は、XML Schema指定として要素宣言、型定義、属性宣言の3つについて説明しました。今回は、データ型について詳しく説明します。特に、文字列のパターンを指定する方法を詳しく説明し、みなさん独自のデータ型を作る「達人」になっていただきます!

要素や属性の構造を定義するのが型定義です。XML Schemaでは、次の2種類の型定義を行うことができます。

    ●  単純型定義(simple type definition)
    ●  複合型定義(complex type definition)

複合型定義は、ある要素の内容に出現する要素や属性を定義するために使用します。これについては、前回説明を行いました。今回説明するデータ型は、文字列で表現されるものが、日付を表すのか、時刻を表すのか、数値を表すのか、そしてその数値の範囲は、などなど、単なる任意の文字列という以上の書き方を行わせるような指定をするために使用されます。

日付や時刻や数値という一般的なものは、XML Schema Part 2に前もって用意されたものを使うことができます。これをビルトインデータ型(built-in datatype)と呼びます。

1.ビルトインデータ型

単純型定義は内容としてテキストしか持たないデータ型を定義します。前回の説明では、要素でテキストだけを内容に持つものとして、xsd:stringやxsd:positiveIntegerというビルトインデータ型を使用しました。

<xsd:element name="name" type="xsd:string"/>

<name>山田一郎</name>

XML Schema規格のPart 2で用意されているビルトインデータ型の種類とその意味を表1に示します。

<表1.XML Schema Part 2 で定義されているビルトインデータ型>
説明
xsd:string 文字列
xsd:normalizedString 連続する空白文字(タブ、改行など)を1つの半角スペースに置き換えた(正規化した)文字列
xsd:token 空白文字で文字列を区切りトークン化した文字列
xsd:byte 1バイト整数で、最小値が-127、最大値が128
xsd:unsignedByte 非負の整数で、最大値が255
xsd:base64Binary バイナリデータのbase64方式による表記
xsd:hexBinary バイナリデータの16進数による表記
xsd:integer 整数
xsd:positiveInteger 正の整数
xsd:negativeInteger 負の整数
xsd:nonNegativeInteger 非負の整数
xsd:nonPositiveInteger 非正の整数
xsd:int 4バイト整数で、最小値が-2147483648、最大値が2147483647
xsd:unsignedInt 非負の整数で、最大値が4294967295
xsd:long 8バイト整数、最小値が-9223372036854775808、最大値が9223372036854775807
xsd:unsignedLong 非負の整数で、最大値が18446744073709551615
xsd:short 2バイト整数で、最小値が-32768、最大値が32767
xsd:unsignedShort 非負の整数で、最大値が65535
xsd:decimal 10進数
xsd:float 単精度の32ビット浮動小数
xsd:double 倍精度の64ビット浮動小数
xsd:Boolean ブール値
xsd:time 時刻 hh:mm:ss.sss±hh:mm 例13:20:00-05:00
xsd:datetime 日付と時刻 CCYY-MM-DDThh:mm:ss.sss±hh:mm
xsd:duration 特定の期間の時間 PnYnMnDTnHnMnS
xsd:date 日付 CCYY-MM-DD
xsd:gMonth 月 --MM--
xsd:gYear 年 CCYY
xsd:gYearMonth 年月 CCYY-MM
xsd:gDay 月ごとに繰り返す特定の日付 ---DD
xsd:gMonthDay 年ごとに繰り返す特定の日付 --MM-DD
xsd:Name 「名前」
xsd:QName 名前空間で定義される修飾名
xsd:NCName 「名前」からコロンを除いたもの
xsd:anyURI URI
xsd:language xml:lang属性値
xsd:ID 識別子
xsd:IDREF 識別子参照値
xsd:IDREFS 複数のIDREFの属性値
xsd:ENTITY エンティティー参照値
xsd:ENTITIES 複数のエンティティー参照値
xsd:NOTATION 記法属性
xsd:NMTOKEN 名前トークン
xsd:NMTOKENS 複数の名前トークン

これらのビルトインデータ型だけを使ってスキーマを書けば、xsd:elementやxsd:attributeのtype属性でxsd:XXXと指定すれば済みます。

ただし、「社員名簿を作るときに電話番号のパターンをデータ型として表現したい」とか「数字の桁数に制限を設けたい」などのデータ仕様要求が出てくるかもしれません。そのような場合のために、XML Schemaではユーザーがデータ型を作ることができるような仕組みを持っています。これを行うときに使用するのが、単純型定義(simple type definition)です。

>>続いて「独自データ型」の定義方法をみてみましょう。




関連サービス

XMLスキーマの策定、作成業務



この記事と関連の高い記事

関連キーワード:XMLスキーマ


関連キーワード:データ型




ページトップへ戻る