Merge from emacs-24; up to 2014-04-04T23:31:02Z!joaotavora@gmail.com
[bpt/emacs.git] / etc / schema / dbhier.rnc
CommitLineData
8cd39fb3
MH
1# ......................................................................
2
3# DocBook document hierarchy module V4.2 ...............................
4
5# File dbhierx.mod .....................................................
6
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/.
31
32# ......................................................................
33
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.
56
57# ......................................................................
58
59# Entities for module inclusions .......................................
60
61# ......................................................................
62
63# Entities for element classes .........................................
64
65local.appendix.class = notAllowed
66appendix.class = appendix | local.appendix.class
67local.article.class = notAllowed
68article.class = article | local.article.class
69local.book.class = notAllowed
70book.class = book | local.book.class
71local.chapter.class = notAllowed
72chapter.class = chapter | local.chapter.class
73local.index.class = notAllowed
74index.class = index | setindex | local.index.class
75local.refentry.class = notAllowed
76refentry.class = refentry | local.refentry.class
77local.section.class = notAllowed
78section.class = section | local.section.class
79local.nav.class = notAllowed
80nav.class =
81 toc | lot | index | glossary | bibliography | local.nav.class
82# Redeclaration placeholder ............................................
83
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
87
88# ......................................................................
89
90# Entities for element mixtures ........................................
91
92# The DocBook TC may produce an official forms module for DocBook.
93
94# This PE provides the hook by which it can be inserted into the DTD.
95forms.hook = notAllowed
96local.divcomponent.mix = notAllowed
97divcomponent.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
112local.refcomponent.mix = notAllowed
113refcomponent.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
127local.indexdivcomponent.mix = notAllowed
128indexdivcomponent.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
142local.refname.char.mix = notAllowed
143refname.char.mix = text | tech.char.class | local.refname.char.mix
144local.partcontent.mix = notAllowed
145partcontent.mix =
146 appendix.class
147 | chapter.class
148 | nav.class
149 | article.class
150 | preface
151 | refentry.class
152 | reference
153 | local.partcontent.mix
154local.refinline.char.mix = notAllowed
155refinline.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
167local.refclass.char.mix = notAllowed
168refclass.char.mix = text | application | local.refclass.char.mix
169# Redeclaration placeholder 2 ..........................................
170
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
174
175# ......................................................................
176
177# Entities for content models ..........................................
178div.title.content = title, subtitle?, titleabbrev?
179bookcomponent.title.content = title, subtitle?, titleabbrev?
180sect.title.content = title, subtitle?, titleabbrev?
181refsect.title.content = title, subtitle?, titleabbrev?
182bookcomponent.content =
183 (divcomponent.mix+,
184 (sect1* | refentry.class* | simplesect* | section.class*))
185 | (sect1+ | refentry.class+ | simplesect+ | section.class+)
186# ......................................................................
187
188# Set and SetInfo ......................................................
189local.set.attrib = empty
190set.role.attrib = role.attrib
191set =
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
201
202# FPI: SGML formal public identifier
203set.attlist &=
204 attribute fpi { text }?,
205 status.attrib,
206 common.attrib,
207 set.role.attrib,
208 local.set.attrib
209# end of set.attlist
210
211# end of set.module
212local.setinfo.attrib = empty
213setinfo.role.attrib = role.attrib
214setinfo = element setinfo { setinfo.attlist, info.class+ }
215# end of setinfo.element
216
217# Contents: IDs of the ToC, Books, and SetIndex that comprise
218# the set, in the order of their appearance
219setinfo.attlist &=
220 attribute contents { xsd:IDREFS }?,
221 common.attrib,
222 setinfo.role.attrib,
223 local.setinfo.attrib
224# end of setinfo.attlist
225
226# end of setinfo.module
227
228# end of set.content.module
229
230# ......................................................................
231
232# Book and BookInfo ....................................................
233local.book.attrib = empty
234book.role.attrib = role.attrib
235book =
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
255
256# FPI: SGML formal public identifier
257book.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
265
266# end of book.module
267local.bookinfo.attrib = empty
268bookinfo.role.attrib = role.attrib
269bookinfo = element bookinfo { bookinfo.attlist, info.class+ }
270# end of bookinfo.element
271
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
275bookinfo.attlist &=
276 attribute contents { xsd:IDREFS }?,
277 common.attrib,
278 bookinfo.role.attrib,
279 local.bookinfo.attrib
280# end of bookinfo.attlist
281
282# end of bookinfo.module
283
284# end of book.content.module
285
286# ......................................................................
287
288# Dedication, ToC, and LoT .............................................
289local.dedication.attrib = empty
290dedication.role.attrib = role.attrib
291dedication =
292 element dedication {
293 dedication.attlist, sect.title.content?, legalnotice.mix+
294 }
295# end of dedication.element
296dedication.attlist &=
297 status.attrib,
298 common.attrib,
299 dedication.role.attrib,
300 local.dedication.attrib
301# end of dedication.attlist
302
303# end of dedication.module
304local.colophon.attrib = empty
305colophon.role.attrib = role.attrib
306colophon =
307 element colophon {
308 colophon.attlist, sect.title.content?, textobject.mix+
309 }
310# end of colophon.element
311colophon.attlist &=
312 status.attrib,
313 common.attrib,
314 colophon.role.attrib,
315 local.colophon.attrib
316# end of colophon.attlist
317
318# end of colophon.module
319local.toc.attrib = empty
320toc.role.attrib = role.attrib
321toc =
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
331toc.attlist &=
332 pagenum.attrib, common.attrib, toc.role.attrib, local.toc.attrib
333# end of toc.attlist
334
335# end of toc.module
336local.tocfront.attrib = empty
337tocfront.role.attrib = role.attrib
338tocfront = element tocfront { tocfront.attlist, para.char.mix* }
339# end of tocfront.element
340
341# to element that this entry represents
342tocfront.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
350
351# end of tocfront.module
352local.tocentry.attrib = empty
353tocentry.role.attrib = role.attrib
354tocentry = element tocentry { tocentry.attlist, para.char.mix* }
355# end of tocentry.element
356
357# to element that this entry represents
358tocentry.attlist &=
359 linkend.attrib,
360 pagenum.attrib,
361 common.attrib,
362 tocentry.role.attrib,
363 local.tocentry.attrib
364# end of tocentry.attlist
365
366# end of tocentry.module
367local.tocpart.attrib = empty
368tocpart.role.attrib = role.attrib
369tocpart = element tocpart { tocpart.attlist, tocentry+, tocchap* }
370# end of tocpart.element
371tocpart.attlist &=
372 common.attrib, tocpart.role.attrib, local.tocpart.attrib
373# end of tocpart.attlist
374
375# end of tocpart.module
376local.tocchap.attrib = empty
377tocchap.role.attrib = role.attrib
378tocchap = element tocchap { tocchap.attlist, tocentry+, toclevel1* }
379# end of tocchap.element
380tocchap.attlist &=
381 label.attrib, common.attrib, tocchap.role.attrib, local.tocchap.attrib
382# end of tocchap.attlist
383
384# end of tocchap.module
385local.toclevel1.attrib = empty
386toclevel1.role.attrib = role.attrib
387toclevel1 =
388 element toclevel1 { toclevel1.attlist, tocentry+, toclevel2* }
389# end of toclevel1.element
390toclevel1.attlist &=
391 common.attrib, toclevel1.role.attrib, local.toclevel1.attrib
392# end of toclevel1.attlist
393
394# end of toclevel1.module
395local.toclevel2.attrib = empty
396toclevel2.role.attrib = role.attrib
397toclevel2 =
398 element toclevel2 { toclevel2.attlist, tocentry+, toclevel3* }
399# end of toclevel2.element
400toclevel2.attlist &=
401 common.attrib, toclevel2.role.attrib, local.toclevel2.attrib
402# end of toclevel2.attlist
403
404# end of toclevel2.module
405local.toclevel3.attrib = empty
406toclevel3.role.attrib = role.attrib
407toclevel3 =
408 element toclevel3 { toclevel3.attlist, tocentry+, toclevel4* }
409# end of toclevel3.element
410toclevel3.attlist &=
411 common.attrib, toclevel3.role.attrib, local.toclevel3.attrib
412# end of toclevel3.attlist
413
414# end of toclevel3.module
415local.toclevel4.attrib = empty
416toclevel4.role.attrib = role.attrib
417toclevel4 =
418 element toclevel4 { toclevel4.attlist, tocentry+, toclevel5* }
419# end of toclevel4.element
420toclevel4.attlist &=
421 common.attrib, toclevel4.role.attrib, local.toclevel4.attrib
422# end of toclevel4.attlist
423
424# end of toclevel4.module
425local.toclevel5.attrib = empty
426toclevel5.role.attrib = role.attrib
427toclevel5 = element toclevel5 { toclevel5.attlist, tocentry+ }
428# end of toclevel5.element
429toclevel5.attlist &=
430 common.attrib, toclevel5.role.attrib, local.toclevel5.attrib
431# end of toclevel5.attlist
432
433# end of toclevel5.module
434local.tocback.attrib = empty
435tocback.role.attrib = role.attrib
436tocback = element tocback { tocback.attlist, para.char.mix* }
437# end of tocback.element
438
439# to element that this entry represents
440tocback.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
448
449# end of tocback.module
450
451# end of toc.content.module
452local.lot.attrib = empty
453lot.role.attrib = role.attrib
454lot =
455 element lot {
456 lot.attlist, beginpage?, bookcomponent.title.content?, lotentry*
457 }
458# end of lot.element
459lot.attlist &=
460 label.attrib, common.attrib, lot.role.attrib, local.lot.attrib
461# end of lot.attlist
462
463# end of lot.module
464local.lotentry.attrib = empty
465lotentry.role.attrib = role.attrib
466lotentry = element lotentry { lotentry.attlist, para.char.mix* }
467# end of lotentry.element
468
469# SrcCredit: Information about the source of the entry,
470# as for a list of illustrations
471
472# linkend: to element that this entry represents
473lotentry.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
481
482# end of lotentry.module
483
484# end of lot.content.module
485
486# ......................................................................
487
488# Appendix, Chapter, Part, Preface, Reference, PartIntro ...............
489local.appendix.attrib = empty
490appendix.role.attrib = role.attrib
491appendix =
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
503appendix.attlist &=
504 label.attrib,
505 status.attrib,
506 common.attrib,
507 appendix.role.attrib,
508 local.appendix.attrib
509# end of appendix.attlist
510
511# end of appendix.module
512local.chapter.attrib = empty
513chapter.role.attrib = role.attrib
514chapter =
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
526chapter.attlist &=
527 label.attrib,
528 status.attrib,
529 common.attrib,
530 chapter.role.attrib,
531 local.chapter.attrib
532# end of chapter.attlist
533
534# end of chapter.module
535
536# Note that Part was to have its content model reduced in V4.2. This
537# change will not be made after all.
538local.part.attrib = empty
539part.role.attrib = role.attrib
540part =
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
550part.attlist &=
551 label.attrib,
552 status.attrib,
553 common.attrib,
554 part.role.attrib,
555 local.part.attrib
556# end of part.attlist
557
558# ELEMENT PartIntro (defined below)
559
560# end of part.module
561local.preface.attrib = empty
562preface.role.attrib = role.attrib
563preface =
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
575preface.attlist &=
576 status.attrib,
577 common.attrib,
578 preface.role.attrib,
579 local.preface.attrib
580# end of preface.attlist
581
582# end of preface.module
583local.reference.attrib = empty
584reference.role.attrib = role.attrib
585reference =
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
595reference.attlist &=
596 label.attrib,
597 status.attrib,
598 common.attrib,
599 reference.role.attrib,
600 local.reference.attrib
601# end of reference.attlist
602
603# ELEMENT PartIntro (defined below)
604
605# end of reference.module
606local.partintro.attrib = empty
607partintro.role.attrib = role.attrib
608partintro =
609 element partintro {
610 partintro.attlist, div.title.content?, bookcomponent.content
611 }
612# end of partintro.element
613partintro.attlist &=
614 label.attrib,
615 common.attrib,
616 partintro.role.attrib,
617 local.partintro.attrib
618# end of partintro.attlist
619
620# end of partintro.module
621
622# ......................................................................
623
624# Other Info elements ..................................................
625local.appendixinfo.attrib = empty
626appendixinfo.role.attrib = role.attrib
627appendixinfo =
628 element appendixinfo { appendixinfo.attlist, info.class+ }
629# end of appendixinfo.element
630appendixinfo.attlist &=
631 common.attrib, appendixinfo.role.attrib, local.appendixinfo.attrib
632# end of appendixinfo.attlist
633
634# end of appendixinfo.module
635local.bibliographyinfo.attrib = empty
636bibliographyinfo.role.attrib = role.attrib
637bibliographyinfo =
638 element bibliographyinfo { bibliographyinfo.attlist, info.class+ }
639# end of bibliographyinfo.element
640bibliographyinfo.attlist &=
641 common.attrib,
642 bibliographyinfo.role.attrib,
643 local.bibliographyinfo.attrib
644# end of bibliographyinfo.attlist
645
646# end of bibliographyinfo.module
647local.chapterinfo.attrib = empty
648chapterinfo.role.attrib = role.attrib
649chapterinfo = element chapterinfo { chapterinfo.attlist, info.class+ }
650# end of chapterinfo.element
651chapterinfo.attlist &=
652 common.attrib, chapterinfo.role.attrib, local.chapterinfo.attrib
653# end of chapterinfo.attlist
654
655# end of chapterinfo.module
656local.glossaryinfo.attrib = empty
657glossaryinfo.role.attrib = role.attrib
658glossaryinfo =
659 element glossaryinfo { glossaryinfo.attlist, info.class+ }
660# end of glossaryinfo.element
661glossaryinfo.attlist &=
662 common.attrib, glossaryinfo.role.attrib, local.glossaryinfo.attrib
663# end of glossaryinfo.attlist
664
665# end of glossaryinfo.module
666local.indexinfo.attrib = empty
667indexinfo.role.attrib = role.attrib
668indexinfo = element indexinfo { indexinfo.attlist, info.class+ }
669# end of indexinfo.element
670indexinfo.attlist &=
671 common.attrib, indexinfo.role.attrib, local.indexinfo.attrib
672# end of indexinfo.attlist
673
674# end of indexinfo.module
675local.setindexinfo.attrib = empty
676setindexinfo.role.attrib = role.attrib
677setindexinfo =
678 element setindexinfo { setindexinfo.attlist, info.class+ }
679# end of setindexinfo.element
680setindexinfo.attlist &=
681 common.attrib, setindexinfo.role.attrib, local.setindexinfo.attrib
682# end of setindexinfo.attlist
683
684# end of setindexinfo.module
685local.partinfo.attrib = empty
686partinfo.role.attrib = role.attrib
687partinfo = element partinfo { partinfo.attlist, info.class+ }
688# end of partinfo.element
689partinfo.attlist &=
690 common.attrib, partinfo.role.attrib, local.partinfo.attrib
691# end of partinfo.attlist
692
693# end of partinfo.module
694local.prefaceinfo.attrib = empty
695prefaceinfo.role.attrib = role.attrib
696prefaceinfo = element prefaceinfo { prefaceinfo.attlist, info.class+ }
697# end of prefaceinfo.element
698prefaceinfo.attlist &=
699 common.attrib, prefaceinfo.role.attrib, local.prefaceinfo.attrib
700# end of prefaceinfo.attlist
701
702# end of prefaceinfo.module
703local.refentryinfo.attrib = empty
704refentryinfo.role.attrib = role.attrib
705refentryinfo =
706 element refentryinfo { refentryinfo.attlist, info.class+ }
707# end of refentryinfo.element
708refentryinfo.attlist &=
709 common.attrib, refentryinfo.role.attrib, local.refentryinfo.attrib
710# end of refentryinfo.attlist
711
712# end of refentryinfo.module
713local.refsectioninfo.attrib = empty
714refsectioninfo.role.attrib = role.attrib
715refsectioninfo =
716 element refsectioninfo { refsectioninfo.attlist, info.class+ }
717# end of refsectioninfo.element
718refsectioninfo.attlist &=
719 common.attrib, refsectioninfo.role.attrib, local.refsectioninfo.attrib
720# end of refsectioninfo.attlist
721
722# end of refsectioninfo.module
723local.refsect1info.attrib = empty
724refsect1info.role.attrib = role.attrib
725refsect1info =
726 element refsect1info { refsect1info.attlist, info.class+ }
727# end of refsect1info.element
728refsect1info.attlist &=
729 common.attrib, refsect1info.role.attrib, local.refsect1info.attrib
730# end of refsect1info.attlist
731
732# end of refsect1info.module
733local.refsect2info.attrib = empty
734refsect2info.role.attrib = role.attrib
735refsect2info =
736 element refsect2info { refsect2info.attlist, info.class+ }
737# end of refsect2info.element
738refsect2info.attlist &=
739 common.attrib, refsect2info.role.attrib, local.refsect2info.attrib
740# end of refsect2info.attlist
741
742# end of refsect2info.module
743local.refsect3info.attrib = empty
744refsect3info.role.attrib = role.attrib
745refsect3info =
746 element refsect3info { refsect3info.attlist, info.class+ }
747# end of refsect3info.element
748refsect3info.attlist &=
749 common.attrib, refsect3info.role.attrib, local.refsect3info.attrib
750# end of refsect3info.attlist
751
752# end of refsect3info.module
753local.refsynopsisdivinfo.attrib = empty
754refsynopsisdivinfo.role.attrib = role.attrib
755refsynopsisdivinfo =
756 element refsynopsisdivinfo { refsynopsisdivinfo.attlist, info.class+ }
757# end of refsynopsisdivinfo.element
758refsynopsisdivinfo.attlist &=
759 common.attrib,
760 refsynopsisdivinfo.role.attrib,
761 local.refsynopsisdivinfo.attrib
762# end of refsynopsisdivinfo.attlist
763
764# end of refsynopsisdivinfo.module
765local.referenceinfo.attrib = empty
766referenceinfo.role.attrib = role.attrib
767referenceinfo =
768 element referenceinfo { referenceinfo.attlist, info.class+ }
769# end of referenceinfo.element
770referenceinfo.attlist &=
771 common.attrib, referenceinfo.role.attrib, local.referenceinfo.attrib
772# end of referenceinfo.attlist
773
774# end of referenceinfo.module
775local.sect1info.attrib = empty
776sect1info.role.attrib = role.attrib
777sect1info = element sect1info { sect1info.attlist, info.class+ }
778# end of sect1info.element
779sect1info.attlist &=
780 common.attrib, sect1info.role.attrib, local.sect1info.attrib
781# end of sect1info.attlist
782local.sect2info.attrib = empty
783sect2info.role.attrib = role.attrib
784sect2info = element sect2info { sect2info.attlist, info.class+ }
785# end of sect2info.element
786sect2info.attlist &=
787 common.attrib, sect2info.role.attrib, local.sect2info.attrib
788# end of sect2info.attlist
789local.sect3info.attrib = empty
790sect3info.role.attrib = role.attrib
791sect3info = element sect3info { sect3info.attlist, info.class+ }
792# end of sect3info.element
793sect3info.attlist &=
794 common.attrib, sect3info.role.attrib, local.sect3info.attrib
795# end of sect3info.attlist
796local.sect4info.attrib = empty
797sect4info.role.attrib = role.attrib
798sect4info = element sect4info { sect4info.attlist, info.class+ }
799# end of sect4info.element
800sect4info.attlist &=
801 common.attrib, sect4info.role.attrib, local.sect4info.attrib
802# end of sect4info.attlist
803local.sect5info.attrib = empty
804sect5info.role.attrib = role.attrib
805sect5info = element sect5info { sect5info.attlist, info.class+ }
806# end of sect5info.element
807sect5info.attlist &=
808 common.attrib, sect5info.role.attrib, local.sect5info.attrib
809# end of sect5info.attlist
810
811# ......................................................................
812
813# Section (parallel to Sect*) .........................................
814local.section.attrib = empty
815section.role.attrib = role.attrib
816section =
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
830section.attlist &=
831 label.attrib,
832 status.attrib,
833 common.attrib,
834 section.role.attrib,
835 local.section.attrib
836# end of section.attlist
837
838# end of section.module
839sectioninfo.role.attrib = role.attrib
840local.sectioninfo.attrib = empty
841sectioninfo = element sectioninfo { sectioninfo.attlist, info.class+ }
842# end of sectioninfo.element
843sectioninfo.attlist &=
844 common.attrib, sectioninfo.role.attrib, local.sectioninfo.attrib
845# end of sectioninfo.attlist
846
847# end of sectioninfo.module
848
849# end of section.content.module
850
851# ......................................................................
852
853# Sect1, Sect2, Sect3, Sect4, Sect5 ....................................
854local.sect1.attrib = empty
855sect1.role.attrib = role.attrib
856sect1 =
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
869
870# Renderas: Indicates the format in which the heading should
871# appear
872sect1.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
880
881# end of sect1.module
882local.sect2.attrib = empty
883sect2.role.attrib = role.attrib
884sect2 =
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
897
898# Renderas: Indicates the format in which the heading should
899# appear
900sect2.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
908
909# end of sect2.module
910local.sect3.attrib = empty
911sect3.role.attrib = role.attrib
912sect3 =
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
925
926# Renderas: Indicates the format in which the heading should
927# appear
928sect3.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
936
937# end of sect3.module
938local.sect4.attrib = empty
939sect4.role.attrib = role.attrib
940sect4 =
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
953
954# Renderas: Indicates the format in which the heading should
955# appear
956sect4.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
964
965# end of sect4.module
966local.sect5.attrib = empty
967sect5.role.attrib = role.attrib
968sect5 =
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
980
981# Renderas: Indicates the format in which the heading should
982# appear
983sect5.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
991
992# end of sect5.module
993local.simplesect.attrib = empty
994simplesect.role.attrib = role.attrib
995simplesect =
996 element simplesect {
997 simplesect.attlist, sect.title.content, divcomponent.mix+
998 }
999# end of simplesect.element
1000simplesect.attlist &=
1001 common.attrib, simplesect.role.attrib, local.simplesect.attrib
1002# end of simplesect.attlist
1003
1004# end of simplesect.module
1005
1006# ......................................................................
1007
1008# Bibliography .........................................................
1009local.bibliography.attrib = empty
1010bibliography.role.attrib = role.attrib
1011bibliography =
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
1020bibliography.attlist &=
1021 status.attrib,
1022 common.attrib,
1023 bibliography.role.attrib,
1024 local.bibliography.attrib
1025# end of bibliography.attlist
1026
1027# end of bibliography.module
1028local.bibliodiv.attrib = empty
1029bibliodiv.role.attrib = role.attrib
1030bibliodiv =
1031 element bibliodiv {
1032 bibliodiv.attlist,
1033 sect.title.content?,
1034 component.mix*,
1035 (biblioentry | bibliomixed)+
1036 }
1037# end of bibliodiv.element
1038bibliodiv.attlist &=
1039 status.attrib,
1040 common.attrib,
1041 bibliodiv.role.attrib,
1042 local.bibliodiv.attrib
1043# end of bibliodiv.attlist
1044
1045# end of bibliodiv.module
1046
1047# end of bibliography.content.module
1048
1049# ......................................................................
1050
1051# Glossary .............................................................
1052local.glossary.attrib = empty
1053glossary.role.attrib = role.attrib
1054glossary =
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
1064glossary.attlist &=
1065 status.attrib,
1066 common.attrib,
1067 glossary.role.attrib,
1068 local.glossary.attrib
1069# end of glossary.attlist
1070
1071# end of glossary.module
1072local.glossdiv.attrib = empty
1073glossdiv.role.attrib = role.attrib
1074glossdiv =
1075 element glossdiv {
1076 glossdiv.attlist, sect.title.content, component.mix*, glossentry+
1077 }
1078# end of glossdiv.element
1079glossdiv.attlist &=
1080 status.attrib,
1081 common.attrib,
1082 glossdiv.role.attrib,
1083 local.glossdiv.attrib
1084# end of glossdiv.attlist
1085
1086# end of glossdiv.module
1087
1088# end of glossary.content.module
1089
1090# ......................................................................
1091
1092# Index and SetIndex ...................................................
1093local.indexes.attrib = empty
1094indexes.role.attrib = role.attrib
1095index =
1096 element index {
1097 index.attlist,
1098 indexinfo?,
1099 bookcomponent.title.content?,
1100 component.mix*,
1101 (indexdiv* | indexentry*)
1102 }
1103# end of index.element
1104index.attlist &=
1105 common.attrib, indexes.role.attrib, local.indexes.attrib
1106# end of index.attlist
1107setindex =
1108 element setindex {
1109 setindex.attlist,
1110 setindexinfo?,
1111 bookcomponent.title.content?,
1112 component.mix*,
1113 (indexdiv* | indexentry*)
1114 }
1115# end of setindex.element
1116setindex.attlist &=
1117 common.attrib, indexes.role.attrib, local.indexes.attrib
1118# end of setindex.attlist
1119
1120# end of indexes.module
1121
1122# SegmentedList in this content is useful for marking up permuted
1123# indices.
1124local.indexdiv.attrib = empty
1125indexdiv.role.attrib = role.attrib
1126indexdiv =
1127 element indexdiv {
1128 indexdiv.attlist,
1129 sect.title.content?,
1130 (indexdivcomponent.mix*, (indexentry+ | segmentedlist))
1131 }
1132# end of indexdiv.element
1133indexdiv.attlist &=
1134 common.attrib, indexdiv.role.attrib, local.indexdiv.attrib
1135# end of indexdiv.attlist
1136
1137# end of indexdiv.module
1138
1139# Index entries appear in the index, not the text.
1140local.indexentry.attrib = empty
1141indexentry.role.attrib = role.attrib
1142indexentry =
1143 element indexentry {
1144 indexentry.attlist,
1145 primaryie,
1146 (seeie | seealsoie)*,
1147 (secondaryie, (seeie | seealsoie | tertiaryie)*)*
1148 }
1149# end of indexentry.element
1150indexentry.attlist &=
1151 common.attrib, indexentry.role.attrib, local.indexentry.attrib
1152# end of indexentry.attlist
1153
1154# end of indexentry.module
1155local.primsecterie.attrib = empty
1156primsecterie.role.attrib = role.attrib
1157primaryie = element primaryie { primaryie.attlist, ndxterm.char.mix* }
1158# end of primaryie.element
1159
1160# to IndexTerms that these entries represent
1161primaryie.attlist &=
1162 linkends.attrib,
1163 common.attrib,
1164 primsecterie.role.attrib,
1165 local.primsecterie.attrib
1166# end of primaryie.attlist
1167secondaryie =
1168 element secondaryie { secondaryie.attlist, ndxterm.char.mix* }
1169# end of secondaryie.element
1170
1171# to IndexTerms that these entries represent
1172secondaryie.attlist &=
1173 linkends.attrib,
1174 common.attrib,
1175 primsecterie.role.attrib,
1176 local.primsecterie.attrib
1177# end of secondaryie.attlist
1178tertiaryie =
1179 element tertiaryie { tertiaryie.attlist, ndxterm.char.mix* }
1180# end of tertiaryie.element
1181
1182# to IndexTerms that these entries represent
1183tertiaryie.attlist &=
1184 linkends.attrib,
1185 common.attrib,
1186 primsecterie.role.attrib,
1187 local.primsecterie.attrib
1188# end of tertiaryie.attlist
1189
1190# end of primsecterie.module
1191local.seeie.attrib = empty
1192seeie.role.attrib = role.attrib
1193seeie = element seeie { seeie.attlist, ndxterm.char.mix* }
1194# end of seeie.element
1195
1196# to IndexEntry to look up
1197seeie.attlist &=
1198 linkend.attrib, common.attrib, seeie.role.attrib, local.seeie.attrib
1199# end of seeie.attlist
1200
1201# end of seeie.module
1202local.seealsoie.attrib = empty
1203seealsoie.role.attrib = role.attrib
1204seealsoie = element seealsoie { seealsoie.attlist, ndxterm.char.mix* }
1205# end of seealsoie.element
1206
1207# to related IndexEntries
1208seealsoie.attlist &=
1209 linkends.attrib,
1210 common.attrib,
1211 seealsoie.role.attrib,
1212 local.seealsoie.attrib
1213# end of seealsoie.attlist
1214
1215# end of seealsoie.module
1216
1217# end of index.content.module
1218
1219# ......................................................................
1220
1221# RefEntry .............................................................
1222local.refentry.attrib = empty
1223refentry.role.attrib = role.attrib
1224refentry =
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
1237refentry.attlist &=
1238 status.attrib,
1239 common.attrib,
1240 refentry.role.attrib,
1241 local.refentry.attrib
1242# end of refentry.attlist
1243
1244# end of refentry.module
1245local.refmeta.attrib = empty
1246refmeta.role.attrib = role.attrib
1247refmeta =
1248 element refmeta {
1249 refmeta.attlist,
1250 ndxterm.class*,
1251 refentrytitle,
1252 manvolnum?,
1253 refmiscinfo*,
1254 ndxterm.class*
1255 }
1256# end of refmeta.element
1257refmeta.attlist &=
1258 common.attrib, refmeta.role.attrib, local.refmeta.attrib
1259# end of refmeta.attlist
1260
1261# end of refmeta.module
1262local.refmiscinfo.attrib = empty
1263refmiscinfo.role.attrib = role.attrib
1264refmiscinfo =
1265 element refmiscinfo { refmiscinfo.attlist, docinfo.char.mix* }
1266# end of refmiscinfo.element
1267
1268# Class: Freely assignable parameter; no default
1269refmiscinfo.attlist &=
1270 attribute class { text }?,
1271 common.attrib,
1272 refmiscinfo.role.attrib,
1273 local.refmiscinfo.attrib
1274# end of refmiscinfo.attlist
1275
1276# end of refmiscinfo.module
1277local.refnamediv.attrib = empty
1278refnamediv.role.attrib = role.attrib
1279refnamediv =
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
1289refnamediv.attlist &=
1290 common.attrib, refnamediv.role.attrib, local.refnamediv.attrib
1291# end of refnamediv.attlist
1292
1293# end of refnamediv.module
1294local.refdescriptor.attrib = empty
1295refdescriptor.role.attrib = role.attrib
1296refdescriptor =
1297 element refdescriptor { refdescriptor.attlist, refname.char.mix* }
1298# end of refdescriptor.element
1299refdescriptor.attlist &=
1300 common.attrib, refdescriptor.role.attrib, local.refdescriptor.attrib
1301# end of refdescriptor.attlist
1302
1303# end of refdescriptor.module
1304local.refname.attrib = empty
1305refname.role.attrib = role.attrib
1306refname = element refname { refname.attlist, refname.char.mix* }
1307# end of refname.element
1308refname.attlist &=
1309 common.attrib, refname.role.attrib, local.refname.attrib
1310# end of refname.attlist
1311
1312# end of refname.module
1313local.refpurpose.attrib = empty
1314refpurpose.role.attrib = role.attrib
1315refpurpose =
1316 element refpurpose { refpurpose.attlist, refinline.char.mix* }
1317# end of refpurpose.element
1318refpurpose.attlist &=
1319 common.attrib, refpurpose.role.attrib, local.refpurpose.attrib
1320# end of refpurpose.attlist
1321
1322# end of refpurpose.module
1323local.refclass.attrib = empty
1324refclass.role.attrib = role.attrib
1325refclass = element refclass { refclass.attlist, refclass.char.mix* }
1326# end of refclass.element
1327refclass.attlist &=
1328 common.attrib, refclass.role.attrib, local.refclass.attrib
1329# end of refclass.attlist
1330
1331# end of refclass.module
1332local.refsynopsisdiv.attrib = empty
1333refsynopsisdiv.role.attrib = role.attrib
1334refsynopsisdiv =
1335 element refsynopsisdiv {
1336 refsynopsisdiv.attlist,
1337 refsynopsisdivinfo?,
1338 refsect.title.content?,
1339 ((refcomponent.mix+, refsect2*) | refsect2+)
1340 }
1341# end of refsynopsisdiv.element
1342refsynopsisdiv.attlist &=
1343 common.attrib, refsynopsisdiv.role.attrib, local.refsynopsisdiv.attrib
1344# end of refsynopsisdiv.attlist
1345
1346# end of refsynopsisdiv.module
1347local.refsection.attrib = empty
1348refsection.role.attrib = role.attrib
1349refsection =
1350 element refsection {
1351 refsection.attlist,
1352 refsectioninfo?,
1353 refsect.title.content,
1354 ((refcomponent.mix+, refsection*) | refsection+)
1355 }
1356# end of refsection.element
1357refsection.attlist &=
1358 status.attrib,
1359 common.attrib,
1360 refsection.role.attrib,
1361 local.refsection.attrib
1362# end of refsection.attlist
1363
1364# end of refsection.module
1365local.refsect1.attrib = empty
1366refsect1.role.attrib = role.attrib
1367refsect1 =
1368 element refsect1 {
1369 refsect1.attlist,
1370 refsect1info?,
1371 refsect.title.content,
1372 ((refcomponent.mix+, refsect2*) | refsect2+)
1373 }
1374# end of refsect1.element
1375refsect1.attlist &=
1376 status.attrib,
1377 common.attrib,
1378 refsect1.role.attrib,
1379 local.refsect1.attrib
1380# end of refsect1.attlist
1381
1382# end of refsect1.module
1383local.refsect2.attrib = empty
1384refsect2.role.attrib = role.attrib
1385refsect2 =
1386 element refsect2 {
1387 refsect2.attlist,
1388 refsect2info?,
1389 refsect.title.content,
1390 ((refcomponent.mix+, refsect3*) | refsect3+)
1391 }
1392# end of refsect2.element
1393refsect2.attlist &=
1394 status.attrib,
1395 common.attrib,
1396 refsect2.role.attrib,
1397 local.refsect2.attrib
1398# end of refsect2.attlist
1399
1400# end of refsect2.module
1401local.refsect3.attrib = empty
1402refsect3.role.attrib = role.attrib
1403refsect3 =
1404 element refsect3 {
1405 refsect3.attlist,
1406 refsect3info?,
1407 refsect.title.content,
1408 refcomponent.mix+
1409 }
1410# end of refsect3.element
1411refsect3.attlist &=
1412 status.attrib,
1413 common.attrib,
1414 refsect3.role.attrib,
1415 local.refsect3.attrib
1416# end of refsect3.attlist
1417
1418# end of refsect3.module
1419
1420# end of refentry.content.module
1421
1422# ......................................................................
1423
1424# Article ..............................................................
1425
1426# An Article is a chapter-level, stand-alone document that is often,
1427# but need not be, collected into a Book.
1428local.article.attrib = empty
1429article.role.attrib = role.attrib
1430article =
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
1441
1442# Class: Indicates the type of a particular article;
1443# all articles have the same structure and general purpose.
1444# No default.
1445
1446# ParentBook: ID of the enclosing Book
1447article.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
1462
1463# end of article.module
1464
1465# End of DocBook document hierarchy module V4.2 ........................
1466
1467# ......................................................................