Hi Ethan.
I think I figured out a way to do RelaxNG schema versioning.
Where we had left it when we talked earlier, the document you pointed me
to (www.xfront.com/Versioning.pdf) had good ideas, but without a schema
versioning mechanism, they were hard to implement.
RelaxNG schemas don't allow versioning in their headers, but we can put
the schema version in a comment in a RelaxNG schema to workaround this.
We can then have the parser validate the manifest against it before
using the manifest.
The thing missing by putting the version in the comment instead of the
header (as in a DTD) is that there is no mechanism for the parser proper
to check it. No problem though... ManifestServ can add a check of its
own to look for the special comment in the schema (a grep through the
file, perhaps) to extract the version number. Next, it would pre-parse
the manifest to get the version of the manifest and do the compare. If
the check passes, preprocessing ensues and the data is prepared for
consumption by AI.
As long as the schema version is in the schema somewhere, and the parser
knows how to find and check it, its robustness is the same. It doesn't
matter whether it is in a comment or in a header.
Do you see any holes or omissions here, or does this make sense?
Other thoughts?
Thanks,
Jack
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://mail.opensolaris.org/pipermail/caiman-discuss/attachments/20090501/46203c6a/attachment.html>