As it happens I’ve been experimenting over the last couple of days (encouraged
by friends at oXygen) with bypassing the XML parser’s attribute-value
normalization when applied to stylesheets, so that the XPath expression as
parsed is the expression as written, enabling more accurate diagnostics
especially with long multi-line XPath expressions.
The trouble is it breaks edge cases where people really want those newlines in
string literals turned into spaces. Or rather, where they wrote test cases that
break if you change this.
Michael Kay
Saxonica
On 1 Sep 2015, at 22:37, David Carlisle
d(_dot_)p(_dot_)carlisle(_at_)gmail(_dot_)com
<xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote:
On 1 September 2015 at 22:16, David Sewell dsewell(_at_)virginia(_dot_)edu
<xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote:
I am probably forgetting something basic in the XSLT specs about how string
variables are created and evaluated, but I was experimenting with including
CSS rules within an XSLT stylesheet and then writing them at run time along
with the output of my transformation via xsl:result-document. I discovered
that if I put the CSS into a string variable using the @select attribute,
linefeeds are not preserved in the output; but if I put the CSS text into a
sequence constructor, the linefeeds are preserved in the output. What's the
underlying reason, assuming this isn't implementation-dependent? (I'm
testing with Saxon; XSLT 2 and 3 produce identical results.)
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="xs"
version="2.0">
<xsl:variable name="CSS1" as="xs:string" select="'
p { color:pink; }
a { font-family: fantasy}
'"/>
<xsl:variable name="CSS2" as="xs:string">
p { color:pink; }
a { font-family: fantasy}
</xsl:variable>
<xsl:template name="main">
<xsl:result-document href="test1.css" method="text">
<xsl:value-of select="$CSS1"/>
</xsl:result-document>
<xsl:result-document href="test2.css" method="text">
<xsl:value-of select="$CSS2"/>
</xsl:result-document>
</xsl:template>
</xsl:stylesheet>
--
David Sewell, Editorial and Technical Manager
ROTUNDA, The University of Virginia Press
PO Box 400318, Charlottesville, VA 22904-4314 USA
Email: dsewell(_at_)virginia(_dot_)edu Tel: +1 434 924 9973
Web: http://rotunda.upress.virginia.edu/
--------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: -list/293509
or by email:
--~--
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--