2002年7月14日(日)更新 |
■制約ファセット
たけち: 前回は単純型における制限(restriction)を使ったユーザ派生データ型の定義の方法を学んだよね。 さらら: えぇ。で、それには制約ファセットというものを使う、ということを学んだわ。 たけち: 今回からは、そのほかにどんな制約ファセットがあるのか見てみよう。 さらら: 前回は、「最小値」を定義するminInclusiveと「最大値」を定義するmaxInclusiveというが出てきたわね。 たけち: そうだね。でも、minInclusiveだけが「最小値」じゃないし、maxInclusiveだけが「最大値」というわけじゃないんだよ。 さらら: えっ、「最小値」「最大値」を示すものが他にもあるの!? |
■minExclusiveとmaxExclusive
たけち: うん。minExclusiveというのと、maxExclusiveというのがあるんだよ。minInclusiveは指定したその数値も含めた最小値だけれども、minExclusiveはその数値を含めない最小値になるんだ。 さらら: あっ、そうなの。 たけち: 英語でinclusiveは、"…を含めて"という意味で、exclusiveは、"…を除いて"という意味なんだよ。 さらら: あっ、なるほど〜。 たけち: つまり、前回のように |
さらら: そうなんだぁ。じゃあ、maxExclusiveというのも同じような意味なのね。 たけち: うん。同様にmaxInclusiveはその数値も含めた最大値だけれども、maxExclusiveはその数値を含めない最大値になるんだね。つまり、前回のように さらら: なるほど。 たけち: 例えば前回のスキーマをこんなふうに改造してみるね。 |
<?xml version="1.0" encoding="Shift_JIS" ?> |
たけち: 前回は「0以上で100以下の整数」という意味だったけれど、これは「0より上で100未満の整数」つまり1〜99の整数という意味になるんだよ。 さらら: なるほど、そうなるわけね。わかったわ。 |
■totalDigitsとfractionDigits
たけち: 数値関係の制約ファセットとしては他にtotalDigitsとfractionDigitsがあるよ。totalDigitsは桁数の最大値を規定するし、fractionDigitsは小数部の桁数の最大値を規定するんだ。 さらら: ふ〜ん。。 たけち: 次の例を見て。 |
<?xml version="1.0" encoding="Shift_JIS" ?> |
たけち: この例では、xsd:nonNegativeInteger、つまり "0以上の整数" を基準型にして、totalDigitsを "2桁まで" と規定しているんだ。つまりは、0〜99の整数を範囲とする単純型になるんだね。 さらら: なるほど〜。で、fractionDigitsはどう使うの? たけち: そうだね。それについては次の例を見て。 |
<?xml version="1.0" encoding="Shift_JIS" ?> |
たけち: この例では、xsd:decimal、つまり "10進数" を基準型にして、fractionDigitsを "2桁まで" と規定しているんだ。ということは、1.25のように小数部が2桁までの数値が許されるけど、たとえば、1.156のように小数部が3桁の実数は許されない、ということになるね。 さらら: うん。やっとわかったわ。でも、制約ファセットっていろいろな種類があるのね。 たけち: そうだよ。次回は文字列関係の制約ファセットを勉強しようね。 さらら: えっ? あ、まだあったのね (^ ^; たけち: さっ、さらら。。。(^ ^; → たけち、あせりつつも制約ファセット(2): 文字列の制約ファセットにつづきます。。。。 (^ ^)v |
■XMLスキーマのコーナーは、TAKABEさま(XSLTの遊び部屋)の全面的なご協力をいただいて作成しています。 |