名前空間

wrote2008.07.01

xml文書は別のxml文書と結合することができる。結合した際に同じ要素名があるときの不具合を、名前空間を使用して回避できる。

記述方法

<プリフィックス:要素名 xmlns:プリフックス="URI">

  • プリフィックスは任意の名称
  • URIは、名前空間を識別するためのURLを記述するのだが、ファイルの有無は動作に影響しない

サンプル

名前空間を使用しない場合

<?xml version="1.0" encoding="Shift_JIS"?>
<CD>
<タイトル>to tell the truth</タイトル>
<詩>all in the mind</詩>
<ジャンル>エモ・哀愁</ジャンル>
</CD>

名前空間を使用した場合

<?xml version="1.0" encoding="Shift_JIS"?>
<mycd:CD xmlns:mycd="/xml/mycd" >
<mycd:タイトル>to tell the truth</mycd:タイトル>
<mycd:詩>all in the mind</mycd:詩>
<mycd:ジャンル>エモ・哀愁</mycd:ジャンル>
</mycd:CD>

  1. プリフィックス「mycd」を追加
  2. 属性「xmns:mycd」を追加
複合する名前空間

<?xml version="1.0" encoding="Shift_JIS"?>
<mycd:CD xmlns:mycd="/xml/mycd" >
<mycd:タイトル>to tell the truth</mycd:タイトル>
<mycd:詩>all in the mind</mycd:詩>
<mycd:ジャンル>エモ・哀愁</mycd:ジャンル>
<mydvd:dvd xmlns:mycd="/xml/mydvd" >
<mydvd:タイトル>to tell the truth</mydvd:タイトル>
<mydvd:詩>all in the mind</mydvd:詩>
<mydvd:ジャンル>エモ・哀愁</mydvd:ジャンル>
</mydvd:dvd>
</mycd:CD>

この例のように、同要素名を区別したいときに、名前空間を使用することで対応できる。

デフォルト名前空間

<?xml version="1.0" encoding="Shift_JIS"?>
<CD xmlns="/xml/mycd" >
<タイトル>to tell the truth</タイトル>
<詩>all in the mind</詩>
<ジャンル>エモ・哀愁</ジャンル>
<mydvd:dvd xmlns:mycd="/xml/mydvd" >
<mydvd:タイトル>to tell the truth</mydvd:タイトル>
<mydvd:詩>all in the mind</mydvd:詩>
<mydvd:ジャンル>エモ・哀愁</mydvd:ジャンル>
</mydvd:dvd>
</CD>

この例では、プリフィックス「mydvd」がない要素はすべて、「/xml/mycd」に属する。