xsl-list
[Top] [All Lists]

Re: [xsl] type error on 3rd argument of key function

2013-02-14 11:18:16
Ihe Onwuka wrote:
  <xsl:variable name="formats" as="element()+">
         <lookup:format from="eps" to="image"/>
         <lookup:format from="gif" to="image"/>
         <lookup:format from="jpg" to="image"/>
</xsl:variable>

Assuming the above is correctly typed and I have the following key declaration

<xsl:key name="formats" match="lookup:*/@to" use="../@from"/>

Then the following invocation fais

key('formats',xfile/@format,$
formats)

with the error

A sequence of more than one item is not allowed as the third argument
of key().......

But if I untype the $format variable (remove the as attribute from the
$format variable), it works.

Experienced this on Saxon 9.1.0,7 and 9.3.0.5.

You could use
  as="document-node()"
if you want to use an "as" attribute to type annotate the variable.

I don't think keys work with sequences, you need a root node.


--~------------------------------------------------------------------
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>
--~--