- PR -

msxslで不要な名前空間が出力される

1
投稿者投稿内容
ADO15
会議室デビュー日: 2004/07/08
投稿数: 7
投稿日時: 2004-11-27 20:26
msxslを用いて、xmlを元にsvgを出力させようとしているのですが、
不要な名前空間が出力されて困っています。

元xml(サンプルのため、内容に意味はありません。)
<?xml version="1.0" encoding="Shift_JIS" ?>
<test>
</test>

スタイルシート
<?xml version="1.0" encoding="Shift_JIS" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns=" http://www.w3.org/2000/svg"
>
<xsl:output method="xml" encoding="UTF-8" />
<xsl:template match="/">
<svg xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
width="100" height="100" viewBox="0 0 100 100"
version="1.0">
<xsl:call-template name="samp_sym"/>
<xsl:apply-templates select="test"/>
</svg>
</xsl:template>
<xsl:template match="test">
<xsl:element name="use">
<xsl:attribute name="x">2</xsl:attribute>
<xsl:attribute name="y">2</xsl:attribute>
<xsl:attribute name="xlink:href">#10</xsl:attribute>
</xsl:element>
</xsl:template>
<xsl:template name="samp_sym">
<symbol viewBox="0 0 10 10" id="10">
<circle cx="5" cy="5" r="3" />
</symbol>
</xsl:template>
</xsl:stylesheet>

これらを用いて、dosプロンプトからsvgファイルを出力すると、
useタグが
<use x="2" y="2" xlink:href="#10" xmlns=" http://www.w3.org/2000/svg" />
というように、svgの名前空間入りで出力されてしまいます。

msxslのバージョンのためかわかりませんが、
ほかの環境で試したところ、この名前空間は出力されませんでした。

どなたか教えていただけないでしょうか?
MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2004-11-27 22:37
頭に入っている空白を 潰していないので、別の名前空間とみなされたのでしょう。
属性値の正規化でなくなるはずですが、名前空間の宣言は 属性と同じでないのかも。

XMLの仕様を確認しましょう。

xmlSpy 内蔵のXSLTエンジンでは、処理結果は
<use xmlns="%20http://www.w3.org/2000/svg" x="2" y="2" xlink:href="#10"/>
です。 URLエスケープの出現とは、なぜ。

[ メッセージ編集済み 編集者: MMX 編集日時 2004-11-28 09:57 ]
TAKABE
常連さん
会議室デビュー日: 2003/05/14
投稿数: 43
投稿日時: 2004-11-28 09:35
私が使っているMSXML 4.0 (Service Pack 2まであてている)では、上記の症状は認められませんでしたので、御報告させていただきます。
MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2004-11-28 09:50
xmlSpy の MSxml のバージョン選択による実行では
v.3.0 では 付かない
v.4.0 では 付く
の結果になりました。MSXML5 も入っているから違うのかも。

[ メッセージ編集済み 編集者: MMX 編集日時 2004-11-28 09:52 ]
ADO15
会議室デビュー日: 2004/07/08
投稿数: 7
投稿日時: 2004-11-28 10:52
MMXさま TAKABEさまありがとうございました。
私の単純ミスではありますが、
新しいバージョン4.0によって、
余分な空白などの”あら”が見つかってしまうとは、
初心者にはつらいものです。
ともあれ、バージョン4のほうが処理速度が圧倒的に速く、
こちらの方で開発しようと思います。

なにより、すっきりしました。ありがとうございました。
1

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