Record syntaxes and schemas - XML, Dublin Core, etc

A question came up in my mind on a different list, but its a Z39.50 issue
so I will ask it here. Its probably a theory versus practice question.
I think I know the correct theoretical approach as defined by Z39.50,
but in practice I don't know if anyone uses it, currently supports it,
or is likely to support it - so does that make it the wrong way to go?
Its an old issue by the way.

Problem: I have a database of XML documents. I want to be able to ask
for records to come back as the full document (marked up in XML) or as
dublin core metadata (again, marked up as XML).

There are 3 solutions that come to mind. Comments appreciated (yes,
no, screams of anguish, that sort of thing).

Solution 1:
I think the theoretically correct approach is In present requests, use
recordComposition of 'complex', then in the 'Specification' type specify
the optional schema OID along with the element set names. The schema OID
would be different for the two forms of XML, but the record syntax OID
for both would be the XML record syntax.

The only problem I have with this is that it requires version 3 of
the protocol, and who actually supports it? How many clients support
it? I can see that preferred record syntax OIDs and element set names
can be programmed, but not schema OIDs. This may be because many clients
are still V2 for example.

Solution 2:
Allocate a new record syntax OID for Dublin Core in XML. This might
be done by adding a new digit on the end of the XML OID. That is,
all OIDs starting with the XML OID must be XML. 1.2.840.10003.5.109.10
is for generic XML, and 1.2.840.10003.5.109.10.1 is for Dublin Core etc.
The advantage is most clients can be configured to choose a record syntax
OID.

Solution 3:
Use the XML record syntax OID, but rely on usage of element set names.
That is, introduce standard element set names for 'DC-B', 'DC-F' etc.

I am interested in both theory and practice. It has come up for me
personally with respect to ZiNG/SRW and translating SRW arguments
into Z39.50 requests. Its particularly a problem for my implementation,
as while our server has implement lots of Z39.50 (explain, extended
services, v3, concurrent operations, resource reports, multiple record
syntaxes etc), the one area we have not done anything to date is schemas.
And if no clients (or even most), then I have a quandry of doing 
"the right thing" (which could be a lot of work) or "something that
is practical and is interoperable".

Feedback appreciated.

Alan
-- 
Alan Kent (mailto:ajk@mds.rmit.edu.au, http://www.mds.rmit.edu.au)
Postal: Multimedia Database Systems, RMIT, GPO Box 2476V, Melbourne 3001.
Where: RMIT MDS, Bld 91, Level 3, 110 Victoria St, Carlton 3053, VIC Australia.
Phone: +61 3 9925 4114  Reception: +61 3 9925 4099  Fax: +61 3 9925 4098 

Received on Tuesday, 12 March 2002 19:36:18 UTC