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

Philip Cantin pjcantin at gmail.com
Thu Mar 26 14:37:44 PST 2009


Oh, yes...I forgot to mention earlier:

I'd like no two <xf:bind> element tags to be the same; that's why I was
using the distinct-values() function.


On Thu, Mar 26, 2009 at 1:51 PM, Michael Kay <mike at saxonica.com> wrote:

>        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
>               id="{$e/@ref}-add-trigger"
>               nodeset="instance('views')/{$e/@ref}-add-trigger"
> relevant="instance('save-data')//{$e/@ref}[{$e/@maxOccurs}]"/>
> else ()
> I can't really see where the distinct-values() comes into it - it doesn't
> appear in your English description.
> Michael Kay
> http://www.saxonica.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://x-query.com/pipermail/talk/attachments/20090326/6243ef9f/attachment-0001.htm

More information about the talk mailing list