<Model name="Process" uri="https://data.dexpi.org/models/2.0.1/Process.xml">
  <Import prefix="Core" source="https://data.dexpi.org/models/2.0.1/Core.xml"/>
  <Import prefix="MetaData" source="https://data.dexpi.org/models/2.0.1/MetaData.xml"/>
  <Package name="Diagram">
    <ConcreteClass name="PortNodePosition" superTypes="Core/Diagram.NodePosition">
      <ReferenceProperty name="Port" isOrdered="false" isUnique="false" lower="0" oppositeLower="0" upper="1">
        <ClassReference type="/Process.Port"/>
      </ReferenceProperty>
    </ConcreteClass>
  </Package>
  <Package name="Enumerations">
    <Enumeration name="CompositionDisplay">
      <EnumerationLiteral name="AbsoluteValue"/>
      <EnumerationLiteral name="Fraction"/>
      <EnumerationLiteral name="Percent"/>
      <Data property="MetaData/description">
        <String></String>
      </Data>
    </Enumeration>
    <Enumeration name="CompressionMethod">
      <EnumerationLiteral name="AxialMotion"/>
      <EnumerationLiteral name="Blower"/>
      <EnumerationLiteral name="CentrifugalMotion"/>
      <EnumerationLiteral name="CustomMethod"/>
      <EnumerationLiteral name="Ejector"/>
      <EnumerationLiteral name="Fan"/>
      <EnumerationLiteral name="ReciprocatingMotion"/>
      <EnumerationLiteral name="RotaryMotion"/>
      <EnumerationLiteral name="Unspecified"/>
      <Data property="MetaData/description">
        <String></String>
      </Data>
    </Enumeration>
    <Enumeration name="EngineDriveMethod">
      <EnumerationLiteral name="Diesel"/>
      <EnumerationLiteral name="GasTurbine"/>
      <EnumerationLiteral name="OttoCycle"/>
      <EnumerationLiteral name="Unspecified"/>
      <Data property="MetaData/description">
        <String></String>
      </Data>
    </Enumeration>
    <Enumeration name="HeatExchangeMethod">
      <EnumerationLiteral name="Generic"/>
      <EnumerationLiteral name="Plate"/>
      <EnumerationLiteral name="Spiral"/>
      <EnumerationLiteral name="Tubular"/>
      <Data property="MetaData/description">
        <String></String>
      </Data>
    </Enumeration>
    <Enumeration name="InformationVariantType">
      <EnumerationLiteral name="Boolean"/>
      <EnumerationLiteral name="Double"/>
      <EnumerationLiteral name="Integer"/>
      <Data property="MetaData/description">
        <String></String>
      </Data>
    </Enumeration>
    <Enumeration name="MeasuredQuantity">
      <EnumerationLiteral name="AudioVisual"/>
      <EnumerationLiteral name="Density"/>
      <EnumerationLiteral name="ElectricCurrent"/>
      <EnumerationLiteral name="ElectricPotential"/>
      <EnumerationLiteral name="ElectromagneticField"/>
      <EnumerationLiteral name="Energy"/>
      <EnumerationLiteral name="Flow"/>
      <EnumerationLiteral name="Humidity"/>
      <EnumerationLiteral name="Level"/>
      <EnumerationLiteral name="MultipleQuantities"/>
      <EnumerationLiteral name="NumberOfEvents"/>
      <EnumerationLiteral name="Power"/>
      <EnumerationLiteral name="Pressure"/>
      <EnumerationLiteral name="PressureDifference"/>
      <EnumerationLiteral name="Quality"/>
      <EnumerationLiteral name="Radiation"/>
      <EnumerationLiteral name="SpatialDimension"/>
      <EnumerationLiteral name="Time"/>
      <EnumerationLiteral name="Velocity"/>
      <EnumerationLiteral name="VibrationOrTorque"/>
      <EnumerationLiteral name="WeightMassForce"/>
      <Data property="MetaData/description">
        <String></String>
      </Data>
    </Enumeration>
    <Enumeration name="MotorDriveMethod">
      <EnumerationLiteral name="AlternatingCurrent"/>
      <EnumerationLiteral name="DirectCurrent"/>
      <EnumerationLiteral name="StepperMotor"/>
      <EnumerationLiteral name="Unspecified"/>
      <Data property="MetaData/description">
        <String></String>
      </Data>
    </Enumeration>
    <Enumeration name="PortDirection">
      <EnumerationLiteral name="Inlet"/>
      <EnumerationLiteral name="Outlet"/>
      <Data property="MetaData/description">
        <String></String>
      </Data>
    </Enumeration>
    <Enumeration name="ProcessStepHierarchyLevel">
      <EnumerationLiteral name="ControlFunction"/>
      <EnumerationLiteral name="ElementaryFunction"/>
      <EnumerationLiteral name="Process"/>
      <EnumerationLiteral name="ProcessSection"/>
      <EnumerationLiteral name="ProcessTrain"/>
      <EnumerationLiteral name="SafetyFunction"/>
      <EnumerationLiteral name="SupportFunction"/>
      <EnumerationLiteral name="UnitOperation"/>
      <Data property="MetaData/description">
        <String></String>
      </Data>
    </Enumeration>
    <Enumeration name="PumpingMethod">
      <EnumerationLiteral name="CentrifugalMotion"/>
      <EnumerationLiteral name="CustomMethod"/>
      <EnumerationLiteral name="Eductor"/>
      <EnumerationLiteral name="PositiveDisplacement"/>
      <EnumerationLiteral name="RotaryMotion"/>
      <EnumerationLiteral name="Unspecified"/>
      <Data property="MetaData/description">
        <String></String>
      </Data>
    </Enumeration>
    <Enumeration name="ReactionProcessType">
      <EnumerationLiteral name="FluidizedBed"/>
      <EnumerationLiteral name="PackedBed"/>
      <EnumerationLiteral name="Tank"/>
      <EnumerationLiteral name="Tubular"/>
      <EnumerationLiteral name="Unspecified"/>
      <Data property="MetaData/description">
        <String></String>
      </Data>
    </Enumeration>
    <Enumeration name="SelectorType">
      <EnumerationLiteral name="High"/>
      <EnumerationLiteral name="Input1"/>
      <EnumerationLiteral name="Input2"/>
      <EnumerationLiteral name="Low"/>
      <Data property="MetaData/description">
        <String></String>
      </Data>
    </Enumeration>
    <Enumeration name="TrayRole">
      <EnumerationLiteral name="Bottom"/>
      <EnumerationLiteral name="Feed"/>
      <EnumerationLiteral name="Monitored"/>
      <EnumerationLiteral name="Top"/>
      <Data property="MetaData/description">
        <String></String>
      </Data>
    </Enumeration>
    <Enumeration name="TurbineDriveMethod">
      <EnumerationLiteral name="Expander"/>
      <EnumerationLiteral name="Unspecified"/>
      <EnumerationLiteral name="WaterTurbine"/>
      <EnumerationLiteral name="WindTurbine"/>
      <Data property="MetaData/description">
        <String></String>
      </Data>
    </Enumeration>
    <Data property="MetaData/description">
      <String>The Enumerations package contains enumerations for various aspects of process information.</String>
    </Data>
  </Package>
  <Package name="Process">
    <ConcreteClass name="Absorbing" superTypes="/Process.SeparatingByPhysicalProcess">
      <Data property="MetaData/description">
        <String>A subtype of :sp:element:`~Process.Process.SeparatingByPhysicalProcess` where separation is
based on mass transfer of material from a gas to a liquid. This type is also used to
represent desorbing, where the mass transfer is from the liquid to the gas.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="Adsorbing" superTypes="/Process.SeparatingByPhysicalProcess">
      <Data property="MetaData/description">
        <String>A subtype of :sp:element:`~Process.Process.SeparatingByPhysicalProcess` where separation is
based on mass transfer of material from a fluid to the surface of a solid. This type is also
used to represent the reverse process, where the mass transfer is from the surface to the
fluid.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="Agglomerating" superTypes="/Process.IncreasingParticleSize">
      <CompositionProperty name="PressingForce" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.ForceUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>The pressing force required in the process.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="RotationalFrequency" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.RotationalFrequencyUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>The rotational frequency of the process.</String>
        </Data>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>A solids-processing process for :sp:element:`~Process.Process.IncreasingParticleSize` in
which particles bind together and coalesce into larger particles, held together by
relatively weak forces.

See also :sp:element:`~Process.Process.Flocculating` and
:sp:element:`~Process.Process.Pelletizing`. Note that
:sp:element:`~!Process.Process.Pelletizing` is a subtype of
:sp:element:`~Process.Process.FormingSolidMaterial`.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="Agitating" superTypes="/Process.ProcessStepDetail">
      <CompositionProperty name="RotationalFrequency" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.RotationalFrequencyUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>The rotational frequency of the :sp:element:`~Process.Process.Agitating`.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="ShaftPower" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.PowerUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>The shaft power demand of the :sp:element:`~Process.Process.Agitating`.</String>
        </Data>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.ProcessStepDetail` provides shear forces to liquids in
another process, with the purpose of mixing, increasing heat transfer rates or increasing
mass transfer rates.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="BlowingDown" superTypes="/Process.SteeringFlow">
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.SteeringFlow` process is used to depressurise or blow
down a process, removing the contents of a process rapidly and safely to prevent unsafe
conditions or shut down the process. This process is usually realized as a set of blow-down
or depressurisation valves.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="Boiling" superTypes="/Process.SupplyingThermalEnergy">
      <CompositionProperty name="Efficiency" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.RatioUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.SupplyingThermalEnergy` process vaporises a fluid. This
process can be realized as a boiler, heat exchanger or fired heater. The process can also be
used to represent the re-boiling subprocess in a distillation process.</String>
      </Data>
    </ConcreteClass>
    <AbstractClass name="CalculatingProcessVariable" superTypes="/Process.InstrumentationActivity">
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.InstrumentationActivity` calculates an output that is
some mathematical function of the inputs. This is a parent type for specialized calculations
with specific purposes.</String>
      </Data>
    </AbstractClass>
    <ConcreteClass name="CalculatingRatio" superTypes="/Process.CalculatingProcessVariable">
      <CompositionProperty name="Gain" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <DataTypeReference type="Builtin/Double"/>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Multiplier in the ratio calculation.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="Offset" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <DataTypeReference type="Builtin/Double"/>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Offset added to the ratio calculation.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="OutputValue" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <DataTypeReference type="Builtin/Double"/>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>The calculated ratio.</String>
        </Data>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.CalculatingProcessVariable` process calculates an output
signal that is the ratio of the two input signals. It can be used to specify and design
ratio control functions.

If the two input signals are Dividend and Divisor, then
OutputValue = Gain * Dividend/Divisor + Offset .</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="CalculatingSplitRange" superTypes="/Process.CalculatingProcessVariable">
      <CompositionProperty name="InputValue" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <DataTypeReference type="Builtin/Double"/>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="Output1Value" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <DataTypeReference type="Builtin/Double"/>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="Output2Value" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <DataTypeReference type="Builtin/Double"/>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="SplitValue" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <DataTypeReference type="Builtin/Double"/>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.CalculatingProcessVariable` process calculates two output
