• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<dtd version='1.0'
2     unexpanded='1'
3     title="?untitled?"
4     namecase-general="1"
5     namecase-entity="0"
6     xml="0"
7     system-id="boostbook.dtd"
8     public-id=""
9     declaration=""
10     created-by="DTDParse V2.00"
11     created-on="Wed Feb 18 23:39:45 2009"
12>
13<attpurpose name="id">A global identifier for this element</attpurpose>
14<attpurpose name="last-revision">Set to $Date: 2003/04/13 14:46:07 $ to keep "last revised" information in sync with CVS changes</attpurpose>
15<attpurpose name="xml:base">Implementation detail used by XIncludes</attpurpose>
16<attpurpose name="name">The name of the element being declared to referenced</attpurpose>
17<attpurpose name="filename">The name of the file associated with this element</attpurpose>
18<attpurpose name="specifiers">The specifiers for this function, e.g., <code>inline</code>, <code>static</code>, etc.</attpurpose>
19<attpurpose name="cv">cv-qualifiers for this method, e.g., <code>const volatile</code></attpurpose>
20<attpurpose name="pack">Set to '1' if the parameter is a parameter pack.</attpurpose>
21
22<entity name="boost.class.content"
23        type="param"
24>
25<text-expanded>template?, inherit*, purpose?, description?,
26              (static-constant|typedef|enum|
27         copy-assignment|constructor|destructor|method-group|
28         method|overloaded-method|data-member|class|class-specialization|struct|
29         struct-specialization|union|union-specialization|free-function-group|function|overloaded-function|access)*</text-expanded>
30<text>template?, inherit*, purpose?, description?,
31              (access|%boost.class.mix;)*</text>
32</entity>
33
34<entity name="boost.function.semantics"
35        type="param"
36>
37<text-expanded>purpose?, description?, requires?, effects?, postconditions?,
38         returns?, throws?, complexity?, notes?, rationale?</text-expanded>
39<text>purpose?, description?, requires?, effects?, postconditions?,
40         returns?, throws?, complexity?, notes?, rationale?</text>
41</entity>
42
43<entity name="parameter.module"
44        type="param"
45>
46<text-expanded>IGNORE</text-expanded>
47<text>IGNORE</text>
48</entity>
49
50<entity name="local.classname.attrib"
51        type="param"
52>
53<text-expanded>alt CDATA #IMPLIED</text-expanded>
54<text>alt CDATA #IMPLIED</text>
55</entity>
56
57<entity name="boost.namespace.mix"
58        type="param"
59>
60<text-expanded>class|class-specialization|struct|struct-specialization|
61         union|union-specialization|typedef|enum|
62         free-function-group|function|overloaded-function|
63         namespace</text-expanded>
64<text>class|class-specialization|struct|struct-specialization|
65         union|union-specialization|typedef|enum|
66         free-function-group|function|overloaded-function|
67         namespace</text>
68</entity>
69
70<entity name="boost.testsuite.test.content"
71        type="param"
72>
73<text-expanded>source*, lib*, requirement*, purpose, if-fails?</text-expanded>
74<text>source*, lib*, requirement*, purpose, if-fails?</text>
75</entity>
76
77<entity name="programlisting.module"
78        type="param"
79>
80<text-expanded>IGNORE</text-expanded>
81<text>IGNORE</text>
82</entity>
83
84<entity name="local.refentry.class"
85        type="param"
86>
87<text-expanded>|library-reference|testsuite</text-expanded>
88<text>|library-reference|testsuite</text>
89</entity>
90
91<entity name="boost.common.attrib"
92        type="param"
93>
94<text-expanded>xml:base      CDATA  #IMPLIED
95                                last-revision CDATA  #IMPLIED
96                                id            CDATA  #IMPLIED</text-expanded>
97<text>%local.common.attrib;
98                                id            CDATA  #IMPLIED</text>
99</entity>
100
101<entity name="boost.class.members"
102        type="param"
103>
104<text-expanded>static-constant|typedef|enum|
105         copy-assignment|constructor|destructor|method-group|
106         method|overloaded-method|data-member|class|class-specialization|struct|
107         struct-specialization|union|union-specialization</text-expanded>
108<text>static-constant|typedef|enum|
109         copy-assignment|constructor|destructor|method-group|
110         method|overloaded-method|data-member|class|class-specialization|struct|
111         struct-specialization|union|union-specialization</text>
112</entity>
113
114<entity name="boost.class.mix"
115        type="param"
116>
117<text-expanded>static-constant|typedef|enum|
118         copy-assignment|constructor|destructor|method-group|
119         method|overloaded-method|data-member|class|class-specialization|struct|
120         struct-specialization|union|union-specialization|free-function-group|function|overloaded-function</text-expanded>
121<text>%boost.class.members;|free-function-group|function|overloaded-function</text>
122</entity>
123
124<entity name="boost.testsuite.tests"
125        type="param"
126>
127<text-expanded>compile-test|link-test|run-test|
128         compile-fail-test|link-fail-test|run-fail-test</text-expanded>
129<text>compile-test|link-test|run-test|
130         compile-fail-test|link-fail-test|run-fail-test</text>
131</entity>
132
133<entity name="local.para.class"
134        type="param"
135>
136<text-expanded>|using-namespace|using-class|librarylist|librarycategorylist</text-expanded>
137<text>|using-namespace|using-class|librarylist|librarycategorylist</text>
138</entity>
139
140<entity name="DocBook"
141        type="param"
142        public="-//OASIS//DTD DocBook XML V4.2//EN"
143        system="http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
144/>
145
146<entity name="local.title.char.mix"
147        type="param"
148>
149<text-expanded></text-expanded>
150<text></text>
151</entity>
152
153<entity name="local.methodname.attrib"
154        type="param"
155>
156<text-expanded>alt CDATA #IMPLIED</text-expanded>
157<text>alt CDATA #IMPLIED</text>
158</entity>
159
160<entity name="local.tech.char.class"
161        type="param"
162>
163<text-expanded>|functionname|libraryname|enumname|headername|macroname|code</text-expanded>
164<text>|functionname|libraryname|enumname|headername|macroname|code</text>
165</entity>
166
167<entity name="function.module"
168        type="param"
169>
170<text-expanded>IGNORE</text-expanded>
171<text>IGNORE</text>
172</entity>
173
174<entity name="boost.template.mix"
175        type="param"
176>
177<text-expanded>template-type-parameter|template-nontype-parameter|template-varargs</text-expanded>
178<text>template-type-parameter|template-nontype-parameter|template-varargs</text>
179</entity>
180
181<entity name="local.common.attrib"
182        type="param"
183>
184<text-expanded>xml:base      CDATA  #IMPLIED
185                                last-revision CDATA  #IMPLIED</text-expanded>
186<text>xml:base      CDATA  #IMPLIED
187                                last-revision CDATA  #IMPLIED</text>
188</entity>
189
190<entity name="type.module"
191        type="param"
192>
193<text-expanded>IGNORE</text-expanded>
194<text>IGNORE</text>
195</entity>
196
197<entity name="local.descobj.class"
198        type="param"
199>
200<text-expanded>|libraryinfo</text-expanded>
201<text>|libraryinfo</text>
202</entity>
203
204<entity name="boost.class-specialization.content"
205        type="param"
206>
207<text-expanded>template?, specialization?, inherit?, purpose?, description?,
208              (static-constant|typedef|enum|
209         copy-assignment|constructor|destructor|method-group|
210         method|overloaded-method|data-member|class|class-specialization|struct|
211         struct-specialization|union|union-specialization|free-function-group|function|overloaded-function|access)*</text-expanded>
212<text>template?, specialization?, inherit?, purpose?, description?,
213              (access|%boost.class.mix;)*</text>
214</entity>
215
216<entity name="library.content"
217        type="param"
218>
219<text-expanded>libraryinfo, (title, ((section|library-reference|testsuite))+)?</text-expanded>
220<text>libraryinfo, (title, ((section|library-reference|testsuite))+)?</text>
221</entity>
222
223<element name="class-specialization"
224         content-type="element">
225<content-model-expanded>
226  <sequence-group>
227    <element-name name="template" occurrence="?"/>
228    <element-name name="specialization" occurrence="?"/>
229    <element-name name="inherit" occurrence="?"/>
230    <element-name name="purpose" occurrence="?"/>
231    <element-name name="description" occurrence="?"/>
232    <or-group occurrence="*">
233      <element-name name="access"/>
234      <element-name name="static-constant"/>
235      <element-name name="typedef"/>
236      <element-name name="enum"/>
237      <element-name name="copy-assignment"/>
238      <element-name name="constructor"/>
239      <element-name name="destructor"/>
240      <element-name name="method-group"/>
241      <element-name name="free-function-group"/>
242      <element-name name="function"/>
243      <element-name name="method"/>
244      <element-name name="overloaded-function"/>
245      <element-name name="overloaded-method"/>
246      <element-name name="data-member"/>
247      <element-name name="class"/>
248      <element-name name="class-specialization"/>
249      <element-name name="struct"/>
250      <element-name name="struct-specialization"/>
251      <element-name name="union"/>
252      <element-name name="union-specialization"/>
253    </or-group>
254  </sequence-group>
255</content-model-expanded>
256<content-model>
257  <sequence-group>
258    <parament-name name="boost.class-specialization.content"/>
259  </sequence-group>
260</content-model>
261
262<purpose>A specialization (partial or full) of a class template</purpose>
263</element>
264
265<attlist name="class-specialization">
266<attdecl>
267    name  CDATA  #REQUIRED
268    %boost.common.attrib;</attdecl>
269<attribute name="last-revision"
270           type="#IMPLIED"
271           value="CDATA"
272           default=""/>
273<attribute name="name"
274           type="#REQUIRED"
275           value="CDATA"
276           default=""/>
277<attribute name="id"
278           type="#IMPLIED"
279           value="CDATA"
280           default=""/>
281<attribute name="xml:base"
282           type="#IMPLIED"
283           value="CDATA"
284           default=""/>
285</attlist>
286
287<element name="link-test"
288         content-type="element">
289<content-model-expanded>
290  <sequence-group>
291    <element-name name="source" occurrence="*"/>
292    <element-name name="lib" occurrence="*"/>
293    <element-name name="requirement" occurrence="*"/>
294    <element-name name="purpose"/>
295    <element-name name="if-fails" occurrence="?"/>
296  </sequence-group>
297</content-model-expanded>
298<content-model>
299  <sequence-group>
300    <parament-name name="boost.testsuite.test.content"/>
301  </sequence-group>
302</content-model>
303<purpose>Declares a test that should compile and link</purpose>
304</element>
305
306<attlist name="link-test">
307<attdecl>
308     filename CDATA #REQUIRED
309     name     CDATA #IMPLIED</attdecl>
310<attribute name="filename"
311           type="#REQUIRED"
312           value="CDATA"
313           default=""/>
314<attribute name="name"
315           type="#IMPLIED"
316           value="CDATA"
317           default=""/>
318</attlist>
319
320<element name="link-fail-test"
321         content-type="element">
322<content-model-expanded>
323  <sequence-group>
324    <element-name name="source" occurrence="*"/>
325    <element-name name="lib" occurrence="*"/>
326    <element-name name="requirement" occurrence="*"/>
327    <element-name name="purpose"/>
328    <element-name name="if-fails" occurrence="?"/>
329  </sequence-group>
330</content-model-expanded>
331<content-model>
332  <sequence-group>
333    <parament-name name="boost.testsuite.test.content"/>
334  </sequence-group>
335</content-model>
336<purpose>Declares a test that should compile but fail to link</purpose>
337</element>
338
339<attlist name="link-fail-test">
340<attdecl>
341     filename CDATA #REQUIRED
342     name     CDATA #IMPLIED</attdecl>
343<attribute name="filename"
344           type="#REQUIRED"
345           value="CDATA"
346           default=""/>
347<attribute name="name"
348           type="#IMPLIED"
349           value="CDATA"
350           default=""/>
351</attlist>
352
353<element name="typedef"
354         content-type="element">
355<content-model-expanded>
356  <sequence-group>
357    <element-name name="type"/>
358    <element-name name="purpose" occurrence="?"/>
359    <element-name name="description" occurrence="?"/>
360  </sequence-group>
361</content-model-expanded>
362<content-model>
363  <sequence-group>
364    <element-name name="type"/>
365    <element-name name="purpose" occurrence="?"/>
366    <element-name name="description" occurrence="?"/>
367  </sequence-group>
368</content-model>
369<purpose>Declares a typedef</purpose>
370</element>
371
372<attlist name="typedef">
373<attdecl>
374    name     CDATA  #REQUIRED
375    %boost.common.attrib;</attdecl>
376<attribute name="last-revision"
377           type="#IMPLIED"
378           value="CDATA"
379           default=""/>
380<attribute name="name"
381           type="#REQUIRED"
382           value="CDATA"
383           default=""/>
384<attribute name="id"
385           type="#IMPLIED"
386           value="CDATA"
387           default=""/>
388<attribute name="xml:base"
389           type="#IMPLIED"
390           value="CDATA"
391           default=""/>
392</attlist>
393
394<element name="static-constant"
395         content-type="element">
396<content-model-expanded>
397  <sequence-group>
398    <element-name name="type"/>
399    <element-name name="default"/>
400    <element-name name="purpose" occurrence="?"/>
401    <element-name name="description" occurrence="?"/>
402  </sequence-group>
403</content-model-expanded>
404<content-model>
405  <sequence-group>
406    <element-name name="type"/>
407    <element-name name="default"/>
408    <element-name name="purpose" occurrence="?"/>
409    <element-name name="description" occurrence="?"/>
410  </sequence-group>
411</content-model>
412<purpose>Declares a static constant, e.g., <code>const int foo = 5;</code>.</purpose>
413</element>
414
415<attlist name="static-constant">
416<attdecl>
417    name   CDATA  #REQUIRED
418    %boost.common.attrib;</attdecl>
419<attribute name="last-revision"
420           type="#IMPLIED"
421           value="CDATA"
422           default=""/>
423<attribute name="name"
424           type="#REQUIRED"
425           value="CDATA"
426           default=""/>
427<attribute name="id"
428           type="#IMPLIED"
429           value="CDATA"
430           default=""/>
431<attribute name="xml:base"
432           type="#IMPLIED"
433           value="CDATA"
434           default=""/>
435</attlist>
436
437<element name="code"
438         content-type="element">
439<content-model-expanded>
440  <sequence-group>
441    <any/>
442  </sequence-group>
443</content-model-expanded>
444<content-model>
445  <sequence-group>
446    <any/>
447  </sequence-group>
448</content-model>
449<purpose>Mimics the <sgmltag>code</sgmltag> tag in HTML</purpose>
450<description>
451  <para>Text within a <sgmltag>code</sgmltag> tag is generally typeset
452  in a different, monospaced font so that it stands out as code. The
453  <sgmltag>code</sgmltag> tag in BoostBook is transformed directly
454  into the <sgmltag>computeroutput</sgmltag> tag in DocBook.</para>
455</description>
456</element>
457
458<attlist name="code">
459<attdecl> %boost.common.attrib;</attdecl>
460<attribute name="last-revision"
461           type="#IMPLIED"
462           value="CDATA"
463           default=""/>
464<attribute name="id"
465           type="#IMPLIED"
466           value="CDATA"
467           default=""/>
468<attribute name="xml:base"
469           type="#IMPLIED"
470           value="CDATA"
471           default=""/>
472</attlist>
473
474<element name="destructor"
475         content-type="element">
476<content-model-expanded>
477  <sequence-group>
478    <element-name name="purpose" occurrence="?"/>
479    <element-name name="description" occurrence="?"/>
480    <element-name name="requires" occurrence="?"/>
481    <element-name name="effects" occurrence="?"/>
482    <element-name name="postconditions" occurrence="?"/>
483    <element-name name="returns" occurrence="?"/>
484    <element-name name="throws" occurrence="?"/>
485    <element-name name="complexity" occurrence="?"/>
486    <element-name name="notes" occurrence="?"/>
487    <element-name name="rationale" occurrence="?"/>
488  </sequence-group>
489</content-model-expanded>
490<content-model>
491  <sequence-group>
492    <parament-name name="boost.function.semantics"/>
493  </sequence-group>
494</content-model>
495<purpose>Declares a destructor for the enclosing class</purpose>
496<description>
497  <para>General documentation on functions in BoostBook is provided in
498  the <link
499  linkend="boostbook.dtd.function"><sgmltag>function</sgmltag></link>
500  element documentation.</para>
501</description>
502</element>
503
504<attlist name="destructor">
505<attdecl>
506    specifiers   CDATA  #IMPLIED
507    %boost.common.attrib;</attdecl>
508<attribute name="last-revision"
509           type="#IMPLIED"
510           value="CDATA"
511           default=""/>
512<attribute name="specifiers"
513           type="#IMPLIED"
514           value="CDATA"
515           default=""/>
516<attribute name="id"
517           type="#IMPLIED"
518           value="CDATA"
519           default=""/>
520<attribute name="xml:base"
521           type="#IMPLIED"
522           value="CDATA"
523           default=""/>
524</attlist>
525
526<element name="template-type-parameter"
527         content-type="element">
528<content-model-expanded>
529  <sequence-group>
530    <element-name name="default" occurrence="?"/>
531    <element-name name="purpose" occurrence="?"/>
532  </sequence-group>
533</content-model-expanded>
534<content-model>
535  <sequence-group>
536    <element-name name="default" occurrence="?"/>
537    <element-name name="purpose" occurrence="?"/>
538  </sequence-group>
539</content-model>
540<purpose>Declares a template type parameter</purpose>
541</element>
542
543<attlist name="template-type-parameter">
544<attdecl>
545    name                     CDATA  #REQUIRED
546    pack                     CDATA  #IMPLIED
547    %boost.common.attrib;</attdecl>
548<attribute name="last-revision"
549           type="#IMPLIED"
550           value="CDATA"
551           default=""/>
552<attribute name="pack"
553           type="#IMPLIED"
554           value="CDATA"
555           default=""/>
556<attribute name="name"
557           type="#REQUIRED"
558           value="CDATA"
559           default=""/>
560<attribute name="id"
561           type="#IMPLIED"
562           value="CDATA"
563           default=""/>
564<attribute name="xml:base"
565           type="#IMPLIED"
566           value="CDATA"
567           default=""/>
568</attlist>
569
570<element name="description"
571         content-type="element">
572<content-model-expanded>
573  <sequence-group>
574    <any/>
575  </sequence-group>
576</content-model-expanded>
577<content-model>
578  <sequence-group>
579    <any/>
580  </sequence-group>
581</content-model>
582<purpose>Detailed description of a construct</purpose>
583<description>
584  <para>Although the context model for this element is
585  <code>ANY</code>, detailed descriptions should contain structured
586  DocBook elements that occur within sections, e.g., paragraphs
587  (<sgmltag>para</sgmltag>, <sgmltag>simpara</sgmltag>), lists
588  (<sgmltag>orderedlist</sgmltag>, <sgmltag>itemizedlist</sgmltag>),
589  tables (<sgmltag>informaltable</sgmltag>, <sgmltag>table</sgmltag>),
590  etc.</para>
591</description>
592</element>
593
594<attlist name="description">
595<attdecl> %boost.common.attrib;</attdecl>
596<attribute name="last-revision"
597           type="#IMPLIED"
598           value="CDATA"
599           default=""/>
600<attribute name="id"
601           type="#IMPLIED"
602           value="CDATA"
603           default=""/>
604<attribute name="xml:base"
605           type="#IMPLIED"
606           value="CDATA"
607           default=""/>
608</attlist>
609
610<element name="librarylist"
611         content-type="element">
612<content-model-expanded>
613  <empty/>
614</content-model-expanded>
615<content-model>
616  <empty/>
617</content-model>
618<purpose>Placeholder for an alphabetical list of libraries</purpose>
619<description>
620  <para>Developers aren't generally expected to use this element. Its existence is mainly as a placeholder in <filename>boost.xml</filename> for the alphabetical list of libraries.</para>
621</description>
622</element>
623
624<attlist name="librarylist">
625<attdecl> %boost.common.attrib;</attdecl>
626<attribute name="last-revision"
627           type="#IMPLIED"
628           value="CDATA"
629           default=""/>
630<attribute name="id"
631           type="#IMPLIED"
632           value="CDATA"
633           default=""/>
634<attribute name="xml:base"
635           type="#IMPLIED"
636           value="CDATA"
637           default=""/>
638</attlist>
639
640<element name="library-reference"
641         content-type="element">
642<!-- DPG brazenly modified the content model here, because "ANY" is
643     not a good idea and merging this document with another is, to say the
644     least, a PITA. -->
645<content-model-expanded>
646  <sequence-group>
647    <element-name name="title" occurrence="?"/>
648    <element-name name="section" occurrence="*"/>
649    <or-group occurrence="*">
650      <element-name name="header"/>
651      <element-name name="library-reference"/>
652    </or-group>
653  </sequence-group>
654</content-model-expanded>
655<content-model>
656  <sequence-group>
657    <element-name name="title" occurrence="?"/>
658    <element-name name="section" occurrence="*"/>
659    <or-group>
660      <element-name name="header" occurrence="*"/>
661      <element-name name="library-reference" occurrence="*"/>
662    </or-group>
663  </sequence-group>
664</content-model>
665<purpose>Declares the reference material for a library</purpose>
666<description>
667  <para>Reference documentation for a library is contained with a
668  &lt;library-reference&gt; element. The &lt;library-reference&gt;
669  element has no attributes, and contains as children only
670  &lt;header&gt; elements.</para>
671
672  <para>The &lt;header&gt; element defines a C++ header file. Within
673  each C++ header file lie the definitions of C++ constructs to be
674  documented. The <code>name</code> attribute of the &lt;header&gt;
675  element gives the name of the header, as one would specify when
676  including the header. For instance, the &lt;library-reference&gt;
677  for the <libraryname>Any</libraryname> library may look like
678  this:</para>
679
680  <programlisting>&lt;library-reference&gt;
681  &lt;header name="boost/any.hpp"&gt;
682    &lt;!-- C++ constructs in this header --&gt;
683  &lt;/header&gt;
684&lt;/library-reference&gt;</programlisting>
685
686  <para>If the <libraryname>Any</libraryname> library contained
687  multiple headers, we would list them all as children of the
688  &lt;library-reference&gt; element.</para>
689
690  <para><sgmltag>library-reference</sgmltag> elements can be nested,
691  so that reference material can be divided into separate sections
692  that each contain different headers.</para>
693</description>
694</element>
695
696<attlist name="library-reference">
697<attdecl>
698    %boost.common.attrib;</attdecl>
699<attribute name="last-revision"
700           type="#IMPLIED"
701           value="CDATA"
702           default=""/>
703<attribute name="id"
704           type="#IMPLIED"
705           value="CDATA"
706           default=""/>
707<attribute name="xml:base"
708           type="#IMPLIED"
709           value="CDATA"
710           default=""/>
711</attlist>
712
713<element name="boostbook"
714         content-type="element">
715<content-model-expanded>
716  <sequence-group>
717    <element-name name="title"/>
718    <or-group occurrence="*">
719      <element-name name="chapter"/>
720      <element-name name="library"/>
721    </or-group>
722  </sequence-group>
723</content-model-expanded>
724<content-model>
725  <sequence-group>
726    <element-name name="title"/>
727    <or-group occurrence="*">
728      <element-name name="chapter"/>
729      <element-name name="library"/>
730    </or-group>
731  </sequence-group>
732</content-model>
733<purpose>Defines a BoostBook book</purpose>
734<description>
735  <simpara>This element is the topmost level defined by
736  <filename>boost.xml</filename> for all Boost documentation. It will
737  not generally be used by developers.</simpara>
738</description>
739</element>
740
741<attlist name="boostbook">
742<attdecl> %boost.common.attrib;</attdecl>
743<attribute name="last-revision"
744           type="#IMPLIED"
745           value="CDATA"
746           default=""/>
747<attribute name="id"
748           type="#IMPLIED"
749           value="CDATA"
750           default=""/>
751<attribute name="xml:base"
752           type="#IMPLIED"
753           value="CDATA"
754           default=""/>
755</attlist>
756
757<element name="union"
758         content-type="element">
759<content-model-expanded>
760  <sequence-group>
761    <element-name name="template" occurrence="?"/>
762    <element-name name="inherit" occurrence="*"/>
763    <element-name name="purpose" occurrence="?"/>
764    <element-name name="description" occurrence="?"/>
765    <or-group occurrence="*">
766      <element-name name="access"/>
767      <element-name name="static-constant"/>
768      <element-name name="typedef"/>
769      <element-name name="enum"/>
770      <element-name name="copy-assignment"/>
771      <element-name name="constructor"/>
772      <element-name name="destructor"/>
773      <element-name name="method-group"/>
774      <element-name name="free-function-group"/>
775      <element-name name="function"/>
776      <element-name name="method"/>
777      <element-name name="overloaded-function"/>
778      <element-name name="overloaded-method"/>
779      <element-name name="data-member"/>
780      <element-name name="class"/>
781      <element-name name="class-specialization"/>
782      <element-name name="struct"/>
783      <element-name name="struct-specialization"/>
784      <element-name name="union"/>
785      <element-name name="union-specialization"/>
786    </or-group>
787  </sequence-group>
788</content-model-expanded>
789<content-model>
790  <sequence-group>
791    <parament-name name="boost.class.content"/>
792  </sequence-group>
793</content-model>
794<purpose>Declares a C++ union or union template</purpose>
795</element>
796
797<attlist name="union">
798<attdecl>
799    name  CDATA  #REQUIRED
800    %boost.common.attrib;</attdecl>
801<attribute name="last-revision"
802           type="#IMPLIED"
803           value="CDATA"
804           default=""/>
805<attribute name="name"
806           type="#REQUIRED"
807           value="CDATA"
808           default=""/>
809<attribute name="id"
810           type="#IMPLIED"
811           value="CDATA"
812           default=""/>
813<attribute name="xml:base"
814           type="#IMPLIED"
815           value="CDATA"
816           default=""/>
817</attlist>
818
819<element name="inherit"
820         content-type="element">
821<content-model-expanded>
822  <sequence-group>
823    <element-name name="type"/>
824    <element-name name="purpose" occurrence="?"/>
825  </sequence-group>
826</content-model-expanded>
827<content-model>
828  <sequence-group>
829    <element-name name="type"/>
830    <element-name name="purpose" occurrence="?"/>
831  </sequence-group>
832</content-model>
833<purpose>Declares a base class of the enclosing class or struct</purpose>
834
835<description>
836  <para>This element contains the type of the class inherited.</para>
837</description>
838</element>
839
840<attlist name="inherit">
841<attdecl>
842    access  CDATA  #IMPLIED
843    pack    CDATA  #IMPLIED
844    %boost.common.attrib;</attdecl>
845<attribute name="last-revision"
846           type="#IMPLIED"
847           value="CDATA"
848           default=""/>
849<attribute name="access"
850           type="#IMPLIED"
851           value="CDATA"
852           default="">
853  <purpose>The access specifier ("public", "private", or "protected") of the inheritance.</purpose>
854</attribute>
855<attribute name="id"
856           type="#IMPLIED"
857           value="CDATA"
858           default=""/>
859<attribute name="pack"
860           type="#IMPLIED"
861           value="CDATA"
862           default="">
863  <purpose>Set to '1' if this is a pack exapansion.</purpose>
864</attribute>
865<attribute name="xml:base"
866           type="#IMPLIED"
867           value="CDATA"
868           default=""/>
869</attlist>
870
871<element name="template-varargs"
872         content-type="element">
873<content-model-expanded>
874  <empty/>
875</content-model-expanded>
876<content-model>
877  <empty/>
878</content-model>
879<purpose>Declares a variable-length list of template parameters</purpose>
880
881<description>
882  <para>Variable-length template parameter lists are not allowed in
883  C++, but because they are sometimes needed in documentation they are
884  allowed in BoostBook. This element generally expands to "..." and
885  can be used anywhere any other template parameter can be
886  used.</para>
887</description>
888</element>
889
890<attlist name="template-varargs">
891<attdecl> %boost.common.attrib;</attdecl>
892<attribute name="last-revision"
893           type="#IMPLIED"
894           value="CDATA"
895           default=""/>
896<attribute name="id"
897           type="#IMPLIED"
898           value="CDATA"
899           default=""/>
900<attribute name="xml:base"
901           type="#IMPLIED"
902           value="CDATA"
903           default=""/>
904</attlist>
905
906<element name="source"
907         content-type="mixed">
908<content-model-expanded>
909  <or-group occurrence="*">
910    <pcdata/>
911    <element-name name="snippet"/>
912  </or-group>
913</content-model-expanded>
914<content-model>
915  <or-group occurrence="*">
916    <pcdata/>
917    <element-name name="snippet"/>
918  </or-group>
919</content-model>
920<purpose>Defines source code for a test</purpose>
921
922<description>
923  <para>This element will contain the source code for a testcase that
924  will be generated from the documentation. To reduce the amount of escaping in the text, it is recommended to use CDATA sections, which look like this:
925
926    <programlisting>&lt;![CDATA[
927&lt;your program text here: no escaping needed!&gt;
928]]&gt;</programlisting>
929  </para>
930
931  <para>In addition to CDATA sections, code snippets can be pulled in
932  from <sgmltag>programlisting</sgmltag> elements using the <link
933  linkend="boostbook.dtd.snippet"><sgmltag>snippet</sgmltag></link>
934  element.</para>
935</description>
936
937</element>
938
939<element name="function"
940         content-type="element">
941<content-model-expanded>
942  <sequence-group>
943    <element-name name="template" occurrence="?"/>
944    <element-name name="type"/>
945    <element-name name="parameter" occurrence="*"/>
946    <element-name name="purpose" occurrence="?"/>
947    <element-name name="description" occurrence="?"/>
948    <element-name name="requires" occurrence="?"/>
949    <element-name name="effects" occurrence="?"/>
950    <element-name name="postconditions" occurrence="?"/>
951    <element-name name="returns" occurrence="?"/>
952    <element-name name="throws" occurrence="?"/>
953    <element-name name="complexity" occurrence="?"/>
954    <element-name name="notes" occurrence="?"/>
955    <element-name name="rationale" occurrence="?"/>
956  </sequence-group>
957</content-model-expanded>
958<content-model>
959  <sequence-group>
960    <element-name name="template" occurrence="?"/>
961    <element-name name="type"/>
962    <element-name name="parameter" occurrence="*"/>
963    <parament-name name="boost.function.semantics"/>
964  </sequence-group>
965</content-model>
966<purpose>Declares a function</purpose>
967<description>
968  <para>BoostBook functions are documented by specifying the
969  function's interface (e.g., its C++ signature) and its
970  behavior. Constructors, destructors, member functions, and free
971  functions all use the same documentation method, although the
972  top-level tags differ.</para>
973
974  <para>The behavior of functions in BoostBook is documenting using a
975  style similar to that of the C++ standard, with clauses describing
976  the requirements, effects, postconditions, exception behavior, and
977  return values of functions.</para>
978
979  <para>The following example illustrates some constructors and a
980  destructor for <classname>boost::any</classname>. Note that one of
981  the constructors takes a single parameter whose name is "other" and
982  whose type, <code>const any&amp;</code> is contained in the
983  &lt;paramtype&gt; element; any number of parameters may be specified
984  in this way.</para>
985
986  <programlisting>&lt;class name="any"&gt;
987  &lt;constructor&gt;
988    &lt;postconditions&gt;&lt;para&gt;&lt;this-&gt;empty()&gt;&lt;/para&gt;&lt;/postconditions&gt;
989  &lt;/constructor&gt;
990
991  &lt;constructor&gt;
992    &lt;parameter name="other"&gt;
993      &lt;paramtype&gt;const &lt;classname&gt;any&lt;/classname&gt;&amp;amp;&lt;/paramtype&gt;
994    &lt;/parameter&gt;
995
996    &lt;effects&gt;
997      &lt;simpara&gt; Copy constructor that copies
998        content of &lt;code&gt;other&lt;/code&gt; into the new instance,
999        so that any content is equivalent in both type and value to the
1000        content of &lt;code&gt;other&lt;/code&gt;, or empty if
1001        &lt;code&gt;other&lt;/code&gt; is
1002        empty.
1003      &lt;/simpara&gt;
1004    &lt;/effects&gt;
1005
1006    &lt;throws&gt;
1007      &lt;simpara&gt;May fail with a
1008        &lt;classname&gt;std::bad_alloc&lt;/classname&gt; exception or any
1009        exceptions arising from the copy constructor of the
1010        contained type.
1011      &lt;/simpara&gt;
1012    &lt;/throws&gt;
1013  &lt;/constructor&gt;
1014
1015  &lt;destructor&gt;
1016     &lt;effects&gt;&lt;simpara&gt;Releases any and all resources used in
1017     management of instance.&lt;/simpara&gt;&lt;/effects&gt;
1018
1019     &lt;throws&gt;&lt;simpara&gt;Nothing.&lt;/simpara&gt;&lt;/throws&gt;
1020  &lt;/destructor&gt;
1021&lt;/class&gt;</programlisting>
1022</description>
1023</element>
1024
1025<attlist name="function">
1026<attdecl>
1027    name         CDATA  #REQUIRED
1028    specifiers   CDATA  #IMPLIED
1029    %boost.common.attrib;</attdecl>
1030<attribute name="last-revision"
1031           type="#IMPLIED"
1032           value="CDATA"
1033           default=""/>
1034<attribute name="specifiers"
1035           type="#IMPLIED"
1036           value="CDATA"
1037           default=""/>
1038<attribute name="name"
1039           type="#REQUIRED"
1040           value="CDATA"
1041           default=""/>
1042<attribute name="id"
1043           type="#IMPLIED"
1044           value="CDATA"
1045           default=""/>
1046<attribute name="xml:base"
1047           type="#IMPLIED"
1048           value="CDATA"
1049           default=""/>
1050</attlist>
1051
1052<element name="macroname"
1053         content-type="mixed">
1054<content-model-expanded>
1055  <sequence-group>
1056    <pcdata/>
1057  </sequence-group>
1058</content-model-expanded>
1059<content-model>
1060  <sequence-group>
1061    <pcdata/>
1062  </sequence-group>
1063</content-model>
1064<purpose>References a macro with the given name</purpose>
1065</element>
1066
1067<attlist name="macroname">
1068<attdecl>
1069    alt          CDATA  #IMPLIED
1070    %boost.common.attrib;</attdecl>
1071<attribute name="last-revision"
1072           type="#IMPLIED"
1073           value="CDATA"
1074           default=""/>
1075<attribute name="alt"
1076           type="#IMPLIED"
1077           value="CDATA"
1078           default=""/>
1079<attribute name="id"
1080           type="#IMPLIED"
1081           value="CDATA"
1082           default=""/>
1083</attlist>
1084
1085<element name="postconditions"
1086         content-type="element">
1087<content-model-expanded>
1088  <sequence-group>
1089    <any/>
1090  </sequence-group>
1091</content-model-expanded>
1092<content-model>
1093  <sequence-group>
1094    <any/>
1095  </sequence-group>
1096</content-model>
1097<purpose>Conditions that must hold after the function returns</purpose>
1098</element>
1099
1100<attlist name="postconditions">
1101<attdecl> %boost.common.attrib;</attdecl>
1102<attribute name="last-revision"
1103           type="#IMPLIED"
1104           value="CDATA"
1105           default=""/>
1106<attribute name="id"
1107           type="#IMPLIED"
1108           value="CDATA"
1109           default=""/>
1110<attribute name="xml:base"
1111           type="#IMPLIED"
1112           value="CDATA"
1113           default=""/>
1114</attlist>
1115
1116<element name="compile-test"
1117         content-type="element">
1118<content-model-expanded>
1119  <sequence-group>
1120    <element-name name="source" occurrence="*"/>
1121    <element-name name="lib" occurrence="*"/>
1122    <element-name name="requirement" occurrence="*"/>
1123    <element-name name="purpose"/>
1124    <element-name name="if-fails" occurrence="?"/>
1125  </sequence-group>
1126</content-model-expanded>
1127<content-model>
1128  <sequence-group>
1129    <parament-name name="boost.testsuite.test.content"/>
1130  </sequence-group>
1131</content-model>
1132<purpose>A testcase that should compile correctly</purpose>
1133</element>
1134
1135<attlist name="compile-test">
1136<attdecl>
1137     filename CDATA #REQUIRED
1138     name     CDATA #IMPLIED</attdecl>
1139<attribute name="filename"
1140           type="#REQUIRED"
1141           value="CDATA"
1142           default=""/>
1143<attribute name="name"
1144           type="#IMPLIED"
1145           value="CDATA"
1146           default=""/>
1147</attlist>
1148
1149<element name="method"
1150         content-type="element">
1151<content-model-expanded>
1152  <sequence-group>
1153    <element-name name="template" occurrence="?"/>
1154    <element-name name="type"/>
1155    <element-name name="parameter" occurrence="*"/>
1156    <element-name name="purpose" occurrence="?"/>
1157    <element-name name="description" occurrence="?"/>
1158    <element-name name="requires" occurrence="?"/>
1159    <element-name name="effects" occurrence="?"/>
1160    <element-name name="postconditions" occurrence="?"/>
1161    <element-name name="returns" occurrence="?"/>
1162    <element-name name="throws" occurrence="?"/>
1163    <element-name name="complexity" occurrence="?"/>
1164    <element-name name="notes" occurrence="?"/>
1165    <element-name name="rationale" occurrence="?"/>
1166  </sequence-group>
1167</content-model-expanded>
1168<content-model>
1169  <sequence-group>
1170    <element-name name="template" occurrence="?"/>
1171    <element-name name="type"/>
1172    <element-name name="parameter" occurrence="*"/>
1173    <parament-name name="boost.function.semantics"/>
1174  </sequence-group>
1175</content-model>
1176<purpose>Declares a method, i.e., a member function</purpose>
1177<description>
1178  <para>General documentation on functions in BoostBook is provided in
1179  the <link
1180  linkend="boostbook.dtd.function"><sgmltag>function</sgmltag></link>
1181  element documentation.</para>
1182</description>
1183</element>
1184
1185<attlist name="method">
1186<attdecl>
1187    name         CDATA  #REQUIRED
1188    cv           CDATA  #IMPLIED
1189    specifiers   CDATA  #IMPLIED
1190    %boost.common.attrib;</attdecl>
1191<attribute name="last-revision"
1192           type="#IMPLIED"
1193           value="CDATA"
1194           default=""/>
1195<attribute name="cv"
1196           type="#IMPLIED"
1197           value="CDATA"
1198           default=""/>
1199<attribute name="specifiers"
1200           type="#IMPLIED"
1201           value="CDATA"
1202           default=""/>
1203<attribute name="name"
1204           type="#REQUIRED"
1205           value="CDATA"
1206           default=""/>
1207<attribute name="id"
1208           type="#IMPLIED"
1209           value="CDATA"
1210           default=""/>
1211<attribute name="xml:base"
1212           type="#IMPLIED"
1213           value="CDATA"
1214           default=""/>
1215</attlist>
1216
1217<element name="snippet"
1218         content-type="element">
1219<content-model-expanded>
1220  <empty/>
1221</content-model-expanded>
1222<content-model>
1223  <empty/>
1224</content-model>
1225<purpose>Pulls in a code snippet from a <sgmltag>programlisting</sgmltag> element</purpose>
1226</element>
1227
1228<attlist name="snippet">
1229<attdecl>
1230     name CDATA #REQUIRED</attdecl>
1231<attribute name="name"
1232           type="#REQUIRED"
1233           value="CDATA"
1234           default="">
1235  <purpose>The name of the <sgmltag>programlisting</sgmltag> element to insert</purpose>
1236</attribute>
1237</attlist>
1238
1239<element name="constructor"
1240         content-type="element">
1241<content-model-expanded>
1242  <sequence-group>
1243    <element-name name="template" occurrence="?"/>
1244    <element-name name="parameter" occurrence="*"/>
1245    <element-name name="purpose" occurrence="?"/>
1246    <element-name name="description" occurrence="?"/>
1247    <element-name name="requires" occurrence="?"/>
1248    <element-name name="effects" occurrence="?"/>
1249    <element-name name="postconditions" occurrence="?"/>
1250    <element-name name="returns" occurrence="?"/>
1251    <element-name name="throws" occurrence="?"/>
1252    <element-name name="complexity" occurrence="?"/>
1253    <element-name name="notes" occurrence="?"/>
1254    <element-name name="rationale" occurrence="?"/>
1255  </sequence-group>
1256</content-model-expanded>
1257<content-model>
1258  <sequence-group>
1259    <element-name name="template" occurrence="?"/>
1260    <element-name name="parameter" occurrence="*"/>
1261    <parament-name name="boost.function.semantics"/>
1262  </sequence-group>
1263</content-model>
1264<purpose>Declares a constructor of the enclosing class</purpose>
1265<description>
1266  <para>General documentation on functions in BoostBook is provided in
1267  the <link
1268  linkend="boostbook.dtd.function"><sgmltag>function</sgmltag></link>
1269  element documentation.</para>
1270</description>
1271</element>
1272
1273<attlist name="constructor">
1274<attdecl>
1275    specifiers   CDATA  #IMPLIED
1276    %boost.common.attrib;</attdecl>
1277<attribute name="last-revision"
1278           type="#IMPLIED"
1279           value="CDATA"
1280           default=""/>
1281<attribute name="specifiers"
1282           type="#IMPLIED"
1283           value="CDATA"
1284           default=""/>
1285<attribute name="id"
1286           type="#IMPLIED"
1287           value="CDATA"
1288           default=""/>
1289<attribute name="xml:base"
1290           type="#IMPLIED"
1291           value="CDATA"
1292           default=""/>
1293</attlist>
1294
1295<element name="namespace"
1296         content-type="element">
1297<content-model-expanded>
1298  <or-group occurrence="*">
1299    <element-name name="class"/>
1300    <element-name name="class-specialization"/>
1301    <element-name name="struct"/>
1302    <element-name name="struct-specialization"/>
1303    <element-name name="union"/>
1304    <element-name name="union-specialization"/>
1305    <element-name name="typedef"/>
1306    <element-name name="enum"/>
1307    <element-name name="free-function-group"/>
1308    <element-name name="function"/>
1309    <element-name name="overloaded-function"/>
1310    <element-name name="namespace"/>
1311  </or-group>
1312</content-model-expanded>
1313<content-model>
1314  <sequence-group occurrence="*">
1315    <parament-name name="boost.namespace.mix"/>
1316  </sequence-group>
1317</content-model>
1318<purpose>Declares a namespace</purpose>
1319
1320<description>
1321  <para>BoostBook namespaces are declared via the &lt;namespace&gt;
1322  element. As in C++, namespaces can be nested and contain other C++
1323  constructs, such as classes or functions. The <code>name</code>
1324  attribute of a &lt;namespace&gt; element gives the namespace name
1325  (e.g., "boost"). The <libraryname>Any</libraryname> library is
1326  defined entirely within namespace boost by:</para>
1327
1328  <programlisting>&lt;library-reference&gt;
1329  &lt;header name="boost/any.hpp"&gt;
1330    &lt;namespace name="boost"&gt;
1331      &lt;!-- C++ constructs in the boost namespace --&gt;
1332    &lt;/namespace&gt;
1333  &lt;/header&gt;
1334&lt;/library-reference&gt;</programlisting>
1335</description>
1336</element>
1337
1338<attlist name="namespace">
1339<attdecl>
1340    name  CDATA  #REQUIRED
1341    %boost.common.attrib;</attdecl>
1342<attribute name="last-revision"
1343           type="#IMPLIED"
1344           value="CDATA"
1345           default=""/>
1346<attribute name="name"
1347           type="#REQUIRED"
1348           value="CDATA"
1349           default=""/>
1350<attribute name="id"
1351           type="#IMPLIED"
1352           value="CDATA"
1353           default=""/>
1354<attribute name="xml:base"
1355           type="#IMPLIED"
1356           value="CDATA"
1357           default=""/>
1358</attlist>
1359
1360<element name="if-fails"
1361         content-type="element">
1362<content-model-expanded>
1363  <sequence-group>
1364    <any/>
1365  </sequence-group>
1366</content-model-expanded>
1367<content-model>
1368  <sequence-group>
1369    <any/>
1370  </sequence-group>
1371</content-model>
1372<purpose>What it means when a testcase fails</purpose>
1373<description>
1374  <para>
1375    Describes to the user the effect a certain failing testcase will
1376    have on the usefulness of a library. This field is useful in cases
1377    where a failed testcase does not mean that the library won't be
1378    useful, but may mean that certain library features will not be
1379    available.
1380  </para>
1381</description>
1382</element>
1383
1384<element name="headername"
1385         content-type="mixed">
1386<content-model-expanded>
1387  <sequence-group>
1388    <pcdata/>
1389  </sequence-group>
1390</content-model-expanded>
1391<content-model>
1392  <sequence-group>
1393    <pcdata/>
1394  </sequence-group>
1395</content-model>
1396<purpose>References a C++ header with the given name</purpose>
1397</element>
1398
1399<attlist name="headername">
1400<attdecl>
1401    alt          CDATA  #IMPLIED
1402    %boost.common.attrib;</attdecl>
1403<attribute name="last-revision"
1404           type="#IMPLIED"
1405           value="CDATA"
1406           default=""/>
1407<attribute name="alt"
1408           type="#IMPLIED"
1409           value="CDATA"
1410           default=""/>
1411<attribute name="id"
1412           type="#IMPLIED"
1413           value="CDATA"
1414           default=""/>
1415</attlist>
1416
1417<element name="free-function-group"
1418         content-type="element">
1419<content-model-expanded>
1420  <or-group occurrence="*">
1421    <element-name name="function"/>
1422    <element-name name="overloaded-function"/>
1423  </or-group>
1424</content-model-expanded>
1425<content-model>
1426  <or-group occurrence="*">
1427    <element-name name="function"/>
1428    <element-name name="overloaded-function"/>
1429  </or-group>
1430</content-model>
1431<purpose>A set of functions that are grouped together under one name</purpose>
1432</element>
1433
1434<attlist name="free-function-group">
1435<attdecl>
1436    name  CDATA  #REQUIRED
1437    %boost.common.attrib;</attdecl>
1438<attribute name="last-revision"
1439           type="#IMPLIED"
1440           value="CDATA"
1441           default=""/>
1442<attribute name="name"
1443           type="#REQUIRED"
1444           value="CDATA"
1445           default=""/>
1446<attribute name="id"
1447           type="#IMPLIED"
1448           value="CDATA"
1449           default=""/>
1450<attribute name="xml:base"
1451           type="#IMPLIED"
1452           value="CDATA"
1453           default=""/>
1454</attlist>
1455
1456<element name="functionname"
1457         content-type="mixed">
1458<content-model-expanded>
1459  <sequence-group>
1460    <pcdata/>
1461  </sequence-group>
1462</content-model-expanded>
1463<content-model>
1464  <sequence-group>
1465    <pcdata/>
1466  </sequence-group>
1467</content-model>
1468<purpose>References a function with the given name</purpose>
1469<description>
1470  <para>If a function (or overloaded function) with the given,
1471  possibly-qualified name is found, this generates a link to that
1472  function. Lookups obey currently-active <link
1473  linkend="boostbook.dtd.using-class"><sgmltag>using-class</sgmltag></link>
1474  and <link
1475  linkend="boostbook.dtd.using-namespace"><sgmltag>using-namespace</sgmltag></link>
1476  directives to aid in the search, along with searching within the
1477  current scope.</para>
1478</description>
1479</element>
1480
1481<attlist name="functionname">
1482<attdecl>
1483    alt          CDATA  #IMPLIED
1484    %boost.common.attrib;</attdecl>
1485<attribute name="last-revision"
1486           type="#IMPLIED"
1487           value="CDATA"
1488           default=""/>
1489<attribute name="alt"
1490           type="#IMPLIED"
1491           value="CDATA"
1492           default=""/>
1493<attribute name="id"
1494           type="#IMPLIED"
1495           value="CDATA"
1496           default=""/>
1497<attribute name="xml:base"
1498           type="#IMPLIED"
1499           value="CDATA"
1500           default=""/>
1501</attlist>
1502
1503<element name="librarycategory"
1504         content-type="mixed">
1505<content-model-expanded>
1506  <sequence-group>
1507    <pcdata/>
1508  </sequence-group>
1509</content-model-expanded>
1510<content-model>
1511  <sequence-group>
1512    <pcdata/>
1513  </sequence-group>
1514</content-model>
1515<purpose>Declares that the enclosing library is in this category</purpose>
1516</element>
1517
1518<attlist name="librarycategory">
1519<attdecl>
1520    name  CDATA  #REQUIRED
1521    %boost.common.attrib;</attdecl>
1522<attribute name="last-revision"
1523           type="#IMPLIED"
1524           value="CDATA"
1525           default=""/>
1526<attribute name="name"
1527           type="#REQUIRED"
1528           value="CDATA"
1529           default=""/>
1530<attribute name="id"
1531           type="#IMPLIED"
1532           value="CDATA"
1533           default=""/>
1534<attribute name="xml:base"
1535           type="#IMPLIED"
1536           value="CDATA"
1537           default=""/>
1538</attlist>
1539
1540<element name="notes"
1541         content-type="element">
1542<content-model-expanded>
1543  <sequence-group>
1544    <any/>
1545  </sequence-group>
1546</content-model-expanded>
1547<content-model>
1548  <sequence-group>
1549    <any/>
1550  </sequence-group>
1551</content-model>
1552<purpose>Non-normative notes about a function's semantics</purpose>
1553</element>
1554
1555<attlist name="notes">
1556<attdecl> %boost.common.attrib;</attdecl>
1557<attribute name="last-revision"
1558           type="#IMPLIED"
1559           value="CDATA"
1560           default=""/>
1561<attribute name="id"
1562           type="#IMPLIED"
1563           value="CDATA"
1564           default=""/>
1565<attribute name="xml:base"
1566           type="#IMPLIED"
1567           value="CDATA"
1568           default=""/>
1569</attlist>
1570
1571<element name="data-member"
1572         content-type="element">
1573<content-model-expanded>
1574  <sequence-group>
1575    <element-name name="type"/>
1576    <element-name name="purpose" occurrence="?"/>
1577    <element-name name="description" occurrence="?"/>
1578  </sequence-group>
1579</content-model-expanded>
1580<content-model>
1581  <sequence-group>
1582    <element-name name="type"/>
1583    <element-name name="purpose" occurrence="?"/>
1584    <element-name name="description" occurrence="?"/>
1585  </sequence-group>
1586</content-model>
1587<purpose>Declares a data member of a class</purpose>
1588</element>
1589
1590<attlist name="data-member">
1591<attdecl>
1592    name         CDATA  #REQUIRED
1593    specifiers   CDATA  #IMPLIED
1594    %boost.common.attrib;</attdecl>
1595<attribute name="last-revision"
1596           type="#IMPLIED"
1597           value="CDATA"
1598           default=""/>
1599<attribute name="specifiers"
1600           type="#IMPLIED"
1601           value="CDATA"
1602           default=""/>
1603<attribute name="name"
1604           type="#REQUIRED"
1605           value="CDATA"
1606           default=""/>
1607<attribute name="id"
1608           type="#IMPLIED"
1609           value="CDATA"
1610           default=""/>
1611<attribute name="xml:base"
1612           type="#IMPLIED"
1613           value="CDATA"
1614           default=""/>
1615</attlist>
1616
1617<element name="specialization"
1618         content-type="element">
1619<content-model-expanded>
1620  <sequence-group occurrence="*">
1621    <element-name name="template-arg"/>
1622  </sequence-group>
1623</content-model-expanded>
1624<content-model>
1625  <sequence-group occurrence="*">
1626    <element-name name="template-arg"/>
1627  </sequence-group>
1628</content-model>
1629<purpose>Defines the specialization arguments for a class specialization</purpose>
1630</element>
1631
1632<attlist name="specialization">
1633<attdecl> %boost.common.attrib;</attdecl>
1634<attribute name="last-revision"
1635           type="#IMPLIED"
1636           value="CDATA"
1637           default=""/>
1638<attribute name="id"
1639           type="#IMPLIED"
1640           value="CDATA"
1641           default=""/>
1642<attribute name="xml:base"
1643           type="#IMPLIED"
1644           value="CDATA"
1645           default=""/>
1646</attlist>
1647
1648<element name="union-specialization"
1649         content-type="element">
1650<content-model-expanded>
1651  <sequence-group>
1652    <element-name name="template" occurrence="?"/>
1653    <element-name name="specialization" occurrence="?"/>
1654    <element-name name="inherit" occurrence="?"/>
1655    <element-name name="purpose" occurrence="?"/>
1656    <element-name name="description" occurrence="?"/>
1657    <or-group occurrence="*">
1658      <element-name name="access"/>
1659      <element-name name="static-constant"/>
1660      <element-name name="typedef"/>
1661      <element-name name="enum"/>
1662      <element-name name="copy-assignment"/>
1663      <element-name name="constructor"/>
1664      <element-name name="destructor"/>
1665      <element-name name="method-group"/>
1666      <element-name name="free-function-group"/>
1667      <element-name name="function"/>
1668      <element-name name="method"/>
1669      <element-name name="overloaded-function"/>
1670      <element-name name="overloaded-method"/>
1671      <element-name name="data-member"/>
1672      <element-name name="class"/>
1673      <element-name name="class-specialization"/>
1674      <element-name name="struct"/>
1675      <element-name name="struct-specialization"/>
1676      <element-name name="union"/>
1677      <element-name name="union-specialization"/>
1678    </or-group>
1679  </sequence-group>
1680</content-model-expanded>
1681<content-model>
1682  <sequence-group>
1683    <parament-name name="boost.class-specialization.content"/>
1684  </sequence-group>
1685</content-model>
1686<purpose>A specialization (full or partial) of a union template</purpose>
1687</element>
1688
1689<attlist name="union-specialization">
1690<attdecl>
1691    name  CDATA  #REQUIRED
1692    %boost.common.attrib;</attdecl>
1693<attribute name="last-revision"
1694           type="#IMPLIED"
1695           value="CDATA"
1696           default=""/>
1697<attribute name="name"
1698           type="#REQUIRED"
1699           value="CDATA"
1700           default=""/>
1701<attribute name="id"
1702           type="#IMPLIED"
1703           value="CDATA"
1704           default=""/>
1705<attribute name="xml:base"
1706           type="#IMPLIED"
1707           value="CDATA"
1708           default=""/>
1709</attlist>
1710
1711<element name="throws"
1712         content-type="element">
1713<content-model-expanded>
1714  <sequence-group>
1715    <any/>
1716  </sequence-group>
1717</content-model-expanded>
1718<content-model>
1719  <sequence-group>
1720    <any/>
1721  </sequence-group>
1722</content-model>
1723<purpose>Description of the exceptions thrown by a function</purpose>
1724</element>
1725
1726<attlist name="throws">
1727<attdecl> %boost.common.attrib;</attdecl>
1728<attribute name="last-revision"
1729           type="#IMPLIED"
1730           value="CDATA"
1731           default=""/>
1732<attribute name="id"
1733           type="#IMPLIED"
1734           value="CDATA"
1735           default=""/>
1736<attribute name="xml:base"
1737           type="#IMPLIED"
1738           value="CDATA"
1739           default=""/>
1740</attlist>
1741
1742<element name="template-arg"
1743         content-type="element">
1744<content-model-expanded>
1745  <sequence-group>
1746    <any/>
1747  </sequence-group>
1748</content-model-expanded>
1749<content-model>
1750  <sequence-group>
1751    <any/>
1752  </sequence-group>
1753</content-model>
1754<purpose>A template argument in a specialization</purpose>
1755</element>
1756
1757<attlist name="template-arg">
1758<attdecl>
1759    pack    CDATA  #IMPLIED
1760    %boost.common.attrib;</attdecl>
1761<attribute name="last-revision"
1762           type="#IMPLIED"
1763           value="CDATA"
1764           default=""/>
1765<attribute name="id"
1766           type="#IMPLIED"
1767           value="CDATA"
1768           default=""/>
1769<attribute name="pack"
1770           type="#IMPLIED"
1771           value="CDATA"
1772           default="">
1773  <purpose>Set to '1' if this is a pack exapansion.</purpose>
1774</attribute>
1775<attribute name="xml:base"
1776           type="#IMPLIED"
1777           value="CDATA"
1778           default=""/>
1779</attlist>
1780
1781<element name="globalname"
1782         content-type="mixed">
1783<content-model-expanded>
1784  <sequence-group>
1785    <pcdata/>
1786  </sequence-group>
1787</content-model-expanded>
1788<content-model>
1789  <sequence-group>
1790    <pcdata/>
1791  </sequence-group>
1792</content-model>
1793<purpose>References a global with the given name</purpose>
1794</element>
1795
1796<attlist name="globalname">
1797<attdecl>
1798    alt          CDATA  #IMPLIED
1799    %boost.common.attrib;</attdecl>
1800<attribute name="last-revision"
1801           type="#IMPLIED"
1802           value="CDATA"
1803           default=""/>
1804<attribute name="alt"
1805           type="#IMPLIED"
1806           value="CDATA"
1807           default=""/>
1808<attribute name="id"
1809           type="#IMPLIED"
1810           value="CDATA"
1811           default=""/>
1812</attlist>
1813
1814<element name="method-group"
1815         content-type="element">
1816<content-model-expanded>
1817  <or-group occurrence="*">
1818    <element-name name="method"/>
1819    <element-name name="overloaded-method"/>
1820  </or-group>
1821</content-model-expanded>
1822<content-model>
1823  <or-group occurrence="*">
1824    <element-name name="method"/>
1825    <element-name name="overloaded-method"/>
1826  </or-group>
1827</content-model>
1828<purpose>A set of methods that are grouped together under one name</purpose>
1829</element>
1830
1831<attlist name="method-group">
1832<attdecl>
1833    name  CDATA  #REQUIRED
1834    %boost.common.attrib;</attdecl>
1835<attribute name="last-revision"
1836           type="#IMPLIED"
1837           value="CDATA"
1838           default=""/>
1839<attribute name="name"
1840           type="#REQUIRED"
1841           value="CDATA"
1842           default=""/>
1843<attribute name="id"
1844           type="#IMPLIED"
1845           value="CDATA"
1846           default=""/>
1847<attribute name="xml:base"
1848           type="#IMPLIED"
1849           value="CDATA"
1850           default=""/>
1851</attlist>
1852
1853<element name="requirement"
1854         content-type="mixed">
1855<content-model-expanded>
1856  <sequence-group>
1857    <pcdata/>
1858  </sequence-group>
1859</content-model-expanded>
1860<content-model>
1861  <sequence-group>
1862    <pcdata/>
1863  </sequence-group>
1864</content-model>
1865<purpose>A requirement/property in the Jamfile for a testcase</purpose>
1866<description>
1867  <para>A requirement is part of the dependencies of a target in a
1868  Jamfile. The <code>name</code> attribute of a requirement element
1869  gives the name of the Boost.Build feature and the content of the
1870  requirement gives the value of that feature. A requirement such as
1871  <code>&lt;includes&gt;foo.hpp</code> would be encoded as
1872  <code>&lt;requirement
1873  name="includes"&gt;foo.hpp&lt;/requirement&gt;</code>.</para>
1874</description>
1875</element>
1876
1877<attlist name="requirement">
1878<attdecl>
1879     name CDATA #REQUIRED</attdecl>
1880<attribute name="name"
1881           type="#REQUIRED"
1882           value="CDATA"
1883           default=""/>
1884</attlist>
1885
1886<element name="precondition"
1887         content-type="element">
1888<content-model-expanded>
1889  <sequence-group>
1890    <any/>
1891  </sequence-group>
1892</content-model-expanded>
1893<content-model>
1894  <sequence-group>
1895    <any/>
1896  </sequence-group>
1897</content-model>
1898<purpose>Conditions that must be met prior to executing a function</purpose>
1899</element>
1900
1901<attlist name="precondition">
1902<attdecl> %boost.common.attrib;</attdecl>
1903<attribute name="last-revision"
1904           type="#IMPLIED"
1905           value="CDATA"
1906           default=""/>
1907<attribute name="id"
1908           type="#IMPLIED"
1909           value="CDATA"
1910           default=""/>
1911<attribute name="xml:base"
1912           type="#IMPLIED"
1913           value="CDATA"
1914           default=""/>
1915</attlist>
1916
1917<element name="paramtype"
1918         content-type="element">
1919<content-model-expanded>
1920  <sequence-group>
1921    <any/>
1922  </sequence-group>
1923</content-model-expanded>
1924<content-model>
1925  <sequence-group>
1926    <any/>
1927  </sequence-group>
1928</content-model>
1929<purpose>The type of a function parameter</purpose>
1930</element>
1931
1932<attlist name="paramtype">
1933<attdecl> %boost.common.attrib;</attdecl>
1934<attribute name="last-revision"
1935           type="#IMPLIED"
1936           value="CDATA"
1937           default=""/>
1938<attribute name="id"
1939           type="#IMPLIED"
1940           value="CDATA"
1941           default=""/>
1942<attribute name="xml:base"
1943           type="#IMPLIED"
1944           value="CDATA"
1945           default=""/>
1946</attlist>
1947
1948<element name="using-class"
1949         content-type="element">
1950<content-model-expanded>
1951  <empty/>
1952</content-model-expanded>
1953<content-model>
1954  <empty/>
1955</content-model>
1956<purpose>Injects the method and function names of a class into the local scope</purpose>
1957</element>
1958
1959<attlist name="using-class">
1960<attdecl>
1961     name        CDATA #REQUIRED
1962     %boost.common.attrib;</attdecl>
1963<attribute name="last-revision"
1964           type="#IMPLIED"
1965           value="CDATA"
1966           default=""/>
1967<attribute name="name"
1968           type="#REQUIRED"
1969           value="CDATA"
1970           default=""/>
1971<attribute name="id"
1972           type="#IMPLIED"
1973           value="CDATA"
1974           default=""/>
1975<attribute name="xml:base"
1976           type="#IMPLIED"
1977           value="CDATA"
1978           default=""/>
1979</attlist>
1980
1981<element name="run-test"
1982         content-type="element">
1983<content-model-expanded>
1984  <sequence-group>
1985    <element-name name="source" occurrence="*"/>
1986    <element-name name="lib" occurrence="*"/>
1987    <element-name name="requirement" occurrence="*"/>
1988    <element-name name="purpose"/>
1989    <element-name name="if-fails" occurrence="?"/>
1990  </sequence-group>
1991</content-model-expanded>
1992<content-model>
1993  <sequence-group>
1994    <parament-name name="boost.testsuite.test.content"/>
1995  </sequence-group>
1996</content-model>
1997<purpose>A testcase that should compile, link, and execute</purpose>
1998</element>
1999
2000<attlist name="run-test">
2001<attdecl>
2002     filename CDATA #REQUIRED
2003     name     CDATA #IMPLIED</attdecl>
2004<attribute name="filename"
2005           type="#REQUIRED"
2006           value="CDATA"
2007           default=""/>
2008<attribute name="name"
2009           type="#IMPLIED"
2010           value="CDATA"
2011           default=""/>
2012</attlist>
2013
2014<element name="librarypurpose"
2015         content-type="mixed">
2016<content-model-expanded>
2017  <or-group occurrence="*">
2018    <pcdata/>
2019    <element-name name="code"/>
2020    <element-name name="ulink"/>
2021    <element-name name="functionname"/>
2022    <element-name name="methodname"/>
2023    <element-name name="classname"/>
2024    <element-name name="macroname"/>
2025    <element-name name="headername"/>
2026    <element-name name="enumname"/>
2027    <element-name name="globalname"/>
2028  </or-group>
2029</content-model-expanded>
2030<content-model>
2031  <or-group occurrence="*">
2032    <pcdata/>
2033    <element-name name="code"/>
2034    <element-name name="ulink"/>
2035    <element-name name="functionname"/>
2036    <element-name name="methodname"/>
2037    <element-name name="classname"/>
2038    <element-name name="macroname"/>
2039    <element-name name="headername"/>
2040    <element-name name="enumname"/>
2041    <element-name name="globalname"/>
2042  </or-group>
2043</content-model>
2044<purpose>Describes in one short sentence or phrase the purpose of a library</purpose>
2045</element>
2046
2047<attlist name="librarypurpose">
2048<attdecl> %boost.common.attrib;</attdecl>
2049<attribute name="last-revision"
2050           type="#IMPLIED"
2051           value="CDATA"
2052           default=""/>
2053<attribute name="id"
2054           type="#IMPLIED"
2055           value="CDATA"
2056           default=""/>
2057<attribute name="xml:base"
2058           type="#IMPLIED"
2059           value="CDATA"
2060           default=""/>
2061</attlist>
2062
2063<element name="copy-assignment"
2064         content-type="element">
2065<content-model-expanded>
2066  <sequence-group>
2067    <element-name name="template" occurrence="?"/>
2068    <element-name name="type" occurrence="?"/>
2069    <element-name name="parameter" occurrence="*"/>
2070    <element-name name="purpose" occurrence="?"/>
2071    <element-name name="description" occurrence="?"/>
2072    <element-name name="requires" occurrence="?"/>
2073    <element-name name="effects" occurrence="?"/>
2074    <element-name name="postconditions" occurrence="?"/>
2075    <element-name name="returns" occurrence="?"/>
2076    <element-name name="throws" occurrence="?"/>
2077    <element-name name="complexity" occurrence="?"/>
2078    <element-name name="notes" occurrence="?"/>
2079    <element-name name="rationale" occurrence="?"/>
2080  </sequence-group>
2081</content-model-expanded>
2082<content-model>
2083  <sequence-group>
2084    <element-name name="template" occurrence="?"/>
2085    <element-name name="type" occurrence="?"/>
2086    <element-name name="parameter" occurrence="*"/>
2087    <parament-name name="boost.function.semantics"/>
2088  </sequence-group>
2089</content-model>
2090<purpose>Declares a copy-assignment operator</purpose>
2091<description>
2092  <para>The return type of the copy-assignment operator does not need
2093  to be specified. If left unspecified, it will default to an
2094  unqualified reference to the enclosing class type.</para>
2095
2096  <para>General documentation on functions in BoostBook is provided in
2097  the <link
2098  linkend="boostbook.dtd.function"><sgmltag>function</sgmltag></link>
2099  element documentation.</para>
2100</description>
2101</element>
2102
2103<attlist name="copy-assignment">
2104<attdecl>
2105    cv           CDATA  #IMPLIED
2106    specifiers   CDATA  #IMPLIED
2107    %boost.common.attrib;</attdecl>
2108<attribute name="last-revision"
2109           type="#IMPLIED"
2110           value="CDATA"
2111           default=""/>
2112<attribute name="cv"
2113           type="#IMPLIED"
2114           value="CDATA"
2115           default=""/>
2116<attribute name="specifiers"
2117           type="#IMPLIED"
2118           value="CDATA"
2119           default=""/>
2120<attribute name="id"
2121           type="#IMPLIED"
2122           value="CDATA"
2123           default=""/>
2124<attribute name="xml:base"
2125           type="#IMPLIED"
2126           value="CDATA"
2127           default=""/>
2128</attlist>
2129
2130<element name="run-fail-test"
2131         content-type="element">
2132<content-model-expanded>
2133  <sequence-group>
2134    <element-name name="source" occurrence="*"/>
2135    <element-name name="lib" occurrence="*"/>
2136    <element-name name="requirement" occurrence="*"/>
2137    <element-name name="purpose"/>
2138    <element-name name="if-fails" occurrence="?"/>
2139  </sequence-group>
2140</content-model-expanded>
2141<content-model>
2142  <sequence-group>
2143    <parament-name name="boost.testsuite.test.content"/>
2144  </sequence-group>
2145</content-model>
2146<purpose>A testcase that should compile and link, but fail on execution</purpose>
2147</element>
2148
2149<attlist name="run-fail-test">
2150<attdecl>
2151     filename CDATA #REQUIRED
2152     name     CDATA #IMPLIED</attdecl>
2153<attribute name="filename"
2154           type="#REQUIRED"
2155           value="CDATA"
2156           default=""/>
2157<attribute name="name"
2158           type="#IMPLIED"
2159           value="CDATA"
2160           default=""/>
2161</attlist>
2162
2163<element name="template"
2164         content-type="element">
2165<content-model-expanded>
2166  <or-group occurrence="*">
2167    <element-name name="template-type-parameter"/>
2168    <element-name name="template-nontype-parameter"/>
2169    <element-name name="template-varargs"/>
2170  </or-group>
2171</content-model-expanded>
2172<content-model>
2173  <sequence-group occurrence="*">
2174    <parament-name name="boost.template.mix"/>
2175  </sequence-group>
2176</content-model>
2177<purpose>Declares the template parameters of a class or function</purpose>
2178</element>
2179
2180<attlist name="template">
2181<attdecl> %boost.common.attrib;</attdecl>
2182<attribute name="last-revision"
2183           type="#IMPLIED"
2184           value="CDATA"
2185           default=""/>
2186<attribute name="id"
2187           type="#IMPLIED"
2188           value="CDATA"
2189           default=""/>
2190<attribute name="xml:base"
2191           type="#IMPLIED"
2192           value="CDATA"
2193           default=""/>
2194</attlist>
2195
2196<element name="compile-fail-test"
2197         content-type="element">
2198<content-model-expanded>
2199  <sequence-group>
2200    <element-name name="source" occurrence="*"/>
2201    <element-name name="lib" occurrence="*"/>
2202    <element-name name="requirement" occurrence="*"/>
2203    <element-name name="purpose"/>
2204    <element-name name="if-fails" occurrence="?"/>
2205  </sequence-group>
2206</content-model-expanded>
2207<content-model>
2208  <sequence-group>
2209    <parament-name name="boost.testsuite.test.content"/>
2210  </sequence-group>
2211</content-model>
2212<purpose>A testcase that should fail to compile</purpose>
2213</element>
2214
2215<attlist name="compile-fail-test">
2216<attdecl>
2217     filename CDATA #REQUIRED
2218     name     CDATA #IMPLIED</attdecl>
2219<attribute name="filename"
2220           type="#REQUIRED"
2221           value="CDATA"
2222           default=""/>
2223<attribute name="name"
2224           type="#IMPLIED"
2225           value="CDATA"
2226           default=""/>
2227</attlist>
2228
2229<element name="returns"
2230         content-type="element">
2231<content-model-expanded>
2232  <sequence-group>
2233    <any/>
2234  </sequence-group>
2235</content-model-expanded>
2236<content-model>
2237  <sequence-group>
2238    <any/>
2239  </sequence-group>
2240</content-model>
2241<purpose>Description of the return value of a function</purpose>
2242</element>
2243
2244<attlist name="returns">
2245<attdecl> %boost.common.attrib;</attdecl>
2246<attribute name="last-revision"
2247           type="#IMPLIED"
2248           value="CDATA"
2249           default=""/>
2250<attribute name="id"
2251           type="#IMPLIED"
2252           value="CDATA"
2253           default=""/>
2254<attribute name="xml:base"
2255           type="#IMPLIED"
2256           value="CDATA"
2257           default=""/>
2258</attlist>
2259
2260<element name="default"
2261         content-type="element">
2262<content-model-expanded>
2263  <sequence-group>
2264    <any/>
2265  </sequence-group>
2266</content-model-expanded>
2267<content-model>
2268  <sequence-group>
2269    <any/>
2270  </sequence-group>
2271</content-model>
2272<purpose>The default value of a function or template parameter</purpose>
2273</element>
2274
2275<attlist name="default">
2276<attdecl> %boost.common.attrib;</attdecl>
2277<attribute name="last-revision"
2278           type="#IMPLIED"
2279           value="CDATA"
2280           default=""/>
2281<attribute name="id"
2282           type="#IMPLIED"
2283           value="CDATA"
2284           default=""/>
2285<attribute name="xml:base"
2286           type="#IMPLIED"
2287           value="CDATA"
2288           default=""/>
2289</attlist>
2290
2291<element name="parameter"
2292         content-type="element">
2293<content-model-expanded>
2294  <sequence-group>
2295    <element-name name="paramtype"/>
2296    <element-name name="default" occurrence="?"/>
2297    <element-name name="description" occurrence="?"/>
2298  </sequence-group>
2299</content-model-expanded>
2300<content-model>
2301  <sequence-group>
2302    <element-name name="paramtype"/>
2303    <element-name name="default" occurrence="?"/>
2304    <element-name name="description" occurrence="?"/>
2305  </sequence-group>
2306</content-model>
2307<purpose>A function parameter</purpose>
2308</element>
2309
2310<attlist name="parameter">
2311<attdecl>
2312     name CDATA #IMPLIED
2313     pack CDATA #IMPLIED</attdecl>
2314<attribute name="name"
2315           type="#IMPLIED"
2316           value="CDATA"
2317           default=""/>
2318<attribute name="pack"
2319           type="#IMPLIED"
2320           value="CDATA"
2321           default=""/>
2322</attlist>
2323
2324<element name="signature"
2325         content-type="element">
2326<content-model-expanded>
2327  <sequence-group>
2328    <element-name name="template" occurrence="?"/>
2329    <element-name name="type"/>
2330    <element-name name="parameter" occurrence="*"/>
2331  </sequence-group>
2332</content-model-expanded>
2333<content-model>
2334  <sequence-group>
2335    <element-name name="template" occurrence="?"/>
2336    <element-name name="type"/>
2337    <element-name name="parameter" occurrence="*"/>
2338  </sequence-group>
2339</content-model>
2340<purpose>One signature of an overloaded function or method</purpose>
2341<description>
2342  <para>
2343    A signature refers to one declaration of an overloaded function or
2344    method. The signature itself has no name, because the name of the
2345    overloaded function or method is used. An overloaded function or
2346    method will have several signatures that will generally be typeset
2347    together.
2348  </para>
2349</description>
2350</element>
2351
2352<attlist name="signature">
2353<attdecl>
2354    cv           CDATA  #IMPLIED
2355    specifiers   CDATA  #IMPLIED
2356    %boost.common.attrib;</attdecl>
2357<attribute name="last-revision"
2358           type="#IMPLIED"
2359           value="CDATA"
2360           default=""/>
2361<attribute name="cv"
2362           type="#IMPLIED"
2363           value="CDATA"
2364           default=""/>
2365<attribute name="specifiers"
2366           type="#IMPLIED"
2367           value="CDATA"
2368           default=""/>
2369<attribute name="id"
2370           type="#IMPLIED"
2371           value="CDATA"
2372           default=""/>
2373<attribute name="xml:base"
2374           type="#IMPLIED"
2375           value="CDATA"
2376           default=""/>
2377</attlist>
2378
2379<element name="overloaded-function"
2380         content-type="element">
2381<content-model-expanded>
2382  <sequence-group>
2383    <element-name name="signature" occurrence="*"/>
2384    <element-name name="purpose" occurrence="?"/>
2385    <element-name name="description" occurrence="?"/>
2386    <element-name name="requires" occurrence="?"/>
2387    <element-name name="effects" occurrence="?"/>
2388    <element-name name="postconditions" occurrence="?"/>
2389    <element-name name="returns" occurrence="?"/>
2390    <element-name name="throws" occurrence="?"/>
2391    <element-name name="complexity" occurrence="?"/>
2392    <element-name name="notes" occurrence="?"/>
2393    <element-name name="rationale" occurrence="?"/>
2394  </sequence-group>
2395</content-model-expanded>
2396<content-model>
2397  <sequence-group>
2398    <element-name name="signature" occurrence="*"/>
2399    <parament-name name="boost.function.semantics"/>
2400  </sequence-group>
2401</content-model>
2402<purpose>An overloaded function</purpose>
2403<description>
2404  <para>General documentation on functions in BoostBook is provided in
2405  the <link
2406  linkend="boostbook.dtd.function"><sgmltag>function</sgmltag></link>
2407  element documentation.</para>
2408</description>
2409</element>
2410
2411<attlist name="overloaded-function">
2412<attdecl>
2413    name  CDATA  #REQUIRED
2414    %boost.common.attrib;</attdecl>
2415<attribute name="last-revision"
2416           type="#IMPLIED"
2417           value="CDATA"
2418           default=""/>
2419<attribute name="name"
2420           type="#REQUIRED"
2421           value="CDATA"
2422           default=""/>
2423<attribute name="id"
2424           type="#IMPLIED"
2425           value="CDATA"
2426           default=""/>
2427<attribute name="xml:base"
2428           type="#IMPLIED"
2429           value="CDATA"
2430           default=""/>
2431</attlist>
2432
2433<element name="access"
2434         content-type="element">
2435<content-model-expanded>
2436  <or-group occurrence="+">
2437    <element-name name="static-constant"/>
2438    <element-name name="typedef"/>
2439    <element-name name="enum"/>
2440    <element-name name="copy-assignment"/>
2441    <element-name name="constructor"/>
2442    <element-name name="destructor"/>
2443    <element-name name="method-group"/>
2444    <element-name name="method"/>
2445    <element-name name="overloaded-method"/>
2446    <element-name name="data-member"/>
2447    <element-name name="class"/>
2448    <element-name name="class-specialization"/>
2449    <element-name name="struct"/>
2450    <element-name name="struct-specialization"/>
2451    <element-name name="union"/>
2452    <element-name name="union-specialization"/>
2453  </or-group>
2454</content-model-expanded>
2455<content-model>
2456  <sequence-group occurrence="+">
2457    <parament-name name="boost.class.members"/>
2458  </sequence-group>
2459</content-model>
2460  <purpose>Declares an access specification for class members</purpose>
2461
2462  <description>
2463    <para>The access specifications of class members (public, private, or protected) may be determined by enclosing them in an &lt;access&gt; element.</para>
2464  </description>
2465</element>
2466
2467<attlist name="access">
2468<attdecl>
2469    name CDATA #REQUIRED
2470    %boost.common.attrib;</attdecl>
2471<attribute name="last-revision"
2472           type="#IMPLIED"
2473           value="CDATA"
2474           default=""/>
2475<attribute name="name"
2476           type="#REQUIRED"
2477           value="CDATA"
2478           default="">
2479  <purpose>The name of the access specification, e.g. "public", "private", or "protected".</purpose>
2480</attribute>
2481<attribute name="id"
2482           type="#IMPLIED"
2483           value="CDATA"
2484           default=""/>
2485</attlist>
2486
2487<element name="class"
2488         content-type="element">
2489<content-model-expanded>
2490  <sequence-group>
2491    <element-name name="template" occurrence="?"/>
2492    <element-name name="inherit" occurrence="*"/>
2493    <element-name name="purpose" occurrence="?"/>
2494    <element-name name="description" occurrence="?"/>
2495    <or-group occurrence="*">
2496      <element-name name="access"/>
2497      <element-name name="static-constant"/>
2498      <element-name name="typedef"/>
2499      <element-name name="enum"/>
2500      <element-name name="copy-assignment"/>
2501      <element-name name="constructor"/>
2502      <element-name name="destructor"/>
2503      <element-name name="method-group"/>
2504      <element-name name="free-function-group"/>
2505      <element-name name="function"/>
2506      <element-name name="method"/>
2507      <element-name name="overloaded-function"/>
2508      <element-name name="overloaded-method"/>
2509      <element-name name="data-member"/>
2510      <element-name name="class"/>
2511      <element-name name="class-specialization"/>
2512      <element-name name="struct"/>
2513      <element-name name="struct-specialization"/>
2514      <element-name name="union"/>
2515      <element-name name="union-specialization"/>
2516    </or-group>
2517  </sequence-group>
2518</content-model-expanded>
2519<content-model>
2520  <sequence-group>
2521    <parament-name name="boost.class.content"/>
2522  </sequence-group>
2523</content-model>
2524<purpose>Declares a class or class template</purpose>
2525
2526<description>
2527  <para>C++ classes and class templates are described via the
2528  &lt;class&gt; element. Each class has a name (e.g., "any") given by
2529  the <code>name</code> attribute, a purpose given by the
2530  &lt;purpose&gt; element, documentation, and a set of types,
2531  functions, base classes, and data members. Here is a minimal
2532  definition of the <classname>boost::any</classname> class:</para>
2533
2534  <programlisting>&lt;namespace name="boost"&gt;
2535  &lt;class name="any"&gt;
2536    &lt;purpose&gt;
2537      A class whose instances can hold instances of any type that satisfies
2538      ValueType requirements.
2539    &lt;/purpose&gt;
2540  &lt;/class&gt;
2541&lt;/namespace&gt;</programlisting>
2542
2543  <para>Additional class documentation can be contained in a
2544  <sgmltag>description</sgmltag> element following the &lt;purpose&gt;
2545  element. This documentation will be typeset prior to documentation
2546  for specific elements in the class (e.g., constructors or
2547  methods).</para>
2548
2549  <para>Class inheritance is described via the &lt;inherit&gt;
2550  element. The &lt;inherit&gt; element requires an <code>access</code>
2551  attribute which must be one of <emphasis>public</emphasis>,
2552  <emphasis>protected</emphasis>, or <emphasis>private</emphasis>. The
2553  content of the &lt;inherited&gt; element in C++ code that names the
2554  class inherited, and may contain markup to link to the class. The
2555  following description of the class
2556  <classname>boost::bad_any_cast</classname> describes public
2557  inheritance from the class <classname>std::bad_cast</classname>. It
2558  also defines the &lt;purpose&gt; element, which contains a short
2559  description of the use of the class.</para>
2560
2561  <programlisting>&lt;class name="bad_any_cast"&gt;
2562  &lt;inherit access="public"&gt;&lt;classname&gt;std::bad_cast&lt;/classname&gt;&lt;/inherit&gt;
2563  &lt;purpose&gt;&lt;para&gt;The exception thrown in the event of a failed
2564  &lt;functionname&gt;any_cast&lt;/functionname&gt; of an
2565  &lt;classname&gt;any&lt;/classname&gt; value.&lt;/para&gt;&lt;/purpose&gt;
2566&lt;/class&gt;</programlisting>
2567
2568  <para>Class templates are defined by &lt;class&gt; elements with a
2569  &lt;template&gt; child element at the beginning.</para>
2570</description>
2571</element>
2572
2573<attlist name="class">
2574<attdecl>
2575    name  CDATA  #REQUIRED
2576    %boost.common.attrib;</attdecl>
2577<attribute name="last-revision"
2578           type="#IMPLIED"
2579           value="CDATA"
2580           default=""/>
2581<attribute name="name"
2582           type="#REQUIRED"
2583           value="CDATA"
2584           default=""/>
2585<attribute name="id"
2586           type="#IMPLIED"
2587           value="CDATA"
2588           default=""/>
2589<attribute name="xml:base"
2590           type="#IMPLIED"
2591           value="CDATA"
2592           default=""/>
2593</attlist>
2594
2595<element name="librarycategorydef"
2596         content-type="mixed">
2597<content-model-expanded>
2598  <sequence-group>
2599    <pcdata/>
2600  </sequence-group>
2601</content-model-expanded>
2602<content-model>
2603  <sequence-group>
2604    <pcdata/>
2605  </sequence-group>
2606</content-model>
2607<purpose>Defines a new library category</purpose>
2608<description>
2609  <para>All library category definitions should be in <filename>doc/src/boost.xml</filename>, and the names of categories must be prefixed with "<code>category:</code>".</para>
2610</description>
2611</element>
2612
2613<attlist name="librarycategorydef">
2614<attdecl>
2615         name   CDATA   #REQUIRED
2616         %boost.common.attrib;</attdecl>
2617<attribute name="last-revision"
2618           type="#IMPLIED"
2619           value="CDATA"
2620           default=""/>
2621<attribute name="name"
2622           type="#REQUIRED"
2623           value="CDATA"
2624           default=""/>
2625<attribute name="id"
2626           type="#IMPLIED"
2627           value="CDATA"
2628           default=""/>
2629<attribute name="xml:base"
2630           type="#IMPLIED"
2631           value="CDATA"
2632           default=""/>
2633</attlist>
2634
2635<element name="type"
2636         content-type="element">
2637<content-model-expanded>
2638  <sequence-group>
2639    <any/>
2640  </sequence-group>
2641</content-model-expanded>
2642<content-model>
2643  <sequence-group>
2644    <any/>
2645  </sequence-group>
2646</content-model>
2647<purpose>The type of an element or return type of a function</purpose>
2648</element>
2649
2650<attlist name="type">
2651<attdecl> %boost.common.attrib;</attdecl>
2652<attribute name="last-revision"
2653           type="#IMPLIED"
2654           value="CDATA"
2655           default=""/>
2656<attribute name="id"
2657           type="#IMPLIED"
2658           value="CDATA"
2659           default=""/>
2660<attribute name="xml:base"
2661           type="#IMPLIED"
2662           value="CDATA"
2663           default=""/>
2664</attlist>
2665
2666<element name="enumvalue"
2667         content-type="element">
2668<content-model-expanded>
2669  <sequence-group>
2670    <element-name name="default" occurrence="?"/>
2671    <element-name name="purpose" occurrence="?"/>
2672    <element-name name="description" occurrence="?"/>
2673  </sequence-group>
2674</content-model-expanded>
2675<content-model>
2676  <sequence-group>
2677    <element-name name="default" occurrence="?"/>
2678    <element-name name="purpose" occurrence="?"/>
2679    <element-name name="description" occurrence="?"/>
2680  </sequence-group>
2681</content-model>
2682<purpose>A single value of an enumeration</purpose>
2683</element>
2684
2685<attlist name="enumvalue">
2686<attdecl>
2687    name     CDATA  #REQUIRED
2688    %boost.common.attrib;</attdecl>
2689<attribute name="last-revision"
2690           type="#IMPLIED"
2691           value="CDATA"
2692           default=""/>
2693<attribute name="name"
2694           type="#REQUIRED"
2695           value="CDATA"
2696           default=""/>
2697<attribute name="id"
2698           type="#IMPLIED"
2699           value="CDATA"
2700           default=""/>
2701<attribute name="xml:base"
2702           type="#IMPLIED"
2703           value="CDATA"
2704           default=""/>
2705</attlist>
2706
2707<element name="overloaded-method"
2708         content-type="element">
2709<content-model-expanded>
2710  <sequence-group>
2711    <element-name name="signature" occurrence="*"/>
2712    <element-name name="purpose" occurrence="?"/>
2713    <element-name name="description" occurrence="?"/>
2714    <element-name name="requires" occurrence="?"/>
2715    <element-name name="effects" occurrence="?"/>
2716    <element-name name="postconditions" occurrence="?"/>
2717    <element-name name="returns" occurrence="?"/>
2718    <element-name name="throws" occurrence="?"/>
2719    <element-name name="complexity" occurrence="?"/>
2720    <element-name name="notes" occurrence="?"/>
2721    <element-name name="rationale" occurrence="?"/>
2722  </sequence-group>
2723</content-model-expanded>
2724<content-model>
2725  <sequence-group>
2726    <element-name name="signature" occurrence="*"/>
2727    <parament-name name="boost.function.semantics"/>
2728  </sequence-group>
2729</content-model>
2730<purpose>An overloaded method</purpose>
2731<description>
2732  <para>General documentation on functions in BoostBook is provided in
2733  the <link
2734  linkend="boostbook.dtd.function"><sgmltag>function</sgmltag></link>
2735  element documentation.</para>
2736</description>
2737</element>
2738
2739<attlist name="overloaded-method">
2740<attdecl>
2741    name  CDATA  #REQUIRED
2742    %boost.common.attrib;</attdecl>
2743<attribute name="last-revision"
2744           type="#IMPLIED"
2745           value="CDATA"
2746           default=""/>
2747<attribute name="name"
2748           type="#REQUIRED"
2749           value="CDATA"
2750           default=""/>
2751<attribute name="id"
2752           type="#IMPLIED"
2753           value="CDATA"
2754           default=""/>
2755<attribute name="xml:base"
2756           type="#IMPLIED"
2757           value="CDATA"
2758           default=""/>
2759</attlist>
2760
2761<element name="programlisting"
2762         content-type="element">
2763<content-model-expanded>
2764  <sequence-group>
2765    <any/>
2766  </sequence-group>
2767</content-model-expanded>
2768<content-model>
2769  <sequence-group>
2770    <any/>
2771  </sequence-group>
2772</content-model>
2773<purpose>A sample of program code</purpose>
2774</element>
2775
2776<attlist name="programlisting">
2777<attdecl>
2778     name        CDATA #IMPLIED</attdecl>
2779<attribute name="name"
2780           type="#IMPLIED"
2781           value="CDATA"
2782           default=""/>
2783</attlist>
2784
2785<element name="complexity"
2786         content-type="element">
2787<content-model-expanded>
2788  <sequence-group>
2789    <any/>
2790  </sequence-group>
2791</content-model-expanded>
2792<content-model>
2793  <sequence-group>
2794    <any/>
2795  </sequence-group>
2796</content-model>
2797<purpose>The time/space/etc. complexity of a function</purpose>
2798</element>
2799
2800<attlist name="complexity">
2801<attdecl> %boost.common.attrib;</attdecl>
2802<attribute name="last-revision"
2803           type="#IMPLIED"
2804           value="CDATA"
2805           default=""/>
2806<attribute name="id"
2807           type="#IMPLIED"
2808           value="CDATA"
2809           default=""/>
2810<attribute name="xml:base"
2811           type="#IMPLIED"
2812           value="CDATA"
2813           default=""/>
2814</attlist>
2815
2816<element name="purpose"
2817         content-type="element">
2818<content-model-expanded>
2819  <sequence-group>
2820    <any/>
2821  </sequence-group>
2822</content-model-expanded>
2823<content-model>
2824  <sequence-group>
2825    <any/>
2826  </sequence-group>
2827</content-model>
2828<purpose>A short description of an entity's use</purpose>
2829</element>
2830
2831<attlist name="purpose">
2832<attdecl> %boost.common.attrib;</attdecl>
2833<attribute name="last-revision"
2834           type="#IMPLIED"
2835           value="CDATA"
2836           default=""/>
2837<attribute name="id"
2838           type="#IMPLIED"
2839           value="CDATA"
2840           default=""/>
2841<attribute name="xml:base"
2842           type="#IMPLIED"
2843           value="CDATA"
2844           default=""/>
2845</attlist>
2846
2847<element name="template-nontype-parameter"
2848         content-type="element">
2849<content-model-expanded>
2850  <sequence-group>
2851    <element-name name="type"/>
2852    <element-name name="default" occurrence="?"/>
2853    <element-name name="purpose" occurrence="?"/>
2854  </sequence-group>
2855</content-model-expanded>
2856<content-model>
2857  <sequence-group>
2858    <element-name name="type"/>
2859    <element-name name="default" occurrence="?"/>
2860    <element-name name="purpose" occurrence="?"/>
2861  </sequence-group>
2862</content-model>
2863<purpose>A nontype template parameter</purpose>
2864</element>
2865
2866<attlist name="template-nontype-parameter">
2867<attdecl>
2868    name                     CDATA  #REQUIRED
2869    pack                     CDATA  #IMPLIED
2870    %boost.common.attrib;</attdecl>
2871<attribute name="last-revision"
2872           type="#IMPLIED"
2873           value="CDATA"
2874           default=""/>
2875<attribute name="pack"
2876           type="#IMPLIED"
2877           value="CDATA"
2878           default=""/>
2879<attribute name="name"
2880           type="#REQUIRED"
2881           value="CDATA"
2882           default=""/>
2883<attribute name="id"
2884           type="#IMPLIED"
2885           value="CDATA"
2886           default=""/>
2887<attribute name="xml:base"
2888           type="#IMPLIED"
2889           value="CDATA"
2890           default=""/>
2891</attlist>
2892
2893<element name="library"
2894         content-type="element">
2895<content-model-expanded>
2896  <sequence-group>
2897    <element-name name="libraryinfo"/>
2898    <sequence-group occurrence="?">
2899      <element-name name="title"/>
2900      <sequence-group occurrence="+">
2901        <or-group>
2902          <element-name name="section"/>
2903          <element-name name="library-reference"/>
2904          <element-name name="testsuite"/>
2905        </or-group>
2906      </sequence-group>
2907    </sequence-group>
2908  </sequence-group>
2909</content-model-expanded>
2910<content-model>
2911  <sequence-group>
2912    <parament-name name="library.content"/>
2913  </sequence-group>
2914</content-model>
2915<purpose>Top-level element for a library</purpose>
2916</element>
2917
2918<attlist name="library">
2919<attdecl>
2920    name      CDATA   #REQUIRED
2921    dirname   CDATA   #REQUIRED
2922    html-only CDATA   #IMPLIED
2923    url       CDATA   #IMPLIED
2924    %boost.common.attrib;</attdecl>
2925<attribute name="last-revision"
2926           type="#IMPLIED"
2927           value="CDATA"
2928           default=""/>
2929<attribute name="dirname"
2930           type="#REQUIRED"
2931           value="CDATA"
2932           default=""/>
2933<attribute name="url"
2934           type="#IMPLIED"
2935           value="CDATA"
2936           default=""/>
2937<attribute name="name"
2938           type="#REQUIRED"
2939           value="CDATA"
2940           default=""/>
2941<attribute name="id"
2942           type="#IMPLIED"
2943           value="CDATA"
2944           default=""/>
2945<attribute name="xml:base"
2946           type="#IMPLIED"
2947           value="CDATA"
2948           default=""/>
2949<attribute name="html-only"
2950           type="#IMPLIED"
2951           value="CDATA"
2952           default=""/>
2953</attlist>
2954
2955<element name="librarycategorylist"
2956         content-type="element">
2957<content-model-expanded>
2958  <sequence-group occurrence="*">
2959    <element-name name="librarycategorydef"/>
2960  </sequence-group>
2961</content-model-expanded>
2962<content-model>
2963  <sequence-group occurrence="*">
2964    <element-name name="librarycategorydef"/>
2965  </sequence-group>
2966</content-model>
2967<purpose>Categorized listing of libraries</purpose>
2968<description>
2969  <para>This element is not intended for use by developers, but is
2970  used by <filename>doc/src/boost.xml</filename> as a
2971  placeholder.</para>
2972</description>
2973</element>
2974
2975<attlist name="librarycategorylist">
2976<attdecl> %boost.common.attrib;</attdecl>
2977<attribute name="last-revision"
2978           type="#IMPLIED"
2979           value="CDATA"
2980           default=""/>
2981<attribute name="id"
2982           type="#IMPLIED"
2983           value="CDATA"
2984           default=""/>
2985<attribute name="xml:base"
2986           type="#IMPLIED"
2987           value="CDATA"
2988           default=""/>
2989</attlist>
2990
2991<element name="using-namespace"
2992         content-type="element">
2993<content-model-expanded>
2994  <empty/>
2995</content-model-expanded>
2996<content-model>
2997  <empty/>
2998</content-model>
2999<purpose>Injects the declared names from a namespace into the local scope</purpose>
3000</element>
3001
3002<attlist name="using-namespace">
3003<attdecl>
3004    name   CDATA  #REQUIRED
3005    %boost.common.attrib;</attdecl>
3006<attribute name="last-revision"
3007           type="#IMPLIED"
3008           value="CDATA"
3009           default=""/>
3010<attribute name="name"
3011           type="#REQUIRED"
3012           value="CDATA"
3013           default=""/>
3014<attribute name="id"
3015           type="#IMPLIED"
3016           value="CDATA"
3017           default=""/>
3018<attribute name="xml:base"
3019           type="#IMPLIED"
3020           value="CDATA"
3021           default=""/>
3022</attlist>
3023
3024<element name="enumname"
3025         content-type="mixed">
3026<content-model-expanded>
3027  <sequence-group>
3028    <pcdata/>
3029  </sequence-group>
3030</content-model-expanded>
3031<content-model>
3032  <sequence-group>
3033    <pcdata/>
3034  </sequence-group>
3035</content-model>
3036<purpose>References an enumeration type with the given name</purpose>
3037</element>
3038
3039<attlist name="enumname">
3040<attdecl>
3041    alt          CDATA  #IMPLIED
3042    %boost.common.attrib;</attdecl>
3043<attribute name="last-revision"
3044           type="#IMPLIED"
3045           value="CDATA"
3046           default=""/>
3047<attribute name="alt"
3048           type="#IMPLIED"
3049           value="CDATA"
3050           default=""/>
3051<attribute name="id"
3052           type="#IMPLIED"
3053           value="CDATA"
3054           default=""/>
3055</attlist>
3056
3057<element name="struct-specialization"
3058         content-type="element">
3059<content-model-expanded>
3060  <sequence-group>
3061    <element-name name="template" occurrence="?"/>
3062    <element-name name="specialization" occurrence="?"/>
3063    <element-name name="inherit" occurrence="?"/>
3064    <element-name name="purpose" occurrence="?"/>
3065    <element-name name="description" occurrence="?"/>
3066    <or-group occurrence="*">
3067      <element-name name="access"/>
3068      <element-name name="static-constant"/>
3069      <element-name name="typedef"/>
3070      <element-name name="enum"/>
3071      <element-name name="copy-assignment"/>
3072      <element-name name="constructor"/>
3073      <element-name name="destructor"/>
3074      <element-name name="method-group"/>
3075      <element-name name="free-function-group"/>
3076      <element-name name="function"/>
3077      <element-name name="method"/>
3078      <element-name name="overloaded-function"/>
3079      <element-name name="overloaded-method"/>
3080      <element-name name="data-member"/>
3081      <element-name name="class"/>
3082      <element-name name="class-specialization"/>
3083      <element-name name="struct"/>
3084      <element-name name="struct-specialization"/>
3085      <element-name name="union"/>
3086      <element-name name="union-specialization"/>
3087    </or-group>
3088  </sequence-group>
3089</content-model-expanded>
3090<content-model>
3091  <sequence-group>
3092    <parament-name name="boost.class-specialization.content"/>
3093  </sequence-group>
3094</content-model>
3095<purpose>A specialization (full or partial) of a struct template</purpose>
3096</element>
3097
3098<attlist name="struct-specialization">
3099<attdecl>
3100    name  CDATA  #REQUIRED
3101    %boost.common.attrib;</attdecl>
3102<attribute name="last-revision"
3103           type="#IMPLIED"
3104           value="CDATA"
3105           default=""/>
3106<attribute name="name"
3107           type="#REQUIRED"
3108           value="CDATA"
3109           default=""/>
3110<attribute name="id"
3111           type="#IMPLIED"
3112           value="CDATA"
3113           default=""/>
3114<attribute name="xml:base"
3115           type="#IMPLIED"
3116           value="CDATA"
3117           default=""/>
3118</attlist>
3119
3120<element name="struct"
3121         content-type="element">
3122<content-model-expanded>
3123  <sequence-group>
3124    <element-name name="template" occurrence="?"/>
3125    <element-name name="inherit" occurrence="*"/>
3126    <element-name name="purpose" occurrence="?"/>
3127    <element-name name="description" occurrence="?"/>
3128    <or-group occurrence="*">
3129      <element-name name="access"/>
3130      <element-name name="static-constant"/>
3131      <element-name name="typedef"/>
3132      <element-name name="enum"/>
3133      <element-name name="copy-assignment"/>
3134      <element-name name="constructor"/>
3135      <element-name name="destructor"/>
3136      <element-name name="method-group"/>
3137      <element-name name="free-function-group"/>
3138      <element-name name="function"/>
3139      <element-name name="method"/>
3140      <element-name name="overloaded-function"/>
3141      <element-name name="overloaded-method"/>
3142      <element-name name="data-member"/>
3143      <element-name name="class"/>
3144      <element-name name="class-specialization"/>
3145      <element-name name="struct"/>
3146      <element-name name="struct-specialization"/>
3147      <element-name name="union"/>
3148      <element-name name="union-specialization"/>
3149    </or-group>
3150  </sequence-group>
3151</content-model-expanded>
3152<content-model>
3153  <sequence-group>
3154    <parament-name name="boost.class.content"/>
3155  </sequence-group>
3156</content-model>
3157<purpose>Declares a C++ struct</purpose>
3158</element>
3159
3160<attlist name="struct">
3161<attdecl>
3162    name  CDATA  #REQUIRED
3163    %boost.common.attrib;</attdecl>
3164<attribute name="last-revision"
3165           type="#IMPLIED"
3166           value="CDATA"
3167           default=""/>
3168<attribute name="name"
3169           type="#REQUIRED"
3170           value="CDATA"
3171           default=""/>
3172<attribute name="id"
3173           type="#IMPLIED"
3174           value="CDATA"
3175           default=""/>
3176<attribute name="xml:base"
3177           type="#IMPLIED"
3178           value="CDATA"
3179           default=""/>
3180</attlist>
3181
3182<element name="lib"
3183         content-type="mixed">
3184<content-model-expanded>
3185  <sequence-group>
3186    <pcdata/>
3187  </sequence-group>
3188</content-model-expanded>
3189<content-model>
3190  <sequence-group>
3191    <pcdata/>
3192  </sequence-group>
3193</content-model>
3194<purpose>A library dependency</purpose>
3195<description>
3196  <para>Declares a library dependency on the library named by the content of this element, to be emitted in a Jamfile.</para>
3197</description>
3198</element>
3199
3200<element name="enum"
3201         content-type="element">
3202<content-model-expanded>
3203  <sequence-group>
3204    <element-name name="enumvalue" occurrence="*"/>
3205    <element-name name="purpose" occurrence="?"/>
3206    <element-name name="description" occurrence="?"/>
3207  </sequence-group>
3208</content-model-expanded>
3209<content-model>
3210  <sequence-group>
3211    <element-name name="enumvalue" occurrence="*"/>
3212    <element-name name="purpose" occurrence="?"/>
3213    <element-name name="description" occurrence="?"/>
3214  </sequence-group>
3215</content-model>
3216<purpose>Declares an enumeration type</purpose>
3217</element>
3218
3219<attlist name="enum">
3220<attdecl>
3221    name     CDATA  #REQUIRED
3222    %boost.common.attrib;</attdecl>
3223<attribute name="last-revision"
3224           type="#IMPLIED"
3225           value="CDATA"
3226           default=""/>
3227<attribute name="name"
3228           type="#REQUIRED"
3229           value="CDATA"
3230           default=""/>
3231<attribute name="id"
3232           type="#IMPLIED"
3233           value="CDATA"
3234           default=""/>
3235<attribute name="xml:base"
3236           type="#IMPLIED"
3237           value="CDATA"
3238           default=""/>
3239</attlist>
3240
3241<element name="requires"
3242         content-type="element">
3243<content-model-expanded>
3244  <sequence-group>
3245    <any/>
3246  </sequence-group>
3247</content-model-expanded>
3248<content-model>
3249  <sequence-group>
3250    <any/>
3251  </sequence-group>
3252</content-model>
3253<purpose>Declares the requirements of a function</purpose>
3254</element>
3255
3256<attlist name="requires">
3257<attdecl> %boost.common.attrib;</attdecl>
3258<attribute name="last-revision"
3259           type="#IMPLIED"
3260           value="CDATA"
3261           default=""/>
3262<attribute name="id"
3263           type="#IMPLIED"
3264           value="CDATA"
3265           default=""/>
3266<attribute name="xml:base"
3267           type="#IMPLIED"
3268           value="CDATA"
3269           default=""/>
3270</attlist>
3271
3272<element name="effects"
3273         content-type="element">
3274<content-model-expanded>
3275  <sequence-group>
3276    <any/>
3277  </sequence-group>
3278</content-model-expanded>
3279<content-model>
3280  <sequence-group>
3281    <any/>
3282  </sequence-group>
3283</content-model>
3284<purpose>Declares the side effects of a function</purpose>
3285</element>
3286
3287<attlist name="effects">
3288<attdecl> %boost.common.attrib;</attdecl>
3289<attribute name="last-revision"
3290           type="#IMPLIED"
3291           value="CDATA"
3292           default=""/>
3293<attribute name="id"
3294           type="#IMPLIED"
3295           value="CDATA"
3296           default=""/>
3297<attribute name="xml:base"
3298           type="#IMPLIED"
3299           value="CDATA"
3300           default=""/>
3301</attlist>
3302
3303<element name="libraryname"
3304         content-type="mixed">
3305<content-model-expanded>
3306  <sequence-group>
3307    <pcdata/>
3308  </sequence-group>
3309</content-model-expanded>
3310<content-model>
3311  <sequence-group>
3312    <pcdata/>
3313  </sequence-group>
3314</content-model>
3315<purpose>References a library of the given name</purpose>
3316</element>
3317
3318<attlist name="libraryname">
3319<attdecl> %boost.common.attrib;</attdecl>
3320<attribute name="last-revision"
3321           type="#IMPLIED"
3322           value="CDATA"
3323           default=""/>
3324<attribute name="id"
3325           type="#IMPLIED"
3326           value="CDATA"
3327           default=""/>
3328<attribute name="xml:base"
3329           type="#IMPLIED"
3330           value="CDATA"
3331           default=""/>
3332</attlist>
3333
3334<element name="libraryinfo"
3335         content-type="element">
3336<content-model-expanded>
3337  <sequence-group>
3338    <element-name name="author" occurrence="+"/>
3339    <element-name name="copyright" occurrence="*"/>
3340    <element-name name="legalnotice" occurrence="*"/>
3341    <element-name name="librarypurpose"/>
3342    <element-name name="librarycategory" occurrence="*"/>
3343  </sequence-group>
3344</content-model-expanded>
3345<content-model>
3346  <sequence-group>
3347    <element-name name="author" occurrence="+"/>
3348    <element-name name="copyright" occurrence="*"/>
3349    <element-name name="legalnotice" occurrence="*"/>
3350    <element-name name="librarypurpose"/>
3351    <element-name name="librarycategory" occurrence="*"/>
3352  </sequence-group>
3353</content-model>
3354<purpose>Provides information about a library</purpose>
3355</element>
3356
3357<attlist name="libraryinfo">
3358<attdecl> %boost.common.attrib;</attdecl>
3359<attribute name="last-revision"
3360           type="#IMPLIED"
3361           value="CDATA"
3362           default=""/>
3363<attribute name="id"
3364           type="#IMPLIED"
3365           value="CDATA"
3366           default=""/>
3367<attribute name="xml:base"
3368           type="#IMPLIED"
3369           value="CDATA"
3370           default=""/>
3371</attlist>
3372
3373<element name="testsuite"
3374         content-type="element">
3375<content-model-expanded>
3376  <sequence-group>
3377    <or-group occurrence="+">
3378      <element-name name="compile-test"/>
3379      <element-name name="link-test"/>
3380      <element-name name="run-test"/>
3381      <element-name name="compile-fail-test"/>
3382      <element-name name="link-fail-test"/>
3383      <element-name name="run-fail-test"/>
3384    </or-group>
3385  </sequence-group>
3386</content-model-expanded>
3387<content-model>
3388  <sequence-group>
3389    <sequence-group occurrence="+">
3390      <parament-name name="boost.testsuite.tests"/>
3391    </sequence-group>
3392  </sequence-group>
3393</content-model>
3394<purpose>Describes a library testsuite</purpose>
3395</element>
3396
3397<attlist name="testsuite">
3398<attdecl> %boost.common.attrib;</attdecl>
3399<attribute name="last-revision"
3400           type="#IMPLIED"
3401           value="CDATA"
3402           default=""/>
3403<attribute name="id"
3404           type="#IMPLIED"
3405           value="CDATA"
3406           default=""/>
3407<attribute name="xml:base"
3408           type="#IMPLIED"
3409           value="CDATA"
3410           default=""/>
3411</attlist>
3412
3413<element name="header"
3414         content-type="element">
3415<content-model-expanded>
3416  <sequence-group>
3417    <any/>
3418  </sequence-group>
3419</content-model-expanded>
3420<content-model>
3421  <sequence-group>
3422    <any/>
3423  </sequence-group>
3424</content-model>
3425<purpose>Declares a C++ header with the given name</purpose>
3426</element>
3427
3428<attlist name="header">
3429<attdecl>
3430    name  CDATA  #REQUIRED
3431    %boost.common.attrib;</attdecl>
3432<attribute name="last-revision"
3433           type="#IMPLIED"
3434           value="CDATA"
3435           default=""/>
3436<attribute name="name"
3437           type="#REQUIRED"
3438           value="CDATA"
3439           default=""/>
3440<attribute name="id"
3441           type="#IMPLIED"
3442           value="CDATA"
3443           default=""/>
3444<attribute name="xml:base"
3445           type="#IMPLIED"
3446           value="CDATA"
3447           default=""/>
3448</attlist>
3449
3450<element name="rationale"
3451         content-type="element">
3452<content-model-expanded>
3453  <sequence-group>
3454    <any/>
3455  </sequence-group>
3456</content-model-expanded>
3457<content-model>
3458  <sequence-group>
3459    <any/>
3460  </sequence-group>
3461</content-model>
3462<purpose>Describes the rationale for a particular function's design</purpose>
3463</element>
3464
3465<attlist name="rationale">
3466<attdecl> %boost.common.attrib;</attdecl>
3467<attribute name="last-revision"
3468           type="#IMPLIED"
3469           value="CDATA"
3470           default=""/>
3471<attribute name="id"
3472           type="#IMPLIED"
3473           value="CDATA"
3474           default=""/>
3475<attribute name="xml:base"
3476           type="#IMPLIED"
3477           value="CDATA"
3478           default=""/>
3479</attlist>
3480</dtd>
3481