<!-- CORBA Component Model (CCM) Specification                    -->
<!-- Version 4.0                                                  -->
<!-- Object Management Group, Inc.                                -->
<!-- Document Number formal/2006-04-01                            -->
<!-- Chapter 16:  XMI for CCM		                          -->

<!-- Copyright 2002, Laboratoire d’Informatique Fond de Lille     -->
<!-- Copyright 2006, Object Management Group, Inc.                -->

<!-- The companies listed above have granted to the Object        -->
<!-- Management Group, Inc. (OMG) a nonexlcusive, royalty-free,   -->
<!-- paid up, worldwide license to copy and distribute this       -->
<!-- document and to modify this document and distribute copies   -->
<!-- of the modified version. Each of the copyright holders       -->
<!-- listed above has agreed that no person shall be deemed to    -->
<!-- have infringed the copyright in the included material of     -->
<!-- any such copyright holder by reason of having used the       -->
<!-- specification set forth herein or having conformed any       -->
<!-- computer software to the specification.                      -->

<!-- This XML was defined by the XML Metadata  Interchange        -->
<!-- (XMI) version 2 specification on the Deployment PSM for      -->
<!-- CCM, which is derived from PIM in the Deployment and         -->
<!-- Configuration specification.                                 -->


<xsd:schema
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xmi="http://www.omg.org/XMI"
    xmlns:Deployment="http://www.omg.org/Deployment"
    targetNamespace="http://www.omg.org/Deployment"
    >
  <xsd:import namespace="http://www.omg.org/XMI"/>
  <xsd:complexType name="Any">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="type" type="Deployment:DataType"/>
      <xsd:element name="value" type="Deployment:DataValue"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="Any" type="Deployment:Any"/>
  <xsd:complexType name="DataType">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="kind" type="Deployment:TCKind"/>
      <xsd:element name="enum" type="Deployment:EnumType"/>
      <xsd:element name="objref" type="Deployment:ObjrefType"/>
      <xsd:element name="boundedString" type="Deployment:BoundedStringType"/>
      <xsd:element name="fixed" type="Deployment:FixedType"/>
      <xsd:element name="array" type="Deployment:ArrayType"/>
      <xsd:element name="sequence" type="Deployment:SequenceType"/>
      <xsd:element name="alias" type="Deployment:AliasType"/>
      <xsd:element name="struct" type="Deployment:StructType"/>
      <xsd:element name="value" type="Deployment:ValueType"/>
      <xsd:element name="union" type="Deployment:UnionType"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="DataType" type="Deployment:DataType"/>
  <xsd:complexType name="DataValue">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="short" type="xsd:short"/>
      <xsd:element name="long" type="xsd:int"/>
      <xsd:element name="ushort" type="xsd:unsignedShort"/>
      <xsd:element name="ulong" type="xsd:unsignedInt"/>
      <xsd:element name="float" type="xsd:float"/>
      <xsd:element name="double" type="xsd:double"/>
      <xsd:element name="boolean" type="xsd:boolean"/>
      <xsd:element name="octet" type="xsd:unsignedByte"/>
      <xsd:element name="opaque" type="xsd:base64Binary"/>
      <xsd:element name="objref" type="xsd:string"/>
      <xsd:element name="enum" type="xsd:string"/>
      <xsd:element name="string" type="xsd:string"/>
      <xsd:element name="longlong" type="xsd:long"/>
      <xsd:element name="ulonglong" type="xsd:unsignedLong"/>
      <xsd:element name="longdouble" type="xsd:double"/>
      <xsd:element name="fixed" type="xsd:string"/>
      <xsd:element name="any" type="Deployment:Any"/>
      <xsd:element name="typecode" type="Deployment:DataType"/>
      <xsd:element name="element" type="Deployment:DataValue"/>
      <xsd:element name="discriminator" type="Deployment:DataValue"/>
      <xsd:element name="value" type="Deployment:DataValue"/>
      <xsd:element name="boxedValue" type="Deployment:DataValue"/>
      <xsd:element name="member" type="Deployment:NamedValue"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="DataValue" type="Deployment:DataValue"/>
  <xsd:complexType name="EnumType">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="name" type="xsd:string"/>
      <xsd:element name="typeId" type="xsd:string"/>
      <xsd:element name="member" type="xsd:string"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="EnumType" type="Deployment:EnumType"/>
  <xsd:complexType name="ObjrefType">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="name" type="xsd:string"/>
      <xsd:element name="typeId" type="xsd:string"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="ObjrefType" type="Deployment:ObjrefType"/>
  <xsd:complexType name="BoundedStringType">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="bound" type="xsd:string"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="BoundedStringType" type="Deployment:BoundedStringType"/>
  <xsd:complexType name="FixedType">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="digits" type="xsd:string"/>
      <xsd:element name="scale" type="xsd:string"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="FixedType" type="Deployment:FixedType"/>
  <xsd:complexType name="ArrayType">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="length" type="xsd:string"/>
      <xsd:element name="elementType" type="Deployment:DataType"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="ArrayType" type="Deployment:ArrayType"/>
  <xsd:complexType name="SequenceType">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="bound" type="xsd:string"/>
      <xsd:element name="elementType" type="Deployment:DataType"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="SequenceType" type="Deployment:SequenceType"/>
  <xsd:complexType name="AliasType">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="name" type="xsd:string"/>
      <xsd:element name="typeId" type="xsd:string"/>
      <xsd:element name="elementType" type="Deployment:DataType"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="AliasType" type="Deployment:AliasType"/>
  <xsd:complexType name="StructType">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="name" type="xsd:string"/>
      <xsd:element name="typeId" type="xsd:string"/>
      <xsd:element name="member" type="Deployment:StructMemberType"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="StructType" type="Deployment:StructType"/>
  <xsd:complexType name="StructMemberType">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="name" type="xsd:string"/>
      <xsd:element name="type" type="Deployment:DataType"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="StructMemberType" type="Deployment:StructMemberType"/>
  <xsd:complexType name="ValueType">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="name" type="xsd:string"/>
      <xsd:element name="typeId" type="xsd:string"/>
      <xsd:element name="modifier" type="xsd:string"/>
      <xsd:element name="baseType" type="Deployment:DataType"/>
      <xsd:element name="member" type="Deployment:ValueMemberType"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="ValueType" type="Deployment:ValueType"/>
  <xsd:complexType name="ValueMemberType">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="name" type="xsd:string"/>
      <xsd:element name="visibility" type="xsd:string"/>
      <xsd:element name="type" type="Deployment:DataType"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="ValueMemberType" type="Deployment:ValueMemberType"/>
  <xsd:complexType name="UnionType">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="name" type="xsd:string"/>
      <xsd:element name="typeId" type="xsd:string"/>
      <xsd:element name="default" type="Deployment:UnionMemberType"/>
      <xsd:element name="discriminatorType" type="Deployment:DataType"/>
      <xsd:element name="member" type="Deployment:UnionMemberType"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="UnionType" type="Deployment:UnionType"/>
  <xsd:complexType name="UnionMemberType">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="name" type="xsd:string"/>
      <xsd:element name="type" type="Deployment:DataType"/>
      <xsd:element name="label" type="Deployment:DataValue"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="UnionMemberType" type="Deployment:UnionMemberType"/>
  <xsd:complexType name="NamedValue">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="name" type="xsd:string"/>
      <xsd:element name="value" type="Deployment:DataValue"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="NamedValue" type="Deployment:NamedValue"/>
  <xsd:complexType name="Bridge">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="name" type="xsd:string"/>
      <xsd:element name="label" type="xsd:string"/>
      <xsd:element name="connect" type="Deployment:Interconnect"/>
      <xsd:element name="resource" type="Deployment:Resource"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="Bridge" type="Deployment:Bridge"/>
  <xsd:complexType name="Interconnect">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="name" type="xsd:string"/>
      <xsd:element name="label" type="xsd:string"/>
      <xsd:element name="connection" type="Deployment:Bridge"/>
      <xsd:element name="connect" type="Deployment:Node"/>
      <xsd:element name="resource" type="Deployment:Resource"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="Interconnect" type="Deployment:Interconnect"/>
  <xsd:complexType name="Node">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="name" type="xsd:string"/>
      <xsd:element name="label" type="xsd:string"/>
      <xsd:element name="connection" type="Deployment:Interconnect"/>
      <xsd:element name="sharedResource" type="Deployment:SharedResource"/>
      <xsd:element name="resource" type="Deployment:Resource"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="Node" type="Deployment:Node"/>
  <xsd:complexType name="Resource">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="name" type="xsd:string"/>
      <xsd:element name="resourceType" type="xsd:string"/>
      <xsd:element name="property" type="Deployment:SatisfierProperty"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="Resource" type="Deployment:Resource"/>
  <xsd:complexType name="SharedResource">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="name" type="xsd:string"/>
      <xsd:element name="resourceType" type="xsd:string"/>
      <xsd:element name="node" type="Deployment:Node"/>
      <xsd:element name="property" type="Deployment:SatisfierProperty"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="SharedResource" type="Deployment:SharedResource"/>
  <xsd:complexType name="Domain">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="UUID" type="xsd:string"/>
      <xsd:element name="label" type="xsd:string"/>
      <xsd:element name="sharedResource" type="Deployment:SharedResource"/>
      <xsd:element name="node" type="Deployment:Node"/>
      <xsd:element name="interconnect" type="Deployment:Interconnect"/>
      <xsd:element name="bridge" type="Deployment:Bridge"/>
      <xsd:element name="infoProperty" type="Deployment:Property"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="Domain" type="Deployment:Domain"/>
  <xsd:complexType name="ResourceAllocation">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="elementName" type="xsd:string"/>
      <xsd:element name="resourceName" type="xsd:string"/>
      <xsd:element name="property" type="Deployment:Property"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="ResourceAllocation" type="Deployment:ResourceAllocation"/>
  <xsd:complexType name="PlanPropertyMapping">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="name" type="xsd:string"/>
      <xsd:element name="source" type="xsd:string"/>
      <xsd:element name="externalName" type="xsd:string"/>
      <xsd:element name="delegatesTo" type="Deployment:PlanSubcomponentPropertyReference"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="PlanPropertyMapping" type="Deployment:PlanPropertyMapping"/>
  <xsd:complexType name="PlanSubcomponentPropertyReference">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="propertyName" type="xsd:string"/>
      <xsd:element name="instance" type="Deployment:InstanceDeploymentDescription"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="PlanSubcomponentPropertyReference" type="Deployment:PlanSubcomponentPropertyReference"/>
  <xsd:complexType name="PlanSubcomponentPortEndpoint">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="portName" type="xsd:string"/>
      <xsd:element name="provider" type="xsd:string"/>
      <xsd:element name="kind" type="Deployment:CCMComponentPortKind"/>
      <xsd:element name="instance" type="Deployment:InstanceDeploymentDescription"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="PlanSubcomponentPortEndpoint" type="Deployment:PlanSubcomponentPortEndpoint"/>
  <xsd:complexType name="PlanConnectionDescription">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="name" type="xsd:string"/>
      <xsd:element name="source" type="xsd:string"/>
      <xsd:element name="deployRequirement" type="Deployment:Requirement"/>
      <xsd:element name="externalEndpoint" type="Deployment:ComponentExternalPortEndpoint"/>
      <xsd:element name="internalEndpoint" type="Deployment:PlanSubcomponentPortEndpoint"/>
      <xsd:element name="externalReference" type="Deployment:ExternalReferenceEndpoint"/>
      <xsd:element name="deployedResource" type="Deployment:ConnectionResourceDeploymentDescription"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="PlanConnectionDescription" type="Deployment:PlanConnectionDescription"/>
  <xsd:complexType name="InstanceDeploymentDescription">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="name" type="xsd:string"/>
      <xsd:element name="node" type="xsd:string"/>
      <xsd:element name="source" type="xsd:string"/>
      <xsd:element name="implementation" type="Deployment:MonolithicDeploymentDescription"/>
      <xsd:element name="configProperty" type="Deployment:Property"/>
      <xsd:element name="deployedResource" type="Deployment:InstanceResourceDeploymentDescription"/>
      <xsd:element name="deployedSharedResource" type="Deployment:InstanceResourceDeploymentDescription"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="InstanceDeploymentDescription" type="Deployment:InstanceDeploymentDescription"/>
  <xsd:complexType name="MonolithicDeploymentDescription">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="name" type="xsd:string"/>
      <xsd:element name="source" type="xsd:string"/>
      <xsd:element name="artifact" type="Deployment:ArtifactDeploymentDescription"/>
      <xsd:element name="execParameter" type="Deployment:Property"/>
      <xsd:element name="deployRequirement" type="Deployment:Requirement"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="MonolithicDeploymentDescription" type="Deployment:MonolithicDeploymentDescription"/>
  <xsd:complexType name="ArtifactDeploymentDescription">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="name" type="xsd:string"/>
      <xsd:element name="location" type="xsd:string"/>
      <xsd:element name="node" type="xsd:string"/>
      <xsd:element name="source" type="xsd:string"/>
      <xsd:element name="execParameter" type="Deployment:Property"/>
      <xsd:element name="deployRequirement" type="Deployment:Requirement"/>
      <xsd:element name="deployedResource" type="Deployment:ResourceDeploymentDescription"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="ArtifactDeploymentDescription" type="Deployment:ArtifactDeploymentDescription"/>
  <xsd:complexType name="DeploymentPlan">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="label" type="xsd:string"/>
      <xsd:element name="UUID" type="xsd:string"/>
      <xsd:element name="realizes" type="Deployment:ComponentInterfaceDescription"/>
      <xsd:element name="implementation" type="Deployment:MonolithicDeploymentDescription"/>
      <xsd:element name="instance" type="Deployment:InstanceDeploymentDescription"/>
      <xsd:element name="connection" type="Deployment:PlanConnectionDescription"/>
      <xsd:element name="externalProperty" type="Deployment:PlanPropertyMapping"/>
      <xsd:element name="dependsOn" type="Deployment:ImplementationDependency"/>
      <xsd:element name="artifact" type="Deployment:ArtifactDeploymentDescription"/>
      <xsd:element name="infoProperty" type="Deployment:Property"/>
      <xsd:element name="localityConstraint" type="Deployment:PlanLocality"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="DeploymentPlan" type="Deployment:DeploymentPlan"/>
  <xsd:complexType name="ResourceDeploymentDescription">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="requirementName" type="xsd:string"/>
      <xsd:element name="resourceName" type="xsd:string"/>
      <xsd:element name="property" type="Deployment:Property"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="ResourceDeploymentDescription" type="Deployment:ResourceDeploymentDescription"/>
  <xsd:complexType name="InstanceResourceDeploymentDescription">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="resourceUsage" type="Deployment:ResourceUsageKind"/>
      <xsd:element name="requirementName" type="xsd:string"/>
      <xsd:element name="resourceName" type="xsd:string"/>
      <xsd:element name="property" type="Deployment:Property"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="InstanceResourceDeploymentDescription" type="Deployment:InstanceResourceDeploymentDescription"/>
  <xsd:complexType name="ConnectionResourceDeploymentDescription">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="targetName" type="xsd:string"/>
      <xsd:element name="requirementName" type="xsd:string"/>
      <xsd:element name="resourceName" type="xsd:string"/>
      <xsd:element name="property" type="Deployment:Property"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="ConnectionResourceDeploymentDescription" type="Deployment:ConnectionResourceDeploymentDescription"/>
  <xsd:complexType name="PlanLocality">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="constraint" type="Deployment:PlanLocalityKind"/>
      <xsd:element name="constrainedInstance" type="Deployment:InstanceDeploymentDescription"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="PlanLocality" type="Deployment:PlanLocality"/>
  <xsd:complexType name="Capability">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="name" type="xsd:string"/>
      <xsd:element name="resourceType" type="xsd:string"/>
      <xsd:element name="property" type="Deployment:SatisfierProperty"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="Capability" type="Deployment:Capability"/>
  <xsd:complexType name="ComponentPropertyDescription">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="name" type="xsd:string"/>
      <xsd:element name="type" type="Deployment:DataType"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="ComponentPropertyDescription" type="Deployment:ComponentPropertyDescription"/>
  <xsd:complexType name="ComponentPortDescription">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="name" type="xsd:string"/>
      <xsd:element name="specificType" type="xsd:string"/>
      <xsd:element name="supportedType" type="xsd:string"/>
      <xsd:element name="provider" type="xsd:string"/>
      <xsd:element name="exclusiveProvider" type="xsd:string"/>
      <xsd:element name="exclusiveUser" type="xsd:string"/>
      <xsd:element name="optional" type="xsd:string"/>
      <xsd:element name="kind" type="Deployment:CCMComponentPortKind"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="ComponentPortDescription" type="Deployment:ComponentPortDescription"/>
  <xsd:complexType name="ComponentInterfaceDescription">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="label" type="xsd:string"/>
      <xsd:element name="UUID" type="xsd:string"/>
      <xsd:element name="specificType" type="xsd:string"/>
      <xsd:element name="supportedType" type="xsd:string"/>
      <xsd:element name="idlFile" type="xsd:string"/>
      <xsd:element name="configProperty" type="Deployment:Property"/>
      <xsd:element name="port" type="Deployment:ComponentPortDescription"/>
      <xsd:element name="property" type="Deployment:ComponentPropertyDescription"/>
      <xsd:element name="infoProperty" type="Deployment:Property"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="ComponentInterfaceDescription" type="Deployment:ComponentInterfaceDescription"/>
  <xsd:complexType name="ImplementationArtifactDescription">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="label" type="xsd:string"/>
      <xsd:element name="UUID" type="xsd:string"/>
      <xsd:element name="location" type="xsd:string"/>
      <xsd:element name="execParameter" type="Deployment:Property"/>
      <xsd:element name="deployRequirement" type="Deployment:Requirement"/>
      <xsd:element name="dependsOn" type="Deployment:NamedImplementationArtifact"/>
      <xsd:element name="infoProperty" type="Deployment:Property"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="ImplementationArtifactDescription" type="Deployment:ImplementationArtifactDescription"/>
  <xsd:complexType name="MonolithicImplementationDescription">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="nodeExecParameter" type="Deployment:Property"/>
      <xsd:element name="primaryArtifact" type="Deployment:NamedImplementationArtifact"/>
      <xsd:element name="deployRequirement" type="Deployment:ImplementationRequirement"/>
      <xsd:element name="componentExecParameter" type="Deployment:Property"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="MonolithicImplementationDescription" type="Deployment:MonolithicImplementationDescription"/>
  <xsd:complexType name="AssemblyPropertyMapping">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="name" type="xsd:string"/>
      <xsd:element name="externalName" type="xsd:string"/>
      <xsd:element name="delegatesTo" type="Deployment:SubcomponentPropertyReference"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="AssemblyPropertyMapping" type="Deployment:AssemblyPropertyMapping"/>
  <xsd:complexType name="SubcomponentPropertyReference">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="propertyName" type="xsd:string"/>
      <xsd:element name="instance" type="Deployment:SubcomponentInstantiationDescription"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="SubcomponentPropertyReference" type="Deployment:SubcomponentPropertyReference"/>
  <xsd:complexType name="SubcomponentPortEndpoint">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="portName" type="xsd:string"/>
      <xsd:element name="instance" type="Deployment:SubcomponentInstantiationDescription"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="SubcomponentPortEndpoint" type="Deployment:SubcomponentPortEndpoint"/>
  <xsd:complexType name="AssemblyConnectionDescription">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="name" type="xsd:string"/>
      <xsd:element name="deployRequirement" type="Deployment:Requirement"/>
      <xsd:element name="externalEndpoint" type="Deployment:ComponentExternalPortEndpoint"/>
      <xsd:element name="internalEndpoint" type="Deployment:SubcomponentPortEndpoint"/>
      <xsd:element name="externalReference" type="Deployment:ExternalReferenceEndpoint"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="AssemblyConnectionDescription" type="Deployment:AssemblyConnectionDescription"/>
  <xsd:complexType name="SubcomponentInstantiationDescription">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="name" type="xsd:string"/>
      <xsd:element name="basePackage" type="Deployment:ComponentPackageDescription"/>
      <xsd:element name="specializedConfig" type="Deployment:PackageConfiguration"/>
      <xsd:element name="selectRequirement" type="Deployment:Requirement"/>
      <xsd:element name="configProperty" type="Deployment:Property"/>
      <xsd:element name="referencedPackage" type="Deployment:ComponentPackageReference"/>
      <xsd:element name="importedPackage" type="Deployment:ComponentPackageImport"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="SubcomponentInstantiationDescription" type="Deployment:SubcomponentInstantiationDescription"/>
  <xsd:complexType name="ComponentAssemblyDescription">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="instance" type="Deployment:SubcomponentInstantiationDescription"/>
      <xsd:element name="connection" type="Deployment:AssemblyConnectionDescription"/>
      <xsd:element name="externalProperty" type="Deployment:AssemblyPropertyMapping"/>
      <xsd:element name="localityConstraint" type="Deployment:Locality"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="ComponentAssemblyDescription" type="Deployment:ComponentAssemblyDescription"/>
  <xsd:complexType name="ComponentImplementationDescription">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="label" type="xsd:string"/>
      <xsd:element name="UUID" type="xsd:string"/>
      <xsd:element name="implements" type="Deployment:ComponentInterfaceDescription"/>
      <xsd:element name="assemblyImpl" type="Deployment:ComponentAssemblyDescription"/>
      <xsd:element name="monolithicImpl" type="Deployment:MonolithicImplementationDescription"/>
      <xsd:element name="configProperty" type="Deployment:Property"/>
      <xsd:element name="capability" type="Deployment:Capability"/>
      <xsd:element name="dependsOn" type="Deployment:ImplementationDependency"/>
      <xsd:element name="infoProperty" type="Deployment:Property"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="ComponentImplementationDescription" type="Deployment:ComponentImplementationDescription"/>
  <xsd:complexType name="ComponentPackageReference">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="requiredUUID" type="xsd:string"/>
      <xsd:element name="requiredName" type="xsd:string"/>
      <xsd:element name="requiredType" type="Deployment:ComponentInterfaceDescription"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="ComponentPackageReference" type="Deployment:ComponentPackageReference"/>
  <xsd:complexType name="ComponentPackageDescription">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="label" type="xsd:string"/>
      <xsd:element name="UUID" type="xsd:string"/>
      <xsd:element name="realizes" type="Deployment:ComponentInterfaceDescription"/>
      <xsd:element name="configProperty" type="Deployment:Property"/>
      <xsd:element name="implementation" type="Deployment:PackagedComponentImplementation"/>
      <xsd:element name="infoProperty" type="Deployment:Property"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="ComponentPackageDescription" type="Deployment:ComponentPackageDescription"/>
  <xsd:complexType name="ComponentUsageDescription">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="basePackage" type="Deployment:ComponentPackageDescription"/>
      <xsd:element name="specializedConfig" type="Deployment:PackageConfiguration"/>
      <xsd:element name="selectRequirement" type="Deployment:Requirement"/>
      <xsd:element name="configProperty" type="Deployment:Property"/>
      <xsd:element name="referencedPackage" type="Deployment:ComponentPackageReference"/>
      <xsd:element name="importedPackage" type="Deployment:ComponentPackageImport"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="ComponentUsageDescription" type="Deployment:ComponentUsageDescription"/>
  <xsd:complexType name="PackagedComponentImplementation">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="name" type="xsd:string"/>
      <xsd:element name="referencedImplementation" type="Deployment:ComponentImplementationDescription"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="PackagedComponentImplementation" type="Deployment:PackagedComponentImplementation"/>
  <xsd:complexType name="NamedImplementationArtifact">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="name" type="xsd:string"/>
      <xsd:element name="referencedArtifact" type="Deployment:ImplementationArtifactDescription"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="NamedImplementationArtifact" type="Deployment:NamedImplementationArtifact"/>
  <xsd:complexType name="ImplementationRequirement">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="resourceUsage" type="Deployment:ResourceUsageKind"/>
      <xsd:element name="resourcePort" type="xsd:string"/>
      <xsd:element name="componentPort" type="xsd:string"/>
      <xsd:element name="name" type="xsd:string"/>
      <xsd:element name="resourceType" type="xsd:string"/>
      <xsd:element name="property" type="Deployment:Property"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="ImplementationRequirement" type="Deployment:ImplementationRequirement"/>
  <xsd:complexType name="ComponentPackageImport">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="location" type="xsd:string"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="ComponentPackageImport" type="Deployment:ComponentPackageImport"/>
  <xsd:complexType name="PackageConfiguration">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="label" type="xsd:string"/>
      <xsd:element name="UUID" type="xsd:string"/>
      <xsd:element name="basePackage" type="Deployment:ComponentPackageDescription"/>
      <xsd:element name="specializedConfig" type="Deployment:PackageConfiguration"/>
      <xsd:element name="selectRequirement" type="Deployment:Requirement"/>
      <xsd:element name="configProperty" type="Deployment:Property"/>
      <xsd:element name="referencedPackage" type="Deployment:ComponentPackageReference"/>
      <xsd:element name="importedPackage" type="Deployment:ComponentPackageImport"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="PackageConfiguration" type="Deployment:PackageConfiguration"/>
  <xsd:complexType name="Locality">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="constraint" type="Deployment:LocalityKind"/>
      <xsd:element name="constrainedInstance" type="Deployment:SubcomponentInstantiationDescription"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="Locality" type="Deployment:Locality"/>
  <xsd:complexType name="RequirementSatisfier">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="name" type="xsd:string"/>
      <xsd:element name="resourceType" type="xsd:string"/>
      <xsd:element name="property" type="Deployment:SatisfierProperty"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="RequirementSatisfier" type="Deployment:RequirementSatisfier"/>
  <xsd:complexType name="SatisfierProperty">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="name" type="xsd:string"/>
      <xsd:element name="kind" type="Deployment:SatisfierPropertyKind"/>
      <xsd:element name="dynamic" type="xsd:string"/>
      <xsd:element name="value" type="Deployment:Any"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="SatisfierProperty" type="Deployment:SatisfierProperty"/>
  <xsd:complexType name="Requirement">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="name" type="xsd:string"/>
      <xsd:element name="resourceType" type="xsd:string"/>
      <xsd:element name="property" type="Deployment:Property"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="Requirement" type="Deployment:Requirement"/>
  <xsd:complexType name="Property">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="name" type="xsd:string"/>
      <xsd:element name="value" type="Deployment:Any"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="Property" type="Deployment:Property"/>
  <xsd:complexType name="ExternalReferenceEndpoint">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="location" type="xsd:string"/>
      <xsd:element name="provider" type="xsd:string"/>
      <xsd:element name="portName" type="xsd:string"/>
      <xsd:element name="supportedType" type="xsd:string"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="ExternalReferenceEndpoint" type="Deployment:ExternalReferenceEndpoint"/>
  <xsd:complexType name="ComponentExternalPortEndpoint">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="portName" type="xsd:string"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="ComponentExternalPortEndpoint" type="Deployment:ComponentExternalPortEndpoint"/>
  <xsd:complexType name="ImplementationDependency">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="requiredType" type="xsd:string"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="ImplementationDependency" type="Deployment:ImplementationDependency"/>
  <xsd:complexType name="ToplevelPackageDescription">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="package" type="Deployment:PackageConfiguration"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="ToplevelPackageDescription" type="Deployment:ToplevelPackageDescription"/>
  <xsd:simpleType name="TCKind">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="tk_null"/>
      <xsd:enumeration value="tk_void"/>
      <xsd:enumeration value="tk_short"/>
      <xsd:enumeration value="tk_long"/>
      <xsd:enumeration value="tk_ushort"/>
      <xsd:enumeration value="tk_ulong"/>
      <xsd:enumeration value="tk_float"/>
      <xsd:enumeration value="tk_double"/>
      <xsd:enumeration value="tk_boolean"/>
      <xsd:enumeration value="tk_char"/>
      <xsd:enumeration value="tk_octet"/>
      <xsd:enumeration value="tk_any"/>
      <xsd:enumeration value="tk_TypeCode"/>
      <xsd:enumeration value="tk_Principal"/>
      <xsd:enumeration value="tk_objref"/>
      <xsd:enumeration value="tk_struct"/>
      <xsd:enumeration value="tk_union"/>
      <xsd:enumeration value="tk_enum"/>
      <xsd:enumeration value="tk_string"/>
      <xsd:enumeration value="tk_sequence"/>
      <xsd:enumeration value="tk_array"/>
      <xsd:enumeration value="tk_alias"/>
      <xsd:enumeration value="tk_except"/>
      <xsd:enumeration value="tk_longlong"/>
      <xsd:enumeration value="tk_ulonglong"/>
      <xsd:enumeration value="tk_longdouble"/>
      <xsd:enumeration value="tk_wchar"/>
      <xsd:enumeration value="tk_wstring"/>
      <xsd:enumeration value="tk_fixed"/>
      <xsd:enumeration value="tk_value"/>
      <xsd:enumeration value="tk_value_box"/>
      <xsd:enumeration value="tk_native"/>
      <xsd:enumeration value="tk_abstract_interface"/>
      <xsd:enumeration value="tk_local_interface"/>
      <xsd:enumeration value="tk_component"/>
      <xsd:enumeration value="tk_home"/>
      <xsd:enumeration value="tk_event"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="PlanLocalityKind">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="SameProcess"/>
      <xsd:enumeration value="DifferentProcess"/>
      <xsd:enumeration value="NoConstraint"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="ResourceUsageKind">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="None"/>
      <xsd:enumeration value="InstanceUsesResource"/>
      <xsd:enumeration value="ResourceUsesInstance"/>
      <xsd:enumeration value="PortUsesResource"/>
      <xsd:enumeration value="ResourceUsesPort"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="LocalityKind">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="SameNodeAnyProcess"/>
      <xsd:enumeration value="SameNodeSameProcess"/>
      <xsd:enumeration value="SameNodeDifferentProcess"/>
      <xsd:enumeration value="DifferentNode"/>
      <xsd:enumeration value="DifferentProcess"/>
      <xsd:enumeration value="NoConstraint"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="CCMComponentPortKind">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Facet"/>
      <xsd:enumeration value="SimplexReceptacle"/>
      <xsd:enumeration value="MultiplexReceptacle"/>
      <xsd:enumeration value="EventEmitter"/>
      <xsd:enumeration value="EventPublisher"/>
      <xsd:enumeration value="EventConsumer"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="SatisfierPropertyKind">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Quantity"/>
      <xsd:enumeration value="Capacity"/>
      <xsd:enumeration value="Minimum"/>
      <xsd:enumeration value="Maximum"/>
      <xsd:enumeration value="Attribute"/>
      <xsd:enumeration value="Selection"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:element name="Deployment">
  <xsd:complexType>
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element ref="Deployment:Any"/>
      <xsd:element ref="Deployment:DataType"/>
      <xsd:element ref="Deployment:DataValue"/>
      <xsd:element ref="Deployment:EnumType"/>
      <xsd:element ref="Deployment:ObjrefType"/>
      <xsd:element ref="Deployment:BoundedStringType"/>
      <xsd:element ref="Deployment:FixedType"/>
      <xsd:element ref="Deployment:ArrayType"/>
      <xsd:element ref="Deployment:SequenceType"/>
      <xsd:element ref="Deployment:AliasType"/>
      <xsd:element ref="Deployment:StructType"/>
      <xsd:element ref="Deployment:StructMemberType"/>
      <xsd:element ref="Deployment:ValueType"/>
      <xsd:element ref="Deployment:ValueMemberType"/>
      <xsd:element ref="Deployment:UnionType"/>
      <xsd:element ref="Deployment:UnionMemberType"/>
      <xsd:element ref="Deployment:NamedValue"/>
      <xsd:element ref="Deployment:Bridge"/>
      <xsd:element ref="Deployment:Interconnect"/>
      <xsd:element ref="Deployment:Node"/>
      <xsd:element ref="Deployment:Resource"/>
      <xsd:element ref="Deployment:SharedResource"/>
      <xsd:element ref="Deployment:Domain"/>
      <xsd:element ref="Deployment:ResourceAllocation"/>
      <xsd:element ref="Deployment:PlanPropertyMapping"/>
      <xsd:element ref="Deployment:PlanSubcomponentPropertyReference"/>
      <xsd:element ref="Deployment:PlanSubcomponentPortEndpoint"/>
      <xsd:element ref="Deployment:PlanConnectionDescription"/>
      <xsd:element ref="Deployment:InstanceDeploymentDescription"/>
      <xsd:element ref="Deployment:MonolithicDeploymentDescription"/>
      <xsd:element ref="Deployment:ArtifactDeploymentDescription"/>
      <xsd:element ref="Deployment:DeploymentPlan"/>
      <xsd:element ref="Deployment:ResourceDeploymentDescription"/>
      <xsd:element ref="Deployment:InstanceResourceDeploymentDescription"/>
      <xsd:element ref="Deployment:ConnectionResourceDeploymentDescription"/>
      <xsd:element ref="Deployment:PlanLocality"/>
      <xsd:element ref="Deployment:Capability"/>
      <xsd:element ref="Deployment:ComponentPropertyDescription"/>
      <xsd:element ref="Deployment:ComponentPortDescription"/>
      <xsd:element ref="Deployment:ComponentInterfaceDescription"/>
      <xsd:element ref="Deployment:ImplementationArtifactDescription"/>
      <xsd:element ref="Deployment:MonolithicImplementationDescription"/>
      <xsd:element ref="Deployment:AssemblyPropertyMapping"/>
      <xsd:element ref="Deployment:SubcomponentPropertyReference"/>
      <xsd:element ref="Deployment:SubcomponentPortEndpoint"/>
      <xsd:element ref="Deployment:AssemblyConnectionDescription"/>
      <xsd:element ref="Deployment:SubcomponentInstantiationDescription"/>
      <xsd:element ref="Deployment:ComponentAssemblyDescription"/>
      <xsd:element ref="Deployment:ComponentImplementationDescription"/>
      <xsd:element ref="Deployment:ComponentPackageReference"/>
      <xsd:element ref="Deployment:ComponentPackageDescription"/>
      <xsd:element ref="Deployment:ComponentUsageDescription"/>
      <xsd:element ref="Deployment:PackagedComponentImplementation"/>
      <xsd:element ref="Deployment:NamedImplementationArtifact"/>
      <xsd:element ref="Deployment:ImplementationRequirement"/>
      <xsd:element ref="Deployment:ComponentPackageImport"/>
      <xsd:element ref="Deployment:PackageConfiguration"/>
      <xsd:element ref="Deployment:Locality"/>
      <xsd:element ref="Deployment:RequirementSatisfier"/>
      <xsd:element ref="Deployment:SatisfierProperty"/>
      <xsd:element ref="Deployment:Requirement"/>
      <xsd:element ref="Deployment:Property"/>
      <xsd:element ref="Deployment:ExternalReferenceEndpoint"/>
      <xsd:element ref="Deployment:ComponentExternalPortEndpoint"/>
      <xsd:element ref="Deployment:ImplementationDependency"/>
      <xsd:element ref="Deployment:ToplevelPackageDescription"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id" use="optional"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  </xsd:element>
</xsd:schema>

