Working with Saxon 6.5.1 on the Windows platform I noticed that line breaks literally represented as text elements are being output incorrectly for the Windows platform.

 

For example,

 

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

 

<xsl:output method="text" encoding="UTF-8"/>

 

<xsl:strip-space elements="*"/>

 

<xsl:template match="number">

  <xsl:value-of select="."/><xsl:text>

</xsl:text>

</xsl:template>

     

</xsl:stylesheet>

 

When I capture the output produced by this stylesheet in a file and open in the Windows notepad editor it does not display correctly because notepad expects CR+NL pairs. Now if I open the stylesheet in notepad, it DOES display correctly which leads me to believe that the <text> element is actually enclosing a CR+NL pair. It seems that the either the stylesheet parser or the output serializer in saxon is stripping the CR. When I use the same stylesheet with xalan it works correctly.

 

Is this a bug in saxon or a misunderstanding on my part?

 

In general, how are stylesheets supposed to deal with line breaks in a portable fashion?

 

Thanks,

 

Sal