Changes for page Guidelines on the Versioning of SDMX Artefacts
Last modified by Artur K. on 2026/05/29 14:28
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -63,56 +63,48 @@ 63 63 As a general rule insignificant changes (e.g. textual clarifications or typos) will result in an increment of the patch component of the versioning system (i.e. N.M.**+**). 64 64 65 65 |(% colspan="3" %)**CODE LIST (CL)** 66 -|(% style="width: 942px" %)**Type of Change**|(% style="width:165px" %)**Impact**|**Comments**67 -|(% style="width: 942px" %)(((66 +|(% style="width:877px" %)**Type of Change**|(% style="width:161px" %)**Impact**|(% style="width:1034px" %)**Comments** 67 +|(% style="width:877px" %)((( 68 68 **Addition into an existing CL of one or more new codes not having the** 69 69 70 70 **CodeList:Code:ParentCode attribute** 71 -)))|(% style="width:16 5px" %)**Minor**: **N.,,+,,**^^({{footnote}}The overall impact on compatibility should be assessed when there are several “minor” version impact changes. For example, it may be that the effect of adding several new Code List or HCL codes results in an implicit change in the meaning of existing Code List or HCL codes which may not be completely backward compatible, therefore (depending on the analysis) the overall version impact may be “Major +.0”.{{/footnote}})^^|Data exchanged/disseminated using the old CL can still be exchanged/disseminated using the new CL72 -|(% style="width: 942px" %)(((71 +)))|(% style="width:161px" %)**Minor**: **N.,,+,,**^^({{footnote}}The overall impact on compatibility should be assessed when there are several “minor” version impact changes. For example, it may be that the effect of adding several new Code List or HCL codes results in an implicit change in the meaning of existing Code List or HCL codes which may not be completely backward compatible, therefore (depending on the analysis) the overall version impact may be “Major +.0”.{{/footnote}})^^|(% style="width:1034px" %)Data exchanged/disseminated using the old CL can still be exchanged/disseminated using the new CL 72 +|(% style="width:877px" %)((( 73 73 **Addition of one or more new hierarchies represented using the** 74 74 75 75 **CodeList:Code:ParentCode attribute (not using the Hierarchical Code List artefact)** 76 -)))|(% style="width:16 5px" %)**Minor**: **N.,,+,,^^(^^**^^{{footnote}}The overall impact on compatibility should be assessed when there are several “minor” version impact changes. For example, it may be that the effect of adding several new Code List or HCL codes results in an implicit change in the meaning of existing Code List or HCL codes which may not be completely backward compatible, therefore (depending on the analysis) the overall version impact may be “Major +.0”.{{/footnote}})^^|Data exchanged/disseminated using the old CL can still be exchanged/disseminated using the new CL as already existing hierarchies still represent the same aggregations77 -|(% style="width: 942px" %)**Addition of one or more new codes into existing hierarchies represented using the CodeList:Code:ParentCode attribute (not using the Hierarchical Code List artefact)**|(% style="width:165px" %)**Major**: **+.0**|After the change, the parent code for the changed hierarchy does not represent the same aggregation any more, thus resulting in a break in backward compatibility78 -|(% style="width: 942px" %)**Aggregation, disaggregation, reorganisation or removal of one or more codes**|(% style="width:165px" %)**Major**: **+.0**|Data exchanged/disseminated using an old version of the CL can no longer be exchanged/disseminated using the new version of the CL76 +)))|(% style="width:161px" %)**Minor**: **N.,,+,,^^(^^**^^{{footnote}}The overall impact on compatibility should be assessed when there are several “minor” version impact changes. For example, it may be that the effect of adding several new Code List or HCL codes results in an implicit change in the meaning of existing Code List or HCL codes which may not be completely backward compatible, therefore (depending on the analysis) the overall version impact may be “Major +.0”.{{/footnote}})^^|(% style="width:1034px" %)Data exchanged/disseminated using the old CL can still be exchanged/disseminated using the new CL as already existing hierarchies still represent the same aggregations 77 +|(% style="width:877px" %)**Addition of one or more new codes into existing hierarchies represented using the CodeList:Code:ParentCode attribute (not using the Hierarchical Code List artefact)**|(% style="width:161px" %)**Major**: **+.0**|(% style="width:1034px" %)After the change, the parent code for the changed hierarchy does not represent the same aggregation any more, thus resulting in a break in backward compatibility 78 +|(% style="width:877px" %)**Aggregation, disaggregation, reorganisation or removal of one or more codes**|(% style="width:161px" %)**Major**: **+.0**|(% style="width:1034px" %)Data exchanged/disseminated using an old version of the CL can no longer be exchanged/disseminated using the new version of the CL 79 79 80 80 81 81 82 82 |(% colspan="3" %)**HIERARCHICAL CODE LIST (HCL)** 83 -|**Type of Change**|**Impact**|**Comments** 83 +|**Type of Change**|(% style="width:150px" %)**Impact**|(% style="width:1045px" %)**Comments** 84 84 |((( 85 -**Addition of new hierarchies in the HCL.** 85 +**Addition of new hierarchies in the HCL. Existing hierarchies are unaffected** 86 +)))|(% style="width:150px" %)**Minor**: **N.,,+,,**^^({{footnote}}The overall impact on compatibility should be assessed when there are several “minor” version impact changes. For example, it may be that the effect of adding several new Code List or HCL codes results in an implicit change in the meaning of existing Code List or HCL codes which may not be completely backward compatible, therefore (depending on the analysis) the overall version impact may be “Major +.0”.{{/footnote}})^^|(% style="width:1045px" %)Data represented using the old HCL can still be represented using the new HCL 87 +|**Addition of codes into existing hierarchies in the HCL. Existing hierarchies are thus affected**|(% style="width:150px" %)**Major**: **+.0**|(% style="width:1045px" %)The HCL resulting from this change does not represent the same aggregation any more, thus breaking backward compatibility 88 +|**Removal of one or more codes in the HCL or removal of one or more codes in the referenced code lists**|(% style="width:150px" %)**Major**: **+.0**|(% style="width:1045px" %)Data represented using the old HCL can no longer be represented using the new HCL, thus resulting in a break in backward compatibility 89 +|**Addition, modification or removal of one or more hierarchical levels**|(% style="width:150px" %)**Major: +.0**|(% style="width:1045px" %)The reorganisation of codes within hierarchies has a significant impact on the code aggregations 86 86 87 -**Existing hierarchies are unaffected** 88 -)))|**Minor**: **N.,,+,,**^^(3)^^|Data represented using the old HCL can still be represented using the new HCL 89 -|**Addition of codes into existing hierarchies in the HCL. Existing hierarchies are thus affected**|**Major**: **+.0**|The HCL resulting from this change does not represent the same aggregation any more, thus breaking backward compatibility 90 -|**Removal of one or more codes in the HCL or removal of one or more codes in the referenced code lists**|**Major**: **+.0**|Data represented using the old HCL can no longer be represented using the new HCL, thus resulting in a break in backward compatibility 91 -|**Addition, modification or removal of one or more hierarchical levels**|**Major: +.0**|The reorganisation of codes within hierarchies has a significant impact on the code aggregations 92 - 93 - 94 - 95 95 |(% colspan="3" %)**CONCEPT SCHEME (CS)** 96 -|**Type of change**|**Impact**|**Comments** 97 -|**Addition of one or more new concepts in an existing CS**|**Minor**: **N.+**|((( 98 -Data exchanged/disseminated using the old version of the 99 - 100 -CS can still be exchanged/disseminated using the new CS 92 +|(% style="width:874px" %)**Type of change**|(% style="width:154px" %)**Impact**|(% style="width:1044px" %)**Comments** 93 +|(% style="width:874px" %)**Addition of one or more new concepts in an existing CS**|(% style="width:154px" %)**Minor**: **N.+**|(% style="width:1044px" %)((( 94 +Data exchanged/disseminated using the old version of the CS can still be exchanged/disseminated using the new CS 101 101 ))) 102 -|**Removal of one or more existing concepts**|**Major: +.0**|Data exchanged/disseminated using the old version of the CS can no longer be exchanged/disseminated using the new version with less concepts 96 +|(% style="width:874px" %)**Removal of one or more existing concepts**|(% style="width:154px" %)**Major: +.0**|(% style="width:1044px" %)Data exchanged/disseminated using the old version of the CS can no longer be exchanged/disseminated using the new version with less concepts 103 103 104 - 105 - 106 106 |(% colspan="3" %)**DATA STRUCTURE DEFINITION (DSD)** 107 -|**Type of change**|**Impact**|**Comments** 108 -|**Addition of a dimension**|**Major**: **+.0**|Adding a new dimension has a strong impact because a dimension represents the identifier of a dataset, thus requiring a remodelling of the data as existing structural validation will fail 109 -|**Addition of a mandatory attribute**|**Major**: **+.0**|If the attribute is mandatory, the situation is the same as under point “Addition of a dimension” 110 -|**Addition of a conditional attribute**|**Minor**: **N.+**|If the attribute is conditional backward compatibility is maintained 111 -|**Removal of a dimension or attribute**|**Major**: **+.0**|Whatever the type of component, the change does not guarantee backward compatibility 99 +|(% style="width:868px" %)**Type of change**|(% style="width:159px" %)**Impact**|(% style="width:1045px" %)**Comments** 100 +|(% style="width:868px" %)**Addition of a dimension**|(% style="width:159px" %)**Major**: **+.0**|(% style="width:1045px" %)Adding a new dimension has a strong impact because a dimension represents the identifier of a dataset, thus requiring a remodelling of the data as existing structural validation will fail 101 +|(% style="width:868px" %)**Addition of a mandatory attribute**|(% style="width:159px" %)**Major**: **+.0**|(% style="width:1045px" %)If the attribute is mandatory, the situation is the same as under point “Addition of a dimension” 102 +|(% style="width:868px" %)**Addition of a conditional attribute**|(% style="width:159px" %)**Minor**: **N.+**|(% style="width:1045px" %)If the attribute is conditional backward compatibility is maintained 103 +|(% style="width:868px" %)**Removal of a dimension or attribute**|(% style="width:159px" %)**Major**: **+.0**|(% style="width:1045px" %)Whatever the type of component, the change does not guarantee backward compatibility 112 112 113 113 For concrete examples, see the Appendix. 114 114 115 -= ==5. How versioning works for inter-dependent artefacts ===107 += 5. How versioning works for inter-dependent artefacts = 116 116 117 117 This section describes how version changes to inter-dependent or parent/child artefacts affect each other. For example, how a Concept Scheme is affected when one of the Code Lists that it references changes version. 118 118 ... ... @@ -135,51 +135,40 @@ 135 135 The replacement of a reference with a different reference has the same impact for every artefact. 136 136 137 137 |(% colspan="3" %)**ALL ARTEFACTS** 138 -|**Type of change**|**Impact**|**Comments** 139 -|((( 140 -**Replacement of a child artefact having a different version, but same id and** 141 - 142 -** Agency**130 +|(% style="width:492px" %)**Type of change**|(% style="width:441px" %)**Impact**|**Comments** 131 +|(% style="width:492px" %)((( 132 +**Replacement of a child artefact having a different version, but same id and Agency** 133 +)))|(% style="width:441px" %)((( 134 +**The child artefact version change is replicated in the parent artefact** 143 143 )))|((( 144 -**The child artefact version change is replicated in the** 145 - 146 -**parent artefact** 147 -)))|((( 148 148 If a child artefact (e.g. a Code List) has a minor version change, then the parent artefact (e.g. a Concept Scheme) should also have a minor version change. 149 - 150 150 If there are several child artefact version changes, the most severe impact is replicated in the parent artefact. For example, if two Code Lists have minor changes, and one Code List has a major change at the same time, the parent Concept Scheme has a major version change 151 151 ))) 152 -|((( 153 -**Replacement of a referenced child artefact having a** 139 +|(% style="width:492px" %)((( 140 +**Replacement of a referenced child artefact having a different id or Agency** 141 +)))|(% style="width:441px" %)**The parent artefact version impact depends on the backward/ forward compatibility as shown in the tables above**|Technically, the child artefact is not considered to be related to the previous child artefact. It needs to be checked whether exchange contracts can still be guaranteed (backward/forward compatibility principle) 154 154 155 -**different id or Agency** 156 -)))|**The parent artefact version impact depends on the backward/ forward compatibility as shown in the tables above**|Technically, the child artefact is not considered to be related to the previous child artefact. It needs to be checked whether exchange contracts can still be guaranteed (backward/forward compatibility principle) 157 - 158 158 ==== b. Addition or removal of referenced artefacts ==== 159 159 160 -| |(% colspan="2" %)**CONCEPT SCHEME (CS)** 161 -|**Type of change**|**Impact**|**Comments** 162 -|((( 163 -**Addition or removal of a child** 145 +|(% colspan="3" style="width:876px" %)**CONCEPT SCHEME (CS)** 146 +|(% style="width:845px" %)**Type of change**|(% style="width:156px" %)**Impact**|(% style="width:1071px" %)**Comments** 147 +|(% style="width:845px" %)((( 148 +**Addition or removal of a child Code List** 149 +)))|(% style="width:156px" %)**Minor: N.+**|(% style="width:1071px" %)The child Code Lists in a Data Structure Definition have priority over those referenced in a Concept Scheme. Child Code Lists added to or removed from a Concept Scheme do not have a direct impact on the data exchange. Backward/forward compatibility depends on the way Code Lists are referenced in Data Structure Definitions referencing the concept scheme. This needs to be taken into account when creating a new version of a DSD accordingly 164 164 165 -**Code List** 166 -)))|**Minor: N.+**|The child Code Lists in a Data Structure Definition have priority over those referenced in a Concept Scheme. Child Code Lists added to or removed from a Concept Scheme do not have a direct impact on the data exchange. Backward/forward compatibility depends on the way Code Lists are referenced in Data Structure Definitions referencing the concept scheme. This needs to be taken into account when creating a new version of a DSD accordingly 167 167 168 168 169 - 170 -| |(% colspan="2" %)**DATA STRUCTURE DEFINITION (DSD)** 153 +|(% colspan="3" %)**DATA STRUCTURE DEFINITION (DSD)** 171 171 |**Type of change**|**Impact**|**Comments** 172 172 |**Addition or removal of a child Code List**|((( 173 -**If same id and Agency, then the child artefact version change is replicated in the parent artefact.** 174 - 175 -**If different id or Agency, impact wil depend on the backward/forward compatibility as shown in the tables above** 156 +**If same id and Agency, then the child artefact version change is replicated in the parent artefact. 157 +If different id or Agency, impact wil depend on the backward/forward compatibility as shown in the tables above** 176 176 )))|((( 177 177 If a child Code List has a minor version change, then the DSD should also have a minor version change. 178 - 179 179 If there are several Code List version changes, the most severe impact is replicated in the DSD. For example, if two Code Lists have minor changes, and one Code List has a major change at the same time, the parent DSD has a major version change 180 180 ))) 181 181 182 -= ==6. Appendix - Examples ===163 += 6. Appendix - Examples = 183 183 184 184 **Example 1 – Change to a Code List name, for clarification purposes**. **Patch Impact: N.M.+** 185 185 ... ... @@ -200,36 +200,29 @@ 200 200 201 201 |(% colspan="2" %)**AGGREGATION OF EXISTING CODES** 202 202 |**Old version**|**New version** 203 -|**2011** Heifers (female bovine that never calved), live **2012** Cows, live|**2010** Heifers and cows, live 204 -|(% colspan="2" %)Codes **2011** and **2012** are fully{{footnote}}i.e. without integration into or combination with another existing code.{{/footnote}} **removed** and replaced with one **brand new** code. In this case there is a many to 1 correspondence between the codes. 184 +|**2011** Heifers (female bovine that never calved), live 185 +**2012** Cows, live|**2010** Heifers and cows, live 186 +|(% colspan="2" %)Codes **2011** and **2012** are fully{{footnote}}i.e. without integration into or combination with another existing code.{{/footnote}} __**removed**__ and replaced with one __**brand new**__ code. In this case there is a many to 1 correspondence between the codes. 205 205 206 - 207 - 208 208 |(% colspan="2" %)**DISAGGREGATION OF EXISTING CODES** 209 209 |**Old version**|**New version** 210 210 |**1010** Live horses|((( 211 -1 .Pure bred breeding horses, live212 -1 .Other horses, live191 +1011 Pure bred breeding horses, live 192 +1012 Other horses, live 213 213 ))) 214 -|(% colspan="2" %)Code **1010** is fully **removed** and replaced with two **brand new** codes. In this case there is a 1 to m correspondence between the codes. 194 +|(% colspan="2" %)Code **1010** is fully __**removed**__ and replaced with two __**brand new**__ codes. In this case there is a 1 to m correspondence between the codes. 215 215 216 - 217 - 218 218 |(% colspan="2" %)**REORGANISATION OF EXISTING CODES** 219 219 |**Old version**|**New version** 220 220 |((( 221 221 **3010** Fowls, weighing ≤ 185 g 222 - 223 223 **3020** Ducks, , weighing ≤ 185 g 224 - 225 225 **3030** Other poultry, weighing ≤ 185 g 226 - 227 227 **3040** Fowls, weighing > 185 g 228 - 229 229 **3050** Ducks, , weighing > 185 g 230 - 231 231 **3060** Other poultry, weighing > 185 g 232 -)))|**3025** Poultry, weighing ≤ 175 g **3045** Poultry, weighing > 175 g 205 +)))|**3025** Poultry, weighing ≤ 175 g 206 +**3045** Poultry, weighing > 175 g 233 233 |(% colspan="2" %)Codes **3010**, **3020**, **3030**, **3040**, **3050** and **3060** are fully removed and replaced with two brand new codes; furthermore the criterion for the classification used in the old version has been changed in the new version (185 g criterion versus 175 g criterion), so that it is not possible to exactly aggregate the codes from the old version to the codes of the new version (e.g. a part of **3010** goes to **3025**, another part to **3045**). In this case there is a m to n correspondence between the two sets of codes 234 234 235 235 **Example 5 – Changes to hierarchies in a Code List. Major impact: +.0** ... ... @@ -236,7 +236,8 @@ 236 236 237 237 |(% colspan="2" %)**ADDING A NEW CODE IN AN EXISTING HIERARCHY – CODE LIST** 238 238 |**Old version**|**New version** 239 -|• 0213 - Beer o02131 - Lager beer o02132 - Other alcoholic beer|• 0213 - Beer o02131 - Lager beer o 02132 - Other alcoholic beer o **02133 - Low and non-alcoholic beer** 213 +|• 0213 - Beer o02131 - Lager beer o02132 - Other alcoholic beer|0213 - Beer o02131 - Lager beer o 02132 - Other alcoholic beer 214 +**02133 - Low and non-alcoholic beer** 240 240 |(% colspan="2" %)Code 02133 has been added to hierarchy 0213 241 241 242 242 **Example 6 – Changes to hierarchies in a Hierarchical Code List. Major impact: +.0** ... ... @@ -244,17 +244,17 @@ 244 244 |(% colspan="2" %)**ADDING A NEW CODE IN AN EXISTING HIERARCHY – HIERARCHICAL CODE LIST** 245 245 |**Old version**|**New version** 246 246 |((( 247 - •A1 - World (codelist ref. ECB@CL_AREAS@1.0) o E1 - Europe (ECB@CL_COUNTRIES@1.0)222 + A1 - World (codelist ref. ECB@CL_AREAS@1.0) o E1 - Europe (ECB@CL_COUNTRIES@1.0) 248 248 249 - ES - Spain FR - France224 +ES - Spain FR - France 250 250 251 251 GR - Greece 252 252 253 253 IT - Italy o E4 - Africaetc. 254 254 )))|((( 255 - •A1=World (codelist ref. ECB@CL_AREAS@1.0) o E1 =Europe (ECB@CL_COUNTRIES@1.0)230 +A1=World (codelist ref. ECB@CL_AREAS@1.0) o E1 =Europe (ECB@CL_COUNTRIES@1.0) 256 256 257 - ES = Spain FR = FranceGR = Greece232 +ES = Spain FR = FranceGR = Greece 258 258 259 259 IT = Italy 260 260