<Model name="Core" uri="https://data.dexpi.org/models/2.0.1/Core.xml">
  <Import prefix="MetaData" source="https://data.dexpi.org/models/2.0.1/MetaData.xml"/>
  <AbstractClass name="ConceptualModel" superTypes="/ConceptualObject">
    <CompositionProperty name="MetaData" isOrdered="false" lower="0" upper="1">
      <ClassReference type="/Diagram.MetaData"/>
      <Data property="MetaData/description">
        <String>The :sp:element:`~Core.Diagram.MetaData` of the :sp:element:`~Core.ConceptualModel`.</String>
      </Data>
    </CompositionProperty>
    <CompositionProperty name="Notes" isOrdered="false" lower="0">
      <ClassReference type="/Note"/>
      <Data property="MetaData/description">
        <String>The :sp:element:`Notes &lt;Core.Note&gt;` of the :sp:element:`~Core.ConceptualModel`.</String>
      </Data>
    </CompositionProperty>
    <CompositionProperty name="Roles" isOrdered="false" lower="0">
      <ClassReference type="/Role"/>
      <Data property="MetaData/description">
        <String>The :sp:element:`Roles &lt;Core.Role&gt;` of the :sp:element:`~Core.ConceptualModel`.</String>
      </Data>
    </CompositionProperty>
    <Data property="MetaData/description">
      <String>The conceptual content of an :sp:element:`~Core.EngineeringModel`, i.e., engineering information
independent from its graphical representation.</String>
    </Data>
  </AbstractClass>
  <AbstractClass name="ConceptualObject">
    <ReferenceProperty name="PerformedRoles" isOrdered="false" isUnique="false" lower="0" oppositeLower="0">
      <ClassReference type="/Role"/>
      <Data property="MetaData/description">
        <String>The roles performed by the :sp:element:`~Core.ConceptualObject`.</String>
      </Data>
    </ReferenceProperty>
    <CompositionProperty name="PersistentIdentifiers" isOrdered="false" lower="0">
      <ClassReference type="/PersistentIdentifier"/>
      <Data property="MetaData/description">
        <String>The PersistentIdentifiers of the :sp:element:`~Core.ConceptualObject`.</String>
      </Data>
    </CompositionProperty>
    <ReferenceProperty name="ReferencedNotes" isOrdered="false" isUnique="false" lower="0" oppositeLower="0">
      <ClassReference type="/Note"/>
      <Data property="MetaData/description">
        <String>The :sp:element:`Notes &lt;Core.Note&gt;` about the :sp:element:`~Core.ConceptualObject`.</String>
      </Data>
    </ReferenceProperty>
    <Data property="MetaData/description">
      <String>The abstract base class of all classes used in a :sp:element:`~Core.ConceptualModel`.</String>
    </Data>
  </AbstractClass>
  <Package name="DataTypes">
    <AggregatedDataType name="MultiLanguageString">
      <DataProperty name="SingleLanguageStrings" isOrdered="false" isUnique="false" lower="1">
        <DataTypeReference type="/DataTypes.SingleLanguageString"/>
        <Data property="MetaData/description">
          <String>Language-dependent values of the :sp:element:`~Core.DataTypes.MultiLanguageString`.</String>
        </Data>
      </DataProperty>
      <Data property="MetaData/description">
        <String>A container for one or more :sp:element:`~Core.DataTypes.SingleLanguageString`'s.
:sp:element:`!~Core.DataTypes.MultiLanguageString` is used as the type of data attributes which have
language-dependent string values.</String>
      </Data>
    </AggregatedDataType>
    <Enumeration name="QuantityProvenance">
      <EnumerationLiteral name="Calculated"/>
      <EnumerationLiteral name="Estimated"/>
      <EnumerationLiteral name="Observed"/>
      <EnumerationLiteral name="Set"/>
      <EnumerationLiteral name="Specified"/>
    </Enumeration>
    <Enumeration name="QuantityRange">
      <EnumerationLiteral name="Actual"/>
      <EnumerationLiteral name="Average"/>
      <EnumerationLiteral name="LowerLimit"/>
      <EnumerationLiteral name="Nominal"/>
      <EnumerationLiteral name="Normal"/>
      <EnumerationLiteral name="UpperLimit"/>
    </Enumeration>
    <Enumeration name="Scope">
      <EnumerationLiteral name="Alarm">
        <Data property="MetaData/description">
          <String>The value raises an alarm.</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Allowable">
        <Data property="MetaData/description">
          <String>The value that can be tolerated for an extended period. It has a specific meaning in safety specifications.</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Design">
        <Data property="MetaData/description">
          <String>The value is that used for design. It has a specific meaning in safety specifications.</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Expected">
        <Data property="MetaData/description">
          <String>A value that is estimated and subject to uncertainty.</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Incidental">
        <Data property="MetaData/description">
          <String>The value that can be tolerated for a short period. It has a specific meaning in safety specifications.</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Operating">
        <Data property="MetaData/description">
          <String>A value specified for operation.</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Protection">
        <Data property="MetaData/description">
          <String>The value initiates a protective action.</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Rated">
        <Data property="MetaData/description">
          <String>A value assigned by the manufacturer representing a specified operating condition.</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Test">
        <Data property="MetaData/description">
          <String>The value that will be set to test a system or piece of equipment.</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Warning">
        <Data property="MetaData/description">
          <String>The value raises a warning.</String>
        </Data>
      </EnumerationLiteral>
    </Enumeration>
    <AggregatedDataType name="SingleLanguageString">
      <DataProperty name="Language" isOrdered="false" isUnique="false" lower="1" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/String"/>
        </UnionDataType>
        <Data property="MetaData/description">
          <String>The language of the :sp:element:`~Core.DataTypes.SingleLanguageString.Value` of the :sp:element:`~Core.DataTypes.SingleLanguageString`. If not :sp:element:`~Builtin.Undefined`, the
language must be given as a language tag standardized by IETF BCP 47 (Best Current
Practice 47 by the Internet Engineering Task Force). IETF BCP 47 is based on ISO 639.</String>
        </Data>
        <Data property="MetaData/details">
          <String>Language tags
=============

In DEXPI, only those language tags are allowed

* that are listed in the normative registry file at `https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry &lt;https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry&gt;`__ from September 29, 2020,

* that consist of exactly two letters (in particular extended tags such as *en-US* or *de-CH-1996* are not allowed),

* that refer to an actual language (the *type* defined by IETF BCP 47 must be *language*),

* and that are not deprecated.

The table below contains all permitted language tags.

+--------+------------------------------------------------------------------------------+
| Tag    | Language                                                                     |
+========+==============================================================================+
| ``aa`` | Afar                                                                         |
+--------+------------------------------------------------------------------------------+
| ``ab`` | Abkhazian                                                                    |
+--------+------------------------------------------------------------------------------+
| ``ae`` | Avestan                                                                      |
+--------+------------------------------------------------------------------------------+
| ``af`` | Afrikaans                                                                    |
+--------+------------------------------------------------------------------------------+
| ``ak`` | Akan                                                                         |
+--------+------------------------------------------------------------------------------+
| ``am`` | Amharic                                                                      |
+--------+------------------------------------------------------------------------------+
| ``an`` | Aragonese                                                                    |
+--------+------------------------------------------------------------------------------+
| ``ar`` | Arabic                                                                       |
+--------+------------------------------------------------------------------------------+
| ``as`` | Assamese                                                                     |
+--------+------------------------------------------------------------------------------+
| ``av`` | Avaric                                                                       |
+--------+------------------------------------------------------------------------------+
| ``ay`` | Aymara                                                                       |
+--------+------------------------------------------------------------------------------+
| ``az`` | Azerbaijani                                                                  |
+--------+------------------------------------------------------------------------------+
| ``ba`` | Bashkir                                                                      |
+--------+------------------------------------------------------------------------------+
| ``be`` | Belarusian                                                                   |
+--------+------------------------------------------------------------------------------+
| ``bg`` | Bulgarian                                                                    |
+--------+------------------------------------------------------------------------------+
| ``bh`` | Bihari languages                                                             |
+--------+------------------------------------------------------------------------------+
| ``bi`` | Bislama                                                                      |
+--------+------------------------------------------------------------------------------+
| ``bm`` | Bambara                                                                      |
+--------+------------------------------------------------------------------------------+
| ``bn`` | Bengali/Bangla                                                               |
+--------+------------------------------------------------------------------------------+
| ``bo`` | Tibetan                                                                      |
+--------+------------------------------------------------------------------------------+
| ``br`` | Breton                                                                       |
+--------+------------------------------------------------------------------------------+
| ``bs`` | Bosnian                                                                      |
+--------+------------------------------------------------------------------------------+
| ``ca`` | Catalan/Valencian                                                            |
+--------+------------------------------------------------------------------------------+
| ``ce`` | Chechen                                                                      |
+--------+------------------------------------------------------------------------------+
| ``ch`` | Chamorro                                                                     |
+--------+------------------------------------------------------------------------------+
| ``co`` | Corsican                                                                     |
+--------+------------------------------------------------------------------------------+
| ``cr`` | Cree                                                                         |
+--------+------------------------------------------------------------------------------+
| ``cs`` | Czech                                                                        |
+--------+------------------------------------------------------------------------------+
| ``cu`` | Church Slavic/Church Slavonic/Old Bulgarian/Old Church Slavonic/Old Slavonic |
+--------+------------------------------------------------------------------------------+
| ``cv`` | Chuvash                                                                      |
+--------+------------------------------------------------------------------------------+
| ``cy`` | Welsh                                                                        |
+--------+------------------------------------------------------------------------------+
| ``da`` | Danish                                                                       |
+--------+------------------------------------------------------------------------------+
| ``de`` | German                                                                       |
+--------+------------------------------------------------------------------------------+
| ``dv`` | Dhivehi/Divehi/Maldivian                                                     |
+--------+------------------------------------------------------------------------------+
| ``dz`` | Dzongkha                                                                     |
+--------+------------------------------------------------------------------------------+
| ``ee`` | Ewe                                                                          |
+--------+------------------------------------------------------------------------------+
| ``el`` | Modern Greek (1453-)                                                         |
+--------+------------------------------------------------------------------------------+
| ``en`` | English                                                                      |
+--------+------------------------------------------------------------------------------+
| ``eo`` | Esperanto                                                                    |
+--------+------------------------------------------------------------------------------+
| ``es`` | Spanish/Castilian                                                            |
+--------+------------------------------------------------------------------------------+
| ``et`` | Estonian                                                                     |
+--------+------------------------------------------------------------------------------+
| ``eu`` | Basque                                                                       |
+--------+------------------------------------------------------------------------------+
| ``fa`` | Persian                                                                      |
+--------+------------------------------------------------------------------------------+
| ``ff`` | Fulah                                                                        |
+--------+------------------------------------------------------------------------------+
| ``fi`` | Finnish                                                                      |
+--------+------------------------------------------------------------------------------+
| ``fj`` | Fijian                                                                       |
+--------+------------------------------------------------------------------------------+
| ``fo`` | Faroese                                                                      |
+--------+------------------------------------------------------------------------------+
| ``fr`` | French                                                                       |
+--------+------------------------------------------------------------------------------+
| ``fy`` | Western Frisian                                                              |
+--------+------------------------------------------------------------------------------+
| ``ga`` | Irish                                                                        |
+--------+------------------------------------------------------------------------------+
| ``gd`` | Scottish Gaelic/Gaelic                                                       |
+--------+------------------------------------------------------------------------------+
| ``gl`` | Galician                                                                     |
+--------+------------------------------------------------------------------------------+
| ``gn`` | Guarani                                                                      |
+--------+------------------------------------------------------------------------------+
| ``gu`` | Gujarati                                                                     |
+--------+------------------------------------------------------------------------------+
| ``gv`` | Manx                                                                         |
+--------+------------------------------------------------------------------------------+
| ``ha`` | Hausa                                                                        |
+--------+------------------------------------------------------------------------------+
| ``he`` | Hebrew                                                                       |
+--------+------------------------------------------------------------------------------+
| ``hi`` | Hindi                                                                        |
+--------+------------------------------------------------------------------------------+
| ``ho`` | Hiri Motu                                                                    |
+--------+------------------------------------------------------------------------------+
| ``hr`` | Croatian                                                                     |
+--------+------------------------------------------------------------------------------+
| ``ht`` | Haitian/Haitian Creole                                                       |
+--------+------------------------------------------------------------------------------+
| ``hu`` | Hungarian                                                                    |
+--------+------------------------------------------------------------------------------+
| ``hy`` | Armenian                                                                     |
+--------+------------------------------------------------------------------------------+
| ``hz`` | Herero                                                                       |
+--------+------------------------------------------------------------------------------+
| ``ia`` | Interlingua (International Auxiliary Language Association)                   |
+--------+------------------------------------------------------------------------------+
| ``id`` | Indonesian                                                                   |
+--------+------------------------------------------------------------------------------+
| ``ie`` | Interlingue/Occidental                                                       |
+--------+------------------------------------------------------------------------------+
| ``ig`` | Igbo                                                                         |
+--------+------------------------------------------------------------------------------+
| ``ii`` | Sichuan Yi/Nuosu                                                             |
+--------+------------------------------------------------------------------------------+
| ``ik`` | Inupiaq                                                                      |
+--------+------------------------------------------------------------------------------+
| ``io`` | Ido                                                                          |
+--------+------------------------------------------------------------------------------+
| ``is`` | Icelandic                                                                    |
+--------+------------------------------------------------------------------------------+
| ``it`` | Italian                                                                      |
+--------+------------------------------------------------------------------------------+
| ``iu`` | Inuktitut                                                                    |
+--------+------------------------------------------------------------------------------+
| ``ja`` | Japanese                                                                     |
+--------+------------------------------------------------------------------------------+
| ``jv`` | Javanese                                                                     |
+--------+------------------------------------------------------------------------------+
| ``ka`` | Georgian                                                                     |
+--------+------------------------------------------------------------------------------+
| ``kg`` | Kongo                                                                        |
+--------+------------------------------------------------------------------------------+
| ``ki`` | Kikuyu/Gikuyu                                                                |
+--------+------------------------------------------------------------------------------+
| ``kj`` | Kuanyama/Kwanyama                                                            |
+--------+------------------------------------------------------------------------------+
| ``kk`` | Kazakh                                                                       |
+--------+------------------------------------------------------------------------------+
| ``kl`` | Kalaallisut/Greenlandic                                                      |
+--------+------------------------------------------------------------------------------+
| ``km`` | Khmer/Central Khmer                                                          |
+--------+------------------------------------------------------------------------------+
| ``kn`` | Kannada                                                                      |
+--------+------------------------------------------------------------------------------+
| ``ko`` | Korean                                                                       |
+--------+------------------------------------------------------------------------------+
| ``kr`` | Kanuri                                                                       |
+--------+------------------------------------------------------------------------------+
| ``ks`` | Kashmiri                                                                     |
+--------+------------------------------------------------------------------------------+
| ``ku`` | Kurdish                                                                      |
+--------+------------------------------------------------------------------------------+
| ``kv`` | Komi                                                                         |
+--------+------------------------------------------------------------------------------+
| ``kw`` | Cornish                                                                      |
+--------+------------------------------------------------------------------------------+
| ``ky`` | Kirghiz/Kyrgyz                                                               |
+--------+------------------------------------------------------------------------------+
| ``la`` | Latin                                                                        |
+--------+------------------------------------------------------------------------------+
| ``lb`` | Luxembourgish/Letzeburgesch                                                  |
+--------+------------------------------------------------------------------------------+
| ``lg`` | Ganda/Luganda                                                                |
+--------+------------------------------------------------------------------------------+
| ``li`` | Limburgan/Limburger/Limburgish                                               |
+--------+------------------------------------------------------------------------------+
| ``ln`` | Lingala                                                                      |
+--------+------------------------------------------------------------------------------+
| ``lo`` | Lao                                                                          |
+--------+------------------------------------------------------------------------------+
| ``lt`` | Lithuanian                                                                   |
+--------+------------------------------------------------------------------------------+
| ``lu`` | Luba-Katanga                                                                 |
+--------+------------------------------------------------------------------------------+
| ``lv`` | Latvian                                                                      |
+--------+------------------------------------------------------------------------------+
| ``mg`` | Malagasy                                                                     |
+--------+------------------------------------------------------------------------------+
| ``mh`` | Marshallese                                                                  |
+--------+------------------------------------------------------------------------------+
| ``mi`` | Maori                                                                        |
+--------+------------------------------------------------------------------------------+
| ``mk`` | Macedonian                                                                   |
+--------+------------------------------------------------------------------------------+
| ``ml`` | Malayalam                                                                    |
+--------+------------------------------------------------------------------------------+
| ``mn`` | Mongolian                                                                    |
+--------+------------------------------------------------------------------------------+
| ``mr`` | Marathi                                                                      |
+--------+------------------------------------------------------------------------------+
| ``ms`` | Malay (macrolanguage)                                                        |
+--------+------------------------------------------------------------------------------+
| ``mt`` | Maltese                                                                      |
+--------+------------------------------------------------------------------------------+
| ``my`` | Burmese                                                                      |
+--------+------------------------------------------------------------------------------+
| ``na`` | Nauru                                                                        |
+--------+------------------------------------------------------------------------------+
| ``nb`` | Norwegian Bokmål                                                             |
+--------+------------------------------------------------------------------------------+
| ``nd`` | North Ndebele                                                                |
+--------+------------------------------------------------------------------------------+
| ``ne`` | Nepali (macrolanguage)                                                       |
+--------+------------------------------------------------------------------------------+
| ``ng`` | Ndonga                                                                       |
+--------+------------------------------------------------------------------------------+
| ``nl`` | Dutch/Flemish                                                                |
+--------+------------------------------------------------------------------------------+
| ``nn`` | Norwegian Nynorsk                                                            |
+--------+------------------------------------------------------------------------------+
| ``no`` | Norwegian                                                                    |
+--------+------------------------------------------------------------------------------+
| ``nr`` | South Ndebele                                                                |
+--------+------------------------------------------------------------------------------+
| ``nv`` | Navajo/Navaho                                                                |
+--------+------------------------------------------------------------------------------+
| ``ny`` | Nyanja/Chewa/Chichewa                                                        |
+--------+------------------------------------------------------------------------------+
| ``oc`` | Occitan (post 1500)                                                          |
+--------+------------------------------------------------------------------------------+
| ``oj`` | Ojibwa                                                                       |
+--------+------------------------------------------------------------------------------+
| ``om`` | Oromo                                                                        |
+--------+------------------------------------------------------------------------------+
| ``or`` | Oriya (macrolanguage)/Odia (macrolanguage)                                   |
+--------+------------------------------------------------------------------------------+
| ``os`` | Ossetian/Ossetic                                                             |
+--------+------------------------------------------------------------------------------+
| ``pa`` | Panjabi/Punjabi                                                              |
+--------+------------------------------------------------------------------------------+
| ``pi`` | Pali                                                                         |
+--------+------------------------------------------------------------------------------+
| ``pl`` | Polish                                                                       |
+--------+------------------------------------------------------------------------------+
| ``ps`` | Pushto/Pashto                                                                |
+--------+------------------------------------------------------------------------------+
| ``pt`` | Portuguese                                                                   |
+--------+------------------------------------------------------------------------------+
| ``qu`` | Quechua                                                                      |
+--------+------------------------------------------------------------------------------+
| ``rm`` | Romansh                                                                      |
+--------+------------------------------------------------------------------------------+
| ``rn`` | Rundi                                                                        |
+--------+------------------------------------------------------------------------------+
| ``ro`` | Romanian/Moldavian/Moldovan                                                  |
+--------+------------------------------------------------------------------------------+
| ``ru`` | Russian                                                                      |
+--------+------------------------------------------------------------------------------+
| ``rw`` | Kinyarwanda                                                                  |
+--------+------------------------------------------------------------------------------+
| ``sa`` | Sanskrit                                                                     |
+--------+------------------------------------------------------------------------------+
| ``sc`` | Sardinian                                                                    |
+--------+------------------------------------------------------------------------------+
| ``sd`` | Sindhi                                                                       |
+--------+------------------------------------------------------------------------------+
| ``se`` | Northern Sami                                                                |
+--------+------------------------------------------------------------------------------+
| ``sg`` | Sango                                                                        |
+--------+------------------------------------------------------------------------------+
| ``sh`` | Serbo-Croatian                                                               |
+--------+------------------------------------------------------------------------------+
| ``si`` | Sinhala/Sinhalese                                                            |
+--------+------------------------------------------------------------------------------+
| ``sk`` | Slovak                                                                       |
+--------+------------------------------------------------------------------------------+
| ``sl`` | Slovenian                                                                    |
+--------+------------------------------------------------------------------------------+
| ``sm`` | Samoan                                                                       |
+--------+------------------------------------------------------------------------------+
| ``sn`` | Shona                                                                        |
+--------+------------------------------------------------------------------------------+
| ``so`` | Somali                                                                       |
+--------+------------------------------------------------------------------------------+
| ``sq`` | Albanian                                                                     |
+--------+------------------------------------------------------------------------------+
| ``sr`` | Serbian                                                                      |
+--------+------------------------------------------------------------------------------+
| ``ss`` | Swati                                                                        |
+--------+------------------------------------------------------------------------------+
| ``st`` | Southern Sotho                                                               |
+--------+------------------------------------------------------------------------------+
| ``su`` | Sundanese                                                                    |
+--------+------------------------------------------------------------------------------+
| ``sv`` | Swedish                                                                      |
+--------+------------------------------------------------------------------------------+
| ``sw`` | Swahili (macrolanguage)                                                      |
+--------+------------------------------------------------------------------------------+
| ``ta`` | Tamil                                                                        |
+--------+------------------------------------------------------------------------------+
| ``te`` | Telugu                                                                       |
+--------+------------------------------------------------------------------------------+
| ``tg`` | Tajik                                                                        |
+--------+------------------------------------------------------------------------------+
| ``th`` | Thai                                                                         |
+--------+------------------------------------------------------------------------------+
| ``ti`` | Tigrinya                                                                     |
+--------+------------------------------------------------------------------------------+
| ``tk`` | Turkmen                                                                      |
+--------+------------------------------------------------------------------------------+
| ``tl`` | Tagalog                                                                      |
+--------+------------------------------------------------------------------------------+
| ``tn`` | Tswana                                                                       |
+--------+------------------------------------------------------------------------------+
| ``to`` | Tonga (Tonga Islands)                                                        |
+--------+------------------------------------------------------------------------------+
| ``tr`` | Turkish                                                                      |
+--------+------------------------------------------------------------------------------+
| ``ts`` | Tsonga                                                                       |
+--------+------------------------------------------------------------------------------+
| ``tt`` | Tatar                                                                        |
+--------+------------------------------------------------------------------------------+
| ``tw`` | Twi                                                                          |
+--------+------------------------------------------------------------------------------+
| ``ty`` | Tahitian                                                                     |
+--------+------------------------------------------------------------------------------+
| ``ug`` | Uighur/Uyghur                                                                |
+--------+------------------------------------------------------------------------------+
| ``uk`` | Ukrainian                                                                    |
+--------+------------------------------------------------------------------------------+
| ``ur`` | Urdu                                                                         |
+--------+------------------------------------------------------------------------------+
| ``uz`` | Uzbek                                                                        |
+--------+------------------------------------------------------------------------------+
| ``ve`` | Venda                                                                        |
+--------+------------------------------------------------------------------------------+
| ``vi`` | Vietnamese                                                                   |
+--------+------------------------------------------------------------------------------+
| ``vo`` | Volapük                                                                      |
+--------+------------------------------------------------------------------------------+
| ``wa`` | Walloon                                                                      |
+--------+------------------------------------------------------------------------------+
| ``wo`` | Wolof                                                                        |
+--------+------------------------------------------------------------------------------+
| ``xh`` | Xhosa                                                                        |
+--------+------------------------------------------------------------------------------+
| ``yi`` | Yiddish                                                                      |
+--------+------------------------------------------------------------------------------+
| ``yo`` | Yoruba                                                                       |
+--------+------------------------------------------------------------------------------+
| ``za`` | Zhuang/Chuang                                                                |
+--------+------------------------------------------------------------------------------+
| ``zh`` | Chinese                                                                      |
+--------+------------------------------------------------------------------------------+
| ``zu`` | Zulu                                                                         |
+--------+------------------------------------------------------------------------------+</String>
        </Data>
        <Data property="MetaData/exampleValue">
          <String>en</String>
        </Data>
      </DataProperty>
      <DataProperty name="Value" isOrdered="false" isUnique="false" lower="1" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/String"/>
        </UnionDataType>
        <Data property="MetaData/description">
          <String>The actual value of the :sp:element:`~Core.DataTypes.SingleLanguageString`.</String>
        </Data>
        <Data property="MetaData/exampleValue">
          <String>This is some sample text.</String>
        </Data>
      </DataProperty>
      <Data property="MetaData/description">
        <String>A :sp:element:`!~Core.DataTypes.SingleLanguageString` contains a :sp:element:`~Core.DataTypes.SingleLanguageString.Value` and a :sp:element:`~Core.DataTypes.SingleLanguageString.Language` tag.
