PhysicalMapping#

Fully qualified class name of the UML model DDI-CDI 1.1beta: DDICDIModels::DDICDILibrary::Classes::FormatDescription::PhysicalMapping

Definition#

Physical characteristics of the values of an instance variable as part of a physical data set.

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

Inheritance#

Inheritance
FormatDescription::PhysicalMapping

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

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

0..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

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

position

- own class -

Position of a physical mapping in a sequence within a physical data set. It can be used instead of a physical mapping position object when the position is fixed (that means the physical mapping is not reused across physical data sets)

Integer

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 PhysicalMapping

Package of Other Class

Other Class

Multiplicity of other class

Aggregation Kind

Inherited from

from

PhysicalMapping formats InstanceVariable

0..*

Conceptual

InstanceVariable

0..1

none

own class

to

PhysicalDataSet has PhysicalMapping

0..*

- own package -

PhysicalDataSet

0..*

none

own class

to

PhysicalMappingPosition indexes PhysicalMapping

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

1..1

- own package -

PhysicalMappingPosition

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 PhysicalMapping (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-PhysicalMapping"
  5                  xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping"
  6                  xmi:type="uml:Class">
  7   <ownedComment xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-ownedComment"
  8                  xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-ownedComment"
  9                  xmi:type="uml:Comment">
 10      <annotatedElement xmi:idref="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping"/>
 11      <body>Definition 
 12==========
 13Physical characteristics of the values of an instance variable as part of a physical data set.
 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>PhysicalMapping</name>
 24   <ownedAttribute xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-decimalPositions"
 25                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-decimalPositions"
 26                    xmi:type="uml:Property">
 27      <ownedComment xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-decimalPositions-ownedComment"
 28                     xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-decimalPositions-ownedComment"
 29                     xmi:type="uml:Comment">
 30         <annotatedElement xmi:idref="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-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-PhysicalMapping-decimalPositions-lowerValue"
 34                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-decimalPositions-lowerValue"
 35                   xmi:type="uml:LiteralInteger"/>
 36      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-decimalPositions-upperValue"
 37                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-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-PhysicalMapping-defaultValue"
 46                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-defaultValue"
 47                    xmi:type="uml:Property">
 48      <ownedComment xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-defaultValue-ownedComment"
 49                     xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-defaultValue-ownedComment"
 50                     xmi:type="uml:Comment">
 51         <annotatedElement xmi:idref="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-defaultValue"/>
 52         <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>
 53      </ownedComment>
 54      <lowerValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-defaultValue-lowerValue"
 55                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-defaultValue-lowerValue"
 56                   xmi:type="uml:LiteralInteger"/>
 57      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-defaultValue-upperValue"
 58                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-defaultValue-upperValue"
 59                   xmi:type="uml:LiteralUnlimitedNatural">
 60         <value>1</value>
 61      </upperValue>
 62      <name>defaultValue</name>
 63      <type href="http://www.omg.org/spec/UML/20131001/PrimitiveTypes.xmi#String"
 64             xmi:type="uml:PrimitiveType"/>
 65   </ownedAttribute>
 66   <ownedAttribute xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-format"
 67                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-format"
 68                    xmi:type="uml:Property">
 69      <ownedComment xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-format-ownedComment"
 70                     xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-format-ownedComment"
 71                     xmi:type="uml:Comment">
 72         <annotatedElement xmi:idref="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-format"/>
 73         <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>
 74      </ownedComment>
 75      <lowerValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-format-lowerValue"
 76                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-format-lowerValue"
 77                   xmi:type="uml:LiteralInteger"/>
 78      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-format-upperValue"
 79                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-format-upperValue"
 80                   xmi:type="uml:LiteralUnlimitedNatural">
 81         <value>1</value>
 82      </upperValue>
 83      <name>format</name>
 84      <type xmi:idref="DDICDIModels-DDICDILibrary-DataTypes-StructuredDataTypes-ControlledVocabularyEntry"/>
 85   </ownedAttribute>
 86   <ownedAttribute xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-identifier"
 87                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-identifier"
 88                    xmi:type="uml:Property">
 89      <ownedComment xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-identifier-ownedComment"
 90                     xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-identifier-ownedComment"
 91                     xmi:type="uml:Comment">
 92         <annotatedElement xmi:idref="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-identifier"/>
 93         <body>Identifier for objects requiring short- or long-lasting referencing and management.</body>
 94      </ownedComment>
 95      <lowerValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-identifier-lowerValue"
 96                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-identifier-lowerValue"
 97                   xmi:type="uml:LiteralInteger"/>
 98      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-identifier-upperValue"
 99                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-identifier-upperValue"
100                   xmi:type="uml:LiteralUnlimitedNatural">
101         <value>1</value>
102      </upperValue>
103      <name>identifier</name>
104      <isID>true</isID>
105      <isID>true</isID>
106      <type xmi:idref="DDICDIModels-DDICDILibrary-DataTypes-StructuredDataTypes-Identifier"/>
107   </ownedAttribute>
108   <ownedAttribute xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-isRequired"
109                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-isRequired"
110                    xmi:type="uml:Property">
111      <ownedComment xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-isRequired-ownedComment"
112                     xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-isRequired-ownedComment"
113                     xmi:type="uml:Comment">
114         <annotatedElement xmi:idref="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-isRequired"/>
115         <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>
116      </ownedComment>
117      <lowerValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-isRequired-lowerValue"
118                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-isRequired-lowerValue"
119                   xmi:type="uml:LiteralInteger"/>
120      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-isRequired-upperValue"
121                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-isRequired-upperValue"
122                   xmi:type="uml:LiteralUnlimitedNatural">
123         <value>1</value>
124      </upperValue>
125      <name>isRequired</name>
126      <defaultValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-isRequired-defaultValue"
127                     xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-isRequired-defaultValue"
128                     xmi:type="uml:LiteralBoolean">
129         <value>False</value>
130      </defaultValue>
131      <type href="http://www.omg.org/spec/UML/20131001/PrimitiveTypes.xmi#Boolean"
132             xmi:type="uml:PrimitiveType"/>
133   </ownedAttribute>
134   <ownedAttribute xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-maximumLength"
135                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-maximumLength"
136                    xmi:type="uml:Property">
137      <ownedComment xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-maximumLength-ownedComment"
138                     xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-maximumLength-ownedComment"
139                     xmi:type="uml:Comment">
140         <annotatedElement xmi:idref="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-maximumLength"/>
141         <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."
142
143
144
145</body>
146      </ownedComment>
147      <lowerValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-maximumLength-lowerValue"
148                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-maximumLength-lowerValue"
149                   xmi:type="uml:LiteralInteger"/>
150      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-maximumLength-upperValue"
151                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-maximumLength-upperValue"
152                   xmi:type="uml:LiteralUnlimitedNatural">
153         <value>1</value>
154      </upperValue>
155      <name>maximumLength</name>
156      <type href="http://www.omg.org/spec/UML/20131001/PrimitiveTypes.xmi#Integer"
157             xmi:type="uml:PrimitiveType"/>
158   </ownedAttribute>
159   <ownedAttribute xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-minimumLength"
160                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-minimumLength"
161                    xmi:type="uml:Property">
162      <ownedComment xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-minimumLength-ownedComment"
163                     xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-minimumLength-ownedComment"
164                     xmi:type="uml:Comment">
165         <annotatedElement xmi:idref="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-minimumLength"/>
166         <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."
167</body>
168      </ownedComment>
169      <lowerValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-minimumLength-lowerValue"
170                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-minimumLength-lowerValue"
171                   xmi:type="uml:LiteralInteger"/>
172      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-minimumLength-upperValue"
173                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-minimumLength-upperValue"
174                   xmi:type="uml:LiteralUnlimitedNatural">
175         <value>1</value>
176      </upperValue>
177      <name>minimumLength</name>
178      <type href="http://www.omg.org/spec/UML/20131001/PrimitiveTypes.xmi#Integer"
179             xmi:type="uml:PrimitiveType"/>
180   </ownedAttribute>
181   <ownedAttribute xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-nullSequence"
182                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-nullSequence"
183                    xmi:type="uml:Property">
184      <ownedComment xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-nullSequence-ownedComment"
185                     xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-nullSequence-ownedComment"
186                     xmi:type="uml:Comment">
187         <annotatedElement xmi:idref="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-nullSequence"/>
188         <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>
189      </ownedComment>
190      <lowerValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-nullSequence-lowerValue"
191                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-nullSequence-lowerValue"
192                   xmi:type="uml:LiteralInteger"/>
193      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-nullSequence-upperValue"
194                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-nullSequence-upperValue"
195                   xmi:type="uml:LiteralUnlimitedNatural">
196         <value>1</value>
197      </upperValue>
198      <name>nullSequence</name>
199      <type href="http://www.omg.org/spec/UML/20131001/PrimitiveTypes.xmi#String"
200             xmi:type="uml:PrimitiveType"/>
201   </ownedAttribute>
202   <ownedAttribute xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-numberPattern"
203                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-numberPattern"
204                    xmi:type="uml:Property">
205      <ownedComment xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-numberPattern-ownedComment"
206                     xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-numberPattern-ownedComment"
207                     xmi:type="uml:Comment">
208         <annotatedElement xmi:idref="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-numberPattern"/>
209         <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>
210      </ownedComment>
211      <lowerValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-numberPattern-lowerValue"
212                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-numberPattern-lowerValue"
213                   xmi:type="uml:LiteralInteger"/>
214      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-numberPattern-upperValue"
215                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-numberPattern-upperValue"
216                   xmi:type="uml:LiteralUnlimitedNatural">
217         <value>1</value>
218      </upperValue>
219      <name>numberPattern</name>
220      <type href="http://www.omg.org/spec/UML/20131001/PrimitiveTypes.xmi#String"
221             xmi:type="uml:PrimitiveType"/>
222   </ownedAttribute>
223   <ownedAttribute xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-ownedAttribute"
224                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-ownedAttribute"
225                    xmi:type="uml:Property">
226      <lowerValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-ownedAttribute-lowerValue"
227                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-ownedAttribute-lowerValue"
228                   xmi:type="uml:LiteralInteger"/>
229      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-ownedAttribute-upperValue"
230                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-ownedAttribute-upperValue"
231                   xmi:type="uml:LiteralUnlimitedNatural">
232         <value>1</value>
233      </upperValue>
234      <association xmi:idref="DDICDIModels-DDICDILibrary-Classes-Conceptual-PhysicalMapping_formats_InstanceVariable"/>
235      <type xmi:idref="DDICDIModels-DDICDILibrary-Classes-Conceptual-InstanceVariable"/>
236   </ownedAttribute>
237   <ownedAttribute xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-position"
238                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-position"
239                    xmi:type="uml:Property">
240      <ownedComment xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-position-ownedComment"
241                     xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-position-ownedComment"
242                     xmi:type="uml:Comment">
243         <annotatedElement xmi:idref="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-position"/>
244         <body>Position of a physical mapping in a sequence within a physical data set. It can be used instead of a physical mapping position object when the position is fixed (that means the physical mapping is not reused across physical data sets)
245
246</body>
247      </ownedComment>
248      <lowerValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-position-lowerValue"
249                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-position-lowerValue"
250                   xmi:type="uml:LiteralInteger"/>
251      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-position-upperValue"
252                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-position-upperValue"
253                   xmi:type="uml:LiteralUnlimitedNatural">
254         <value>1</value>
255      </upperValue>
256      <name>position</name>
257      <type href="http://www.omg.org/spec/UML/20131001/PrimitiveTypes.xmi#Integer"
258             xmi:type="uml:PrimitiveType"/>
259   </ownedAttribute>
260   <ownedAttribute xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-scale"
261                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-scale"
262                    xmi:type="uml:Property">
263      <ownedComment xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-scale-ownedComment"
264                     xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-scale-ownedComment"
265                     xmi:type="uml:Comment">
266         <annotatedElement xmi:idref="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-scale"/>
267         <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>
268      </ownedComment>
269      <lowerValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-scale-lowerValue"
270                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-scale-lowerValue"
271                   xmi:type="uml:LiteralInteger"/>
272      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-PhysicalMapping-scale-upperValue"
273                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#PhysicalMapping-scale-upperValue"
274                   xmi:type="uml:LiteralUnlimitedNatural">
275         <value>1</value>
276      </upperValue>
277      <name>scale</name>
278      <type href="http://www.omg.org/spec/UML/20131001/PrimitiveTypes.xmi#Integer"
279             xmi:type="uml:PrimitiveType"/>
280   </ownedAttribute>
281</packagedElement>

Fragment for the class PhysicalMapping (entire XML Schema)

  1<xs:element name="PhysicalMapping"
  2            type="PhysicalMappingXsdType"
  3            xml:id="PhysicalMapping">
  4  <!-- based on the UML class DDICDIModels::DDICDILibrary::Classes::FormatDescription::PhysicalMapping -->
  5  <xs:annotation>
  6    <xs:documentation>Definition 
  7          ==========
  8          Physical characteristics of the values of an instance variable as part of a physical data set.
  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="PhysicalMappingXsdType"
 20                xml:id="PhysicalMappingXsdType">
 21  <xs:annotation>
 22    <xs:documentation>Definition 
 23          ==========
 24          Physical characteristics of the values of an instance variable as part of a physical data set.
 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="PhysicalMapping-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="defaultValue"
 45                type="xs:string"
 46                minOccurs="0"
 47                maxOccurs="1"
 48                xml:id="PhysicalMapping-defaultValue">
 49      <xs:annotation>
 50        <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>
 51      </xs:annotation>
 52    </xs:element>
 53    <xs:element name="format"
 54                type="ControlledVocabularyEntryXsdType"
 55                minOccurs="0"
 56                maxOccurs="1"
 57                xml:id="PhysicalMapping-format">
 58      <xs:annotation>
 59        <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>
 60      </xs:annotation>
 61    </xs:element>
 62    <xs:element name="identifier"
 63                type="IdentifierXsdType"
 64                minOccurs="0"
 65                maxOccurs="1"
 66                xml:id="PhysicalMapping-identifier">
 67      <xs:annotation>
 68        <xs:documentation>Identifier for objects requiring short- or long-lasting referencing and management.</xs:documentation>
 69      </xs:annotation>
 70    </xs:element>
 71    <xs:element name="isRequired"
 72                type="xs:boolean"
 73                minOccurs="0"
 74                maxOccurs="1"
 75                xml:id="PhysicalMapping-isRequired">
 76      <xs:annotation>
 77        <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>
 78      </xs:annotation>
 79    </xs:element>
 80    <xs:element name="maximumLength"
 81                type="xs:integer"
 82                minOccurs="0"
 83                maxOccurs="1"
 84                xml:id="PhysicalMapping-maximumLength">
 85      <xs:annotation>
 86        <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>
 87      </xs:annotation>
 88    </xs:element>
 89    <xs:element name="minimumLength"
 90                type="xs:integer"
 91                minOccurs="0"
 92                maxOccurs="1"
 93                xml:id="PhysicalMapping-minimumLength">
 94      <xs:annotation>
 95        <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>
 96      </xs:annotation>
 97    </xs:element>
 98    <xs:element name="nullSequence"
 99                type="xs:string"
100                minOccurs="0"
101                maxOccurs="1"
102                xml:id="PhysicalMapping-nullSequence">
103      <xs:annotation>
104        <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>
105      </xs:annotation>
106    </xs:element>
107    <xs:element name="numberPattern"
108                type="xs:string"
109                minOccurs="0"
110                maxOccurs="1"
111                xml:id="PhysicalMapping-numberPattern">
112      <xs:annotation>
113        <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>
114      </xs:annotation>
115    </xs:element>
116    <xs:element name="position"
117                type="xs:integer"
118                minOccurs="0"
119                maxOccurs="1"
120                xml:id="PhysicalMapping-position">
121      <xs:annotation>
122        <xs:documentation>Position of a physical mapping in a sequence within a physical data set. It can be used instead of a physical mapping position object when the position is fixed (that means the physical mapping is not reused across physical data sets)</xs:documentation>
123      </xs:annotation>
124    </xs:element>
125    <xs:element name="scale"
126                type="xs:integer"
127                minOccurs="0"
128                maxOccurs="1"
129                xml:id="PhysicalMapping-scale">
130      <xs:annotation>
131        <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>
132      </xs:annotation>
133    </xs:element>
134    <xs:element name="PhysicalMapping_formats_InstanceVariable"
135                minOccurs="0"
136                maxOccurs="1"
137                xml:id="PhysicalMapping_formats_InstanceVariable">
138      <xs:annotation>
139        <xs:documentation></xs:documentation>
140      </xs:annotation>
141      <xs:complexType>
142        <xs:complexContent>
143          <xs:restriction base="AssociationReferenceXsdType">
144            <xs:sequence>
145              <xs:element name="ddiReference"
146                          type="InternationalRegistrationDataIdentifierXsdType"
147                          minOccurs="0"
148                          maxOccurs="1"
149                          xml:id="PhysicalMapping_formats_InstanceVariable-ddiReference"/>
150              <xs:element name="validType"
151                          minOccurs="0"
152                          maxOccurs="unbounded"
153                          xml:id="PhysicalMapping_formats_InstanceVariable-validType">
154                <xs:simpleType>
155                  <xs:restriction base="xs:NMTOKEN">
156                    <xs:enumeration value="DescriptorVariable"/>
157                    <xs:enumeration value="InstanceVariable"/>
158                    <xs:enumeration value="ReferenceVariable"/>
159                  </xs:restriction>
160                </xs:simpleType>
161              </xs:element>
162            </xs:sequence>
163          </xs:restriction>
164        </xs:complexContent>
165      </xs:complexType>
166    </xs:element>
167  </xs:sequence>
168</xs:complexType>

Fragment for the class PhysicalMapping (entire JSON Schema)

  1"cls-PhysicalMapping": {
  2  "description": "http://ddialliance.org/Specification/DDI-CDI/1.0/RDF/PhysicalMapping",
  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": "PhysicalMapping"
 14    },
 15    "decimalPositions": {
 16      "$comment": "cardinality 0..1 – from cdi:PhysicalMapping",
 17      "$ref": "#/defs/xsd:integer"
 18    },
 19    "defaultValue": {
 20      "$comment": "cardinality 0..1 – from cdi:PhysicalMapping",
 21      "$ref": "#/defs/xsd:string"
 22    },
 23    "format": {
 24      "$comment": "cardinality 0..1 – from cdi:PhysicalMapping",
 25      "$ref": "#/defs/dt-ControlledVocabularyEntry"
 26    },
 27    "identifier": {
 28      "$comment": "cardinality 0..1 – from cdi:PhysicalMapping",
 29      "$ref": "#/defs/dt-Identifier"
 30    },
 31    "isRequired": {
 32      "$comment": "cardinality 0..1 – from cdi:PhysicalMapping",
 33      "$ref": "#/defs/xsd:boolean"
 34    },
 35    "maximumLength": {
 36      "$comment": "cardinality 0..1 – from cdi:PhysicalMapping",
 37      "$ref": "#/defs/xsd:integer"
 38    },
 39    "minimumLength": {
 40      "$comment": "cardinality 0..1 – from cdi:PhysicalMapping",
 41      "$ref": "#/defs/xsd:integer"
 42    },
 43    "nullSequence": {
 44      "$comment": "cardinality 0..1 – from cdi:PhysicalMapping",
 45      "$ref": "#/defs/xsd:string"
 46    },
 47    "numberPattern": {
 48      "$comment": "cardinality 0..1 – from cdi:PhysicalMapping",
 49      "$ref": "#/defs/xsd:string"
 50    },
 51    "position": {
 52      "$comment": "cardinality 0..1 – from cdi:PhysicalMapping",
 53      "$ref": "#/defs/xsd:integer"
 54    },
 55    "scale": {
 56      "$comment": "cardinality 0..1 – from cdi:PhysicalMapping",
 57      "$ref": "#/defs/xsd:integer"
 58    },
 59    "formats": {
 60      "description": "PhysicalMapping_formats_InstanceVariable",
 61      "$comment": "cardinality 0..1",
 62       "$ref": "#/defs/target-InstanceVariable"
 63    },
 64    "has_PhysicalMapping_OF_PhysicalDataSet": {
 65      "description": "PhysicalDataSet_has_PhysicalMapping",
 66      "$comment": "cardinality 0..-1",
 67      "anyOf": [
 68        {
 69          "$ref": "#/defs/target-PhysicalDataSet"
 70        },
 71        {
 72          "type": "array",
 73          "items": {
 74            "$ref": "#/defs/target-PhysicalDataSet"
 75          }
 76        }
 77      ]
 78    },
 79    "indexes_OF_PhysicalMappingPosition": {
 80      "description": "PhysicalMappingPosition_indexes_PhysicalMapping",
 81      "$comment": "cardinality 0..-1",
 82      "anyOf": [
 83        {
 84          "$ref": "#/defs/target-PhysicalMappingPosition"
 85        },
 86        {
 87          "type": "array",
 88          "items": {
 89            "$ref": "#/defs/target-PhysicalMappingPosition"
 90          }
 91        }
 92      ]
 93    },
 94    "sameAs": {
 95      "$ref": "#/defs/owl:sameAs"
 96    }
 97  },
 98  "required": ["@type"],
 99  "additionalProperties": false
