RE: [xsl] encoding problem

Subject: RE: [xsl] encoding problem
From: "Michael Kay" <mhk@xxxxxxxxx>
Date: Mon, 12 Apr 2004 22:33:00 +0100
There's a problem in the specs here. The href attribute is required to be a
legal URI Reference, and to ensure this, the XSLT serialization spec
requires that the "_" is encoded as %C3%9F. But no similar encoding is
applied to the name or id attribute of the anchor (and it would be illegal,
at least in XHTML, because % is not allowed in an NCName); and some browsers
at least won't match a %C3%9F in the fragment identifier of the href URI to
a "_" in the name attribute.

I think what this means in practice is that it's unsafe to use non-ASCII
characters in the names of HTML anchors.

Michael Kay

> -----Original Message-----
> From: Daniel Purucker [mailto:dpu@xxxxxxxxxxxxxxxxxx] 
> Sent: 12 April 2004 13:17
> To: xsl-list mulberry
> Subject: [xsl] encoding problem
> 
> Hi,
> 
> i think i've got a kind of encoding problem. Hope somebody can help 
> me...
> I'm creating an html-combobox through xslt, for navigating the output 
> html-file.
> The user chooses a value, clicks the button and jumps to the anchor. 
> Everything works fine, until the value includes an "_" (as seen eg in 
> the german: gro_britannien)
> 
> This is the code, which creates the link in the combo-box
> 
> <xsl:element name="option">
> <xsl:attribute name="value">
> <xsl:text>#</xsl:text><xsl:value-of select="."/></xsl:attribute>
> <xsl:value-of select="."/>
> 
> The HTML-Output is eg: #Gro_britannien
> 
> And this code produces the anchor-tag. Here the HTML-Output is a 
> different one. In this case it's HTML-Output is: #Gro%C3%9Fbritannien
> So it's obvious the link from above doesn't find a corresponding 
> anchor...
> 
> <a>
> <xsl:attribute name="name">
> <xsl:value-of select="./text()"/>
> </xsl:attribute>
> <xsl:attribute name="class">Modellstyle</xsl:attribute>
> <xsl:value-of select="./text()"/>
> </a>
> 
> 
> 
> Any ideas? Thanx in advance, Daniel

Current Thread