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 Example | Meaning | Example Response Version |
|---|---|---|
| 1.1.0+ | Latest patch version for 1.1.x | 1.1.7 |
| 1.1+.0 | Latest minor version starting from 1.1.0 | 1.3.7 |
| 1+.0.0 | Latest major version starting from 1.0.0 | 2.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.