[xquery-talk] objects in xquery?
Michael Kay
mike at saxonica.com
Mon Jun 11 11:34:04 PDT 2007
If eXist doesn't provide any way of setting the value of an external
variable then you might have to do it this way. It seems a shame however to
use extensions when it could be done without.
Michael Kay
http://www.saxonica.com/
> -----Original Message-----
> From: bryan rasmussen [mailto:rasmussen.bryan at gmail.com]
> Sent: 11 June 2007 10:12
> To: Michael Kay
> Cc: talk at x-query.com
> Subject: Re: [xquery-talk] objects in xquery?
>
> Hmm, the calling application is Exist however, and the file
> is itself an XQL file that is interpreted by Exist.
>
>
> Wouldn't it be more like inside of my query I have:
>
> declare function my:xmlobject() as element(){ return
> <defaultparams> <param name="path">demos</param> <param
> name="page">page1.xml</param> </defaultparams>
>
> };
>
>
> And then I need to call that function from my parameter
> getting function, check if the parameter exists in the query
> string, if not get it from my:xmlobject?
>
> Does this seem reasonable, it seems reasonable to me when i
> enunciate it.
>
> Cheers,
> Bryan Rasmussen
> On 6/11/07, Michael Kay <mike at saxonica.com> wrote:
> >
> > In the calling application, construct an XML document that
> holds the
> > parameter values. Pass this XML document to the query as an
> external
> > variable, and access the values of individual parameters using path
> > expressions.
> >
> > Michael Kay
> > http://www.saxonica.com/
> >
> >
> > > -----Original Message-----
> > > From: talk-bounces at x-query.com
> > > [mailto:talk-bounces at x-query.com] On Behalf Of bryan rasmussen
> > > Sent: 11 June 2007 08:13
> > > To: talk at x-query.com
> > > Subject: [xquery-talk] objects in xquery?
> > >
> > > Hi,
> > >
> > > I have a situation where I want to get a certain number of
> > > parameters, and if the parameters do not exist or are
> empty to use a
> > > default string value instead, something like:
> > >
> > >
> > >
> > > declare function test:mappath() as xs:string{
> > >
> > > if(request:get-parameter("path", ()) !='') then
> > > request:get-parameter("path", ()) else
> > > "demos"
> > >
> > >
> > > };
> > >
> > > as a general rule though in other server side languages what
> > > I like to do when doing this kind of thing is to compose an
> > > object that holds the values, some example pseudocode:
> > >
> > > x as object();
> > > x{
> > > path="demos";
> > > page="page1.xml";
> > >
> > >
> > >
> > > }
> > >
> > > then a function (have used the same structure as the xquery
> > > function above but obviously syntactically is not xquery)
> > >
> > > getparam(param){
> > > if(request:get-parameter(param, ()) !='') then
> > > request:get-parameter(param, ())
> > > else
> > > x[param]
> > >
> > >
> > > }
> > > then I can just do
> > > path = getparam("path")
> > > and so forth.
> > >
> > >
> > > So I would like to know if this kind of thing is possible
> in Xquery.
> > > Perhaps what to do is to build a function that returns XML
> > > and then use xpath to get at the value in that function?
> > > If possible it would nice if someone had an example of the
> > > way to do the thing above?
> > >
> > > Thanks,
> > > Bryan Rasmussen
> > > _______________________________________________
> > > talk at x-query.com
> > > http://x-query.com/mailman/listinfo/talk
> >
> >
More information about the talk
mailing list