[jdom-interest] Bug in JDOMSource or maybe SAXoutputter.
Ken Rune Helland
kenh at csc.no
Thu Jun 7 03:19:26 PDT 2001
Hello.
Found what I think is a bug in JDOMSource or maybe SAXoutputter
used inside JDOMSource (and i downloed the daily sourcedrop 15
minutes ago :-) ).
when XSL transfoming from a JDOM Document object using JDOMSource
a namespace declaraiton does not follow to the target. This namespace
declaration is not for the element it is declared in but for a
attribute used somewhere in the document.
I will try to find this bug, but SAX and XSL is not my
strong point so if anyone who know this well can beat me to
it i will appreciate it.
Currently i work aroud it using StreamSource since at this
time in the program I have both the JDOM and serialized
version of the xml-document but using JDOMSource cuts
30-60% of the transfomation time in my tests compared
to StreamSource.
Best Regards
KenR
A stripped down exsample showing the bug:
Source document:
<?xml version="1.0" encoding="ISO-8859-1"?>
<ROOT foo:bar="Foobar" xmlns:foo="http://www.foo.com" >
<ELEMENT foo:bar="barfoo">Text</ELEMENT>
</ROOT>
Stylesheet:
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="ROOT">
<xsl:copy>
<xsl:copy-of select ="@*"/>
<xsl:apply-templates select ="ELEMENT" />
</xsl:copy>
</xsl:template>
<xsl:template match="ELEMENT">
<xsl:copy>
<xsl:copy-of select ="@*"/>
<xsl:value-of select="." />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Result using StreamSource (this is what I want):
<?xml version="1.0" encoding="iso-8859-1"?>
<ROOT xmlns:foo="http://www.foo.com" foo:bar="Foobar">
<ELEMENT foo:bar="barfoo">Text</ELEMENT>
</ROOT>
Result parsing into JDOM document and using JDOMSource:
<?xml version="1.0" encoding="iso-8859-1"?>
<ROOT foo:bar="Foobar">
<ELEMENT foo:bar="barfoo">Text</ELEMENT>
</ROOT>
The declaration on the "foo" prefix to the "http://www.foo.com"
namespace is missing.
More information about the jdom-interest
mailing list