XHTMLを書いてみましょう(Namespaceってなあに?)


■XHTMLを表示する(3): Namespaceってなあに?

たけち: xhtmlのいいところって、自分で決めたタグを入れられるってことだったよね。前回のサンプルは、さららが言うようにこれまでのhtmlテキストとなぁ〜にも変わってなかったから。今回は、それについて試してみよう。

さらら: は〜い。でも、前回のxhtmlのサンプルに自分で作ったxmlテキストをそのまま入れればいいんでしょ。

たけち: う〜ん、とね。そのまま入れてもだめなんだ・・・・

さらら: えっ、どうして?

たけち: というのは、自分で作ったxmlタグ、といってもいろいろな人が作ったタグを組み合わせて使いたいときってあるよね。たとえば、万葉集のxmlテキストと古今和歌集のxmlテキストを一緒に組み合わせてつかいたいとか、ね。

さらら: それはそうよね。そういうことができるのがxmlやxhtmlのいいところって聞いたもの・・・

たけち: そうなんだけど、すべての人がそれぞれの目的に合わせたxmlテキストを作るときに、タグの名前を相談して決められるわけはないよね。そうすると、どうしても違う意味で作ったタグなのに、同じタグの名前ができてくるよね。たとえば、<title>とか、<name>とか、<home>とかねっ。

さらら: あっ、そういえばそうね・・・・じゃあ、どうしたらいいの?

たけち: そういうことで困らないように、xmlでは、「Namespace(名前空間)」ってのが決められていんるだ。


■Namespace(ネームスペース: 名前空間)

さらら: 名前・・・・空間・・・?

たけち: うん。xmlテキストの中で色々な構造を持ったテキストを混在して使うときに、それぞれをきちんと区別するためのルールなんだ。そのためには、タグの前に「だれだれの作ったどういう構造のものですよ」っていう意味の名前をつけるんだ。

さらら: へぇ〜。どんな名前をつけてもいいの? ・・・・あっ、またその名前ってダブったりしないの?!

たけち: そうだね。普通に考えられる名前だと、同姓同名がたくさんあるみたいになっちゃうよね。そこで、そのNamespaceをあらわす名前には、さららも良く知っている"http://www6.airnet.ne.jp/manyo/"のようなURLを使うことになっているんだよ。これなら世界中の人が自分だけのNamespaceを持つことができるよね。

Namespace(名前空間)を指定してタグを区別する。

さらら: あっ、な〜るほど。よく考えたものね。それならだれがつくっても同じ名前にはならないわね。あら、xhtmlもNamespaceを使っているのね。

たけち: うん。xmlって広い意味の中で考えればxmlの応用の一つだからね。じゃぁ、いままでのことの確認も含めて、Namespaceを使った例を載せておくね。


■Namespace(名前空間)を指定したxmlテキストの書き方(1)

Namespaceに
http://www6.airnet.ne.jp/manyoを指定して万葉集の歌を追加してみると・・・・・

Namespaceを使って万葉集の歌を追加してみましょう

さらら: イメージはわかったけど・・・・でも、こんな長ったらしいのって書くのもヤダし、読みづらいわ。なんとかなんないの。

たけち: いゃ〜。本当にごちゃごちゃした感じがするね。そこで、使うのが「名前空間接頭辞」。

さらら: な〜んだ、また新しい言葉?!

たけち: そっ、そうだね。。。 (^ ^; ともかく、これを使うとぐっと楽に、すっきりするんだよ。次に例を載せておくね。要点は次の通り。

名前空間接頭辞を使うと短くなります

さらら: XHTMLに自分で作ったタグを追加する方法についてのイメージがだいたいのだけどわかったような気がするわ。でも、もうすこしいくつかの例を見てみたいわね。それに表示のためにはxslを使わなくちゃいけないし。。。。。

たけち: そうだね。もう少しサンプルを作ってみないとね。それにNamespaceを使ったときのxslの書き方もサンプルを作ってみたいしね。

さらら: 期待してるわ。

→次はxslを適用してみましょう・・・・・ (^ ^;


注 1) Namespaceの宣言にはURLと説明してますが、実際にはURI(Uniforn Resource Identifier)が正しいです。ただ、現時点ではURI=URLなので一般的になじみのあるURLで説明させていただきました。

注 2) Namespaceの宣言に指定するURLの実際の場所には特に何も存在しなくても今のところ問題はありません。名前の区別に使っているだけでそのURL先のテキストを読みに行っているわけではないのです。