[XSL-LIST Mailing List Archive Home]
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.
> > 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
> 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
> 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 ')"/>
> - 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:
Whether you put or just 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 anyway. Good portability, plus for Xalan.
a) produce text using the literal text mixed with <xsl:value-of> elements
to insert the variable/parameter values
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
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list