/
[AIXM-245] AIXM XML namespace policy

[AIXM-245] AIXM XML namespace policy

ID:

AIXM-245

target version:

AIXM 5.2

version:

1.0

last updated:

17 AUG 2018

status:

APPROVED


Description

An XML namespace policy is established for AIXM, to be applied starting with version 5.2.

Rationale for change

See https://aixmccb.atlassian.net/browse/AIXM-233

Until now, each AIXM version came with its own namespace. For example, AIXM 5.1.1 declares the namespace http://www.aixm.aero/schema/5.1.1, which is different from the AIXM 5.1 namespace (http://www.aixm.aero/schema/5.1). 

However, every time you change the namespace, you will break all processing applications. So existing implementations, which rely on code generated from the AIXM 5.1 schema, can’t easily adapt to exchange AIXM 5.1.1 based data sets, even if the used elements haven’t changed between AIXM 5.1 and AIXM 5.1.1.

So the namespace shall stay the same if there are no impacts on the existing implementations. Bug fixing and patching should not break implementations.

Impact assessment

There is no impact on existing implementations, as the new namespace policy applies to the new versions only.

Change Proposal details

The following AIXM XML namespace policy shall be published and adhered to starting with AIXM 5.2:

Version designator

The XML namespace can assist traceability from an XML implementation to its specification document. New components can be defined in major and minor revisions of a specification document. Hence, the XML namespace used in an implementation SHALL incorporate the major and minor version designation of the documents that contains the specification of the components implemented.

A bug fix revision corrects but does not change the meaning of, or add any new functionality to an AIXM implementation. The bug fix version designator SHALL NOT appear in the XML namespace.

Note: The XML namespace combined with the value of xsd:schema/@version uniquely identify the XML schema.

Pattern for namespace

The pattern for an XML namespace used for XML implementation of AIXM is

http://www.aixm.aero/schema/{X}.{Y}

where:

Note: The pattern applies to all all AIXM namespaces, not just to the main namespace. Specifically, for the “message” namespace the pattern is http://www.aixm.aero/schema/{X}.{Y}/message.

The use of only the first two version elements is consistent with the principle that the third number in a version designator designates bug-fix releases only, with no change of content, so users should only use the latest bug-fix version.

Namespace example

If there were a 2nd bugfix revision of the XML implementation of the schema with the namespace http://www.aixm.aero/schema/5.2 the <schema> element should contain the following:

<xsd:schema targetNamespace="http://www.aixm.aero/schema/5.2" … version="5.2.2"> …

Schema locations still may be different, as outlined in the following two sample XML instance documents:

<message:AIXMBasicMessage xmlns:message="http://www.aixm.aero/schema/5.2.1/message" xmlns:aixm="http://www.aixm.aero/schema/5.2" xsi:schemaLocation="http://www.aixm.aero/schema/5.2.1/message http://www.aixm.aero/schema/5.2.1/message/AIXM_BasicMessage.xsd" …>

<message:AIXMBasicMessage xmlns:message="http://www.aixm.aero/schema/5.2.2/message" xmlns:aixm="http://www.aixm.aero/schema/5.2" xsi:schemaLocation="http://www.aixm.aero/schema/5.2.2/message http://www.aixm.aero/schema/5.2.2/message/AIXM_BasicMessage.xsd" …>

Mapping AIXM 5.1.1 to AIXM 5.2 (forward)

NIL (Not applicable)

Mapping AIXM 5.2 to AIXM 5.1.1 (backward)

NIL (Not applicable)