Hey Liam, I really appreciate your time with this. That really clears everything up. Thanks again.- James
Subject: Re: [basex-talk] Question regarding BaseX support for id and idref From: liam@w3.org To: james.jw@hotmail.com CC: basex-talk@mailman.uni-konstanz.de Date: Mon, 13 May 2013 23:53:54 -0400
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