Re: Requesting XML records via Z39.50

If I may, please indulge me as I review some of the history behind all these 
object identifiers, etc.  and I hope this may provide some historical 
perspective.

When we began to talk about XML for Z39.50 (roughly, ten years ago), we 
viewed it (correctly) as a record syntax analogous to GRS-1.  If you don't 
remember GRS-1, it is sufficient to say that it was the pre-XML functional 
equivalent of XML - a generic syntax, meaningful only when used in 
conjunction with a schema and namespace (which Z39.50 called a tagset). This 
is in contrast to record syntaxes like the various marcs, which had built-in 
schemas and tagsets.

Thus: GRS-1 was a record syntax;  XML was a record syntax. GRS-1 worked with 
Z39.50 schemas and tagsets; XML worked with XML schemas and namespaces.

It is also necessary (though painful) to point out that GRS-1 worked also 
with "dynamic element specifications", for which there is no real  XML 
analogy. These dynamic element specifications were generalizations of the 
more "static" element set names; you may recall the specification eSpec-1. 
It is necessary to mention this because of the compSpec story:  compSpec was 
provided in Z39.50-1995 as a complex alternative to using just a record 
syntax and element set name-  "marc" with  "brief", for example.  Compspec 
assumed that you would use grs-1 as the record syntax, and also specify a 
schema. And in addition, perhaps an eSpec specification.  Then XML came 
along at which point compSpec assumed you would use either GRS-1 or XML as 
the record syntax, and correspondingly a GRS-1 or XML schema (and if GRS-1, 
perhaps also an eSpec specification).

This is boring I know, but it gets a bit more interesting now (or at least 
more relevant).

So, we registered 1.2.840.10003.5.109.10 as the record syntax for XML, for 
use as just described.   Then someone asked "XML version 1.0 or 1.1"?  So we 
registered 1.2.840.10003.5.109.10.1.0  and 1.2.840.10003.5.109.10.1.1 for 
these versions and designated 1.2.840.10003.5.109.10 as "no specific 
version". Why did we register these version specific identifiers? Because we 
thought we had to; we didn't know any better at the time.

 Three things in particular led to the implementor agreement, to use 112 and 
put the schema in the element set name parameter.

1.  Very few if any implementors wanted to implement compSpec. There was a 
popular cry to be able to simply specify the record syntax as XML and some 
way to indicate the XML schema, but without using compSpec.   Of course the 
purists (me included) pointed out that this was what compSpec was invented 
for!  Not using it would be a cludge! The counter argument was, no, compSpec 
was invented for dynamic element specification and nobody is going to 
implement it. (The truth was somewhere in between. It was invented for both 
purposes.)  And compSpec was too complicated.

2.  After much debate and discussion, the ZIG decided that an element set in 
the XML environment is a schema. (A subschema, perhaps, but a schema 
nevertheless).

3. There needed to be a clean break from the confusing XML OIDS, 109.10, 
109.10.1.0, and 109.10.1.1 which were all supposed to be used with compSpec 
anyway.  So we decided to register a completely new OID, 112, to represent 
XML for use as described in the agreement.

I hope this helps some.

--Ray

----- Original Message ----- 
From: "Tommy Schomacker" <TS@dbc.dk>
To: "Adam Dickmeiss" <adam@indexdata.dk>; <www-zig@w3.org>
Cc: <www-zig@w3.org>
Sent: Tuesday, January 27, 2009 4:16 AM
Subject: SV: Requesting XML records via Z39.50



Hi Adam,

What OID is "the original one"? I have found these OID for XML record 
syntaxes in the registry:
1.2.840.10003.5.109.10 xml (no specific version)
1.2.840.10003.5.109.10.1.0 xml version 1.0
1.2.840.10003.5.109.10.1.1 xml version 1.1
1.2.840.10003.5.110 Z39.50 mime types
1.2.840.10003.5.112 xml-b  XML record according to the schema or definition 
identified by the element set name.

Best regards
Tommy

Received on Tuesday, 27 January 2009 22:44:26 UTC