2002年6月16日(日)更新 |
■データ型: 単純型
たけち: 前回は内容がテキストになっている要素が一つだけあるXMLスキーマを学 んだよね。 さらら: えぇ、DTDでいうとつぎのような場合のスキーマだったわね。 <!ELEMENT a (#PCDATA)> たけち: うん。こういった要素は「単純型」だというんだよ。 さらら: そうなの。。。。ということは、「複雑型」なんてのがあってことなのかしら。 たけち: あっ、う〜ん。 さらら: どしたの? たけち: うん。そのことについてはもっとあとからでもいいかなって思っていたんだけどね。さららがそういう風に疑問を持つんだったら説明しておこうかな。 さらら: そうなの?。でも、まだ良く分かんないかもしれないけどお話して。 たけち: そっか。じゃあちょっとだけ先走りして、前回よりも複雑な形式をみてみようね。 |
<poem> |
たけち: こういう形式はDTDだったら、どう書けるかな? さらら: えっ、え〜と、こうかしら。。。。。 |
<!ELEMENT poem (mkana, yomi)> |
■ふたつのデータ型
たけち: そうだね。ところで、この例のデータ型は単純型とは言わないで、複合型(Complex type)って言うんだ。Complexて、複雑な、とか複合した、とかいう意味だね。ただ、単純型と複合型の意味の違いについては、次回以降で説明するから、データ型には単純型(Simple Type)と複合型(Complex type)の二種類がある、とだけ覚えておいてくれればいいからね。。 さらら: あぁ、そうなの。 たけち: XMLドキュメントのある要素の構造やその要素が持つ属性がどんな風になっていなくちゃいけないのかを指定(宣言)するのに、データ型というものを使うんだね。そして、そのデータ型には、単純型(Simple Type)と複合型(Complex type)があるってことだね。 |
さらら: うんうん。言葉としては分かるわ。でも、まだ具体的なイメージができないからなんだか、モヤモヤしちゃうわね。たけちのせいじゃないけど。 たけち: そうだね。じゃあこれをXMLスキーマで宣言したらどうなるのか見てみよう。 さらら: あっ、そうね。それがいいわ。 たけち: さっきのpoemの例をXMLスキーマで宣言すると次のようになるんだ。 |
さらら: あらららら。ずい分と込み入った感じね。あっ、だから、Complex Typeって言うのね。。。。。 (^ ^; たけち: あっ、うっ。。じゃあ、ちょっと説明しておこうね。 |
4行目 poemという要素は、PoemType型です。 |
さらら: そうなの〜。。。<xsd:sequence>って何? refというのもよくわからないけれど… たけち: それはもっと先に説明するから、おおざっぱな印象だけつかんでおいてね。 さらら: ふーん、XMLスキーマだと要素を宣言するためには、なんでもまずデータ型がないといけないのね。 たけち: そうなんだよ。このあたり、なんでもまずクラスというデータ型がないとプログラミングできないJava言語なんかと似ている点の一つだね。ちなみにこれは一般的な意味での「定義」ということなんだけれど、XMLスキーマの世界では厳密にはこれは「定義(definition)」と言わずに「宣言(declaration)」と言うんだよ。 さらら: あら、またJava?! |
■参考までに Javaのデータ型の例
たけち: う〜ん。そんなに嫌わないで。参考までに、Javaだったらどうなるのか載せておくね。 |
class PoemType { |
さらら: やっぱり、全然わかんないわね。。 (^ ^; たけち: わかる必要はないから、眺めてみるだけでいいんだ。 さらら: Javaなんて全然わからないし、まだXMLスキーマもよくわからないけれど、XMLスキーマにはデータ型が必要ってことだけはわかったわ。 たけち: うん、まずはそこから覚えてね。きょうはここまで。おつかれさま。 さらら: うっ、うん。ありがと。 → 次回は、属性の宣言の基本です。。。。 (^ ^)v |
■XMLスキーマのコーナーは、TAKABEさま(XSLTの遊び部屋)の全面的なご協力をいただいて作成しています。 |