Interesting SML news today. We published an updated SML spec (PDF, XSD) and, more importantly, a first version of the SML-IF (PDF, XSD) spec. IF stands for “Interchange Format” and this spec describes how to package an entire SML model (including instance documents, schemas and schematron constraints) in one XML document. This is where the real SML interoperability is going to come from. Just as important is the fact that we also published a list of interop scenarios with the associated SML-IF models. What you get is a list of SML-IF documents, each one containing an SML model that exercises some feature of SML. And the interop scenarios document tells you what the result of the validation of this document should be. So you can use your SML-IF code to import this document and then your SML code to validate it. By then comparing the results of this validation with what is expected, you can find potential interop problems in your code.
There is going to be an interop session on January 16/17 where implementers will come together to compare their results with these scenarios (HP will be there). But even if you don’t plan to come to the interop, these interop scenarios provide very useful test cases for your code. It’s true that by its nature SML lends itself well to such unit testing, but really there is little excuse for other specs to not also come out with such tests. And I speak as someone guilty of having pushed some of these other specs out.