[204200] Taking advantage of content type identifier, file extension support introduced in EMF.
diff --git a/plugins/org.eclipse.uml2.uml/model/UML.genmodel b/plugins/org.eclipse.uml2.uml/model/UML.genmodel
index 585a497..10c2dbe 100644
--- a/plugins/org.eclipse.uml2.uml/model/UML.genmodel
+++ b/plugins/org.eclipse.uml2.uml/model/UML.genmodel
@@ -33,8 +33,8 @@
       disposableProviderFactory="true" loadInitialization="true" classPackageSuffix="internal.impl"
       providerPackageSuffix="edit.providers" presentationPackageSuffix="editor.presentation"
       generateExampleClass="false" multipleEditorPages="false" extensibleProviderFactory="true"
-      childCreationExtenders="true" ecorePackage="UML.ecore#/" resourceInterfaces="true"
-      operationsPackage="org.eclipse.uml2.uml.internal.operations">
+      childCreationExtenders="true" contentTypeIdentifier="org.eclipse.uml2.uml" fileExtensions="uml"
+      ecorePackage="UML.ecore#/" resourceInterfaces="true" operationsPackage="org.eclipse.uml2.uml.internal.operations">
     <genEnums xsi:type="genmodel:GenEnum" ecoreEnum="UML.ecore#//VisibilityKind">
       <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="UML.ecore#//VisibilityKind/public"/>
       <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="UML.ecore#//VisibilityKind/private"/>
diff --git a/plugins/org.eclipse.uml2.uml/plugin.properties b/plugins/org.eclipse.uml2.uml/plugin.properties
index 251ead9..d09b5c7 100644
--- a/plugins/org.eclipse.uml2.uml/plugin.properties
+++ b/plugins/org.eclipse.uml2.uml/plugin.properties
@@ -6,9 +6,9 @@
 #
 # Contributors:
 #   IBM - initial API and implementation
-#   Kenn Hussey (Embarcadero Technologies) - 156879, 215488, 213218
+#   Kenn Hussey (Embarcadero Technologies) - 156879, 215488, 213218, 204200
 #
-# $Id: plugin.properties,v 1.19 2008/02/27 14:54:04 khussey Exp $
+# $Id: plugin.properties,v 1.20 2008/04/21 13:28:47 khussey Exp $
 
 # ====================================================================
 # To code developer:
@@ -212,13 +212,17 @@
 # The above properties have been shipped for translation.
 # ====================================================================
 
-_UI_Eclipse_UML_1_0_0_content_type = Eclipse UML 1.0.0 File
-_UI_Eclipse_UML_2_0_0_content_type = Eclipse UML 2.0.0 File
-_UI_Eclipse_UML_2_1_0_content_type = Eclipse UML 2.1.0 File
-_UI_OMG_UML_2_1_content_type = OMG UML 2.1 File
-_UI_OMG_UML_2_1_1_content_type = OMG UML 2.1.1 File
-_UI_OMG_UML_2_1_2_content_type = OMG UML 2.1.2 File
-_UI_OMG_CMOF_2_0_content_type = OMG CMOF 2.0 File
+_UI_UML_content_type = Eclipse Unified Modeling Language (UML) File
+_UI_UML_2_0_0_content_type = Eclipse Unified Modeling Language (UML) 2.0.0 File
+_UI_UML_2_1_0_content_type = Eclipse Unified Modeling Language (UML) 2.1.0 File
+
+_UI_UML2_content_type = Eclipse Unified Modeling Language (UML) 1.x File
+
+_UI_OMG_UML_content_type = OMG Unified Modeling Language (UML) File
+_UI_OMG_UML_2_1_content_type = OMG Unified Modeling Language (UML) 2.1 File
+_UI_OMG_UML_2_1_1_content_type = OMG Unified Modeling Language (UML) 2.1.1 File
+
+_UI_OMG_CMOF_content_type = OMG Complete Meta Object Facility (CMOF) 2.0 File
 
 _UI_GeneratedPackageRegistry_extensionpoint = Generated UML Package Registry
 _UI_DynamicPackageRegistry_extensionpoint = Dynamic UML Package Registry
