[xsl] how do I say it for xalan, namespace probs

Subject: [xsl] how do I say it for xalan, namespace probs
From: Jochen Schroer <schroer@xxxxxxxxxxxxxxx>
Date: Sun, 17 Jun 2007 16:12:44 +0200
Hi,

because I need barcodes in my fo-documents I start searching in the
internet and found some nice XSL-files at
http://www.renderx.com/demos/barcodes.html .
The problem is, this xsl-files work fine in my stylus studio and if I
process them with saxon (8.x), but if I try it at my productive system
with xalan 2.7.0 I run into big problems.

I extract the problematic codelines and make a small testfile:
------------------------------------- snipp -----------------------
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; xmlns:my="3of9-data">
   <xsl:template match="/">
       <xsl:call-template name="char2bar_codec">
           <xsl:with-param name="string">123</xsl:with-param>
       </xsl:call-template>
   </xsl:template>
   <xsl:template name="char2bar_codec">
       <xsl:param name="string"/>
       <xsl:if test="$string">
           <xsl:value-of
select="document('')//my:char2bar/entry[@char=substring($string, 1,
1)]/text()"/>
           <xsl:call-template name="char2bar_codec">
               <xsl:with-param name="string" select="substring($string,
2)"/>
           </xsl:call-template>
       </xsl:if>
   </xsl:template>
   <my:char2bar>
       <entry char="1">1-->100100001 </entry>
       <entry char="2">2-->001100001 </entry>
       <entry char="3">3-->101100000 </entry>
   </my:char2bar>
</xsl:stylesheet>
------------------------------------- snapp ---------------------
The output should be (and is it for example with saxon 8.x):
1-->100100001 2-->001100001 3-->101100000

If I try it with xalan 2.7.0 (xalan-j on windows-xp) I get the following
error:
SystemId Unknown; Line #14; Column #99; A location step was expected
following the '/' or '//' token.
SystemId Unknown; Line #14; Column #99; A relative location path was
expected following the '/' or '//' token.
SystemId Unknown; Line #14; Column #99; Extra illegal tokens:
'3of9-data', ':', 'char2bar', '/', 'entry', '[', '@', 'char', '=',
'substring', '(', '$', 'string', ',', '1', ',', '1', ')', ']', '/',
'text', '(', ')'

The problematical line ist the
"....document('')//my:char2bar/entry[@char=substring($string, 1,
1)]/text()..." construct but I'm not so familiar with XSLT and I have no
idea what I can do that xalan accept this codesnippet.

Kind regards,

Jochen
--

ECS-Solution GmbH   Handelsregister   Geschdftsf|hrer   Prokurist
Raiffeisenstr. 26   Kaiserslautern    Jochen Schrvr     RA Felix Kuntz
67817 Imsbach       HRB 12047         ebenda
Germany
Tel.: +49 (6302) 60971-0    Vom Prdsidenten des Landgerichtes Kaisers-
Fax : +49 (6302) 60971-1    lautern zugelassenes Inkassounternehmen

Current Thread