xsl-list
[Top] [All Lists]

RE: Yet Another Entity Ref question!

2002-12-20 05:26:24
You are making things ridiculously complicated. If you are producing
output that you want to view in an editor that can't understand UTF-8,
just set <xsl:output encoding="us-ascii"/> as you were initially
advised.

Michael Kay
Software AG
home: Michael(_dot_)H(_dot_)Kay(_at_)ntlworld(_dot_)com
work: Michael(_dot_)Kay(_at_)softwareag(_dot_)com 

-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com 
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com] On Behalf Of 
Marco Guazzone
Sent: 20 December 2002 11:55
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: Re: [xsl] Yet Another Entity Ref question!


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



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



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