Blob Blame History Raw
<?xml version="1.0" encoding="UTF-8"?>
<!-- ...................................................................... -->
<!-- DocBook document hierarchy module V4.2 ............................... -->
<!-- File dbhierx.mod ..................................................... -->
<!--
  Copyright 1992-2002 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,v 1.19 2002/07/17 15:26:16 nwalsh Exp $
  
  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:
  
  <!ENTITY % dbhier PUBLIC
  "-//OASIS//ELEMENTS DocBook Document Hierarchy V4.2//EN"
  "dbhierx.mod">
  %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 ......................................... -->
<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  <define name="local.appendix.class">
    <notAllowed/>
  </define>
  <define name="appendix.class">
    <choice>
      <ref name="appendix"/>
      <ref name="local.appendix.class"/>
    </choice>
  </define>
  <define name="local.article.class">
    <notAllowed/>
  </define>
  <define name="article.class">
    <choice>
      <ref name="article"/>
      <ref name="local.article.class"/>
    </choice>
  </define>
  <define name="local.book.class">
    <notAllowed/>
  </define>
  <define name="book.class">
    <choice>
      <ref name="book"/>
      <ref name="local.book.class"/>
    </choice>
  </define>
  <define name="local.chapter.class">
    <notAllowed/>
  </define>
  <define name="chapter.class">
    <choice>
      <ref name="chapter"/>
      <ref name="local.chapter.class"/>
    </choice>
  </define>
  <define name="local.index.class">
    <notAllowed/>
  </define>
  <define name="index.class">
    <choice>
      <ref name="index"/>
      <ref name="setindex"/>
      <ref name="local.index.class"/>
    </choice>
  </define>
  <define name="local.refentry.class">
    <notAllowed/>
  </define>
  <define name="refentry.class">
    <choice>
      <ref name="refentry"/>
      <ref name="local.refentry.class"/>
    </choice>
  </define>
  <define name="local.section.class">
    <notAllowed/>
  </define>
  <define name="section.class">
    <choice>
      <ref name="section"/>
      <ref name="local.section.class"/>
    </choice>
  </define>
  <define name="local.nav.class">
    <notAllowed/>
  </define>
  <define name="nav.class">
    <choice>
      <ref name="toc"/>
      <ref name="lot"/>
      <ref name="index"/>
      <ref name="glossary"/>
      <ref name="bibliography"/>
      <ref name="local.nav.class"/>
    </choice>
  </define>
  <!-- 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 ........................................ -->
  <!-- The DocBook TC may produce an official forms module for DocBook. -->
  <!-- This PE provides the hook by which it can be inserted into the DTD. -->
  <define name="forms.hook">
    <notAllowed/>
  </define>
  <define name="local.divcomponent.mix">
    <notAllowed/>
  </define>
  <define name="divcomponent.mix">
    <choice>
      <ref name="list.class"/>
      <ref name="admon.class"/>
      <ref name="linespecific.class"/>
      <ref name="synop.class"/>
      <ref name="para.class"/>
      <ref name="informal.class"/>
      <ref name="formal.class"/>
      <ref name="compound.class"/>
      <ref name="genobj.class"/>
      <ref name="descobj.class"/>
      <ref name="ndxterm.class"/>
      <ref name="beginpage"/>
      <ref name="forms.hook"/>
      <ref name="local.divcomponent.mix"/>
    </choice>
  </define>
  <define name="local.refcomponent.mix">
    <notAllowed/>
  </define>
  <define name="refcomponent.mix">
    <choice>
      <ref name="list.class"/>
      <ref name="admon.class"/>
      <ref name="linespecific.class"/>
      <ref name="synop.class"/>
      <ref name="para.class"/>
      <ref name="informal.class"/>
      <ref name="formal.class"/>
      <ref name="compound.class"/>
      <ref name="genobj.class"/>
      <ref name="descobj.class"/>
      <ref name="ndxterm.class"/>
      <ref name="beginpage"/>
      <ref name="local.refcomponent.mix"/>
    </choice>
  </define>
  <define name="local.indexdivcomponent.mix">
    <notAllowed/>
  </define>
  <define name="indexdivcomponent.mix">
    <choice>
      <ref name="itemizedlist"/>
      <ref name="orderedlist"/>
      <ref name="variablelist"/>
      <ref name="simplelist"/>
      <ref name="linespecific.class"/>
      <ref name="synop.class"/>
      <ref name="para.class"/>
      <ref name="informal.class"/>
      <ref name="anchor"/>
      <ref name="remark"/>
      <ref name="link.char.class"/>
      <ref name="beginpage"/>
      <ref name="local.indexdivcomponent.mix"/>
    </choice>
  </define>
  <define name="local.refname.char.mix">
    <notAllowed/>
  </define>
  <define name="refname.char.mix">
    <choice>
      <text/>
      <ref name="tech.char.class"/>
      <ref name="local.refname.char.mix"/>
    </choice>
  </define>
  <define name="local.partcontent.mix">
    <notAllowed/>
  </define>
  <define name="partcontent.mix">
    <choice>
      <ref name="appendix.class"/>
      <ref name="chapter.class"/>
      <ref name="nav.class"/>
      <ref name="article.class"/>
      <ref name="preface"/>
      <ref name="refentry.class"/>
      <ref name="reference"/>
      <ref name="local.partcontent.mix"/>
    </choice>
  </define>
  <define name="local.refinline.char.mix">
    <notAllowed/>
  </define>
  <define name="refinline.char.mix">
    <choice>
      <text/>
      <ref name="xref.char.class"/>
      <ref name="gen.char.class"/>
      <ref name="link.char.class"/>
      <ref name="tech.char.class"/>
      <ref name="base.char.class"/>
      <ref name="docinfo.char.class"/>
      <ref name="other.char.class"/>
      <ref name="ndxterm.class"/>
      <ref name="beginpage"/>
      <ref name="local.refinline.char.mix"/>
    </choice>
  </define>
  <define name="local.refclass.char.mix">
    <notAllowed/>
  </define>
  <define name="refclass.char.mix">
    <choice>
      <text/>
      <ref name="application"/>
      <ref name="local.refclass.char.mix"/>
    </choice>
  </define>
  <!-- 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 .......................................... -->
  <define name="div.title.content">
    <ref name="title"/>
    <optional>
      <ref name="subtitle"/>
    </optional>
    <optional>
      <ref name="titleabbrev"/>
    </optional>
  </define>
  <define name="bookcomponent.title.content">
    <ref name="title"/>
    <optional>
      <ref name="subtitle"/>
    </optional>
    <optional>
      <ref name="titleabbrev"/>
    </optional>
  </define>
  <define name="sect.title.content">
    <ref name="title"/>
    <optional>
      <ref name="subtitle"/>
    </optional>
    <optional>
      <ref name="titleabbrev"/>
    </optional>
  </define>
  <define name="refsect.title.content">
    <ref name="title"/>
    <optional>
      <ref name="subtitle"/>
    </optional>
    <optional>
      <ref name="titleabbrev"/>
    </optional>
  </define>
  <define name="bookcomponent.content">
    <choice>
      <group>
        <oneOrMore>
          <ref name="divcomponent.mix"/>
        </oneOrMore>
        <choice>
          <zeroOrMore>
            <ref name="sect1"/>
          </zeroOrMore>
          <zeroOrMore>
            <ref name="refentry.class"/>
          </zeroOrMore>
          <zeroOrMore>
            <ref name="simplesect"/>
          </zeroOrMore>
          <zeroOrMore>
            <ref name="section.class"/>
          </zeroOrMore>
        </choice>
      </group>
      <choice>
        <oneOrMore>
          <ref name="sect1"/>
        </oneOrMore>
        <oneOrMore>
          <ref name="refentry.class"/>
        </oneOrMore>
        <oneOrMore>
          <ref name="simplesect"/>
        </oneOrMore>
        <oneOrMore>
          <ref name="section.class"/>
        </oneOrMore>
      </choice>
    </choice>
  </define>
  <!-- ...................................................................... -->
  <!-- Set and SetInfo ...................................................... -->
  <define name="local.set.attrib">
    <empty/>
  </define>
  <define name="set.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="set">
    <element name="set">
      <ref name="set.attlist"/>
      <optional>
        <ref name="div.title.content"/>
      </optional>
      <optional>
        <ref name="setinfo"/>
      </optional>
      <optional>
        <ref name="toc"/>
      </optional>
      <oneOrMore>
        <ref name="book.class"/>
      </oneOrMore>
      <optional>
        <ref name="setindex"/>
      </optional>
    </element>
  </define>
  <!-- end of set.element -->
  <!-- FPI: SGML formal public identifier -->
  <define name="set.attlist" combine="interleave">
    <optional>
      <attribute name="fpi"/>
    </optional>
    <ref name="status.attrib"/>
    <ref name="common.attrib"/>
    <ref name="set.role.attrib"/>
    <ref name="local.set.attrib"/>
  </define>
  <!-- end of set.attlist -->
  <!-- end of set.module -->
  <define name="local.setinfo.attrib">
    <empty/>
  </define>
  <define name="setinfo.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="setinfo">
    <element name="setinfo">
      <ref name="setinfo.attlist"/>
      <oneOrMore>
        <ref name="info.class"/>
      </oneOrMore>
    </element>
  </define>
  <!-- end of setinfo.element -->
  <!--
    Contents: IDs of the ToC, Books, and SetIndex that comprise
    the set, in the order of their appearance
  -->
  <define name="setinfo.attlist" combine="interleave">
    <optional>
      <attribute name="contents">
        <data type="IDREFS"/>
      </attribute>
    </optional>
    <ref name="common.attrib"/>
    <ref name="setinfo.role.attrib"/>
    <ref name="local.setinfo.attrib"/>
  </define>
  <!-- end of setinfo.attlist -->
  <!-- end of setinfo.module -->
  <!-- end of set.content.module -->
  <!-- ...................................................................... -->
  <!-- Book and BookInfo .................................................... -->
  <define name="local.book.attrib">
    <empty/>
  </define>
  <define name="book.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="book">
    <element name="book">
      <ref name="book.attlist"/>
      <optional>
        <ref name="div.title.content"/>
      </optional>
      <optional>
        <ref name="bookinfo"/>
      </optional>
      <zeroOrMore>
        <choice>
          <ref name="dedication"/>
          <ref name="toc"/>
          <ref name="lot"/>
          <ref name="glossary"/>
          <ref name="bibliography"/>
          <ref name="preface"/>
          <ref name="chapter.class"/>
          <ref name="reference"/>
          <ref name="part"/>
          <ref name="article.class"/>
          <ref name="appendix.class"/>
          <ref name="index.class"/>
          <ref name="colophon"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <!-- end of book.element -->
  <!-- FPI: SGML formal public identifier -->
  <define name="book.attlist" combine="interleave">
    <optional>
      <attribute name="fpi"/>
    </optional>
    <ref name="label.attrib"/>
    <ref name="status.attrib"/>
    <ref name="common.attrib"/>
    <ref name="book.role.attrib"/>
    <ref name="local.book.attrib"/>
  </define>
  <!-- end of book.attlist -->
  <!-- end of book.module -->
  <define name="local.bookinfo.attrib">
    <empty/>
  </define>
  <define name="bookinfo.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="bookinfo">
    <element name="bookinfo">
      <ref name="bookinfo.attlist"/>
      <oneOrMore>
        <ref name="info.class"/>
      </oneOrMore>
    </element>
  </define>
  <!-- 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
  -->
  <define name="bookinfo.attlist" combine="interleave">
    <optional>
      <attribute name="contents">
        <data type="IDREFS"/>
      </attribute>
    </optional>
    <ref name="common.attrib"/>
    <ref name="bookinfo.role.attrib"/>
    <ref name="local.bookinfo.attrib"/>
  </define>
  <!-- end of bookinfo.attlist -->
  <!-- end of bookinfo.module -->
  <!-- end of book.content.module -->
  <!-- ...................................................................... -->
  <!-- Dedication, ToC, and LoT ............................................. -->
  <define name="local.dedication.attrib">
    <empty/>
  </define>
  <define name="dedication.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="dedication">
    <element name="dedication">
      <ref name="dedication.attlist"/>
      <optional>
        <ref name="sect.title.content"/>
      </optional>
      <oneOrMore>
        <ref name="legalnotice.mix"/>
      </oneOrMore>
    </element>
  </define>
  <!-- end of dedication.element -->
  <define name="dedication.attlist" combine="interleave">
    <ref name="status.attrib"/>
    <ref name="common.attrib"/>
    <ref name="dedication.role.attrib"/>
    <ref name="local.dedication.attrib"/>
  </define>
  <!-- end of dedication.attlist -->
  <!-- end of dedication.module -->
  <define name="local.colophon.attrib">
    <empty/>
  </define>
  <define name="colophon.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="colophon">
    <element name="colophon">
      <ref name="colophon.attlist"/>
      <optional>
        <ref name="sect.title.content"/>
      </optional>
      <oneOrMore>
        <ref name="textobject.mix"/>
      </oneOrMore>
    </element>
  </define>
  <!-- end of colophon.element -->
  <define name="colophon.attlist" combine="interleave">
    <ref name="status.attrib"/>
    <ref name="common.attrib"/>
    <ref name="colophon.role.attrib"/>
    <ref name="local.colophon.attrib"/>
  </define>
  <!-- end of colophon.attlist -->
  <!-- end of colophon.module -->
  <define name="local.toc.attrib">
    <empty/>
  </define>
  <define name="toc.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="toc">
    <element name="toc">
      <ref name="toc.attlist"/>
      <optional>
        <ref name="beginpage"/>
      </optional>
      <optional>
        <ref name="bookcomponent.title.content"/>
      </optional>
      <zeroOrMore>
        <ref name="tocfront"/>
      </zeroOrMore>
      <zeroOrMore>
        <choice>
          <ref name="tocpart"/>
          <ref name="tocchap"/>
        </choice>
      </zeroOrMore>
      <zeroOrMore>
        <ref name="tocback"/>
      </zeroOrMore>
    </element>
  </define>
  <!-- end of toc.element -->
  <define name="toc.attlist" combine="interleave">
    <ref name="pagenum.attrib"/>
    <ref name="common.attrib"/>
    <ref name="toc.role.attrib"/>
    <ref name="local.toc.attrib"/>
  </define>
  <!-- end of toc.attlist -->
  <!-- end of toc.module -->
  <define name="local.tocfront.attrib">
    <empty/>
  </define>
  <define name="tocfront.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="tocfront">
    <element name="tocfront">
      <ref name="tocfront.attlist"/>
      <zeroOrMore>
        <ref name="para.char.mix"/>
      </zeroOrMore>
    </element>
  </define>
  <!-- end of tocfront.element -->
  <!-- to element that this entry represents -->
  <define name="tocfront.attlist" combine="interleave">
    <ref name="label.attrib"/>
    <ref name="linkend.attrib"/>
    <ref name="pagenum.attrib"/>
    <ref name="common.attrib"/>
    <ref name="tocfront.role.attrib"/>
    <ref name="local.tocfront.attrib"/>
  </define>
  <!-- end of tocfront.attlist -->
  <!-- end of tocfront.module -->
  <define name="local.tocentry.attrib">
    <empty/>
  </define>
  <define name="tocentry.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="tocentry">
    <element name="tocentry">
      <ref name="tocentry.attlist"/>
      <zeroOrMore>
        <ref name="para.char.mix"/>
      </zeroOrMore>
    </element>
  </define>
  <!-- end of tocentry.element -->
  <!-- to element that this entry represents -->
  <define name="tocentry.attlist" combine="interleave">
    <ref name="linkend.attrib"/>
    <ref name="pagenum.attrib"/>
    <ref name="common.attrib"/>
    <ref name="tocentry.role.attrib"/>
    <ref name="local.tocentry.attrib"/>
  </define>
  <!-- end of tocentry.attlist -->
  <!-- end of tocentry.module -->
  <define name="local.tocpart.attrib">
    <empty/>
  </define>
  <define name="tocpart.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="tocpart">
    <element name="tocpart">
      <ref name="tocpart.attlist"/>
      <oneOrMore>
        <ref name="tocentry"/>
      </oneOrMore>
      <zeroOrMore>
        <ref name="tocchap"/>
      </zeroOrMore>
    </element>
  </define>
  <!-- end of tocpart.element -->
  <define name="tocpart.attlist" combine="interleave">
    <ref name="common.attrib"/>
    <ref name="tocpart.role.attrib"/>
    <ref name="local.tocpart.attrib"/>
  </define>
  <!-- end of tocpart.attlist -->
  <!-- end of tocpart.module -->
  <define name="local.tocchap.attrib">
    <empty/>
  </define>
  <define name="tocchap.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="tocchap">
    <element name="tocchap">
      <ref name="tocchap.attlist"/>
      <oneOrMore>
        <ref name="tocentry"/>
      </oneOrMore>
      <zeroOrMore>
        <ref name="toclevel1"/>
      </zeroOrMore>
    </element>
  </define>
  <!-- end of tocchap.element -->
  <define name="tocchap.attlist" combine="interleave">
    <ref name="label.attrib"/>
    <ref name="common.attrib"/>
    <ref name="tocchap.role.attrib"/>
    <ref name="local.tocchap.attrib"/>
  </define>
  <!-- end of tocchap.attlist -->
  <!-- end of tocchap.module -->
  <define name="local.toclevel1.attrib">
    <empty/>
  </define>
  <define name="toclevel1.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="toclevel1">
    <element name="toclevel1">
      <ref name="toclevel1.attlist"/>
      <oneOrMore>
        <ref name="tocentry"/>
      </oneOrMore>
      <zeroOrMore>
        <ref name="toclevel2"/>
      </zeroOrMore>
    </element>
  </define>
  <!-- end of toclevel1.element -->
  <define name="toclevel1.attlist" combine="interleave">
    <ref name="common.attrib"/>
    <ref name="toclevel1.role.attrib"/>
    <ref name="local.toclevel1.attrib"/>
  </define>
  <!-- end of toclevel1.attlist -->
  <!-- end of toclevel1.module -->
  <define name="local.toclevel2.attrib">
    <empty/>
  </define>
  <define name="toclevel2.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="toclevel2">
    <element name="toclevel2">
      <ref name="toclevel2.attlist"/>
      <oneOrMore>
        <ref name="tocentry"/>
      </oneOrMore>
      <zeroOrMore>
        <ref name="toclevel3"/>
      </zeroOrMore>
    </element>
  </define>
  <!-- end of toclevel2.element -->
  <define name="toclevel2.attlist" combine="interleave">
    <ref name="common.attrib"/>
    <ref name="toclevel2.role.attrib"/>
    <ref name="local.toclevel2.attrib"/>
  </define>
  <!-- end of toclevel2.attlist -->
  <!-- end of toclevel2.module -->
  <define name="local.toclevel3.attrib">
    <empty/>
  </define>
  <define name="toclevel3.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="toclevel3">
    <element name="toclevel3">
      <ref name="toclevel3.attlist"/>
      <oneOrMore>
        <ref name="tocentry"/>
      </oneOrMore>
      <zeroOrMore>
        <ref name="toclevel4"/>
      </zeroOrMore>
    </element>
  </define>
  <!-- end of toclevel3.element -->
  <define name="toclevel3.attlist" combine="interleave">
    <ref name="common.attrib"/>
    <ref name="toclevel3.role.attrib"/>
    <ref name="local.toclevel3.attrib"/>
  </define>
  <!-- end of toclevel3.attlist -->
  <!-- end of toclevel3.module -->
  <define name="local.toclevel4.attrib">
    <empty/>
  </define>
  <define name="toclevel4.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="toclevel4">
    <element name="toclevel4">
      <ref name="toclevel4.attlist"/>
      <oneOrMore>
        <ref name="tocentry"/>
      </oneOrMore>
      <zeroOrMore>
        <ref name="toclevel5"/>
      </zeroOrMore>
    </element>
  </define>
  <!-- end of toclevel4.element -->
  <define name="toclevel4.attlist" combine="interleave">
    <ref name="common.attrib"/>
    <ref name="toclevel4.role.attrib"/>
    <ref name="local.toclevel4.attrib"/>
  </define>
  <!-- end of toclevel4.attlist -->
  <!-- end of toclevel4.module -->
  <define name="local.toclevel5.attrib">
    <empty/>
  </define>
  <define name="toclevel5.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="toclevel5">
    <element name="toclevel5">
      <ref name="toclevel5.attlist"/>
      <oneOrMore>
        <ref name="tocentry"/>
      </oneOrMore>
    </element>
  </define>
  <!-- end of toclevel5.element -->
  <define name="toclevel5.attlist" combine="interleave">
    <ref name="common.attrib"/>
    <ref name="toclevel5.role.attrib"/>
    <ref name="local.toclevel5.attrib"/>
  </define>
  <!-- end of toclevel5.attlist -->
  <!-- end of toclevel5.module -->
  <define name="local.tocback.attrib">
    <empty/>
  </define>
  <define name="tocback.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="tocback">
    <element name="tocback">
      <ref name="tocback.attlist"/>
      <zeroOrMore>
        <ref name="para.char.mix"/>
      </zeroOrMore>
    </element>
  </define>
  <!-- end of tocback.element -->
  <!-- to element that this entry represents -->
  <define name="tocback.attlist" combine="interleave">
    <ref name="label.attrib"/>
    <ref name="linkend.attrib"/>
    <ref name="pagenum.attrib"/>
    <ref name="common.attrib"/>
    <ref name="tocback.role.attrib"/>
    <ref name="local.tocback.attrib"/>
  </define>
  <!-- end of tocback.attlist -->
  <!-- end of tocback.module -->
  <!-- end of toc.content.module -->
  <define name="local.lot.attrib">
    <empty/>
  </define>
  <define name="lot.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="lot">
    <element name="lot">
      <ref name="lot.attlist"/>
      <optional>
        <ref name="beginpage"/>
      </optional>
      <optional>
        <ref name="bookcomponent.title.content"/>
      </optional>
      <zeroOrMore>
        <ref name="lotentry"/>
      </zeroOrMore>
    </element>
  </define>
  <!-- end of lot.element -->
  <define name="lot.attlist" combine="interleave">
    <ref name="label.attrib"/>
    <ref name="common.attrib"/>
    <ref name="lot.role.attrib"/>
    <ref name="local.lot.attrib"/>
  </define>
  <!-- end of lot.attlist -->
  <!-- end of lot.module -->
  <define name="local.lotentry.attrib">
    <empty/>
  </define>
  <define name="lotentry.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="lotentry">
    <element name="lotentry">
      <ref name="lotentry.attlist"/>
      <zeroOrMore>
        <ref name="para.char.mix"/>
      </zeroOrMore>
    </element>
  </define>
  <!-- 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 -->
  <define name="lotentry.attlist" combine="interleave">
    <ref name="linkend.attrib"/>
    <ref name="pagenum.attrib"/>
    <optional>
      <attribute name="srccredit"/>
    </optional>
    <ref name="common.attrib"/>
    <ref name="lotentry.role.attrib"/>
    <ref name="local.lotentry.attrib"/>
  </define>
  <!-- end of lotentry.attlist -->
  <!-- end of lotentry.module -->
  <!-- end of lot.content.module -->
  <!-- ...................................................................... -->
  <!-- Appendix, Chapter, Part, Preface, Reference, PartIntro ............... -->
  <define name="local.appendix.attrib">
    <empty/>
  </define>
  <define name="appendix.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="appendix">
    <element name="appendix">
      <ref name="appendix.attlist"/>
      <optional>
        <ref name="beginpage"/>
      </optional>
      <optional>
        <ref name="appendixinfo"/>
      </optional>
      <ref name="bookcomponent.title.content"/>
      <zeroOrMore>
        <ref name="nav.class"/>
      </zeroOrMore>
      <optional>
        <ref name="tocchap"/>
      </optional>
      <ref name="bookcomponent.content"/>
      <zeroOrMore>
        <ref name="nav.class"/>
      </zeroOrMore>
    </element>
  </define>
  <!-- end of appendix.element -->
  <define name="appendix.attlist" combine="interleave">
    <ref name="label.attrib"/>
    <ref name="status.attrib"/>
    <ref name="common.attrib"/>
    <ref name="appendix.role.attrib"/>
    <ref name="local.appendix.attrib"/>
  </define>
  <!-- end of appendix.attlist -->
  <!-- end of appendix.module -->
  <define name="local.chapter.attrib">
    <empty/>
  </define>
  <define name="chapter.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="chapter">
    <element name="chapter">
      <ref name="chapter.attlist"/>
      <optional>
        <ref name="beginpage"/>
      </optional>
      <optional>
        <ref name="chapterinfo"/>
      </optional>
      <ref name="bookcomponent.title.content"/>
      <zeroOrMore>
        <ref name="nav.class"/>
      </zeroOrMore>
      <optional>
        <ref name="tocchap"/>
      </optional>
      <ref name="bookcomponent.content"/>
      <zeroOrMore>
        <ref name="nav.class"/>
      </zeroOrMore>
    </element>
  </define>
  <!-- end of chapter.element -->
  <define name="chapter.attlist" combine="interleave">
    <ref name="label.attrib"/>
    <ref name="status.attrib"/>
    <ref name="common.attrib"/>
    <ref name="chapter.role.attrib"/>
    <ref name="local.chapter.attrib"/>
  </define>
  <!-- end of chapter.attlist -->
  <!-- end of chapter.module -->
  <!--
    Note that Part was to have its content model reduced in V4.2.  This
    change will not be made after all.
  -->
  <define name="local.part.attrib">
    <empty/>
  </define>
  <define name="part.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="part">
    <element name="part">
      <ref name="part.attlist"/>
      <optional>
        <ref name="beginpage"/>
      </optional>
      <optional>
        <ref name="partinfo"/>
      </optional>
      <ref name="bookcomponent.title.content"/>
      <optional>
        <ref name="partintro"/>
      </optional>
      <oneOrMore>
        <ref name="partcontent.mix"/>
      </oneOrMore>
    </element>
  </define>
  <!-- end of part.element -->
  <define name="part.attlist" combine="interleave">
    <ref name="label.attrib"/>
    <ref name="status.attrib"/>
    <ref name="common.attrib"/>
    <ref name="part.role.attrib"/>
    <ref name="local.part.attrib"/>
  </define>
  <!-- end of part.attlist -->
  <!-- ELEMENT PartIntro (defined below) -->
  <!-- end of part.module -->
  <define name="local.preface.attrib">
    <empty/>
  </define>
  <define name="preface.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="preface">
    <element name="preface">
      <ref name="preface.attlist"/>
      <optional>
        <ref name="beginpage"/>
      </optional>
      <optional>
        <ref name="prefaceinfo"/>
      </optional>
      <ref name="bookcomponent.title.content"/>
      <zeroOrMore>
        <ref name="nav.class"/>
      </zeroOrMore>
      <optional>
        <ref name="tocchap"/>
      </optional>
      <ref name="bookcomponent.content"/>
      <zeroOrMore>
        <ref name="nav.class"/>
      </zeroOrMore>
    </element>
  </define>
  <!-- end of preface.element -->
  <define name="preface.attlist" combine="interleave">
    <ref name="status.attrib"/>
    <ref name="common.attrib"/>
    <ref name="preface.role.attrib"/>
    <ref name="local.preface.attrib"/>
  </define>
  <!-- end of preface.attlist -->
  <!-- end of preface.module -->
  <define name="local.reference.attrib">
    <empty/>
  </define>
  <define name="reference.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="reference">
    <element name="reference">
      <ref name="reference.attlist"/>
      <optional>
        <ref name="beginpage"/>
      </optional>
      <optional>
        <ref name="referenceinfo"/>
      </optional>
      <ref name="bookcomponent.title.content"/>
      <optional>
        <ref name="partintro"/>
      </optional>
      <oneOrMore>
        <ref name="refentry.class"/>
      </oneOrMore>
    </element>
  </define>
  <!-- end of reference.element -->
  <define name="reference.attlist" combine="interleave">
    <ref name="label.attrib"/>
    <ref name="status.attrib"/>
    <ref name="common.attrib"/>
    <ref name="reference.role.attrib"/>
    <ref name="local.reference.attrib"/>
  </define>
  <!-- end of reference.attlist -->
  <!-- ELEMENT PartIntro (defined below) -->
  <!-- end of reference.module -->
  <define name="local.partintro.attrib">
    <empty/>
  </define>
  <define name="partintro.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="partintro">
    <element name="partintro">
      <ref name="partintro.attlist"/>
      <optional>
        <ref name="div.title.content"/>
      </optional>
      <ref name="bookcomponent.content"/>
    </element>
  </define>
  <!-- end of partintro.element -->
  <define name="partintro.attlist" combine="interleave">
    <ref name="label.attrib"/>
    <ref name="common.attrib"/>
    <ref name="partintro.role.attrib"/>
    <ref name="local.partintro.attrib"/>
  </define>
  <!-- end of partintro.attlist -->
  <!-- end of partintro.module -->
  <!-- ...................................................................... -->
  <!-- Other Info elements .................................................. -->
  <define name="local.appendixinfo.attrib">
    <empty/>
  </define>
  <define name="appendixinfo.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="appendixinfo">
    <element name="appendixinfo">
      <ref name="appendixinfo.attlist"/>
      <oneOrMore>
        <ref name="info.class"/>
      </oneOrMore>
    </element>
  </define>
  <!-- end of appendixinfo.element -->
  <define name="appendixinfo.attlist" combine="interleave">
    <ref name="common.attrib"/>
    <ref name="appendixinfo.role.attrib"/>
    <ref name="local.appendixinfo.attrib"/>
  </define>
  <!-- end of appendixinfo.attlist -->
  <!-- end of appendixinfo.module -->
  <define name="local.bibliographyinfo.attrib">
    <empty/>
  </define>
  <define name="bibliographyinfo.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="bibliographyinfo">
    <element name="bibliographyinfo">
      <ref name="bibliographyinfo.attlist"/>
      <oneOrMore>
        <ref name="info.class"/>
      </oneOrMore>
    </element>
  </define>
  <!-- end of bibliographyinfo.element -->
  <define name="bibliographyinfo.attlist" combine="interleave">
    <ref name="common.attrib"/>
    <ref name="bibliographyinfo.role.attrib"/>
    <ref name="local.bibliographyinfo.attrib"/>
  </define>
  <!-- end of bibliographyinfo.attlist -->
  <!-- end of bibliographyinfo.module -->
  <define name="local.chapterinfo.attrib">
    <empty/>
  </define>
  <define name="chapterinfo.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="chapterinfo">
    <element name="chapterinfo">
      <ref name="chapterinfo.attlist"/>
      <oneOrMore>
        <ref name="info.class"/>
      </oneOrMore>
    </element>
  </define>
  <!-- end of chapterinfo.element -->
  <define name="chapterinfo.attlist" combine="interleave">
    <ref name="common.attrib"/>
    <ref name="chapterinfo.role.attrib"/>
    <ref name="local.chapterinfo.attrib"/>
  </define>
  <!-- end of chapterinfo.attlist -->
  <!-- end of chapterinfo.module -->
  <define name="local.glossaryinfo.attrib">
    <empty/>
  </define>
  <define name="glossaryinfo.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="glossaryinfo">
    <element name="glossaryinfo">
      <ref name="glossaryinfo.attlist"/>
      <oneOrMore>
        <ref name="info.class"/>
      </oneOrMore>
    </element>
  </define>
  <!-- end of glossaryinfo.element -->
  <define name="glossaryinfo.attlist" combine="interleave">
    <ref name="common.attrib"/>
    <ref name="glossaryinfo.role.attrib"/>
    <ref name="local.glossaryinfo.attrib"/>
  </define>
  <!-- end of glossaryinfo.attlist -->
  <!-- end of glossaryinfo.module -->
  <define name="local.indexinfo.attrib">
    <empty/>
  </define>
  <define name="indexinfo.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="indexinfo">
    <element name="indexinfo">
      <ref name="indexinfo.attlist"/>
      <oneOrMore>
        <ref name="info.class"/>
      </oneOrMore>
    </element>
  </define>
  <!-- end of indexinfo.element -->
  <define name="indexinfo.attlist" combine="interleave">
    <ref name="common.attrib"/>
    <ref name="indexinfo.role.attrib"/>
    <ref name="local.indexinfo.attrib"/>
  </define>
  <!-- end of indexinfo.attlist -->
  <!-- end of indexinfo.module -->
  <define name="local.setindexinfo.attrib">
    <empty/>
  </define>
  <define name="setindexinfo.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="setindexinfo">
    <element name="setindexinfo">
      <ref name="setindexinfo.attlist"/>
      <oneOrMore>
        <ref name="info.class"/>
      </oneOrMore>
    </element>
  </define>
  <!-- end of setindexinfo.element -->
  <define name="setindexinfo.attlist" combine="interleave">
    <ref name="common.attrib"/>
    <ref name="setindexinfo.role.attrib"/>
    <ref name="local.setindexinfo.attrib"/>
  </define>
  <!-- end of setindexinfo.attlist -->
  <!-- end of setindexinfo.module -->
  <define name="local.partinfo.attrib">
    <empty/>
  </define>
  <define name="partinfo.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="partinfo">
    <element name="partinfo">
      <ref name="partinfo.attlist"/>
      <oneOrMore>
        <ref name="info.class"/>
      </oneOrMore>
    </element>
  </define>
  <!-- end of partinfo.element -->
  <define name="partinfo.attlist" combine="interleave">
    <ref name="common.attrib"/>
    <ref name="partinfo.role.attrib"/>
    <ref name="local.partinfo.attrib"/>
  </define>
  <!-- end of partinfo.attlist -->
  <!-- end of partinfo.module -->
  <define name="local.prefaceinfo.attrib">
    <empty/>
  </define>
  <define name="prefaceinfo.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="prefaceinfo">
    <element name="prefaceinfo">
      <ref name="prefaceinfo.attlist"/>
      <oneOrMore>
        <ref name="info.class"/>
      </oneOrMore>
    </element>
  </define>
  <!-- end of prefaceinfo.element -->
  <define name="prefaceinfo.attlist" combine="interleave">
    <ref name="common.attrib"/>
    <ref name="prefaceinfo.role.attrib"/>
    <ref name="local.prefaceinfo.attrib"/>
  </define>
  <!-- end of prefaceinfo.attlist -->
  <!-- end of prefaceinfo.module -->
  <define name="local.refentryinfo.attrib">
    <empty/>
  </define>
  <define name="refentryinfo.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="refentryinfo">
    <element name="refentryinfo">
      <ref name="refentryinfo.attlist"/>
      <oneOrMore>
        <ref name="info.class"/>
      </oneOrMore>
    </element>
  </define>
  <!-- end of refentryinfo.element -->
  <define name="refentryinfo.attlist" combine="interleave">
    <ref name="common.attrib"/>
    <ref name="refentryinfo.role.attrib"/>
    <ref name="local.refentryinfo.attrib"/>
  </define>
  <!-- end of refentryinfo.attlist -->
  <!-- end of refentryinfo.module -->
  <define name="local.refsectioninfo.attrib">
    <empty/>
  </define>
  <define name="refsectioninfo.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="refsectioninfo">
    <element name="refsectioninfo">
      <ref name="refsectioninfo.attlist"/>
      <oneOrMore>
        <ref name="info.class"/>
      </oneOrMore>
    </element>
  </define>
  <!-- end of refsectioninfo.element -->
  <define name="refsectioninfo.attlist" combine="interleave">
    <ref name="common.attrib"/>
    <ref name="refsectioninfo.role.attrib"/>
    <ref name="local.refsectioninfo.attrib"/>
  </define>
  <!-- end of refsectioninfo.attlist -->
  <!-- end of refsectioninfo.module -->
  <define name="local.refsect1info.attrib">
    <empty/>
  </define>
  <define name="refsect1info.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="refsect1info">
    <element name="refsect1info">
      <ref name="refsect1info.attlist"/>
      <oneOrMore>
        <ref name="info.class"/>
      </oneOrMore>
    </element>
  </define>
  <!-- end of refsect1info.element -->
  <define name="refsect1info.attlist" combine="interleave">
    <ref name="common.attrib"/>
    <ref name="refsect1info.role.attrib"/>
    <ref name="local.refsect1info.attrib"/>
  </define>
  <!-- end of refsect1info.attlist -->
  <!-- end of refsect1info.module -->
  <define name="local.refsect2info.attrib">
    <empty/>
  </define>
  <define name="refsect2info.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="refsect2info">
    <element name="refsect2info">
      <ref name="refsect2info.attlist"/>
      <oneOrMore>
        <ref name="info.class"/>
      </oneOrMore>
    </element>
  </define>
  <!-- end of refsect2info.element -->
  <define name="refsect2info.attlist" combine="interleave">
    <ref name="common.attrib"/>
    <ref name="refsect2info.role.attrib"/>
    <ref name="local.refsect2info.attrib"/>
  </define>
  <!-- end of refsect2info.attlist -->
  <!-- end of refsect2info.module -->
  <define name="local.refsect3info.attrib">
    <empty/>
  </define>
  <define name="refsect3info.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="refsect3info">
    <element name="refsect3info">
      <ref name="refsect3info.attlist"/>
      <oneOrMore>
        <ref name="info.class"/>
      </oneOrMore>
    </element>
  </define>
  <!-- end of refsect3info.element -->
  <define name="refsect3info.attlist" combine="interleave">
    <ref name="common.attrib"/>
    <ref name="refsect3info.role.attrib"/>
    <ref name="local.refsect3info.attrib"/>
  </define>
  <!-- end of refsect3info.attlist -->
  <!-- end of refsect3info.module -->
  <define name="local.refsynopsisdivinfo.attrib">
    <empty/>
  </define>
  <define name="refsynopsisdivinfo.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="refsynopsisdivinfo">
    <element name="refsynopsisdivinfo">
      <ref name="refsynopsisdivinfo.attlist"/>
      <oneOrMore>
        <ref name="info.class"/>
      </oneOrMore>
    </element>
  </define>
  <!-- end of refsynopsisdivinfo.element -->
  <define name="refsynopsisdivinfo.attlist" combine="interleave">
    <ref name="common.attrib"/>
    <ref name="refsynopsisdivinfo.role.attrib"/>
    <ref name="local.refsynopsisdivinfo.attrib"/>
  </define>
  <!-- end of refsynopsisdivinfo.attlist -->
  <!-- end of refsynopsisdivinfo.module -->
  <define name="local.referenceinfo.attrib">
    <empty/>
  </define>
  <define name="referenceinfo.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="referenceinfo">
    <element name="referenceinfo">
      <ref name="referenceinfo.attlist"/>
      <oneOrMore>
        <ref name="info.class"/>
      </oneOrMore>
    </element>
  </define>
  <!-- end of referenceinfo.element -->
  <define name="referenceinfo.attlist" combine="interleave">
    <ref name="common.attrib"/>
    <ref name="referenceinfo.role.attrib"/>
    <ref name="local.referenceinfo.attrib"/>
  </define>
  <!-- end of referenceinfo.attlist -->
  <!-- end of referenceinfo.module -->
  <define name="local.sect1info.attrib">
    <empty/>
  </define>
  <define name="sect1info.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="sect1info">
    <element name="sect1info">
      <ref name="sect1info.attlist"/>
      <oneOrMore>
        <ref name="info.class"/>
      </oneOrMore>
    </element>
  </define>
  <!-- end of sect1info.element -->
  <define name="sect1info.attlist" combine="interleave">
    <ref name="common.attrib"/>
    <ref name="sect1info.role.attrib"/>
    <ref name="local.sect1info.attrib"/>
  </define>
  <!-- end of sect1info.attlist -->
  <define name="local.sect2info.attrib">
    <empty/>
  </define>
  <define name="sect2info.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="sect2info">
    <element name="sect2info">
      <ref name="sect2info.attlist"/>
      <oneOrMore>
        <ref name="info.class"/>
      </oneOrMore>
    </element>
  </define>
  <!-- end of sect2info.element -->
  <define name="sect2info.attlist" combine="interleave">
    <ref name="common.attrib"/>
    <ref name="sect2info.role.attrib"/>
    <ref name="local.sect2info.attrib"/>
  </define>
  <!-- end of sect2info.attlist -->
  <define name="local.sect3info.attrib">
    <empty/>
  </define>
  <define name="sect3info.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="sect3info">
    <element name="sect3info">
      <ref name="sect3info.attlist"/>
      <oneOrMore>
        <ref name="info.class"/>
      </oneOrMore>
    </element>
  </define>
  <!-- end of sect3info.element -->
  <define name="sect3info.attlist" combine="interleave">
    <ref name="common.attrib"/>
    <ref name="sect3info.role.attrib"/>
    <ref name="local.sect3info.attrib"/>
  </define>
  <!-- end of sect3info.attlist -->
  <define name="local.sect4info.attrib">
    <empty/>
  </define>
  <define name="sect4info.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="sect4info">
    <element name="sect4info">
      <ref name="sect4info.attlist"/>
      <oneOrMore>
        <ref name="info.class"/>
      </oneOrMore>
    </element>
  </define>
  <!-- end of sect4info.element -->
  <define name="sect4info.attlist" combine="interleave">
    <ref name="common.attrib"/>
    <ref name="sect4info.role.attrib"/>
    <ref name="local.sect4info.attrib"/>
  </define>
  <!-- end of sect4info.attlist -->
  <define name="local.sect5info.attrib">
    <empty/>
  </define>
  <define name="sect5info.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="sect5info">
    <element name="sect5info">
      <ref name="sect5info.attlist"/>
      <oneOrMore>
        <ref name="info.class"/>
      </oneOrMore>
    </element>
  </define>
  <!-- end of sect5info.element -->
  <define name="sect5info.attlist" combine="interleave">
    <ref name="common.attrib"/>
    <ref name="sect5info.role.attrib"/>
    <ref name="local.sect5info.attrib"/>
  </define>
  <!-- end of sect5info.attlist -->
  <!-- ...................................................................... -->
  <!-- Section (parallel to Sect*) ......................................... -->
  <define name="local.section.attrib">
    <empty/>
  </define>
  <define name="section.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="section">
    <element name="section">
      <ref name="section.attlist"/>
      <optional>
        <ref name="sectioninfo"/>
      </optional>
      <ref name="sect.title.content"/>
      <zeroOrMore>
        <ref name="nav.class"/>
      </zeroOrMore>
      <choice>
        <group>
          <oneOrMore>
            <ref name="divcomponent.mix"/>
          </oneOrMore>
          <choice>
            <zeroOrMore>
              <ref name="refentry.class"/>
            </zeroOrMore>
            <zeroOrMore>
              <ref name="section.class"/>
            </zeroOrMore>
            <zeroOrMore>
              <ref name="simplesect"/>
            </zeroOrMore>
          </choice>
        </group>
        <oneOrMore>
          <ref name="refentry.class"/>
        </oneOrMore>
        <oneOrMore>
          <ref name="section.class"/>
        </oneOrMore>
        <oneOrMore>
          <ref name="simplesect"/>
        </oneOrMore>
      </choice>
      <zeroOrMore>
        <ref name="nav.class"/>
      </zeroOrMore>
    </element>
  </define>
  <!-- end of section.element -->
  <define name="section.attlist" combine="interleave">
    <ref name="label.attrib"/>
    <ref name="status.attrib"/>
    <ref name="common.attrib"/>
    <ref name="section.role.attrib"/>
    <ref name="local.section.attrib"/>
  </define>
  <!-- end of section.attlist -->
  <!-- end of section.module -->
  <define name="sectioninfo.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="local.sectioninfo.attrib">
    <empty/>
  </define>
  <define name="sectioninfo">
    <element name="sectioninfo">
      <ref name="sectioninfo.attlist"/>
      <oneOrMore>
        <ref name="info.class"/>
      </oneOrMore>
    </element>
  </define>
  <!-- end of sectioninfo.element -->
  <define name="sectioninfo.attlist" combine="interleave">
    <ref name="common.attrib"/>
    <ref name="sectioninfo.role.attrib"/>
    <ref name="local.sectioninfo.attrib"/>
  </define>
  <!-- end of sectioninfo.attlist -->
  <!-- end of sectioninfo.module -->
  <!-- end of section.content.module -->
  <!-- ...................................................................... -->
  <!-- Sect1, Sect2, Sect3, Sect4, Sect5 .................................... -->
  <define name="local.sect1.attrib">
    <empty/>
  </define>
  <define name="sect1.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="sect1">
    <element name="sect1">
      <ref name="sect1.attlist"/>
      <optional>
        <ref name="sect1info"/>
      </optional>
      <ref name="sect.title.content"/>
      <zeroOrMore>
        <ref name="nav.class"/>
      </zeroOrMore>
      <choice>
        <group>
          <oneOrMore>
            <ref name="divcomponent.mix"/>
          </oneOrMore>
          <choice>
            <zeroOrMore>
              <ref name="refentry.class"/>
            </zeroOrMore>
            <zeroOrMore>
              <ref name="sect2"/>
            </zeroOrMore>
            <zeroOrMore>
              <ref name="simplesect"/>
            </zeroOrMore>
          </choice>
        </group>
        <oneOrMore>
          <ref name="refentry.class"/>
        </oneOrMore>
        <oneOrMore>
          <ref name="sect2"/>
        </oneOrMore>
        <oneOrMore>
          <ref name="simplesect"/>
        </oneOrMore>
      </choice>
      <zeroOrMore>
        <ref name="nav.class"/>
      </zeroOrMore>
    </element>
  </define>
  <!-- end of sect1.element -->
  <!--
    Renderas: Indicates the format in which the heading should
    appear
  -->
  <define name="sect1.attlist" combine="interleave">
    <optional>
      <attribute name="renderas">
        <choice>
          <value>sect2</value>
          <value>sect3</value>
          <value>sect4</value>
          <value>sect5</value>
        </choice>
      </attribute>
    </optional>
    <ref name="label.attrib"/>
    <ref name="status.attrib"/>
    <ref name="common.attrib"/>
    <ref name="sect1.role.attrib"/>
    <ref name="local.sect1.attrib"/>
  </define>
  <!-- end of sect1.attlist -->
  <!-- end of sect1.module -->
  <define name="local.sect2.attrib">
    <empty/>
  </define>
  <define name="sect2.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="sect2">
    <element name="sect2">
      <ref name="sect2.attlist"/>
      <optional>
        <ref name="sect2info"/>
      </optional>
      <ref name="sect.title.content"/>
      <zeroOrMore>
        <ref name="nav.class"/>
      </zeroOrMore>
      <choice>
        <group>
          <oneOrMore>
            <ref name="divcomponent.mix"/>
          </oneOrMore>
          <choice>
            <zeroOrMore>
              <ref name="refentry.class"/>
            </zeroOrMore>
            <zeroOrMore>
              <ref name="sect3"/>
            </zeroOrMore>
            <zeroOrMore>
              <ref name="simplesect"/>
            </zeroOrMore>
          </choice>
        </group>
        <oneOrMore>
          <ref name="refentry.class"/>
        </oneOrMore>
        <oneOrMore>
          <ref name="sect3"/>
        </oneOrMore>
        <oneOrMore>
          <ref name="simplesect"/>
        </oneOrMore>
      </choice>
      <zeroOrMore>
        <ref name="nav.class"/>
      </zeroOrMore>
    </element>
  </define>
  <!-- end of sect2.element -->
  <!--
    Renderas: Indicates the format in which the heading should
    appear
  -->
  <define name="sect2.attlist" combine="interleave">
    <optional>
      <attribute name="renderas">
        <choice>
          <value>sect1</value>
          <value>sect3</value>
          <value>sect4</value>
          <value>sect5</value>
        </choice>
      </attribute>
    </optional>
    <ref name="label.attrib"/>
    <ref name="status.attrib"/>
    <ref name="common.attrib"/>
    <ref name="sect2.role.attrib"/>
    <ref name="local.sect2.attrib"/>
  </define>
  <!-- end of sect2.attlist -->
  <!-- end of sect2.module -->
  <define name="local.sect3.attrib">
    <empty/>
  </define>
  <define name="sect3.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="sect3">
    <element name="sect3">
      <ref name="sect3.attlist"/>
      <optional>
        <ref name="sect3info"/>
      </optional>
      <ref name="sect.title.content"/>
      <zeroOrMore>
        <ref name="nav.class"/>
      </zeroOrMore>
      <choice>
        <group>
          <oneOrMore>
            <ref name="divcomponent.mix"/>
          </oneOrMore>
          <choice>
            <zeroOrMore>
              <ref name="refentry.class"/>
            </zeroOrMore>
            <zeroOrMore>
              <ref name="sect4"/>
            </zeroOrMore>
            <zeroOrMore>
              <ref name="simplesect"/>
            </zeroOrMore>
          </choice>
        </group>
        <oneOrMore>
          <ref name="refentry.class"/>
        </oneOrMore>
        <oneOrMore>
          <ref name="sect4"/>
        </oneOrMore>
        <oneOrMore>
          <ref name="simplesect"/>
        </oneOrMore>
      </choice>
      <zeroOrMore>
        <ref name="nav.class"/>
      </zeroOrMore>
    </element>
  </define>
  <!-- end of sect3.element -->
  <!--
    Renderas: Indicates the format in which the heading should
    appear
  -->
  <define name="sect3.attlist" combine="interleave">
    <optional>
      <attribute name="renderas">
        <choice>
          <value>sect1</value>
          <value>sect2</value>
          <value>sect4</value>
          <value>sect5</value>
        </choice>
      </attribute>
    </optional>
    <ref name="label.attrib"/>
    <ref name="status.attrib"/>
    <ref name="common.attrib"/>
    <ref name="sect3.role.attrib"/>
    <ref name="local.sect3.attrib"/>
  </define>
  <!-- end of sect3.attlist -->
  <!-- end of sect3.module -->
  <define name="local.sect4.attrib">
    <empty/>
  </define>
  <define name="sect4.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="sect4">
    <element name="sect4">
      <ref name="sect4.attlist"/>
      <optional>
        <ref name="sect4info"/>
      </optional>
      <ref name="sect.title.content"/>
      <zeroOrMore>
        <ref name="nav.class"/>
      </zeroOrMore>
      <choice>
        <group>
          <oneOrMore>
            <ref name="divcomponent.mix"/>
          </oneOrMore>
          <choice>
            <zeroOrMore>
              <ref name="refentry.class"/>
            </zeroOrMore>
            <zeroOrMore>
              <ref name="sect5"/>
            </zeroOrMore>
            <zeroOrMore>
              <ref name="simplesect"/>
            </zeroOrMore>
          </choice>
        </group>
        <oneOrMore>
          <ref name="refentry.class"/>
        </oneOrMore>
        <oneOrMore>
          <ref name="sect5"/>
        </oneOrMore>
        <oneOrMore>
          <ref name="simplesect"/>
        </oneOrMore>
      </choice>
      <zeroOrMore>
        <ref name="nav.class"/>
      </zeroOrMore>
    </element>
  </define>
  <!-- end of sect4.element -->
  <!--
    Renderas: Indicates the format in which the heading should
    appear
  -->
  <define name="sect4.attlist" combine="interleave">
    <optional>
      <attribute name="renderas">
        <choice>
          <value>sect1</value>
          <value>sect2</value>
          <value>sect3</value>
          <value>sect5</value>
        </choice>
      </attribute>
    </optional>
    <ref name="label.attrib"/>
    <ref name="status.attrib"/>
    <ref name="common.attrib"/>
    <ref name="sect4.role.attrib"/>
    <ref name="local.sect4.attrib"/>
  </define>
  <!-- end of sect4.attlist -->
  <!-- end of sect4.module -->
  <define name="local.sect5.attrib">
    <empty/>
  </define>
  <define name="sect5.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="sect5">
    <element name="sect5">
      <ref name="sect5.attlist"/>
      <optional>
        <ref name="sect5info"/>
      </optional>
      <ref name="sect.title.content"/>
      <zeroOrMore>
        <ref name="nav.class"/>
      </zeroOrMore>
      <choice>
        <group>
          <oneOrMore>
            <ref name="divcomponent.mix"/>
          </oneOrMore>
          <choice>
            <zeroOrMore>
              <ref name="refentry.class"/>
            </zeroOrMore>
            <zeroOrMore>
              <ref name="simplesect"/>
            </zeroOrMore>
          </choice>
        </group>
        <oneOrMore>
          <ref name="refentry.class"/>
        </oneOrMore>
        <oneOrMore>
          <ref name="simplesect"/>
        </oneOrMore>
      </choice>
      <zeroOrMore>
        <ref name="nav.class"/>
      </zeroOrMore>
    </element>
  </define>
  <!-- end of sect5.element -->
  <!--
    Renderas: Indicates the format in which the heading should
    appear
  -->
  <define name="sect5.attlist" combine="interleave">
    <optional>
      <attribute name="renderas">
        <choice>
          <value>sect1</value>
          <value>sect2</value>
          <value>sect3</value>
          <value>sect4</value>
        </choice>
      </attribute>
    </optional>
    <ref name="label.attrib"/>
    <ref name="status.attrib"/>
    <ref name="common.attrib"/>
    <ref name="sect5.role.attrib"/>
    <ref name="local.sect5.attrib"/>
  </define>
  <!-- end of sect5.attlist -->
  <!-- end of sect5.module -->
  <define name="local.simplesect.attrib">
    <empty/>
  </define>
  <define name="simplesect.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="simplesect">
    <element name="simplesect">
      <ref name="simplesect.attlist"/>
      <ref name="sect.title.content"/>
      <oneOrMore>
        <ref name="divcomponent.mix"/>
      </oneOrMore>
    </element>
  </define>
  <!-- end of simplesect.element -->
  <define name="simplesect.attlist" combine="interleave">
    <ref name="common.attrib"/>
    <ref name="simplesect.role.attrib"/>
    <ref name="local.simplesect.attrib"/>
  </define>
  <!-- end of simplesect.attlist -->
  <!-- end of simplesect.module -->
  <!-- ...................................................................... -->
  <!-- Bibliography ......................................................... -->
  <define name="local.bibliography.attrib">
    <empty/>
  </define>
  <define name="bibliography.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="bibliography">
    <element name="bibliography">
      <ref name="bibliography.attlist"/>
      <optional>
        <ref name="bibliographyinfo"/>
      </optional>
      <optional>
        <ref name="bookcomponent.title.content"/>
      </optional>
      <zeroOrMore>
        <ref name="component.mix"/>
      </zeroOrMore>
      <choice>
        <oneOrMore>
          <ref name="bibliodiv"/>
        </oneOrMore>
        <oneOrMore>
          <choice>
            <ref name="biblioentry"/>
            <ref name="bibliomixed"/>
          </choice>
        </oneOrMore>
      </choice>
    </element>
  </define>
  <!-- end of bibliography.element -->
  <define name="bibliography.attlist" combine="interleave">
    <ref name="status.attrib"/>
    <ref name="common.attrib"/>
    <ref name="bibliography.role.attrib"/>
    <ref name="local.bibliography.attrib"/>
  </define>
  <!-- end of bibliography.attlist -->
  <!-- end of bibliography.module -->
  <define name="local.bibliodiv.attrib">
    <empty/>
  </define>
  <define name="bibliodiv.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="bibliodiv">
    <element name="bibliodiv">
      <ref name="bibliodiv.attlist"/>
      <optional>
        <ref name="sect.title.content"/>
      </optional>
      <zeroOrMore>
        <ref name="component.mix"/>
      </zeroOrMore>
      <oneOrMore>
        <choice>
          <ref name="biblioentry"/>
          <ref name="bibliomixed"/>
        </choice>
      </oneOrMore>
    </element>
  </define>
  <!-- end of bibliodiv.element -->
  <define name="bibliodiv.attlist" combine="interleave">
    <ref name="status.attrib"/>
    <ref name="common.attrib"/>
    <ref name="bibliodiv.role.attrib"/>
    <ref name="local.bibliodiv.attrib"/>
  </define>
  <!-- end of bibliodiv.attlist -->
  <!-- end of bibliodiv.module -->
  <!-- end of bibliography.content.module -->
  <!-- ...................................................................... -->
  <!-- Glossary ............................................................. -->
  <define name="local.glossary.attrib">
    <empty/>
  </define>
  <define name="glossary.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="glossary">
    <element name="glossary">
      <ref name="glossary.attlist"/>
      <optional>
        <ref name="glossaryinfo"/>
      </optional>
      <optional>
        <ref name="bookcomponent.title.content"/>
      </optional>
      <zeroOrMore>
        <ref name="component.mix"/>
      </zeroOrMore>
      <choice>
        <oneOrMore>
          <ref name="glossdiv"/>
        </oneOrMore>
        <oneOrMore>
          <ref name="glossentry"/>
        </oneOrMore>
      </choice>
      <optional>
        <ref name="bibliography"/>
      </optional>
    </element>
  </define>
  <!-- end of glossary.element -->
  <define name="glossary.attlist" combine="interleave">
    <ref name="status.attrib"/>
    <ref name="common.attrib"/>
    <ref name="glossary.role.attrib"/>
    <ref name="local.glossary.attrib"/>
  </define>
  <!-- end of glossary.attlist -->
  <!-- end of glossary.module -->
  <define name="local.glossdiv.attrib">
    <empty/>
  </define>
  <define name="glossdiv.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="glossdiv">
    <element name="glossdiv">
      <ref name="glossdiv.attlist"/>
      <ref name="sect.title.content"/>
      <zeroOrMore>
        <ref name="component.mix"/>
      </zeroOrMore>
      <oneOrMore>
        <ref name="glossentry"/>
      </oneOrMore>
    </element>
  </define>
  <!-- end of glossdiv.element -->
  <define name="glossdiv.attlist" combine="interleave">
    <ref name="status.attrib"/>
    <ref name="common.attrib"/>
    <ref name="glossdiv.role.attrib"/>
    <ref name="local.glossdiv.attrib"/>
  </define>
  <!-- end of glossdiv.attlist -->
  <!-- end of glossdiv.module -->
  <!-- end of glossary.content.module -->
  <!-- ...................................................................... -->
  <!-- Index and SetIndex ................................................... -->
  <define name="local.indexes.attrib">
    <empty/>
  </define>
  <define name="indexes.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="index">
    <element name="index">
      <ref name="index.attlist"/>
      <optional>
        <ref name="indexinfo"/>
      </optional>
      <optional>
        <ref name="bookcomponent.title.content"/>
      </optional>
      <zeroOrMore>
        <ref name="component.mix"/>
      </zeroOrMore>
      <choice>
        <zeroOrMore>
          <ref name="indexdiv"/>
        </zeroOrMore>
        <zeroOrMore>
          <ref name="indexentry"/>
        </zeroOrMore>
      </choice>
    </element>
  </define>
  <!-- end of index.element -->
  <define name="index.attlist" combine="interleave">
    <ref name="common.attrib"/>
    <ref name="indexes.role.attrib"/>
    <ref name="local.indexes.attrib"/>
  </define>
  <!-- end of index.attlist -->
  <define name="setindex">
    <element name="setindex">
      <ref name="setindex.attlist"/>
      <optional>
        <ref name="setindexinfo"/>
      </optional>
      <optional>
        <ref name="bookcomponent.title.content"/>
      </optional>
      <zeroOrMore>
        <ref name="component.mix"/>
      </zeroOrMore>
      <choice>
        <zeroOrMore>
          <ref name="indexdiv"/>
        </zeroOrMore>
        <zeroOrMore>
          <ref name="indexentry"/>
        </zeroOrMore>
      </choice>
    </element>
  </define>
  <!-- end of setindex.element -->
  <define name="setindex.attlist" combine="interleave">
    <ref name="common.attrib"/>
    <ref name="indexes.role.attrib"/>
    <ref name="local.indexes.attrib"/>
  </define>
  <!-- end of setindex.attlist -->
  <!-- end of indexes.module -->
  <!--
    SegmentedList in this content is useful for marking up permuted
    indices.
  -->
  <define name="local.indexdiv.attrib">
    <empty/>
  </define>
  <define name="indexdiv.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="indexdiv">
    <element name="indexdiv">
      <ref name="indexdiv.attlist"/>
      <optional>
        <ref name="sect.title.content"/>
      </optional>
      <group>
        <zeroOrMore>
          <ref name="indexdivcomponent.mix"/>
        </zeroOrMore>
        <choice>
          <oneOrMore>
            <ref name="indexentry"/>
          </oneOrMore>
          <ref name="segmentedlist"/>
        </choice>
      </group>
    </element>
  </define>
  <!-- end of indexdiv.element -->
  <define name="indexdiv.attlist" combine="interleave">
    <ref name="common.attrib"/>
    <ref name="indexdiv.role.attrib"/>
    <ref name="local.indexdiv.attrib"/>
  </define>
  <!-- end of indexdiv.attlist -->
  <!-- end of indexdiv.module -->
  <!-- Index entries appear in the index, not the text. -->
  <define name="local.indexentry.attrib">
    <empty/>
  </define>
  <define name="indexentry.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="indexentry">
    <element name="indexentry">
      <ref name="indexentry.attlist"/>
      <ref name="primaryie"/>
      <zeroOrMore>
        <choice>
          <ref name="seeie"/>
          <ref name="seealsoie"/>
        </choice>
      </zeroOrMore>
      <zeroOrMore>
        <ref name="secondaryie"/>
        <zeroOrMore>
          <choice>
            <ref name="seeie"/>
            <ref name="seealsoie"/>
            <ref name="tertiaryie"/>
          </choice>
        </zeroOrMore>
      </zeroOrMore>
    </element>
  </define>
  <!-- end of indexentry.element -->
  <define name="indexentry.attlist" combine="interleave">
    <ref name="common.attrib"/>
    <ref name="indexentry.role.attrib"/>
    <ref name="local.indexentry.attrib"/>
  </define>
  <!-- end of indexentry.attlist -->
  <!-- end of indexentry.module -->
  <define name="local.primsecterie.attrib">
    <empty/>
  </define>
  <define name="primsecterie.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="primaryie">
    <element name="primaryie">
      <ref name="primaryie.attlist"/>
      <zeroOrMore>
        <ref name="ndxterm.char.mix"/>
      </zeroOrMore>
    </element>
  </define>
  <!-- end of primaryie.element -->
  <!-- to IndexTerms that these entries represent -->
  <define name="primaryie.attlist" combine="interleave">
    <ref name="linkends.attrib"/>
    <ref name="common.attrib"/>
    <ref name="primsecterie.role.attrib"/>
    <ref name="local.primsecterie.attrib"/>
  </define>
  <!-- end of primaryie.attlist -->
  <define name="secondaryie">
    <element name="secondaryie">
      <ref name="secondaryie.attlist"/>
      <zeroOrMore>
        <ref name="ndxterm.char.mix"/>
      </zeroOrMore>
    </element>
  </define>
  <!-- end of secondaryie.element -->
  <!-- to IndexTerms that these entries represent -->
  <define name="secondaryie.attlist" combine="interleave">
    <ref name="linkends.attrib"/>
    <ref name="common.attrib"/>
    <ref name="primsecterie.role.attrib"/>
    <ref name="local.primsecterie.attrib"/>
  </define>
  <!-- end of secondaryie.attlist -->
  <define name="tertiaryie">
    <element name="tertiaryie">
      <ref name="tertiaryie.attlist"/>
      <zeroOrMore>
        <ref name="ndxterm.char.mix"/>
      </zeroOrMore>
    </element>
  </define>
  <!-- end of tertiaryie.element -->
  <!-- to IndexTerms that these entries represent -->
  <define name="tertiaryie.attlist" combine="interleave">
    <ref name="linkends.attrib"/>
    <ref name="common.attrib"/>
    <ref name="primsecterie.role.attrib"/>
    <ref name="local.primsecterie.attrib"/>
  </define>
  <!-- end of tertiaryie.attlist -->
  <!-- end of primsecterie.module -->
  <define name="local.seeie.attrib">
    <empty/>
  </define>
  <define name="seeie.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="seeie">
    <element name="seeie">
      <ref name="seeie.attlist"/>
      <zeroOrMore>
        <ref name="ndxterm.char.mix"/>
      </zeroOrMore>
    </element>
  </define>
  <!-- end of seeie.element -->
  <!-- to IndexEntry to look up -->
  <define name="seeie.attlist" combine="interleave">
    <ref name="linkend.attrib"/>
    <ref name="common.attrib"/>
    <ref name="seeie.role.attrib"/>
    <ref name="local.seeie.attrib"/>
  </define>
  <!-- end of seeie.attlist -->
  <!-- end of seeie.module -->
  <define name="local.seealsoie.attrib">
    <empty/>
  </define>
  <define name="seealsoie.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="seealsoie">
    <element name="seealsoie">
      <ref name="seealsoie.attlist"/>
      <zeroOrMore>
        <ref name="ndxterm.char.mix"/>
      </zeroOrMore>
    </element>
  </define>
  <!-- end of seealsoie.element -->
  <!-- to related IndexEntries -->
  <define name="seealsoie.attlist" combine="interleave">
    <ref name="linkends.attrib"/>
    <ref name="common.attrib"/>
    <ref name="seealsoie.role.attrib"/>
    <ref name="local.seealsoie.attrib"/>
  </define>
  <!-- end of seealsoie.attlist -->
  <!-- end of seealsoie.module -->
  <!-- end of index.content.module -->
  <!-- ...................................................................... -->
  <!-- RefEntry ............................................................. -->
  <define name="local.refentry.attrib">
    <empty/>
  </define>
  <define name="refentry.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="refentry">
    <element name="refentry">
      <ref name="refentry.attlist"/>
      <optional>
        <ref name="beginpage"/>
      </optional>
      <zeroOrMore>
        <ref name="ndxterm.class"/>
      </zeroOrMore>
      <optional>
        <ref name="refentryinfo"/>
      </optional>
      <optional>
        <ref name="refmeta"/>
      </optional>
      <zeroOrMore>
        <choice>
          <ref name="remark"/>
          <ref name="link.char.class"/>
        </choice>
      </zeroOrMore>
      <ref name="refnamediv"/>
      <optional>
        <ref name="refsynopsisdiv"/>
      </optional>
      <choice>
        <oneOrMore>
          <ref name="refsect1"/>
        </oneOrMore>
        <oneOrMore>
          <ref name="refsection"/>
        </oneOrMore>
      </choice>
    </element>
  </define>
  <!-- end of refentry.element -->
  <define name="refentry.attlist" combine="interleave">
    <ref name="status.attrib"/>
    <ref name="common.attrib"/>
    <ref name="refentry.role.attrib"/>
    <ref name="local.refentry.attrib"/>
  </define>
  <!-- end of refentry.attlist -->
  <!-- end of refentry.module -->
  <define name="local.refmeta.attrib">
    <empty/>
  </define>
  <define name="refmeta.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="refmeta">
    <element name="refmeta">
      <ref name="refmeta.attlist"/>
      <zeroOrMore>
        <ref name="ndxterm.class"/>
      </zeroOrMore>
      <ref name="refentrytitle"/>
      <optional>
        <ref name="manvolnum"/>
      </optional>
      <zeroOrMore>
        <ref name="refmiscinfo"/>
      </zeroOrMore>
      <zeroOrMore>
        <ref name="ndxterm.class"/>
      </zeroOrMore>
    </element>
  </define>
  <!-- end of refmeta.element -->
  <define name="refmeta.attlist" combine="interleave">
    <ref name="common.attrib"/>
    <ref name="refmeta.role.attrib"/>
    <ref name="local.refmeta.attrib"/>
  </define>
  <!-- end of refmeta.attlist -->
  <!-- end of refmeta.module -->
  <define name="local.refmiscinfo.attrib">
    <empty/>
  </define>
  <define name="refmiscinfo.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="refmiscinfo">
    <element name="refmiscinfo">
      <ref name="refmiscinfo.attlist"/>
      <zeroOrMore>
        <ref name="docinfo.char.mix"/>
      </zeroOrMore>
    </element>
  </define>
  <!-- end of refmiscinfo.element -->
  <!-- Class: Freely assignable parameter; no default -->
  <define name="refmiscinfo.attlist" combine="interleave">
    <optional>
      <attribute name="class"/>
    </optional>
    <ref name="common.attrib"/>
    <ref name="refmiscinfo.role.attrib"/>
    <ref name="local.refmiscinfo.attrib"/>
  </define>
  <!-- end of refmiscinfo.attlist -->
  <!-- end of refmiscinfo.module -->
  <define name="local.refnamediv.attrib">
    <empty/>
  </define>
  <define name="refnamediv.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="refnamediv">
    <element name="refnamediv">
      <ref name="refnamediv.attlist"/>
      <optional>
        <ref name="refdescriptor"/>
      </optional>
      <oneOrMore>
        <ref name="refname"/>
      </oneOrMore>
      <ref name="refpurpose"/>
      <zeroOrMore>
        <ref name="refclass"/>
      </zeroOrMore>
      <zeroOrMore>
        <choice>
          <ref name="remark"/>
          <ref name="link.char.class"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <!-- end of refnamediv.element -->
  <define name="refnamediv.attlist" combine="interleave">
    <ref name="common.attrib"/>
    <ref name="refnamediv.role.attrib"/>
    <ref name="local.refnamediv.attrib"/>
  </define>
  <!-- end of refnamediv.attlist -->
  <!-- end of refnamediv.module -->
  <define name="local.refdescriptor.attrib">
    <empty/>
  </define>
  <define name="refdescriptor.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="refdescriptor">
    <element name="refdescriptor">
      <ref name="refdescriptor.attlist"/>
      <zeroOrMore>
        <ref name="refname.char.mix"/>
      </zeroOrMore>
    </element>
  </define>
  <!-- end of refdescriptor.element -->
  <define name="refdescriptor.attlist" combine="interleave">
    <ref name="common.attrib"/>
    <ref name="refdescriptor.role.attrib"/>
    <ref name="local.refdescriptor.attrib"/>
  </define>
  <!-- end of refdescriptor.attlist -->
  <!-- end of refdescriptor.module -->
  <define name="local.refname.attrib">
    <empty/>
  </define>
  <define name="refname.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="refname">
    <element name="refname">
      <ref name="refname.attlist"/>
      <zeroOrMore>
        <ref name="refname.char.mix"/>
      </zeroOrMore>
    </element>
  </define>
  <!-- end of refname.element -->
  <define name="refname.attlist" combine="interleave">
    <ref name="common.attrib"/>
    <ref name="refname.role.attrib"/>
    <ref name="local.refname.attrib"/>
  </define>
  <!-- end of refname.attlist -->
  <!-- end of refname.module -->
  <define name="local.refpurpose.attrib">
    <empty/>
  </define>
  <define name="refpurpose.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="refpurpose">
    <element name="refpurpose">
      <ref name="refpurpose.attlist"/>
      <zeroOrMore>
        <ref name="refinline.char.mix"/>
      </zeroOrMore>
    </element>
  </define>
  <!-- end of refpurpose.element -->
  <define name="refpurpose.attlist" combine="interleave">
    <ref name="common.attrib"/>
    <ref name="refpurpose.role.attrib"/>
    <ref name="local.refpurpose.attrib"/>
  </define>
  <!-- end of refpurpose.attlist -->
  <!-- end of refpurpose.module -->
  <define name="local.refclass.attrib">
    <empty/>
  </define>
  <define name="refclass.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="refclass">
    <element name="refclass">
      <ref name="refclass.attlist"/>
      <zeroOrMore>
        <ref name="refclass.char.mix"/>
      </zeroOrMore>
    </element>
  </define>
  <!-- end of refclass.element -->
  <define name="refclass.attlist" combine="interleave">
    <ref name="common.attrib"/>
    <ref name="refclass.role.attrib"/>
    <ref name="local.refclass.attrib"/>
  </define>
  <!-- end of refclass.attlist -->
  <!-- end of refclass.module -->
  <define name="local.refsynopsisdiv.attrib">
    <empty/>
  </define>
  <define name="refsynopsisdiv.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="refsynopsisdiv">
    <element name="refsynopsisdiv">
      <ref name="refsynopsisdiv.attlist"/>
      <optional>
        <ref name="refsynopsisdivinfo"/>
      </optional>
      <optional>
        <ref name="refsect.title.content"/>
      </optional>
      <choice>
        <group>
          <oneOrMore>
            <ref name="refcomponent.mix"/>
          </oneOrMore>
          <zeroOrMore>
            <ref name="refsect2"/>
          </zeroOrMore>
        </group>
        <oneOrMore>
          <ref name="refsect2"/>
        </oneOrMore>
      </choice>
    </element>
  </define>
  <!-- end of refsynopsisdiv.element -->
  <define name="refsynopsisdiv.attlist" combine="interleave">
    <ref name="common.attrib"/>
    <ref name="refsynopsisdiv.role.attrib"/>
    <ref name="local.refsynopsisdiv.attrib"/>
  </define>
  <!-- end of refsynopsisdiv.attlist -->
  <!-- end of refsynopsisdiv.module -->
  <define name="local.refsection.attrib">
    <empty/>
  </define>
  <define name="refsection.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="refsection">
    <element name="refsection">
      <ref name="refsection.attlist"/>
      <optional>
        <ref name="refsectioninfo"/>
      </optional>
      <ref name="refsect.title.content"/>
      <choice>
        <group>
          <oneOrMore>
            <ref name="refcomponent.mix"/>
          </oneOrMore>
          <zeroOrMore>
            <ref name="refsection"/>
          </zeroOrMore>
        </group>
        <oneOrMore>
          <ref name="refsection"/>
        </oneOrMore>
      </choice>
    </element>
  </define>
  <!-- end of refsection.element -->
  <define name="refsection.attlist" combine="interleave">
    <ref name="status.attrib"/>
    <ref name="common.attrib"/>
    <ref name="refsection.role.attrib"/>
    <ref name="local.refsection.attrib"/>
  </define>
  <!-- end of refsection.attlist -->
  <!-- end of refsection.module -->
  <define name="local.refsect1.attrib">
    <empty/>
  </define>
  <define name="refsect1.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="refsect1">
    <element name="refsect1">
      <ref name="refsect1.attlist"/>
      <optional>
        <ref name="refsect1info"/>
      </optional>
      <ref name="refsect.title.content"/>
      <choice>
        <group>
          <oneOrMore>
            <ref name="refcomponent.mix"/>
          </oneOrMore>
          <zeroOrMore>
            <ref name="refsect2"/>
          </zeroOrMore>
        </group>
        <oneOrMore>
          <ref name="refsect2"/>
        </oneOrMore>
      </choice>
    </element>
  </define>
  <!-- end of refsect1.element -->
  <define name="refsect1.attlist" combine="interleave">
    <ref name="status.attrib"/>
    <ref name="common.attrib"/>
    <ref name="refsect1.role.attrib"/>
    <ref name="local.refsect1.attrib"/>
  </define>
  <!-- end of refsect1.attlist -->
  <!-- end of refsect1.module -->
  <define name="local.refsect2.attrib">
    <empty/>
  </define>
  <define name="refsect2.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="refsect2">
    <element name="refsect2">
      <ref name="refsect2.attlist"/>
      <optional>
        <ref name="refsect2info"/>
      </optional>
      <ref name="refsect.title.content"/>
      <choice>
        <group>
          <oneOrMore>
            <ref name="refcomponent.mix"/>
          </oneOrMore>
          <zeroOrMore>
            <ref name="refsect3"/>
          </zeroOrMore>
        </group>
        <oneOrMore>
          <ref name="refsect3"/>
        </oneOrMore>
      </choice>
    </element>
  </define>
  <!-- end of refsect2.element -->
  <define name="refsect2.attlist" combine="interleave">
    <ref name="status.attrib"/>
    <ref name="common.attrib"/>
    <ref name="refsect2.role.attrib"/>
    <ref name="local.refsect2.attrib"/>
  </define>
  <!-- end of refsect2.attlist -->
  <!-- end of refsect2.module -->
  <define name="local.refsect3.attrib">
    <empty/>
  </define>
  <define name="refsect3.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="refsect3">
    <element name="refsect3">
      <ref name="refsect3.attlist"/>
      <optional>
        <ref name="refsect3info"/>
      </optional>
      <ref name="refsect.title.content"/>
      <oneOrMore>
        <ref name="refcomponent.mix"/>
      </oneOrMore>
    </element>
  </define>
  <!-- end of refsect3.element -->
  <define name="refsect3.attlist" combine="interleave">
    <ref name="status.attrib"/>
    <ref name="common.attrib"/>
    <ref name="refsect3.role.attrib"/>
    <ref name="local.refsect3.attrib"/>
  </define>
  <!-- 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.
  -->
  <define name="local.article.attrib">
    <empty/>
  </define>
  <define name="article.role.attrib">
    <ref name="role.attrib"/>
  </define>
  <define name="article">
    <element name="article">
      <ref name="article.attlist"/>
      <optional>
        <ref name="div.title.content"/>
      </optional>
      <optional>
        <ref name="articleinfo"/>
      </optional>
      <optional>
        <ref name="tocchap"/>
      </optional>
      <zeroOrMore>
        <ref name="lot"/>
      </zeroOrMore>
      <ref name="bookcomponent.content"/>
      <zeroOrMore>
        <choice>
          <ref name="nav.class"/>
          <ref name="appendix.class"/>
          <ref name="ackno"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <!-- 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 -->
  <define name="article.attlist" combine="interleave">
    <optional>
      <attribute name="class">
        <choice>
          <value>journalarticle</value>
          <value>productsheet</value>
          <value>whitepaper</value>
          <value>techreport</value>
          <value>specification</value>
          <value>faq</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="parentbook">
        <data type="IDREF"/>
      </attribute>
    </optional>
    <ref name="status.attrib"/>
    <ref name="common.attrib"/>
    <ref name="article.role.attrib"/>
    <ref name="local.article.attrib"/>
  </define>
</grammar>
<!-- end of article.attlist -->
<!-- end of article.module -->
<!-- End of DocBook document hierarchy module V4.2 ........................ -->
<!-- ...................................................................... -->