Re: [bdbxml] xmldb like collections?
George Feinberg <[email protected]>
| Newsgroups | gmane.comp.db.dbxml.general |
|---|---|
| Message-ID | <[email protected]> |
>> There is no "query all known/open containers" concept. That would
>> have
>> to be built into the implementation of the XML:DB API.
>> You could either rewrite the query to include hard-coded paths, or
>> write it to use a variable for the collection/container name, and
>> put a loop into the query.
>>
>
> Either way it sounds like a fairly complex customization. Currently
> we are evaluating xmldb's for their capability before selecting
> one, this is something I would add to my list of trade offs from
> the other xmldb's we've been looking at.
>
> Currently, express this trade off list as
>
> 1.) useful standard API's.
>
> eXist and Xindice:
> xmldb, webdav, xml-rpc, REST
>
> bdbxml:
> xml-rpc, bdbxml api
>
> 2.) database performance:
>
> eXist and Xindice:
> poor scalability in terms of document size.
>
> bdbxml:
> better scalability in terms of document size.
>
> 3.) Contextual XQuerying and Collection Hierarchy.
>
> eXist:
> good capability within db for collection context based XQuerying.
>
> Xindice:
> good capability in contextual querying across collections and
> multiple databases.
>
> bdbxml:
> no concept of Collection Hierarchy
This is a purposeful decision. Because BDB XML is intended to be
tightly
coupled with an application (it is not a server), the notion of
namespace
is left flexible, so that the application can choose one that best fits
its needs. The implementation of XQuery required that *some* minimal
namespace support exist, in order to implement fn:collection() and
fn:doc()
in the specification. That is all that's provided. In addition, BDB
XML allows
the application to entirely take over that namespace, via the
XmlResolver
interface.
The XML:DB API, as near as I can tell, does not specify the
scope of a query, other than collection.
>
>
>> You mentioned in an earlier message this:
>>
>>> This is much different than in xmldb, the concept of collection
>>> is within the database instance itself, there is 1 to many
>>> relationship between the db instance and its collections in xmldb.
>>>
>>> The challenge I see in equating containers to collections is
>>> that in xmldb an index spans all collections in a db. In bdbxml,
>>> it doesn't seem you could have an index that spans containers.
>>>
>
> I would add to this that Xindice and eXist handle the
> implementation of xmldb slightly differently. Currently eXist works
> solely on "1 - many" relationship between a Database and its
> Collections, while Xindice actually supports a "Many - Many"
> relationship where the API can access multiple db instances on
> different url paths while working with many collections in each db.
Such variation is why the XML:DB API does not actually specify
behavior to that
detail.
>
>> Can you please provide an API reference for Indexes and their
>> scope, as well as query scope in the
>> XML:DB interface?
>>
>
> In eXist here is a javadoc reference to the xmldb API Database and
> Collections API.
>
> http://exist.sourceforge.net/api/org/xmldb/api/base/Database.html
> http://exist.sourceforge.net/api/org/xmldb/api/base/Collection.html
Here is the public xmldb API:
http://xmldb-org.sourceforge.net/xapi/xapi-draft.html
I can't find anything indicating cross-collection querying
as a feature.
>
> Note: eXist is currently considering working on an new version of
> the xmldb API to accomplish some improvements. Now appears to be
> the time to coordinate with other groups/companies to adapt this
> API to Real World cases.
If that were done, it'd be good to get some collaborative effort going.
Regards,
George
------------------------------------------
To remove yourself from this list, send an
email to [email protected]