Re: Creating a batch file or shell script / Inserting line breaks

Subject: Re: Creating a batch file or shell script / Inserting line breaks
From: Ragnar Schierholz <raschi@xxxxxxxxxx>
Date: Sun, 9 Jul 2000 16:44:56 -0500
Mike Brown wrote:

> Ragnar Schierholz wrote:
> >           java org.apache.xalan.xslt.Process -in <xsl:value-of select
> > ="$URI"/> -xsl section.xsl -out <xsl:value-of select="concat
> > ($filename,'html')"/> -INDENT 2
> 
> Whitespace-only text nodes in the stylesheet tree are stripped, except
> when they occur within xsl:text elements. (see sec. 3.4 of XSLT 1.0)
> 
> > But unfortunatley Xalan always writes all output on a single line. 
This
> > causes syntax errors when the file is invoked as a batch file.
> 
> "lines" are a concept appreciated only by the application (i.e., in this
> case, the MS-DOS command interpreter; the shell) that is reading the 
data
> in the file. The file is just a linear series of bytes.
> 
> In the world of MS-DOS, ends of lines are denoted by a sequence of 2
> bytes: 0x0D for carriage return, followed by 0x0A for line feed. (Before
> you blame Microsoft, consider that this operating system was originally
> intended to work with IBM hardware, which inherited a legacy of 
technology
> going back to manual typewriters.)
> 
> This should do what you want:
> 
> <xsl:value-of select="concat('java org.apache.xalan.xslt.Process -in 
',$URI,' -xsl section.xsl -out '
> ,$filename,'html -INDENT 2&#13;&#10;')"/>
> 
>    - Mike
> ____________________________________________________________________
> Mike J. Brown, software engineer at         My XML/XSL resources:
> webb.net in Denver, Colorado, USA           http://www.skew.org/xml/
> 
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list

First, after playing a little more, I figured how to do it.
This is what now works fine:

<xsl:value-of select="concat('java org.apache.xalan.xslt.Process -in 
',$URI,' -xsl section.xsl -out ',$filename,'.html -INDENT 2')"/>

Second, part of the error was that I had the output method set to "txt" 
instead of "text" which does make a difference to Xalan. According to the 
specification (§16 Output), Xalan mustn't accept any other value than 
"xml|html|text" or anything with a namespace prefix. Hence this is 
obviously a bug in Xalan (I admit, a minor one, but still a bug ;-))

Some general remarks:

1.
Whether you put &#13;&#10; or just &#10; doesn't make a difference for Xalan, obviously it notices 
that it is running on a DOS-based box and inserts the approriate line feed 
characters. I didn't try it on a UNIX box yet, but there it should be fine 
with &#10; anyway. Good portability, plus for Xalan.
2.
Whether you 

 a) produce text using the literal text mixed with <xsl:value-of> elements 
to insert the variable/parameter values

or 

 b) use a single <xsl:value-of> element with a call to the concat function 
to concatenate the literal text elements with the variables/parameters 

somehow does make a difference to Xalan. Confusion for unexperienced 
users, minus for Xalan.

But anyway, I have the output that I wanted now, thanks to all 
contributors!

So long,
        Ragnar


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


Current Thread