ValueMapping#

Fully qualified class name of the UML model DDI-CDI 1.0: DDICDIModels::DDICDILibrary::Classes::FormatDescription::ValueMapping

Definition#

Physical characteristics for the value of an instance variable stored in a data point as part of a physical segment layout.

Examples#

A variable “age” might be represented in a file as a string with a maximum length of 5 characters and a number pattern of ##0.0

Explanatory notes#

An instance variable has details of value domain and data type, but will not have the final details of how a value is physically represented in a data file. A variable for height, for example, may be represented as a real number, but may be represented as a string in multiple ways. The decimal separator might be, for example a period or a comma. The string representing the value of a payment might be preceded by a currency symbol. The same numeric value might be written as “1,234,567” or “1.234567”. A missing value might be written as “.”, “NA”, “.R” or as “R”. The value mapping describes how the value of an instance variable is physically expressed. The properties of the value mapping as intended to be compatible with the W3C Metadata Vocabulary for Tabular Data (https://www.w3.org/TR/tabular-metadata/) as well as common programming languages and statistical packages. The ‘format’ property, for example, can draw from an external controlled vocabulary such as the set of formats for Stata, SPSS, or SAS.

Diagram#

Diagram

Attributes#

Attributes
Attributes#

Name

Inherited from

Description

Data Type

Multiplicity

Default value

decimalPositions

- own class -

The number of decimal positions expressed as an integer. Used when the decimal position is implied (no decimal separator is present) See DDI 3.2 ManagedNumericRepresentation_decimalPositions

Integer

0..1

defaultDecimalSeparator

- own class -

Default value is “.” (period). The character separating the integer part from the fractional part of a decimal or real number. From the W3C Recommendation “Metadata Vocabulary for Tabular Data” (https://www.w3.org/TR/tabular-metadata/) 6.4.2: “decimalChar: A string whose value is used to represent a decimal point within the number. If the supplied value is not a string, implementations MUST issue a warning and proceed as if the property had not been specified.”

String

0..1

.

defaultDigitGroupSeparator

- own class -

Default value is null. A character separating groups of digits (for readability). In W3C part of the datatype format From https://www.w3.org/TR/tabular-metadata/ tabular 6.4.2 groupChar: “A string whose value is used to group digits within the number. If the supplied value is not a string, implementations MUST issue a warning and proceed as if the property had not been specified.”

String

0..1

defaultValue

- own class -

A default string indicating the value to substitute for an empty string. From https://www.w3.org/TR/tabular-metadata/ Inherited 5.7 “default - An atomic property holding a single string that is used to create a default value for the cell in cases where the original string value is an empty string. See Parsing Cells in [tabular-data-model] for more details. If not specified, the default for the default property is the empty string, “”. The value of this property becomes the default annotation for the described column.”

String

1..1

format

- own class -

This defines the format of the physical representation of the value. From https://www.w3.org/TR/tabular-metadata/ 5.11.2 format: “An atomic property that contains either a single string or an object that defines the format of a value of this type, used when parsing a string value as described in Parsing Cells in [tabular-data-model]. The value of this property becomes the format annotation for the described datatype.” See https://www.w3.org/TR/tabular-metadata/ Tabular 6.4.2 “Formats for numeric datatypes” this may include decimalChar, groupChar, pattern “By default, numeric values must be in the formats defined in [xmlschema11-2]. It is not uncommon for numbers within tabular data to be formatted for human consumption, which may involve using commas for decimal points, grouping digits in the number using commas, or adding percent signs to the number.” See https://www.w3.org/TR/tabular-metadata/ Tabular 6.4. Formats for Booleans “ Boolean values may be represented in many ways aside from the standard 1 and 0 or true and false.” See https://www.w3.org/TR/tabular-metadata/ 6.4.4. Formats for dates and times “By default, dates and times are assumed to be in the format defined in [xmlschema11-2]. However dates and times are commonly represented in tabular data in other formats.” See https://www.w3.org/TR/tabular-metadata/ 6.4.5 Formats for durations “Durations MUST be formatted and interpreted as defined in [xmlschema11-2], using the [ISO8601] format -?PnYnMnDTnHnMnS. For example, the duration P1Y1D is used for a year and a day; the duration PT2H30M for 2 hours and 30 minutes.” See https://www.w3.org/TR/tabular-metadata/ 6.4.6 Formats for other types “If the datatype base is not numeric, boolean, a date/time type, or a duration type, the datatype format annotation provides a regular expression for the string values, with syntax and processing defined by [ECMASCRIPT]. If the supplied value is not a valid regular expression, implementations MUST issue a warning and proceed as if no format had been provided.” From DDI3.2 ManagedNumericRepresentation@format “A format for number expressed as a string.” From DDI3.2 ManagedDateTimeRepresentation_DateFieldFormat “Describes the format of the date field, in formats such as YYYY/MM or MM-DD-YY, etc. If this element is omitted, then the format is assumed to be the XML Schema format corresponding to the type attribute value.”

ControlledVocabularyEntry

0..1

identifier

- own class -

Identifier for objects requiring short- or long-lasting referencing and management.

Identifier

0..1

isRequired

- own class -

If the value of this property is True indicates that a value is required for the referenced instance variable. From the W3C Recommendation “Metadata Vocabulary for Tabular Data” (https://www.w3.org/TR/tabular-metadata/) 5.7 Inherited Properties: “required: A boolean atomic property taking a single value which indicates whether the cell value can be null. See Parsing Cells in [tabular-data-model] for more details. The default is false, which means cells can have null values. The value of this property becomes the required annotation for the described column.”

Boolean

0..1

false

length

- own class -

The length in characters of the physical representation of the value. From the W3C Recommendation “Metadata Vocabulary for Tabular Data” (https://www.w3.org/TR/tabular-metadata/) 5.11.2 “length: A numeric atomic property that contains a single integer that is the exact length of the value. The value of this property becomes the length annotation for the described datatype. See Length Constraints in [tabular-data-model] for details.” Corresponds to DDI2.5 var/location/width and DDI 3.2 PhysicalLocation/Width.

Integer

0..1

maximumLength

- own class -

The largest possible value of the length of the physical representation of the value. From the W3C Recommendation “Metadata Vocabulary for Tabular Data” (https://www.w3.org/TR/tabular-metadata/) 5.11.2: “maxLength: A numeric atomic property that contains a single integer that is the maximum length of the value. The value of this property becomes the maximum length annotation for the described datatype. See Length Constraints in [tabular-data-model] for details.”

Integer

0..1

minimumLength

- own class -

The smallest possible value for the length of the physical representation of the value. From the W3C Recommendation “Metadata Vocabulary for Tabular Data” (https://www.w3.org/TR/tabular-metadata/) 5.11.2: “minLength: An atomic property that contains a single integer that is the minimum length of the value. The value of this property becomes the minimum length annotation for the described datatype. See Length Constraints in [tabular-data-model] for details.”

Integer

0..1

nullSequence

- own class -

A string indicating a null value. From the W3C Recommendation “Metadata Vocabulary for Tabular Data” (https://www.w3.org/TR/tabular-metadata/) 4.3: “null: the string or strings which cause the value of cells having string value matching any of these values to be null.” From the same source, Inherited 5.7: “null: An atomic property giving the string or strings used for null values within the data. If the string value of the cell is equal to any one of these values, the cell value is null. See Parsing Cells in [tabular-data-model] for more details. If not specified, the default for the null property is the empty string ‘’. The value of this property becomes the null annotation for the described column.”

String

0..1

numberPattern

- own class -

A pattern description of the format of a numeric value. In W3C part of the datatype format From https://www.w3.org/TR/tabular-metadata/ tabular 6.4.2 pattern: “A number format pattern as defined in [UAX35] http://www.unicode.org/reports/tr35/tr35-31/tr35-numbers.html#Number_Format_Patterns. Implementations MUST recognise number format patterns containing the symbols 0, #, the specified decimalChar (or “.” if unspecified), the specified groupChar (or “,” if unspecified), E, +, % and ‰. Implementations MAY additionally recognise number format patterns containing other special pattern characters defined in [UAX35]. If the supplied value is not a string, or if it contains an invalid number format pattern or uses special pattern characters that the implementation does not recognise, implementations MUST issue a warning and proceed as if the property had not been specified. If the datatype format annotation is a single string, this is interpreted in the same way as if it were an object with a pattern property whose value is that string. If the groupChar is specified, but no pattern is supplied, when parsing the string value of a cell against this format specification, implementations MUST recognise and parse numbers that consist of: an optional + or - sign, … Implementations MAY also recognise numeric values that are in any of the standard-decimal, standard-percent or standard-scientific formats listed in the Unicode Common Locale Data Repository. …”

String

0..1

physicalDataType

- own class -

The base datatype of the physical representation. An integer InstanceVariable might, for example, be stored as a floating point number. From the W3C Recommendation “Metadata Vocabulary for Tabular Data” (https://www.w3.org/TR/tabular-metadata/) Inherited 5.7: “datatype: An atomic property that contains either a single string that is the main datatype of the values of the cell or a datatype description object. If the value of this property is a string, it MUST be the name of one of the built-in datatypes defined in section 5.11.1 Built-in Datatypes and this value is normalized to an object whose base property is the original string value. If it is an object then it describes a more specialized datatype. If a cell contains a sequence (i.e. the separator property is specified and not null) then this property specifies the datatype of each value within that sequence. See 5.11 Datatypes and Parsing Cells in [tabular-data-model] for more details. The normalized value of this property becomes the datatype annotation for the described column.”

ControlledVocabularyEntry

0..1

scale

- own class -

The scale of the number expressed as an integer. A multiplier to be used in combination with the value to determine the measurement. (E.g., a number expressed in 100’s with a value of 5 and a scale of 100 would be 500).

Integer

0..1

Associations#

Associations
Associations#

Direction

Association

Description

Multiplicity of ValueMapping

Package of Other Class

Other Class

Multiplicity of other class

Aggregation Kind

Inherited from

to

InstanceVariable has ValueMapping

0..1

Conceptual

InstanceVariable

0..*

none

own class

from

ValueMapping formats DataPoint

1..1

DataDescription

DataPoint

0..*

none

own class

to

PhysicalSegmentLayout has ValueMapping

0..*

- own package -

PhysicalSegmentLayout

0..*

none

own class

from

ValueMapping uses PhysicalSegmentLocation

Uses a physical segment location to describe where in the physical record a segment representing the data point is. This could be, for example, described as a start position and end position value for characters in a text record via the segment by text extension of physical segment location.

0..*

- own package -

PhysicalSegmentLocation

0..1

none

own class

to

ValueMappingPosition indexes ValueMapping

Assigns a position to a value mapping within a physical segment.

1..1

- own package -

ValueMappingPosition

0..*

none

own class

to

ValueMappingRelationship hasSource ValueMapping

Specialization of source to variable mapping.

0..*

- own package -

ValueMappingRelationship

0..*

none

own class

to

ValueMappingRelationship hasTarget ValueMapping

Specialization of target to variable mapping. Restricts cardinality.

0..*

- own package -

ValueMappingRelationship

0..*

none

own class

Encodings#

Syntax representations / encodings

All syntax representations except the Canonical XMI are provided as reference points for specific implementations, or for use as defaults if sufficient in the form presented.

Fragment for the class ValueMapping (entire model as XMI)

  1<packagedElement xmlns:StandardProfile="http://www.omg.org/spec/UML/20131001/StandardProfile"
  2                  xmlns:uml="http://www.omg.org/spec/UML/20131001"
  3                  xmlns:xmi="http://www.omg.org/spec/XMI/20131001"
  4                  xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping"
  5                  xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping"
  6                  xmi:type="uml:Class">
  7   <ownedComment xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-ownedComment"
  8                  xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-ownedComment"
  9                  xmi:type="uml:Comment">
 10      <annotatedElement xmi:idref="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping"/>
 11      <body>Definition 
 12==========
 13Physical characteristics for the value of an instance variable stored in a data point as part of a physical segment layout.
 14
 15Examples 
 16========
 17A variable "age" might be represented in a file as a string with a maximum length of 5 characters and a number pattern of ##0.0  
 18
 19Explanatory notes 
 20=================
 21An instance variable has details of value domain and data type, but will not have the final details of how a value is physically represented in a data file. A variable for height, for example, may be represented as a real number, but may be represented as a string in multiple ways. The decimal separator might be, for example a period or a comma. The string representing the value of a payment might be preceded by a currency symbol. The same numeric value might be written as "1,234,567" or "1.234567". A missing value might be written as ".", "NA", ".R" or as "R". The value mapping describes how the value of an instance variable is physically expressed. The properties of the value mapping as intended to be compatible with the W3C Metadata Vocabulary for Tabular Data (https://www.w3.org/TR/tabular-metadata/) as well as common programming languages and statistical packages. The 'format' property, for example, can draw from an external controlled vocabulary such as the set of formats for Stata, SPSS, or SAS.</body>
 22   </ownedComment>
 23   <name>ValueMapping</name>
 24   <ownedAttribute xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-decimalPositions"
 25                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-decimalPositions"
 26                    xmi:type="uml:Property">
 27      <ownedComment xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-decimalPositions-ownedComment"
 28                     xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-decimalPositions-ownedComment"
 29                     xmi:type="uml:Comment">
 30         <annotatedElement xmi:idref="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-decimalPositions"/>
 31         <body>The number of decimal positions expressed as an integer. Used when the decimal position is implied (no decimal separator is present) See DDI 3.2 ManagedNumericRepresentation_decimalPositions</body>
 32      </ownedComment>
 33      <lowerValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-decimalPositions-lowerValue"
 34                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-decimalPositions-lowerValue"
 35                   xmi:type="uml:LiteralInteger"/>
 36      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-decimalPositions-upperValue"
 37                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-decimalPositions-upperValue"
 38                   xmi:type="uml:LiteralUnlimitedNatural">
 39         <value>1</value>
 40      </upperValue>
 41      <name>decimalPositions</name>
 42      <type href="http://www.omg.org/spec/UML/20131001/PrimitiveTypes.xmi#Integer"
 43             xmi:type="uml:PrimitiveType"/>
 44   </ownedAttribute>
 45   <ownedAttribute xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-defaultDecimalSeparator"
 46                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-defaultDecimalSeparator"
 47                    xmi:type="uml:Property">
 48      <ownedComment xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-defaultDecimalSeparator-ownedComment"
 49                     xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-defaultDecimalSeparator-ownedComment"
 50                     xmi:type="uml:Comment">
 51         <annotatedElement xmi:idref="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-defaultDecimalSeparator"/>
 52         <body>Default value is "." (period). The character separating the integer part from the fractional part of a decimal or real number. From the W3C Recommendation "Metadata Vocabulary for Tabular Data" (https://www.w3.org/TR/tabular-metadata/) 6.4.2: "decimalChar: A string whose value is used to represent a decimal point within the number. If the supplied value is not a string, implementations MUST issue a warning and proceed as if the property had not been specified."</body>
 53      </ownedComment>
 54      <lowerValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-defaultDecimalSeparator-lowerValue"
 55                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-defaultDecimalSeparator-lowerValue"
 56                   xmi:type="uml:LiteralInteger"/>
 57      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-defaultDecimalSeparator-upperValue"
 58                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-defaultDecimalSeparator-upperValue"
 59                   xmi:type="uml:LiteralUnlimitedNatural">
 60         <value>1</value>
 61      </upperValue>
 62      <name>defaultDecimalSeparator</name>
 63      <defaultValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-defaultDecimalSeparator-defaultValue"
 64                     xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-defaultDecimalSeparator-defaultValue"
 65                     xmi:type="uml:LiteralString">
 66         <value>.</value>
 67      </defaultValue>
 68      <type href="http://www.omg.org/spec/UML/20131001/PrimitiveTypes.xmi#String"
 69             xmi:type="uml:PrimitiveType"/>
 70   </ownedAttribute>
 71   <ownedAttribute xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-defaultDigitGroupSeparator"
 72                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-defaultDigitGroupSeparator"
 73                    xmi:type="uml:Property">
 74      <ownedComment xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-defaultDigitGroupSeparator-ownedComment"
 75                     xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-defaultDigitGroupSeparator-ownedComment"
 76                     xmi:type="uml:Comment">
 77         <annotatedElement xmi:idref="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-defaultDigitGroupSeparator"/>
 78         <body>Default value is null. A character separating groups of digits (for readability). In W3C part of the datatype format From https://www.w3.org/TR/tabular-metadata/ tabular 6.4.2 groupChar: "A string whose value is used to group digits within the number. If the supplied value is not a string, implementations MUST issue a warning and proceed as if the property had not been specified."</body>
 79      </ownedComment>
 80      <lowerValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-defaultDigitGroupSeparator-lowerValue"
 81                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-defaultDigitGroupSeparator-lowerValue"
 82                   xmi:type="uml:LiteralInteger"/>
 83      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-defaultDigitGroupSeparator-upperValue"
 84                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-defaultDigitGroupSeparator-upperValue"
 85                   xmi:type="uml:LiteralUnlimitedNatural">
 86         <value>1</value>
 87      </upperValue>
 88      <name>defaultDigitGroupSeparator</name>
 89      <type href="http://www.omg.org/spec/UML/20131001/PrimitiveTypes.xmi#String"
 90             xmi:type="uml:PrimitiveType"/>
 91   </ownedAttribute>
 92   <ownedAttribute xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-defaultValue"
 93                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-defaultValue"
 94                    xmi:type="uml:Property">
 95      <ownedComment xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-defaultValue-ownedComment"
 96                     xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-defaultValue-ownedComment"
 97                     xmi:type="uml:Comment">
 98         <annotatedElement xmi:idref="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-defaultValue"/>
 99         <body>A default string indicating the value to substitute for an empty string. From https://www.w3.org/TR/tabular-metadata/ Inherited 5.7  "default - An atomic property holding a single string that is used to create a default value for the cell in cases where the original string value is an empty string. See Parsing Cells in [tabular-data-model] for more details. If not specified, the default for the default property is the empty string, "". The value of this property becomes the default annotation for the described column."</body>
100      </ownedComment>
101      <lowerValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-defaultValue-lowerValue"
102                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-defaultValue-lowerValue"
103                   xmi:type="uml:LiteralInteger">
104         <value>1</value>
105      </lowerValue>
106      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-defaultValue-upperValue"
107                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-defaultValue-upperValue"
108                   xmi:type="uml:LiteralUnlimitedNatural">
109         <value>1</value>
110      </upperValue>
111      <name>defaultValue</name>
112      <type href="http://www.omg.org/spec/UML/20131001/PrimitiveTypes.xmi#String"
113             xmi:type="uml:PrimitiveType"/>
114   </ownedAttribute>
115   <ownedAttribute xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-format"
116                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-format"
117                    xmi:type="uml:Property">
118      <ownedComment xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-format-ownedComment"
119                     xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-format-ownedComment"
120                     xmi:type="uml:Comment">
121         <annotatedElement xmi:idref="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-format"/>
122         <body>This defines the format of the physical representation of the value. From https://www.w3.org/TR/tabular-metadata/ 5.11.2 format: "An atomic property that contains either a single string or an object that defines the format of a value of this type, used when parsing a string value as described in Parsing Cells in [tabular-data-model]. The value of this property becomes the format annotation for the described datatype." See https://www.w3.org/TR/tabular-metadata/ Tabular 6.4.2 "Formats for numeric datatypes" this may include decimalChar, groupChar, pattern "By default, numeric values must be in the formats defined in [xmlschema11-2]. It is not uncommon for numbers within tabular data to be formatted for human consumption, which may involve using commas for decimal points, grouping digits in the number using commas, or adding percent signs to the number." See https://www.w3.org/TR/tabular-metadata/ Tabular 6.4. Formats for Booleans " Boolean values may be represented in many ways aside from the standard 1 and 0 or true and false." See https://www.w3.org/TR/tabular-metadata/ 6.4.4. Formats for dates and times "By default, dates and times are assumed to be in the format defined in [xmlschema11-2]. However dates and times are commonly represented in tabular data in other formats." See https://www.w3.org/TR/tabular-metadata/ 6.4.5 Formats for durations "Durations MUST be formatted and interpreted as defined in [xmlschema11-2], using the [ISO8601] format -?PnYnMnDTnHnMnS. For example, the duration P1Y1D is used for a year and a day; the duration PT2H30M for 2 hours and 30 minutes." See https://www.w3.org/TR/tabular-metadata/ 6.4.6 Formats for other types "If the datatype base is not numeric, boolean, a date/time type, or a duration type, the datatype format annotation provides a regular expression for the string values, with syntax and processing defined by [ECMASCRIPT]. If the supplied value is not a valid regular expression, implementations MUST issue a warning and proceed as if no format had been provided." From DDI3.2 ManagedNumericRepresentation@format "A format for number expressed as a string." From DDI3.2 ManagedDateTimeRepresentation_DateFieldFormat "Describes the format of the date field, in formats such as YYYY/MM or MM-DD-YY, etc. If this element is omitted, then the format is assumed to be the XML Schema format corresponding to the type attribute value."</body>
123      </ownedComment>
124      <lowerValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-format-lowerValue"
125                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-format-lowerValue"
126                   xmi:type="uml:LiteralInteger"/>
127      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-format-upperValue"
128                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-format-upperValue"
129                   xmi:type="uml:LiteralUnlimitedNatural">
130         <value>1</value>
131      </upperValue>
132      <name>format</name>
133      <type xmi:idref="DDICDIModels-DDICDILibrary-DataTypes-StructuredDataTypes-ControlledVocabularyEntry"/>
134   </ownedAttribute>
135   <ownedAttribute xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-identifier"
136                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-identifier"
137                    xmi:type="uml:Property">
138      <ownedComment xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-identifier-ownedComment"
139                     xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-identifier-ownedComment"
140                     xmi:type="uml:Comment">
141         <annotatedElement xmi:idref="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-identifier"/>
142         <body>Identifier for objects requiring short- or long-lasting referencing and management.</body>
143      </ownedComment>
144      <lowerValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-identifier-lowerValue"
145                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-identifier-lowerValue"
146                   xmi:type="uml:LiteralInteger"/>
147      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-identifier-upperValue"
148                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-identifier-upperValue"
149                   xmi:type="uml:LiteralUnlimitedNatural">
150         <value>1</value>
151      </upperValue>
152      <name>identifier</name>
153      <isID>true</isID>
154      <type xmi:idref="DDICDIModels-DDICDILibrary-DataTypes-StructuredDataTypes-Identifier"/>
155   </ownedAttribute>
156   <ownedAttribute xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-isRequired"
157                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-isRequired"
158                    xmi:type="uml:Property">
159      <ownedComment xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-isRequired-ownedComment"
160                     xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-isRequired-ownedComment"
161                     xmi:type="uml:Comment">
162         <annotatedElement xmi:idref="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-isRequired"/>
163         <body>If the value of this property is True indicates that a value is required for the referenced instance variable. From the W3C Recommendation "Metadata Vocabulary for Tabular Data" (https://www.w3.org/TR/tabular-metadata/) 5.7 Inherited Properties: "required: A boolean atomic property taking a single value which indicates whether the cell value can be null. See Parsing Cells in [tabular-data-model] for more details. The default is false, which means cells can have null values. The value of this property becomes the required annotation for the described column."</body>
164      </ownedComment>
165      <lowerValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-isRequired-lowerValue"
166                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-isRequired-lowerValue"
167                   xmi:type="uml:LiteralInteger"/>
168      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-isRequired-upperValue"
169                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-isRequired-upperValue"
170                   xmi:type="uml:LiteralUnlimitedNatural">
171         <value>1</value>
172      </upperValue>
173      <name>isRequired</name>
174      <defaultValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-isRequired-defaultValue"
175                     xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-isRequired-defaultValue"
176                     xmi:type="uml:LiteralBoolean">
177         <value>False</value>
178      </defaultValue>
179      <type href="http://www.omg.org/spec/UML/20131001/PrimitiveTypes.xmi#Boolean"
180             xmi:type="uml:PrimitiveType"/>
181   </ownedAttribute>
182   <ownedAttribute xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-length"
183                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-length"
184                    xmi:type="uml:Property">
185      <ownedComment xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-length-ownedComment"
186                     xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-length-ownedComment"
187                     xmi:type="uml:Comment">
188         <annotatedElement xmi:idref="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-length"/>
189         <body>The length in characters of the physical representation of the value. From the W3C Recommendation "Metadata Vocabulary for Tabular Data" (https://www.w3.org/TR/tabular-metadata/)  5.11.2 "length: A numeric atomic property that contains a single integer that is the exact length of the value. The value of this property becomes the length annotation for the described datatype. See Length Constraints in [tabular-data-model] for details." Corresponds to DDI2.5 var/location/width and DDI 3.2 PhysicalLocation/Width.</body>
190      </ownedComment>
191      <lowerValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-length-lowerValue"
192                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-length-lowerValue"
193                   xmi:type="uml:LiteralInteger"/>
194      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-length-upperValue"
195                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-length-upperValue"
196                   xmi:type="uml:LiteralUnlimitedNatural">
197         <value>1</value>
198      </upperValue>
199      <name>length</name>
200      <type href="http://www.omg.org/spec/UML/20131001/PrimitiveTypes.xmi#Integer"
201             xmi:type="uml:PrimitiveType"/>
202   </ownedAttribute>
203   <ownedAttribute xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-maximumLength"
204                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-maximumLength"
205                    xmi:type="uml:Property">
206      <ownedComment xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-maximumLength-ownedComment"
207                     xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-maximumLength-ownedComment"
208                     xmi:type="uml:Comment">
209         <annotatedElement xmi:idref="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-maximumLength"/>
210         <body>The largest possible value of the length of the physical representation of the value. From the W3C Recommendation "Metadata Vocabulary for Tabular Data" (https://www.w3.org/TR/tabular-metadata/) 5.11.2: "maxLength: A numeric atomic property that contains a single integer that is the maximum length of the value. The value of this property becomes the maximum length annotation for the described datatype. See Length Constraints in [tabular-data-model] for details."</body>
211      </ownedComment>
212      <lowerValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-maximumLength-lowerValue"
213                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-maximumLength-lowerValue"
214                   xmi:type="uml:LiteralInteger"/>
215      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-maximumLength-upperValue"
216                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-maximumLength-upperValue"
217                   xmi:type="uml:LiteralUnlimitedNatural">
218         <value>1</value>
219      </upperValue>
220      <name>maximumLength</name>
221      <type href="http://www.omg.org/spec/UML/20131001/PrimitiveTypes.xmi#Integer"
222             xmi:type="uml:PrimitiveType"/>
223   </ownedAttribute>
224   <ownedAttribute xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-minimumLength"
225                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-minimumLength"
226                    xmi:type="uml:Property">
227      <ownedComment xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-minimumLength-ownedComment"
228                     xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-minimumLength-ownedComment"
229                     xmi:type="uml:Comment">
230         <annotatedElement xmi:idref="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-minimumLength"/>
231         <body>The smallest possible value for the length of the physical representation of the value. From the W3C Recommendation "Metadata Vocabulary for Tabular Data" (https://www.w3.org/TR/tabular-metadata/)  5.11.2: "minLength: An atomic property that contains a single integer that is the minimum length of the value. The value of this property becomes the minimum length annotation for the described datatype. See Length Constraints in [tabular-data-model] for details."</body>
232      </ownedComment>
233      <lowerValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-minimumLength-lowerValue"
234                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-minimumLength-lowerValue"
235                   xmi:type="uml:LiteralInteger"/>
236      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-minimumLength-upperValue"
237                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-minimumLength-upperValue"
238                   xmi:type="uml:LiteralUnlimitedNatural">
239         <value>1</value>
240      </upperValue>
241      <name>minimumLength</name>
242      <type href="http://www.omg.org/spec/UML/20131001/PrimitiveTypes.xmi#Integer"
243             xmi:type="uml:PrimitiveType"/>
244   </ownedAttribute>
245   <ownedAttribute xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-nullSequence"
246                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-nullSequence"
247                    xmi:type="uml:Property">
248      <ownedComment xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-nullSequence-ownedComment"
249                     xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-nullSequence-ownedComment"
250                     xmi:type="uml:Comment">
251         <annotatedElement xmi:idref="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-nullSequence"/>
252         <body>A string indicating a null value. From the W3C Recommendation "Metadata Vocabulary for Tabular Data" (https://www.w3.org/TR/tabular-metadata/) 4.3: "null: the string or strings which cause the value of cells having string value matching any of these values to be null." From the same source, Inherited 5.7: "null: An atomic property giving the string or strings used for null values within the data. If the string value of the cell is equal to any one of these values, the cell value is null. See Parsing Cells in [tabular-data-model] for more details. If not specified, the default for the null property is the empty string ''. The value of this property becomes the null annotation for the described column."</body>
253      </ownedComment>
254      <lowerValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-nullSequence-lowerValue"
255                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-nullSequence-lowerValue"
256                   xmi:type="uml:LiteralInteger"/>
257      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-nullSequence-upperValue"
258                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-nullSequence-upperValue"
259                   xmi:type="uml:LiteralUnlimitedNatural">
260         <value>1</value>
261      </upperValue>
262      <name>nullSequence</name>
263      <type href="http://www.omg.org/spec/UML/20131001/PrimitiveTypes.xmi#String"
264             xmi:type="uml:PrimitiveType"/>
265   </ownedAttribute>
266   <ownedAttribute xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-numberPattern"
267                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-numberPattern"
268                    xmi:type="uml:Property">
269      <ownedComment xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-numberPattern-ownedComment"
270                     xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-numberPattern-ownedComment"
271                     xmi:type="uml:Comment">
272         <annotatedElement xmi:idref="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-numberPattern"/>
273         <body>A pattern description of the format of a numeric value. In W3C part of the datatype format From https://www.w3.org/TR/tabular-metadata/ tabular 6.4.2 pattern: "A number format pattern as defined in [UAX35] http://www.unicode.org/reports/tr35/tr35-31/tr35-numbers.html#Number_Format_Patterns. Implementations MUST recognise number format patterns containing the symbols 0, #, the specified decimalChar (or "." if unspecified), the specified groupChar (or "," if unspecified), E, +, % and ‰. Implementations MAY additionally recognise number format patterns containing other special pattern characters defined in [UAX35]. If the supplied value is not a string, or if it contains an invalid number format pattern or uses special pattern characters that the implementation does not recognise, implementations MUST issue a warning and proceed as if the property had not been specified. If the datatype format annotation is a single string, this is interpreted in the same way as if it were an object with a pattern property whose value is that string. If the groupChar is specified, but no pattern is supplied, when parsing the string value of a cell against this format specification, implementations MUST recognise and parse numbers that consist of: an optional + or - sign,   Implementations MAY also recognise numeric values that are in any of the standard-decimal, standard-percent or standard-scientific formats listed in the Unicode Common Locale Data Repository. …"</body>
274      </ownedComment>
275      <lowerValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-numberPattern-lowerValue"
276                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-numberPattern-lowerValue"
277                   xmi:type="uml:LiteralInteger"/>
278      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-numberPattern-upperValue"
279                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-numberPattern-upperValue"
280                   xmi:type="uml:LiteralUnlimitedNatural">
281         <value>1</value>
282      </upperValue>
283      <name>numberPattern</name>
284      <type href="http://www.omg.org/spec/UML/20131001/PrimitiveTypes.xmi#String"
285             xmi:type="uml:PrimitiveType"/>
286   </ownedAttribute>
287   <ownedAttribute xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-ownedAttribute_1"
288                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-ownedAttribute_1"
289                    xmi:type="uml:Property">
290      <lowerValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-ownedAttribute_1-lowerValue"
291                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-ownedAttribute_1-lowerValue"
292                   xmi:type="uml:LiteralInteger"/>
293      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-ownedAttribute_1-upperValue"
294                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-ownedAttribute_1-upperValue"
295                   xmi:type="uml:LiteralUnlimitedNatural">
296         <value>*</value>
297      </upperValue>
298      <association xmi:idref="DDICDIModels-DDICDILibrary-Classes-DataDescription-ValueMapping_formats_DataPoint"/>
299      <type xmi:idref="DDICDIModels-DDICDILibrary-Classes-DataDescription-DataPoint"/>
300   </ownedAttribute>
301   <ownedAttribute xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-ownedAttribute_2"
302                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-ownedAttribute_2"
303                    xmi:type="uml:Property">
304      <lowerValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-ownedAttribute_2-lowerValue"
305                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-ownedAttribute_2-lowerValue"
306                   xmi:type="uml:LiteralInteger"/>
307      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-ownedAttribute_2-upperValue"
308                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-ownedAttribute_2-upperValue"
309                   xmi:type="uml:LiteralUnlimitedNatural">
310         <value>1</value>
311      </upperValue>
312      <association xmi:idref="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping_uses_PhysicalSegmentLocation"/>
313      <type xmi:idref="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalSegmentLocation"/>
314   </ownedAttribute>
315   <ownedAttribute xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-physicalDataType"
316                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-physicalDataType"
317                    xmi:type="uml:Property">
318      <ownedComment xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-physicalDataType-ownedComment"
319                     xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-physicalDataType-ownedComment"
320                     xmi:type="uml:Comment">
321         <annotatedElement xmi:idref="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-physicalDataType"/>
322         <body>The base datatype of the physical representation. An integer InstanceVariable might, for example, be stored as a floating point number. From the W3C Recommendation "Metadata Vocabulary for Tabular Data" (https://www.w3.org/TR/tabular-metadata/) Inherited 5.7: "datatype: An atomic property that contains either a single string that is the main datatype of the values of the cell or a datatype description object. If the value of this property is a string, it MUST be the name of one of the built-in datatypes defined in section 5.11.1 Built-in Datatypes and this value is normalized to an object whose base property is the original string value. If it is an object then it describes a more specialized datatype. If a cell contains a sequence (i.e. the separator property is specified and not null) then this property specifies the datatype of each value within that sequence. See 5.11 Datatypes and Parsing Cells in [tabular-data-model] for more details.  The normalized value of this property becomes the datatype annotation for the described column."</body>
323      </ownedComment>
324      <lowerValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-physicalDataType-lowerValue"
325                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-physicalDataType-lowerValue"
326                   xmi:type="uml:LiteralInteger"/>
327      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-physicalDataType-upperValue"
328                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-physicalDataType-upperValue"
329                   xmi:type="uml:LiteralUnlimitedNatural">
330         <value>1</value>
331      </upperValue>
332      <name>physicalDataType</name>
333      <type xmi:idref="DDICDIModels-DDICDILibrary-DataTypes-StructuredDataTypes-ControlledVocabularyEntry"/>
334   </ownedAttribute>
335   <ownedAttribute xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-scale"
336                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-scale"
337                    xmi:type="uml:Property">
338      <ownedComment xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-scale-ownedComment"
339                     xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-scale-ownedComment"
340                     xmi:type="uml:Comment">
341         <annotatedElement xmi:idref="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-scale"/>
342         <body>The scale of the number expressed as an integer. A multiplier to be used in combination with the value to determine the measurement. (E.g., a number expressed in 100's with a value of 5 and a scale of 100 would be 500).</body>
343      </ownedComment>
344      <lowerValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-scale-lowerValue"
345                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-scale-lowerValue"
346                   xmi:type="uml:LiteralInteger"/>
347      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-ValueMapping-scale-upperValue"
348                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#ValueMapping-scale-upperValue"
349                   xmi:type="uml:LiteralUnlimitedNatural">
350         <value>1</value>
351      </upperValue>
352      <name>scale</name>
353      <type href="http://www.omg.org/spec/UML/20131001/PrimitiveTypes.xmi#Integer"
354             xmi:type="uml:PrimitiveType"/>
355   </ownedAttribute>
356</packagedElement>

Fragment for the class ValueMapping (entire XML Schema)

  1<xs:element name="ValueMapping"
  2            type="ValueMappingXsdType"
  3            xml:id="ValueMapping">
  4  <!-- based on the UML class DDICDIModels::DDICDILibrary::Classes::FormatDescription::ValueMapping -->
  5  <xs:annotation>
  6    <xs:documentation>Definition 
  7          ==========
  8          Physical characteristics for the value of an instance variable stored in a data point as part of a physical segment layout.
  9          
 10          Examples 
 11          ========
 12          A variable "age" might be represented in a file as a string with a maximum length of 5 characters and a number pattern of ##0.0  
 13          
 14          Explanatory notes 
 15          =================
 16          An instance variable has details of value domain and data type, but will not have the final details of how a value is physically represented in a data file. A variable for height, for example, may be represented as a real number, but may be represented as a string in multiple ways. The decimal separator might be, for example a period or a comma. The string representing the value of a payment might be preceded by a currency symbol. The same numeric value might be written as "1,234,567" or "1.234567". A missing value might be written as ".", "NA", ".R" or as "R". The value mapping describes how the value of an instance variable is physically expressed. The properties of the value mapping as intended to be compatible with the W3C Metadata Vocabulary for Tabular Data (https://www.w3.org/TR/tabular-metadata/) as well as common programming languages and statistical packages. The 'format' property, for example, can draw from an external controlled vocabulary such as the set of formats for Stata, SPSS, or SAS.</xs:documentation>
 17  </xs:annotation>
 18</xs:element>
 19<xs:complexType name="ValueMappingXsdType"
 20                xml:id="ValueMappingXsdType">
 21  <xs:annotation>
 22    <xs:documentation>Definition 
 23          ==========
 24          Physical characteristics for the value of an instance variable stored in a data point as part of a physical segment layout.
 25          
 26          Examples 
 27          ========
 28          A variable "age" might be represented in a file as a string with a maximum length of 5 characters and a number pattern of ##0.0  
 29          
 30          Explanatory notes 
 31          =================
 32          An instance variable has details of value domain and data type, but will not have the final details of how a value is physically represented in a data file. A variable for height, for example, may be represented as a real number, but may be represented as a string in multiple ways. The decimal separator might be, for example a period or a comma. The string representing the value of a payment might be preceded by a currency symbol. The same numeric value might be written as "1,234,567" or "1.234567". A missing value might be written as ".", "NA", ".R" or as "R". The value mapping describes how the value of an instance variable is physically expressed. The properties of the value mapping as intended to be compatible with the W3C Metadata Vocabulary for Tabular Data (https://www.w3.org/TR/tabular-metadata/) as well as common programming languages and statistical packages. The 'format' property, for example, can draw from an external controlled vocabulary such as the set of formats for Stata, SPSS, or SAS.</xs:documentation>
 33  </xs:annotation>
 34  <xs:sequence>
 35    <xs:element name="decimalPositions"
 36                type="xs:integer"
 37                minOccurs="0"
 38                maxOccurs="1"
 39                xml:id="ValueMapping-decimalPositions">
 40      <xs:annotation>
 41        <xs:documentation>The number of decimal positions expressed as an integer. Used when the decimal position is implied (no decimal separator is present) See DDI 3.2 ManagedNumericRepresentation_decimalPositions</xs:documentation>
 42      </xs:annotation>
 43    </xs:element>
 44    <xs:element name="defaultDecimalSeparator"
 45                type="xs:string"
 46                minOccurs="0"
 47                maxOccurs="1"
 48                xml:id="ValueMapping-defaultDecimalSeparator">
 49      <xs:annotation>
 50        <xs:documentation>Default value is "." (period). The character separating the integer part from the fractional part of a decimal or real number. From the W3C Recommendation "Metadata Vocabulary for Tabular Data" (https://www.w3.org/TR/tabular-metadata/) 6.4.2: "decimalChar: A string whose value is used to represent a decimal point within the number. If the supplied value is not a string, implementations MUST issue a warning and proceed as if the property had not been specified."</xs:documentation>
 51      </xs:annotation>
 52    </xs:element>
 53    <xs:element name="defaultDigitGroupSeparator"
 54                type="xs:string"
 55                minOccurs="0"
 56                maxOccurs="1"
 57                xml:id="ValueMapping-defaultDigitGroupSeparator">
 58      <xs:annotation>
 59        <xs:documentation>Default value is null. A character separating groups of digits (for readability). In W3C part of the datatype format From https://www.w3.org/TR/tabular-metadata/ tabular 6.4.2 groupChar: "A string whose value is used to group digits within the number. If the supplied value is not a string, implementations MUST issue a warning and proceed as if the property had not been specified."</xs:documentation>
 60      </xs:annotation>
 61    </xs:element>
 62    <xs:element name="defaultValue"
 63                type="xs:string"
 64                minOccurs="1"
 65                maxOccurs="1"
 66                xml:id="ValueMapping-defaultValue">
 67      <xs:annotation>
 68        <xs:documentation>A default string indicating the value to substitute for an empty string. From https://www.w3.org/TR/tabular-metadata/ Inherited 5.7  "default - An atomic property holding a single string that is used to create a default value for the cell in cases where the original string value is an empty string. See Parsing Cells in [tabular-data-model] for more details. If not specified, the default for the default property is the empty string, "". The value of this property becomes the default annotation for the described column."</xs:documentation>
 69      </xs:annotation>
 70    </xs:element>
 71    <xs:element name="format"
 72                type="ControlledVocabularyEntryXsdType"
 73                minOccurs="0"
 74                maxOccurs="1"
 75                xml:id="ValueMapping-format">
 76      <xs:annotation>
 77        <xs:documentation>This defines the format of the physical representation of the value. From https://www.w3.org/TR/tabular-metadata/ 5.11.2 format: "An atomic property that contains either a single string or an object that defines the format of a value of this type, used when parsing a string value as described in Parsing Cells in [tabular-data-model]. The value of this property becomes the format annotation for the described datatype." See https://www.w3.org/TR/tabular-metadata/ Tabular 6.4.2 "Formats for numeric datatypes" this may include decimalChar, groupChar, pattern "By default, numeric values must be in the formats defined in [xmlschema11-2]. It is not uncommon for numbers within tabular data to be formatted for human consumption, which may involve using commas for decimal points, grouping digits in the number using commas, or adding percent signs to the number." See https://www.w3.org/TR/tabular-metadata/ Tabular 6.4. Formats for Booleans " Boolean values may be represented in many ways aside from the standard 1 and 0 or true and false." See https://www.w3.org/TR/tabular-metadata/ 6.4.4. Formats for dates and times "By default, dates and times are assumed to be in the format defined in [xmlschema11-2]. However dates and times are commonly represented in tabular data in other formats." See https://www.w3.org/TR/tabular-metadata/ 6.4.5 Formats for durations "Durations MUST be formatted and interpreted as defined in [xmlschema11-2], using the [ISO8601] format -?PnYnMnDTnHnMnS. For example, the duration P1Y1D is used for a year and a day; the duration PT2H30M for 2 hours and 30 minutes." See https://www.w3.org/TR/tabular-metadata/ 6.4.6 Formats for other types "If the datatype base is not numeric, boolean, a date/time type, or a duration type, the datatype format annotation provides a regular expression for the string values, with syntax and processing defined by [ECMASCRIPT]. If the supplied value is not a valid regular expression, implementations MUST issue a warning and proceed as if no format had been provided." From DDI3.2 ManagedNumericRepresentation@format "A format for number expressed as a string." From DDI3.2 ManagedDateTimeRepresentation_DateFieldFormat "Describes the format of the date field, in formats such as YYYY/MM or MM-DD-YY, etc. If this element is omitted, then the format is assumed to be the XML Schema format corresponding to the type attribute value."</xs:documentation>
 78      </xs:annotation>
 79    </xs:element>
 80    <xs:element name="identifier"
 81                type="IdentifierXsdType"
 82                minOccurs="0"
 83                maxOccurs="1"
 84                xml:id="ValueMapping-identifier">
 85      <xs:annotation>
 86        <xs:documentation>Identifier for objects requiring short- or long-lasting referencing and management.</xs:documentation>
 87      </xs:annotation>
 88    </xs:element>
 89    <xs:element name="isRequired"
 90                type="xs:boolean"
 91                minOccurs="0"
 92                maxOccurs="1"
 93                xml:id="ValueMapping-isRequired">
 94      <xs:annotation>
 95        <xs:documentation>If the value of this property is True indicates that a value is required for the referenced instance variable. From the W3C Recommendation "Metadata Vocabulary for Tabular Data" (https://www.w3.org/TR/tabular-metadata/) 5.7 Inherited Properties: "required: A boolean atomic property taking a single value which indicates whether the cell value can be null. See Parsing Cells in [tabular-data-model] for more details. The default is false, which means cells can have null values. The value of this property becomes the required annotation for the described column."</xs:documentation>
 96      </xs:annotation>
 97    </xs:element>
 98    <xs:element name="length"
 99                type="xs:integer"
100                minOccurs="0"
101                maxOccurs="1"
102                xml:id="ValueMapping-length">
103      <xs:annotation>
104        <xs:documentation>The length in characters of the physical representation of the value. From the W3C Recommendation "Metadata Vocabulary for Tabular Data" (https://www.w3.org/TR/tabular-metadata/)  5.11.2 "length: A numeric atomic property that contains a single integer that is the exact length of the value. The value of this property becomes the length annotation for the described datatype. See Length Constraints in [tabular-data-model] for details." Corresponds to DDI2.5 var/location/width and DDI 3.2 PhysicalLocation/Width.</xs:documentation>
105      </xs:annotation>
106    </xs:element>
107    <xs:element name="maximumLength"
108                type="xs:integer"
109                minOccurs="0"
110                maxOccurs="1"
111                xml:id="ValueMapping-maximumLength">
112      <xs:annotation>
113        <xs:documentation>The largest possible value of the length of the physical representation of the value. From the W3C Recommendation "Metadata Vocabulary for Tabular Data" (https://www.w3.org/TR/tabular-metadata/) 5.11.2: "maxLength: A numeric atomic property that contains a single integer that is the maximum length of the value. The value of this property becomes the maximum length annotation for the described datatype. See Length Constraints in [tabular-data-model] for details."</xs:documentation>
114      </xs:annotation>
115    </xs:element>
116    <xs:element name="minimumLength"
117                type="xs:integer"
118                minOccurs="0"
119                maxOccurs="1"
120                xml:id="ValueMapping-minimumLength">
121      <xs:annotation>
122        <xs:documentation>The smallest possible value for the length of the physical representation of the value. From the W3C Recommendation "Metadata Vocabulary for Tabular Data" (https://www.w3.org/TR/tabular-metadata/)  5.11.2: "minLength: An atomic property that contains a single integer that is the minimum length of the value. The value of this property becomes the minimum length annotation for the described datatype. See Length Constraints in [tabular-data-model] for details."</xs:documentation>
123      </xs:annotation>
124    </xs:element>
125    <xs:element name="nullSequence"
126                type="xs:string"
127                minOccurs="0"
128                maxOccurs="1"
129                xml:id="ValueMapping-nullSequence">
130      <xs:annotation>
131        <xs:documentation>A string indicating a null value. From the W3C Recommendation "Metadata Vocabulary for Tabular Data" (https://www.w3.org/TR/tabular-metadata/) 4.3: "null: the string or strings which cause the value of cells having string value matching any of these values to be null." From the same source, Inherited 5.7: "null: An atomic property giving the string or strings used for null values within the data. If the string value of the cell is equal to any one of these values, the cell value is null. See Parsing Cells in [tabular-data-model] for more details. If not specified, the default for the null property is the empty string ''. The value of this property becomes the null annotation for the described column."</xs:documentation>
132      </xs:annotation>
133    </xs:element>
134    <xs:element name="numberPattern"
135                type="xs:string"
136                minOccurs="0"
137                maxOccurs="1"
138                xml:id="ValueMapping-numberPattern">
139      <xs:annotation>
140        <xs:documentation>A pattern description of the format of a numeric value. In W3C part of the datatype format From https://www.w3.org/TR/tabular-metadata/ tabular 6.4.2 pattern: "A number format pattern as defined in [UAX35] http://www.unicode.org/reports/tr35/tr35-31/tr35-numbers.html#Number_Format_Patterns. Implementations MUST recognise number format patterns containing the symbols 0, #, the specified decimalChar (or "." if unspecified), the specified groupChar (or "," if unspecified), E, +, % and ‰. Implementations MAY additionally recognise number format patterns containing other special pattern characters defined in [UAX35]. If the supplied value is not a string, or if it contains an invalid number format pattern or uses special pattern characters that the implementation does not recognise, implementations MUST issue a warning and proceed as if the property had not been specified. If the datatype format annotation is a single string, this is interpreted in the same way as if it were an object with a pattern property whose value is that string. If the groupChar is specified, but no pattern is supplied, when parsing the string value of a cell against this format specification, implementations MUST recognise and parse numbers that consist of: an optional + or - sign,   Implementations MAY also recognise numeric values that are in any of the standard-decimal, standard-percent or standard-scientific formats listed in the Unicode Common Locale Data Repository. …"</xs:documentation>
141      </xs:annotation>
142    </xs:element>
143    <xs:element name="physicalDataType"
144                type="ControlledVocabularyEntryXsdType"
145                minOccurs="0"
146                maxOccurs="1"
147                xml:id="ValueMapping-physicalDataType">
148      <xs:annotation>
149        <xs:documentation>The base datatype of the physical representation. An integer InstanceVariable might, for example, be stored as a floating point number. From the W3C Recommendation "Metadata Vocabulary for Tabular Data" (https://www.w3.org/TR/tabular-metadata/) Inherited 5.7: "datatype: An atomic property that contains either a single string that is the main datatype of the values of the cell or a datatype description object. If the value of this property is a string, it MUST be the name of one of the built-in datatypes defined in section 5.11.1 Built-in Datatypes and this value is normalized to an object whose base property is the original string value. If it is an object then it describes a more specialized datatype. If a cell contains a sequence (i.e. the separator property is specified and not null) then this property specifies the datatype of each value within that sequence. See 5.11 Datatypes and Parsing Cells in [tabular-data-model] for more details.  The normalized value of this property becomes the datatype annotation for the described column."</xs:documentation>
150      </xs:annotation>
151    </xs:element>
152    <xs:element name="scale"
153                type="xs:integer"
154                minOccurs="0"
155                maxOccurs="1"
156                xml:id="ValueMapping-scale">
157      <xs:annotation>
158        <xs:documentation>The scale of the number expressed as an integer. A multiplier to be used in combination with the value to determine the measurement. (E.g., a number expressed in 100's with a value of 5 and a scale of 100 would be 500).</xs:documentation>
159      </xs:annotation>
160    </xs:element>
161    <xs:element name="ValueMapping_formats_DataPoint"
162                minOccurs="0"
163                maxOccurs="unbounded"
164                xml:id="ValueMapping_formats_DataPoint">
165      <xs:annotation>
166        <xs:documentation></xs:documentation>
167      </xs:annotation>
168      <xs:complexType>
169        <xs:complexContent>
170          <xs:restriction base="AssociationReferenceXsdType">
171            <xs:sequence>
172              <xs:element name="ddiReference"
173                          type="InternationalRegistrationDataIdentifierXsdType"
174                          minOccurs="0"
175                          maxOccurs="1"
176                          xml:id="ValueMapping_formats_DataPoint-ddiReference"/>
177              <xs:element name="validType"
178                          minOccurs="1"
179                          maxOccurs="1"
180                          xml:id="ValueMapping_formats_DataPoint-validType">
181                <xs:simpleType>
182                  <xs:restriction base="xs:NMTOKEN">
183                    <xs:enumeration value="DataPoint"/>
184                  </xs:restriction>
185                </xs:simpleType>
186              </xs:element>
187            </xs:sequence>
188          </xs:restriction>
189        </xs:complexContent>
190      </xs:complexType>
191    </xs:element>
192    <xs:element name="ValueMapping_uses_PhysicalSegmentLocation"
193                minOccurs="0"
194                maxOccurs="1"
195                xml:id="ValueMapping_uses_PhysicalSegmentLocation">
196      <xs:annotation>
197        <xs:documentation>Uses a physical segment location to describe where in the physical record a segment representing the data point is. This could be, for example, described as a start position and end position value for characters in a text record via the segment by text extension of physical segment location.</xs:documentation>
198      </xs:annotation>
199      <xs:complexType>
200        <xs:complexContent>
201          <xs:restriction base="AssociationReferenceXsdType">
202            <xs:sequence>
203              <xs:element name="ddiReference"
204                          type="InternationalRegistrationDataIdentifierXsdType"
205                          minOccurs="0"
206                          maxOccurs="1"
207                          xml:id="ValueMapping_uses_PhysicalSegmentLocation-ddiReference"/>
208              <xs:element name="validType"
209                          minOccurs="0"
210                          maxOccurs="unbounded"
211                          xml:id="ValueMapping_uses_PhysicalSegmentLocation-validType">
212                <xs:simpleType>
213                  <xs:restriction base="xs:NMTOKEN">
214                    <xs:enumeration value="PhysicalSegmentLocation"/>
215                    <xs:enumeration value="SegmentByText"/>
216                  </xs:restriction>
217                </xs:simpleType>
218              </xs:element>
219            </xs:sequence>
220          </xs:restriction>
221        </xs:complexContent>
222      </xs:complexType>
223    </xs:element>
224  </xs:sequence>
225</xs:complexType>

Fragment for the class ValueMapping (entire JSON Schema)

  1"cls-ValueMapping": {
  2  "description": "http://ddialliance.org/Specification/DDI-CDI/1.0/RDF/ValueMapping",
  3  "type": "object",
  4  "properties": {
  5    "@context": {
  6      "$ref": "#/defs/at-context"
  7    },
  8    "@id": {
  9      "type": "string",
 10      "format": "iri-reference"
 11    },
 12    "@type": {
 13      "const": "ValueMapping"
 14    },
 15    "decimalPositions": {
 16      "$comment": "cardinality 0..1 – from cdi:ValueMapping",
 17      "$ref": "#/defs/xsd:integer"
 18    },
 19    "defaultDecimalSeparator": {
 20      "$comment": "cardinality 0..1 – from cdi:ValueMapping",
 21      "$ref": "#/defs/xsd:string"
 22    },
 23    "defaultDigitGroupSeparator": {
 24      "$comment": "cardinality 0..1 – from cdi:ValueMapping",
 25      "$ref": "#/defs/xsd:string"
 26    },
 27    "defaultValue": {
 28      "$comment": "cardinality 1..1 – from cdi:ValueMapping",
 29      "$ref": "#/defs/xsd:string"
 30    },
 31    "format": {
 32      "$comment": "cardinality 0..1 – from cdi:ValueMapping",
 33      "$ref": "#/defs/dt-ControlledVocabularyEntry"
 34    },
 35    "identifier": {
 36      "$comment": "cardinality 0..1 – from cdi:ValueMapping",
 37      "$ref": "#/defs/dt-Identifier"
 38    },
 39    "isRequired": {
 40      "$comment": "cardinality 0..1 – from cdi:ValueMapping",
 41      "$ref": "#/defs/xsd:boolean"
 42    },
 43    "length": {
 44      "$comment": "cardinality 0..1 – from cdi:ValueMapping",
 45      "$ref": "#/defs/xsd:integer"
 46    },
 47    "maximumLength": {
 48      "$comment": "cardinality 0..1 – from cdi:ValueMapping",
 49      "$ref": "#/defs/xsd:integer"
 50    },
 51    "minimumLength": {
 52      "$comment": "cardinality 0..1 – from cdi:ValueMapping",
 53      "$ref": "#/defs/xsd:integer"
 54    },
 55    "nullSequence": {
 56      "$comment": "cardinality 0..1 – from cdi:ValueMapping",
 57      "$ref": "#/defs/xsd:string"
 58    },
 59    "numberPattern": {
 60      "$comment": "cardinality 0..1 – from cdi:ValueMapping",
 61      "$ref": "#/defs/xsd:string"
 62    },
 63    "physicalDataType": {
 64      "$comment": "cardinality 0..1 – from cdi:ValueMapping",
 65      "$ref": "#/defs/dt-ControlledVocabularyEntry"
 66    },
 67    "scale": {
 68      "$comment": "cardinality 0..1 – from cdi:ValueMapping",
 69      "$ref": "#/defs/xsd:integer"
 70    },
 71    "formats": {
 72      "description": "ValueMapping_formats_DataPoint",
 73      "$comment": "cardinality 0..-1",
 74      "anyOf": [
 75        {
 76          "$ref": "#/defs/target-DataPoint"
 77        },
 78        {
 79          "type": "array",
 80          "items": {
 81            "$ref": "#/defs/target-DataPoint"
 82          }
 83        }
 84      ]
 85    },
 86    "uses_PhysicalSegmentLocation": {
 87      "description": "ValueMapping_uses_PhysicalSegmentLocation",
 88      "$comment": "cardinality 0..1",
 89       "$ref": "#/defs/target-PhysicalSegmentLocation"
 90    },
 91    "has_ValueMapping_OF_InstanceVariable": {
 92      "description": "InstanceVariable_has_ValueMapping",
 93      "$comment": "cardinality 0..-1",
 94      "anyOf": [
 95        {
 96          "$ref": "#/defs/target-InstanceVariable"
 97        },
 98        {
 99          "type": "array",
100          "items": {
101            "$ref": "#/defs/target-InstanceVariable"
102          }
103        }
104      ]
105    },
106    "has_ValueMapping_OF_PhysicalSegmentLayout": {
107      "description": "PhysicalSegmentLayout_has_ValueMapping",
108      "$comment": "cardinality 0..-1",
109      "anyOf": [
110        {
111          "$ref": "#/defs/target-PhysicalSegmentLayout"
112        },
113        {
114          "type": "array",
115          "items": {
116            "$ref": "#/defs/target-PhysicalSegmentLayout"
117          }
118        }
119      ]
120    },
121    "indexes_OF_ValueMappingPosition": {
122      "description": "ValueMappingPosition_indexes_ValueMapping",
123      "$comment": "cardinality 0..-1",
124      "anyOf": [
125        {
126          "$ref": "#/defs/target-ValueMappingPosition"
127        },
128        {
129          "type": "array",
130          "items": {
131            "$ref": "#/defs/target-ValueMappingPosition"
132          }
133        }
134      ]
135    },
136    "hasSource_OF_ValueMappingRelationship": {
137      "description": "ValueMappingRelationship_hasSource_ValueMapping",
138      "$comment": "cardinality 0..-1",
139      "anyOf": [
140        {
141          "$ref": "#/defs/target-ValueMappingRelationship"
142        },
143        {
144          "type": "array",
145          "items": {
146            "$ref": "#/defs/target-ValueMappingRelationship"
147          }
148        }
149      ]
150    },
151    "hasTarget_OF_ValueMappingRelationship": {
152      "description": "ValueMappingRelationship_hasTarget_ValueMapping",
153      "$comment": "cardinality 0..-1",
154      "anyOf": [
155        {
156          "$ref": "#/defs/target-ValueMappingRelationship"
157        },
158        {
159          "type": "array",
160          "items": {
161            "$ref": "#/defs/target-ValueMappingRelationship"
162          }
163        }
164      ]
165    },
166    "sameAs": {
167      "$ref": "#/defs/owl:sameAs"
168    }
169  },
170  "required": ["defaultValue","@type"],
171  "additionalProperties": false
172},
173"target-ValueMapping": {
174  "description": "all subclasses of http://ddialliance.org/Specification/DDI-CDI/1.0/RDF/ValueMapping",
175  "anyOf": [
176    { "$ref": "#/defs/cls-ValueMapping" },
177    { "type": "string", "format": "iri-reference" }
178  ]
179},

Fragment for the class ValueMapping (main ontology)

  1# class ValueMapping
  2# based on the UML class DDICDIModels::DDICDILibrary::Classes::FormatDescription::ValueMapping
  3cdi:ValueMapping
  4  a rdfs:Class, owl:Class, ucmis:Class;
  5  rdfs:label "ValueMapping";
  6  rdfs:comment "Definition \n==========\nPhysical characteristics for the value of an instance variable stored in a data point as part of a physical segment layout.\n\nExamples \n========\nA variable \"age\" might be represented in a file as a string with a maximum length of 5 characters and a number pattern of ##0.0  \n\nExplanatory notes \n=================\nAn instance variable has details of value domain and data type, but will not have the final details of how a value is physically represented in a data file. A variable for height, for example, may be represented as a real number, but may be represented as a string in multiple ways. The decimal separator might be, for example a period or a comma. The string representing the value of a payment might be preceded by a currency symbol. The same numeric value might be written as \"1,234,567\" or \"1.234567\". A missing value might be written as \".\", \"NA\", \".R\" or as \"R\". The value mapping describes how the value of an instance variable is physically expressed. The properties of the value mapping as intended to be compatible with the W3C Metadata Vocabulary for Tabular Data (https://www.w3.org/TR/tabular-metadata/) as well as common programming languages and statistical packages. The 'format' property, for example, can draw from an external controlled vocabulary such as the set of formats for Stata, SPSS, or SAS."@en;
  7  
  8.
  9
 10cdi:ValueMapping-decimalPositions
 11  a rdf:Property, owl:DatatypeProperty, ucmis:Attribute;
 12  rdfs:label "decimalPositions";
 13  rdfs:comment "The number of decimal positions expressed as an integer. Used when the decimal position is implied (no decimal separator is present) See DDI 3.2 ManagedNumericRepresentation_decimalPositions"@en;
 14  rdfs:domain cdi:ValueMapping;
 15  rdfs:range xsd:integer;
 16.
 17
 18cdi:ValueMapping-defaultDecimalSeparator
 19  a rdf:Property, owl:DatatypeProperty, ucmis:Attribute;
 20  rdfs:label "defaultDecimalSeparator";
 21  rdfs:comment "Default value is \".\" (period). The character separating the integer part from the fractional part of a decimal or real number. From the W3C Recommendation \"Metadata Vocabulary for Tabular Data\" (https://www.w3.org/TR/tabular-metadata/) 6.4.2: \"decimalChar: A string whose value is used to represent a decimal point within the number. If the supplied value is not a string, implementations MUST issue a warning and proceed as if the property had not been specified.\""@en;
 22  rdfs:domain cdi:ValueMapping;
 23  rdfs:range xsd:string;
 24.
 25
 26cdi:ValueMapping-defaultDigitGroupSeparator
 27  a rdf:Property, owl:DatatypeProperty, ucmis:Attribute;
 28  rdfs:label "defaultDigitGroupSeparator";
 29  rdfs:comment "Default value is null. A character separating groups of digits (for readability). In W3C part of the datatype format From https://www.w3.org/TR/tabular-metadata/ tabular 6.4.2 groupChar: \"A string whose value is used to group digits within the number. If the supplied value is not a string, implementations MUST issue a warning and proceed as if the property had not been specified.\""@en;
 30  rdfs:domain cdi:ValueMapping;
 31  rdfs:range xsd:string;
 32.
 33
 34cdi:ValueMapping-defaultValue
 35  a rdf:Property, owl:DatatypeProperty, ucmis:Attribute;
 36  rdfs:label "defaultValue";
 37  rdfs:comment "A default string indicating the value to substitute for an empty string. From https://www.w3.org/TR/tabular-metadata/ Inherited 5.7  \"default - An atomic property holding a single string that is used to create a default value for the cell in cases where the original string value is an empty string. See Parsing Cells in [tabular-data-model] for more details. If not specified, the default for the default property is the empty string, \"\". The value of this property becomes the default annotation for the described column.\""@en;
 38  rdfs:domain cdi:ValueMapping;
 39  rdfs:range xsd:string;
 40.
 41
 42cdi:ValueMapping-format
 43  a rdf:Property, owl:ObjectProperty, ucmis:Attribute;
 44  rdfs:label "format";
 45  rdfs:comment "This defines the format of the physical representation of the value. From https://www.w3.org/TR/tabular-metadata/ 5.11.2 format: \"An atomic property that contains either a single string or an object that defines the format of a value of this type, used when parsing a string value as described in Parsing Cells in [tabular-data-model]. The value of this property becomes the format annotation for the described datatype.\" See https://www.w3.org/TR/tabular-metadata/ Tabular 6.4.2 \"Formats for numeric datatypes\" this may include decimalChar, groupChar, pattern \"By default, numeric values must be in the formats defined in [xmlschema11-2]. It is not uncommon for numbers within tabular data to be formatted for human consumption, which may involve using commas for decimal points, grouping digits in the number using commas, or adding percent signs to the number.\" See https://www.w3.org/TR/tabular-metadata/ Tabular 6.4. Formats for Booleans \" Boolean values may be represented in many ways aside from the standard 1 and 0 or true and false.\" See https://www.w3.org/TR/tabular-metadata/ 6.4.4. Formats for dates and times \"By default, dates and times are assumed to be in the format defined in [xmlschema11-2]. However dates and times are commonly represented in tabular data in other formats.\" See https://www.w3.org/TR/tabular-metadata/ 6.4.5 Formats for durations \"Durations MUST be formatted and interpreted as defined in [xmlschema11-2], using the [ISO8601] format -?PnYnMnDTnHnMnS. For example, the duration P1Y1D is used for a year and a day; the duration PT2H30M for 2 hours and 30 minutes.\" See https://www.w3.org/TR/tabular-metadata/ 6.4.6 Formats for other types \"If the datatype base is not numeric, boolean, a date/time type, or a duration type, the datatype format annotation provides a regular expression for the string values, with syntax and processing defined by [ECMASCRIPT]. If the supplied value is not a valid regular expression, implementations MUST issue a warning and proceed as if no format had been provided.\" From DDI3.2 ManagedNumericRepresentation@format \"A format for number expressed as a string.\" From DDI3.2 ManagedDateTimeRepresentation_DateFieldFormat \"Describes the format of the date field, in formats such as YYYY/MM or MM-DD-YY, etc. If this element is omitted, then the format is assumed to be the XML Schema format corresponding to the type attribute value.\""@en;
 46  rdfs:domain cdi:ValueMapping;
 47  rdfs:range cdi:ControlledVocabularyEntry;
 48.
 49
 50cdi:ValueMapping-identifier
 51  a rdf:Property, owl:ObjectProperty, ucmis:Attribute;
 52  rdfs:label "identifier";
 53  rdfs:comment "Identifier for objects requiring short- or long-lasting referencing and management."@en;
 54  rdfs:domain cdi:ValueMapping;
 55  rdfs:range cdi:Identifier;
 56.
 57
 58cdi:ValueMapping-isRequired
 59  a rdf:Property, owl:DatatypeProperty, ucmis:Attribute;
 60  rdfs:label "isRequired";
 61  rdfs:comment "If the value of this property is True indicates that a value is required for the referenced instance variable. From the W3C Recommendation \"Metadata Vocabulary for Tabular Data\" (https://www.w3.org/TR/tabular-metadata/) 5.7 Inherited Properties: \"required: A boolean atomic property taking a single value which indicates whether the cell value can be null. See Parsing Cells in [tabular-data-model] for more details. The default is false, which means cells can have null values. The value of this property becomes the required annotation for the described column.\""@en;
 62  rdfs:domain cdi:ValueMapping;
 63  rdfs:range xsd:boolean;
 64.
 65
 66cdi:ValueMapping-length
 67  a rdf:Property, owl:DatatypeProperty, ucmis:Attribute;
 68  rdfs:label "length";
 69  rdfs:comment "The length in characters of the physical representation of the value. From the W3C Recommendation \"Metadata Vocabulary for Tabular Data\" (https://www.w3.org/TR/tabular-metadata/)  5.11.2 \"length: A numeric atomic property that contains a single integer that is the exact length of the value. The value of this property becomes the length annotation for the described datatype. See Length Constraints in [tabular-data-model] for details.\" Corresponds to DDI2.5 var/location/width and DDI 3.2 PhysicalLocation/Width."@en;
 70  rdfs:domain cdi:ValueMapping;
 71  rdfs:range xsd:integer;
 72.
 73
 74cdi:ValueMapping-maximumLength
 75  a rdf:Property, owl:DatatypeProperty, ucmis:Attribute;
 76  rdfs:label "maximumLength";
 77  rdfs:comment "The largest possible value of the length of the physical representation of the value. From the W3C Recommendation \"Metadata Vocabulary for Tabular Data\" (https://www.w3.org/TR/tabular-metadata/) 5.11.2: \"maxLength: A numeric atomic property that contains a single integer that is the maximum length of the value. The value of this property becomes the maximum length annotation for the described datatype. See Length Constraints in [tabular-data-model] for details.\""@en;
 78  rdfs:domain cdi:ValueMapping;
 79  rdfs:range xsd:integer;
 80.
 81
 82cdi:ValueMapping-minimumLength
 83  a rdf:Property, owl:DatatypeProperty, ucmis:Attribute;
 84  rdfs:label "minimumLength";
 85  rdfs:comment "The smallest possible value for the length of the physical representation of the value. From the W3C Recommendation \"Metadata Vocabulary for Tabular Data\" (https://www.w3.org/TR/tabular-metadata/)  5.11.2: \"minLength: An atomic property that contains a single integer that is the minimum length of the value. The value of this property becomes the minimum length annotation for the described datatype. See Length Constraints in [tabular-data-model] for details.\""@en;
 86  rdfs:domain cdi:ValueMapping;
 87  rdfs:range xsd:integer;
 88.
 89
 90cdi:ValueMapping-nullSequence
 91  a rdf:Property, owl:DatatypeProperty, ucmis:Attribute;
 92  rdfs:label "nullSequence";
 93  rdfs:comment "A string indicating a null value. From the W3C Recommendation \"Metadata Vocabulary for Tabular Data\" (https://www.w3.org/TR/tabular-metadata/) 4.3: \"null: the string or strings which cause the value of cells having string value matching any of these values to be null.\" From the same source, Inherited 5.7: \"null: An atomic property giving the string or strings used for null values within the data. If the string value of the cell is equal to any one of these values, the cell value is null. See Parsing Cells in [tabular-data-model] for more details. If not specified, the default for the null property is the empty string ''. The value of this property becomes the null annotation for the described column.\""@en;
 94  rdfs:domain cdi:ValueMapping;
 95  rdfs:range xsd:string;
 96.
 97
 98cdi:ValueMapping-numberPattern
 99  a rdf:Property, owl:DatatypeProperty, ucmis:Attribute;
100  rdfs:label "numberPattern";
101  rdfs:comment "A pattern description of the format of a numeric value. In W3C part of the datatype format From https://www.w3.org/TR/tabular-metadata/ tabular 6.4.2 pattern: \"A number format pattern as defined in [UAX35] http://www.unicode.org/reports/tr35/tr35-31/tr35-numbers.html#Number_Format_Patterns. Implementations MUST recognise number format patterns containing the symbols 0, #, the specified decimalChar (or \".\" if unspecified), the specified groupChar (or \",\" if unspecified), E, +, % and ‰. Implementations MAY additionally recognise number format patterns containing other special pattern characters defined in [UAX35]. If the supplied value is not a string, or if it contains an invalid number format pattern or uses special pattern characters that the implementation does not recognise, implementations MUST issue a warning and proceed as if the property had not been specified. If the datatype format annotation is a single string, this is interpreted in the same way as if it were an object with a pattern property whose value is that string. If the groupChar is specified, but no pattern is supplied, when parsing the string value of a cell against this format specification, implementations MUST recognise and parse numbers that consist of: an optional + or - sign, …  Implementations MAY also recognise numeric values that are in any of the standard-decimal, standard-percent or standard-scientific formats listed in the Unicode Common Locale Data Repository. …\""@en;
102  rdfs:domain cdi:ValueMapping;
103  rdfs:range xsd:string;
104.
105
106cdi:ValueMapping-physicalDataType
107  a rdf:Property, owl:ObjectProperty, ucmis:Attribute;
108  rdfs:label "physicalDataType";
109  rdfs:comment "The base datatype of the physical representation. An integer InstanceVariable might, for example, be stored as a floating point number. From the W3C Recommendation \"Metadata Vocabulary for Tabular Data\" (https://www.w3.org/TR/tabular-metadata/) Inherited 5.7: \"datatype: An atomic property that contains either a single string that is the main datatype of the values of the cell or a datatype description object. If the value of this property is a string, it MUST be the name of one of the built-in datatypes defined in section 5.11.1 Built-in Datatypes and this value is normalized to an object whose base property is the original string value. If it is an object then it describes a more specialized datatype. If a cell contains a sequence (i.e. the separator property is specified and not null) then this property specifies the datatype of each value within that sequence. See 5.11 Datatypes and Parsing Cells in [tabular-data-model] for more details.  The normalized value of this property becomes the datatype annotation for the described column.\""@en;
110  rdfs:domain cdi:ValueMapping;
111  rdfs:range cdi:ControlledVocabularyEntry;
112.
113
114cdi:ValueMapping-scale
115  a rdf:Property, owl:DatatypeProperty, ucmis:Attribute;
116  rdfs:label "scale";
117  rdfs:comment "The scale of the number expressed as an integer. A multiplier to be used in combination with the value to determine the measurement. (E.g., a number expressed in 100's with a value of 5 and a scale of 100 would be 500)."@en;
118  rdfs:domain cdi:ValueMapping;
119  rdfs:range xsd:integer;
120.
121
122
123cdi:ValueMapping_formats_DataPoint
124  a rdf:Property, owl:ObjectProperty, ucmis:Association;
125  # ASSOCIATION
126  rdfs:label "formats";
127  skos:altLabel "ValueMapping_formats_DataPoint";
128  
129  rdfs:domain cdi:ValueMapping;
130  rdfs:range cdi:DataPoint;
131.
132
133cdi:ValueMapping_uses_PhysicalSegmentLocation
134  a rdf:Property, owl:ObjectProperty, ucmis:Association;
135  # ASSOCIATION
136  rdfs:label "uses_PhysicalSegmentLocation";
137  skos:altLabel "ValueMapping_uses_PhysicalSegmentLocation";
138  rdfs:comment "Uses a physical segment location to describe where in the physical record a segment representing the data point is. This could be, for example, described as a start position and end position value for characters in a text record via the segment by text extension of physical segment location."@en;
139  rdfs:domain cdi:ValueMapping;
140  rdfs:range cdi:PhysicalSegmentLocation;
141.

Fragment for the class ValueMapping (entire JSON-LD)

  1{
  2  "@context": [
  3    {
  4      "cdi": "http://ddialliance.org/Specification/DDI-CDI/1.0/RDF/",
  5      "xsd": "http://www.w3.org/2001/XMLSchema#",
  6
  7      "decimalPositions": {
  8        "@id": "cdi:ValueMapping-decimalPositions",
  9        "@type": "xsd:integer"
 10      },
 11      "defaultDecimalSeparator": {
 12        "@id": "cdi:ValueMapping-defaultDecimalSeparator",
 13        "@type": "xsd:string"
 14      },
 15      "defaultDigitGroupSeparator": {
 16        "@id": "cdi:ValueMapping-defaultDigitGroupSeparator",
 17        "@type": "xsd:string"
 18      },
 19      "defaultValue": {
 20        "@id": "cdi:ValueMapping-defaultValue",
 21        "@type": "xsd:string"
 22      },
 23      "format": {
 24        "@id": "cdi:ValueMapping-format",
 25        "@type": "@id",
 26        "@context": "ControlledVocabularyEntry.jsonld"
 27      },
 28      "identifier": {
 29        "@id": "cdi:ValueMapping-identifier",
 30        "@type": "@id",
 31        "@context": "Identifier.jsonld"
 32      },
 33      "isRequired": {
 34        "@id": "cdi:ValueMapping-isRequired",
 35        "@type": "xsd:boolean"
 36      },
 37      "length": {
 38        "@id": "cdi:ValueMapping-length",
 39        "@type": "xsd:integer"
 40      },
 41      "maximumLength": {
 42        "@id": "cdi:ValueMapping-maximumLength",
 43        "@type": "xsd:integer"
 44      },
 45      "minimumLength": {
 46        "@id": "cdi:ValueMapping-minimumLength",
 47        "@type": "xsd:integer"
 48      },
 49      "nullSequence": {
 50        "@id": "cdi:ValueMapping-nullSequence",
 51        "@type": "xsd:string"
 52      },
 53      "numberPattern": {
 54        "@id": "cdi:ValueMapping-numberPattern",
 55        "@type": "xsd:string"
 56      },
 57      "physicalDataType": {
 58        "@id": "cdi:ValueMapping-physicalDataType",
 59        "@type": "@id",
 60        "@context": "ControlledVocabularyEntry.jsonld"
 61      },
 62      "scale": {
 63        "@id": "cdi:ValueMapping-scale",
 64        "@type": "xsd:integer"
 65      },
 66      
 67      "formats": {
 68        "@id": "cdi:ValueMapping_formats_DataPoint",
 69        "@type": "@id",
 70        "@context": "DataPoint.jsonld"
 71      },
 72      "uses_PhysicalSegmentLocation": {
 73        "@id": "cdi:ValueMapping_uses_PhysicalSegmentLocation",
 74        "@type": "@id",
 75        "@context": "PhysicalSegmentLocation.jsonld"
 76      },
 77      "has_ValueMapping_OF_InstanceVariable": {
 78        "@reverse": "cdi:InstanceVariable_has_ValueMapping",
 79        "@type": "@id",
 80        "@context": "InstanceVariable.jsonld"
 81      },
 82      "has_ValueMapping_OF_PhysicalSegmentLayout": {
 83        "@reverse": "cdi:PhysicalSegmentLayout_has_ValueMapping",
 84        "@type": "@id",
 85        "@context": "PhysicalSegmentLayout.jsonld"
 86      },
 87      "indexes_OF_ValueMappingPosition": {
 88        "@reverse": "cdi:ValueMappingPosition_indexes_ValueMapping",
 89        "@type": "@id",
 90        "@context": "ValueMappingPosition.jsonld"
 91      },
 92      "hasSource_OF_ValueMappingRelationship": {
 93        "@reverse": "cdi:ValueMappingRelationship_hasSource_ValueMapping",
 94        "@type": "@id",
 95        "@context": "ValueMappingRelationship.jsonld"
 96      },
 97      "hasTarget_OF_ValueMappingRelationship": {
 98        "@reverse": "cdi:ValueMappingRelationship_hasTarget_ValueMapping",
 99        "@type": "@id",
100        "@context": "ValueMappingRelationship.jsonld"
101      },
102      " comment ": "tag:json-should-support-trailing-commas"
103    }
104  ],
105  "generatedBy": "This code was generated by the Eclipse Acceleo project UCMIS M2T on 2025-08-29 14:34:53.",
106  "basedOn": "based on the UML data type DDICDIModels::DDICDILibrary::Classes::FormatDescription::ValueMapping"
107}

Fragment for the class ValueMapping (entire SHACL - Shapes Constraint Language)

  1# class ValueMapping
  2# based on the UML class DDICDIModels::DDICDILibrary::Classes::FormatDescription::ValueMapping
  3<#ValueMapping> a sh:NodeShape;
  4    sh:targetClass cdi:ValueMapping;
  5	sh:message "See http://ddialliance.org/Specification/DDI-CDI/1.0/RDF/ValueMapping";
  6	sh:closed true;
  7	sh:ignoredProperties ( owl:sameAs );
  8    sh:property [
  9			sh:path rdf:type;
 10			sh:in (   cdi:ValueMapping
 11			 ) ;
 12    ];
 13    # attributes
 14    sh:property <#ValueMapping-decimalPositions>;
 15    sh:property <#ValueMapping-defaultDecimalSeparator>;
 16    sh:property <#ValueMapping-defaultDigitGroupSeparator>;
 17    sh:property <#ValueMapping-defaultValue>;
 18    sh:property <#ValueMapping-format>;
 19    sh:property <#ValueMapping-identifier>;
 20    sh:property <#ValueMapping-isRequired>;
 21    sh:property <#ValueMapping-length>;
 22    sh:property <#ValueMapping-maximumLength>;
 23    sh:property <#ValueMapping-minimumLength>;
 24    sh:property <#ValueMapping-nullSequence>;
 25    sh:property <#ValueMapping-numberPattern>;
 26    sh:property <#ValueMapping-physicalDataType>;
 27    sh:property <#ValueMapping-scale>;
 28    # associations from ValueMapping
 29    sh:property <#ValueMapping_formats_DataPoint>;
 30    sh:property <#ValueMapping_uses_PhysicalSegmentLocation>;
 31    # associations to ValueMapping
 32    sh:property <#rev_InstanceVariable_has_ValueMapping>;
 33    sh:property <#rev_PhysicalSegmentLayout_has_ValueMapping>;
 34    sh:property <#rev_ValueMappingPosition_indexes_ValueMapping>;
 35    sh:property <#rev_ValueMappingRelationship_hasSource_ValueMapping>;
 36    sh:property <#rev_ValueMappingRelationship_hasTarget_ValueMapping>;
 37
 38
 39
 40.
 41
 42<#ValueMapping-decimalPositions> a sh:PropertyShape ;
 43    sh:path cdi:ValueMapping-decimalPositions;
 44    sh:datatype xsd:integer;
 45    sh:maxCount 1;
 46.
 47<#ValueMapping-defaultDecimalSeparator> a sh:PropertyShape ;
 48    sh:path cdi:ValueMapping-defaultDecimalSeparator;
 49    sh:datatype xsd:string;
 50    sh:maxCount 1;
 51.
 52<#ValueMapping-defaultDigitGroupSeparator> a sh:PropertyShape ;
 53    sh:path cdi:ValueMapping-defaultDigitGroupSeparator;
 54    sh:datatype xsd:string;
 55    sh:maxCount 1;
 56.
 57<#ValueMapping-defaultValue> a sh:PropertyShape ;
 58    sh:path cdi:ValueMapping-defaultValue;
 59    sh:datatype xsd:string;
 60    sh:minCount 1;
 61    sh:maxCount 1;
 62.
 63<#ValueMapping-format> a sh:PropertyShape ;
 64    sh:path cdi:ValueMapping-format;
 65    sh:node [ sh:property [ sh:path rdf:type; sh:minCount 1; sh:in (
 66        cdi:ControlledVocabularyEntry
 67      
 68    ) ]];
 69    sh:maxCount 1;
 70.
 71<#ValueMapping-identifier> a sh:PropertyShape ;
 72    sh:path cdi:ValueMapping-identifier;
 73    sh:node [ sh:property [ sh:path rdf:type; sh:minCount 1; sh:in (
 74        cdi:Identifier
 75      
 76    ) ]];
 77    sh:maxCount 1;
 78.
 79<#ValueMapping-isRequired> a sh:PropertyShape ;
 80    sh:path cdi:ValueMapping-isRequired;
 81    sh:datatype xsd:boolean;
 82    sh:maxCount 1;
 83.
 84<#ValueMapping-length> a sh:PropertyShape ;
 85    sh:path cdi:ValueMapping-length;
 86    sh:datatype xsd:integer;
 87    sh:maxCount 1;
 88.
 89<#ValueMapping-maximumLength> a sh:PropertyShape ;
 90    sh:path cdi:ValueMapping-maximumLength;
 91    sh:datatype xsd:integer;
 92    sh:maxCount 1;
 93.
 94<#ValueMapping-minimumLength> a sh:PropertyShape ;
 95    sh:path cdi:ValueMapping-minimumLength;
 96    sh:datatype xsd:integer;
 97    sh:maxCount 1;
 98.
 99<#ValueMapping-nullSequence> a sh:PropertyShape ;
100    sh:path cdi:ValueMapping-nullSequence;
101    sh:datatype xsd:string;
102    sh:maxCount 1;
103.
104<#ValueMapping-numberPattern> a sh:PropertyShape ;
105    sh:path cdi:ValueMapping-numberPattern;
106    sh:datatype xsd:string;
107    sh:maxCount 1;
108.
109<#ValueMapping-physicalDataType> a sh:PropertyShape ;
110    sh:path cdi:ValueMapping-physicalDataType;
111    sh:node [ sh:property [ sh:path rdf:type; sh:minCount 1; sh:in (
112        cdi:ControlledVocabularyEntry
113      
114    ) ]];
115    sh:maxCount 1;
116.
117<#ValueMapping-scale> a sh:PropertyShape ;
118    sh:path cdi:ValueMapping-scale;
119    sh:datatype xsd:integer;
120    sh:maxCount 1;
121.
122
123<#ValueMapping_formats_DataPoint> a sh:PropertyShape ;
124    sh:path cdi:ValueMapping_formats_DataPoint;
125	sh:node [ sh:property [ sh:path rdf:type; sh:minCount 1; sh:in (
126        cdi:DataPoint
127      
128    ) ]];
129.
130<#rev_ValueMapping_formats_DataPoint> a sh:PropertyShape ;
131    sh:path [ sh:inversePath cdi:ValueMapping_formats_DataPoint ];
132    sh:minCount 1;
133    sh:maxCount 1;
134.
135<#ValueMapping_uses_PhysicalSegmentLocation> a sh:PropertyShape ;
136    sh:path cdi:ValueMapping_uses_PhysicalSegmentLocation;
137	sh:node [ sh:property [ sh:path rdf:type; sh:minCount 1; sh:in (
138        cdi:PhysicalSegmentLocation
139        cdi:SegmentByText
140      
141    ) ]];
142    sh:maxCount 1;
143.
144<#rev_ValueMapping_uses_PhysicalSegmentLocation> a sh:PropertyShape ;
145    sh:path [ sh:inversePath cdi:ValueMapping_uses_PhysicalSegmentLocation ];
146.

Fragment for the class ValueMapping (entire ShEx - Shape Expressions)

 1# class ValueMapping
 2# based on the UML class DDICDIModels::DDICDILibrary::Classes::FormatDescription::ValueMapping
 3cdi:ValueMappingShape CLOSED {
 4	a [cdi:ValueMapping];
 5	cdi:ValueMapping-decimalPositions	xsd:integer?;
 6	cdi:ValueMapping-defaultDecimalSeparator	xsd:string?;
 7	cdi:ValueMapping-defaultDigitGroupSeparator	xsd:string?;
 8	cdi:ValueMapping-defaultValue	xsd:string;
 9	cdi:ValueMapping-format	@cdi:ControlledVocabularyEntryShape?;
10	cdi:ValueMapping-identifier	@cdi:IdentifierShape?;
11	cdi:ValueMapping-isRequired	xsd:boolean?;
12	cdi:ValueMapping-length	xsd:integer?;
13	cdi:ValueMapping-maximumLength	xsd:integer?;
14	cdi:ValueMapping-minimumLength	xsd:integer?;
15	cdi:ValueMapping-nullSequence	xsd:string?;
16	cdi:ValueMapping-numberPattern	xsd:string?;
17	cdi:ValueMapping-physicalDataType	@cdi:ControlledVocabularyEntryShape?;
18	cdi:ValueMapping-scale	xsd:integer?;
19	^cdi:InstanceVariable_has_ValueMapping @cdi:InstanceVariableShape OR @cdi:DescriptorVariableShape OR @cdi:ReferenceVariableShape*;
20	cdi:ValueMapping_formats_DataPoint	@cdi:DataPointShape *;
21	
22	^cdi:PhysicalSegmentLayout_has_ValueMapping @cdi:PhysicalSegmentLayoutShape OR @cdi:UnitSegmentLayoutShape*;
23	cdi:ValueMapping_uses_PhysicalSegmentLocation	@cdi:PhysicalSegmentLocationShape OR @cdi:SegmentByTextShape?;
24	
25	^cdi:ValueMappingPosition_indexes_ValueMapping @cdi:ValueMappingPositionShape *;
26	^cdi:ValueMappingRelationship_hasSource_ValueMapping @cdi:ValueMappingRelationshipShape *;
27	^cdi:ValueMappingRelationship_hasTarget_ValueMapping @cdi:ValueMappingRelationshipShape *;
28	}