signals so that a single input signal can be used to manipulate two control elements using a
split range. It can be used to specify and design split range control functions.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="Coalescing" superTypes="/Process.IncreasingParticleSize">
      <Data property="MetaData/description">
        <String>This is an :sp:element:`~Process.Process.IncreasingParticleSize` process in which small
droplets of a liquid phase are made to coalesce into larger droplets, which can then be
separated from the mixture.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="Composition" superTypes="Core/ConceptualObject">
      <DataProperty name="Display" isOrdered="false" isUnique="false" lower="0" upper="1">
        <DataTypeReference type="/Enumerations.CompositionDisplay"/>
        <Data property="MetaData/description">
          <String>The display form for the composition: Fraction, Percent, or AbsoluteValue (mass or molar
flow).</String>
        </Data>
      </DataProperty>
      <CompositionProperty name="MassFlow" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MassFlowRateUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Vector of mass flow rates for each component.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="MassFractions" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantityVector"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantityVector.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.RatioUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Vector of mass fraction values for each component.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="MoleFlow" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MoleFlowRateUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Vector of mole flow rates for each component.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="MoleFractions" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantityVector"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantityVector.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.RatioUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Vector of mole fraction values for each component.</String>
        </Data>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This data item is an array of numbers that describe the chemical composition of a material.
The order of items in the array is determined by the list of chemical components
(:sp:element:`~Process.Process.ListOfMaterialComponents`) in the corresponding
:sp:element:`~Process.Process.MaterialTemplate` object (see 
:sp:element:`MaterialTemplate.ListOfComponents &lt;Process.Process.MaterialTemplate.ListOfComponents&gt;`).

Note: ISO 15926 uses the concept of CONCENTRATION and does not model the concept of material
composition as an attribute.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="Compressing" superTypes="/Process.GeneratingFlow">
      <CompositionProperty name="CompressionRatio" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <DataTypeReference type="Builtin/Double"/>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Ratio between outlet and inlet absolute pressure.</String>
        </Data>
      </CompositionProperty>
      <DataProperty name="Method" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="/Enumerations.CompressionMethod"/>
        <Data property="MetaData/description">
          <String>Compression method.</String>
        </Data>
      </DataProperty>
      <CompositionProperty name="NumberOfStages" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <DataTypeReference type="Builtin/Integer"/>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Number of compressor stages of the :sp:element:`~Process.Process.Compressing`.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="PolytropicEfficiency" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.RatioUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>The polytropic efficiency of the :sp:element:`~Process.Process.Compressing`.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="PolytropicHead" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.LengthUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>The polytropic head generated by the :sp:element:`~Process.Process.Compressing`.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="ShaftPower" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.PowerUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>The mechanical power consumption of the :sp:element:`~Process.Process.Compressing`.</String>
        </Data>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.GeneratingFlow` process represents compression of gases
to increase pressure and generate a flow of gas. The physical principle used to compress the
gas can be specified by selecting a value from the CompressionMethod enumeration.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="ContactingInPacking" superTypes="/Process.ProcessStepDetail">
      <CompositionProperty name="Height" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.LengthUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>The height of the packing.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="NumberOfTheoreticalStages" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <DataTypeReference type="Builtin/Integer"/>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>The number of theoretical stages realised in the packing.</String>
        </Data>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.ProcessStepDetail` is used to represent a process carried
out in a packed bed. Its role is to represent packing shown in process flow diagrams and to
support the functional breakdown of complex processing systems. See also
:sp:element:`~Process.Process.ContactingOnTray`.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="ContactingOnTray" superTypes="/Process.ProcessStepDetail">
      <DataProperty name="Number" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/Integer"/>
        </UnionDataType>
      </DataProperty>
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.ProcessStepDetail` is used to represent a process carried
out in an assembly of trays. Its role is to represent trays shown in process flow diagrams
and to support the functional breakdown of complex processing systems. See also
:sp:element:`~Process.Process.ContactingInPacking`.

:sp:element:`Roles &lt;Core.Role&gt;` referenced via
:sp:element:`PerformedRoles &lt;Core.ConceptualObject.PerformedRoles&gt;`
should have one of the following 
:sp:element:`Names &lt;Core.Role.Name&gt;`:

- Bottom
- Feed
- Monitored
- Top</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="ControllingProcessVariable" superTypes="/Process.InstrumentationActivity">
      <CompositionProperty name="InputValue" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <DataTypeReference type="Builtin/Double"/>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="OutputValue" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <DataTypeReference type="Builtin/Double"/>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="Setpoint" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <DataTypeReference type="Builtin/Double"/>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.InstrumentationActivity` represents a process control
activity. A block of this type calculates the value of a manipulated variable so that a
measured variable is held at a specified set point. The set point can be supplied as an
external :sp:element:`~Process.Process.InformationFlow`.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="ConveyingSignal" superTypes="/Process.InstrumentationActivity">
      <CompositionProperty name="InformationValue" isOrdered="false" lower="1" upper="1">
        <ClassReference type="/Process.InformationVariant"/>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This process transmits a signal between two processes. In practices, this process is only
used if there will be a need to invest in specialized equipment and facilities, or if the
properties of the signal are different at the input and output of the process. Most signal
connections are represented by :sp:element:`~Process.Process.InformationFlow` objects
between :sp:element:`~Process.Process.InformationPort` instances.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="Cooling" superTypes="/Process.RemovingThermalEnergy">
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.RemovingThermalEnergy` process has the purpose of
reducing the enthalpy content of a material through heat exchange with the environment or a
cooling medium. See also :sp:element:`~Process.Process.ExchangingThermalEnergy`, which can
be used to model the same process in cases where the cooling medium system is defined.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="Crushing" superTypes="/Process.ReducingParticleSize">
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.ReducingParticleSize` process takes solid material and
breaks it into smaller pieces by an externally applied mechanical force. See also 
:sp:element:`~Process.Process.Grinding` and :sp:element:`~Process.Process.Milling`.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="Crystallizing" superTypes="/Process.IncreasingParticleSize">
      <CompositionProperty name="Duty" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.PowerUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.IncreasingParticleSize` process is based on the formation
of crystals from a feed fluid. This then allows the separation of the resulting solids from
the liquid.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="CustomMaterialComponent" superTypes="/Process.MaterialComponent">
      <DataProperty name="ProjectReference" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/String"/>
        </UnionDataType>
        <Data property="MetaData/description">
          <String>Reference to project identifier or documentation.</String>
        </Data>
      </DataProperty>
      <Data property="MetaData/description">
        <String>A :sp:element:`!~Process.Process.CustomMaterialComponent` defines a custom chemical compound used to specify the chemical
composition of a material. These compounds are usually pseudocomponents that are used to
simulate the thermodynamic properties of complex mixtures of organic compounds with high
molecular weight.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="Cutting" superTypes="/Process.ReducingParticleSize">
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.ReducingParticleSize` process separates solid material
into smaller parts using an edged implement or knife.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="Distilling" superTypes="/Process.SeparatingByThermalProcess">
      <CompositionProperty name="BottomPressure" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.PressureAbsoluteUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="BottomTemperature" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.TemperatureUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="CondenserDuty" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.PowerUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Duty of the condenser.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="Diameter" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.LengthUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="Height" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.LengthUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="Level" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.LengthUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="PressureDifference" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.PressureAbsoluteUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="RefluxRatio" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <DataTypeReference type="Builtin/Double"/>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Reflux ratio.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="TopPressure" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.PressureAbsoluteUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="TopTemperature" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.TemperatureUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.SeparatingByThermalProcess` process uses boiling,
condensing and countercurrent contacting of liquid and vapour to separate chemical
components with a difference in relative volatility.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="Draining" superTypes="/Process.SteeringFlow">
      <Data property="MetaData/description">
        <String>This supporting :sp:element:`~Process.Process.SteeringFlow` process is used to manage
leakages and handle the emptying of a plant for maintenance.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="DrivingByEngine" superTypes="/Process.SupplyingMechanicalEnergy">
      <CompositionProperty name="FuelFlow" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MassFlowRateUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <DataProperty name="Method" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="/Enumerations.EngineDriveMethod"/>
        </UnionDataType>
      </DataProperty>
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.SupplyingMechanicalEnergy` process uses an internal
combustion engine as its source of energy.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="DrivingByMotor" superTypes="/Process.SupplyingMechanicalEnergy">
      <DataProperty name="Method" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="/Enumerations.MotorDriveMethod"/>
        </UnionDataType>
      </DataProperty>
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.SupplyingMechanicalEnergy` process uses an electric motor
as its source of energy.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="DrivingByTurbine" superTypes="/Process.SupplyingMechanicalEnergy">
      <CompositionProperty name="Flow" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MassFlowRateUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <DataProperty name="Method" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="/Enumerations.TurbineDriveMethod"/>
      </DataProperty>
      <CompositionProperty name="PressureDifference" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.PressureAbsoluteUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.SupplyingMechanicalEnergy` process uses an turbine as its
