> Date: Thu, 11 Aug 2005 12:04:58 +1000
> From: Stephen Crawley <[log in to unmask]>
> [Very nice summary of the DC model snipped.]
> Instead of having the XML schema reflect the metadata schema, make it
> reflect JUST the fundamental model of metadata.  Thus, instead mapping
> (say) a "DC.Date.created" metadata element to an XML element like:
>    <dc:date.created>2001-01-01</dc:date.created>
> it might be represented as:
>    <element id="DC.Date.created" encoding="ISO8601">2001-01-01</element>

That way, madness lies.

> This approach allows you to transfer any metadata record that meshes
> with Dublin Core's underlying model of metadata.  It is up to the
> server to decide which metadata elements to send, and it is up to
> the client to decide what to do with any received elements that it
> doesn't understand.

Sorry, but this is a classic example of scheme that buys syntactic
interoperability on the cheap, at the expense of semantic
interoperability -- which the experiences of Z39.50 implementation
have taught us is both much harder and more important.

The whole point of a constraint language such as XML Schema is to,
well, _constrain_ what can be included in the record.  As soon as you
introduce a back-door such as <element id="whatever">, that constraint
is blown away.  It's like casting everything to void*.  It gets your
program through the compiler just fine, but good luck sorting out all
the run-time errors.

 _/|_    ___________________________________________________________________
/o ) \/  Mike Taylor  <[log in to unmask]>
)_v__/\  An ounce of implementation is worth a ton of pontification.