This wiki has undergone a migration to Confluence found Here

UML ITS Technical

From HL7Wiki
Jump to navigation Jump to search


The UML ITS is a technical infrastructure for making V3 wire formats easier to implement.

The XML ITS includes a number of 'secret' transforms (actually, they are not secret, but they are exceedingly poorly documented). The UML ITS proposes to be extremely specific about the wire format, in the recognition that it's the wire format that users actually finally encounter and must master. It's goal is to be able to go to an implementer and offer them a "thing" they can use, an implementable model. The implementable model (dubbed a XUM) will be normative and will be published as UML and XML schema.

There may be a number of implementation decisions and transforms (i.e. policies) made between the RBM and the on-the-wire format. These are made before the UML and schema are built, and are explicit in them. These changes are discussed in UML ITS Policy.

RBM <--Policies--> XUM Implementable Models (UML diagram <-> Schema)

The output of the ITS can be used for code generation. It will be tested with common tools. The XUM works with the commonly used tools, and it correctly specifies the wire format. It doesn't completely describe the validation rules for the message, no schema or UML model will be able to do that, because the HL7 models rely heavily on terminology. A XUM consists of a pair of schemas and UML diagrams that specify the exact same wire format, implementers can code generate from them and exchange data. WYSIWYG: What you see in the schema or in the diagram, is exactly what goes on the wire.

There is existing work outside HL7 on the question of transforming from UML diagrams to an XML instance or a schema. The UML ITS is intended to leverage this work (One of the existing issues is that UML to XSD transform requires sequencing of the associations, which is a "bit of magic", but does need to be represented explicitly).

See XUM for details of the implementable UML model/schema.


XUMs will be normative. We do not claim that these are the only model that can apply, but we assert that the XUM is a reliable correct definition of the wire format. Specifically we allow for things such as schema artifacts in the instance of the message. If the message fails schema validation, it is necessarily incorrect. If the message passes schema validation, the format is correct, but the actual data contents may not.

It expresses a RIM-Based Model (RBM) both in terms of a XML schema as well as a UML model. The UML model is the equivalent (or as closely as possible) of the schema and vice versa.