[xquery-talk] flowrrr - how to structure a function?
martin at x-hive.com
Wed Oct 18 11:47:24 PDT 2006
>> What kind of a result is the "response-header (name?) value" pair?
>> Does it fit into the XQuery data model?
> I guess you missed the last sentence you quoted ...
Ouch, no responses before 9 AM in the future ;-)
> PIs would also work. But attributes work just as well, I think,
> and it makes sense: an attribute is a property with a name and a
> string value - and a response header is the same thing.
> Using PIs would actually be more ambiguous, just because it can
> be part of a well-former XML document: When should be PI be
> transmitted as part of the result "body", and when should be
> it extracted as a result header?
Yes, it's kind of a pity that PIs don't carry namespaces. However in
your case you might swallow programming errors (returning attributes
toplevel). I think you won't get around that unless you use special
"magic" values (that are not part of the XQDM), which I rather
wouldn't. If it's possible to construct the expected result within
XQuery, you always might accidentally swallow a value that was not
supposed to go that way. However if you e.g. only swallow PIs with a
certain local name of (for example) "xquery-web" it's pretty unlikely
you run into errors.
Using well-formed XML documents as responses might make caching
easier. Apart from these minor and probably quite hypothetical issues
it's probably totally irrelevant whether it's attributes or PIs.
I think Wolfgang's function library in eXist (http://demo.exist-
db.org/xquery/functions.xq) also includes functions to create user
sessions, this might be more difficult to make side-effect free. I.e.
if session:create(), session:set-current-user() and session:invalidate
() return values if called in the right order, but give errors if
called in the wrong order, it's much more difficult because you need
to provide access to those values. I'm not picking on you Wolfgang, I
rather think your library is a good example of what one does need in
On the other hand, RESTafarians might argue that all kinds of storing
stuff in sessions (or sessions in general?) are evil anyways ;-)
martin at x-hive.com
More information about the talk