diff --git a/plugins/org.eclipse.uml2.uml/plugin.xml b/plugins/org.eclipse.uml2.uml/plugin.xml
index e194e7f..0d6448f 100644
--- a/plugins/org.eclipse.uml2.uml/plugin.xml
+++ b/plugins/org.eclipse.uml2.uml/plugin.xml
@@ -12,7 +12,7 @@
    IBM - initial API and implementation
    Kenn Hussey (Embarcadero Technologies) - 156879, 215488, 226397, 204200
 
- $Id: plugin.xml,v 1.10 2008/04/15 17:51:56 khussey Exp $
+ $Id: plugin.xml,v 1.11 2008/04/21 13:28:48 khussey Exp $
 -->
 
 <plugin>
@@ -46,11 +46,8 @@
   <extension
         point="org.eclipse.emf.ecore.content_parser">
      <parser
-           class="org.eclipse.uml2.uml.internal.resource.UMLResourceFactoryImpl"
-           contentTypeIdentifier="org.eclipse.uml2.uml_2_0_0" />
-     <parser
-           class="org.eclipse.uml2.uml.internal.resource.UMLResourceFactoryImpl"
-           contentTypeIdentifier="org.eclipse.uml2.uml_2_1_0" />
+           contentTypeIdentifier="org.eclipse.uml2.uml"
+           class="org.eclipse.uml2.uml.internal.resource.UMLResourceFactoryImpl" />
   </extension>
 
   <extension
@@ -58,8 +55,8 @@
      <content-type
            base-type="org.eclipse.emf.ecore.xmi"
            file-extensions="uml2"
-           id="org.eclipse.uml2.uml_1_0_0"
-           name="%_UI_Eclipse_UML_1_0_0_content_type"
+           id="org.eclipse.uml2"
+           name="%_UI_UML2_content_type"
            priority="normal">
         <describer
               class="org.eclipse.emf.ecore.xmi.impl.RootXMLContentHandlerImpl$Describer">
@@ -74,8 +71,24 @@
      <content-type
            base-type="org.eclipse.emf.ecore.xmi"
            file-extensions="uml"
+           id="org.eclipse.uml2.uml"
+           name="%_UI_UML_content_type"
+           priority="normal">
+        <describer
+              class="org.eclipse.emf.ecore.xmi.impl.RootXMLContentHandlerImpl$Describer">
+           <parameter
+                 name="namespacePattern"
+                 value="http://www\.eclipse\.org/uml2/(2\.0\.0|2\.1\.0)/UML" />
+           <parameter
+                 name="kind"
+                 value="xmi" />
+        </describer>
+     </content-type>
+     <content-type
+           base-type="org.eclipse.uml2.uml"
+           file-extensions="uml"
            id="org.eclipse.uml2.uml_2_0_0"
-           name="%_UI_Eclipse_UML_2_0_0_content_type"
+           name="%_UI_UML_2_0_0_content_type"
            priority="normal">
         <describer
               class="org.eclipse.emf.ecore.xmi.impl.RootXMLContentHandlerImpl$Describer">
@@ -88,10 +101,10 @@
         </describer>
      </content-type>
      <content-type
-           base-type="org.eclipse.emf.ecore.xmi"
+           base-type="org.eclipse.uml2.uml"
            file-extensions="uml"
            id="org.eclipse.uml2.uml_2_1_0"
-           name="%_UI_Eclipse_UML_2_1_0_content_type"
+           name="%_UI_UML_2_1_0_content_type"
            priority="normal">
         <describer
               class="org.eclipse.emf.ecore.xmi.impl.RootXMLContentHandlerImpl$Describer">
@@ -106,6 +119,22 @@
      <content-type
            base-type="org.eclipse.emf.ecore.xmi"
            file-extensions="xmi"
