中の技術日誌
 ホーム / 上へ

XMLってなぁに? 初級編 第11回

2005/08/14

この文書は執筆時点(2004/後半)での知識を基にしており、現状とあっていない可能性があります。

第11回

C#などのプログラミングの名前空間は結構簡単で、理解するというのではなくそういうものだと覚えてしまえばいいのだが、XMLの名前空間は本当に複雑怪奇にみえる。
私だけだろうか。

前回まででルート要素にデフォルト名前空間を設定するのは行った。

a.xml
<?xml version="1.0" encoding="utf-8"?>
<A xmlns="http://xxx.example.com/">
<NAME>名前</NAME>
<INT>20</INT>
</A>

この場合A, NAME, INTともにデフォルト名前空間が適用されている。

だが、Aにはhttp://xxx.example.comをつけたいが、NAMEにはhttp://xxx.example.com/nameをつけたい場合にはどうするのだろうか。

a.xml
<?xml version="1.0" encoding="utf-8"?>
<A xmlns="http://xxx.example.com/" xmlns:name="http://xxx.example.com/name">
<name:NAME>名前</name:NAME>
<INT>20</INT>
</A>

この用に名前空間を示す別名を定義し、<別名:タグ>という形で記述する。

そのまま前回のXSLを適用してみよう。

結果.txt
A[名前INT[20]INT]A

このように名前が修飾されなくなっている。

このようにタグには個々の所属する名前空間を指定したりして利用することが出来る。
名前空間が違えばタグの意味はまったく変わってくるので、厳密に区別しないと間違いの元になる。

さて今までの説明で初めて理解できる内容がすでにXSLの中に入っている。

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"?>

ここのxmlns宣言で、今後xslという接頭語は"http://www.w3.org/1999/XSL/Transform"を意味するという宣言になっている。

xslの説明にはxsl:という接頭語を使うことが半ば慣習のようになっているが、利用する義務は無い。

一度XSLファイルのxsl接頭語を他のものに変更して変換してみてほしい。

[戻る] [進む]


勉強会: 05/18 大阪 登録受付中

中の技術日誌
コンテンツ
わんくま同盟
わんくま同盟
わんくま同盟
広告
バナー
MVP LOGO
MSMVP Visual C# Since 2004/04-2007/03
MCP LOGO
070-316
姉妹サイト
姉妹サイト:じゃんぬのC#, VB.NET 入門
じゃんぬの
C#, VB.NET 入門
検索
Google

ブログ本家
広告