]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.project/schema/feature.exsd
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.project / schema / feature.exsd
index 0babb2b8c5889c08f32ee04afb4b8a72642b7a65..f3d006f2dfc580c45912005ced38e4c41358c315 100644 (file)
-<?xml version='1.0' encoding='UTF-8'?>\r
-<!-- Schema file written by PDE -->\r
-<schema targetNamespace="org.simantics.project" xmlns="http://www.w3.org/2001/XMLSchema">\r
-<annotation>\r
-      <appInfo>\r
-         <meta.schema plugin="org.simantics.project" id="feature" name="Simantics Project Feature"/>\r
-      </appInfo>\r
-      <documentation>\r
-         This is an extension point for programmatical contribution of Simantics project framework features. Project features are used to incorporate custom logic into the loading/activation and deactivation of a project.\r
-\r
-Projects can be loaded, activated and deactivated also headlessly (without UI) and thus project features should not depend on being able to access Workbench UI.\r
-      </documentation>\r
-   </annotation>\r
-\r
-   <element name="extension">\r
-      <annotation>\r
-         <appInfo>\r
-            <meta.element />\r
-         </appInfo>\r
-      </annotation>\r
-      <complexType>\r
-         <sequence>\r
-            <element ref="feature" minOccurs="0" maxOccurs="unbounded"/>\r
-         </sequence>\r
-         <attribute name="point" type="string" use="required">\r
-            <annotation>\r
-               <documentation>\r
-                  \r
-               </documentation>\r
-            </annotation>\r
-         </attribute>\r
-         <attribute name="id" type="string">\r
-            <annotation>\r
-               <documentation>\r
-                  \r
-               </documentation>\r
-            </annotation>\r
-         </attribute>\r
-         <attribute name="name" type="string">\r
-            <annotation>\r
-               <documentation>\r
-                  \r
-               </documentation>\r
-               <appInfo>\r
-                  <meta.attribute translatable="true"/>\r
-               </appInfo>\r
-            </annotation>\r
-         </attribute>\r
-      </complexType>\r
-   </element>\r
-\r
-   <element name="feature">\r
-      <complexType>\r
-         <sequence>\r
-            <element ref="requires" minOccurs="0" maxOccurs="unbounded"/>\r
-            <element ref="injectDependency" minOccurs="0" maxOccurs="unbounded"/>\r
-            <element ref="installGroup" minOccurs="0" maxOccurs="unbounded"/>\r
-         </sequence>\r
-         <attribute name="id" type="string" use="required">\r
-            <annotation>\r
-               <documentation>\r
-                  \r
-               </documentation>\r
-            </annotation>\r
-         </attribute>\r
-         <attribute name="class" type="string" use="required">\r
-            <annotation>\r
-               <documentation>\r
-                  The IProjectFeature implementation for this extension.\r
-               </documentation>\r
-               <appInfo>\r
-                  <meta.attribute kind="java" basedOn="org.simantics.project.features.AbstractProjectFeature:org.simantics.project.features.IProjectFeature"/>\r
-               </appInfo>\r
-            </annotation>\r
-         </attribute>\r
-         <attribute name="label" type="string">\r
-            <annotation>\r
-               <documentation>\r
-                  A short description of project feature, a name.\r
-               </documentation>\r
-            </annotation>\r
-         </attribute>\r
-         <attribute name="description" type="string">\r
-            <annotation>\r
-               <documentation>\r
-                  A description of the project feature, possibly verbose.\r
-               </documentation>\r
-            </annotation>\r
-         </attribute>\r
-         <attribute name="published" type="boolean">\r
-            <annotation>\r
-               <documentation>\r
-                  Informs whether this project feature should be published to users in UI&apos;s that visualize user selectable project features in some manner.\r
-\r
-For example top level project features should always be published in order to give Simantics Project Manager users the possibility to select the feature to be used in their project.\r
-\r
-If a value is not given, &lt;code&gt;false&lt;/code&gt; is assumed.\r
-               </documentation>\r
-            </annotation>\r
-         </attribute>\r
-      </complexType>\r
-   </element>\r
-\r
-   <element name="requires">\r
-      <annotation>\r
-         <documentation>\r
-            Attached to a project feature, tells that it requires the listed project features as its prerequisited in order to be properly initializable.\r
-\r
-These requirements are used to determine the initialization order of project features through topological sorting. The dependency network formed by the requires-definitions must be acyclic.\r
-         </documentation>\r
-      </annotation>\r
-      <complexType>\r
-         <attribute name="id" type="string" use="required">\r
-            <annotation>\r
-               <documentation>\r
-                  The ID of the referenced project feature extension.\r
-               </documentation>\r
-               <appInfo>\r
-                  <meta.attribute kind="identifier" basedOn="org.simantics.project.feature/feature/@id"/>\r
-               </appInfo>\r
-            </annotation>\r
-         </attribute>\r
-         <attribute name="optional" type="boolean">\r
-            <annotation>\r
-               <documentation>\r
-                  Set to true to signify that this project feature requirement is optional and that no error/warning should be issued if it does not exist. Defaults to false.\r
-               </documentation>\r
-            </annotation>\r
-         </attribute>\r
-      </complexType>\r
-   </element>\r
-\r
-   <element name="injectDependency">\r
-      <annotation>\r
-         <documentation>\r
-            Indicates to the project feature subsystem that the parent project feature is to be injected as a requirement of the injection target project feature. It will thus become a required prerequisite of the identified feature.\r
-\r
-Logically this dependency injection only creates a requires relationship from targetId to id. If the injection target project feature does not exist, nothing happens since there&apos;s can be no requires dependency either.\r
-\r
-This is an inverse mechanism to the requires element.\r
-\r
-These requirements are used to determine the initialization order of project features through topological sorting. The dependency network formed by the requires-definitions must be acyclic.\r
-         </documentation>\r
-      </annotation>\r
-      <complexType>\r
-         <attribute name="targetId" type="string" use="required">\r
-            <annotation>\r
-               <documentation>\r
-                  The ID of the injection target project feature extension.\r
-               </documentation>\r
-               <appInfo>\r
-                  <meta.attribute kind="identifier" basedOn="org.simantics.project.feature/feature/@id"/>\r
-               </appInfo>\r
-            </annotation>\r
-         </attribute>\r
-      </complexType>\r
-   </element>\r
-\r
-   <element name="installGroup">\r
-      <annotation>\r
-         <documentation>\r
-            A project feature can be tagged with any number of platform P2 Installable Unit (IU) IDs, feature group IDs in particular. If any of those IU IDs match what is marked as installed in the project, the feature will be included in project loading. The version specifier must also be an inclusive match if one is specified.\r
-         </documentation>\r
-      </annotation>\r
-      <complexType>\r
-         <attribute name="id" type="string" use="required">\r
-            <annotation>\r
-               <documentation>\r
-                  A P2 Installable Unit (IU) ID of a. Most often the ID of a feature group IU.\r
-               </documentation>\r
-            </annotation>\r
-         </attribute>\r
-         <attribute name="version" type="string" use="default" value="1.0.0">\r
-            <annotation>\r
-               <documentation>\r
-                  Version specifier for a feature bundle reference. This attribute is not mandatory. Leaving it empty means that the project feature can be used with any version of the specified feature.\r
-\r
-Version is specified as a single version or a version range, such as [1.0.0,2.0.0). Versions shall respect the pattern &quot;(\\d+).(\\d+).(\\d+).([a-zA-Z_0-9\\-]+)&quot;. Defining only a single version instead of a version range means that any version greater than or equal to the specified one will be accepted.\r
-               </documentation>\r
-            </annotation>\r
-         </attribute>\r
-      </complexType>\r
-   </element>\r
-\r
-   <annotation>\r
-      <appInfo>\r
-         <meta.section type="since"/>\r
-      </appInfo>\r
-      <documentation>\r
-         16.9.2010\r
-      </documentation>\r
-   </annotation>\r
-\r
-   <annotation>\r
-      <appInfo>\r
-         <meta.section type="examples"/>\r
-      </appInfo>\r
-      <documentation>\r
-         This example is taken from the Simantics System Dynamic package. It demonstrates the use of all current features of the extension point, namely project features, dependencies between project features and bindings between project features and platform features.\r
-&lt;pre&gt;\r
-&lt;extension\r
-         point=&quot;org.simantics.project.feature&quot;&gt;\r
-      &lt;feature\r
-            description=&quot;System dynamics modelling project. Create system dynamics models and simulate them with OpenModelica.&quot;\r
-            class=&quot;org.simantics.sysdyn.ui.project.SysdynProject&quot;\r
-            id=&quot;org.simantics.sysdyn.project&quot;\r
-            label=&quot;System Dynamics Project&quot;\r
-            published=&quot;true&quot;&gt;\r
-         &lt;requires id=&quot;org.simantics.sysdyn.dependencies&quot;/&gt;\r
-         &lt;requires id=&quot;org.simantics.simulation.experimentManager&quot;/&gt;\r
-         &lt;installGroup id=&quot;org.simantics.sysdyn&quot; version=&quot;[1.0.0,2.0.0)&quot;/&gt;\r
-      &lt;/feature&gt;\r
-      &lt;feature\r
-            class=&quot;org.simantics.project.features.DependencyValidationFeature:http://www.simantics.org/Sysdyn-1.1/ImportedOntologies&quot;\r
-            id=&quot;org.simantics.sysdyn.dependencies&quot;\r
-            label=&quot;System Dynamics ontology dependencies&quot;&gt;\r
-      &lt;/feature&gt;\r
-   &lt;/extension&gt;\r
-&lt;/pre&gt;\r
-      </documentation>\r
-   </annotation>\r
-\r
-   <annotation>\r
-      <appInfo>\r
-         <meta.section type="apiinfo"/>\r
-      </appInfo>\r
-      <documentation>\r
-         The main entry point to project feature facilities is &lt;code&gt;org.simantics.project.ProjectFeatures&lt;/code&gt;. It is a facade for handling an&lt;code&gt; IProjectFeatureRegistry&lt;/code&gt; and its &lt;code&gt;IProjectFeatureExtension&lt;/code&gt;s.\r
-\r
-&lt;p&gt;\r
-See &lt;code&gt;org.simantics.project.Projects&lt;/code&gt; for project life-cycle related utilities, such as creation, loading and removal from database. &lt;code&gt;org.simantics.project.IProject&lt;/code&gt; serves as handle object for a loaded project. It is an &lt;code&gt;IHintContext&lt;/code&gt; and can thus be used to store arbitrary keyed hints.\r
-      </documentation>\r
-   </annotation>\r
-\r
-   <annotation>\r
-      <appInfo>\r
-         <meta.section type="implementation"/>\r
-      </appInfo>\r
-      <documentation>\r
-         See &lt;code&gt;org.simantics.project.internal.ProjectFeatureRegistry&lt;/code&gt;, &lt;code&gt;org.simantics.project.internal.ProjectFeatureExtension&lt;/code&gt; and &lt;code&gt;org.simantics.project.impl.Project&lt;/code&gt; for the supplied implementation for this extension point&apos;s API.\r
-      </documentation>\r
-   </annotation>\r
-\r
-   <annotation>\r
-      <appInfo>\r
-         <meta.section type="copyright"/>\r
-      </appInfo>\r
-      <documentation>\r
-         Copyright (c) 2007, 2010 Association for Decentralized Information Management in Industry THTH ry.&lt;br/&gt;\r
-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;\r
-      </documentation>\r
-   </annotation>\r
-\r
-</schema>\r
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.simantics.project" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+      <appInfo>
+         <meta.schema plugin="org.simantics.project" id="feature" name="Simantics Project Feature"/>
+      </appInfo>
+      <documentation>
+         This is an extension point for programmatical contribution of Simantics project framework features. Project features are used to incorporate custom logic into the loading/activation and deactivation of a project.
+
+Projects can be loaded, activated and deactivated also headlessly (without UI) and thus project features should not depend on being able to access Workbench UI.
+      </documentation>
+   </annotation>
+
+   <element name="extension">
+      <annotation>
+         <appInfo>
+            <meta.element />
+         </appInfo>
+      </annotation>
+      <complexType>
+         <sequence>
+            <element ref="feature" minOccurs="0" 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="feature">
+      <complexType>
+         <sequence>
+            <element ref="requires" minOccurs="0" maxOccurs="unbounded"/>
+            <element ref="injectDependency" minOccurs="0" maxOccurs="unbounded"/>
+            <element ref="installGroup" minOccurs="0" maxOccurs="unbounded"/>
+         </sequence>
+         <attribute name="id" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="class" type="string" use="required">
+            <annotation>
+               <documentation>
+                  The IProjectFeature implementation for this extension.
+               </documentation>
+               <appInfo>
+                  <meta.attribute kind="java" basedOn="org.simantics.project.features.AbstractProjectFeature:org.simantics.project.features.IProjectFeature"/>
+               </appInfo>
+            </annotation>
+         </attribute>
+         <attribute name="label" type="string">
+            <annotation>
+               <documentation>
+                  A short description of project feature, a name.
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="description" type="string">
+            <annotation>
+               <documentation>
+                  A description of the project feature, possibly verbose.
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="published" type="boolean">
+            <annotation>
+               <documentation>
+                  Informs whether this project feature should be published to users in UI&apos;s that visualize user selectable project features in some manner.
+
+For example top level project features should always be published in order to give Simantics Project Manager users the possibility to select the feature to be used in their project.
+
+If a value is not given, &lt;code&gt;false&lt;/code&gt; is assumed.
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="requires">
+      <annotation>
+         <documentation>
+            Attached to a project feature, tells that it requires the listed project features as its prerequisited in order to be properly initializable.
+
+These requirements are used to determine the initialization order of project features through topological sorting. The dependency network formed by the requires-definitions must be acyclic.
+         </documentation>
+      </annotation>
+      <complexType>
+         <attribute name="id" type="string" use="required">
+            <annotation>
+               <documentation>
+                  The ID of the referenced project feature extension.
+               </documentation>
+               <appInfo>
+                  <meta.attribute kind="identifier" basedOn="org.simantics.project.feature/feature/@id"/>
+               </appInfo>
+            </annotation>
+         </attribute>
+         <attribute name="optional" type="boolean">
+            <annotation>
+               <documentation>
+                  Set to true to signify that this project feature requirement is optional and that no error/warning should be issued if it does not exist. Defaults to false.
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="injectDependency">
+      <annotation>
+         <documentation>
+            Indicates to the project feature subsystem that the parent project feature is to be injected as a requirement of the injection target project feature. It will thus become a required prerequisite of the identified feature.
+
+Logically this dependency injection only creates a requires relationship from targetId to id. If the injection target project feature does not exist, nothing happens since there&apos;s can be no requires dependency either.
+
+This is an inverse mechanism to the requires element.
+
+These requirements are used to determine the initialization order of project features through topological sorting. The dependency network formed by the requires-definitions must be acyclic.
+         </documentation>
+      </annotation>
+      <complexType>
+         <attribute name="targetId" type="string" use="required">
+            <annotation>
+               <documentation>
+                  The ID of the injection target project feature extension.
+               </documentation>
+               <appInfo>
+                  <meta.attribute kind="identifier" basedOn="org.simantics.project.feature/feature/@id"/>
+               </appInfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="installGroup">
+      <annotation>
+         <documentation>
+            A project feature can be tagged with any number of platform P2 Installable Unit (IU) IDs, feature group IDs in particular. If any of those IU IDs match what is marked as installed in the project, the feature will be included in project loading. The version specifier must also be an inclusive match if one is specified.
+         </documentation>
+      </annotation>
+      <complexType>
+         <attribute name="id" type="string" use="required">
+            <annotation>
+               <documentation>
+                  A P2 Installable Unit (IU) ID of a. Most often the ID of a feature group IU.
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="version" type="string" use="default" value="1.0.0">
+            <annotation>
+               <documentation>
+                  Version specifier for a feature bundle reference. This attribute is not mandatory. Leaving it empty means that the project feature can be used with any version of the specified feature.
+
+Version is specified as a single version or a version range, such as [1.0.0,2.0.0). Versions shall respect the pattern &quot;(\\d+).(\\d+).(\\d+).([a-zA-Z_0-9\\-]+)&quot;. Defining only a single version instead of a version range means that any version greater than or equal to the specified one will be accepted.
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="since"/>
+      </appInfo>
+      <documentation>
+         16.9.2010
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="examples"/>
+      </appInfo>
+      <documentation>
+         This example is taken from the Simantics System Dynamic package. It demonstrates the use of all current features of the extension point, namely project features, dependencies between project features and bindings between project features and platform features.
+&lt;pre&gt;
+&lt;extension
+         point=&quot;org.simantics.project.feature&quot;&gt;
+      &lt;feature
+            description=&quot;System dynamics modelling project. Create system dynamics models and simulate them with OpenModelica.&quot;
+            class=&quot;org.simantics.sysdyn.ui.project.SysdynProject&quot;
+            id=&quot;org.simantics.sysdyn.project&quot;
+            label=&quot;System Dynamics Project&quot;
+            published=&quot;true&quot;&gt;
+         &lt;requires id=&quot;org.simantics.sysdyn.dependencies&quot;/&gt;
+         &lt;requires id=&quot;org.simantics.simulation.experimentManager&quot;/&gt;
+         &lt;installGroup id=&quot;org.simantics.sysdyn&quot; version=&quot;[1.0.0,2.0.0)&quot;/&gt;
+      &lt;/feature&gt;
+      &lt;feature
+            class=&quot;org.simantics.project.features.DependencyValidationFeature:http://www.simantics.org/Sysdyn-1.1/ImportedOntologies&quot;
+            id=&quot;org.simantics.sysdyn.dependencies&quot;
+            label=&quot;System Dynamics ontology dependencies&quot;&gt;
+      &lt;/feature&gt;
+   &lt;/extension&gt;
+&lt;/pre&gt;
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="apiinfo"/>
+      </appInfo>
+      <documentation>
+         The main entry point to project feature facilities is &lt;code&gt;org.simantics.project.ProjectFeatures&lt;/code&gt;. It is a facade for handling an&lt;code&gt; IProjectFeatureRegistry&lt;/code&gt; and its &lt;code&gt;IProjectFeatureExtension&lt;/code&gt;s.
+
+&lt;p&gt;
+See &lt;code&gt;org.simantics.project.Projects&lt;/code&gt; for project life-cycle related utilities, such as creation, loading and removal from database. &lt;code&gt;org.simantics.project.IProject&lt;/code&gt; serves as handle object for a loaded project. It is an &lt;code&gt;IHintContext&lt;/code&gt; and can thus be used to store arbitrary keyed hints.
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="implementation"/>
+      </appInfo>
+      <documentation>
+         See &lt;code&gt;org.simantics.project.internal.ProjectFeatureRegistry&lt;/code&gt;, &lt;code&gt;org.simantics.project.internal.ProjectFeatureExtension&lt;/code&gt; and &lt;code&gt;org.simantics.project.impl.Project&lt;/code&gt; for the supplied implementation for this extension point&apos;s API.
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="copyright"/>
+      </appInfo>
+      <documentation>
+         Copyright (c) 2007, 2010 Association for Decentralized Information Management in Industry THTH ry.&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>