100},
101"target-PhysicalMapping": {
102  "description": "all subclasses of http://ddialliance.org/Specification/DDI-CDI/1.0/RDF/PhysicalMapping",
103  "anyOf": [
104    { "$ref": "#/defs/cls-PhysicalMapping" },
105    { "$ref": "#/defs/cls-LocatorMapping" },
106    { "$ref": "#/defs/cls-TextMapping" },
107    { "type": "string", "format": "iri-reference" }
108  ]
109},

Fragment for the class PhysicalMapping (main ontology)

  1# class PhysicalMapping
  2# based on the UML class DDICDIModels::DDICDILibrary::Classes::FormatDescription::PhysicalMapping
  3cdi:PhysicalMapping
  4  a rdfs:Class, owl:Class, ucmis:Class;
  5  rdfs:label "PhysicalMapping";
  6  rdfs:comment "Definition \n==========\nPhysical characteristics of the values of an instance variable as part of a physical data set.\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:PhysicalMapping-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:PhysicalMapping;
 15  rdfs:range xsd:integer;
 16.
 17
 18cdi:PhysicalMapping-defaultValue
 19  a rdf:Property, owl:DatatypeProperty, ucmis:Attribute;
 20  rdfs:label "defaultValue";
 21  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;
 22  rdfs:domain cdi:PhysicalMapping;
 23  rdfs:range xsd:string;
 24.
 25
 26cdi:PhysicalMapping-format
 27  a rdf:Property, owl:ObjectProperty, ucmis:Attribute;
 28  rdfs:label "format";
 29  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;
 30  rdfs:domain cdi:PhysicalMapping;
 31  rdfs:range cdi:ControlledVocabularyEntry;
 32.
 33
 34cdi:PhysicalMapping-identifier
 35  a rdf:Property, owl:ObjectProperty, ucmis:Attribute;
 36  rdfs:label "identifier";
 37  rdfs:comment "Identifier for objects requiring short- or long-lasting referencing and management."@en;
 38  rdfs:domain cdi:PhysicalMapping;
 39  rdfs:range cdi:Identifier;
 40.
 41
 42cdi:PhysicalMapping-isRequired
 43  a rdf:Property, owl:DatatypeProperty, ucmis:Attribute;
 44  rdfs:label "isRequired";
 45  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;
 46  rdfs:domain cdi:PhysicalMapping;
 47  rdfs:range xsd:boolean;
 48.
 49
 50cdi:PhysicalMapping-maximumLength
 51  a rdf:Property, owl:DatatypeProperty, ucmis:Attribute;
 52  rdfs:label "maximumLength";
 53  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;
 54  rdfs:domain cdi:PhysicalMapping;
 55  rdfs:range xsd:integer;
 56.
 57
 58cdi:PhysicalMapping-minimumLength
 59  a rdf:Property, owl:DatatypeProperty, ucmis:Attribute;
 60  rdfs:label "minimumLength";
 61  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;
 62  rdfs:domain cdi:PhysicalMapping;
 63  rdfs:range xsd:integer;
 64.
 65
 66cdi:PhysicalMapping-nullSequence
 67  a rdf:Property, owl:DatatypeProperty, ucmis:Attribute;
 68  rdfs:label "nullSequence";
 69  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;
 70  rdfs:domain cdi:PhysicalMapping;
 71  rdfs:range xsd:string;
 72.
 73
 74cdi:PhysicalMapping-numberPattern
 75  a rdf:Property, owl:DatatypeProperty, ucmis:Attribute;
 76  rdfs:label "numberPattern";
 77  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;
 78  rdfs:domain cdi:PhysicalMapping;
 79  rdfs:range xsd:string;
 80.
 81
 82cdi:PhysicalMapping-position
 83  a rdf:Property, owl:DatatypeProperty, ucmis:Attribute;
 84  rdfs:label "position";
 85  rdfs:comment "Position of a physical mapping in a sequence within a physical data set. It can be used instead of a physical mapping position object when the position is fixed (that means the physical mapping is not reused across physical data sets)"@en;
 86  rdfs:domain cdi:PhysicalMapping;
 87  rdfs:range xsd:integer;
 88.
 89
 90cdi:PhysicalMapping-scale
 91  a rdf:Property, owl:DatatypeProperty, ucmis:Attribute;
 92  rdfs:label "scale";
 93  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;
 94  rdfs:domain cdi:PhysicalMapping;
 95  rdfs:range xsd:integer;
 96.
 97
 98
 99cdi:PhysicalMapping_formats_InstanceVariable
