UML から XSD への変換における単純型および適用可能なファセット

単純型は XSD スキーマにおいて直接使用できる共通データ型を表し、他の単純型を派生する目的にも使用できます。各単純データ型は適用可能なファセットを持ち、これがその単純データ型に対する制約を指定します。

XSD ファセット

ファセットにより、データ型に制約を指定することができます。 ファセットを使用して、有効な値の範囲を指定したり、値の精度や長さを指定したり、有効な値のリストやパターン・マッチングを定義したりすることが可能です。

以下の表は、XML スキーマ言語の一部であるファセットの一覧です。
ファセット 定義
fractionDigits 小数桁数は x 以下でなければなりません。
length 値の長さは x でなければなりません。
maxExclusive 値は x より小さくなければなりません。
maxInclusive 値は x 以下でなければなりません。
maxLength 値の長さは x 以下でなければなりません。
minExclusive 値は x より大きくなければなりません。
minInclusive 値は x 以上でなければなりません。
minLength 値の長さは x 以上でなければなりません。
pattern x は値が一致する正規表現の 1 つです。
totalDigits 有効数字の桁数は x 以下でなければなりません。
whitespace スキーマ・プロセッサーは x に応じて、空白文字の保存、置換、または省略を行う必要があります。

単純型および適用可能なファセット

単純型はデータの抽象概念を具体的に表すものです。データの抽象概念の例として、整数が挙げられます。他の単純型は、これらの組み込み単純型から派生可能です。

以下の表は、XML スキーマ言語に組み込まれた単純データ型の一覧です。この表は、各単純データ型に対して適用可能なファセットをリストしています。 W3C 勧告により列挙型がファセットとして指定されていますが、この表に列挙型はリストされません。 列挙型を表すには、UML 列挙を使用するか、«enumeration» ステレオタイプを持つクラスを使用します。

組み込み単純データ型 適用可能なファセット
ENTITY, ID, IDREFS

length, maxLength, pattern
minlength は 1 です。
whitespace に対する value 属性は、固定値の collapse です。

名前

length, maxLength, minLength
whitespace に対する value 属性は、固定値の collapse です。
パターンは ¥i¥c* です。

NCName

length, maxLength, minLength
whitespace に対する value 属性は、固定値の collapse です。
パターンは [¥i-[:]][¥c-[:]]* です。

NMTOKEN

length, maxLength, minLength
whitespace に対する value 属性は、固定値の collapse です。
パターンは ¥c+ です。

NMTOKENS

length, maxLength
minlength は 1 です。
whitespace に対する value 属性は、固定値の collapse です。

NOTATION

length, maxLength, minLength, pattern
whitespace に対する value 属性は、固定値の collapse です。

QNAME

length, maxLength, minLength, pattern
whitespace に対する value 属性は、固定値の collapse です。

anyURI, base64Binary, hexBinary

length, maxLength, minLength, pattern
whitespace に対する value 属性は、固定値の collapse です。

language

length, maxLength, minLength
空白文字の値は collapse です。
パターンは ([a-zA-Z]{2}|[iI]-[a-zA-Z]+|[xX]-[a-zA-Z]{1,8})(-[a-zA-Z]{1,8})* です。

float, double

maxExclusive, maxInclusive, minExclusive, minExclusive, pattern
whitespace に対する value 属性は、固定値の collapse です。

decimal

maxExclusive, maxInclusive, minExclusive, minExclusive, fractionDigits, totalDigits, pattern
whitespace に対する value 属性は、固定値の collapse です。

整数データ型 (integer、byte、int、long、negativeInteger、nonNegativeInteger、 nonPositiveInteger、positiveInteger、unsignedByte、unsignedInt、unsignedLong、unsignedShort)

maxExclusive, maxInclusive, minExclusive, minExclusive, totalDigits, pattern
fractionDigits は fixed 値 0 になります。
whitespace に対する value 属性は、固定値の collapse です。

日時データ型 (date、time、dateTime、gYear、gYearMonth、gMonth、gMonthDay、gDay、duration)

maxExclusive, maxInclusive, minExclusive, minExclusive, pattern
whitespace に対する value 属性は、固定値の collapse です。

string, normalizedString, token

length, maxLength, minLength, pattern
whitespace の値は以下のいずれかになります。
string に対しては preserve。
normalizedString に対しては replace。
token に対しては collapse。


フィードバック