Blob Blame History Raw
<?xml version="1.0" encoding="UTF-8"?>
<!-- ...................................................................... -->
<!-- DocBook document hierarchy module V4.3CR3 ............................... -->
<!-- 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.28 2004/01/21 18:54:21 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.3CR3//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 ......................................... -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
  <xs:element name="appendix.class" abstract="true">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="beginpage"/>
        <xs:element minOccurs="0" ref="appendixinfo"/>
        <xs:group ref="bookcomponent.title.content"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
        <xs:element minOccurs="0" ref="tocchap"/>
        <xs:group ref="bookcomponent.content"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
      </xs:sequence>
      <xs:attributeGroup ref="appendix.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="article.class" abstract="true">
    <xs:complexType>
      <xs:sequence>
        <xs:group minOccurs="0" ref="div.title.content"/>
        <xs:element minOccurs="0" ref="articleinfo"/>
        <xs:element minOccurs="0" ref="tocchap"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="lot"/>
        <xs:group ref="bookcomponent.content"/>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:group ref="nav.class"/>
          <xs:element ref="appendix.class"/>
          <xs:element ref="ackno"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="article.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="book.class" abstract="true">
    <xs:complexType>
      <xs:sequence>
        <xs:group minOccurs="0" ref="div.title.content"/>
        <xs:element minOccurs="0" ref="bookinfo"/>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element ref="dedication"/>
          <xs:element ref="toc"/>
          <xs:element ref="lot"/>
          <xs:element ref="glossary"/>
          <xs:element ref="bibliography"/>
          <xs:element ref="preface"/>
          <xs:element ref="chapter.class"/>
          <xs:element ref="reference"/>
          <xs:element ref="part"/>
          <xs:element ref="article.class"/>
          <xs:element ref="appendix.class"/>
          <xs:group ref="index.class"/>
          <xs:element ref="colophon"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="book.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="chapter.class" abstract="true">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="beginpage"/>
        <xs:element minOccurs="0" ref="chapterinfo"/>
        <xs:group ref="bookcomponent.title.content"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
        <xs:element minOccurs="0" ref="tocchap"/>
        <xs:group ref="bookcomponent.content"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
      </xs:sequence>
      <xs:attributeGroup ref="chapter.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:group name="index.class">
    <xs:choice>
      <xs:element ref="index"/>
      <xs:element ref="setindex"/>
    </xs:choice>
  </xs:group>
  <xs:element name="refentry.class" abstract="true">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="beginpage"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="ndxterm.class"/>
        <xs:element minOccurs="0" ref="refentryinfo"/>
        <xs:element minOccurs="0" ref="refmeta"/>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element ref="remark"/>
          <xs:element ref="link.char.class"/>
        </xs:choice>
        <xs:element maxOccurs="unbounded" ref="refnamediv"/>
        <xs:element minOccurs="0" ref="refsynopsisdiv"/>
        <xs:choice>
          <xs:element maxOccurs="unbounded" ref="refsect1"/>
          <xs:element maxOccurs="unbounded" ref="refsection"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="refentry.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="section.class" abstract="true">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="sectioninfo"/>
        <xs:group ref="sect.title.content"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
        <xs:choice>
          <xs:sequence>
            <xs:group maxOccurs="unbounded" ref="divcomponent.mix"/>
            <xs:choice>
              <xs:element minOccurs="0" maxOccurs="unbounded" ref="refentry.class"/>
              <xs:element minOccurs="0" maxOccurs="unbounded" ref="section.class"/>
              <xs:element minOccurs="0" maxOccurs="unbounded" ref="simplesect"/>
            </xs:choice>
          </xs:sequence>
          <xs:element maxOccurs="unbounded" ref="refentry.class"/>
          <xs:element maxOccurs="unbounded" ref="section.class"/>
          <xs:element maxOccurs="unbounded" ref="simplesect"/>
        </xs:choice>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
      </xs:sequence>
      <xs:attributeGroup ref="section.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:group name="nav.class">
    <xs:choice>
      <xs:element ref="toc"/>
      <xs:element ref="lot"/>
      <xs:element ref="index"/>
      <xs:element ref="glossary"/>
      <xs:element ref="bibliography"/>
    </xs:choice>
  </xs:group>
  <!-- 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. -->
  <xs:group name="divcomponent.mix">
    <xs:choice>
      <xs:element ref="list.class"/>
      <xs:element ref="admon.class"/>
      <xs:element ref="linespecific.class"/>
      <xs:element ref="synop.class"/>
      <xs:element ref="para.class"/>
      <xs:element ref="informal.class"/>
      <xs:element ref="formal.class"/>
      <xs:element ref="compound.class"/>
      <xs:group ref="genobj.class"/>
      <xs:group ref="descobj.class"/>
      <xs:element ref="ndxterm.class"/>
      <xs:element ref="beginpage"/>
    </xs:choice>
  </xs:group>
  <xs:group name="refcomponent.mix">
    <xs:choice>
      <xs:element ref="list.class"/>
      <xs:element ref="admon.class"/>
      <xs:element ref="linespecific.class"/>
      <xs:element ref="synop.class"/>
      <xs:element ref="para.class"/>
      <xs:element ref="informal.class"/>
      <xs:element ref="formal.class"/>
      <xs:element ref="compound.class"/>
      <xs:group ref="genobj.class"/>
      <xs:group ref="descobj.class"/>
      <xs:element ref="ndxterm.class"/>
      <xs:element ref="beginpage"/>
    </xs:choice>
  </xs:group>
  <xs:group name="indexdivcomponent.mix">
    <xs:choice>
      <xs:element ref="itemizedlist"/>
      <xs:element ref="orderedlist"/>
      <xs:element ref="variablelist"/>
      <xs:element ref="simplelist"/>
      <xs:element ref="linespecific.class"/>
      <xs:element ref="synop.class"/>
      <xs:element ref="para.class"/>
      <xs:element ref="informal.class"/>
      <xs:element ref="anchor"/>
      <xs:element ref="remark"/>
      <xs:element ref="link.char.class"/>
      <xs:element ref="beginpage"/>
    </xs:choice>
  </xs:group>
  <xs:group name="refname.char.mix">
    <xs:sequence>
      <xs:element minOccurs="0" ref="tech.char.class"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="partcontent.mix">
    <xs:choice>
      <xs:element ref="appendix.class"/>
      <xs:element ref="chapter.class"/>
      <xs:group ref="nav.class"/>
      <xs:element ref="article.class"/>
      <xs:element ref="preface"/>
      <xs:element ref="refentry.class"/>
      <xs:element ref="reference"/>
    </xs:choice>
  </xs:group>
  <xs:group name="refinline.char.mix">
    <xs:sequence>
      <xs:choice minOccurs="0">
        <xs:element ref="xref.char.class"/>
        <xs:element ref="gen.char.class"/>
        <xs:element ref="link.char.class"/>
        <xs:element ref="tech.char.class"/>
        <xs:group ref="base.char.class"/>
        <xs:element ref="docinfo.char.class"/>
        <xs:group ref="other.char.class"/>
        <xs:element ref="ndxterm.class"/>
        <xs:element ref="beginpage"/>
      </xs:choice>
    </xs:sequence>
  </xs:group>
  <xs:group name="refclass.char.mix">
    <xs:sequence>
      <xs:element minOccurs="0" ref="application"/>
    </xs:sequence>
  </xs:group>
  <!-- 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 .......................................... -->
  <xs:group name="div.title.content">
    <xs:sequence>
      <xs:element ref="title"/>
      <xs:element minOccurs="0" ref="subtitle"/>
      <xs:element minOccurs="0" ref="titleabbrev"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="bookcomponent.title.content">
    <xs:sequence>
      <xs:element ref="title"/>
      <xs:element minOccurs="0" ref="subtitle"/>
      <xs:element minOccurs="0" ref="titleabbrev"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="sect.title.content">
    <xs:sequence>
      <xs:element ref="title"/>
      <xs:element minOccurs="0" ref="subtitle"/>
      <xs:element minOccurs="0" ref="titleabbrev"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="refsect.title.content">
    <xs:sequence>
      <xs:element ref="title"/>
      <xs:element minOccurs="0" ref="subtitle"/>
      <xs:element minOccurs="0" ref="titleabbrev"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="bookcomponent.content">
    <xs:choice>
      <xs:sequence>
        <xs:group maxOccurs="unbounded" ref="divcomponent.mix"/>
        <xs:choice>
          <xs:element minOccurs="0" maxOccurs="unbounded" ref="sect1"/>
          <xs:element minOccurs="0" maxOccurs="unbounded" ref="refentry.class"/>
          <xs:element minOccurs="0" maxOccurs="unbounded" ref="simplesect"/>
          <xs:element minOccurs="0" maxOccurs="unbounded" ref="section.class"/>
        </xs:choice>
      </xs:sequence>
      <xs:choice>
        <xs:element maxOccurs="unbounded" ref="sect1"/>
        <xs:element maxOccurs="unbounded" ref="refentry.class"/>
        <xs:element maxOccurs="unbounded" ref="simplesect"/>
        <xs:element maxOccurs="unbounded" ref="section.class"/>
      </xs:choice>
    </xs:choice>
  </xs:group>
  <!-- ...................................................................... -->
  <!-- Set and SetInfo ...................................................... -->
  <xs:attributeGroup name="set.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="set">
    <xs:complexType>
      <xs:sequence>
        <xs:group minOccurs="0" ref="div.title.content"/>
        <xs:element minOccurs="0" ref="setinfo"/>
        <xs:element minOccurs="0" ref="toc"/>
        <xs:choice maxOccurs="unbounded">
          <xs:element ref="set"/>
          <xs:element ref="book.class"/>
        </xs:choice>
        <xs:element minOccurs="0" ref="setindex"/>
      </xs:sequence>
      <xs:attributeGroup ref="set.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of set.element -->
  <!-- FPI: SGML formal public identifier -->
  <xs:attributeGroup name="set.attlist">
    <xs:attribute name="fpi"/>
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="set.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of set.attlist -->
  <!-- end of set.module -->
  <xs:attributeGroup name="setinfo.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="setinfo">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="setinfo.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of setinfo.element -->
  <!--
    Contents: IDs of the ToC, Books, and SetIndex that comprise
    the set, in the order of their appearance
  -->
  <xs:attributeGroup name="setinfo.attlist">
    <xs:attribute name="contents" type="xs:IDREFS"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="setinfo.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of setinfo.attlist -->
  <!-- end of setinfo.module -->
  <!-- end of set.content.module -->
  <!-- ...................................................................... -->
  <!-- Book and BookInfo .................................................... -->
  <xs:attributeGroup name="book.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="book" substitutionGroup="book.class"/>
  <!-- end of book.element -->
  <!-- FPI: SGML formal public identifier -->
  <xs:attributeGroup name="book.attlist">
    <xs:attribute name="fpi"/>
    <xs:attributeGroup ref="label.attrib"/>
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="book.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of book.attlist -->
  <!-- end of book.module -->
  <xs:attributeGroup name="bookinfo.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="bookinfo">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="bookinfo.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- 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
  -->
  <xs:attributeGroup name="bookinfo.attlist">
    <xs:attribute name="contents" type="xs:IDREFS"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="bookinfo.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of bookinfo.attlist -->
  <!-- end of bookinfo.module -->
  <!-- end of book.content.module -->
  <!-- ...................................................................... -->
  <!-- Dedication, ToC, and LoT ............................................. -->
  <xs:attributeGroup name="dedication.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="dedication">
    <xs:complexType>
      <xs:sequence>
        <xs:group minOccurs="0" ref="sect.title.content"/>
        <xs:group maxOccurs="unbounded" ref="legalnotice.mix"/>
      </xs:sequence>
      <xs:attributeGroup ref="dedication.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of dedication.element -->
  <xs:attributeGroup name="dedication.attlist">
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="dedication.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of dedication.attlist -->
  <!-- end of dedication.module -->
  <xs:attributeGroup name="colophon.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="colophon">
    <xs:complexType>
      <xs:sequence>
        <xs:group minOccurs="0" ref="sect.title.content"/>
        <xs:group maxOccurs="unbounded" ref="textobject.mix"/>
      </xs:sequence>
      <xs:attributeGroup ref="colophon.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of colophon.element -->
  <xs:attributeGroup name="colophon.attlist">
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="colophon.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of colophon.attlist -->
  <!-- end of colophon.module -->
  <xs:attributeGroup name="toc.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="toc">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="beginpage"/>
        <xs:group minOccurs="0" ref="bookcomponent.title.content"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="tocfront"/>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element ref="tocpart"/>
          <xs:element ref="tocchap"/>
        </xs:choice>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="tocback"/>
      </xs:sequence>
      <xs:attributeGroup ref="toc.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of toc.element -->
  <xs:attributeGroup name="toc.attlist">
    <xs:attributeGroup ref="pagenum.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="toc.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of toc.attlist -->
  <!-- end of toc.module -->
  <xs:attributeGroup name="tocfront.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="tocfront">
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="para.char.mix"/>
      <xs:attributeGroup ref="tocfront.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of tocfront.element -->
  <!-- to element that this entry represents -->
  <xs:attributeGroup name="tocfront.attlist">
    <xs:attributeGroup ref="label.attrib"/>
    <xs:attributeGroup ref="linkend.attrib"/>
    <xs:attributeGroup ref="pagenum.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="tocfront.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of tocfront.attlist -->
  <!-- end of tocfront.module -->
  <xs:attributeGroup name="tocentry.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="tocentry">
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="para.char.mix"/>
      <xs:attributeGroup ref="tocentry.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of tocentry.element -->
  <!-- to element that this entry represents -->
  <xs:attributeGroup name="tocentry.attlist">
    <xs:attributeGroup ref="linkend.attrib"/>
    <xs:attributeGroup ref="pagenum.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="tocentry.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of tocentry.attlist -->
  <!-- end of tocentry.module -->
  <xs:attributeGroup name="tocpart.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="tocpart">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="tocentry"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="tocchap"/>
      </xs:sequence>
      <xs:attributeGroup ref="tocpart.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of tocpart.element -->
  <xs:attributeGroup name="tocpart.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="tocpart.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of tocpart.attlist -->
  <!-- end of tocpart.module -->
  <xs:attributeGroup name="tocchap.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="tocchap">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="tocentry"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="toclevel1"/>
      </xs:sequence>
      <xs:attributeGroup ref="tocchap.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of tocchap.element -->
  <xs:attributeGroup name="tocchap.attlist">
    <xs:attributeGroup ref="label.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="tocchap.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of tocchap.attlist -->
  <!-- end of tocchap.module -->
  <xs:attributeGroup name="toclevel1.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="toclevel1">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="tocentry"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="toclevel2"/>
      </xs:sequence>
      <xs:attributeGroup ref="toclevel1.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of toclevel1.element -->
  <xs:attributeGroup name="toclevel1.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="toclevel1.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of toclevel1.attlist -->
  <!-- end of toclevel1.module -->
  <xs:attributeGroup name="toclevel2.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="toclevel2">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="tocentry"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="toclevel3"/>
      </xs:sequence>
      <xs:attributeGroup ref="toclevel2.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of toclevel2.element -->
  <xs:attributeGroup name="toclevel2.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="toclevel2.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of toclevel2.attlist -->
  <!-- end of toclevel2.module -->
  <xs:attributeGroup name="toclevel3.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="toclevel3">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="tocentry"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="toclevel4"/>
      </xs:sequence>
      <xs:attributeGroup ref="toclevel3.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of toclevel3.element -->
  <xs:attributeGroup name="toclevel3.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="toclevel3.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of toclevel3.attlist -->
  <!-- end of toclevel3.module -->
  <xs:attributeGroup name="toclevel4.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="toclevel4">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="tocentry"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="toclevel5"/>
      </xs:sequence>
      <xs:attributeGroup ref="toclevel4.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of toclevel4.element -->
  <xs:attributeGroup name="toclevel4.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="toclevel4.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of toclevel4.attlist -->
  <!-- end of toclevel4.module -->
  <xs:attributeGroup name="toclevel5.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="toclevel5">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="tocentry"/>
      </xs:sequence>
      <xs:attributeGroup ref="toclevel5.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of toclevel5.element -->
  <xs:attributeGroup name="toclevel5.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="toclevel5.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of toclevel5.attlist -->
  <!-- end of toclevel5.module -->
  <xs:attributeGroup name="tocback.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="tocback">
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="para.char.mix"/>
      <xs:attributeGroup ref="tocback.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of tocback.element -->
  <!-- to element that this entry represents -->
  <xs:attributeGroup name="tocback.attlist">
    <xs:attributeGroup ref="label.attrib"/>
    <xs:attributeGroup ref="linkend.attrib"/>
    <xs:attributeGroup ref="pagenum.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="tocback.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of tocback.attlist -->
  <!-- end of tocback.module -->
  <!-- end of toc.content.module -->
  <xs:attributeGroup name="lot.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="lot">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="beginpage"/>
        <xs:group minOccurs="0" ref="bookcomponent.title.content"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="lotentry"/>
      </xs:sequence>
      <xs:attributeGroup ref="lot.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of lot.element -->
  <xs:attributeGroup name="lot.attlist">
    <xs:attributeGroup ref="label.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="lot.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of lot.attlist -->
  <!-- end of lot.module -->
  <xs:attributeGroup name="lotentry.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="lotentry">
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="para.char.mix"/>
      <xs:attributeGroup ref="lotentry.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- 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 -->
  <xs:attributeGroup name="lotentry.attlist">
    <xs:attributeGroup ref="linkend.attrib"/>
    <xs:attributeGroup ref="pagenum.attrib"/>
    <xs:attribute name="srccredit"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="lotentry.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of lotentry.attlist -->
  <!-- end of lotentry.module -->
  <!-- end of lot.content.module -->
  <!-- ...................................................................... -->
  <!-- Appendix, Chapter, Part, Preface, Reference, PartIntro ............... -->
  <xs:attributeGroup name="appendix.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="appendix" substitutionGroup="appendix.class"/>
  <!-- end of appendix.element -->
  <xs:attributeGroup name="appendix.attlist">
    <xs:attributeGroup ref="label.attrib"/>
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="appendix.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of appendix.attlist -->
  <!-- end of appendix.module -->
  <xs:attributeGroup name="chapter.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="chapter" substitutionGroup="chapter.class"/>
  <!-- end of chapter.element -->
  <xs:attributeGroup name="chapter.attlist">
    <xs:attributeGroup ref="label.attrib"/>
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="chapter.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of chapter.attlist -->
  <!-- end of chapter.module -->
  <!--
    Note that Part was to have its content model reduced in V4.3CR3.  This
    change will not be made after all.
  -->
  <xs:attributeGroup name="part.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="part">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="beginpage"/>
        <xs:element minOccurs="0" ref="partinfo"/>
        <xs:group ref="bookcomponent.title.content"/>
        <xs:element minOccurs="0" ref="partintro"/>
        <xs:group maxOccurs="unbounded" ref="partcontent.mix"/>
      </xs:sequence>
      <xs:attributeGroup ref="part.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of part.element -->
  <xs:attributeGroup name="part.attlist">
    <xs:attributeGroup ref="label.attrib"/>
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="part.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of part.attlist -->
  <!-- ELEMENT PartIntro (defined below) -->
  <!-- end of part.module -->
  <xs:attributeGroup name="preface.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="preface">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="beginpage"/>
        <xs:element minOccurs="0" ref="prefaceinfo"/>
        <xs:group ref="bookcomponent.title.content"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
        <xs:element minOccurs="0" ref="tocchap"/>
        <xs:group ref="bookcomponent.content"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
      </xs:sequence>
      <xs:attributeGroup ref="preface.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of preface.element -->
  <xs:attributeGroup name="preface.attlist">
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="preface.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of preface.attlist -->
  <!-- end of preface.module -->
  <xs:attributeGroup name="reference.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="reference">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="beginpage"/>
        <xs:element minOccurs="0" ref="referenceinfo"/>
        <xs:group ref="bookcomponent.title.content"/>
        <xs:element minOccurs="0" ref="partintro"/>
        <xs:element maxOccurs="unbounded" ref="refentry.class"/>
      </xs:sequence>
      <xs:attributeGroup ref="reference.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of reference.element -->
  <xs:attributeGroup name="reference.attlist">
    <xs:attributeGroup ref="label.attrib"/>
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="reference.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of reference.attlist -->
  <!-- ELEMENT PartIntro (defined below) -->
  <!-- end of reference.module -->
  <xs:attributeGroup name="partintro.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="partintro">
    <xs:complexType>
      <xs:sequence>
        <xs:group minOccurs="0" ref="div.title.content"/>
        <xs:group ref="bookcomponent.content"/>
      </xs:sequence>
      <xs:attributeGroup ref="partintro.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of partintro.element -->
  <xs:attributeGroup name="partintro.attlist">
    <xs:attributeGroup ref="label.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="partintro.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of partintro.attlist -->
  <!-- end of partintro.module -->
  <!-- ...................................................................... -->
  <!-- Other Info elements .................................................. -->
  <xs:attributeGroup name="appendixinfo.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="appendixinfo">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="appendixinfo.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of appendixinfo.element -->
  <xs:attributeGroup name="appendixinfo.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="appendixinfo.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of appendixinfo.attlist -->
  <!-- end of appendixinfo.module -->
  <xs:attributeGroup name="bibliographyinfo.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="bibliographyinfo">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="bibliographyinfo.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of bibliographyinfo.element -->
  <xs:attributeGroup name="bibliographyinfo.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="bibliographyinfo.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of bibliographyinfo.attlist -->
  <!-- end of bibliographyinfo.module -->
  <xs:attributeGroup name="chapterinfo.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="chapterinfo">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="chapterinfo.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of chapterinfo.element -->
  <xs:attributeGroup name="chapterinfo.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="chapterinfo.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of chapterinfo.attlist -->
  <!-- end of chapterinfo.module -->
  <xs:attributeGroup name="glossaryinfo.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="glossaryinfo">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="glossaryinfo.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of glossaryinfo.element -->
  <xs:attributeGroup name="glossaryinfo.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="glossaryinfo.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of glossaryinfo.attlist -->
  <!-- end of glossaryinfo.module -->
  <xs:attributeGroup name="indexinfo.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="indexinfo">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="indexinfo.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of indexinfo.element -->
  <xs:attributeGroup name="indexinfo.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="indexinfo.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of indexinfo.attlist -->
  <!-- end of indexinfo.module -->
  <xs:attributeGroup name="setindexinfo.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="setindexinfo">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="setindexinfo.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of setindexinfo.element -->
  <xs:attributeGroup name="setindexinfo.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="setindexinfo.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of setindexinfo.attlist -->
  <!-- end of setindexinfo.module -->
  <xs:attributeGroup name="partinfo.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="partinfo">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="partinfo.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of partinfo.element -->
  <xs:attributeGroup name="partinfo.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="partinfo.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of partinfo.attlist -->
  <!-- end of partinfo.module -->
  <xs:attributeGroup name="prefaceinfo.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="prefaceinfo">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="prefaceinfo.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of prefaceinfo.element -->
  <xs:attributeGroup name="prefaceinfo.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="prefaceinfo.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of prefaceinfo.attlist -->
  <!-- end of prefaceinfo.module -->
  <xs:attributeGroup name="refentryinfo.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="refentryinfo">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="refentryinfo.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of refentryinfo.element -->
  <xs:attributeGroup name="refentryinfo.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="refentryinfo.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of refentryinfo.attlist -->
  <!-- end of refentryinfo.module -->
  <xs:attributeGroup name="refsectioninfo.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="refsectioninfo">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="refsectioninfo.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of refsectioninfo.element -->
  <xs:attributeGroup name="refsectioninfo.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="refsectioninfo.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of refsectioninfo.attlist -->
  <!-- end of refsectioninfo.module -->
  <xs:attributeGroup name="refsect1info.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="refsect1info">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="refsect1info.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of refsect1info.element -->
  <xs:attributeGroup name="refsect1info.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="refsect1info.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of refsect1info.attlist -->
  <!-- end of refsect1info.module -->
  <xs:attributeGroup name="refsect2info.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="refsect2info">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="refsect2info.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of refsect2info.element -->
  <xs:attributeGroup name="refsect2info.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="refsect2info.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of refsect2info.attlist -->
  <!-- end of refsect2info.module -->
  <xs:attributeGroup name="refsect3info.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="refsect3info">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="refsect3info.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of refsect3info.element -->
  <xs:attributeGroup name="refsect3info.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="refsect3info.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of refsect3info.attlist -->
  <!-- end of refsect3info.module -->
  <xs:attributeGroup name="refsynopsisdivinfo.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="refsynopsisdivinfo">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="refsynopsisdivinfo.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of refsynopsisdivinfo.element -->
  <xs:attributeGroup name="refsynopsisdivinfo.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="refsynopsisdivinfo.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of refsynopsisdivinfo.attlist -->
  <!-- end of refsynopsisdivinfo.module -->
  <xs:attributeGroup name="referenceinfo.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="referenceinfo">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="referenceinfo.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of referenceinfo.element -->
  <xs:attributeGroup name="referenceinfo.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="referenceinfo.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of referenceinfo.attlist -->
  <!-- end of referenceinfo.module -->
  <xs:attributeGroup name="sect1info.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="sect1info">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="sect1info.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of sect1info.element -->
  <xs:attributeGroup name="sect1info.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="sect1info.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of sect1info.attlist -->
  <xs:attributeGroup name="sect2info.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="sect2info">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="sect2info.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of sect2info.element -->
  <xs:attributeGroup name="sect2info.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="sect2info.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of sect2info.attlist -->
  <xs:attributeGroup name="sect3info.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="sect3info">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="sect3info.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of sect3info.element -->
  <xs:attributeGroup name="sect3info.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="sect3info.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of sect3info.attlist -->
  <xs:attributeGroup name="sect4info.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="sect4info">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="sect4info.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of sect4info.element -->
  <xs:attributeGroup name="sect4info.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="sect4info.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of sect4info.attlist -->
  <xs:attributeGroup name="sect5info.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="sect5info">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="sect5info.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of sect5info.element -->
  <xs:attributeGroup name="sect5info.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="sect5info.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of sect5info.attlist -->
  <!-- ...................................................................... -->
  <!-- Section (parallel to Sect*) ......................................... -->
  <xs:attributeGroup name="section.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="section" substitutionGroup="section.class"/>
  <!-- end of section.element -->
  <xs:attributeGroup name="section.attlist">
    <xs:attributeGroup ref="label.attrib"/>
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="section.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of section.attlist -->
  <!-- end of section.module -->
  <xs:attributeGroup name="sectioninfo.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="sectioninfo">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="sectioninfo.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of sectioninfo.element -->
  <xs:attributeGroup name="sectioninfo.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="sectioninfo.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of sectioninfo.attlist -->
  <!-- end of sectioninfo.module -->
  <!-- end of section.content.module -->
  <!-- ...................................................................... -->
  <!-- Sect1, Sect2, Sect3, Sect4, Sect5 .................................... -->
  <xs:attributeGroup name="sect1.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="sect1">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="sect1info"/>
        <xs:group ref="sect.title.content"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
        <xs:choice>
          <xs:sequence>
            <xs:group maxOccurs="unbounded" ref="divcomponent.mix"/>
            <xs:choice>
              <xs:element minOccurs="0" maxOccurs="unbounded" ref="refentry.class"/>
              <xs:element minOccurs="0" maxOccurs="unbounded" ref="sect2"/>
              <xs:element minOccurs="0" maxOccurs="unbounded" ref="simplesect"/>
            </xs:choice>
          </xs:sequence>
          <xs:element maxOccurs="unbounded" ref="refentry.class"/>
          <xs:element maxOccurs="unbounded" ref="sect2"/>
          <xs:element maxOccurs="unbounded" ref="simplesect"/>
        </xs:choice>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
      </xs:sequence>
      <xs:attributeGroup ref="sect1.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of sect1.element -->
  <!--
    Renderas: Indicates the format in which the heading should
    appear
  -->
  <xs:attributeGroup name="sect1.attlist">
    <xs:attribute name="renderas">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="sect2"/>
          <xs:enumeration value="sect3"/>
          <xs:enumeration value="sect4"/>
          <xs:enumeration value="sect5"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attributeGroup ref="label.attrib"/>
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="sect1.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of sect1.attlist -->
  <!-- end of sect1.module -->
  <xs:attributeGroup name="sect2.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="sect2">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="sect2info"/>
        <xs:group ref="sect.title.content"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
        <xs:choice>
          <xs:sequence>
            <xs:group maxOccurs="unbounded" ref="divcomponent.mix"/>
            <xs:choice>
              <xs:element minOccurs="0" maxOccurs="unbounded" ref="refentry.class"/>
              <xs:element minOccurs="0" maxOccurs="unbounded" ref="sect3"/>
              <xs:element minOccurs="0" maxOccurs="unbounded" ref="simplesect"/>
            </xs:choice>
          </xs:sequence>
          <xs:element maxOccurs="unbounded" ref="refentry.class"/>
          <xs:element maxOccurs="unbounded" ref="sect3"/>
          <xs:element maxOccurs="unbounded" ref="simplesect"/>
        </xs:choice>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
      </xs:sequence>
      <xs:attributeGroup ref="sect2.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of sect2.element -->
  <!--
    Renderas: Indicates the format in which the heading should
    appear
  -->
  <xs:attributeGroup name="sect2.attlist">
    <xs:attribute name="renderas">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="sect1"/>
          <xs:enumeration value="sect3"/>
          <xs:enumeration value="sect4"/>
          <xs:enumeration value="sect5"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attributeGroup ref="label.attrib"/>
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="sect2.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of sect2.attlist -->
  <!-- end of sect2.module -->
  <xs:attributeGroup name="sect3.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="sect3">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="sect3info"/>
        <xs:group ref="sect.title.content"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
        <xs:choice>
          <xs:sequence>
            <xs:group maxOccurs="unbounded" ref="divcomponent.mix"/>
            <xs:choice>
              <xs:element minOccurs="0" maxOccurs="unbounded" ref="refentry.class"/>
              <xs:element minOccurs="0" maxOccurs="unbounded" ref="sect4"/>
              <xs:element minOccurs="0" maxOccurs="unbounded" ref="simplesect"/>
            </xs:choice>
          </xs:sequence>
          <xs:element maxOccurs="unbounded" ref="refentry.class"/>
          <xs:element maxOccurs="unbounded" ref="sect4"/>
          <xs:element maxOccurs="unbounded" ref="simplesect"/>
        </xs:choice>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
      </xs:sequence>
      <xs:attributeGroup ref="sect3.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of sect3.element -->
  <!--
    Renderas: Indicates the format in which the heading should
    appear
  -->
  <xs:attributeGroup name="sect3.attlist">
    <xs:attribute name="renderas">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="sect1"/>
          <xs:enumeration value="sect2"/>
          <xs:enumeration value="sect4"/>
          <xs:enumeration value="sect5"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attributeGroup ref="label.attrib"/>
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="sect3.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of sect3.attlist -->
  <!-- end of sect3.module -->
  <xs:attributeGroup name="sect4.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="sect4">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="sect4info"/>
        <xs:group ref="sect.title.content"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
        <xs:choice>
          <xs:sequence>
            <xs:group maxOccurs="unbounded" ref="divcomponent.mix"/>
            <xs:choice>
              <xs:element minOccurs="0" maxOccurs="unbounded" ref="refentry.class"/>
              <xs:element minOccurs="0" maxOccurs="unbounded" ref="sect5"/>
              <xs:element minOccurs="0" maxOccurs="unbounded" ref="simplesect"/>
            </xs:choice>
          </xs:sequence>
          <xs:element maxOccurs="unbounded" ref="refentry.class"/>
          <xs:element maxOccurs="unbounded" ref="sect5"/>
          <xs:element maxOccurs="unbounded" ref="simplesect"/>
        </xs:choice>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
      </xs:sequence>
      <xs:attributeGroup ref="sect4.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of sect4.element -->
  <!--
    Renderas: Indicates the format in which the heading should
    appear
  -->
  <xs:attributeGroup name="sect4.attlist">
    <xs:attribute name="renderas">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="sect1"/>
          <xs:enumeration value="sect2"/>
          <xs:enumeration value="sect3"/>
          <xs:enumeration value="sect5"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attributeGroup ref="label.attrib"/>
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="sect4.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of sect4.attlist -->
  <!-- end of sect4.module -->
  <xs:attributeGroup name="sect5.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="sect5">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="sect5info"/>
        <xs:group ref="sect.title.content"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
        <xs:choice>
          <xs:sequence>
            <xs:group maxOccurs="unbounded" ref="divcomponent.mix"/>
            <xs:choice>
              <xs:element minOccurs="0" maxOccurs="unbounded" ref="refentry.class"/>
              <xs:element minOccurs="0" maxOccurs="unbounded" ref="simplesect"/>
            </xs:choice>
          </xs:sequence>
          <xs:element maxOccurs="unbounded" ref="refentry.class"/>
          <xs:element maxOccurs="unbounded" ref="simplesect"/>
        </xs:choice>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
      </xs:sequence>
      <xs:attributeGroup ref="sect5.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of sect5.element -->
  <!--
    Renderas: Indicates the format in which the heading should
    appear
  -->
  <xs:attributeGroup name="sect5.attlist">
    <xs:attribute name="renderas">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="sect1"/>
          <xs:enumeration value="sect2"/>
          <xs:enumeration value="sect3"/>
          <xs:enumeration value="sect4"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attributeGroup ref="label.attrib"/>
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="sect5.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of sect5.attlist -->
  <!-- end of sect5.module -->
  <xs:attributeGroup name="simplesect.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="simplesect">
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="sect.title.content"/>
        <xs:group maxOccurs="unbounded" ref="divcomponent.mix"/>
      </xs:sequence>
      <xs:attributeGroup ref="simplesect.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of simplesect.element -->
  <xs:attributeGroup name="simplesect.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="simplesect.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of simplesect.attlist -->
  <!-- end of simplesect.module -->
  <!-- ...................................................................... -->
  <!-- Bibliography ......................................................... -->
  <xs:attributeGroup name="bibliography.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="bibliography">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="bibliographyinfo"/>
        <xs:group minOccurs="0" ref="bookcomponent.title.content"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="component.mix"/>
        <xs:choice>
          <xs:element maxOccurs="unbounded" ref="bibliodiv"/>
          <xs:choice maxOccurs="unbounded">
            <xs:element ref="biblioentry"/>
            <xs:element ref="bibliomixed"/>
          </xs:choice>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="bibliography.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of bibliography.element -->
  <xs:attributeGroup name="bibliography.attlist">
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="bibliography.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of bibliography.attlist -->
  <!-- end of bibliography.module -->
  <xs:attributeGroup name="bibliodiv.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="bibliodiv">
    <xs:complexType>
      <xs:sequence>
        <xs:group minOccurs="0" ref="sect.title.content"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="component.mix"/>
        <xs:choice maxOccurs="unbounded">
          <xs:element ref="biblioentry"/>
          <xs:element ref="bibliomixed"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="bibliodiv.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of bibliodiv.element -->
  <xs:attributeGroup name="bibliodiv.attlist">
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="bibliodiv.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of bibliodiv.attlist -->
  <!-- end of bibliodiv.module -->
  <!-- end of bibliography.content.module -->
  <!-- ...................................................................... -->
  <!-- Glossary ............................................................. -->
  <xs:attributeGroup name="glossary.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="glossary">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="glossaryinfo"/>
        <xs:group minOccurs="0" ref="bookcomponent.title.content"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="component.mix"/>
        <xs:choice>
          <xs:element maxOccurs="unbounded" ref="glossdiv"/>
          <xs:element maxOccurs="unbounded" ref="glossentry"/>
        </xs:choice>
        <xs:element minOccurs="0" ref="bibliography"/>
      </xs:sequence>
      <xs:attributeGroup ref="glossary.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of glossary.element -->
  <xs:attributeGroup name="glossary.attlist">
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="glossary.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of glossary.attlist -->
  <!-- end of glossary.module -->
  <xs:attributeGroup name="glossdiv.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="glossdiv">
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="sect.title.content"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="component.mix"/>
        <xs:element maxOccurs="unbounded" ref="glossentry"/>
      </xs:sequence>
      <xs:attributeGroup ref="glossdiv.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of glossdiv.element -->
  <xs:attributeGroup name="glossdiv.attlist">
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="glossdiv.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of glossdiv.attlist -->
  <!-- end of glossdiv.module -->
  <!-- end of glossary.content.module -->
  <!-- ...................................................................... -->
  <!-- Index and SetIndex ................................................... -->
  <xs:attributeGroup name="indexes.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="index">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="indexinfo"/>
        <xs:group minOccurs="0" ref="bookcomponent.title.content"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="component.mix"/>
        <xs:choice>
          <xs:element minOccurs="0" maxOccurs="unbounded" ref="indexdiv"/>
          <xs:element minOccurs="0" maxOccurs="unbounded" ref="indexentry"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="index.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of index.element -->
  <xs:attributeGroup name="index.attlist">
    <xs:attribute name="type"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="indexes.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of index.attlist -->
  <xs:element name="setindex">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="setindexinfo"/>
        <xs:group minOccurs="0" ref="bookcomponent.title.content"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="component.mix"/>
        <xs:choice>
          <xs:element minOccurs="0" maxOccurs="unbounded" ref="indexdiv"/>
          <xs:element minOccurs="0" maxOccurs="unbounded" ref="indexentry"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="setindex.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of setindex.element -->
  <xs:attributeGroup name="setindex.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="indexes.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of setindex.attlist -->
  <!-- end of indexes.module -->
  <!--
    SegmentedList in this content is useful for marking up permuted
    indices.
  -->
  <xs:attributeGroup name="indexdiv.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="indexdiv">
    <xs:complexType>
      <xs:sequence>
        <xs:group minOccurs="0" ref="sect.title.content"/>
        <xs:sequence>
          <xs:group minOccurs="0" maxOccurs="unbounded" ref="indexdivcomponent.mix"/>
          <xs:choice>
            <xs:element maxOccurs="unbounded" ref="indexentry"/>
            <xs:element ref="segmentedlist"/>
          </xs:choice>
        </xs:sequence>
      </xs:sequence>
      <xs:attributeGroup ref="indexdiv.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of indexdiv.element -->
  <xs:attributeGroup name="indexdiv.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="indexdiv.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of indexdiv.attlist -->
  <!-- end of indexdiv.module -->
  <!-- Index entries appear in the index, not the text. -->
  <xs:attributeGroup name="indexentry.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="indexentry">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="primaryie"/>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element ref="seeie"/>
          <xs:element ref="seealsoie"/>
        </xs:choice>
        <xs:sequence minOccurs="0" maxOccurs="unbounded">
          <xs:element ref="secondaryie"/>
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element ref="seeie"/>
            <xs:element ref="seealsoie"/>
            <xs:element ref="tertiaryie"/>
          </xs:choice>
        </xs:sequence>
      </xs:sequence>
      <xs:attributeGroup ref="indexentry.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of indexentry.element -->
  <xs:attributeGroup name="indexentry.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="indexentry.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of indexentry.attlist -->
  <!-- end of indexentry.module -->
  <xs:attributeGroup name="primsecterie.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="primaryie">
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="ndxterm.char.mix"/>
      <xs:attributeGroup ref="primaryie.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of primaryie.element -->
  <!-- to IndexTerms that these entries represent -->
  <xs:attributeGroup name="primaryie.attlist">
    <xs:attributeGroup ref="linkends.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="primsecterie.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of primaryie.attlist -->
  <xs:element name="secondaryie">
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="ndxterm.char.mix"/>
      <xs:attributeGroup ref="secondaryie.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of secondaryie.element -->
  <!-- to IndexTerms that these entries represent -->
  <xs:attributeGroup name="secondaryie.attlist">
    <xs:attributeGroup ref="linkends.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="primsecterie.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of secondaryie.attlist -->
  <xs:element name="tertiaryie">
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="ndxterm.char.mix"/>
      <xs:attributeGroup ref="tertiaryie.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of tertiaryie.element -->
  <!-- to IndexTerms that these entries represent -->
  <xs:attributeGroup name="tertiaryie.attlist">
    <xs:attributeGroup ref="linkends.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="primsecterie.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of tertiaryie.attlist -->
  <!-- end of primsecterie.module -->
  <xs:attributeGroup name="seeie.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="seeie">
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="ndxterm.char.mix"/>
      <xs:attributeGroup ref="seeie.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of seeie.element -->
  <!-- to IndexEntry to look up -->
  <xs:attributeGroup name="seeie.attlist">
    <xs:attributeGroup ref="linkend.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="seeie.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of seeie.attlist -->
  <!-- end of seeie.module -->
  <xs:attributeGroup name="seealsoie.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="seealsoie">
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="ndxterm.char.mix"/>
      <xs:attributeGroup ref="seealsoie.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of seealsoie.element -->
  <!-- to related IndexEntries -->
  <xs:attributeGroup name="seealsoie.attlist">
    <xs:attributeGroup ref="linkends.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="seealsoie.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of seealsoie.attlist -->
  <!-- end of seealsoie.module -->
  <!-- end of index.content.module -->
  <!-- ...................................................................... -->
  <!-- RefEntry ............................................................. -->
  <xs:attributeGroup name="refentry.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="refentry" substitutionGroup="refentry.class"/>
  <!-- end of refentry.element -->
  <xs:attributeGroup name="refentry.attlist">
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="refentry.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of refentry.attlist -->
  <!-- end of refentry.module -->
  <xs:attributeGroup name="refmeta.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="refmeta">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="ndxterm.class"/>
        <xs:element ref="refentrytitle"/>
        <xs:element minOccurs="0" ref="manvolnum"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="refmiscinfo"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="ndxterm.class"/>
      </xs:sequence>
      <xs:attributeGroup ref="refmeta.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of refmeta.element -->
  <xs:attributeGroup name="refmeta.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="refmeta.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of refmeta.attlist -->
  <!-- end of refmeta.module -->
  <xs:attributeGroup name="refmiscinfo.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="refmiscinfo">
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
      <xs:attributeGroup ref="refmiscinfo.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of refmiscinfo.element -->
  <!-- Class: Freely assignable parameter; no default -->
  <xs:attributeGroup name="refmiscinfo.attlist">
    <xs:attribute name="class"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="refmiscinfo.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of refmiscinfo.attlist -->
  <!-- end of refmiscinfo.module -->
  <xs:attributeGroup name="refnamediv.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="refnamediv">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="refdescriptor"/>
        <xs:element maxOccurs="unbounded" ref="refname"/>
        <xs:element ref="refpurpose"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="refclass"/>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element ref="remark"/>
          <xs:element ref="link.char.class"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="refnamediv.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of refnamediv.element -->
  <xs:attributeGroup name="refnamediv.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="refnamediv.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of refnamediv.attlist -->
  <!-- end of refnamediv.module -->
  <xs:attributeGroup name="refdescriptor.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="refdescriptor">
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="refname.char.mix"/>
      <xs:attributeGroup ref="refdescriptor.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of refdescriptor.element -->
  <xs:attributeGroup name="refdescriptor.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="refdescriptor.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of refdescriptor.attlist -->
  <!-- end of refdescriptor.module -->
  <xs:attributeGroup name="refname.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="refname">
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="refname.char.mix"/>
      <xs:attributeGroup ref="refname.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of refname.element -->
  <xs:attributeGroup name="refname.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="refname.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of refname.attlist -->
  <!-- end of refname.module -->
  <xs:attributeGroup name="refpurpose.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="refpurpose">
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="refinline.char.mix"/>
      <xs:attributeGroup ref="refpurpose.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of refpurpose.element -->
  <xs:attributeGroup name="refpurpose.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="refpurpose.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of refpurpose.attlist -->
  <!-- end of refpurpose.module -->
  <xs:attributeGroup name="refclass.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="refclass">
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="refclass.char.mix"/>
      <xs:attributeGroup ref="refclass.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of refclass.element -->
  <xs:attributeGroup name="refclass.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="refclass.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of refclass.attlist -->
  <!-- end of refclass.module -->
  <xs:attributeGroup name="refsynopsisdiv.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="refsynopsisdiv">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="refsynopsisdivinfo"/>
        <xs:group minOccurs="0" ref="refsect.title.content"/>
        <xs:choice>
          <xs:sequence>
            <xs:group maxOccurs="unbounded" ref="refcomponent.mix"/>
            <xs:element minOccurs="0" maxOccurs="unbounded" ref="refsect2"/>
          </xs:sequence>
          <xs:element maxOccurs="unbounded" ref="refsect2"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="refsynopsisdiv.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of refsynopsisdiv.element -->
  <xs:attributeGroup name="refsynopsisdiv.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="refsynopsisdiv.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of refsynopsisdiv.attlist -->
  <!-- end of refsynopsisdiv.module -->
  <xs:attributeGroup name="refsection.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="refsection">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="refsectioninfo"/>
        <xs:group ref="refsect.title.content"/>
        <xs:choice>
          <xs:sequence>
            <xs:group maxOccurs="unbounded" ref="refcomponent.mix"/>
            <xs:element minOccurs="0" maxOccurs="unbounded" ref="refsection"/>
          </xs:sequence>
          <xs:element maxOccurs="unbounded" ref="refsection"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="refsection.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of refsection.element -->
  <xs:attributeGroup name="refsection.attlist">
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="refsection.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of refsection.attlist -->
  <!-- end of refsection.module -->
  <xs:attributeGroup name="refsect1.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="refsect1">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="refsect1info"/>
        <xs:group ref="refsect.title.content"/>
        <xs:choice>
          <xs:sequence>
            <xs:group maxOccurs="unbounded" ref="refcomponent.mix"/>
            <xs:element minOccurs="0" maxOccurs="unbounded" ref="refsect2"/>
          </xs:sequence>
          <xs:element maxOccurs="unbounded" ref="refsect2"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="refsect1.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of refsect1.element -->
  <xs:attributeGroup name="refsect1.attlist">
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="refsect1.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of refsect1.attlist -->
  <!-- end of refsect1.module -->
  <xs:attributeGroup name="refsect2.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="refsect2">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="refsect2info"/>
        <xs:group ref="refsect.title.content"/>
        <xs:choice>
          <xs:sequence>
            <xs:group maxOccurs="unbounded" ref="refcomponent.mix"/>
            <xs:element minOccurs="0" maxOccurs="unbounded" ref="refsect3"/>
          </xs:sequence>
          <xs:element maxOccurs="unbounded" ref="refsect3"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="refsect2.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of refsect2.element -->
  <xs:attributeGroup name="refsect2.attlist">
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="refsect2.role.attrib"/>
  </xs:attributeGroup>
  <!-- end of refsect2.attlist -->
  <!-- end of refsect2.module -->
  <xs:attributeGroup name="refsect3.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="refsect3">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="refsect3info"/>
        <xs:group ref="refsect.title.content"/>
        <xs:group maxOccurs="unbounded" ref="refcomponent.mix"/>
      </xs:sequence>
      <xs:attributeGroup ref="refsect3.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- end of refsect3.element -->
  <xs:attributeGroup name="refsect3.attlist">
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="refsect3.role.attrib"/>
  </xs:attributeGroup>
  <!-- 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.
  -->
  <xs:attributeGroup name="article.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="article" substitutionGroup="article.class"/>
  <!-- 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 -->
  <xs:attributeGroup name="article.attlist">
    <xs:attribute name="class">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="journalarticle"/>
          <xs:enumeration value="productsheet"/>
          <xs:enumeration value="whitepaper"/>
          <xs:enumeration value="techreport"/>
          <xs:enumeration value="specification"/>
          <xs:enumeration value="faq"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="parentbook" type="xs:IDREF"/>
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="article.role.attrib"/>
  </xs:attributeGroup>
</xs:schema>
<!-- end of article.attlist -->
<!-- end of article.module -->
<!-- End of DocBook document hierarchy module V4.3CR3 ........................ -->
<!-- ...................................................................... -->