2521a2eaa218dd26cfe0d3204f751a0bbcf1adb2
[platform/upstream/doxygen.git] / src / compound.xsd
1 <?xml version='1.0' encoding='utf-8' ?>
2 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3   <xsd:element name="doxygen" type="DoxygenType"/>
4
5   <!-- Complex types -->
6
7   <xsd:complexType name="DoxygenType">
8     <xsd:sequence maxOccurs="unbounded">
9       <xsd:element name="compounddef" type="compounddefType" minOccurs="0" />
10     </xsd:sequence>
11     <xsd:attribute name="version" type="DoxVersionNumber" use="required" />
12   </xsd:complexType>
13
14   <xsd:complexType name="compounddefType">
15     <xsd:sequence>
16       <xsd:element name="compoundname" type="xsd:string"/>
17       <xsd:element name="title" type="xsd:string" minOccurs="0" />
18       <xsd:element name="basecompoundref" type="compoundRefType" minOccurs="0" maxOccurs="unbounded" />
19       <xsd:element name="derivedcompoundref" type="compoundRefType" minOccurs="0" maxOccurs="unbounded" />
20       <xsd:element name="includes" type="incType" minOccurs="0" maxOccurs="unbounded" />
21       <xsd:element name="includedby" type="incType" minOccurs="0" maxOccurs="unbounded" />
22       <xsd:element name="incdepgraph" type="graphType" minOccurs="0" />
23       <xsd:element name="invincdepgraph" type="graphType" minOccurs="0" />
24       <xsd:element name="innerdir" type="refType" minOccurs="0" maxOccurs="unbounded" />
25       <xsd:element name="innerfile" type="refType" minOccurs="0" maxOccurs="unbounded" />
26       <xsd:element name="innerclass" type="refType" minOccurs="0" maxOccurs="unbounded" />
27       <xsd:element name="innernamespace" type="refType" minOccurs="0" maxOccurs="unbounded" />
28       <xsd:element name="innerpage" type="refType" minOccurs="0" maxOccurs="unbounded" />
29       <xsd:element name="innergroup" type="refType" minOccurs="0" maxOccurs="unbounded" />
30       <xsd:element name="templateparamlist" type="templateparamlistType" minOccurs="0" />
31       <xsd:element name="sectiondef" type="sectiondefType" minOccurs="0" maxOccurs="unbounded" />
32       <xsd:element name="briefdescription" type="descriptionType" minOccurs="0" />
33       <xsd:element name="detaileddescription" type="descriptionType" minOccurs="0" />
34       <xsd:element name="inheritancegraph" type="graphType" minOccurs="0" />
35       <xsd:element name="collaborationgraph" type="graphType" minOccurs="0" />
36       <xsd:element name="programlisting" type="listingType" minOccurs="0" />
37       <xsd:element name="location" type="locationType" minOccurs="0" />
38       <xsd:element name="listofallmembers" type="listofallmembersType" minOccurs="0" />
39     </xsd:sequence>
40     <xsd:attribute name="id" type="xsd:string" />
41     <xsd:attribute name="kind" type="DoxCompoundKind" />
42     <xsd:attribute name="prot" type="DoxProtectionKind" />
43     <xsd:attribute name="final" type="DoxBool" use="optional"/>
44     <xsd:attribute name="sealed" type="DoxBool" use="optional"/>
45     <xsd:attribute name="abstract" type="DoxBool" use="optional"/>
46   </xsd:complexType>
47
48   <xsd:complexType name="listofallmembersType">
49     <xsd:sequence>
50       <xsd:element name="member" type="memberRefType" minOccurs="0" maxOccurs="unbounded" />
51     </xsd:sequence>
52   </xsd:complexType>
53
54   <xsd:complexType name="memberRefType">
55     <xsd:sequence>
56       <xsd:element name="scope" />
57       <xsd:element name="name" />
58     </xsd:sequence>
59     <xsd:attribute name="refid" type="xsd:string" />
60     <xsd:attribute name="prot" type="DoxProtectionKind" />
61     <xsd:attribute name="virt" type="DoxVirtualKind" />
62     <xsd:attribute name="ambiguityscope" type="xsd:string" />
63   </xsd:complexType>
64
65   <xsd:complexType name="compoundRefType">
66     <xsd:simpleContent>
67       <xsd:extension base="xsd:string">
68         <xsd:attribute name="refid" type="xsd:string" use="optional" />
69         <xsd:attribute name="prot" type="DoxProtectionKind" />
70         <xsd:attribute name="virt" type="DoxVirtualKind" />
71       </xsd:extension>
72     </xsd:simpleContent>
73   </xsd:complexType>
74
75   <xsd:complexType name="reimplementType">
76     <xsd:simpleContent>
77       <xsd:extension base="xsd:string">
78         <xsd:attribute name="refid" type="xsd:string" />
79       </xsd:extension>
80     </xsd:simpleContent>
81   </xsd:complexType>
82
83   <xsd:complexType name="incType">
84     <xsd:simpleContent>
85       <xsd:extension base="xsd:string">
86         <xsd:attribute name="refid" type="xsd:string" />
87         <xsd:attribute name="local" type="DoxBool" />
88       </xsd:extension>
89     </xsd:simpleContent>
90   </xsd:complexType>
91
92   <xsd:complexType name="refType">
93     <xsd:simpleContent>
94       <xsd:extension base="xsd:string">
95         <xsd:attribute name="refid" type="xsd:string" />
96         <xsd:attribute name="prot" type="DoxProtectionKind" use="optional"/>
97       </xsd:extension>
98     </xsd:simpleContent>
99   </xsd:complexType>
100
101   <xsd:complexType name="refTextType">
102     <xsd:simpleContent>
103       <xsd:extension base="xsd:string">
104        <xsd:attribute name="refid" type="xsd:string" />
105        <xsd:attribute name="kindref" type="DoxRefKind" />
106        <xsd:attribute name="external" type="xsd:string" use="optional"/>
107        <xsd:attribute name="tooltip" type="xsd:string" use="optional"/>
108       </xsd:extension>
109     </xsd:simpleContent>
110   </xsd:complexType>
111
112   <xsd:complexType name="sectiondefType">
113     <xsd:sequence>
114       <xsd:element name="header" type="xsd:string" minOccurs="0" />
115       <xsd:element name="description" type="descriptionType" minOccurs="0" />
116       <xsd:element name="memberdef" type="memberdefType" maxOccurs="unbounded" />
117     </xsd:sequence>
118     <xsd:attribute name="kind" type="DoxSectionKind" />
119   </xsd:complexType>
120
121   <xsd:complexType name="memberdefType">
122     <xsd:sequence>
123       <xsd:element name="templateparamlist" type="templateparamlistType" minOccurs="0" />
124       <xsd:element name="type" type="linkedTextType" minOccurs="0" />
125       <xsd:element name="definition" minOccurs="0" />
126       <xsd:element name="argsstring" minOccurs="0" />
127       <xsd:element name="name" />
128       <xsd:element name="read" minOccurs="0" />
129       <xsd:element name="write" minOccurs="0" />
130       <xsd:element name="bitfield" minOccurs="0" />
131       <xsd:element name="reimplements" type="reimplementType" minOccurs="0" maxOccurs="unbounded" />
132       <xsd:element name="reimplementedby" type="reimplementType" minOccurs="0" maxOccurs="unbounded" />
133       <xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded" />
134       <xsd:element name="enumvalue" type="enumvalueType" minOccurs="0" maxOccurs="unbounded" />
135       <xsd:element name="initializer" type="linkedTextType" minOccurs="0" />
136       <xsd:element name="exceptions" type="linkedTextType" minOccurs="0" />
137       <xsd:element name="briefdescription" type="descriptionType" minOccurs="0" />
138       <xsd:element name="detaileddescription" type="descriptionType" minOccurs="0" />
139       <xsd:element name="inbodydescription" type="descriptionType" minOccurs="0" />
140       <xsd:element name="location" type="locationType" />
141       <xsd:element name="references" type="referenceType" minOccurs="0" maxOccurs="unbounded" />
142       <xsd:element name="referencedby" type="referenceType" minOccurs="0" maxOccurs="unbounded" />
143     </xsd:sequence>
144     <xsd:attribute name="kind" type="DoxMemberKind" />
145     <xsd:attribute name="id" type="xsd:string" />
146     <xsd:attribute name="prot" type="DoxProtectionKind" />
147     <xsd:attribute name="static" type="DoxBool" />
148     <xsd:attribute name="const" type="DoxBool" />
149     <xsd:attribute name="explicit" type="DoxBool" />
150     <xsd:attribute name="inline" type="DoxBool" />
151     <xsd:attribute name="virt" type="DoxVirtualKind" />
152     <xsd:attribute name="volatile" type="DoxBool" />
153     <xsd:attribute name="mutable" type="DoxBool" />
154     <!-- Qt property -->
155     <xsd:attribute name="readable" type="DoxBool" use="optional"/>
156     <xsd:attribute name="writable" type="DoxBool" use="optional"/>
157     <!-- C++/CLI variable -->
158     <xsd:attribute name="initonly" type="DoxBool" use="optional"/>
159     <!-- C++/CLI and C# property -->
160     <xsd:attribute name="settable" type="DoxBool" use="optional"/>
161     <xsd:attribute name="gettable" type="DoxBool" use="optional"/>
162     <!-- C++/CLI function -->
163     <xsd:attribute name="final" type="DoxBool" use="optional"/>
164     <xsd:attribute name="sealed" type="DoxBool" use="optional"/>
165     <xsd:attribute name="new" type="DoxBool" use="optional"/>
166     <!-- C++/CLI event -->
167     <xsd:attribute name="add" type="DoxBool" use="optional"/>
168     <xsd:attribute name="remove" type="DoxBool" use="optional"/>
169     <xsd:attribute name="raise" type="DoxBool" use="optional"/>
170     <!-- Objective-C 2.0 protocol method -->
171     <xsd:attribute name="optional" type="DoxBool" use="optional"/>
172     <xsd:attribute name="required" type="DoxBool" use="optional"/>
173     <!-- Objective-C 2.0 property accessor -->
174     <xsd:attribute name="accessor" type="DoxAccessor" use="optional"/>
175     <!-- UNO IDL -->
176     <xsd:attribute name="attribute" type="DoxBool" use="optional"/>
177     <xsd:attribute name="property" type="DoxBool" use="optional"/>
178     <xsd:attribute name="readonly" type="DoxBool" use="optional"/>
179     <xsd:attribute name="bound" type="DoxBool" use="optional"/>
180     <xsd:attribute name="removable" type="DoxBool" use="optional"/>
181     <xsd:attribute name="contrained" type="DoxBool" use="optional"/>
182     <xsd:attribute name="transient" type="DoxBool" use="optional"/>
183     <xsd:attribute name="maybevoid" type="DoxBool" use="optional"/>
184     <xsd:attribute name="maybedefault" type="DoxBool" use="optional"/>
185     <xsd:attribute name="maybeambiguous" type="DoxBool" use="optional"/>
186
187   </xsd:complexType>
188
189   <xsd:complexType name="descriptionType" mixed="true">
190     <xsd:sequence>
191       <xsd:element name="title" type="xsd:string" minOccurs="0"/>           
192       <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
193       <xsd:element name="sect1" type="docSect1Type" minOccurs="0" maxOccurs="unbounded" />
194       <xsd:element name="internal" type="docInternalType" minOccurs="0" />
195     </xsd:sequence>
196   </xsd:complexType>
197
198   <xsd:complexType name="enumvalueType" mixed="true">
199     <xsd:sequence>
200       <xsd:element name="name" />
201       <xsd:element name="initializer" type="linkedTextType" minOccurs="0" />
202       <xsd:element name="briefdescription" type="descriptionType" minOccurs="0" />
203       <xsd:element name="detaileddescription" type="descriptionType" minOccurs="0" />
204     </xsd:sequence>
205     <xsd:attribute name="id" type="xsd:string" />
206     <xsd:attribute name="prot" type="DoxProtectionKind" />
207   </xsd:complexType>
208
209   <xsd:complexType name="templateparamlistType">
210     <xsd:sequence>
211       <xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded" />
212     </xsd:sequence>
213   </xsd:complexType>
214
215   <xsd:complexType name="paramType">
216     <xsd:sequence>
217       <xsd:element name="type" type="linkedTextType" minOccurs="0" />
218       <xsd:element name="declname" minOccurs="0" />
219       <xsd:element name="defname" minOccurs="0" />
220       <xsd:element name="array" minOccurs="0" />
221       <xsd:element name="defval" type="linkedTextType" minOccurs="0" />
222       <xsd:element name="briefdescription" type="descriptionType" minOccurs="0" />
223     </xsd:sequence>
224   </xsd:complexType>
225
226   <xsd:complexType name="linkedTextType" mixed="true">
227     <xsd:sequence>
228     <xsd:element name="ref" type="refTextType" minOccurs="0" maxOccurs="unbounded" />
229     </xsd:sequence>
230   </xsd:complexType>
231
232   <xsd:complexType name="graphType">
233     <xsd:sequence>
234       <xsd:element name="node" type="nodeType" maxOccurs="unbounded" />
235     </xsd:sequence>
236   </xsd:complexType>
237
238   <xsd:complexType name="nodeType">
239     <xsd:sequence>
240       <xsd:element name="label" />
241       <xsd:element name="link" type="linkType" minOccurs="0" />
242       <xsd:element name="childnode" type="childnodeType" minOccurs="0" maxOccurs="unbounded" />
243     </xsd:sequence>
244     <xsd:attribute name="id" type="xsd:string" />
245   </xsd:complexType>
246
247   <xsd:complexType name="childnodeType">
248     <xsd:sequence>
249       <xsd:element name="edgelabel" minOccurs="0" maxOccurs="unbounded"/>
250     </xsd:sequence>
251     <xsd:attribute name="refid" type="xsd:string" />
252     <xsd:attribute name="relation" type="DoxGraphRelation" />
253   </xsd:complexType>
254
255   <xsd:complexType name="linkType">
256     <xsd:attribute name="refid" type="xsd:string" />
257     <xsd:attribute name="external" type="xsd:string" use="optional"/>
258   </xsd:complexType>
259
260   <xsd:complexType name="listingType">
261     <xsd:sequence>
262       <xsd:element name="codeline" type="codelineType" minOccurs="0" maxOccurs="unbounded" />
263     </xsd:sequence>
264   </xsd:complexType>
265
266   <xsd:complexType name="codelineType">
267     <xsd:sequence>
268       <xsd:element name="highlight" type="highlightType" minOccurs="0" maxOccurs="unbounded" />
269     </xsd:sequence>
270     <xsd:attribute name="lineno" type="xsd:integer" />
271     <xsd:attribute name="refid" type="xsd:string" />
272     <xsd:attribute name="refkind" type="DoxRefKind" />
273     <xsd:attribute name="external" type="DoxBool" />
274   </xsd:complexType>
275
276   <xsd:complexType name="highlightType" mixed="true">
277     <xsd:choice minOccurs="0" maxOccurs="unbounded">
278       <xsd:element name="sp" />
279       <xsd:element name="ref" type="refTextType" />
280     </xsd:choice>
281     <xsd:attribute name="class" type="DoxHighlightClass" />
282   </xsd:complexType>
283
284   <xsd:complexType name="referenceType" mixed="true">
285     <xsd:attribute name="refid" type="xsd:string" />
286     <xsd:attribute name="compoundref" type="xsd:string" use="optional" />
287     <xsd:attribute name="startline" type="xsd:integer" />
288     <xsd:attribute name="endline" type="xsd:integer" />
289   </xsd:complexType>
290
291   <xsd:complexType name="locationType">
292     <xsd:attribute name="file" type="xsd:string" />
293     <xsd:attribute name="line" type="xsd:integer" />
294     <xsd:attribute name="column" type="xsd:integer" use="optional"/>
295     <xsd:attribute name="bodyfile" type="xsd:string" />
296     <xsd:attribute name="bodystart" type="xsd:integer" />
297     <xsd:attribute name="bodyend" type="xsd:integer" />
298   </xsd:complexType>
299
300   <xsd:complexType name="docSect1Type" mixed="true">
301     <xsd:sequence>
302       <xsd:element name="title" type="xsd:string" />        
303       <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
304       <xsd:element name="sect2" type="docSect2Type" minOccurs="0" maxOccurs="unbounded" />
305       <xsd:element name="internal" type="docInternalS1Type" minOccurs="0" />
306     </xsd:sequence>
307     <xsd:attribute name="id" type="xsd:string" />
308   </xsd:complexType>
309
310   <xsd:complexType name="docSect2Type" mixed="true">
311     <xsd:sequence>
312       <xsd:element name="title" type="xsd:string" />        
313       <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
314       <xsd:element name="sect3" type="docSect3Type" minOccurs="0" maxOccurs="unbounded" />
315       <xsd:element name="internal" type="docInternalS2Type" minOccurs="0" />
316     </xsd:sequence>
317     <xsd:attribute name="id" type="xsd:string" />
318   </xsd:complexType>
319
320   <xsd:complexType name="docSect3Type" mixed="true">
321     <xsd:sequence>
322       <xsd:element name="title" type="xsd:string" />        
323       <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
324       <xsd:element name="sect4" type="docSect4Type" minOccurs="0" maxOccurs="unbounded" />
325       <xsd:element name="internal" type="docInternalS3Type" minOccurs="0" />
326     </xsd:sequence>
327     <xsd:attribute name="id" type="xsd:string" />
328   </xsd:complexType>
329
330   <xsd:complexType name="docSect4Type" mixed="true">
331     <xsd:sequence>
332       <xsd:element name="title" type="xsd:string" />        
333       <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
334       <xsd:element name="internal" type="docInternalS4Type" minOccurs="0" />
335     </xsd:sequence>
336     <xsd:attribute name="id" type="xsd:string" />
337   </xsd:complexType>
338
339   <xsd:complexType name="docInternalType" mixed="true">
340     <xsd:sequence>
341       <xsd:element name="para"  type="docParaType"  minOccurs="0" maxOccurs="unbounded" />
342       <xsd:element name="sect1" type="docSect1Type" minOccurs="0" maxOccurs="unbounded" />
343     </xsd:sequence>
344   </xsd:complexType>
345
346   <xsd:complexType name="docInternalS1Type" mixed="true">
347     <xsd:sequence>
348       <xsd:element name="para"  type="docParaType"  minOccurs="0" maxOccurs="unbounded" />
349       <xsd:element name="sect2" type="docSect2Type" minOccurs="0" maxOccurs="unbounded" />
350     </xsd:sequence>
351   </xsd:complexType>
352
353   <xsd:complexType name="docInternalS2Type" mixed="true">
354     <xsd:sequence>
355       <xsd:element name="para"  type="docParaType"  minOccurs="0" maxOccurs="unbounded" />
356       <xsd:element name="sect3" type="docSect3Type" minOccurs="0" maxOccurs="unbounded" />
357     </xsd:sequence>
358   </xsd:complexType>
359
360   <xsd:complexType name="docInternalS3Type" mixed="true">
361     <xsd:sequence>
362       <xsd:element name="para"  type="docParaType"  minOccurs="0" maxOccurs="unbounded" />
363       <xsd:element name="sect3" type="docSect4Type" minOccurs="0" maxOccurs="unbounded" />
364     </xsd:sequence>
365   </xsd:complexType>
366
367   <xsd:complexType name="docInternalS4Type" mixed="true">
368     <xsd:sequence>
369       <xsd:element name="para"  type="docParaType"  minOccurs="0" maxOccurs="unbounded" />
370     </xsd:sequence>
371   </xsd:complexType>
372  
373   <xsd:group name="docTitleCmdGroup">
374     <xsd:choice>
375       <xsd:element name="ulink" type="docURLLink" />
376       <xsd:element name="bold" type="docMarkupType" />
377       <xsd:element name="emphasis" type="docMarkupType" />
378       <xsd:element name="computeroutput" type="docMarkupType" />
379       <xsd:element name="subscript" type="docMarkupType" />
380       <xsd:element name="superscript" type="docMarkupType" />
381       <xsd:element name="center" type="docMarkupType" />
382       <xsd:element name="small" type="docMarkupType" />
383       <xsd:element name="htmlonly" type="xsd:string" />
384       <xsd:element name="manonly" type="xsd:string" />
385       <xsd:element name="xmlonly" type="xsd:string" />
386       <xsd:element name="rtfonly" type="xsd:string" />
387       <xsd:element name="latexonly" type="xsd:string" />
388       <xsd:element name="dot" type="xsd:string" />
389       <xsd:element name="msc" type="xsd:string" />
390       <xsd:element name="anchor" type="docAnchorType" />
391       <xsd:element name="formula" type="docFormulaType" />
392       <xsd:element name="ref" type="docRefTextType" />
393       <!-- Automatically insert here the HTML entities -->
394     </xsd:choice>
395   </xsd:group>
396
397   <xsd:complexType name="docTitleType" mixed="true">
398     <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
399   </xsd:complexType>
400
401   <xsd:group name="docCmdGroup">
402     <xsd:choice>
403       <xsd:group ref="docTitleCmdGroup"/>
404       <xsd:element name="linebreak" type="docEmptyType" />
405       <xsd:element name="hruler" type="docEmptyType" />
406       <xsd:element name="preformatted" type="docMarkupType" />
407       <xsd:element name="programlisting" type="listingType" />
408       <xsd:element name="verbatim" type="xsd:string" />
409       <xsd:element name="indexentry" type="docIndexEntryType" />
410       <xsd:element name="orderedlist" type="docListType" />
411       <xsd:element name="itemizedlist" type="docListType" />
412       <xsd:element name="simplesect" type="docSimpleSectType" />
413       <xsd:element name="title" type="docTitleType" />
414       <xsd:element name="variablelist" type="docVariableListType" />
415       <xsd:element name="table" type="docTableType" />
416       <xsd:element name="heading" type="docHeadingType" />
417       <xsd:element name="image" type="docImageType" />
418       <xsd:element name="dotfile" type="docFileType" />
419       <xsd:element name="mscfile" type="docFileType" />
420       <xsd:element name="diafile" type="docFileType" />
421       <xsd:element name="toclist" type="docTocListType" />
422       <xsd:element name="language" type="docLanguageType" />
423       <xsd:element name="parameterlist" type="docParamListType" />
424       <xsd:element name="xrefsect" type="docXRefSectType" />
425       <xsd:element name="copydoc" type="docCopyType" />
426       <xsd:element name="blockquote" type="docBlockQuoteType" />
427       <xsd:element name="parblock" type="docParBlockType" />
428     </xsd:choice>
429   </xsd:group>
430
431   <xsd:complexType name="docParaType" mixed="true">
432     <xsd:group ref="docCmdGroup" minOccurs="0" maxOccurs="unbounded" />
433   </xsd:complexType>
434
435   <xsd:complexType name="docMarkupType" mixed="true">
436     <xsd:group ref="docCmdGroup" minOccurs="0" maxOccurs="unbounded" />
437   </xsd:complexType>
438
439   <xsd:complexType name="docURLLink" mixed="true">
440     <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
441     <xsd:attribute name="url" type="xsd:string" />
442   </xsd:complexType>
443
444   <xsd:complexType name="docAnchorType" mixed="true">
445     <xsd:attribute name="id" type="xsd:string" />
446   </xsd:complexType>
447
448   <xsd:complexType name="docFormulaType" mixed="true">
449     <xsd:attribute name="id" type="xsd:string" />
450   </xsd:complexType>
451
452   <xsd:complexType name="docIndexEntryType">
453     <xsd:sequence>
454       <xsd:element name="primaryie" type="xsd:string" />
455       <xsd:element name="secondaryie" type="xsd:string" />
456     </xsd:sequence>
457   </xsd:complexType>
458
459   <xsd:complexType name="docListType">
460     <xsd:sequence>
461       <xsd:element name="listitem" type="docListItemType" maxOccurs="unbounded" />
462     </xsd:sequence>
463   </xsd:complexType>
464
465   <xsd:complexType name="docListItemType">
466     <xsd:sequence>
467       <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
468     </xsd:sequence>
469   </xsd:complexType>
470
471   <xsd:complexType name="docSimpleSectType">
472     <xsd:sequence>
473       <xsd:element name="title" type="docTitleType" minOccurs="0" />
474       <xsd:sequence minOccurs="0" maxOccurs="unbounded">
475         <xsd:element name="para" type="docParaType" minOccurs="1" maxOccurs="unbounded" />
476       </xsd:sequence>
477     </xsd:sequence>
478     <xsd:attribute name="kind" type="DoxSimpleSectKind" />
479   </xsd:complexType>
480
481   <xsd:complexType name="docVarListEntryType">
482     <xsd:sequence>
483       <xsd:element name="term" type="docTitleType" />
484     </xsd:sequence>
485   </xsd:complexType>
486
487   <xsd:group name="docVariableListGroup">
488     <xsd:sequence>
489       <xsd:element name="varlistentry" type="docVarListEntryType" />
490       <xsd:element name="listitem" type="docListItemType" />
491     </xsd:sequence>
492   </xsd:group>
493
494   <xsd:complexType name="docVariableListType">
495     <xsd:sequence>
496       <xsd:group ref="docVariableListGroup" maxOccurs="unbounded" />
497     </xsd:sequence>
498   </xsd:complexType>
499
500   <xsd:complexType name="docRefTextType" mixed="true">
501     <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
502     <xsd:attribute name="refid" type="xsd:string" />
503     <xsd:attribute name="kindref" type="DoxRefKind" />
504     <xsd:attribute name="external" type="xsd:string" />
505   </xsd:complexType>
506
507   <xsd:complexType name="docTableType">
508     <xsd:sequence>
509       <xsd:element name="row" type="docRowType" minOccurs="0" maxOccurs="unbounded" />
510       <xsd:element name="caption" type="docCaptionType" minOccurs="0" />
511     </xsd:sequence>
512     <xsd:attribute name="rows" type="xsd:integer" />
513     <xsd:attribute name="cols" type="xsd:integer" />
514   </xsd:complexType>
515
516   <xsd:complexType name="docRowType">
517     <xsd:sequence>
518       <xsd:element name="entry" type="docEntryType" minOccurs="0" maxOccurs="unbounded" />
519     </xsd:sequence>
520   </xsd:complexType>
521
522   <xsd:complexType name="docEntryType">
523     <xsd:sequence>
524       <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
525     </xsd:sequence>
526     <xsd:attribute name="thead" type="DoxBool" />
527   </xsd:complexType>
528
529   <xsd:complexType name="docCaptionType" mixed="true">
530     <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
531   </xsd:complexType>
532
533   <xsd:complexType name="docHeadingType" mixed="true">
534     <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
535     <xsd:attribute name="level" type="xsd:integer" /> <!-- todo: range 1-6 -->
536   </xsd:complexType>
537
538   <xsd:complexType name="docImageType" mixed="true">
539     <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
540     <xsd:attribute name="type" type="DoxImageKind" /> 
541     <xsd:attribute name="name" type="xsd:string" /> 
542     <xsd:attribute name="width" type="xsd:string" /> 
543     <xsd:attribute name="height" type="xsd:string" /> 
544   </xsd:complexType>
545
546   <xsd:complexType name="docFileType" mixed="true">
547     <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
548     <xsd:attribute name="name" type="xsd:string" /> 
549   </xsd:complexType>
550
551   <xsd:complexType name="docTocItemType" mixed="true">
552     <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
553     <xsd:attribute name="id" type="xsd:string" /> 
554   </xsd:complexType>
555
556   <xsd:complexType name="docTocListType">
557     <xsd:sequence>
558       <xsd:element name="tocitem" type="docTocItemType" minOccurs="0" maxOccurs="unbounded" />
559     </xsd:sequence>
560   </xsd:complexType>
561
562   <xsd:complexType name="docLanguageType">
563     <xsd:sequence>
564       <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
565     </xsd:sequence>
566     <xsd:attribute name="langid" type="xsd:string" /> 
567   </xsd:complexType>
568
569   <xsd:complexType name="docParamListType">
570     <xsd:sequence>
571       <xsd:element name="parameteritem" type="docParamListItem" minOccurs="0" maxOccurs="unbounded" />
572     </xsd:sequence>
573     <xsd:attribute name="kind" type="DoxParamListKind" /> 
574   </xsd:complexType>
575
576   <xsd:complexType name="docParamListItem">
577     <xsd:sequence>
578       <xsd:element name="parameternamelist" type="docParamNameList" minOccurs="0" maxOccurs="unbounded" />
579       <xsd:element name="parameterdescription" type="descriptionType" />
580     </xsd:sequence>
581   </xsd:complexType>
582
583   <xsd:complexType name="docParamNameList">
584     <xsd:sequence>
585       <xsd:element name="parametertype" type="docParamType" minOccurs="0" maxOccurs="unbounded" />
586       <xsd:element name="parametername" type="docParamName" minOccurs="0" maxOccurs="unbounded" />
587     </xsd:sequence>
588   </xsd:complexType>
589
590   <xsd:complexType name="docParamType" mixed="true">
591     <xsd:sequence>
592       <xsd:element name="ref" type="refTextType" minOccurs="0" maxOccurs="1" />
593     </xsd:sequence>
594   </xsd:complexType>
595
596   <xsd:complexType name="docParamName" mixed="true">
597     <xsd:sequence>
598       <xsd:element name="ref" type="refTextType" minOccurs="0" maxOccurs="1" />
599     </xsd:sequence>
600     <xsd:attribute name="direction" type="DoxParamDir" use="optional" />
601   </xsd:complexType>
602
603   <xsd:complexType name="docXRefSectType">
604     <xsd:sequence>
605       <xsd:element name="xreftitle" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
606       <xsd:element name="xrefdescription" type="descriptionType" />
607     </xsd:sequence>
608     <xsd:attribute name="id" type="xsd:string" /> 
609   </xsd:complexType>
610
611   <xsd:complexType name="docCopyType">
612     <xsd:sequence>
613       <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
614       <xsd:element name="sect1" type="docSect1Type" minOccurs="0" maxOccurs="unbounded" />
615       <xsd:element name="internal" type="docInternalType" minOccurs="0" />
616     </xsd:sequence>
617     <xsd:attribute name="link" type="xsd:string" /> 
618   </xsd:complexType>
619
620   <xsd:complexType name="docBlockQuoteType">
621     <xsd:sequence>
622       <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
623     </xsd:sequence>
624   </xsd:complexType>
625
626   <xsd:complexType name="docParBlockType">
627     <xsd:sequence>
628       <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
629     </xsd:sequence>
630   </xsd:complexType>
631
632   <xsd:complexType name="docEmptyType"/>
633
634   <!-- Simple types -->
635
636   <xsd:simpleType name="DoxBool">
637     <xsd:restriction base="xsd:string">
638       <xsd:enumeration value="yes" />
639       <xsd:enumeration value="no" />
640     </xsd:restriction>
641   </xsd:simpleType>
642
643   <xsd:simpleType name="DoxGraphRelation">
644     <xsd:restriction base="xsd:string">
645       <xsd:enumeration value="include" />
646       <xsd:enumeration value="usage" />
647       <xsd:enumeration value="template-instance" />
648       <xsd:enumeration value="public-inheritance" />
649       <xsd:enumeration value="protected-inheritance" />
650       <xsd:enumeration value="private-inheritance" />
651     </xsd:restriction>
652   </xsd:simpleType>
653
654   <xsd:simpleType name="DoxRefKind">
655     <xsd:restriction base="xsd:string">
656       <xsd:enumeration value="compound" />
657       <xsd:enumeration value="member" />
658     </xsd:restriction>
659   </xsd:simpleType>
660
661   <xsd:simpleType name="DoxMemberKind">
662     <xsd:restriction base="xsd:string">
663       <xsd:enumeration value="define" />
664       <xsd:enumeration value="property" />
665       <xsd:enumeration value="event" />
666       <xsd:enumeration value="variable" />
667       <xsd:enumeration value="typedef" />
668       <xsd:enumeration value="enum" />
669       <xsd:enumeration value="function" />
670       <xsd:enumeration value="signal" />
671       <xsd:enumeration value="prototype" />
672       <xsd:enumeration value="friend" />
673       <xsd:enumeration value="dcop" />
674       <xsd:enumeration value="slot" />
675       <xsd:enumeration value="interface" />
676       <xsd:enumeration value="service" />
677     </xsd:restriction>
678   </xsd:simpleType>
679
680   <xsd:simpleType name="DoxProtectionKind">
681     <xsd:restriction base="xsd:string">
682       <xsd:enumeration value="public" />
683       <xsd:enumeration value="protected" />
684       <xsd:enumeration value="private" />
685       <xsd:enumeration value="package" />
686     </xsd:restriction>
687   </xsd:simpleType>
688
689   <xsd:simpleType name="DoxVirtualKind">
690     <xsd:restriction base="xsd:string">
691       <xsd:enumeration value="non-virtual" />
692       <xsd:enumeration value="virtual" />
693       <xsd:enumeration value="pure-virtual" />
694     </xsd:restriction>
695   </xsd:simpleType>
696
697   <xsd:simpleType name="DoxCompoundKind">
698     <xsd:restriction base="xsd:string">
699       <xsd:enumeration value="class" />
700       <xsd:enumeration value="struct" />
701       <xsd:enumeration value="union" />
702       <xsd:enumeration value="interface" />
703       <xsd:enumeration value="protocol" />
704       <xsd:enumeration value="category" />
705       <xsd:enumeration value="exception" />
706       <xsd:enumeration value="service" />
707       <xsd:enumeration value="singleton" />
708       <xsd:enumeration value="module" />
709       <xsd:enumeration value="type" />
710       <xsd:enumeration value="file" />
711       <xsd:enumeration value="namespace" />
712       <xsd:enumeration value="group" />
713       <xsd:enumeration value="page" />
714       <xsd:enumeration value="example" />
715       <xsd:enumeration value="dir" />
716     </xsd:restriction>
717   </xsd:simpleType>
718
719   <xsd:simpleType name="DoxSectionKind">
720     <xsd:restriction base="xsd:string">
721       <xsd:enumeration value="user-defined" />
722       <xsd:enumeration value="public-type" />
723       <xsd:enumeration value="public-func" />
724       <xsd:enumeration value="public-attrib" />
725       <xsd:enumeration value="public-slot" />
726       <xsd:enumeration value="signal" />
727       <xsd:enumeration value="dcop-func" />
728       <xsd:enumeration value="property" />
729       <xsd:enumeration value="event" />
730       <xsd:enumeration value="public-static-func" />
731       <xsd:enumeration value="public-static-attrib" />
732       <xsd:enumeration value="protected-type" />
733       <xsd:enumeration value="protected-func" />
734       <xsd:enumeration value="protected-attrib" />
735       <xsd:enumeration value="protected-slot" />
736       <xsd:enumeration value="protected-static-func" />
737       <xsd:enumeration value="protected-static-attrib" />
738       <xsd:enumeration value="package-type" />
739       <xsd:enumeration value="package-func" />
740       <xsd:enumeration value="package-attrib" />
741       <xsd:enumeration value="package-static-func" />
742       <xsd:enumeration value="package-static-attrib" />
743       <xsd:enumeration value="private-type" />
744       <xsd:enumeration value="private-func" />
745       <xsd:enumeration value="private-attrib" />
746       <xsd:enumeration value="private-slot" />
747       <xsd:enumeration value="private-static-func" />
748       <xsd:enumeration value="private-static-attrib" />
749       <xsd:enumeration value="friend" />
750       <xsd:enumeration value="related" />
751       <xsd:enumeration value="define" />
752       <xsd:enumeration value="prototype" />
753       <xsd:enumeration value="typedef" />
754       <xsd:enumeration value="enum" />
755       <xsd:enumeration value="func" />
756       <xsd:enumeration value="var" />
757     </xsd:restriction>
758   </xsd:simpleType>
759
760   <xsd:simpleType name="DoxHighlightClass">
761     <xsd:restriction base="xsd:string">
762       <xsd:enumeration value="comment" />
763       <xsd:enumeration value="normal" />
764       <xsd:enumeration value="preprocessor" />
765       <xsd:enumeration value="keyword" />
766       <xsd:enumeration value="keywordtype" />
767       <xsd:enumeration value="keywordflow" />
768       <xsd:enumeration value="stringliteral" />
769       <xsd:enumeration value="charliteral" />
770     </xsd:restriction>
771   </xsd:simpleType>
772
773   <xsd:simpleType name="DoxSimpleSectKind">
774     <xsd:restriction base="xsd:string">
775       <xsd:enumeration value="see" />
776       <xsd:enumeration value="return" />
777       <xsd:enumeration value="author" />
778       <xsd:enumeration value="authors" />
779       <xsd:enumeration value="version" />
780       <xsd:enumeration value="since" />
781       <xsd:enumeration value="date" />
782       <xsd:enumeration value="note" />
783       <xsd:enumeration value="warning" />
784       <xsd:enumeration value="pre" />
785       <xsd:enumeration value="post" />
786       <xsd:enumeration value="copyright" />
787       <xsd:enumeration value="invariant" />
788       <xsd:enumeration value="remark" />
789       <xsd:enumeration value="attention" />
790       <xsd:enumeration value="par" />
791       <xsd:enumeration value="rcs" />
792     </xsd:restriction>
793   </xsd:simpleType>
794
795   <xsd:simpleType name="DoxVersionNumber">
796     <xsd:restriction base="xsd:string">
797       <xsd:pattern value="\d+\.\d+.*" />
798     </xsd:restriction>
799   </xsd:simpleType>
800
801   <xsd:simpleType name="DoxImageKind">
802     <xsd:restriction base="xsd:string">
803       <xsd:enumeration value="html" />
804       <xsd:enumeration value="latex" />
805       <xsd:enumeration value="rtf" />
806     </xsd:restriction>
807   </xsd:simpleType>
808
809   <xsd:simpleType name="DoxParamListKind">
810     <xsd:restriction base="xsd:string">
811       <xsd:enumeration value="param" />
812       <xsd:enumeration value="retval" />
813       <xsd:enumeration value="exception" />
814       <xsd:enumeration value="templateparam" />
815     </xsd:restriction>
816   </xsd:simpleType>
817
818   <xsd:simpleType name="DoxCharRange">
819     <xsd:restriction base="xsd:string">
820       <xsd:pattern value="[aeiouncAEIOUNC]" />
821     </xsd:restriction>
822   </xsd:simpleType>
823
824   <xsd:simpleType name="DoxParamDir">
825     <xsd:restriction base="xsd:string">
826       <xsd:enumeration value="in"/>
827       <xsd:enumeration value="out"/>
828       <xsd:enumeration value="inout"/>
829     </xsd:restriction>
830   </xsd:simpleType>
831
832   <xsd:simpleType name="DoxAccessor">
833     <xsd:restriction base="xsd:string">
834       <xsd:enumeration value="retain"/>
835       <xsd:enumeration value="copy"/>
836       <xsd:enumeration value="assign"/>
837       <xsd:enumeration value="weak"/>
838       <xsd:enumeration value="strong"/>
839       <xsd:enumeration value="unretained"/>
840     </xsd:restriction>
841   </xsd:simpleType>
842
843 </xsd:schema>
844