2002年8月25日(日)更新 |
■複合型
さらら: ねぇ、たけちぃ。今までたくさん勉強してきた気がするけれど、よ〜く考えたら、DTDでいうと たけち: ぎくっ..... (^ ^; う〜ん、確かに単純型のデータ型というDTDにない部分を特に詳しく勉強してきたから、今ひとつ「スキーマの勉強をしている」という感じがもてなかったかもしれないね。でも今回から さらら: 単純型というのは内容にテキストを持つもので、複合型はそうじゃないものよね。 |
たけち: う〜ん、それは厳密には正しくないんだ。内容にテキストを持つものでも属性などを持っているのは複合型になるんだよ。そういうデータ型は属性の宣言には使えないからね。 さらら: あ、そっ、そうだったわね ..... (^ ^; たけち: でも今、さららの指摘した部分というのはすごく重要な点なんだよ。複合型の派生のさせ方を考える際に、内容がテキストなのかそうでないのか、というのは大きな違いを生むんだ。だから複合型は以下のように分類できるんだよ。 |
■単純型内容を持った複合型
さらら: 単純型内容を持った複合型って何なの? たけち: 言葉で言うと難しく感じたかもしれないけれど、さっき言った内容はテキストだけれども、属性を持っているというデータ型だよ。 さらら: こういう形をとるデータ型を単純型内容を持った複合型って言うのね。 たけち: そう。そしてこの単純型内容を持った複合型は、複合型なんだけれども、単純型に近い複合型として特別扱いされているんだよ。単純型の特徴を残した複合型というところかな。 |
さらら: えっ、カモノハシ? 万葉の頃の日本に、カモノハシっていないんだけど・・・・どうしてたけちは知っているの? たけち: あっ...(^ ^; いや... さらら: ... (^ ^* それはそうとして、この形式のXMLスキーマが前にも出てきたわよね。 たけち: そう、これのXMLスキーマは以下のようになるんだね。 |
<?xml version="1.0" encoding="Shift_JIS" ?> |
■simpleContent, complexContent
たけち: まず今まで単純型で さらら: えぇ。 たけち: 次にさっきも言ったように、複合型の分類では、内容がテキストなのか、つまり単純型内容(Simple Content)を持っているのか、それともそうじゃない複合型内容(Complex Content)を持っているのか、ということが大きな違いになってくるんだ。そのために、ここでは単純型内容(Simple Content)を持ったものを定義しているんですよ」という意味で、 さらら: ということは、複合型内容(Complex Content)を持った複合型を定義する場合には、ここが |
■拡張(extension)
たけち: そう、そのとおりだよ。ただ、その話はまた後でするね。で、次に内容がxsd:string型なんだけれど、そのxsd:string型がとる範囲を制限(restriction)して派生させるわけじゃないよね。属性というさらに余分なものがくっつくわけだから、これは拡張(extension)しているんだ。そこで、 さらら: 制限(restriction)じゃなくて、拡張(extension)なのね。制限(restriction)はこういう場合には使えないわけなのね。 たけち: そうなんだよ。ただ、制限(restriction)で「単純型内容を持った複合型」を定義する方法がまた別にあるんだけど・・・・・ |
さらら: えっ? たけち: あ、ごめん...(^ ^; これについては後で説明することにするね。今はこの例題の説明を続けようね。最後に属性なんだけれど、 |
さらら: なるほど、そういうことなのね。 たけち: 次回はこの属性の宣言について詳しく勉強しようね。 さらら: は〜い。 → 次回は、属性の宣言です。。。。 (^ ^)v |
■XMLスキーマのコーナーは、TAKABEさま(XSLTの遊び部屋)の全面的なご協力をいただいて作成しています。 |