You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@xalan.apache.org by "Yash Talwar (JIRA)" <xa...@xml.apache.org> on 2005/03/17 00:33:20 UTC

[jira] Resolved: (XALANJ-2081) XSLTC does ignores non-whitespaces as if they were whitespaces.

     [ http://issues.apache.org/jira/browse/XALANJ-2081?page=history ]
     
Yash Talwar resolved XALANJ-2081:
---------------------------------

    Resolution: Fixed

XalanJ2081_Patch3.txt commited to cvs.

> XSLTC does ignores non-whitespaces as if they were whitespaces.
> ---------------------------------------------------------------
>
>          Key: XALANJ-2081
>          URL: http://issues.apache.org/jira/browse/XALANJ-2081
>      Project: XalanJ2
>         Type: Bug
>   Components: XSLTC
>     Versions: CurrentCVS
>  Environment: Windows 2000
>     Reporter: Yash Talwar
>     Assignee: Yash Talwar
>      Fix For: CurrentCVS
>  Attachments: XalanJ2081_Patch.txt, XalanJ2081_Patch2.txt, XalanJ2081_Patch3.txt
>
> Given following stylesheet and input document, Xalan Interpretive and XSLTC has difference in output.
> Example 1:
> ==========
> Stylesheet:
> ------------
> <?xml version="1.1" ?>
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
>   <xsl:output method="xml" version="1.1" encoding="UTF-8" />
>   <xsl:template match="/">
>     <out>&#x08;&#x1F;</out>
>   </xsl:template>
> </xsl:stylesheet>
> Input XML: 
> -------------
> <?xml version="1.1"?>
> <doc />
> Output using Xalan Interpretive:
> --------------------------------
> <?xml version="1.1" encoding="UTF-8"?><out>&#8;&#31;</out>
> Output using XSLTC:
> -------------------
> <?xml version="1.1" encoding="UTF-8"?><out/>
> Here, Xalan Interpretive has correct ouptut.
> Here #x08 is a backspace character.  XSLTC treats both characters as whitespace characters.
> Just look at following snippet of java code:
> 		System.out.println(Character.isWhitespace((char)0x08));
> 		System.out.println(Character.isWhitespace((char)0x1f));
> 		String s = "\u0008\u001f";
> 		System.out.println(s.trim().length());
> 		
> The output for this code snippet is:
>                false
>                true
>                0       // The length here should not be 0.
> This shows that 0x08 is not a whitespace character, but trim() method of java.lang.String treats it as a whitespace character.
> I believe the problem lies in the class org.apache.xalan.xsltc.compiler.Text
> The following line of code is the probematic:
>  if (_text.trim().length() == 0) _ignore = true;
>  
> In above sample, it can be seen that trim() method is problematic.
>  
> I will attach a patch to fix this problem.
> Yash Talwar

-- 
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
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-dev-help@xml.apache.org