source of energy.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="Drying" superTypes="/Process.SeparatingByThermalProcess">
      <CompositionProperty name="Area" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.AreaUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="GasMassFlow" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MassFlowRateUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="SolidsMassFlow" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MassFlowRateUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.SeparatingByThermalProcess` process removes
moisture or liquids from a solid material, producing a solid product with a lower
content of the liquid components.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="ElectricalEnergyFlow" superTypes="/Process.EnergyFlow">
      <CompositionProperty name="Current" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.ElectricCurrentUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Current.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="Frequency" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.ElectricalFrequencyUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Frequency of transmission (zero for DC).</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="NumberOfPhases" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <DataTypeReference type="Builtin/Integer"/>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Number of phases (zero for DC).</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="Voltage" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.VoltageUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Voltage.</String>
        </Data>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>A :sp:element:`~Process.Process.ProcessConnection` that defines the flow of energy
between two instances of :sp:element:`~Process.Process.ElectricalEnergyPort`. This is
used to model flows of electricity into out of the port. The form of electrical energy
is defined by the properties of the object.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="ElectricalEnergyPort" superTypes="/Process.EnergyPort">
      <Data property="MetaData/description">
        <String>An :sp:element:`~Process.Process.EnergyPort` that models the exchange of electrical
energy between :sp:element:`~Process.Process.ProcessStep` objects. The form of electrical
energy exchanged is defined by the values of the properties of the
:sp:element:`~Process.Process.ElectricalEnergyFlow` into or out of the port.

:sp:element:`Roles &lt;Core.Role&gt;` referenced via
:sp:element:`PerformedRoles &lt;Core.ConceptualObject.PerformedRoles&gt;`
should have one of the following 
:sp:element:`Names &lt;Core.Role.Name&gt;`:

- Instrumentation
- Power
- Utility</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="Emitting" superTypes="/Process.ProcessStep">
      <CompositionProperty name="MassFlow" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MassFlowRateUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Mass flow rate.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="VolumeFlow" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.VolumeFlowRateUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Volume flow rate.</String>
        </Data>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This type represents the destination for a flow out of a process that can be regarded
as an emission to the environment. It can be used instead of a
:sp:element:`~Process.Process.Sink`. It is provided as a convenience for calculating
emissions and sustainability calculations.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="EnergyFlow" superTypes="/Process.ProcessConnection">
      <CompositionProperty name="Duty" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.PowerUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Rate of energy flow for this connection.</String>
        </Data>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>A :sp:element:`~Process.Process.ProcessConnection` that defines the flow of energy
between two instances of :sp:element:`~Process.Process.EnergyPort`. This is used to
model flows of energy where the form of energy is unspecified. This type usually
abstract and child types of this type are used to model energy flows with a specified
form of energy.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="EnergyPort" superTypes="/Process.Port">
      <Data property="MetaData/description">
        <String>A :sp:element:`~Process.Process.Port` that models the transfer of energy, of whatever
form, into our out of a :sp:element:`~Process.Process.ProcessStep` object. This type
is parent to specific port types that specify the form of energy exchanged. This type
can be used to represent energy requirements where the type of energy is unspecified.
In practice, this type is abstract, and the child types are used in modelling.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="Evaporating" superTypes="/Process.SeparatingByThermalProcess">
      <CompositionProperty name="Area" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.AreaUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="EvaporationRate" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MassFlowRateUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.SeparatingByThermalProcess` process applies thermal
energy to drive off moisture or other volatile liquid as gas. This results in a vapour
product and a more concentrated liquid or solid product.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="ExchangingThermalEnergy" superTypes="/Process.ProcessStep">
      <CompositionProperty name="Area" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.AreaUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="ColdFlow" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MassFlowRateUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="Duty" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.PowerUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="HeatTransferCoefficient" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.HeatTransferCoefficientUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="HeatTransferResistance" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.HeatTransferResistanceUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="HotFlow" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MassFlowRateUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <DataProperty name="Method" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="/Enumerations.HeatExchangeMethod"/>
      </DataProperty>
      <CompositionProperty name="SkinTemperature" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.TemperatureUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="TemperatureDifference" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.TemperatureUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This process transfers thermal energy between two or more streams of material. This
process is realized by a heat exchanger.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="Extruding" superTypes="/Process.FormingSolidMaterial">
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.FormingSolidMaterial` process takes solid material
and forms it by forcing it through a specially designed opening, so that the material
is given a specific shape.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="FeedingMaterial" superTypes="/Process.SteeringFlow">
      <CompositionProperty name="Capacity" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MassUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.SteeringFlow` process supplies material to a process
at a controllable rate. This process can be used to represent solid feeding processes
or dosing systems.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="Filtering" superTypes="/Process.SeparatingMechanically">
      <CompositionProperty name="ParticleSize" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.ParticleSizeUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="PermeateFlow" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MassFlowRateUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="PressureDifference" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.PressureAbsoluteUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.SeparatingMechanically` process separates solids
from fluids by passing the fluid through a porous barrier.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="Flaring" superTypes="/Process.ProcessStep">
      <CompositionProperty name="Duty" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.PowerUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="Flow" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MassFlowRateUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="SkinTemperature" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.TemperatureUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.SupplyingThermalEnergy` process represents the
flare system in a process plant.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="Flocculating" superTypes="/Process.IncreasingParticleSize">
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.IncreasingParticleSize` process produces larger
particles, flocs, through aggregation and coalesence under the influence addition of
surfactant chemicals.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="FormingSolidMaterial" superTypes="/Process.ProcessStep">
      <CompositionProperty name="Duty" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.PowerUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="FeedParticleSize" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.ParticleSizeUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="Flow" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MassFlowRateUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="Power" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.PowerUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="ProductParticleSize" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.ParticleSizeUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This process takes a material containing solids and forms the solid material into
particles with specified sizes and shape. It is the parent type for
:sp:element:`~Process.Process.Pelletizing` and
:sp:element:`~Process.Process.Extruding`.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="GeneratingACPower" superTypes="/Process.SupplyingElectricalEnergy">
      <CompositionProperty name="Frequency" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.ElectricalFrequencyUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.SupplyingElectricalEnergy` process produces
alternating current electrical energy from mechanical energy.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="GeneratingDCPower" superTypes="/Process.SupplyingElectricalEnergy">
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.SupplyingElectricalEnergy` process produces
alternating current electrical energy from mechanical energy.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="GeneratingFlow" superTypes="/Process.ProcessStep">
      <CompositionProperty name="Flow" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MassFlowRateUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>The mass flow rate of the :sp:element:`~Process.Process.GeneratingFlow`.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="PressureDifference" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.PressureAbsoluteUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Pressure difference across process.</String>
        </Data>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This is a base type for processes with the purpose of generating flow and/or increasing
pressure of a fluid stream. The child types are :sp:element:`~Process.Process.Pumping`
and :sp:element:`~Process.Process.Compressing`.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="GeneratingInFuelCell" superTypes="/Process.SupplyingElectricalEnergy">
      <CompositionProperty name="FuelFlow" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MassFlowRateUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This process generates electricity using a fuel cell.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="GeneratingSteam" superTypes="/Process.SupplyingThermalEnergy">
      <Data property="MetaData/description">
        <String>This process produces steam for use in other processes.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="Grinding" superTypes="/Process.ReducingParticleSize">
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.ReducingParticleSize` process produces fine particles
by abrasion of solid material.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="HeatingElectrical" superTypes="/Process.SupplyingThermalEnergy">
      <CompositionProperty name="Current" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.ElectricCurrentUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="Efficiency" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.RatioUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="Power" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.PowerUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="Voltage" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.VoltageUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.SupplyingThermalEnergy` process increases the
enthalpy content of one or more material streams through the application of electrical
energy.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="HeatingInFurnace" superTypes="/Process.SupplyingThermalEnergy">
      <CompositionProperty name="Efficiency" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.RatioUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="FuelFlow" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MassFlowRateUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.SupplyingThermalEnergy` process increases the
enthalpy content of one or more material streams by passing them through a fired
heater or furnace.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="Humidifying" superTypes="/Process.Mixing">
      <CompositionProperty name="Flow" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MassFlowRateUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="WaterFlow" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MassFlowRateUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.Mixing` process increases the water or liquid
content of a material stream by mixing a feed with the water or liquid.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="IncreasingParticleSize" superTypes="/Process.ProcessStep">
      <CompositionProperty name="FeedParticleSize" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.ParticleSizeUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Characteristic particle size for the feed.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="Flow" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MassFlowRateUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="LiquidFlow" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MassFlowRateUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="Power" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.PowerUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="ProductParticleSize" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.ParticleSizeUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Characteristic particle size for the product.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="SolidsFlow" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MassFlowRateUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This process takes a material containing solids and performs an operation so that the
solids have a larger particle size.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="InformationFlow" superTypes="/Process.ProcessConnection">
      <CompositionProperty name="InformationValue" isOrdered="false" lower="1" upper="1">
        <ClassReference type="/Process.InformationVariant"/>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>A :sp:element:`~Process.Process.ProcessConnection` that defines the flow of information
between two instances of :sp:element:`~Process.Process.InformationPort`. This is used
to model signals and other information flows into out of the port.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="InformationPort" superTypes="/Process.Port">
      <Data property="MetaData/description">
        <String>A :sp:element:`~Process.Process.Port` that models the transfer of information, of
whatever form, into or out of a :sp:element:`~Process.Process.ProcessStep` object.
This type is used to represent control signals.

:sp:element:`Roles &lt;Core.Role&gt;` referenced via
:sp:element:`PerformedRoles &lt;Core.ConceptualObject.PerformedRoles&gt;`
should have one of the following 
:sp:element:`Names &lt;Core.Role.Name&gt;`:

- Feedback
- Input
- Output
- Override
- Setpoint</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="InformationVariant" superTypes="Core/ConceptualObject">
      <DataProperty name="BooleanValue" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/Boolean"/>
      </DataProperty>
      <DataProperty name="DoubleValue" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/Double"/>
      </DataProperty>
      <DataProperty name="IntegerValue" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/Integer"/>
      </DataProperty>
      <DataProperty name="VariantType" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="/Enumerations.InformationVariantType"/>
      </DataProperty>
      <DataProperty name="VectorSize" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/Integer"/>
      </DataProperty>
      <Data property="MetaData/description">
        <String>This data structure is embedded in the :sp:element:`~Process.Process.InformationFlow`
object and can be configured to represent scalars and arrays of boolean, integer and
real variables.</String>
      </Data>
    </ConcreteClass>
    <AbstractClass name="InstrumentationActivity" superTypes="Core/ConceptualObject">
      <DataProperty name="Description" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Core/DataTypes.MultiLanguageString"/>
      </DataProperty>
      <DataProperty name="Identifier" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/String"/>
      </DataProperty>
      <CompositionProperty name="InformationPorts" isOrdered="false" lower="0">
        <ClassReference type="/Process.InformationPort"/>
      </CompositionProperty>
      <DataProperty name="Label" isOrdered="false" isUnique="false" lower="1" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/String"/>
        </UnionDataType>
      </DataProperty>
      <Data property="MetaData/description">
        <String>This is the base type for control and instrumentation functions that are specified as
part of the process design.</String>
      </Data>
    </AbstractClass>
    <ConcreteClass name="InstrumentationSystemActivity" superTypes="Core/ConceptualObject">
      <DataProperty name="Description" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Core/DataTypes.MultiLanguageString"/>
      </DataProperty>
      <DataProperty name="Identifier" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/String"/>
      </DataProperty>
      <CompositionProperty name="InstrumentationActivities" isOrdered="false" lower="1">
        <ClassReference type="/Process.InstrumentationActivity"/>
      </CompositionProperty>
      <DataProperty name="Label" isOrdered="false" isUnique="false" lower="1" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/String"/>
        </UnionDataType>
      </DataProperty>
      <Data property="MetaData/description">
        <String>An :sp:element:`~Process.Process.InstrumentationSystemActivity` is a collection of
related :sp:element:`~Process.Process.InstrumentationActivity` instances that together
perform a specified function. Thus a
:sp:element:`~Process.Process.MeasuringProcessVariable` and a
:sp:element:`~Process.Process.ControllingProcessVariable` activity can be grouped
into a single :sp:element:`~Process.Process.InstrumentationSystemActivity` that
represents the control loop.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="Kneading" superTypes="/Process.Mixing">
      <CompositionProperty name="Flow" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MassFlowRateUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="Power" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.PowerUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="RotationalFrequency" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.RotationalFrequencyUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.Mixing` process produces a solid material as a