:sp:element:`!~Core.DataTypes.SingleLanguageString` is only used within :sp:element:`~Core.DataTypes.MultiLanguageString`.</String>
      </Data>
    </AggregatedDataType>
    <Data property="MetaData/description">
      <String>Basic data types such as strings, numbers, and enumerations.</String>
    </Data>
  </Package>
  <Package name="Diagram">
    <ConcreteClass name="AttributeRepresentation" superTypes="/Diagram.TextTemplateFragment">
      <DataProperty name="AttributeName" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/String"/>
        <Data property="MetaData/exampleValue">
          <String>SubTagName</String>
        </Data>
      </DataProperty>
      <ReferenceProperty name="Object" isOrdered="false" isUnique="false" lower="1" oppositeLower="0" upper="1">
        <ClassReference type="/ConceptualObject"/>
      </ReferenceProperty>
      <DataProperty name="Type" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="/Diagram.AttributeRepresentationType"/>
      </DataProperty>
    </ConcreteClass>
    <Enumeration name="AttributeRepresentationType">
      <EnumerationLiteral name="Units"/>
      <EnumerationLiteral name="Value"/>
      <EnumerationLiteral name="ValueAndUnits"/>
    </Enumeration>
    <ConcreteClass name="Border" superTypes="/Diagram.RepresentationTypeGroup"/>
    <AggregatedDataType name="Color">
      <DataProperty name="B" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/UnsignedByte"/>
        <Data property="MetaData/description">
          <String>The intensity of the blue channel of the :sp:element:`~Core.Diagram.Color`.</String>
        </Data>
      </DataProperty>
      <DataProperty name="G" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/UnsignedByte"/>
        <Data property="MetaData/description">
          <String>The intensity of the green channel of the :sp:element:`~Core.Diagram.Color`.</String>
        </Data>
      </DataProperty>
      <DataProperty name="R" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/UnsignedByte"/>
        <Data property="MetaData/description">
          <String>The intensity of the red channel of the :sp:element:`~Core.Diagram.Color`.</String>
        </Data>
      </DataProperty>
      <Data property="MetaData/description">
        <String>A color.

:sp:element:`!~Core.Diagram.Color` is based on the RGB color model (e.g., see 
`Wikipedia &lt;https://en.wikipedia.org/wiki/RGB_color_spaces&gt;`__ for an
overview). For each channel *red*, *green*, and *blue*, :sp:element:`!~Core.Diagram.Color` has an attribute :sp:element:`~Core.Diagram.Color.R`,
:sp:element:`~Core.Diagram.Color.G`, and :sp:element:`~Core.Diagram.Color.B` that gives the intensity of the channel. Intensities are given as
values of :sp:element:`~Core.DataTypes.UnsignedByte`, i.e., integers in the range [0, 255].</String>
      </Data>
      <Data property="MetaData/details">
        <String>Simplified Literals
-------------------

Within this specification, we use the hexadecimal SVG representation of 
a :sp:element:`~Core.Diagram.Color` (without the string delimiters) as a convenient literal
to refer to that :sp:element:`~Core.Diagram.Color`. 

For example, :code:`#0000ff` refers to the :sp:element:`&lt;Core.Diagram.Color&gt;` *blue* with
:code:`R=0`, :code:`G=0`, and :code:`B=255`.

Mapping to SVG
--------------

There are several syntactical variants to map a :sp:element:`~Core.Diagram.Color` to SVG. Here, we 
use the `RGB Hexadecimal Notation &lt;https://www.w3.org/TR/css-color-4/#hex-notation&gt;`__ 
with 6 digits as defined by :ref:`standard-css-color-4`. It has the form
:code:`'#RRGGBB'`, where :code:`RR`, :code:`GG`, and :code:`BB` are 2-digit
hexadecimal representations of the integer values of the attributes :sp:element:`~Core.Diagram.Color.R`, :sp:element:`~Core.Diagram.Color.G`, and
:sp:element:`~Core.Diagram.Color.B`. Conventional hexadecimal digits are used: :code:`0`, ..., :code:`9`, :code:`a`, ..., :code:`f`.
Capitalized versions of the latter are also allowed: :code:`A`, ..., :code:`F`. To ensure 2 digits for each
integer, a leading zero is added if required.

.. admonition:: example

    Consider the :sp:element:`~Core.Diagram.Color` with :code:`R=0`, :code:`G=10`, and :code:`B=255`.

    The hexadecimal representations of the attributes are :code:`00`, :code:`0a`, and :code:`ff`. 

    Hence, the SVG representation of the color is :code:`'#000aff'`.</String>
      </Data>
    </AggregatedDataType>
    <Enumeration name="ConfidentialityClassification">
      <EnumerationLiteral name="ConfidentialInformation">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS4316590816</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>CONFIDENTIAL INFORMATION</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>confidential</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="NonConfidentialInformation">
        <Data property="MetaData/rdl_uri">
          <String>http://sandbox.dexpi.org/rdl/NonConfidentialInformation</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>NON CONFIDENTIAL INFORMATION</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>not confidential</String>
        </Data>
      </EnumerationLiteral>
    </Enumeration>
    <ConcreteClass name="ConnectorLine" superTypes="/Diagram.GraphicalPrimitive">
      <DataProperty name="InnerPoints" isOrdered="true" isUnique="false" lower="0">
        <DataTypeReference type="/Diagram.Point"/>
        <Data property="MetaData/description">
          <String>The inner points of the :sp:element:`~Core.Diagram.ConnectorLine`.</String>
        </Data>
      </DataProperty>
      <ReferenceProperty name="Source" isOrdered="false" isUnique="false" lower="0" oppositeLower="0" oppositeUpper="1" upper="1">
        <ClassReference type="/Diagram.NodePosition"/>
      </ReferenceProperty>
      <DataProperty name="Stroke" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="/Diagram.Stroke"/>
        <Data property="MetaData/description">
          <String>The stroke of the :sp:element:`~Core.Diagram.ConnectorLine`.</String>
        </Data>
      </DataProperty>
      <ReferenceProperty name="Target" isOrdered="false" isUnique="false" lower="0" oppositeLower="0" oppositeUpper="1" upper="1">
        <ClassReference type="/Diagram.NodePosition"/>
      </ReferenceProperty>
    </ConcreteClass>
    <ConcreteClass name="CustomSymbol" superTypes="/Diagram.Symbol"/>
    <Enumeration name="DashStyle">
      <EnumerationLiteral name="Dash"/>
      <EnumerationLiteral name="DashShortDash"/>
      <EnumerationLiteral name="Dot"/>
      <EnumerationLiteral name="LongDash"/>
      <EnumerationLiteral name="LongDashShortDash"/>
      <EnumerationLiteral name="LongDashShortDashShortDash"/>
      <EnumerationLiteral name="ShortDash"/>
      <EnumerationLiteral name="Solid"/>
      <Data property="MetaData/description">
        <String>A :sp:element:`!~Core.Diagram.DashStyle` describes a pattern for drawing a stroke. The
pattern gives the lengths of those parts of a stroke that are actually
drawn and of those parts that are not drawn.</String>
      </Data>
      <Data property="MetaData/details">
        <String>Appearance
==========

Each :sp:element:`!~Core.Diagram.DashStyle` is characterized by a sequence of an even
number of double values. The first of these values gives the
length of a visible part of a stroke, the second one the length
of an invisible part. Optional further pairs of double values in the
pattern are applied in the same way. The entire pattern is applied
repeatedly until the end of a stroke.

The lengths in a :sp:element:`!~Core.Diagram.DashStyle`'s pattern are given in terms
of the :sp:element:`~Core.Diagram.Stroke`'s :sp:element:`~Core.Diagram.Stroke.Width` in mm, i.e., the dimensionless
double values must be multiplied with the :sp:element:`~Core.Diagram.Stroke.Width` in
order to get the actual lengths.

The following table gives heuristically proven patterns for the different :sp:element:`DashStyles &lt;Core.Diagram.DashStyle&gt;`.

.. image:: /images/img5.*</String>
      </Data>
    </Enumeration>
    <ConcreteClass name="Diagram" superTypes="/Diagram.RepresentationGroup">
      <DataProperty name="BackgroundColor" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="/Diagram.Color"/>
      </DataProperty>
      <DataProperty name="MaxX" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/Double"/>
      </DataProperty>
      <DataProperty name="MaxY" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/Double"/>
      </DataProperty>
      <DataProperty name="MinX" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/Double"/>
      </DataProperty>
      <DataProperty name="MinY" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/Double"/>
      </DataProperty>
      <DataProperty name="Name" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/String"/>
        <Data property="MetaData/exampleValue">
          <String>Example P&amp;ID</String>
        </Data>
      </DataProperty>
    </ConcreteClass>
    <ConcreteClass name="Ellipse" superTypes="/Diagram.GraphicalPrimitive">
      <DataProperty name="Center" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="/Diagram.Point"/>
        <Data property="MetaData/description">
          <String>The center position of the :sp:element:`~Core.Diagram.Ellipse`.</String>
        </Data>
      </DataProperty>
      <DataProperty name="FillStyle" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="/Diagram.FillStyle"/>
        <Data property="MetaData/description">
          <String>The fill style of the :sp:element:`~Core.Diagram.Ellipse`.</String>
        </Data>
      </DataProperty>
      <DataProperty name="HorizontalSemiAxis" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/Double"/>
        <Data property="MetaData/description">
          <String>The length of the horizontal semi-axis of the :sp:element:`~Core.Diagram.Ellipse` in mm.</String>
        </Data>
      </DataProperty>
      <DataProperty name="Rotation" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/Double"/>
        <Data property="MetaData/description">
          <String>The rotation of the :sp:element:`~Core.Diagram.Ellipse` around its center, measured clockwise and in degrees.
The value must be in the inverval [0; 360).</String>
        </Data>
      </DataProperty>
      <DataProperty name="Stroke" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="/Diagram.Stroke"/>
        <Data property="MetaData/description">
          <String>The stroke of the :sp:element:`~Core.Diagram.Ellipse`.</String>
        </Data>
      </DataProperty>
      <DataProperty name="VerticalSemiAxis" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/Double"/>
        <Data property="MetaData/description">
          <String>The length of the vertical semi-axis of the :sp:element:`~Core.Diagram.Ellipse` in mm.</String>
        </Data>
      </DataProperty>
      <Data property="MetaData/description">
        <String>An ellipse.</String>
      </Data>
      <Data property="MetaData/details">
        <String>Geometry
========

The geometry of an :sp:element:`!~Core.Diagram.Ellipse` is characterized by its
:sp:element:`~Core.Diagram.Ellipse.Center`, its two axes (:sp:element:`~Core.Diagram.Ellipse.HorizontalSemiAxis`
and :sp:element:`~Core.Diagram.Ellipse.VerticalSemiAxis`), and the :sp:element:`~Core.Diagram.Ellipse.Rotation`
of the :sp:element:`~Core.Diagram.Ellipse.HorizontalSemiAxis` w.r.t. the x axis of the
:ref:`owner &lt;owner-of-graphical-primitive&gt;`. The :sp:element:`~Core.Diagram.Ellipse.Rotation`
is measured clockwise and in degrees.

.. admonition:: example

    We consider an :sp:element:`!~Core.Diagram.Ellipse` with 

    - :sp:element:`~Core.Diagram.Ellipse.Center` :code:`(10, 20)`,

    - :sp:element:`~Core.Diagram.Ellipse.HorizontalSemiAxis` :code:`110`,

    - :sp:element:`~Core.Diagram.Ellipse.VerticalSemiAxis` :code:`50`, and

    - :sp:element:`~Core.Diagram.Ellipse.Rotation` :code:`35`.

    The :sp:element:`!~Core.Diagram.Ellipse` will look like this:

    .. image:: /images/img15.*

.. rubric:: Visual Center

The :ref:`visual center &lt;visual-center&gt;` of an :sp:element:`!~Core.Diagram.Ellipse`
is its actual :sp:element:`~Core.Diagram.Ellipse.Center`.

Mapping to SVG
==============

An :sp:element:`~Core.Diagram.Ellipse` corresponds to an
`svg:ellipse
&lt;https://www.w3.org/TR/SVG2/shapes.html#EllipseElement&gt;`__
with these attributes:

- :code:`transform` describes both the :sp:element:`~Core.Diagram.Ellipse.Center` :math:`(c_x, c_y)` and the
  :sp:element:`~Core.Diagram.Ellipse.Rotation` :math:`r` of the Ellipse.

  :code:`transform = "translate(` + str(:math:`c_x`) + :code:`,` + str(:math:`c_y`) + :code:`) rotate(` + str(:math:`r`) + :code:`)"`

- :code:`rx` and :code:`ry` are string representations of :sp:element:`~Core.Diagram.Ellipse.HorizontalSemiAxis` and :sp:element:`~Core.Diagram.Ellipse.VerticalSemiAxis`.

- :code:`stroke`, :code:`stroke-dasharray`, :code:`stroke-dashoffset`
  and :code:`stroke-width`
  are set according to the SVG mapping rules for the 
  :sp:element:`~Core.Diagram.Ellipse.Stroke` of the :sp:element:`~Core.Diagram.Ellipse` (see
  :sp:element:`~Core.Diagram.Stroke`).

- :code:`stroke-linecap = "round"` and 
  :code:`stroke-linejoin = "round"` reflect the
  :ref:`heuristic for line caps and line joins
  &lt;line-caps-and-line-joins&gt;`.

- :code:`vector-effect = "non-scaling-stroke"` reflects the
  :ref:`heuristic for scaled symbols &lt;scaled-symbols&gt;`.

- :code:`fill` is set according to the SVG mapping rules for
  the :sp:element:`~Core.Diagram.Ellipse.FillStyle` of the :sp:element:`~Core.Diagram.Ellipse` (see
  :sp:element:`~Core.Diagram.FillStyle`).

.. admonition:: example

    We assume that the :sp:element:`~Core.Diagram.Stroke` of the :sp:element:`~Core.Diagram.Ellipse` above is
    :code:`2mm #ff0000 Solid` and that its :sp:element:`~Core.Diagram.Ellipse.FillStyle` is
    :sp:element:`~Core.Diagram.FillStyle.Transparent`.

    .. code-block:: xml

       {EllipseTransparentSvgCode}

    .. image:: /images/img16.*

