[ 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]

Reply via email to