uniform mass by mechanically folding, pressing and stretching of the material.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="LimitingFlow" superTypes="/Process.SteeringFlow">
      <CompositionProperty name="PressureDifference" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.PressureAbsoluteUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.SteeringFlow` process is used to ensure that the flow
of material remains below a specified value. This process is usually realized using a
flow orifice.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="ListOfMaterialComponents" superTypes="Core/ConceptualObject">
      <ReferenceProperty name="Component" isOrdered="false" isUnique="false" lower="1" oppositeLower="1" oppositeUpper="1">
        <ClassReference type="/Process.MaterialComponent"/>
      </ReferenceProperty>
      <Data property="MetaData/description">
        <String>This is an ordered list of :sp:element:`~Process.Process.PureMaterialComponent` and
:sp:element:`~Process.Process.CustomMaterialComponent` objects. This is used in the
:sp:element:`~Process.Process.MaterialTemplate` to determine the structure of
composition vectors in the :sp:element:`~Process.Process.Stream` and
:sp:element:`~Process.Process.MaterialStateType` objects.</String>
      </Data>
    </ConcreteClass>
    <AbstractClass name="MaterialComponent" superTypes="Core/ConceptualObject">
      <DataProperty name="Description" isOrdered="false" isUnique="false" lower="0" upper="1">
        <DataTypeReference type="Core/DataTypes.MultiLanguageString"/>
        <Data property="MetaData/description">
          <String>Descriptive text for the :sp:element:`~Process.Process.MaterialComponent`.</String>
        </Data>
      </DataProperty>
      <DataProperty name="Identifier" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/String"/>
        </UnionDataType>
        <Data property="MetaData/description">
          <String>Unique identifier for the :sp:element:`~Process.Process.MaterialComponent`.</String>
        </Data>
      </DataProperty>
      <DataProperty name="Label" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/String"/>
        </UnionDataType>
        <Data property="MetaData/description">
          <String>Display label for the :sp:element:`~Process.Process.MaterialComponent`.</String>
        </Data>
      </DataProperty>
      <Data property="MetaData/description">
        <String>This is the base type to chemical components in the model. It is parent class for
:sp:element:`~Process.Process.PureMaterialComponent` and
:sp:element:`~Process.Process.CustomMaterialComponent`.</String>
      </Data>
    </AbstractClass>
    <ConcreteClass name="MaterialPort" superTypes="/Process.Port">
      <ReferenceProperty name="MaterialTemplateReference" isOrdered="false" isUnique="false" lower="0" oppositeLower="1" oppositeUpper="1" upper="1">
        <ClassReference type="/Process.MaterialTemplate"/>
      </ReferenceProperty>
      <Data property="MetaData/description">
        <String>A :sp:element:`~Process.Process.Port` that models the transfer of material, of whatever
form, into or out of a :sp:element:`~Process.Process.ProcessStep` object. This type is
used for flow of material: solids, liquids and gases.

:sp:element:`Roles &lt;Core.Role&gt;` referenced via
:sp:element:`PerformedRoles &lt;Core.ConceptualObject.PerformedRoles&gt;`
should have one of the following 
:sp:element:`Names &lt;Core.Role.Name&gt;`:

- Air
- BottomProduct
- ChemicalFeed
- Discharge
- Drain
- Exhaust
- Feed
- Fuel
- HeavyLiquid
- Inlet
- LeanSolvent
- LightLiquid
- Liquid
- LiquidInlet
- LiquidOutlet
- Outlet
- Product
- Reboil
- Reflux
- Relief
- RichSolvent
- Sidedraw
- Suction
- TopProduct
- Vapour
- VapourInlet
- VapourOutlet
- Vent
- Waste</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="MaterialState" superTypes="Core/ConceptualObject">
      <DataProperty name="Description" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/String"/>
      </DataProperty>
      <DataProperty name="Identifier" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/String"/>
      </DataProperty>
      <DataProperty name="Label" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/String"/>
      </DataProperty>
      <CompositionProperty name="Phases" isOrdered="false" lower="0">
        <ClassReference type="/Process.MaterialStateType"/>
      </CompositionProperty>
      <CompositionProperty name="State" isOrdered="false" lower="0" upper="1">
        <ClassReference type="/Process.MaterialStateType"/>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This data structure contains the properties for a :sp:element:`~Process.Process.Stream`.
It contains one or more :sp:element:`~Process.Process.MaterialState` objects: one for
the total properties and then one for each of the phases present.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="MaterialStateType" superTypes="Core/ConceptualObject">
      <CompositionProperty name="Composition" isOrdered="false" lower="0" upper="1">
        <ClassReference type="/Process.Composition"/>
        <Data property="MetaData/description">
          <String>The  :sp:element:`Composition &lt;Process.Process.Composition&gt;`
of the :sp:element:`~Process.Process.MaterialStateType`.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="Density" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.DensityUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <DataProperty name="Description" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Core/DataTypes.MultiLanguageString"/>
      </DataProperty>
      <DataProperty name="Identifier" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/String"/>
      </DataProperty>
      <DataProperty name="Label" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/String"/>
      </DataProperty>
      <CompositionProperty name="MassFlow" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MassFlowRateUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="SpecificEnthalpy" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MassSpecificEnergyUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="Viscosity" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.DynamicViscosityUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="VolumeFlow" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.VolumeFlowRateUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This data structure represents the properties of a material or a single material phase.
The :sp:element:`~Process.Process.MaterialState` data structure for a
:sp:element:`~Process.Process.Stream` is built up of one or more of these data
structures: one for the total properties and then one for each of the phases present.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="MaterialTemplate" superTypes="Core/ConceptualObject">
      <DataProperty name="Description" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Core/DataTypes.MultiLanguageString"/>
      </DataProperty>
      <DataProperty name="Identifier" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/String"/>
      </DataProperty>
      <DataProperty name="Label" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/String"/>
      </DataProperty>
      <ReferenceProperty name="ListOfComponents" isOrdered="false" isUnique="false" lower="1" oppositeLower="1" oppositeUpper="1" upper="1">
        <ClassReference type="/Process.ListOfMaterialComponents"/>
      </ReferenceProperty>
      <DataProperty name="NumberOfMaterialComponents" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/Integer"/>
      </DataProperty>
      <DataProperty name="NumberOfPhases" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/Integer"/>
      </DataProperty>
      <DataProperty name="PhaseLabel" isOrdered="false" isUnique="false" lower="0">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/String"/>
        </UnionDataType>
      </DataProperty>
      <Data property="MetaData/description">
        <String>This data structure defines the structure of :sp:element:`~Process.Process.Stream`
objects that correspond to a specific type of material. This structure contains
information about the thermodynamic model used to represent this type of material. It
contains the :sp:element:`~Process.Process.ListOfMaterialComponents`: pure and pseudo
components used to represent the system. It also determines the legend for a stream
table when the model is used to represent a Process Flow Diagram.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="MeasuringProcessVariable" superTypes="/Process.InstrumentationActivity">
      <ReferenceProperty name="ConnectionReference" isOrdered="false" isUnique="false" lower="0" oppositeLower="0" upper="1">
        <ClassReference type="/Process.ProcessConnection"/>
      </ReferenceProperty>
      <CompositionProperty name="InputValue" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <DataTypeReference type="Builtin/Double"/>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <DataProperty name="MeasuredVariable" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="/Enumerations.MeasuredQuantity"/>
        </UnionDataType>
      </DataProperty>
      <ReferenceProperty name="MeasuredVariableReference" isOrdered="false" isUnique="false" lower="0" oppositeLower="0" upper="1">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </ReferenceProperty>
      <CompositionProperty name="OutputValue" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <DataTypeReference type="Builtin/Double"/>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <ReferenceProperty name="ProcessStepDetailReference" isOrdered="false" isUnique="false" lower="0" oppositeLower="0" upper="1">
        <ClassReference type="/Process.ProcessStepDetail"/>
      </ReferenceProperty>
      <ReferenceProperty name="ProcessStepReference" isOrdered="false" isUnique="false" lower="0" oppositeLower="0" upper="1">
        <ClassReference type="/Process.ProcessStep"/>
      </ReferenceProperty>
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.InstrumentationActivity` measures a process variable
and supplies its value at an outlet :sp:element:`~Process.Process.InformationPort`. The
measured variable is identified by reference to a parameter in any process step or
port.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="MechanicalEnergyFlow" superTypes="/Process.EnergyFlow">
      <CompositionProperty name="RotationalFrequency" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.RotationalFrequencyUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="Torque" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MomentOfForceUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>A :sp:element:`~Process.Process.ProcessConnection` that defines the flow of mechanical
