<?xml version="1.0" encoding="UTF-8"?>
<uml:Profile xmi:version="20110701" xmlns:xmi="http://www.omg.org/spec/XMI/20110701" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML" xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile" name="NIEM_PIM_Profile" URI="http://www.omg.org/spec/NIEM-UML/20120501/NIEM_PIM_Profile" metamodelReference="NIEM_UML_Profile-NIEM_PIM_Profile-packageImport-2">
  <eAnnotations xmi:id="_NGi7iu1CEeONXpKqgZhDUQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
    <contents xmi:type="ecore:EPackage" xmi:id="_NGi7i-1CEeONXpKqgZhDUQ" name="NIEM_PIM_Profile" nsURI="http://www.omg.org/spec/NIEM-UML/20120501/NIEM_PIM_Profile" nsPrefix="NIEM_PIM_Profile">
      <eAnnotations xmi:id="_NGi7jO1CEeONXpKqgZhDUQ" source="http://www.eclipse.org/uml2/4.0.0/UML">
        <references xmi:type="uml:Profile" href="NIEM_UML_Profile.NIEM_Common_Profile.profile.uml#NIEM_UML_Profile-NIEM_Common_Profile"/>
      </eAnnotations>
      <eClassifiers xmi:type="ecore:EClass" xmi:id="_NGi7je1CEeONXpKqgZhDUQ" name="Augments">
        <eAnnotations xmi:id="_NGi7ju1CEeONXpKqgZhDUQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="NIEM_UML_Profile-NIEM_PIM_Profile-Augments"/>
        <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NGi7j-1CEeONXpKqgZhDUQ" name="base_Generalization" ordered="false" lowerBound="1">
          <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Generalization"/>
        </eStructuralFeatures>
      </eClassifiers>
      <eClassifiers xmi:type="ecore:EClass" xmi:id="_NGi7ke1CEeONXpKqgZhDUQ" name="InformationModel" eSuperTypes="_NGi7mu1CEeONXpKqgZhDUQ">
        <eAnnotations xmi:id="_NGi7ku1CEeONXpKqgZhDUQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="NIEM_UML_Profile-NIEM_PIM_Profile-InformationModel"/>
        <eAnnotations xmi:id="_NGi7k-1CEeONXpKqgZhDUQ" source="duplicates">
          <contents xmi:type="ecore:EReference" xmi:id="_NGi7lO1CEeONXpKqgZhDUQ" name="base_Package" ordered="false" lowerBound="1">
            <eAnnotations xmi:id="_NGi7le1CEeONXpKqgZhDUQ" source="redefines" references="_NGi7nu1CEeONXpKqgZhDUQ"/>
            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Package"/>
          </contents>
        </eAnnotations>
        <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NGi7l-1CEeONXpKqgZhDUQ" name="defaultPurpose" ordered="false" eType="_NGi7qO1CEeONXpKqgZhDUQ" defaultValueLiteral="extension"/>
      </eClassifiers>
      <eClassifiers xmi:type="ecore:EClass" xmi:id="_NGi7mu1CEeONXpKqgZhDUQ" name="NIEM_Common_Profile_Namespace">
        <eAnnotations xmi:id="_NGi7m-1CEeONXpKqgZhDUQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
          <references xmi:type="uml:Stereotype" href="NIEM_UML_Profile.NIEM_Common_Profile.profile.uml#NIEM_UML_Profile-NIEM_Common_Profile-Namespace"/>
        </eAnnotations>
        <eAnnotations xmi:id="_NGi7nO1CEeONXpKqgZhDUQ" source="http://www.eclipse.org/emf/2002/GenModel">
          <details xmi:id="_NGi7ne1CEeONXpKqgZhDUQ" key="documentation" value="not(self.version.oclIsUndefined()) -- Constraint also resolved by the requirement&#xA;              that tag &quot;version&quot; is required.&#xD;&#xA;self.version&lt;>''&#xD;&#xA;self.base_Package.profiledBy('NIEM_PSM_Profile') implies&#xA;              self.base_Package.ownedType ->select(t|t.oclIsKindOf(Class) and&#xA;              not(t.stereotypedBy('PropertyHolder')))&#xA;              ->forAll(type|type.stereotypedBy('NIEMType')) -- PIM Profile Classes default to&#xA;              &lt;&lt;ObjectType>> if not otherwise specified &#xD;&#xA;self.base_Package.profiledBy('NIEM_PSM_Profile') implies&#xA;              self.base_Package.ownedType ->select(t|not(t.stereotypedBy('PropertyHolder'))&#xA;              ->forAll(schemaComponent|schemaComponent.name.firstToUpper()=schemaComponent.name)&#xA;            &#xD;&#xA;not(self.targetNamespace.oclIsUndefined()) and&#xA;              (self.targetNamespace&lt;>'') -- also partially satisfied by multiplicity&#xA;              constraint on targetNamespace &#xD;&#xA;self.profiledBy('NIEM_PSM_Profile') implies self.base_Package.ownedType&#xA;              ->select(t|t.oclIsKindOf(DataType))&#xA;              ->forAll(simpleType|simpleType.name.matches('.*SimpleType')) &#xD;&#xA;self.base_Class.profiledBy('NIEM_PSM_Profile') implies&#xA;              self.base_Package.ownedType->select(t|t.oclIsKindOf(Enumeration))&#xA;              ->forAll(otherType|otherType.ownedComment ->exists(documentation|&#xA;              documentation.stereotypedBy('Documentation') and ( documentation.body.startsWith('A&#xA;              data type for a ') or documentation.body.startsWith('A data type for an ') ) ) )&#xA;            &#xD;&#xA;self.base_Package.profiledBy('NIEM_PSM_Profile') implies&#xA;              self.base_Package.ownedType ->select(t|t.oclIsKindOf(Enumeration))&#xA;              ->forAll(enumerationDerivedType|enumerationDerivedType.name.matches('.*Code.*'))&#xD;&#xA;self.targetNamespace.isAbsoluteURI()&#xD;&#xA;self.base_Package.profiledBy('NIEM_PSM_Profile') implies&#xA;              self.base_Package.ownedType ->select(t|&#xA;              t.clientDependency->select(d|d.stereotypedBy('XSDSimpleContent')).supplier->exists(s|s.oclIsKindOf(Enumeration))&#xA;              or ( t.oclIsKindOf(Classifier) and&#xA;              t.oclAsType(Classifier).allParents().clientDependency->select(d|d.stereotypedBy('XSDSimpleContent')).supplier->exists(s|s.oclIsKindOf(Enumeration))&#xA;              ) )&#xA;              ->forAll(enumerationDerivedType|enumerationDerivedType.name.matches('.*Code.*'))&#xA;            &#xD;&#xA;self.base_Package.profiledBy('NIEM_PSM_Profile') implies&#xA;              self.base_Package.ownedComment->exists(documentation|documentation.stereotypedBy('Documentation'))&#xA;            &#xD;&#xA;self.base_Package.profiledBy('NIEM_PSM_Profile') implies&#xA;              self.base_Package.ownedType ->select(t|not(t.stereotypedBy('PropertyHolder'))&#xA;              ->forAll(schemaComponent|schemaComponent.name.match('[\\w|\\-]*')) &#xD;&#xA;self.base_Package.profiledBy('NIEM_PSM_Profile') implies&#xA;              self.base_Package.ownedComment->exists(documentation|documentation.stereotypedBy('Documentation'))&#xA;            "/>
        </eAnnotations>
        <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NGi7nu1CEeONXpKqgZhDUQ" name="base_Package" ordered="false" lowerBound="1">
          <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Package"/>
        </eStructuralFeatures>
        <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NGi7oO1CEeONXpKqgZhDUQ" name="targetNamespace" ordered="false" lowerBound="1" defaultValueLiteral="http://domain.gov/myDomain/">
          <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/4.0.0/Types#//String"/>
        </eStructuralFeatures>
        <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NGi7ou1CEeONXpKqgZhDUQ" name="isConformant" ordered="false" lowerBound="1" defaultValueLiteral="true">
          <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"/>
        </eStructuralFeatures>
        <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NGi7pO1CEeONXpKqgZhDUQ" name="version" ordered="false" lowerBound="1" defaultValueLiteral="&quot;1&quot;">
          <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/4.0.0/Types#//String"/>
        </eStructuralFeatures>
        <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NGi7pu1CEeONXpKqgZhDUQ" name="defaultPrefix" ordered="false">
          <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/4.0.0/Types#//String"/>
        </eStructuralFeatures>
      </eClassifiers>
      <eClassifiers xmi:type="ecore:EEnum" xmi:id="_NGi7qO1CEeONXpKqgZhDUQ" name="DefaultPurposeCode">
        <eAnnotations xmi:id="_NGi7qe1CEeONXpKqgZhDUQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="NIEM_UML_Profile-NIEM_PIM_Profile-DefaultPurposeCode"/>
        <eLiterals xmi:id="_NGi7qu1CEeONXpKqgZhDUQ" name="subset"/>
        <eLiterals xmi:id="_NGi7q-1CEeONXpKqgZhDUQ" name="constraint" value="1"/>
        <eLiterals xmi:id="_NGi7rO1CEeONXpKqgZhDUQ" name="exchange" value="2"/>
        <eLiterals xmi:id="_NGi7re1CEeONXpKqgZhDUQ" name="extension" value="3"/>
        <eLiterals xmi:id="_NGi7ru1CEeONXpKqgZhDUQ" name="incremental" value="4"/>
        <eLiterals xmi:id="_NGi7r-1CEeONXpKqgZhDUQ" name="reference" value="5"/>
        <eLiterals xmi:id="_NGi7sO1CEeONXpKqgZhDUQ" name="replacement" value="6"/>
      </eClassifiers>
      <eClassifiers xmi:type="ecore:EClass" xmi:id="_NGi7se1CEeONXpKqgZhDUQ" name="ReferenceName">
        <eAnnotations xmi:id="_NGi7su1CEeONXpKqgZhDUQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="NIEM_UML_Profile-NIEM_PIM_Profile-ReferenceName"/>
        <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NGi7s-1CEeONXpKqgZhDUQ" name="base_Element" ordered="false" lowerBound="1">
          <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Element"/>
        </eStructuralFeatures>
        <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NGi7te1CEeONXpKqgZhDUQ" name="NIEMName" ordered="false" lowerBound="1">
          <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/4.0.0/Types#//String"/>
        </eStructuralFeatures>
      </eClassifiers>
      <eClassifiers xmi:type="ecore:EClass" xmi:id="_NGi7t-1CEeONXpKqgZhDUQ" name="RoleOf">
        <eAnnotations xmi:id="_NGi7uO1CEeONXpKqgZhDUQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="NIEM_UML_Profile-NIEM_PIM_Profile-RoleOf"/>
        <eAnnotations xmi:id="_NGi7ue1CEeONXpKqgZhDUQ" source="http://www.eclipse.org/emf/2002/GenModel">
          <details xmi:id="_NGi7uu1CEeONXpKqgZhDUQ" key="documentation" value="This constraint is enforced by the PIM/PSM transformation. The Transformation&#xA;              ensures that the &quot;RoleOf&quot; property term becomes part of the target PSM property name.&#xD;&#xA;This constraint is implemented by the PIM/PSM transformation. Identifying a&#xA;              &lt;Property> as a &lt;&lt;RoleOf>> corresponds to&#xA;              the NIEM naming convention used to identify the roleOf...reference and furthermore&#xA;              establishes the owning &lt;Classifier> as a NIEM Role."/>
        </eAnnotations>
        <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NGi7u-1CEeONXpKqgZhDUQ" name="base_Property" ordered="false" lowerBound="1">
          <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Property"/>
        </eStructuralFeatures>
      </eClassifiers>
      <eClassifiers xmi:type="ecore:EClass" xmi:id="_NGi7ve1CEeONXpKqgZhDUQ" name="RolePlayedBy">
        <eAnnotations xmi:id="_NGi7vu1CEeONXpKqgZhDUQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="NIEM_UML_Profile-NIEM_PIM_Profile-RolePlayedBy"/>
        <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NGi7v-1CEeONXpKqgZhDUQ" name="base_Generalization" ordered="false" lowerBound="1">
          <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Generalization"/>
        </eStructuralFeatures>
      </eClassifiers>
      <eClassifiers xmi:type="ecore:EClass" xmi:id="_NGi7we1CEeONXpKqgZhDUQ" name="Subsets" eSuperTypes="_NGi7yO1CEeONXpKqgZhDUQ">
        <eAnnotations xmi:id="_NGi7wu1CEeONXpKqgZhDUQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="NIEM_UML_Profile-NIEM_PIM_Profile-Subsets"/>
        <eAnnotations xmi:id="_NGi7w-1CEeONXpKqgZhDUQ" source="duplicates">
          <contents xmi:type="ecore:EReference" xmi:id="_NGi7xO1CEeONXpKqgZhDUQ" name="base_Realization" ordered="false" lowerBound="1">
            <eAnnotations xmi:id="_NGi7xe1CEeONXpKqgZhDUQ" source="redefines" references="_NGi7zO1CEeONXpKqgZhDUQ"/>
            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Realization"/>
          </contents>
        </eAnnotations>
      </eClassifiers>
      <eClassifiers xmi:type="ecore:EClass" xmi:id="_NGi7yO1CEeONXpKqgZhDUQ" name="NIEM_Common_Profile_References">
        <eAnnotations xmi:id="_NGi7ye1CEeONXpKqgZhDUQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
          <references xmi:type="uml:Stereotype" href="NIEM_UML_Profile.NIEM_Common_Profile.profile.uml#NIEM_UML_Profile-NIEM_Common_Profile-References"/>
        </eAnnotations>
        <eAnnotations xmi:id="_NGi7yu1CEeONXpKqgZhDUQ" source="http://www.eclipse.org/emf/2002/GenModel">
          <details xmi:id="_NGi7y-1CEeONXpKqgZhDUQ" key="documentation" value="( self.base_Realization.client->size()=1) and (&#xA;              self.base_Realization.supplier->size()=1) and&#xA;              self.base_Realization.client->forAll(client|client.oclIsKindOf(Classifier)) and&#xA;              self.base_Realization.supplier->forAll(supplier|supplier.oclIsKindOf(Classifier)&#xA;              and not(supplier.stereotypedBy('PropertyHolder')) ) ) implies ( (&#xA;              self.base_Realization.client.oclAsType(Classifier).attribute&#xA;              ->forAll(clientAttribute|&#xA;              self.base_Realization.supplier.oclAsType(Classifier).attribute&#xA;              ->forAll(supplierAttribute| (clientAttribute.name=supplierAttribute.name)&#xA;              implies ( (clientAttribute.lower>=supplierAttribute.lower) and (&#xA;              (supplierAttribute.upper=-1) or&#xA;              (clientAttribute.upper&lt;=supplierAttribute.upper) ) and (&#xA;              (clientAttribute.upper=-1) or (clientAttribute.lower&lt;=clientAttribute.upper) )&#xA;              ) ) ) ) and( self.base_Realization.supplier.oclAsType(Classifier).attribute&#xA;              ->select(a|a.lower>0) ->forAll(supplierAttribute|&#xA;              self.base_Realization.client.oclAsType(Classifier).attribute->exists(clientAttribute|clientAttribute.name=supplierName)&#xA;              ) ) )"/>
        </eAnnotations>
        <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NGi7zO1CEeONXpKqgZhDUQ" name="base_Realization" ordered="false" lowerBound="1">
          <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Realization"/>
        </eStructuralFeatures>
      </eClassifiers>
    </contents>
  </eAnnotations>
  <ownedComment xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-ownedComment" annotatedElement="NIEM_UML_Profile-NIEM_PIM_Profile" body="The NIEM PIM Profile comprises stereotypes that are used in NIEM PIMs but not NIEM&#xA;          PSMs. Further, the NIEM PIM Profile imports the NIEM Common Profile and, therefore,&#xA;          includes all the stereotypes and metaclasses covered by that profile. In addition, the UML&#xA;          metamodel subset covered by the NIEM PIM Profile also includes the metaclasses Association&#xA;          and AssociationClass, even though they are not specifically extended by any stereotypes in&#xA;          the profile."/>
  <packageImport xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-packageImport-1">
    <importedPackage xmi:type="uml:Profile" href="NIEM_UML_Profile.NIEM_Common_Profile.profile.uml#NIEM_UML_Profile-NIEM_Common_Profile"/>
  </packageImport>
  <packageImport xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-packageImport-2">
    <importedPackage xmi:type="uml:Model" href="pathmap://UML_METAMODELS/UML.metamodel.uml#_0"/>
  </packageImport>
  <packageImport xmi:id="_0primitiveTypesNIEM_PIM_Profile">
    <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
  </packageImport>
  <packageImport xmi:id="_0javaPrimitiveTypesNIEM_PIM_Profile">
    <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#_0"/>
  </packageImport>
  <packagedElement xmi:type="uml:Stereotype" xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-Augments" name="Augments">
    <ownedComment xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-Augments-ownedComment" annotatedElement="NIEM_UML_Profile-NIEM_PIM_Profile-Augments" body="An Augments Generalization specifies that the special Class is an augmentation type&#xA;            that is restricted to apply to instances of the general Class. "/>
    <ownedAttribute xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-Augments-base_Generalization" name="base_Generalization" visibility="private" association="NIEM_UML_Profile-NIEM_PIM_Profile-packagedElement-5">
      <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Generalization"/>
      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_17_0_2_1_2aa0151_1363979878307_496829_2141" name="" value="1"/>
      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_17_0_2_1_2aa0151_1363979878308_723894_2142" name="" value="1"/>
    </ownedAttribute>
  </packagedElement>
  <packagedElement xmi:type="uml:Extension" xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-packagedElement-2" name="" memberEnd="NIEM_UML_Profile-NIEM_PIM_Profile-packagedElement-2-ownedEnd NIEM_UML_Profile-NIEM_PIM_Profile-RoleOf-base_Property" navigableOwnedEnd="NIEM_UML_Profile-NIEM_PIM_Profile-packagedElement-2-ownedEnd">
    <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-packagedElement-2-ownedEnd" name="extension_RoleOf" visibility="private" type="NIEM_UML_Profile-NIEM_PIM_Profile-RoleOf" aggregation="composite" association="NIEM_UML_Profile-NIEM_PIM_Profile-packagedElement-2">
      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-packagedElement-2-ownedEnd-lowerValue" name=""/>
      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_17_0_2_1_2aa0151_1363979878346_570186_2283" name="" value="1"/>
    </ownedEnd>
  </packagedElement>
  <packagedElement xmi:type="uml:Stereotype" xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-InformationModel" name="InformationModel">
    <ownedComment xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-InformationModel-ownedComment" annotatedElement="NIEM_UML_Profile-NIEM_PIM_Profile-InformationModel" body="The contents of an InformationModel Package provide a platform-independent&#xA;            perspective on the structure of information to be exchanged in NIEM messages. Such a&#xA;            model is always taken to represent a NIEM namespace, but it may also be given a default&#xA;            purpose as modeled, independent of the implementation of that namespace. This allows a&#xA;            modeler to identify the intended purposes (e.g., reference, subset, exchange, etc.) of&#xA;            various information models within a set, without having to create a complete MPD model&#xA;            for the set."/>
    <generalization xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-InformationModel-generalization">
      <general xmi:type="uml:Stereotype" href="NIEM_UML_Profile.NIEM_Common_Profile.profile.uml#NIEM_UML_Profile-NIEM_Common_Profile-Namespace"/>
    </generalization>
    <ownedAttribute xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-InformationModel-base_Package" name="base_Package" visibility="private" association="NIEM_UML_Profile-NIEM_PIM_Profile-packagedElement-6">
      <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_17_0_2_1_2aa0151_1363979878312_529456_2155" name="" value="1"/>
      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_17_0_2_1_2aa0151_1363979878312_660221_2156" name="" value="1"/>
    </ownedAttribute>
    <ownedAttribute xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-InformationModel-defaultPurpose" name="defaultPurpose" visibility="public" type="NIEM_UML_Profile-NIEM_PIM_Profile-DefaultPurposeCode">
      <ownedComment xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-InformationModel-defaultPurpose-ownedComment" annotatedElement="NIEM_UML_Profile-NIEM_PIM_Profile-InformationModel-defaultPurpose" body="The default purpose for which an information model is intended. If an&#xA;              InformationModel Package is modeled as being included as an artifact in an MPD, then,&#xA;              unless otherwise specified, the purpose of the artifact is by default taken to be the&#xA;              schema purpose code corresponding to the value of the defaultPurpose attribute."/>
      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-InformationModel-defaultPurpose-lowerValue" name=""/>
      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_17_0_2_1_2aa0151_1363979878313_310112_2158" name="" value="1"/>
      <defaultValue xmi:type="uml:InstanceValue" xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-InformationModel-defaultPurpose-defaultValue" name="" instance="NIEM_UML_Profile-NIEM_PIM_Profile-DefaultPurposeCode-extension"/>
    </ownedAttribute>
  </packagedElement>
  <packagedElement xmi:type="uml:Stereotype" xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-ReferenceName" name="ReferenceName">
    <ownedComment xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-ReferenceName-ownedComment" annotatedElement="NIEM_UML_Profile-NIEM_PIM_Profile-ReferenceName" body="The ReferenceName stereotype is used on an Element that has a name that does not&#xA;            conform to the naming conventions required by the NIEM NDR or is otherwise not the&#xA;            desired NIEM name. The NIEMName attribute must provide a name for the Element that&#xA;            conforms to the relevant NDR naming rules for the specific kind of Element to which the&#xA;            stereotype is applied."/>
    <ownedAttribute xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-ReferenceName-base_Element" name="base_Element" visibility="private" association="NIEM_UML_Profile-NIEM_PIM_Profile-packagedElement-8">
      <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Element"/>
      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_17_0_2_1_2aa0151_1363979878345_620873_2281" name="" value="1"/>
      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_17_0_2_1_2aa0151_1363979878346_859391_2282" name="" value="1"/>
    </ownedAttribute>
    <ownedAttribute xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-ReferenceName-NIEMName" name="NIEMName" visibility="public">
      <ownedComment xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-ReferenceName-NIEMName-ownedComment" annotatedElement="NIEM_UML_Profile-NIEM_PIM_Profile-ReferenceName-NIEMName" body="A NIEM NDR-conformant name to be applied to an Element. The NIEMName will override&#xA;              any name generated from the UML name.."/>
      <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_17_0_2_1_2aa0151_1363979878329_997843_2213" name="" value="1"/>
      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_17_0_2_1_2aa0151_1363979878329_31879_2214" name="" value="1"/>
    </ownedAttribute>
  </packagedElement>
  <packagedElement xmi:type="uml:Extension" xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-packagedElement-5" name="" memberEnd="NIEM_UML_Profile-NIEM_PIM_Profile-packagedElement-5-ownedEnd NIEM_UML_Profile-NIEM_PIM_Profile-Augments-base_Generalization" navigableOwnedEnd="NIEM_UML_Profile-NIEM_PIM_Profile-packagedElement-5-ownedEnd">
    <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-packagedElement-5-ownedEnd" name="extension_Augments" visibility="private" type="NIEM_UML_Profile-NIEM_PIM_Profile-Augments" aggregation="composite" association="NIEM_UML_Profile-NIEM_PIM_Profile-packagedElement-5">
      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-packagedElement-5-ownedEnd-lowerValue" name=""/>
      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_17_0_2_1_2aa0151_1363979878351_643356_2303" name="" value="1"/>
    </ownedEnd>
  </packagedElement>
  <packagedElement xmi:type="uml:Extension" xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-packagedElement-6" name="" memberEnd="NIEM_UML_Profile-NIEM_PIM_Profile-packagedElement-6-ownedEnd NIEM_UML_Profile-NIEM_PIM_Profile-InformationModel-base_Package" navigableOwnedEnd="NIEM_UML_Profile-NIEM_PIM_Profile-packagedElement-6-ownedEnd">
    <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-packagedElement-6-ownedEnd" name="extension_InformationModel" visibility="private" type="NIEM_UML_Profile-NIEM_PIM_Profile-InformationModel" aggregation="composite" association="NIEM_UML_Profile-NIEM_PIM_Profile-packagedElement-6">
      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-packagedElement-6-ownedEnd-lowerValue" name=""/>
      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_17_0_2_1_2aa0151_1363979878350_559769_2300" name="" value="1"/>
    </ownedEnd>
  </packagedElement>
  <packagedElement xmi:type="uml:Enumeration" xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-DefaultPurposeCode" name="DefaultPurposeCode">
    <ownedComment xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-DefaultPurposeCode-ownedComment" annotatedElement="NIEM_UML_Profile-NIEM_PIM_Profile-DefaultPurposeCode" body="&lt;html> &lt;head> &lt;style> p {padding:0px;&#xA;            margin:0px;} &lt;/style> &lt;/head> &lt;body> The&#xA;            possible purposes for an information model. This enumeration provides the allowed values&#xA;            for the defaultPurpose attribute of the InformationModel stereotype. The values&#xA;            correspond to the schema purpose codes for an MPD artifact. &lt;/body>&#xA;            &lt;/html> MPD artifact. &lt;/body> &lt;/html>&#xA;            ml> "/>
    <ownedLiteral xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-DefaultPurposeCode-subset" name="subset"/>
    <ownedLiteral xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-DefaultPurposeCode-constraint" name="constraint"/>
    <ownedLiteral xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-DefaultPurposeCode-exchange" name="exchange"/>
    <ownedLiteral xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-DefaultPurposeCode-extension" name="extension"/>
    <ownedLiteral xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-DefaultPurposeCode-incremental" name="incremental"/>
    <ownedLiteral xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-DefaultPurposeCode-reference" name="reference"/>
    <ownedLiteral xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-DefaultPurposeCode-replacement" name="replacement"/>
  </packagedElement>
  <packagedElement xmi:type="uml:Extension" xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-packagedElement-8" name="" memberEnd="NIEM_UML_Profile-NIEM_PIM_Profile-packagedElement-8-ownedEnd NIEM_UML_Profile-NIEM_PIM_Profile-ReferenceName-base_Element" navigableOwnedEnd="NIEM_UML_Profile-NIEM_PIM_Profile-packagedElement-8-ownedEnd">
    <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-packagedElement-8-ownedEnd" name="extension_" visibility="private" type="NIEM_UML_Profile-NIEM_PIM_Profile-ReferenceName" aggregation="composite" association="NIEM_UML_Profile-NIEM_PIM_Profile-packagedElement-8">
      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-packagedElement-8-ownedEnd-lowerValue" name=""/>
      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_17_0_2_1_2aa0151_1363979878315_474349_2164" name="" value="1"/>
    </ownedEnd>
  </packagedElement>
  <packagedElement xmi:type="uml:Stereotype" xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-RoleOf" name="RoleOf">
    <ownedComment xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-RoleOf-ownedComment" annotatedElement="NIEM_UML_Profile-NIEM_PIM_Profile-RoleOf" body="&lt;html> &lt;head> &lt;style> p {padding:0px;&#xA;            margin:0px;} &lt;/style> &lt;/head> &lt;body>&#xA;            &lt;p> The RoleOf stereotype is applied to a Property of a Class representing&#xA;            a NIEM role type, whose type identifies the base type of that role type. A RoleOf&#xA;            Property must be a reference (i.e., have aggregation=none). A NIEM role type is a type&#xA;            that represents a particular function, purpose, usage, or role of an object.&#xA;            &lt;/p> &lt;/body> &lt;/html> usage, or role of an&#xA;            object. &lt;/p> &lt;/body> &lt;/html>&#xA;            &lt;/html> "/>
    <ownedRule xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-RoleOf-NDR__Rule_9-35_" name="NDR [Rule 9-35]" constrainedElement="NIEM_UML_Profile-NIEM_PIM_Profile-RoleOf">
      <ownedComment xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-RoleOf-NDR__Rule_9-35_-ownedComment" annotatedElement="NIEM_UML_Profile-NIEM_PIM_Profile-RoleOf-NDR__Rule_9-35_" body="&lt;html> &lt;head> &lt;style> p {padding:0px;&#xA;              margin:0px;} &lt;/style> &lt;/head> &lt;body>&#xA;              &lt;p> &lt;b>[Rule 9-35] (REF, SUB, EXT)&lt;/b>&#xA;              Within the schema, the name of a role SHALL use the property term RoleOf.&#xA;              &lt;/p> &lt;p> &lt;b>Rationale&lt;/b>&#xA;              Using the property term RoleOf immediately identifies an element as representing a&#xA;              role. &lt;/p> &lt;/body> &lt;/html> ement as&#xA;              representing a role. &lt;/p> &lt;/body> &lt;/html>&#xA;              &lt;/html> "/>
      <specification xmi:type="uml:OpaqueExpression" xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-RoleOf-NDR__Rule_9-35_-specification" name="">
        <language>English</language>
        <body>This constraint is enforced by the PIM/PSM transformation. The Transformation
              ensures that the &quot;RoleOf&quot; property term becomes part of the target PSM property name.</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-RoleOf-NDR__Rule_7-40_" name="NDR [Rule 7-40]" constrainedElement="NIEM_UML_Profile-NIEM_PIM_Profile-RoleOf">
      <ownedComment xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-RoleOf-NDR__Rule_7-40_-ownedComment" annotatedElement="NIEM_UML_Profile-NIEM_PIM_Profile-RoleOf-NDR__Rule_7-40_" body="&lt;html> &lt;head> &lt;style> p {padding:0px;&#xA;              margin:0px;} &lt;/style> &lt;/head> &lt;body>&#xA;              &lt;p> &lt;b>[Rule 7-40] (REF, SUB, EXT)&lt;/b>&#xA;              Within the schema, any element with a name beginning with the string RoleOf SHALL&#xA;              represent a base type, of which the containing type represents a role.&#xA;              &lt;/p> &lt;p> &lt;b>Rationale&lt;/b> A&#xA;              RoleOf element references its corresponding base element. The RoleOf label on the&#xA;              reference element ensures that a role object is distinguishable from other objects and&#xA;              its link to the associated base is also distinguishable from the additional properties&#xA;              that are characteristic of this role or that add information. &lt;/p>&#xA;              &lt;/body> &lt;/html> are characteristic of this role or that&#xA;              add information. &lt;/p> &lt;/body> &lt;/html>&#xA;              &lt;/html> "/>
      <specification xmi:type="uml:OpaqueExpression" xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-RoleOf-NDR__Rule_7-40_-specification" name="">
        <language>English</language>
        <body>This constraint is implemented by the PIM/PSM transformation. Identifying a
              &lt;Property> as a &lt;&lt;RoleOf>> corresponds to
              the NIEM naming convention used to identify the roleOf...reference and furthermore
              establishes the owning &lt;Classifier> as a NIEM Role.</body>
      </specification>
    </ownedRule>
    <ownedAttribute xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-RoleOf-base_Property" name="base_Property" visibility="private" association="NIEM_UML_Profile-NIEM_PIM_Profile-packagedElement-2">
      <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_17_0_2_1_2aa0151_1363979878309_438234_2145" name="" value="1"/>
      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_17_0_2_1_2aa0151_1363979878310_92602_2146" name="" value="1"/>
    </ownedAttribute>
  </packagedElement>
  <packagedElement xmi:type="uml:Extension" xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-packagedElement-10" name="" memberEnd="NIEM_UML_Profile-NIEM_PIM_Profile-packagedElement-10-ownedEnd NIEM_UML_Profile-NIEM_PIM_Profile-RolePlayedBy-base_Generalization" navigableOwnedEnd="NIEM_UML_Profile-NIEM_PIM_Profile-packagedElement-10-ownedEnd">
    <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-packagedElement-10-ownedEnd" name="extension_" visibility="private" type="NIEM_UML_Profile-NIEM_PIM_Profile-RolePlayedBy" aggregation="composite" association="NIEM_UML_Profile-NIEM_PIM_Profile-packagedElement-10">
      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-packagedElement-10-ownedEnd-lowerValue" name=""/>
      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_17_0_2_1_2aa0151_1363979878330_400298_2219" name="" value="1"/>
    </ownedEnd>
  </packagedElement>
  <packagedElement xmi:type="uml:Stereotype" xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-RolePlayedBy" name="RolePlayedBy">
    <ownedComment xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-RolePlayedBy-ownedComment" annotatedElement="NIEM_UML_Profile-NIEM_PIM_Profile-RolePlayedBy" body="RolePlayedBy Generalization specifies that the special class is to be considered the&#xA;            type of a role that is played by instances of the general class. In the PSM this will&#xA;            map to a property with the &quot;RoleOf&quot; prefix.."/>
    <ownedAttribute xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-RolePlayedBy-base_Generalization" name="base_Generalization" visibility="private" association="NIEM_UML_Profile-NIEM_PIM_Profile-packagedElement-10">
      <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Generalization"/>
      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_17_0_2_1_2aa0151_1363979878336_731725_2244" name="" value="1"/>
      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_17_0_2_1_2aa0151_1363979878336_485058_2245" name="" value="1"/>
    </ownedAttribute>
  </packagedElement>
  <packagedElement xmi:type="uml:Stereotype" xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-Subsets" name="Subsets">
    <ownedComment xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-Subsets-ownedComment" annotatedElement="NIEM_UML_Profile-NIEM_PIM_Profile-Subsets" body="A Realization signifying a NIEM subsetting relationship between a client derived (subset) element and a supplier base (reference) element.  The &lt;&lt;Subsets>> Realization must be between the same meta-types: either Properties, Classifiers, or &lt;&lt;InformationModel>> packages.  The &lt;&lt;Subsets>> Realization must be between elements owned by different &lt;&lt;InformationModel>> packages.  The targetNamespace of the distinct &lt;&lt;InformationModel>> packages must be identical.  The defaultPurpose of client and supplier may be one of the following combinations:  client is subset, supplier is reference; client is reference, supplier is reference; client is extension, supplier is extension; client is constraint, supplier is exchange, subset, extension, or reference.&#xA;"/>
    <generalization xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-Subsets-generalization">
      <general xmi:type="uml:Stereotype" href="NIEM_UML_Profile.NIEM_Common_Profile.profile.uml#NIEM_UML_Profile-NIEM_Common_Profile-References"/>
    </generalization>
    <ownedAttribute xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-Subsets-base_Realization" name="base_Realization" visibility="private" association="NIEM_UML_Profile-NIEM_PIM_Profile-packagedElement-11">
      <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Realization"/>
      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_17_0_2_1_2aa0151_1363979878347_809994_2287" name="" value="1"/>
      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_17_0_2_1_2aa0151_1363979878347_178825_2288" name="" value="1"/>
    </ownedAttribute>
  </packagedElement>
  <packagedElement xmi:type="uml:Extension" xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-packagedElement-11" name="" memberEnd="NIEM_UML_Profile-NIEM_PIM_Profile-Subsets-base_Realization NIEM_UML_Profile-NIEM_PIM_Profile-packagedElement-11-extension_" navigableOwnedEnd="NIEM_UML_Profile-NIEM_PIM_Profile-packagedElement-11-extension_">
    <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-packagedElement-11-extension_" name="extension_" visibility="private" type="NIEM_UML_Profile-NIEM_PIM_Profile-Subsets" aggregation="composite" association="NIEM_UML_Profile-NIEM_PIM_Profile-packagedElement-11">
      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="NIEM_UML_Profile-NIEM_PIM_Profile-packagedElement-11-extension_-lowerValue" name=""/>
      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_17_0_2_1_2aa0151_1363979878325_796725_2197" name="" value="1"/>
    </ownedEnd>
  </packagedElement>
</uml:Profile>
