Next in thread → Next in month →

RE: [docbook-apps] Entity newbie question

From
"[auritz Keanson"
Date
2006-07-14T18:14:06+00:00
ID
000001c6a771$4f2f49c0$71ea1a51@D7MZ171J
Thread
RE: [docbook-apps] Entity newbie question
> -----Original Message-----
> From: Andreas Kehlenbach 

> I compiled my xml file with saxon and it works fine, but if i 
> direct opened the xml-file with the Internet Explorer i get 
> the following error:
> 
> Der Wert des Attributs 'lang' kann nicht 'concat(/*/@lang, 
> /*/@xml:lang)' sein. Fehler beim Kompilieren des enthaltenen o...

I think I can help with this. I got similar error messages when I tried to
use the "kosek" indexing method with Xalan 2.7.0. As far as I can tell, the
solution for problem 1 below also helps when you use Internet Explorer and
the "english" indexing method.

There are two problems related to Xalan:

1. The first problem is the 'lang' entity (which is used only by the
"kimber" method, btw). Xalan complains about an illegal value for the 'lang'
attribute on <xsl:sort>:

file:/c:/doctypes/docbook/xsl/html/autoidx.xsl; Line #345; Column #67; XSLT
Error (javax.xml.transform.TransformerConfigurationException):
javax.xml.transform.TransformerException:
javax.xml.transform.TransformerException: Illegal value: concat(/*/@lang,
/*/@xml:lang) used for NMTOKEN attribute: lang 

Adding curly braces, lang="{&lang;}", makes Xalan happy again. So far so
good...

However, removing the 'lang' attributes altogether seems to be a better
solution. The reason: it makes the "kimber" method work correctly for
Swedish (and probably for other languages, but I haven't tested that). With
these attributes still in the stylesheet, the collation of index entries
beginning with accented characters (å, ä, ö) is not correct.

2. The second problem is the old function-available(exslt:node-set) bug
(http://issues.apache.org/jira/browse/XALANJ-2223):

file:/c:/doctypes/docbook/xsl/html/autoidx.xsl; Line #226; Column #34;
ERROR: the 'kosek' index method requires the exslt:node-set() function. Use
a processor that has it, or use a different index method.

This can be worked around by modifying the test for exslt:node-set:

<xsl:if test="not(function-available('exslt:node-set') or
function-available('exslt:nodeSet'))">

/MJ
Next in thread → Next in month →