Re: [xsl] LF and serialize()?

Subject: Re: [xsl] LF and serialize()?
From: "Michael Kay mike@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 25 Oct 2019 15:11:44 -0000
The newline characters are destroyed by the XML parser long before the XSLT
processor gets to see the data, under the rules for Attribute Value
Normalization. Heaven only knows who thought that was a good idea, but you
can't change it. (It's a wretched nuisance when you use multiline XPath
expressions in a stylesheet.)

Michael Kay
Saxonica

> On 25 Oct 2019, at 14:04, Birnbaum, David J djbpitt@xxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
>
> Dear XSL-List,
>
> When I run serialize() (in Saxon-HE 9.9.1.4J XSLT) over an XML snippet, it
does what I need, except that it replaces LF inside attribute values with SP.
This seems to be consistent with what I read at
https://www.w3.org/TR/REC-xml/#AVNormalize, and the workaround described there
(use a numerical character reference to LF instead of the raw LF character)
works. But Ibd like to avoid having to specify in the XML something that I
would prefer to manage during the XSLT transformation, and I would also like
to avoid pre-processing the XML outside an XML environment and replacing the
LF with a numerical character reference there, before passing the modified XML
into the XSLT transformation.
>
> So: Would anyone happen to know of a way within just an XSLT stylesheet to
retain LF within an attribute value as distinct from SP in the output of
serialize()?
>
> Thanks,
>
> David
> djbpitt@xxxxxxxxx

Current Thread