CTS2/doc/CTS2 1 1 Release
Contents
- 1 CTS2 1.1 Release
- 1.1 Description of Changes
CTS2 1.1 Release
Version 1.1 of the CTS2 Standard corrects a number of errors and omissions in the 1.0 specification. It makes a couple of attributes that were required in the 1.0 Release optional and adds the ability to supply an optional designation with any URIAndEntityName
.
Description of Changes
The changes described below represent substantive changes in the specifications. Simple errors such incorrect return and attribute types, documentation errors, etc. are not included, as they should have no direct impact on running systems. See the CTS2 github site for a complete list of all changes. Note that the headings below are linked to the issue that generated them.
CTS2 Specification Namespace
Description
The base URI for the CTS2 specification in the 1.0 release was http://schema.omg.org/spec/CTS2/1.0. This did not follow the official OMG policy, but was allowed by the OMG Architecture Board under the condition that it be corrected in the next revision. The new URI base is http://www.omg.org/spec/1.1.
Impact
CTS2 1.0 XML will not be readable by validating XML parsers based on the 1.1 specification and visa-versa. As an example, the heading for a ValueSetCatalogEntryMsg in CTS2 1.0 looks like:
<ValueSetCatalogEntryMsg xmlns="http://schema.omg.org/spec/CTS2/1.0/ValueSet" xmlns:core="http://schema.omg.org/spec/CTS2/1.0/Core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schema.omg.org/spec/CTS2/1.0/ValueSet http://www.omg.org/spec/cts2/201206/valueset/ValueSet.xsd"> <heading xmlns="http://schema.omg.org/spec/CTS2/1.0/Core"> . . .
and in 1.1 like:
<ValueSetCatalogEntryMsg xmlns="http://www.omg.org/spec/CTS2/1.1/ValueSet" xmlns:core="http://www.omg.org/spec/CTS2/1.1/Core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.omg.org/spec/CTS2/1.1/ValueSet http://informatics.mayo.edu/cts2/spec/CTS2/1.1/valueset/ValueSet.xsd"> <heading xmlns="http://www.omg.org/spec/CTS2/1.1/Core"> . . .
Conversion
CTS2ConversionUtils.xsl contains the XSLT 1.0 code to support bidirectional transform between the content.
Add optional associationID to Association Directory
Description
The Association Read service depends on the presence of an association identifier. The CTS2 1.0 association directory had no slot to record this information.
Impact
associationID
needs to be removed when converting from CTS2 1.1 to CTS2 1.0
Conversion
[1] Issue #118 contains the transformation that removes the associationID if present.
Solution
The following XSLT snippet describes the necessary conversion from 1.1 to 1.0:
<xsl:template match="association1.1:entry"> <xsl:choose> <xsl:when test="parent::association1.1:AssociationGraph"/> <xsl:otherwise> <xsl:element name="{local-name()}" namespace="{$nsmap/association}"> <xsl:choose> <xsl:when test="parent::association1.1:AssociationDirectory"> <xsl:apply-templates select="@*[name() != 'associationID']"/> </xsl:when> <xsl:otherwise> <xsl:apply-templates select="@*"/> </xsl:otherwise> </xsl:choose> <xsl:apply-templates select="node() | comment() | processing-instruction()"/> </xsl:element> </xsl:otherwise> </xsl:choose> </xsl:template>
Make associationID optional
Description
It is frequently the case that there is no useful associationID and it has been made optional in CTS2 1.1.
Impact
A synthetic associationID must be generated when converting from 1.1 to 1.0
Solution
See the section entitled "Issue #119" in CTS211to10.xsl
Include depth indicator in AssociationGraph
Description
While computable from the graph contents, the presence of a depth indicator is handy. Note that the XML Schema already included a depth indicator so this is strictly a change to the UML model.
Impact
This does not impact XML Schema based exchange.
XML Schema for CodeSystemCatalogEntry is missing hasOntologyLanguage and includes elements
Description
These attributes were erroneously omitted in the XML schema.
Impact
A conversion from CTS2 1.1 to CTS2 1.0 will have to remove these elements.
Solution
The following XSLT snippets implements this solution.
<xsl:template match="codesystem1.1:hasOntologyLanguage"/> <xsl:template match="codesystem1.1:includes"/>