energy two instances of :sp:element:`~Process.Process.MechanicalEnergyPort`.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="MechanicalEnergyPort" superTypes="/Process.EnergyPort">
      <Data property="MetaData/description">
        <String>A :sp:element:`~Process.Process.Port` that models the transfer of mechanical energy
into or out of a :sp:element:`~Process.Process.ProcessStep` object.

:sp:element:`Roles &lt;Core.Role&gt;` referenced via
:sp:element:`PerformedRoles &lt;Core.ConceptualObject.PerformedRoles&gt;`
should have one of the following 
:sp:element:`Names &lt;Core.Role.Name&gt;`:

- Input
- Output</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="Milling" superTypes="/Process.ReducingParticleSize">
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.ReducingParticleSize` process divides solid material
into smaller particles with precise sizes and shapes.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="Mixing" superTypes="/Process.ProcessStep">
      <Data property="MetaData/description">
        <String>This is the base class for processes that combine several flows of material into a
single flow.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="MixingSimple" superTypes="/Process.Mixing">
      <Data property="MetaData/description">
        <String>This is a :sp:element:`~Process.Process.Mixing` process that simply combines one or
more inlet flows into an outlet flow. This process step is used to represent converging
branches of flows in a PFD or BFD. It is the counterpart of
:sp:element:`~Process.Process.Splitting`.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="Packaging" superTypes="/Process.ProcessStep">
      <Data property="MetaData/description">
        <String>This process takes a flow of material and processes it into packages that allow transport
and distribution.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="Pelletizing" superTypes="/Process.FormingSolidMaterial">
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.FormingSolidMaterial` process takes solid material
and forms it into, pellets, small particles of uniform size and shape.</String>
      </Data>
    </ConcreteClass>
    <AbstractClass name="Port" superTypes="Core/ConceptualObject">
      <ReferenceProperty name="ConnectorReference" isOrdered="false" isUnique="false" lower="1" oppositeLower="0" oppositeUpper="1" upper="1">
        <ClassReference type="/Process.ProcessConnection"/>
      </ReferenceProperty>
      <DataProperty name="Description" isOrdered="false" isUnique="false" lower="0" upper="1">
        <DataTypeReference type="Core/DataTypes.MultiLanguageString"/>
      </DataProperty>
      <DataProperty name="Identifier" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/String"/>
      </DataProperty>
      <DataProperty name="NominalDirection" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="/Enumerations.PortDirection"/>
      </DataProperty>
      <CompositionProperty name="SubReference" isOrdered="false" lower="0">
        <ClassReference type="/Process.Port"/>
      </CompositionProperty>
      <ReferenceProperty name="SuperReference" isOrdered="false" isUnique="false" lower="0" oppositeLower="0" upper="1">
        <ClassReference type="/Process.Port"/>
      </ReferenceProperty>
      <Data property="MetaData/description">
        <String>A port represents a transfer of material, energy or information into or out of a process
step. It provides the anchor point for connecting two process steps to each other. The
term is derived from SysML and IDEF0 representations of processes.

Note that a port in DEXPI Process is a conceptual object. It represents a contract
regarding the material, energy or information coming into or out of a process step.</String>
      </Data>
    </AbstractClass>
    <ConcreteClass name="PreventingBackflow" superTypes="/Process.SteeringFlow">
      <CompositionProperty name="ClosingTime" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.TimeIntervalUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="PressureDifference" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.PressureAbsoluteUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.SteeringFlow` process is used to ensure that a flow
of material cannot be reversed. This process is used in safety design and is realized by
a check valve or non-return valve.</String>
      </Data>
    </ConcreteClass>
    <AbstractClass name="ProcessConnection" superTypes="Core/ConceptualObject">
      <DataProperty name="Description" isOrdered="false" isUnique="false" lower="0" upper="1">
        <DataTypeReference type="Core/DataTypes.MultiLanguageString"/>
      </DataProperty>
      <DataProperty name="Identifier" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/String"/>
      </DataProperty>
      <DataProperty name="Label" isOrdered="false" isUnique="false" lower="1" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/String"/>
        </UnionDataType>
      </DataProperty>
      <ReferenceProperty name="Source" isOrdered="false" isUnique="false" lower="1" oppositeLower="0" oppositeUpper="1" upper="1">
        <ClassReference type="/Process.Port"/>
      </ReferenceProperty>
      <ReferenceProperty name="Target" isOrdered="false" isUnique="false" lower="1" oppositeLower="0" oppositeUpper="1" upper="1">
        <ClassReference type="/Process.Port"/>
      </ReferenceProperty>
      <Data property="MetaData/description">
        <String>This data structure is the abstract parent for all connections between blocks in the
DEXPI Process model.</String>
      </Data>
    </AbstractClass>
    <AbstractClass name="ProcessStep" superTypes="Core/ConceptualObject">
      <CompositionProperty name="AmbientPressure" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.PressureAbsoluteUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="AmbientTemperature" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.TemperatureUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <DataProperty name="Description" isOrdered="false" isUnique="false" lower="0" upper="1">
        <DataTypeReference type="Core/DataTypes.MultiLanguageString"/>
      </DataProperty>
      <DataProperty name="HierarchyLevel" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="/Enumerations.ProcessStepHierarchyLevel"/>
        </UnionDataType>
      </DataProperty>
      <DataProperty name="Identifier" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/String"/>
      </DataProperty>
      <DataProperty name="Label" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/String"/>
        </UnionDataType>
      </DataProperty>
      <CompositionProperty name="Ports" isOrdered="false" lower="0">
        <ClassReference type="/Process.Port"/>
      </CompositionProperty>
      <CompositionProperty name="Pressure" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.PressureAbsoluteUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="ProcessStepDetails" isOrdered="false" lower="0">
        <ClassReference type="/Process.ProcessStepDetail"/>
      </CompositionProperty>
      <CompositionProperty name="SubProcessSteps" isOrdered="false" lower="0">
        <ClassReference type="/Process.ProcessStep"/>
        <Data property="MetaData/description">
          <String>The :sp:element:`ProcessSteps &lt;Process.Process.ProcessStep&gt;`
of the :sp:element:`~Process.Process.ProcessStep`.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="Temperature" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.TemperatureUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>The :sp:element:`~Process.Process.ProcessStep` type is the parent type for all process
steps in the model.</String>
      </Data>
    </AbstractClass>
    <AbstractClass name="ProcessStepDetail" superTypes="Core/ConceptualObject">
      <DataProperty name="Description" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Core/DataTypes.MultiLanguageString"/>
      </DataProperty>
      <DataProperty name="Identifier" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="Builtin/String"/>
      </DataProperty>
      <DataProperty name="Label" isOrdered="false" isUnique="false" lower="1" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/String"/>
        </UnionDataType>
      </DataProperty>
      <CompositionProperty name="Ports" isOrdered="false" lower="0">
        <ClassReference type="/Process.Port"/>
      </CompositionProperty>
      <CompositionProperty name="Pressure" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.PressureAbsoluteUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="Temperature" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.TemperatureUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This type is the parent type for processes that cannot be run independently of another
process.</String>
      </Data>
    </AbstractClass>
    <ConcreteClass name="Pumping" superTypes="/Process.GeneratingFlow">
      <CompositionProperty name="Head" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.LengthUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <DataProperty name="Method" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="/Enumerations.PumpingMethod"/>
        </UnionDataType>
      </DataProperty>
      <CompositionProperty name="VolumeFlow" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.VolumeFlowRateUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.GeneratingFlow` process represents transfer of
mechanical energy to a liquid to increase pressure and generate a flow. The physical
principle used to compress the gas can be specified by selecting a value from the
:sp:element:`~Process.Enumerations.PumpingMethod` enumeration.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="PureMaterialComponent" superTypes="/Process.MaterialComponent">
      <DataProperty name="ChEBI_identifier" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/String"/>
        </UnionDataType>
      </DataProperty>
      <DataProperty name="IUPAC_identifier" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/String"/>
        </UnionDataType>
      </DataProperty>
      <Data property="MetaData/description">
        <String>A :sp:element:`!~Process.Process.PureMaterialComponent` represents a :sp:element:`~Process.Process.MaterialComponent` that
is modelled as a pure chemical compound with defined composition and structure. This is
used in the :sp:element:`~Process.Process.MaterialTemplate` to document the composition
vector and define properties for use in the process.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="ReactingChemicals" superTypes="/Process.ProcessStep">
      <DataProperty name="Method" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="/Enumerations.ReactionProcessType"/>
      </DataProperty>
      <CompositionProperty name="Volume" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.VolumeUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This process performs chemical reactions on material in order to produce products of
value or to remove undesirable chemical compounds.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="ReducingParticleSize" superTypes="/Process.ProcessStep">
      <CompositionProperty name="FeedParticleSize" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.ParticleSizeUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Characteristic particle size for the feed.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="Flow" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MassFlowRateUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Mass flow rate through process.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="Power" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.PowerUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Power demand.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="ProductParticleSize" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.ParticleSizeUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Characteristic particle size for the product.</String>
        </Data>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>A process where a solid material is broken down into particles with a smaller size.
This is the parent class for :sp:element:`~Process.Process.Cutting`,
:sp:element:`~Process.Process.Milling`,
:sp:element:`~Process.Process.Crushing` and
:sp:element:`~Process.Process.Grinding`.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="RegulatingFlow" superTypes="/Process.SteeringFlow">
      <CompositionProperty name="ClosingTime" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.TimeIntervalUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Closing time.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="OpeningTime" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.TimeIntervalUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Opening time.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="PressureDifference" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.PressureAbsoluteUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Pressure difference across process.</String>
        </Data>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>A :sp:element:`~Process.Process.SteeringFlow` process where a flow of material is
