SDC4 Type Reference
Generated from the reference model (src/rm/sdc4/sdc4.xsd, namespace https://semanticdatacharter.com/ns/sdc4/), the SDCStudio component models and the Component Wizard's type grid by scripts/generate_type_reference.py. It is not edited by hand: a test fails when the schema, the models or the grid change without regenerating it.
How to read it. A type has three names: the label on the Component Wizard's grid, the component model in SDCStudio, and the complex type in the published XSD. Each entry gives what the type is for, what a record carries (In the record: the schema elements, in the schema's own words), and what you set when you create the component (What you set: the model fields, in the wizard's own words). The common elements and fields that every component carries are listed once, below the hierarchy.
The hierarchy
The abstract bases carry the shared elements and fields: XdAny for every value type, XdOrdered for anything with an order (ordinals, dates, quantities), XdQuantified for anything with a magnitude. Cluster and the contextual types sit beside them on Common.
graph TD Common --> XdAny XdAny --> XdOrdered XdOrdered --> XdQuantified XdAny --> XdBoolean XdAny --> XdLink XdAny --> XdString XdAny --> XdToken XdAny --> XdFile XdOrdered --> XdOrdinal XdQuantified --> XdCount XdQuantified --> XdQuantity XdQuantified --> XdFloat XdQuantified --> XdDouble XdOrdered --> XdTemporal XdAny --> XdInterval XdAny --> ReferenceRange XdAny --> SimpleReferenceRange XdAny --> Units XdAny --> XdBooleanList XdAny --> XdStringList XdAny --> XdTokenList XdQuantified --> XdDecimalList XdQuantified --> XdDoubleList XdQuantified --> XdIntegerList XdQuantified --> XdNonNegativeIntegerList XdQuantified --> XdPositiveIntegerList Common --> Cluster Common --> Party Common --> Participation Common --> Audit Common --> Attestation
What every component carries
In the record. Every Xd value in a Governed Data Record can carry these elements beside its value. The schema defines them once on XdAnyType:
| Element | Type | Occurs | Meaning |
|---|---|---|---|
label |
string | optional | Descriptive name of this datatype model. Provides the semantic 'name' for the model. Replaces what would be a global XML element name or class name in conventional modeling. |
act |
string | optional | Access Control Tag. If this is used it must contain a valid term from the Access Control System linked to by the containing Data Model. |
ExceptionalValue |
substitution group | many | In an invalid instance, the application can indicate here why data is missing or invalid. The sub-types are based on ISO 21090 NULL Flavors entries, with additions noted from real-world usage. |
vtb |
dateTime | optional | Valid Time Begin. If present this must be a valid datetime including timezone. It is used to indicate the beginning time that information is considered valid. |
vte |
dateTime | optional | Valid Time End. If present this must be a valid date-time including timezone. It is used to indicate the ending time that information is considered valid or the time the information expired or will expire. |
tr |
dateTime | optional | Time Recorded. If present this must be a valid date-time. It is used to indicate the the actual date and time the data was recorded. |
modified |
dateTime | optional | Time Modified. If present this must be a valid date-time stamp. It is used to indicate the the actual date and time the data was last changed. |
latitude |
lattype | optional | Latitude in decimal format. Value range -90.000000 to 90.000000. |
longitude |
lontype | optional | Longitude in decimal format. Value range -180.000000 to 180.000000. |
What you set. Every component has these fields from Common:
| Field | Kind | What it sets |
|---|---|---|
project |
one Project | Choose the name of your Project. |
public |
yes/no | Public components are available to every other modeler. If not public then the component is only visible within the project it was defined in. |
label |
text | A human readable label used to identify this model in DMGEN. This will also be used in generated app UI. |
description |
text | Enter a free text description for this complexType. Include a usage statement and any possible misuses. This is used as the annotation for the MC and as help text in the UI. |
lang |
a choice | Choose the language of this MC. |
seq |
text | Enter the sequence number (aka. TabIndex) for this component in the UI. Components nested in a Cluster are grouped together. When two or more components have the same number they will be sorted by label. |
validate |
yes/no | Hard validation is when the UI enforces criteria on input fields. Soft validation allows users to input any value, warns them when it is not within parameters of the component. Then offers to allow correction or select an Exceptional Value as explanation. |
Every Xd value type adds the XdAny switches that decide which of the common elements a record must or may carry:
| Field | Kind | What it sets |
|---|---|---|
require_act |
yes/no | Check this box to require an Access Control Tag element. |
act_class |
text | Enter an Access Control Tag class definition from your chosen vocabulary (e.g., W3C DPV, ISO 27001, custom taxonomy). This value will be included in the ACT element. |
require_vtb |
yes/no | Check this box to require a Valid Time Begin element. |
require_vte |
yes/no | Check this box to require a Valid Time End element. |
require_tr |
yes/no | Check this box to require a Date & Time Recorded element. |
require_mod |
yes/no | Check this box to require a Date & Time for last modified element. |
require_location |
yes/no | Check this box to require a decimal longitude and latitude location. |
ui_type |
one of choose, input, dropdown, radiogroup, radio, checkbox | Choose the preferred UI Type for this component. Use UX best practices. Be aware that the generator may override your selection. |
allow_vtb |
yes/no | Check this box to allow a Valid Time Begin element even when not required. |
allow_vte |
yes/no | Check this box to allow a Valid Time End element even when not required. |
allow_tr |
yes/no | Check this box to allow a Date & Time Recorded element even when not required. |
allow_mod |
yes/no | Check this box to allow a Date & Time for last modified element even when not required. |
allow_location |
yes/no | Check this box to allow a decimal longitude and latitude location even when not required. |
Semantic links. Every component and model carries a set of RDF predicate-object pairs (pred_obj) that link it to terms in published ontologies; they are set on the Semantic Linking step of each wizard. Lifecycle. published locks a component for use in models; retired (with retired_at and retired_reason) hides it from lists and new models while every record made from it stays valid. Neither is edited directly: Save & Publish, Copy and Retire are the controls.
Shared by ordered types (XdOrderedType)
Abstract type defining the concept of ordered values, which includes ordinals as well as true quantities. The implementations require the functions '' and is_strictly_comparable_to ('==').
| Element | Type | Occurs | Meaning |
|---|---|---|---|
ReferenceRange |
substitution group | many | Optional list of ReferenceRanges for this value in its particular measurement context. |
normal-status |
string | optional | Optional normal status indicator of value with respect to normal range for this value. Often included by lab, even if the normal range itself is not included. Coded by ordinals in series HHH, HH, H, (nothing), L, LL, LLL, etc. |
| Field | Kind | What it sets |
|---|---|---|
normal_status |
text | Enter text that indicates a normal status. Example: This should be a Symbol in a XdOrdinal, a date range in a XdTemporal, a value range in a XdCount, etc. |
simple_rr |
one SimpleReferenceRange | |
reference_ranges |
several ReferenceRange | Select the appropriate ReferenceRange that defines each ordered value. The listing is by Project: Reference Range Name. |
Shared by quantified types (XdQuantifiedType)
Abstract type defining the concept of true quantified values, i.e. values which are not only ordered, but which have a precise magnitude.
| Element | Type | Occurs | Meaning |
|---|---|---|---|
magnitude-status |
MagnitudeStatus | optional | An optional status that describes the relationship of this quantity's value to a contextual target or expected value. The target value itself is not defined here but is known from the context of the measurement, such as a process control limit, a clinical reference range, or a business rule. Example: A temperature sensor reports a value of 140C. If the system's target operational temperature is 160C, the magnitude-status for the 140C reading would be 'less_than'. |
accuracy_margin |
decimal | optional | Models ACCURACY. Defines the margin of systematic error, representing how close a measurement is to the true value. This value is expressed as a plus-or-minus percentage of the magnitude. For example, a value of '2.5' indicates the true value is within +/- 2.5% of the stated magnitude. |
precision_digits |
nonNegativeInteger | optional | Models PRECISION. Defines the resolution of the measurement by specifying the number of significant digits after the decimal point. This is especially useful for decimal-based quantities where trailing zeros are significant. For example, a magnitude of '10.50' with a precision_digits of '2' indicates the measurement is precise to the hundredths place. |
| Field | Kind | What it sets |
|---|---|---|
min_magnitude |
decimal | The minimum allowed value for a magnitude. If there isn't a min. then leave blank. |
max_magnitude |
decimal | Any maximum allowed value. If there isn't a max. then leave blank. |
min_inclusive |
decimal | Enter the minimum (inclusive) value for this concept. |
max_inclusive |
decimal | Enter the maximum (inclusive) value for this concept. |
min_exclusive |
decimal | Enter the minimum (exclusive) value for this concept. |
max_exclusive |
decimal | Enter the maximum (exclusive) value for this concept. |
total_digits |
integer | Enter the maximum number of digits for this concept, excluding the decimal separator and the decimal places. |
require_ms |
yes/no | MagnitudeStatus provides a general indication of the accuracy of the magnitude expressed in the XdQuantified subtypes. Should be used to inform users and not for decision support uses. |
require_error |
yes/no | Error margin of measurement, indicating error in the recording method or instrument (+/- %). A logical value of 0 indicates 100% accuracy, i.e. no error. |
require_accuracy |
yes/no | Accuracy of the value in the magnitude attribute in the range 0% to (+/-)100%. A value of 0 means that the accuracy is unknown. |
allow_ms |
yes/no | Allow a UI component for this element even if it is not required. |
allow_error |
yes/no | Allow a UI component for this element even if it is not required. |
allow_accuracy |
yes/no | Allow a UI component for this element even if it is not required. |
Data Types
The twelve value types. Each carries one value (or, for Temporal, one of nine representations) plus what every component carries.
| Wizard label | Model | The grid says |
|---|---|---|
| String | XdString | Text values with optional length and format constraints |
| Boolean | XdBoolean | True/false values with custom labels |
| Count | XdCount | Integer values with magnitude constraints |
| Quantity | XdQuantity | Decimal values with units and precision |
| Temporal | XdTemporal | Date, time, datetime, and duration values |
| Float | XdFloat | Single-precision floating point values |
| Double | XdDouble | Double-precision floating point values |
| Ordinal | XdOrdinal | Ordered/ranked categorical values |
| Link | XdLink | URI references to external resources |
| File | XdFile | File/media content with encoding metadata |
| Token | XdToken | Tokenized string values (no whitespace) |
| Interval | XdInterval | Bounded ranges with upper/lower limits |
String (XdString)
Use it for. Free text and coded text: names, addresses, notes, and any pick-list without an inherent order. The permitted values are bound into the component, so the list stops being validation on one sheet and becomes part of the definition everyone inherits.
In the schema: XdStringType, extending XdAnyType. Inherits XdAny.
The string data type can contain characters, line feeds, carriage returns, and tab characters. The use cases are for any free form text entry or for any enumerated lists. Additionally the minimum and maximum lengths may be set and regular expression patterns may be specified.
In the record (the elements this type adds; every Xd type also carries the common elements below):
| Element | Type | Occurs | Meaning |
|---|---|---|---|
xdstring-value |
string | optional | The string value of the item. |
xdstring-language |
language | optional | Optional indicator of the localized language in which this data-type is written. Used when the language used here is different from the enclosing Data Model. |
What you set (the fields this type adds in SDCStudio):
| Field | Kind | What it sets |
|---|---|---|
min_length |
integer | Enter the minimum number of characters that are required for this string. If the character is optional, leave it blank. |
max_length |
integer | Enter the maximum number of characters that are required for this string. If the character is optional, leave it blank. |
exact_length |
integer | Enter the exact length of the string. It should be defined only when the number of characters is always fixed (e.g. codes and identifiers). |
enums |
text, one per line | Enter the set of values of the string (e.g.Male,Female). One per line. |
enum_descr |
text, one per line | Enter the set of descriptions for the enumerations. One per line. |
definitions |
text, one per line | Enter a URI (preferably a URL) defining each enumeration. One per line. |
def_val |
text | Enter a default value (up to 255 characters) for the string if desired. Cannot contain 'http://' nor 'https://'. Notice that if other restrictions are used, this default is ignored. |
str_fmt |
text | Enter a regular expression used to constrain the string to a specific format. See the XML reduced regex set here: https://uibakery.io/regex-library/xml |
Boolean (XdBoolean)
Use it for. A yes-or-no with both answers named: Granted and Denied, not 1 and 0. Six months later nobody has to ask what the 1 meant.
In the schema: XdBooleanType, extending XdAnyType. Inherits XdAny.
An enumerated type which represents boolean decisions. Such as true/false or yes/no answers. Useful where it is essential to devise the meanings (often questions in subjective data) carefully so that the only allowed result values result in one the options; true or false but are presented to the user as a list of options. The possible choices for True or False are enumerations in the DM. The reference model defines 'true-value' and 'false-value' in an xsd:choice so only one or the other may be present in the instance data. The XdBooleanType should not be used as a replacement for enumerated choice types such as male/female, or similar choice sets. Such values should be modeled as XdStrings with enumerations and may reference a controlled vocabulary. In any case, the choice set often has more than two values. The elements, 'true-value' and 'false-value' are contained in an xsd:choice and only one or the other is instantiated in the instance data with its value coming from the enumerations defined in a Data Model.
In the record (the elements this type adds; every Xd type also carries the common elements below):
| Element | Type | Occurs | Meaning |
|---|---|---|---|
true-value |
string | one of | A string that represents a boolean True in the implementation. These are constrained by a set of enumerations in the CM. |
false-value |
string | one of | A string that represents a boolean False in the implementation. These are constrained by a set of enumerations in the CM. |
What you set (the fields this type adds in SDCStudio):
| Field | Kind | What it sets |
|---|---|---|
trues |
text, one per line | Enter the set of values that are Boolean TRUEs. For instance, if this is a 'Yes/No' type of concept, usually the 'Yes' is a Boolean TRUE. Enter one per line. |
falses |
text, one per line | Enter the set of values that are Boolean FALSEs. For instance, if this is a 'Yes/No' type of concept, usually the 'No' is a Boolean FALSE. Enter one per line. |
Count (XdCount)
Use it for. Counting discrete things: pallets, visits, employees, doses dispensed. Always a whole number, and it carries its own unit, so the value is not 17 but 17 pallets.
In the schema: XdCountType, extending XdQuantifiedType. Inherits XdQuantified, XdOrdered, XdAny.
Countable quantities. Used for countable types such as pregnancies and steps (taken by a physiotherapy patient), number of cigarettes smoked in a day, etc. The thing(s) being counted must be represented in the units element. Misuse:Not used for amounts of physical entities (which all have standardized units).
In the record (the elements this type adds; every Xd type also carries the common elements below):
| Element | Type | Occurs | Meaning |
|---|---|---|---|
xdcount-value |
integer | optional | Integer value of the counted items. |
xdcount-units |
XdStringType | required | The name or type of the items counted. Examples are cigarettes, drinks, pregnancies, episodes, widgets, etc. May or may not come from a standard terminology. |
What you set (the fields this type adds in SDCStudio):
| Field | Kind | What it sets |
|---|---|---|
units |
one Units | Choose a units of measurement of this concept. |
Quantity (XdQuantity)
Use it for. Measuring something, with required units: 2.5 kg, 120 mmHg, 499.00 USD. If a value can be halved and still mean something it is a measurement. Money is a Quantity and the currency is the unit.
In the schema: XdQuantityType, extending XdQuantifiedType. Inherits XdQuantified, XdOrdered, XdAny.
Quantified type representing specific quantities, i.e. quantities expressed as a magnitude and units. Can also be used for time durations, where it is more convenient to treat these as simply a number of individual seconds, minutes, hours, days, months, years, etc. when no temporal calculation is to be performed.
In the record (the elements this type adds; every Xd type also carries the common elements below):
| Element | Type | Occurs | Meaning |
|---|---|---|---|
xdquantity-value |
decimal | optional | Numeric decimal value of the quantity. |
xdquantity-units |
XdStringType | required | The name or type of the quantity. Examples are "kg", "mmHg", "ms-1", "km/h". Should come from a standard terminology. |
What you set (the fields this type adds in SDCStudio):
| Field | Kind | What it sets |
|---|---|---|
fraction_digits |
integer | Enter the maximum number of decimal places. |
units |
one Units | Choose a units of measurement of this concept. |
Temporal (XdTemporal)
Use it for. Dates and times at a deliberate granularity: a date of birth is a date, an event is a date and a time, a lease is a duration. Saying which one you mean stops the receiving system inventing midnight.
In the schema: XdTemporalType, extending XdOrderedType. Inherits XdOrdered, XdAny.
Type defining a temporal value. It allows for varying levels of precision by offering a choice of exactly one temporal representation, from a full dateTime to a partial date like a year-month. In a Data Model, this type is constrained via restriction to a subset of the choices, allowing the modeler to define precisely which temporal representations are permitted for a given field (e.g., allowing only xsd:date or xsd:gYearMonth for a date of birth).
In the record (the elements this type adds; every Xd type also carries the common elements below):
| Element | Type | Occurs | Meaning |
|---|---|---|---|
xdtemporal-date |
date | one of | Represents a specific calendar date (YYYY-MM-DD), with an optional timezone. |
xdtemporal-time |
time | one of | Represents a recurring time of day (hh:mm:ss.sss), with an optional timezone. |
xdtemporal-datetime |
dateTime | one of | Represents a specific instant in time (YYYY-MM-DDThh:mm:ss.sss), with an optional timezone. |
xdtemporal-duration |
duration | one of | Represents a duration of time as defined by ISO 8601 (e.g., P1Y2M3D). |
xdtemporal-year |
gYear | one of | Represents a specific Gregorian calendar year (YYYY). |
xdtemporal-year-month |
gYearMonth | one of | Represents a specific Gregorian month in a specific year (YYYY-MM). |
xdtemporal-month |
gMonth | one of | Represents a recurring Gregorian month (--MM--). |
xdtemporal-month-day |
gMonthDay | one of | Represents a recurring Gregorian day in a recurring month (--MM-DD). |
xdtemporal-day |
gDay | one of | Represents a recurring Gregorian day (---DD). |
What you set (the fields this type adds in SDCStudio):
| Field | Kind | What it sets |
|---|---|---|
allow_duration |
yes/no | If Duration is allowed, no other types will be permitted. |
allow_date |
yes/no | Check this box if complete date entry is allowed. |
allow_time |
yes/no | Check this box if time only entry is allowed. |
allow_datetime |
yes/no | Check this box if complete dates and times are allowed. |
allow_day |
yes/no | Check this box if day only is allowed. |
allow_month |
yes/no | Check this box if month only is allowed. |
allow_year |
yes/no | Check this box if year only entry is allowed. |
allow_year_month |
yes/no | Check this box if combination of years and months are allowed. |
allow_month_day |
yes/no | Check this box if combination of months and days are allowed. |
Float (XdFloat)
Use it for. A 32-bit IEEE floating-point value with optional units, for scientific and engineering data where that representation is the right one. Not for money or business measures: those are Quantities.
In the schema: XdFloatType, extending XdQuantifiedType. Inherits XdQuantified, XdOrdered, XdAny.
Quantified type representing specific a value as a floating point (32 bit) number and optional units. This is a xsd:float.
In the record (the elements this type adds; every Xd type also carries the common elements below):
| Element | Type | Occurs | Meaning |
|---|---|---|---|
xdfloat-value |
float | optional | Float value. This type accepts several "special" values: positive zero (0), negative zero (-0) (which is greater than positive 0 but less than any negative value), infinity (INF) (which is greater than any value), negative infinity (-INF) (which is less than any float, and "not a number" (NaN) |
xdfloat-units |
XdStringType | optional | The name or type of the float value. May or may not come from a standardized vocabulary. |
What you set (the fields this type adds in SDCStudio):
| Field | Kind | What it sets |
|---|---|---|
units |
one Units | Choose a units of measurement of this concept. |
Double (XdDouble)
Use it for. A 64-bit IEEE floating-point value with optional units, for scientific and engineering data where that representation is the right one. Not for money or business measures: those are Quantities.
In the schema: XdDoubleType, extending XdQuantifiedType. Inherits XdQuantified, XdOrdered, XdAny.
Quantified type representing specific a value as a 64 bit number and optional units. This is a xsd:double.
In the record (the elements this type adds; every Xd type also carries the common elements below):
| Element | Type | Occurs | Meaning |
|---|---|---|---|
xddouble-value |
double | optional | Double value. This type accepts several "special" values: positive zero (0), negative zero (-0) (which is greater than positive 0 but less than any negative value), infinity (INF) (which is greater than any value), negative infinity (-INF) (which is less than any float, and "not a number" (NaN) |
xddouble-units |
XdStringType | optional | The name or type of the value. May or may not come from a standardized vocabulary. |
What you set (the fields this type adds in SDCStudio):
| Field | Kind | What it sets |
|---|---|---|
units |
one Units | Choose a units of measurement for this concept. |
Ordinal (XdOrdinal)
Use it for. Ordered categories: mild, moderate, severe; bronze, silver, gold. Carries the symbol a person reads and the rank a machine sorts by, and each symbol can point at its definition.
In the schema: XdOrdinalType, extending XdOrderedType. Inherits XdOrdered, XdAny.
Models rankings and scores, e.g., pain, Apgar values, educational level, and the Likert Scale where there is; * implied ordering, * no implication that the distance between each value is constant, and * the total number of values is finite. Note that the term 'ordinal' in mathematics means natural numbers only. In this case, any decimal is allowed since negative, and zero values are used by medical and other professionals for centering values around a neutral point. Also, decimal values are sometimes used such as 0.5 or .25 Examples of sets of ordinal values are; * -3, -2, -1, 0, 1, 2, 3 -- reflex response values * 0, 1, 2 -- Apgar values Also used for recording any clinical or other data which is customarily recorded using symbolic values. Examples; * the results on a urinalysis strip, e.g. {neg, trace, +, ++, +++} are used for leukocytes, protein, nitrites etc; * for non-haemolysed blood {neg, trace, moderate}; * for haemolysed blood {neg, trace, small, moderate, large}. Elements ordinal and symbol MUST have the same number of enumerations in the RMC.
In the record (the elements this type adds; every Xd type also carries the common elements below):
| Element | Type | Occurs | Meaning |
|---|---|---|---|
ordinal |
decimal | required | Value in ordered enumeration of values. The base integer is zero with any number of integer values used to order the symbols. Example 1: 0 = Trace, 1 = +, 2 = ++, 3 = +++, etc. Example 2: 0 = Mild, 1 = Moderate, 2 = Severe |
symbol |
string | required | Coded textual representation of this value in the enumeration, which may be strings made from "+", or other enumerations of terms such as "mild", "moderate", "severe", or even the same number series as the values, e.g. "1", "2", "3". |
What you set (the fields this type adds in SDCStudio):
| Field | Kind | What it sets |
|---|---|---|
ordinals |
text, one per line | Enter the ordered enumeration of values. The base integer is zero with any number of integer values used to order the symbols. Example A: 0 = Trace, 1 = +, 2 = ++, 3 = +++, etc. Example B: 0 = Mild, 1 = Moderate, 2 = Severe. One per line. |
symbols |
text, one per line | Enter the symbols or the text that represent the ordinal values, which may be strings made from '+' symbols, or other enumerations of terms such as 'mild', 'moderate', 'severe', or even the same number series used for the ordinal values, e.g. '1', '2', '3'.. One per line. |
annotations |
text, one per line | Enter a URI for as a definition for each symbol. One per line. If the URI is the same for each symbol then just put it on the first line. |
Link (XdLink)
Use it for. A reference to another record or resource that carries the relationship in words (this document is the subject_of that one) rather than as a bare foreign key.
In the schema: XdLinkType, extending XdAnyType. Inherits XdAny.
Used to specify a Universal Resource Identifier. Set the pattern facet to accommodate your needs in the DM. Intended use is to provide a mechanism that can be used to link together Data Models. The relation element allows for the use of a descriptive term for the link with an optional URI pointing to the source vocabulary. In most usecases the modeler will define all three of these using the 'fixed' attribute. Other usecases will have the 'relation' and 'relation-uri' elements fixed and the application will provide the 'link-value'.
In the record (the elements this type adds; every Xd type also carries the common elements below):
| Element | Type | Occurs | Meaning |
|---|---|---|---|
link |
anyURI | optional | A dereferenceable (or not) URL to another CMC or other model like entity. |
relation |
string | required | A required term, normally drawn from a vocabulary or ontology such as the OBO RO. |
relation-uri |
anyURI | optional | A URI where the definition of the relation element term can be found. Normally points to an ontology such as the OBO RO http://purl.obolibrary.org/obo/ro.owl |
What you set (the fields this type adds in SDCStudio):
| Field | Kind | What it sets |
|---|---|---|
link |
text | The Link URI that points to the linked item. |
relation |
text | The relationship describing the link. Usually constrained by an ontology such as OBO RO. |
relation_uri |
text | The relationship URI. Points to the vocabulary, ontology, etc that provides the relation. |
File (XdFile)
Use it for. A file or media item, embedded in the record or referenced by URI, with its media type, encoding, size and hash.
In the schema: XdFileType, extending XdAnyType. Inherits XdAny.
A type to use for encapsulated content (aka. files) for image, audio and other media types with a defined MIME type. This type provides a choice of embedding the content into the data or using a URL to point to the content.
In the record (the elements this type adds; every Xd type also carries the common elements below):
| Element | Type | Occurs | Meaning |
|---|---|---|---|
size |
integer | optional | Original size in bytes of unencoded encapsulated data. I.e. encodings such as base64, hexadecimal, etc. do not change the value of this element. |
encoding |
string | optional | Name of character encoding scheme in which this value is encoded. Coded from the IANA charcater set table: http://www.iana.org/assignments/character-sets Unicode is the default assumption in S3Model, with UTF-8 being the assumed encoding. This element allows for variations from these assumptions. |
xdfile-language |
language | optional | Optional indicator of the localized language of the content. Typically remains optional in the CMC and used at runtime when the content is in a different language from the enclosing CMC. |
formalism |
string | optional | Name of the formalism or syntax used to inform an application regarding a candidate parser to use on the content. Examples might include: 'ATL', 'MOLA', 'QVT', 'GDL', 'GLIF', etc. |
media-type |
string | optional | Media (MIME) type of the original media-content w/o any compression. See IANA registered types: http://www.iana.org/assignments/media-types/media-types.xhtml |
compression-type |
string | optional | Compression/archiving mime-type. If this elements does not exist then it means there is no compression/archiving. For a list of common mime-types for compression/archiving see: http://en.wikipedia.org/wiki/List_of_archive_formats. |
hash-result |
string | optional | Hash function result of the 'media-content'. There must be a corresponding hash function type listed for this to have any meaning. See: http://en.wikipedia.org/wiki/List_of_hash_functions#Cryptographic_hash_functions |
hash-function |
string | optional | Hash function used to compute hash-result. See: http://en.wikipedia.org/wiki/List_of_hash_functions#Cryptographic_hash_functions |
alt-txt |
string | optional | Text to display in lieu of multimedia display or execution. |
uri |
anyURI | one of | URI reference to electronic information stored outside the record as a file, database entry etc, if supplied as a reference. |
media-content |
base64Binary | one of | The content, if stored locally. The CMC modeler chooses either a uri or local content element. |
What you set (the fields this type adds in SDCStudio):
| Field | Kind | What it sets |
|---|---|---|
media_type |
text, one per line | The allowed Media Types (formerly known as MIME Types) of the included data, one per line; i.e. text/html |
encoding |
text | List of encoding types at IANA. |
language |
a choice | Choose the DEFAULT language of the content. |
alt_txt |
text | Default alternative text label to display when the content cannot be displayed. |
content_mode |
one of select, url, embed | Select how the content will referenced, either via a URL or included in the data instance. |
Token (XdToken)
Use it for. Codes and identifiers: an SKU, an ICD-10 code, a policy number. Leading, trailing and repeated whitespace is normalized, so a stray space in one system never makes the same code fail to match.
In the schema: XdTokenType, extending XdAnyType. Inherits XdAny.
The token data type represents normalized strings where leading and trailing whitespace is removed and internal whitespace is normalized to single spaces. This type is useful for identifiers, codes, and other normalized text values that should not contain excessive whitespace. The use cases are for identifiers, codes, enumerated values, and other normalized text entries.
In the record (the elements this type adds; every Xd type also carries the common elements below):
| Element | Type | Occurs | Meaning |
|---|---|---|---|
xdtoken-value |
token | optional | The token value of the item. This is a normalized string where leading and trailing whitespace is removed and internal whitespace is normalized to single spaces. |
xdtoken-language |
language | optional | Optional indicator of the localized language in which this data-type is written. Used when the language used here is different from the enclosing Data Model. |
What you set (the fields this type adds in SDCStudio):
| Field | Kind | What it sets |
|---|---|---|
min_length |
integer | Enter the minimum number of characters that are required for this token. If the token is optional, leave it blank. |
max_length |
integer | Enter the maximum number of characters that are required for this token. If the token is optional, leave it blank. |
exact_length |
integer | Enter the exact length of the token. It should be defined only when the number of characters is always fixed (e.g. codes and identifiers). |
enums |
text, one per line | Enter the set of values of the token (e.g. Male,Female). One per line. |
enum_descr |
text, one per line | Enter the set of descriptions for the enumerations. One per line. |
definitions |
text, one per line | Enter a URI (preferably a URL) defining each enumeration. One per line. |
def_val |
text | Enter a default value (up to 255 characters) for the token if desired. Cannot contain 'http://' nor 'https://'. Notice that if other restrictions are used, this default is ignored. |
str_fmt |
text | Enter a regular expression used to constrain the token to a specific format. See the XML reduced regex set here: https://uibakery.io/regex-library/xml |
language |
a choice | Choose the language of this token type. |
Interval (XdInterval)
Use it for. A bounded range of ordered values: integers, decimals, floats, doubles, dates, times, date-times or durations. Used mostly as the interval of a reference range.
In the schema: XdIntervalType, extending XdAnyType. Inherits XdAny.
A generic type for defining an interval (i.e., range) of ordered values. It is primarily used to define reference ranges for quantified data.
In the record (the elements this type adds; every Xd type also carries the common elements below):
| Element | Type | Occurs | Meaning |
|---|---|---|---|
lower |
InvlType | optional | The lower boundary of the interval. Must be of the same datatype as the 'upper' boundary. |
upper |
InvlType | optional | The upper boundary of the interval. Must be of the same datatype as the 'lower' boundary. |
lower_included |
boolean | required | |
upper_included |
boolean | required | |
lower_bounded |
boolean | required | |
upper_bounded |
boolean | required | |
interval-units |
InvlUnits | optional |
What you set (the fields this type adds in SDCStudio):
| Field | Kind | What it sets |
|---|---|---|
lower |
text | Enter the lower value of the interval. This will be used to set the minInclusive facet. |
upper |
text | Enter the upper value of the interval. This will be used to set the maxInclusive facet. |
interval_type |
one of None, int, decimal, float, dateTime, date, time, duration | The datatype of the upper and lower values. |
lower_included |
yes/no | Uncheck this box if the lower value is excluded in the interval |
upper_included |
yes/no | Uncheck this box if the upper value is excluded in the interval |
lower_bounded |
yes/no | Uncheck this box if the lower value is unbounded. If unchecked, instances must be set to xsi:nil='true' |
upper_bounded |
yes/no | Uncheck this box if the lower value is unbounded. If unchecked, instances must be set to xsi:nil='true' |
units_name |
text | OPTIONAL: Enter the common name or abbreviation for these units. |
units_uri |
text | Enter the URL pointing to the definition for these units. This is mandatory if you entered a Units Name. |
List Types
The eight list types carry several values of one kind in one component. In the record the values are one space-delimited string; the model sets how many items, whether duplicates are allowed and whether order matters. The five numeric lists are quantified: they carry units and magnitude constraints like their scalar counterparts.
| Wizard label | Model | The grid says |
|---|---|---|
| Boolean List | XdBooleanList | List of boolean values |
| String List | XdStringList | List of string values |
| Token List | XdTokenList | List of token values |
| Decimal List | XdDecimalList | List of decimal values with units |
| Double List | XdDoubleList | List of double values with units |
| Integer List | XdIntegerList | List of integer values with units |
| Non-Negative Int List | XdNonNegativeIntegerList | List of non-negative integers |
| Positive Int List | XdPositiveIntegerList | List of positive integers |
Boolean List (XdBooleanList)
Use it for. Several yes-or-no flags of one kind in one component, space-delimited in the record.
In the schema: XdBooleanListType, extending XdAnyType. Inherits XdAny.
A data type for a white space-delimited list of boolean values. This type provides efficient storage and transmission of multiple boolean values in a single field. Useful for scientific measurements, batch processing results, and other scenarios where multiple related boolean values need to be transmitted together.
In the record (the elements this type adds; every Xd type also carries the common elements below):
| Element | Type | Occurs | Meaning |
|---|---|---|---|
xdbooleanlist-value |
BooleanListSimpleType | optional | Space-delimited list of boolean values. Values should be 'true' or 'false' separated by single spaces. |
What you set (the fields this type adds in SDCStudio):
| Field | Kind | What it sets |
|---|---|---|
min_items |
integer | Enter the minimum number of items that are required for this list. If the list is optional, leave it blank. |
max_items |
integer | Enter the maximum number of items that are allowed for this list. If the list has no upper limit, leave it blank. |
exact_items |
integer | Enter the exact number of items required for this list. It should be defined only when the number of items is always fixed. |
allow_duplicates |
yes/no | Check this box to allow duplicate values in the list. Uncheck to enforce unique values only. |
ordered |
yes/no | Check this box if the order of items in the list is significant and should be preserved. |
String List (XdStringList)
Use it for. Several text values of one kind in one component: tags, aliases, keywords.
In the schema: XdStringListType, extending XdAnyType. Inherits XdAny.
A data type for a white space-delimited list of string values. This type provides efficient storage and transmission of multiple string values in a single field. Useful for identifiers, codes, and other scenarios where multiple related string values need to be transmitted together.
In the record (the elements this type adds; every Xd type also carries the common elements below):
| Element | Type | Occurs | Meaning |
|---|---|---|---|
xdstringlist-value |
StringListSimpleType | optional | Space-delimited list of string values. Values should be valid strings separated by single spaces. |
What you set (the fields this type adds in SDCStudio):
| Field | Kind | What it sets |
|---|---|---|
min_items |
integer | Enter the minimum number of items that are required for this list. If the list is optional, leave it blank. |
max_items |
integer | Enter the maximum number of items that are allowed for this list. If the list has no upper limit, leave it blank. |
exact_items |
integer | Enter the exact number of items required for this list. It should be defined only when the number of items is always fixed. |
allow_duplicates |
yes/no | Check this box to allow duplicate values in the list. Uncheck to enforce unique values only. |
ordered |
yes/no | Check this box if the order of items in the list is significant and should be preserved. |
Token List (XdTokenList)
Use it for. Several codes of one kind in one component, each normalized as a Token is.
In the schema: XdTokenListType, extending XdAnyType. Inherits XdAny.
A data type for a white space-delimited list of normalized token values. This type provides efficient storage and transmission of multiple normalized token values in a single field. Useful for identifiers, codes, and other scenarios where multiple related normalized token values need to be transmitted together. Token values have leading and trailing whitespace removed and internal whitespace normalized to single spaces.
In the record (the elements this type adds; every Xd type also carries the common elements below):
| Element | Type | Occurs | Meaning |
|---|---|---|---|
xdtokenlist-value |
TokenListSimpleType | optional | Space-delimited list of normalized token values. Values should be valid tokens separated by single spaces. Token values have leading and trailing whitespace removed and internal whitespace normalized to single spaces. |
What you set (the fields this type adds in SDCStudio):
| Field | Kind | What it sets |
|---|---|---|
min_items |
integer | Enter the minimum number of items that are required for this list. If the list is optional, leave it blank. |
max_items |
integer | Enter the maximum number of items that are allowed for this list. If the list has no upper limit, leave it blank. |
exact_items |
integer | Enter the exact number of items required for this list. It should be defined only when the number of items is always fixed. |
allow_duplicates |
yes/no | Check this box to allow duplicate values in the list. Uncheck to enforce unique values only. |
ordered |
yes/no | Check this box if the order of items in the list is significant and should be preserved. |
Decimal List (XdDecimalList)
Use it for. Several decimal readings of one kind with one set of units: a series of measurements.
In the schema: XdDecimalListType, extending XdQuantifiedType. Inherits XdQuantified, XdOrdered, XdAny.
A data type for a white space-delimited list of decimal values. This type provides efficient storage and transmission of multiple decimal values in a single field. Useful for scientific measurements, statistical data, and other scenarios where multiple related decimal values need to be transmitted together. All values in the list share the same units.
In the record (the elements this type adds; every Xd type also carries the common elements below):
| Element | Type | Occurs | Meaning |
|---|---|---|---|
xddecimallist-value |
DecimalListSimpleType | optional | Space-delimited list of decimal values. Values should be valid decimal numbers separated by single spaces. |
xddecimallist-units |
XdStringType | required | The name or type of the decimal list values. Examples are "kg", "mmHg", "ms-1", "km/h". Should come from a standard terminology. All values in the list share these units. |
What you set (the fields this type adds in SDCStudio):
| Field | Kind | What it sets |
|---|---|---|
min_items |
integer | Enter the minimum number of items that are required for this list. If the list is optional, leave it blank. |
max_items |
integer | Enter the maximum number of items that are allowed for this list. If the list has no upper limit, leave it blank. |
exact_items |
integer | Enter the exact number of items required for this list. It should be defined only when the number of items is always fixed. |
allow_duplicates |
yes/no | Check this box to allow duplicate values in the list. Uncheck to enforce unique values only. |
ordered |
yes/no | Check this box if the order of items in the list is significant and should be preserved. |
units |
text | The units for all values in this list (e.g., 'degrees Celsius', 'counts per second') |
Double List (XdDoubleList)
Use it for. Several double-precision readings of one kind with one set of units.
In the schema: XdDoubleListType, extending XdQuantifiedType. Inherits XdQuantified, XdOrdered, XdAny.
A data type for a white space-delimited list of double precision values. This type provides efficient storage and transmission of multiple double values in a single field. Useful for scientific measurements, mathematical computations, and other scenarios where multiple related double precision values need to be transmitted together. All values in the list share the same units.
In the record (the elements this type adds; every Xd type also carries the common elements below):
| Element | Type | Occurs | Meaning |
|---|---|---|---|
xddoublelist-value |
DoubleListSimpleType | optional | Space-delimited list of double precision values. Values should be valid double numbers separated by single spaces. |
xddoublelist-units |
XdStringType | required | The name or type of the double list values. Examples are "kg", "mmHg", "ms-1", "km/h". Should come from a standard terminology. All values in the list share these units. |
What you set (the fields this type adds in SDCStudio):
| Field | Kind | What it sets |
|---|---|---|
min_items |
integer | Enter the minimum number of items that are required for this list. If the list is optional, leave it blank. |
max_items |
integer | Enter the maximum number of items that are allowed for this list. If the list has no upper limit, leave it blank. |
exact_items |
integer | Enter the exact number of items required for this list. It should be defined only when the number of items is always fixed. |
allow_duplicates |
yes/no | Check this box to allow duplicate values in the list. Uncheck to enforce unique values only. |
ordered |
yes/no | Check this box if the order of items in the list is significant and should be preserved. |
units |
text | The units for all values in this list (e.g., 'degrees Celsius', 'counts per second') |
Integer List (XdIntegerList)
Use it for. Several whole numbers of one kind with one set of units.
In the schema: XdIntegerListType, extending XdQuantifiedType. Inherits XdQuantified, XdOrdered, XdAny.
A data type for a white space-delimited list of integer values. This type provides efficient storage and transmission of multiple integer values in a single field. Useful for counts, indices, and other scenarios where multiple related integer values need to be transmitted together. All values in the list share the same units.
In the record (the elements this type adds; every Xd type also carries the common elements below):
| Element | Type | Occurs | Meaning |
|---|---|---|---|
xdintegerlist-value |
IntegerListSimpleType | optional | Space-delimited list of integer values. Values should be valid integers separated by single spaces. |
xdintegerlist-units |
XdStringType | required | The name or type of the integer list values. Examples are "items", "counts", "indices". Should come from a standard terminology. All values in the list share these units. |
What you set (the fields this type adds in SDCStudio):
| Field | Kind | What it sets |
|---|---|---|
min_items |
integer | Enter the minimum number of items that are required for this list. If the list is optional, leave it blank. |
max_items |
integer | Enter the maximum number of items that are allowed for this list. If the list has no upper limit, leave it blank. |
exact_items |
integer | Enter the exact number of items required for this list. It should be defined only when the number of items is always fixed. |
allow_duplicates |
yes/no | Check this box to allow duplicate values in the list. Uncheck to enforce unique values only. |
ordered |
yes/no | Check this box if the order of items in the list is significant and should be preserved. |
units |
text | The units for all values in this list (e.g., 'degrees Celsius', 'counts per second') |
Non-Negative Int List (XdNonNegativeIntegerList)
Use it for. Several whole numbers of one kind that cannot be negative, with one set of units.
In the schema: XdNonNegativeIntegerListType, extending XdQuantifiedType. Inherits XdQuantified, XdOrdered, XdAny.
A data type for a white space-delimited list of non-negative integer values. This type provides efficient storage and transmission of multiple non-negative integer values in a single field. Useful for counts, indices, and other scenarios where multiple related non-negative integer values need to be transmitted together. All values in the list share the same units.
In the record (the elements this type adds; every Xd type also carries the common elements below):
| Element | Type | Occurs | Meaning |
|---|---|---|---|
xdnonnegativeintegerlist-value |
NonNegativeIntegerListSimpleType | optional | Space-delimited list of non-negative integer values. Values should be valid non-negative integers separated by single spaces. |
xdnonnegativeintegerlist-units |
XdStringType | required | The name or type of the non-negative integer list values. Examples are "items", "counts", "indices". Should come from a standard terminology. All values in the list share these units. |
What you set (the fields this type adds in SDCStudio):
| Field | Kind | What it sets |
|---|---|---|
min_items |
integer | Enter the minimum number of items that are required for this list. If the list is optional, leave it blank. |
max_items |
integer | Enter the maximum number of items that are allowed for this list. If the list has no upper limit, leave it blank. |
exact_items |
integer | Enter the exact number of items required for this list. It should be defined only when the number of items is always fixed. |
allow_duplicates |
yes/no | Check this box to allow duplicate values in the list. Uncheck to enforce unique values only. |
ordered |
yes/no | Check this box if the order of items in the list is significant and should be preserved. |
units |
text | The units for all values in this list (e.g., 'degrees Celsius', 'counts per second') |
Positive Int List (XdPositiveIntegerList)
Use it for. Several whole numbers of one kind that must be greater than zero, with one set of units.
In the schema: XdPositiveIntegerListType, extending XdQuantifiedType. Inherits XdQuantified, XdOrdered, XdAny.
A data type for a white space-delimited list of positive integer values. This type provides efficient storage and transmission of multiple positive integer values in a single field. Useful for counts, indices, and other scenarios where multiple related positive integer values need to be transmitted together. All values in the list share the same units.
In the record (the elements this type adds; every Xd type also carries the common elements below):
| Element | Type | Occurs | Meaning |
|---|---|---|---|
xdpositiveintegerlist-value |
PositiveIntegerListSimpleType | optional | Space-delimited list of positive integer values. Values should be valid positive integers separated by single spaces. |
xdpositiveintegerlist-units |
XdStringType | required | The name or type of the positive integer list values. Examples are "items", "counts", "indices". Should come from a standard terminology. All values in the list share these units. |
What you set (the fields this type adds in SDCStudio):
| Field | Kind | What it sets |
|---|---|---|
min_items |
integer | Enter the minimum number of items that are required for this list. If the list is optional, leave it blank. |
max_items |
integer | Enter the maximum number of items that are allowed for this list. If the list has no upper limit, leave it blank. |
exact_items |
integer | Enter the exact number of items required for this list. It should be defined only when the number of items is always fixed. |
allow_duplicates |
yes/no | Check this box to allow duplicate values in the list. Uncheck to enforce unique values only. |
ordered |
yes/no | Check this box if the order of items in the list is significant and should be preserved. |
units |
text | The units for all values in this list (e.g., 'degrees Celsius', 'counts per second') |
Structural
The two types that give a record its shape.
| Wizard label | Model | The grid says |
|---|---|---|
| Cluster | Cluster | Group components into hierarchical structures |
| Units | Units | Define measurement units for quantified types |
Cluster
Use it for. The grouping. A Governed Data Record is a Cluster of components and smaller clusters, and a data model names one Cluster as its structure.
In the schema: ClusterType, extending ItemType.
The grouping component, which may contain further instances of itself or any eXtended datatype, in an ordered list. This can serve as the root component for arbitrarily complex structures.
In the record (the elements this type adds; every Xd type also carries the common elements below):
| Element | Type | Occurs | Meaning |
|---|---|---|---|
label |
string | optional | Descriptive subject line for this group of CMCs. |
Item |
substitution group | many | List of ItemTypes which may be XdAdapterTypes and/or ClusterTypes. |
What you set (the fields this type adds in SDCStudio):
| Field | Kind | What it sets |
|---|---|---|
asserts |
text, one per line | XPath assert statements applied to this Cluster. One per line. These enable cross-field validation within the Cluster. |
clusters |
several Cluster | Select zero or more Clusters to include in this Cluster. You cannot put a Cluster inside itself, it will be ignored if you select itself. |
xdboolean |
several XdBoolean | Select zero or more booleans to include in this Cluster. |
xdlink |
several XdLink | Select zero or more uris to include in this Cluster. |
xdstring |
several XdString | Select zero or more strings to include in this Cluster. |
xdtoken |
several XdToken | Select zero or more tokens to include in this Cluster. |
xdfile |
several XdFile | Select zero or more media items to include in this Cluster. |
xdordinal |
several XdOrdinal | Select zero or more ordinals to include in this Cluster. |
xdcount |
several XdCount | Select zero or more counts to include in this Cluster. |
xddouble |
several XdDouble | Select zero or more doubles to include in this Cluster. |
xdquantity |
several XdQuantity | Select zero or more quantity items to include in this Cluster. |
xdfloat |
several XdFloat | Select zero or more floats to include in this Cluster. |
xdtemporal |
several XdTemporal | Select zero or more temporal items to include in this Cluster. |
xdbooleanlist |
several XdBooleanList | Select zero or more boolean lists to include in this Cluster. |
xddecimallist |
several XdDecimalList | Select zero or more decimal lists to include in this Cluster. |
xddoublelist |
several XdDoubleList | Select zero or more double lists to include in this Cluster. |
xdintegerlist |
several XdIntegerList | Select zero or more integer lists to include in this Cluster. |
xdnonnegativeintegerlist |
several XdNonNegativeIntegerList | Select zero or more non-negative integer lists to include in this Cluster. |
xdpositiveintegerlist |
several XdPositiveIntegerList | Select zero or more positive integer lists to include in this Cluster. |
xdstringlist |
several XdStringList | Select zero or more string lists to include in this Cluster. |
xdtokenlist |
several XdTokenList | Select zero or more token lists to include in this Cluster. |
Units
Use it for. The permitted units for a quantified component, published as a string type with the unit names as its enumeration. Count, Quantity, Float, Double and the numeric lists each point at a Units component.
In the schema: XdStringType, extending XdAnyType. Inherits XdAny.
The string data type can contain characters, line feeds, carriage returns, and tab characters. The use cases are for any free form text entry or for any enumerated lists. Additionally the minimum and maximum lengths may be set and regular expression patterns may be specified.
In the record (the elements this type adds; every Xd type also carries the common elements below):
| Element | Type | Occurs | Meaning |
|---|---|---|---|
xdstring-value |
string | optional | The string value of the item. |
xdstring-language |
language | optional | Optional indicator of the localized language in which this data-type is written. Used when the language used here is different from the enclosing Data Model. |
What you set (the fields this type adds in SDCStudio):
| Field | Kind | What it sets |
|---|---|---|
min_length |
integer | Enter the minimum number of characters that are required for this concept. If the character is optional, leave it blank. |
max_length |
integer | Enter the maximum number of characters that are required for this concept. If the character is optional, leave it blank. |
exact_length |
integer | Enter the exact length of the concept. It should be defined only when the number of characters is always fixed (e.g. codes and identifiers). |
enums |
text, one per line | Enter the abbreviations or symbols for allowed units designations. One per line. |
enum_descr |
text, one per line | Enter the set of descriptions for the symbols. One per line. |
def_val |
text | Enter a default value (up to 255 characters) for the string if desired. Cannot contain 'http://' nor 'https://' |
definitions |
text, one per line | Enter a URI for each symbol. One per line. These are used as rdf:isDefinedBy in the semantics. |
str_fmt |
text | Enter a regular expression used to constrain the string to a specific format. See the XML reduced regex set here: https://uibakery.io/regex-library/xml |
Contextual
The four types that say who, where and when. They are not Xd types: they carry no exceptional values, valid-time or location elements of their own, only a label and their own fields.
| Wizard label | Model | The grid says |
|---|---|---|
| Party | Party | Person or organization entity |
| Participation | Participation | Participant role definition |
| Audit | Audit | Audit trail record |
| Attestation | Attestation | Attestation/certification record |
Party
Use it for. A person or organization: the subject of a record, a provider, a committer, with an optional link to an identity system and an optional details cluster.
In the schema: PartyType.
Description of a party, including an optional external link to data for this party in a demographic or other identity management system. An additional details element provides for the inclusion of information related to this party directly. If the party information is to be anonymous then do not include the details element.
In the record (the elements this type adds; every Xd type also carries the common elements below):
| Element | Type | Occurs | Meaning |
|---|---|---|---|
label |
string | optional | Descriptive name of this datatype model. Provides the semantic 'name' for the model. Replaces what would be XML element name or class name in conventional modeling. |
party-name |
string | optional | Optional human-readable name (in String form). |
party-ref |
XdLinkType | optional | Optional reference to more detailed demographic or identification information for this party, in an external system. |
party-details |
ClusterType | optional | A structured element for details about the party. |
What you set (the fields this type adds in SDCStudio):
| Field | Kind | What it sets |
|---|---|---|
details |
one Cluster | A Cluster structure that defines the details of this Party. |
external_ref |
several XdLink | Optional XdLink(s) that point to a description of this Party in other services. |
Participation
Use it for. Who took part in the activity a record describes, in what function and mode, and when.
In the schema: ParticipationType.
Model of a participation of a Party (any Actor or Role) in an activity. Used to represent any participation of a Party in some activity, which is not explicitly in the model, e.g. assisting nurse. Can be used to record past or future participations.
In the record (the elements this type adds; every Xd type also carries the common elements below):
| Element | Type | Occurs | Meaning |
|---|---|---|---|
label |
string | optional | Descriptive name of this datatype model. Provides the semantic 'name' for the model. Replaces what would be XML element name or class name in conventional modeling. |
performer |
PartyType | optional | The id and possibly demographic system link of the party that represents the primary provider of services in the activity. |
function |
XdStringType | optional | The function of the performer in this participation. In some applications this might be called a Role. |
mode |
XdStringType | optional | The mode of the performer / activity interaction, e.g. present, by telephone, by email etc. If the participation is by device or software it may contain a protocol standard or interface definition. |
start |
dateTime | optional | The beginning datetime when the participation took place. |
end |
dateTime | optional | The ending datetime when the participation took place. |
What you set (the fields this type adds in SDCStudio):
| Field | Kind | What it sets |
|---|---|---|
performer |
one Party | The Party instance and possibly demographic system link of the party participating in the activity. |
function |
one XdString | The function of the Party in this participation (note that a given party might participate in more than one way in a particular activity). In some applications this might be called a Role. |
mode |
one XdString | The mode of the performer / activity interaction, e.g. present, by telephone, by email etc. If the participation is by device or software it may contain a protocol standard or interface definition. |
Audit
Use it for. The who, where and when of a record as it moves from system to system.
In the schema: AuditType.
AuditType provides a mechanism to identify the who/where/when tracking of instances as they move from system to system.
In the record (the elements this type adds; every Xd type also carries the common elements below):
| Element | Type | Occurs | Meaning |
|---|---|---|---|
label |
string | optional | Descriptive name of this datatype model. Provides the semantic 'name' for the model. Replaces what would be XML element name or class name in conventional modeling. |
system-id |
XdStringType | required | Identifier of systems which created or handled the information item. 'Systems' can also be defined as an individual application or a data repository in which the data was manipulated. |
system-user |
PartyType | optional | User(s) who created, committed, forwarded or otherwise handled the item. |
location |
ClusterType | optional | Location information of the particular site/facility within an organization which handled the item. |
timestamp |
dateTime | required | Timestamp of handling the item. |
What you set (the fields this type adds in SDCStudio):
| Field | Kind | What it sets |
|---|---|---|
system_id |
one XdString | Identifier of the system which handled the information item. |
system_user |
one Party | A model for user(s) who created, committed, forwarded or otherwise handled the item. |
location |
one Cluster | A Cluster for location information. |
Attestation
Use it for. A party's attestation of a record's content: the reason, the proof, the committer, whether it is still pending.
In the schema: AttestationType.
Record an attestation by a party of the DM content. The type of attestation is recorded by the reason attribute, which my be coded.
In the record (the elements this type adds; every Xd type also carries the common elements below):
| Element | Type | Occurs | Meaning |
|---|---|---|---|
label |
string | optional | Descriptive name of this datatype model. Provides the semantic 'name' for the model. Replaces what would be XML element name or class name in conventional modeling. |
view |
XdFileType | optional | Optional visual representation of content attested e.g. screen image. |
proof |
XdFileType | optional | Proof of attestation such as an GPG signature. |
reason |
XdStringType | optional | Reason of this attestation. Usually coded from a standardized vocabulary. |
committer |
PartyType | optional | Identity of person who committed the item. |
committed |
dateTime | optional | Timestamp of committal of the item. |
pending |
boolean | required | True if this attestation is outstanding; 'false' means it has been completed. |
What you set (the fields this type adds in SDCStudio):
| Field | Kind | What it sets |
|---|---|---|
view |
one XdFile | Select a model for the recorded view that is being attested. |
proof |
one XdFile | Select a model for the proof of attestation such as an GPG signature. |
reason |
one XdString | Select a model for the reason. |
committer |
one Party | The Party that commited the Attestation. |
Reference ranges and intervals
Any ordered value can carry reference ranges (normal, critical, therapeutic), each with an interval. In SDCStudio a ReferenceRange points at a separate Interval component; a SimpleReferenceRange carries its interval inline and publishes as the same schema type. Neither is on the wizard's grid; both are created from a quantified component's reference-range settings.
Reference Range (ReferenceRange)
Use it for. A named range (normal, critical, therapeutic) for an ordered value, with its interval as a separate Interval component.
In the schema: ReferenceRangeType, extending XdAnyType. Inherits XdAny.
Defines a named range to be associated with any ORDERED datatype. Each such range is sensitive to the context, e.g. sex, age, location, and any other factor which affects ranges. May be used to represent high, low, normal, therapeutic, dangerous, critical, etc. ranges that are constrained by an interval.
In the record (the elements this type adds; every Xd type also carries the common elements below):
| Element | Type | Occurs | Meaning |
|---|---|---|---|
definition |
string | required | Term whose value indicates the meaning of this range, e.g. 'normal', 'critical', 'therapeutic' etc. |
interval |
XdIntervalType | required | The data range for this reference range. |
is-normal |
boolean | required | True if this reference range defines values that are considered to be normal. In the context of the value in the definition element. |
What you set (the fields this type adds in SDCStudio):
| Field | Kind | What it sets |
|---|---|---|
definition |
text | Enter the term that indicates the status of this range, e.g. 'normal', 'critical', 'therapeutic' etc. |
interval |
one XdInterval | The data range for this meaning. Select the appropriate XdInterval. |
is_normal |
yes/no | Is this considered the normal range? |
Simple Reference Range (SimpleReferenceRange)
Use it for. A named range with its interval written in the same component. Published as a ReferenceRange.
In the schema: ReferenceRangeType, extending XdAnyType. Inherits XdAny.
Defines a named range to be associated with any ORDERED datatype. Each such range is sensitive to the context, e.g. sex, age, location, and any other factor which affects ranges. May be used to represent high, low, normal, therapeutic, dangerous, critical, etc. ranges that are constrained by an interval.
In the record (the elements this type adds; every Xd type also carries the common elements below):
| Element | Type | Occurs | Meaning |
|---|---|---|---|
definition |
string | required | Term whose value indicates the meaning of this range, e.g. 'normal', 'critical', 'therapeutic' etc. |
interval |
XdIntervalType | required | The data range for this reference range. |
is-normal |
boolean | required | True if this reference range defines values that are considered to be normal. In the context of the value in the definition element. |
What you set (the fields this type adds in SDCStudio):
| Field | Kind | What it sets |
|---|---|---|
definition |
text | Enter the term that indicates the status of this range, e.g. 'normal', 'critical', 'therapeutic' etc. |
lower |
text | Enter the lower value of the interval. This will be used to set the minInclusive facet. |
upper |
text | Enter the upper value of the interval. This will be used to set the maxInclusive facet. |
interval_type |
one of None, int, decimal, float, dateTime, date, time, duration | The XML Schema datatype of the upper and lower values. |
lower_included |
yes/no | Uncheck this box if the lower value is excluded in the interval |
upper_included |
yes/no | Uncheck this box if the upper value is excluded in the interval |
lower_bounded |
yes/no | Uncheck this box if the lower value is unbounded. If unchecked, instances must be set to xsi:nil='true' |
upper_bounded |
yes/no | Uncheck this box if the lower value is unbounded. If unchecked, instances must be set to xsi:nil='true' |
units_name |
text | OPTIONAL: Enter the common name or abbreviation for these units. |
units_uri |
text | Enter the URL pointing to the definition for these units. This is mandatory if you entered a Units Name. |
is_normal |
yes/no | Is this considered the normal range? |
The interval boundary (InvlType) and its units (InvlUnits)
Defines the set of permissible, comparable datatypes that can be used as the boundary for an interval. In a Data Model, this type is constrained to a single choice (e.g., only 'invl-decimal').
| Element | Type | Occurs | Meaning |
|---|---|---|---|
invl-int |
integer | one of | |
invl-decimal |
decimal | one of | |
invl-float |
float | one of | |
invl-double |
double | one of | |
invl-date |
date | one of | |
invl-time |
time | one of | |
invl-dateTime |
dateTime | one of | |
invl-duration |
duration | one of |
The units designation for an Interval. This is composed of a units name and a URI because a ReferenceRange can contain intervals with different units (e.g., a temperature range in Celsius and another in Fahrenheit).
| Element | Type | Occurs | Meaning |
|---|---|---|---|
units-name |
string | required | |
units-uri |
anyURI | required |
The Data Model
Data Model (DM)
Use it for. The data model: the root of a Governed Data Record, carrying the structure (one Cluster), the parties, the provenance, the Dublin Core description and the assertions.
In the schema: DMType.
This is the root node of a Data Model (DM).
In the record (the elements this type adds; every Xd type also carries the common elements below):
| Element | Type | Occurs | Meaning |
|---|---|---|---|
dm-label |
string | required | Descriptive name of this datatype model. Provides the semantic 'name' for the model. Replaces what would be XML element name, column name or class name in other modeling paradigms. |
dm-language |
language | required | Mandatory indicator of the localized language in which this DM is written. The value space of language is the set of all strings that are valid language identifiers as defined [RFC 3066]. |
dm-encoding |
string | required | Name of character set encoding in which text values in this DM are encoded. Default is utf-8. |
creation_timestamp |
dateTime | optional | An optional run-time timestamp that indicates the exact moment this specific data instance was created or generated. This element provides a definitive point-in-time reference for the data payload itself. It is distinct from the design-time Dublin Core metadata which describes the model definition. This timestamp is crucial for data versioning, caching, and synchronization in distributed systems. |
instance_id |
string | required | A mandatory, globally unique identifier for this specific data instance. The SDC ecosystem uses CUID2 identifiers. This ID provides a persistent identity for the data that is decoupled from any storage or transport mechanism (e.g., filename, database primary key). It is essential for reliably tracking, updating, and referencing data in distributed systems, message queues, and data aggregation platforms. |
instance_version |
string | optional | An optional identifier for the specific version of this data instance. When paired with instance_id, it allows for a complete version history of a single data record. The type is a string to accommodate various versioning schemes, such as simple integers ('1', '2'), semantic versioning ('1.2.1'), or timestamps. |
source_instance_id |
string | optional | The identifier of the data instance in the originating source system (e.g., Epic, SAP). This decouples the sovereign SDC identity from the legacy source identity, enabling auditable data lineage across system boundaries. |
source_version_id |
string | optional | The version identifier of the data as it existed in the originating source system. When paired with source_instance_id, provides a complete reference to the exact upstream version that was ingested or transformed into this SDC data instance. |
current-state |
string | optional | The current state according to the state machine / workflow engine identified in the workflow element. |
Item |
substitution group | required | The data structure of the model. |
subject |
PartyType | optional | Id of human subject of the data, e.g.: • subject of record (patient, customer, etc.) • a family member • another clinically relevant person. |
provider |
PartyType | many | Optional identification of the source of the information, which might be: • a patient • a patient agent, e.g. parent, guardian • a clinician • a technician • a device or software |
Participation |
substitution group | many | List of other participations in the data. |
protocol |
XdStringType | optional | Optional external identifier of protocol used when collecting the data. This could be a clinical guideline, an operations protocol,etc. |
workflow |
ClusterType | optional | Workflow definition for this data model, containing state definitions, transitions, and execution logic as a structured Cluster. |
acs |
XdLinkType | optional | Identifier of an externally held access control system. This URI can be an ontology, vocabulary or descriptive document URI link. |
Audit |
substitution group | many | List of audits from the system of original commit of information forming the content, or from a conversion gateway which has processed this data. |
attestation |
AttestationType | optional | Attestation record of an instance of data. |
XdLink |
substitution group | many | Optional link(s) to other locatable structures or external entities. |
What you set (the fields this type adds in SDCStudio):
| Field | Kind | What it sets |
|---|---|---|
instance_id |
text | Mandatory CUID2 sovereign identifier for this data model. Auto-generated. |
source_instance_id |
text | Identifier from the originating source system (e.g., Epic, SAP). |
source_version_id |
text | Version identifier from the originating source system. |
project |
one Project | Choose a Project for this Data Model (DM) |
title |
text | Enter the name of this Data Model (DM). Unique within a project. |
author |
one Modeler | Select the author of the DM |
dc_subject |
text | Enter a semi-colon separated list of keywords. Usually MeSH terms |
source |
text | Enter the name of a document or a URL to a supporting source. |
rights |
text | Enter the rights or license statement. |
relation |
text | Enter the relationship to another Data Model (DM), if applicable. |
coverage |
text | Enter the demographic, geographical or political coverage. |
dc_type |
text | |
identifier |
text | |
description |
text | Enter a general description of the purpose of this DM. |
publisher |
text | Enter the name of the publisher/copyright holder. |
pub_date |
date-time | Date of publication. |
dc_format |
text | The format of the data. Default is text/xml for DMs. |
dc_language |
a choice | The written language of the DM. |
language |
a choice | Choose the language of this Data Model. |
encoding |
text | See List of encoding types at IANA. |
state |
text | The current state according to the state machine / workflow engine identified in workflow_id. You may enter a default/start state here. |
data |
one Cluster | You must select the Cluster that is the structure for this model. |
subject |
one Party | Refers to the subject component of the record for anonymous or identified reference. |
provider |
one Party | Select a Party component that models the provider of the activity in this model. |
protocol |
one XdString | Optional external identifier of protocol used to create this Entry. This could be a clinical guideline, an operations protocol, etc. |
workflow |
one Cluster | Workflow definition for this data model. Use a Cluster to define states, transitions, and execution logic. |
acs |
one XdLink | Identifier of externally held access control system. This URI can be an ontology, vocabulary or descriptive document; URI link. |
attestation |
one Attestation | A model that allows an attestation that the data is correct. |
asserts |
text, one per line | XPath assert statements. See the documentation for details. One per line. |
contrib |
several Modeler | Select the contributors (if any) to this DM |
participations |
several Participation | Select any Participations components that describe additional entities involved in this model. |
audit |
several Audit | Audit structure to provide audit trail tracking of information. |
links |
several XdLink | Can be used to establish ad-hoc links between models. |
The item wrappers (ItemType, XdAdapterType)
A Cluster's members are Item elements. A nested Cluster is an Item; a value is wrapped in an XdAdapter, the leaf Item, so that every member of a Cluster has the same outer shape. SDCStudio writes the adapters; a modeler never creates one.
| Element | Type | Occurs | Meaning |
|---|---|---|---|
XdAdapter-value |
substitution group | many | Data value type of this leaf. By rule, there must only be one XdAnyType subtype defined here. The unbounded occurrences is allowed so that the DM can specify how many repetitions may occur in the instance. |
The sixteen exceptional values
Subtypes are used to indicate why a value is missing (Null) or is outside a measurable range. The element ev-name is fixed in restricted types to a descriptive string. The subtypes defined in the reference model are considered sufficiently generic to be useful in many instances. Data Models may contain additional ExceptionalValueType restrictions to allow for domain related reasons for errant or missing data.
A record puts one or more of these elements beside a value, or in place of it, and the reason the value is missing or unusable travels with the record. The sixteen, with the name each carries in its ev-name element:
| Element | Name | Meaning |
|---|---|---|
NI |
No Information | The value is exceptional (missing, omitted, incomplete, improper). No information as to the reason for being an exceptional value is provided. This is the most general exceptional value. It is also the default exceptional value. |
MSK |
Masked | There is information on this item available but it has not been provided by the sender due to security, privacy or other reasons. There may be an alternate mechanism for gaining access to this information. Warning: Using this exceptional value does provide information that may be a breach of confidentiality, even though no detail data is provided. Its primary purpose is for those circumstances where it is necessary to inform the receiver that the information does exist without providing any detail. |
INV |
Invalid | The value as represented in the instance is not a member of the set of permitted data values in the constrained value domain of a variable. |
DER |
Derived | An actual value may exist, but it must be derived from the provided information; usually an expression is provided directly. |
UNC |
Unencoded | No attempt has been made to encode the information correctly but the raw source information is represented, usually in free text. |
OTH |
Other | The actual value is not a member of the permitted data values in the variable. (e.g., when the value of the variable is not by the coding system) |
NINF |
Negative Infinity | Negative infinity of numbers |
PINF |
Positive Infinity | Positive infinity of numbers |
UNK |
Unknown | A proper value is applicable, but not known. |
ASKR |
Asked and Refused | Information was sought but refused to be provided (e.g., patient was asked but refused to answer). |
NASK |
Not Asked | This information has not been sought (e.g., patient was not asked) |
QS |
Sufficient Quantity | The specific quantity is not known, but is known to non-zero and it is not specified because it makes up the bulk of the material; Add 10mg of ingredient X, 50mg of ingredient Y and sufficient quantity of water to 100mL. |
TRC |
Trace | The content is greater or less than zero but too small to be quantified. |
ASKU |
Asked but Unknown | Information was sought but not found (e.g., patient was asked but did not know) |
NAV |
Not Available | This information is not available and the specific reason is not known. |
NA |
Not Applicable | No proper value is applicable in this context e.g.,the number of cigarettes smoked per day by a non-smoker subject. |
A data model may add its own restrictions of ExceptionalValueType for domain reasons; these sixteen are the ones every SDC4 record understands.