blob: 724fdef37dd86a3c5b6e9c26b1edcbed6560b1dd [file] [log] [blame]
<?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 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>