xsl-list
[Top] [All Lists]

AW: WG: character escaping when using saxon 6.5.2 from java

2003-03-27 05:58:44
Hey Michael,

thank you for your elaborate reply.
Now I understand that d-o-e is unneccessary in most cases. I have to check
my source code to find out if the SAX/DOMresult is the reason for the
difference in output.

Regards
Daniel



***********************************************************************
* Daniel Brauer                                                       *
*                                     Ingenieurbuero Michael Grabietz *
* Phone:  ++49 (9341) 89 66 73        Luft- und Raumfahrttechnik      *
* Fax:    ++49 (9341) 89 66 71        Stauferring 56                  *
* e-mail:                             D-97941 Tauberbischofsheim      *
* daniel(_dot_)brauer(_at_)img-online(_dot_)de         Germany                  
       *
***********************************************************************

-----Ursprungliche Nachricht-----
Von: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com]Im Auftrag von 
Michael Kay
Gesendet: Donnerstag, 27. Marz 2003 12:02
An: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Betreff: RE: [xsl] WG: character escaping when using saxon 6.5.2 from
java


Several people have pointed out to you that disable-output-escaping is
bad and unnecessary in this situation. If you have been on the list for
less than 24 hours, then you may not realize why.

disable-output-escaping requires a special secret interface between the
XSLT processor and the serializer. It breaks the rule that the XSLT
processor is creating a tree, and the serializer is turning that tree
into a stream of bytes.

In your example you show the output as
<tr><?javax.xml.transform.disable-output-escaping ?>

This has exposed the "secret interface", which is formalized by the JAXP
API in terms of processing instructions. This happens when the XSLT
processor uses the secret interface, but you supply your own serializer
which doesn't understand it. I suspect you sent the output of the
transformation to a SAXResult or DOMResult rather than to a
StreamResult, and then serialized it using a non-XSLT serializer. This
all goes to illustrate how bad disable-output-escaping is
architecturally.

There are cases where d-o-e is needed, for example when your source
document contains HTML in a CDATA section and you want to copy that
HTML, unparsed, to the output document. Writing a simple NBSP character
is not such an example. In 90% of cases where you see d-o-e used in a
stylesheet, it should not have been used.

Michael Kay
Software AG
home: Michael(_dot_)H(_dot_)Kay(_at_)ntlworld(_dot_)com
work: Michael(_dot_)Kay(_at_)softwareag(_dot_)com

-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com] On Behalf Of
Daniel Brauer
Sent: 27 March 2003 07:23
To: XSL-List(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] WG: character escaping when using saxon 6.5.2 from java


hi folks,

i'm trying to use saxon 6.5.2 to carry out a xslt
tansfomation (xml-->html) from within a java application.
however the escaping of "&nbsp" to enforce empty table cells
doesn't work.

this is an excerpt from the xslt-file:

               <tr>
                  <td>
                     <xsl:text
disable-output-escaping="yes">&amp;nbsp;</xsl:text>
                  </td>
                  <td>
                     <xsl:text
disable-output-escaping="yes">&amp;nbsp;</xsl:text>
                  </td>
                  <td id="Text06">MWE</td>
                  <td id="Text03" bgcolor="#FFFF99" colspan="5">
                     <xsl:value-of select="AC_WEIGHT/OWE/MWE/WEIGHT"/>
                  </td>
               </tr>



using saxon from java give me somethin like:

      <tr><?javax.xml.transform.disable-output-escaping ?>


<td>&amp;nbsp;<?javax.xml.transform.enable-output-escaping ?>
</td><?javax.xml.transform.disable-output-escaping ?>


<td>&amp;nbsp;<?javax.xml.transform.enable-output-escaping ?> </td>
        <td id="Text06">MWE</td>
        <td id="Text03" bgcolor="#FFFF99" colspan="5">642.07</td>
      </tr>



whereas using saxon from the command line (i.e. java ...) gives me:

         <tr>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td id="Text06">MWE</td>
            <td id="Text03" bgcolor="#FFFF99" colspan="5">642.07</td>
         </tr>



i'd appreciate any help - thanks.

regards
Daniel.





**************************************************************
*********
* Daniel Brauer
        *
*                                     Ingenieurbuero Michael
Grabietz *
* Phone:  ++49 (9341) 89 66 73        Luft- und
Raumfahrttechnik      *
* Fax:    ++49 (9341) 89 66 71        Stauferring 56
        *
* e-mail:                             D-97941
Tauberbischofsheim      *
* daniel(_dot_)brauer(_at_)img-online(_dot_)de         Germany
        *
**************************************************************
*********



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list




 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



<Prev in Thread] Current Thread [Next in Thread>