xsl-list
[Top] [All Lists]

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

2007-06-17 07:13:33
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[(_at_)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[(_at_)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   Geschäftsführer   Prokurist
Raiffeisenstr. 26   Kaiserslautern    Jochen Schrör     RA Felix Kuntz
67817 Imsbach       HRB 12047         ebenda
Germany
Tel.: +49 (6302) 60971-0    Vom Präsidenten des Landgerichtes Kaisers-
Fax : +49 (6302) 60971-1    lautern zugelassenes Inkassounternehmen



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

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