.. admonition:: example

    We consider the same :sp:element:`~Core.Diagram.Ellipse` as in the previous example,
    except that the :sp:element:`~Core.Diagram.Stroke` is
    :code:`2mm #ff0000 LongDashShortDash`.

    .. code-block:: xml

       {EllipseLongDashShortDashSvgCode}

    .. image:: /images/img17.*

.. admonition:: example

    Finally, a variant with :sp:element:`~Core.Diagram.Stroke` :code:`2mm #ff0000 Solid`
    and :sp:element:`~Core.Diagram.Ellipse.FillStyle` :sp:element:`~Core.Diagram.FillStyle.Hatch`.

    .. code-block:: xml

       {EllipseHatchSvgCode}

    .. image:: /images/img18.*</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="EllipseArc" superTypes="/Diagram.GraphicalPrimitive">
      <DataProperty name="Center" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="/Diagram.Point"/>
        <Data property="MetaData/description">
          <String>The center position of the :sp:element:`~Core.Diagram.EllipseArc`.</String>
        </Data>
      </DataProperty>
      <DataProperty name="EndAngle" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/Double"/>
        <Data property="MetaData/description">
          <String>The end angle of the :sp:element:`~Core.Diagram.EllipseArc`, measured clockwise and in degrees.
The value must be in the inverval [0; 360).</String>
        </Data>
      </DataProperty>
      <DataProperty name="HorizontalSemiAxis" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/Double"/>
        <Data property="MetaData/description">
          <String>The length of the horizontal semi-axis of the :sp:element:`~Core.Diagram.EllipseArc` in mm.</String>
        </Data>
      </DataProperty>
      <DataProperty name="Rotation" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/Double"/>
        <Data property="MetaData/description">
          <String>The rotation of the :sp:element:`~Core.Diagram.EllipseArc` around its center, measured clockwise and in degrees.
The value must be in the inverval [0; 360).</String>
        </Data>
      </DataProperty>
      <DataProperty name="StartAngle" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/Double"/>
        <Data property="MetaData/description">
          <String>The start angle of the :sp:element:`~Core.Diagram.EllipseArc`, measured clockwise and in degrees.
The value must be in the inverval [0; 360).</String>
        </Data>
      </DataProperty>
      <DataProperty name="Stroke" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="/Diagram.Stroke"/>
        <Data property="MetaData/description">
          <String>The stroke of the :sp:element:`~Core.Diagram.EllipseArc`.</String>
        </Data>
      </DataProperty>
      <DataProperty name="VerticalSemiAxis" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/Double"/>
        <Data property="MetaData/description">
          <String>The length of the vertical semi-axis of the :sp:element:`~Core.Diagram.EllipseArc` in mm.</String>
        </Data>
      </DataProperty>
      <Data property="MetaData/description">
        <String>'
        A segment of an ellipse.</String>
      </Data>
      <Data property="MetaData/details">
        <String>Geometry
========

An :sp:element:`!~Core.Diagram.EllipseArc` is a segment of an ellipse. The geometry
of the underlying ellipse is described in the same way as the
geometry of the actual :sp:element:`~Core.Diagram.Ellipse` class (:sp:element:`~Core.Diagram.EllipseArc.Center`, 
:sp:element:`~Core.Diagram.EllipseArc.HorizontalSemiAxis`,
:sp:element:`~Core.Diagram.EllipseArc.VerticalSemiAxis`,
:sp:element:`~Core.Diagram.EllipseArc.Rotation`). In addition, an :sp:element:`!~Core.Diagram.EllipseArc`
has two attributes :sp:element:`~Core.Diagram.EllipseArc.StartAngle` and 
:sp:element:`~Core.Diagram.EllipseArc.EndAngle` that determine the start and end position
of the arc.

.. admonition:: example

    We consider an :sp:element:`~Core.Diagram.EllipseArc` with

    - :sp:element:`~Core.Diagram.EllipseArc.Center` :code:`(10, 20)`,

    - :sp:element:`~Core.Diagram.EllipseArc.HorizontalSemiAxis` :code:`110`,

    - :sp:element:`~Core.Diagram.EllipseArc.VerticalSemiAxis` :code:`50`, and

    - :sp:element:`~Core.Diagram.EllipseArc.Rotation` :code:`35`.

    These attributes describe the blue dashed ellipse in this figure
    (cf. the :sp:element:`~Core.Diagram.Ellipse` example which has the same attribute values).

    .. image:: /images/img19.*

    The :sp:element:`~Core.Diagram.EllipseArc` has two further geometric attributes

    - :sp:element:`~Core.Diagram.EllipseArc.StartAngle` :code:`288` and

    - :sp:element:`~Core.Diagram.EllipseArc.EndAngle` :code:`20`.

    These two angles do not have a simple geometric interpretation in the
    figure; we will get back to them in the following sections.
    However, these angles determine the start position and the end position
    of the black :sp:element:`~Core.Diagram.EllipseArc` in the figure. The actual
    :sp:element:`~Core.Diagram.EllipseArc` goes from the start position *in
    positive direction* (i.e., clockwise) to the end position.

.. rubric:: Calculation of start and end position

We use the following notation:

- :math:`c_x` and :math:`c_y`: components of the :sp:element:`~Core.Diagram.EllipseArc.Center`,

- :math:`r_x`: :sp:element:`~Core.Diagram.EllipseArc.HorizontalSemiAxis`,

- :math:`r_y`: :sp:element:`~Core.Diagram.EllipseArc.VerticalSemiAxis`,

- :math:`\varphi`: :sp:element:`~Core.Diagram.EllipseArc.Rotation`,

- :math:`\theta_1`: :sp:element:`~Core.Diagram.EllipseArc.StartAngle`,

- :math:`\theta_2`: :sp:element:`~Core.Diagram.EllipseArc.EndAngle`,

- :math:`x_1` and :math:`y_1`: start position,

- :math:`x_2` and :math:`y_2`: end position.

.. admonition:: technical

    The notation is based on that used by the
    `SVG Arc Implementation Notes &lt;https://www.w3.org/TR/SVG2/implnote.html#ArcImplementationNotes&gt;`__
    which may be useful for implementors. 

The start position is

.. math::

   \left(\begin{array}{c} x_1 \\ y_1 \end{array}\right) = 
     \left(\begin{array}{cc} \cos \varphi &amp; -\sin \varphi \\ \sin \varphi &amp; \cos \varphi \end{array}\right)
     \cdotp
     \left(\begin{array}{c} r_x \cos \theta_1 \\ r_y \sin \theta_1 \end{array}\right)
     +
     \left(\begin{array}{c} c_x \\ c_y \end{array}\right)

and the end position is

.. math::

   \left(\begin{array}{c} x_2 \\ y_2 \end{array}\right) = 
     \left(\begin{array}{cc} \cos \varphi &amp; -\sin \varphi \\ \sin \varphi &amp; \cos \varphi \end{array}\right)
     \cdotp
     \left(\begin{array}{c} r_x \cos \theta_2 \\ r_y \sin \theta_2 \end{array}\right)
     +
     \left(\begin{array}{c} c_x \\ c_y \end{array}\right) \quad .

.. admonition:: example

    In the example, we have

    .. math::

       c_x &amp;= 10 

       c_y &amp;= 20 

       r_x &amp;= 110 

       r_y &amp;= 50 

       \varphi &amp;= 35 

       \theta_1 &amp;= 288 

       \theta_2 &amp;= 20 

    With the equations above, we get these coordinates for the
    start and end positions (cf. the figure above):

    .. math::

       x_1 &amp;= 65.1197

       y_1 &amp;= 0.5439

       x_2 &amp;= 84.8639

       y_2 &amp;= 93.2967

.. rubric:: Interpretation of StartAngle and EndAngle

These angles are not measured in the ellipse on which an
:sp:element:`~Core.Diagram.EllipseArc` is based, but in the unit circle:

???

The figure shows the end position w.r.t. the unit circle. Its angle
measured from the horizonal semi-axis is :math:`\theta_2 = 20`.
The ellipse could be constructed by stretching the unit circle 
by :math:`r_x` in direction of the horizontal semi-axis and by 
:math:`r_y` in direction of the vertical semi-axis. After this
transformation, the end position w.r.t. the unit circle is at the
actual end position.

To calculate an actual, ellipse-based angle from an angle w.r.t. the unit circle,
use the formula

.. math::

   \theta_{actual} = \textrm{atan2}( r_y  \sin \theta, r_x  \cos \theta ) \,\textrm{mod}\, 360 \quad.

The formulas apply to both the  :sp:element:`~Core.Diagram.EllipseArc.StartAngle` :math:`\theta_1` 
and the :sp:element:`~Core.Diagram.EllipseArc.EndAngle` :math:`\theta_2`. Note that we give
angles in degrees, i.e., the actual calculations in a program may require conversions
to and from radians. 

.. admonition:: example

    In the example, we have

    .. math::

        \theta_{actual, 1} = \textrm{atan2}( 50 \cdotp \sin 288, 110 \cdotp \cos 288) \,\textrm{mod}\, 360 = 305.56 

    and 

    .. math::

        \theta_{actual, 2} = \textrm{atan2}( 50 \cdotp \sin 20, 110 \cdotp \cos 20)   \,\textrm{mod}\, 360 = 9.39 \quad .

The inverse formula is

.. math::

    \theta = \textrm{atan2}( r_x  \sin \theta_{actual}, r_y  \cos \theta_{actual} ) \,\textrm{mod}\, 360 \quad .

.. admonition:: technical

    The rationale for using angles w.r.t. the unit circle is that they
    are numerically more stable when an :sp:element:`~Core.Diagram.EllipseArc` is scaled
    with small values (i.e., in a :sp:element:`~Core.Diagram.ShapeUsage`) and that some
    calculations are simpler (cf.
    `SVG 2 Arc Implementation Notes &lt;https://www.w3.org/TR/SVG2/implnote.html#ArcImplementationNotes&gt;`__).

Mapping to SVG
==============

An :sp:element:`~Core.Diagram.EllipseArc` is mapped to an 
`svg:path
&lt;https://www.w3.org/TR/SVG2/paths.html#PathElement&gt;`__
with these attributes:

- :code:`d` is the `path data &lt;https://www.w3.org/TR/SVG2/paths.html#PathData&gt;`__
  that describes the entire geometry of the :sp:element:`~Core.Diagram.EllipseArc`. The
  value is the concatenation of the following strings, all of them separated by spaces:

  - :code:`M`

  - str(:math:`x_1`)

  - str(:math:`y_1`)

  - :code:`A`

  - str(:math:`r_x`)

  - str(:math:`r_y`)

  - str(:math:`\varphi`)

  - str(:math:`f_A`)

  - :code:`1`

  - str(:math:`x_2`)

  - str(:math:`y_2`)

  :math:`f_A` is calculated as follows (cf. the definition of the
  :ref:`modulo operator &lt;modulo-operator&gt;`):

  .. math::

     \Delta \theta &amp;= (\theta_2 - \theta_1)\, \textrm{mod}\, 360 \quad ,

     f_A &amp;= 0 \quad \textrm{if} \, \Delta \theta &lt; 180 \quad ,

     f_A &amp;= 1 \quad \textrm{if} \, \Delta \theta \geq 180 \quad .

  The other variables have been defined above.

- :code:`stroke`, :code:`stroke-dasharray`, :code:`stroke-dashoffset`
  and :code:`stroke-width`
  are set according to the SVG mapping rules for the 
  :sp:element:`~Core.Diagram.EllipseArc.Stroke` of the :sp:element:`~Core.Diagram.EllipseArc` (see
  :sp:element:`~Core.Diagram.Stroke`).

- :code:`stroke-linecap = "round"` and 
  :code:`stroke-linejoin = "round"` reflect the
  :ref:`heuristic for line caps and line joins
  &lt;line-caps-and-line-joins&gt;`.

- :code:`vector-effect = "non-scaling-stroke"` reflects the
  :ref:`heuristic for scaled symbols &lt;scaled-symbols&gt;`.

- :code:`fill = "none"` is required to avoid that the `svg:path
  &lt;https://www.w3.org/TR/SVG2/shapes.html#PolylineElement&gt;`__ is
  filled.

.. admonition:: example

    We assume that the :sp:element:`~Core.Diagram.Stroke` of the :sp:element:`~Core.Diagram.EllipseArc` above is
    :code:`2mm #ff0000 solid`.

    With :math:`\Delta \theta = (20 - 288)\, \textrm{{mod}}\,360 = (-268)\, \textrm{{mod}}\, 360 = 92 &lt; 180`
    we get :math:`f_A = 0`.

    .. code-block:: xml

       {EllipseArcSolidSvgCode}

    ???

.. admonition:: example

   We consider the same :sp:element:`~Core.Diagram.EllipseArc` as in the previous example,
   except that the :sp:element:`~Core.Diagram.Stroke` is
   :code:`2mm #ff0000 Dash`.

   .. code-block:: xml

      {EllipseArcDashSvgCode}

   .. image:: /images/img20.*</String>
      </Data>
    </ConcreteClass>
    <Enumeration name="FillStyle">
      <EnumerationLiteral name="Hatch"/>
      <EnumerationLiteral name="Solid"/>
      <EnumerationLiteral name="Transparent"/>
    </Enumeration>
    <AbstractClass name="GraphicalElement"/>
    <AbstractClass name="GraphicalPrimitive" superTypes="/Diagram.GraphicalElement"/>
    <AbstractClass name="GraphicsGroup"/>
    <ConcreteClass name="InsulationSymbol" superTypes="/Diagram.Symbol"/>
    <ConcreteClass name="Label" superTypes="/Diagram.RepresentationTypeGroup"/>
    <ConcreteClass name="LiteralText" superTypes="/Diagram.TextTemplateFragment">
      <DataProperty name="Text" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/String"/>
        <Data property="MetaData/exampleValue">
          <String>Drawing No.: </String>
        </Data>
      </DataProperty>
    </ConcreteClass>
    <ConcreteClass name="MetaData" superTypes="/ConceptualObject">
      <DataProperty name="ApprovalDateRepresentation" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/String"/>
        </UnionDataType>
        <Data property="MetaData/description">
          <String>A representation of the approval date of the drawing. The format of the
representation is not prescribed.</String>
        </Data>
        <Data property="MetaData/rdl_uri">
          <String>http://sandbox.dexpi.org/rdl/ApprovalDateRepresentationAssignmentClass</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>APPROVAL DATE REPRESENTATION ASSIGNMENT CLASS</String>
        </Data>
        <Data property="MetaData/exampleValue">
          <String>2016-04-01</String>
        </Data>
      </DataProperty>
      <DataProperty name="ApprovalDescription" isOrdered="false" isUnique="false" lower="0" upper="1">
        <DataTypeReference type="/DataTypes.MultiLanguageString"/>
        <Data property="MetaData/description">
          <String>A description of the approval of the drawing.</String>
        </Data>
        <Data property="MetaData/rdl_uri">
          <String>http://sandbox.dexpi.org/rdl/ApprovalDescriptionAssignmentClass</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>APPROVAL DESCRIPTION ASSIGNMENT CLASS</String>
        </Data>
      </DataProperty>
      <DataProperty name="ApproverName" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/String"/>
        </UnionDataType>
        <Data property="MetaData/description">
          <String>The name of the approver of the drawing.</String>
        </Data>
        <Data property="MetaData/rdl_uri">
          <String>http://sandbox.dexpi.org/rdl/ApproverNameAssignmentClass</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>APPROVER NAME ASSIGNMENT CLASS</String>
        </Data>
        <Data property="MetaData/exampleValue">
          <String>A. P. Prover</String>
        </Data>
      </DataProperty>
      <DataProperty name="ArchiveNumber" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/String"/>
        </UnionDataType>
        <Data property="MetaData/description">
          <String>The archive number of the drawing.</String>
        </Data>
        <Data property="MetaData/rdl_uri">
          <String>http://sandbox.dexpi.org/rdl/ArchiveNumberAssignmentClass</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>ARCHIVE NUMBER ASSIGNMENT CLASS</String>
        </Data>
        <Data property="MetaData/exampleValue">
          <String>XY923-463</String>
        </Data>
      </DataProperty>
      <DataProperty name="BlockName" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/String"/>
        </UnionDataType>
        <Data property="MetaData/description">
          <String>The name of the related block.</String>
        </Data>
        <Data property="MetaData/rdl_uri">
          <String>http://sandbox.dexpi.org/rdl/BlockNameAssignmentClass</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>BLOCK NAME ASSIGNMENT CLASS</String>
        </Data>
        <Data property="MetaData/exampleValue">
          <String>a block</String>
        </Data>
      </DataProperty>
      <DataProperty name="BlockNumber" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/String"/>
        </UnionDataType>
        <Data property="MetaData/description">
          <String>The number of the related block.</String>
        </Data>
        <Data property="MetaData/rdl_uri">
          <String>http://sandbox.dexpi.org/rdl/BlockNumberAssignmentClass</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>BLOCK NUMBER ASSIGNMENT CLASS</String>
        </Data>
        <Data property="MetaData/exampleValue">
          <String>B987-654</String>
        </Data>
      </DataProperty>
      <DataProperty name="CheckerName" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/String"/>
        </UnionDataType>
        <Data property="MetaData/description">
          <String>The name of the checker of the drawing.</String>
        </Data>
        <Data property="MetaData/rdl_uri">
          <String>http://sandbox.dexpi.org/rdl/CheckerNameAssignmentClass</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>CHECKER NAME ASSIGNMENT CLASS</String>
        </Data>
        <Data property="MetaData/exampleValue">
          <String>C. Hecker</String>
        </Data>
      </DataProperty>
      <DataProperty name="Confidentiality" isOrdered="false" isUnique="false" lower="0" upper="1">
        <DataTypeReference type="/Diagram.ConfidentialityClassification"/>
        <Data property="MetaData/description">
          <String>The confidentiality classification of the diagram.</String>
        </Data>
        <Data property="MetaData/rdl_uri">
          <String>http://sandbox.dexpi.org/rdl/ConfidentialitySpecialization</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>CONFIDENTIALITY SPECIALIZATION</String>
        </Data>
      </DataProperty>
      <DataProperty name="CreationDateRepresentation" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/String"/>
        </UnionDataType>
        <Data property="MetaData/description">
          <String>A representation of the creation date of the drawing. The format of the
