2003年4月6日(日)更新 |
■(例-1) 要素ごとのcolor属性をローカル属性宣言する
たけち: 前回は実際のXML Schemaのコードは出さずに、概念的なことばかりを話していたから、ちょっとわかりにくかったよね。 さらら: えっ、えぇ・・・(^ ^; たけち: 今回は、実際のコードを見ながら、具体的にどうなるかを見ていくことにするね。まずは次の例をどう書くかを考えてみようね。 |
※XMLデータ例: 万葉歌 |
さらら: 前にみた例ね。 たけち: このXMLデータのDTDとXML Schemaは次のようになるね。 |
※上記XMLインスタンスに対応するDTD |
※上記XMLインスタンスに対応するXML Schema |
たけち: ちなみに、このDTDをパラメータエンティティを使って書くと次のようになるね。、 |
※DTD: パラメータエンティティを使用 |
たけち: またこのXML Schemaを、名前付き属性グループを使って書くと、次のようになるね。 |
※W3C XML Schema: 名前付き属性グループを使用 |
たけち: いいよね。 さらら: えぇ。 たけち: 今まで学んできたように、このcolorという属性は、所属する要素に関係なく、一定の目的を持って一定のデータ型をとる属性なんだよね。ということは、名前空間接頭辞の付いたグローバル属性にした方がいいよね。 さらら: あっ、そうよね。 |
■(例-2) color属性をグローバル属性宣言する
たけち: その場合、XMLデータは次のようになるよね。 |
※XMLデータ例: グローバル属性 mp:color |
さらら: そうね、このmp:colorが名前空間接頭辞付きの属性なのよね。 たけち: 前にも少し実際の例を見たけれど、この場合、XML Schemaは次のように書くことができるんだよ。 |
※W3C XML Schema: 名前付き属性グループを使用 |
たけち: ここで見て欲しいのが、 さらら: へぇ〜。 たけち: それに対して、今まで見てきたような複合型定義の中で行われる属性宣言をローカル属性宣言と呼ぶんだよ。上記のような場合、今度は複合型定義の中で、 さらら: なるほど。グローバル属性宣言をすることによって、こういう名前空間接頭辞がついた属性、つまりグローバル属性になるわけなのね。 たけち: と、簡単に言い切ってしまえるといいけれど、必ずしもそうじゃない場合があるんだよね。 さらら: えっ。(^ ^; たけち: じゃあ、名前空間を持たないXMLデータの場合について次回にお話しようね。 さらら: あっ。はい。 グローバル属性とグローバル属性宣言 その6に続きます...... (^ ^; |
■XMLスキーマのコーナーは、TAKABEさま(XSLTの遊び部屋)の全面的なご協力をいただいて作成しています。 |