[ http://nagoya.apache.org/jira/browse/XALANJ-1671?page=history ]
Henry Zongaro updated XALANJ-1671:
----------------------------------
Priority: Major (was: Blocker)
> Transformation produces different results with DOM and Stream sources
> ---------------------------------------------------------------------
>
> Key: XALANJ-1671
> URL: http://nagoya.apache.org/jira/browse/XALANJ-1671
> Project: XalanJ2
> Type: Bug
> Components: DOM
> Versions: 2.5
> Environment: Operating System: All
> Platform: PC
> Reporter: Abhilash Koneri
> Attachments: Bug.zip
>
> When a node being used in the tranformation is empty the DOMSource and Stream
> source produce different results. For example -
> Input Xml -
> -------------------------
> <Root>
> <SampleData attr1="" attr2="b" attr3="c" />
> </Root>
> -------------------------
> XSL -
> -------------------------
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> version="1.0" >
> <xsl:output method="xml" indent="yes" xalan:indent-amount="4"
> xmlns:xalan="http://xml.apache.org/xslt"/>
> <xsl:template match="SampleData">
> <SampleData>
> <attr1><xsl:value-of select="@attr1" /> </attr1>
> <attr2><xsl:value-of select="@attr2" /> </attr2>
> <attr3><xsl:value-of select="@attr3" /> </attr3>
> </SampleData>
> </xsl:template>
> </xsl:stylesheet>
> -------------------------
> Transformer class -
> -------------------------
> import java.io.*;
> import javax.xml.parsers.*;
> import javax.xml.transform.*;
> import javax.xml.transform.dom.*;
> import javax.xml.transform.stream.*;
> import org.w3c.dom.*;
> import org.xml.sax.*;
> public class SampleTransform
> {
> public static void main(String[] args) throws Exception
> {
> String sampleFileName="sample-input-data.xml";
> TransformerFactory tFactory = TransformerFactory.newInstance();
> DocumentBuilder builder = DocumentBuilderFactory.newInstance
> ().newDocumentBuilder();
> InputSource inputSource = new InputSource(new FileReader(sampleFileName));
> Document document = builder.parse(inputSource);
> document.normalize();
> DOMSource domSource = new DOMSource();
> domSource.setNode(document);
> // Create the transformer
> Transformer transformer = tFactory.newTransformer(new StreamSource
> ("sample-transform.xsl"));
>
> // transform the input xml using stream source
> transformer.transform(new StreamSource(sampleFileName),
> new StreamResult(new
> FileOutputStream("output-using-stream.out")));
> // transform the input xml using dom source
> transformer.transform(domSource, new StreamResult(new FileOutputStream
> ("output-dom.out")));
>
> System.out.println("check output files output-dom.out and output-
> stream.out");
> }
> }
> -------------------------
> The output using the stream source is -
> -------------------------
> <?xml version="1.0" encoding="UTF-8"?>
> <SampleData>
> <attr1/>
> <attr2>b</attr2>
> <attr3>c</attr3>
> </SampleData>
> -------------------------
> Output using the dom source is
> -------------------------
> <?xml version="1.0" encoding="UTF-8"?>
> <SampleData>
> <attr1>
> </attr1>
> <attr2>b</attr2>
> <attr3>c</attr3>
> </SampleData>
> -------------------------
> Please note the extra new line character in the "attr1" element. The dom
> source
> and stream source should produce the same output. However, in the case shown
> about, this does not happen. Is this a bug?
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://nagoya.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]