> 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]> http://www.miketaylor.org.uk )_v__/\ An ounce of implementation is worth a ton of pontification.