[ http://issues.apache.org/jira/browse/XALANJ-2219?page=all ]
Brian Minchau resolved XALANJ-2219.
-----------------------------------
Resolution: Fixed
I just applied patch5 to the code base.
>From Jesse Glick's point of view either patch fixes his problem,
but patch5 is just "better".
> Namespace of child element written incorrectly as root namespace
> ----------------------------------------------------------------
>
> Key: XALANJ-2219
> URL: http://issues.apache.org/jira/browse/XALANJ-2219
> Project: XalanJ2
> Issue Type: Bug
> Components: Serialization
> Affects Versions: 2.6, 2.5, 2.7
> Environment: Linux m2 2.6.13-1.1532_FC4 #1 Thu Oct 20 01:30:08 EDT
> 2005 i686 i686 i386 GNU/Linux
> java version "1.5.0_05"
> Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_05-b05)
> Java HotSpot(TM) Client VM (build 1.5.0_05-b05, mixed mode, sharing)
> Reporter: Jesse Glick
> Assigned To: Brian Minchau
> Fix For: Latest Development Code
>
> Attachments: jira2219.patch5.txt, ToStream.patch2.txt,
> ToStream.patch4.txt
>
>
> Run this class:
> ---%<---
> import java.io.StringReader;
> import javax.xml.parsers.DocumentBuilderFactory;
> import javax.xml.transform.Result;
> import javax.xml.transform.Source;
> import javax.xml.transform.Transformer;
> import javax.xml.transform.TransformerFactory;
> import javax.xml.transform.dom.DOMSource;
> import javax.xml.transform.stream.StreamResult;
> import javax.xml.transform.stream.StreamSource;
> import org.w3c.dom.Document;
> import org.xml.sax.InputSource;
> public class Test {
> private static final String IDENTITY_XSLT_WITH_INDENT =
> "<xsl:stylesheet version='1.0' " +
> "xmlns:xsl='http://www.w3.org/1999/XSL/Transform' " +
> "xmlns:xalan='http://xml.apache.org/xslt' " +
> "exclude-result-prefixes='xalan'>" +
> "<xsl:output method='xml' indent='yes' xalan:indent-amount='4'/>"
> +
> "<xsl:template match='@*|node()'>" +
> "<xsl:copy>" +
> "<xsl:apply-templates select='@*|node()'/>" +
> "</xsl:copy>" +
> "</xsl:template>" +
> "</xsl:stylesheet>";
> public static void main(String[] args) throws Exception {
> String data = "<root xmlns='root'/>";
> Document doc =
> DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new
> InputSource(new StringReader(data)));
> /*
> Document doc =
> DocumentBuilderFactory.newInstance().newDocumentBuilder().getDOMImplementation().createDocument("root",
> "root", null);
> */
> doc.getDocumentElement().appendChild(doc.createElementNS("child",
> "child"));
> Transformer t = TransformerFactory.newInstance().newTransformer(
> new StreamSource(new
> StringReader(IDENTITY_XSLT_WITH_INDENT)));
> Source source = new DOMSource(doc);
> Result result = new StreamResult(System.out);
> t.transform(source, result);
> }
> }
> ---%<---
> Just using plain JDK 5.0 JAXP, I get the expected
> ---%<---
> <?xml version="1.0" encoding="UTF-8"?>
> <root xmlns="root">
> <child xmlns="child"/>
> </root>
> ---%<---
> If I add Xalan-J to the classpath, I get
> ---%<---
> <?xml version="1.0" encoding="UTF-8"?>
> <root xmlns="root">
> <child xmlns="root"/>
> </root>
> ---%<---
> Note the incorrect namespace on the child element.
> This is true in Xalan 2.5.2, 2.6.0, 2.7.0, and dev builds
> (xalan-gump-24102005.jar).
> Prevents Xalan from being bundled with the NetBeans IDE, as it causes
> incorrectly written project metadata:
> http://www.netbeans.org/issues/show_bug.cgi?id=66563
> If you use newTransformer() with no stylesheet the problem goes away (though
> of course you lose indentation unless it is readded using setOutputProperty).
> Also if the Document is created in memory rather than parsed (see
> commented-out code) the problem goes away.
> Does not seem to be reproducible in JDK 6, I don't know why.
> Inclusion of the bundled Xerces in the classpath does not appear to make any
> difference.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]