I am trying to create a nested set of collections from within a Xindice
application. Specifically, I have a collection called "db/addressBooks" which
contains a collection called "tdean". I have a CollectionManagementService
instance that is associated with the top-level (db/addressBooks) collection.
I want to create several collections within the nested collection
(db/addressBooks/tdean). For example, I need to create collections
"db/addressBooks/tdean/Personal" and "db/addressBooks/tdean/Work".
I would like to create the collections directly from my service that is
associated with the "db/addressBooks" class. I want to do something like:
service.createCollection("tdean/Personal");
service.createCollection("tdean/Work");
When I first tried this, it was unclear to me if this approach is supposed to
work. The XML:DB API specs are unclear on specifics, and the API use cases
shed no light on this scenario. The specs do say that the new collection is
created *relative* to the associated collection, which implies to me that
nested collection creation is supported: However, it doesn't say
specifically, so please correct my assumptions if this approach is not
supported.
What I found when I tried the above code: The new collections are created
within the "tdean" collection, so it appears that the above syntax is being
handled as I expected. However, rather than creating a collection called
"Personal" within the "tdean" package, the new collection is called
"tdean/Personal" (within the "tdean" collection). It appears that the Xindice
implementation has a bug here, but I wanted to check to see if I was
understanding the desired behavior correctly.
Does anyone have any comments on how this is supposed to work? I can dig into
the Xindice source and see if I can find the problem, but I want to be sure
this really is a bug before wasting my time.
For the time being, I can work around the problem by explicitly retrieving a
collection service that is associated with the lower-level collection and
creating a non-nested collection from it. It will be tedious for me to work
around though, so I'd like to get this behavior changed if possible so I can
avoid this hack...
- Tim