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

<!--  (c) 2008 Varsity Gateway LLC.  All rights reserved. -->
<plugin id="com.metamatrix.metamodels.xml" name="%pluginName" version="5.5.4" provider-name="%providerName" class="com.metamatrix.metamodels.xml.XmlDocumentPlugin">

   <runtime>
      <library name="metamodelsXml_PATCH.jar">
         <export name="*"/>
      </library>
<library name="metamodelsXml.jar">
         <export name="*"/>
      </library>
   </runtime>
   <requires>
      <import plugin="org.eclipse.emf.ecore" export="true"/>
      <import plugin="com.metamatrix.modeler.core"/>
      <import plugin="org.jdom"/>
      <import plugin="com.metamatrix.metamodels.xsd"/>
   </requires>


<!--
   	Each extension below represents a single metamodel.  Each metmodel is
   	registered using under the specified <uri> value which must be the same
   	eNS_URI value defined in the EPackage class for that metamodel.
   -->
   <extension id="xmldoc" name="%metamodelName" point="com.metamatrix.modeler.core.metamodel">
      <uri>
         http://www.metamatrix.com/metamodels/XmlDocument
      </uri>
      <alternateUri>
         mtkplugin:///com.metamatrix.metamodels.XmlDocument
      </alternateUri>
      <rootEntityClass name="com.metamatrix.metamodels.xml.XmlDocument">
      </rootEntityClass>
<!-- Fragments are not supported in 4.0
      <rootEntityClass name="com.metamatrix.metamodels.xml.XmlFragment"/>
      -->
      <properties createAsPhysical="false" requiresProxies="false" participatoryOnly="false" createAsVirtual="true" supportsDiagrams="true" supportsExtension="true">
      </properties>
      <allowableModelType>
      	VIRTUAL
      </allowableModelType>
      <packageClass name="com.metamatrix.metamodels.xml.XmlDocumentPackage">
      </packageClass>
      <adapterClass name="com.metamatrix.metamodels.xml.provider.XmlDocumentItemProviderAdapterFactory">
      </adapterClass>
   </extension>
   <extension point="org.eclipse.emf.ecore.generated_package">
      <package uri="http://www.metamatrix.com/metamodels/XmlDocument" class="com.metamatrix.metamodels.xml.XmlDocumentPackage">
      </package>
   </extension>
   
   
   
<!-- MetamodelAspect extensions -->
   <extension id="xmlDocumentUmlAspect" point="com.metamatrix.modeler.core.umlDiagramAspect">
      <metamodelExtensionID>
         xmldoc
      </metamodelExtensionID>
      <factoryClass name="com.metamatrix.metamodels.xml.aspects.uml.XmlUmlAspectFactoryImpl">
      </factoryClass>
   </extension>
      <extension id="xmlValidationAspect" point="com.metamatrix.modeler.core.validationAspect">
      <metamodelExtensionID>
         xmldoc
      </metamodelExtensionID>
      <factoryClass name="com.metamatrix.metamodels.xml.aspects.validation.XmlValidationAspectFactoryImpl">
      </factoryClass>
   </extension>
<!-- This extension defines the XML Modeling Preferences -->
   <extension id="xmlPreferences" point="com.metamatrix.modeler.core.modelValidation">
      <preference toolTip="Xml Elements/Attributes have a schema reference ?" name="elementSchemaRef" label="%elementSchemaRef" default="warning" category="XML">
      </preference>
      <preference toolTip="Exclude required element ?" name="requiredElementExclude" label="%requiredElementExclude" default="warning" category="XML">
      </preference>
      <preference toolTip="Entity violates max occurs specified by schema ?" name="maxOccursViolation" label="%maxOccursViolation" default="warning" category="XML">
      </preference>
      <preference toolTip="Required elements should be mapped ?" name="requiredElementMapping" label="%requiredElementMapping" default="error" category="XML">
      </preference>
      <preference toolTip="Should exclude element be mapped ?" name="excludeElementMapped" label="%excludeElementMapped" default="warning" category="XML">
      </preference>
      <preference toolTip="Fixed/Default value element should not be mapped ?" name="fixedDefaultElementMapped" label="%fixedDefaultElementMapped" default="warning" category="XML">
      </preference>
      <preference toolTip="Element/Attribute with no occurrences be mapped ? " name="mappedElementZeroMinOccurs" label="%mappedElementZeroMinOccurs" default="ignore" category="XML">
      </preference>
      <preference toolTip="Element with one maximum occurrence be mapped ?" name="mappedElementOneMaxOccurs" label="%mappedElementOneMaxOccurs" default="warning" category="XML">
      </preference>
      <preference toolTip="Validate Root Element mapped to Mapping Class?" name="rootElementMappingClass" label="%rootElementMappingClass" default="warning" category="XML">
      </preference>
      <preference toolTip="Nillable Element/Attribute be mapped ?" name="mappedElementNillable" label="%mappedElementNillable" default="ignore" category="XML">
      </preference>
      <preference toolTip="Incompatible Mapping Class Column and Element/Attribute datatypes ?" name="incompatibleElementColumnDatatypes" label="%incompatibleElementColumnDatatypes" default="warning" category="XML">
      </preference>
<!-- Defect 18718 - Cannot find any reason we need this validation check or it's preference      
      <preference
            toolTip="Element/Attribute with Element/Attribute children be mapped ?"
            name="mappedElementChildren"
            label="%mappedElementChildren"
            default="warning"
            category="XML">
      </preference>
-->
<!-- This needs to be a check box in validation preferences, will be enabled depending on gui changes      
      <preference
            toolTip="Element/Attribute excluded from the document need to be validated ?"
            name="validateExcludedElements"
            label="%validateExcludedElements"
            default="false"
            category="XML">
      </preference>
-->      
   </extension>
<!-- EObject Matcher extensions -->
   <extension id="xmlMatcherFactory" point="com.metamatrix.modeler.core.eobjectMatcherFactory">
      <class name="com.metamatrix.metamodels.xml.compare.XmlMatcherFactory">
      </class>
   </extension>
   <extension point="com.metamatrix.modeler.core.pasteContributor">
      <class name="com.metamatrix.metamodels.xml.PasteContributor"/>
   </extension>
</plugin>
