2002年1月20日(日)更新 |
■XML Baseってな〜に?
さらら: XML Baseってな〜に? たけち: XLinkでリンク先を指定するのにURIを使ったよね。 さらら: えっ、えぇ。。。(どっ、どうしよう。すっかり忘れているわ。。。) (^ ^; そっ、そうだったわね。 たけち: XML Baseは、URIの指定の仕方についての仕様なんだ。XLinkでは、xlink:href="URI"のようにリンク先をURIで指定するよね。そのURIを指定するのに、すべてのURIを、たとえば、"http://www6.airnet.ne.jp/manyo/index.html" のように絶対URIで書くと長くなって読みにくいし、メンテナンスしたりするのも不便だよね。 さらら: そうだわね。 |
■基底URIと相対URI
たけち: たとえば、ファイルのありかを示すのにある場所からの相対で示すように、URIも相対URIとして指定できたらいいよね。 さらら: あっ、そうね。そんな風に指定できると楽だし、読みやすいわね。その指定の仕方を決めたのが、XML Baseなのね。 たけち: そうなんだ。相対URIを指定するってことは、そのベースとなる絶対URIの指定が必要になるよね。これを基底URIっていうんだ。つまり さらら: うん。基底URIが無くって、相対URIだけだと意味がないのよね。 |
■xml:base属性
たけち: この基底URIを指定する方法なんだけど、XMLドキュメントの要素に、xml:base属性で指定するんだ。これについては、次のURLに詳しく載っているよ。 |
|
さらら: xml:base属性に基底URIを書くのね。 たけち: そうそう。じゃあ、簡単な例で見てみてみようね。図に示すようなURIに万葉集のテキストがあるとするね。 |
■xml:baseのサンプル
たけち: XLinkのサンプルドキュメントで、overview.xmlやvol1.xml, vol2.xml, ..... vol20.xmlドキュメントをリンクしているとするね。 さらら: えぇ。単純なリンクなのね。 たけち: じゃあ、サンプルドキュメントのリストを次に載せるね。二つの要素でxml:base属性を使っているよ。 |
XLink(単純リンク)でのXML Base使用の簡単な例 |
---|
<?xml version="1.0" encoding="Shift_JIS"?> <sample xml:base="http://www.manyo.org/manyosyu/" xmlns:xlink="http://www.w3.org/1999/xlink"> <body> <p>万葉集テキストは次の20巻から構成されています。 万葉集については <link xlink:type="simple" xlink:href="overview.xml">概説</link> をご参照ください。</p> <list xml:base="/volume/"> <volume> <link xlink:type="simple" xlink:href="vol1.xml">巻 1</link> </volume> <volume> <link xlink:type="simple" xlink:href="vol2.xml">巻 2</link> </volume> ・・・・・・途中省略いたします・・・・・・・ <volume> <link xlink:type="simple" xlink:href="vol20.xml">巻 20</link> </volume> </list> </body> </sample> |
さらら: う〜んと。。。相対URIで指定しているoverview.xmlに対する基底URIは、sample要素のxml:base="http://www.manyo.org/manyosyu/"だわよね。で。。。vol1.xmlに対する基底URIは、list要素のxml:base="/volume/"、あれ?? これって相対URIじゃないの? |
たけち: あっ、そうそう。xml:baseでは相対URIも書いていいんだよ。そんなときは、上位(親や祖先)の要素で指定されたxml:baseに書かれたURIと組み合わせて、基底URIを決めるんだね。 さらら: そうなんだ。。。。。こんな風に必要な要素にxml:baseって書けばいいのね。 たけち: あっ、そうだ。xml:baseを書かなくてもいい場合もあるんだ。そんなときは、そのXMLドキュメントがある場所(そのXMLドキュメントを取得するのに使われた絶対URI)が基底URIとして使われるんだよ。 さらら: へぇ、そっかぁ。 たけち: こんなところでいいかな。 さらら: うん。ありがと。 |