Guide to CourtXML Versioning

The name of the CourtXML base schema (CourtXML_#.xsd) incorporates a number which corresponds to the high level version of CourtXML with which you are working. The CourtXML schema can have changes made to it without causing this number to be incremented. The following types of changes fall into this category:

Additions of new simple or complex types. Note: if an existing type needs to be modified in some way a copy of that type will be made and it will be added as a new type to the schema with a number added to its name. This, or the addition of any other new simple or complex type will not affect any existing services since they will not have been used yet.

Updates to annotations.

Some minor changes to existing types where the impact of the change on consuming applications should be minor (such as adding an optional attribute or element, or adding a constraint that allows the schema to enforce a validation rule that is already being enforced elsewhere).

When changes are made to a published version of a CourtXML base schema (for example CourtXML_3.xsd) for any of the types of changes described above the following updates will also be made:

An annotation will be added to the beginning of the schema that describes the change.

The value of the version attribute of the schemas xs:Schema element will be incremented.

When a new version of the CourtXML base schema is published the number within its name will be incremented (CourtXML_3.xsd to CourtXML_4.xsd) and its internal version attribute value will be set to 1.

SimpleType schemas do not have any version numbers associated with them, either in their names or version attributes. These schemas contain simpleType definitions and the only changes that could be made to them are to their enumerated values. These enumerated values generally represent codes within one of the courts applications and are automatically updated as these codes are updated. The only indicator as to the version of a simple type schema is an annotation that provides the date and time that the schema was last refreshed.

The name of a message schema incorporates numbers which correspond to the version of the CourtXML base schema that this schema is associated with and the version of the message schema at that CourtXML base schema level. For example the name CriminalComplaintDocument_3_2.xsd represents the 2nd version of the CriminalComplaintDocument schema that is associated with CourtXML_3.xsd. The general format is:

<schemaname>_#1_#2

where #1 corresponds to the CourtXML schema and #2 corresponds to the version of the message schema.

Message schemas can have changes made to them without causing the version numbers to be changed. The following type of changes fall into this category:

Additions of new elements, simple types and complex types.

Updates to annotations.

When changes are made to a published version of a message schema (for example CriminalComplaintDocument_3_1.xsd) for any of the types of changes described above the following updates will also be made to it:

An annotation will be added to the beginning of the schema that describes the change.

The value of the version attribute of the schemas xs:Schema element will be incremented.

When a new version of a message schema is published that is using the same version of the CourtXML base schema the message version number will be incremented (CriminalComplaintDocument_3_2.xsd to CriminalComplaintDocument_3_3.xsd). When a new version of a message schema is published that is associated with a new CourtXML base schema the CourtXML schema number will be changed and the message schema number will be set to 1 (CriminalComplaintDocument_3_3.xsd to CriminalComplaintDocument_4_1.xsd).