[xquery-talk] Simple (I thought) Xquery giving run-time error.

Ihe Onwuka ihe.onwuka at googlemail.com
Fri Jul 13 13:00:53 PDT 2012


which I am told has now been fixed.

On Fri, Jul 13, 2012 at 6:44 PM, Ihe Onwuka <ihe.onwuka at googlemail.com> 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 <ihe.onwuka at googlemail.com> wrote:
>> I'm running this on eXide, I'll try it on Saxon.
>>
>> On Fri, Jul 13, 2012 at 5:48 PM, Michael Kay <mike at saxonica.com> 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 <mike at saxonica.com> 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>
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> talk at x-query.com
>>>>> http://x-query.com/mailman/listinfo/talk
>>>>
>>>> _______________________________________________
>>>> talk at x-query.com
>>>> http://x-query.com/mailman/listinfo/talk
>>>>
>>>
>>>
>>> _______________________________________________
>>> talk at x-query.com
>>> http://x-query.com/mailman/listinfo/talk


More information about the talk mailing list