- 締切済み
何故か子の要素に xmlns=
ある「AABBCC」のタグが記述されているXML文書が有ります。 その文書に対し下記の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="xml" version="1.0" encoding="UTF-16" indent="yes" /> <xsl:template match="/"> <ABC xmlns="http://www.abcd.co.jp/Schema_1_1"> <xsl:apply-templates select="AABBCC" /> </ABC> </xsl:template> <xsl:template match="AABBCC"> <DEF> <xsl:attribute name="ID">1</xsl:attribute> </DEF> </xsl:template> </xsl:stylesheet> 下記のような出力を期待しているのですが、 <?xml version="1.0" ?> <ABC xmlns="http://www.abcd.co.jp/Schema_1_1"> <DEF ID="1" /> </ABC> 何故か以下のようにDEFの属性に「xmlns=""」が追加されてしまいます。 <?xml version="1.0" ?> <ABC xmlns="http://www.abcd.co.jp/Schema_1_1"> <DEF ID="1" xmlns="" /> </ABC> まだ、XML,XSL共に勉強を始めたばかりでよく分かってないのでどうしてこのようなことが起こるのか、また対処法を教えてください。 アホな質問かもしれませんが、よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- tekebon
- ベストアンサー率62% (36/58)
どのような環境で変換をしていますか? ちなみに、JAXPで変換したところ期待している形で出力されました。
補足
返事が遅れて申し訳ありません。 実行環境は、Microsoft VB6.0のプログラム上で変換させています。 この中で利用しているのは、MSXMLドキュメントオブジェクト(Version4.0)です。 このプログラムは他の方が作られたものなので中身は良く分かってないのですが信用して使ってます。 しかし、このオブジェクトの設定が拙くて期待通りにならない可能性があるかもしれませんね。