001 <?xml version="1.0" encoding="UTF-8"?>
002 <!-- edited with XMLSPY v5 rel. 2 U (http://www.xmlspy.com) by Dave Read (BEA Systems, Inc.) -->
003 <!-- edited with XML Spy v4.4 U (http://www.xmlspy.com) by David Read (private) -->
004 <xs:schema targetNamespace="http://www.bea.com/2003/03/controls/" xmlns="http://www.bea.com/2003/03/controls/" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
005 <xs:element name="jc-jar">
006 <xs:annotation>
007 <xs:documentation>Describes the contents of a control jar file.</xs:documentation>
008 </xs:annotation>
009 <xs:complexType>
010 <xs:sequence>
011 <xs:element name="control" maxOccurs="unbounded">
012 <xs:annotation>
013 <xs:documentation>The configuration of a specific control</xs:documentation>
014 </xs:annotation>
015 <xs:complexType>
016 <xs:sequence minOccurs="0">
017 <xs:element name="description" type="xs:string">
018 <xs:annotation>
019 <xs:documentation>Description of the control. Will have version attribute concatenated if present.</xs:documentation>
020 </xs:annotation>
021 </xs:element>
022 </xs:sequence>
023 <xs:attribute name="label" type="xs:string" use="required">
024 <xs:annotation>
025 <xs:documentation>The text displayed for this control in the palette (formerly "name").</xs:documentation>
026 </xs:annotation>
027 </xs:attribute>
028 <xs:attribute name="interface-class" type="xs:string" use="required">
029 <xs:annotation>
030 <xs:documentation>The fully qualified class name of the control interface.
031 </xs:documentation>
032 </xs:annotation>
033 </xs:attribute>
034 <xs:attribute name="implementation-class" type="xs:string" use="optional">
035 <xs:annotation>
036 <xs:documentation>Fully qualified name of the control implementation class. Only needed if the control implementation does not follow the convention of <interface>Impl in the same package as the control interface.</xs:documentation>
037 </xs:annotation>
038 </xs:attribute>
039 <xs:attribute name="insert-wizard-class" type="xs:string" use="optional">
040 <xs:annotation>
041 <xs:documentation>Fully qualified classname for a user provided insert wizard. If no class is provided, the default insert wizard will be used.</xs:documentation>
042 </xs:annotation>
043 </xs:attribute>
044 <xs:attribute name="version" type="xs:string" use="optional">
045 <xs:annotation>
046 <xs:documentation>A string representation of the control version. The format and meaning of the version is implementation specific. Will be appended to description in tool tip.</xs:documentation>
047 </xs:annotation>
048 </xs:attribute>
049 <xs:attribute name="icon-16" type="xs:string" use="optional">
050 <xs:annotation>
051 <xs:documentation>Path to an icon to be used in the control palette. If no icon is provided, only the label will be displayed in the palette.</xs:documentation>
052 </xs:annotation>
053 </xs:attribute>
054 <xs:attribute name="icon-32" type="xs:string" use="optional"/>
055 <xs:attribute name="group-priority" type="xs:int" use="optional">
056 <xs:annotation>
057 <xs:documentation>Optional group priority that can be used to organize the order in which groups of controls appear on menus.</xs:documentation>
058 </xs:annotation>
059 </xs:attribute>
060 <xs:attribute name="group-name" type="ControlGroupNameType" use="optional"/>
061 <xs:attribute name="palette-priority" type="PalettePriorityType" use="optional">
062 <xs:annotation>
063 <xs:documentation>Used as a hint to the IDE for ordering of controls within the palette.</xs:documentation>
064 </xs:annotation>
065 </xs:attribute>
066 <xs:attribute name="display-in-palette" type="xs:boolean" use="optional" default="true">
067 <xs:annotation>
068 <xs:documentation>Defines whether this control will be displayed in the control palette.</xs:documentation>
069 </xs:annotation>
070 </xs:attribute>
071 <xs:attribute name="resource-file" type="xs:string" use="optional">
072 <xs:annotation>
073 <xs:documentation>Optional name of resource file to load when the control author has provided localization strings. Note that the only values that can be localized in jc-jar.xml are:
074 1. label
075 2. version
076 3. description</xs:documentation>
077 </xs:annotation>
078 </xs:attribute>
079 <xs:attribute name="requires-extension" type="xs:boolean" use="optional" default="false"/>
080 </xs:complexType>
081 </xs:element>
082 </xs:sequence>
083 <xs:attribute name="default-group-name" type="ControlGroupNameType" use="optional">
084 <xs:annotation>
085 <xs:documentation>Default group name for controls in this jar file. If a control has its own group-name attribute, that value will be used for that control.
086 </xs:documentation>
087 </xs:annotation>
088 </xs:attribute>
089 </xs:complexType>
090 </xs:element>
091 <xs:element name="control-tags" type="ControlType">
092 <xs:annotation>
093 <xs:documentation>Describes the annotations for a specific control</xs:documentation>
094 </xs:annotation>
095 </xs:element>
096 <xs:complexType name="ControlType">
097 <xs:annotation>
098 <xs:documentation>Structure of a control. Note that this structure has been re-factored in beta. A tag is defined as either a control or method tag.</xs:documentation>
099 </xs:annotation>
100 <xs:sequence>
101 <xs:element name="control-tag" type="ControlTagType" minOccurs="0" maxOccurs="unbounded">
102 <xs:annotation>
103 <xs:documentation>A tag that applies to the control instance.</xs:documentation>
104 </xs:annotation>
105 </xs:element>
106 <xs:element name="method-tag" type="MethodTagType" minOccurs="0" maxOccurs="unbounded">
107 <xs:annotation>
108 <xs:documentation>A tag that applies to a method within a JCX. Javelin should verify that this type of tag only exists for a customized control (i.e. the control can support a JCX).</xs:documentation>
109 </xs:annotation>
110 </xs:element>
111 </xs:sequence>
112 <xs:attribute name="editor-class" type="xs:string" use="optional">
113 <xs:annotation>
114 <xs:documentation>Fully qualified class name of a user provided class (e.g. property builder)</xs:documentation>
115 </xs:annotation>
116 </xs:attribute>
117 <xs:attribute name="control-validator" type="xs:string" use="optional"/>
118 <xs:attribute name="method-validator" type="xs:string" use="optional"/>
119 </xs:complexType>
120 <xs:complexType name="BaseTagType">
121 <xs:annotation>
122 <xs:documentation>Structure of a tag that configures a control</xs:documentation>
123 </xs:annotation>
124 <xs:sequence>
125 <xs:element name="description" type="xs:string"/>
126 <xs:element name="attribute" minOccurs="0" maxOccurs="unbounded">
127 <xs:complexType>
128 <xs:complexContent>
129 <xs:extension base="TagAttributeType">
130 <xs:attribute name="required" type="xs:boolean" use="required"/>
131 </xs:extension>
132 </xs:complexContent>
133 </xs:complexType>
134 </xs:element>
135 <xs:element name="attribute-group" minOccurs="0" maxOccurs="unbounded">
136 <xs:complexType>
137 <xs:sequence>
138 <xs:element name="attribute" type="TagAttributeType" minOccurs="2" maxOccurs="unbounded"/>
139 </xs:sequence>
140 <xs:attribute name="group-type" type="AttributeGroupType" use="required"/>
141 </xs:complexType>
142 </xs:element>
143 </xs:sequence>
144 <xs:attribute name="name" type="xs:string" use="required">
145 <xs:annotation>
146 <xs:documentation>the name of the tag. does not include prefix.</xs:documentation>
147 </xs:annotation>
148 </xs:attribute>
149 <xs:attribute name="multiple" type="xs:boolean" use="optional" default="false">
150 <xs:annotation>
151 <xs:documentation>Whether the tag can have multiple occurrences.</xs:documentation>
152 </xs:annotation>
153 </xs:attribute>
154 <xs:attribute name="validator-class" type="xs:string" use="optional">
155 <xs:annotation>
156 <xs:documentation>Fully-qualified name (as string) of an optional user provided class. The class provides custom validation logic over the entire tag. This provides a mechanism for control authors to implement cross attribute validation for a specific tag instance.</xs:documentation>
157 </xs:annotation>
158 </xs:attribute>
159 <xs:attribute name="display-in-editor" type="xs:boolean" use="optional" default="true"/>
160 </xs:complexType>
161 <xs:simpleType name="PalettePriorityType">
162 <xs:annotation>
163 <xs:documentation>Range of priorities allowed for Palette Display</xs:documentation>
164 </xs:annotation>
165 <xs:restriction base="xs:integer">
166 <xs:minInclusive value="1"/>
167 <xs:maxInclusive value="10"/>
168 </xs:restriction>
169 </xs:simpleType>
170 <xs:complexType name="TagAttributeType">
171 <xs:sequence>
172 <xs:element name="description" type="xs:string"/>
173 <xs:element name="type">
174 <xs:complexType>
175 <xs:choice>
176 <xs:element name="text">
177 <xs:annotation>
178 <xs:documentation>Simple text representation</xs:documentation>
179 </xs:annotation>
180 <xs:complexType>
181 <xs:attribute name="max-length" type="xs:int" use="optional">
182 <xs:annotation>
183 <xs:documentation>Max length of the text value.</xs:documentation>
184 </xs:annotation>
185 </xs:attribute>
186 <xs:attribute name="long" type="xs:boolean" use="optional" default="false">
187 <xs:annotation>
188 <xs:documentation>An indication for the IDE as to whether the text value should be edited in place or if a text box should be opened.</xs:documentation>
189 </xs:annotation>
190 </xs:attribute>
191 </xs:complexType>
192 </xs:element>
193 <xs:element name="enumeration">
194 <xs:annotation>
195 <xs:documentation>A list of valid values</xs:documentation>
196 </xs:annotation>
197 <xs:complexType>
198 <xs:sequence>
199 <xs:element name="value" type="xs:string" maxOccurs="unbounded">
200 <xs:annotation>
201 <xs:documentation>A valid value as a string</xs:documentation>
202 </xs:annotation>
203 </xs:element>
204 </xs:sequence>
205 </xs:complexType>
206 </xs:element>
207 <xs:element name="boolean">
208 <xs:annotation>
209 <xs:documentation>true/false</xs:documentation>
210 </xs:annotation>
211 <xs:complexType/>
212 </xs:element>
213 <xs:element name="decimal">
214 <xs:annotation>
215 <xs:documentation>non-integral value</xs:documentation>
216 </xs:annotation>
217 <xs:complexType>
218 <xs:attribute name="places" type="xs:int" use="optional">
219 <xs:annotation>
220 <xs:documentation>The number of decimal places</xs:documentation>
221 </xs:annotation>
222 </xs:attribute>
223 <xs:attribute name="min-value" type="xs:decimal" use="optional">
224 <xs:annotation>
225 <xs:documentation>The minimum value inclusive</xs:documentation>
226 </xs:annotation>
227 </xs:attribute>
228 <xs:attribute name="max-value" type="xs:decimal" use="optional">
229 <xs:annotation>
230 <xs:documentation>The maximum value inclusive</xs:documentation>
231 </xs:annotation>
232 </xs:attribute>
233 </xs:complexType>
234 </xs:element>
235 <xs:element name="integer">
236 <xs:annotation>
237 <xs:documentation>Integral value</xs:documentation>
238 </xs:annotation>
239 <xs:complexType>
240 <xs:attribute name="min-value" type="xs:long" use="optional">
241 <xs:annotation>
242 <xs:documentation>Minimum value inclusive</xs:documentation>
243 </xs:annotation>
244 </xs:attribute>
245 <xs:attribute name="max-value" type="xs:long" use="optional">
246 <xs:annotation>
247 <xs:documentation>Maximum value inclusive</xs:documentation>
248 </xs:annotation>
249 </xs:attribute>
250 </xs:complexType>
251 </xs:element>
252 <xs:element name="date">
253 <xs:annotation>
254 <xs:documentation>Date</xs:documentation>
255 </xs:annotation>
256 <xs:complexType>
257 <xs:attribute name="min-value" type="xs:date" use="optional">
258 <xs:annotation>
259 <xs:documentation>Minimum value inclusive</xs:documentation>
260 </xs:annotation>
261 </xs:attribute>
262 <xs:attribute name="max-value" type="xs:date" use="optional">
263 <xs:annotation>
264 <xs:documentation>Maximum value inclusive</xs:documentation>
265 </xs:annotation>
266 </xs:attribute>
267 </xs:complexType>
268 </xs:element>
269 <xs:element name="URI" type="xs:string"/>
270 <xs:element name="URN" type="xs:string"/>
271 <xs:element name="URL" type="xs:string"/>
272 <xs:element name="QNAME">
273 <xs:annotation>
274 <xs:documentation>An XML qualified name prefix:local part</xs:documentation>
275 </xs:annotation>
276 <xs:complexType/>
277 </xs:element>
278 <xs:element name="XML">
279 <xs:annotation>
280 <xs:documentation>Well-formed XML</xs:documentation>
281 </xs:annotation>
282 <xs:complexType/>
283 </xs:element>
284 <xs:element name="class-name" type="xs:string">
285 <xs:annotation>
286 <xs:documentation>Fully-qualified class name</xs:documentation>
287 </xs:annotation>
288 </xs:element>
289 <xs:element name="class-names" type="xs:string">
290 <xs:annotation>
291 <xs:documentation>Space-separated list of fully qualified class names</xs:documentation>
292 </xs:annotation>
293 </xs:element>
294 <xs:element name="file-path">
295 <xs:annotation>
296 <xs:documentation>Valid file path</xs:documentation>
297 </xs:annotation>
298 </xs:element>
299 <xs:element name="custom">
300 <xs:annotation>
301 <xs:documentation>A custom (user defined) type</xs:documentation>
302 </xs:annotation>
303 <xs:complexType>
304 <xs:attribute name="name" type="xs:string" use="required">
305 <xs:annotation>
306 <xs:documentation>The name of the type</xs:documentation>
307 </xs:annotation>
308 </xs:attribute>
309 <xs:attribute name="class-name" type="xs:string" use="required">
310 <xs:annotation>
311 <xs:documentation>The fully qualified name of the class that implements an interface for validation of a type.</xs:documentation>
312 </xs:annotation>
313 </xs:attribute>
314 </xs:complexType>
315 </xs:element>
316 </xs:choice>
317 </xs:complexType>
318 </xs:element>
319 <xs:element name="default-value" type="xs:string" minOccurs="0">
320 <xs:annotation>
321 <xs:documentation>Default value for the attribute.</xs:documentation>
322 </xs:annotation>
323 </xs:element>
324 </xs:sequence>
325 <xs:attribute name="name" type="xs:string" use="required">
326 <xs:annotation>
327 <xs:documentation>Attribute name
328 </xs:documentation>
329 </xs:annotation>
330 </xs:attribute>
331 </xs:complexType>
332 <xs:complexType name="ControlTagType">
333 <xs:complexContent>
334 <xs:extension base="BaseTagType">
335 <xs:attribute name="allow-declaration-override" type="xs:boolean" use="optional" default="true"/>
336 </xs:extension>
337 </xs:complexContent>
338 </xs:complexType>
339 <xs:complexType name="MethodTagType">
340 <xs:complexContent>
341 <xs:extension base="BaseTagType">
342 <xs:attribute name="method-location" type="JbcxMethodType" use="optional" default="interface-method">
343 <xs:annotation>
344 <xs:documentation>Defines the types of methods where this tag can exist. Javelin should verify that the methods match the control implementation (e.g. the control is extensible, there is a callback interface, etc).
345 </xs:documentation>
346 </xs:annotation>
347 </xs:attribute>
348 </xs:extension>
349 </xs:complexContent>
350 </xs:complexType>
351 <xs:simpleType name="JbcxMethodType">
352 <xs:restriction base="xs:string">
353 <xs:enumeration value="interface-method"/>
354 <xs:enumeration value="callback-method"/>
355 <xs:enumeration value="both"/>
356 </xs:restriction>
357 </xs:simpleType>
358 <xs:simpleType name="ControlGroupNameType">
359 <xs:annotation>
360 <xs:documentation>Optional group name that can be used to organize the control palette.</xs:documentation>
361 </xs:annotation>
362 <xs:restriction base="xs:string"/>
363 </xs:simpleType>
364 <xs:simpleType name="AttributeGroupType">
365 <xs:restriction base="xs:string">
366 <xs:enumeration value="at-most-one"/>
367 <xs:enumeration value="exactly-one"/>
368 <xs:enumeration value="at-least-one"/>
369 </xs:restriction>
370 </xs:simpleType>
371 </xs:schema>
|