DEXPI XML

Overview

../_images/dexpixml1.png ../_images/dexpixml2.png ../_images/dexpixml3.png ../_images/dexpixml4.png ../_images/dexpixml5.png ../_images/dexpixml6.png ../_images/dexpixml7.png ../_images/dexpixml8.png

DEXPI XML Schema

Download DEXPI_XML_Schema.xsd.

There is also a generated XML Schema documentation.

Several DEXPI XML files are provided. See

The root element of a DEXPI XML file has the name Model. Its complex type is Model.

Simple Types

ID

An ID is an xsd:string with the same restrictions as a name. In addition, an ID must be unique in a DEXPI XML file.

IDREF

An IDREF is a reference to an ID in the same file. It starts with a number sign (“hash”, #) that is immediately followed by the referenced ID.

name

A name is an xsd:string that

  • starts with an underscore (_) or an upper (A-Z) or lower case (a-z) letter (ASCII only).

  • The start character may be followed by an arbitrary number of underscores, upper or lower case letters, or digits (0-9) in an arbitrary order.

nameOrIdReference

A nameOrIdReference is either a nameReference or an IDREF.

nameOrIdReferences

A nameOrIdReferences contains one or more nameOrIdReference parts, separated by a space character.

nameReference

A nameReference is a reference to a name in an arbitrary DEXPI XML file. It is composed of

  • a reference to a DEXPI XML file. This is either the prefix of an imported file (see complex type Import) or the empty string if it refers to the current file (i.e., the file that contains the nameReference);

  • a slash character (/);

  • a name. This name refers to the child element of the XML file’s Model element with that name.

Optionally, the nameReference may contain further names, each separated by a dot (.), in order to refer to further, nested elements.

Complex Types

AbstractDataType

An abstract data type. An abstract data type is the only admissible supertype for any data type.

Attributes:

  • name: the name of the abstract data type

  • superTypes: the supertypes of the abstract data type; only other abstract data types are allowed

AggregatedDataType

An aggregated data type.

Attributes:

  • name: the name of the aggregated data type

  • superTypes: the supertypes of the aggregated data type; only abstract data types are allowed

Children:

  • DataProperty*: the data properties declared for the aggregated data type

AggregatedDataValue

A value (“instance”) of an AggregatedDataType.

Attributes:

  • type: the type of the AggregatedDataValue, i.e., an AggregatedDataType

Children:

  • Data*: the instance’s values for the data properties declared for the AggregatedDataType

BooleanType

A primitive type, corresponding to xsd:boolean.

Attributes:

  • name: the name of the type

  • superTypes: the supertypes of the type; only abstract data types are allowed

AbstractClass

An abstract class.

Attributes:

  • name: the name of the class

Children:

  • (CompositionProperty | DataProperty | ReferenceProperty)*: the properties declared for the class

ClassExtension

An extension of a class that can be used to “inject” additional properties.

Attributes:

  • baseType: a reference to the class that is extended

  • name: the name of the class extension

Children:

  • (CompositionProperty | DataProperty | ReferenceProperty)*: the properties declared for the class extension

Components

The values for a composition property for an object.

  • property: the name of the property

Children:

  • (Object | ObjectReference)+: the values for the property; if the property is ordered, the order of the values is relevant

CompositionProperty

A composition property, i.e., a property whose type must be a class and which indicates a composition (as opposed to a simple reference, cf. ReferenceProperty).

Attributes:

  • isOrdered: whether the property is ordered, i.e., whether the order of values is relevant

  • lower: lower multiplicity bound

  • name: the name of the property

  • type: the type of the property; must be a class

  • upper: upper multiplicity bound

ConcreteClass

An concrete (non-abstract) class.

Attributes:

  • name: the name of the class

Children:

  • (CompositionProperty | DataProperty | ReferenceProperty)*: the properties declared for the class

Data

The values for a data property for an object or aggregated data type.

  • property: the name of the property

Children:

  • (AggregatedDataValue | DataReference | Boolean | DateTime | Double | Integer | String)+: the values for the property; if the property is ordered, the order of the values is relevant

DataProperty

A data property, i.e., a property whose type must be a data type.

Attributes:

  • isOrdered: whether the property is ordered, i.e., whether the order of values is relevant

  • isUnique: whether the property is unique, i.e., whether a value can appear multiple times (only relevant is upper is greater than 1)

  • lower: lower multiplicity bound

  • name: the name of the property

  • type: the type of the property; must be a class

  • upper: upper multiplicity bound

DataReference

A reference to a data value defined elsewhere.

This is used to refer to a SingletonValue or an EnumerationLiteral.

Attributes:

  • data: the referenced data value

DateTimeType

A primitive type, corresponding to xsd:dateTime.

Attributes:

  • name: the name of the type

  • superTypes: the supertypes of the type; only abstract data types are allowed

DoubleType

A primitive type, corresponding to xsd:double.

Attributes:

  • name: the name of the type

  • superTypes: the supertypes of the type; only abstract data types are allowed

Enumeration

An enumeration.

Attributes:

  • name: the name of the enumeration

  • superTypes: the supertypes of the enumeration; only abstract data types are allowed

Children:

  • EnumerationLiteral*: the literals of the enumeration

EnumerationLiteral

An enumeration literal.

Attributes:

  • name: the name of the enumeration literal

Import

An import of a model by another model.

Attributes:

  • prefix: a simple string to be used to refer to the imported model (in order to avoid the potentially complex uri)

  • source: the uri of the imported model

IntegerType

A primitive type, corresponding to xsd:integer.

Attributes:

  • name: the name of the type

  • superTypes: the supertypes of the type; only abstract data types are allowed

Model

A model. A model is a top-level package that corresponds to a DEXPI XML file.

Attributes:

  • name: the name of the model

  • uri: a unique identifier for the model

Children:

  • Import*: imports of other models that are referenced by the model

  • (Package | AbstractClass | ConcreteClass | AbstractDataType | AggregatedDataType | Enumeration | SingletonType | SingletonValue | BooleanType | DateTimeType | DoubleType | IntegerType | StringType | Object)*: the content of the package

Object

A value (“instance”) of a Class.

Attributes:

  • id: optional; an identifier for the object to be used for references within the same DEXPI XML file

  • name: optional: a name for the object to be used for references, also from other files

  • type: the type of the object, i.e., a class

Children:

  • (Components | Data | References)*: the instance’s values for the properties declared for the Class

ObjectReference

A reference to an object.

Attributes:

  • object: the actual reference

Package

A package.

Attributes:

  • name: the name of the package

Children:

  • (Package | AbstractClass | ConcreteClass | AbstractDataType | AggregatedDataType | Enumeration | SingletonType | SingletonValue | BooleanType | DateTimeType | DoubleType | IntegerType | StringType | Object)*: the content of the package

ReferenceProperty

A reference property, i.e., a property whose type must be a class and which indicates a simple reference (as opposed to a composition, cf. CompositionProperty).

Attributes:

  • isOrdered: whether the property is ordered, i.e., whether the order of values is relevant

  • isUnique: whether the property is unique, i.e., whether a value can appear multiple times (only relevant is upper is greater than 1)

  • lower: lower multiplicity bound

  • name: the name of the property

  • oppositeLower: the opposite lower multiplicity bound

  • oppositeUpper: the opposite upper multiplicity bound

  • type: the type of the property; must be a class

  • upper: upper multiplicity bound

References

The values for a reference property for an object.

  • property: the name of the property

  • objects: references to the values

SingletonType

A singleton data type, i.e., a type that as a single value (“instance”).

Attributes:

  • name: the name of the type

  • superTypes: the supertypes of the type; only abstract data types are allowed

SingletonValue

The value of a singleton type.

Attributes:

  • name: the name of the value

  • type: the singleton type

StringType

A primitive type, corresponding to xsd:string.

Attributes:

  • name: the name of the type

  • superTypes: the supertypes of the type; only abstract data types are allowed