representation is not prescribed.</String>
        </Data>
        <Data property="MetaData/rdl_uri">
          <String>http://sandbox.dexpi.org/rdl/CreationDateRepresentationAssignmentClass</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>CREATION DATE REPRESENTATION ASSIGNMENT CLASS</String>
        </Data>
        <Data property="MetaData/exampleValue">
          <String>2016-04-01</String>
        </Data>
      </DataProperty>
      <DataProperty name="CreatorName" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/String"/>
        </UnionDataType>
        <Data property="MetaData/description">
          <String>The name of the creator of the drawing.</String>
        </Data>
        <Data property="MetaData/rdl_uri">
          <String>http://sandbox.dexpi.org/rdl/CreatorNameAssignmentClass</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>CREATOR NAME ASSIGNMENT CLASS</String>
        </Data>
        <Data property="MetaData/exampleValue">
          <String>A. Creator</String>
        </Data>
      </DataProperty>
      <DataProperty name="DesignerName" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/String"/>
        </UnionDataType>
        <Data property="MetaData/description">
          <String>The name of the designer of the drawing.</String>
        </Data>
        <Data property="MetaData/rdl_uri">
          <String>http://sandbox.dexpi.org/rdl/DesignerNameAssignmentClass</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>DESIGNER NAME ASSIGNMENT CLASS</String>
        </Data>
        <Data property="MetaData/exampleValue">
          <String>D. E. Signer</String>
        </Data>
      </DataProperty>
      <DataProperty name="DrafterName" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/String"/>
        </UnionDataType>
        <Data property="MetaData/description">
          <String>The name of the drafter of the drawing.</String>
        </Data>
        <Data property="MetaData/rdl_uri">
          <String>http://sandbox.dexpi.org/rdl/DrafterNameAssignmentClass</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>DRAFTER NAME ASSIGNMENT CLASS</String>
        </Data>
        <Data property="MetaData/exampleValue">
          <String>D. Rafter</String>
        </Data>
      </DataProperty>
      <DataProperty name="DrawingName" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/String"/>
        </UnionDataType>
        <Data property="MetaData/description">
          <String>The drawing name.</String>
        </Data>
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS2102503531</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>DRAWING NAME ASSIGNMENT CLASS</String>
        </Data>
        <Data property="MetaData/exampleValue">
          <String>DEXPI example PID</String>
        </Data>
      </DataProperty>
      <DataProperty name="DrawingNumber" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/String"/>
        </UnionDataType>
        <Data property="MetaData/description">
          <String>The drawing number.</String>
        </Data>
        <Data property="MetaData/rdl_uri">
          <String>http://sandbox.dexpi.org/rdl/DrawingNumberAssignmentClass</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>DRAWING NUMBER ASSIGNMENT CLASS</String>
        </Data>
        <Data property="MetaData/exampleValue">
          <String>123/A93</String>
        </Data>
      </DataProperty>
      <DataProperty name="DrawingSubTitle" isOrdered="false" isUnique="false" lower="0" upper="1">
        <DataTypeReference type="/DataTypes.MultiLanguageString"/>
        <Data property="MetaData/description">
          <String>The subtitle of the drawing.</String>
        </Data>
        <Data property="MetaData/rdl_uri">
          <String>http://sandbox.dexpi.org/rdl/DrawingSubTitleAssignmentClass</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>DRAWING SUB TITLE ASSIGNMENT CLASS</String>
        </Data>
      </DataProperty>
      <DataProperty name="FileName" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/String"/>
        </UnionDataType>
        <Data property="MetaData/description">
          <String>The file name of the drawing.</String>
        </Data>
        <Data property="MetaData/rdl_uri">
          <String>http://sandbox.dexpi.org/rdl/FileNameAssignmentClass</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>FILE NAME ASSIGNMENT CLASS</String>
        </Data>
        <Data property="MetaData/exampleValue">
          <String>DEXPI_example_PID.xml</String>
        </Data>
      </DataProperty>
      <DataProperty name="LastModificationDateRepresentation" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/String"/>
        </UnionDataType>
        <Data property="MetaData/description">
          <String>A representation of the last modification date of the drawing. The format of the
representation is not prescribed.</String>
        </Data>
        <Data property="MetaData/rdl_uri">
          <String>http://sandbox.dexpi.org/rdl/LastModificationDateRepresentationAssignmentClass</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>LAST MODIFICATION DATE REPRESENTATION ASSIGNMENT CLASS</String>
        </Data>
        <Data property="MetaData/exampleValue">
          <String>2016-04-02</String>
        </Data>
      </DataProperty>
      <DataProperty name="LocationName" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/String"/>
        </UnionDataType>
        <Data property="MetaData/description">
          <String>The location name.</String>
        </Data>
        <Data property="MetaData/rdl_uri">
          <String>http://sandbox.dexpi.org/rdl/LocationNameAssignmentClass</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>LOCATION NAME ASSIGNMENT CLASS</String>
        </Data>
        <Data property="MetaData/exampleValue">
          <String>C1248</String>
        </Data>
      </DataProperty>
      <DataProperty name="ProcessCellIdentificationCode" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/String"/>
        </UnionDataType>
        <Data property="MetaData/description">
          <String>The identification code of the related process cell according to ISA-95.</String>
        </Data>
        <Data property="MetaData/rdl_uri">
          <String>http://sandbox.dexpi.org/rdl/ProcessCellIdentificationCodeAssignmentClass</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>PROCESS CELL IDENTIFICATION CODE ASSIGNMENT CLASS</String>
        </Data>
        <Data property="MetaData/exampleValue">
          <String>PC123</String>
        </Data>
      </DataProperty>
      <DataProperty name="ProcessCellName" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/String"/>
        </UnionDataType>
        <Data property="MetaData/description">
          <String>The name of the related process cell according to ISA-95.</String>
        </Data>
        <Data property="MetaData/rdl_uri">
          <String>http://sandbox.dexpi.org/rdl/ProcessCellNameAssignmentClass</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>PROCESS CELL NAME ASSIGNMENT CLASS</String>
        </Data>
        <Data property="MetaData/exampleValue">
          <String>a process cell</String>
        </Data>
      </DataProperty>
      <DataProperty name="ProjectName" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/String"/>
        </UnionDataType>
        <Data property="MetaData/description">
          <String>The name of the related project.</String>
        </Data>
        <Data property="MetaData/rdl_uri">
          <String>http://sandbox.dexpi.org/rdl/ProjectNameAssignmentClass</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>PROJECT NAME ASSIGNMENT CLASS</String>
        </Data>
        <Data property="MetaData/exampleValue">
          <String>a project</String>
        </Data>
      </DataProperty>
      <DataProperty name="ProjectNumber" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/String"/>
        </UnionDataType>
        <Data property="MetaData/description">
          <String>The number of the related project.</String>
        </Data>
        <Data property="MetaData/rdl_uri">
          <String>http://sandbox.dexpi.org/rdl/ProjectNumberAssignmentClass</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>PROJECT NUMBER ASSIGNMENT CLASS</String>
        </Data>
        <Data property="MetaData/exampleValue">
          <String>P3.1415</String>
        </Data>
      </DataProperty>
      <DataProperty name="ProjectRangeNumber" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/String"/>
        </UnionDataType>
        <Data property="MetaData/description">
          <String>The range number of the related project.</String>
        </Data>
        <Data property="MetaData/rdl_uri">
          <String>http://sandbox.dexpi.org/rdl/ProjectRangeNumberAssignmentClass</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>PROJECT RANGE NUMBER ASSIGNMENT CLASS</String>
        </Data>
        <Data property="MetaData/exampleValue">
          <String>PR321</String>
        </Data>
      </DataProperty>
      <DataProperty name="ReplacedDrawing" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/String"/>
        </UnionDataType>
        <Data property="MetaData/description">
          <String>The drawing replaced by this drawing.</String>
        </Data>
        <Data property="MetaData/rdl_uri">
          <String>http://sandbox.dexpi.org/rdl/ReplacedDrawingAssignmentClass</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>REPLACED DRAWING ASSIGNMENT CLASS</String>
        </Data>
        <Data property="MetaData/exampleValue">
          <String>D321</String>
        </Data>
      </DataProperty>
      <DataProperty name="ResponsibleDepartmentName" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/String"/>
        </UnionDataType>
        <Data property="MetaData/description">
          <String>The name of the department responsible for the drawing.</String>
        </Data>
        <Data property="MetaData/rdl_uri">
          <String>http://sandbox.dexpi.org/rdl/ResponsibleDepartmentNameAssignmentClass</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>RESPONSIBLE DEPARTMENT NAME ASSIGNMENT CLASS</String>
        </Data>
        <Data property="MetaData/exampleValue">
          <String>R2-D2</String>
        </Data>
      </DataProperty>
      <DataProperty name="RevisionNumber" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/String"/>
        </UnionDataType>
        <Data property="MetaData/description">
          <String>The revision number of the drawing.</String>
        </Data>
        <Data property="MetaData/rdl_uri">
          <String>http://sandbox.dexpi.org/rdl/RevisionNumberAssignmentClass</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>REVISION NUMBER ASSIGNMENT CLASS</String>
        </Data>
        <Data property="MetaData/exampleValue">
          <String>R2.2</String>
        </Data>
      </DataProperty>
      <DataProperty name="SheetFormat" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/String"/>
        </UnionDataType>
        <Data property="MetaData/description">
          <String>The sheet format.</String>
        </Data>
        <Data property="MetaData/rdl_uri">
          <String>http://sandbox.dexpi.org/rdl/SheetFormatAssignmentClass</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>SHEET FORMAT ASSIGNMENT CLASS</String>
        </Data>
        <Data property="MetaData/exampleValue">
          <String>DIN A3</String>
        </Data>
      </DataProperty>
      <DataProperty name="SheetNumber" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/String"/>
        </UnionDataType>
        <Data property="MetaData/description">
          <String>The sheet number of the drawing.</String>
        </Data>
        <Data property="MetaData/rdl_uri">
          <String>http://sandbox.dexpi.org/rdl/SheetNumberAssignmentClass</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>SHEET NUMBER ASSIGNMENT CLASS</String>
        </Data>
        <Data property="MetaData/exampleValue">
          <String>2a</String>
        </Data>
      </DataProperty>
      <DataProperty name="SubProjectName" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/String"/>
        </UnionDataType>
        <Data property="MetaData/description">
          <String>The name of the related sub-project.</String>
        </Data>
        <Data property="MetaData/rdl_uri">
          <String>http://sandbox.dexpi.org/rdl/SubProjectNameAssignmentClass</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>SUB PROJECT NAME ASSIGNMENT CLASS</String>
        </Data>
        <Data property="MetaData/exampleValue">
          <String>a sub-project</String>
        </Data>
      </DataProperty>
      <DataProperty name="SubProjectNumber" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/String"/>
        </UnionDataType>
        <Data property="MetaData/description">
          <String>The number of the related sub-project.</String>
        </Data>
        <Data property="MetaData/rdl_uri">
          <String>http://sandbox.dexpi.org/rdl/SubProjectNumberAssignmentClass</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>SUB PROJECT NUMBER ASSIGNMENT CLASS</String>
        </Data>
        <Data property="MetaData/exampleValue">
          <String>P3.1415-SP2</String>
        </Data>
      </DataProperty>
      <DataProperty name="TotalNumberOfSheets" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/Integer"/>
        </UnionDataType>
        <Data property="MetaData/description">
          <String>The total number of sheets.</String>
        </Data>
        <Data property="MetaData/rdl_uri">
          <String>http://sandbox.dexpi.org/rdl/TotalNumberOfSheets</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>TOTAL NUMBER OF SHEETS</String>
        </Data>
      </DataProperty>
      <DataProperty name="UnitIdentificationCode" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/String"/>
        </UnionDataType>
        <Data property="MetaData/description">
          <String>The identification code of the related unit according to ISA-95.</String>
        </Data>
        <Data property="MetaData/rdl_uri">
          <String>http://sandbox.dexpi.org/rdl/UnitIdentificationCodeAssignmentClass</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>UNIT IDENTIFICATION CODE ASSIGNMENT CLASS</String>
        </Data>
        <Data property="MetaData/exampleValue">
          <String>U-923-463</String>
        </Data>
      </DataProperty>
      <DataProperty name="UnitName" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/String"/>
        </UnionDataType>
        <Data property="MetaData/description">
          <String>The name of the related unit according to ISA-95.</String>
        </Data>
        <Data property="MetaData/rdl_uri">
          <String>http://sandbox.dexpi.org/rdl/UnitIsa95NameAssignmentClass</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>UNIT ISA95 NAME ASSIGNMENT CLASS</String>
        </Data>
        <Data property="MetaData/exampleValue">
          <String>a unit</String>
        </Data>
      </DataProperty>
      <Data property="MetaData/description">
        <String>Meta data about a :sp:element:`~Core.Container`.</String>
      </Data>
      <Data property="MetaData/rdl_uri">
        <String>http://sandbox.dexpi.org/rdl/MetaData</String>
      </Data>
      <Data property="MetaData/rdl_label">
        <String>META DATA</String>
      </Data>
    </ConcreteClass>
    <AbstractClass name="NodePosition">
      <DataProperty name="Position" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="/Diagram.Point"/>
      </DataProperty>
    </AbstractClass>
    <ConcreteClass name="PipeFlowArrow" superTypes="/Diagram.Symbol"/>
    <ConcreteClass name="PipeSlopeSymbol" superTypes="/Diagram.Symbol"/>
    <AggregatedDataType name="Point">
      <DataProperty name="X" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/Double"/>
        <Data property="MetaData/description">
          <String>The X (horizontal) coordinate of the :sp:element:`~Core.Diagram.Point` in mm.</String>
        </Data>
      </DataProperty>
      <DataProperty name="Y" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/Double"/>
        <Data property="MetaData/description">
          <String>The Y (horizontal) coordinate of the :sp:element:`~Core.Diagram.Point` in mm.</String>
        </Data>
      </DataProperty>
      <Data property="MetaData/description">
        <String>A point in the X-Y-plane.</String>
      </Data>
    </AggregatedDataType>
    <ConcreteClass name="PolyLine" superTypes="/Diagram.GraphicalPrimitive">
      <DataProperty name="Points" isOrdered="true" isUnique="false" lower="2">
        <DataTypeReference type="/Diagram.Point"/>
        <Data property="MetaData/description">
          <String>The points of the :sp:element:`~Core.Diagram.PolyLine`.</String>
        </Data>
      </DataProperty>
      <DataProperty name="Stroke" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="/Diagram.Stroke"/>
        <Data property="MetaData/description">
          <String>The stroke of the :sp:element:`~Core.Diagram.PolyLine`.</String>
        </Data>
      </DataProperty>
      <Data property="MetaData/description">
        <String>A curve that consists of one or more chained straight sections.</String>
      </Data>
      <Data property="MetaData/details">
        <String>Geometry
========

The first straight section of a :sp:element:`~Core.Diagram.PolyLine` starts at its first
:sp:element:`~Core.Diagram.Point`, i.e., :sp:element:`Points[0] &lt;Core.Diagram.Polygon.Points&gt;`, and ends at its
second :sp:element:`~Core.Diagram.Point`. For each
further :sp:element:`~Core.Diagram.Point`, another section is
drawn that starts at the preceding :sp:element:`~Core.Diagram.Point`.

.. admonition:: example

    We consider a :sp:element:`~Core.Diagram.PolyLine` with 3 :sp:element:`~Core.Diagram.PolyLine.Points`:

    - :code:`(-30, 40)`,

    - :code:`(50, 40)`, and

    - :code:`(-10, -60)`.

    The :sp:element:`~Core.Diagram.PolyLine` will look like this:

    .. image:: /images/img6.*

Mapping to SVG
==============

A :sp:element:`~Core.Diagram.PolyLine` corresponds to an
`svg:polyline
&lt;https://www.w3.org/TR/SVG2/shapes.html#PolylineElement&gt;`__
with these attributes:

- :code:`points` contains the :sp:element:`~Core.Diagram.PolyLine.Points` of the
  :sp:element:`~Core.Diagram.PolyLine`.

  Each :sp:element:`~Core.Diagram.Point` :math:`i` with position 
  :math:`x_i` and :math:`y_i` is converted to a string as
  str(:math:`x_i`) + :code:`,` + str(:math:`y_i`).
  Finally, the :code:`points` attribute is set to a single string that contains
  all positions, separated by spaces.

- :code:`stroke`, :code:`stroke-dasharray`, :code:`stroke-dashoffset`
  and :code:`stroke-width`
  are set according to the SVG mapping rules for the 
  :sp:element:`~Core.Diagram.PolyLine.Stroke` of the :sp:element:`~Core.Diagram.PolyLine` (see
  :sp:element:`~Core.Diagram.Stroke`).

- :code:`stroke-linecap = "round"` and 
  :code:`stroke-linejoin = "round"` reflect the
  :ref:`heuristic for line caps and line joins
  &lt;line-caps-and-line-joins&gt;`.

- :code:`vector-effect = "non-scaling-stroke"` reflects the
  :ref:`heuristic for scaled symbols &lt;scaled-symbols&gt;`.

- :code:`fill = "none"` is required to avoid that the `svg:polyline
  &lt;https://www.w3.org/TR/SVG2/shapes.html#PolylineElement&gt;`__ is
  filled.

.. admonition:: example

    We assume that the :sp:element:`~Core.Diagram.Stroke` of the :sp:element:`~Core.Diagram.PolyLine` above is
    :code:`2mm #007fff solid`.

    .. code-block:: xml

       {PolyLineSolidSvgCode}

    .. image:: /images/img7.*

.. admonition:: example

    We consider the same :sp:element:`~Core.Diagram.PolyLine` as in the previous example,
    except that the :sp:element:`~Core.Diagram.Stroke` is
    :code:`2mm #007fff Dash`.

    .. code-block:: xml

       {PolyLineDashSvgCode}

    .. image:: /images/img8.*</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="Polygon" superTypes="/Diagram.GraphicalPrimitive">
      <DataProperty name="FillStyle" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="/Diagram.FillStyle"/>
        <Data property="MetaData/description">
          <String>The fill style of the :sp:element:`~Core.Diagram.Polygon`.</String>
        </Data>
      </DataProperty>
      <DataProperty name="Points" isOrdered="true" isUnique="false" lower="3">
        <DataTypeReference type="/Diagram.Point"/>
        <Data property="MetaData/description">
          <String>The points (vertices) of the :sp:element:`~Core.Diagram.Polygon`.</String>
        </Data>
      </DataProperty>
      <DataProperty name="Stroke" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="/Diagram.Stroke"/>
        <Data property="MetaData/description">
          <String>The stroke of the :sp:element:`~Core.Diagram.Polygon`.</String>
        </Data>
      </DataProperty>
      <Data property="MetaData/description">
        <String>A figure that is delimited by a closed chain of three or more straight sections.</String>
      </Data>
      <Data property="MetaData/details">
        <String>Geometry
========

The first straight section that delimits a :sp:element:`!~Core.Diagram.Polygon` starts at
its first :sp:element:`~Core.Diagram.Point`, i.e., :sp:element:`Points[0] &lt;Core.Diagram.Polygon.Points&gt;`, and ends at its
second :sp:element:`~Core.Diagram.Point`. For each
further :sp:element:`~Core.Diagram.Point`, another section is
added that starts at the preceding :sp:element:`~Core.Diagram.Point`. Finally, a section
is added that starts at the last :sp:element:`~Core.Diagram.Point` and goes back to the first
:sp:element:`~Core.Diagram.Point` such that the chain of sections is closed.

.. admonition:: example

    We consider a :sp:element:`~Core.Diagram.Polygon` with 4 :sp:element:`~Core.Diagram.Polygon.Points`:

    - :code:`(-30, 40)`,

    - :code:`(50, 40)`,

    - :code:`(-10, -60)`, and            

    - :code:`(-10, 0)`.

    The :sp:element:`~Core.Diagram.Polygon` will look like this:

    .. image:: /images/img9.*

.. rubric:: Interior of a Polygon

Depending on its :sp:element:`~Core.Diagram.Polygon.FillStyle`, the interior of a
:sp:element:`~Core.Diagram.Polygon` may be filled. There are several possibilities to 
define when *"a point is inside a polygon"*. DEXPI applies a simple
intuitive rule:

- Choose an arbitrary point outside the
  :ref:`geometric bounding box &lt;geometric bounding box&gt;` of the :sp:element:`~Core.Diagram.Polygon`.

- Each point that can be reached from there without crossing any
  segment is outside the :sp:element:`~Core.Diagram.Polygon`.

- Each other point is inside the :sp:element:`~Core.Diagram.Polygon`.

.. admonition:: example

    The grey area in the figure visualizes the interior of the given
    :sp:element:`~Core.Diagram.Polygon`.

    .. image:: /images/img10.*

