Re: Component-Based Schema Design

** Reply to message from "Roger L. Costello" <costello@mitre.org> on Fri, 27
Dec 2002 10:56:52 -0500

> INTEROPERABILITY VIA "SCHEMA CHUNKS"
> 
> I have become convinced that the key to interoperability is to promote
> the use of broadly adopted "schema chunks".  I would like to hear your
> thoughts on how to design interoperable schema chunks.

I have an alternative approach to "schema chunks", chunks by derivation rather
than by creation.  I have been working on a project involving FpML (Financial
Products Markup Language, http://www.fpml.org/), where I have been creating
message Schemas from a monolithic Schema that includes FpML.  For each message,
I define the elements that I must have its message Schema, and an XSLT script
extracts them + all dependencies into a valid message Schema which is a subset
of the original Schema.

If you then create a multi-message Schema which includes all of the messages,
you get errors because some common items are multiply defined.  So, you start
moving the common definitions into separate "schema chunks", and move all
dependencies into the chunks as well so that each chunk is a valid Schema in
its own right.  By an iterative process, you get a "natural" set of chunks for
the message set.  You can then choose to combine or split some of these based
on human understanding of the semantic relationships of the elements in the
chunks.

I mention this because it was something I started by necessity, but it turned
out to give better results that I had expected.  In my scenario, a "chunk" is
just an includable sub-Schema, so I don't have to worry about how to do partial
validation, since there is always a full Schema (made up of included chunks) to
do the job.

	Cheers,
		Tony.
====
Anthony B. Coates, Information & Software Architect
mailto:abcoates@TheOffice.net
MDDL Editor (Market Data Definition Language)
http://www.mddl.org/
FpML AWG Member (Financial Products Markup Language)
http://www.fpml.org/

Received on Friday, 27 December 2002 13:33:05 UTC