blob: 38f42321a61793809d7cccdbdbc9e5be9b8dca7d [file] [log] [blame]
<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.wst.common.modulecore" xmlns="http://www.w3.org/2001/XMLSchema">
<annotation>
<appInfo>
<meta.schema plugin="org.eclipse.wst.common.modulecore" id="heirarchyFlattenParticipant" name="heirarchyFlattenParticipant"/>
</appInfo>
<documentation>
This extension point is to register a global level flatten participant
which can be trusted to know about any and all approved nestings of various
project types, specifically regarding child modules.
By registering a heirarchyParticipant via this extension point, you can allow
your custom project / module type to be recognized as a child of another module type.
For example, your custom "car" archive project can be recognized as a child
module of an ear project or web project.
Parent modules and module delegates using a GlobalHeirarchyParticipant
or its provider are accepting that some potentially unknown module types
may declare themselves to be child modules of the parent module. Risk
is limited, however, as all that will change is whether a child component
is marked as a child or not. This will have some effect on the publish or export
events, however, as children modules will have their list of participants
used when a component is marked as a child module. If it is not marked as a child module,
the referenced component will instead be traversed normally.
As an example, if an unknown "car" project is referenced inside an ear project,
and if the "car" project is recognized as a child module, the "Car" project will
have its participants assist in the publish
(ex, ignoring .java files, optimizing itself according to logic consistent with the "car" project).
If the car project is NOT recognized as a child, the nested files
will be traversed simply as a tree, and features such as including
.class files instead of .java files will not take place.
Parent modules that require complete control over which virtual components
may be recognized as children should not allow their deployables to use the
GlobalHeirarchyParticipant at all.
</documentation>
</annotation>
<element name="extension">
<annotation>
<appInfo>
<meta.element />
</appInfo>
</annotation>
<complexType>
<sequence>
<element ref="heirarchyParticipant"/>
</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="heirarchyParticipant">
<complexType>
<attribute name="class" type="string" use="required">
<annotation>
<documentation>
</documentation>
<appInfo>
<meta.attribute kind="java" basedOn=":org.eclipse.wst.common.componentcore.internal.flat.IFlattenParticipant"/>
</appInfo>
</annotation>
</attribute>
</complexType>
</element>
<annotation>
<appInfo>
<meta.section type="since"/>
</appInfo>
<documentation>
[Enter the first release in which this extension point appears.]
</documentation>
</annotation>
<annotation>
<appInfo>
<meta.section type="examples"/>
</appInfo>
<documentation>
[Enter extension point usage example here.]
</documentation>
</annotation>
<annotation>
<appInfo>
<meta.section type="apiinfo"/>
</appInfo>
<documentation>
This extension point is provisional API and may change in the future.
</documentation>
</annotation>
<annotation>
<appInfo>
<meta.section type="implementation"/>
</appInfo>
<documentation>
[Enter information about supplied implementation of this extension point.]
</documentation>
</annotation>
</schema>