Core concepts

SDMX Versioning

Semantic Versioning

Semantic versioning uses a three-part syntax in the format:

[major].[minor].[patch]

Each part contains a version number, for example 1.0.0.

Stable Structures

Stable Structures

A structure with a three-part version number and no extension (see draft structures) is considered immutable. An immutable structure cannot have its content changed without a version update, which guarantees stability.

The part of the version that changes indicates the type of modification:

  • Major (1.0.0 → 2.0.0) — breaking change
  • Minor (1.0.0 → 1.1.0) — non-breaking, non-trivial change
  • Patch (1.0.0 → 1.0.1) — non-breaking, trivial change
  • Full details are available in the Semantic Versioning Guidelines

Full details for version changes are found in the Semantic Versioning Guidelines.

Draft Structures

A semantically versioned structure may include an optional extension:

[major].[minor].[patch]-[extension]

The extension is alphanumeric and typically indicates draft status — for example, 1.0.0-draft.

A draft structure may be modified without updating the version number.

Resolving the Latest Version

The URN Resolver can resolve the latest version of a semantically versioned structure using the + symbol in the version part:

Version ExampleMeaningExample Response Version
1.1.0+Latest patch version for 1.1.x1.1.7
1.1+.0Latest minor version starting from 1.1.01.3.7
1+.0.0Latest major version starting from 1.0.02.0.4

Example URN with this syntax:

urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ESTAT:CL_ACTIVITY(1.0+.0)

Two Part Versioning

Structures that do not follow semantic versioning use a two-part syntax (e.g., 1.0).

These versions are not immutable — the structure may change over time without a version number update.

Previous
SDMX Structures