<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
<plugin
   id="org.eclipse.wst.xml.core"
   name="%pluginName"
   version="1.0.0"
   provider-name="%providerName"
   class="org.eclipse.wst.xml.core.internal.XMLCorePlugin">

   <runtime>
      <library name="xmlmodel.jar">
         <export name="*"/>
      </library>
   </runtime>
   <requires>
      <!-- we put xerces first on the pre-req path as a 
      general convention that anyone using Eclipse class loader
      will get the various XML/DOM classes in the same order, 
      1. Platform, 2. Prereqs, 3. Self. 
      we export the xerces classes, since
      1. it *is* part of our plugin's interface 
      to the rest of the world, and as such
      2. There will be a "fast fail" error if someone is 
      independently loading a conflicting version. 
      -->
      <import plugin="org.apache.xerces" export="true"/>
      
      <import plugin="org.eclipse.wst.sse.core"/>
      <import plugin="org.eclipse.core.resources"/>
      <import plugin="org.eclipse.core.runtime"/>
      <import plugin="org.eclipse.core.filebuffers"/>
      <import plugin="org.eclipse.text"/>
      <import plugin="org.eclipse.wst.xml.uriresolver"/>
   </requires>


   <extension
         point="org.eclipse.wst.sse.core.modelHandler">
      <modelHandler
            default="true"
            class="org.eclipse.wst.xml.core.internal.modelhandler.ModelHandlerForXML"
            associatedContentTypeId="org.eclipse.core.runtime.xml"
            id="org.eclipse.wst.xml.core.internal.modelhandler">
      </modelHandler>
   </extension>
   <extension
         point="org.eclipse.wst.sse.core.embeddedTypeHandler">
      <embeddedTypeHandler
            class="org.eclipse.wst.xml.core.internal.modelhandler.EmbeddedXML">
      </embeddedTypeHandler>
   </extension>
   
   <extension
         id="org.eclipse.wst.xml.core.builderdelegate.todo"
         point="org.eclipse.wst.sse.core.builderdelegate">
      <participant
            class="org.eclipse.wst.xml.core.internal.builder.delegates.XMLTaskTagSeeker"
            contentType="org.eclipse.core.runtime.xml,org.eclipse.wst.xml.core.xmlsource">
      </participant>
   </extension>
   
   <extension point="org.eclipse.core.filebuffers.documentCreation"
         id="org.eclipse.wst.xml.core.documentfactories"
         name="%Structured_XML_Document_Factory_Extension.name">
      <factory
            contentTypeId="org.eclipse.core.runtime.xml"
            class="org.eclipse.wst.sse.core.internal.filebuffers.BasicStructuredDocumentFactory"/>
   </extension>
	
   <extension
         point="org.eclipse.team.core.fileTypes">
      <fileTypes
            type="text"
            extension="xsl">
      </fileTypes>
      <fileTypes
            type="text"
            extension="xslt">
      </fileTypes>
      <fileTypes
            type="text"
            extension="dadx">
      </fileTypes>
      <fileTypes
            type="text"
            extension="wsdl">
      </fileTypes>
      <fileTypes
            type="text"
            extension="nst">
      </fileTypes>
      <fileTypes
            type="text"
            extension="xmi">
      </fileTypes>
      <fileTypes
            type="text"
            extension="xsd">
      </fileTypes>
   </extension>
   <extension
         point="org.eclipse.wst.sse.core.formatProcessors">
      <processor
            class="org.eclipse.wst.xml.core.internal.provisional.format.FormatProcessorXML"
            contentTypeId="org.eclipse.core.runtime.xml">
      </processor>
   </extension>
   
   <extension
         point="org.eclipse.core.runtime.contentTypes">
         <content-type
               file-extensions="xml,xsl,xslt,dadx,wsdl,nst,xmi,xsd,exsd"
               priority="low"
               name="%XML_Content_Type_Extension_Element.name"
               id="xmlsource"
               base-type="org.eclipse.core.runtime.xml"
			   default-charset="UTF-8"
			   alias-for="org.eclipse.core.runtime.xml"
			   >
			<describer class="org.eclipse.wst.xml.core.internal.contenttype.ContentDescriberForXML"/>
		</content-type>
   </extension>
   
   	<!-- added following from content model plugin.xml -->
	
	
	
	  	<extension-point name="%Content_Model_Document_Factories_Extension.name" id="documentFactories"/>

  		<extension-point name="%Content_Model_Annotation_Files_Extension.name" id="annotationFiles"/>

  		<!--  <extension-point name="DOM Extension Provider" id="DOMExtensionProvider"/>-->

  		<extension 
  		  id="Test" 
 		   point="org.eclipse.core.runtime.applications">      
 		   <application>
 		      <run class="org.eclipse.wst.xml.core.internal.contentmodel.internal.test.Test"/>
  		  </application>
 		 </extension>
   
</plugin>
