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