Lists Home |
Date Index |
Tim Ewald gave an excellent presentation at the Applied XML conference
last month on his use of W3C XML Schema in MSDN publishing processes.
There were a lot of interesting facets, but one that's particularly
stuck with me is his discussion of multiple levels of schema validation,
each with different schemas.
His system uses schemas in a number of ways - mostly as gateways - but
some of those gates are wider than others. Documents have to pass only
very basic validation on initial submission but the requirements get
stricter as documents are sorted and get closer to their final
destination. If I remember his system right, some of that reflects
document evolution while in the system while some of it reflects a
growing awareness of what the document should look like over the course
In general, though, this multi-schema approach seems like an opportunity
to create more flexible piplelines than what I'll call the
schema-as-contract model, in which all documents going through a process
are expected to conform to a single schema. It reflects local
processing needs and provides support for documents to evolve over time
rather than arrive full-grown. It may not be for everyone, but it's
something I expect to see happening more often, even in more
This approach also raises interesting questions about schema languages
which annotate documents with additional information, typically
attributes - notably DTDs and WXS. While I have doubts about the
practice generally, this kind of annotation can be very useful for some
kinds of transformative interpretation, notably architectural forms.
Having multiple schemas with different attribute annotations can make it
a lot easier, for instance, to convert a single data format using a
particular set of identifiers into a range of other formats using a
relatively generic transformation. Annotative approaches, freed from
"there can be only one schema", seem to be powerful tools for reducing
the cost of making multiple vocabularies interoperate. There is still,
of course, a cost, but creating annotations seems generally an easier
thing for many people to do than creating transformations.
It also suggests to me that it might be wise to create an annotation
engine separate from schema validation. RELAX NG's core lacks
annotation facilities by design, and all of the schema annotation
approaches come with their own baggage. Perhaps the DSDL folks are
already discussing this.
Ring around the content, a pocket full of brackets
Errors, errors, all fall down!
http://simonstl.com -- http://monasticxml.org