Subject: Re: [xsl] how do I say it for xalan, namespace probs|
From: "Andrew Welch" <andrew.j.welch@xxxxxxxxx>
Date: Sun, 17 Jun 2007 18:56:14 +0100
Jochen Schroer wrote:
> 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.
I think you have hit a bug in Xalan. I don't see any problem with that XPath expression and other XSLT 1.0 processors like Saxon 6.5 or MSXML run the stylesheet without problems.
I think it may be because the stylesheet was loaded using a Stream so the System Id is unknown, meaning the empty call to document('') returns nothing.
Calling setSystemId() on the stream should fix it, or just separate out the <my:char2bar> block into a separate file and not use the 'hack' (or use nnn:node-set())