XMLスキーマドキュメントの書き方 (1)

2001年10月21日(日)更新


■XMLスキーマドキュメントの書き方 - 簡単なところから -

たけち: じゃあ、今回からXMLスキーマの書き方を学んでいこう。

さらら: えぇ、お手柔らかにね。

たけち: うん。あんまり、形式ばった説明はしないからね。それに簡単なところから少しずつ見ていくから心配しないで。それに、XMLの構造についてはDTDのところで学んでいるから大丈夫だよ。

さらら: は〜い。(でも、もう忘れちゃったかも・・・・ (^ ^; )

たけち: じゃ、さっそく。。。XMLスキーマはDTDと同じように、要素の定義や属性の定義から成り立つんだけど、それらのことをスキーマコンポーネントと言うんだ。

さらら


■XMLスキーマを構成するスキーマコンポーネント

さらら

さらら: スキーマコンポーネント?

たけち: そう。スキーマを構成する要素を、スキーマコンポーネントと言うんだ。スキーマコンポーネントとしては、要素宣言や属性宣言など13種類あるんだけど、ここで一辺に羅列しないで具体的に少しずつ学んでいこうね。まずは、もっとも簡単なXMLスキーマの書き方からみてゆこう。

さらら: えぇ、私にはそのほうがいいわ。

たけち: じゃ、次の図を見て。manyoというルート要素の子供にpoemという要素が並んでいるようなXMLドキュメントを考えてみよう。

XMLドキュメントの簡単な例


■XMLスキーマドキュメントの簡単な例

さらら: poem要素は、manyoの子供として沢山並ぶってことね。

たけち: うん。ここでは、poem要素は、「1つ以上ある」ってしておこうね。じゃあ、これをXMLスキーマドキュメントとしてどう書くかを次の図に載せておくね。

XMLドキュメントの簡単な例

さらら: あらら・・・簡単っていっても、ずい分とたくさん書かなくちゃいけないのね。

たけち: でも、manyo要素とpoem要素の関係はわかると思うけど。2行目は、「XMLスキーマドキュメントです」ってことを言っているよね。

さらら: あっ、そうか。で、やっぱり、xmlnsの指定が必要なのね。

たけち: 緑色の四角で囲った要素宣言が、poem要素がどんなものかを示しているんだ。次の図でもうすこし詳しく説明するね。

さらら


■要素宣言の内容

poem要素宣言の説明

さらら: name="poem"は名前でしょ、これは簡単ね。で、type="xsd:string"が、「文字列」なのね。他にはどんなものがあるの?

たけち: あっ、typeとして他には、binary, boolean, byte, date,decimal, time, short, それから。。。

さらら: あっ、もっ、もういいわ・・・ (^ ^; (わかんないもの。。。) で、minOccursとかmaxOccursはそれぞれ、最小、最大の場合の要素の個数を示しているのね。

たけち: そう、その通り。0, 1, 12, 250などの数値と"unbounded(無制限)"の指定ができるんだよ。あっ、そうそう、minOccursmaxOccursは、省略ができるんだけど、そのときは、「1」と見なされるんだ。

たけち


■complexType, sequence

さらら: あと、complexType, sequenceのところは?

たけち: うん。それぞれ次のような意味なんだ。

complexType(複合タイプ)
子供の要素の構造や、要素の属性を定義するときに使います。スキーマコンポーネントの一つです。
sequence(シーケンス)
complexType(複合タイプ)の定義で、複数現れる要素の出てくる順序を指定します。パーティクル(particle)と呼ばれるスキーマコンポーネントの一つです。

さらら: この例では子供の要素に一つしかないからsequenceって変な感じがするけど、二つ以上の要素があるときは、その順序がきちんと定義できるのね。

たけち: 簡単な例としては、だいたいの感じはつかめたよね。

さらら: えぇ、だいたいね・・・・ (^ ^*

たけち: じゃあ、今回はこれでおしまい。

さらら: ありがと。

→ 次回は、■XMLスキーマドキュメントの書き方 - 属性の定義 - です。。。 (^ ^)v

さらら