.. admonition:: technical

    In case of polygons, the DEXPI definition for interior points 
    coincides with the *nonzero rule* in SVG. See
    `Section 13.4.2. of the SVG 2 Recommendation &lt;https://www.w3.org/TR/SVG2/painting.html#WindingRule&gt;`__
    for a more precise definition of the *nonzero rule*.

    The SVG 2 Recommendation also defines an alternative rule called
    *evenodd rule*. If we applied this rule, the pentagonal area in the
    center of this :sp:element:`~Core.Diagram.Polygon` would be considered outside:

    .. image:: /images/img11.*

.. rubric:: Visual Center

Let :math:`n` be the number of :sp:element:`~Core.Diagram.Polygon.Points`, and let :math:`x_i`
and :math:`y_i` be the :sp:element:`~Core.Diagram.Point.X` and :sp:element:`~Core.Diagram.Point.Y` positions
of :sp:element:`Point &lt;Core.Diagram.Polygon.Points&gt;` :math:`i` for :math:`0 \leq i &lt; n`.

Then the horizontal position :math:`c_x` and the vertical position 
:math:`c_y` of the :ref:`visual center &lt;visual-center&gt;` of the :sp:element:`~Core.Diagram.Polygon` are

.. math::

   c_x &amp;= \frac 1 2 \Big[ \min_{i=0}^{n-1} x_i + \max_{i=0}^{n-1} x_i \Big] \quad ,

   c_y &amp;= \frac 1 2 \Big[ \min_{i=0}^{n-1} y_i + \max_{i=0}^{n-1} y_i \Big] \quad .

Intuitively, the :ref:`visual center &lt;visual-center&gt;` is
the center of the minimum bounding box that contains all
:sp:element:`~Core.Diagram.Polygon.Points`.

If the :sp:element:`~Core.Diagram.Polygon` has the :sp:element:`~Core.Diagram.Polygon.FillStyle` :sp:element:`~Core.Diagram.FillStyle.Hatch`,
then one of the hatch lines will cross through the visual center.

.. admonition:: example

    For the :sp:element:`~Core.Diagram.Polygon` above, we have

    .. math::

       c_x &amp;= \frac 1 2 [ \min(-30, 50, -10, -10) + \max(-30, 50, -10, -10) ]

           &amp;= \frac 1 2 [-30 + 50]

           &amp;= 10

    and 

    .. math::

       c_y &amp;= \frac 1 2 [ \min(40, 40, -60, 0) + \max(40, 40, -60, 0) ]

           &amp;= \frac 1 2 [-60 + 40]

           &amp;= -10 \quad .

Mapping to SVG
==============

A :sp:element:`~Core.Diagram.Polygon` corresponds to an
`svg:polygon &lt;https://www.w3.org/TR/SVG2/shapes.html#PolygonElement&gt;`__
with these attributes:

- :code:`transform` contains a translation from the origin to the
  visual center. This is required due to the modified positions in
  :code:`points`.

  :code:`transform = "translate(` + str(:math:`c_x`) + :code:`,` + str(:math:`c_y`) + :code:`)"`

- :code:`points` contains the :sp:element:`~Core.Diagram.Polygon.Points` of the
  :sp:element:`~Core.Diagram.Polygon` *relative to the visual center*.

  For each :sp:element:`~Core.Diagram.Point` :math:`i` with (absolute) position 
  :math:`x_i` and :math:`y_i`, 
  the position relative to the visual center is

  .. math::

     \tilde{x}_i &amp;= x_i - c_x \quad ,

     \tilde{y}_i &amp;= y_i - c_y \quad .

  Each of the relative positions is converted to a string as
  str(:math:`\tilde{x}_i`) + :code:`,` + str(:math:`\tilde{y}_i`).
  Finally, the :code:`points` attribute is set to a single string that contains
  all relative positions, separated by spaces.

- :code:`stroke`, :code:`stroke-dasharray`, :code:`stroke-dashoffset`
  and :code:`stroke-width`
  are set according to the SVG mapping rules for the 
  :sp:element:`~Core.Diagram.Polygon.Stroke` of the :sp:element:`~Core.Diagram.Polygon` (see
  :sp:element:`~Core.Diagram.Stroke`).

- :code:`stroke-linecap = "round"` and 
  :code:`stroke-linejoin = "round"` reflect the
  :ref:`heuristic for line caps and line joins
  &lt;line-caps-and-line-joins&gt;`.

- :code:`vector-effect = "non-scaling-stroke"` reflects the
  :ref:`heuristic for scaled symbols &lt;scaled-symbols&gt;`.

- :code:`fill` is set according to the SVG mapping rules for
  the :sp:element:`~Core.Diagram.Polygon.FillStyle` of the :sp:element:`~Core.Diagram.Polygon` (see
  :sp:element:`~Core.Diagram.FillStyle`).

.. admonition:: example

    We assume that the :sp:element:`~Core.Diagram.Stroke` of the :sp:element:`~Core.Diagram.Polygon` above is
    :code:`2mm #ff00ff Solid` and that its :sp:element:`~Core.Diagram.Polygon.FillStyle` is
    :sp:element:`~Core.Diagram.FillStyle.Transparent`.

    .. code-block:: xml

       {PolygonTransparentSvgCode}

    .. image:: /images/img12.*

.. admonition:: example

    We consider the same :sp:element:`~Core.Diagram.Polygon` as in the previous example,
    except that the :sp:element:`~Core.Diagram.Stroke` is
    :code:`2mm #ff00ff Dot`.

    .. code-block:: xml

       {PolygonDotSvgCode}

    .. image:: /images/img13.*

.. admonition:: example

    Finally, a variant with :sp:element:`~Core.Diagram.Stroke` :code:`2mm #ff00ff Solid`
    and :sp:element:`~Core.Diagram.Polygon.FillStyle` :sp:element:`~Core.Diagram.FillStyle.Hatch`.

    .. code-block:: xml

       {PolygonHatchSvgCode}

    .. image:: /images/img14.*</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="RepresentationGroup" superTypes="/Diagram.GraphicsGroup">
      <CompositionProperty name="Groups" isOrdered="true" lower="0">
        <ClassReference type="/Diagram.GraphicsGroup"/>
        <Data property="MetaData/description">
          <String>The groups of the :sp:element:`~Core.Diagram.RepresentationGroup`.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="NodePositions" isOrdered="false" lower="0">
        <ClassReference type="/Diagram.NodePosition"/>
        <Data property="MetaData/description">
          <String>The node positions of the :sp:element:`~Core.Diagram.RepresentationGroup`.</String>
        </Data>
      </CompositionProperty>
      <ReferenceProperty name="Represents" isOrdered="false" isUnique="false" lower="1" oppositeLower="0" upper="1">
        <ClassReference type="/ConceptualObject"/>
        <Data property="MetaData/description">
          <String>The object represented by the :sp:element:`~Core.Diagram.RepresentationGroup`.</String>
        </Data>
      </ReferenceProperty>
      <Data property="MetaData/description">
        <String>A :sp:element:`!~Core.Diagram.RepresentationGroup` is a graphical representation of a :sp:element:`~Core.ConceptualObject`.</String>
      </Data>
    </ConcreteClass>
    <AbstractClass name="RepresentationTypeGroup" superTypes="/Diagram.GraphicsGroup">
      <CompositionProperty name="Elements" isOrdered="true" lower="0">
        <ClassReference type="/Diagram.GraphicalElement"/>
        <Data property="MetaData/description">
          <String>The graphical elements of the :sp:element:`~Core.Diagram.RepresentationTypeGroup`.</String>
        </Data>
      </CompositionProperty>
    </AbstractClass>
    <ConcreteClass name="Shape">
      <DataProperty name="Name" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/String"/>
        <Data property="MetaData/exampleValue">
          <String>ENTRIFUGAL_PUMP_SHAPE</String>
        </Data>
      </DataProperty>
      <CompositionProperty name="Primitives" isOrdered="true" lower="0">
        <ClassReference type="/Diagram.GraphicalPrimitive"/>
        <Data property="MetaData/description">
          <String>The primitives of the :sp:element:`~Core.Diagram.Shape`.</String>
        </Data>
      </CompositionProperty>
      <DataProperty name="SymbolRegistrationNumber" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/String"/>
        <Data property="MetaData/description">
          <String>A registration number that identifies the :sp:element:`~Core.Diagram.Shape`.

The following format is recommended:

:code:`[standard]:[version]-[id]-[transform]`

where

- :code:`standard` is the name of a drawing standard,

- :code:`version` is the version the drawing standard, e.g., a year,

- :code:`id` is the identifier used in the standard for the :sp:element:`~Core.Diagram.Shape`,

- :code:`transform` gives the transformation of the :sp:element:`~Core.Diagram.Shape` w.r.t. its depiction in the
  standard.

  :code:`transform` is one of the following values:

  - :code:`A`: no transformation,

  - :code:`B`: rotation by 90°,

  - :code:`C`: rotation by 180°,

  - :code:`D`: rotation by 270°,

  - :code:`E`: mirrored,

  - :code:`F`: mirrored, rotation by 90°,

  - :code:`G`: mirrored, rotation by 180°,

  - :code:`H`: mirrored, rotation by 270°.</String>
        </Data>
        <Data property="MetaData/exampleValue">
          <String>ISO10628:2012-2322-A</String>
        </Data>
      </DataProperty>
    </ConcreteClass>
    <ConcreteClass name="ShapeCatalogue">
      <DataProperty name="Name" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/String"/>
        <Data property="MetaData/description">
          <String>The name of the :sp:element:`~Core.Diagram.ShapeCatalogue`.</String>
        </Data>
        <Data property="MetaData/exampleValue">
          <String>Shapes for example P&amp;ID</String>
        </Data>
      </DataProperty>
      <CompositionProperty name="Shapes" isOrdered="false" lower="0">
        <ClassReference type="/Diagram.Shape"/>
        <Data property="MetaData/description">
          <String>The shapes of the :sp:element:`~Core.Diagram.ShapeCatalogue`.</String>
        </Data>
      </CompositionProperty>
    </ConcreteClass>
    <ConcreteClass name="ShapeUsage" superTypes="/Diagram.GraphicalElement">
      <DataProperty name="IsMirrored" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/Boolean"/>
        <Data property="MetaData/exampleValue">
          <Boolean>false</Boolean>
        </Data>
      </DataProperty>
      <DataProperty name="Position" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="/Diagram.Point"/>
      </DataProperty>
      <DataProperty name="Rotation" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/Double"/>
      </DataProperty>
      <DataProperty name="ScaleX" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/Double"/>
      </DataProperty>
      <DataProperty name="ScaleY" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/Double"/>
      </DataProperty>
      <ReferenceProperty name="Shape" isOrdered="false" isUnique="false" lower="1" oppositeLower="0" upper="1">
        <ClassReference type="/Diagram.Shape"/>
        <Data property="MetaData/description">
          <String>The shape used by the :sp:element:`~Core.Diagram.ShapeUsage`.</String>
        </Data>
      </ReferenceProperty>
    </ConcreteClass>
    <ConcreteClass name="Static" superTypes="/Diagram.RepresentationTypeGroup"/>
    <AggregatedDataType name="Stroke">
      <DataProperty name="Color" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="/Diagram.Color"/>
        <Data property="MetaData/description">
          <String>The color of the :sp:element:`~Core.Diagram.Stroke`.</String>
        </Data>
      </DataProperty>
      <DataProperty name="DashStyle" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="/Diagram.DashStyle"/>
        <Data property="MetaData/description">
          <String>The dash style of the :sp:element:`~Core.Diagram.Stroke`.</String>
        </Data>
      </DataProperty>
      <DataProperty name="Width" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/Double"/>
        <Data property="MetaData/description">
          <String>The width of the :sp:element:`~Core.Diagram.Stroke` in mm.</String>
        </Data>
      </DataProperty>
      <Data property="MetaData/description">
        <String>A stroke defines the visual appearance of a line.</String>
      </Data>
      <Data property="MetaData/details">
        <String>Simplified Literals
===================

Within this specification, a simplified type of literal is used
to refer to a :sp:element:`~Core.Diagram.Stroke`. This literal is composed of

- a decimal representation of the :sp:element:`~Core.Diagram.Stroke.Width`, followed 
  by :code:`mm`,

- the simplified literal of the :sp:element:`~Core.Diagram.Stroke.Color` of the :sp:element:`~Core.Diagram.Stroke`
  (see :sp:element:`~Core.Diagram.Color`),

- the name of the :sp:element:`~Core.Diagram.Stroke.DashStyle` of the :sp:element:`~Core.Diagram.Stroke`
  (see :sp:element:`~Core.Diagram.DashStyle`).

The three components are separated by spaces.

For example, a :sp:element:`~Core.Diagram.Stroke` with 

- :sp:element:`~Core.Diagram.Stroke.Width` = :code:`2`,

- :sp:element:`~Core.Diagram.Stroke.Color` = :code:`#00ff00`, and

- :sp:element:`~Core.Diagram.Stroke.DashStyle` = :sp:element:`~Core.Diagram.DashStyle.Dot`

is represented as :code:`2mm #00ff00 Dot`.


Mapping to SVG
==============

A :sp:element:`~Core.Diagram.Stroke` is mapped to a set of XML attributes, which are added to the SVG
element (e.g., a 
`svg:polygon &lt;https://www.w3.org/TR/SVG2/shapes.html#PolygonElement&gt;`__
or a 
`svg:polyline &lt;https://www.w3.org/TR/SVG2/shapes.html#PolylineElement&gt;`__
element) that is drawn with the :sp:element:`~Core.Diagram.Stroke`.

- The :sp:element:`~Core.Diagram.Stroke.Color` of the :sp:element:`~Core.Diagram.Stroke` is mapped to the :code:`stroke` attribute.
  For the attribute value, see the SVG mapping for :sp:element:`~Core.Diagram.Color`.

- The :sp:element:`~Core.Diagram.Stroke.DashStyle` of the :sp:element:`~Core.Diagram.Stroke` is mapped to the :code:`stroke-dasharray` 
  and :code:`stroke-dashoffset` attributes as described in the SVG mapping for :sp:element:`~Core.Diagram.DashStyle`.
  Note that these attribute values depend on the :sp:element:`~Core.Diagram.Stroke.Width` of the :sp:element:`~Core.Diagram.Stroke` and
  on the :ref:`linecap` of the :sp:element:`~Core.Diagram.GraphicalPrimitive` that uses the :sp:element:`~Core.Diagram.Stroke`.

- The :sp:element:`~Core.Diagram.Stroke.Width` of the :sp:element:`~Core.Diagram.Stroke` is mapped to the :code:`stroke-width` attribute.
  The attribute value is the concatenation of the string representation of the :sp:element:`~Core.Diagram.Stroke.Width` and
  the fixed string :code:`mm`. That is, in terms of :ref:`standard-css-values-4` we use an 
  `absolute length &lt;https://www.w3.org/TR/css-values-4/#absolute-lengths&gt;`__ with the unit millimeters.

.. admonition:: example

    For examples, see the SVG mapping sections of those subclasses of :sp:element:`~Core.Diagram.GraphicalPrimitive`
    that have a :sp:element:`~Core.Diagram.Stroke` attribute:

    - :sp:element:`~Core.Diagram.Ellipse`
    - :sp:element:`~Core.Diagram.EllipseArc` 
    - :sp:element:`~Core.Diagram.Polygon` 
    - :sp:element:`~Core.Diagram.PolyLine`</String>
      </Data>
    </AggregatedDataType>
    <ConcreteClass name="Symbol" superTypes="/Diagram.RepresentationTypeGroup"/>
    <ConcreteClass name="Text" superTypes="/Diagram.GraphicalPrimitive">
      <DataProperty name="Alignment" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="/Diagram.TextAlignment"/>
      </DataProperty>
      <DataProperty name="Color" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="/Diagram.Color"/>
      </DataProperty>
      <DataProperty name="Font" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/String"/>
        <Data property="MetaData/exampleValue">
          <String>Calibri</String>
        </Data>
      </DataProperty>
      <DataProperty name="Position" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="/Diagram.Point"/>
      </DataProperty>
      <DataProperty name="Rotation" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/Double"/>
      </DataProperty>
      <DataProperty name="Size" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/Double"/>
      </DataProperty>
      <CompositionProperty name="Template" isOrdered="false" lower="0" upper="1">
        <ClassReference type="/Diagram.TextTemplate"/>
        <Data property="MetaData/description">
          <String>The template that describes how the text is built.</String>
        </Data>
      </CompositionProperty>
      <DataProperty name="Text" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/String"/>
        <Data property="MetaData/exampleValue">
          <String>N1</String>
        </Data>
      </DataProperty>
    </ConcreteClass>
    <Enumeration name="TextAlignment">
      <EnumerationLiteral name="CenterBottom"/>
      <EnumerationLiteral name="CenterCenter"/>
      <EnumerationLiteral name="CenterTop"/>
      <EnumerationLiteral name="LeftBottom"/>
      <EnumerationLiteral name="LeftCenter"/>
      <EnumerationLiteral name="LeftTop"/>
      <EnumerationLiteral name="RightBottom"/>
      <EnumerationLiteral name="RightCenter"/>
      <EnumerationLiteral name="RightTop"/>
    </Enumeration>
    <ConcreteClass name="TextTemplate">
      <CompositionProperty name="Fragments" isOrdered="true" lower="0">
        <ClassReference type="/Diagram.TextTemplateFragment"/>
        <Data property="MetaData/description">
          <String>The fragments of the :sp:element:`~Core.Diagram.TextTemplate`.</String>
        </Data>
      </CompositionProperty>
    </ConcreteClass>
    <AbstractClass name="TextTemplateFragment"/>
    <Data property="MetaData/description">
      <String>Two-dimensional engineering diagrams.    

The :sp:element:`!~Core.Diagram` package provides concepts

1. for the graphical representation of a :sp:element:`~Core.ConceptualObject`,

2. for linking parts of this graphical representation to parts of the
   :sp:element:`~!Core.ConceptualObject`, and

3. for semantic annotations of the graphical representation.


.. admonition:: technical

   This specification is not a drawing standard. It does not prescribe any drawing style or
   standard and it does not prescribe which information in a
   :sp:element:`~!Core.ConceptualObject` has to be represented in a :sp:element:`~Core.Diagram.Diagram`.

.. admonition:: technical

   Until version 1.2, graphics has not been in the scope of the DEXPI P&amp;ID Specification.
   Graphics was handled as prescribed by :ref:`standard-proteus`. Over the years, some best
   practices concerning graphics have evolved in the DEXPI community, and fragmentary
   annotations have been added to the DEXPI P&amp;ID Specification.

   In DEXPI P&amp;ID Specification 1.3, an informative Graphics package was added to cover
   conceptual and graphics information in a single comprehensive model.

   For the P&amp;ID Specification 1.4, the Graphics package was further
   elaborated, and it is now a normative part of the specification. It serves to document
   the best practices that have emerged in the past, but no new features have been added.  

   The Graphics package is independent from Proteus Schema in the sense that it is a pure
   UML package. But, like for all other packages in this specification, mappings to Proteus
   Schema are defined that describe how instances of the package's types are serialized.
   In consequence, the features of the Graphics package are constrained to what is supported
   by Proteus Schema. Future versions of the DEXPI P&amp;ID Specification will skip support for
   Proteus Schema, such that additional features can be added to the Graphics package
   depending on the DEXPI community's needs.

   Since DEXPI 2.0, the Graphics package can be used for both P&amp;IDs and process models.


Example
-------


