RE: [xsl] RE: Muenchian technique, was (Keys on multiple element types)

Subject: RE: [xsl] RE: Muenchian technique, was (Keys on multiple element types)
From: "Michael Kay" <michael.h.kay@xxxxxxxxxxxx>
Date: Tue, 5 Feb 2002 13:55:18 -0000
> Jeni said:
> > The keys don't; using the Muenchian method (which uses keys for
> > efficiency) does. The duplicates are removed by the statement:
> >
> >   *[generate-id(.) = generate-id(key('rows', name)[1])]
> >
> > where you select all the elements that are the same element as the
> > element you get when you use the 'rows' key with that element's name
> > (i.e. selects the first element with a particular name in the
> > document).
>
> Mike, your books states that the [1] is redundant for the Muenchian
> technique, yet it keeps getting repeated.

The [1] is indeed redundant, because generate-id(), if given a set of more
than one node, returns the id for the first one. But I think using the [1]
is good practice, as it documents clearly what you're doing.

Also, with XSLT 2.0 we might start to see processors that choose to do more
rigorous type-checking, and although omitting the [1] will still work, some
processors might give you a warning. In XPath 2.0 we say that supplying a
sequence where a singleton is expected is a type exception, from which an
XSLT processor should recover by taking the first item in the sequence: but
as with conditions like having conflicting template rules, we don't say the
processor can't produce a warning first.

Michael Kay
Software AG
home: Michael.H.Kay@xxxxxxxxxxxx
work: Michael.Kay@xxxxxxxxxxxxxx


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread