<?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="groups" name="Project Facet Groups Extension Point"/>
      </appInfo>
      <documentation>
         A group is a collection of project facets that&apos;s used to provide a level of indirection between facets. For instance, instead of specifying a dependency on a specific facet or a list of facets, a facet can specify a dependency on a group. Facets can join or leave the group as requirements change without directly impacting the facet that is specifying the dependency.
      </documentation>
   </annotation>

   <element name="extension">
      <annotation>
         <appInfo>
            <meta.element />
         </appInfo>
      </annotation>
      <complexType>
         <choice minOccurs="0" maxOccurs="unbounded">
            <element ref="group"/>
            <element ref="members"/>
         </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="group">
      <annotation>
         <documentation>
            Defines a project facet group.
         </documentation>
      </annotation>
      <complexType>
         <sequence>
            <element ref="label"/>
            <element ref="description" minOccurs="0" maxOccurs="1"/>
            <element ref="include" minOccurs="0" maxOccurs="unbounded"/>
         </sequence>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  Group identifier.
               </documentation>
            </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="include">
      <annotation>
         <documentation>
            Specifies that one or more version of the facet should be included in the group.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="facet" type="string" use="required">
            <annotation>
               <documentation>
                  The facet id.
               </documentation>
               <appInfo>
                  <meta.attribute kind="identifier" basedOn="org.eclipse.wst.common.project.facet.core.facets/project-facet/@id"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="versions" 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>
      </complexType>
   </element>

   <element name="members">
      <annotation>
         <documentation>
            Used by third-partys to enlist facets into a group.
         </documentation>
      </annotation>
      <complexType>
         <sequence>
            <element ref="include" minOccurs="0" maxOccurs="unbounded"/>
         </sequence>
         <attribute name="group" type="string" use="required">
            <annotation>
               <documentation>
                  The group id.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>


   <annotation>
      <appInfo>
         <meta.section type="examples"/>
      </appInfo>
      <documentation>
         &lt;p&gt;The following example illustrates creation of a group and various ways that facets can join the group.&lt;/p&gt;

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

  &lt;!-- 
    Groups do not have to be explicitly defined. They come into existence when the
    first member is added, however explicit definition is recommended as that&apos;s the
    only way to specify a label and a description for the group. You can also 
    enlist facets into the group as part of that group&apos;s definition.
  --&gt;
  
  &lt;group id=&quot;gr&quot;&gt;
    &lt;label&gt;Test Group&lt;/label&gt;
    &lt;description&gt;Test group of facets.&lt;/description&gt;
    &lt;include facet=&quot;a&quot;/&gt;
    &lt;include facet=&quot;b&quot; versions=&quot;1.2&quot;/&gt;
    &lt;include facet=&quot;c&quot; versions=&quot;[1.3-2.0)&quot;/&gt;
  &lt;/group&gt;
  
  &lt;!--
    This is the most flexible way of enlisting facets into the group. This
    declaration can be made by a third party that is neither the facet author
    nor the group creator.
  --&gt;
  
  &lt;members group=&quot;gr&quot;&gt;
    &lt;include facet=&quot;d&quot; versions=&quot;2.3,2.4,2.7&quot;/&gt;
    &lt;include facet=&quot;e&quot;/&gt;
  &lt;/members&gt;
  
&lt;/extension&gt;

&lt;!-- Facet can be enlisted into one or more group as part of facet definition. --&gt;

&lt;extension point=&quot;org.eclipse.wst.common.project.facet.core.facets&quot;&gt;
  &lt;project-facet id=&quot;f&quot;&gt;
    ...
  &lt;/project-facet&gt;
  &lt;project-facet-version facet=&quot;f&quot; version=&quot;1.0&quot;&gt;
    ...
    &lt;group-member id=&quot;gr&quot;/&gt;
    ...
  &lt;/project-facet-version&gt;
&lt;/extension&gt;&lt;/pre&gt;
      </documentation>
   </annotation>



   <annotation>
      <appInfo>
         <meta.section type="copyright"/>
      </appInfo>
      <documentation>
         Copyright (c) 2010 Oracle and others.&lt;br&gt;
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v2.0
which accompanies this distribution, and is available at
&lt;a href=&quot;https://www.eclipse.org/legal/epl-2.0/
&quot;&gt;https://www.eclipse.org/legal/epl-2.0/
&lt;/a&gt;.
      </documentation>
   </annotation>

</schema>