We consider a simple :sp:element:`~Core.ConceptualModel` :sp:name:`cm` that contains a
single :sp:element:`~Plant.ProcessEquipment.CentrifugalPump` with two
:sp:element:`ProcessNozzles &lt;Plant.ProcessEquipment.ProcessNozzle&gt;` and a
:sp:element:`~Plant.ProcessEquipment.Chamber`; in total, there are five
:sp:element:`ConceptualObjects &lt;Core.ConceptualObject&gt;`:

.. image:: /images/img0.*

A typical graphical representation of this model may look like this:

.. image:: /images/img1.*

Linking Graphics and Conceptual Objects
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The graphics can be decomposed in parts each of which represents one of the
:sp:element:`ConceptualObjects &lt;Core.ConceptualObject&gt;`. For each of these parts, we use a
:sp:element:`~Core.Diagram.RepresentationGroup`:

.. image:: /images/img2.*

- The :sp:element:`~Core.Diagram.Diagram` :sp:name:`d` represents the entire :sp:element:`~Core.ConceptualModel`.
  :sp:element:`!~Core.Diagram.Diagram` is a subclass of :sp:element:`~Core.Diagram.RepresentationGroup` that is meant to be used for
  the entire graphics. In addition to a conventional :sp:element:`~Core.Diagram.RepresentationGroup`, a
  :sp:element:`~Core.Diagram.Diagram` has a size (width and height) and a background color.

- :sp:name:`cp_grp` is the :sp:element:`~Core.Diagram.RepresentationGroup` for the
  :sp:element:`~Plant.ProcessEquipment.CentrifugalPump` :sp:name:`cp`.

- :sp:name:`pn1_grp` and :sp:name:`pn2_grp` represent the two
  :sp:element:`ProcessNozzles &lt;Plant.ProcessEquipment.ProcessNozzle&gt;` :sp:name:`pn1` and
  :sp:name:`pn2`.

Note that the composition hierarchy of the :sp:element:`!~Core.Diagram.Diagram` corresponds exactly to the
composition hierarchy of the :sp:element:`~Core.ConceptualModel`. In the
:sp:element:`~Core.ConceptualModel`, :sp:name:`pn1` is a component of :sp:name:`cp`, and in
the :sp:element:`!~Core.Diagram.Diagram`, :sp:name:`pn1_grp` is a component of :sp:name:`cp_grp`.

However, if a :sp:element:`~Core.ConceptualObject` (including all its descendants) has no
graphical representation at all, no :sp:element:`~Core.Diagram.RepresentationGroup` is required: In the example
above, there is no :sp:element:`~Core.Diagram.RepresentationGroup` for the :sp:element:`~Plant.ProcessEquipment.Chamber`
:sp:name:`ch`. 

Adding Semantics
~~~~~~~~~~~~~~~~

So far, we have decomposed the overall graphics in
:sp:element:`RepresentationGroups &lt;Core.Diagram.RepresentationGroup&gt;` that correspond to
certain :sp:element:`ConceptualObjects &lt;Core.ConceptualObject&gt;`. On a finer level of
granularity, we can identify parts with different meanings. These meanings are covered by
different subclasses of the abstract class :sp:element:`~Core.Diagram.RepresentationTypeGroup`. In the example,
two of these subclasses are used: :sp:element:`~Core.Diagram.Static` and
:sp:element:`~Plant.Diagram.EquipmentTagNameLabel`.

.. image:: /images/img3.*

- Consider :sp:name:`cp_grp`, the :sp:element:`~Core.Diagram.RepresentationGroup` of the 
  :sp:element:`~Plant.ProcessEquipment.CentrifugalPump` :sp:name:`cp`. In addition to the two
  groups for the :sp:element:`ProcessNozzles &lt;Plant.ProcessEquipment.ProcessNozzle&gt;`,
  :sp:name:`cp_grp` now contains two
  :sp:element:`RepresentationTypeGroups &lt;Core.Diagram.RepresentationTypeGroup&gt;`.

  - The :sp:element:`~Core.Diagram.Static` group contains the actual
    :sp:element:`~Plant.ProcessEquipment.CentrifugalPump` graphics without any annotations, labels,
    etc.

  - The :sp:element:`~Plant.Diagram.EquipmentTagNameLabel` group displays the tag name of
    the :sp:element:`~Plant.ProcessEquipment.CentrifugalPump`.

- :sp:name:`pn1_grp` contains a :sp:element:`~Core.Diagram.Static` group for the basic symbol of the
  :sp:element:`~Plant.ProcessEquipment.ProcessNozzle`.

- :sp:name:`pn2_grp` contains another :sp:element:`~Core.Diagram.Static` group for the second
  :sp:element:`~Plant.ProcessEquipment.ProcessNozzle` symbol.

Whereas :sp:element:`RepresentationGroups &lt;Core.Diagram.RepresentationGroup&gt;` can be
decomposed in further groups,
:sp:element:`RepresentationTypeGroups &lt;Core.Diagram.RepresentationTypeGroup&gt;` cannot contain
further groups.


Adding Graphical Elements
~~~~~~~~~~~~~~~~~~~~~~~~~

:sp:element:`RepresentationTypeGroups &lt;Core.Diagram.RepresentationTypeGroup&gt;` rather contain
:sp:element:`GraphicalElements &lt;Core.Diagram.GraphicalElement&gt;` such as geometric
primitives, texts, or :sp:element:`ShapeUsages &lt;Core.Diagram.ShapeUsage&gt;`.

.. image:: /images/img4.*

- The :sp:element:`~Core.Diagram.Static` group for the :sp:element:`~Plant.ProcessEquipment.CentrifugalPump` contains a
  :sp:element:`~Core.Diagram.ShapeUsage`, i.e., a reference to a reusable :sp:element:`~Core.Diagram.Shape` with information about
  this specific usage (scaling, rotation, position).

- The :sp:element:`~Plant.Diagram.EquipmentTagNameLabel` for the
  :sp:element:`~Plant.ProcessEquipment.CentrifugalPump` contains a :sp:element:`~Core.Diagram.Text`.

- Both :sp:element:`~Core.Diagram.Static` groups for the two
  :sp:element:`ProcessNozzles &lt;Plant.ProcessEquipment.ProcessNozzle&gt;` contain a :sp:element:`~Core.Diagram.ShapeUsage`.


Coordinate System
-----------------

The coordinate system used is a 2D Cartesian system whose horizontal axis is oriented to the right and whose vertical axis is oriented to the bottom. In consequence, angles are measured clockwise.

Lengths are dimensionless. In the examples, we assume they are in millimeters.


.. admonition:: proteus

In Proteus Schema, the vertical axis to the top, and angles are measured anti-clockwise.


Mapping to SVG
--------------

The purpose of these mappings is to define the visualization of instances of the types in
this package, i.e., "how they look like".

In order to keep the mappings simple, the SVG mappings for all
:sp:element:`GraphicalPrimitives &lt;Core.Diagram.GraphicalPrimitive&gt;` are defined such that
they can be easily scaled when they appear in a :sp:element:`~Core.Diagram.Shape` (in particular, they use
``vector-effect = "non-scaling-stroke"``). In consequence, further scaling, e.g., in an
application, will lead to unacceptable results.

.. admonition:: technical

The SVG mappings in this specification must not be misunderstood as a proposal for
exchanging P&amp;ID graphics via SVG.


.. _modulo-operator:

Modulo Operator
---------------

In some calculations for the SVG and Proteus mappings, the *modulo operator* (or *remainder
of division*) is used. As the modulo operator can be defined in different ways, we give a
definition of how the operator is used in this specification. We content ourselves with a
definition for positive quotients.

Let :math:`q &gt; 0, a \in \mathbb R`. Then

.. math::

   a\,\textrm{mod}\,q = a - \left\lfloor \frac a q \right\rfloor \cdot q \quad .

:math:`\lfloor.\rfloor` is the *floor function* that for :math:`x \in \mathbb R` yields the largest integer :math:`n` such that :math:`n \leq x`.

For example,

.. math::

   0\,\textrm{mod}\,360 &amp;= 0 - \left\lfloor \frac {0} {360} \right\rfloor \cdot 360 = 0 - 0 \cdot 360 = 0 \quad, \\
   100\,\textrm{mod}\,360 &amp;= 100 - \left\lfloor \frac {100} {360} \right\rfloor \cdot 360 = 100 - 0 \cdot 360 = 100 \quad, \\
   359\,\textrm{mod}\,360 &amp;= 359 - \left\lfloor \frac {359} {360} \right\rfloor \cdot 360 = 359 - 0 \cdot 360 = 359 \quad, \\
   360\,\textrm{mod}\,360 &amp;= 360 - \left\lfloor \frac {360} {360} \right\rfloor \cdot 360 = 360 - 1 \cdot 360 = 0 \quad, \\
   (-100)\,\textrm{mod}\,360 &amp;= -100 - \left\lfloor \frac {-100} {360} \right\rfloor \cdot 360 = -100 - (-1) \cdot 360 = 260 \quad. \\

.. admonition:: technical

   The definition of the modulo operator differs between programming languages. For example, the modulo operator in Python, written :code:`%`, coincides with the definition above. The modulo operator in JavaScript (ECMAScript), also written :code:`%`, behaves differently for negative dividends: :code:`-100 % 360` is evaluated to :code:`-100`.</String>
    </Data>
  </Package>
  <ConcreteClass name="EngineeringModel">
    <CompositionProperty name="ConceptualModel" isOrdered="false" lower="0" upper="1">
      <ClassReference type="/ConceptualModel"/>
      <Data property="MetaData/description">
        <String>The conceptual model of the :sp:element:`!~Core.EngineeringModel`.</String>
      </Data>
    </CompositionProperty>
    <CompositionProperty name="Diagram" isOrdered="false" lower="0" upper="1">
      <ClassReference type="/Diagram.Diagram"/>
      <Data property="MetaData/description">
        <String>The diagram of the :sp:element:`!~Core.EngineeringModel`.</String>
      </Data>
    </CompositionProperty>
    <DataProperty name="ExportDateTime" isOrdered="false" isUnique="false" lower="1" upper="1">
      <UnionDataType>
        <DataTypeReference type="Builtin/Undefined"/>
        <DataTypeReference type="Builtin/DateTime"/>
      </UnionDataType>
      <Data property="MetaData/description">
        <String>The date time at which the :sp:element:`~Core.EngineeringModel` was exported by the originating system (see
:sp:element:`~Core.EngineeringModel.OriginatingSystemName`).</String>
      </Data>
    </DataProperty>
    <DataProperty name="OriginatingSystemName" isOrdered="false" isUnique="false" lower="1" upper="1">
      <UnionDataType>
        <DataTypeReference type="Builtin/Undefined"/>
        <DataTypeReference type="Builtin/String"/>
      </UnionDataType>
      <Data property="MetaData/description">
        <String>The name of the system from which the :sp:element:`~Core.EngineeringModel` originates, e.g., the
name of a P&amp;ID tool.</String>
      </Data>
      <Data property="MetaData/exampleValue">
        <String>PID Kit Professional</String>
      </Data>
    </DataProperty>
    <DataProperty name="OriginatingSystemVendorName" isOrdered="false" isUnique="false" lower="1" upper="1">
      <UnionDataType>
        <DataTypeReference type="Builtin/Undefined"/>
        <DataTypeReference type="Builtin/String"/>
      </UnionDataType>
      <Data property="MetaData/description">
        <String>The name of the vendor of the system from which the :sp:element:`~Core.EngineeringModel` originates,
e.g., the name of a software company.</String>
      </Data>
      <Data property="MetaData/exampleValue">
        <String>Smart and Clever Systems, Inc.</String>
      </Data>
    </DataProperty>
    <DataProperty name="OriginatingSystemVersion" isOrdered="false" isUnique="false" lower="1" upper="1">
      <UnionDataType>
        <DataTypeReference type="Builtin/Undefined"/>
        <DataTypeReference type="Builtin/String"/>
      </UnionDataType>
      <Data property="MetaData/description">
        <String>The version of the the system from which the :sp:element:`~Core.EngineeringModel`
originates, e.g., the version number of a tool.</String>
      </Data>
      <Data property="MetaData/exampleValue">
        <String>1.1</String>
      </Data>
    </DataProperty>
    <CompositionProperty name="ShapeCatalogues" isOrdered="false" lower="0">
      <ClassReference type="/Diagram.ShapeCatalogue"/>
      <Data property="MetaData/description">
        <String>The shape catalogues of the :sp:element:`!~Core.EngineeringModel`.</String>
      </Data>
    </CompositionProperty>
    <Data property="MetaData/description">
      <String>An entire DEXPI engineering model.</String>
    </Data>
  </ConcreteClass>
  <ConcreteClass name="Note" superTypes="/ConceptualObject">
    <DataProperty name="LocalNoteIdentifier" isOrdered="false" isUnique="false" lower="0" upper="1">
      <UnionDataType>
        <DataTypeReference type="Builtin/Undefined"/>
        <DataTypeReference type="Builtin/String"/>
      </UnionDataType>
      <Data property="MetaData/description">
        <String>An identifier for the :sp:element:`~Core.Note` in a local context.

A typical usage of the :sp:element:`!~Core.Note.LocalNoteIdentifier` is to visualize the
relation between a :sp:element:`~Core.ConceptualObject` shown on a diagram
and the actual :sp:element:`~Core.Note.NoteText` shown elsewhere on the
diagram: The :sp:element:`!~Core.Note.LocalNoteIdentifier` would be drawn near the
symbol of the :sp:element:`~Core.ConceptualObject`. A separate table would list
the :sp:element:`!~Core.Note.LocalNoteIdentifier` and :sp:element:`~Core.Note.NoteText`
attributes of all :sp:element:`Notes &lt;Core.Note&gt;` on the diagram.</String>
      </Data>
      <Data property="MetaData/rdl_uri">
        <String>http://sandbox.dexpi.org/rdl/LocalNoteIdentifierAssignmentClass</String>
      </Data>
      <Data property="MetaData/rdl_label">
        <String>LOCAL NOTE IDENTIFIER ASSIGNMENT CLASS</String>
      </Data>
      <Data property="MetaData/exampleValue">
        <String>42</String>
      </Data>
    </DataProperty>
    <DataProperty name="NoteClassification" isOrdered="false" isUnique="false" lower="0" upper="1">
      <UnionDataType>
        <DataTypeReference type="Builtin/Undefined"/>
        <DataTypeReference type="Builtin/String"/>
      </UnionDataType>
      <Data property="MetaData/description">
        <String>A textual classification of the :sp:element:`~Core.Note`.</String>
      </Data>
      <Data property="MetaData/rdl_uri">
        <String>http://sandbox.dexpi.org/rdl/NoteClassificationAssignmentClass</String>
      </Data>
      <Data property="MetaData/rdl_label">
        <String>NOTE CLASSIFICATION ASSIGNMENT CLASS</String>
      </Data>
      <Data property="MetaData/exampleValue">
        <String>operational requirement</String>
      </Data>
    </DataProperty>
    <DataProperty name="NoteRegistrationNumber" isOrdered="false" isUnique="false" lower="0" upper="1">
      <UnionDataType>
        <DataTypeReference type="Builtin/Undefined"/>
        <DataTypeReference type="Builtin/String"/>
      </UnionDataType>
      <Data property="MetaData/description">
        <String>A registration number of the :sp:element:`~Core.Note`.</String>
      </Data>
      <Data property="MetaData/rdl_uri">
        <String>http://sandbox.dexpi.org/rdl/NoteRegistrationNumberAssignmentClass</String>
      </Data>
      <Data property="MetaData/rdl_label">
        <String>NOTE REGISTRATION NUMBER ASSIGNMENT CLASS</String>
      </Data>
      <Data property="MetaData/exampleValue">
        <String>XY-42-1</String>
      </Data>
    </DataProperty>
    <DataProperty name="NoteText" isOrdered="false" isUnique="false" lower="0" upper="1">
      <DataTypeReference type="/DataTypes.MultiLanguageString"/>
      <Data property="MetaData/description">
        <String>The text of the :sp:element:`~Core.Note`.</String>
      </Data>
      <Data property="MetaData/rdl_uri">
        <String>http://sandbox.dexpi.org/rdl/NoteTextAssignmentClass</String>
      </Data>
      <Data property="MetaData/rdl_label">
        <String>NOTE TEXT ASSIGNMENT CLASS</String>
      </Data>
    </DataProperty>
    <Data property="MetaData/description">
      <String>A textual annotation about :sp:element:`ConceptualObjects &lt;Core.ConceptualObject&gt;`.
See also :sp:element:`~Core.ConceptualObject.ReferencedNotes`.</String>
    </Data>
    <Data property="MetaData/rdl_uri">
      <String>http://sandbox.dexpi.org/rdl/Note</String>
    </Data>
    <Data property="MetaData/rdl_label">
      <String>NOTE</String>
    </Data>
  </ConcreteClass>
  <ConcreteClass name="PersistentIdentifier">
    <DataProperty name="Context" isOrdered="false" isUnique="false" lower="1" upper="1">
      <UnionDataType>
        <DataTypeReference type="Builtin/Undefined"/>
        <DataTypeReference type="Builtin/String"/>
      </UnionDataType>
      <Data property="MetaData/description">
        <String>The context of the :sp:element:`~Core.PersistentIdentifier` such as a database, a project number or name, etc.</String>
      </Data>
      <Data property="MetaData/exampleValue">
        <String>mysql://myhost:1111/db</String>
      </Data>
    </DataProperty>
    <DataProperty name="Value" isOrdered="false" isUnique="false" lower="1" upper="1">
      <DataTypeReference type="Builtin/String"/>
      <Data property="MetaData/description">
        <String>The value of the :sp:element:`~Core.PersistentIdentifier`, i.e., the actual identifier string.</String>
      </Data>
      <Data property="MetaData/exampleValue">
        <String>84187274</String>
      </Data>
    </DataProperty>
    <Data property="MetaData/description">
      <String>A persistent context-dependent identifier for a :sp:element:`~Core.ConceptualObject`.</String>
    </Data>
  </ConcreteClass>
  <Package name="PhysicalQuantities">
    <Enumeration name="AreaUnit" superTypes="/PhysicalQuantities.PhysicalQuantityUnit">
      <EnumerationLiteral name="CentimetreSquared">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1357829</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>CENTIMETRE SQUARED</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>cm²</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>CMK</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="FootSquared">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1342934</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>FOOT SQUARED</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>ft²</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>FTK</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="InchSquared">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1342979</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>INCH SQUARED</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>in²</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>INK</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="MetreSquared">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1358009</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>METRE SQUARED</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>m²</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>MTK</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="MillimetreSquared">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1358189</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>MILLIMETRE SQUARED</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>mm²</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>MMK</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="YardSquared">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1343744</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>YARD SQUARED</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>yd²</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>YDK</String>
        </Data>
      </EnumerationLiteral>
      <Data property="MetaData/description">
        <String>A unit of measurement for a physical quantity of type *area* with dimension
L\ :sup:`2`.</String>
      </Data>
    </Enumeration>
    <Enumeration name="DensityUnit" superTypes="/PhysicalQuantities.PhysicalQuantityUnit">
      <EnumerationLiteral name="KilogramPerLitre">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1355129</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>KILOGRAM PER LITRE</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>kg/l</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>B35</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="KilogramPerMetreCubed">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1354454</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>KILOGRAM PER METRE CUBED</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>kg/m³</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>KMQ</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="PoundMassPerFootCubed">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1340909</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>POUND MASS PER FOOT CUBED</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>lb/ft³</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>87</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="PoundMassPerUsGallon">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1341629</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>POUND MASS PER US GALLON</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>lb/gal (US)</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>GE</String>
        </Data>
      </EnumerationLiteral>
      <Data property="MetaData/description">
        <String>A unit of measurement for a physical quantity of type *density* with dimension
