RE: [xsl] format <xsl:message> output

Subject: RE: [xsl] format <xsl:message> output
From: "Robert Soesemann" <rsoesemann@xxxxxxxxxxx>
Date: Wed, 1 Dec 2004 15:02:23 +0100
Hello David,

I now removed all breaks by writing everything in one line but I still
have this funny line break left.

Call of template:
-----------------
<xsl:call-template name="LOG">
	<xsl:with-param name="type">ERROR</xsl:with-param>
	<xsl:with-param name="task">4</xsl:with-param>
	<xsl:with-param name="location"><xsl:value-of
select="substring-after(document-uri(/), substring-after($root-path,
'..'))"/></xsl:with-param>
	<xsl:with-param name="message">relation to <xsl:value-of
select="@url"/> is invalid! expected: <xsl:value-of
select="$expected-type"/> | found: <xsl:value-of
select="$external-type"/></xsl:with-param>
</xsl:call-template>

Template:
---------
<xsl:template name="LOG">
	<xsl:param name="task"/> 		<!-- where did it happen
-->
	<xsl:param name="type"/>		<!-- how severe is event
-->
	<xsl:param name="message"/>		<!-- description -->
	<xsl:param name="location"/>	<!-- file involved -->

	<xsl:message terminate="no"> [<xsl:value-of
select="$type"/>|<xsl:value-of select="$task"/>|<xsl:value-of
select="$location"/>]:<xsl:value-of select="$message"/></xsl:message>
</xsl:template>

Output:
-------
 [ERROR|4|/contacts.xml]:relation to error/nummer1.xml

       is invalid! expected: address | found: number

R.


-----Original Message-----
From: David Carlisle [mailto:davidc@xxxxxxxxx]
Sent: Mittwoch, 1. Dezember 2004 14:52
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: [xsl] format <xsl:message> output



<xsl:message terminate="no">
  [<xsl:value-of select="$type"/> | <xsl:value-of select="$task"/> |
'<xsl:value-of select="$location"/>']
  <xsl:value-of select="$message"/>
</xsl:message>

That xsl:message includes three newline characters and lots of spaces
that will be copied to the message. The last newline after
 <xsl:value-of select="$message"/>
will be skipped as it is in a white-space text node, but all the others
are in text nodes that contain printing characters such as ] so will not
be skipped. You want to keep the indentation to be in its own text nodes
so that it is all ignored:


<xsl:message terminate="no">
  <xsl:text>[</xsl:text>
  <xsl:value-of select="$type"/>
  <xsl:text> | </xsl:text>
  <xsl:value-of select="$task"/>
  <xsl:text> | '</xsl:text>
  <xsl:value-of select="$location"/>
  <xsl:text>']</xsl:text>
  <xsl:value-of select="$message"/>
</xsl:message>

Then at least XSLT will put the message out as a single line (I don't
know ant well enough to know if it will definitely not wrap it)

David

________________________________________________________________________
This e-mail has been scanned for all viruses by Star. The service is
powered by MessageLabs. For more information on a proactive anti-virus
service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________

Current Thread