[xquery-talk] returning elements without duplicates, based on an XML schema and using an attribute as context node

Michael Kay mike at saxonica.com
Thu Mar 26 18:51:22 PST 2009

	I want the XQuery to determine if the @maxOccurs attribute exists in
an <xs:element> tag somewhere in the schema, and its value isn't 1. If this
is true, then, for all elements that have a @ref attribute in the schema
(because we now know there's at least one), the XQuery should get the string
value of the element's @ref attribute (what I wanted $name to be), along
with the value of element's @maxOccurs attribute (what i wanted $max to be),
and lastly the string value of $max (what I wanted $index_max to be). Then
finally, I just wanted to use these three values within an <xf:bind> tag
that was to be returned.

That translates to me as:

if (//xs:element[@maxOccurs[.!="1"]])
then for $e in //xs:element[@ref]
     return <xf:bind
else ()

I can't really see where the distinct-values() comes into it - it doesn't
appear in your English description.

Michael Kay

More information about the talk mailing list