blob: f1daf8f4526e015defd91477831c029a464fdc16 [file] [log] [blame]
gwt.team.scottbab0aa682006-12-06 23:14:19 +00001<?xml version="1.0" encoding="UTF-8"?>
2<!-- edited with XMLSpy v2005 rel. 3 U (http://www.altova.com) by Bruce Johnson (private) -->
3<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
4 <xs:element name="booklet">
5 <xs:annotation>
6 <xs:documentation>The documentation for the entire API</xs:documentation>
7 </xs:annotation>
8 <xs:complexType>
9 <xs:sequence>
10 <xs:group ref="sectionHead"/>
11 <xs:element ref="package" maxOccurs="unbounded"/>
12 </xs:sequence>
13 </xs:complexType>
14 </xs:element>
15 <xs:element name="package">
16 <xs:complexType>
17 <xs:sequence>
18 <xs:group ref="sectionHead"/>
19 <xs:choice minOccurs="0" maxOccurs="unbounded">
20 <xs:element ref="class"/>
21 <xs:element ref="interface"/>
22 </xs:choice>
23 </xs:sequence>
24 </xs:complexType>
25 </xs:element>
26 <xs:element name="class">
27 <xs:complexType>
28 <xs:sequence>
29 <xs:group ref="sectionHead"/>
30 <xs:group ref="access" minOccurs="0"/>
31 <xs:sequence>
32 <xs:element name="isAbstract" minOccurs="0"/>
33 <xs:element name="isStatic" minOccurs="0"/>
34 <xs:element name="isFinal" minOccurs="0"/>
35 </xs:sequence>
36 <xs:sequence>
37 <xs:element name="superclass" minOccurs="0">
38 <xs:complexType>
39 <xs:simpleContent>
40 <xs:extension base="xs:string">
41 <xs:attribute name="ref">
42 <xs:annotation>
43 <xs:documentation>The id of the type of the superclass</xs:documentation>
44 </xs:annotation>
45 </xs:attribute>
46 </xs:extension>
47 </xs:simpleContent>
48 </xs:complexType>
49 </xs:element>
50 <xs:element ref="superinterface" minOccurs="0" maxOccurs="unbounded"/>
51 </xs:sequence>
52 <xs:choice minOccurs="0" maxOccurs="unbounded">
53 <xs:element ref="field"/>
54 <xs:element ref="method"/>
55 <xs:element ref="class"/>
56 <xs:element ref="interface"/>
57 <xs:element ref="constructor"/>
58 </xs:choice>
59 </xs:sequence>
60 </xs:complexType>
61 </xs:element>
62 <xs:element name="interface">
63 <xs:complexType>
64 <xs:sequence>
65 <xs:group ref="sectionHead"/>
66 <xs:group ref="access" minOccurs="0"/>
67 <xs:sequence>
68 <xs:element name="isAbstract" minOccurs="0">
69 <xs:annotation>
70 <xs:documentation>Implied but harmless</xs:documentation>
71 </xs:annotation>
72 </xs:element>
73 <xs:element name="isStatic" minOccurs="0">
74 <xs:annotation>
75 <xs:documentation>Implied but harmless on a nested interface</xs:documentation>
76 </xs:annotation>
77 </xs:element>
78 </xs:sequence>
79 <xs:element ref="superinterface" minOccurs="0" maxOccurs="unbounded"/>
80 <xs:choice minOccurs="0" maxOccurs="unbounded">
81 <xs:element ref="field"/>
82 <xs:element ref="method"/>
83 <xs:element ref="class"/>
84 <xs:element ref="interface"/>
85 </xs:choice>
86 </xs:sequence>
87 </xs:complexType>
88 </xs:element>
89 <xs:element name="method">
90 <xs:complexType>
91 <xs:sequence>
92 <xs:group ref="sectionHead"/>
93 <xs:group ref="access" minOccurs="0"/>
94 <xs:choice minOccurs="0">
95 <xs:element name="isAbstract"/>
96 <xs:element name="isStatic">
97 <xs:annotation>
98 <xs:documentation>N/A when the method appears in an interface</xs:documentation>
99 </xs:annotation>
100 </xs:element>
101 <xs:element name="isFinal">
102 <xs:annotation>
103 <xs:documentation>N/A when the method appears in an interface</xs:documentation>
104 </xs:annotation>
105 </xs:element>
106 </xs:choice>
107 <xs:element ref="flatSignature"/>
108 <xs:element name="isSynchronized" minOccurs="0"/>
109 <xs:element name="type">
110 <xs:annotation>
111 <xs:documentation>The method return type</xs:documentation>
112 </xs:annotation>
113 </xs:element>
114 <xs:element ref="params"/>
115 <xs:element ref="throws" minOccurs="0"/>
116 </xs:sequence>
117 </xs:complexType>
118 </xs:element>
119 <xs:element name="field">
120 <xs:complexType>
121 <xs:sequence>
122 <xs:group ref="sectionHead"/>
123 <xs:group ref="access" minOccurs="0"/>
124 <xs:sequence>
125 <xs:element name="isStatic" minOccurs="0"/>
126 <xs:element name="isFinal" minOccurs="0"/>
127 </xs:sequence>
128 <xs:element name="type">
129 <xs:annotation>
130 <xs:documentation>The field type</xs:documentation>
131 </xs:annotation>
132 </xs:element>
133 </xs:sequence>
134 </xs:complexType>
135 </xs:element>
136 <xs:element name="link">
137 <xs:annotation>
138 <xs:documentation>An explicit link to an id in this same document format (relies on special treatment from XSLT)</xs:documentation>
139 </xs:annotation>
140 <xs:complexType mixed="true">
141 <xs:attribute name="ref">
142 <xs:annotation>
143 <xs:documentation>The link target id</xs:documentation>
144 </xs:annotation>
145 </xs:attribute>
146 </xs:complexType>
147 </xs:element>
148 <xs:element name="superinterface">
149 <xs:complexType>
150 <xs:simpleContent>
151 <xs:extension base="xs:string">
152 <xs:attribute name="ref">
153 <xs:annotation>
154 <xs:documentation>The id of the interface type</xs:documentation>
155 </xs:annotation>
156 </xs:attribute>
157 </xs:extension>
158 </xs:simpleContent>
159 </xs:complexType>
160 </xs:element>
161 <xs:element name="params">
162 <xs:annotation>
163 <xs:documentation>Method/constructor parameters in left-to-right order</xs:documentation>
164 </xs:annotation>
165 <xs:complexType>
166 <xs:sequence>
167 <xs:element name="param" minOccurs="0" maxOccurs="unbounded">
168 <xs:complexType>
169 <xs:sequence>
170 <xs:element name="type">
171 <xs:annotation>
172 <xs:documentation>The param type, as it should appear to the reader</xs:documentation>
173 </xs:annotation>
174 <xs:complexType>
175 <xs:simpleContent>
176 <xs:extension base="xs:string">
177 <xs:attribute name="ref">
178 <xs:annotation>
179 <xs:documentation>A reference to the type id of the param type</xs:documentation>
180 </xs:annotation>
181 </xs:attribute>
182 </xs:extension>
183 </xs:simpleContent>
184 </xs:complexType>
185 </xs:element>
186 <xs:element name="name" type="xs:string">
187 <xs:annotation>
188 <xs:documentation>The name of the param</xs:documentation>
189 </xs:annotation>
190 </xs:element>
191 </xs:sequence>
192 </xs:complexType>
193 </xs:element>
194 </xs:sequence>
195 </xs:complexType>
196 </xs:element>
197 <xs:element name="flatSignature">
198 <xs:annotation>
199 <xs:documentation>A simple param signature enclosed in parentheses that would differentitate overloads in a table of mehod links, such as "(int, Widget)"</xs:documentation>
200 </xs:annotation>
201 </xs:element>
202 <xs:group name="sectionHead">
203 <xs:sequence>
204 <xs:element name="id">
205 <xs:annotation>
206 <xs:documentation>The id of this section, which can be the target of a link and which should be unique across all documents which might want to link to this section </xs:documentation>
207 </xs:annotation>
208 </xs:element>
209 <xs:element name="name">
210 <xs:annotation>
211 <xs:documentation>The name/title of this section; if a @title tag is found, it should be used rather than the programmatic name</xs:documentation>
212 </xs:annotation>
213 </xs:element>
214 <xs:element name="location" minOccurs="0">
215 <xs:annotation>
216 <xs:documentation>TODO - replace me with better XSLT - A sequence of links that indicate structure back to the logical parent of this component within the doc hierarchy</xs:documentation>
217 </xs:annotation>
218 <xs:complexType>
219 <xs:sequence minOccurs="0" maxOccurs="unbounded">
220 <xs:element ref="link"/>
221 </xs:sequence>
222 </xs:complexType>
223 </xs:element>
224 <xs:element name="lead">
225 <xs:annotation>
226 <xs:documentation>Simple HTML intro text (a single phrase or sentence) that might appear in an overview table</xs:documentation>
227 </xs:annotation>
228 <xs:complexType mixed="true">
229 <xs:sequence minOccurs="0" maxOccurs="unbounded">
230 <xs:any namespace="##any" processContents="skip"/>
231 </xs:sequence>
232 </xs:complexType>
233 </xs:element>
234 <xs:element name="description">
235 <xs:annotation>
236 <xs:documentation>Detailed narrative related to the topic</xs:documentation>
237 </xs:annotation>
238 <xs:complexType mixed="true">
239 <xs:sequence minOccurs="0" maxOccurs="unbounded">
240 <xs:any namespace="##any" processContents="skip">
241 <xs:annotation>
242 <xs:documentation>HTML description; "link" elements inteded to be parsed and fixed up</xs:documentation>
243 </xs:annotation>
244 </xs:any>
245 </xs:sequence>
246 </xs:complexType>
247 </xs:element>
248 <xs:element name="tags" minOccurs="0">
249 <xs:annotation>
250 <xs:documentation>Arbitrary tags for which a particular XSLT might handle specially such as "param", "returns", "throws"; some well-known ones are included for reference</xs:documentation>
251 </xs:annotation>
252 <xs:complexType>
253 <xs:sequence minOccurs="0" maxOccurs="unbounded">
254 <xs:any namespace="##any" processContents="skip">
255 <xs:annotation>
256 <xs:documentation>@link or any out-of-band tag, such as those found in JavaDoc, go here for potential XSLT special treatment</xs:documentation>
257 </xs:annotation>
258 </xs:any>
259 </xs:sequence>
260 </xs:complexType>
261 </xs:element>
262 </xs:sequence>
263 </xs:group>
264 <xs:group name="access">
265 <xs:choice>
266 <xs:element name="isPublic"/>
267 <xs:element name="isProtected"/>
268 <xs:element name="isPackagePrivate"/>
269 <xs:element name="isPrivate"/>
270 </xs:choice>
271 </xs:group>
272 <xs:element name="constructor">
273 <xs:complexType>
274 <xs:sequence>
275 <xs:group ref="sectionHead"/>
276 <xs:group ref="access" minOccurs="0"/>
277 <xs:element ref="flatSignature"/>
278 <xs:element ref="params"/>
279 <xs:element ref="throws" minOccurs="0"/>
280 </xs:sequence>
281 </xs:complexType>
282 </xs:element>
283 <xs:element name="throws">
284 <xs:annotation>
285 <xs:documentation>A list of exception that might be thrown</xs:documentation>
286 </xs:annotation>
287 <xs:complexType>
288 <xs:sequence minOccurs="0" maxOccurs="unbounded">
289 <xs:element name="throw">
290 <xs:annotation>
291 <xs:documentation>Indicates a method/ctor might throw this type</xs:documentation>
292 </xs:annotation>
293 <xs:complexType mixed="true">
294 <xs:attribute name="ref">
295 <xs:annotation>
296 <xs:documentation>A reference to the id of the class that can be thrown</xs:documentation>
297 </xs:annotation>
298 </xs:attribute>
299 </xs:complexType>
300 </xs:element>
301 </xs:sequence>
302 </xs:complexType>
303 </xs:element>
304</xs:schema>