L\ :sup:`-3`\ M.</String>
      </Data>
    </Enumeration>
    <Enumeration name="DynamicViscosityUnit" superTypes="/PhysicalQuantities.PhysicalQuantityUnit">
      <EnumerationLiteral name="Centipoise">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1318274</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>CENTIPOISE</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>cP</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>C7</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="MillipascalSecond">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS11617155</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>MILLIPASCAL SECOND</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>mPa·s</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>C24</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="PascalSecond">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1352204</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>PASCAL SECOND</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>Pa·s</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>C65</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Poise">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1339964</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>POISE</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>P</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>89</String>
        </Data>
      </EnumerationLiteral>
      <Data property="MetaData/description">
        <String>A unit of measurement for a physical quantity of type *dynamic viscosity* with dimension
L\ :sup:`-1`\ MT\ :sup:`-1`.</String>
      </Data>
    </Enumeration>
    <Enumeration name="ElectricCurrentUnit" superTypes="/PhysicalQuantities.PhysicalQuantityUnit">
      <EnumerationLiteral name="Ampere">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1313954</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>AMPERE</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>A</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>AMP</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Kiloampere">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS4316756455</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>KILOAMPERE</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>kA</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>B22</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Milliampere">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS4316806954</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>MILLIAMPERE</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>mA</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>4K</String>
        </Data>
      </EnumerationLiteral>
      <Data property="MetaData/description">
        <String>A unit of measurement for a physical quantity of type *electric current* with dimension
I.</String>
      </Data>
    </Enumeration>
    <Enumeration name="ElectricalFrequencyUnit" superTypes="/PhysicalQuantities.FrequencyUnit">
      <EnumerationLiteral name="Hertz">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1326464</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>HERTZ</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>Hz</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>HTZ</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="KiloHertz">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS4316756612</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>KILOHERTZ</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>kHz</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>KHZ</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="MegaHertz">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS4316806716</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>MEGAHERTZ</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>MHz</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>MHZ</String>
        </Data>
      </EnumerationLiteral>
      <Data property="MetaData/description">
        <String>A unit of measurement for a physical quantity of type *electrical frequency* with dimension
T\ :sup:`-1`.</String>
      </Data>
    </Enumeration>
    <Enumeration name="EnergyDensityUnit" superTypes="/PhysicalQuantities.PhysicalQuantityUnit">
      <EnumerationLiteral name="JoulePerCubicMetre">
        <Data property="MetaData/rdl_label">
          <String>JOULE PER CUBIC METRE</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>J/m³</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="KilojoulePerCubicMetre">
        <Data property="MetaData/rdl_label">
          <String>KILOJOULE PER CUBIC METRE</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>kJ/m³</String>
        </Data>
      </EnumerationLiteral>
      <Data property="MetaData/description">
        <String>A unit of measurement for a physical quantity of type *energy density* with dimension
L\ :sup:`-1`\ MT\ :sup:`-2`.</String>
      </Data>
    </Enumeration>
    <Enumeration name="EnergyUnit" superTypes="/PhysicalQuantities.PhysicalQuantityUnit">
      <EnumerationLiteral name="Joule">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1327544</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>JOULE</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>J</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>JOU</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Kilojoule">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS4316756626</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>KILOJOULE</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>kJ</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>KJO</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="KilowattHour">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS4316756769</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>KILOWATT HOUR</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>kW·h</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>KWH</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Megajoule">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS4316806730</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>MEGAJOULE</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>MJ</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>3B</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="MegawattHour">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS43168067178</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>MEGAWATT HOUR</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>MW·h</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>MWH</String>
        </Data>
      </EnumerationLiteral>
      <Data property="MetaData/description">
        <String>A unit of measurement for a physical quantity of type *energy* with dimension
L\ :sup:`2`\ MT\ :sup:`-2`.</String>
      </Data>
    </Enumeration>
    <Enumeration name="ForceUnit" superTypes="/PhysicalQuantities.PhysicalQuantityUnit">
      <EnumerationLiteral name="KiloNewton">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1351034</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>KILONEWTON</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>kN</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>B47</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Newton">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1337939</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>NEWTON</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>N</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>NEW</String>
        </Data>
      </EnumerationLiteral>
      <Data property="MetaData/description">
        <String>A unit of measurement for a physical quantity of type *force* with dimension
LMT\ :sup:`-2`.</String>
      </Data>
    </Enumeration>
    <AbstractDataType name="FrequencyUnit" superTypes="/PhysicalQuantities.PhysicalQuantityUnit">
      <Data property="MetaData/description">
        <String>A unit of measurement for a physical quantity of type *frequency* with dimension
T\ :sup:`-1`. :sp:element:`!~Core.PhysicalQuantities.FrequencyUnit` has 3 subtypes for
different application areas.</String>
      </Data>
    </AbstractDataType>
    <Enumeration name="HeatCapacityUnit" superTypes="/PhysicalQuantities.PhysicalQuantityUnit">
      <EnumerationLiteral name="BtuITPerDegreeFahrenheit">
        <Data property="MetaData/un_symbol">
          <String>Btu[IT]/ºF</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>N60</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="BtuThPerDegreeFahrenheit">
        <Data property="MetaData/un_symbol">
          <String>Btu[th]/ºF</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>N61</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="WattPerKelvin">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1355759</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>WATT PER KELVIN</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>W/K</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>D52</String>
        </Data>
      </EnumerationLiteral>
      <Data property="MetaData/description">
        <String>A unit of measurement for a physical quantity of type *heat capacity* with dimension
L\ :sup:`2`\ MΘ\ :sup:`-1`\ T\ :sup:`-3`.</String>
      </Data>
    </Enumeration>
    <Enumeration name="HeatTransferCoefficientUnit" superTypes="/PhysicalQuantities.PhysicalQuantityUnit">
      <EnumerationLiteral name="KilowattPerMetreSquaredKelvin">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS43167567170</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>KILOWATT PER METRE SQUARED KELVIN</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>kW/(m²·K)</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>N78</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="WattPerMetreSquaredKelvin">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1348424</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>WATT PER METRE SQUARED KELVIN</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>W/(m²·K)</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>D55</String>
        </Data>
      </EnumerationLiteral>
      <Data property="MetaData/description">
        <String>A unit of measurement for a physical quantity of type *heat transfer coefficient* with dimension
MT\ :sup:`-3`\ Θ.</String>
      </Data>
    </Enumeration>
    <Enumeration name="HeatTransferResistanceUnit" superTypes="/PhysicalQuantities.PhysicalQuantityUnit">
      <EnumerationLiteral name="FootSquaredHourDegreeFahrenheitPerBtuTh">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS43166353195</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>DEGREE FAHRENHEIT SQUARE FOOT HOUR PER BRITISH THERMAL UNIT</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>°F·h·ft²/Btu[th]</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>J19</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="MetreSquaredKelvinPerWatt">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS4316756411</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>KELVIN SQUARE METRE PER WATT</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>m²·K/W</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>D19</String>
        </Data>
      </EnumerationLiteral>
      <Data property="MetaData/description">
        <String>A unit of measurement for a physical quantity of type *heat transfer resistance* with dimension
M\ :sup:`-1`\ ΘT\ :sup:`3`.</String>
      </Data>
    </Enumeration>
    <Enumeration name="KinematicViscosityUnit" superTypes="/PhysicalQuantities.PhysicalQuantityUnit">
      <EnumerationLiteral name="CentimetreSquaredPerSecond">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS43168636161</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>SQUARE CENTIMETRE PER SECOND</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>cm²/s</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>M81</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Centistoke">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS43165906236</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>CENTISTOKE</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>cSt</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>4C</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="MetreSquaredPerSecond">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1355399</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>METRE SQUARED PER SECOND</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>m²/s</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>S4</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Stoke">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS4316863983</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>STOKE</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>St</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>91</String>
        </Data>
      </EnumerationLiteral>
      <Data property="MetaData/description">
        <String>A unit of measurement for a physical quantity of type *kinematic viscosity* with dimension
L\ :sup:`2`\ T\ :sup:`-1`.</String>
      </Data>
    </Enumeration>
    <Enumeration name="LengthUnit" superTypes="/PhysicalQuantities.PhysicalQuantityUnit">
      <EnumerationLiteral name="Centimetre">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1318004</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>CENTIMETRE</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>cm</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>CMT</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Foot">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1324664</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>FOOT</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>ft</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>FOT</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Inch">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1326959</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>INCH</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>in</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>INH</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Kilometre">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1330199</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>KILOMETRE</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>km</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>KMT</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Metre">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1332674</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>METRE</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>m</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>MTR</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Micrometre">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1351529</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>MICROMETRE</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>µm</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>4H</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Millimetre">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1357739</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>MILLIMETRE</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>mm</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>MMT</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Nanometre">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1337669</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>NANOMETRE</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>nm</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>C45</String>
        </Data>
      </EnumerationLiteral>
      <Data property="MetaData/description">
        <String>A unit of measurement for a physical quantity of type *length* with dimension
L.</String>
      </Data>
    </Enumeration>
    <Enumeration name="MagneticFieldIntensityUnit" superTypes="/PhysicalQuantities.PhysicalQuantityUnit">
      <EnumerationLiteral name="AmperePerMetre">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1353734</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>AMPERE PER METRE</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>A/m</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>AE</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="KiloamperePerMetre">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS4316756466</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>KILOAMPERE PER METRE</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>kA/m</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>B24</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Oersted">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1338479</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>OERSTED</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>Oe</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>66</String>
        </Data>
      </EnumerationLiteral>
      <Data property="MetaData/description">
        <String>A unit of measurement for a physical quantity of type *magnetic field intensity* with dimension
IL\ :sup:`-1`.</String>
      </Data>
    </Enumeration>
    <Enumeration name="MagneticFluxDensityUnit" superTypes="/PhysicalQuantities.PhysicalQuantityUnit">
      <EnumerationLiteral name="Gauss">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS4316755955</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>GAUSS</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>Gs</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>76</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Tesla">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1344644</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>TESLA</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>T</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>D33</String>
        </Data>
      </EnumerationLiteral>
      <Data property="MetaData/description">
        <String>A unit of measurement for a physical quantity of type *magnetic flux density* with dimension
MT\ :sup:`-2`\ I\ :sup:`-1`.</String>
      </Data>
    </Enumeration>
    <Enumeration name="MassConcentrationUnit" superTypes="/PhysicalQuantities.PhysicalQuantityUnit">
      <EnumerationLiteral name="KilogramPerLitre">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1355129</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>KILOGRAM PER LITRE</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>kg/l</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>B35</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="KilogramPerMetreCubed">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1354454</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>KILOGRAM PER METRE CUBED</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>kg/m³</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>KMQ</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="PoundMassPerFootCubed">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1340909</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>POUND MASS PER FOOT CUBED</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>lb/ft³</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>87</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="PoundMassPerUsGallon">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1341629</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>POUND MASS PER US GALLON</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>lb/gal (US)</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>GE</String>
        </Data>
      </EnumerationLiteral>
      <Data property="MetaData/description">
        <String>A unit of measurement for a physical quantity of type *mass concentration* with dimension
L\ :sup:`-3`\ M.</String>
      </Data>
    </Enumeration>
    <Enumeration name="MassFlowRateUnit" superTypes="/PhysicalQuantities.PhysicalQuantityUnit">
      <EnumerationLiteral name="KilogramPerHour">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1329344</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>KILOGRAM PER HOUR</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>kg/h</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>E93</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="KilogramPerMinute">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1350719</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>KILOGRAM PER MINUTE</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>kg/min</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>F31</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="KilogramPerSecond">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1329659</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>KILOGRAM PER SECOND</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>kg/s</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>KGS</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="PoundMassPerHour">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS43168250123</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>POUND MASS PER HOUR</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>lb/h</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>4U</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="PoundMassPerMinute">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS43168250156</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>POUND MASS PER MINUTE</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>lb/min</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>K78</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="PoundMassPerSecond">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS43168250167</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>POUND MASS PER SECOND</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>lb/s</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>K81</String>
        </Data>
      </EnumerationLiteral>
      <Data property="MetaData/description">
        <String>A unit of measurement for a physical quantity of type *mass flow rate* with dimension
MT\ :sup:`-1`.</String>
      </Data>
    </Enumeration>
    <Enumeration name="MassSpecificEnergyUnit" superTypes="/PhysicalQuantities.PhysicalQuantityUnit">
      <EnumerationLiteral name="KilojoulePerKilogram">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1329884</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>KILOJOULE PER KILOGRAM</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>kJ/kg</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>B42</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="MegajoulePerKilogram">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1332224</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>MEGAJOULE PER KILOGRAM</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>MJ/kg</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>JK</String>
        </Data>
      </EnumerationLiteral>
      <Data property="MetaData/description">
        <String>A unit of measurement for a physical quantity of type *mass specific energy* with dimension
L\ :sup:`2`\ T\ :sup:`-2`.</String>
      </Data>
    </Enumeration>
    <Enumeration name="MassSpecificHeatCapacityUnit" superTypes="/PhysicalQuantities.PhysicalQuantityUnit">
      <EnumerationLiteral name="BtuITPerPoundDegreeFahrenheit">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS43164893116</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>BRITISH THERMAL UNIT PER POUND MASS DEGREE FAHRENHEIT</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>Btu[IT]/(lb·°F)</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>J43</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="KilojoulePerKilogramKelvin">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS43167566130</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>KILOJOULE PER KILOGRAM KELVIN</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>kJ/(kg·K)</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>B43</String>
        </Data>
      </EnumerationLiteral>
      <Data property="MetaData/description">
        <String>A unit of measurement for a physical quantity of type *mass specific heat capacity* with dimension
L\ :sup:`2`\ Θ\ :sup:`-1`\ T\ :sup:`-2`.</String>
      </Data>
    </Enumeration>
    <Enumeration name="MassUnit" superTypes="/PhysicalQuantities.PhysicalQuantityUnit">
      <EnumerationLiteral name="Gram">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1325789</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>GRAM</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>g</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>GRM</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Kilogram">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1328669</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>KILOGRAM</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>kg</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>KGM</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="PoundMass">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS11617515</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>POUND MASS</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>lb</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>LBR</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Tonne">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1344689</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>TONNE</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>t</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>TNE</String>
        </Data>
      </EnumerationLiteral>
      <Data property="MetaData/description">
        <String>A unit of measurement for a physical quantity of type *mass* with dimension
M.</String>
      </Data>
    </Enumeration>
    <Enumeration name="MoleConcentrationUnit" superTypes="/PhysicalQuantities.PhysicalQuantityUnit">
      <EnumerationLiteral name="MillimolePerLitre">
        <Data property="MetaData/un_symbol">
          <String>mmol/l</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>M33</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="MolePerLitre">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1357964</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>MOLE PER LITRE</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>mol/l</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>C38</String>
        </Data>
      </EnumerationLiteral>
      <Data property="MetaData/description">
        <String>A unit of measurement for a physical quantity of type *mole concentration* with dimension
NL\ :sup:`-3`.</String>
      </Data>
    </Enumeration>
    <Enumeration name="MoleFlowRateUnit" superTypes="/PhysicalQuantities.PhysicalQuantityUnit">
      <EnumerationLiteral name="KilomolePerSecond">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS43167566235</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>KILOMOLE PER SECOND</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>kmol/s</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>E94</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="PoundMolePerSecond">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS4316807294</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>MOLE-POUND MASS PER SECOND</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>lbmol/s</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>P45</String>
        </Data>
      </EnumerationLiteral>
      <Data property="MetaData/description">
        <String>A unit of measurement for a physical quantity of type *mole flow rate* with dimension
NT\ :sup:`-1`.</String>
      </Data>
    </Enumeration>
    <Enumeration name="MoleSpecificEnergyUnit" superTypes="/PhysicalQuantities.PhysicalQuantityUnit">
      <EnumerationLiteral name="JoulePerMole">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1354364</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>JOULE PER MOLE</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>J/mol</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>B15</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="KilocaloriePerMole">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS43167564201</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>KILOCALORIE PER MOLE</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="KilojoulePerKilomole">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS43167566144</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>KILOJOULE PER KILOMOLE</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>J/mol</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>B15</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="KilojoulePerMole">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS43167566155</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>KILOJOULE PER MOLE</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>kJ/mol</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>B44</String>
        </Data>
      </EnumerationLiteral>
      <Data property="MetaData/description">
        <String>A unit of measurement for a physical quantity of type *mole specific energy* with dimension
N\ :sup:`-1`\ L\ :sup:`2`\ MT\ :sup:`-2`.</String>
      </Data>
    </Enumeration>
    <Enumeration name="MomentOfForceUnit" superTypes="/PhysicalQuantities.PhysicalQuantityUnit">
      <EnumerationLiteral name="NewtonMetre">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1337984</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>NEWTON METRE</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>N·m</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>NU</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="PoundForceFoot">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1324754</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>FOOT POUND FORCE</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>lbf·ft</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>M92</String>
        </Data>
      </EnumerationLiteral>
      <Data property="MetaData/description">
        <String>A unit of measurement for a physical quantity of type *moment of force* with dimension
L\ :sup:`2`\ MT\ :sup:`-2`.</String>
      </Data>
    </Enumeration>
    <Enumeration name="NumberPerTimeIntervalUnit" superTypes="/PhysicalQuantities.FrequencyUnit">
      <EnumerationLiteral name="ReciprocalMinute">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS4316851589</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>RECIPROCAL MINUTE</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>min⁻¹</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>C94</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="ReciprocalSecond">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1355489</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>RECIPROCAL SECOND</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>s⁻¹</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>C97</String>
        </Data>
      </EnumerationLiteral>
      <Data property="MetaData/description">
        <String>A unit of measurement for a physical quantity of type *number per time interval* with dimension
T\ :sup:`-1`.</String>
      </Data>
    </Enumeration>
    <Enumeration name="ParticleSizeUnit" superTypes="/PhysicalQuantities.PhysicalQuantityUnit">
      <EnumerationLiteral name="Inch">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1326959</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>INCH</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>in</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>INH</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Micrometre">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1351529</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>MICROMETRE</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>µm</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>4H</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Millimetre">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1357739</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>MILLIMETRE</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>mm</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>MMT</String>
        </Data>
      </EnumerationLiteral>
      <Data property="MetaData/description">
        <String>A unit of measurement for a physical quantity of type *particle size* with dimension
L.</String>
      </Data>
    </Enumeration>
    <AggregatedDataType name="PhysicalQuantity">
      <DataTypeParameter name="UnitType">
        <DataTypeReference type="/PhysicalQuantities.PhysicalQuantityUnit"/>
        <Data property="MetaData/description">
          <String>A type parameter that gives the type of the :sp:element:`~Core.PhysicalQuantities.PhysicalQuantity.Unit`.</String>
        </Data>
      </DataTypeParameter>
      <DataProperty name="Unit" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="/PhysicalQuantities.PhysicalQuantity.UnitType"/>
        <Data property="MetaData/description">
          <String>The unit of measurement of the :sp:element:`~Core.PhysicalQuantities.PhysicalQuantity`.</String>
        </Data>
      </DataProperty>
      <DataProperty name="Value" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/Double"/>
        <Data property="MetaData/description">
          <String>The numerical value of the :sp:element:`~Core.PhysicalQuantities.PhysicalQuantity`.</String>
        </Data>
      </DataProperty>
      <Data property="MetaData/description">
        <String>A quantification of a scalar physical property such as a length or a force. A :sp:element:`!~Core.PhysicalQuantities.PhysicalQuantity`
