- PR -

名前空間の有効範囲について

1
投稿者投稿内容
Yasu
会議室デビュー日: 2004/08/03
投稿数: 6
投稿日時: 2004-10-04 12:08
XML初心者のYasuと申します。
名前空間について勉強していてわからないことがあったので
書き込みさせていただきました。
質問の文章の時点で間違っているかもしれませんので
そのときはご指摘ください。

<x:data xmlns:x="http://abc/def">
〜 略 〜
</x:data>
と、宣言した場合、要素<data>は名前空間"http://abc/def"に属します。

<data xmlns="http://abc/def">
〜 略 〜
</data>
も、デフォルト名前空間を設定したので、
要素<data>は名前空間"http://abc/def"に属します。

では、
<data xmlns:x="http://abc/def">
〜 略 〜
</data>
とした場合、要素<data>はどの名前空間に属するのでしょうか?

W3C勧告として公開されている "Namespaces in XML"を見てみると
<x xmlns:edi='http://ecommerce.org/schema'>
<!-- the "edi" prefix is bound to http://ecommerce.org/schema
for the "x" element and contents -->
</x>
という記述があります。
これを見る限り、x(上記サンプルではdata)はedi(同x)に
属するように思えるのです。しかし、
<data xmlns:x="http://abc/def"
         xmlns:y="http://ghi/jkl">
〜 略 〜
</data>
という記述も可能なようで、この場合はどうなるのか・・・、
と悩んでしまっています。

整理のつく説明がありましたら、よろしくお願いします。


MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2004-10-04 12:50
英文の読みとして
プリフィックス edi は 要素xとその内容の範囲で・・・
ですから、プリフィックスediの無いxはデフォルト名前空間では

XSLT を書いて テストしてみましょう。それがいちばん。

第1回 XML名前空間の落とし穴 第2回第3回
http://www.atmarkit.co.jp/fxml/ddd/ddd001/ddd001-namespaces1.html
第6回 XML名前空間でタグを使い分ける
http://www.atmarkit.co.jp/fxml/rensai/rexml06/rexml06.html
Yasu
会議室デビュー日: 2004/08/03
投稿数: 6
投稿日時: 2004-10-05 11:34
解決しました。

XSLTではどうやって検証してよいかわからず、結局Java+SAXで検証しました。

<data xmlns:x="http://abc/def">
  <x:name>aaa</x:name>
  <x:title>bbb</x:bbb>
</data>

とした場合、<name>、<title>は、"http://abc/def"に属していましたが、
<data>はデフォルト名前空間に属していました。

多分、間違いはないと思いますが、もし違うという方がいらっしゃいましたら
ご指摘ください。

MMXさん、アドバイスありがとうございました。


[ メッセージ編集済み 編集者: Yasu 編集日時 2004-10-05 11:34 ]
1

スキルアップ/キャリアアップ(JOB@IT)