xsl-list
[Top] [All Lists]

Re: [xsl] XSLT engines and terminal newline

2006-09-19 09:26:50
Hi Michael(tm)

The diff-like programs I tend to use ignore whitespace differences, or have at least an option to ignore them. But if that isn't an option for you, I can only think of the following (not sure it helps you though):

<xsl:if test="contains(system-property('xsl:vendor'), 'SAXON 6.5')">
   <xsl:text>&#x0A;</xsl:text>
</xsl:if>

You can call that whenever you are supposed to enter the final newline.

Cheers,
Abel Braaksma
http://abelleba.metacarpus.com

Michael(tm) Smith wrote:
When I do an XSLT transformation with xsltproc, the output is
always newline-terminated (final byte is a newline character).
When I do the same transformation with Saxon 6.5, the output is
not newline-terminated.

For most purposes the difference doesn't matter. But to diff and
some other text-processing tools, it does (diff considers any line
that doesn't end with a newline to be an "incomplete line"; it
goes ahead processes such a line as if they did end in a newline,
but emits a "No newline at end of file" message in the diff).

I know I can make changes within my stylesheet to ensure that the
terminal newline gets added to the Saxon output, but the problem
is that if I then use the same stylesheet with xsltproc, I end up
with two newlines at the end of the file (and so an unnecessary
blank line at the end). I also know that for the case of XML
output, I can do a postprocessing step to run it through a tool
that produces canonical XML -- which will ensure that it ends with
single newline -- but that does me no good for HTML output.

Has anybody else run into this issue? Any suggestions about how to
deal with it?

  --Mike



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--