# ...................................................................... # DocBook document hierarchy module V4.5 ............................... # File dbhierx.mod ..................................................... # Copyright 1992-2004 HaL Computer Systems, Inc., # O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software # Corporation, Norman Walsh, Sun Microsystems, Inc., and the # Organization for the Advancement of Structured Information # Standards (OASIS). # # $Id: dbhierx.mod 6340 2006-10-03 13:23:24Z nwalsh $ # # Permission to use, copy, modify and distribute the DocBook DTD # and its accompanying documentation for any purpose and without fee # is hereby granted in perpetuity, provided that the above copyright # notice and this paragraph appear in all copies. The copyright # holders make no representation about the suitability of the DTD for # any purpose. It is provided "as is" without expressed or implied # warranty. # # If you modify the DocBook DTD in any way, except for declaring and # referencing additional sets of general entities and declaring # additional notations, label your DTD as a variant of DocBook. See # the maintenance documentation for more information. # # Please direct all questions, bug reports, or suggestions for # changes to the docbook@lists.oasis-open.org mailing list. For more # information, see http://www.oasis-open.org/docbook/. # ...................................................................... # This module contains the definitions for the overall document # hierarchies of DocBook documents. It covers computer documentation # manuals and manual fragments, as well as reference entries (such as # man pages) and technical journals or anthologies containing # articles. # # This module depends on the DocBook information pool module. All # elements and entities referenced but not defined here are assumed # to be defined in the information pool module. # # In DTD driver files referring to this module, please use an entity # declaration that uses the public identifier shown below: # # # %dbhier; # # See the documentation for detailed information on the parameter # entity and module scheme used in DocBook, customizing DocBook and # planning for interchange, and changes made since the last release # of DocBook. # ...................................................................... # Entities for module inclusions ....................................... # ...................................................................... # Entities for element classes ......................................... local.appendix.class = notAllowed appendix.class = appendix | local.appendix.class local.article.class = notAllowed article.class = article | local.article.class local.book.class = notAllowed book.class = book | local.book.class local.chapter.class = notAllowed chapter.class = chapter | local.chapter.class local.index.class = notAllowed index.class = index | setindex | local.index.class local.refentry.class = notAllowed refentry.class = refentry | local.refentry.class local.section.class = notAllowed section.class = section | local.section.class local.nav.class = notAllowed nav.class = toc | lot | index | glossary | bibliography | local.nav.class # Redeclaration placeholder ............................................ # For redeclaring entities that are declared after this point while # retaining their references to the entities that are declared before # this point # ...................................................................... # Entities for element mixtures ........................................ local.divcomponent.mix = notAllowed divcomponent.mix = list.class | admon.class | linespecific.class | synop.class | para.class | informal.class | formal.class | compound.class | genobj.class | descobj.class | ndxterm.class | beginpage | forms.hook | local.divcomponent.mix local.refcomponent.mix = notAllowed refcomponent.mix = list.class | admon.class | linespecific.class | synop.class | para.class | informal.class | formal.class | compound.class | genobj.class | descobj.class | ndxterm.class | beginpage | forms.hook | local.refcomponent.mix local.indexdivcomponent.mix = notAllowed indexdivcomponent.mix = itemizedlist | orderedlist | variablelist | simplelist | linespecific.class | synop.class | para.class | informal.class | anchor | remark | link.char.class | beginpage | local.indexdivcomponent.mix local.refname.char.mix = notAllowed refname.char.mix = text | tech.char.class | local.refname.char.mix local.partcontent.mix = notAllowed partcontent.mix = appendix.class | chapter.class | nav.class | article.class | preface | refentry.class | reference | local.partcontent.mix local.refinline.char.mix = notAllowed refinline.char.mix = text | xref.char.class | gen.char.class | link.char.class | tech.char.class | base.char.class | docinfo.char.class | other.char.class | ndxterm.class | beginpage | local.refinline.char.mix local.refclass.char.mix = notAllowed refclass.char.mix = text | application | local.refclass.char.mix # Redeclaration placeholder 2 .......................................... # For redeclaring entities that are declared after this point while # retaining their references to the entities that are declared before # this point # ...................................................................... # Entities for content models .......................................... div.title.content = title, subtitle?, titleabbrev? bookcomponent.title.content = title, subtitle?, titleabbrev? sect.title.content = title, subtitle?, titleabbrev? refsect.title.content = title, subtitle?, titleabbrev? bookcomponent.content = (divcomponent.mix+, (sect1* | refentry.class* | simplesect* | section.class*)) | (sect1+ | refentry.class+ | simplesect+ | section.class+) # ...................................................................... # Set and SetInfo ...................................................... local.set.attrib = empty set.role.attrib = role.attrib # doc:A collection of books. set = element set { set.attlist, div.title.content?, setinfo?, toc?, (set | book.class)+, setindex? } # end of set.element # FPI: SGML formal public identifier set.attlist &= attribute fpi { text }?, status.attrib, common.attrib, set.role.attrib, local.set.attrib # end of set.attlist # end of set.module local.setinfo.attrib = empty setinfo.role.attrib = role.attrib # doc:Meta-information for a Set. setinfo = element setinfo { setinfo.attlist, info.class+ } # end of setinfo.element # Contents: IDs of the ToC, Books, and SetIndex that comprise # the set, in the order of their appearance setinfo.attlist &= attribute contents { xsd:IDREFS }?, common.attrib, setinfo.role.attrib, local.setinfo.attrib # end of setinfo.attlist # end of setinfo.module # end of set.content.module # ...................................................................... # Book and BookInfo .................................................... local.book.attrib = empty book.role.attrib = role.attrib # doc:A book. book = element book { book.attlist, div.title.content?, bookinfo?, (dedication | toc | lot | glossary | bibliography | preface | chapter.class | reference | part | article.class | appendix.class | index.class | colophon)* } # end of book.element # FPI: SGML formal public identifier book.attlist &= attribute fpi { text }?, label.attrib, status.attrib, common.attrib, book.role.attrib, local.book.attrib # end of book.attlist # end of book.module local.bookinfo.attrib = empty bookinfo.role.attrib = role.attrib # doc:Meta-information for a Book. bookinfo = element bookinfo { bookinfo.attlist, info.class+ } # end of bookinfo.element # Contents: IDs of the ToC, LoTs, Prefaces, Parts, Chapters, # Appendixes, References, GLossary, Bibliography, and indexes # comprising the Book, in the order of their appearance bookinfo.attlist &= attribute contents { xsd:IDREFS }?, common.attrib, bookinfo.role.attrib, local.bookinfo.attrib # end of bookinfo.attlist # end of bookinfo.module # end of book.content.module # ...................................................................... # Dedication, ToC, and LoT ............................................. local.dedication.attrib = empty dedication.role.attrib = role.attrib # doc:A wrapper for the dedication section of a book. dedication = element dedication { dedication.attlist, sect.title.content?, legalnotice.mix+ } # end of dedication.element dedication.attlist &= status.attrib, common.attrib, dedication.role.attrib, local.dedication.attrib # end of dedication.attlist # end of dedication.module local.colophon.attrib = empty colophon.role.attrib = role.attrib # doc:Text at the back of a book describing facts about its production. colophon = element colophon { colophon.attlist, sect.title.content?, textobject.mix+ } # end of colophon.element colophon.attlist &= status.attrib, common.attrib, colophon.role.attrib, local.colophon.attrib # end of colophon.attlist # end of colophon.module local.toc.attrib = empty toc.role.attrib = role.attrib # doc:A table of contents. toc = element toc { toc.attlist, beginpage?, bookcomponent.title.content?, tocfront*, (tocpart | tocchap)*, tocback* } # end of toc.element toc.attlist &= pagenum.attrib, common.attrib, toc.role.attrib, local.toc.attrib # end of toc.attlist # end of toc.module local.tocfront.attrib = empty tocfront.role.attrib = role.attrib # doc:An entry in a table of contents for a front matter component. tocfront = element tocfront { tocfront.attlist, para.char.mix* } # end of tocfront.element # to element that this entry represents tocfront.attlist &= label.attrib, linkend.attrib, pagenum.attrib, common.attrib, tocfront.role.attrib, local.tocfront.attrib # end of tocfront.attlist # end of tocfront.module local.tocentry.attrib = empty tocentry.role.attrib = role.attrib # doc:A component title in a table of contents. tocentry = element tocentry { tocentry.attlist, para.char.mix* } # end of tocentry.element # to element that this entry represents tocentry.attlist &= linkend.attrib, pagenum.attrib, common.attrib, tocentry.role.attrib, local.tocentry.attrib # end of tocentry.attlist # end of tocentry.module local.tocpart.attrib = empty tocpart.role.attrib = role.attrib # doc:An entry in a table of contents for a part of a book. tocpart = element tocpart { tocpart.attlist, tocentry+, tocchap* } # end of tocpart.element tocpart.attlist &= common.attrib, tocpart.role.attrib, local.tocpart.attrib # end of tocpart.attlist # end of tocpart.module local.tocchap.attrib = empty tocchap.role.attrib = role.attrib # doc:An entry in a table of contents for a component in the body of a document. tocchap = element tocchap { tocchap.attlist, tocentry+, toclevel1* } # end of tocchap.element tocchap.attlist &= label.attrib, common.attrib, tocchap.role.attrib, local.tocchap.attrib # end of tocchap.attlist # end of tocchap.module local.toclevel1.attrib = empty toclevel1.role.attrib = role.attrib # doc:A top-level entry within a table of contents entry for a chapter-like component. toclevel1 = element toclevel1 { toclevel1.attlist, tocentry+, toclevel2* } # end of toclevel1.element toclevel1.attlist &= common.attrib, toclevel1.role.attrib, local.toclevel1.attrib # end of toclevel1.attlist # end of toclevel1.module local.toclevel2.attrib = empty toclevel2.role.attrib = role.attrib # doc:A second-level entry within a table of contents entry for a chapter-like component. toclevel2 = element toclevel2 { toclevel2.attlist, tocentry+, toclevel3* } # end of toclevel2.element toclevel2.attlist &= common.attrib, toclevel2.role.attrib, local.toclevel2.attrib # end of toclevel2.attlist # end of toclevel2.module local.toclevel3.attrib = empty toclevel3.role.attrib = role.attrib # doc:A third-level entry within a table of contents entry for a chapter-like component. toclevel3 = element toclevel3 { toclevel3.attlist, tocentry+, toclevel4* } # end of toclevel3.element toclevel3.attlist &= common.attrib, toclevel3.role.attrib, local.toclevel3.attrib # end of toclevel3.attlist # end of toclevel3.module local.toclevel4.attrib = empty toclevel4.role.attrib = role.attrib # doc:A fourth-level entry within a table of contents entry for a chapter-like component. toclevel4 = element toclevel4 { toclevel4.attlist, tocentry+, toclevel5* } # end of toclevel4.element toclevel4.attlist &= common.attrib, toclevel4.role.attrib, local.toclevel4.attrib # end of toclevel4.attlist # end of toclevel4.module local.toclevel5.attrib = empty toclevel5.role.attrib = role.attrib # doc:A fifth-level entry within a table of contents entry for a chapter-like component. toclevel5 = element toclevel5 { toclevel5.attlist, tocentry+ } # end of toclevel5.element toclevel5.attlist &= common.attrib, toclevel5.role.attrib, local.toclevel5.attrib # end of toclevel5.attlist # end of toclevel5.module local.tocback.attrib = empty tocback.role.attrib = role.attrib # doc:An entry in a table of contents for a back matter component. tocback = element tocback { tocback.attlist, para.char.mix* } # end of tocback.element # to element that this entry represents tocback.attlist &= label.attrib, linkend.attrib, pagenum.attrib, common.attrib, tocback.role.attrib, local.tocback.attrib # end of tocback.attlist # end of tocback.module # end of toc.content.module local.lot.attrib = empty lot.role.attrib = role.attrib # doc:A list of the titles of formal objects (as tables or figures) in a document. lot = element lot { lot.attlist, beginpage?, bookcomponent.title.content?, lotentry* } # end of lot.element lot.attlist &= label.attrib, common.attrib, lot.role.attrib, local.lot.attrib # end of lot.attlist # end of lot.module local.lotentry.attrib = empty lotentry.role.attrib = role.attrib # doc:An entry in a list of titles. lotentry = element lotentry { lotentry.attlist, para.char.mix* } # end of lotentry.element # SrcCredit: Information about the source of the entry, # as for a list of illustrations # linkend: to element that this entry represents lotentry.attlist &= linkend.attrib, pagenum.attrib, attribute srccredit { text }?, common.attrib, lotentry.role.attrib, local.lotentry.attrib # end of lotentry.attlist # end of lotentry.module # end of lot.content.module # ...................................................................... # Appendix, Chapter, Part, Preface, Reference, PartIntro ............... local.appendix.attrib = empty appendix.role.attrib = role.attrib # doc:An appendix in a Book or Article. appendix = element appendix { appendix.attlist, beginpage?, appendixinfo?, bookcomponent.title.content, nav.class*, tocchap?, bookcomponent.content, nav.class* } # end of appendix.element appendix.attlist &= label.attrib, status.attrib, common.attrib, appendix.role.attrib, local.appendix.attrib # end of appendix.attlist # end of appendix.module local.chapter.attrib = empty chapter.role.attrib = role.attrib # doc:A chapter, as of a book. chapter = element chapter { chapter.attlist, beginpage?, chapterinfo?, bookcomponent.title.content, nav.class*, tocchap?, bookcomponent.content, nav.class* } # end of chapter.element chapter.attlist &= label.attrib, status.attrib, common.attrib, chapter.role.attrib, local.chapter.attrib # end of chapter.attlist # end of chapter.module # Note that Part was to have its content model reduced in V4.5. This # change will not be made after all. local.part.attrib = empty part.role.attrib = role.attrib # doc:A division in a book. part = element part { part.attlist, beginpage?, partinfo?, bookcomponent.title.content, partintro?, partcontent.mix+ } # end of part.element part.attlist &= label.attrib, status.attrib, common.attrib, part.role.attrib, local.part.attrib # end of part.attlist # ELEMENT PartIntro (defined below) # end of part.module local.preface.attrib = empty preface.role.attrib = role.attrib # doc:Introductory matter preceding the first chapter of a book. preface = element preface { preface.attlist, beginpage?, prefaceinfo?, bookcomponent.title.content, nav.class*, tocchap?, bookcomponent.content, nav.class* } # end of preface.element preface.attlist &= status.attrib, common.attrib, preface.role.attrib, local.preface.attrib # end of preface.attlist # end of preface.module local.reference.attrib = empty reference.role.attrib = role.attrib # doc:A collection of reference entries. reference = element reference { reference.attlist, beginpage?, referenceinfo?, bookcomponent.title.content, partintro?, refentry.class+ } # end of reference.element reference.attlist &= label.attrib, status.attrib, common.attrib, reference.role.attrib, local.reference.attrib # end of reference.attlist # ELEMENT PartIntro (defined below) # end of reference.module local.partintro.attrib = empty partintro.role.attrib = role.attrib # doc:An introduction to the contents of a part. partintro = element partintro { partintro.attlist, div.title.content?, bookcomponent.content } # end of partintro.element partintro.attlist &= label.attrib, common.attrib, partintro.role.attrib, local.partintro.attrib # end of partintro.attlist # end of partintro.module # ...................................................................... # Other Info elements .................................................. local.appendixinfo.attrib = empty appendixinfo.role.attrib = role.attrib # doc:Meta-information for an Appendix. appendixinfo = element appendixinfo { appendixinfo.attlist, info.class+ } # end of appendixinfo.element appendixinfo.attlist &= common.attrib, appendixinfo.role.attrib, local.appendixinfo.attrib # end of appendixinfo.attlist # end of appendixinfo.module local.bibliographyinfo.attrib = empty bibliographyinfo.role.attrib = role.attrib # doc:Meta-information for a Bibliography. bibliographyinfo = element bibliographyinfo { bibliographyinfo.attlist, info.class+ } # end of bibliographyinfo.element bibliographyinfo.attlist &= common.attrib, bibliographyinfo.role.attrib, local.bibliographyinfo.attrib # end of bibliographyinfo.attlist # end of bibliographyinfo.module local.chapterinfo.attrib = empty chapterinfo.role.attrib = role.attrib # doc:Meta-information for a Chapter. chapterinfo = element chapterinfo { chapterinfo.attlist, info.class+ } # end of chapterinfo.element chapterinfo.attlist &= common.attrib, chapterinfo.role.attrib, local.chapterinfo.attrib # end of chapterinfo.attlist # end of chapterinfo.module local.glossaryinfo.attrib = empty glossaryinfo.role.attrib = role.attrib # doc:Meta-information for a Glossary. glossaryinfo = element glossaryinfo { glossaryinfo.attlist, info.class+ } # end of glossaryinfo.element glossaryinfo.attlist &= common.attrib, glossaryinfo.role.attrib, local.glossaryinfo.attrib # end of glossaryinfo.attlist # end of glossaryinfo.module local.indexinfo.attrib = empty indexinfo.role.attrib = role.attrib # doc:Meta-information for an Index. indexinfo = element indexinfo { indexinfo.attlist, info.class+ } # end of indexinfo.element indexinfo.attlist &= common.attrib, indexinfo.role.attrib, local.indexinfo.attrib # end of indexinfo.attlist # end of indexinfo.module local.setindexinfo.attrib = empty setindexinfo.role.attrib = role.attrib # doc:Meta-information for a SetIndex. setindexinfo = element setindexinfo { setindexinfo.attlist, info.class+ } # end of setindexinfo.element setindexinfo.attlist &= common.attrib, setindexinfo.role.attrib, local.setindexinfo.attrib # end of setindexinfo.attlist # end of setindexinfo.module local.partinfo.attrib = empty partinfo.role.attrib = role.attrib # doc:Meta-information for a Part. partinfo = element partinfo { partinfo.attlist, info.class+ } # end of partinfo.element partinfo.attlist &= common.attrib, partinfo.role.attrib, local.partinfo.attrib # end of partinfo.attlist # end of partinfo.module local.prefaceinfo.attrib = empty prefaceinfo.role.attrib = role.attrib # doc:Meta-information for a Preface. prefaceinfo = element prefaceinfo { prefaceinfo.attlist, info.class+ } # end of prefaceinfo.element prefaceinfo.attlist &= common.attrib, prefaceinfo.role.attrib, local.prefaceinfo.attrib # end of prefaceinfo.attlist # end of prefaceinfo.module local.refentryinfo.attrib = empty refentryinfo.role.attrib = role.attrib # doc:Meta-information for a Refentry. refentryinfo = element refentryinfo { refentryinfo.attlist, info.class+ } # end of refentryinfo.element refentryinfo.attlist &= common.attrib, refentryinfo.role.attrib, local.refentryinfo.attrib # end of refentryinfo.attlist # end of refentryinfo.module local.refsectioninfo.attrib = empty refsectioninfo.role.attrib = role.attrib # doc:Meta-information for a refsection. refsectioninfo = element refsectioninfo { refsectioninfo.attlist, info.class+ } # end of refsectioninfo.element refsectioninfo.attlist &= common.attrib, refsectioninfo.role.attrib, local.refsectioninfo.attrib # end of refsectioninfo.attlist # end of refsectioninfo.module local.refsect1info.attrib = empty refsect1info.role.attrib = role.attrib # doc:Meta-information for a RefSect1. refsect1info = element refsect1info { refsect1info.attlist, info.class+ } # end of refsect1info.element refsect1info.attlist &= common.attrib, refsect1info.role.attrib, local.refsect1info.attrib # end of refsect1info.attlist # end of refsect1info.module local.refsect2info.attrib = empty refsect2info.role.attrib = role.attrib # doc:Meta-information for a RefSect2. refsect2info = element refsect2info { refsect2info.attlist, info.class+ } # end of refsect2info.element refsect2info.attlist &= common.attrib, refsect2info.role.attrib, local.refsect2info.attrib # end of refsect2info.attlist # end of refsect2info.module local.refsect3info.attrib = empty refsect3info.role.attrib = role.attrib # doc:Meta-information for a RefSect3. refsect3info = element refsect3info { refsect3info.attlist, info.class+ } # end of refsect3info.element refsect3info.attlist &= common.attrib, refsect3info.role.attrib, local.refsect3info.attrib # end of refsect3info.attlist # end of refsect3info.module local.refsynopsisdivinfo.attrib = empty refsynopsisdivinfo.role.attrib = role.attrib # doc:Meta-information for a RefSynopsisDiv. refsynopsisdivinfo = element refsynopsisdivinfo { refsynopsisdivinfo.attlist, info.class+ } # end of refsynopsisdivinfo.element refsynopsisdivinfo.attlist &= common.attrib, refsynopsisdivinfo.role.attrib, local.refsynopsisdivinfo.attrib # end of refsynopsisdivinfo.attlist # end of refsynopsisdivinfo.module local.referenceinfo.attrib = empty referenceinfo.role.attrib = role.attrib # doc:Meta-information for a Reference. referenceinfo = element referenceinfo { referenceinfo.attlist, info.class+ } # end of referenceinfo.element referenceinfo.attlist &= common.attrib, referenceinfo.role.attrib, local.referenceinfo.attrib # end of referenceinfo.attlist # end of referenceinfo.module local.sect1info.attrib = empty sect1info.role.attrib = role.attrib # doc:Meta-information for a Sect1. sect1info = element sect1info { sect1info.attlist, info.class+ } # end of sect1info.element sect1info.attlist &= common.attrib, sect1info.role.attrib, local.sect1info.attrib # end of sect1info.attlist local.sect2info.attrib = empty sect2info.role.attrib = role.attrib # doc:Meta-information for a Sect2. sect2info = element sect2info { sect2info.attlist, info.class+ } # end of sect2info.element sect2info.attlist &= common.attrib, sect2info.role.attrib, local.sect2info.attrib # end of sect2info.attlist local.sect3info.attrib = empty sect3info.role.attrib = role.attrib # doc:Meta-information for a Sect3. sect3info = element sect3info { sect3info.attlist, info.class+ } # end of sect3info.element sect3info.attlist &= common.attrib, sect3info.role.attrib, local.sect3info.attrib # end of sect3info.attlist local.sect4info.attrib = empty sect4info.role.attrib = role.attrib # doc:Meta-information for a Sect4. sect4info = element sect4info { sect4info.attlist, info.class+ } # end of sect4info.element sect4info.attlist &= common.attrib, sect4info.role.attrib, local.sect4info.attrib # end of sect4info.attlist local.sect5info.attrib = empty sect5info.role.attrib = role.attrib # doc:Meta-information for a Sect5. sect5info = element sect5info { sect5info.attlist, info.class+ } # end of sect5info.element sect5info.attlist &= common.attrib, sect5info.role.attrib, local.sect5info.attrib # end of sect5info.attlist # ...................................................................... # Section (parallel to Sect*) ......................................... local.section.attrib = empty section.role.attrib = role.attrib # doc:A recursive section. section = element section { section.attlist, sectioninfo?, sect.title.content, nav.class*, ((divcomponent.mix+, (refentry.class* | section.class* | simplesect*)) | refentry.class+ | section.class+ | simplesect+), nav.class* } # end of section.element section.attlist &= label.attrib, status.attrib, common.attrib, section.role.attrib, local.section.attrib # end of section.attlist # end of section.module sectioninfo.role.attrib = role.attrib local.sectioninfo.attrib = empty # doc:Meta-information for a recursive section. sectioninfo = element sectioninfo { sectioninfo.attlist, info.class+ } # end of sectioninfo.element sectioninfo.attlist &= common.attrib, sectioninfo.role.attrib, local.sectioninfo.attrib # end of sectioninfo.attlist # end of sectioninfo.module # end of section.content.module # ...................................................................... # Sect1, Sect2, Sect3, Sect4, Sect5 .................................... local.sect1.attrib = empty sect1.role.attrib = role.attrib # doc:A top-level section of document. sect1 = element sect1 { sect1.attlist, sect1info?, sect.title.content, nav.class*, ((divcomponent.mix+, (refentry.class* | sect2* | simplesect*)) | refentry.class+ | sect2+ | simplesect+), nav.class* } # end of sect1.element # Renderas: Indicates the format in which the heading should # appear sect1.attlist &= attribute renderas { "sect2" | "sect3" | "sect4" | "sect5" }?, label.attrib, status.attrib, common.attrib, sect1.role.attrib, local.sect1.attrib # end of sect1.attlist # end of sect1.module local.sect2.attrib = empty sect2.role.attrib = role.attrib # doc:A subsection within a Sect1. sect2 = element sect2 { sect2.attlist, sect2info?, sect.title.content, nav.class*, ((divcomponent.mix+, (refentry.class* | sect3* | simplesect*)) | refentry.class+ | sect3+ | simplesect+), nav.class* } # end of sect2.element # Renderas: Indicates the format in which the heading should # appear sect2.attlist &= attribute renderas { "sect1" | "sect3" | "sect4" | "sect5" }?, label.attrib, status.attrib, common.attrib, sect2.role.attrib, local.sect2.attrib # end of sect2.attlist # end of sect2.module local.sect3.attrib = empty sect3.role.attrib = role.attrib # doc:A subsection within a Sect2. sect3 = element sect3 { sect3.attlist, sect3info?, sect.title.content, nav.class*, ((divcomponent.mix+, (refentry.class* | sect4* | simplesect*)) | refentry.class+ | sect4+ | simplesect+), nav.class* } # end of sect3.element # Renderas: Indicates the format in which the heading should # appear sect3.attlist &= attribute renderas { "sect1" | "sect2" | "sect4" | "sect5" }?, label.attrib, status.attrib, common.attrib, sect3.role.attrib, local.sect3.attrib # end of sect3.attlist # end of sect3.module local.sect4.attrib = empty sect4.role.attrib = role.attrib # doc:A subsection within a Sect3. sect4 = element sect4 { sect4.attlist, sect4info?, sect.title.content, nav.class*, ((divcomponent.mix+, (refentry.class* | sect5* | simplesect*)) | refentry.class+ | sect5+ | simplesect+), nav.class* } # end of sect4.element # Renderas: Indicates the format in which the heading should # appear sect4.attlist &= attribute renderas { "sect1" | "sect2" | "sect3" | "sect5" }?, label.attrib, status.attrib, common.attrib, sect4.role.attrib, local.sect4.attrib # end of sect4.attlist # end of sect4.module local.sect5.attrib = empty sect5.role.attrib = role.attrib # doc:A subsection within a Sect4. sect5 = element sect5 { sect5.attlist, sect5info?, sect.title.content, nav.class*, ((divcomponent.mix+, (refentry.class* | simplesect*)) | refentry.class+ | simplesect+), nav.class* } # end of sect5.element # Renderas: Indicates the format in which the heading should # appear sect5.attlist &= attribute renderas { "sect1" | "sect2" | "sect3" | "sect4" }?, label.attrib, status.attrib, common.attrib, sect5.role.attrib, local.sect5.attrib # end of sect5.attlist # end of sect5.module local.simplesect.attrib = empty simplesect.role.attrib = role.attrib # doc:A section of a document with no subdivisions. simplesect = element simplesect { simplesect.attlist, sect.title.content, divcomponent.mix+ } # end of simplesect.element simplesect.attlist &= common.attrib, simplesect.role.attrib, local.simplesect.attrib # end of simplesect.attlist # end of simplesect.module # ...................................................................... # Bibliography ......................................................... local.bibliography.attrib = empty bibliography.role.attrib = role.attrib # doc:A bibliography. bibliography = element bibliography { bibliography.attlist, bibliographyinfo?, bookcomponent.title.content?, component.mix*, (bibliodiv+ | (biblioentry | bibliomixed)+) } # end of bibliography.element bibliography.attlist &= status.attrib, common.attrib, bibliography.role.attrib, local.bibliography.attrib # end of bibliography.attlist # end of bibliography.module local.bibliodiv.attrib = empty bibliodiv.role.attrib = role.attrib # doc:A section of a Bibliography. bibliodiv = element bibliodiv { bibliodiv.attlist, sect.title.content?, component.mix*, (biblioentry | bibliomixed)+ } # end of bibliodiv.element bibliodiv.attlist &= status.attrib, common.attrib, bibliodiv.role.attrib, local.bibliodiv.attrib # end of bibliodiv.attlist # end of bibliodiv.module # end of bibliography.content.module # ...................................................................... # Glossary ............................................................. local.glossary.attrib = empty glossary.role.attrib = role.attrib # doc:A glossary. glossary = element glossary { glossary.attlist, glossaryinfo?, bookcomponent.title.content?, component.mix*, (glossdiv+ | glossentry+), bibliography? } # end of glossary.element glossary.attlist &= status.attrib, common.attrib, glossary.role.attrib, local.glossary.attrib # end of glossary.attlist # end of glossary.module local.glossdiv.attrib = empty glossdiv.role.attrib = role.attrib # doc:A division in a Glossary. glossdiv = element glossdiv { glossdiv.attlist, sect.title.content, component.mix*, glossentry+ } # end of glossdiv.element glossdiv.attlist &= status.attrib, common.attrib, glossdiv.role.attrib, local.glossdiv.attrib # end of glossdiv.attlist # end of glossdiv.module # end of glossary.content.module # ...................................................................... # Index and SetIndex ................................................... local.indexes.attrib = empty indexes.role.attrib = role.attrib # doc:An index. index = element index { index.attlist, indexinfo?, bookcomponent.title.content?, component.mix*, (indexdiv* | indexentry*) } # end of index.element index.attlist &= attribute type { text }?, common.attrib, indexes.role.attrib, local.indexes.attrib # end of index.attlist # doc:An index to a set of books. setindex = element setindex { setindex.attlist, setindexinfo?, bookcomponent.title.content?, component.mix*, (indexdiv* | indexentry*) } # end of setindex.element setindex.attlist &= common.attrib, indexes.role.attrib, local.indexes.attrib # end of setindex.attlist # end of indexes.module # SegmentedList in this content is useful for marking up permuted # indices. local.indexdiv.attrib = empty indexdiv.role.attrib = role.attrib # doc:A division in an index. indexdiv = element indexdiv { indexdiv.attlist, sect.title.content?, (indexdivcomponent.mix*, (indexentry+ | segmentedlist)) } # end of indexdiv.element indexdiv.attlist &= common.attrib, indexdiv.role.attrib, local.indexdiv.attrib # end of indexdiv.attlist # end of indexdiv.module # Index entries appear in the index, not the text. local.indexentry.attrib = empty indexentry.role.attrib = role.attrib # doc:An entry in an index. indexentry = element indexentry { indexentry.attlist, primaryie, (seeie | seealsoie)*, (secondaryie, (seeie | seealsoie | tertiaryie)*)* } # end of indexentry.element indexentry.attlist &= common.attrib, indexentry.role.attrib, local.indexentry.attrib # end of indexentry.attlist # end of indexentry.module local.primsecterie.attrib = empty primsecterie.role.attrib = role.attrib # doc:A primary term in an index entry, not in the text. primaryie = element primaryie { primaryie.attlist, ndxterm.char.mix* } # end of primaryie.element # to IndexTerms that these entries represent primaryie.attlist &= linkends.attrib, common.attrib, primsecterie.role.attrib, local.primsecterie.attrib # end of primaryie.attlist # doc:A secondary term in an index entry, rather than in the text. secondaryie = element secondaryie { secondaryie.attlist, ndxterm.char.mix* } # end of secondaryie.element # to IndexTerms that these entries represent secondaryie.attlist &= linkends.attrib, common.attrib, primsecterie.role.attrib, local.primsecterie.attrib # end of secondaryie.attlist # doc:A tertiary term in an index entry, rather than in the text. tertiaryie = element tertiaryie { tertiaryie.attlist, ndxterm.char.mix* } # end of tertiaryie.element # to IndexTerms that these entries represent tertiaryie.attlist &= linkends.attrib, common.attrib, primsecterie.role.attrib, local.primsecterie.attrib # end of tertiaryie.attlist # end of primsecterie.module local.seeie.attrib = empty seeie.role.attrib = role.attrib # doc:A See entry in an index, rather than in the text. seeie = element seeie { seeie.attlist, ndxterm.char.mix* } # end of seeie.element # to IndexEntry to look up seeie.attlist &= linkend.attrib, common.attrib, seeie.role.attrib, local.seeie.attrib # end of seeie.attlist # end of seeie.module local.seealsoie.attrib = empty seealsoie.role.attrib = role.attrib # doc:A See also entry in an index, rather than in the text. seealsoie = element seealsoie { seealsoie.attlist, ndxterm.char.mix* } # end of seealsoie.element # to related IndexEntries seealsoie.attlist &= linkends.attrib, common.attrib, seealsoie.role.attrib, local.seealsoie.attrib # end of seealsoie.attlist # end of seealsoie.module # end of index.content.module # ...................................................................... # RefEntry ............................................................. local.refentry.attrib = empty refentry.role.attrib = role.attrib # doc:A reference page (originally a UNIX man-style reference page). refentry = element refentry { refentry.attlist, beginpage?, ndxterm.class*, refentryinfo?, refmeta?, (remark | link.char.class)*, refnamediv+, refsynopsisdiv?, (refsect1+ | refsection+) } # end of refentry.element refentry.attlist &= status.attrib, common.attrib, refentry.role.attrib, local.refentry.attrib # end of refentry.attlist # end of refentry.module local.refmeta.attrib = empty refmeta.role.attrib = role.attrib # doc:Meta-information for a reference entry. refmeta = element refmeta { refmeta.attlist, ndxterm.class*, refentrytitle, manvolnum?, refmiscinfo*, ndxterm.class* } # end of refmeta.element refmeta.attlist &= common.attrib, refmeta.role.attrib, local.refmeta.attrib # end of refmeta.attlist # end of refmeta.module local.refmiscinfo.attrib = empty refmiscinfo.role.attrib = role.attrib # doc:Meta-information for a reference entry other than the title and volume number. refmiscinfo = element refmiscinfo { refmiscinfo.attlist, docinfo.char.mix* } # end of refmiscinfo.element # Class: Freely assignable parameter; no default refmiscinfo.attlist &= attribute class { text }?, common.attrib, refmiscinfo.role.attrib, local.refmiscinfo.attrib # end of refmiscinfo.attlist # end of refmiscinfo.module local.refnamediv.attrib = empty refnamediv.role.attrib = role.attrib # doc:The name, purpose, and classification of a reference page. refnamediv = element refnamediv { refnamediv.attlist, refdescriptor?, refname+, refpurpose, refclass*, (remark | link.char.class)* } # end of refnamediv.element refnamediv.attlist &= common.attrib, refnamediv.role.attrib, local.refnamediv.attrib # end of refnamediv.attlist # end of refnamediv.module local.refdescriptor.attrib = empty refdescriptor.role.attrib = role.attrib # doc:A description of the topic of a reference page. refdescriptor = element refdescriptor { refdescriptor.attlist, refname.char.mix* } # end of refdescriptor.element refdescriptor.attlist &= common.attrib, refdescriptor.role.attrib, local.refdescriptor.attrib # end of refdescriptor.attlist # end of refdescriptor.module local.refname.attrib = empty refname.role.attrib = role.attrib # doc:The name of (one of) the subject(s) of a reference page. refname = element refname { refname.attlist, refname.char.mix* } # end of refname.element refname.attlist &= common.attrib, refname.role.attrib, local.refname.attrib # end of refname.attlist # end of refname.module local.refpurpose.attrib = empty refpurpose.role.attrib = role.attrib # doc:A short (one sentence) synopsis of the topic of a reference page. refpurpose = element refpurpose { refpurpose.attlist, refinline.char.mix* } # end of refpurpose.element refpurpose.attlist &= common.attrib, refpurpose.role.attrib, local.refpurpose.attrib # end of refpurpose.attlist # end of refpurpose.module local.refclass.attrib = empty refclass.role.attrib = role.attrib # doc:The scope or other indication of applicability of a reference entry. refclass = element refclass { refclass.attlist, refclass.char.mix* } # end of refclass.element refclass.attlist &= common.attrib, refclass.role.attrib, local.refclass.attrib # end of refclass.attlist # end of refclass.module local.refsynopsisdiv.attrib = empty refsynopsisdiv.role.attrib = role.attrib # doc:A syntactic synopsis of the subject of the reference page. refsynopsisdiv = element refsynopsisdiv { refsynopsisdiv.attlist, refsynopsisdivinfo?, refsect.title.content?, ((refcomponent.mix+, refsect2*) | refsect2+) } # end of refsynopsisdiv.element refsynopsisdiv.attlist &= common.attrib, refsynopsisdiv.role.attrib, local.refsynopsisdiv.attrib # end of refsynopsisdiv.attlist # end of refsynopsisdiv.module local.refsection.attrib = empty refsection.role.attrib = role.attrib # doc:A recursive section in a refentry. refsection = element refsection { refsection.attlist, refsectioninfo?, refsect.title.content, ((refcomponent.mix+, refsection*) | refsection+) } # end of refsection.element refsection.attlist &= status.attrib, common.attrib, refsection.role.attrib, local.refsection.attrib # end of refsection.attlist # end of refsection.module local.refsect1.attrib = empty refsect1.role.attrib = role.attrib # doc:A major subsection of a reference entry. refsect1 = element refsect1 { refsect1.attlist, refsect1info?, refsect.title.content, ((refcomponent.mix+, refsect2*) | refsect2+) } # end of refsect1.element refsect1.attlist &= status.attrib, common.attrib, refsect1.role.attrib, local.refsect1.attrib # end of refsect1.attlist # end of refsect1.module local.refsect2.attrib = empty refsect2.role.attrib = role.attrib # doc:A subsection of a RefSect1. refsect2 = element refsect2 { refsect2.attlist, refsect2info?, refsect.title.content, ((refcomponent.mix+, refsect3*) | refsect3+) } # end of refsect2.element refsect2.attlist &= status.attrib, common.attrib, refsect2.role.attrib, local.refsect2.attrib # end of refsect2.attlist # end of refsect2.module local.refsect3.attrib = empty refsect3.role.attrib = role.attrib # doc:A subsection of a RefSect2. refsect3 = element refsect3 { refsect3.attlist, refsect3info?, refsect.title.content, refcomponent.mix+ } # end of refsect3.element refsect3.attlist &= status.attrib, common.attrib, refsect3.role.attrib, local.refsect3.attrib # end of refsect3.attlist # end of refsect3.module # end of refentry.content.module # ...................................................................... # Article .............................................................. # An Article is a chapter-level, stand-alone document that is often, # but need not be, collected into a Book. local.article.attrib = empty article.role.attrib = role.attrib # doc:An article. article = element article { article.attlist, div.title.content?, articleinfo?, tocchap?, lot*, bookcomponent.content, (nav.class | appendix.class | colophon | ackno)* } # end of article.element # Class: Indicates the type of a particular article; # all articles have the same structure and general purpose. # No default. # ParentBook: ID of the enclosing Book article.attlist &= attribute class { "journalarticle" | "productsheet" | "whitepaper" | "techreport" | "specification" | "faq" }?, attribute parentbook { xsd:IDREF }?, status.attrib, common.attrib, article.role.attrib, local.article.attrib # end of article.attlist # end of article.module # End of DocBook document hierarchy module V4.5 ........................ # ......................................................................