which I am told has now been fixed.
On Fri, Jul 13, 2012 at 6:44 PM, Ihe Onwuka <[email protected]> wrote: > It works on Saxon.... it's a bug in the eXist XQuery processor. > > On Fri, Jul 13, 2012 at 5:55 PM, Ihe Onwuka <[email protected]> wrote: >> I'm running this on eXide, I'll try it on Saxon. >> >> On Fri, Jul 13, 2012 at 5:48 PM, Michael Kay <[email protected]> wrote: >>> >>> On 13/07/2012 17:35, Ihe Onwuka wrote: >>>> >>>> didn't want to tamper with the definition of $models as it is used >>>> elsewhere (you are seeing a cut down version of the code), but having >>>> removed a /* from its definition, that hasn't worked either (I get the >>>> same result reported earlier). >>> >>> Well, there's another mistake then. Removing the /* worked for me. >>> >>> Michael Kay >>> Saxonica >>>> >>>> >>>> On Fri, Jul 13, 2012 at 4:18 PM, Michael Kay <[email protected]> wrote: >>>>> >>>>> Your problem is that the initialization of $models goes down two levels >>>>> below the document node, so it is bound to a sequence of Model elements, >>>>> so >>>>> when you do $models/* you are selecting the children of the Model >>>>> elements, >>>>> but there are no child elements to select. Remove a /* either from the >>>>> definition of $models or from the expression where it is used. >>>>> >>>>> Michael Kay >>>>> Saxonica >>>>> >>>>> >>>>> On 13/07/2012 15:41, Ihe Onwuka wrote: >>>>>> >>>>>> xquery version "1.0"; >>>>>> >>>>>> >>>>>> declare namespace b2b ="http://www.b2b.net/plants"; >>>>>> declare namespace xf="http://www.w3.org/2002/xforms"; >>>>>> declare namespace html="http://www.w3.org/1999/xhtml"; >>>>>> declare namespace ev="http://www.w3.org/2001/xml-events"; >>>>>> >>>>>> declare variable $configDir as xs:string :="config"; >>>>>> >>>>>> declare variable $models as element()* >>>>>> :=doc(concat($configDir,"/modelNames.xml"))/*/*; >>>>>> >>>>>> declare function local:bindModel($x,$y,$z) {$x}; >>>>>> >>>>>> declare function local:capitalise($str) >>>>>> { >>>>>> concat(upper-case(substring($str,1,1)),substring($str,2)) >>>>>> }; >>>>>> >>>>>> declare function local:defineModelRoot($model as element()) >>>>>> { >>>>>> element {concat('b2b:',local:capitalise($model/text()))} >>>>>> {element xf:bind {attribute repeat >>>>>> {local:getBindingFileName($model)}}} >>>>>> }; >>>>>> >>>>>> declare function local:getBindingFileName($model as element()) as >>>>>> xs:string >>>>>> { >>>>>> concat($model/@singular,'Bindings.xml') >>>>>> }; >>>>>> <switch xmlns="http://www.w3.org/2002/xforms"> >>>>>> {$models/*/<case >>>>>> >>>>>> >>>>>> id='{text()}Case'>{local:bindModel(local:defineModelRoot(.),"",xs:QName('group'))}</case>} >>>>>> </switch> >>>>> >>>>> >>>>> >>>>> _______________________________________________ >>>>> [email protected] >>>>> http://x-query.com/mailman/listinfo/talk >>>> >>>> _______________________________________________ >>>> [email protected] >>>> http://x-query.com/mailman/listinfo/talk >>>> >>> >>> >>> _______________________________________________ >>> [email protected] >>> http://x-query.com/mailman/listinfo/talk _______________________________________________ [email protected] http://x-query.com/mailman/listinfo/talk
