/[debian]/libjpfcodegen-java/trunk/resources/plugin_1_0.dtd
ViewVC logotype

Contents of /libjpfcodegen-java/trunk/resources/plugin_1_0.dtd

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1612 - (show annotations)
Sun Mar 1 18:00:46 2009 UTC (12 years, 3 months ago) by gregoa
File size: 11843 byte(s)
[svn-inject] Forking libjpfcodegen-java source to Trunk
1 <!--
2 JPF plug-in manifest DTD file.
3
4 XML document created according to this DTD will represent a JPF plug-in
5 or plug-in fragment manifest and can be provided to plug-in registry
6 (class org.java.plugin.PluginRegistry) for "registration".
7
8 To refer to this DTD, insert following string in the beginning of XML file
9 (the most important part here is public ID "-//JPF//Java Plug-in Manifest 1.0",
10 it is used by framework registry when it tries to locate DTD):
11 <!DOCTYPE plugin PUBLIC "-//JPF//Java Plug-in Manifest 1.0" "http://jpf.sourceforge.net/plugin_1_0.dtd">
12 or
13 <!DOCTYPE plugin-fragment PUBLIC "-//JPF//Java Plug-in Manifest 1.0" "http://jpf.sourceforge.net/plugin_1_0.dtd">
14
15 $Id: plugin_1_0.dtd,v 1.2 2007/05/19 14:25:13 ddimon Exp $
16 -->
17
18 <!--
19 PLUG-IN
20 This is container for all other plug-in manifest elements.
21
22 "docs-path": path to documentation folder, relative to plug-in context
23 (home) folder
24 -->
25 <!ELEMENT plugin (doc?, attributes?, requires?, runtime?,
26 (extension-point|extension)*)>
27 <!ATTLIST plugin id CDATA #REQUIRED>
28 <!ATTLIST plugin version CDATA #REQUIRED>
29 <!ATTLIST plugin vendor CDATA #IMPLIED>
30 <!ATTLIST plugin class CDATA #IMPLIED>
31 <!ATTLIST plugin docs-path CDATA #IMPLIED>
32
33 <!--
34 PLUG-IN FRAGMENT
35 This is container for all other plug-in fragment manifest elements.
36 Plug-in fragments contribute some specific resources and code to
37 their "master" plug-in. The fragment may contribute to the several versions
38 of the plug-in at the same time.
39 It is maybe convenient to put platform specific libraries to separate
40 fragments of the same plug-in. Or have localization resources in
41 different fragments (one fragment per language). Or application "skins".
42 Or something else...
43
44 "docs-path": path to documentation folder, relative to plug-in context
45 (home) folder
46 -->
47 <!ELEMENT plugin-fragment (doc?, attributes?, requires?, runtime?,
48 (extension-point|extension)*)>
49 <!ATTLIST plugin-fragment id CDATA #REQUIRED>
50 <!ATTLIST plugin-fragment version CDATA #REQUIRED>
51 <!ATTLIST plugin-fragment vendor CDATA #IMPLIED>
52 <!ATTLIST plugin-fragment plugin-id CDATA #REQUIRED>
53 <!ATTLIST plugin-fragment plugin-version CDATA #IMPLIED>
54 <!ATTLIST plugin-fragment match (equal | equivalent | compatible
55 | greater-or-equal) "compatible">
56 <!ATTLIST plugin-fragment docs-path CDATA #IMPLIED>
57
58 <!--
59 PLUG-IN ATTRIBUTES
60 Plug-in attribute is a name-value pair of any strings. The framework
61 doesn't care about meaning of them but provide an API to access to all
62 defined plug-in attributes. It is for plug-in developer to use these
63 attributes.
64 -->
65 <!ELEMENT attributes (attribute+)>
66
67 <!--
68 PLUG-IN ATTRIBUTE
69 -->
70 <!ELEMENT attribute (doc?, attribute*)>
71 <!ATTLIST attribute id CDATA #REQUIRED>
72 <!ATTLIST attribute value CDATA #IMPLIED>
73
74
75 <!--
76 DOCUMENTATION
77 Tag "doc" is a generic mechanizm to provide documentation for any plug-in
78 element.
79 These tags may be processed automatically to generate something like
80 javadoc for Java sources but for plug-ins. They can also be just a
81 readable information for developers.
82 To refer to other documentation parts within your documentation notes,
83 use ${relativePath} parameter as a placeholder for relative path to the
84 documentation root.
85 For details, see javadoc for classes
86 org.java.plugin.tools.docgen.DocGenerator
87 org.java.plugin.tools.ant.DocTask
88
89 Document your plug-ins! Especially if they define extension points!!!
90 -->
91 <!ELEMENT doc (doc-ref*, doc-text?)>
92 <!ATTLIST doc caption CDATA #IMPLIED>
93
94 <!--
95 DOCUMENTATION REFERENCE
96 How path will be interpreted:
97 1. If java.net.URL instance, created for this path has "protocol" part,
98 the path assumed to be an absolute URL. In this case a link with this
99 URL will be inserted into documentation.
100 2. All other paths are treated as relative against plug-in docs home folder.
101 -->
102 <!ELEMENT doc-ref EMPTY>
103 <!ATTLIST doc-ref path CDATA #REQUIRED>
104 <!ATTLIST doc-ref caption CDATA #REQUIRED>
105
106 <!--
107 DOCUMENTATION TEXT
108 -->
109 <!ELEMENT doc-text (#PCDATA)>
110
111 <!--
112 PLUG-IN PREREQUISITES
113 This is for inter plug-ins dependencies. If your plug-in depends on
114 another, you should specify this fact here.
115 -->
116 <!ELEMENT requires (import+)>
117
118 <!--
119 PLUG-IN PREREQUISITE
120
121 "id": will be generated automatically, if not specified
122 "exported": if "true", plug-ins that depend on this one will see
123 imported plug-in also
124 "optional": if "true" than absense of plug-in to be imported will not
125 cause runtime error
126 "reverse-lookup": setting this attribute to "true" allows imported plug-in
127 to see classes in this plug-in
128 -->
129 <!ELEMENT import (doc?)>
130 <!ATTLIST import id CDATA #IMPLIED>
131 <!ATTLIST import plugin-id CDATA #REQUIRED>
132 <!ATTLIST import plugin-version CDATA #IMPLIED>
133 <!ATTLIST import match (equal | equivalent | compatible
134 | greater-or-equal) "compatible">
135 <!ATTLIST import exported (true | false) "false">
136 <!ATTLIST import optional (true | false) "false">
137 <!ATTLIST import reverse-lookup (true | false) "false">
138
139
140 <!--
141 PLUG-IN RUNTIME
142 This tag declares code and resources the plug-in contributes to the system.
143 -->
144 <!ELEMENT runtime (library+)>
145
146 <!--
147 PLUG-IN RUNTIME LIBRARY
148
149 "path": path to classes or resources folder or to jar archive file,
150 relative to plug-in context (home) folder
151 "type": library type, code libraries form plug-in classes pool, resources
152 libraries may contain any kind of files and native libraries
153 "version": version identifier of the library, not used by the Framework
154 runtime but available for plug-in developers via API
155 -->
156 <!ELEMENT library (doc?, export*)>
157 <!ATTLIST library id CDATA #REQUIRED>
158 <!ATTLIST library path CDATA #REQUIRED>
159 <!ATTLIST library type (code | resources) #REQUIRED>
160 <!ATTLIST library version CDATA #IMPLIED>
161
162 <!--
163 LIBRARY EXPORT CONFIGURATION
164
165 For code library, prefix is a package name, for resource library, the same
166 rules applied to relative resource path calculated against library path
167 (you can replace slash characters in path with dots).
168
169 "prefix": "*" OR "package.name.*" OR "package.name.ClassName"
170 -->
171 <!ELEMENT export EMPTY>
172 <!ATTLIST export prefix CDATA #REQUIRED>
173
174
175 <!--
176 EXTENSION POINT
177 Tags extension-point describe the places where the functionality of
178 this plug-in can be extended.
179
180 Extension point multiplicity attribute description:
181 any any number of extensions can be available
182 one only one extension can be available
183 one-per-plugin only one extension can be defined in one plug-in
184 none no extension can be defined for this point
185 (used to declare "abstract" extension points, that can
186 be only "inherited" by other points using "parent"
187 attributes)
188 -->
189 <!ELEMENT extension-point (doc?, parameter-def*)>
190 <!ATTLIST extension-point id CDATA #REQUIRED>
191 <!ATTLIST extension-point parent-plugin-id CDATA #IMPLIED>
192 <!ATTLIST extension-point parent-point-id CDATA #IMPLIED>
193 <!ATTLIST extension-point extension-multiplicity (any | one | one-per-plugin
194 | none) "any">
195
196 <!--
197 EXTENSION POINT PARAMETER DEFINITION
198 Here can be declared a hierarchy of parameters that should be provided
199 by an extension of this point.
200
201 Parameter definition's multiplicity attribute description:
202 one exactly one parameter required
203 any any number of parameters can be specified
204 none-or-one if parameter presents it should be one
205 one-or-more one or more parameters can be specified
206
207 Parameter definition's type formats (locale neural):
208 string: any string
209 boolean: true/false (empty value means NULL)
210 number: 12345 or 123.45 (empty value means NULL)
211 date: yyyy-MM-dd (assumed time zone is GMT 0, empty value
212 means NULL)
213 time: HH:mm:ss (assumed time zone is GMT 0, empty value means
214 NULL)
215 date-time: yyyy-MM-dd HH:mm:ss (assumed time zone is GMT 0, empty
216 value means NULL)
217 null: parameter value will be ignored (not validated) by the
218 Framework and passed to client code "as is", useful as
219 hierarchical parameters placeholders
220 any: means that here may be any sub parameters with any ID
221 and any value, parameter value will be ignored (not
222 validated) by the Framework and passed to client code
223 "as is"
224 plugin-id: plug-in ID (empty value means NULL)
225 extension-point-id: extension point unique ID (empty value means NULL), see
226 "custom-data" attribute for additional possibilities
227 extension-id: extension unique ID (empty value means NULL), see
228 "custom-data" attribute for additional possibilities
229 fixed: value may be one from predefined list, see "custom-data"
230 attribute for additional possibilities
231 resource: absolute or plug-in home relative URL (see "doc-ref" tag
232 notes for details about URL interpreting)
233
234 Note:
235 If attribute "type" is set to "any", all definitions, nested into this one
236 will be ignored and not validated by Framework but corresponding parameters
237 values steel be available via API to client code. Such behavior allows to
238 achieve very complex parameters hierarchies (but without robust support from
239 the Framework side).
240
241 "custom-data" attribute may contain:
242 - pipe ('|' character) separated list of possible parameter values
243 if type is "fixed";
244 - allowed extension point UID if type is "extension-point-id" or
245 "extension-id" (successors of that extension point will be allowed
246 also).
247
248 "id": should be unique within same level
249 -->
250 <!ELEMENT parameter-def (doc?, parameter-def*)>
251 <!ATTLIST parameter-def id CDATA #REQUIRED>
252 <!ATTLIST parameter-def multiplicity (one | any | none-or-one | one-or-more)
253 "one">
254 <!ATTLIST parameter-def type (string | boolean | number | date | time
255 | date-time | null | any | plugin-id
256 | extension-point-id | extension-id
257 | fixed | resource) "string">
258 <!ATTLIST parameter-def custom-data CDATA #IMPLIED>
259 <!ATTLIST parameter-def default-value CDATA #IMPLIED>
260
261
262 <!--
263 EXTENSION
264 Tags extension describe the functionality the plug-in contribute to the
265 system.
266 -->
267 <!ELEMENT extension (doc?, parameter*)>
268 <!ATTLIST extension plugin-id CDATA #REQUIRED>
269 <!ATTLIST extension point-id CDATA #REQUIRED>
270 <!ATTLIST extension id CDATA #REQUIRED>
271
272 <!--
273 EXTENSION PARAMETER
274
275 If both attribute and tag "value" present, only attribute will be taken
276 into account, the content of tag will be ignored.
277 Parameter value will be validated according to parameter definition
278 with corresponding ID.
279 -->
280 <!ELEMENT parameter (doc?, value?, parameter*)>
281 <!ATTLIST parameter id CDATA #REQUIRED>
282 <!ATTLIST parameter value CDATA #IMPLIED>
283
284 <!--
285 EXTENSION PARAMETER VALUE
286 This tag is used to define large size value for extension parameter.
287 For small size values it is recommended to use "value" attribute of
288 tag "parameter".
289 -->
290 <!ELEMENT value (#PCDATA)>

  ViewVC Help
Powered by ViewVC 1.1.26