Service Modeling Languagel with Schematron?

by Rick Jelliffe

Still very early days yet, but a tantelizing article at SearchWebServices.com suggests that the big boys are looking at Schematron. I'll be interested to see how it pans out.

4 Comments

Steve Loughran
2006-08-01 04:53:19
Well, SML seems to use SchemaTron *and* XSD. If you are defining a new component that can be deployed, you still need your XSD skills, and your user still needs to understand it, or they need a fancy new editor. And you will still get messages about particle attribution.


And it is very WS-* centric.


More details here: http://www.microsoft.com/windowsserversystem/dsi/default.mspx


Having co-authored one XML configuration language already, and written an implementation plus test cases (The GGF CDDLM CDL language), I'm not ovewhelmed with SML. If we are staying in the XML space, we could do better with


-a simple schema that does not need to be extended by every configuration author. That is, if all you are doing are nested name/value pairs with simple types, then you can use elements with fixed names, values in nested elements, type defined as attributes which can be overwritten on demand.


-a way of adding constraints to descriptions (schematron may fit here)


-A way of validating your model with meaningful messages


Good OSS implementations, with a public test suite.


I haven't yet proposed my CDL2 language yet, but I am thinking of something very simple, very RESTy. The alternative would be to bite the bullet and go for RDF in N3 notation, which does open the tooling up quite widely.

Michael Champion
2006-08-01 08:56:57
They've more than looked at Schematron, they've adopted it to specify constraints that XSD can't handle.


The actual details of SML are at http://download.microsoft.com/download/f/3/7/f373e3a3-8cb7-4241-94ea-efd3f534b9cd/SML-public.doc
"The Service Modeling Language (SML) provides a rich set of constructs for creating models of complex IT services and systems. These models typically include information about configuration, deployment, monitoring, policy, health, capacity planning, target operating range, service level agreements, and so on. "


"A model in SML is realized as a set of interrelated XML documents. The XML documents contain information about the parts of an IT service, as well as the constraints that each part must satisfy for the IT service to function properly. Constraints are captured in two ways:
1. Schemas - these are constraints on the structure and content of the documents in a model. SML uses a profile of XML Schema 1.0 [2,3] as the schema language. SML also defines a set of extensions to XML Schema to support inter-document references.
2. Rules - are Boolean expressions that constrain the structure and content of documents in a model. SML uses a profile of Schematron [4,5,6] and XPath 1.0 [9] for rules."


I haven't looked too closely at this, but I see no signs that it is at all "WS-* centric." There is no reference to SOAP or WSDL, and the only reference to any WS-* spec says "An SML reference is a link from one element to another. It can be represented by using a variety of schemes, such as Uniform Resource Identifiers (URIs) [7] and Endpoint References (EPRs) [8]." (reference 8 is to the WS-Addressing spec).

Rick Jelliffe
2006-08-01 18:30:30
Thanks for the links.


"SML supports a conforming profile of Schematron. All elements and attributes are supported." XPath 1 extended by sml namespace elements is used. The little Schematron schemas can appear in complex type declarations and global element declarations.


SML is quite interesting too in that they define their own key/uniqueness constraint language: an extended version of the XSD one but allowing cross-document checks. At ISO, DSDL has a part for path-based integrity checks, which has been dormant because we did not see anyone in industry demanding or prototyping anything: I wonder if we at DSDL should cooperate with the SML people and adopt their extended keyref language for DSDL Part ?6?. I had been thinking of adopting a StaX (that nice streaming profile of XML) language, but I didn't get any response from the instifators of StaX.

Pratul
2006-08-05 12:49:48
As a co-author of the spec, I can vouch that SML is NOT at all WS-* centric. It is an XML Schema 1.0 based modeling language that uses Schematron for defining constraints that can't be expressed in XML Schema, supports typed inter-document references, defines deref() - an XPath 1.0 extension function- for navigating inter-document references, and extends the key, unique, and keyref constrainst to work across inter-document references.