2003年2月9日(日)更新 |
■同じ名前空間のスキーマを参照する
たけち: 前回は異なる名前空間のスキーマを参照する方法について勉強したよね。 さらら: そうね、importだったわね。 たけち: ところで、異なる名前空間のスキーマを参照する方法があるんだったら、同じ名前空間のスキーマを参照する方法があってもいいよね。 さらら: あ、それはそうね。それって、一つのスキーマの定義が複数のファイルに分散するってことなの? たけち: そう、そういうことだね。まずは前回と似た例を見てみようね。 |
![]() |
※XMLデータ例: 万葉歌人-1 |
たけち: このXML Schemaはどう書けばいいか、もうわかるよね。 さらら: え、えっと(^ ^;) |
※XML Schema例: 万葉歌人-1 【pi1.xsd】 |
さらら: どうかしら。 たけち: そうだね。このスキーマの名前をここでは【pi1.xsd】としておこうか。さてここから、前回見たような、万葉歌人のデータについてXMLデータのXML Schemaを作ってみよう。 |
※XMLデータ例: 万葉歌人-2 |
さらら: え〜っと。これって、前回は次のようなXML Schemaだったわね。 |
※XML Schema例: 万葉歌人-2 |
たけち: 前回はそうだったね。さて、このスキーマと、最初に示した「pi1.xsd」というスキーマを比較してみるとわかるけれど、違いは |
<xsd:complexType name="PeopleType"> |
たけち: の部分があるかないかだけだよね。ということは【pi1.xsd】が先にあるものとして、それを参照して書けば、簡単に短く同じものが書けると思わないかい。 さらら: あっ、そういえばそうねぇ〜。でも、どう書けばいいのかしら。 たけち: で、この場合は次のように書くんだ。 |
■【pil.xsd】をincludeする例
※XMLスキーマ例: 万葉歌人-2: 【pil.xsd】をinclude |
さらら: あら、何か前回とよく似ているような... たけち: そうだね。参照するということでは変わりがないからね。見て欲しいのは、 さらら: えぇ、分かるわ。 たけち: ただしimportと違って、includeではnamespace属性が存在しないんだよ。includeの場合は、同じ名前空間のスキーマを参照することが決まっているから、importのようなnamespace属性は必要ないんだね。 さらら: そっかぁ。なるほど、わかったわ(^ ^*) たけち: 次回はincludeに少し似ているけれども、それをさらに発展させたようなredfineについて勉強するね。 さらら: あっ、は〜い!! 次回はredefineです。...... (^ ^)v |
![]() |
■(注) |
■XMLスキーマのコーナーは、TAKABEさま(XSLTの遊び部屋)の全面的なご協力をいただいて作成しています。 |