[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Re: RE: [xsl] Saxon's handling of line breaks
Subject: Re: RE: [xsl] Saxon's handling of line breaks From: Salvatore Mangano <smangano@xxxxxxxxxx> Date: Mon, 6 May 2002 18:12:32 -0400 |
If you look at the sample I provide I do indeed output <xsl:text> </xsl:text>. Yet the result is as if the CR is stripped. Also, I do not mention notepad because it is my prefered editor. I mention it only as a tool for diagnosing the problem simply *because* it doesn't do what many other editors automatically do. To make the problem plain as day please consider the following stylesheet: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="text"/> <xsl:template match="/"> foo<xsl:text> </xsl:text>bar </xsl:template> </xsl:stylesheet> According to your explanation foo and bar should be seperated by whatever is enclosed in the xsl:text element. In this case it should be a CRLF combination because the stylesheet was created in an editor that writes out CR+LF at the end of line. However, after processing the stylesheet the CR was indeed stripped with saxon but not with xalan. Explain? > Line breaks in the input document and the stylesheet are automatically > converted to a single NL character by the XML parser - that's defined by the > XML standard. > > With the "text" output method, Saxon outputs the characters that it finds, > without change. The XSLT specification doesn't give the processor license to > do anything else. If you want to output CRLF, you must do it explicitly, by > writing <xsl:text> </xsl:text>. You could make this > platform-dependent by putting it in an external entity or supplying it as a > stylesheet parameter. > > I think most modern text editors will understand NL as a newline character > even on the Windows platform: perhaps it's time you moved off Notepad. > > Michael Kay > Software AG > home: Michael.H.Kay@xxxxxxxxxxxx > work: Michael.Kay@xxxxxxxxxxxxxx > > > -----Original Message----- > > From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx > > [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx]On Behalf Of Sal Mangano > > Sent: 06 May 2002 15:41 > > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > > Subject: [xsl] Saxon's handling of line breaks > > > > > > > > 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 > > > > > > > > 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
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Saxon's handling of line , Michael Kay | Thread | Re: RE: [xsl] Saxon's handling of l, Mike Brown |
RE: [xsl] Identifying two tags that, Evan Lenz | Date | RE: [xsl] container list display pr, Wendell Piez |
Month |