+           id="org.omg.uml"
+           name="%_UI_OMG_UML_content_type"
+           priority="normal">
+        <describer
+              class="org.eclipse.emf.ecore.xmi.impl.RootXMLContentHandlerImpl$Describer">
+           <parameter
+                 name="namespacePattern"
+                 value="http://schema\.omg\.org/spec/UML/(2\.1|2\.1\.1)" />
+           <parameter
+                 name="kind"
+                 value="xmi" />
+        </describer>
+     </content-type>
+     <content-type
+           base-type="org.omg.uml"
+           file-extensions="xmi"
            id="org.omg.uml_2_1"
            name="%_UI_OMG_UML_2_1_content_type"
            priority="normal">
@@ -120,7 +149,7 @@
         </describer>
      </content-type>
      <content-type
-           base-type="org.eclipse.emf.ecore.xmi"
+           base-type="org.omg.uml"
            file-extensions="xmi"
            id="org.omg.uml_2_1_1"
            name="%_UI_OMG_UML_2_1_1_content_type"
@@ -137,25 +166,9 @@
      </content-type>
      <content-type
            base-type="org.eclipse.emf.ecore.xmi"
-           file-extensions="xmi"
-           id="org.omg.uml_2_1_2"
-           name="%_UI_OMG_UML_2_1_2_content_type"
-           priority="normal">
-        <describer
-              class="org.eclipse.emf.ecore.xmi.impl.RootXMLContentHandlerImpl$Describer">
-           <parameter
-                 name="namespace"
-                 value="http://schema.omg.org/spec/UML/2.1.1" />
-           <parameter
-                 name="kind"
-                 value="xmi" />
-        </describer>
-     </content-type>
-     <content-type
-           base-type="org.eclipse.emf.ecore.xmi"
            file-extensions="cmof,xmi"
-           id="org.omg.mof.cmof_2_0"
-           name="%_UI_OMG_CMOF_2_0_content_type"
+           id="org.omg.mof.cmof"
+           name="%_UI_OMG_CMOF_content_type"
            priority="normal">
         <describer
               class="org.eclipse.emf.ecore.xmi.impl.RootXMLContentHandlerImpl$Describer">
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/UMLPackage.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/UMLPackage.java
index 6f334c4..a4c51cd 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/UMLPackage.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/UMLPackage.java
@@ -7,9 +7,9 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (Embarcadero Technologies) - 208353, 205188
+ *   Kenn Hussey (Embarcadero Technologies) - 208353, 205188, 204200
  *
- * $Id: UMLPackage.java,v 1.29 2008/01/09 18:56:02 khussey Exp $
+ * $Id: UMLPackage.java,v 1.30 2008/04/21 13:28:48 khussey Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -64,6 +64,14 @@
 	String eNS_PREFIX = "uml"; //$NON-NLS-1$
 
 	/**
+	 * The package content type ID.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eCONTENT_TYPE = "org.eclipse.uml2.uml"; //$NON-NLS-1$
+
+	/**
 	 * The singleton instance of the package.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/resource/CMOF2UMLResource.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/resource/CMOF2UMLResource.java
index b820db9..952a199 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/resource/CMOF2UMLResource.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/resource/CMOF2UMLResource.java
@@ -9,7 +9,7 @@
  *   Kenn Hussey (IBM Corporation) - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 156879, 218388
  *
- * $Id: CMOF2UMLResource.java,v 1.3 2008/02/26 05:08:04 khussey Exp $
+ * $Id: CMOF2UMLResource.java,v 1.4 2008/04/21 13:28:47 khussey Exp $
  */
 package org.eclipse.uml2.uml.resource;
 
@@ -34,7 +34,7 @@
 
 	String FILE_EXTENSION = CMOF_METAMODEL_NS_PREFIX;
 
-	String CMOF_CONTENT_TYPE_IDENTIFIER = "org.omg.mof.cmof_2_0"; //$NON-NLS-1$
+	String CMOF_CONTENT_TYPE_IDENTIFIER = "org.omg.mof.cmof"; //$NON-NLS-1$
 
 	String UML_PRIMITIVE_TYPES_LIBRARY_2_0_URI = "http://schema.omg.org/spec/UML/2.0/uml.xml"; //$NON-NLS-1$
 
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/resource/UML22UMLResource.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/resource/UML22UMLResource.java
index 1483db1..f3de644 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/resource/UML22UMLResource.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/resource/UML22UMLResource.java
@@ -7,9 +7,9 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (Embarcadero Technologies) - 156879
+ *   Kenn Hussey (Embarcadero Technologies) - 156879, 204200
  * 
