中の技術日誌ブログ

C#とC++/CLIと
VBと.NETとWindowsで戯れる
 

目次

Blog 利用状況

ニュース

自己紹介

東京でソフトウェアエンジニアをやっています。
お仕事大募集中です。
記事執筆や、講師依頼とかでも何でもどうぞ(*^_^*)
似顔絵 MSMVPロゴ
MSMVP Visual C# Since 2004/04-2013/03

記事カテゴリ

書庫

日記カテゴリ

00-整理

01-MSMVP

XMLってなぁに?(第9回)

ここに2つのファイルがあるとしよう

a.xml
<A>
<NAME>名前</NAME>
<INT>20</INT>
</A>
b.xml
<A>
<NAME>名前</NAME>
<POWER>10</POWER>
</A>

さてこのa.xmlとb.xmlははたして同じことを表現するXMLなのだろうか?
両方の内容を見ると<NAME>は同じなんらかかの名前を意味していそうだ。
ただ、a.xmlには<INT>があって、<POWER>がない。
b.xmlには<POWER>があって、<INT>が無い。
<POWER>は力?<INT>はかしこさ?
なんだかゲームの設定情報にも思えないことも無い。

ちょっと視点を変えるとa.xmlは魔法のxmlで、b.xmlは武器のxmlに思えないことも無い。

このように<A>タグの意味を分けるためなどにタグに本籍を設定することが出来る。
それがXMLnamespaceだ。

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

このようにxmlns=""と設定すると、この<A>タグの本籍地を設定することが可能になる。
上記のXMLでいうと、http://xxx.example.com/という名前空間の<A>タグと言う意味になる。

では以下のXSLファイルを適用してみよう。
a.xmlに対して適用してみてほしい。

a.xsl
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="text" />

<xsl:template match="/"><xsl:apply-templates /></xsl:template>

<xsl:template match="A">A[<xsl:apply-templates />]A</xsl:template>
<xsl:template match="NAME">NAME[<xsl:apply-templates />]NAME</xsl:template>
<xsl:template match="INT">INT[<xsl:apply-templates />]INT</xsl:template>
</xsl:stylesheet>

結果.txt
名前20

結果はこのとおりXSLにて修飾していた内容が適用されていない。
なぜだろうか。

投稿日時 : 2004年9月23日 9:43

コメントを追加

No comments posted yet.
タイトル
名前
URL
コメント