Integrate Controlled Vocabularies with the CIM

This page provides documentation for ticket:778.

It describes work done to change the way CVs are handled. Instead of being hard-coded into the CIM, CVs should be stored and governed separately on their own server. Upon validation, those CVs should be downloaded and converted to some format (Schematron?) that can be combined with CIM XML Schemas.

I have changed the way that CVs are described in the CIM.

Previously, they looked like this:

v1.4 CVs

Note that the "value" attribute was bound to an enumerated type that defined the CV terms (which may or may not have included the term "other"). The optional vocabularyServer element gave details necessary to access the CV on an appropriate server. This structure was not being used.

Now, they look like this:

v1.5 CVs

Note that there is a required cv="true" attribute; this enables me to use simple XPath to locate all CVs in a CIM document. Note that the value attribute is no longer bound to a enumerated list (since those terms no longer need to be embedded within the CIM), however it cannot be empty. The CV for this element has an explicit attribute indicating whether or not it is open (this is based on an "open" tagged_value in the UML). The details of the CV are as before: name and version identify the CV, server provides the URL for the server that the CV is hosted at.

These changes were all implemented at r2035.