manipulated over a continuous range of values. The desired flow rate is supplied in the
XG1 :sp:element:`~Process.Process.InformationPort`.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="RelievingOverpressure" superTypes="/Process.SteeringFlow">
      <Data property="MetaData/description">
        <String>A :sp:element:`~Process.Process.SteeringFlow` process where a flow of material is
manipulated to ensure that the pressure in a system shall not exceed a specified
value.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="RelievingVacuum" superTypes="/Process.SteeringFlow">
      <Data property="MetaData/description">
        <String>A :sp:element:`~Process.Process.SteeringFlow` process where a flow of material is
manipulated to ensure that the pressure in a system shall not become
sub-atmospheric.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="RelievingVacuumAndOverpressure" superTypes="/Process.SteeringFlow">
      <Data property="MetaData/description">
        <String>A :sp:element:`~Process.Process.SteeringFlow` process where a flow of material is
manipulated to ensure that the pressure in a system shall neither become
sub-atmospheric nor exceed a specified value.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="RemovingThermalEnergy" superTypes="/Process.ProcessStep">
      <CompositionProperty name="Area" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.AreaUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="Duty" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.PowerUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="HeatTransferCoefficient" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.HeatTransferCoefficientUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="HeatTransferResistance" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.HeatTransferResistanceUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <DataProperty name="Method" isOrdered="false" isUnique="false" lower="1" upper="1">
        <DataTypeReference type="/Enumerations.HeatExchangeMethod"/>
      </DataProperty>
      <CompositionProperty name="SkinTemperature" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.TemperatureUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="TemperatureDifference" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.TemperatureUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This process removes enthalpy from a material in order to reduce temperature or change
the state of the material. See also :sp:element:`~Process.Process.Cooling`.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="RotaryMixing" superTypes="/Process.Mixing">
      <CompositionProperty name="Power" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.PowerUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="RotationalFrequency" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.RotationalFrequencyUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.Mixing` process uses an externally powered rotating
impeller to produce a homogeneous material.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="SelectingProcessVariable" superTypes="/Process.CalculatingProcessVariable">
      <DataProperty name="SelectorType" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="/Enumerations.SelectorType"/>
        </UnionDataType>
      </DataProperty>
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.InstrumentationActivity` selects a single input signal
to be sent to the output signal. It can be used to model high select and low select
functions.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="Separating" superTypes="/Process.ProcessStep">
      <CompositionProperty name="ProductRecovery" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.RatioUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="SeparationEfficiency" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.RatioUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="WasteInProduct" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.RatioUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This is the base type for all processes where one or more feeds are transformed into
streams of material, each with different intensive properties and chemical
composition.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="SeparatingByCentrifugalForce" superTypes="/Process.SeparatingByPhaseSeparation">
      <CompositionProperty name="Flow" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MassFlowRateUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="ParticleSize" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.ParticleSizeUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="Power" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.PowerUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="RotationalFrequency" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.RotationalFrequencyUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This is a :sp:element:`~Process.Process.SeparatingByPhaseSeparation` process where a
fluid mixture is separated into a heavy phase and light phase through the external
application of mechanical energy to produce centrifugal forces.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="SeparatingByContact" superTypes="/Process.SeparatingByPhysicalProcess">
      <Data property="MetaData/description">
        <String>This is a :sp:element:`~Process.Process.SeparatingByPhysicalProcess` process where
materials are brought into contact with each to transfer mass and energy.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="SeparatingByCyclonicMotion" superTypes="/Process.SeparatingByPhaseSeparation">
      <CompositionProperty name="ParticleSize" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.ParticleSizeUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Characteristic particle size for separation.</String>
        </Data>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This is a :sp:element:`~Process.Process.SeparatingByPhaseSeparation` process where a
fluid mixture is separated into a heavy phase and light phase through the centrifugal
forces generated by the flow of fluids through a cyclone arrangement.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="SeparatingByElectromagneticForce" superTypes="/Process.Separating">
      <CompositionProperty name="ParticleSize" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.ParticleSizeUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Characteristic particle size for separation.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="Power" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.PowerUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Electrical power demand.</String>
        </Data>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This is a :sp:element:`~Process.Process.Separating` process where a material mixture is
separated by the application of an electrical or magnetic field. This type is parent to
:sp:element:`~Process.Process.SeparatingByElectrostaticForce` and
:sp:element:`~Process.Process.SeparatingByMagneticForce`.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="SeparatingByElectrostaticForce" superTypes="/Process.SeparatingByElectromagneticForce">
      <CompositionProperty name="RotationalFrequency" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.RotationalFrequencyUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>The rotational frequency of the process.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="Velocity" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.VelocityUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>The velocity of the process.</String>
        </Data>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This is a :sp:element:`~Process.Process.SeparatingByElectromagneticForce` process where a
material mixture is separated by the application of an electrostatic field.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="SeparatingByFlash" superTypes="/Process.SeparatingByThermalProcess">
      <Data property="MetaData/description">
        <String>This is a :sp:element:`~Process.Process.SeparatingByThermalProcess` process where a fluid
mixture is separated into a vapour phase and a liquid phase in a vessel, usually after a
sudden decrease in pressure. This is a single-stage process, unlike
:sp:element:`~Process.Process.Distilling`.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="SeparatingByGravity" superTypes="/Process.SeparatingByPhaseSeparation">
      <CompositionProperty name="Density" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.DensityUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Characteristic density for separation.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="ParticleSize" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.ParticleSizeUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Characteristic particle size for separation.</String>
        </Data>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.SeparatingByPhaseSeparation` process separates
substances based on the influence of gravity on substances with different density or
specific gravity.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="SeparatingByIonExchange" superTypes="/Process.SeparatingByPhysicalProcess">
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.SeparatingByPhysicalProcess` is a reversible
interchange of one kind of ion present on an insoluble solid with another of like charge
present in a solution surrounding the solid with the reaction being used especially for
softening or demineralizing water, the purification of chemicals, or the separation of
substances.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="SeparatingByMagneticForce" superTypes="/Process.SeparatingByElectromagneticForce">
      <CompositionProperty name="FieldIntensity" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MagneticFieldIntensityUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Intensity of the magnetic field.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="RotationalFrequency" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.RotationalFrequencyUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>The rotational frequency of the process.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="Velocity" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.VelocityUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>The velocity of the process.</String>
        </Data>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This is a :sp:element:`~Process.Process.SeparatingByElectromagneticForce` process where
a material mixture is separated by the application of a magnetic field.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="SeparatingByPhaseSeparation" superTypes="/Process.Separating">
      <Data property="MetaData/description">
        <String>This is a :sp:element:`~Process.Process.Separating` process where the materials form
distinct phases, which can then be separated.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="SeparatingByPhysicalProcess" superTypes="/Process.Separating">
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.Separating` process uses a physical phenomenon, such
as mass transfer, ion exchange or surface tension to separate materials. Its child types
are :sp:element:`~Process.Process.SeparatingByContact`,
:sp:element:`~Process.Process.SeparatingByIonExchange`,
:sp:element:`~Process.Process.Absorbing`,
:sp:element:`~Process.Process.Adsorbing` and
:sp:element:`~Process.Process.SeparatingBySurfaceTension`.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="SeparatingBySurfaceTension" superTypes="/Process.SeparatingByPhysicalProcess">
      <CompositionProperty name="FrotherFlow" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MassFlowRateUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Flow of frothing chemicals.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="GasFlow" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MassFlowRateUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Flow of frothing gas.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="ParticleSize" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.ParticleSizeUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Characteristic particle size for separation.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="PulpDensity" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.RatioUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Density of the pulp.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="SurfactantFlow" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MassFlowRateUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Flow of surfactant chemicals.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="Volume" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.VolumeUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Volume of the process.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="pH" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.pHUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>pH for the process.</String>
        </Data>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This is a :sp:element:`~Process.Process.Separating` process where the materials are
separated through a difference in surface forces between different liquid phases or
between liquids and solid particles. Froth flotation is a typical process of this
type.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="SeparatingByThermalProcess" superTypes="/Process.Separating">
      <CompositionProperty name="Duty" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.PowerUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Duty of the process.</String>
        </Data>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This is a :sp:element:`~Process.Process.Separating` process where the materials are
separated through the application of heat or thermal energy.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="SeparatingMechanically" superTypes="/Process.Separating">
      <Data property="MetaData/description">
        <String>This is a parent process where the materials are separated by a mechanical operation,
such as :sp:element:`~Process.Process.Filtering`,
:sp:element:`~Process.Process.Skimming` or
:sp:element:`~Process.Process.Sieving`.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="ShuttingOffFlow" superTypes="/Process.SteeringFlow">
      <CompositionProperty name="ClosingTime" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.TimeIntervalUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Closing time.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="OpeningTime" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.TimeIntervalUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Opening time.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="PressureDifference" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.PressureAbsoluteUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Pressure difference across process.</String>
        </Data>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This is a :sp:element:`~Process.Process.SteeringFlow` process with the purpose of shutting
off flow for operational and/or safety reasons. It is usually realized by an on-off
valve.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="Sieving" superTypes="/Process.SeparatingMechanically">
      <CompositionProperty name="Flow" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MassFlowRateUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Mass flow rate through process.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="ParticleSize" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.ParticleSizeUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Characteristic particle size for separation.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="Power" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.PowerUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.SeparatingMechanically` processs for solids is based
on particle size. Material is passed over a series of screens with a specified aperture
size. Smaller particles pass through the screens, while larger particles remain on the
screen.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="Sink" superTypes="/Process.ProcessStep">
      <DataProperty name="SourceReference" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/String"/>
        </UnionDataType>
        <Data property="MetaData/description">
          <String>Reference to :sp:element:`~Process.Process.Source` object that represents the same flow.</String>
        </Data>
      </DataProperty>
      <Data property="MetaData/description">
        <String>This type is used to represent a flow of material out of the process. It can be used to
represent an outgoing off-page connector in a PFD or BFD.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="Skimming" superTypes="/Process.SeparatingMechanically">
      <CompositionProperty name="Flow" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MassFlowRateUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Mass flow rate through process.</String>
        </Data>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This is a :sp:element:`~Process.Process.SeparatingMechanically` process in which a
