- - PR -
msxslで不要な名前空間が出力される
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 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のバージョンのためかわかりませんが、 ほかの環境で試したところ、この名前空間は出力されませんでした。 どなたか教えていただけないでしょうか? |
|
投稿日時: 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 ] |
|
投稿日時: 2004-11-28 09:35
私が使っているMSXML 4.0 (Service Pack 2まであてている)では、上記の症状は認められませんでしたので、御報告させていただきます。
|
|
投稿日時: 2004-11-28 09:50
xmlSpy の MSxml のバージョン選択による実行では
v.3.0 では 付かない v.4.0 では 付く の結果になりました。MSXML5 も入っているから違うのかも。 [ メッセージ編集済み 編集者: MMX 編集日時 2004-11-28 09:52 ] |
|
投稿日時: 2004-11-28 10:52
MMXさま TAKABEさまありがとうございました。
私の単純ミスではありますが、 新しいバージョン4.0によって、 余分な空白などの”あら”が見つかってしまうとは、 初心者にはつらいものです。 ともあれ、バージョン4のほうが処理速度が圧倒的に速く、 こちらの方で開発しようと思います。 なにより、すっきりしました。ありがとうございました。 |
1