Wiki source code of 10 Constraints
Hide last authors
| author | version | line-number | content |
|---|---|---|---|
| |
1.1 | 1 | {{box title="**Contents**"}} |
| 2 | {{toc/}} | ||
| 3 | {{/box}} | ||
| 4 | |||
| |
1.2 | 5 | == 10.1 Introduction == |
| |
1.1 | 6 | |
| 7 | |||
| |
8.1 | 8 | [[Constraints>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] are used as a way to restrict what data can be reported, or to report what data exists in a given context. There are three types of [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]], which serve different purposes |
| |
1.1 | 9 | |
| |
8.1 | 10 | * Availability [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] |
| 11 | * [[Dimension>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] | ||
| 12 | * Reporting [[Constraints>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] | ||
| |
1.1 | 13 | |
| |
8.1 | 14 | An Availability [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] defines the data that exists in the context of a data query. |
| |
1.1 | 15 | |
| |
8.1 | 16 | They form part of the response message from the Availability REST API. Availability [[Constraints>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] are dynamically generated by a system based on the data that exists and the query context. Availability [[Constraints>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] are therefore not Identifiable structures (they have no URN). |
| |
1.1 | 17 | |
| |
8.1 | 18 | A [[Dimension>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] is a property of a [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]], they are used to fix the [[Dimensions>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] that they use in the [[Data Structure Definition>>doc:sdmx:Glossary 2\.1.Data structure definition.WebHome]] which they use. [[Dimension>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] [[Constraints>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] enable [[Data Structure Definitions>>doc:sdmx:Glossary 2\.1.Data structure definition.WebHome]] to evolve over time by having new [[Dimensions>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] added, without having to undergo a major [[version>>doc:sdmx:Glossary 2\.1.Version.WebHome]] change. |
| |
1.1 | 19 | |
| |
8.1 | 20 | A Reporting [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] is used to define the set of allowed and/or disallowed values that can be reported in a data or [[metadata set>>doc:sdmx:Glossary 2\.1.Metadata set.WebHome]]. |
| 21 | |||
| |
1.2 | 22 | == 10.2 Availability Constraint == |
| |
1.1 | 23 | |
| |
8.1 | 24 | An Availability [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] is not a maintained structure, instead it is generated dynamically as a response to the availability REST API. The purpose of the Availability [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] is to define the distinct set of values that have data over 1 or more [[Dimensions>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]]. Unlike a Data and Metadata [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]], which can attach to multiple Constrainable structures (of the same type), an Availability [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] can only attach to only one structure. The attachment defines the context of the response (data exists for [[components>>doc:sdmx:Glossary 2\.1.Component.WebHome]] in the context of). The subset of Constrainable structures the Availability [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] can attach to are: |
| |
1.1 | 25 | |
| |
8.1 | 26 | * [[Data Structure Definition>>doc:sdmx:Glossary 2\.1.Data structure definition.WebHome]] |
| 27 | * [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]] | ||
| 28 | * [[Provision Agreement>>doc:sdmx:Glossary 2\.1.Provision agreement.WebHome]] | ||
| |
1.1 | 29 | |
| |
1.2 | 30 | == 10.3 Dimension Constraint == |
| 31 | |||
| |
8.1 | 32 | A [[Dimension>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] is a property of a [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]]; its purpose is to explicitly list the [[Dimensions>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] from the corresponding [[DSD>>doc:sdmx:Glossary 2\.1.Data structure definition.WebHome]] that are being used by the [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]]. |
| |
1.1 | 33 | |
| 34 | |||
| |
8.2 | 35 | [[Dimension>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] [[Constraints>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] were introduced in [[SDMX>>doc:sdmx:Glossary 2\.1.Statistical data and metadata exchange.WebHome]] 3.1 and are not required for most [[Dataflows>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]] where the [[dataset>>doc:sdmx:Glossary 2\.1.Data set.WebHome]] must always contain the full complement of [[Dimensions>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] as defined by the corresponding [[DSD>>doc:sdmx:Glossary 2\.1.Data structure definition.WebHome]]. However, for some complex data collections, which may span long periods and where the full complement of required [[Dimensions>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] are not necessarily known at design time, the [[DSD>>doc:sdmx:Glossary 2\.1.Data structure definition.WebHome]] is subject to increasing its Dimensionality over time. In this scenario it is possible to define the [[DSD>>doc:sdmx:Glossary 2\.1.Data structure definition.WebHome]] as an evolving structure, this property tells the user that the [[DSD>>doc:sdmx:Glossary 2\.1.Data structure definition.WebHome]] can have new [[Dimensions>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] added without having to undergo a major [[version>>doc:sdmx:Glossary 2\.1.Version.WebHome]] change; a [[DSD>>doc:sdmx:Glossary 2\.1.Data structure definition.WebHome]] at [[version>>doc:sdmx:Glossary 2\.1.Version.WebHome]] 1.0.0 for example would be able to add a new [[Dimension>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] and move to [[version>>doc:sdmx:Glossary 2\.1.Version.WebHome]] 1.1.0; a change that would not ordinarily be allowed. A minor [[version>>doc:sdmx:Glossary 2\.1.Version.WebHome]] change on the addition of a new [[Dimension>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] is only possible if the [[DSD>>doc:sdmx:Glossary 2\.1.Data structure definition.WebHome]] defines itself as an evolving structure. This is a new property of the [[DSD>>doc:sdmx:Glossary 2\.1.Data structure definition.WebHome]] introduced in [[version>>doc:sdmx:Glossary 2\.1.Version.WebHome]] 3.1 to satisfy this use case. The evolving structure property is either true or false, defaulting to false if not specified. Setting the evolving structure property to true requires a major [[version>>doc:sdmx:Glossary 2\.1.Version.WebHome]] change, and therefore can only be introduced on an x.0.0 release (e.g. 1.0.0). The evolving structure property can be set to false to indicate that there will be no additional [[Dimensions>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] added to the Data Structure under the same major [[version>>doc:sdmx:Glossary 2\.1.Version.WebHome]] number; setting the evolving structure property to false does not require require a major [[version>>doc:sdmx:Glossary 2\.1.Version.WebHome]] change on the Data Structure. |
| 36 | |||
| |
8.1 | 37 | When a [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]] references a [[DSD>>doc:sdmx:Glossary 2\.1.Data structure definition.WebHome]], late binding on the minor release, and the [[DSD>>doc:sdmx:Glossary 2\.1.Data structure definition.WebHome]] has the evolving structure property set to true, then the [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]] must contain a [[Dimension>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] to protect its Dimensionality from changing over time without a [[version>>doc:sdmx:Glossary 2\.1.Version.WebHome]] change. |
| |
1.1 | 38 | |
| |
8.1 | 39 | The [[Dimension>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] provides the explicit list of [[Dimensions>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] that the [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]] uses from the [[DSD>>doc:sdmx:Glossary 2\.1.Data structure definition.WebHome]] that it references. This enables the [[DSD>>doc:sdmx:Glossary 2\.1.Data structure definition.WebHome]] to evolve over time without breaking the compatibility of [[datasets>>doc:sdmx:Glossary 2\.1.Data set.WebHome]] against the [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]]. |
| |
1.1 | 40 | |
| |
8.2 | 41 | __**Rules for a Dimension Constraint**__ |
| |
1.1 | 42 | |
| |
8.3 | 43 | * A [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]] must contain a [[Dimension>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] if the [[DSD>>doc:sdmx:Glossary 2\.1.Data structure definition.WebHome]] which it uses states that it is an evolving structure and the [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]] is late binding on the minor release (latest minor release of a given major [[version>>doc:sdmx:Glossary 2\.1.Version.WebHome]], e.g. 1.0+.0) |
| 44 | * The [[Dimension>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] can only include [[Dimensions>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] from the [[DSD>>doc:sdmx:Glossary 2\.1.Data structure definition.WebHome]] that is referenced by the [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]]. | ||
| 45 | * A [[Dimension>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] can only be changed if the [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]] undergoes a major [[version>>doc:sdmx:Glossary 2\.1.Version.WebHome]] change | ||
| 46 | * [[Datasets>>doc:sdmx:Glossary 2\.1.Data set.WebHome]] reported against the [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]] must only contain reported values for the [[Dimensions>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] specified in the [[Dimension>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]]. | ||
| 47 | * When exporting data for the [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]], the [[dataset>>doc:sdmx:Glossary 2\.1.Data set.WebHome]] should only include the [[Dimensions>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] specified by the [[Dimension>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]]. | ||
| |
8.1 | 48 | * When exporting data for the [[DSD>>doc:sdmx:Glossary 2\.1.Data structure definition.WebHome]] the [[dataset>>doc:sdmx:Glossary 2\.1.Data set.WebHome]] must contain the full set of [[Dimensions>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] as specified by the [[DSD>>doc:sdmx:Glossary 2\.1.Data structure definition.WebHome]]. The tilde ‘’ character is used to represent a value which is not present due to the [[Dimension>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] not being included in the corresponding [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]]. |
| |
1.1 | 49 | |
| |
8.3 | 50 | __**Example Datasets with Evolving Structures**__ |
| |
1.1 | 51 | |
| |
8.3 | 52 | A [[dataset>>doc:sdmx:Glossary 2\.1.Data set.WebHome]] is built against a [[Data Structure Definition>>doc:sdmx:Glossary 2\.1.Data structure definition.WebHome]]. The [[dataset>>doc:sdmx:Glossary 2\.1.Data set.WebHome]] contains data for two [[Dataflows>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]]. [[Dataflows>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]] ‘DF_POP’ uses a [[Dimension>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] which fixes its [[Dimensions>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] to FREQ and REF_AREA. [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]] ‘DF_POP_SA’ does not reference a [[Dimension>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]], and as such includes all [[Dimensions>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] as specified by the [[DSD>>doc:sdmx:Glossary 2\.1.Data structure definition.WebHome]]. |
| |
1.1 | 53 | |
| |
8.1 | 54 | The resulting [[dataset>>doc:sdmx:Glossary 2\.1.Data set.WebHome]] contains values ‘’ for both the [[SEX>>doc:sdmx:Glossary 2\.1.Sex.WebHome]] and [[AGE>>doc:sdmx:Glossary 2\.1.Age.WebHome]] [[Dimension>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] for the [[series>>doc:sdmx:Glossary 2\.1.Series.WebHome]] related to DF_POP. |
| |
1.1 | 55 | |
| |
1.2 | 56 | (% style="width:758.294px" %) |
| |
8.3 | 57 | |(% style="width:119px" %)**Dataflow**|(% colspan="7" style="width:635px" %)**FREQ REF_AREA SEX AGE OBS_VALUE TIME_PERIOD UNIT** |
| |
3.2 | 58 | |(% style="width:119px" %)**DF_POP**|(% style="width:55px" %)A|(% style="width:103px" %)UK|(% style="width:79px" %) |(% style="width:92px" %) |(% style="width:93px" %)65|(% style="width:111px" %)2022|(% style="width:101px" %)6 |
| 59 | |(% style="width:119px" %)**DF_POP**|(% style="width:55px" %)A|(% style="width:103px" %)FR|(% style="width:79px" %) |(% style="width:92px" %) |(% style="width:93px" %)50|(% style="width:111px" %)2022|(% style="width:101px" %)6 | ||
| |
1.2 | 60 | |(% style="width:119px" %)**DF_POP_SA**|(% style="width:55px" %)A|(% style="width:103px" %)UK|(% style="width:79px" %)M|(% style="width:92px" %)1|(% style="width:93px" %)1.2|(% style="width:111px" %)2022|(% style="width:101px" %)6 |
| |
1.1 | 61 | |
| |
1.3 | 62 | == 10.4 Reporting Constraints == |
| |
1.1 | 63 | |
| |
8.3 | 64 | A Reporting [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] is a [[Maintainable Artefact>>doc:sdmx:Glossary 2\.1.Maintainable artefact.WebHome]] which restricts the values that can be reported in a [[dataset>>doc:sdmx:Glossary 2\.1.Data set.WebHome]] or [[metadata set>>doc:sdmx:Glossary 2\.1.Metadata set.WebHome]] based on one or more inclusion or exclusion rules. |
| |
1.1 | 65 | |
| |
8.3 | 66 | A reporting [[constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] is one of the following concrete types: |
| |
1.1 | 67 | |
| |
8.3 | 68 | * Data [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] |
| 69 | * Metadata [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] | ||
| |
1.1 | 70 | |
| |
1.3 | 71 | === 10.4.1 Data Constraint === |
| |
1.2 | 72 | |
| |
8.3 | 73 | A Data [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] is used to add additional restrictions to the allowable values reported in a [[dataset>>doc:sdmx:Glossary 2\.1.Data set.WebHome]]. Data [[Constraints>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] can be applied to the follow structures which are collectively known as Constrainable structures: |
| |
1.1 | 74 | |
| |
8.1 | 75 | * [[Data Structure Definition>>doc:sdmx:Glossary 2\.1.Data structure definition.WebHome]] |
| 76 | * [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]] | ||
| 77 | * [[Provision Agreement>>doc:sdmx:Glossary 2\.1.Provision agreement.WebHome]] | ||
| 78 | * [[Data Provider>>doc:sdmx:Glossary 2\.1.Data provider.WebHome]] | ||
| |
1.1 | 79 | |
| |
8.1 | 80 | **Note** regardless of the Constrainable structure, the restricted values relate to the allowable content for the [[Component>>doc:sdmx:Glossary 2\.1.Component.WebHome]] of the [[DSD>>doc:sdmx:Glossary 2\.1.Data structure definition.WebHome]] to which the constrained object relates. |
| |
1.1 | 81 | |
| |
1.3 | 82 | === 10.4.2 Metadata Constraint === |
| |
1.1 | 83 | |
| |
8.3 | 84 | A Metadata [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] is used to add additional restrictions to the allowable values reported in a metadataset. Metadata [[Constraints>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] can be applied to the follow structures which are collectively known as Constrainable structures: |
| |
1.1 | 85 | |
| |
8.1 | 86 | * [[Metadata Structure Definition>>doc:sdmx:Glossary 2\.1.Metadata structure definition.WebHome]] |
| 87 | * [[Metadataflow>>doc:sdmx:Glossary 2\.1.Metadataflow.WebHome]] | ||
| 88 | * Metadata [[Provision Agreement>>doc:sdmx:Glossary 2\.1.Provision agreement.WebHome]] | ||
| |
1.1 | 89 | * Metadata Provider |
| 90 | |||
| |
8.1 | 91 | **Note** regardless of the Constrainable structure, the restricted values relate to the allowable content for the [[Component>>doc:sdmx:Glossary 2\.1.Component.WebHome]] of the [[MSD>>doc:sdmx:Glossary 2\.1.Metadata structure definition.WebHome]] to which the constrained object relates. |
| |
1.1 | 92 | |
| |
1.3 | 93 | === 10.4.3 Scope of a Constraint === |
| |
1.1 | 94 | |
| |
8.3 | 95 | A [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] is used specify the content of a data or metadata source in terms of the [[component>>doc:sdmx:Glossary 2\.1.Component.WebHome]] values or the keys. |
| |
1.1 | 96 | |
| |
8.1 | 97 | In terms of data the [[components>>doc:sdmx:Glossary 2\.1.Component.WebHome]] are: |
| |
1.1 | 98 | |
| |
8.1 | 99 | * [[Dimension>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] |
| 100 | * Time [[Dimension>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] | ||
| 101 | * Data [[Attribute>>doc:sdmx:Glossary 2\.1.Attribute.WebHome]] | ||
| 102 | * [[Measure>>doc:sdmx:Glossary 2\.1.Measure.WebHome]] | ||
| 103 | * Metadata [[Attribute>>doc:sdmx:Glossary 2\.1.Attribute.WebHome]] | ||
| 104 | * DataKeySets: the keys are the content of the KeyDescriptor – i.e., the [[series keys>>doc:sdmx:Glossary 2\.1.Series key.WebHome]] composed, for each key, by a value for each [[Dimension>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]]. | ||
| |
1.1 | 105 | |
| |
8.1 | 106 | In terms of [[reference metadata>>doc:sdmx:Glossary 2\.1.Reference metadata.WebHome]] the [[components>>doc:sdmx:Glossary 2\.1.Component.WebHome]] are: |
| |
1.1 | 107 | |
| |
8.1 | 108 | * Metadata [[Attribute>>doc:sdmx:Glossary 2\.1.Attribute.WebHome]] |
| |
1.1 | 109 | |
| |
8.4 | 110 | For a [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] based on a [[DSD>>doc:sdmx:Glossary 2\.1.Data structure definition.WebHome]] the [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] can reference one or more of: |
| |
1.1 | 111 | |
| |
8.1 | 112 | * [[Data Structure Definition>>doc:sdmx:Glossary 2\.1.Data structure definition.WebHome]] |
| 113 | * [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]] | ||
| 114 | * [[Provision Agreement>>doc:sdmx:Glossary 2\.1.Provision agreement.WebHome]] | ||
| 115 | * [[Data Provider>>doc:sdmx:Glossary 2\.1.Data provider.WebHome]] | ||
| |
1.1 | 116 | |
| |
8.4 | 117 | For a [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] based on an [[MSD>>doc:sdmx:Glossary 2\.1.Metadata structure definition.WebHome]] the [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] can reference one or more of: |
| |
1.1 | 118 | |
| |
8.1 | 119 | * [[Metadata Structure Definition>>doc:sdmx:Glossary 2\.1.Metadata structure definition.WebHome]] |
| 120 | * [[Metadataflow>>doc:sdmx:Glossary 2\.1.Metadataflow.WebHome]] | ||
| 121 | * Metadata [[Provision Agreement>>doc:sdmx:Glossary 2\.1.Provision agreement.WebHome]] | ||
| |
1.1 | 122 | * Metadata Provider |
| |
8.1 | 123 | * [[Metadata Set>>doc:sdmx:Glossary 2\.1.Metadata set.WebHome]] |
| |
1.1 | 124 | |
| |
8.4 | 125 | Furthermore, there can be more than one [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] specified for a specific object e.g., more than one [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] for a specific [[DSD>>doc:sdmx:Glossary 2\.1.Data structure definition.WebHome]]. |
| |
1.1 | 126 | |
| |
8.4 | 127 | In view of the flexibility of [[constraints>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] attachment, clear rules on their usage are required. These are elaborated below. |
| |
1.1 | 128 | |
| |
1.3 | 129 | === 10.4.4 Multiple Constraints === |
| |
1.1 | 130 | |
| |
8.4 | 131 | There can be many [[Constraints>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] for any Constrainable [[Artefact>>doc:sdmx:Glossary 2\.1.Artefact.WebHome]] (e.g., [[DSD>>doc:sdmx:Glossary 2\.1.Data structure definition.WebHome]]), subject to the following restrictions: |
| |
1.1 | 132 | |
| |
1.3 | 133 | ==== 10.4.4.1 Cube Region ==== |
| |
1.1 | 134 | |
| |
8.4 | 135 | A [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] can contain multiple [[Member Selections>>doc:sdmx:Glossary 2\.1.Member selection.WebHome]] (e.g., [[Dimensions>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]]). |
| |
1.1 | 136 | |
| |
8.1 | 137 | * A specific [[Member Selection>>doc:sdmx:Glossary 2\.1.Member selection.WebHome]] (e.g., [[Dimension>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] FREQ) can only be contained in one Cube Region for any one attached object (e.g., a specific [[DSD>>doc:sdmx:Glossary 2\.1.Data structure definition.WebHome]] or specific [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]]). |
| 138 | * [[Component>>doc:sdmx:Glossary 2\.1.Component.WebHome]] values within a [[Member Selection>>doc:sdmx:Glossary 2\.1.Member selection.WebHome]] may define a validity period. Otherwise, the value is valid for the whole validity of the Cube Region. | ||
| |
8.4 | 139 | * For partial reference resolution purposes (as per the [[SDMX>>doc:sdmx:Glossary 2\.1.Statistical data and metadata exchange.WebHome]] REST API), the latest non-draft [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] must be considered. |
| |
8.1 | 140 | * A [[Member Selection>>doc:sdmx:Glossary 2\.1.Member selection.WebHome]] may include wildcarding of values (using character ‘%’ to represent zero or more occurrences of any character), as well as cascading through hierarchic structures (e.g., parents in [[Codelist>>doc:sdmx:Glossary 2\.1.Code list.WebHome]]), or localised values (e.g., text for English only). Lack of locale means any [[language>>doc:sdmx:Glossary 2\.1.Language.WebHome]] may match. Cascading values are mutual exclusive to localised values, as the former refer to coded values, while the latter refer to uncoded values. |
| 141 | * Any values included in a [[Member Selection>>doc:sdmx:Glossary 2\.1.Member selection.WebHome]] for [[Components>>doc:sdmx:Glossary 2\.1.Component.WebHome]] with an array data type (i.e., [[Measures>>doc:sdmx:Glossary 2\.1.Measure.WebHome]], [[Attributes>>doc:sdmx:Glossary 2\.1.Attribute.WebHome]] or Metadata [[Attributes>>doc:sdmx:Glossary 2\.1.Attribute.WebHome]]), will be applied as single values and will not be assessed combined with other values to match all possible array values. For example, including the [[Code>>doc:sdmx:Glossary 2\.1.Code.WebHome]] ‘A’ for an [[Attribute>>doc:sdmx:Glossary 2\.1.Attribute.WebHome]] will allow any instance of the [[Attribute>>doc:sdmx:Glossary 2\.1.Attribute.WebHome]] that includes ‘A’, like [‘A’, ‘B’] or [‘A’, ‘C’, ‘D’]. Similarly, if [[Code>>doc:sdmx:Glossary 2\.1.Code.WebHome]] ‘A’ was excluded, all those arrays of values would also be excluded. | ||
| |
1.1 | 142 | |
| |
1.2 | 143 | ==== 10.4.4.2 Key Set ==== |
| |
1.1 | 144 | |
| |
8.4 | 145 | Key Sets will be processed in the order they appear in the [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] and wildcards can be used (e.g., any key position not reference explicitly is deemed to be "all values"). |
| |
1.1 | 146 | |
| |
8.1 | 147 | As the Key Sets can be "included" or "excluded" it is recommended that Key Sets with wildcards are declared before KeySets with specific [[series keys>>doc:sdmx:Glossary 2\.1.Series key.WebHome]]. This will minimize the risk that keys are inadvertently included or excluded. |
| |
1.1 | 148 | |
| |
8.4 | 149 | In addition, [[Attribute>>doc:sdmx:Glossary 2\.1.Attribute.WebHome]], [[Measure>>doc:sdmx:Glossary 2\.1.Measure.WebHome]] and Metadata [[Attribute>>doc:sdmx:Glossary 2\.1.Attribute.WebHome]] [[constraints>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] may accompany KeySets, in order to specify the allowed values per Key. Those are expressed following the rules for Cube Regions, as explained above. |
| |
1.1 | 150 | |
| 151 | Finally, a validity period may be specified per Key. | ||
| 152 | |||
| |
1.2 | 153 | === 10.4.4 Versioning === |
| |
1.1 | 154 | |
| |
8.4 | 155 | When Data and Metadata [[Constraints>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] are versioned, the latest [[version>>doc:sdmx:Glossary 2\.1.Version.WebHome]] of the [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] is used to generate the reporting restriction rules; all previous [[versions>>doc:sdmx:Glossary 2\.1.Version.WebHome]] are for historical information only. |
| |
1.1 | 156 | |
| |
8.4 | 157 | If restrictions are applicable to certain periods in time, the validFrom and validTo properties can be set on the specific values. This allows [[Constraints>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] to evolve over time, increasing their [[version>>doc:sdmx:Glossary 2\.1.Version.WebHome]] number as they do so, whilst being able to maintain a complete set of reporting restrictions for current and past [[datasets>>doc:sdmx:Glossary 2\.1.Data set.WebHome]]. |
| |
1.1 | 158 | |
| 159 | Example: | ||
| 160 | |||
| |
8.4 | 161 | Data Constraint 1.0.0 |
| |
1.1 | 162 | |
| |
1.4 | 163 | (% style="width:573.294px" %) |
| |
8.4 | 164 | |(% style="width:108px" %)Component|(% style="width:127px" %)Valid Value|(% style="width:150px" %)Valid from|(% style="width:185px" %)Valid to |
| |
1.4 | 165 | |(% rowspan="3" style="width:108px" %)COUNTRY|(% style="width:127px" %)UK|(% style="width:150px" %) |(% style="width:185px" %) |
| 166 | |(% style="width:127px" %)FR|(% style="width:150px" %) |(% style="width:185px" %) | ||
| 167 | |(% style="width:127px" %)DE|(% style="width:150px" %) |(% style="width:185px" %) | ||
| |
1.1 | 168 | |
| |
8.4 | 169 | Data Constraint 1.1.0 |
| |
1.1 | 170 | |
| |
1.4 | 171 | (% style="width:576.294px" %) |
| |
8.4 | 172 | |(% style="width:110px" %)Component|(% style="width:129px" %)Valid Value|(% style="width:145px" %)Valid from|(% style="width:189px" %)Valid to |
| |
1.4 | 173 | |(% rowspan="3" style="width:110px" %)COUNTRY|(% style="width:129px" %)UK|(% style="width:145px" %) |(% style="width:189px" %) |
| 174 | |(% style="width:129px" %)FR|(% style="width:145px" %) |(% style="width:189px" %)2012 | ||
| 175 | |(% style="width:129px" %)DE|(% style="width:145px" %) |(% style="width:189px" %) | ||
| |
1.1 | 176 | |
| |
8.5 | 177 | When both [[versions>>doc:sdmx:Glossary 2\.1.Version.WebHome]] of the Data [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] are in a system, an [[observation value>>doc:sdmx:Glossary 2\.1.Observation value.WebHome]] reported against COUNTRY FR for [[time period>>doc:sdmx:Glossary 2\.1.Time period.WebHome]] 2013 would be deemed invalid as the 1.1.0 rule would be applied. |
| |
1.1 | 178 | |
| |
1.2 | 179 | === 10.4.6 Inheritance === |
| |
1.1 | 180 | |
| |
1.2 | 181 | ==== 10.4.6.1 Attachment levels of a Constraint ==== |
| |
1.1 | 182 | |
| |
8.5 | 183 | There are three [[levels>>doc:sdmx:Glossary 2\.1.Level.WebHome]] of [[constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] attachment for which these inheritance rules apply: |
| |
1.1 | 184 | |
| |
8.5 | 185 | * [[DSD>>doc:sdmx:Glossary 2\.1.Data structure definition.WebHome]]/[[MSD>>doc:sdmx:Glossary 2\.1.Metadata structure definition.WebHome]] – top [[level>>doc:sdmx:Glossary 2\.1.Level.WebHome]] |
| 186 | ** [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]]/[[Metadataflow>>doc:sdmx:Glossary 2\.1.Metadataflow.WebHome]] – second [[level>>doc:sdmx:Glossary 2\.1.Level.WebHome]] | ||
| 187 | *** [[Provision Agreement>>doc:sdmx:Glossary 2\.1.Provision agreement.WebHome]] – third [[level>>doc:sdmx:Glossary 2\.1.Level.WebHome]] | ||
| |
1.1 | 188 | |
| |
8.5 | 189 | It is not necessary for a [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] to be attached to a higher [[level>>doc:sdmx:Glossary 2\.1.Level.WebHome]] [[artefact>>doc:sdmx:Glossary 2\.1.Artefact.WebHome]]. e.g., it is valid to have a [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] for a [[Provision Agreement>>doc:sdmx:Glossary 2\.1.Provision agreement.WebHome]] where there are no [[constraints>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] attached the relevant [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]] or [[DSD>>doc:sdmx:Glossary 2\.1.Data structure definition.WebHome]]. |
| |
1.1 | 190 | |
| |
1.2 | 191 | ==== 10.4.6.2 Cascade rules for processing Constraints ==== |
| |
1.1 | 192 | |
| |
8.5 | 193 | The processing of the [[constraints>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] on either [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]]/[[Metadataflow>>doc:sdmx:Glossary 2\.1.Metadataflow.WebHome]] or [[Provision Agreement>>doc:sdmx:Glossary 2\.1.Provision agreement.WebHome]] must take into account the [[constraints>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] declared at higher [[levels>>doc:sdmx:Glossary 2\.1.Level.WebHome]]. The rules for the lower-[[level>>doc:sdmx:Glossary 2\.1.Level.WebHome]] [[constraints>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] (attached to [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]]/ [[Metadataflow>>doc:sdmx:Glossary 2\.1.Metadataflow.WebHome]] and [[Provision Agreement>>doc:sdmx:Glossary 2\.1.Provision agreement.WebHome]]) are detailed below. |
| |
1.1 | 194 | |
| |
8.5 | 195 | Note that there can be a situation where a [[constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] is specified at a lower [[level>>doc:sdmx:Glossary 2\.1.Level.WebHome]] before a [[constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] is specified at a higher [[level>>doc:sdmx:Glossary 2\.1.Level.WebHome]]. Therefore, it is possible that a higher-[[level>>doc:sdmx:Glossary 2\.1.Level.WebHome]] [[constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] makes a lower-[[level>>doc:sdmx:Glossary 2\.1.Level.WebHome]] [[constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] invalid. [[SDMX>>doc:sdmx:Glossary 2\.1.Statistical data and metadata exchange.WebHome]] makes no rules on how such a conflict should be handled when processing the [[constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] for attachment. However, the cascade rules on evaluating [[constraints>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] for usage are clear – the higher-[[level>>doc:sdmx:Glossary 2\.1.Level.WebHome]] [[constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] takes precedence in any conflicts that result in a less restrictive specification at the lower [[level>>doc:sdmx:Glossary 2\.1.Level.WebHome]]. |
| |
1.1 | 196 | |
| |
1.2 | 197 | ==== 10.4.6.3 Cube Region ==== |
| |
1.1 | 198 | |
| |
8.5 | 199 | It is not necessary to have a [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] on the higher-[[level>>doc:sdmx:Glossary 2\.1.Level.WebHome]] [[artefact>>doc:sdmx:Glossary 2\.1.Artefact.WebHome]] (e.g., [[DSD>>doc:sdmx:Glossary 2\.1.Data structure definition.WebHome]] referenced by the [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]]), but if there is such a [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] at the higher [[level>>doc:sdmx:Glossary 2\.1.Level.WebHome]](s) then: |
| |
1.1 | 200 | |
| |
8.5 | 201 | * The lower-[[level>>doc:sdmx:Glossary 2\.1.Level.WebHome]] [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] cannot be less restrictive than the [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] specified for the same [[Member Selection>>doc:sdmx:Glossary 2\.1.Member selection.WebHome]] (e.g. [[Dimension>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]]) at the next higher [[level>>doc:sdmx:Glossary 2\.1.Level.WebHome]], which constrains that [[Member Selection>>doc:sdmx:Glossary 2\.1.Member selection.WebHome]]. For example, if the [[Dimension>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] FREQ is constrained to A, Q in a [[DSD>>doc:sdmx:Glossary 2\.1.Data structure definition.WebHome]], then the [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] at the [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]] or [[Provision Agreement>>doc:sdmx:Glossary 2\.1.Provision agreement.WebHome]] cannot be A, Q, M or even just M – it can only further constrain A, Q. |
| 202 | * The [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] at the lower [[level>>doc:sdmx:Glossary 2\.1.Level.WebHome]] for any one [[Member Selection>>doc:sdmx:Glossary 2\.1.Member selection.WebHome]] further constrains the content for the same [[Member Selection>>doc:sdmx:Glossary 2\.1.Member selection.WebHome]] at the higher [[level>>doc:sdmx:Glossary 2\.1.Level.WebHome]](s). | ||
| 203 | * Any [[Member Selection>>doc:sdmx:Glossary 2\.1.Member selection.WebHome]], which is not referenced in a [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]], is deemed to be constrained according to the [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] specified at the next higher [[level>>doc:sdmx:Glossary 2\.1.Level.WebHome]] which [[constraints>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] that [[Member Selection>>doc:sdmx:Glossary 2\.1.Member selection.WebHome]]. | ||
| 204 | * If there is a conflict when resolving the [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] in terms of a lower-[[level>>doc:sdmx:Glossary 2\.1.Level.WebHome]] [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] being less restrictive than a higher-[[level>>doc:sdmx:Glossary 2\.1.Level.WebHome]] [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]], then the [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] at the higher-[[level>>doc:sdmx:Glossary 2\.1.Level.WebHome]] is used. | ||
| |
1.1 | 205 | |
| |
8.5 | 206 | Note that it is possible for a [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] at a higher [[level>>doc:sdmx:Glossary 2\.1.Level.WebHome]] to constrain, say, four [[Dimensions>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] in a single [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]], and a [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] at a lower [[level>>doc:sdmx:Glossary 2\.1.Level.WebHome]] to constrain the same four in two, three, or four [[Constraints>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]]. |
| |
1.1 | 207 | |
| |
1.2 | 208 | ==== 10.4.6.4 Key Set ==== |
| |
1.1 | 209 | |
| |
8.5 | 210 | It is not necessary to have a [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] on the higher-[[level>>doc:sdmx:Glossary 2\.1.Level.WebHome]] [[artefact>>doc:sdmx:Glossary 2\.1.Artefact.WebHome]] (e.g., [[DSD>>doc:sdmx:Glossary 2\.1.Data structure definition.WebHome]] referenced by the [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]]), but if there is such a [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] at the higher [[level>>doc:sdmx:Glossary 2\.1.Level.WebHome]](s) then: |
| |
1.1 | 211 | |
| |
8.5 | 212 | * The lower-[[level>>doc:sdmx:Glossary 2\.1.Level.WebHome]] [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] cannot be less restrictive than the [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] specified at the higher [[level>>doc:sdmx:Glossary 2\.1.Level.WebHome]]. |
| 213 | * The [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] at the lower [[level>>doc:sdmx:Glossary 2\.1.Level.WebHome]] for any one [[Member Selection>>doc:sdmx:Glossary 2\.1.Member selection.WebHome]] further constrains the keys specified at the higher [[level>>doc:sdmx:Glossary 2\.1.Level.WebHome]](s). | ||
| 214 | * Any [[Member Selection>>doc:sdmx:Glossary 2\.1.Member selection.WebHome]], which is not referenced in a [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]], is deemed to be constrained according to the [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] specified at the next higher [[level>>doc:sdmx:Glossary 2\.1.Level.WebHome]] which [[constraints>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] that [[Member Selection>>doc:sdmx:Glossary 2\.1.Member selection.WebHome]]. | ||
| 215 | * If there is a conflict when resolving the keys in the [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] at two [[levels>>doc:sdmx:Glossary 2\.1.Level.WebHome]], in terms of a lower-[[level>>doc:sdmx:Glossary 2\.1.Level.WebHome]] [[constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] being less restrictive than a higher-[[level>>doc:sdmx:Glossary 2\.1.Level.WebHome]] [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]], then the offending keys specified at the lower [[level>>doc:sdmx:Glossary 2\.1.Level.WebHome]] are not deemed part of the [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]]. | ||
| |
1.1 | 216 | |
| |
8.5 | 217 | Note that a Key in a Key Set can have wildcarded [[Components>>doc:sdmx:Glossary 2\.1.Component.WebHome]]. For instance, the [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] may simply constrain the [[Dimension>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] FREQ to "A", and all keys where the FREQ="A" are therefore valid. |
| |
1.1 | 218 | |
| 219 | The following logic explains how the inheritance mechanism works. Note that this is conceptual logic and actual systems may differ in the way this is implemented. | ||
| 220 | |||
| |
8.5 | 221 | 1. Determine all possible keys that are valid at the higher [[level>>doc:sdmx:Glossary 2\.1.Level.WebHome]]. |
| 222 | 1. These keys are deemed to be inherited by the lower-[[level>>doc:sdmx:Glossary 2\.1.Level.WebHome]] constrained object, subject to the [[Constraints>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] specified at the lower [[level>>doc:sdmx:Glossary 2\.1.Level.WebHome]]. | ||
| 223 | 1. Determine all possible keys that are possible using the [[Constraints>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] specified at the lower [[level>>doc:sdmx:Glossary 2\.1.Level.WebHome]]. | ||
| 224 | 1. At the lower [[level>>doc:sdmx:Glossary 2\.1.Level.WebHome]] inherit all keys that match with the higher-[[level>>doc:sdmx:Glossary 2\.1.Level.WebHome]] [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]]. | ||
| 225 | 1. If there are keys in the lower-[[level>>doc:sdmx:Glossary 2\.1.Level.WebHome]] [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] that are not inherited then the key is invalid (i.e., it is less restrictive). | ||
| |
1.1 | 226 | |
| |
1.5 | 227 | === 10.4.7 Constraints Examples === |
| 228 | |||
| |
1.2 | 229 | ==== 10.4.7.1 Data Constraint and Cascading ==== |
| |
1.1 | 230 | |
| |
1.2 | 231 | The following scenario is used. |
| 232 | |||
| |
8.1 | 233 | A [[DSD>>doc:sdmx:Glossary 2\.1.Data structure definition.WebHome]] contains the following [[Dimensions>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]]: |
| |
1.1 | 234 | |
| 235 | * GEO – Geography | ||
| |
8.1 | 236 | * [[SEX>>doc:sdmx:Glossary 2\.1.Sex.WebHome]] – [[Sex>>doc:sdmx:Glossary 2\.1.Sex.WebHome]] |
| 237 | * [[AGE>>doc:sdmx:Glossary 2\.1.Age.WebHome]] – [[Age>>doc:sdmx:Glossary 2\.1.Age.WebHome]] | ||
| |
1.1 | 238 | * CAS – Current Activity Status |
| 239 | |||
| |
8.5 | 240 | In the [[DSD>>doc:sdmx:Glossary 2\.1.Data structure definition.WebHome]], common [[code lists>>doc:sdmx:Glossary 2\.1.Code list.WebHome]] are used and the requirement is to restrict these at various [[levels>>doc:sdmx:Glossary 2\.1.Level.WebHome]] to specify the actual [[code>>doc:sdmx:Glossary 2\.1.Code.WebHome]] that are valid for the object to which the [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] is attached. |
| |
1.1 | 241 | |
| |
1.6 | 242 | [[image:1750065279010-260.png]] |
| |
1.1 | 243 | |
| |
8.5 | 244 | **Figure 20: Example Scenario for Constraints ** |
| |
1.1 | 245 | |
| |
8.5 | 246 | [[Constraints>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] are declared as follows: |
| |
3.3 | 247 | |
| |
1.6 | 248 | [[image:1750065319060-899.png]] |
| |
1.1 | 249 | |
| |
8.5 | 250 | **Figure 21: Example Constraints** |
| |
1.1 | 251 | |
| 252 | Notes: | ||
| 253 | |||
| |
8.1 | 254 | [[AGE>>doc:sdmx:Glossary 2\.1.Age.WebHome]] is constrained for the [[DSD>>doc:sdmx:Glossary 2\.1.Data structure definition.WebHome]] and is further restricted for the [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]] CENSUS_CUBE1. |
| |
1.1 | 255 | |
| |
8.6 | 256 | * The same [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] applies to both [[Provision Agreements>>doc:sdmx:Glossary 2\.1.Provision agreement.WebHome]]. |
| |
1.1 | 257 | |
| 258 | The cascade rules elaborated above result as follows: | ||
| 259 | |||
| |
8.1 | 260 | [[DSD>>doc:sdmx:Glossary 2\.1.Data structure definition.WebHome]] |
| |
1.1 | 261 | |
| |
8.1 | 262 | * Constrained by eliminating [[code>>doc:sdmx:Glossary 2\.1.Code.WebHome]] 001 from the [[code list>>doc:sdmx:Glossary 2\.1.Code list.WebHome]] for the [[AGE>>doc:sdmx:Glossary 2\.1.Age.WebHome]] [[Dimension>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]]. |
| |
1.1 | 263 | |
| |
8.1 | 264 | [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]] CENSUS_CUBE1 |
| |
1.1 | 265 | |
| |
8.6 | 266 | * Constrained by restricting the [[code list>>doc:sdmx:Glossary 2\.1.Code list.WebHome]] for the [[AGE>>doc:sdmx:Glossary 2\.1.Age.WebHome]] [[Dimension>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] to [[codes>>doc:sdmx:Glossary 2\.1.Code.WebHome]] 002 and 003 (note that this is a more restrictive [[constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] than that declared for the [[DSD>>doc:sdmx:Glossary 2\.1.Data structure definition.WebHome]] which specifies all [[codes>>doc:sdmx:Glossary 2\.1.Code.WebHome]] except [[code>>doc:sdmx:Glossary 2\.1.Code.WebHome]] 001). |
| |
8.1 | 267 | ** Restricts the CAS [[codes>>doc:sdmx:Glossary 2\.1.Code.WebHome]] to 003 and 004. |
| |
1.1 | 268 | |
| |
8.1 | 269 | [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]] CENSUS_CUBE2 |
| |
1.1 | 270 | |
| |
8.1 | 271 | * Restricts the [[code list>>doc:sdmx:Glossary 2\.1.Code list.WebHome]] for the CAS [[Dimension>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] to [[codes>>doc:sdmx:Glossary 2\.1.Code.WebHome]] TOT and NAP. |
| |
8.6 | 272 | ** Inherits the [[AGE>>doc:sdmx:Glossary 2\.1.Age.WebHome]] [[constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] applied at the level of the [[DSD>>doc:sdmx:Glossary 2\.1.Data structure definition.WebHome]]. |
| |
1.1 | 273 | |
| |
8.1 | 274 | [[Provision Agreement>>doc:sdmx:Glossary 2\.1.Provision agreement.WebHome]] CENSUS_CUBE1_IT |
| |
1.1 | 275 | |
| |
8.1 | 276 | * Restricts the [[codes>>doc:sdmx:Glossary 2\.1.Code.WebHome]] for the GEO [[Dimension>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] to IT and its children. |
| |
8.6 | 277 | ** Inherits the [[constraints>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] from [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]] CENSUS_CUBE1 for the [[AGE>>doc:sdmx:Glossary 2\.1.Age.WebHome]] and CAS [[Dimensions>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]]. |
| |
1.1 | 278 | |
| |
8.1 | 279 | [[Provision Agreement>>doc:sdmx:Glossary 2\.1.Provision agreement.WebHome]] CENSUS_CUBE2_IT |
| |
1.1 | 280 | |
| |
8.1 | 281 | * Restricts the [[codes>>doc:sdmx:Glossary 2\.1.Code.WebHome]] for the GEO [[Dimension>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] to IT and its children. |
| |
8.6 | 282 | ** Inherits the [[constraints>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] from [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]] CENSUS_CUBE2 for the CAS [[Dimension>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]]. |
| 283 | ** Inherits the [[AGE>>doc:sdmx:Glossary 2\.1.Age.WebHome]] [[constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] applied at the [[level>>doc:sdmx:Glossary 2\.1.Level.WebHome]] of the [[DSD>>doc:sdmx:Glossary 2\.1.Data structure definition.WebHome]]. | ||
| |
1.1 | 284 | |
| |
8.6 | 285 | The [[Constraints>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] are defined as follows: |
| |
1.1 | 286 | |
| |
8.6 | 287 | DSD Constraint |
| |
1.1 | 288 | |
| |
1.8 | 289 | [[image:1750065367824-357.png]] |
| |
1.7 | 290 | |
| |
8.6 | 291 | Dataflow Constraints |
| |
1.1 | 292 | |
| |
1.8 | 293 | [[image:1750065392163-400.png]] |
| |
1.7 | 294 | |
| |
8.6 | 295 | Provision Agreement Constraint |
| |
1.1 | 296 | |
| |
1.8 | 297 | [[image:1750065461589-995.png]] |
| |
1.7 | 298 | |
| |
8.6 | 299 | **10.4.7.2 Combination of Constraints** |
| |
1.1 | 300 | |
| 301 | The possible combination of constraining terms are explained in this section, following a few examples. | ||
| 302 | |||
| |
8.1 | 303 | Let’s assume a [[DSD>>doc:sdmx:Glossary 2\.1.Data structure definition.WebHome]] with the following [[Components>>doc:sdmx:Glossary 2\.1.Component.WebHome]]: |
| |
1.1 | 304 | |
| |
1.10 | 305 | (% style="width:459.294px" %) |
| |
8.1 | 306 | |(% style="width:204px" %)(% style="color:#3498db" %)[[Dimension>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]]|(% style="width:252px" %)(% style="color:#3498db" %)FREQ |
| 307 | |(% style="width:204px" %)(% style="color:#3498db" %)[[Dimension>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]]|(% style="width:252px" %)(% style="color:#3498db" %)JD_TYPE | ||
| 308 | |(% style="width:204px" %)(% style="color:#3498db" %)[[Dimension>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]]|(% style="width:252px" %)(% style="color:#3498db" %)JD_CATEGORY | ||
| 309 | |(% style="width:204px" %)(% style="color:#3498db" %)[[Dimension>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]]|(% style="width:252px" %)(% style="color:#3498db" %)VIS_CTY | ||
| |
1.10 | 310 | |(% style="width:204px" %)(% style="color:#2980b9" %)TimeDimension|(% style="width:252px" %)(% style="color:#2980b9" %)TIME_PERIOD |
| |
8.1 | 311 | |(% style="width:204px" %)(% style="color:#16a085" %)[[Attribute>>doc:sdmx:Glossary 2\.1.Attribute.WebHome]]|(% style="width:252px" %)(% style="color:#16a085" %)OBS_STATUS |
| 312 | |(% style="width:204px" %)(% style="color:#16a085" %)[[Attribute>>doc:sdmx:Glossary 2\.1.Attribute.WebHome]]|(% style="width:252px" %)(% style="color:#16a085" %)[[UNIT>>doc:sdmx:Glossary 2\.1.Statistical unit.WebHome]] | ||
| 313 | |(% style="width:204px" %)(% style="color:#16a085" %)[[Attribute>>doc:sdmx:Glossary 2\.1.Attribute.WebHome]]|(% style="width:252px" %)(% style="color:#16a085" %)[[COMMENT>>doc:sdmx:Glossary 2\.1.Comment.WebHome]] | ||
| |
8.2 | 314 | |(% style="width:204px" %)(% style="color:#f39c12" %)MetadataAttribute|(% style="width:252px" %)(% style="color:#e74c3c" %)CONTACT |
| |
8.1 | 315 | |(% style="width:204px" %)[[Measure>>doc:sdmx:Glossary 2\.1.Measure.WebHome]]|(% style="width:252px" %)MULTISELECT |
| 316 | |(% style="width:204px" %)[[Measure>>doc:sdmx:Glossary 2\.1.Measure.WebHome]]|(% style="width:252px" %)CHOICE | ||
| |
1.1 | 317 | |
| 318 | On the above, let’s assume the following use cases with their constraining requirements: | ||
| 319 | |||
| |
8.6 | 320 | **Use Case 1: A Constraint on allowed values for some Dimensions** |
| |
1.1 | 321 | |
| 322 | R1: Allow monthly and quarterly data | ||
| 323 | |||
| 324 | R2: Allow Mexico for vis-à-vis country | ||
| 325 | |||
| 326 | This is expressed with the following CubeRegion: | ||
| 327 | |||
| |
1.11 | 328 | (% style="width:287.294px" %) |
| 329 | |(% style="width:131px" %)(% style="color:#3498db" %)FREQ|(% style="width:153px" %)(% style="color:#3498db" %)M, Q | ||
| 330 | |(% style="width:131px" %)(% style="color:#3498db" %)VIS_CTY|(% style="width:153px" %)(% style="color:#3498db" %)MX | ||
| |
1.1 | 331 | |
| |
8.6 | 332 | **Use Case 2: A Constraint on allowed combinations for some Dimensions** |
| |
1.1 | 333 | |
| 334 | R1: Allow monthly data for Germany | ||
| 335 | |||
| 336 | R2: Allow quarterly data for Mexico | ||
| 337 | |||
| 338 | This is expressed with the following DataKeySet: | ||
| 339 | |||
| |
1.12 | 340 | (% style="width:388.294px" %) |
| 341 | |(% style="width:105px" %)(% style="color:#2980b9" %)Key1|(% style="width:137px" %)(% style="color:#2980b9" %)FREQ|(% style="width:143px" %)(% style="color:#2980b9" %)M | ||
| 342 | |(% style="width:105px" %) |(% style="width:137px" %)(% style="color:#2980b9" %)VIS_CTY|(% style="width:143px" %)(% style="color:#2980b9" %)DE | ||
| 343 | |(% rowspan="2" style="width:105px" %)(% style="color:#2980b9" %)Key2|(% style="width:137px" %)(% style="color:#2980b9" %)FREQ|(% style="width:143px" %)(% style="color:#2980b9" %)Q | ||
| 344 | |(% style="width:137px" %)(% style="color:#2980b9" %)VIS_CTY|(% style="width:143px" %)(% style="color:#2980b9" %)MX | ||
| |
1.1 | 345 | |
| |
8.6 | 346 | **Use Case 3: A Constraint on allowed values for some Dimensions combined with allowed values for some Attributes** |
| |
1.1 | 347 | |
| |
8.6 | 348 | R1: Allow monthly and quarterly data |
| 349 | |||
| |
1.1 | 350 | R2: Allow Mexico for vis-à-vis country |
| 351 | |||
| 352 | R3: Allow present for status | ||
| 353 | |||
| 354 | This may be expressed with the following CubeRegion: | ||
| 355 | |||
| |
1.13 | 356 | (% style="width:285.294px" %) |
| 357 | |(% style="width:143px" %)(% style="color:#2980b9" %)FREQ|(% style="width:139px" %)(% style="color:#2980b9" %)M, Q | ||
| 358 | |(% style="width:143px" %)(% style="color:#2980b9" %)VIS_CTY|(% style="width:139px" %)(% style="color:#2980b9" %)MX | ||
| 359 | |(% style="width:143px" %)(% style="color:#27ae60" %)OBS_STATUS|(% style="width:139px" %)(% style="color:#27ae60" %)A | ||
| |
1.1 | 360 | |
| |
8.6 | 361 | **Use Case 4: A Constraint on allowed combinations for some Dimensions combined with specific Attribute values** |
| |
1.1 | 362 | |
| |
8.1 | 363 | R1: Allow monthly data, for Germany, with [[unit>>doc:sdmx:Glossary 2\.1.Statistical unit.WebHome]] euro |
| |
1.1 | 364 | |
| |
8.1 | 365 | R2: Allow quarterly data, for Mexico, with [[unit>>doc:sdmx:Glossary 2\.1.Statistical unit.WebHome]] usd |
| |
1.1 | 366 | |
| 367 | This may be expressed with the following DataKeySet: | ||
| 368 | |||
| |
1.14 | 369 | (% style="width:389.294px" %) |
| 370 | |(% rowspan="3" style="width:89px" %)(% style="color:#2980b9" %)Key1|(% style="width:153px" %)(% style="color:#2980b9" %)FREQ|(% style="width:142px" %)(% style="color:#2980b9" %)M | ||
| 371 | |(% style="width:153px" %)(% style="color:#2980b9" %)VIS_CTY|(% style="width:142px" %)(% style="color:#2980b9" %)DE | ||
| |
8.1 | 372 | |(% style="width:153px" %)(% style="color:#27ae60" %)[[UNIT>>doc:sdmx:Glossary 2\.1.Statistical unit.WebHome]]|(% style="width:142px" %)(% style="color:#27ae60" %)EUR |
| |
1.14 | 373 | |(% rowspan="3" style="width:89px" %)(% style="color:#2980b9" %)Key2|(% style="width:153px" %)(% style="color:#2980b9" %)FREQ|(% style="width:142px" %)(% style="color:#2980b9" %)Q |
| 374 | |(% style="width:153px" %)(% style="color:#2980b9" %)VIS_CTY|(% style="width:142px" %)(% style="color:#2980b9" %)MX | ||
| |
8.1 | 375 | |(% style="width:153px" %)(% style="color:#27ae60" %)[[UNIT>>doc:sdmx:Glossary 2\.1.Statistical unit.WebHome]]|(% style="width:142px" %)(% style="color:#27ae60" %)USD |
| |
1.1 | 376 | |
| |
8.6 | 377 | **Use Case 5: A Constraint on allowed values for some Dimensions together with some combination of Dimension values** |
| |
1.1 | 378 | |
| 379 | R1: For annually and quarterly data, for Mexico and Germany, only A status is allowed | ||
| 380 | |||
| 381 | R2: For monthly data, for Mexico and Germany, only F status is allowed | ||
| 382 | |||
| 383 | Considering the above examples, the following CubeRegions would be created: | ||
| 384 | |||
| |
1.15 | 385 | (% style="width:449.294px" %) |
| 386 | |(% rowspan="3" style="width:126px" %)(% style="color:#2980b9" %)CubeRegion1|(% style="width:137px" %)(% style="color:#2980b9" %)FREQ|(% style="width:183px" %)(% style="color:#2980b9" %)Q, A | ||
| 387 | |(% style="width:137px" %)(% style="color:#2980b9" %)VIS_CTY|(% style="width:183px" %)(% style="color:#2980b9" %)MX, DE | ||
| 388 | |(% style="width:137px" %)(% style="color:#27ae60" %)OBS_STATUS|(% style="width:183px" %)(% style="color:#27ae60" %)A | ||
| 389 | |(% rowspan="3" style="width:126px" %)(% style="color:#2980b9" %)CubeRegion2|(% style="width:137px" %)(% style="color:#2980b9" %)FREQ|(% style="width:183px" %)(% style="color:#2980b9" %)M | ||
| 390 | |(% style="width:137px" %)(% style="color:#2980b9" %)VIS_CTY|(% style="width:183px" %)(% style="color:#2980b9" %)MX, DE | ||
| 391 | |(% style="width:137px" %)(% style="color:#27ae60" %)OBS_STATUS|(% style="width:183px" %)(% style="color:#27ae60" %)F | ||
| |
1.1 | 392 | |
| |
8.6 | 393 | The problem with this approach is that according to the business rule for [[Constraints>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]], only one should be specified per [[Component>>doc:sdmx:Glossary 2\.1.Component.WebHome]]. Thus, if a software would perform some conflict resolution would end up with empty sets for FREQ and OBS_STATUS (as they do not share any values). |
| |
1.1 | 394 | |
| |
8.6 | 395 | Nevertheless, there is a much easier approach to that; this is the cascading mechanism of [[Constraints>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]] (as shown in 10.4.7.1). Hence, these rules would be expressed into two [[levels>>doc:sdmx:Glossary 2\.1.Level.WebHome]] of [[Constraints>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]], e.g., [[DSD>>doc:sdmx:Glossary 2\.1.Data structure definition.WebHome]] and [[Dataflows>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]]: |
| |
1.1 | 396 | |
| |
8.6 | 397 | DSD CubeRegion: |
| |
1.1 | 398 | |
| |
1.15 | 399 | (% style="width:280.294px" %) |
| |
1.16 | 400 | |(% style="width:156px" %)(% style="color:#2980b9" %)FREQ|(% style="width:121px" %)(% style="color:#2980b9" %)M, Q, A |
| 401 | |(% style="width:156px" %)(% style="color:#2980b9" %)VIS_CTY|(% style="width:121px" %)(% style="color:#2980b9" %)MX, DE | ||
| 402 | |(% style="width:156px" %)(% style="color:#27ae60" %)OBS_STATUS|(% style="width:121px" %)(% style="color:#27ae60" %)A, F | ||
| |
1.1 | 403 | |
| 404 | Dataflow1 CubeRegion: | ||
| 405 | |||
| |
1.15 | 406 | (% style="width:285.294px" %) |
| |
1.16 | 407 | |(% style="width:157px" %)(% style="color:#2980b9" %)FREQ|(% style="width:125px" %)(% style="color:#2980b9" %)Q, A |
| 408 | |(% style="width:157px" %)(% style="color:#2980b9" %)VIS_CTY|(% style="width:125px" %)(% style="color:#2980b9" %)MX, DE | ||
| 409 | |(% style="width:157px" %)(% style="color:#27ae60" %)OBS_STATUS|(% style="width:125px" %)(% style="color:#27ae60" %)F | ||
| |
1.1 | 410 | |
| 411 | Dataflow2 CubeRegion: | ||
| 412 | |||
| |
1.15 | 413 | (% style="width:288.294px" %) |
| |
1.16 | 414 | |(% style="width:159px" %)(% style="color:#2980b9" %)FREQ|(% style="width:126px" %)(% style="color:#2980b9" %)M |
| 415 | |(% style="width:159px" %)(% style="color:#2980b9" %)VIS_CTY|(% style="width:126px" %)(% style="color:#2980b9" %)MX, DE | ||
| 416 | |(% style="width:159px" %)(% style="color:#27ae60" %)OBS_STATUS|(% style="width:126px" %)(% style="color:#27ae60" %)A | ||
| |
1.1 | 417 | |
| |
8.6 | 418 | **Use case 6: A Constraint on allowed values for some Dimensions combined with allowed values for Measures** |
| |
1.1 | 419 | |
| |
8.1 | 420 | R1: Allow monthly data, for Germany, with [[unit>>doc:sdmx:Glossary 2\.1.Statistical unit.WebHome]] euro, and [[measure>>doc:sdmx:Glossary 2\.1.Measure.WebHome]] choice is 'A' R2: Allow quarterly data, for Mexico, with [[unit>>doc:sdmx:Glossary 2\.1.Statistical unit.WebHome]] usd, and [[measure>>doc:sdmx:Glossary 2\.1.Measure.WebHome]] choice is 'B' |
| |
1.1 | 421 | |
| 422 | This may be expressed with the following DataKeySet: | ||
| 423 | |||
| |
1.17 | 424 | (% style="width:404.294px" %) |
| 425 | |(% rowspan="4" style="width:99px" %)(% style="color:#2980b9" %)Key1|(% style="width:153px" %)(% style="color:#2980b9" %)FREQ|(% style="width:149px" %)(% style="color:#2980b9" %)M | ||
| 426 | |(% style="width:153px" %)(% style="color:#2980b9" %)VIS_CTY|(% style="width:149px" %)(% style="color:#2980b9" %)DE | ||
| |
8.1 | 427 | |(% style="width:153px" %)(% style="color:#27ae60" %)[[UNIT>>doc:sdmx:Glossary 2\.1.Statistical unit.WebHome]]|(% style="width:149px" %)(% style="color:#27ae60" %)EUR |
| 428 | |(% style="width:153px" %)CHOICE|(% style="width:149px" %)A | ||
| |
1.17 | 429 | |(% rowspan="4" style="width:99px" %)(% style="color:#2980b9" %)Key2|(% style="width:153px" %)(% style="color:#2980b9" %)FREQ|(% style="width:149px" %)(% style="color:#2980b9" %)Q |
| 430 | |(% style="width:153px" %)(% style="color:#2980b9" %)VIS_CTY|(% style="width:149px" %)(% style="color:#2980b9" %)MX | ||
| |
8.1 | 431 | |(% style="width:153px" %)(% style="color:#27ae60" %)[[UNIT>>doc:sdmx:Glossary 2\.1.Statistical unit.WebHome]]|(% style="width:149px" %)(% style="color:#27ae60" %)USD |
| 432 | |(% style="width:153px" %)CHOICE|(% style="width:149px" %)B | ||
| |
1.1 | 433 | |
| |
8.6 | 434 | **Use Case 7: A Constraint with wildcards for Codes and removePrefix property** |
| |
1.1 | 435 | |
| |
8.6 | 436 | For this example, we assume that the VIS_CTY [[representation>>doc:sdmx:Glossary 2\.1.Representation.WebHome]] has been prefixed with prefix ‘AREA_’. In this [[Constraint>>doc:sdmx:Glossary 2\.1.Constraint.WebHome]], we need to remove the prefix. |
| |
3.2 | 437 | |
| |
1.1 | 438 | R1: Allow monthly and quarterly data |
| 439 | |||
| 440 | R2: Allow vis-à-vis countries that start with M | ||
| 441 | |||
| 442 | R3: Remove the prefix ‘AREA_’ | ||
| 443 | |||
| 444 | This may be expressed with the following CubeRegion: | ||
| 445 | |||
| |
2.1 | 446 | (% style="width:379.294px" %) |
| 447 | |(% style="width:264px" %)(% style="color:#2980b9" %)FREQ|(% style="width:112px" %)(% style="color:#2980b9" %)M, Q | ||
| 448 | |(% style="width:264px" %)(% style="color:#2980b9" %)VIS_CTY (removePrefix=’AREA_’)|(% style="width:112px" %)(% style="color:#2980b9" %)M% | ||
| |
1.1 | 449 | |
| |
8.6 | 450 | **Use Case 8: A Constraint with multilingual support on Attributes** |
| |
1.1 | 451 | |
| 452 | R1: Allow monthly and quarterly data | ||
| 453 | |||
| 454 | R2: Allow Mexico for vis-à-vis country | ||
| 455 | |||
| |
8.1 | 456 | R3: Allow a [[comment>>doc:sdmx:Glossary 2\.1.Comment.WebHome]], in English, which includes the term adjusted for status |
| |
1.1 | 457 | |
| 458 | This may be expressed with the following CubeRegion: | ||
| 459 | |||
| |
2.1 | 460 | (% style="width:382.294px" %) |
| 461 | |(% style="width:190px" %)(% style="color:#2980b9" %)FREQ|(% style="width:189px" %)(% style="color:#2980b9" %)M, Q | ||
| 462 | |(% style="width:190px" %)(% style="color:#2980b9" %)VIS_CTY|(% style="width:189px" %)(% style="color:#2980b9" %)MX | ||
| |
8.1 | 463 | |(% style="width:190px" %)(% style="color:#27ae60" %)[[COMMENT>>doc:sdmx:Glossary 2\.1.Comment.WebHome]] (lang=’en’)|(% style="width:189px" %)(% style="color:#27ae60" %)%adjusted% |
| |
1.1 | 464 | |
| |
8.6 | 465 | **Use Case 9: A Constraint on allowed values for Dimensions combined with allowed values for Metadata Attributes** |
| |
1.1 | 466 | |
| |
8.6 | 467 | R1: Allow monthly and quarterly data |
| 468 | |||
| |
1.1 | 469 | R2: Allow Mexico for vis-à-vis country |
| 470 | |||
| |
8.6 | 471 | R3: Allow John Doe for contact |
| |
1.1 | 472 | |
| 473 | This may be expressed with the following CubeRegion: | ||
| 474 | |||
| |
2.1 | 475 | (% style="width:388.294px" %) |
| 476 | |(% style="width:181px" %)(% style="color:#2980b9" %)FREQ|(% style="width:204px" %)(% style="color:#2980b9" %)M, Q | ||
| 477 | |(% style="width:181px" %)(% style="color:#2980b9" %)VIS_CTY|(% style="width:204px" %)(% style="color:#2980b9" %)MX | ||
| |
8.6 | 478 | |(% style="width:181px" %)(% style="color:#e74c3c" %)CONTACT|(% style="width:204px" %)(% style="color:#f39c12" %)John Doe |