Fix for UBSan build
[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   </xsd:complexType>
176
177   <xsd:complexType name="descriptionType" mixed="true">
178     <xsd:sequence>
179       <xsd:element name="title" type="xsd:string" minOccurs="0"/>           
180       <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
181       <xsd:element name="sect1" type="docSect1Type" minOccurs="0" maxOccurs="unbounded" />
182       <xsd:element name="internal" type="docInternalType" minOccurs="0" />
183     </xsd:sequence>
184   </xsd:complexType>
185
186   <xsd:complexType name="enumvalueType" mixed="true">
187     <xsd:sequence>
188       <xsd:element name="name" />
189       <xsd:element name="initializer" type="linkedTextType" minOccurs="0" />
190       <xsd:element name="briefdescription" type="descriptionType" minOccurs="0" />
191       <xsd:element name="detaileddescription" type="descriptionType" minOccurs="0" />
192     </xsd:sequence>
193     <xsd:attribute name="id" type="xsd:string" />
194     <xsd:attribute name="prot" type="DoxProtectionKind" />
195   </xsd:complexType>
196
197   <xsd:complexType name="templateparamlistType">
198     <xsd:sequence>
199       <xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded" />
200     </xsd:sequence>
201   </xsd:complexType>
202
203   <xsd:complexType name="paramType">
204     <xsd:sequence>
205       <xsd:element name="type" type="linkedTextType" minOccurs="0" />
206       <xsd:element name="declname" minOccurs="0" />
207       <xsd:element name="defname" minOccurs="0" />
208       <xsd:element name="array" minOccurs="0" />
209       <xsd:element name="defval" type="linkedTextType" minOccurs="0" />
210       <xsd:element name="briefdescription" type="descriptionType" minOccurs="0" />
211     </xsd:sequence>
212   </xsd:complexType>
213
214   <xsd:complexType name="linkedTextType" mixed="true">
215     <xsd:sequence>
216     <xsd:element name="ref" type="refTextType" minOccurs="0" maxOccurs="unbounded" />
217     </xsd:sequence>
218   </xsd:complexType>
219
220   <xsd:complexType name="graphType">
221     <xsd:sequence>
222       <xsd:element name="node" type="nodeType" maxOccurs="unbounded" />
223     </xsd:sequence>
224   </xsd:complexType>
225
226   <xsd:complexType name="nodeType">
227     <xsd:sequence>
228       <xsd:element name="label" />
229       <xsd:element name="link" type="linkType" minOccurs="0" />
230       <xsd:element name="childnode" type="childnodeType" minOccurs="0" maxOccurs="unbounded" />
231     </xsd:sequence>
232     <xsd:attribute name="id" type="xsd:string" />
233   </xsd:complexType>
234
235   <xsd:complexType name="childnodeType">
236     <xsd:sequence>
237       <xsd:element name="edgelabel" minOccurs="0" maxOccurs="unbounded"/>
238     </xsd:sequence>
239     <xsd:attribute name="refid" type="xsd:string" />
240     <xsd:attribute name="relation" type="DoxGraphRelation" />
241   </xsd:complexType>
242
243   <xsd:complexType name="linkType">
244     <xsd:attribute name="refid" type="xsd:string" />
245     <xsd:attribute name="external" type="xsd:string" use="optional"/>
246   </xsd:complexType>
247
248   <xsd:complexType name="listingType">
249     <xsd:sequence>
250       <xsd:element name="codeline" type="codelineType" minOccurs="0" maxOccurs="unbounded" />
251     </xsd:sequence>
252   </xsd:complexType>
253
254   <xsd:complexType name="codelineType">
255     <xsd:sequence>
256       <xsd:element name="highlight" type="highlightType" minOccurs="0" maxOccurs="unbounded" />
257     </xsd:sequence>
258     <xsd:attribute name="lineno" type="xsd:integer" />
259     <xsd:attribute name="refid" type="xsd:string" />
260     <xsd:attribute name="refkind" type="DoxRefKind" />
261     <xsd:attribute name="external" type="DoxBool" />
262   </xsd:complexType>
263
264   <xsd:complexType name="highlightType" mixed="true">
265     <xsd:choice minOccurs="0" maxOccurs="unbounded">
266       <xsd:element name="sp" />
267       <xsd:element name="ref" type="refTextType" />
268     </xsd:choice>
269     <xsd:attribute name="class" type="DoxHighlightClass" />
270   </xsd:complexType>
271
272   <xsd:complexType name="referenceType" mixed="true">
273     <xsd:attribute name="refid" type="xsd:string" />
274     <xsd:attribute name="compoundref" type="xsd:string" use="optional" />
275     <xsd:attribute name="startline" type="xsd:integer" />
276     <xsd:attribute name="endline" type="xsd:integer" />
277   </xsd:complexType>
278
279   <xsd:complexType name="locationType">
280     <xsd:attribute name="file" type="xsd:string" />
281     <xsd:attribute name="line" type="xsd:integer" />
282     <xsd:attribute name="bodyfile" type="xsd:string" />
283     <xsd:attribute name="bodystart" type="xsd:integer" />
284     <xsd:attribute name="bodyend" type="xsd:integer" />
285   </xsd:complexType>
286
287   <xsd:complexType name="docSect1Type" mixed="true">
288     <xsd:sequence>
289       <xsd:element name="title" type="xsd:string" />        
290       <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
291       <xsd:element name="sect2" type="docSect2Type" minOccurs="0" maxOccurs="unbounded" />
292       <xsd:element name="internal" type="docInternalS1Type" minOccurs="0" />
293     </xsd:sequence>
294     <xsd:attribute name="id" type="xsd:string" />
295   </xsd:complexType>
296
297   <xsd:complexType name="docSect2Type" mixed="true">
298     <xsd:sequence>
299       <xsd:element name="title" type="xsd:string" />        
300       <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
301       <xsd:element name="sect3" type="docSect3Type" minOccurs="0" maxOccurs="unbounded" />
302       <xsd:element name="internal" type="docInternalS2Type" minOccurs="0" />
303     </xsd:sequence>
304     <xsd:attribute name="id" type="xsd:string" />
305   </xsd:complexType>
306
307   <xsd:complexType name="docSect3Type" mixed="true">
308     <xsd:sequence>
309       <xsd:element name="title" type="xsd:string" />        
310       <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
311       <xsd:element name="sect4" type="docSect4Type" minOccurs="0" maxOccurs="unbounded" />
312       <xsd:element name="internal" type="docInternalS3Type" minOccurs="0" />
313     </xsd:sequence>
314     <xsd:attribute name="id" type="xsd:string" />
315   </xsd:complexType>
316
317   <xsd:complexType name="docSect4Type" mixed="true">
318     <xsd:sequence>
319       <xsd:element name="title" type="xsd:string" />        
320       <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
321       <xsd:element name="internal" type="docInternalS4Type" minOccurs="0" />
322     </xsd:sequence>
323     <xsd:attribute name="id" type="xsd:string" />
324   </xsd:complexType>
325
326   <xsd:complexType name="docInternalType" mixed="true">
327     <xsd:sequence>
328       <xsd:element name="para"  type="docParaType"  minOccurs="0" maxOccurs="unbounded" />
329       <xsd:element name="sect1" type="docSect1Type" minOccurs="0" maxOccurs="unbounded" />
330     </xsd:sequence>
331   </xsd:complexType>
332
333   <xsd:complexType name="docInternalS1Type" mixed="true">
334     <xsd:sequence>
335       <xsd:element name="para"  type="docParaType"  minOccurs="0" maxOccurs="unbounded" />
336       <xsd:element name="sect2" type="docSect2Type" minOccurs="0" maxOccurs="unbounded" />
337     </xsd:sequence>
338   </xsd:complexType>
339
340   <xsd:complexType name="docInternalS2Type" mixed="true">
341     <xsd:sequence>
342       <xsd:element name="para"  type="docParaType"  minOccurs="0" maxOccurs="unbounded" />
343       <xsd:element name="sect3" type="docSect3Type" minOccurs="0" maxOccurs="unbounded" />
344     </xsd:sequence>
345   </xsd:complexType>
346
347   <xsd:complexType name="docInternalS3Type" mixed="true">
348     <xsd:sequence>
349       <xsd:element name="para"  type="docParaType"  minOccurs="0" maxOccurs="unbounded" />
350       <xsd:element name="sect3" type="docSect4Type" minOccurs="0" maxOccurs="unbounded" />
351     </xsd:sequence>
352   </xsd:complexType>
353
354   <xsd:complexType name="docInternalS4Type" mixed="true">
355     <xsd:sequence>
356       <xsd:element name="para"  type="docParaType"  minOccurs="0" maxOccurs="unbounded" />
357     </xsd:sequence>
358   </xsd:complexType>
359  
360   <xsd:group name="docTitleCmdGroup">
361     <xsd:choice>
362       <xsd:element name="ulink" type="docURLLink" />
363       <xsd:element name="bold" type="docMarkupType" />
364       <xsd:element name="emphasis" type="docMarkupType" />
365       <xsd:element name="computeroutput" type="docMarkupType" />
366       <xsd:element name="subscript" type="docMarkupType" />
367       <xsd:element name="superscript" type="docMarkupType" />
368       <xsd:element name="center" type="docMarkupType" />
369       <xsd:element name="small" type="docMarkupType" />
370       <xsd:element name="htmlonly" type="xsd:string" />
371       <xsd:element name="manonly" type="xsd:string" />
372       <xsd:element name="xmlonly" type="xsd:string" />
373       <xsd:element name="rtfonly" type="xsd:string" />
374       <xsd:element name="latexonly" type="xsd:string" />
375       <xsd:element name="dot" type="xsd:string" />
376       <xsd:element name="anchor" type="docAnchorType" />
377       <xsd:element name="formula" type="docFormulaType" />
378       <xsd:element name="ref" type="docRefTextType" />
379       <xsd:element name="copy" type="docEmptyType" />
380       <xsd:element name="trademark" type="docEmptyType" />
381       <xsd:element name="registered" type="docEmptyType" />
382       <xsd:element name="lsquo" type="docEmptyType" />
383       <xsd:element name="rsquo" type="docEmptyType" />
384       <xsd:element name="ldquo" type="docEmptyType" />
385       <xsd:element name="rdquo" type="docEmptyType" />
386       <xsd:element name="ndash" type="docEmptyType" />
387       <xsd:element name="mdash" type="docEmptyType" />
388       <xsd:element name="umlaut" type="docCharType" />
389       <xsd:element name="acute" type="docCharType" />
390       <xsd:element name="grave" type="docCharType" />
391       <xsd:element name="circ" type="docCharType" />
392       <xsd:element name="slash" type="docCharType" />
393       <xsd:element name="tilde" type="docCharType" />
394       <xsd:element name="cedil" type="docCharType" />
395       <xsd:element name="ring" type="docCharType" />
396       <xsd:element name="szlig" type="docEmptyType" />
397       <xsd:element name="nonbreakablespace" type="docEmptyType" />
398       <xsd:element name="aelig" type="docEmptyType" />
399       <xsd:element name="AElig" type="docEmptyType" />
400       <xsd:element name="Gamma" type="docEmptyType" />
401       <xsd:element name="Delta" type="docEmptyType" />
402       <xsd:element name="Theta" type="docEmptyType" />
403       <xsd:element name="Lambda" type="docEmptyType" />
404       <xsd:element name="Xi" type="docEmptyType" />
405       <xsd:element name="Pi" type="docEmptyType" />
406       <xsd:element name="Sigma" type="docEmptyType" />
407       <xsd:element name="Upsilon" type="docEmptyType" />
408       <xsd:element name="Phi" type="docEmptyType" />
409       <xsd:element name="Psi" type="docEmptyType" />
410       <xsd:element name="Omega" type="docEmptyType" />
411       <xsd:element name="alpha" type="docEmptyType" />
412       <xsd:element name="beta" type="docEmptyType" />
413       <xsd:element name="gamma" type="docEmptyType" />
414       <xsd:element name="delta" type="docEmptyType" />
415       <xsd:element name="epsilon" type="docEmptyType" />
416       <xsd:element name="zeta" type="docEmptyType" />
417       <xsd:element name="eta" type="docEmptyType" />
418       <xsd:element name="theta" type="docEmptyType" />
419       <xsd:element name="iota" type="docEmptyType" />
420       <xsd:element name="kappa" type="docEmptyType" />
421       <xsd:element name="lambda" type="docEmptyType" />
422       <xsd:element name="mu" type="docEmptyType" />
423       <xsd:element name="nu" type="docEmptyType" />
424       <xsd:element name="xi" type="docEmptyType" />
425       <xsd:element name="pi" type="docEmptyType" />
426       <xsd:element name="rho" type="docEmptyType" />
427       <xsd:element name="sigma" type="docEmptyType" />
428       <xsd:element name="tau" type="docEmptyType" />
429       <xsd:element name="upsilon" type="docEmptyType" />
430       <xsd:element name="phi" type="docEmptyType" />
431       <xsd:element name="chi" type="docEmptyType" />
432       <xsd:element name="psi" type="docEmptyType" />
433       <xsd:element name="omega" type="docEmptyType" />
434       <xsd:element name="sigmaf" type="docEmptyType" />
435       <xsd:element name="sect" type="docEmptyType" />
436       <xsd:element name="deg" type="docEmptyType" />
437       <xsd:element name="prime" type="docEmptyType" />
438       <xsd:element name="Prime" type="docEmptyType" />
439       <xsd:element name="infin" type="docEmptyType" />
440       <xsd:element name="empty" type="docEmptyType" />
441       <xsd:element name="plusmn" type="docEmptyType" />
442       <xsd:element name="times" type="docEmptyType" />
443       <xsd:element name="minus" type="docEmptyType" />
444       <xsd:element name="sdot" type="docEmptyType" />
445       <xsd:element name="part" type="docEmptyType" />
446       <xsd:element name="nabla" type="docEmptyType" />
447       <xsd:element name="radic" type="docEmptyType" />
448       <xsd:element name="perp" type="docEmptyType" />
449       <xsd:element name="sum" type="docEmptyType" />
450       <xsd:element name="int" type="docEmptyType" />
451       <xsd:element name="prod" type="docEmptyType" />
452       <xsd:element name="sim" type="docEmptyType" />
453       <xsd:element name="asymp" type="docEmptyType" />
454       <xsd:element name="ne" type="docEmptyType" />
455       <xsd:element name="equiv" type="docEmptyType" />
456       <xsd:element name="prop" type="docEmptyType" />
457       <xsd:element name="le" type="docEmptyType" />
458       <xsd:element name="ge" type="docEmptyType" />
459       <xsd:element name="larr" type="docEmptyType" />
460       <xsd:element name="rarr" type="docEmptyType" />
461       <xsd:element name="isin" type="docEmptyType" />
462       <xsd:element name="notin" type="docEmptyType" />
463       <xsd:element name="lceil" type="docEmptyType" />
464       <xsd:element name="rceil" type="docEmptyType" />
465       <xsd:element name="lfloor" type="docEmptyType" />
466       <xsd:element name="rfloor" type="docEmptyType" />
467     </xsd:choice>
468   </xsd:group>
469
470   <xsd:complexType name="docTitleType" mixed="true">
471     <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
472   </xsd:complexType>
473
474   <xsd:group name="docCmdGroup">
475     <xsd:choice>
476       <xsd:group ref="docTitleCmdGroup"/>
477       <xsd:element name="linebreak" type="docEmptyType" />
478       <xsd:element name="hruler" type="docEmptyType" />
479       <xsd:element name="preformatted" type="docMarkupType" />
480       <xsd:element name="programlisting" type="listingType" />
481       <xsd:element name="verbatim" type="xsd:string" />
482       <xsd:element name="indexentry" type="docIndexEntryType" />
483       <xsd:element name="orderedlist" type="docListType" />
484       <xsd:element name="itemizedlist" type="docListType" />
485       <xsd:element name="simplesect" type="docSimpleSectType" />
486       <xsd:element name="title" type="docTitleType" />
487       <xsd:element name="variablelist" type="docVariableListType" />
488       <xsd:element name="table" type="docTableType" />
489       <xsd:element name="heading" type="docHeadingType" />
490       <xsd:element name="image" type="docImageType" />
491       <xsd:element name="dotfile" type="docDotFileType" />
492       <xsd:element name="toclist" type="docTocListType" />
493       <xsd:element name="language" type="docLanguageType" />
494       <xsd:element name="parameterlist" type="docParamListType" />
495       <xsd:element name="xrefsect" type="docXRefSectType" />
496       <xsd:element name="copydoc" type="docCopyType" />
497       <xsd:element name="blockquote" type="docBlockQuoteType" />
498     </xsd:choice>
499   </xsd:group>
500
501   <xsd:complexType name="docParaType" mixed="true">
502     <xsd:group ref="docCmdGroup" minOccurs="0" maxOccurs="unbounded" />
503   </xsd:complexType>
504
505   <xsd:complexType name="docMarkupType" mixed="true">
506     <xsd:group ref="docCmdGroup" minOccurs="0" maxOccurs="unbounded" />
507   </xsd:complexType>
508
509   <xsd:complexType name="docURLLink" mixed="true">
510     <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
511     <xsd:attribute name="url" type="xsd:string" />
512   </xsd:complexType>
513
514   <xsd:complexType name="docAnchorType" mixed="true">
515     <xsd:attribute name="id" type="xsd:string" />
516   </xsd:complexType>
517
518   <xsd:complexType name="docFormulaType" mixed="true">
519     <xsd:attribute name="id" type="xsd:string" />
520   </xsd:complexType>
521
522   <xsd:complexType name="docIndexEntryType">
523     <xsd:sequence>
524       <xsd:element name="primaryie" type="xsd:string" />
525       <xsd:element name="secondaryie" type="xsd:string" />
526     </xsd:sequence>
527   </xsd:complexType>
528
529   <xsd:complexType name="docListType">
530     <xsd:sequence>
531       <xsd:element name="listitem" type="docListItemType" maxOccurs="unbounded" />
532     </xsd:sequence>
533   </xsd:complexType>
534
535   <xsd:complexType name="docListItemType">
536     <xsd:sequence>
537       <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
538     </xsd:sequence>
539   </xsd:complexType>
540
541   <xsd:complexType name="docSimpleSectType">
542     <xsd:sequence>
543       <xsd:element name="title" type="docTitleType" minOccurs="0" />
544       <xsd:sequence minOccurs="0" maxOccurs="unbounded">
545         <xsd:element name="para" type="docParaType" minOccurs="1" maxOccurs="unbounded" />
546         <xsd:element name="simplesectsep" type="docEmptyType" minOccurs="0"/>
547       </xsd:sequence>
548     </xsd:sequence>
549     <xsd:attribute name="kind" type="DoxSimpleSectKind" />
550   </xsd:complexType>
551
552   <xsd:complexType name="docVarListEntryType">
553     <xsd:sequence>
554       <xsd:element name="term" type="docTitleType" />
555     </xsd:sequence>
556   </xsd:complexType>
557
558   <xsd:group name="docVariableListGroup">
559     <xsd:sequence>
560       <xsd:element name="varlistentry" type="docVarListEntryType" />
561       <xsd:element name="listitem" type="docListItemType" />
562     </xsd:sequence>
563   </xsd:group>
564
565   <xsd:complexType name="docVariableListType">
566     <xsd:sequence>
567       <xsd:group ref="docVariableListGroup" maxOccurs="unbounded" />
568     </xsd:sequence>
569   </xsd:complexType>
570
571   <xsd:complexType name="docRefTextType" mixed="true">
572     <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
573     <xsd:attribute name="refid" type="xsd:string" />
574     <xsd:attribute name="kindref" type="DoxRefKind" />
575     <xsd:attribute name="external" type="xsd:string" />
576   </xsd:complexType>
577
578   <xsd:complexType name="docTableType">
579     <xsd:sequence>
580       <xsd:element name="row" type="docRowType" minOccurs="0" maxOccurs="unbounded" />
581       <xsd:element name="caption" type="docCaptionType" minOccurs="0" />
582     </xsd:sequence>
583     <xsd:attribute name="rows" type="xsd:integer" />
584     <xsd:attribute name="cols" type="xsd:integer" />
585   </xsd:complexType>
586
587   <xsd:complexType name="docRowType">
588     <xsd:sequence>
589       <xsd:element name="entry" type="docEntryType" minOccurs="0" maxOccurs="unbounded" />
590     </xsd:sequence>
591   </xsd:complexType>
592
593   <xsd:complexType name="docEntryType">
594     <xsd:sequence>
595       <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
596     </xsd:sequence>
597     <xsd:attribute name="thead" type="DoxBool" />
598   </xsd:complexType>
599
600   <xsd:complexType name="docCaptionType" mixed="true">
601     <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
602   </xsd:complexType>
603
604   <xsd:complexType name="docHeadingType" mixed="true">
605     <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
606     <xsd:attribute name="level" type="xsd:integer" /> <!-- todo: range 1-6 -->
607   </xsd:complexType>
608
609   <xsd:complexType name="docImageType" mixed="true">
610     <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
611     <xsd:attribute name="type" type="DoxImageKind" /> 
612     <xsd:attribute name="name" type="xsd:string" /> 
613     <xsd:attribute name="width" type="xsd:string" /> 
614     <xsd:attribute name="height" type="xsd:string" /> 
615   </xsd:complexType>
616
617   <xsd:complexType name="docDotFileType" mixed="true">
618     <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
619     <xsd:attribute name="name" type="xsd:string" /> 
620   </xsd:complexType>
621
622   <xsd:complexType name="docTocItemType" mixed="true">
623     <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
624     <xsd:attribute name="id" type="xsd:string" /> 
625   </xsd:complexType>
626
627   <xsd:complexType name="docTocListType">
628     <xsd:sequence>
629       <xsd:element name="tocitem" type="docTocItemType" minOccurs="0" maxOccurs="unbounded" />
630     </xsd:sequence>
631   </xsd:complexType>
632
633   <xsd:complexType name="docLanguageType">
634     <xsd:sequence>
635       <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
636     </xsd:sequence>
637     <xsd:attribute name="langid" type="xsd:string" /> 
638   </xsd:complexType>
639
640   <xsd:complexType name="docParamListType">
641     <xsd:sequence>
642       <xsd:element name="parameteritem" type="docParamListItem" minOccurs="0" maxOccurs="unbounded" />
643     </xsd:sequence>
644     <xsd:attribute name="kind" type="DoxParamListKind" /> 
645   </xsd:complexType>
646
647   <xsd:complexType name="docParamListItem">
648     <xsd:sequence>
649       <xsd:element name="parameternamelist" type="docParamNameList" minOccurs="0" maxOccurs="unbounded" />
650       <xsd:element name="parameterdescription" type="descriptionType" />
651     </xsd:sequence>
652   </xsd:complexType>
653
654   <xsd:complexType name="docParamNameList">
655     <xsd:sequence>
656       <xsd:element name="parametertype" type="docParamType" minOccurs="0" maxOccurs="unbounded" />
657       <xsd:element name="parametername" type="docParamName" minOccurs="0" maxOccurs="unbounded" />
658     </xsd:sequence>
659   </xsd:complexType>
660
661   <xsd:complexType name="docParamType" mixed="true">
662     <xsd:sequence>
663       <xsd:element name="ref" type="refTextType" minOccurs="0" maxOccurs="1" />
664     </xsd:sequence>
665   </xsd:complexType>
666
667   <xsd:complexType name="docParamName" mixed="true">
668     <xsd:sequence>
669       <xsd:element name="ref" type="refTextType" minOccurs="0" maxOccurs="1" />
670     </xsd:sequence>
671     <xsd:attribute name="direction" type="DoxParamDir" use="optional" />
672   </xsd:complexType>
673
674   <xsd:complexType name="docXRefSectType">
675     <xsd:sequence>
676       <xsd:element name="xreftitle" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
677       <xsd:element name="xrefdescription" type="descriptionType" />
678     </xsd:sequence>
679     <xsd:attribute name="id" type="xsd:string" /> 
680   </xsd:complexType>
681
682   <xsd:complexType name="docCopyType">
683     <xsd:sequence>
684       <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
685       <xsd:element name="sect1" type="docSect1Type" minOccurs="0" maxOccurs="unbounded" />
686       <xsd:element name="internal" type="docInternalType" minOccurs="0" />
687     </xsd:sequence>
688     <xsd:attribute name="link" type="xsd:string" /> 
689   </xsd:complexType>
690
691   <xsd:complexType name="docBlockQuoteType">
692     <xsd:sequence>
693       <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
694     </xsd:sequence>
695   </xsd:complexType>
696
697   <xsd:complexType name="docCharType">
698     <xsd:attribute name="char" type="DoxCharRange"/> 
699   </xsd:complexType>
700
701   <xsd:complexType name="docEmptyType"/>
702
703   <!-- Simple types -->
704
705   <xsd:simpleType name="DoxBool">
706     <xsd:restriction base="xsd:string">
707       <xsd:enumeration value="yes" />
708       <xsd:enumeration value="no" />
709     </xsd:restriction>
710   </xsd:simpleType>
711
712   <xsd:simpleType name="DoxGraphRelation">
713     <xsd:restriction base="xsd:string">
714       <xsd:enumeration value="include" />
715       <xsd:enumeration value="usage" />
716       <xsd:enumeration value="template-instance" />
717       <xsd:enumeration value="public-inheritance" />
718       <xsd:enumeration value="protected-inheritance" />
719       <xsd:enumeration value="private-inheritance" />
720     </xsd:restriction>
721   </xsd:simpleType>
722
723   <xsd:simpleType name="DoxRefKind">
724     <xsd:restriction base="xsd:string">
725       <xsd:enumeration value="compound" />
726       <xsd:enumeration value="member" />
727     </xsd:restriction>
728   </xsd:simpleType>
729
730   <xsd:simpleType name="DoxMemberKind">
731     <xsd:restriction base="xsd:string">
732       <xsd:enumeration value="define" />
733       <xsd:enumeration value="property" />
734       <xsd:enumeration value="event" />
735       <xsd:enumeration value="variable" />
736       <xsd:enumeration value="typedef" />
737       <xsd:enumeration value="enum" />
738       <xsd:enumeration value="function" />
739       <xsd:enumeration value="signal" />
740       <xsd:enumeration value="prototype" />
741       <xsd:enumeration value="friend" />
742       <xsd:enumeration value="dcop" />
743       <xsd:enumeration value="slot" />
744     </xsd:restriction>
745   </xsd:simpleType>
746
747   <xsd:simpleType name="DoxProtectionKind">
748     <xsd:restriction base="xsd:string">
749       <xsd:enumeration value="public" />
750       <xsd:enumeration value="protected" />
751       <xsd:enumeration value="private" />
752       <xsd:enumeration value="package" />
753     </xsd:restriction>
754   </xsd:simpleType>
755
756   <xsd:simpleType name="DoxVirtualKind">
757     <xsd:restriction base="xsd:string">
758       <xsd:enumeration value="non-virtual" />
759       <xsd:enumeration value="virtual" />
760       <xsd:enumeration value="pure-virtual" />
761     </xsd:restriction>
762   </xsd:simpleType>
763
764   <xsd:simpleType name="DoxCompoundKind">
765     <xsd:restriction base="xsd:string">
766       <xsd:enumeration value="class" />
767       <xsd:enumeration value="struct" />
768       <xsd:enumeration value="union" />
769       <xsd:enumeration value="interface" />
770       <xsd:enumeration value="protocol" />
771       <xsd:enumeration value="category" />
772       <xsd:enumeration value="exception" />
773       <xsd:enumeration value="file" />
774       <xsd:enumeration value="namespace" />
775       <xsd:enumeration value="group" />
776       <xsd:enumeration value="page" />
777       <xsd:enumeration value="example" />
778       <xsd:enumeration value="dir" />
779     </xsd:restriction>
780   </xsd:simpleType>
781
782   <xsd:simpleType name="DoxSectionKind">
783     <xsd:restriction base="xsd:string">
784       <xsd:enumeration value="user-defined" />
785       <xsd:enumeration value="public-type" />
786       <xsd:enumeration value="public-func" />
787       <xsd:enumeration value="public-attrib" />
788       <xsd:enumeration value="public-slot" />
789       <xsd:enumeration value="signal" />
790       <xsd:enumeration value="dcop-func" />
791       <xsd:enumeration value="property" />
792       <xsd:enumeration value="event" />
793       <xsd:enumeration value="public-static-func" />
794       <xsd:enumeration value="public-static-attrib" />
795       <xsd:enumeration value="protected-type" />
796       <xsd:enumeration value="protected-func" />
797       <xsd:enumeration value="protected-attrib" />
798       <xsd:enumeration value="protected-slot" />
799       <xsd:enumeration value="protected-static-func" />
800       <xsd:enumeration value="protected-static-attrib" />
801       <xsd:enumeration value="package-type" />
802       <xsd:enumeration value="package-func" />
803       <xsd:enumeration value="package-attrib" />
804       <xsd:enumeration value="package-static-func" />
805       <xsd:enumeration value="package-static-attrib" />
806       <xsd:enumeration value="private-type" />
807       <xsd:enumeration value="private-func" />
808       <xsd:enumeration value="private-attrib" />
809       <xsd:enumeration value="private-slot" />
810       <xsd:enumeration value="private-static-func" />
811       <xsd:enumeration value="private-static-attrib" />
812       <xsd:enumeration value="friend" />
813       <xsd:enumeration value="related" />
814       <xsd:enumeration value="define" />
815       <xsd:enumeration value="prototype" />
816       <xsd:enumeration value="typedef" />
817       <xsd:enumeration value="enum" />
818       <xsd:enumeration value="func" />
819       <xsd:enumeration value="var" />
820     </xsd:restriction>
821   </xsd:simpleType>
822
823   <xsd:simpleType name="DoxHighlightClass">
824     <xsd:restriction base="xsd:string">
825       <xsd:enumeration value="comment" />
826       <xsd:enumeration value="normal" />
827       <xsd:enumeration value="preprocessor" />
828       <xsd:enumeration value="keyword" />
829       <xsd:enumeration value="keywordtype" />
830       <xsd:enumeration value="keywordflow" />
831       <xsd:enumeration value="stringliteral" />
832       <xsd:enumeration value="charliteral" />
833     </xsd:restriction>
834   </xsd:simpleType>
835
836   <xsd:simpleType name="DoxSimpleSectKind">
837     <xsd:restriction base="xsd:string">
838       <xsd:enumeration value="see" />
839       <xsd:enumeration value="return" />
840       <xsd:enumeration value="author" />
841       <xsd:enumeration value="authors" />
842       <xsd:enumeration value="version" />
843       <xsd:enumeration value="since" />
844       <xsd:enumeration value="date" />
845       <xsd:enumeration value="note" />
846       <xsd:enumeration value="warning" />
847       <xsd:enumeration value="pre" />
848       <xsd:enumeration value="post" />
849       <xsd:enumeration value="copyright" />
850       <xsd:enumeration value="invariant" />
851       <xsd:enumeration value="remark" />
852       <xsd:enumeration value="attention" />
853       <xsd:enumeration value="par" />
854       <xsd:enumeration value="rcs" />
855     </xsd:restriction>
856   </xsd:simpleType>
857
858   <xsd:simpleType name="DoxVersionNumber">
859     <xsd:restriction base="xsd:string">
860       <xsd:pattern value="\d+\.\d+.*" />
861     </xsd:restriction>
862   </xsd:simpleType>
863
864   <xsd:simpleType name="DoxImageKind">
865     <xsd:restriction base="xsd:string">
866       <xsd:enumeration value="html" />
867       <xsd:enumeration value="latex" />
868       <xsd:enumeration value="rtf" />
869     </xsd:restriction>
870   </xsd:simpleType>
871
872   <xsd:simpleType name="DoxParamListKind">
873     <xsd:restriction base="xsd:string">
874       <xsd:enumeration value="param" />
875       <xsd:enumeration value="retval" />
876       <xsd:enumeration value="exception" />
877       <xsd:enumeration value="templateparam" />
878     </xsd:restriction>
879   </xsd:simpleType>
880
881   <xsd:simpleType name="DoxCharRange">
882     <xsd:restriction base="xsd:string">
883       <xsd:pattern value="[aeiouncAEIOUNC]" />
884     </xsd:restriction>
885   </xsd:simpleType>
886
887   <xsd:simpleType name="DoxParamDir">
888     <xsd:restriction base="xsd:string">
889       <xsd:enumeration value="in"/>
890       <xsd:enumeration value="out"/>
891       <xsd:enumeration value="inout"/>
892     </xsd:restriction>
893   </xsd:simpleType>
894
895   <xsd:simpleType name="DoxAccessor">
896     <xsd:restriction base="xsd:string">
897       <xsd:enumeration value="retain"/>
898       <xsd:enumeration value="copy"/>
899       <xsd:enumeration value="assign"/>
900       <xsd:enumeration value="weak"/>
901       <xsd:enumeration value="strong"/>
902       <xsd:enumeration value="unretained"/>
903     </xsd:restriction>
904   </xsd:simpleType>
905
906 </xsd:schema>
907