100  a rdf:Property, owl:ObjectProperty, ucmis:Association;
101  # ASSOCIATION
102  rdfs:label "formats";
103  skos:altLabel "PhysicalMapping_formats_InstanceVariable";
104  
105  rdfs:domain cdi:PhysicalMapping;
106  rdfs:range cdi:InstanceVariable;
107.

Fragment for the class PhysicalMapping (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:PhysicalMapping-decimalPositions",
 9        "@type": "xsd:integer"
10      },
11      "defaultValue": {
12        "@id": "cdi:PhysicalMapping-defaultValue",
13        "@type": "xsd:string"
14      },
15      "format": {
16        "@id": "cdi:PhysicalMapping-format",
17        "@type": "@id",
18        "@context": "ControlledVocabularyEntry.jsonld"
19      },
20      "identifier": {
21        "@id": "cdi:PhysicalMapping-identifier",
22        "@type": "@id",
23        "@context": "Identifier.jsonld"
24      },
25      "isRequired": {
26        "@id": "cdi:PhysicalMapping-isRequired",
27        "@type": "xsd:boolean"
28      },
29      "maximumLength": {
30        "@id": "cdi:PhysicalMapping-maximumLength",
31        "@type": "xsd:integer"
32      },
33      "minimumLength": {
34        "@id": "cdi:PhysicalMapping-minimumLength",
35        "@type": "xsd:integer"
36      },
37      "nullSequence": {
38        "@id": "cdi:PhysicalMapping-nullSequence",
39        "@type": "xsd:string"
40      },
41      "numberPattern": {
42        "@id": "cdi:PhysicalMapping-numberPattern",
43        "@type": "xsd:string"
44      },
45      "position": {
46        "@id": "cdi:PhysicalMapping-position",
47        "@type": "xsd:integer"
48      },
49      "scale": {
50        "@id": "cdi:PhysicalMapping-scale",
51        "@type": "xsd:integer"
52      },
53      
54      "formats": {
55        "@id": "cdi:PhysicalMapping_formats_InstanceVariable",
56        "@type": "@id",
57        "@context": "InstanceVariable.jsonld"
58      },
59      "has_PhysicalMapping_OF_PhysicalDataSet": {
60        "@reverse": "cdi:PhysicalDataSet_has_PhysicalMapping",
61        "@type": "@id",
62        "@context": "PhysicalDataSet.jsonld"
63      },
64      "indexes_OF_PhysicalMappingPosition": {
65        "@reverse": "cdi:PhysicalMappingPosition_indexes_PhysicalMapping",
66        "@type": "@id",
67        "@context": "PhysicalMappingPosition.jsonld"
68      },
69      " comment ": "tag:json-should-support-trailing-commas"
70    }
71  ],
72  "generatedBy": "This code was generated by the Eclipse Acceleo project UCMIS M2T on 2026-04-15 14:38:41.",
73  "basedOn": "based on the UML data type DDICDIModels::DDICDILibrary::Classes::FormatDescription::PhysicalMapping"
74}

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

  1# class PhysicalMapping
  2# based on the UML class DDICDIModels::DDICDILibrary::Classes::FormatDescription::PhysicalMapping
  3<#PhysicalMapping> a sh:NodeShape;
  4    sh:targetClass cdi:PhysicalMapping;
  5	sh:message "See http://ddialliance.org/Specification/DDI-CDI/1.0/RDF/PhysicalMapping";
  6	sh:closed true;
  7	sh:ignoredProperties ( owl:sameAs );
  8    sh:property [
  9			sh:path rdf:type;
 10			sh:in (   cdi:PhysicalMapping
 11			  cdi:LocatorMapping
 12			  cdi:TextMapping
 13			 ) ;
 14    ];
 15    # attributes
 16    sh:property <#PhysicalMapping-decimalPositions>;
 17    sh:property <#PhysicalMapping-defaultValue>;
 18    sh:property <#PhysicalMapping-format>;
 19    sh:property <#PhysicalMapping-identifier>;
 20    sh:property <#PhysicalMapping-isRequired>;
 21    sh:property <#PhysicalMapping-maximumLength>;
 22    sh:property <#PhysicalMapping-minimumLength>;
 23    sh:property <#PhysicalMapping-nullSequence>;
 24    sh:property <#PhysicalMapping-numberPattern>;
 25    sh:property <#PhysicalMapping-position>;
 26    sh:property <#PhysicalMapping-scale>;
 27    # associations from PhysicalMapping
 28    sh:property <#PhysicalMapping_formats_InstanceVariable>;
 29    # associations to PhysicalMapping
 30    sh:property <#rev_PhysicalDataSet_has_PhysicalMapping>;
 31    sh:property <#rev_PhysicalMappingPosition_indexes_PhysicalMapping>;
 32
 33
 34
 35.
 36
 37<#PhysicalMapping-decimalPositions> a sh:PropertyShape ;
 38    sh:path cdi:PhysicalMapping-decimalPositions;
 39    sh:datatype xsd:integer;
 40    sh:maxCount 1;
 41.
 42<#PhysicalMapping-defaultValue> a sh:PropertyShape ;
 43    sh:path cdi:PhysicalMapping-defaultValue;
 44    sh:datatype xsd:string;
 45    sh:maxCount 1;
 46.
 47<#PhysicalMapping-format> a sh:PropertyShape ;
 48    sh:path cdi:PhysicalMapping-format;
 49    sh:node [ sh:property [ sh:path rdf:type; sh:minCount 1; sh:in (
 50        cdi:ControlledVocabularyEntry
 51      
 52    ) ]];
 53    sh:maxCount 1;
 54.
 55<#PhysicalMapping-identifier> a sh:PropertyShape ;
 56    sh:path cdi:PhysicalMapping-identifier;
 57    sh:node [ sh:property [ sh:path rdf:type; sh:minCount 1; sh:in (
 58        cdi:Identifier
 59      
 60    ) ]];
 61    sh:maxCount 1;
 62.
 63<#PhysicalMapping-isRequired> a sh:PropertyShape ;
 64    sh:path cdi:PhysicalMapping-isRequired;
 65    sh:datatype xsd:boolean;
 66    sh:maxCount 1;
 67.
 68<#PhysicalMapping-maximumLength> a sh:PropertyShape ;
 69    sh:path cdi:PhysicalMapping-maximumLength;
 70    sh:datatype xsd:integer;
 71    sh:maxCount 1;
 72.
 73<#PhysicalMapping-minimumLength> a sh:PropertyShape ;
 74    sh:path cdi:PhysicalMapping-minimumLength;
 75    sh:datatype xsd:integer;
 76    sh:maxCount 1;
 77.
 78<#PhysicalMapping-nullSequence> a sh:PropertyShape ;
 79    sh:path cdi:PhysicalMapping-nullSequence;
 80    sh:datatype xsd:string;
 81    sh:maxCount 1;
 82.
 83<#PhysicalMapping-numberPattern> a sh:PropertyShape ;
 84    sh:path cdi:PhysicalMapping-numberPattern;
 85    sh:datatype xsd:string;
 86    sh:maxCount 1;
 87.
 88<#PhysicalMapping-position> a sh:PropertyShape ;
 89    sh:path cdi:PhysicalMapping-position;
 90    sh:datatype xsd:integer;
 91    sh:maxCount 1;
 92.
 93<#PhysicalMapping-scale> a sh:PropertyShape ;
 94    sh:path cdi:PhysicalMapping-scale;
 95    sh:datatype xsd:integer;
 96    sh:maxCount 1;
 97.
 98
 99<#PhysicalMapping_formats_InstanceVariable> a sh:PropertyShape ;
