Subject: Re: [xsl] XPath syntax error problem From: "Joe Fawcett" <joefawcett@xxxxxxxxxxx> Date: Sat, 22 Jan 2005 17:29:15 -0000 |
Hi,
I have the following template in my XSL :
<xsl:template match="xsd:element"> <xsl:variable name="elementName" select="@name" /> <xsl:if test="count(//*[substring-after(@ref,':') = $elementName] = 0"> <xsl:if test="count(@name) = 1"> <xsl:if test="/xsd:schema/@elementFormDefault = 'qualified'"> <xsl:value-of select="concat($prefix,':')" /> </xsl:if> <xsl:value-of select="@name" /> </xsl:if> </xsl:if> <xsl:text>&eol;</xsl:text> </xsl:template>
On execution, Saxon (and Xalan too) complain about a syntax error on the outermost "xsl:if" . The Saxon error is shown below :
bash-2.05b$ java net.sf.saxon.Transform ../data/Metadata_0101.xsd analyze-schema.xsl Error at xsl:if on line 24 of file:/C:/cygwin/home/zaphod/code/analyze-schema.xsl: XPath syntax error in {...(@ref,':') = $elementName] ...}: expected ")", found "<eof>" Transformation failed: Failed to compile stylesheet. 1 error detected.
What am I doing wrong? What I want to do is find out if the value of the "name" attribute on an xsd:element in the input occurs within a "ref" attribute elsewhere in my XML Schema file.
Thanks, Kenneth
You are missing a closing parenthesis: test="count(//*[substring-after(@ref,':') = $elementName] = 0" => test="count(//*[substring-after(@ref,':') = $elementName]) = 0"
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] XPath syntax error proble, Dimitre Novatchev | Thread | RE: Re: [xsl] XPath syntax error pr, cknell |
RE: [xsl] xslt not working, Michael Kay | Date | RE: [xsl] xslt not working, Michael Kay |
Month |