xsl-list
[Top] [All Lists]

Re: Yet Another Entity Ref question!

2002-12-20 04:54:37
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[(_at_)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(_dot_)guazzone(_at_)kerbero(_dot_)com
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



<Prev in Thread] Current Thread [Next in Thread>