100    sh:path cdi:PhysicalMapping_formats_InstanceVariable;
101	sh:node [ sh:property [ sh:path rdf:type; sh:minCount 1; sh:in (
102        cdi:InstanceVariable
103        cdi:DescriptorVariable
104        cdi:ReferenceVariable
105      
106    ) ]];
107    sh:maxCount 1;
108.
109<#rev_PhysicalMapping_formats_InstanceVariable> a sh:PropertyShape ;
110    sh:path [ sh:inversePath cdi:PhysicalMapping_formats_InstanceVariable ];
111.

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

 1# class PhysicalMapping
 2# based on the UML class DDICDIModels::DDICDILibrary::Classes::FormatDescription::PhysicalMapping
 3cdi:PhysicalMappingShape CLOSED {
 4	a [cdi:PhysicalMapping];
 5	$cdi:PhysicalMappingProperties (
 6	cdi:PhysicalMapping-decimalPositions	xsd:integer?;
 7	cdi:PhysicalMapping-defaultValue	xsd:string?;
 8	cdi:PhysicalMapping-format	@cdi:ControlledVocabularyEntryShape?;
 9	cdi:PhysicalMapping-identifier	@cdi:IdentifierShape?;
10	cdi:PhysicalMapping-isRequired	xsd:boolean?;
11	cdi:PhysicalMapping-maximumLength	xsd:integer?;
12	cdi:PhysicalMapping-minimumLength	xsd:integer?;
13	cdi:PhysicalMapping-nullSequence	xsd:string?;
14	cdi:PhysicalMapping-numberPattern	xsd:string?;
15	cdi:PhysicalMapping-position	xsd:integer?;
16	cdi:PhysicalMapping-scale	xsd:integer?;
17	cdi:PhysicalMapping_formats_InstanceVariable	@cdi:InstanceVariableShape OR @cdi:DescriptorVariableShape OR @cdi:ReferenceVariableShape?;
18	
19	^cdi:PhysicalDataSet_has_PhysicalMapping @cdi:PhysicalDataSetShape OR @cdi:StructuredDataSetShape OR @cdi:TabularTextDataSetShape*;
20	^cdi:PhysicalMappingPosition_indexes_PhysicalMapping @cdi:PhysicalMappingPositionShape *;
21		);
22}