lighter immiscible fluid, such as oil, is separated from a heaver fluid, such as water,
by mechanical wiping of the surface of the heavier fluid.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="Source" superTypes="/Process.ProcessStep">
      <DataProperty name="SinkReference" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="Builtin/String"/>
        </UnionDataType>
        <Data property="MetaData/description">
          <String>Reference to :sp:element:`~Process.Process.Sink` object that represents the same flow.</String>
        </Data>
      </DataProperty>
      <Data property="MetaData/description">
        <String>This type is used to represent a flow of material into the process. It can be used to
represent an incoming off-page connector in a PFD or BFD.</String>
      </Data>
    </ConcreteClass>
    <AbstractClass name="Splitting" superTypes="/Process.ProcessStep">
      <Data property="MetaData/description">
        <String>This type is used to represent the splitting of a material or energy flow. This type is
abstract, and the child types :sp:element:`~Process.Process.SplittingMaterial` and
:sp:element:`~Process.Process.SplittingEnergy` are used in practice.</String>
      </Data>
    </AbstractClass>
    <ConcreteClass name="SplittingEnergy" superTypes="/Process.Splitting">
      <CompositionProperty name="Capacity" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MassUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This type is used to represent the splitting of an energy flow. The intensive properties
of the flow remain the same, but the total amount of flow (power) is divided among the
outlet ports.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="SplittingMaterial" superTypes="/Process.Splitting">
      <CompositionProperty name="Flow" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MassFlowRateUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Mass flow rate through process.</String>
        </Data>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This process splits an incoming flow of material into two or more outgoing flows of
material. The intensive properties of the material flows remain the same.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="StabilizingDistilling" superTypes="/Process.Distilling">
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.Distilling` process has the purpose of producing a
stabilized liquid product by removing the volatile chemical compounds that would
otherwise make the product unstable for transport or storage.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="StaticMixing" superTypes="/Process.Mixing">
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.Mixing` process uses a stationary element in the flow
of material to produce the necessary homogeneity in the material that comes out of the
process. It is realized by a :sp:element:`~Plant.ProcessEquipment.StaticMixer`.</String>
      </Data>
    </ConcreteClass>
    <AbstractClass name="SteeringFlow" superTypes="/Process.ProcessStep">
      <CompositionProperty name="Flow" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MassFlowRateUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Mass flow rate through process.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="VolumeFlow" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.VolumeFlowRateUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Volume flow rate through process.</String>
        </Data>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>The base type for processes that manipulate the rate of flow of material into and out of
the process step. This process is usually realized using a valve. Child types of this
type have been specified to support design of the process control and safety
systems.</String>
      </Data>
    </AbstractClass>
    <ConcreteClass name="StoringElectricalEnergy" superTypes="/Process.StoringEnergy">
      <CompositionProperty name="ChargeCurrent" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.ElectricCurrentUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="DischargeCurrent" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.ElectricCurrentUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="Voltage" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.VoltageUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This process step stores electrical energy. It can be connected to a charging flow of
electricity and can also be used as a supplier of electrical energy to other process
steps. The principle of storage is unspecified.

The :sp:element:`~Process.Process.StoringInBattery` type can be used when a chemical
battery is used as the storage system.</String>
      </Data>
    </ConcreteClass>
    <AbstractClass name="StoringEnergy" superTypes="/Process.ProcessStep">
      <CompositionProperty name="ChargeCapacity" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.EnergyUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>The capacity of storage of the :sp:element:`~Process.Process.StoringEnergy`.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="EnergyDensity" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.EnergyDensityUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>The energy density of the :sp:element:`~Process.Process.StoringEnergy`.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="MassSpecificEnergy" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MassSpecificEnergyUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>The mass specific energy of the :sp:element:`~Process.Process.StoringEnergy`.</String>
        </Data>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>An abstract process step that is the parent class for processes that store energy.</String>
      </Data>
    </AbstractClass>
    <ConcreteClass name="StoringFluids" superTypes="/Process.StoringMaterial">
      <CompositionProperty name="Level" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.LengthUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.StoringMaterial` process accumulates fluids: gases and liquids.
It can be connected to a filling flow of material and an optional emptying flow of
material. In this way it can be used as supplier of material for other process steps. The
principle and construction of the storage is unspecified. The sub-types of this type are
differentiated according to whether the storage is pressurised or not.
:sp:element:`~Process.Process.StoringInTank` is used for atmospheric storage of liquids,
whereas :sp:element:`~Process.Process.StoringInPressureVessel` is used for storage of
gases and fluids at above-atmospheric or sub-atmospheric pressure.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="StoringInBattery" superTypes="/Process.StoringElectricalEnergy">
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.StoringElectricalEnergy` process step stores
electrical energy in a battery. It can be connected to a charging flow of electricity
and can also be used as a supplier of electrical energy to other process steps.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="StoringInPressureVessel" superTypes="/Process.StoringFluids">
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.StoringFluids` process accumulates fluid materials in a
:sp:element:`~Plant.ProcessEquipment.PressureVessel`. This process assumes atmospheric
storage of the material at pressures above or below atmospheric pressure. Use
:sp:element:`~Process.Process.StoringInTank` where fluid is stored at atmospheric
conditions. It can be connected to a filling flow of material and an optional emptying
flow of material. In this way it can be used as supplier of material for other process
steps.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="StoringInSilo" superTypes="/Process.StoringSolids">
      <CompositionProperty name="Level" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.LengthUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.StoringSolids` process is realized by a
:sp:element:`~Plant.ProcessEquipment.Silo`.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="StoringInTank" superTypes="/Process.StoringFluids">
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.StoringFluids` process accumulates fluid, solid or
mixed materials in a :sp:element:`~Plant.ProcessEquipment.Tank`. This process assumes
atmospheric storage of the material. Use
:sp:element:`~Process.Process.StoringInPressureVessel` where fluid or gas is to be
stored at above-atmospheric or sub-atmospheric conditions. It can be connected to a
filling flow of material and an optional emptying flow of material. In this way it can
be used as supplier of material for other process steps.</String>
      </Data>
    </ConcreteClass>
    <AbstractClass name="StoringMaterial" superTypes="/Process.ProcessStep">
      <CompositionProperty name="Capacity" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MassUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Storage capacity of the storage process.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="Volume" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.VolumeUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>An abstract process step that is the parent class for processes that accumulate material.
It is often the intention of these steps that the accumulated material can be used as
supply for other process steps.</String>
      </Data>
    </AbstractClass>
    <ConcreteClass name="StoringMechanicalEnergy" superTypes="/Process.StoringEnergy">
      <Data property="MetaData/description">
        <String>This process accumulates and stores mechanical energy.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="StoringSolids" superTypes="/Process.StoringMaterial">
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.StoringMaterial` process accumulates solid material. It can
be connected to a filling flow of material and an optional emptying flow of material. In
this way it can be used as supplier of material for other process steps. The principle
and construction of the storage is unspecified.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="StoringThermalEnergy" superTypes="/Process.StoringEnergy">
      <Data property="MetaData/description">
        <String>This process accumulates and stores thermal energy for use in other processes.
A calorifier is an example of this process in HVAC systems.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="Stream" superTypes="/Process.ProcessConnection">
      <CompositionProperty name="MassFlow" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MassFlowRateUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <ReferenceProperty name="MaterialStateReference" isOrdered="false" isUnique="false" lower="0" oppositeLower="0" upper="1">
        <ClassReference type="/Process.MaterialState"/>
      </ReferenceProperty>
      <ReferenceProperty name="MaterialTemplateReference" isOrdered="false" isUnique="false" lower="0" oppositeLower="0" upper="1">
        <ClassReference type="/Process.MaterialTemplate"/>
      </ReferenceProperty>
      <CompositionProperty name="Pressure" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.PressureAbsoluteUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="Temperature" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.TemperatureUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="VolumeFlow" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.VolumeFlowRateUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This data structure defines the properties of a flow of fluid or solid material between
two :sp:element:`~Process.Process.MaterialPort` objects.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="StrippingDistilling" superTypes="/Process.Distilling">
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.Distilling` process has the purpose of removing
volatile components from a fluid.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="SupplyingElectricalEnergy" superTypes="/Process.SupplyingEnergy">
      <CompositionProperty name="Efficiency" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.RatioUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="Power" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.PowerUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="Voltage" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.VoltageUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This process is a source of electrical energy for use in other processes.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="SupplyingEnergy" superTypes="/Process.ProcessStep">
      <Data property="MetaData/description">
        <String>This process is a source of energy for use in other processes.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="SupplyingFluids" superTypes="/Process.SupplyingMaterial">
      <Data property="MetaData/description">
        <String>This process is a source of fluid materials (liquids, gases or multiphase mixtures) for
use in other processes.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="SupplyingMaterial" superTypes="/Process.ProcessStep">
      <CompositionProperty name="Capacity" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MassUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Storage capacity of the supply process.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="Flow" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MassFlowRateUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Mass flow rate through the process.</String>
        </Data>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This process is a source of material for use in other processes.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="SupplyingMechanicalEnergy" superTypes="/Process.SupplyingEnergy">
      <CompositionProperty name="Efficiency" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.RatioUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="RotationalFrequency" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.RotationalFrequencyUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="ShaftPower" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.PowerUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This process is a source of mechanical energy for use in other processes. It is the parent
type for the :sp:element:`~Process.Process.DrivingByEngine`,
:sp:element:`~Process.Process.DrivingByMotor` and
:sp:element:`~Process.Process.DrivingByTurbine` types.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="SupplyingSolids" superTypes="/Process.SupplyingMaterial">
      <Data property="MetaData/description">
        <String>This process is a source of solid material for use in other processes.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="SupplyingThermalEnergy" superTypes="/Process.ProcessStep">
      <CompositionProperty name="Area" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.AreaUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="Duty" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.PowerUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="Flow" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MassFlowRateUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="HeatTransferCoefficient" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.HeatTransferCoefficientUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="HeatTransferResistance" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.HeatTransferResistanceUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <DataProperty name="Method" isOrdered="false" isUnique="false" lower="0" upper="1">
        <UnionDataType>
          <DataTypeReference type="Builtin/Undefined"/>
          <DataTypeReference type="/Enumerations.HeatExchangeMethod"/>
        </UnionDataType>
      </DataProperty>
      <CompositionProperty name="SkinTemperature" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.TemperatureUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="TemperatureDifference" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.TemperatureUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This process is a source of thermal energy for use in other processes.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="SupplyingThermalEnergyWithBurner" superTypes="/Process.ProcessStepDetail">
      <CompositionProperty name="Duty" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.PowerUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="FuelConsumption" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MassFlowRateUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.ProcessStepDetail` is used to specify a combustion