comprises a numerical :sp:element:`~Core.PhysicalQuantities.PhysicalQuantity.Value` and a :sp:element:`~Core.PhysicalQuantities.PhysicalQuantity.Unit`.</String>
      </Data>
    </AggregatedDataType>
    <AbstractDataType name="PhysicalQuantityUnit"/>
    <AggregatedDataType name="PhysicalQuantityVector">
      <DataTypeParameter name="UnitType">
        <DataTypeReference type="/PhysicalQuantities.PhysicalQuantityUnit"/>
        <Data property="MetaData/description">
          <String>A type parameter that gives the type of the :sp:element:`~Core.PhysicalQuantities.PhysicalQuantityVector.Unit`.</String>
        </Data>
      </DataTypeParameter>
      <DataProperty name="Unit" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="/PhysicalQuantities.PhysicalQuantityVector.UnitType"/>
        <Data property="MetaData/description">
          <String>The unit of measurement of the :sp:element:`~Core.PhysicalQuantities.PhysicalQuantityVector`.</String>
        </Data>
      </DataProperty>
      <DataProperty name="Values" isOrdered="true" isUnique="false" lower="0">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/Double"/>
        </UnionDataType>
        <Data property="MetaData/description">
          <String>The numerical values of the :sp:element:`~Core.PhysicalQuantities.PhysicalQuantityVector`.</String>
        </Data>
      </DataProperty>
      <Data property="MetaData/description">
        <String>A quantification of a vector of physical properties such as length or force. A :sp:element:`!~Core.PhysicalQuantities.PhysicalQuantityVector`
comprises an arbitrary number of :sp:element:`~Core.PhysicalQuantities.PhysicalQuantityVector.Values` and a :sp:element:`~Core.PhysicalQuantities.PhysicalQuantityVector.Unit`.</String>
      </Data>
    </AggregatedDataType>
    <Enumeration name="PowerUnit" superTypes="/PhysicalQuantities.PhysicalQuantityUnit">
      <EnumerationLiteral name="Kilowatt">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1330919</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>KILOWATT</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>kW</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Megawatt">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1332584</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>MEGAWATT</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>MW</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Watt">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1348154</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>WATT</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>W</String>
        </Data>
      </EnumerationLiteral>
      <Data property="MetaData/description">
        <String>A unit of measurement for a physical quantity of type *power* with dimension
L\ :sup:`2`\ MT\ :sup:`-3`.</String>
      </Data>
    </Enumeration>
    <Enumeration name="PressureAbsoluteUnit" superTypes="/PhysicalQuantities.PressureUnit">
      <EnumerationLiteral name="Bar">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1314539</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>BAR</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>bar</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>BAR</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Kilopascal">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1330559</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>KILOPASCAL</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>kPa</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>KPA</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Megapascal">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1332404</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>MEGAPASCAL</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>MPa</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>MPA</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Millibar">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS11617875</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>MILLIBAR</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>mbar</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>MBR</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Pascal">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1338749</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>PASCAL</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>Pa</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>PAL</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="PoundForcePerInchSquared">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1341809</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>POUND FORCE PER INCH SQUARED</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>lbf/in²</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>PS</String>
        </Data>
      </EnumerationLiteral>
      <Data property="MetaData/description">
        <String>A unit of measurement for a physical quantity of type *pressure absolute* with dimension
L\ :sup:`-1`\ MT\ :sup:`-2`.</String>
      </Data>
    </Enumeration>
    <Enumeration name="PressureGaugeUnit" superTypes="/PhysicalQuantities.PressureUnit">
      <EnumerationLiteral name="Bar">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1314539</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>BAR</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>bar</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>BAR</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Kilopascal">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1330559</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>KILOPASCAL</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>kPa</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>KPA</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Megapascal">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1332404</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>MEGAPASCAL</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>MPa</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>MPA</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Millibar">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS11617875</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>MILLIBAR</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>mbar</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>MBR</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Pascal">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1338749</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>PASCAL</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>Pa</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>PAL</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="PoundForcePerInchSquared">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1341809</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>POUND FORCE PER INCH SQUARED</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>lbf/in²</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>PS</String>
        </Data>
      </EnumerationLiteral>
      <Data property="MetaData/description">
        <String>A unit of measurement for a physical quantity of type *pressure gauge* with dimension
L\ :sup:`-1`\ MT\ :sup:`-2`.</String>
      </Data>
    </Enumeration>
    <AbstractDataType name="PressureUnit" superTypes="/PhysicalQuantities.PhysicalQuantityUnit">
      <Data property="MetaData/description">
        <String>A unit of measurement for a physical quantity of type *pressure* with dimension
L\ :sup:`-1`\ MT\ :sup:`-2`. :sp:element:`!~Core.PhysicalQuantities.PressureUnit` has 2 subtypes for
different application areas.</String>
      </Data>
    </AbstractDataType>
    <Enumeration name="RatioUnit" superTypes="/PhysicalQuantities.PhysicalQuantityUnit">
      <EnumerationLiteral name="Fraction">
        <Data property="MetaData/un_symbol">
          <String>1</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="PartsPerBillion">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1337624</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>PARTS PER BILLION</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>ppb</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>61</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="PartsPerMillion">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1333484</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>PARTS PER MILLION</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>ppm</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>59</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="PartsPerThousand">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1334834</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>PARTS PER THOUSAND</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>‰</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>NX</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Percent">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1317959</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>PERCENT</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>%</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>P1</String>
        </Data>
      </EnumerationLiteral>
      <Data property="MetaData/description">
        <String>A unit of measurement for a physical quantity of type *ratio* with dimension
1.</String>
      </Data>
    </Enumeration>
    <Enumeration name="RotationalFrequencyUnit" superTypes="/PhysicalQuantities.FrequencyUnit">
      <EnumerationLiteral name="ReciprocalMinute">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS4316851589</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>RECIPROCAL MINUTE</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>min⁻¹</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>C94</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="ReciprocalSecond">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1355489</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>RECIPROCAL SECOND</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>s⁻¹</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>C97</String>
        </Data>
      </EnumerationLiteral>
      <Data property="MetaData/description">
        <String>A unit of measurement for a physical quantity of type *rotational frequency* with dimension
T\ :sup:`-1`.</String>
      </Data>
    </Enumeration>
    <Enumeration name="SurfaceTensionUnit" superTypes="/PhysicalQuantities.PhysicalQuantityUnit">
      <EnumerationLiteral name="DynePerCentimetre">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1323359</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>DYNE PER CENTIMETRE</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>dyn/cm</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>DX</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="NewtonPerMetre">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1338299</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>NEWTON PER METRE</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>N/m</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>4P</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="PoundForcePerInch">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS4316825046</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>POUND FORCE PER INCH</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>lbf/in</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>F48</String>
        </Data>
      </EnumerationLiteral>
      <Data property="MetaData/description">
        <String>A unit of measurement for a physical quantity of type *surface tension* with dimension
MT\ :sup:`-2`.</String>
      </Data>
    </Enumeration>
    <Enumeration name="TemperatureUnit" superTypes="/PhysicalQuantities.PhysicalQuantityUnit">
      <EnumerationLiteral name="DegreeCelsius">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1322684</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>DEGREE CELSIUS</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>°C</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>CEL</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="DegreeFahrenheit">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1322549</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>DEGREE FAHRENHEIT</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>°F</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>FAH</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Kelvin">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1327904</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>KELVIN</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>K</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>KEL</String>
        </Data>
      </EnumerationLiteral>
      <Data property="MetaData/description">
        <String>A unit of measurement for a physical quantity of type *temperature* with dimension
Θ.</String>
      </Data>
    </Enumeration>
    <Enumeration name="ThermalConductivityUnit" superTypes="/PhysicalQuantities.PhysicalQuantityUnit">
      <EnumerationLiteral name="BtuITPerHourFootDegreeFahrenheit">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS431648930</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>BRITISH THERMAL UNIT PER HOUR FOOT DEGREE FAHRENHEIT</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>Btu[IT]·ft/(h·ft²·°F)</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>J40</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="WattPerMetreKelvin">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1348334</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>WATT PER METRE KELVIN</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>W/(m·K)</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>D53</String>
        </Data>
      </EnumerationLiteral>
      <Data property="MetaData/description">
        <String>A unit of measurement for a physical quantity of type *thermal conductivity* with dimension
LMΘ\ :sup:`-1`\ T\ :sup:`-3`.</String>
      </Data>
    </Enumeration>
    <Enumeration name="TimeIntervalUnit" superTypes="/PhysicalQuantities.PhysicalQuantityUnit">
      <EnumerationLiteral name="Day">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS8945301</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>DAY</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>d</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>DAY</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Hour">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1326734</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>HOUR</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>h</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>HUR</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Millisecond">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1336364</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>MILLISECOND</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>ms</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>C26</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Minute">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1336814</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>MINUTE</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>min</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>MIN</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Month">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1370700781</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>MONTH</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>mo</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>MON</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Second">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1342529</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>SECOND</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>s</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>SEC</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Year">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS4316908552</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>YEAR</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>y</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>ANN</String>
        </Data>
      </EnumerationLiteral>
      <Data property="MetaData/description">
        <String>A unit of measurement for a physical quantity of type *time interval* with dimension
T.</String>
      </Data>
    </Enumeration>
    <Enumeration name="VelocityUnit" superTypes="/PhysicalQuantities.PhysicalQuantityUnit">
      <EnumerationLiteral name="FootPerSecond">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1324439</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>FOOT PER SECOND</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>ft/s</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>FS</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="KilometrePerHour">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1330289</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>KILOMETRE PER HOUR</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>km/h</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>KMH</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="MetrePerSecond">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1354499</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>METRE PER SECOND</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>m/s</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>MTS</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="MilePerHour">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1334204</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>MILE PER HOUR</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>mile/h</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>HM</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="NauticalMilePerHour">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1331099</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>KNOT</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>kn</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>KNT</String>
        </Data>
      </EnumerationLiteral>
      <Data property="MetaData/description">
        <String>A unit of measurement for a physical quantity of type *velocity* with dimension
LT\ :sup:`-1`.</String>
      </Data>
    </Enumeration>
    <Enumeration name="VoltageUnit" superTypes="/PhysicalQuantities.PhysicalQuantityUnit">
      <EnumerationLiteral name="KiloVolt">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1359653041</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>KILOVOLT</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>kV</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>KVT</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="MegaVolt">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1359661910</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>MEGAVOLT</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>MV</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>B78</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Volt">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1347974</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>VOLT</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>V</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>VLT</String>
        </Data>
      </EnumerationLiteral>
      <Data property="MetaData/description">
        <String>A unit of measurement for a physical quantity of type *voltage* with dimension
L\ :sup:`2`\ MT\ :sup:`-3`\ I\ :sup:`-1`.</String>
      </Data>
    </Enumeration>
    <Enumeration name="VolumeFlowRateUnit" superTypes="/PhysicalQuantities.PhysicalQuantityUnit">
      <EnumerationLiteral name="FootCubedPerHour">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1320029</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>FOOT CUBED PER HOUR</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>ft³/h</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>2K</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="FootCubedPerMinute">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1320164</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>FOOT CUBED PER MINUTE</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>ft³/min</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>2L</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="LitrePerSecond">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1331369</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>LITRE PER SECOND</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>l/s</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>G51</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="MetreCubedPerDay">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1320839</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>METRE CUBED PER DAY</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>m³/d</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>G52</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="MetreCubedPerHour">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1321064</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>METRE CUBED PER HOUR</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>m³/h</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>MQH</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="MetreCubedPerMinute">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1349909</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>METRE CUBED PER MINUTE</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>m³/min</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>G53</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="MetreCubedPerSecond">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1321379</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>METRE CUBED PER SECOND</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>m³/s</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>MQS</String>
        </Data>
      </EnumerationLiteral>
      <Data property="MetaData/description">
        <String>A unit of measurement for a physical quantity of type *volume flow rate* with dimension
L\ :sup:`3`\ T\ :sup:`-1`.</String>
      </Data>
    </Enumeration>
    <Enumeration name="VolumeUnit" superTypes="/PhysicalQuantities.PhysicalQuantityUnit">
      <EnumerationLiteral name="CentimetreCubed">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1357874</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>CENTIMETRE CUBED</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>cm³</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>CMQ</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="DecimetreCubed">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1319174</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>DECIMETRE CUBED</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>dm³</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>DMQ</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="FootCubed">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1319669</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>FOOT CUBED</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>ft³</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>FTQ</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="Litre">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1331144</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>LITRE</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>l</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>LTR</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="MetreCubed">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1349099</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>METRE CUBED</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>m³</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>MTQ</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="UsFluidOunce">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS11619315</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>US FLUID OUNCE</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>fl oz (US)</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>OZA</String>
        </Data>
      </EnumerationLiteral>
      <EnumerationLiteral name="UsGallon">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS11615400</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>US GALLON</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>gal (US)</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>GLL</String>
        </Data>
      </EnumerationLiteral>
      <Data property="MetaData/description">
        <String>A unit of measurement for a physical quantity of type *volume* with dimension
L\ :sup:`3`.</String>
      </Data>
    </Enumeration>
    <Enumeration name="pHUnit" superTypes="/PhysicalQuantities.PhysicalQuantityUnit">
      <EnumerationLiteral name="pH">
        <Data property="MetaData/rdl_uri">
          <String>http://data.posccaesar.org/rdl/RDS1060066911</String>
        </Data>
        <Data property="MetaData/rdl_label">
          <String>pH</String>
        </Data>
        <Data property="MetaData/un_symbol">
          <String>pH</String>
        </Data>
        <Data property="MetaData/un_code">
          <String>Q30</String>
        </Data>
      </EnumerationLiteral>
      <Data property="MetaData/description">
        <String>A unit of measurement for a physical quantity of type *pH* with dimension
1.</String>
      </Data>
    </Enumeration>
    <Data property="MetaData/description">
      <String>Data types for representing physical quantities such as the area of a surface and the
frequency of a repeating event.</String>
    </Data>
  </Package>
  <ConcreteClass name="QualifiedValue" superTypes="/ConceptualObject">
    <DataTypeParameter name="Type">
      <UnionDataType>
        <DataTypeReference type="/PhysicalQuantities.PhysicalQuantity"/>
        <DataTypeReference type="Builtin/Double"/>
      </UnionDataType>
    </DataTypeParameter>
    <DataProperty name="Case" isOrdered="false" isUnique="false" lower="0" upper="1">
      <UnionDataType>
        <DataTypeReference type="Builtin/Undefined"/>
        <DataTypeReference type="Builtin/String"/>
      </UnionDataType>
      <Data property="MetaData/description">
        <String>The identifier string for the case definition.</String>
      </Data>
      <Data property="MetaData/exampleValue">
        <String>Special case</String>
      </Data>
    </DataProperty>
    <DataProperty name="CaseUID" isOrdered="false" isUnique="false" lower="0" upper="1">
      <UnionDataType>
        <DataTypeReference type="Builtin/Undefined"/>
        <DataTypeReference type="Builtin/String"/>
      </UnionDataType>
      <Data property="MetaData/description">
        <String>Globally unique identifier to the case referred to.</String>
      </Data>
      <Data property="MetaData/exampleValue">
        <String>1723-001</String>
      </Data>
    </DataProperty>
    <DataProperty name="Description" isOrdered="false" isUnique="false" lower="0" upper="1">
      <DataTypeReference type="/DataTypes.MultiLanguageString"/>
      <Data property="MetaData/description">
        <String>A description.</String>
      </Data>
    </DataProperty>
    <DataProperty name="DisplayText" isOrdered="false" isUnique="false" lower="1" upper="1">
      <UnionDataType>
        <DataTypeReference type="Builtin/Undefined"/>
        <DataTypeReference type="Builtin/String"/>
      </UnionDataType>
      <Data property="MetaData/description">
        <String>The display text of the :sp:element:`~Core.QualifiedValue`, typically shown in a diagram.</String>
      </Data>
      <Data property="MetaData/exampleValue">
        <String>Lower limit ambient operating temperature.</String>
      </Data>
    </DataProperty>
    <DataProperty name="Provenance" isOrdered="false" isUnique="false" lower="0" upper="1">
      <DataTypeReference type="/DataTypes.QuantityProvenance"/>
    </DataProperty>
    <DataProperty name="ProvenanceURI" isOrdered="false" isUnique="false" lower="0" upper="1">
      <UnionDataType>
        <DataTypeReference type="Builtin/Undefined"/>
        <DataTypeReference type="Builtin/AnyURI"/>
      </UnionDataType>
      <Data property="MetaData/exampleValue">
        <String>abc://exampleURI</String>
      </Data>
    </DataProperty>
    <DataProperty name="Range" isOrdered="false" isUnique="false" lower="0" upper="1">
      <DataTypeReference type="/DataTypes.QuantityRange"/>
    </DataProperty>
    <DataProperty name="ReferenceDataURI" isOrdered="false" isUnique="false" lower="0" upper="1">
      <UnionDataType>
        <DataTypeReference type="Builtin/Undefined"/>
        <DataTypeReference type="Builtin/AnyURI"/>
      </UnionDataType>
      <Data property="MetaData/description">
        <String>A reference to the definition of the :sp:element:`~Core.QualifiedValue`.</String>
      </Data>
      <Data property="MetaData/exampleValue">
        <String>abc://referenceURI</String>
      </Data>
    </DataProperty>
    <DataProperty name="Scope" isOrdered="false" isUnique="false" lower="0" upper="1">
      <DataTypeReference type="/DataTypes.Scope"/>
    </DataProperty>
    <DataProperty name="SourceURI" isOrdered="false" isUnique="false" lower="0" upper="1">
      <UnionDataType>
        <DataTypeReference type="Builtin/Undefined"/>
        <DataTypeReference type="Builtin/AnyURI"/>
      </UnionDataType>
      <Data property="MetaData/description">
        <String>A reference to the source of the value.</String>
      </Data>
      <Data property="MetaData/exampleValue">
        <String>abc://sourceURI</String>
      </Data>
    </DataProperty>
    <DataProperty name="Value" isOrdered="false" isUnique="false" lower="1" upper="1">
      <DataTypeReference type="/QualifiedValue.Type"/>
    </DataProperty>
  </ConcreteClass>
  <ConcreteClass name="Role">
    <DataProperty name="Description" isOrdered="false" isUnique="false" lower="0" upper="1">
      <UnionDataType>
        <DataTypeReference type="Builtin/Undefined"/>
        <DataTypeReference type="/DataTypes.MultiLanguageString"/>
      </UnionDataType>
      <Data property="MetaData/description">
        <String>A description of the :sp:element:`~Core.Role`.</String>
      </Data>
    </DataProperty>
    <DataProperty name="Name" isOrdered="false" isUnique="false" lower="1" upper="1">
      <DataTypeReference type="Builtin/String"/>
      <Data property="MetaData/description">
        <String>The name of the :sp:element:`~Core.Role`.</String>
      </Data>
      <Data property="MetaData/exampleValue">
        <String>Bottom Product</String>
      </Data>
    </DataProperty>
    <DataProperty name="Uri" isOrdered="false" isUnique="false" lower="0" upper="1">
      <UnionDataType>
        <DataTypeReference type="Builtin/Undefined"/>
        <DataTypeReference type="Builtin/AnyURI"/>
      </UnionDataType>
      <Data property="MetaData/description">
        <String>The URI of the :sp:element:`~Core.Role`.</String>
      </Data>
      <Data property="MetaData/exampleValue">
        <String>http://www.exampleProcessOntology/BottomProduct</String>
      </Data>
    </DataProperty>
    <Data property="MetaData/description">
      <String>The role fulfilled by a :sp:element:`Core.ConceptualObject`.</String>
    </Data>
  </ConcreteClass>
  <Data property="MetaData/description">
    <String>General types for the representation of engineering information and associated graphical
representations.</String>
  </Data>
</Model>
