On Mon, 2013-05-13 at 21:01 -0600, James Wright wrote:
> Liam,
> I think that answers my question and is what I expected. So basically
> BaseX and maybe XQuery as a whole does not respect or understand the
> id/idref concept formally and thus will not automatically join.

It's actually not strictly true - a DTD-aware XQuery processor can
supply the id() and idref() XPath functions. However, these do not work
across documents, and the values must be legal XML identifiers.

Having said that, most XML databases make indexes, so joins using FLWOR
and values will work based on values.

Although there are no integrity constraints as such, you can use XML
Schema to validate incoming data in some implementations automatically,
and in others by running a validator as part of some external process.

> [...]

> I need to handle the relationship explicitly.

Yes.

Note also, by the way, that XML databases tend to go fastest when you
have
. few or zero XML namespaces
. lots of different XML element names
. content rather than attributes (as then you can use full text).

But this is only a general rule of thumb; like all database query
languages you can sometimes write a query that takes milliseconds and
sometimes you write one that takes days. Luckily XQuery has been around
for a while and the surviving implementations generally do some pretty
good optimization.

Liam

-- 
Liam Quin - XML Activity Lead, W3C, http://www.w3.org/People/Quin/
Pictures from old books: http://fromoldbooks.org/
Ankh: irc.sorcery.net irc.gnome.org freenode/#xml

_______________________________________________
BaseX-Talk mailing list
[email protected]
https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk

Reply via email to