- * $Id: UML22UMLResource.java,v 1.5 2008/02/25 15:48:47 khussey Exp $
+ * $Id: UML22UMLResource.java,v 1.6 2008/04/21 13:28:47 khussey Exp $
  */
 package org.eclipse.uml2.uml.resource;
 
@@ -53,6 +53,6 @@
 
 	String UML2_PROFILE_URI = UMLResource.PROFILES_PATHMAP + "UML2." + PROFILE_FILE_EXTENSION; //$NON-NLS-1$
 
-	String UML2_CONTENT_TYPE_IDENTIFIER = "org.eclipse.uml2.uml_1_0_0"; //$NON-NLS-1$
+	String UML2_CONTENT_TYPE_IDENTIFIER = "org.eclipse.uml2"; //$NON-NLS-1$
 
 }
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/resource/UMLResource.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/resource/UMLResource.java
index 17cef67..5fe94e8 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/resource/UMLResource.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/resource/UMLResource.java
@@ -7,9 +7,9 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (Embarcadero Technologies) - 156879
+ *   Kenn Hussey (Embarcadero Technologies) - 156879, 204200
  *
- * $Id: UMLResource.java,v 1.8 2008/02/25 15:48:47 khussey Exp $
+ * $Id: UMLResource.java,v 1.9 2008/04/21 13:28:47 khussey Exp $
  */
 package org.eclipse.uml2.uml.resource;
 
@@ -85,7 +85,7 @@
 
 	String PROFILES_PATHMAP = "pathmap://UML_PROFILES/"; //$NON-NLS-1$
 
-	String ECORE_PROFILE_NS_URI = "http://www.eclipse.org/uml2/schemas/Ecore/4"; //$NON-NLS-1$
+	String ECORE_PROFILE_NS_URI = "http://www.eclipse.org/uml2/schemas/Ecore/5"; //$NON-NLS-1$
 
 	String ECORE_PROFILE_URI = PROFILES_PATHMAP + "Ecore." + PROFILE_FILE_EXTENSION; //$NON-NLS-1$
 
@@ -93,8 +93,8 @@
 
 	String STANDARD_PROFILE_URI = PROFILES_PATHMAP + "Standard." + PROFILE_FILE_EXTENSION; //$NON-NLS-1$
 
-	String UML_CONTENT_TYPE_IDENTIFIER = "org.eclipse.uml2.uml_2_1_0"; //$NON-NLS-1$
-
 	String UML_2_0_0_CONTENT_TYPE_IDENTIFIER = "org.eclipse.uml2.uml_2_0_0"; //$NON-NLS-1$
 
+	String UML_CONTENT_TYPE_IDENTIFIER = "org.eclipse.uml2.uml_2_1_0"; //$NON-NLS-1$
+
 } // UMLResource
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/resource/XMI2UMLResource.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/resource/XMI2UMLResource.java
index c199033..49b8b93 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/resource/XMI2UMLResource.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/resource/XMI2UMLResource.java
@@ -9,7 +9,7 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204202, 156879, 226397
  * 
- * $Id: XMI2UMLResource.java,v 1.6 2008/04/10 00:51:26 khussey Exp $
+ * $Id: XMI2UMLResource.java,v 1.7 2008/04/21 13:28:47 khussey Exp $
  */
 package org.eclipse.uml2.uml.resource;
 
@@ -62,7 +62,7 @@
 
 	String UML_2_1_1_CONTENT_TYPE_IDENTIFIER = "org.omg.uml_2_1_1"; //$NON-NLS-1$
 
-	String UML_CONTENT_TYPE_IDENTIFIER = "org.omg.uml_2_1_2"; //$NON-NLS-1$
+	String UML_CONTENT_TYPE_IDENTIFIER = UML_2_1_1_CONTENT_TYPE_IDENTIFIER; //$NON-NLS-1$
 
 	String XMI_NS_URI = XMI_NAMESPACE_PREFIX + "2.1"; //$NON-NLS-1$