The WS-Calendar specification, soon finishing its second public review, is semantically rich and supports lots of historical complexity while being designed for further extensibility. It is readily backward compatible with all existing calendar applications. The remaining problem is that this optionality, this diversity, can make it difficult to validate information exchanges for specific purposes. Today in meeting, we discussed the approaches to developing profiles of WS-Calendar for use in specific interfaces, say, those between enterprise and building systems, or in high-speed transactions such as in smart market interactions.
The iCalendar specification itself is only loosely bound with minimal validations. A Structural validation of the incoming XML is not enough to assure its suitability for a particular purpose. Additional code is required to augment schema checks with additional required validations. These validations serve to prevent errors when the data is received by applications or components that expect the information to comply with business content validation rules. If the validation rules are written in code, they are likely to be inside the application. Rules in the application are less likely to be shared. We need common, shared validation rules.
We have three approaches on the table.
In one approach, we declare the work, with all its optionality, to date to be a Platform Specific Model (PSM). Underlying this PSM is a not yet defined Platform Independent Model (PIM). The PIM defines minimal information exchanges that must be common to all conforming specifications. The PIM and the PSM are both expressed in UML, and through the UML, we can recognize the alignments we need to define simple XML transformations (XSLT) between PIM-compliant exchanges. Bill Cox has been exploring this approach.
Another approach is to build on Content Assembly Mechanisms (CAM) to define a schema dictionary that defines the restrictions. CAM can then create the schemas we need from merging the application and the base or full schema. This is yet another application, but it is open source and the approach is being standardized in OASIS and on SourceForge.
Yet another approach is the profiling done by GML to restrict geospatial schemas for individual spaces. This appears to use some sort of substitution schema files, but I cannot say yet whether that is all they are doing.