Silence byte-compiler warnings.
[emacs.git] / etc / schema / dbhier.rnc
blob1671b01fbcec583cbeca10bc28878b62db7ec7bf
1 # ......................................................................
3 # DocBook document hierarchy module V4.2 ...............................
5 # File dbhierx.mod .....................................................
7 # Copyright 1992-2002 HaL Computer Systems, Inc.,
8 # O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
9 # Corporation, Norman Walsh, Sun Microsystems, Inc., and the
10 # Organization for the Advancement of Structured Information
11 # Standards (OASIS).
12
13 # $Id: dbhier.rnc,v 1.1 2003/08/30 04:19:27 jjc Exp $
14
15 # Permission to use, copy, modify and distribute the DocBook DTD
16 # and its accompanying documentation for any purpose and without fee
17 # is hereby granted in perpetuity, provided that the above copyright
18 # notice and this paragraph appear in all copies.  The copyright
19 # holders make no representation about the suitability of the DTD for
20 # any purpose.  It is provided "as is" without expressed or implied
21 # warranty.
22
23 # If you modify the DocBook DTD in any way, except for declaring and
24 # referencing additional sets of general entities and declaring
25 # additional notations, label your DTD as a variant of DocBook.  See
26 # the maintenance documentation for more information.
27
28 # Please direct all questions, bug reports, or suggestions for
29 # changes to the docbook@lists.oasis-open.org mailing list. For more
30 # information, see http://www.oasis-open.org/docbook/.
32 # ......................................................................
34 # This module contains the definitions for the overall document
35 # hierarchies of DocBook documents.  It covers computer documentation
36 # manuals and manual fragments, as well as reference entries (such as
37 # man pages) and technical journals or anthologies containing
38 # articles.
39
40 # This module depends on the DocBook information pool module.  All
41 # elements and entities referenced but not defined here are assumed
42 # to be defined in the information pool module.
43
44 # In DTD driver files referring to this module, please use an entity
45 # declaration that uses the public identifier shown below:
46
47 # <!ENTITY % dbhier PUBLIC
48 # "-//OASIS//ELEMENTS DocBook Document Hierarchy V4.2//EN"
49 # "dbhierx.mod">
50 # %dbhier;
51
52 # See the documentation for detailed information on the parameter
53 # entity and module scheme used in DocBook, customizing DocBook and
54 # planning for interchange, and changes made since the last release
55 # of DocBook.
57 # ......................................................................
59 # Entities for module inclusions .......................................
61 # ......................................................................
63 # Entities for element classes .........................................
65 local.appendix.class = notAllowed
66 appendix.class = appendix | local.appendix.class
67 local.article.class = notAllowed
68 article.class = article | local.article.class
69 local.book.class = notAllowed
70 book.class = book | local.book.class
71 local.chapter.class = notAllowed
72 chapter.class = chapter | local.chapter.class
73 local.index.class = notAllowed
74 index.class = index | setindex | local.index.class
75 local.refentry.class = notAllowed
76 refentry.class = refentry | local.refentry.class
77 local.section.class = notAllowed
78 section.class = section | local.section.class
79 local.nav.class = notAllowed
80 nav.class =
81   toc | lot | index | glossary | bibliography | local.nav.class
82 # Redeclaration placeholder ............................................
84 # For redeclaring entities that are declared after this point while
85 # retaining their references to the entities that are declared before
86 # this point
88 # ......................................................................
90 # Entities for element mixtures ........................................
92 # The DocBook TC may produce an official forms module for DocBook.
94 # This PE provides the hook by which it can be inserted into the DTD.
95 forms.hook = notAllowed
96 local.divcomponent.mix = notAllowed
97 divcomponent.mix =
98   list.class
99   | admon.class
100   | linespecific.class
101   | synop.class
102   | para.class
103   | informal.class
104   | formal.class
105   | compound.class
106   | genobj.class
107   | descobj.class
108   | ndxterm.class
109   | beginpage
110   | forms.hook
111   | local.divcomponent.mix
112 local.refcomponent.mix = notAllowed
113 refcomponent.mix =
114   list.class
115   | admon.class
116   | linespecific.class
117   | synop.class
118   | para.class
119   | informal.class
120   | formal.class
121   | compound.class
122   | genobj.class
123   | descobj.class
124   | ndxterm.class
125   | beginpage
126   | local.refcomponent.mix
127 local.indexdivcomponent.mix = notAllowed
128 indexdivcomponent.mix =
129   itemizedlist
130   | orderedlist
131   | variablelist
132   | simplelist
133   | linespecific.class
134   | synop.class
135   | para.class
136   | informal.class
137   | anchor
138   | remark
139   | link.char.class
140   | beginpage
141   | local.indexdivcomponent.mix
142 local.refname.char.mix = notAllowed
143 refname.char.mix = text | tech.char.class | local.refname.char.mix
144 local.partcontent.mix = notAllowed
145 partcontent.mix =
146   appendix.class
147   | chapter.class
148   | nav.class
149   | article.class
150   | preface
151   | refentry.class
152   | reference
153   | local.partcontent.mix
154 local.refinline.char.mix = notAllowed
155 refinline.char.mix =
156   text
157   | xref.char.class
158   | gen.char.class
159   | link.char.class
160   | tech.char.class
161   | base.char.class
162   | docinfo.char.class
163   | other.char.class
164   | ndxterm.class
165   | beginpage
166   | local.refinline.char.mix
167 local.refclass.char.mix = notAllowed
168 refclass.char.mix = text | application | local.refclass.char.mix
169 # Redeclaration placeholder 2 ..........................................
171 # For redeclaring entities that are declared after this point while
172 # retaining their references to the entities that are declared before
173 # this point
175 # ......................................................................
177 # Entities for content models ..........................................
178 div.title.content = title, subtitle?, titleabbrev?
179 bookcomponent.title.content = title, subtitle?, titleabbrev?
180 sect.title.content = title, subtitle?, titleabbrev?
181 refsect.title.content = title, subtitle?, titleabbrev?
182 bookcomponent.content =
183   (divcomponent.mix+,
184    (sect1* | refentry.class* | simplesect* | section.class*))
185   | (sect1+ | refentry.class+ | simplesect+ | section.class+)
186 # ......................................................................
188 # Set and SetInfo ......................................................
189 local.set.attrib = empty
190 set.role.attrib = role.attrib
191 set =
192   element set {
193     set.attlist,
194     div.title.content?,
195     setinfo?,
196     toc?,
197     book.class+,
198     setindex?
199   }
200 # end of set.element
202 # FPI: SGML formal public identifier
203 set.attlist &=
204   attribute fpi { text }?,
205   status.attrib,
206   common.attrib,
207   set.role.attrib,
208   local.set.attrib
209 # end of set.attlist
211 # end of set.module
212 local.setinfo.attrib = empty
213 setinfo.role.attrib = role.attrib
214 setinfo = element setinfo { setinfo.attlist, info.class+ }
215 # end of setinfo.element
217 # Contents: IDs of the ToC, Books, and SetIndex that comprise
218 # the set, in the order of their appearance
219 setinfo.attlist &=
220   attribute contents { xsd:IDREFS }?,
221   common.attrib,
222   setinfo.role.attrib,
223   local.setinfo.attrib
224 # end of setinfo.attlist
226 # end of setinfo.module
228 # end of set.content.module
230 # ......................................................................
232 # Book and BookInfo ....................................................
233 local.book.attrib = empty
234 book.role.attrib = role.attrib
235 book =
236   element book {
237     book.attlist,
238     div.title.content?,
239     bookinfo?,
240     (dedication
241      | toc
242      | lot
243      | glossary
244      | bibliography
245      | preface
246      | chapter.class
247      | reference
248      | part
249      | article.class
250      | appendix.class
251      | index.class
252      | colophon)*
253   }
254 # end of book.element
256 # FPI: SGML formal public identifier
257 book.attlist &=
258   attribute fpi { text }?,
259   label.attrib,
260   status.attrib,
261   common.attrib,
262   book.role.attrib,
263   local.book.attrib
264 # end of book.attlist
266 # end of book.module
267 local.bookinfo.attrib = empty
268 bookinfo.role.attrib = role.attrib
269 bookinfo = element bookinfo { bookinfo.attlist, info.class+ }
270 # end of bookinfo.element
272 # Contents: IDs of the ToC, LoTs, Prefaces, Parts, Chapters,
273 # Appendixes, References, GLossary, Bibliography, and indexes
274 # comprising the Book, in the order of their appearance
275 bookinfo.attlist &=
276   attribute contents { xsd:IDREFS }?,
277   common.attrib,
278   bookinfo.role.attrib,
279   local.bookinfo.attrib
280 # end of bookinfo.attlist
282 # end of bookinfo.module
284 # end of book.content.module
286 # ......................................................................
288 # Dedication, ToC, and LoT .............................................
289 local.dedication.attrib = empty
290 dedication.role.attrib = role.attrib
291 dedication =
292   element dedication {
293     dedication.attlist, sect.title.content?, legalnotice.mix+
294   }
295 # end of dedication.element
296 dedication.attlist &=
297   status.attrib,
298   common.attrib,
299   dedication.role.attrib,
300   local.dedication.attrib
301 # end of dedication.attlist
303 # end of dedication.module
304 local.colophon.attrib = empty
305 colophon.role.attrib = role.attrib
306 colophon =
307   element colophon {
308     colophon.attlist, sect.title.content?, textobject.mix+
309   }
310 # end of colophon.element
311 colophon.attlist &=
312   status.attrib,
313   common.attrib,
314   colophon.role.attrib,
315   local.colophon.attrib
316 # end of colophon.attlist
318 # end of colophon.module
319 local.toc.attrib = empty
320 toc.role.attrib = role.attrib
321 toc =
322   element toc {
323     toc.attlist,
324     beginpage?,
325     bookcomponent.title.content?,
326     tocfront*,
327     (tocpart | tocchap)*,
328     tocback*
329   }
330 # end of toc.element
331 toc.attlist &=
332   pagenum.attrib, common.attrib, toc.role.attrib, local.toc.attrib
333 # end of toc.attlist
335 # end of toc.module
336 local.tocfront.attrib = empty
337 tocfront.role.attrib = role.attrib
338 tocfront = element tocfront { tocfront.attlist, para.char.mix* }
339 # end of tocfront.element
341 # to element that this entry represents
342 tocfront.attlist &=
343   label.attrib,
344   linkend.attrib,
345   pagenum.attrib,
346   common.attrib,
347   tocfront.role.attrib,
348   local.tocfront.attrib
349 # end of tocfront.attlist
351 # end of tocfront.module
352 local.tocentry.attrib = empty
353 tocentry.role.attrib = role.attrib
354 tocentry = element tocentry { tocentry.attlist, para.char.mix* }
355 # end of tocentry.element
357 # to element that this entry represents
358 tocentry.attlist &=
359   linkend.attrib,
360   pagenum.attrib,
361   common.attrib,
362   tocentry.role.attrib,
363   local.tocentry.attrib
364 # end of tocentry.attlist
366 # end of tocentry.module
367 local.tocpart.attrib = empty
368 tocpart.role.attrib = role.attrib
369 tocpart = element tocpart { tocpart.attlist, tocentry+, tocchap* }
370 # end of tocpart.element
371 tocpart.attlist &=
372   common.attrib, tocpart.role.attrib, local.tocpart.attrib
373 # end of tocpart.attlist
375 # end of tocpart.module
376 local.tocchap.attrib = empty
377 tocchap.role.attrib = role.attrib
378 tocchap = element tocchap { tocchap.attlist, tocentry+, toclevel1* }
379 # end of tocchap.element
380 tocchap.attlist &=
381   label.attrib, common.attrib, tocchap.role.attrib, local.tocchap.attrib
382 # end of tocchap.attlist
384 # end of tocchap.module
385 local.toclevel1.attrib = empty
386 toclevel1.role.attrib = role.attrib
387 toclevel1 =
388   element toclevel1 { toclevel1.attlist, tocentry+, toclevel2* }
389 # end of toclevel1.element
390 toclevel1.attlist &=
391   common.attrib, toclevel1.role.attrib, local.toclevel1.attrib
392 # end of toclevel1.attlist
394 # end of toclevel1.module
395 local.toclevel2.attrib = empty
396 toclevel2.role.attrib = role.attrib
397 toclevel2 =
398   element toclevel2 { toclevel2.attlist, tocentry+, toclevel3* }
399 # end of toclevel2.element
400 toclevel2.attlist &=
401   common.attrib, toclevel2.role.attrib, local.toclevel2.attrib
402 # end of toclevel2.attlist
404 # end of toclevel2.module
405 local.toclevel3.attrib = empty
406 toclevel3.role.attrib = role.attrib
407 toclevel3 =
408   element toclevel3 { toclevel3.attlist, tocentry+, toclevel4* }
409 # end of toclevel3.element
410 toclevel3.attlist &=
411   common.attrib, toclevel3.role.attrib, local.toclevel3.attrib
412 # end of toclevel3.attlist
414 # end of toclevel3.module
415 local.toclevel4.attrib = empty
416 toclevel4.role.attrib = role.attrib
417 toclevel4 =
418   element toclevel4 { toclevel4.attlist, tocentry+, toclevel5* }
419 # end of toclevel4.element
420 toclevel4.attlist &=
421   common.attrib, toclevel4.role.attrib, local.toclevel4.attrib
422 # end of toclevel4.attlist
424 # end of toclevel4.module
425 local.toclevel5.attrib = empty
426 toclevel5.role.attrib = role.attrib
427 toclevel5 = element toclevel5 { toclevel5.attlist, tocentry+ }
428 # end of toclevel5.element
429 toclevel5.attlist &=
430   common.attrib, toclevel5.role.attrib, local.toclevel5.attrib
431 # end of toclevel5.attlist
433 # end of toclevel5.module
434 local.tocback.attrib = empty
435 tocback.role.attrib = role.attrib
436 tocback = element tocback { tocback.attlist, para.char.mix* }
437 # end of tocback.element
439 # to element that this entry represents
440 tocback.attlist &=
441   label.attrib,
442   linkend.attrib,
443   pagenum.attrib,
444   common.attrib,
445   tocback.role.attrib,
446   local.tocback.attrib
447 # end of tocback.attlist
449 # end of tocback.module
451 # end of toc.content.module
452 local.lot.attrib = empty
453 lot.role.attrib = role.attrib
454 lot =
455   element lot {
456     lot.attlist, beginpage?, bookcomponent.title.content?, lotentry*
457   }
458 # end of lot.element
459 lot.attlist &=
460   label.attrib, common.attrib, lot.role.attrib, local.lot.attrib
461 # end of lot.attlist
463 # end of lot.module
464 local.lotentry.attrib = empty
465 lotentry.role.attrib = role.attrib
466 lotentry = element lotentry { lotentry.attlist, para.char.mix* }
467 # end of lotentry.element
469 # SrcCredit: Information about the source of the entry,
470 # as for a list of illustrations
472 #  linkend: to element that this entry represents
473 lotentry.attlist &=
474   linkend.attrib,
475   pagenum.attrib,
476   attribute srccredit { text }?,
477   common.attrib,
478   lotentry.role.attrib,
479   local.lotentry.attrib
480 # end of lotentry.attlist
482 # end of lotentry.module
484 # end of lot.content.module
486 # ......................................................................
488 # Appendix, Chapter, Part, Preface, Reference, PartIntro ...............
489 local.appendix.attrib = empty
490 appendix.role.attrib = role.attrib
491 appendix =
492   element appendix {
493     appendix.attlist,
494     beginpage?,
495     appendixinfo?,
496     bookcomponent.title.content,
497     nav.class*,
498     tocchap?,
499     bookcomponent.content,
500     nav.class*
501   }
502 # end of appendix.element
503 appendix.attlist &=
504   label.attrib,
505   status.attrib,
506   common.attrib,
507   appendix.role.attrib,
508   local.appendix.attrib
509 # end of appendix.attlist
511 # end of appendix.module
512 local.chapter.attrib = empty
513 chapter.role.attrib = role.attrib
514 chapter =
515   element chapter {
516     chapter.attlist,
517     beginpage?,
518     chapterinfo?,
519     bookcomponent.title.content,
520     nav.class*,
521     tocchap?,
522     bookcomponent.content,
523     nav.class*
524   }
525 # end of chapter.element
526 chapter.attlist &=
527   label.attrib,
528   status.attrib,
529   common.attrib,
530   chapter.role.attrib,
531   local.chapter.attrib
532 # end of chapter.attlist
534 # end of chapter.module
536 # Note that Part was to have its content model reduced in V4.2.  This
537 # change will not be made after all.
538 local.part.attrib = empty
539 part.role.attrib = role.attrib
540 part =
541   element part {
542     part.attlist,
543     beginpage?,
544     partinfo?,
545     bookcomponent.title.content,
546     partintro?,
547     partcontent.mix+
548   }
549 # end of part.element
550 part.attlist &=
551   label.attrib,
552   status.attrib,
553   common.attrib,
554   part.role.attrib,
555   local.part.attrib
556 # end of part.attlist
558 # ELEMENT PartIntro (defined below)
560 # end of part.module
561 local.preface.attrib = empty
562 preface.role.attrib = role.attrib
563 preface =
564   element preface {
565     preface.attlist,
566     beginpage?,
567     prefaceinfo?,
568     bookcomponent.title.content,
569     nav.class*,
570     tocchap?,
571     bookcomponent.content,
572     nav.class*
573   }
574 # end of preface.element
575 preface.attlist &=
576   status.attrib,
577   common.attrib,
578   preface.role.attrib,
579   local.preface.attrib
580 # end of preface.attlist
582 # end of preface.module
583 local.reference.attrib = empty
584 reference.role.attrib = role.attrib
585 reference =
586   element reference {
587     reference.attlist,
588     beginpage?,
589     referenceinfo?,
590     bookcomponent.title.content,
591     partintro?,
592     refentry.class+
593   }
594 # end of reference.element
595 reference.attlist &=
596   label.attrib,
597   status.attrib,
598   common.attrib,
599   reference.role.attrib,
600   local.reference.attrib
601 # end of reference.attlist
603 # ELEMENT PartIntro (defined below)
605 # end of reference.module
606 local.partintro.attrib = empty
607 partintro.role.attrib = role.attrib
608 partintro =
609   element partintro {
610     partintro.attlist, div.title.content?, bookcomponent.content
611   }
612 # end of partintro.element
613 partintro.attlist &=
614   label.attrib,
615   common.attrib,
616   partintro.role.attrib,
617   local.partintro.attrib
618 # end of partintro.attlist
620 # end of partintro.module
622 # ......................................................................
624 # Other Info elements ..................................................
625 local.appendixinfo.attrib = empty
626 appendixinfo.role.attrib = role.attrib
627 appendixinfo =
628   element appendixinfo { appendixinfo.attlist, info.class+ }
629 # end of appendixinfo.element
630 appendixinfo.attlist &=
631   common.attrib, appendixinfo.role.attrib, local.appendixinfo.attrib
632 # end of appendixinfo.attlist
634 # end of appendixinfo.module
635 local.bibliographyinfo.attrib = empty
636 bibliographyinfo.role.attrib = role.attrib
637 bibliographyinfo =
638   element bibliographyinfo { bibliographyinfo.attlist, info.class+ }
639 # end of bibliographyinfo.element
640 bibliographyinfo.attlist &=
641   common.attrib,
642   bibliographyinfo.role.attrib,
643   local.bibliographyinfo.attrib
644 # end of bibliographyinfo.attlist
646 # end of bibliographyinfo.module
647 local.chapterinfo.attrib = empty
648 chapterinfo.role.attrib = role.attrib
649 chapterinfo = element chapterinfo { chapterinfo.attlist, info.class+ }
650 # end of chapterinfo.element
651 chapterinfo.attlist &=
652   common.attrib, chapterinfo.role.attrib, local.chapterinfo.attrib
653 # end of chapterinfo.attlist
655 # end of chapterinfo.module
656 local.glossaryinfo.attrib = empty
657 glossaryinfo.role.attrib = role.attrib
658 glossaryinfo =
659   element glossaryinfo { glossaryinfo.attlist, info.class+ }
660 # end of glossaryinfo.element
661 glossaryinfo.attlist &=
662   common.attrib, glossaryinfo.role.attrib, local.glossaryinfo.attrib
663 # end of glossaryinfo.attlist
665 # end of glossaryinfo.module
666 local.indexinfo.attrib = empty
667 indexinfo.role.attrib = role.attrib
668 indexinfo = element indexinfo { indexinfo.attlist, info.class+ }
669 # end of indexinfo.element
670 indexinfo.attlist &=
671   common.attrib, indexinfo.role.attrib, local.indexinfo.attrib
672 # end of indexinfo.attlist
674 # end of indexinfo.module
675 local.setindexinfo.attrib = empty
676 setindexinfo.role.attrib = role.attrib
677 setindexinfo =
678   element setindexinfo { setindexinfo.attlist, info.class+ }
679 # end of setindexinfo.element
680 setindexinfo.attlist &=
681   common.attrib, setindexinfo.role.attrib, local.setindexinfo.attrib
682 # end of setindexinfo.attlist
684 # end of setindexinfo.module
685 local.partinfo.attrib = empty
686 partinfo.role.attrib = role.attrib
687 partinfo = element partinfo { partinfo.attlist, info.class+ }
688 # end of partinfo.element
689 partinfo.attlist &=
690   common.attrib, partinfo.role.attrib, local.partinfo.attrib
691 # end of partinfo.attlist
693 # end of partinfo.module
694 local.prefaceinfo.attrib = empty
695 prefaceinfo.role.attrib = role.attrib
696 prefaceinfo = element prefaceinfo { prefaceinfo.attlist, info.class+ }
697 # end of prefaceinfo.element
698 prefaceinfo.attlist &=
699   common.attrib, prefaceinfo.role.attrib, local.prefaceinfo.attrib
700 # end of prefaceinfo.attlist
702 # end of prefaceinfo.module
703 local.refentryinfo.attrib = empty
704 refentryinfo.role.attrib = role.attrib
705 refentryinfo =
706   element refentryinfo { refentryinfo.attlist, info.class+ }
707 # end of refentryinfo.element
708 refentryinfo.attlist &=
709   common.attrib, refentryinfo.role.attrib, local.refentryinfo.attrib
710 # end of refentryinfo.attlist
712 # end of refentryinfo.module
713 local.refsectioninfo.attrib = empty
714 refsectioninfo.role.attrib = role.attrib
715 refsectioninfo =
716   element refsectioninfo { refsectioninfo.attlist, info.class+ }
717 # end of refsectioninfo.element
718 refsectioninfo.attlist &=
719   common.attrib, refsectioninfo.role.attrib, local.refsectioninfo.attrib
720 # end of refsectioninfo.attlist
722 # end of refsectioninfo.module
723 local.refsect1info.attrib = empty
724 refsect1info.role.attrib = role.attrib
725 refsect1info =
726   element refsect1info { refsect1info.attlist, info.class+ }
727 # end of refsect1info.element
728 refsect1info.attlist &=
729   common.attrib, refsect1info.role.attrib, local.refsect1info.attrib
730 # end of refsect1info.attlist
732 # end of refsect1info.module
733 local.refsect2info.attrib = empty
734 refsect2info.role.attrib = role.attrib
735 refsect2info =
736   element refsect2info { refsect2info.attlist, info.class+ }
737 # end of refsect2info.element
738 refsect2info.attlist &=
739   common.attrib, refsect2info.role.attrib, local.refsect2info.attrib
740 # end of refsect2info.attlist
742 # end of refsect2info.module
743 local.refsect3info.attrib = empty
744 refsect3info.role.attrib = role.attrib
745 refsect3info =
746   element refsect3info { refsect3info.attlist, info.class+ }
747 # end of refsect3info.element
748 refsect3info.attlist &=
749   common.attrib, refsect3info.role.attrib, local.refsect3info.attrib
750 # end of refsect3info.attlist
752 # end of refsect3info.module
753 local.refsynopsisdivinfo.attrib = empty
754 refsynopsisdivinfo.role.attrib = role.attrib
755 refsynopsisdivinfo =
756   element refsynopsisdivinfo { refsynopsisdivinfo.attlist, info.class+ }
757 # end of refsynopsisdivinfo.element
758 refsynopsisdivinfo.attlist &=
759   common.attrib,
760   refsynopsisdivinfo.role.attrib,
761   local.refsynopsisdivinfo.attrib
762 # end of refsynopsisdivinfo.attlist
764 # end of refsynopsisdivinfo.module
765 local.referenceinfo.attrib = empty
766 referenceinfo.role.attrib = role.attrib
767 referenceinfo =
768   element referenceinfo { referenceinfo.attlist, info.class+ }
769 # end of referenceinfo.element
770 referenceinfo.attlist &=
771   common.attrib, referenceinfo.role.attrib, local.referenceinfo.attrib
772 # end of referenceinfo.attlist
774 # end of referenceinfo.module
775 local.sect1info.attrib = empty
776 sect1info.role.attrib = role.attrib
777 sect1info = element sect1info { sect1info.attlist, info.class+ }
778 # end of sect1info.element
779 sect1info.attlist &=
780   common.attrib, sect1info.role.attrib, local.sect1info.attrib
781 # end of sect1info.attlist
782 local.sect2info.attrib = empty
783 sect2info.role.attrib = role.attrib
784 sect2info = element sect2info { sect2info.attlist, info.class+ }
785 # end of sect2info.element
786 sect2info.attlist &=
787   common.attrib, sect2info.role.attrib, local.sect2info.attrib
788 # end of sect2info.attlist
789 local.sect3info.attrib = empty
790 sect3info.role.attrib = role.attrib
791 sect3info = element sect3info { sect3info.attlist, info.class+ }
792 # end of sect3info.element
793 sect3info.attlist &=
794   common.attrib, sect3info.role.attrib, local.sect3info.attrib
795 # end of sect3info.attlist
796 local.sect4info.attrib = empty
797 sect4info.role.attrib = role.attrib
798 sect4info = element sect4info { sect4info.attlist, info.class+ }
799 # end of sect4info.element
800 sect4info.attlist &=
801   common.attrib, sect4info.role.attrib, local.sect4info.attrib
802 # end of sect4info.attlist
803 local.sect5info.attrib = empty
804 sect5info.role.attrib = role.attrib
805 sect5info = element sect5info { sect5info.attlist, info.class+ }
806 # end of sect5info.element
807 sect5info.attlist &=
808   common.attrib, sect5info.role.attrib, local.sect5info.attrib
809 # end of sect5info.attlist
811 # ......................................................................
813 # Section (parallel to Sect*) .........................................
814 local.section.attrib = empty
815 section.role.attrib = role.attrib
816 section =
817   element section {
818     section.attlist,
819     sectioninfo?,
820     sect.title.content,
821     nav.class*,
822     ((divcomponent.mix+,
823       (refentry.class* | section.class* | simplesect*))
824      | refentry.class+
825      | section.class+
826      | simplesect+),
827     nav.class*
828   }
829 # end of section.element
830 section.attlist &=
831   label.attrib,
832   status.attrib,
833   common.attrib,
834   section.role.attrib,
835   local.section.attrib
836 # end of section.attlist
838 # end of section.module
839 sectioninfo.role.attrib = role.attrib
840 local.sectioninfo.attrib = empty
841 sectioninfo = element sectioninfo { sectioninfo.attlist, info.class+ }
842 # end of sectioninfo.element
843 sectioninfo.attlist &=
844   common.attrib, sectioninfo.role.attrib, local.sectioninfo.attrib
845 # end of sectioninfo.attlist
847 # end of sectioninfo.module
849 # end of section.content.module
851 # ......................................................................
853 # Sect1, Sect2, Sect3, Sect4, Sect5 ....................................
854 local.sect1.attrib = empty
855 sect1.role.attrib = role.attrib
856 sect1 =
857   element sect1 {
858     sect1.attlist,
859     sect1info?,
860     sect.title.content,
861     nav.class*,
862     ((divcomponent.mix+, (refentry.class* | sect2* | simplesect*))
863      | refentry.class+
864      | sect2+
865      | simplesect+),
866     nav.class*
867   }
868 # end of sect1.element
870 # Renderas: Indicates the format in which the heading should
871 # appear
872 sect1.attlist &=
873   attribute renderas { "sect2" | "sect3" | "sect4" | "sect5" }?,
874   label.attrib,
875   status.attrib,
876   common.attrib,
877   sect1.role.attrib,
878   local.sect1.attrib
879 # end of sect1.attlist
881 # end of sect1.module
882 local.sect2.attrib = empty
883 sect2.role.attrib = role.attrib
884 sect2 =
885   element sect2 {
886     sect2.attlist,
887     sect2info?,
888     sect.title.content,
889     nav.class*,
890     ((divcomponent.mix+, (refentry.class* | sect3* | simplesect*))
891      | refentry.class+
892      | sect3+
893      | simplesect+),
894     nav.class*
895   }
896 # end of sect2.element
898 # Renderas: Indicates the format in which the heading should
899 # appear
900 sect2.attlist &=
901   attribute renderas { "sect1" | "sect3" | "sect4" | "sect5" }?,
902   label.attrib,
903   status.attrib,
904   common.attrib,
905   sect2.role.attrib,
906   local.sect2.attrib
907 # end of sect2.attlist
909 # end of sect2.module
910 local.sect3.attrib = empty
911 sect3.role.attrib = role.attrib
912 sect3 =
913   element sect3 {
914     sect3.attlist,
915     sect3info?,
916     sect.title.content,
917     nav.class*,
918     ((divcomponent.mix+, (refentry.class* | sect4* | simplesect*))
919      | refentry.class+
920      | sect4+
921      | simplesect+),
922     nav.class*
923   }
924 # end of sect3.element
926 # Renderas: Indicates the format in which the heading should
927 # appear
928 sect3.attlist &=
929   attribute renderas { "sect1" | "sect2" | "sect4" | "sect5" }?,
930   label.attrib,
931   status.attrib,
932   common.attrib,
933   sect3.role.attrib,
934   local.sect3.attrib
935 # end of sect3.attlist
937 # end of sect3.module
938 local.sect4.attrib = empty
939 sect4.role.attrib = role.attrib
940 sect4 =
941   element sect4 {
942     sect4.attlist,
943     sect4info?,
944     sect.title.content,
945     nav.class*,
946     ((divcomponent.mix+, (refentry.class* | sect5* | simplesect*))
947      | refentry.class+
948      | sect5+
949      | simplesect+),
950     nav.class*
951   }
952 # end of sect4.element
954 # Renderas: Indicates the format in which the heading should
955 # appear
956 sect4.attlist &=
957   attribute renderas { "sect1" | "sect2" | "sect3" | "sect5" }?,
958   label.attrib,
959   status.attrib,
960   common.attrib,
961   sect4.role.attrib,
962   local.sect4.attrib
963 # end of sect4.attlist
965 # end of sect4.module
966 local.sect5.attrib = empty
967 sect5.role.attrib = role.attrib
968 sect5 =
969   element sect5 {
970     sect5.attlist,
971     sect5info?,
972     sect.title.content,
973     nav.class*,
974     ((divcomponent.mix+, (refentry.class* | simplesect*))
975      | refentry.class+
976      | simplesect+),
977     nav.class*
978   }
979 # end of sect5.element
981 # Renderas: Indicates the format in which the heading should
982 # appear
983 sect5.attlist &=
984   attribute renderas { "sect1" | "sect2" | "sect3" | "sect4" }?,
985   label.attrib,
986   status.attrib,
987   common.attrib,
988   sect5.role.attrib,
989   local.sect5.attrib
990 # end of sect5.attlist
992 # end of sect5.module
993 local.simplesect.attrib = empty
994 simplesect.role.attrib = role.attrib
995 simplesect =
996   element simplesect {
997     simplesect.attlist, sect.title.content, divcomponent.mix+
998   }
999 # end of simplesect.element
1000 simplesect.attlist &=
1001   common.attrib, simplesect.role.attrib, local.simplesect.attrib
1002 # end of simplesect.attlist
1004 # end of simplesect.module
1006 # ......................................................................
1008 # Bibliography .........................................................
1009 local.bibliography.attrib = empty
1010 bibliography.role.attrib = role.attrib
1011 bibliography =
1012   element bibliography {
1013     bibliography.attlist,
1014     bibliographyinfo?,
1015     bookcomponent.title.content?,
1016     component.mix*,
1017     (bibliodiv+ | (biblioentry | bibliomixed)+)
1018   }
1019 # end of bibliography.element
1020 bibliography.attlist &=
1021   status.attrib,
1022   common.attrib,
1023   bibliography.role.attrib,
1024   local.bibliography.attrib
1025 # end of bibliography.attlist
1027 # end of bibliography.module
1028 local.bibliodiv.attrib = empty
1029 bibliodiv.role.attrib = role.attrib
1030 bibliodiv =
1031   element bibliodiv {
1032     bibliodiv.attlist,
1033     sect.title.content?,
1034     component.mix*,
1035     (biblioentry | bibliomixed)+
1036   }
1037 # end of bibliodiv.element
1038 bibliodiv.attlist &=
1039   status.attrib,
1040   common.attrib,
1041   bibliodiv.role.attrib,
1042   local.bibliodiv.attrib
1043 # end of bibliodiv.attlist
1045 # end of bibliodiv.module
1047 # end of bibliography.content.module
1049 # ......................................................................
1051 # Glossary .............................................................
1052 local.glossary.attrib = empty
1053 glossary.role.attrib = role.attrib
1054 glossary =
1055   element glossary {
1056     glossary.attlist,
1057     glossaryinfo?,
1058     bookcomponent.title.content?,
1059     component.mix*,
1060     (glossdiv+ | glossentry+),
1061     bibliography?
1062   }
1063 # end of glossary.element
1064 glossary.attlist &=
1065   status.attrib,
1066   common.attrib,
1067   glossary.role.attrib,
1068   local.glossary.attrib
1069 # end of glossary.attlist
1071 # end of glossary.module
1072 local.glossdiv.attrib = empty
1073 glossdiv.role.attrib = role.attrib
1074 glossdiv =
1075   element glossdiv {
1076     glossdiv.attlist, sect.title.content, component.mix*, glossentry+
1077   }
1078 # end of glossdiv.element
1079 glossdiv.attlist &=
1080   status.attrib,
1081   common.attrib,
1082   glossdiv.role.attrib,
1083   local.glossdiv.attrib
1084 # end of glossdiv.attlist
1086 # end of glossdiv.module
1088 # end of glossary.content.module
1090 # ......................................................................
1092 # Index and SetIndex ...................................................
1093 local.indexes.attrib = empty
1094 indexes.role.attrib = role.attrib
1095 index =
1096   element index {
1097     index.attlist,
1098     indexinfo?,
1099     bookcomponent.title.content?,
1100     component.mix*,
1101     (indexdiv* | indexentry*)
1102   }
1103 # end of index.element
1104 index.attlist &=
1105   common.attrib, indexes.role.attrib, local.indexes.attrib
1106 # end of index.attlist
1107 setindex =
1108   element setindex {
1109     setindex.attlist,
1110     setindexinfo?,
1111     bookcomponent.title.content?,
1112     component.mix*,
1113     (indexdiv* | indexentry*)
1114   }
1115 # end of setindex.element
1116 setindex.attlist &=
1117   common.attrib, indexes.role.attrib, local.indexes.attrib
1118 # end of setindex.attlist
1120 # end of indexes.module
1122 # SegmentedList in this content is useful for marking up permuted
1123 # indices.
1124 local.indexdiv.attrib = empty
1125 indexdiv.role.attrib = role.attrib
1126 indexdiv =
1127   element indexdiv {
1128     indexdiv.attlist,
1129     sect.title.content?,
1130     (indexdivcomponent.mix*, (indexentry+ | segmentedlist))
1131   }
1132 # end of indexdiv.element
1133 indexdiv.attlist &=
1134   common.attrib, indexdiv.role.attrib, local.indexdiv.attrib
1135 # end of indexdiv.attlist
1137 # end of indexdiv.module
1139 # Index entries appear in the index, not the text.
1140 local.indexentry.attrib = empty
1141 indexentry.role.attrib = role.attrib
1142 indexentry =
1143   element indexentry {
1144     indexentry.attlist,
1145     primaryie,
1146     (seeie | seealsoie)*,
1147     (secondaryie, (seeie | seealsoie | tertiaryie)*)*
1148   }
1149 # end of indexentry.element
1150 indexentry.attlist &=
1151   common.attrib, indexentry.role.attrib, local.indexentry.attrib
1152 # end of indexentry.attlist
1154 # end of indexentry.module
1155 local.primsecterie.attrib = empty
1156 primsecterie.role.attrib = role.attrib
1157 primaryie = element primaryie { primaryie.attlist, ndxterm.char.mix* }
1158 # end of primaryie.element
1160 # to IndexTerms that these entries represent
1161 primaryie.attlist &=
1162   linkends.attrib,
1163   common.attrib,
1164   primsecterie.role.attrib,
1165   local.primsecterie.attrib
1166 # end of primaryie.attlist
1167 secondaryie =
1168   element secondaryie { secondaryie.attlist, ndxterm.char.mix* }
1169 # end of secondaryie.element
1171 # to IndexTerms that these entries represent
1172 secondaryie.attlist &=
1173   linkends.attrib,
1174   common.attrib,
1175   primsecterie.role.attrib,
1176   local.primsecterie.attrib
1177 # end of secondaryie.attlist
1178 tertiaryie =
1179   element tertiaryie { tertiaryie.attlist, ndxterm.char.mix* }
1180 # end of tertiaryie.element
1182 # to IndexTerms that these entries represent
1183 tertiaryie.attlist &=
1184   linkends.attrib,
1185   common.attrib,
1186   primsecterie.role.attrib,
1187   local.primsecterie.attrib
1188 # end of tertiaryie.attlist
1190 # end of primsecterie.module
1191 local.seeie.attrib = empty
1192 seeie.role.attrib = role.attrib
1193 seeie = element seeie { seeie.attlist, ndxterm.char.mix* }
1194 # end of seeie.element
1196 # to IndexEntry to look up
1197 seeie.attlist &=
1198   linkend.attrib, common.attrib, seeie.role.attrib, local.seeie.attrib
1199 # end of seeie.attlist
1201 # end of seeie.module
1202 local.seealsoie.attrib = empty
1203 seealsoie.role.attrib = role.attrib
1204 seealsoie = element seealsoie { seealsoie.attlist, ndxterm.char.mix* }
1205 # end of seealsoie.element
1207 # to related IndexEntries
1208 seealsoie.attlist &=
1209   linkends.attrib,
1210   common.attrib,
1211   seealsoie.role.attrib,
1212   local.seealsoie.attrib
1213 # end of seealsoie.attlist
1215 # end of seealsoie.module
1217 # end of index.content.module
1219 # ......................................................................
1221 # RefEntry .............................................................
1222 local.refentry.attrib = empty
1223 refentry.role.attrib = role.attrib
1224 refentry =
1225   element refentry {
1226     refentry.attlist,
1227     beginpage?,
1228     ndxterm.class*,
1229     refentryinfo?,
1230     refmeta?,
1231     (remark | link.char.class)*,
1232     refnamediv,
1233     refsynopsisdiv?,
1234     (refsect1+ | refsection+)
1235   }
1236 # end of refentry.element
1237 refentry.attlist &=
1238   status.attrib,
1239   common.attrib,
1240   refentry.role.attrib,
1241   local.refentry.attrib
1242 # end of refentry.attlist
1244 # end of refentry.module
1245 local.refmeta.attrib = empty
1246 refmeta.role.attrib = role.attrib
1247 refmeta =
1248   element refmeta {
1249     refmeta.attlist,
1250     ndxterm.class*,
1251     refentrytitle,
1252     manvolnum?,
1253     refmiscinfo*,
1254     ndxterm.class*
1255   }
1256 # end of refmeta.element
1257 refmeta.attlist &=
1258   common.attrib, refmeta.role.attrib, local.refmeta.attrib
1259 # end of refmeta.attlist
1261 # end of refmeta.module
1262 local.refmiscinfo.attrib = empty
1263 refmiscinfo.role.attrib = role.attrib
1264 refmiscinfo =
1265   element refmiscinfo { refmiscinfo.attlist, docinfo.char.mix* }
1266 # end of refmiscinfo.element
1268 # Class: Freely assignable parameter; no default
1269 refmiscinfo.attlist &=
1270   attribute class { text }?,
1271   common.attrib,
1272   refmiscinfo.role.attrib,
1273   local.refmiscinfo.attrib
1274 # end of refmiscinfo.attlist
1276 # end of refmiscinfo.module
1277 local.refnamediv.attrib = empty
1278 refnamediv.role.attrib = role.attrib
1279 refnamediv =
1280   element refnamediv {
1281     refnamediv.attlist,
1282     refdescriptor?,
1283     refname+,
1284     refpurpose,
1285     refclass*,
1286     (remark | link.char.class)*
1287   }
1288 # end of refnamediv.element
1289 refnamediv.attlist &=
1290   common.attrib, refnamediv.role.attrib, local.refnamediv.attrib
1291 # end of refnamediv.attlist
1293 # end of refnamediv.module
1294 local.refdescriptor.attrib = empty
1295 refdescriptor.role.attrib = role.attrib
1296 refdescriptor =
1297   element refdescriptor { refdescriptor.attlist, refname.char.mix* }
1298 # end of refdescriptor.element
1299 refdescriptor.attlist &=
1300   common.attrib, refdescriptor.role.attrib, local.refdescriptor.attrib
1301 # end of refdescriptor.attlist
1303 # end of refdescriptor.module
1304 local.refname.attrib = empty
1305 refname.role.attrib = role.attrib
1306 refname = element refname { refname.attlist, refname.char.mix* }
1307 # end of refname.element
1308 refname.attlist &=
1309   common.attrib, refname.role.attrib, local.refname.attrib
1310 # end of refname.attlist
1312 # end of refname.module
1313 local.refpurpose.attrib = empty
1314 refpurpose.role.attrib = role.attrib
1315 refpurpose =
1316   element refpurpose { refpurpose.attlist, refinline.char.mix* }
1317 # end of refpurpose.element
1318 refpurpose.attlist &=
1319   common.attrib, refpurpose.role.attrib, local.refpurpose.attrib
1320 # end of refpurpose.attlist
1322 # end of refpurpose.module
1323 local.refclass.attrib = empty
1324 refclass.role.attrib = role.attrib
1325 refclass = element refclass { refclass.attlist, refclass.char.mix* }
1326 # end of refclass.element
1327 refclass.attlist &=
1328   common.attrib, refclass.role.attrib, local.refclass.attrib
1329 # end of refclass.attlist
1331 # end of refclass.module
1332 local.refsynopsisdiv.attrib = empty
1333 refsynopsisdiv.role.attrib = role.attrib
1334 refsynopsisdiv =
1335   element refsynopsisdiv {
1336     refsynopsisdiv.attlist,
1337     refsynopsisdivinfo?,
1338     refsect.title.content?,
1339     ((refcomponent.mix+, refsect2*) | refsect2+)
1340   }
1341 # end of refsynopsisdiv.element
1342 refsynopsisdiv.attlist &=
1343   common.attrib, refsynopsisdiv.role.attrib, local.refsynopsisdiv.attrib
1344 # end of refsynopsisdiv.attlist
1346 # end of refsynopsisdiv.module
1347 local.refsection.attrib = empty
1348 refsection.role.attrib = role.attrib
1349 refsection =
1350   element refsection {
1351     refsection.attlist,
1352     refsectioninfo?,
1353     refsect.title.content,
1354     ((refcomponent.mix+, refsection*) | refsection+)
1355   }
1356 # end of refsection.element
1357 refsection.attlist &=
1358   status.attrib,
1359   common.attrib,
1360   refsection.role.attrib,
1361   local.refsection.attrib
1362 # end of refsection.attlist
1364 # end of refsection.module
1365 local.refsect1.attrib = empty
1366 refsect1.role.attrib = role.attrib
1367 refsect1 =
1368   element refsect1 {
1369     refsect1.attlist,
1370     refsect1info?,
1371     refsect.title.content,
1372     ((refcomponent.mix+, refsect2*) | refsect2+)
1373   }
1374 # end of refsect1.element
1375 refsect1.attlist &=
1376   status.attrib,
1377   common.attrib,
1378   refsect1.role.attrib,
1379   local.refsect1.attrib
1380 # end of refsect1.attlist
1382 # end of refsect1.module
1383 local.refsect2.attrib = empty
1384 refsect2.role.attrib = role.attrib
1385 refsect2 =
1386   element refsect2 {
1387     refsect2.attlist,
1388     refsect2info?,
1389     refsect.title.content,
1390     ((refcomponent.mix+, refsect3*) | refsect3+)
1391   }
1392 # end of refsect2.element
1393 refsect2.attlist &=
1394   status.attrib,
1395   common.attrib,
1396   refsect2.role.attrib,
1397   local.refsect2.attrib
1398 # end of refsect2.attlist
1400 # end of refsect2.module
1401 local.refsect3.attrib = empty
1402 refsect3.role.attrib = role.attrib
1403 refsect3 =
1404   element refsect3 {
1405     refsect3.attlist,
1406     refsect3info?,
1407     refsect.title.content,
1408     refcomponent.mix+
1409   }
1410 # end of refsect3.element
1411 refsect3.attlist &=
1412   status.attrib,
1413   common.attrib,
1414   refsect3.role.attrib,
1415   local.refsect3.attrib
1416 # end of refsect3.attlist
1418 # end of refsect3.module
1420 # end of refentry.content.module
1422 # ......................................................................
1424 # Article ..............................................................
1426 # An Article is a chapter-level, stand-alone document that is often,
1427 # but need not be, collected into a Book.
1428 local.article.attrib = empty
1429 article.role.attrib = role.attrib
1430 article =
1431   element article {
1432     article.attlist,
1433     div.title.content?,
1434     articleinfo?,
1435     tocchap?,
1436     lot*,
1437     bookcomponent.content,
1438     (nav.class | appendix.class | ackno)*
1439   }
1440 # end of article.element
1442 # Class: Indicates the type of a particular article;
1443 # all articles have the same structure and general purpose.
1444 # No default.
1446 # ParentBook: ID of the enclosing Book
1447 article.attlist &=
1448   attribute class {
1449     "journalarticle"
1450     | "productsheet"
1451     | "whitepaper"
1452     | "techreport"
1453     | "specification"
1454     | "faq"
1455   }?,
1456   attribute parentbook { xsd:IDREF }?,
1457   status.attrib,
1458   common.attrib,
1459   article.role.attrib,
1460   local.article.attrib
1461 # end of article.attlist
1463 # end of article.module
1465 # End of DocBook document hierarchy module V4.2 ........................
1467 # ......................................................................