Re: [xsl] Yet Another Entity Ref question!

Subject: Re: [xsl] Yet Another Entity Ref question!
From: Marco Guazzone <sguazt@xxxxxxxxxxx>
Date: Fri, 20 Dec 2002 12:54:37 +0100 (CET)
Hi David,
your idea is good.
Currently I'm using the LibXSLT processor version 1.0.23 (with libxml2
version 2..4.30).
However, with this I will produce the encode UNICODE char in the output
(HTML) doc; i.e.
XML:
<doc>
  <label>Foobar<entity>copy</entity></label>
  <entity-dict>
     <entity-item name="copy" value="&#169;" />
  </entity-dict>
</doc>

XSL:
<!-- ... like the previous except for: -->
<xsl:template match="entity">
  <xsl:value-of select="/doc/entity-dict/entity-item[@name =
current()]/@value" />
</xsl:template>

This produce as output
Foobar(C)Foobar(C)Foobar(C)
where (C) is the encoded value of &#169;
This may cause problem in non-UNICODE editors or browser, especially if I
include the result in a source document (e.g. Perl, C) as a return value
of a function (problems may arise in compiling/interpreting
phase).
Instead what I would generate is:
Foobar&copy;
or more generally:
Foobar&ent;
where "ent" is specified by an anonymous user in XML via:
<entity>ent</entity>
What do you think about it?

--------------------------------
Marco Guazzone
Software Engineer
Kerbero S.r.L. - Gruppo TC
Viale Forlanini, 36
Garbagnate M.se (MI)
20024 - Italy
mail: marco.guazzone@xxxxxxxxxxx
www: http://www.kerbero.com
Tel. +39 02 99514.247
Fax. +39 02 99514.399
--------------------------------

On Fri, 20 Dec 2002, David Carlisle wrote:

> <xsl:template match="doc">
>    <xsl:apply-templates select="label" /> <!-- ok! -->
>    <xsl:variable name="label">
>       <xsl:apply-templates select="label" />
>    </xsl:variable>
>    <xsl:value-of select="$label" />  <!-- not ok -->
>    <xsl:value-of disable-output-escaping="yes" select="$label" />  <!-- ok
> -->
> </xsl:template>
> 
> which processor are you using?
> 
> d-o-e is optional so a processor can ignore it altogether, but if it
> supports it at all I think that in xslt1 the character should keep the 
> d-o-e property even when it goes through the variable.
> 
> Is your input form fixed?
> 
> It would be easier if your
> <ent>xxx</ent>
> only took entity names, as then you could convert them easily to
> characters without using d-o-e just by looking them up in a document of
> the form
> 
> <entity name="copy" char="&#169;"/>
> ...
> 
> 
> There is no need to have an input form of
> <ent>#x0A</ent>
> 
> as the user can more simply write
> &#x0A;
> which then doesn't need any processing at all at the xslt level.
> 
> David
> 
> _____________________________________________________________________
> This message has been checked for all known viruses by Star Internet
> delivered through the MessageLabs Virus Scanning Service. For further
> information visit http://www.star.net.uk/stats.asp or alternatively call
> Star Internet for details on the Virus Scanning Service.
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 
> 


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread