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>

Reply via email to