<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.jpt.core" xmlns="http://www.w3.org/2001/XMLSchema">
<annotation>
      <appInfo>
         <meta.schema plugin="org.eclipse.jpt.core" id="resourceLocators" name="Resource Locators"/>
      </appInfo>
      <documentation>
         Used to provide custom (non-java) resource location logic to JPA projects.
      </documentation>
   </annotation>

   <include schemaLocation="schema://org.eclipse.core.expressions/schema/expressionLanguage.exsd"/>

   <element name="extension">
      <annotation>
         <appInfo>
            <meta.element />
         </appInfo>
      </annotation>
      <complexType>
         <sequence>
            <element ref="resourceLocator" minOccurs="1" maxOccurs="unbounded"/>
         </sequence>
         <attribute name="point" type="string" use="required">
            <annotation>
               <documentation>
                  
               </documentation>
            </annotation>
         </attribute>
         <attribute name="id" type="string">
            <annotation>
               <documentation>
                  
               </documentation>
            </annotation>
         </attribute>
         <attribute name="name" type="string">
            <annotation>
               <documentation>
                  
               </documentation>
               <appInfo>
                  <meta.attribute translatable="true"/>
               </appInfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="resourceLocator">
      <annotation>
         <documentation>
            Declares a resource locator.  See &lt;samp&gt;org.eclipse.jpt.core.resource.ResourceLocator&lt;/samp&gt; for more information on resource locators.
         </documentation>
      </annotation>
      <complexType>
         <sequence>
            <element ref="enablement" minOccurs="0" maxOccurs="1"/>
         </sequence>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  A unique identifier for the declared resource locator.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="class" type="string" use="required">
            <annotation>
               <documentation>
                  The implementation class, which implements &lt;samp&gt;org.eclipse.jpt.core.resource.ResourceLocator&lt;/samp&gt;.
               </documentation>
               <appInfo>
                  <meta.attribute kind="java" basedOn=":org.eclipse.jpt.core.resource.ResourceLocator"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="priority">
            <annotation>
               <documentation>
                  Indicates the relative priority of this extension to other extensions. Used by the resource locator manager to determine which extension should be used in the case that multiple extensions apply to a given project. Defaults to &quot;normal&quot;.
               </documentation>
            </annotation>
            <simpleType>
               <restriction base="string">
                  <enumeration value="lowest">
                  </enumeration>
                  <enumeration value="lower">
                  </enumeration>
                  <enumeration value="low">
                  </enumeration>
                  <enumeration value="normal">
                  </enumeration>
                  <enumeration value="high">
                  </enumeration>
                  <enumeration value="higher">
                  </enumeration>
                  <enumeration value="highest">
                  </enumeration>
               </restriction>
            </simpleType>
         </attribute>
      </complexType>
   </element>

   <annotation>
      <appInfo>
         <meta.section type="since"/>
      </appInfo>
      <documentation>
         JPT 3.0
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="examples"/>
      </appInfo>
      <documentation>
         &lt;br&gt;
&lt;p&gt;
The following example is the included simple java resource locator, which is used for simple java projects.  It is of &quot;lowest&quot; priority, since all JPA projects will at their roots be simple java projects.
&lt;p&gt;
&lt;pre&gt;
&lt;extension  
 point=&quot;org.eclipse.jpt.core.resourceLocators&quot;&gt;
 &lt;resourceLocator
  id=&quot;org.eclipse.jpt.core.simpleJavaResourceLocator&quot;
  class=&quot;org.eclipse.jpt.core.internal.resource.SimpleJavaResourceLocator&quot;
  priority=&quot;lowest&quot;
  &lt;enablement&gt;
   &lt;with variable=&quot;project&quot;&gt;
    &lt;test property=&quot;org.eclipse.wst.common.project.facet.core.projectFacet&quot; value=&quot;java&quot; forcePluginActivation=&quot;true&quot;/&gt;
   &lt;/with&gt;
  &lt;/enablement&gt;
 &lt;/resourceLocator&gt;
&lt;/extension&gt;
&lt;/pre&gt;
&lt;/p&gt;
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="apiinfo"/>
      </appInfo>
      <documentation>
         &lt;p&gt;
The contributed resource locator class must implement &lt;code&gt;org.eclipse.jpt.core.resource.ResourceLocator&lt;/code&gt;.
&lt;p&gt;
The enablement variables include:
&lt;ul&gt;
&lt;li&gt;&quot;project&quot; which gives the current IProject.&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="implementation"/>
      </appInfo>
      <documentation>
         &lt;p&gt;The org.eclipse.jpt.core plug-in provides the following content types:&lt;ul&gt;
&lt;li&gt;org.eclipse.jpt.core.simpleJavaResourceLocator&lt;/li&gt;
&lt;li&gt;org.eclipse.jpt.core.moduleResourceLocator&lt;/li&gt;
&lt;li&gt;org.eclipse.jpt.core.webModuleResourceLocator&lt;/li&gt;
&lt;li&gt;org.eclipse.jpt.core.pluginResourceLocator&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="copyright"/>
      </appInfo>
      <documentation>
         Copyright (c) 2010 Oracle. 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:
Oracle - initial API and implementation
      </documentation>
   </annotation>

</schema>
