Subject: Re: Bug with character map?
From: Michael Kay <mike@xxxxxxxxxxxx>
Date: Thu, 26 Jul 2012 23:01:32 +0100
|
First, section 25.1 of the XSLT 2.0 specification states:
Character mapping is not applied to characters for which output escaping
has been disabled
Secondly, URI escaping.
With your first link, the serializer knows it is generating a URI-valued
attribute, so it applies %HH escaping as required by the spec.
With your second link, generated using disable-output-escaping, the
serializer doesn't know it's a URI-valued attribute, so the %HH escaping
doesn't happen.
It seems you don't want the %HH escaping to happen (you don't say why).
If that's the case, you can prevent it using the escape-uri-attributes
attribute on xsl:output.
Michael Kay
Saxonica
On 26/07/2012 17:29, Frederic Bergeron wrote:
> Hi,
>
> I'm using a character map in my stylesheet to convert some special characters.
>
> Here is my code:
>
> <xsl:stylesheet version="2.0"
> xmlns="http://www.w3.org/1999/xhtml"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> exclude-result-prefixes="xsi xsl">
>
> <xsl:character-map name="funny-quote">
> <xsl:output-character character="’" string="’"/>
> </xsl:character-map>
>
> <xsl:output method="xhtml" indent="yes" use-character-maps="funny-quote"/>
>
> <xsl:variable name="link"
> +select="'http://www.infiressources.ca/fer/depotdocuments/Modeles_et_demarches_d’education_therapeutique-place_des_TIC.pdf'"/>
>
> <xsl:template match="/">
> <html>
>  
> <a>
> <xsl:attribute name="href"><xsl:value-of select="$link"/></xsl:attribute>
> <xsl:value-of select="$link"/>
> </a>
> <br/> 
> <xsl:text disable-output-escaping="yes"><a href="</xsl:text><xsl:value-of select="$link"/><xsl:text
> +disable-output-escaping="yes">"></xsl:text><xsl:value-of select="$link"/><xsl:text disable-output-escaping="yes"></a></xsl:text>
> </html>
> </xsl:template>
> </xsl:stylesheet>
>
> I generate 2 hyperlinks. I was expecting the 2 links to be exactly the same. However, the first link's href value is wrong. Is this a bug or am I missing
> +something?
>
> I'm using Saxon HE 9.3.0.5.
>
> Frederic Bergeron
|