<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>

<!--
 Copyright (c) 2005, 2008 IBM Corporation, Embarcadero Technologies, and others.
 All rights reserved.   This program and the accompanying materials
 are made available under the terms of the Eclipse Public License v1.0
 which accompanies this distribution, and is available at
 http://www.eclipse.org/legal/epl-v10.html

 Contributors:
   IBM - initial API and implementation
   Kenn Hussey (Embarcadero Technologies) - 156879, 215488, 226397, 204200

 $Id: plugin.xml,v 1.13 2008/11/27 16:35:54 jbruck Exp $
-->

<plugin>

  <extension point="org.eclipse.emf.ecore.generated_package">
    <package 
       uri = "http://www.eclipse.org/uml2/2.0.0/UML" 
       class = "org.eclipse.uml2.uml.UMLPackage" /> 
  </extension>

  <extension point="org.eclipse.emf.ecore.generated_package">
    <package 
       uri = "http://www.eclipse.org/uml2/2.1.0/UML" 
       class = "org.eclipse.uml2.uml.UMLPackage" /> 
  </extension>
  
   <extension point="org.eclipse.emf.ecore.generated_package">
    <package 
       uri = "http://www.eclipse.org/uml2/3.0.0/UML" 
       class = "org.eclipse.uml2.uml.UMLPackage"
       genModel = "model/UML.genmodel" /> 
  </extension>
  
  <extension point="org.eclipse.emf.ecore.extension_parser">
    <parser 
       type="uml" 
       class="org.eclipse.uml2.uml.internal.resource.UMLResourceFactoryImpl" />
  </extension>

  <extension point="org.eclipse.team.core.fileTypes">
    <fileTypes extension="uml" type="text" />
  </extension>

  <extension-point id="generated_package" name="%_UI_GeneratedPackageRegistry_extensionpoint" schema="schema/generated_package.exsd" />
  <extension-point id="dynamic_package" name="%_UI_DynamicPackageRegistry_extensionpoint" schema="schema/dynamic_package.exsd" />

  <extension
        point="org.eclipse.emf.ecore.content_parser">
     <parser
           contentTypeIdentifier="org.eclipse.uml2.uml"
           class="org.eclipse.uml2.uml.internal.resource.UMLResourceFactoryImpl" />
  </extension>

  <extension
        point="org.eclipse.core.runtime.contentTypes">
     <content-type
           base-type="org.eclipse.emf.ecore.xmi"
           file-extensions="uml2"
           id="org.eclipse.uml2"
           name="%_UI_UML2_content_type"
           priority="normal">
        <describer
              class="org.eclipse.emf.ecore.xmi.impl.RootXMLContentHandlerImpl$Describer">
           <parameter
                 name="namespace"
                 value="http://www.eclipse.org/uml2/1.0.0/UML" />
           <parameter
                 name="kind"
                 value="xmi" />
        </describer>
     </content-type>
     <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|3\.0\.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_UML_2_0_0_content_type"
           priority="normal">
        <describer
              class="org.eclipse.emf.ecore.xmi.impl.RootXMLContentHandlerImpl$Describer">
           <parameter
                 name="namespace"
                 value="http://www.eclipse.org/uml2/2.0.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_1_0"
           name="%_UI_UML_2_1_0_content_type"
           priority="normal">
        <describer
              class="org.eclipse.emf.ecore.xmi.impl.RootXMLContentHandlerImpl$Describer">
           <parameter
                 name="namespace"
                 value="http://www.eclipse.org/uml2/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_3_0_0"
           name="%_UI_UML_3_0_0_content_type"
           priority="normal">
        <describer
              class="org.eclipse.emf.ecore.xmi.impl.RootXMLContentHandlerImpl$Describer">
           <parameter
                 name="namespace"
                 value="http://www.eclipse.org/uml2/3.0.0/UML" />
           <parameter
                 name="kind"
                 value="xmi" />
        </describer>
     </content-type>
          
     <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|2\.2)" />
           <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">
        <describer
              class="org.eclipse.emf.ecore.xmi.impl.RootXMLContentHandlerImpl$Describer">
           <parameter
                 name="namespace"
                 value="http://schema.omg.org/spec/UML/2.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_1"
           name="%_UI_OMG_UML_2_1_1_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.omg.uml"
           file-extensions="xmi"
           id="org.omg.uml_2_2"
           name="%_UI_OMG_UML_2_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.2" />
           <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"
           name="%_UI_OMG_CMOF_content_type"
           priority="normal">
        <describer
              class="org.eclipse.emf.ecore.xmi.impl.RootXMLContentHandlerImpl$Describer">
           <parameter
                 name="namespace"
                 value="http://schema.omg.org/spec/MOF/2.0/cmof.xml" />
           <parameter
                 name="kind"
                 value="xmi" />
        </describer>
     </content-type>
  </extension>

</plugin>
