<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.wst.common.project.facet.core" xmlns="http://www.w3.org/2001/XMLSchema">
<annotation>
      <appinfo>
         <meta.schema plugin="org.eclipse.wst.common.project.facet.core" id="facets" name="Project Facets Extension Point"/>
      </appinfo>
      <documentation>
         This is the main extension point in the faceted project framework. It is used for defining project facets. A project facet can be thought of as a unit of functionality that the user can add to the project when the functionality is needed.
      </documentation>
   </annotation>

   <element name="extension">
      <annotation>
         <documentation>
            (no description available)
         </documentation>
      </annotation>
      <complexType>
         <choice minOccurs="1" maxOccurs="unbounded">
            <element ref="project-facet"/>
            <element ref="project-facet-version"/>
            <element ref="category"/>
            <element ref="preset"/>
            <element ref="template"/>
            <element ref="action"/>
            <element ref="event-handler"/>
            <element ref="group"/>
         </choice>
         <attribute name="point" type="string" use="required">
            <annotation>
               <documentation>
                  A fully qualified identifier of the target extension point.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="id" type="string">
            <annotation>
               <documentation>
                  An optional identifier of the extension instance.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="name" type="string">
            <annotation>
               <documentation>
                  An optional name of the extension instance.
               </documentation>
               <appinfo>
                  <meta.attribute translatable="true"/>
               </appinfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="label" type="string">
      <annotation>
         <documentation>
            The localizable name that is presented to the user. If not specified, the id will be used for a label.
         </documentation>
      </annotation>
   </element>

   <element name="description" type="string">
      <annotation>
         <documentation>
            The description text.
         </documentation>
      </annotation>
   </element>

   <element name="and">
      <annotation>
         <documentation>
            A facet constraint operator that performs a conjunction over the results of evaluation of two or more sub-expressions. This operator will return true if and only if all sub-expressions evaluate to true.
         </documentation>
      </annotation>
      <complexType>
         <choice minOccurs="1" maxOccurs="unbounded">
            <element ref="and"/>
            <element ref="or"/>
            <element ref="requires"/>
            <element ref="conflicts"/>
         </choice>
      </complexType>
   </element>

   <element name="or">
      <annotation>
         <documentation>
            A facet constraint operator that performs a disjunction over the results of evaluation of two or more sub-expressions. This operator will return true if any of the sub-expressions evaluate to true.
         </documentation>
      </annotation>
      <complexType>
         <choice minOccurs="1" maxOccurs="unbounded">
            <element ref="and"/>
            <element ref="or"/>
            <element ref="requires"/>
            <element ref="conflicts"/>
         </choice>
      </complexType>
   </element>

   <element name="requires">
      <annotation>
         <documentation>
            A facet constraint operator that is used to declare a dependency of one facet on another facet or any member of a group of facets. This operator will return true if the dependency is satisfied. Note that the group attribute should not be used together with the facet and version attributes.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="group" type="string">
            <annotation>
               <documentation>
                  The id of the facet group that this facet is declaring a dependency on. Any member of the group will satisfy the dependency. This attribute should not be used in conjunction with the facet and version attributes.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="facet" type="string">
            <annotation>
               <documentation>
                  The id of the facet.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="version" type="string">
            <annotation>
               <documentation>
                  Specifies the match expression for the facet version. The expression should be of the form &quot;2.2,2.5,[3.0-5.3],(7.3&quot;, where the comas function as an OR. Brackets and parenthesis are used as part of the range notation. A bracket means inclusive while a parenthesis means exclusive.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="soft" type="boolean">
            <annotation>
               <documentation>
                  If set to true indicates that this is a soft dependency. A soft dependency will not prevent the facet from being installed if it is not met. The purpose of specifying a soft dependency is to control facet installation order. If facet A declares a soft dependency on facet B, facet A is guaranteed to be installed after B has been installed (assuming B is selected).
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="conflicts">
      <annotation>
         <documentation>
            A facet constraint operator that is used to declare a conflict between this facet and another facet or this facet and a group of facets. This operator will return true if and only if the conflict is not present. Note that the group attribute should not be used together with the facet and version attributes.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="group" type="string">
            <annotation>
               <documentation>
                  The id of the facet group that this facet conflicts with. Note that it is safe for the declaring facet to be a member of this group. Conflicts between the facet and itself are ignored. This attribute should not be used in conjunction with the facet and version attributes.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="facet" type="string">
            <annotation>
               <documentation>
                  The id of the facet that this facet conflicts with. If the version attribute is specified, the conflict declaration will be limited to those versions covered by the version expression.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="version" type="string">
            <annotation>
               <documentation>
                  Used in conjunction with the facet attribute to limit the versions covered by the conflict declaration. The version expression should be of the form &quot;2.2,2.5,[3.0-5.3],(7.3&quot;, where the comas function as an OR. Brackets and parenthesis are used as part of the range notation. A bracket means inclusive while a parenthesis means exclusive.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="constraint">
      <annotation>
         <documentation>
            Specifies the constraint that has to be satisfied before this facet can be installed in a project. A constraint can be used to specify dependencies on other facets as well as conflicts.
         </documentation>
      </annotation>
      <complexType>
         <choice>
            <element ref="and"/>
            <element ref="or"/>
            <element ref="requires"/>
            <element ref="conflicts"/>
         </choice>
      </complexType>
   </element>

   <element name="group-member">
      <annotation>
         <documentation>
            Makes this facet a member of the group specified in the id attribute. A facet can be a member of any number of groups. Groups are auto-created when referenced by this extension point. The facet groups are primarily used when specifying conflict constraints.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  The id of the facet group to add this facet to. Groups are auto-created when referenced by this extension point.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="project-facet">
      <annotation>
         <documentation>
            Declares a project facet. A project facet can be thought of as a unit of functionality that the user can add to the project when the functionality is needed. Note that a facet need to have a least one version declared in order to be useful. See project-facet-version for more details.
         </documentation>
      </annotation>
      <complexType>
         <sequence>
            <element ref="label" minOccurs="0" maxOccurs="1"/>
            <element ref="description" minOccurs="0" maxOccurs="1"/>
            <element ref="version-comparator" minOccurs="0" maxOccurs="1"/>
            <element ref="default-version" minOccurs="0" maxOccurs="1"/>
            <element ref="member" minOccurs="0" maxOccurs="1"/>
            <element ref="property" minOccurs="0" maxOccurs="unbounded"/>
         </sequence>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  Project facet identifier.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="project-facet-version">
      <annotation>
         <documentation>
            Declares a project facet version. Each facet needs to have at leas one version declared in order to be useful.
         </documentation>
      </annotation>
      <complexType>
         <sequence>
            <element ref="constraint" minOccurs="0" maxOccurs="1"/>
            <element ref="group-member" minOccurs="0" maxOccurs="unbounded"/>
            <element ref="action" minOccurs="0" maxOccurs="unbounded"/>
            <element ref="event-handler" minOccurs="0" maxOccurs="unbounded"/>
            <element ref="property" minOccurs="0" maxOccurs="unbounded"/>
         </sequence>
         <attribute name="facet" type="string" use="required">
            <annotation>
               <documentation>
                  The id of the project facet that this is a version of. The facet itself needs to be declared using the project-facet element.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="version" type="string" use="required">
            <annotation>
               <documentation>
                  The version string. Has to be compatible with the version comparator specified for this facet or use the standard decimal version notation (i.e. 1.23.005) if the facet does not specify a custom version comparator.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="version-comparator">
      <annotation>
         <documentation>
            Specifies the version comparator for this project facet. If no version comparator is specified the default comparator will be used. The default version comparator can handle versions that are written in standard decimal notation.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="class" type="string" use="required">
            <annotation>
               <documentation>
                  The version comparator class name. Has to implement java.util.Comparator&amp;lt;String&amp;gt; interface.
               </documentation>
               <appinfo>
                  <meta.attribute kind="java" basedOn="java.util.Comparator"/>
               </appinfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="category">
      <annotation>
         <documentation>
            Declares a project facets category. Categories are groups of facets that the user will typically want to add or remove as a set.
         </documentation>
      </annotation>
      <complexType>
         <sequence>
            <element ref="label" minOccurs="0" maxOccurs="1"/>
            <element ref="description" minOccurs="0" maxOccurs="1"/>
         </sequence>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  The category id.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="preset">
      <annotation>
         <appinfo>
            <meta.element deprecated="true"/>
         </appinfo>
         <documentation>
            Declares a preset. A preset represents a common configuration of facets and their versions that a user might want to utilize on several projects. Presets can be supplied via this extension point or created by the user.
         </documentation>
      </annotation>
      <complexType>
         <sequence>
            <element ref="label"/>
            <element ref="description" minOccurs="0" maxOccurs="1"/>
         </sequence>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  The preset id.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="template">
      <annotation>
         <documentation>
            Declares a template. A template is simply a combination of fixed facets and an optional preset. Templates are used as a guide when creation projects.
         </documentation>
      </annotation>
      <complexType>
         <sequence>
            <element ref="label"/>
            <element ref="fixed" minOccurs="0" maxOccurs="unbounded"/>
            <element ref="preset"/>
         </sequence>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  The template id.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="fixed">
      <complexType>
         <attribute name="facet" type="string">
            <annotation>
               <documentation>
                  
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="action">
      <annotation>
         <documentation>
            Provides implementation of an action, such as install or uninstall, that a user can take on a project facet. Any action that&apos;s not implemented will not be available to the user. The action element can be used standalone or embeded inside the project-facet-version element. If used inside the project-facet-version element, the facet and version attributes are implied and should not be specified.
         </documentation>
      </annotation>
      <complexType>
         <sequence>
            <element ref="config-factory" minOccurs="0" maxOccurs="1"/>
            <element ref="delegate"/>
         </sequence>
         <attribute name="type" use="required">
            <annotation>
               <documentation>
                  Action type.
               </documentation>
            </annotation>
            <simpleType>
               <restriction base="string">
                  <enumeration value="install">
                  </enumeration>
                  <enumeration value="uninstall">
                  </enumeration>
                  <enumeration value="version-change">
                  </enumeration>
                  <enumeration value="runtime-changed">
                  </enumeration>
                  <enumeration value="INSTALL">
                  </enumeration>
                  <enumeration value="UNINSTALL">
                  </enumeration>
                  <enumeration value="VERSION_CHANGE">
                  </enumeration>
               </restriction>
            </simpleType>
         </attribute>
         <attribute name="facet" type="string">
            <annotation>
               <documentation>
                  The id of the project facet that this action applies to. This attribute should not be used when embeding the action element inside the project-facet-version element.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="version" type="string">
            <annotation>
               <documentation>
                  The version of the project facet that this action applies to. Multiple versions can be specified using version expression syntax. The version expression should be of the form &quot;2.2,2.5,[3.0-5.3],(7.3&quot;, where the comas function as an OR. Brackets and parenthesis are used as part of the range notation. A bracket means inclusive while a parenthesis means exclusive. This attribute should not be used when embeding the action element inside the project-facet-version element.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="id" type="string">
            <annotation>
               <documentation>
                  The action id. If not specified, a default id will be assigned using the &quot;[facet-id]#[version-expression]#[action-type]&quot; pattern.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="config-factory">
      <annotation>
         <documentation>
            Specifies the factory that will construct a configuration object to be used for parameterizing the action delegate. A configuration object is not necessary if the delegate does not require parameterization.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="class" type="string" use="required">
            <annotation>
               <documentation>
                  The config factory class name. Has to implement org.eclipse.wst.common.project.facet.core.IActionConfigFactory interface.
               </documentation>
               <appinfo>
                  <meta.attribute kind="java" basedOn="org.eclipse.wst.common.project.facet.core.IActionConfigFactory"/>
               </appinfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="delegate">
      <annotation>
         <documentation>
            Specifies the delegate that should be invoked when an action or an event happens.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="class" type="string" use="required">
            <annotation>
               <documentation>
                  The delegate class name. Has to implement org.eclipse.wst.common.project.facet.core.IDelegate interface.
               </documentation>
               <appinfo>
                  <meta.attribute kind="java" basedOn="org.eclipse.wst.common.project.facet.core.IDelegate"/>
               </appinfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="event-handler">
      <annotation>
         <appinfo>
            <meta.element deprecated="true"/>
         </appinfo>
         <documentation>
            Adds an event handler for one of the events in the faceted project life cycle. The event-handler element can be used standalone or embeded inside the project-facet-version element. If used inside the project-facet-version element, the facet and version attributes are implied and should not be specified.&lt;br/&gt;&lt;br/&gt;

&lt;b&gt;Deprecation Notes:&lt;/b&gt; This part of the facets extension point is deprecated. The org.eclipse.wst.common.project.facet.core.listeners extension point should be used instead.
         </documentation>
      </annotation>
      <complexType>
         <sequence>
            <element ref="delegate"/>
         </sequence>
         <attribute name="type" use="required">
            <annotation>
               <documentation>
                  The type of the event.
               </documentation>
            </annotation>
            <simpleType>
               <restriction base="string">
                  <enumeration value="PRE_INSTALL">
                  </enumeration>
                  <enumeration value="POST_INSTALL">
                  </enumeration>
                  <enumeration value="PRE_UNINSTALL">
                  </enumeration>
                  <enumeration value="POST_UNINSTALL">
                  </enumeration>
                  <enumeration value="PRE_VERSION_CHANGE">
                  </enumeration>
                  <enumeration value="POST_VERSION_CHANGE">
                  </enumeration>
                  <enumeration value="RUNTIME_CHANGED">
                  </enumeration>
               </restriction>
            </simpleType>
         </attribute>
         <attribute name="facet" type="string">
            <annotation>
               <documentation>
                  The id of the project facet that this event handler applies to. This attribute should not be used when embeding the event-handler element inside the project-facet-version element.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="version" type="string">
            <annotation>
               <documentation>
                  The version of the project facet that this event handler applies to. Multiple versions can be specified using version expression syntax. The version expression should be of the form &quot;2.2,2.5,[3.0-5.3],(7.3&quot;, where the comas function as an OR. Brackets and parenthesis are used as part of the range notation. A bracket means inclusive while a parenthesis means exclusive. This attribute should not be used when embeding the event-handler element inside the project-facet-version element.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="property">
      <annotation>
         <documentation>
            Sets a property on the containing context.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="name" type="string" use="required">
            <annotation>
               <documentation>
                  The name of the property.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="value" type="string" use="required">
            <annotation>
               <documentation>
                  The value of the property.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="default-version">
      <annotation>
         <documentation>
            Used to provide the facet version that should be selected by default. If a default version is not specified, the latest version will be used. Note that if a runtime is selected, the runtime can override this default with a version best suited for that runtime. The default can be specified either statically by using the &lt;code&gt;version&lt;/code&gt; attribute or dynamically by implementing the &lt;code&gt;org.eclipse.wst.common.project.facet.core.IDefaultVersionProvider&lt;/code&gt; interface and using the &lt;code&gt;provider&lt;/code&gt; attribute.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="version" type="string">
            <annotation>
               <documentation>
                  Specifies the version that should be used as the default. This attribute is ignored if the &lt;code&gt;provider&lt;/code&gt; attribute is specified.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="provider" type="string">
            <annotation>
               <documentation>
                  Specifies the version provider that will be consulted in order to determine the default version. If this attribute is used, the &lt;code&gt;version&lt;/code&gt; attribute will be ignored if present.
               </documentation>
               <appinfo>
                  <meta.attribute kind="java" basedOn="org.eclipse.wst.common.project.facet.core.IDefaultVersionProvider"/>
               </appinfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="group">
      <annotation>
         <documentation>
            Describes a project facet group. A group is a named collection of project facet versions. It is used primarily as a parameter to the &quot;requires&quot; and &quot;conflicts&quot; constraints and allows a level of indirection where a facet does not need to know about all the members of the group. A given project facet version can belong to several groups. Groups are created automatically when used in the &quot;group-member&quot; element, so an explicit group declaration is optional. However, it does allow a label and a description to be associated with the group.
         </documentation>
      </annotation>
      <complexType>
         <sequence>
            <element ref="label"/>
            <element ref="description" minOccurs="0" maxOccurs="1"/>
         </sequence>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  Group identifier.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="member">
      <annotation>
         <documentation>
            Adds the project facet as a member of a category.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="category" type="string" use="required">
            <annotation>
               <documentation>
                  The category id.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>


   <annotation>
      <appinfo>
         <meta.section type="examples"/>
      </appinfo>
      <documentation>
         &lt;p&gt;The following example illustrates the various facilities exposed by this extension point. This example is taken from the &lt;i&gt;Building Project Facets&lt;/i&gt; tutorial.&lt;/p&gt;

&lt;pre&gt;
&lt;extension point=&quot;org.eclipse.wst.common.project.facet.core.facets&quot;&gt;

  &lt;category id=&quot;formgen.category&quot;&gt;
    &lt;label&gt;FormGen&lt;/label&gt;
    &lt;description&gt;Enables generation of HTML forms based on XML definition files.&lt;/description&gt;
  &lt;/category&gt;

  &lt;project-facet id=&quot;formgen.core&quot;&gt;
    &lt;label&gt;FormGen Core&lt;/label&gt;
    &lt;description&gt;
      Enables generation of HTML forms based on XML definition files.
    &lt;/description&gt;
    &lt;category&gt;formgen.category&lt;/category&gt;
  &lt;/project-facet&gt;

  &lt;project-facet-version facet=&quot;formgen.core&quot; version=&quot;1.0&quot;&gt;
    &lt;constraint&gt;
      &lt;requires facet=&quot;jst.web&quot; version=&quot;2.2,2.3,2.4&quot;/&gt;
    &lt;/constraint&gt;
    &lt;action type=&quot;INSTALL&quot; id=&quot;formgen.core.install&quot;&gt;
      &lt;config-factory class=&quot;com.formgen.eclipse.FormGenCoreFacetInstallConfig$Factory&quot;/&gt;
      &lt;delegate class=&quot;com.formgen.eclipse.FormGenCoreFacetInstallDelegate&quot;/&gt;
    &lt;/action&gt;
  &lt;/project-facet-version&gt;

  &lt;project-facet id=&quot;formgen.ext&quot;&gt;
    &lt;label&gt;FormGen Extensions&lt;/label&gt;
    &lt;description&gt;
      Enables additional FormGen widgets.
    &lt;/description&gt;
    &lt;category&gt;formgen.category&lt;/category&gt;
  &lt;/project-facet&gt;

  &lt;project-facet-version facet=&quot;formgen.ext&quot; version=&quot;1.0&quot;&gt;
    &lt;constraint&gt;
      &lt;requires facet=&quot;formgen.core&quot; version=&quot;1.0&quot;/&gt;
    &lt;/constraint&gt;
    &lt;action type=&quot;INSTALL&quot;&gt;
      &lt;delegate class=&quot;com.formgen.eclipse.FormGenExtFacetInstallDelegate&quot;/&gt;
    &lt;/action&gt;
  &lt;/project-facet-version&gt;

  &lt;preset id=&quot;formgen.preset&quot;&gt;
    &lt;label&gt;FormGen Web Project&lt;/label&gt;
    &lt;description&gt;Creates a web project with FormGen functionality.&lt;/description&gt;
    &lt;facet id=&quot;jst.java&quot; version=&quot;5.0&quot;/&gt;
    &lt;facet id=&quot;jst.web&quot; version=&quot;2.2&quot;/&gt;
    &lt;facet id=&quot;formgen.core&quot; version=&quot;1.0&quot;/&gt;
    &lt;facet id=&quot;formgen.ext&quot; version=&quot;1.0&quot;/&gt;
  &lt;/preset&gt;
  
&lt;/extension&gt;
&lt;/pre&gt;
      </documentation>
   </annotation>



   <annotation>
      <appinfo>
         <meta.section type="copyright"/>
      </appinfo>
      <documentation>
         Copyright (c) 2005-2007 BEA Systems, Inc.
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
&lt;a href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;.
      </documentation>
   </annotation>

</schema>
