Imported Upstream version 1.57.0
[platform/upstream/boost.git] / tools / boostbook / dtd / boostbook.dtd
1 <!--
2    BoostBook DTD - development version
3
4    For further information, see: http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?Boost_Documentation_Format
5
6    Copyright (c) 2002 by Peter Simons <simons@cryp.to>
7    Copyright (c) 2003-2004 by Douglas Gregor <doug.gregor -at- gmail.com>
8    Copyright (c) 2007 by Frank Mori Hess <fmhess@users.sourceforge.net>
9
10    Distributed under the Boost Software License, Version 1.0.
11    (See accompanying file LICENSE_1_0.txt or copy at
12    http://www.boost.org/LICENSE_1_0.txt)
13
14    The latest stable DTD module is identified by the PUBLIC and SYSTEM identifiers:
15
16    PUBLIC "-//Boost//DTD BoostBook XML V1.1//EN"
17    SYSTEM "http://www.boost.org/tools/boostbook/dtd/1.1/boostbook.dtd"
18
19    $Revision$
20    $Date$
21 -->
22
23 <!--========== Define XInclude features. ==========-->
24 <!-- This is not really integrated into the DTD yet. Needs more
25      research. -->
26 <!--
27 <!ELEMENT xi:include (xi:fallback)?>
28 <!ATTLIST xi:include
29     xmlns:xi   CDATA       #FIXED    "http://www.w3.org/2001/XInclude"
30     href       CDATA       #REQUIRED
31     parse      (xml|text)  "xml"
32     encoding   CDATA       #IMPLIED>
33
34 <!ELEMENT xi:fallback ANY>
35 <!ATTLIST xi:fallback
36     xmlns:xi   CDATA   #FIXED   "http://www.w3.org/2001/XInclude">
37  -->
38
39 <!ENTITY % local.common.attrib "last-revision CDATA  #IMPLIED">
40
41 <!--========== Define the BoostBook extensions ==========-->
42 <!ENTITY % boost.common.attrib "%local.common.attrib;
43                                 id            CDATA  #IMPLIED">
44
45 <!ENTITY % boost.namespace.mix
46         "class|class-specialization|struct|struct-specialization|
47          union|union-specialization|typedef|enum|
48          free-function-group|function|overloaded-function|
49          namespace">
50
51 <!ENTITY % boost.template.mix
52         "template-type-parameter|template-nontype-parameter|template-varargs">
53
54 <!ENTITY % boost.class.members
55         "static-constant|typedef|enum|
56          copy-assignment|constructor|destructor|method-group|
57          method|overloaded-method|data-member|class|class-specialization|struct|
58          struct-specialization|union|union-specialization">
59
60 <!ENTITY % boost.class.mix
61         "%boost.class.members;|free-function-group|function|overloaded-function">
62
63 <!ENTITY % boost.class.content
64              "template?, inherit*, purpose?, description?,
65               (%boost.class.mix;|access)*">
66
67 <!ENTITY % boost.class-specialization.content
68              "template?, specialization?, inherit?, purpose?, description?,
69               (%boost.class.mix;|access)*">
70
71 <!ENTITY % boost.function.semantics
72         "purpose?, description?, requires?, effects?, postconditions?,
73          returns?, throws?, complexity?, notes?, rationale?">
74
75 <!ENTITY % library.content
76         "libraryinfo, (title, ((section|library-reference|testsuite))+)?">
77
78 <!ELEMENT library (%library.content;)>
79 <!ATTLIST library
80     name      CDATA   #REQUIRED
81     dirname   CDATA   #REQUIRED
82     html-only CDATA   #IMPLIED
83     url       CDATA   #IMPLIED
84     %boost.common.attrib;>
85
86 <!ELEMENT boostbook (title, (chapter|library)*)>
87 <!ATTLIST boostbook %boost.common.attrib;>
88
89 <!ELEMENT libraryinfo (author+, copyright*, legalnotice*, librarypurpose, librarycategory*)>
90 <!ATTLIST libraryinfo %boost.common.attrib;>
91
92 <!ELEMENT librarypurpose (#PCDATA|code|ulink|functionname|methodname|classname|macroname|headername|enumname|globalname)*>
93 <!ATTLIST librarypurpose %boost.common.attrib;>
94
95 <!ELEMENT librarycategory (#PCDATA)>
96 <!ATTLIST librarycategory
97     name  CDATA  #REQUIRED
98     %boost.common.attrib;>
99
100 <!ELEMENT libraryname  (#PCDATA)>
101 <!ATTLIST libraryname %boost.common.attrib;>
102
103 <!ELEMENT library-reference ANY>
104 <!ATTLIST library-reference
105     %boost.common.attrib;>
106
107 <!ELEMENT librarylist EMPTY>
108 <!ATTLIST librarylist %boost.common.attrib;>
109
110 <!ELEMENT librarycategorylist (librarycategorydef)*>
111 <!ATTLIST librarycategorylist %boost.common.attrib;>
112
113 <!ELEMENT librarycategorydef (#PCDATA)>
114 <!ATTLIST librarycategorydef
115          name   CDATA   #REQUIRED
116          %boost.common.attrib;>
117
118 <!ELEMENT header ANY>
119 <!ATTLIST header
120     name  CDATA  #REQUIRED
121     %boost.common.attrib;>
122
123 <!ELEMENT namespace (%boost.namespace.mix;)*>
124 <!ATTLIST namespace
125     name  CDATA  #REQUIRED
126     %boost.common.attrib;>
127
128 <!ELEMENT class (%boost.class.content;)>
129 <!ATTLIST class
130     name  CDATA  #REQUIRED
131     %boost.common.attrib;>
132
133 <!ELEMENT struct (%boost.class.content;)>
134 <!ATTLIST struct
135     name  CDATA  #REQUIRED
136     %boost.common.attrib;>
137
138 <!ELEMENT union (%boost.class.content;)>
139 <!ATTLIST union
140     name  CDATA  #REQUIRED
141     %boost.common.attrib;>
142
143 <!ELEMENT class-specialization (%boost.class-specialization.content;)>
144 <!ATTLIST class-specialization
145     name  CDATA  #REQUIRED
146     %boost.common.attrib;>
147
148 <!ELEMENT struct-specialization (%boost.class-specialization.content;)>
149 <!ATTLIST struct-specialization
150     name  CDATA  #REQUIRED
151     %boost.common.attrib;>
152
153 <!ELEMENT union-specialization (%boost.class-specialization.content;)>
154 <!ATTLIST union-specialization
155     name  CDATA  #REQUIRED
156     %boost.common.attrib;>
157
158 <!ELEMENT access (%boost.class.members;)+>
159 <!ATTLIST access
160     name CDATA #REQUIRED
161     %boost.common.attrib;>
162
163 <!--========= C++ Templates =========-->
164 <!ELEMENT template (%boost.template.mix;)*>
165 <!ATTLIST template %boost.common.attrib;>
166
167 <!ELEMENT template-type-parameter (default?, purpose?)>
168 <!ATTLIST template-type-parameter
169     name                     CDATA  #REQUIRED
170     pack                     CDATA  #IMPLIED 
171     %boost.common.attrib;>
172
173 <!ELEMENT template-nontype-parameter (type, default?, purpose?)>
174 <!ATTLIST template-nontype-parameter
175     name                     CDATA  #REQUIRED
176     pack                     CDATA  #IMPLIED 
177     %boost.common.attrib;>
178
179 <!ELEMENT template-varargs EMPTY>
180 <!ATTLIST template-varargs %boost.common.attrib;>
181
182 <!ELEMENT specialization (template-arg)*>
183 <!ATTLIST specialization %boost.common.attrib;>
184
185 <!ELEMENT template-arg ANY>
186 <!ATTLIST template-arg
187     pack    CDATA  #IMPLIED 
188     %boost.common.attrib;>
189
190 <!ELEMENT default ANY>
191 <!ATTLIST default %boost.common.attrib;>
192
193 <!ELEMENT inherit (type, purpose?)>
194 <!ATTLIST inherit
195     access  CDATA  #IMPLIED
196     pack    CDATA  #IMPLIED 
197     %boost.common.attrib;>
198
199 <!ELEMENT purpose ANY>
200 <!ATTLIST purpose %boost.common.attrib;>
201
202 <!ELEMENT description ANY>
203 <!ATTLIST description %boost.common.attrib;>
204
205 <!ELEMENT type ANY>
206 <!ATTLIST type %boost.common.attrib;>
207
208 <!ELEMENT typedef (type, purpose?, description?)>
209 <!ATTLIST typedef
210     name     CDATA  #REQUIRED
211     %boost.common.attrib;>
212
213 <!ELEMENT enum (enumvalue*, purpose?, description?)>
214 <!ATTLIST enum
215     name     CDATA  #REQUIRED
216     %boost.common.attrib;>
217
218 <!ELEMENT enumvalue (default?, purpose?, description?)>
219 <!ATTLIST enumvalue
220     name     CDATA  #REQUIRED
221     %boost.common.attrib;>
222
223 <!ELEMENT static-constant (type, default, purpose?, description?)>
224 <!ATTLIST static-constant
225     name   CDATA  #REQUIRED
226     %boost.common.attrib;>
227
228 <!ELEMENT data-member (type, purpose?, description?)>
229 <!ATTLIST data-member
230     name         CDATA  #REQUIRED
231     specifiers   CDATA  #IMPLIED
232     %boost.common.attrib;>
233
234 <!ELEMENT paramtype ANY>
235 <!ATTLIST paramtype %boost.common.attrib;>
236
237 <!ELEMENT effects ANY>
238 <!ATTLIST effects %boost.common.attrib;>
239
240 <!ELEMENT postconditions ANY>
241 <!ATTLIST postconditions %boost.common.attrib;>
242
243 <!ELEMENT method-group (method|overloaded-method)*>
244 <!ATTLIST method-group
245     name  CDATA  #REQUIRED
246     %boost.common.attrib;>
247
248 <!ELEMENT constructor (template?, parameter*, %boost.function.semantics;)>
249 <!ATTLIST constructor
250     specifiers   CDATA  #IMPLIED
251     %boost.common.attrib;>
252
253 <!ELEMENT destructor (%boost.function.semantics;)>
254 <!ATTLIST destructor
255     specifiers   CDATA  #IMPLIED
256     %boost.common.attrib;>
257
258 <!ELEMENT method (template?, type, parameter*, %boost.function.semantics;)>
259 <!ATTLIST method
260     name         CDATA  #REQUIRED
261     cv           CDATA  #IMPLIED
262     specifiers   CDATA  #IMPLIED
263     %boost.common.attrib;>
264
265 <!ELEMENT function (template?, type, parameter*, %boost.function.semantics;)>
266 <!ATTLIST function
267     name         CDATA  #REQUIRED
268     specifiers   CDATA  #IMPLIED
269     %boost.common.attrib;>
270
271 <!ELEMENT overloaded-method (signature*, %boost.function.semantics;)>
272 <!ATTLIST overloaded-method
273     name  CDATA  #REQUIRED
274     %boost.common.attrib;>
275
276 <!ELEMENT overloaded-function (signature*, %boost.function.semantics;)>
277 <!ATTLIST overloaded-function
278     name  CDATA  #REQUIRED
279     %boost.common.attrib;>
280
281 <!ELEMENT signature (template?, type, parameter*)>
282 <!ATTLIST signature
283     cv           CDATA  #IMPLIED
284     specifiers   CDATA  #IMPLIED
285     %boost.common.attrib;>
286
287 <!ELEMENT requires ANY>
288 <!ATTLIST requires %boost.common.attrib;>
289
290 <!ELEMENT returns ANY>
291 <!ATTLIST returns %boost.common.attrib;>
292
293 <!ELEMENT throws ANY>
294 <!ATTLIST throws %boost.common.attrib;>
295
296 <!ELEMENT complexity ANY>
297 <!ATTLIST complexity %boost.common.attrib;>
298
299 <!ELEMENT notes ANY>
300 <!ATTLIST notes %boost.common.attrib;>
301
302 <!ELEMENT rationale ANY>
303 <!ATTLIST rationale %boost.common.attrib;>
304
305 <!ELEMENT functionname (#PCDATA)>
306 <!ATTLIST functionname
307     alt          CDATA  #IMPLIED
308     %boost.common.attrib;>
309
310 <!ELEMENT enumname (#PCDATA)>
311 <!ATTLIST enumname
312     alt          CDATA  #IMPLIED
313     %boost.common.attrib;>
314
315 <!ELEMENT macroname (#PCDATA)>
316 <!ATTLIST macroname
317     alt          CDATA  #IMPLIED
318     %boost.common.attrib;>
319
320 <!ELEMENT headername (#PCDATA)>
321 <!ATTLIST headername
322     alt          CDATA  #IMPLIED
323     %boost.common.attrib;>
324
325 <!ELEMENT globalname (#PCDATA)>
326 <!ATTLIST globalname
327     alt          CDATA  #IMPLIED
328     %boost.common.attrib;>
329
330 <!ELEMENT copy-assignment
331     (template?, type?, parameter*, %boost.function.semantics;)>
332 <!ATTLIST copy-assignment
333     cv           CDATA  #IMPLIED
334     specifiers   CDATA  #IMPLIED
335     %boost.common.attrib;>
336
337 <!ELEMENT free-function-group (function|overloaded-function)*>
338 <!ATTLIST free-function-group
339     name  CDATA  #REQUIRED
340     %boost.common.attrib;>
341
342 <!ELEMENT precondition ANY>
343 <!ATTLIST precondition %boost.common.attrib;>
344
345 <!ELEMENT code ANY>
346 <!ATTLIST code %boost.common.attrib;>
347
348 <!ELEMENT using-namespace EMPTY>
349 <!ATTLIST using-namespace
350     name   CDATA  #REQUIRED
351     %boost.common.attrib;>
352
353 <!ELEMENT using-class EMPTY>
354 <!ATTLIST using-class
355      name        CDATA #REQUIRED
356      %boost.common.attrib;>
357
358 <!--========== Boost Testsuite Extensions ==========-->
359 <!ENTITY % boost.testsuite.tests
360         "compile-test|link-test|run-test|
361          compile-fail-test|link-fail-test|run-fail-test">
362 <!ENTITY % boost.testsuite.test.content
363         "source*, lib*, requirement*, purpose, if-fails?">
364
365 <!ELEMENT testsuite ((%boost.testsuite.tests;)+)>
366 <!ATTLIST testsuite %boost.common.attrib;>
367
368 <!ELEMENT compile-test (%boost.testsuite.test.content;)>
369 <!ATTLIST compile-test
370      filename CDATA #REQUIRED
371      name     CDATA #IMPLIED>
372
373 <!ELEMENT link-test (%boost.testsuite.test.content;)>
374 <!ATTLIST link-test
375      filename CDATA #REQUIRED
376      name     CDATA #IMPLIED>
377
378 <!ELEMENT run-test (%boost.testsuite.test.content;)>
379 <!ATTLIST run-test
380      filename CDATA #REQUIRED
381      name     CDATA #IMPLIED>
382
383 <!ELEMENT compile-fail-test (%boost.testsuite.test.content;)>
384 <!ATTLIST compile-fail-test
385      filename CDATA #REQUIRED
386      name     CDATA #IMPLIED>
387
388 <!ELEMENT link-fail-test (%boost.testsuite.test.content;)>
389 <!ATTLIST link-fail-test
390      filename CDATA #REQUIRED
391      name     CDATA #IMPLIED>
392
393 <!ELEMENT run-fail-test (%boost.testsuite.test.content;)>
394 <!ATTLIST run-fail-test
395      filename CDATA #REQUIRED
396      name     CDATA #IMPLIED>
397
398 <!ELEMENT source (#PCDATA|snippet)*>
399
400 <!ELEMENT snippet EMPTY>
401 <!ATTLIST snippet
402      name CDATA #REQUIRED>
403
404 <!ELEMENT lib (#PCDATA)>
405
406 <!ELEMENT requirement (#PCDATA)>
407 <!ATTLIST requirement
408      name CDATA #REQUIRED>
409
410 <!ELEMENT if-fails ANY>
411
412 <!ELEMENT parameter (paramtype, default?, description?)>
413 <!ATTLIST parameter
414      name CDATA #IMPLIED
415      pack CDATA #IMPLIED>
416
417 <!ELEMENT programlisting ANY>
418 <!ATTLIST programlisting
419      name        CDATA #IMPLIED>
420
421 <!--========== Customize the DocBook DTD ==========-->
422 <!ENTITY % local.tech.char.class "|functionname|libraryname|enumname|headername|macroname|code">
423 <!ENTITY % local.para.class
424         "|using-namespace|using-class|librarylist|librarycategorylist">
425 <!ENTITY % local.descobj.class "|libraryinfo">
426 <!ENTITY % local.classname.attrib "alt CDATA #IMPLIED">
427 <!ENTITY % local.methodname.attrib "alt CDATA #IMPLIED">
428 <!ENTITY % local.refentry.class "|library-reference|testsuite">
429 <!ENTITY % local.title.char.mix "">
430 <!ENTITY % programlisting.module "IGNORE">
431 <!ENTITY % parameter.module      "IGNORE">
432 <!ENTITY % function.module       "IGNORE">
433 <!ENTITY % type.module           "IGNORE">
434
435 <!--========== Import DocBook DTD ==========-->
436 <!ENTITY % DocBook PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
437            "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
438
439 %DocBook;