process as a sub-process of some other process, such as a sub-type of
:sp:element:`~Process.Process.SupplyingThermalEnergy`. This process is usually realized
by one or more :sp:element:`~Plant.ProcessEquipment.Burner` components.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="ThermalEnergyFlow" superTypes="/Process.EnergyFlow">
      <CompositionProperty name="Temperature" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.TemperatureUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This data structure defines the properties of a flow of heat or thermal energy between
two :sp:element:`~Process.Process.ThermalEnergyPort` objects.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="ThermalEnergyPort" superTypes="/Process.EnergyPort">
      <Data property="MetaData/description">
        <String>This is a :sp:element:`~Process.Process.Port` that exchanges heat or thermal energy
between processes.

:sp:element:`Roles &lt;Core.Role&gt;` referenced via
:sp:element:`PerformedRoles &lt;Core.ConceptualObject.PerformedRoles&gt;`
should have one of the following 
:sp:element:`Names &lt;Core.Role.Name&gt;`:

- Input
- Output</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="TransformingProcessVariable" superTypes="/Process.CalculatingProcessVariable">
      <CompositionProperty name="Gain" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <DataTypeReference type="Builtin/Double"/>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="InputValue" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <DataTypeReference type="Builtin/Double"/>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="Offset" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <DataTypeReference type="Builtin/Double"/>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="OutputValue" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <DataTypeReference type="Builtin/Double"/>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This process performs a specified mathematical transformation on one or more input
variables to calculate one or more output variables. The input and output variables
are :sp:element:`~Process.Process.InformationPort` objects owned by the type.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="TransportingElectricalEnergy" superTypes="/Process.TransportingEnergy">
      <CompositionProperty name="Current" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.ElectricCurrentUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="Frequency" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.ElectricalFrequencyUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="NumberOfPhases" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <DataTypeReference type="Builtin/Integer"/>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="Voltage" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.VoltageUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This process transmits electrical energy between processes.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="TransportingEnergy" superTypes="/Process.ProcessStep">
      <CompositionProperty name="Capacity" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.PowerUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Transport capacity.</String>
        </Data>
      </CompositionProperty>
      <CompositionProperty name="Efficiency" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.RatioUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Efficiency of energy transportation.</String>
        </Data>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This process transmits energy between processes.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="TransportingFluids" superTypes="/Process.TransportingMaterial">
      <CompositionProperty name="Length" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.LengthUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="PressureDifference" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.PressureAbsoluteUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="VolumeFlow" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.VolumeFlowRateUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This process moves fluids: gas, liquid or multiphase flows, between processes. It is also
used to model distribution processes, such as steam supply systems, gas reticulation
networks, cooling water systems and flare systems. Three child types are used to specify
the realisation of this process, as the realization has implications for process design.
The child types are :sp:element:`~Process.Process.TransportingFluidsInChannel`,
:sp:element:`~Process.Process.TransportingFluidsInHose` and
:sp:element:`~Process.Process.TransportingFluidsInPipe`.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="TransportingFluidsInChannel" superTypes="/Process.TransportingFluids">
      <CompositionProperty name="Depth" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.LengthUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="Width" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.LengthUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.TransportingFluids` process is realized by an open
channel or drain. This type can be used to model open drain systems.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="TransportingFluidsInHose" superTypes="/Process.TransportingFluids">
      <CompositionProperty name="Diameter" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.LengthUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.TransportingFluids` process is realized by a flexible
connector or hose. This type can be used to model hose or flexible piping systems.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="TransportingFluidsInPipe" superTypes="/Process.TransportingFluids">
      <CompositionProperty name="Diameter" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.LengthUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This :sp:element:`~Process.Process.TransportingFluids` process is realized by a rigid
connector, duct or pipe. This type can be used to pipeline systems, piping-based fluid
distribution systems and ducting systems.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="TransportingMaterial" superTypes="/Process.ProcessStep">
      <CompositionProperty name="Flow" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MassFlowRateUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
        <Data property="MetaData/description">
          <String>Mass flowrate through the process.</String>
        </Data>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This process moves material between processes. Child types detail the kind of the transported material (fluid vs. solid).</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="TransportingMechanicalEnergy" superTypes="/Process.TransportingEnergy">
      <Data property="MetaData/description">
        <String>This :sp:name:`TransportingEnergy` process transmits mechanical energy (including
rotational energy) between processes. This can be realized by a shaft.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="TransportingSolids" superTypes="/Process.TransportingMaterial">
      <Data property="MetaData/description">
        <String>This process moves solid material between processes. Two child types are used to specify
the realisation of this process, as the realization has implications for process design.
The child types are :sp:element:`~Process.Process.TransportingSolidsContinuously` and
:sp:element:`~Process.Process.TransportingSolidsDiscontinuously`.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="TransportingSolidsContinuously" superTypes="/Process.TransportingSolids">
      <CompositionProperty name="Power" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.PowerUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <CompositionProperty name="Velocity" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.VelocityUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This process moves solid material between processes using a continuous operation, such as
a conveyor of various types.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="TransportingSolidsDiscontinuously" superTypes="/Process.TransportingSolids">
      <CompositionProperty name="BatchSize" isOrdered="false" lower="0">
        <BoundClass>
          <ClassReference type="Core/QualifiedValue"/>
          <DataTypeBinding parameter="Core/QualifiedValue.Type">
            <UnionDataType>
              <DataTypeReference type="Builtin/Undefined"/>
              <BoundDataType>
                <DataTypeReference type="Core/PhysicalQuantities.PhysicalQuantity"/>
                <DataTypeBinding parameter="Core/PhysicalQuantities.PhysicalQuantity.UnitType">
                  <DataTypeReference type="Core/PhysicalQuantities.MassUnit"/>
                </DataTypeBinding>
              </BoundDataType>
            </UnionDataType>
          </DataTypeBinding>
        </BoundClass>
      </CompositionProperty>
      <Data property="MetaData/description">
        <String>This process moves solid material between processes using a discontinuous or batch
operation, such as a vehicle, container or crane.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="TransportingThermalEnergy" superTypes="/Process.TransportingEnergy">
      <Data property="MetaData/description">
        <String>This :sp:name:`TransportingEnergy` process transmits thermal energy (including heat)
between processes. This is different to a heat exchanging process step in the sense that
the transporting thermal energy process step intends to preserve the transported energy
between input and output.</String>
      </Data>
    </ConcreteClass>
    <ConcreteClass name="VacuumDistilling" superTypes="/Process.Distilling">
      <Data property="MetaData/description">
        <String>This is a :sp:element:`~Process.Process.Distilling` process that is conducted at
sub-atmospheric pressures.</String>
      </Data>
    </ConcreteClass>
  </Package>
  <ConcreteClass name="ProcessModel" superTypes="Core/ConceptualModel">
    <CompositionProperty name="InstrumentationSystemActivities" isOrdered="false" lower="0">
      <ClassReference type="/Process.InstrumentationSystemActivity"/>
      <Data property="MetaData/description">
        <String>The  :sp:element:`InstrumentationSystemActivities &lt;Process.Process.InstrumentationSystemActivity&gt;`
of the :sp:element:`~Process.ProcessModel`.</String>
      </Data>
    </CompositionProperty>
    <CompositionProperty name="ListsOfMaterialComponents" isOrdered="false" lower="0">
      <ClassReference type="/Process.ListOfMaterialComponents"/>
      <Data property="MetaData/description">
        <String>The  :sp:element:`ListsOfMaterialComponents &lt;Process.Process.ListOfMaterialComponents&gt;`
of the :sp:element:`~Process.ProcessModel`.</String>
      </Data>
    </CompositionProperty>
    <CompositionProperty name="MaterialComponents" isOrdered="false" lower="0">
      <ClassReference type="/Process.MaterialComponent"/>
      <Data property="MetaData/description">
        <String>The  :sp:element:`MaterialComponents &lt;Process.Process.MaterialComponent&gt;`
of the :sp:element:`~Process.ProcessModel`.</String>
      </Data>
    </CompositionProperty>
    <CompositionProperty name="MaterialStates" isOrdered="false" lower="0">
      <ClassReference type="/Process.MaterialState"/>
      <Data property="MetaData/description">
        <String>The  :sp:element:`MaterialStates &lt;Process.Process.MaterialState&gt;`
of the :sp:element:`~Process.ProcessModel`.</String>
      </Data>
    </CompositionProperty>
    <CompositionProperty name="MaterialTemplates" isOrdered="false" lower="0">
      <ClassReference type="/Process.MaterialTemplate"/>
      <Data property="MetaData/description">
        <String>The  :sp:element:`MaterialTemplates &lt;Process.Process.MaterialTemplate&gt;`
of the :sp:element:`~Process.ProcessModel`.</String>
      </Data>
    </CompositionProperty>
    <CompositionProperty name="ProcessConnections" isOrdered="false" lower="0">
      <ClassReference type="/Process.ProcessConnection"/>
      <Data property="MetaData/description">
        <String>The  :sp:element:`ProcessConnections &lt;Process.Process.ProcessConnection&gt;`
of the :sp:element:`~Process.ProcessModel`.</String>
      </Data>
    </CompositionProperty>
    <CompositionProperty name="ProcessSteps" isOrdered="false" lower="0">
      <ClassReference type="/Process.ProcessStep"/>
      <Data property="MetaData/description">
        <String>The :sp:element:`ProcessSteps &lt;Process.Process.ProcessStep&gt;` of the :sp:element:`~Process.ProcessModel`.</String>
      </Data>
    </CompositionProperty>
  </ConcreteClass>
  <Data property="MetaData/description">
    <String>Types for the representation of chemical processes and associated graphical representations.</String>
  </Data>
</Model>
