]> granicus.if.org Git - docbook-dsssl/commitdiff
Use divs to model parameter entities; add new annotations to model other DTD artifact...
authorNorman Walsh <ndw@nwalsh.com>
Mon, 30 Dec 2002 19:23:31 +0000 (19:23 +0000)
committerNorman Walsh <ndw@nwalsh.com>
Mon, 30 Dec 2002 19:23:31 +0000 (19:23 +0000)
schema/relaxng/calstbl.rng
schema/relaxng/dbcent.rng
schema/relaxng/dbgenent.rng
schema/relaxng/dbhier.rng
schema/relaxng/dbnotn.rng
schema/relaxng/dbpool.rng
schema/relaxng/docbook.rng
schema/relaxng/soextbl.rng

index d064475985c84066934b4107d70e456d0782cf8f..046be247114047a5d3d1e76eb4395b89ac10219a 100644 (file)
@@ -1,36 +1,65 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<grammar datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" xmlns="http://relaxng.org/ns/structure/1.0" xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">
-<!-- ...................................................................... -->
-<!-- DocBook CALS Table Model V4.2 ........................................ -->
-<!-- File calstblx.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).
+<grammar xmlns="http://relaxng.org/ns/structure/1.0"
+         xmlns:rng="http://relaxng.org/ns/structure/1.0"
+         xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
+         xmlns:s="http://www.ascc.net/xml/schematron"
+         xmlns:doc="http://nwalsh.com/xmlns/documentation"
+         xmlns:db="http://nwalsh.com/xmlns/docbook-grammar-structure"
+         datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 
-     This DTD is based on the CALS Table Model
-     PUBLIC "-//USA-DOD//DTD Table Model 951010//EN"
+<rng:div doc:docbook="yes" xmlns="">
+<partinfo>
+<releaseinfo
+   role="cvs">$Id$</releaseinfo>
+<title>DocBook CALS Table Model</title>
+<productname>DocBook</productname>
+<productnumber>4.2</productnumber>
+<releaseinfo role="filename">calstbl</releaseinfo>
+<copyright>
+<year>1992</year>
+<year>1993</year>
+<year>1994</year>
+<year>1995</year>
+<year>1996</year>
+<year>1997</year>
+<year>1998</year>
+<year>1999</year>
+<year>2000</year>
+<year>2001</year>
+<year>2002</year>
+<holder>HaL Computer Systems, Inc.</holder>
+<holder>O'Reilly &amp; Associates, Inc.</holder>
+<holder>ArborText, Inc.</holder>
+<holder>Fujitsu Software Corporation</holder>
+<holder>Norman Walsh</holder>
+<holder>Sun Microsystems, Inc.</holder>
+<holder>OASIS Open, Inc.</holder>
+</copyright>
 
-     $Id$
+<legalnotice>
+<para>This DTD is based on the CALS Table Model
+("-//USA-DOD//DTD Table Model 951010//EN").</para>
 
-     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.
+<para>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.</para>
 
-     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.
+<para>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.</para>
+
+<para>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/.</para>
+</legalnotice>
+</partinfo>
+</rng:div>
 
-     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 CALS Table Model
      converted to XML.
index dd979d79c4910a0e152ca30ba0f908328298b777..a2ff1539a75023935eacc10a804ef6dc56d95fca 100644 (file)
 <?xml version="1.0" encoding="UTF-8"?>
-<grammar datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
-         xmlns="http://relaxng.org/ns/structure/1.0"
-         xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">
+<grammar xmlns="http://relaxng.org/ns/structure/1.0"
+         xmlns:rng="http://relaxng.org/ns/structure/1.0"
+         xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
+         xmlns:s="http://www.ascc.net/xml/schematron"
+         xmlns:doc="http://nwalsh.com/xmlns/documentation"
+         xmlns:db="http://nwalsh.com/xmlns/docbook-grammar-structure"
+         datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 
-<!-- ...................................................................... -->
-<!-- DocBook XML character entities module V4.2 ........................... -->
-<!-- File dbcentx.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$
-
-     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/.
--->
+<rng:div doc:docbook="yes" xmlns="">
+<partinfo>
+<releaseinfo
+   role="cvs">$Id$</releaseinfo>
+<title>DocBook Character Entities</title>
+<productname>DocBook</productname>
+<productnumber>4.2</productnumber>
+<releaseinfo role="filename">dbcent</releaseinfo>
+<copyright>
+<year>1992</year>
+<year>1993</year>
+<year>1994</year>
+<year>1995</year>
+<year>1996</year>
+<year>1997</year>
+<year>1998</year>
+<year>1999</year>
+<year>2000</year>
+<year>2001</year>
+<year>2002</year>
+<holder>HaL Computer Systems, Inc.</holder>
+<holder>O'Reilly &amp; Associates, Inc.</holder>
+<holder>ArborText, Inc.</holder>
+<holder>Fujitsu Software Corporation</holder>
+<holder>Norman Walsh</holder>
+<holder>Sun Microsystems, Inc.</holder>
+<holder>OASIS Open, Inc.</holder>
+</copyright>
+
+<legalnotice>
+<para>Permission to use, copy, modify and distribute the DocBook schema
+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 schema for
+any purpose. It is provided <quote>as is</quote> without expressed or implied
+warranty.</para>
+
+<para>If you modify the DocBook in any way, except for declaring and
+referencing additional sets of general entities and declaring
+additional notations, label your schema as a variant of DocBook. See
+the maintenance documentation for more information.</para>
+
+<para>Please direct all questions, bug reports, or suggestions for
+changes to the <email>docbook@lists.oasis-open.org</email> mailing list. For more
+information, see <ulink url="http://www.oasis-open.org/docbook/"/>.</para>
+</legalnotice>
+</partinfo>
+
+<partintro>
+
+<para>This module contains the entity declarations for the standard ISO
+entity sets used by DocBook.</para>
+
+<para>When using this schema in driver files referring to the DTD version
+of this module, please use an entity
+declaration that uses the public identifier shown below:</para>
+
+<screen><![CDATA[<!ENTITY % dbcent PUBLIC
+"-//OASIS//ENTITIES DocBook Character Entities V4.2//EN"
+"dbcentx.mod">
+%dbcent;]]></screen>
+
+<para>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.
+</para>
+</partintro>
+</rng:div>
 
 <!-- ...................................................................... -->
 
-<!-- This module usually contains the entity declarations for the
-     standard ISO entity sets used by DocBook. However, there is no
-     RELAX NG equivalent, so this file is empty. -->
+<div db:name="sgml.features" db:declare="no">
+
+<div db:name="ISOamsa.module">
+<db:parameter-entity-definition name="ISOamsa"
+    public="ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN"/>
+</div>
+
+<div db:name="ISOamsb.module">
+<db:parameter-entity-definition name="ISOamsb"
+    public="ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN"/>
+</div>
+
+<div db:name="ISOamsc.module">
+<db:parameter-entity-definition name="ISOamsc"
+    public="ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN"/>
+</div>
+
+<div db:name="ISOamsn.module">
+<db:parameter-entity-definition name="ISOamsn"
+    public="ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN"/>
+</div>
+
+<div db:name="ISOamso.module">
+<db:parameter-entity-definition name="ISOamso"
+    public="ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN"/>
+</div>
+
+<div db:name="ISOamsr.module">
+<db:parameter-entity-definition name="ISOamsr"
+    public="ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN"/>
+</div>
+
+<div db:name="ISObox.module">
+<db:parameter-entity-definition name="ISObox"
+    public="ISO 8879:1986//ENTITIES Box and Line Drawing//EN"/>
+</div>
+
+<div db:name="ISOcyr1.module">
+<db:parameter-entity-definition name="ISOcyr1"
+    public="ISO 8879:1986//ENTITIES Russian Cyrillic//EN"/>
+</div>
+
+<div db:name="ISOcyr2.module">
+<db:parameter-entity-definition name="ISOcyr2"
+    public="ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN"/>
+</div>
+
+<div db:name="ISOdia.module">
+<db:parameter-entity-definition name="ISOdia"
+    public="ISO 8879:1986//ENTITIES Diacritical Marks//EN"/>
+</div>
+
+<div db:name="ISOgrk1.module">
+<db:parameter-entity-definition name="ISOgrk1"
+    public="ISO 8879:1986//ENTITIES Greek Letters//EN"/>
+</div>
+
+<div db:name="ISOgrk2.module">
+<db:parameter-entity-definition name="ISOgrk2"
+    public="ISO 8879:1986//ENTITIES Monotoniko Greek//EN"/>
+</div>
+
+<div db:name="ISOgrk3.module">
+<db:parameter-entity-definition name="ISOgrk3"
+    public="ISO 8879:1986//ENTITIES Greek Symbols//EN"/>
+</div>
+
+<div db:name="ISOgrk4.module">
+<db:parameter-entity-definition name="ISOgrk4"
+    public="ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN"/>
+</div>
+
+<div db:name="ISOlat1.module">
+<db:parameter-entity-definition name="ISOlat1"
+    public="ISO 8879:1986//ENTITIES Added Latin 1//EN"/>
+</div>
+
+<div db:name="ISOlat2.module">
+<db:parameter-entity-definition name="ISOlat2"
+    public="ISO 8879:1986//ENTITIES Added Latin 2//EN"/>
+</div>
+
+<div db:name="ISOnum.module">
+<db:parameter-entity-definition name="ISOnum"
+    public="ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN"/>
+</div>
+
+<div db:name="ISOpub.module">
+<db:parameter-entity-definition name="ISOpub"
+    public="ISO 8879:1986//ENTITIES Publishing//EN"/>
+</div>
+
+<div db:name="ISOtech.module">
+<db:parameter-entity-definition name="ISOtech"
+    public="ISO 8879:1986//ENTITIES General Technical//EN"/>
+</div>
+</div>
+
+<div db:name="xml.features" db:declare="no">
+
+<div db:name="isoamsa.module">
+<db:parameter-entity-definition name="isoamsa"
+    public="iso 8879:1986//entities added math symbols: arrow relations//en//xml"
+    system="ent/iso-amsa.ent"/>
+</div>
+
+<div db:name="isoamsb.module">
+<db:parameter-entity-definition name="isoamsb"
+    public="iso 8879:1986//entities added math symbols: binary operators//en//xml"
+    system="ent/iso-amsb.ent"/>
+</div>
+
+<div db:name="isoamsc.module">
+<db:parameter-entity-definition name="isoamsc"
+    public="iso 8879:1986//entities added math symbols: delimiters//en//xml"
+    system="ent/iso-amsc.ent"/>
+</div>
+
+<div db:name="isoamsn.module">
+<db:parameter-entity-definition name="isoamsn"
+    public="iso 8879:1986//entities added math symbols: negated relations//en//xml"
+    system="ent/iso-amsn.ent"/>
+</div>
+
+<div db:name="isoamso.module">
+<db:parameter-entity-definition name="isoamso"
+    public="iso 8879:1986//entities added math symbols: ordinary//en//xml"
+    system="ent/iso-amso.ent"/>
+</div>
+
+<div db:name="isoamsr.module">
+<db:parameter-entity-definition name="isoamsr"
+    public="iso 8879:1986//entities added math symbols: relations//en//xml"
+    system="ent/iso-amsr.ent"/>
+</div>
+
+<div db:name="isobox.module">
+<db:parameter-entity-definition name="isobox"
+    public="iso 8879:1986//entities box and line drawing//en//xml"
+    system="ent/iso-box.ent"/>
+</div>
+
+<div db:name="isocyr1.module">
+<db:parameter-entity-definition name="isocyr1"
+    public="iso 8879:1986//entities russian cyrillic//en//xml"
+    system="ent/iso-cyr1.ent"/>
+</div>
+
+<div db:name="isocyr2.module">
+<db:parameter-entity-definition name="isocyr2"
+    public="iso 8879:1986//entities non-russian cyrillic//en//xml"
+    system="ent/iso-cyr2.ent"/>
+</div>
+
+<div db:name="isodia.module">
+<db:parameter-entity-definition name="isodia"
+    public="iso 8879:1986//entities diacritical marks//en//xml"
+    system="ent/iso-dia.ent"/>
+</div>
+
+<div db:name="isogrk1.module">
+<db:parameter-entity-definition name="isogrk1"
+    public="iso 8879:1986//entities greek letters//en//xml"
+    system="ent/iso-grk1.ent"/>
+</div>
+
+<div db:name="isogrk2.module">
+<db:parameter-entity-definition name="isogrk2"
+    public="iso 8879:1986//entities monotoniko greek//en//xml"
+    system="ent/iso-grk2.ent"/>
+</div>
+
+<div db:name="isogrk3.module">
+<db:parameter-entity-definition name="isogrk3"
+    public="iso 8879:1986//entities greek symbols//en//xml"
+    system="ent/iso-grk3.ent"/>
+</div>
+
+<div db:name="isogrk4.module">
+<db:parameter-entity-definition name="isogrk4"
+    public="iso 8879:1986//entities alternative greek symbols//en//xml"
+    system="ent/iso-grk4.ent"/>
+</div>
+
+<div db:name="isolat1.module">
+<db:parameter-entity-definition name="isolat1"
+    public="iso 8879:1986//entities added latin 1//en//xml"
+    system="ent/iso-lat1.ent"/>
+</div>
+
+<div db:name="isolat2.module">
+<db:parameter-entity-definition name="isolat2"
+    public="iso 8879:1986//entities added latin 2//en//xml"
+    system="ent/iso-lat2.ent"/>
+</div>
+
+<div db:name="isonum.module">
+<db:parameter-entity-definition name="isonum"
+    public="iso 8879:1986//entities numeric and special graphic//en//xml"
+    system="ent/iso-num.ent"/>
+</div>
+
+<div db:name="isopub.module">
+<db:parameter-entity-definition name="isopub"
+    public="iso 8879:1986//entities publishing//en//xml"
+    system="ent/iso-pub.ent"/>
+</div>
+
+<div db:name="isotech.module">
+<db:parameter-entity-definition name="isotech"
+    public="ISO 8879:1986//ENTITIES General Technical//EN//XML"
+    system="ent/iso-tech.ent"/>
+</div>
+</div>
+
+<div db:name="ISOamsa.module">
+<db:parameter-entity-reference name="ISOamsa"/>
+</div>
+
+<div db:name="ISOamsb.module">
+<db:parameter-entity-reference name="ISOamsb"/>
+</div>
+
+<div db:name="ISOamsc.module">
+<db:parameter-entity-reference name="ISOamsc"/>
+</div>
+
+<div db:name="ISOamsn.module">
+<db:parameter-entity-reference name="ISOamsn"/>
+</div>
+
+<div db:name="ISOamso.module">
+<db:parameter-entity-reference name="ISOamso"/>
+</div>
+
+<div db:name="ISOamsr.module">
+<db:parameter-entity-reference name="ISOamsr"/>
+</div>
+
+<div db:name="ISObox.module">
+<db:parameter-entity-reference name="ISObox"/>
+</div>
+
+<div db:name="ISOcyr1.module">
+<db:parameter-entity-reference name="ISOcyr1"/>
+</div>
+
+<div db:name="ISOcyr2.module">
+<db:parameter-entity-reference name="ISOcyr2"/>
+</div>
+
+<div db:name="ISOdia.module">
+<db:parameter-entity-reference name="ISOdia"/>
+</div>
+
+<div db:name="ISOgrk1.module">
+<db:parameter-entity-reference name="ISOgrk1"/>
+</div>
+
+<div db:name="ISOgrk2.module">
+<db:parameter-entity-reference name="ISOgrk2"/>
+</div>
+
+<div db:name="ISOgrk3.module">
+<db:parameter-entity-reference name="ISOgrk3"/>
+</div>
+
+<div db:name="ISOgrk4.module">
+<db:parameter-entity-reference name="ISOgrk4"/>
+</div>
+
+<div db:name="ISOlat1.module">
+<db:parameter-entity-reference name="ISOlat1"/>
+</div>
+
+<div db:name="ISOlat2.module">
+<db:parameter-entity-reference name="ISOlat2"/>
+</div>
+
+<div db:name="ISOnum.module">
+<db:parameter-entity-reference name="ISOnum"/>
+</div>
+
+<div db:name="ISOpub.module">
+<db:parameter-entity-reference name="ISOpub"/>
+</div>
+
+<div db:name="ISOtech.module">
+<db:parameter-entity-reference name="ISOtech"/>
+</div>
+
+<!-- End of DocBook character entity sets module V4.2 ..................... -->
+<!-- ...................................................................... -->
 
 </grammar>
index 3f2350946f9c687eed73bd31c4b1811263f875d3..1b81c77c6091aede7c2f4bd8a1b08b177782cf1a 100644 (file)
@@ -1,46 +1,95 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<grammar datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
-         xmlns="http://relaxng.org/ns/structure/1.0"
-         xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">
+<grammar xmlns="http://relaxng.org/ns/structure/1.0"
+         xmlns:rng="http://relaxng.org/ns/structure/1.0"
+         xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
+         xmlns:s="http://www.ascc.net/xml/schematron"
+         xmlns:doc="http://nwalsh.com/xmlns/documentation"
+         xmlns:db="http://nwalsh.com/xmlns/docbook-grammar-structure"
+         datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 
-<!-- ...................................................................... -->
-<!-- DocBook additional general entities V4.2 ............................. -->
-
-<!-- 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).
+<rng:div doc:docbook="yes" xmlns="">
+<partinfo>
+<releaseinfo
+   role="cvs">$Id$</releaseinfo>
+<title>DocBook Additional General Entities</title>
+<productname>DocBook</productname>
+<productnumber>4.2</productnumber>
+<releaseinfo role="filename">dbgenent</releaseinfo>
+<copyright>
+<year>1992</year>
+<year>1993</year>
+<year>1994</year>
+<year>1995</year>
+<year>1996</year>
+<year>1997</year>
+<year>1998</year>
+<year>1999</year>
+<year>2000</year>
+<year>2001</year>
+<year>2002</year>
+<holder>HaL Computer Systems, Inc.</holder>
+<holder>O'Reilly &amp; Associates, Inc.</holder>
+<holder>ArborText, Inc.</holder>
+<holder>Fujitsu Software Corporation</holder>
+<holder>Norman Walsh</holder>
+<holder>Sun Microsystems, Inc.</holder>
+<holder>OASIS Open, Inc.</holder>
+</copyright>
 
-     In DTD driver files referring to this module, please use an entity
-     declaration that uses the public identifier shown below:
+<legalnotice>
+<para>Permission to use, copy, modify and distribute the DocBook schema
+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 schema for
+any purpose. It is provided <quote>as is</quote> without expressed or implied
+warranty.</para>
 
-     <!ENTITY % dbgenent PUBLIC
-     "-//OASIS//ENTITIES DocBook Additional General Entities V4.2//EN"
-     "dbgenent.mod">
-     %dbgenent;
--->
+<para>If you modify the DocBook in any way, except for declaring and
+referencing additional sets of general entities and declaring
+additional notations, label your schema as a variant of DocBook. See
+the maintenance documentation for more information.</para>
 
-<!-- File dbgenent.mod .................................................... -->
+<para>Please direct all questions, bug reports, or suggestions for
+changes to the <email>docbook@lists.oasis-open.org</email> mailing list. For more
+information, see <ulink url="http://www.oasis-open.org/docbook/"/>.</para>
+</legalnotice>
+</partinfo>
 
-<!-- You can edit this file to add the following:
+<partintro>
+<para>This module is a place holder for additional general entity declarations.</para>
 
-     o General entity declarations of any kind.  For example:
+<para>When using this schema in driver files referring to the DTD version
+of this module, please use an entity
+declaration that uses the public identifier shown below:</para>
 
-       <!ENTITY productname "WinWidget">          (small boilerplate)
-       <!ENTITY legal-notice SYSTEM "notice.sgm"> (large boilerplate)
+<screen><![CDATA[<!ENTITY % dbgenent PUBLIC
+"-//OASIS//ENTITIES DocBook Additional General Entities V4.2//EN"
+"dbgenent.mod">
+%dbgenent;]]></screen>
 
-     o Notation declarations.  For example:
+<para>In the DTD versions of this module, you can edit this file to
+add the following:</para>
 
-       <!NOTATION chicken-scratch SYSTEM>
+<itemizedlist>
+<listitem><para>General entity declarations of any kind.  For example:</para>
+<programlisting>&lt;!ENTITY productname "WinWidget"&gt;          <lineannotation>(small boilerplate)</lineannotation>
+&lt;!ENTITY legal-notice SYSTEM "notice.sgm"&gt; <lineannotation>(large boilerplate)</lineannotation></programlisting>
+</listitem>
 
-     o Declarations for and references to external parameter entities
-       containing collections of any of the above.  For example:
+<listitem><para>Notation declarations.  For example:</para>
+<programlisting>&lt;!NOTATION chicken-scratch SYSTEM&gt;</programlisting>
+</listitem>
 
-       <!ENTITY % all-titles PUBLIC "-//DocTools//ELEMENTS Book Titles//EN"
-           "booktitles.ent">
-       %all-titles;
--->
+<listitem><para>Declarations for and references to external parameter entities
+containing collections of any of the above.  For example:</para>
+<programlisting><![CDATA[<!ENTITY % all-titles PUBLIC "-//DocTools//ELEMENTS Book Titles//EN"
+    "booktitles.ent">
+%all-titles;]]></programlisting>
+</listitem>
+</itemizedlist>
+</partintro>
+</rng:div>
 
 <!-- End of DocBook additional general entities V4.2 ...................... -->
 <!-- ...................................................................... -->
index 32beac03ecf924f809e85687832ade443cc77000..a41e263037c28db2a6bbffb1cc96b7f0b3accecf 100644 (file)
@@ -1,61 +1,88 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<grammar datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" xmlns="http://relaxng.org/ns/structure/1.0" xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">
-<!-- ...................................................................... -->
-<!-- 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$
-
-     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"
+         xmlns:rng="http://relaxng.org/ns/structure/1.0"
+         xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
+         xmlns:s="http://www.ascc.net/xml/schematron"
+         xmlns:doc="http://nwalsh.com/xmlns/documentation"
+         xmlns:db="http://nwalsh.com/xmlns/docbook-grammar-structure"
+         datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+
+<rng:div doc:docbook="yes" xmlns="">
+<partinfo>
+<releaseinfo
+   role="cvs">$Id$</releaseinfo>
+<title>DocBook Document Hierarchy</title>
+<productname>DocBook</productname>
+<productnumber>4.2</productnumber>
+<releaseinfo role="filename">dbhier</releaseinfo>
+<copyright>
+<year>1992</year>
+<year>1993</year>
+<year>1994</year>
+<year>1995</year>
+<year>1996</year>
+<year>1997</year>
+<year>1998</year>
+<year>1999</year>
+<year>2000</year>
+<year>2001</year>
+<year>2002</year>
+<holder>HaL Computer Systems, Inc.</holder>
+<holder>O'Reilly &amp; Associates, Inc.</holder>
+<holder>ArborText, Inc.</holder>
+<holder>Fujitsu Software Corporation</holder>
+<holder>Norman Walsh</holder>
+<holder>Sun Microsystems, Inc.</holder>
+<holder>OASIS Open, Inc.</holder>
+</copyright>
+
+<legalnotice>
+<para>Permission to use, copy, modify and distribute the DocBook schema
+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 schema for
+any purpose. It is provided <quote>as is</quote> without expressed or implied
+warranty.</para>
+
+<para>If you modify the DocBook in any way, except for declaring and
+referencing additional sets of general entities and declaring
+additional notations, label your schema as a variant of DocBook. See
+the maintenance documentation for more information.</para>
+
+<para>Please direct all questions, bug reports, or suggestions for
+changes to the <email>docbook@lists.oasis-open.org</email> mailing list. For more
+information, see <ulink url="http://www.oasis-open.org/docbook/"/>.</para>
+</legalnotice>
+</partinfo>
+
+<partintro>
+<para>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.</para>
+
+<para>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.</para>
+
+<para>When using this schema in driver files referring to the DTD
+version of this module, please use an entity declaration that uses the
+public identifier shown below:</para>
+
+<screen><![CDATA[<!ENTITY % dbheir PUBLIC
+"-//OASIS//ELEMENTS DocBook Document Hierarchy V4.2//EN"
+"dbhier.mod">
+%dbhier;]]></screen>
+
+<para>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.</para>
+</partintro>
+</rng:div>
+
   <define name="local.appendix.class">
     <notAllowed/>
   </define>
       <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
 <!-- 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>
       <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>
       </oneOrMore>
     </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-->
+
+  <div db:name="set.content.module">
+
+    <div db:name="set.module">
+      <define name="local.set.attrib">
+        <empty/>
+      </define>
+      <define name="set.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="set">
+        <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>
+      </div>
+
 <!-- 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-->
+
+      <div db:name="set.attlist">
+        <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>
+      </div>
+    </div>
+
+    <div db:name="setinfo.module">
+      <define name="local.setinfo.attrib">
+        <empty/>
+      </define>
+      <define name="setinfo.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="setinfo">
+        <define name="setinfo">
+          <element name="setinfo">
+            <ref name="setinfo.attlist"/>
+            <oneOrMore>
+              <ref name="info.class"/>
+            </oneOrMore>
+          </element>
+        </define>
+      </div>
+
 <!-- 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-->
+
+      <div db:name="setinfo.attlist">
+        <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>
+      </div>
+    </div>
+  </div>
+
 <!-- ...................................................................... -->
 <!-- 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-->
+
+  <div db:name="book.content.module">
+
+    <div db:name="book.module">
+      <define name="local.book.attrib">
+        <empty/>
+      </define>
+      <define name="book.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="book">
+        <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>
+      </div>
+
 <!-- 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-->
+
+      <div db:name="book.attlist">
+        <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>
+      </div>
+    </div>
+
+    <div db:name="bookinfo.module">
+      <define name="local.bookinfo.attrib">
+        <empty/>
+      </define>
+      <define name="bookinfo.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="bookinfo">
+        <define name="bookinfo">
+          <element name="bookinfo">
+            <ref name="bookinfo.attlist"/>
+            <oneOrMore>
+              <ref name="info.class"/>
+            </oneOrMore>
+          </element>
+        </define>
+      </div>
+
 <!-- 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-->
+
+      <div db:name="bookinfo.attlist">
+        <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>
+      </div>
+    </div>
+  </div>
+
 <!-- ...................................................................... -->
 <!-- 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-->
+
+  <div db:name="dedication.module">
+    <define name="local.dedication.attrib">
+      <empty/>
+    </define>
+    <define name="dedication.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="dedication">
+      <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>
+    </div>
+
+    <div db:name="dedication.attlist">
+      <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>
+    </div>
+  </div>
+
+  <div db:name="colophon.module">
+    <define name="local.colophon.attrib">
+      <empty/>
+    </define>
+    <define name="colophon.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="colophon">
+      <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>
+    </div>
+
+    <div db:name="colophon.attlist">
+      <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>
+    </div>
+  </div>
+
+  <div db:name="toc.content.module">
+
+    <div db:name="toc.module">
+      <define name="local.toc.attrib">
+        <empty/>
+      </define>
+      <define name="toc.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="toc">
+        <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>
+      </div>
+
+      <div db:name="toc.attlist">
+        <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>
+      </div>
+    </div>
+
+    <div db:name="tocfront.module">
+      <define name="local.tocfront.attrib">
+        <empty/>
+      </define>
+      <define name="tocfront.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="tocfront">
+        <define name="tocfront">
+          <element name="tocfront">
+            <ref name="tocfront.attlist"/>
+            <zeroOrMore>
+              <ref name="para.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
 <!-- 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-->
+
+      <div db:name="tocfront.attlist">
+        <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>
+      </div>
+    </div>
+
+    <div db:name="tocentry.module">
+      <define name="local.tocentry.attrib">
+        <empty/>
+      </define>
+      <define name="tocentry.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="tocentry">
+        <define name="tocentry">
+          <element name="tocentry">
+            <ref name="tocentry.attlist"/>
+            <zeroOrMore>
+              <ref name="para.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
 <!-- 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-->
+
+      <div db:name="tocentry.attlist">
+        <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>
+      </div>
+    </div>
+
+    <div db:name="tocpart.module">
+      <define name="local.tocpart.attrib">
+        <empty/>
+      </define>
+      <define name="tocpart.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="tocpart">
+        <define name="tocpart">
+          <element name="tocpart">
+            <ref name="tocpart.attlist"/>
+            <oneOrMore>
+              <ref name="tocentry"/>
+            </oneOrMore>
+            <zeroOrMore>
+              <ref name="tocchap"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="tocpart.attlist">
+        <define name="tocpart.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="tocpart.role.attrib"/>
+          <ref name="local.tocpart.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="tocchap.module">
+      <define name="local.tocchap.attrib">
+        <empty/>
+      </define>
+      <define name="tocchap.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="tocchap">
+        <define name="tocchap">
+          <element name="tocchap">
+            <ref name="tocchap.attlist"/>
+            <oneOrMore>
+              <ref name="tocentry"/>
+            </oneOrMore>
+            <zeroOrMore>
+              <ref name="toclevel1"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="tocchap.attlist">
+        <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>
+      </div>
+    </div>
+
+    <div db:name="toclevel1.module">
+      <define name="local.toclevel1.attrib">
+        <empty/>
+      </define>
+      <define name="toclevel1.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="toclevel1">
+        <define name="toclevel1">
+          <element name="toclevel1">
+            <ref name="toclevel1.attlist"/>
+            <oneOrMore>
+              <ref name="tocentry"/>
+            </oneOrMore>
+            <zeroOrMore>
+              <ref name="toclevel2"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="toclevel1.attlist">
+        <define name="toclevel1.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="toclevel1.role.attrib"/>
+          <ref name="local.toclevel1.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="toclevel2.module">
+      <define name="local.toclevel2.attrib">
+        <empty/>
+      </define>
+      <define name="toclevel2.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="toclevel2">
+        <define name="toclevel2">
+          <element name="toclevel2">
+            <ref name="toclevel2.attlist"/>
+            <oneOrMore>
+              <ref name="tocentry"/>
+            </oneOrMore>
+            <zeroOrMore>
+              <ref name="toclevel3"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="toclevel2.attlist">
+        <define name="toclevel2.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="toclevel2.role.attrib"/>
+          <ref name="local.toclevel2.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="toclevel3.module">
+      <define name="local.toclevel3.attrib">
+        <empty/>
+      </define>
+      <define name="toclevel3.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="toclevel3">
+        <define name="toclevel3">
+          <element name="toclevel3">
+            <ref name="toclevel3.attlist"/>
+            <oneOrMore>
+              <ref name="tocentry"/>
+            </oneOrMore>
+            <zeroOrMore>
+              <ref name="toclevel4"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="toclevel3.attlist">
+        <define name="toclevel3.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="toclevel3.role.attrib"/>
+          <ref name="local.toclevel3.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="toclevel4.module">
+      <define name="local.toclevel4.attrib">
+        <empty/>
+      </define>
+      <define name="toclevel4.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="toclevel4">
+        <define name="toclevel4">
+          <element name="toclevel4">
+            <ref name="toclevel4.attlist"/>
+            <oneOrMore>
+              <ref name="tocentry"/>
+            </oneOrMore>
+            <zeroOrMore>
+              <ref name="toclevel5"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="toclevel4.attlist">
+        <define name="toclevel4.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="toclevel4.role.attrib"/>
+          <ref name="local.toclevel4.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="toclevel5.module">
+      <define name="local.toclevel5.attrib">
+        <empty/>
+      </define>
+      <define name="toclevel5.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="toclevel5">
+        <define name="toclevel5">
+          <element name="toclevel5">
+            <ref name="toclevel5.attlist"/>
+            <oneOrMore>
+              <ref name="tocentry"/>
+            </oneOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="toclevel5.attlist">
+        <define name="toclevel5.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="toclevel5.role.attrib"/>
+          <ref name="local.toclevel5.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="tocback.module">
+      <define name="local.tocback.attrib">
+        <empty/>
+      </define>
+      <define name="tocback.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="tocback">
+        <define name="tocback">
+          <element name="tocback">
+            <ref name="tocback.attlist"/>
+            <zeroOrMore>
+              <ref name="para.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
 <!-- 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-->
+
+      <div db:name="tocback.attlist">
+        <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>
+      </div>
+    </div>
+  </div>
+
+  <div db:name="lot.content.module">
+
+    <div db:name="lot.module">
+      <define name="local.lot.attrib">
+        <empty/>
+      </define>
+      <define name="lot.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="lot">
+        <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>
+      </div>
+
+      <div db:name="lot.attlist">
+        <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>
+      </div>
+    </div>
+
+    <div db:name="lotentry.module">
+      <define name="local.lotentry.attrib">
+        <empty/>
+      </define>
+      <define name="lotentry.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="lotentry">
+        <define name="lotentry">
+          <element name="lotentry">
+            <ref name="lotentry.attlist"/>
+            <zeroOrMore>
+              <ref name="para.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
 <!-- 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-->
+
+      <div db:name="lotentry.attlist">
+        <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>
+      </div>
+    </div>
+  </div>
+
 <!-- ...................................................................... -->
 <!-- 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-->
+
+  <div db:name="appendix.module">
+    <define name="local.appendix.attrib">
+      <empty/>
+    </define>
+    <define name="appendix.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="appendix">
+      <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>
+    </div>
+
+    <div db:name="appendix.attlist">
+      <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>
+    </div>
+  </div>
+
+  <div db:name="chapter.module">
+    <define name="local.chapter.attrib">
+      <empty/>
+    </define>
+    <define name="chapter.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="chapter">
+      <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>
+    </div>
+
+    <div db:name="chapter.attlist">
+      <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>
+    </div>
+  </div>
+
+<!-- Note that Part was to have its content model reduced in V4.2.  This
+change will not be made after all. -->
+
+  <div db:name="part.module">
+    <define name="local.part.attrib">
+      <empty/>
+    </define>
+    <define name="part.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="part">
+      <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>
+    </div>
+
+    <div db:name="part.attlist">
+      <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>
+    </div>
+
 <!--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-->
+
+  </div>
+
+  <div db:name="preface.module">
+    <define name="local.preface.attrib">
+      <empty/>
+    </define>
+    <define name="preface.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="preface">
+      <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>
+    </div>
+
+    <div db:name="preface.attlist">
+      <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>
+    </div>
+  </div>
+
+  <div db:name="reference.module">
+    <define name="local.reference.attrib">
+      <empty/>
+    </define>
+    <define name="reference.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="reference">
+      <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>
+    </div>
+
+    <div db:name="reference.attlist">
+      <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>
+    </div>
+
+<!--ELEMENT PartIntro (defined below)-->
+
+  </div>
+
+  <div db:name="partintro.module">
+    <define name="local.partintro.attrib">
+      <empty/>
+    </define>
+    <define name="partintro.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="partintro">
+      <define name="partintro">
+        <element name="partintro">
+          <ref name="partintro.attlist"/>
+          <optional>
+            <ref name="div.title.content"/>
+          </optional>
+          <ref name="bookcomponent.content"/>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="partintro.attlist">
+      <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>
+    </div>
+  </div>
+
 <!-- ...................................................................... -->
 <!-- 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>
+
+  <div db:name="appendixinfo.module">
+    <define name="local.appendixinfo.attrib">
+      <empty/>
+    </define>
+    <define name="appendixinfo.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="appendixinfo">
+      <define name="appendixinfo">
+        <element name="appendixinfo">
+          <ref name="appendixinfo.attlist"/>
           <oneOrMore>
-            <ref name="divcomponent.mix"/>
+            <ref name="info.class"/>
           </oneOrMore>
-          <choice>
-            <zeroOrMore>
-              <ref name="refentry.class"/>
-            </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="appendixinfo.attlist">
+      <define name="appendixinfo.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="appendixinfo.role.attrib"/>
+        <ref name="local.appendixinfo.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="bibliographyinfo.module">
+    <define name="local.bibliographyinfo.attrib">
+      <empty/>
+    </define>
+    <define name="bibliographyinfo.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="bibliographyinfo">
+      <define name="bibliographyinfo">
+        <element name="bibliographyinfo">
+          <ref name="bibliographyinfo.attlist"/>
+          <oneOrMore>
+            <ref name="info.class"/>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="bibliographyinfo.attlist">
+      <define name="bibliographyinfo.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="bibliographyinfo.role.attrib"/>
+        <ref name="local.bibliographyinfo.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="chapterinfo.module">
+    <define name="local.chapterinfo.attrib">
+      <empty/>
+    </define>
+    <define name="chapterinfo.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="chapterinfo">
+      <define name="chapterinfo">
+        <element name="chapterinfo">
+          <ref name="chapterinfo.attlist"/>
+          <oneOrMore>
+            <ref name="info.class"/>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="chapterinfo.attlist">
+      <define name="chapterinfo.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="chapterinfo.role.attrib"/>
+        <ref name="local.chapterinfo.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="glossaryinfo.module">
+    <define name="local.glossaryinfo.attrib">
+      <empty/>
+    </define>
+    <define name="glossaryinfo.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="glossaryinfo">
+      <define name="glossaryinfo">
+        <element name="glossaryinfo">
+          <ref name="glossaryinfo.attlist"/>
+          <oneOrMore>
+            <ref name="info.class"/>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="glossaryinfo.attlist">
+      <define name="glossaryinfo.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="glossaryinfo.role.attrib"/>
+        <ref name="local.glossaryinfo.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="indexinfo.module">
+    <define name="local.indexinfo.attrib">
+      <empty/>
+    </define>
+    <define name="indexinfo.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="indexinfo">
+      <define name="indexinfo">
+        <element name="indexinfo">
+          <ref name="indexinfo.attlist"/>
+          <oneOrMore>
+            <ref name="info.class"/>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="indexinfo.attlist">
+      <define name="indexinfo.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="indexinfo.role.attrib"/>
+        <ref name="local.indexinfo.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="setindexinfo.module">
+    <define name="local.setindexinfo.attrib">
+      <empty/>
+    </define>
+    <define name="setindexinfo.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="setindexinfo">
+      <define name="setindexinfo">
+        <element name="setindexinfo">
+          <ref name="setindexinfo.attlist"/>
+          <oneOrMore>
+            <ref name="info.class"/>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="setindexinfo.attlist">
+      <define name="setindexinfo.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="setindexinfo.role.attrib"/>
+        <ref name="local.setindexinfo.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="partinfo.module">
+    <define name="local.partinfo.attrib">
+      <empty/>
+    </define>
+    <define name="partinfo.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="partinfo">
+      <define name="partinfo">
+        <element name="partinfo">
+          <ref name="partinfo.attlist"/>
+          <oneOrMore>
+            <ref name="info.class"/>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="partinfo.attlist">
+      <define name="partinfo.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="partinfo.role.attrib"/>
+        <ref name="local.partinfo.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="prefaceinfo.module">
+    <define name="local.prefaceinfo.attrib">
+      <empty/>
+    </define>
+    <define name="prefaceinfo.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="prefaceinfo">
+      <define name="prefaceinfo">
+        <element name="prefaceinfo">
+          <ref name="prefaceinfo.attlist"/>
+          <oneOrMore>
+            <ref name="info.class"/>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="prefaceinfo.attlist">
+      <define name="prefaceinfo.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="prefaceinfo.role.attrib"/>
+        <ref name="local.prefaceinfo.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="refentryinfo.module">
+    <define name="local.refentryinfo.attrib">
+      <empty/>
+    </define>
+    <define name="refentryinfo.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="refentryinfo">
+      <define name="refentryinfo">
+        <element name="refentryinfo">
+          <ref name="refentryinfo.attlist"/>
+          <oneOrMore>
+            <ref name="info.class"/>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="refentryinfo.attlist">
+      <define name="refentryinfo.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="refentryinfo.role.attrib"/>
+        <ref name="local.refentryinfo.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="refsectioninfo.module">
+    <define name="local.refsectioninfo.attrib">
+      <empty/>
+    </define>
+    <define name="refsectioninfo.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="refsectioninfo">
+      <define name="refsectioninfo">
+        <element name="refsectioninfo">
+          <ref name="refsectioninfo.attlist"/>
+          <oneOrMore>
+            <ref name="info.class"/>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="refsectioninfo.attlist">
+      <define name="refsectioninfo.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="refsectioninfo.role.attrib"/>
+        <ref name="local.refsectioninfo.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="refsect1info.module">
+    <define name="local.refsect1info.attrib">
+      <empty/>
+    </define>
+    <define name="refsect1info.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="refsect1info">
+      <define name="refsect1info">
+        <element name="refsect1info">
+          <ref name="refsect1info.attlist"/>
+          <oneOrMore>
+            <ref name="info.class"/>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="refsect1info.attlist">
+      <define name="refsect1info.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="refsect1info.role.attrib"/>
+        <ref name="local.refsect1info.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="refsect2info.module">
+    <define name="local.refsect2info.attrib">
+      <empty/>
+    </define>
+    <define name="refsect2info.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="refsect2info">
+      <define name="refsect2info">
+        <element name="refsect2info">
+          <ref name="refsect2info.attlist"/>
+          <oneOrMore>
+            <ref name="info.class"/>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="refsect2info.attlist">
+      <define name="refsect2info.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="refsect2info.role.attrib"/>
+        <ref name="local.refsect2info.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="refsect3info.module">
+    <define name="local.refsect3info.attrib">
+      <empty/>
+    </define>
+    <define name="refsect3info.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="refsect3info">
+      <define name="refsect3info">
+        <element name="refsect3info">
+          <ref name="refsect3info.attlist"/>
+          <oneOrMore>
+            <ref name="info.class"/>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="refsect3info.attlist">
+      <define name="refsect3info.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="refsect3info.role.attrib"/>
+        <ref name="local.refsect3info.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="refsynopsisdivinfo.module">
+    <define name="local.refsynopsisdivinfo.attrib">
+      <empty/>
+    </define>
+    <define name="refsynopsisdivinfo.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="refsynopsisdivinfo">
+      <define name="refsynopsisdivinfo">
+        <element name="refsynopsisdivinfo">
+          <ref name="refsynopsisdivinfo.attlist"/>
+          <oneOrMore>
+            <ref name="info.class"/>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="refsynopsisdivinfo.attlist">
+      <define name="refsynopsisdivinfo.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="refsynopsisdivinfo.role.attrib"/>
+        <ref name="local.refsynopsisdivinfo.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="referenceinfo.module">
+    <define name="local.referenceinfo.attrib">
+      <empty/>
+    </define>
+    <define name="referenceinfo.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="referenceinfo">
+      <define name="referenceinfo">
+        <element name="referenceinfo">
+          <ref name="referenceinfo.attlist"/>
+          <oneOrMore>
+            <ref name="info.class"/>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="referenceinfo.attlist">
+      <define name="referenceinfo.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="referenceinfo.role.attrib"/>
+        <ref name="local.referenceinfo.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="sect1info.module">
+    <define name="local.sect1info.attrib">
+      <empty/>
+    </define>
+    <define name="sect1info.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="sect1info">
+      <define name="sect1info">
+        <element name="sect1info">
+          <ref name="sect1info.attlist"/>
+          <oneOrMore>
+            <ref name="info.class"/>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="sect1info.attlist">
+      <define name="sect1info.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="sect1info.role.attrib"/>
+        <ref name="local.sect1info.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="sect2info.module">
+    <define name="local.sect2info.attrib">
+      <empty/>
+    </define>
+    <define name="sect2info.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="sect2info">
+      <define name="sect2info">
+        <element name="sect2info">
+          <ref name="sect2info.attlist"/>
+          <oneOrMore>
+            <ref name="info.class"/>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="sect2info.attlist">
+      <define name="sect2info.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="sect2info.role.attrib"/>
+        <ref name="local.sect2info.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="sect3info.module">
+    <define name="local.sect3info.attrib">
+      <empty/>
+    </define>
+    <define name="sect3info.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="sect3info">
+      <define name="sect3info">
+        <element name="sect3info">
+          <ref name="sect3info.attlist"/>
+          <oneOrMore>
+            <ref name="info.class"/>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="sect3info.attlist">
+      <define name="sect3info.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="sect3info.role.attrib"/>
+        <ref name="local.sect3info.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="sect4info.module">
+    <define name="local.sect4info.attrib">
+      <empty/>
+    </define>
+    <define name="sect4info.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="sect4info">
+      <define name="sect4info">
+        <element name="sect4info">
+          <ref name="sect4info.attlist"/>
+          <oneOrMore>
+            <ref name="info.class"/>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="sect4info.attlist">
+      <define name="sect4info.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="sect4info.role.attrib"/>
+        <ref name="local.sect4info.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="sect5info.module">
+    <define name="local.sect5info.attrib">
+      <empty/>
+    </define>
+    <define name="sect5info.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="sect5info">
+      <define name="sect5info">
+        <element name="sect5info">
+          <ref name="sect5info.attlist"/>
+          <oneOrMore>
+            <ref name="info.class"/>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="sect5info.attlist">
+      <define name="sect5info.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="sect5info.role.attrib"/>
+        <ref name="local.sect5info.attrib"/>
+      </define>
+    </div>
+  </div>
+
+<!-- ...................................................................... -->
+<!-- Section (parallel to Sect*) ......................................... -->
+
+  <div db:name="section.content.module">
+
+    <div db:name="section.module">
+      <define name="local.section.attrib">
+        <empty/>
+      </define>
+      <define name="section.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="section">
+        <define name="section">
+          <element name="section">
+            <ref name="section.attlist"/>
+            <optional>
+              <ref name="sectioninfo"/>
+            </optional>
+            <ref name="sect.title.content"/>
             <zeroOrMore>
-              <ref name="section.class"/>
+              <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="simplesect"/>
+              <ref name="nav.class"/>
             </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-->
+          </element>
+        </define>
+      </div>
+
+      <div db:name="section.attlist">
+        <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>
+      </div>
+    </div>
+    <define name="sectioninfo.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="sectioninfo.module">
+      <define name="local.sectioninfo.attrib">
+        <empty/>
+      </define>
+
+      <div db:name="sectioninfo">
+        <define name="sectioninfo">
+          <element name="sectioninfo">
+            <ref name="sectioninfo.attlist"/>
+            <oneOrMore>
+              <ref name="info.class"/>
+            </oneOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="sectioninfo.attlist">
+        <define name="sectioninfo.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="sectioninfo.role.attrib"/>
+          <ref name="local.sectioninfo.attrib"/>
+        </define>
+      </div>
+    </div>
+  </div>
+
 <!-- ...................................................................... -->
 <!-- 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>
+
+  <div db:name="sect1.module">
+    <define name="local.sect1.attrib">
+      <empty/>
+    </define>
+    <define name="sect1.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="sect1">
+      <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>
-            <zeroOrMore>
+            <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"/>
-            </zeroOrMore>
-            <zeroOrMore>
+            </oneOrMore>
+            <oneOrMore>
               <ref name="sect2"/>
-            </zeroOrMore>
-            <zeroOrMore>
+            </oneOrMore>
+            <oneOrMore>
               <ref name="simplesect"/>
-            </zeroOrMore>
+            </oneOrMore>
           </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-->
+          <zeroOrMore>
+            <ref name="nav.class"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
 <!-- 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>
+
+    <div db:name="sect1.attlist">
+      <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>
+    </div>
+  </div>
+
+  <div db:name="sect2.module">
+    <define name="local.sect2.attrib">
+      <empty/>
+    </define>
+    <define name="sect2.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="sect2">
+      <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>
-            <zeroOrMore>
+            <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"/>
-            </zeroOrMore>
-            <zeroOrMore>
+            </oneOrMore>
+            <oneOrMore>
               <ref name="sect3"/>
-            </zeroOrMore>
-            <zeroOrMore>
+            </oneOrMore>
+            <oneOrMore>
               <ref name="simplesect"/>
-            </zeroOrMore>
+            </oneOrMore>
           </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-->
+          <zeroOrMore>
+            <ref name="nav.class"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
 <!-- 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>
+
+    <div db:name="sect2.attlist">
+      <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>
+    </div>
+  </div>
+
+  <div db:name="sect3.module">
+    <define name="local.sect3.attrib">
+      <empty/>
+    </define>
+    <define name="sect3.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="sect3">
+      <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>
-            <zeroOrMore>
+            <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"/>
-            </zeroOrMore>
-            <zeroOrMore>
+            </oneOrMore>
+            <oneOrMore>
               <ref name="sect4"/>
-            </zeroOrMore>
-            <zeroOrMore>
+            </oneOrMore>
+            <oneOrMore>
               <ref name="simplesect"/>
-            </zeroOrMore>
+            </oneOrMore>
           </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-->
+          <zeroOrMore>
+            <ref name="nav.class"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
 <!-- 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>
+
+    <div db:name="sect3.attlist">
+      <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>
+    </div>
+  </div>
+
+  <div db:name="sect4.module">
+    <define name="local.sect4.attrib">
+      <empty/>
+    </define>
+    <define name="sect4.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="sect4">
+      <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>
-            <zeroOrMore>
+            <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"/>
-            </zeroOrMore>
-            <zeroOrMore>
+            </oneOrMore>
+            <oneOrMore>
               <ref name="sect5"/>
-            </zeroOrMore>
-            <zeroOrMore>
+            </oneOrMore>
+            <oneOrMore>
               <ref name="simplesect"/>
-            </zeroOrMore>
+            </oneOrMore>
           </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-->
+          <zeroOrMore>
+            <ref name="nav.class"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
 <!-- 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>
+
+    <div db:name="sect4.attlist">
+      <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>
+    </div>
+
 <!--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>
+
+  </div>
+
+  <div db:name="sect5.module">
+    <define name="local.sect5.attrib">
+      <empty/>
+    </define>
+    <define name="sect5.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="sect5">
+      <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>
-            <zeroOrMore>
+            <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"/>
-            </zeroOrMore>
-            <zeroOrMore>
+            </oneOrMore>
+            <oneOrMore>
               <ref name="simplesect"/>
-            </zeroOrMore>
+            </oneOrMore>
           </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-->
+          <zeroOrMore>
+            <ref name="nav.class"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
 <!-- 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-->
+
+    <div db:name="sect5.attlist">
+      <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>
+    </div>
+  </div>
+
+  <div db:name="simplesect.module">
+    <define name="local.simplesect.attrib">
+      <empty/>
+    </define>
+    <define name="simplesect.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="simplesect">
+      <define name="simplesect">
+        <element name="simplesect">
+          <ref name="simplesect.attlist"/>
+          <ref name="sect.title.content"/>
+          <oneOrMore>
+            <ref name="divcomponent.mix"/>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="simplesect.attlist">
+      <define name="simplesect.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="simplesect.role.attrib"/>
+        <ref name="local.simplesect.attrib"/>
+      </define>
+    </div>
+  </div>
+
 <!-- ...................................................................... -->
 <!-- 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-->
+
+  <div db:name="bibliography.content.module">
+
+    <div db:name="bibliography.module">
+      <define name="local.bibliography.attrib">
+        <empty/>
+      </define>
+      <define name="bibliography.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="bibliography">
+        <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>
+      </div>
+
+      <div db:name="bibliography.attlist">
+        <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>
+      </div>
+    </div>
+
+    <div db:name="bibliodiv.module">
+      <define name="local.bibliodiv.attrib">
+        <empty/>
+      </define>
+      <define name="bibliodiv.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="bibliodiv">
+        <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>
+      </div>
+
+      <div db:name="bibliodiv.attlist">
+        <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>
+      </div>
+    </div>
+  </div>
+
 <!-- ...................................................................... -->
 <!-- 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-->
+
+  <div db:name="glossary.content.module">
+
+    <div db:name="glossary.module">
+      <define name="local.glossary.attrib">
+        <empty/>
+      </define>
+      <define name="glossary.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="glossary">
+        <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>
+      </div>
+
+      <div db:name="glossary.attlist">
+        <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>
+      </div>
+    </div>
+
+    <div db:name="glossdiv.module">
+      <define name="local.glossdiv.attrib">
+        <empty/>
+      </define>
+      <define name="glossdiv.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="glossdiv">
+        <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>
+      </div>
+
+      <div db:name="glossdiv.attlist">
+        <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>
+      </div>
+    </div>
+  </div>
+
 <!-- ...................................................................... -->
 <!-- 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-->
+
+  <div db:name="indexes.content.module">
+
+    <div db:name="indexes.module">
+      <define name="local.indexes.attrib">
+        <empty/>
+      </define>
+      <define name="indexes.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="index">
+        <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>
+      </div>
+
+      <div db:name="index.attlist">
+        <define name="index.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="indexes.role.attrib"/>
+          <ref name="local.indexes.attrib"/>
+        </define>
+      </div>
+
+      <div db:name="setindex">
+        <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>
+      </div>
+
+      <div db:name="setindex.attlist">
+        <define name="setindex.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="indexes.role.attrib"/>
+          <ref name="local.indexes.attrib"/>
+        </define>
+      </div>
+    </div>
+
 <!-- 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>
-      <zeroOrMore>
-        <ref name="indexdivcomponent.mix"/>
-      </zeroOrMore>
-      <choice>
-        <oneOrMore>
-          <ref name="indexentry"/>
-        </oneOrMore>
-        <ref name="segmentedlist"/>
-      </choice>
-    </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-->
+
+    <div db:name="indexdiv.module">
+      <define name="local.indexdiv.attrib">
+        <empty/>
+      </define>
+      <define name="indexdiv.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="indexdiv">
+        <define name="indexdiv">
+          <element name="indexdiv">
+            <ref name="indexdiv.attlist"/>
+            <optional>
+              <ref name="sect.title.content"/>
+            </optional>
+            <zeroOrMore>
+              <ref name="indexdivcomponent.mix"/>
+            </zeroOrMore>
+            <choice>
+              <oneOrMore>
+                <ref name="indexentry"/>
+              </oneOrMore>
+              <ref name="segmentedlist"/>
+            </choice>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="indexdiv.attlist">
+        <define name="indexdiv.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="indexdiv.role.attrib"/>
+          <ref name="local.indexdiv.attrib"/>
+        </define>
+      </div>
+    </div>
+
 <!-- 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-->
+
+    <div db:name="indexentry.module">
+      <define name="local.indexentry.attrib">
+        <empty/>
+      </define>
+      <define name="indexentry.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="indexentry">
+        <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>
+      </div>
+
+      <div db:name="indexentry.attlist">
+        <define name="indexentry.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="indexentry.role.attrib"/>
+          <ref name="local.indexentry.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="primsecterie.module">
+      <define name="local.primsecterie.attrib">
+        <empty/>
+      </define>
+      <define name="primsecterie.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="primaryie">
+        <define name="primaryie">
+          <element name="primaryie">
+            <ref name="primaryie.attlist"/>
+            <zeroOrMore>
+              <ref name="ndxterm.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
 <!-- 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-->
+
+      <div db:name="primaryie.attlist">
+        <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>
+      </div>
+
+      <div db:name="secondaryie">
+        <define name="secondaryie">
+          <element name="secondaryie">
+            <ref name="secondaryie.attlist"/>
+            <zeroOrMore>
+              <ref name="ndxterm.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
 <!-- 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-->
+
+      <div db:name="secondaryie.attlist">
+        <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>
+      </div>
+
+      <div db:name="tertiaryie">
+        <define name="tertiaryie">
+          <element name="tertiaryie">
+            <ref name="tertiaryie.attlist"/>
+            <zeroOrMore>
+              <ref name="ndxterm.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
 <!-- 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-->
+
+      <div db:name="tertiaryie.attlist">
+        <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>
+      </div>
+    </div>
+
+    <div db:name="seeie.module">
+      <define name="local.seeie.attrib">
+        <empty/>
+      </define>
+      <define name="seeie.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="seeie">
+        <define name="seeie">
+          <element name="seeie">
+            <ref name="seeie.attlist"/>
+            <zeroOrMore>
+              <ref name="ndxterm.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
 <!-- 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-->
+
+      <div db:name="seeie.attlist">
+        <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>
+      </div>
+    </div>
+
+    <div db:name="seealsoie.module">
+      <define name="local.seealsoie.attrib">
+        <empty/>
+      </define>
+      <define name="seealsoie.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="seealsoie">
+        <define name="seealsoie">
+          <element name="seealsoie">
+            <ref name="seealsoie.attlist"/>
+            <zeroOrMore>
+              <ref name="ndxterm.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
 <!-- 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-->
+
+      <div db:name="seealsoie.attlist">
+        <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>
+      </div>
+    </div>
+  </div>
+
 <!-- ...................................................................... -->
 <!-- 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-->
+
+  <div db:name="refentry.content.module">
+
+    <div db:name="refentry.module">
+      <define name="local.refentry.attrib">
+        <empty/>
+      </define>
+      <define name="refentry.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="refentry">
+        <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>
+      </div>
+
+      <div db:name="refentry.attlist">
+        <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>
+      </div>
+    </div>
+
+    <div db:name="refmeta.module">
+      <define name="local.refmeta.attrib">
+        <empty/>
+      </define>
+      <define name="refmeta.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="refmeta">
+        <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>
+      </div>
+
+      <div db:name="refmeta.attlist">
+        <define name="refmeta.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="refmeta.role.attrib"/>
+          <ref name="local.refmeta.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="refmiscinfo.module">
+      <define name="local.refmiscinfo.attrib">
+        <empty/>
+      </define>
+      <define name="refmiscinfo.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="refmiscinfo">
+        <define name="refmiscinfo">
+          <element name="refmiscinfo">
+            <ref name="refmiscinfo.attlist"/>
+            <zeroOrMore>
+              <ref name="docinfo.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
 <!-- 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-->
+
+      <div db:name="refmiscinfo.attlist">
+        <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>
+      </div>
+    </div>
+
+    <div db:name="refnamediv.module">
+      <define name="local.refnamediv.attrib">
+        <empty/>
+      </define>
+      <define name="refnamediv.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="refnamediv">
+        <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>
+      </div>
+
+      <div db:name="refnamediv.attlist">
+        <define name="refnamediv.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="refnamediv.role.attrib"/>
+          <ref name="local.refnamediv.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="refdescriptor.module">
+      <define name="local.refdescriptor.attrib">
+        <empty/>
+      </define>
+      <define name="refdescriptor.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="refdescriptor">
+        <define name="refdescriptor">
+          <element name="refdescriptor">
+            <ref name="refdescriptor.attlist"/>
+            <zeroOrMore>
+              <ref name="refname.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="refdescriptor.attlist">
+        <define name="refdescriptor.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="refdescriptor.role.attrib"/>
+          <ref name="local.refdescriptor.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="refname.module">
+      <define name="local.refname.attrib">
+        <empty/>
+      </define>
+      <define name="refname.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="refname">
+        <define name="refname">
+          <element name="refname">
+            <ref name="refname.attlist"/>
+            <zeroOrMore>
+              <ref name="refname.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="refname.attlist">
+        <define name="refname.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="refname.role.attrib"/>
+          <ref name="local.refname.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="refpurpose.module">
+      <define name="local.refpurpose.attrib">
+        <empty/>
+      </define>
+      <define name="refpurpose.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="refpurpose">
+        <define name="refpurpose">
+          <element name="refpurpose">
+            <ref name="refpurpose.attlist"/>
+            <zeroOrMore>
+              <ref name="refinline.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="refpurpose.attlist">
+        <define name="refpurpose.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="refpurpose.role.attrib"/>
+          <ref name="local.refpurpose.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="refclass.module">
+      <define name="local.refclass.attrib">
+        <empty/>
+      </define>
+      <define name="refclass.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="refclass">
+        <define name="refclass">
+          <element name="refclass">
+            <ref name="refclass.attlist"/>
+            <zeroOrMore>
+              <ref name="refclass.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="refclass.attlist">
+        <define name="refclass.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="refclass.role.attrib"/>
+          <ref name="local.refclass.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="refsynopsisdiv.module">
+      <define name="local.refsynopsisdiv.attrib">
+        <empty/>
+      </define>
+      <define name="refsynopsisdiv.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="refsynopsisdiv">
+        <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>
+      </div>
+
+      <div db:name="refsynopsisdiv.attlist">
+        <define name="refsynopsisdiv.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="refsynopsisdiv.role.attrib"/>
+          <ref name="local.refsynopsisdiv.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="refsection.module">
+      <define name="local.refsection.attrib">
+        <empty/>
+      </define>
+      <define name="refsection.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="refsection">
+        <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>
+      </div>
+
+      <div db:name="refsection.attlist">
+        <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>
+      </div>
+    </div>
+
+    <div db:name="refsect1.module">
+      <define name="local.refsect1.attrib">
+        <empty/>
+      </define>
+      <define name="refsect1.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="refsect1">
+        <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>
+      </div>
+
+      <div db:name="refsect1.attlist">
+        <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>
+      </div>
+    </div>
+
+    <div db:name="refsect2.module">
+      <define name="local.refsect2.attrib">
+        <empty/>
+      </define>
+      <define name="refsect2.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="refsect2">
+        <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>
+      </div>
+
+      <div db:name="refsect2.attlist">
+        <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>
+      </div>
+    </div>
+
+    <div db:name="refsect3.module">
+      <define name="local.refsect3.attrib">
+        <empty/>
+      </define>
+      <define name="refsect3.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="refsect3">
+        <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>
+      </div>
+
+      <div db:name="refsect3.attlist">
+        <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>
+      </div>
+    </div>
+  </div>
+
 <!-- ...................................................................... -->
 <!-- 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-->
+
+  <div db:name="article.module">
+    <define name="local.article.attrib">
+      <empty/>
+    </define>
+    <define name="article.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="article">
+      <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>
+    </div>
+
 <!-- 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>
-<!--end of article.attlist-->
-<!--end of article.module-->
+
+    <div db:name="article.attlist">
+      <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>
+    </div>
+  </div>
+
 <!-- End of DocBook document hierarchy module V4.2 ........................ -->
 <!-- ...................................................................... -->
+
 </grammar>
index b29851c6967524d3640de0ebc5fd6da4a13fdb46..2413051aeb4afe5543142efec04727508b697794 100644 (file)
@@ -1,53 +1,86 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<grammar datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" xmlns="http://relaxng.org/ns/structure/1.0" xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">
-<!-- ...................................................................... -->
-<!-- DocBook notations module V4.2 ........................................ -->
-<!-- File dbnotnx.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$
-
-     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 entity declarations for the standard ISO
-     entity sets used by DocBook.
-
-     In DTD driver files referring to this module, please use an entity
-     declaration that uses the public identifier shown below:
-
-     <!ENTITY % dbnotn PUBLIC
-     "-//OASIS//ENTITIES DocBook Notations V4.2//EN"
-     "dbnotnx.mod">
-     %dbnotn;
-
-     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.
--->
+<grammar xmlns="http://relaxng.org/ns/structure/1.0"
+         xmlns:rng="http://relaxng.org/ns/structure/1.0"
+         xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
+         xmlns:s="http://www.ascc.net/xml/schematron"
+         xmlns:doc="http://nwalsh.com/xmlns/documentation"
+         xmlns:db="http://nwalsh.com/xmlns/docbook-grammar-structure"
+         datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+
+<rng:div doc:docbook="yes" xmlns="">
+<partinfo>
+<releaseinfo
+   role="cvs">$Id$</releaseinfo>
+<title>DocBook Notations</title>
+<productname>DocBook</productname>
+<productnumber>4.2</productnumber>
+<releaseinfo role="filename">dbnotn</releaseinfo>
+<copyright>
+<year>1992</year>
+<year>1993</year>
+<year>1994</year>
+<year>1995</year>
+<year>1996</year>
+<year>1997</year>
+<year>1998</year>
+<year>1999</year>
+<year>2000</year>
+<year>2001</year>
+<year>2002</year>
+<holder>HaL Computer Systems, Inc.</holder>
+<holder>O'Reilly &amp; Associates, Inc.</holder>
+<holder>ArborText, Inc.</holder>
+<holder>Fujitsu Software Corporation</holder>
+<holder>Norman Walsh</holder>
+<holder>Sun Microsystems, Inc.</holder>
+<holder>OASIS Open, Inc.</holder>
+</copyright>
+
+<legalnotice>
+<para>Permission to use, copy, modify and distribute the DocBook schema
+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 schema for
+any purpose. It is provided <quote>as is</quote> without expressed or implied
+warranty.</para>
+
+<para>If you modify the DocBook in any way, except for declaring and
+referencing additional sets of general entities and declaring
+additional notations, label your schema as a variant of DocBook. See
+the maintenance documentation for more information.</para>
+
+<para>Please direct all questions, bug reports, or suggestions for
+changes to the <email>docbook@lists.oasis-open.org</email> mailing list. For more
+information, see <ulink url="http://www.oasis-open.org/docbook/"/>.</para>
+</legalnotice>
+</partinfo>
+
+<partintro>
+<para>This module contains the entity declarations for the standard ISO
+entity sets used by DocBook.</para>
+
+<para>When using this schema in driver files referring to the DTD version
+of this module, please use an entity
+declaration that uses the public identifier shown below:</para>
+
+<screen><![CDATA[<!ENTITY % dbnotn PUBLIC
+"-//OASIS//ENTITIES DocBook Notations V4.2//EN"
+"dbnotnx.mod">
+%dbnotn;]]></screen>
+
+<para>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.
+</para>
+</partintro>
+</rng:div>
+
   <define name="local.notation.class">
     <notAllowed/>
   </define>
+
   <define name="notation.class">
     <choice>
       <value>BMP</value>
       <ref name="local.notation.class"/>
     </choice>
   </define>
-<!--WordPerfect Graphic format-->
-<!-- End of DocBook notations module V4.2 ................................. -->
-<!-- ...................................................................... -->
+
+<db:notation name="BMP"
+    public="+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION Microsoft Windows bitmap//EN"/>
+
+<db:notation name="CGM-CHAR"
+    public="ISO 8632/2//NOTATION Character encoding//EN"/>
+
+<db:notation name="CGM-BINARY"
+    public="ISO 8632/3//NOTATION Binary encoding//EN"/>
+
+<db:notation name="CGM-CLEAR"
+    public="ISO 8632/4//NOTATION Clear text encoding//EN"/>
+
+<db:notation name="DITROFF" system="DITROFF"/>
+
+<db:notation name="DVI" system="DVI"/>
+
+<db:notation name="EPS"
+    public="+//ISBN 0-201-18127-4::Adobe//NOTATION PostScript Language Ref. Manual//EN"/>
+
+<db:notation name="EQN" system="EQN"/>
+
+<db:notation name="FAX"
+    public="-//USA-DOD//NOTATION CCITT Group 4 Facsimile Type 1 Untiled Raster//EN"/>
+
+<db:notation name="GIF" system="GIF"/>
+
+<db:notation name="GIF87a"
+    public="-//CompuServe//NOTATION Graphics Interchange Format 87a//EN"/>
+
+<db:notation name="GIF89a"
+    public="-//CompuServe//NOTATION Graphics Interchange Format 89a//EN"/>
+
+<db:notation name="JPG" system="JPG"/>
+
+<db:notation name="JPEG" system="JPG"/>
+
+<db:notation name="IGES"
+    public="-//USA-DOD//NOTATION (ASME/ANSI Y14.26M-1987) Initial Graphics Exchange Specification//EN"/>
+
+<db:notation name="PCX"
+    public="+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION ZSoft PCX bitmap//EN"/>
+
+<db:notation name="PIC" system="PIC"/>
+
+<db:notation name="PNG" system="http://www.w3.org/TR/REC-png"/>
+
+<db:notation name="PS" system="PS"/>
+
+<db:notation name="SGML"
+    public="ISO 8879:1986//NOTATION Standard Generalized Markup Language//EN"/>
+
+<db:notation name="TBL" system="TBL"/>
+
+<db:notation name="TEX"
+    public="+//ISBN 0-201-13448-9::Knuth//NOTATION The TeXbook//EN"/>
+
+<db:notation name="TIFF" system="TIFF"/>
+
+<db:notation name="WMF"
+    public="+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION Microsoft Windows Metafile//EN"/>
+
+<db:notation name="WPG" system="WPG"/> <!--WordPerfect Graphic format-->
+
+<db:notation name="SVG" system="http://www.w3.org/TR/SVG/"/>
+
+<db:notation name="linespecific" system="linespecific"/>
+
 </grammar>
index 795d8055bd85bdb5ba8128f3da82bae8fddc1bbb..3dc9b4c87e09fa4711a5090ed2a48816e4e8f64c 100644 (file)
 <?xml version="1.0" encoding="UTF-8"?>
 <grammar xmlns="http://relaxng.org/ns/structure/1.0"
+         xmlns:rng="http://relaxng.org/ns/structure/1.0"
          xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
          xmlns:s="http://www.ascc.net/xml/schematron"
+         xmlns:doc="http://nwalsh.com/xmlns/documentation"
+         xmlns:db="http://nwalsh.com/xmlns/docbook-grammar-structure"
          datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 
-<!-- ...................................................................... -->
-<!-- DocBook XML information pool module V4.2 ............................. -->
-<!-- File dbpoolx.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$
-
-     Permission to use, copy, modify and distribute the DocBook XML 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 XML 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 objects, inline
-     elements, and so on that are available to be used as the main
-     content of DocBook documents.  Some elements are useful for general
-     publishing, and others are useful specifically for computer
-     documentation.
-
-     This module has the following dependencies on other modules:
-
-     o It assumes that a %notation.class; entity is defined by the
-       driver file or other high-level module.  This entity is
-       referenced in the NOTATION attributes for the graphic-related and
-       ModeSpec elements.
-
-     o It assumes that an appropriately parameterized table module is
-       available for use with the table-related elements.
-
-     In DTD driver files referring to this module, please use an entity
-     declaration that uses the public identifier shown below:
-
-     <!ENTITY % dbpool PUBLIC
-     "-//OASIS//ELEMENTS DocBook XML Information Pool V4.2//EN"
-     "dbpoolx.mod">
-     %dbpool;
-
-     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.
--->
+<rng:div doc:docbook="yes" xmlns="">
+<partinfo>
+<releaseinfo
+   role="cvs">$Id$</releaseinfo>
+<title>DocBook Information Pool</title>
+<productname>DocBook</productname>
+<productnumber>4.2</productnumber>
+<releaseinfo role="filename">dbpool</releaseinfo>
+<copyright>
+<year>1992</year>
+<year>1993</year>
+<year>1994</year>
+<year>1995</year>
+<year>1996</year>
+<year>1997</year>
+<year>1998</year>
+<year>1999</year>
+<year>2000</year>
+<year>2001</year>
+<year>2002</year>
+<holder>HaL Computer Systems, Inc.</holder>
+<holder>O'Reilly &amp; Associates, Inc.</holder>
+<holder>ArborText, Inc.</holder>
+<holder>Fujitsu Software Corporation</holder>
+<holder>Norman Walsh</holder>
+<holder>Sun Microsystems, Inc.</holder>
+<holder>OASIS Open, Inc.</holder>
+</copyright>
+
+<legalnotice>
+<para>Permission to use, copy, modify and distribute the DocBook schema
+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 schema for
+any purpose. It is provided <quote>as is</quote> without expressed or implied
+warranty.</para>
+
+<para>If you modify the DocBook in any way, except for declaring and
+referencing additional sets of general entities and declaring
+additional notations, label your schema as a variant of DocBook. See
+the maintenance documentation for more information.</para>
+
+<para>Please direct all questions, bug reports, or suggestions for
+changes to the <email>docbook@lists.oasis-open.org</email> mailing list. For more
+information, see <ulink url="http://www.oasis-open.org/docbook/"/>.</para>
+</legalnotice>
+</partinfo>
+
+<partintro>
+<para>This module contains the definitions for the objects, inline
+elements, and so on that are available to be used as the main
+content of DocBook documents. Some elements are useful for general
+publishing, and others are useful specifically for computer
+documentation.</para>
+
+<para>This module has the following dependencies on other modules:</para>
+
+<itemizedlist>
+<listitem><para>It assumes that a %notation.class; entity is defined by the
+driver file or other high-level module. This entity is
+referenced in the NOTATION attributes for the graphic-related and
+ModeSpec elements.</para>
+</listitem>
+
+<listitem><para>It assumes that an appropriately parameterized table module is
+available for use with the table-related elements.</para>
+</listitem>
+</itemizedlist>
+
+<para>When using this schema in driver files referring to the DTD
+version of this module, please use an entity declaration that uses the
+public identifier shown below:</para>
+
+<screen><![CDATA[<!ENTITY % dbpool PUBLIC
+"-//OASIS//ELEMENTS DocBook XML Information Pool V4.2//EN"
+"dbpool.mod">
+%dbpool;]]></screen>
+
+<para>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.</para>
+</partintro>
+</rng:div>
+
 <!-- ...................................................................... -->
 <!-- General-purpose semantics entities ................................... -->
+
   <define name="yesorno.attvals">
     <data type="string"/>
   </define>
+
 <!-- ...................................................................... -->
 <!-- Entities for module inclusions ....................................... -->
 <!-- ...................................................................... -->
 <!-- Entities for element classes and mixtures ............................ -->
 <!-- "Ubiquitous" classes: ndxterm.class and beginpage -->
+
   <define name="local.ndxterm.class">
     <notAllowed/>
   </define>
       <ref name="local.ndxterm.class"/>
     </choice>
   </define>
+
 <!-- Object-level classes ................................................. -->
+
   <define name="local.list.class">
     <notAllowed/>
   </define>
       <ref name="local.formal.class"/>
     </choice>
   </define>
+
 <!-- The DocBook TC may produce an official EBNF module for DocBook. -->
 <!-- This PE provides the hook by which it can be inserted into the DTD. -->
+
   <define name="ebnf.block.hook">
     <notAllowed/>
   </define>
       <ref name="local.descobj.class"/>
     </choice>
   </define>
+
 <!-- Character-level classes .............................................. -->
+
   <define name="local.xref.char.class">
     <notAllowed/>
   </define>
       <ref name="local.link.char.class"/>
     </choice>
   </define>
+
 <!-- The DocBook TC may produce an official EBNF module for DocBook. -->
 <!-- This PE provides the hook by which it can be inserted into the DTD. -->
+
   <define name="ebnf.inline.hook">
     <notAllowed/>
   </define>
       <ref name="local.inlineobj.char.class"/>
     </choice>
   </define>
+
 <!-- ...................................................................... -->
 <!-- Entities for content models .......................................... -->
+
   <define name="formalobject.title.content">
     <ref name="title"/>
     <optional>
       <ref name="titleabbrev"/>
     </optional>
   </define>
+
 <!-- Redeclaration placeholder ............................................ -->
 <!-- For redeclaring entities that are declared after this point while
      retaining their references to the entities that are declared before
@@ -425,6 +470,7 @@ d. Just Graphic; no other informal objects.
 e. No Anchor, BridgeHead, or Highlights.
 f. Just BlockQuote; no other informal objects.
 -->
+
   <define name="local.component.mix">
     <notAllowed/>
   </define>
@@ -540,8 +586,10 @@ f. Just BlockQuote; no other informal objects.
       <ref name="local.highlights.mix"/>
     </choice>
   </define>
+
 <!-- %formal.class; is explicitly excluded from many contexts in which
      paragraphs are used -->
+
   <define name="local.para.mix">
     <notAllowed/>
   </define>
@@ -677,10 +725,86 @@ f. Just BlockQuote; no other informal objects.
       <ref name="local.listpreamble.mix"/>
     </choice>
   </define>
+
 <!-- Character-level mixtures ............................................. -->
-<!-- sgml.features -->
-<!-- not [sgml.features[ -->
-<!-- ]] not sgml.features -->
+
+<div db:name="sgml.features" db:declare="no">
+  <db:parameter-entity-declaration name="local.ubiq.mix"
+      value=""/>
+
+  <db:parameter-entity-declaration name="ubiq.mix"
+      value="%ndxterm.class;|beginpage %local.ubiq.mix;"/>
+
+  <db:parameter-entity-declaration name="ubiq.exclusion"
+      value="-(%ubiq.mix)"/>
+
+  <db:parameter-entity-declaration name="ubiq.inclusion"
+      value="+(%ubiq.mix)"/>
+
+  <db:parameter-entity-declaration name="footnote.exclusion"
+      value="-(footnote|%formal.class;)"/>
+
+  <db:parameter-entity-declaration name="highlights.exclusion"
+      value="-(%ubiq.mix;|%formal.class;)"/>
+
+  <db:parameter-entity-declaration name="admon.exclusion"
+      value="-(%admon.class;)"/>
+
+  <db:parameter-entity-declaration name="formal.exclusion"
+      value="-(%formal.class;)"/>
+
+  <db:parameter-entity-declaration name="acronym.exclusion"
+      value="-(acronym)"/>
+
+  <db:parameter-entity-declaration name="beginpage.exclusion"
+      value="-(beginpage)"/>
+
+  <db:parameter-entity-declaration name="ndxterm.exclusion"
+      value="-(%ndxterm.class;)"/>
+
+  <db:parameter-entity-declaration name="blockquote.exclusion"
+      value="-(epigraph)"/>
+
+  <db:parameter-entity-declaration name="remark.exclusion"
+      value="-(remark|%ubiq.mix;)"/>
+
+  <db:parameter-entity-declaration name="glossterm.exclusion"
+      value="-(glossterm)"/>
+
+  <db:parameter-entity-declaration name="links.exclusion"
+      value="-(link|olink|ulink|xref)"/>
+</div>
+
+<db:parameter-entity-declaration name="local.ubiq.mix" value=""/>
+
+<db:parameter-entity-declaration name="ubiq.mix" value=""/>
+
+<db:parameter-entity-declaration name="ubiq.exclusion" value=""/>
+
+<db:parameter-entity-declaration name="ubiq.inclusion" value=""/>
+
+<db:parameter-entity-declaration name="footnote.exclusion" value=""/>
+
+<db:parameter-entity-declaration name="highlights.exclusion" value=""/>
+
+<db:parameter-entity-declaration name="admon.exclusion" value=""/>
+
+<db:parameter-entity-declaration name="formal.exclusion" value=""/>
+
+<db:parameter-entity-declaration name="acronym.exclusion" value=""/>
+
+<db:parameter-entity-declaration name="beginpage.exclusion" value=""/>
+
+<db:parameter-entity-declaration name="ndxterm.exclusion" value=""/>
+
+<db:parameter-entity-declaration name="blockquote.exclusion" value=""/>
+
+<db:parameter-entity-declaration name="remark.exclusion" value=""/>
+
+<db:parameter-entity-declaration name="glossterm.exclusion" value=""/>
+
+<db:parameter-entity-declaration name="links.exclusion" value=""/>
+
 <!--
                     #PCD xref word link cptr base dnfo othr inob (synop)
 para.char.mix         X    X    X    X    X    X    X    X    X
@@ -698,6 +822,7 @@ d. Just Acronym, Emphasis, and Trademark; no other word elements.
 -->
 <!-- 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="forminlines.hook">
     <notAllowed/>
   </define>
@@ -825,6 +950,7 @@ d. Just Acronym, Emphasis, and Trademark; no other word elements.
       <ref name="local.docinfo.char.mix"/>
     </choice>
   </define>
+
 <!--ENTITY % bibliocomponent.mix (see Bibliographic section, below)-->
 <!--ENTITY % person.ident.mix (see Bibliographic section, below)-->
 <!-- ...................................................................... -->
@@ -832,18 +958,23 @@ d. Just Acronym, Emphasis, and Trademark; no other word elements.
 <!-- Effectivity attributes ............................................... -->
 <!-- Arch: Computer or chip architecture to which element applies; no
        default -->
+
   <define name="arch.attrib">
     <optional>
       <attribute name="arch"/>
     </optional>
   </define>
+
 <!-- Condition: General-purpose effectivity attribute -->
+
   <define name="condition.attrib">
     <optional>
       <attribute name="condition"/>
     </optional>
   </define>
+
 <!-- Conformance: Standards conformance characteristics -->
+
   <define name="conformance.attrib">
     <optional>
       <attribute name="conformance">
@@ -851,32 +982,42 @@ d. Just Acronym, Emphasis, and Trademark; no other word elements.
       </attribute>
     </optional>
   </define>
+
 <!-- OS: Operating system to which element applies; no default -->
+
   <define name="os.attrib">
     <optional>
       <attribute name="os"/>
     </optional>
   </define>
+
 <!-- Revision: Editorial revision to which element belongs; no default -->
+
   <define name="revision.attrib">
     <optional>
       <attribute name="revision"/>
     </optional>
   </define>
+
 <!-- Security: Security classification; no default -->
+
   <define name="security.attrib">
     <optional>
       <attribute name="security"/>
     </optional>
   </define>
+
 <!-- UserLevel: Level of user experience to which element applies; no
        default -->
+
   <define name="userlevel.attrib">
     <optional>
       <attribute name="userlevel"/>
     </optional>
   </define>
+
 <!-- Vendor: Computer vendor to which element applies; no default -->
+
   <define name="vendor.attrib">
     <optional>
       <attribute name="vendor"/>
@@ -896,8 +1037,10 @@ d. Just Acronym, Emphasis, and Trademark; no other word elements.
     <ref name="vendor.attrib"/>
     <ref name="local.effectivity.attrib"/>
   </define>
+
 <!-- Common attributes .................................................... -->
 <!-- Id: Unique identifier of element; no default -->
+
   <define name="id.attrib">
     <optional>
       <attribute name="id">
@@ -905,42 +1048,54 @@ d. Just Acronym, Emphasis, and Trademark; no other word elements.
       </attribute>
     </optional>
   </define>
+
 <!-- Id: Unique identifier of element; a value must be supplied; no
        default -->
+
   <define name="idreq.attrib">
     <attribute name="id">
       <data type="ID"/>
     </attribute>
   </define>
+
 <!-- Lang: Indicator of language in which element is written, for
        translation, character set management, etc.; no default -->
+
   <define name="lang.attrib">
     <optional>
       <attribute name="lang"/>
     </optional>
   </define>
+
 <!-- Remap: Previous role of element before conversion; no default -->
+
   <define name="remap.attrib">
     <optional>
       <attribute name="remap"/>
     </optional>
   </define>
+
 <!-- Role: New role of element in local environment; no default -->
+
   <define name="role.attrib">
     <optional>
       <attribute name="role"/>
     </optional>
   </define>
+
 <!-- XRefLabel: Alternate labeling string for XRef text generation;
        default is usually title or other appropriate label text already
        contained in element -->
+
   <define name="xreflabel.attrib">
     <optional>
       <attribute name="xreflabel"/>
     </optional>
   </define>
+
 <!-- RevisionFlag: Revision status of element; default is that element
        wasn't revised -->
+
   <define name="revisionflag.attrib">
     <optional>
       <attribute name="revisionflag">
@@ -956,7 +1111,9 @@ d. Just Acronym, Emphasis, and Trademark; no other word elements.
   <define name="local.common.attrib">
     <empty/>
   </define>
+
 <!-- Role is included explicitly on each element -->
+
   <define name="common.attrib">
     <ref name="id.attrib"/>
     <ref name="lang.attrib"/>
@@ -966,7 +1123,9 @@ d. Just Acronym, Emphasis, and Trademark; no other word elements.
     <ref name="effectivity.attrib"/>
     <ref name="local.common.attrib"/>
   </define>
+
 <!-- Role is included explicitly on each element -->
+
   <define name="idreq.common.attrib">
     <ref name="idreq.attrib"/>
     <ref name="lang.attrib"/>
@@ -976,10 +1135,13 @@ d. Just Acronym, Emphasis, and Trademark; no other word elements.
     <ref name="effectivity.attrib"/>
     <ref name="local.common.attrib"/>
   </define>
+
 <!-- Semi-common attributes and other attribute entities .................. -->
+
   <define name="local.graphics.attrib">
     <empty/>
   </define>
+
 <!-- EntityRef: Name of an external entity containing the content
        of the graphic -->
 <!-- FileRef: Filename, qualified by a pathname if desired,
@@ -992,6 +1154,7 @@ d. Just Acronym, Emphasis, and Trademark; no other word elements.
        application-specific -->
 <!-- Scale: Conflation of CALS hscale and vscale -->
 <!-- Scalefit: Same as CALS scalefit -->
+
   <define name="graphics.attrib">
     <optional>
       <attribute name="entityref">
@@ -1054,10 +1217,12 @@ d. Just Acronym, Emphasis, and Trademark; no other word elements.
   <define name="local.keyaction.attrib">
     <empty/>
   </define>
+
 <!-- Action: Key combination type; default is unspecified if one
        child element, Simul if there is more than one; if value is
        Other, the OtherAction attribute must have a nonempty value -->
 <!-- OtherAction: User-defined key combination type -->
+
   <define name="keyaction.attrib">
     <optional>
       <attribute name="action">
@@ -1076,15 +1241,19 @@ d. Just Acronym, Emphasis, and Trademark; no other word elements.
     </optional>
     <ref name="local.keyaction.attrib"/>
   </define>
+
 <!-- Label: Identifying number or string; default is usually the
        appropriate number or string autogenerated by a formatter -->
+
   <define name="label.attrib">
     <optional>
       <attribute name="label"/>
     </optional>
   </define>
+
 <!-- Format: whether element is assumed to contain significant white
        space -->
+
   <define name="linespecific.attrib">
     <optional>
       <attribute name="format" a:defaultValue="linespecific">
@@ -1102,7 +1271,9 @@ d. Just Acronym, Emphasis, and Trademark; no other word elements.
       </attribute>
     </optional>
   </define>
+
 <!-- Linkend: link to related information; no default -->
+
   <define name="linkend.attrib">
     <optional>
       <attribute name="linkend">
@@ -1110,14 +1281,18 @@ d. Just Acronym, Emphasis, and Trademark; no other word elements.
       </attribute>
     </optional>
   </define>
+
 <!-- Linkend: required link to related information -->
+
   <define name="linkendreq.attrib">
     <attribute name="linkend">
       <data type="IDREF"/>
     </attribute>
   </define>
+
 <!-- Linkends: link to one or more sets of related information; no
        default -->
+
   <define name="linkends.attrib">
     <optional>
       <attribute name="linkends">
@@ -1134,7 +1309,9 @@ d. Just Acronym, Emphasis, and Trademark; no other word elements.
     </optional>
     <ref name="local.mark.attrib"/>
   </define>
+
 <!-- MoreInfo: whether element's content has an associated RefEntry -->
+
   <define name="moreinfo.attrib">
     <optional>
       <attribute name="moreinfo" a:defaultValue="none">
@@ -1145,7 +1322,9 @@ d. Just Acronym, Emphasis, and Trademark; no other word elements.
       </attribute>
     </optional>
   </define>
+
 <!-- Pagenum: number of page on which element appears; no default -->
+
   <define name="pagenum.attrib">
     <optional>
       <attribute name="pagenum"/>
@@ -1154,96 +1333,121 @@ d. Just Acronym, Emphasis, and Trademark; no other word elements.
   <define name="local.status.attrib">
     <empty/>
   </define>
+
 <!-- Status: Editorial or publication status of the element
        it applies to, such as "in review" or "approved for distribution" -->
+
   <define name="status.attrib">
     <optional>
       <attribute name="status"/>
     </optional>
     <ref name="local.status.attrib"/>
   </define>
+
 <!-- Width: width of the longest line in the element to which it
        pertains, in number of characters -->
+
   <define name="width.attrib">
     <optional>
       <attribute name="width"/>
     </optional>
   </define>
+
 <!-- ...................................................................... -->
 <!-- Title elements ....................................................... -->
-  <define name="local.title.attrib">
-    <empty/>
-  </define>
-  <define name="title.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="title">
-    <element name="title">
-      <ref name="title.attlist"/>
-      <zeroOrMore>
-        <ref name="title.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of title.element-->
-  <define name="title.attlist" combine="interleave">
-    <ref name="pagenum.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="title.role.attrib"/>
-    <ref name="local.title.attrib"/>
-  </define>
-<!--end of title.attlist-->
-<!--end of title.module-->
-  <define name="local.titleabbrev.attrib">
-    <empty/>
-  </define>
-  <define name="titleabbrev.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="titleabbrev">
-    <element name="titleabbrev">
-      <ref name="titleabbrev.attlist"/>
-      <zeroOrMore>
-        <ref name="title.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of titleabbrev.element-->
-  <define name="titleabbrev.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="titleabbrev.role.attrib"/>
-    <ref name="local.titleabbrev.attrib"/>
-  </define>
-<!--end of titleabbrev.attlist-->
-<!--end of titleabbrev.module-->
-  <define name="local.subtitle.attrib">
-    <empty/>
-  </define>
-  <define name="subtitle.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="subtitle">
-    <element name="subtitle">
-      <ref name="subtitle.attlist"/>
-      <zeroOrMore>
-        <ref name="title.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of subtitle.element-->
-  <define name="subtitle.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="subtitle.role.attrib"/>
-    <ref name="local.subtitle.attrib"/>
-  </define>
-<!--end of subtitle.attlist-->
-<!--end of subtitle.module-->
+
+  <div db:name="title.module">
+    <define name="local.title.attrib">
+      <empty/>
+    </define>
+    <define name="title.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="title">
+      <define name="title">
+        <element name="title">
+          <ref name="title.attlist"/>
+          <zeroOrMore>
+            <ref name="title.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="title.attlist">
+      <define name="title.attlist" combine="interleave">
+        <ref name="pagenum.attrib"/>
+        <ref name="common.attrib"/>
+        <ref name="title.role.attrib"/>
+        <ref name="local.title.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="titleabbrev.module">
+    <define name="local.titleabbrev.attrib">
+      <empty/>
+    </define>
+    <define name="titleabbrev.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="titleabbrev">
+      <define name="titleabbrev">
+        <element name="titleabbrev">
+          <ref name="titleabbrev.attlist"/>
+          <zeroOrMore>
+            <ref name="title.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="titleabbrev.attlist">
+      <define name="titleabbrev.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="titleabbrev.role.attrib"/>
+        <ref name="local.titleabbrev.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="subtitle.module">
+    <define name="local.subtitle.attrib">
+      <empty/>
+    </define>
+    <define name="subtitle.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="subtitle">
+      <define name="subtitle">
+        <element name="subtitle">
+          <ref name="subtitle.attlist"/>
+          <zeroOrMore>
+            <ref name="title.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="subtitle.attlist">
+      <define name="subtitle.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="subtitle.role.attrib"/>
+        <ref name="local.subtitle.attrib"/>
+      </define>
+    </div>
+  </div>
+
 <!-- ...................................................................... -->
 <!-- Bibliographic entities and elements .................................. -->
 <!-- The bibliographic elements are typically used in the document
      hierarchy. They do not appear in content models of information
      pool elements.  See also the document information elements,
      below. -->
+
   <define name="local.person.ident.mix">
     <notAllowed/>
   </define>
@@ -1317,8 +1521,10 @@ d. Just Acronym, Emphasis, and Trademark; no other word elements.
       <ref name="local.bibliocomponent.mix"/>
     </choice>
   </define>
+
 <!-- I don't think this is well placed, but it needs to be here because of -->
 <!-- the reference to bibliocomponent.mix -->
+
   <define name="local.info.class">
     <notAllowed/>
   </define>
@@ -1335,1645 +1541,2039 @@ d. Just Acronym, Emphasis, and Trademark; no other word elements.
       <ref name="local.info.class"/>
     </choice>
   </define>
-  <define name="local.biblioentry.attrib">
-    <empty/>
-  </define>
-  <define name="biblioentry.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="biblioentry">
-    <element name="biblioentry">
-      <ref name="biblioentry.attlist"/>
-      <oneOrMore>
-        <choice>
-          <ref name="articleinfo"/>
-          <ref name="bibliocomponent.mix"/>
-        </choice>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of biblioentry.element-->
-  <define name="biblioentry.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="biblioentry.role.attrib"/>
-    <ref name="local.biblioentry.attrib"/>
-  </define>
-<!--end of biblioentry.attlist-->
-<!--end of biblioentry.module-->
-  <define name="local.bibliomixed.attrib">
-    <empty/>
-  </define>
-  <define name="bibliomixed.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="bibliomixed">
-    <element name="bibliomixed">
-      <ref name="bibliomixed.attlist"/>
-      <zeroOrMore>
-        <choice>
-          <text/>
-          <ref name="bibliocomponent.mix"/>
-          <ref name="bibliomset"/>
-        </choice>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of bibliomixed.element-->
-  <define name="bibliomixed.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="bibliomixed.role.attrib"/>
-    <ref name="local.bibliomixed.attrib"/>
-  </define>
-<!--end of bibliomixed.attlist-->
-<!--end of bibliomixed.module-->
-  <define name="local.articleinfo.attrib">
-    <empty/>
-  </define>
-  <define name="articleinfo.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="articleinfo">
-    <element name="articleinfo">
-      <ref name="articleinfo.attlist"/>
-      <oneOrMore>
-        <ref name="info.class"/>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of articleinfo.element-->
-  <define name="articleinfo.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="articleinfo.role.attrib"/>
-    <ref name="local.articleinfo.attrib"/>
-  </define>
-<!--end of articleinfo.attlist-->
-<!--end of articleinfo.module-->
-  <define name="local.biblioset.attrib">
-    <empty/>
-  </define>
-  <define name="biblioset.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="biblioset">
-    <element name="biblioset">
-      <ref name="biblioset.attlist"/>
-      <oneOrMore>
-        <ref name="bibliocomponent.mix"/>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of biblioset.element-->
+
+  <div db:name="biblioentry.module">
+    <define name="local.biblioentry.attrib">
+      <empty/>
+    </define>
+    <define name="biblioentry.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="biblioentry">
+      <define name="biblioentry">
+        <element name="biblioentry">
+          <ref name="biblioentry.attlist"/>
+          <oneOrMore>
+            <choice>
+              <ref name="articleinfo"/>
+              <ref name="bibliocomponent.mix"/>
+            </choice>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="biblioentry.attlist">
+      <define name="biblioentry.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="biblioentry.role.attrib"/>
+        <ref name="local.biblioentry.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="bibliomixed.module">
+    <define name="local.bibliomixed.attrib">
+      <empty/>
+    </define>
+    <define name="bibliomixed.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="bibliomixed">
+      <define name="bibliomixed">
+        <element name="bibliomixed">
+          <ref name="bibliomixed.attlist"/>
+          <zeroOrMore>
+            <choice>
+              <text/>
+              <ref name="bibliocomponent.mix"/>
+              <ref name="bibliomset"/>
+            </choice>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="bibliomixed.attlist">
+      <define name="bibliomixed.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="bibliomixed.role.attrib"/>
+        <ref name="local.bibliomixed.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="articleinfo.module">
+    <define name="local.articleinfo.attrib">
+      <empty/>
+    </define>
+    <define name="articleinfo.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="articleinfo">
+      <define name="articleinfo">
+        <element name="articleinfo">
+          <ref name="articleinfo.attlist"/>
+          <oneOrMore>
+            <ref name="info.class"/>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="articleinfo.attlist">
+      <define name="articleinfo.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="articleinfo.role.attrib"/>
+        <ref name="local.articleinfo.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="biblioset.module">
+    <define name="local.biblioset.attrib">
+      <empty/>
+    </define>
+    <define name="biblioset.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="biblioset">
+      <define name="biblioset">
+        <element name="biblioset">
+          <ref name="biblioset.attlist"/>
+          <oneOrMore>
+            <ref name="bibliocomponent.mix"/>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
 <!-- Relation: Relationship of elements contained within BiblioSet -->
-  <define name="biblioset.attlist" combine="interleave">
-    <optional>
-      <attribute name="relation"/>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="biblioset.role.attrib"/>
-    <ref name="local.biblioset.attrib"/>
-  </define>
-<!--end of biblioset.attlist-->
-<!--end of biblioset.module-->
+
+    <div db:name="biblioset.attlist">
+      <define name="biblioset.attlist" combine="interleave">
+        <optional>
+          <attribute name="relation"/>
+        </optional>
+        <ref name="common.attrib"/>
+        <ref name="biblioset.role.attrib"/>
+        <ref name="local.biblioset.attrib"/>
+      </define>
+    </div>
+  </div>
   <define name="bibliomset.role.attrib">
     <ref name="role.attrib"/>
   </define>
-  <define name="local.bibliomset.attrib">
-    <empty/>
-  </define>
-  <define name="bibliomset">
-    <element name="bibliomset">
-      <ref name="bibliomset.attlist"/>
-      <zeroOrMore>
-        <choice>
-          <text/>
-          <ref name="bibliocomponent.mix"/>
-          <ref name="bibliomset"/>
-        </choice>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of bibliomset.element-->
+
+  <div db:name="bibliomset.module">
+    <define name="local.bibliomset.attrib">
+      <empty/>
+    </define>
+
+    <div db:name="bibliomset">
+      <define name="bibliomset">
+        <element name="bibliomset">
+          <ref name="bibliomset.attlist"/>
+          <zeroOrMore>
+            <choice>
+              <text/>
+              <ref name="bibliocomponent.mix"/>
+              <ref name="bibliomset"/>
+            </choice>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
 <!-- Relation: Relationship of elements contained within BiblioMSet -->
-  <define name="bibliomset.attlist" combine="interleave">
-    <optional>
-      <attribute name="relation"/>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="bibliomset.role.attrib"/>
-    <ref name="local.bibliomset.attrib"/>
-  </define>
-<!--end of bibliomset.attlist-->
-<!--end of bibliomset.module-->
-  <define name="local.bibliomisc.attrib">
-    <empty/>
-  </define>
-  <define name="bibliomisc.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="bibliomisc">
-    <element name="bibliomisc">
-      <ref name="bibliomisc.attlist"/>
-      <zeroOrMore>
-        <ref name="para.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of bibliomisc.element-->
-  <define name="bibliomisc.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="bibliomisc.role.attrib"/>
-    <ref name="local.bibliomisc.attrib"/>
-  </define>
-<!--end of bibliomisc.attlist-->
-<!--end of bibliomisc.module-->
-<!-- ...................................................................... -->
+
+    <div db:name="bibliomset.attlist">
+      <define name="bibliomset.attlist" combine="interleave">
+        <optional>
+          <attribute name="relation"/>
+        </optional>
+        <ref name="common.attrib"/>
+        <ref name="bibliomset.role.attrib"/>
+        <ref name="local.bibliomset.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="bibliomisc.module">
+    <define name="local.bibliomisc.attrib">
+      <empty/>
+    </define>
+    <define name="bibliomisc.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="bibliomisc">
+      <define name="bibliomisc">
+        <element name="bibliomisc">
+          <ref name="bibliomisc.attlist"/>
+          <zeroOrMore>
+            <ref name="para.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="bibliomisc.attlist">
+      <define name="bibliomisc.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="bibliomisc.role.attrib"/>
+        <ref name="local.bibliomisc.attrib"/>
+      </define>
+    </div>
+  </div>
+
+<!-- ...................................................................... -->
 <!-- Subject, Keyword, and ITermSet elements .............................. -->
-  <define name="local.subjectset.attrib">
-    <empty/>
-  </define>
-  <define name="subjectset.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="subjectset">
-    <element name="subjectset">
-      <ref name="subjectset.attlist"/>
-      <oneOrMore>
-        <ref name="subject"/>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of subjectset.element-->
+
+  <div db:name="subjectset.content.module">
+
+    <div db:name="subjectset.module">
+      <define name="local.subjectset.attrib">
+        <empty/>
+      </define>
+      <define name="subjectset.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="subjectset">
+        <define name="subjectset">
+          <element name="subjectset">
+            <ref name="subjectset.attlist"/>
+            <oneOrMore>
+              <ref name="subject"/>
+            </oneOrMore>
+          </element>
+        </define>
+      </div>
+
 <!-- Scheme: Controlled vocabulary employed in SubjectTerms -->
-  <define name="subjectset.attlist" combine="interleave">
-    <optional>
-      <attribute name="scheme">
-        <data type="NMTOKEN"/>
-      </attribute>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="subjectset.role.attrib"/>
-    <ref name="local.subjectset.attrib"/>
-  </define>
-<!--end of subjectset.attlist-->
-<!--end of subjectset.module-->
-  <define name="local.subject.attrib">
-    <empty/>
-  </define>
-  <define name="subject.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="subject">
-    <element name="subject">
-      <ref name="subject.attlist"/>
-      <oneOrMore>
-        <ref name="subjectterm"/>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of subject.element-->
+
+      <div db:name="subjectset.attlist">
+        <define name="subjectset.attlist" combine="interleave">
+          <optional>
+            <attribute name="scheme">
+              <data type="NMTOKEN"/>
+            </attribute>
+          </optional>
+          <ref name="common.attrib"/>
+          <ref name="subjectset.role.attrib"/>
+          <ref name="local.subjectset.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="subject.module">
+      <define name="local.subject.attrib">
+        <empty/>
+      </define>
+      <define name="subject.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="subject">
+        <define name="subject">
+          <element name="subject">
+            <ref name="subject.attlist"/>
+            <oneOrMore>
+              <ref name="subjectterm"/>
+            </oneOrMore>
+          </element>
+        </define>
+      </div>
+
 <!-- Weight: Ranking of this group of SubjectTerms relative
                to others, 0 is low, no highest value specified -->
-  <define name="subject.attlist" combine="interleave">
-    <optional>
-      <attribute name="weight"/>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="subject.role.attrib"/>
-    <ref name="local.subject.attrib"/>
-  </define>
-<!--end of subject.attlist-->
-<!--end of subject.module-->
-  <define name="local.subjectterm.attrib">
-    <empty/>
-  </define>
-  <define name="subjectterm.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="subjectterm">
-    <element name="subjectterm">
-      <ref name="subjectterm.attlist"/>
-      <text/>
-    </element>
-  </define>
-<!--end of subjectterm.element-->
-  <define name="subjectterm.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="subjectterm.role.attrib"/>
-    <ref name="local.subjectterm.attrib"/>
-  </define>
-<!--end of subjectterm.attlist-->
-<!--end of subjectterm.module-->
-<!--end of subjectset.content.module-->
-  <define name="local.keywordset.attrib">
-    <empty/>
-  </define>
-  <define name="keywordset.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="keywordset">
-    <element name="keywordset">
-      <ref name="keywordset.attlist"/>
-      <oneOrMore>
-        <ref name="keyword"/>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of keywordset.element-->
-  <define name="keywordset.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="keywordset.role.attrib"/>
-    <ref name="local.keywordset.attrib"/>
-  </define>
-<!--end of keywordset.attlist-->
-<!--end of keywordset.module-->
-  <define name="local.keyword.attrib">
-    <empty/>
-  </define>
-  <define name="keyword.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="keyword">
-    <element name="keyword">
-      <ref name="keyword.attlist"/>
-      <text/>
-    </element>
-  </define>
-<!--end of keyword.element-->
-  <define name="keyword.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="keyword.role.attrib"/>
-    <ref name="local.keyword.attrib"/>
-  </define>
-<!--end of keyword.attlist-->
-<!--end of keyword.module-->
-<!--end of keywordset.content.module-->
-  <define name="local.itermset.attrib">
-    <empty/>
-  </define>
-  <define name="itermset.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="itermset">
-    <element name="itermset">
-      <ref name="itermset.attlist"/>
-      <oneOrMore>
-        <ref name="indexterm"/>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of itermset.element-->
-  <define name="itermset.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="itermset.role.attrib"/>
-    <ref name="local.itermset.attrib"/>
-  </define>
-<!--end of itermset.attlist-->
-<!--end of itermset.module-->
+
+      <div db:name="subject.attlist">
+        <define name="subject.attlist" combine="interleave">
+          <optional>
+            <attribute name="weight"/>
+          </optional>
+          <ref name="common.attrib"/>
+          <ref name="subject.role.attrib"/>
+          <ref name="local.subject.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="subjectterm.module">
+      <define name="local.subjectterm.attrib">
+        <empty/>
+      </define>
+      <define name="subjectterm.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="subjectterm">
+        <define name="subjectterm">
+          <element name="subjectterm">
+            <ref name="subjectterm.attlist"/>
+            <text/>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="subjectterm.attlist">
+        <define name="subjectterm.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="subjectterm.role.attrib"/>
+          <ref name="local.subjectterm.attrib"/>
+        </define>
+      </div>
+    </div>
+  </div>
+
+  <div db:name="keywordset.content.module">
+
+    <div db:name="keywordset.module">
+      <define name="local.keywordset.attrib">
+        <empty/>
+      </define>
+      <define name="keywordset.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="keywordset">
+        <define name="keywordset">
+          <element name="keywordset">
+            <ref name="keywordset.attlist"/>
+            <oneOrMore>
+              <ref name="keyword"/>
+            </oneOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="keywordset.attlist">
+        <define name="keywordset.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="keywordset.role.attrib"/>
+          <ref name="local.keywordset.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="keyword.module">
+      <define name="local.keyword.attrib">
+        <empty/>
+      </define>
+      <define name="keyword.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="keyword">
+        <define name="keyword">
+          <element name="keyword">
+            <ref name="keyword.attlist"/>
+            <text/>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="keyword.attlist">
+        <define name="keyword.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="keyword.role.attrib"/>
+          <ref name="local.keyword.attrib"/>
+        </define>
+      </div>
+    </div>
+  </div>
+
+  <div db:name="itermset.module">
+    <define name="local.itermset.attrib">
+      <empty/>
+    </define>
+    <define name="itermset.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="itermset">
+      <define name="itermset">
+        <element name="itermset">
+          <ref name="itermset.attlist"/>
+          <oneOrMore>
+            <ref name="indexterm"/>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="itermset.attlist">
+      <define name="itermset.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="itermset.role.attrib"/>
+        <ref name="local.itermset.attrib"/>
+      </define>
+    </div>
+  </div>
+
 <!-- Bibliographic info for "blocks" -->
-  <define name="local.blockinfo.attrib">
-    <empty/>
-  </define>
-  <define name="blockinfo.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="blockinfo">
-    <element name="blockinfo">
-      <ref name="blockinfo.attlist"/>
-      <oneOrMore>
-        <ref name="info.class"/>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of blockinfo.element-->
-  <define name="blockinfo.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="blockinfo.role.attrib"/>
-    <ref name="local.blockinfo.attrib"/>
-  </define>
-<!--end of blockinfo.attlist-->
-<!--end of blockinfo.module-->
+
+  <div db:name="blockinfo.module">
+    <define name="local.blockinfo.attrib">
+      <empty/>
+    </define>
+    <define name="blockinfo.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="blockinfo">
+      <define name="blockinfo">
+        <element name="blockinfo">
+          <ref name="blockinfo.attlist"/>
+          <oneOrMore>
+            <ref name="info.class"/>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="blockinfo.attlist">
+      <define name="blockinfo.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="blockinfo.role.attrib"/>
+        <ref name="local.blockinfo.attrib"/>
+      </define>
+    </div>
+  </div>
+
 <!-- ...................................................................... -->
 <!-- Compound (section-ish) elements ...................................... -->
 <!-- Message set ...................... -->
-  <define name="local.msgset.attrib">
-    <empty/>
-  </define>
-  <define name="msgset.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="msgset">
-    <element name="msgset">
-      <ref name="msgset.attlist"/>
-      <optional>
-        <ref name="blockinfo"/>
-      </optional>
-      <optional>
-        <ref name="formalobject.title.content"/>
-      </optional>
-      <choice>
-        <oneOrMore>
-          <ref name="msgentry"/>
-        </oneOrMore>
-        <oneOrMore>
-          <ref name="simplemsgentry"/>
-        </oneOrMore>
-      </choice>
-    </element>
-  </define>
-<!--end of msgset.element-->
-  <define name="msgset.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="msgset.role.attrib"/>
-    <ref name="local.msgset.attrib"/>
-  </define>
-<!--end of msgset.attlist-->
-<!--end of msgset.module-->
-  <define name="local.msgentry.attrib">
-    <empty/>
-  </define>
-  <define name="msgentry.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="msgentry">
-    <element name="msgentry">
-      <ref name="msgentry.attlist"/>
-      <oneOrMore>
-        <ref name="msg"/>
-      </oneOrMore>
-      <optional>
-        <ref name="msginfo"/>
-      </optional>
-      <zeroOrMore>
-        <ref name="msgexplan"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of msgentry.element-->
-  <define name="msgentry.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="msgentry.role.attrib"/>
-    <ref name="local.msgentry.attrib"/>
-  </define>
-<!--end of msgentry.attlist-->
-<!--end of msgentry.module-->
-  <define name="local.simplemsgentry.attrib">
-    <empty/>
-  </define>
-  <define name="simplemsgentry.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="simplemsgentry">
-    <element name="simplemsgentry">
-      <ref name="simplemsgentry.attlist"/>
-      <ref name="msgtext"/>
-      <oneOrMore>
-        <ref name="msgexplan"/>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of simplemsgentry.element-->
-  <define name="simplemsgentry.attlist" combine="interleave">
-    <optional>
-      <attribute name="audience"/>
-    </optional>
-    <optional>
-      <attribute name="level"/>
-    </optional>
-    <optional>
-      <attribute name="origin"/>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="simplemsgentry.role.attrib"/>
-    <ref name="local.simplemsgentry.attrib"/>
-  </define>
-<!--end of simplemsgentry.attlist-->
-<!--end of simplemsgentry.module-->
-  <define name="local.msg.attrib">
-    <empty/>
-  </define>
-  <define name="msg.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="msg">
-    <element name="msg">
-      <ref name="msg.attlist"/>
-      <optional>
-        <ref name="title"/>
-      </optional>
-      <ref name="msgmain"/>
-      <zeroOrMore>
-        <choice>
-          <ref name="msgsub"/>
-          <ref name="msgrel"/>
-        </choice>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of msg.element-->
-  <define name="msg.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="msg.role.attrib"/>
-    <ref name="local.msg.attrib"/>
-  </define>
-<!--end of msg.attlist-->
-<!--end of msg.module-->
-  <define name="local.msgmain.attrib">
-    <empty/>
-  </define>
-  <define name="msgmain.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="msgmain">
-    <element name="msgmain">
-      <ref name="msgmain.attlist"/>
-      <optional>
-        <ref name="title"/>
-      </optional>
-      <ref name="msgtext"/>
-    </element>
-  </define>
-<!--end of msgmain.element-->
-  <define name="msgmain.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="msgmain.role.attrib"/>
-    <ref name="local.msgmain.attrib"/>
-  </define>
-<!--end of msgmain.attlist-->
-<!--end of msgmain.module-->
-  <define name="local.msgsub.attrib">
-    <empty/>
-  </define>
-  <define name="msgsub.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="msgsub">
-    <element name="msgsub">
-      <ref name="msgsub.attlist"/>
-      <optional>
-        <ref name="title"/>
-      </optional>
-      <ref name="msgtext"/>
-    </element>
-  </define>
-<!--end of msgsub.element-->
-  <define name="msgsub.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="msgsub.role.attrib"/>
-    <ref name="local.msgsub.attrib"/>
-  </define>
-<!--end of msgsub.attlist-->
-<!--end of msgsub.module-->
-  <define name="local.msgrel.attrib">
-    <empty/>
-  </define>
-  <define name="msgrel.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="msgrel">
-    <element name="msgrel">
-      <ref name="msgrel.attlist"/>
-      <optional>
-        <ref name="title"/>
-      </optional>
-      <ref name="msgtext"/>
-    </element>
-  </define>
-<!--end of msgrel.element-->
-  <define name="msgrel.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="msgrel.role.attrib"/>
-    <ref name="local.msgrel.attrib"/>
-  </define>
-<!--end of msgrel.attlist-->
-<!--end of msgrel.module-->
+
+  <div db:name="msgset.content.module">
+
+    <div db:name="msgset.module">
+      <define name="local.msgset.attrib">
+        <empty/>
+      </define>
+      <define name="msgset.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="msgset">
+        <define name="msgset">
+          <element name="msgset">
+            <ref name="msgset.attlist"/>
+            <optional>
+              <ref name="blockinfo"/>
+            </optional>
+            <optional>
+              <ref name="formalobject.title.content"/>
+            </optional>
+            <choice>
+              <oneOrMore>
+                <ref name="msgentry"/>
+              </oneOrMore>
+              <oneOrMore>
+                <ref name="simplemsgentry"/>
+              </oneOrMore>
+            </choice>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="msgset.attlist">
+        <define name="msgset.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="msgset.role.attrib"/>
+          <ref name="local.msgset.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="msgentry.module">
+      <define name="local.msgentry.attrib">
+        <empty/>
+      </define>
+      <define name="msgentry.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="msgentry">
+        <define name="msgentry">
+          <element name="msgentry">
+            <ref name="msgentry.attlist"/>
+            <oneOrMore>
+              <ref name="msg"/>
+            </oneOrMore>
+            <optional>
+              <ref name="msginfo"/>
+            </optional>
+            <zeroOrMore>
+              <ref name="msgexplan"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="msgentry.attlist">
+        <define name="msgentry.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="msgentry.role.attrib"/>
+          <ref name="local.msgentry.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="simplemsgentry.module">
+      <define name="local.simplemsgentry.attrib">
+        <empty/>
+      </define>
+      <define name="simplemsgentry.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="simplemsgentry">
+        <define name="simplemsgentry">
+          <element name="simplemsgentry">
+            <ref name="simplemsgentry.attlist"/>
+            <ref name="msgtext"/>
+            <oneOrMore>
+              <ref name="msgexplan"/>
+            </oneOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="simplemsgentry.attlist">
+        <define name="simplemsgentry.attlist" combine="interleave">
+          <optional>
+            <attribute name="audience"/>
+          </optional>
+          <optional>
+            <attribute name="level"/>
+          </optional>
+          <optional>
+            <attribute name="origin"/>
+          </optional>
+          <ref name="common.attrib"/>
+          <ref name="simplemsgentry.role.attrib"/>
+          <ref name="local.simplemsgentry.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="msg.module">
+      <define name="local.msg.attrib">
+        <empty/>
+      </define>
+      <define name="msg.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="msg">
+        <define name="msg">
+          <element name="msg">
+            <ref name="msg.attlist"/>
+            <optional>
+              <ref name="title"/>
+            </optional>
+            <ref name="msgmain"/>
+            <zeroOrMore>
+              <choice>
+                <ref name="msgsub"/>
+                <ref name="msgrel"/>
+              </choice>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="msg.attlist">
+        <define name="msg.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="msg.role.attrib"/>
+          <ref name="local.msg.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="msgmain.module">
+      <define name="local.msgmain.attrib">
+        <empty/>
+      </define>
+      <define name="msgmain.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="msgmain">
+        <define name="msgmain">
+          <element name="msgmain">
+            <ref name="msgmain.attlist"/>
+            <optional>
+              <ref name="title"/>
+            </optional>
+            <ref name="msgtext"/>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="msgmain.attlist">
+        <define name="msgmain.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="msgmain.role.attrib"/>
+          <ref name="local.msgmain.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="msgsub.module">
+      <define name="local.msgsub.attrib">
+        <empty/>
+      </define>
+      <define name="msgsub.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="msgsub">
+        <define name="msgsub">
+          <element name="msgsub">
+            <ref name="msgsub.attlist"/>
+            <optional>
+              <ref name="title"/>
+            </optional>
+            <ref name="msgtext"/>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="msgsub.attlist">
+        <define name="msgsub.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="msgsub.role.attrib"/>
+          <ref name="local.msgsub.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="msgrel.module">
+      <define name="local.msgrel.attrib">
+        <empty/>
+      </define>
+      <define name="msgrel.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="msgrel">
+        <define name="msgrel">
+          <element name="msgrel">
+            <ref name="msgrel.attlist"/>
+            <optional>
+              <ref name="title"/>
+            </optional>
+            <ref name="msgtext"/>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="msgrel.attlist">
+        <define name="msgrel.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="msgrel.role.attrib"/>
+          <ref name="local.msgrel.attrib"/>
+        </define>
+      </div>
+    </div>
+
 <!-- MsgText (defined in the Inlines section, below)-->
-  <define name="local.msginfo.attrib">
-    <empty/>
-  </define>
-  <define name="msginfo.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="msginfo">
-    <element name="msginfo">
-      <ref name="msginfo.attlist"/>
-      <zeroOrMore>
-        <choice>
-          <ref name="msglevel"/>
-          <ref name="msgorig"/>
-          <ref name="msgaud"/>
-        </choice>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of msginfo.element-->
-  <define name="msginfo.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="msginfo.role.attrib"/>
-    <ref name="local.msginfo.attrib"/>
-  </define>
-<!--end of msginfo.attlist-->
-<!--end of msginfo.module-->
-  <define name="local.msglevel.attrib">
-    <empty/>
-  </define>
-  <define name="msglevel.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="msglevel">
-    <element name="msglevel">
-      <ref name="msglevel.attlist"/>
-      <zeroOrMore>
-        <ref name="smallcptr.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of msglevel.element-->
-  <define name="msglevel.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="msglevel.role.attrib"/>
-    <ref name="local.msglevel.attrib"/>
-  </define>
-<!--end of msglevel.attlist-->
-<!--end of msglevel.module-->
-  <define name="local.msgorig.attrib">
-    <empty/>
-  </define>
-  <define name="msgorig.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="msgorig">
-    <element name="msgorig">
-      <ref name="msgorig.attlist"/>
-      <zeroOrMore>
-        <ref name="smallcptr.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of msgorig.element-->
-  <define name="msgorig.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="msgorig.role.attrib"/>
-    <ref name="local.msgorig.attrib"/>
-  </define>
-<!--end of msgorig.attlist-->
-<!--end of msgorig.module-->
-  <define name="local.msgaud.attrib">
-    <empty/>
-  </define>
-  <define name="msgaud.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="msgaud">
-    <element name="msgaud">
-      <ref name="msgaud.attlist"/>
-      <zeroOrMore>
-        <ref name="para.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of msgaud.element-->
-  <define name="msgaud.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="msgaud.role.attrib"/>
-    <ref name="local.msgaud.attrib"/>
-  </define>
-<!--end of msgaud.attlist-->
-<!--end of msgaud.module-->
-  <define name="local.msgexplan.attrib">
-    <empty/>
-  </define>
-  <define name="msgexplan.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="msgexplan">
-    <element name="msgexplan">
-      <ref name="msgexplan.attlist"/>
-      <optional>
-        <ref name="title"/>
-      </optional>
-      <oneOrMore>
-        <ref name="component.mix"/>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of msgexplan.element-->
-  <define name="msgexplan.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="msgexplan.role.attrib"/>
-    <ref name="local.msgexplan.attrib"/>
-  </define>
-<!--end of msgexplan.attlist-->
-<!--end of msgexplan.module-->
-<!--end of msgset.content.module-->
+
+    <div db:name="msginfo.module">
+      <define name="local.msginfo.attrib">
+        <empty/>
+      </define>
+      <define name="msginfo.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="msginfo">
+        <define name="msginfo">
+          <element name="msginfo">
+            <ref name="msginfo.attlist"/>
+            <zeroOrMore>
+              <choice>
+                <ref name="msglevel"/>
+                <ref name="msgorig"/>
+                <ref name="msgaud"/>
+              </choice>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="msginfo.attlist">
+        <define name="msginfo.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="msginfo.role.attrib"/>
+          <ref name="local.msginfo.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="msglevel.module">
+      <define name="local.msglevel.attrib">
+        <empty/>
+      </define>
+      <define name="msglevel.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="msglevel">
+        <define name="msglevel">
+          <element name="msglevel">
+            <ref name="msglevel.attlist"/>
+            <zeroOrMore>
+              <ref name="smallcptr.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="msglevel.attlist">
+        <define name="msglevel.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="msglevel.role.attrib"/>
+          <ref name="local.msglevel.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="msgorig.module">
+      <define name="local.msgorig.attrib">
+        <empty/>
+      </define>
+      <define name="msgorig.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="msgorig">
+        <define name="msgorig">
+          <element name="msgorig">
+            <ref name="msgorig.attlist"/>
+            <zeroOrMore>
+              <ref name="smallcptr.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="msgorig.attlist">
+        <define name="msgorig.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="msgorig.role.attrib"/>
+          <ref name="local.msgorig.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="msgaud.module">
+      <define name="local.msgaud.attrib">
+        <empty/>
+      </define>
+      <define name="msgaud.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="msgaud">
+        <define name="msgaud">
+          <element name="msgaud">
+            <ref name="msgaud.attlist"/>
+            <zeroOrMore>
+              <ref name="para.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="msgaud.attlist">
+        <define name="msgaud.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="msgaud.role.attrib"/>
+          <ref name="local.msgaud.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="msgexplan.module">
+      <define name="local.msgexplan.attrib">
+        <empty/>
+      </define>
+      <define name="msgexplan.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="msgexplan">
+        <define name="msgexplan">
+          <element name="msgexplan">
+            <ref name="msgexplan.attlist"/>
+            <optional>
+              <ref name="title"/>
+            </optional>
+            <oneOrMore>
+              <ref name="component.mix"/>
+            </oneOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="msgexplan.attlist">
+        <define name="msgexplan.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="msgexplan.role.attrib"/>
+          <ref name="local.msgexplan.attrib"/>
+        </define>
+      </div>
+    </div>
+  </div>
+
 <!-- QandASet ........................ -->
-  <define name="local.qandaset.attrib">
-    <empty/>
-  </define>
-  <define name="qandaset.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="qandaset">
-    <element name="qandaset">
-      <ref name="qandaset.attlist"/>
-      <optional>
-        <ref name="blockinfo"/>
-      </optional>
-      <optional>
-        <ref name="formalobject.title.content"/>
-      </optional>
-      <zeroOrMore>
-        <ref name="qandaset.mix"/>
-      </zeroOrMore>
-      <choice>
-        <oneOrMore>
-          <ref name="qandadiv"/>
-        </oneOrMore>
-        <oneOrMore>
-          <ref name="qandaentry"/>
-        </oneOrMore>
-      </choice>
-    </element>
-  </define>
-<!--end of qandaset.element-->
-  <define name="qandaset.attlist" combine="interleave">
-    <optional>
-      <attribute name="defaultlabel">
-        <choice>
-          <value>qanda</value>
-          <value>number</value>
-          <value>none</value>
-        </choice>
-      </attribute>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="qandaset.role.attrib"/>
-    <ref name="local.qandaset.attrib"/>
-  </define>
-<!--end of qandaset.attlist-->
-<!--end of qandaset.module-->
-  <define name="local.qandadiv.attrib">
-    <empty/>
-  </define>
-  <define name="qandadiv.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="qandadiv">
-    <element name="qandadiv">
-      <ref name="qandadiv.attlist"/>
-      <optional>
-        <ref name="blockinfo"/>
-      </optional>
-      <optional>
-        <ref name="formalobject.title.content"/>
-      </optional>
-      <zeroOrMore>
-        <ref name="qandaset.mix"/>
-      </zeroOrMore>
-      <choice>
-        <oneOrMore>
-          <ref name="qandadiv"/>
-        </oneOrMore>
-        <oneOrMore>
-          <ref name="qandaentry"/>
-        </oneOrMore>
-      </choice>
-    </element>
-  </define>
-<!--end of qandadiv.element-->
-  <define name="qandadiv.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="qandadiv.role.attrib"/>
-    <ref name="local.qandadiv.attrib"/>
-  </define>
-<!--end of qandadiv.attlist-->
-<!--end of qandadiv.module-->
-  <define name="local.qandaentry.attrib">
-    <empty/>
-  </define>
-  <define name="qandaentry.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="qandaentry">
-    <element name="qandaentry">
-      <ref name="qandaentry.attlist"/>
-      <optional>
-        <ref name="blockinfo"/>
-      </optional>
-      <optional>
-        <ref name="revhistory"/>
-      </optional>
-      <ref name="question"/>
-      <zeroOrMore>
-        <ref name="answer"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of qandaentry.element-->
-  <define name="qandaentry.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="qandaentry.role.attrib"/>
-    <ref name="local.qandaentry.attrib"/>
-  </define>
-<!--end of qandaentry.attlist-->
-<!--end of qandaentry.module-->
-  <define name="local.question.attrib">
-    <empty/>
-  </define>
-  <define name="question.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="question">
-    <element name="question">
-      <ref name="question.attlist"/>
-      <optional>
-        <ref name="label"/>
-      </optional>
-      <oneOrMore>
-        <ref name="qandaset.mix"/>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of question.element-->
-  <define name="question.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="question.role.attrib"/>
-    <ref name="local.question.attrib"/>
-  </define>
-<!--end of question.attlist-->
-<!--end of question.module-->
-  <define name="local.answer.attrib">
-    <empty/>
-  </define>
-  <define name="answer.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="answer">
-    <element name="answer">
-      <ref name="answer.attlist"/>
-      <optional>
-        <ref name="label"/>
-      </optional>
-      <zeroOrMore>
-        <ref name="qandaset.mix"/>
-      </zeroOrMore>
-      <zeroOrMore>
-        <ref name="qandaentry"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of answer.element-->
-  <define name="answer.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="answer.role.attrib"/>
-    <ref name="local.answer.attrib"/>
-  </define>
-<!--end of answer.attlist-->
-<!--end of answer.module-->
-  <define name="local.label.attrib">
-    <empty/>
-  </define>
-  <define name="label.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="label">
-    <element name="label">
-      <ref name="label.attlist"/>
-      <zeroOrMore>
-        <ref name="word.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of label.element-->
-  <define name="label.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="label.role.attrib"/>
-    <ref name="local.label.attrib"/>
-  </define>
-<!--end of label.attlist-->
-<!--end of label.module-->
-<!--end of qandaset.content.module-->
-<!-- Procedure ........................ -->
-  <define name="local.procedure.attrib">
-    <empty/>
-  </define>
-  <define name="procedure.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="procedure">
-    <element name="procedure">
-      <ref name="procedure.attlist"/>
-      <optional>
-        <ref name="blockinfo"/>
-      </optional>
-      <optional>
-        <ref name="formalobject.title.content"/>
-      </optional>
-      <zeroOrMore>
-        <ref name="component.mix"/>
-      </zeroOrMore>
-      <oneOrMore>
-        <ref name="step"/>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of procedure.element-->
-  <define name="procedure.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="procedure.role.attrib"/>
-    <ref name="local.procedure.attrib"/>
-  </define>
-<!--end of procedure.attlist-->
-<!--end of procedure.module-->
-  <define name="local.step.attrib">
-    <empty/>
-  </define>
-  <define name="step.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="step">
-    <element name="step">
-      <ref name="step.attlist"/>
-      <optional>
-        <ref name="title"/>
-      </optional>
-      <choice>
-        <group>
-          <oneOrMore>
-            <ref name="component.mix"/>
-          </oneOrMore>
+
+  <div db:name="qandaset.content.module">
+
+    <div db:name="qandaset.module">
+      <define name="local.qandaset.attrib">
+        <empty/>
+      </define>
+      <define name="qandaset.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="qandaset">
+        <define name="qandaset">
+          <element name="qandaset">
+            <ref name="qandaset.attlist"/>
+            <optional>
+              <ref name="blockinfo"/>
+            </optional>
+            <optional>
+              <ref name="formalobject.title.content"/>
+            </optional>
+            <zeroOrMore>
+              <ref name="qandaset.mix"/>
+            </zeroOrMore>
+            <choice>
+              <oneOrMore>
+                <ref name="qandadiv"/>
+              </oneOrMore>
+              <oneOrMore>
+                <ref name="qandaentry"/>
+              </oneOrMore>
+            </choice>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="qandaset.attlist">
+        <define name="qandaset.attlist" combine="interleave">
           <optional>
-            <ref name="substeps"/>
+            <attribute name="defaultlabel">
+              <choice>
+                <value>qanda</value>
+                <value>number</value>
+                <value>none</value>
+              </choice>
+            </attribute>
+          </optional>
+          <ref name="common.attrib"/>
+          <ref name="qandaset.role.attrib"/>
+          <ref name="local.qandaset.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="qandadiv.module">
+      <define name="local.qandadiv.attrib">
+        <empty/>
+      </define>
+      <define name="qandadiv.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="qandadiv">
+        <define name="qandadiv">
+          <element name="qandadiv">
+            <ref name="qandadiv.attlist"/>
+            <optional>
+              <ref name="blockinfo"/>
+            </optional>
+            <optional>
+              <ref name="formalobject.title.content"/>
+            </optional>
+            <zeroOrMore>
+              <ref name="qandaset.mix"/>
+            </zeroOrMore>
+            <choice>
+              <oneOrMore>
+                <ref name="qandadiv"/>
+              </oneOrMore>
+              <oneOrMore>
+                <ref name="qandaentry"/>
+              </oneOrMore>
+            </choice>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="qandadiv.attlist">
+        <define name="qandadiv.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="qandadiv.role.attrib"/>
+          <ref name="local.qandadiv.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="qandaentry.module">
+      <define name="local.qandaentry.attrib">
+        <empty/>
+      </define>
+      <define name="qandaentry.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="qandaentry">
+        <define name="qandaentry">
+          <element name="qandaentry">
+            <ref name="qandaentry.attlist"/>
+            <optional>
+              <ref name="blockinfo"/>
+            </optional>
+            <optional>
+              <ref name="revhistory"/>
+            </optional>
+            <ref name="question"/>
+            <zeroOrMore>
+              <ref name="answer"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="qandaentry.attlist">
+        <define name="qandaentry.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="qandaentry.role.attrib"/>
+          <ref name="local.qandaentry.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="question.module">
+      <define name="local.question.attrib">
+        <empty/>
+      </define>
+      <define name="question.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="question">
+        <define name="question">
+          <element name="question">
+            <ref name="question.attlist"/>
+            <optional>
+              <ref name="label"/>
+            </optional>
+            <oneOrMore>
+              <ref name="qandaset.mix"/>
+            </oneOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="question.attlist">
+        <define name="question.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="question.role.attrib"/>
+          <ref name="local.question.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="answer.module">
+      <define name="local.answer.attrib">
+        <empty/>
+      </define>
+      <define name="answer.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="answer">
+        <define name="answer">
+          <element name="answer">
+            <ref name="answer.attlist"/>
+            <optional>
+              <ref name="label"/>
+            </optional>
+            <zeroOrMore>
+              <ref name="qandaset.mix"/>
+            </zeroOrMore>
+            <zeroOrMore>
+              <ref name="qandaentry"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="answer.attlist">
+        <define name="answer.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="answer.role.attrib"/>
+          <ref name="local.answer.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="label.module">
+      <define name="local.label.attrib">
+        <empty/>
+      </define>
+      <define name="label.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="label">
+        <define name="label">
+          <element name="label">
+            <ref name="label.attlist"/>
+            <zeroOrMore>
+              <ref name="word.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="label.attlist">
+        <define name="label.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="label.role.attrib"/>
+          <ref name="local.label.attrib"/>
+        </define>
+      </div>
+    </div>
+  </div>
+
+<!-- Procedure ........................ -->
+
+  <div db:name="procedure.content.module">
+
+    <div db:name="procedure.module">
+      <define name="local.procedure.attrib">
+        <empty/>
+      </define>
+      <define name="procedure.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="procedure">
+        <define name="procedure">
+          <element name="procedure">
+            <ref name="procedure.attlist"/>
+            <optional>
+              <ref name="blockinfo"/>
+            </optional>
+            <optional>
+              <ref name="formalobject.title.content"/>
+            </optional>
             <zeroOrMore>
               <ref name="component.mix"/>
             </zeroOrMore>
-          </optional>
-        </group>
-        <group>
-          <ref name="substeps"/>
-          <zeroOrMore>
-            <ref name="component.mix"/>
-          </zeroOrMore>
-        </group>
-      </choice>
-    </element>
-  </define>
-<!--end of step.element-->
+            <oneOrMore>
+              <ref name="step"/>
+            </oneOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="procedure.attlist">
+        <define name="procedure.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="procedure.role.attrib"/>
+          <ref name="local.procedure.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="step.module">
+      <define name="local.step.attrib">
+        <empty/>
+      </define>
+      <define name="step.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="step">
+        <define name="step">
+          <element name="step">
+            <ref name="step.attlist"/>
+            <optional>
+              <ref name="title"/>
+            </optional>
+            <choice>
+              <group>
+                <oneOrMore>
+                  <ref name="component.mix"/>
+                </oneOrMore>
+                <optional>
+                  <ref name="substeps"/>
+                  <zeroOrMore>
+                    <ref name="component.mix"/>
+                  </zeroOrMore>
+                </optional>
+              </group>
+              <group>
+                <ref name="substeps"/>
+                <zeroOrMore>
+                  <ref name="component.mix"/>
+                </zeroOrMore>
+              </group>
+            </choice>
+          </element>
+        </define>
+      </div>
+
 <!-- Performance: Whether the Step must be performed -->
 <!-- not #REQUIRED! -->
-  <define name="step.attlist" combine="interleave">
-    <optional>
-      <attribute name="performance" a:defaultValue="required">
-        <choice>
-          <value>optional</value>
-          <value>required</value>
-        </choice>
-      </attribute>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="step.role.attrib"/>
-    <ref name="local.step.attrib"/>
-  </define>
-<!--end of step.attlist-->
-<!--end of step.module-->
-  <define name="local.substeps.attrib">
-    <empty/>
-  </define>
-  <define name="substeps.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="substeps">
-    <element name="substeps">
-      <ref name="substeps.attlist"/>
-      <oneOrMore>
-        <ref name="step"/>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of substeps.element-->
+
+      <div db:name="step.attlist">
+        <define name="step.attlist" combine="interleave">
+          <optional>
+            <attribute name="performance" a:defaultValue="required">
+              <choice>
+                <value>optional</value>
+                <value>required</value>
+              </choice>
+            </attribute>
+          </optional>
+          <ref name="common.attrib"/>
+          <ref name="step.role.attrib"/>
+          <ref name="local.step.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="substeps.module">
+      <define name="local.substeps.attrib">
+        <empty/>
+      </define>
+      <define name="substeps.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="substeps">
+        <define name="substeps">
+          <element name="substeps">
+            <ref name="substeps.attlist"/>
+            <oneOrMore>
+              <ref name="step"/>
+            </oneOrMore>
+          </element>
+        </define>
+      </div>
+
 <!-- Performance: whether entire set of substeps must be performed -->
 <!-- not #REQUIRED! -->
-  <define name="substeps.attlist" combine="interleave">
-    <optional>
-      <attribute name="performance" a:defaultValue="required">
-        <choice>
-          <value>optional</value>
-          <value>required</value>
-        </choice>
-      </attribute>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="substeps.role.attrib"/>
-    <ref name="local.substeps.attrib"/>
-  </define>
-<!--end of substeps.attlist-->
-<!--end of substeps.module-->
-<!--end of procedure.content.module-->
+
+      <div db:name="substeps.attlist">
+        <define name="substeps.attlist" combine="interleave">
+          <optional>
+            <attribute name="performance" a:defaultValue="required">
+              <choice>
+                <value>optional</value>
+                <value>required</value>
+              </choice>
+            </attribute>
+          </optional>
+          <ref name="common.attrib"/>
+          <ref name="substeps.role.attrib"/>
+          <ref name="local.substeps.attrib"/>
+        </define>
+      </div>
+    </div>
+  </div>
+
 <!-- Sidebar .......................... -->
-  <define name="local.sidebarinfo.attrib">
-    <empty/>
-  </define>
-  <define name="sidebarinfo.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="sidebarinfo">
-    <element name="sidebarinfo">
-      <ref name="sidebarinfo.attlist"/>
-      <oneOrMore>
-        <ref name="info.class"/>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of sidebarinfo.element-->
-  <define name="sidebarinfo.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="sidebarinfo.role.attrib"/>
-    <ref name="local.sidebarinfo.attrib"/>
-  </define>
-<!--end of sidebarinfo.attlist-->
-<!--end of sidebarinfo.module-->
-  <define name="local.sidebar.attrib">
-    <empty/>
-  </define>
-  <define name="sidebar.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="sidebar">
-    <element name="sidebar">
-      <ref name="sidebar.attlist"/>
-      <optional>
-        <ref name="sidebarinfo"/>
-      </optional>
-      <optional>
-        <ref name="formalobject.title.content"/>
-      </optional>
-      <oneOrMore>
-        <ref name="sidebar.mix"/>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of sidebar.element-->
-  <define name="sidebar.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="sidebar.role.attrib"/>
-    <ref name="local.sidebar.attrib"/>
-  </define>
-<!--end of sidebar.attlist-->
-<!--end of sidebar.module-->
+
+  <div db:name="sidebarinfo.module">
+    <define name="local.sidebarinfo.attrib">
+      <empty/>
+    </define>
+    <define name="sidebarinfo.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="sidebarinfo">
+      <define name="sidebarinfo">
+        <element name="sidebarinfo">
+          <ref name="sidebarinfo.attlist"/>
+          <oneOrMore>
+            <ref name="info.class"/>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="sidebarinfo.attlist">
+      <define name="sidebarinfo.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="sidebarinfo.role.attrib"/>
+        <ref name="local.sidebarinfo.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="sidebar.module">
+    <define name="local.sidebar.attrib">
+      <empty/>
+    </define>
+    <define name="sidebar.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="sidebar">
+      <define name="sidebar">
+        <element name="sidebar">
+          <ref name="sidebar.attlist"/>
+          <optional>
+            <ref name="sidebarinfo"/>
+          </optional>
+          <optional>
+            <ref name="formalobject.title.content"/>
+          </optional>
+          <oneOrMore>
+            <ref name="sidebar.mix"/>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="sidebar.attlist">
+      <define name="sidebar.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="sidebar.role.attrib"/>
+        <ref name="local.sidebar.attrib"/>
+      </define>
+    </div>
+  </div>
+
 <!--end of sidebar.content.model-->
 <!-- ...................................................................... -->
 <!-- Paragraph-related elements ........................................... -->
-  <define name="local.abstract.attrib">
-    <empty/>
-  </define>
-  <define name="abstract.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="abstract">
-    <element name="abstract">
-      <ref name="abstract.attlist"/>
-      <optional>
-        <ref name="title"/>
-      </optional>
-      <oneOrMore>
-        <ref name="para.class"/>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of abstract.element-->
-  <define name="abstract.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="abstract.role.attrib"/>
-    <ref name="local.abstract.attrib"/>
-  </define>
-<!--end of abstract.attlist-->
-<!--end of abstract.module-->
-  <define name="local.authorblurb.attrib">
-    <empty/>
-  </define>
-  <define name="authorblurb.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="authorblurb">
-    <element name="authorblurb">
-      <ref name="authorblurb.attlist"/>
-      <optional>
-        <ref name="title"/>
-      </optional>
-      <oneOrMore>
-        <ref name="para.class"/>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of authorblurb.element-->
-  <define name="authorblurb.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="authorblurb.role.attrib"/>
-    <ref name="local.authorblurb.attrib"/>
-  </define>
-<!--end of authorblurb.attlist-->
-<!--end of authorblurb.module-->
-  <define name="local.personblurb.attrib">
-    <empty/>
-  </define>
-  <define name="personblurb.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="personblurb">
-    <element name="personblurb">
-      <ref name="personblurb.attlist"/>
-      <optional>
-        <ref name="title"/>
-      </optional>
-      <oneOrMore>
-        <ref name="para.class"/>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of personblurb.element-->
-  <define name="personblurb.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="personblurb.role.attrib"/>
-    <ref name="local.personblurb.attrib"/>
-  </define>
-<!--end of personblurb.attlist-->
-<!--end of personblurb.module-->
-  <define name="local.blockquote.attrib">
-    <empty/>
-  </define>
-  <define name="blockquote.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="blockquote">
-    <element name="blockquote">
-      <ref name="blockquote.attlist"/>
-      <optional>
-        <ref name="title"/>
-      </optional>
-      <optional>
-        <ref name="attribution"/>
-      </optional>
-      <oneOrMore>
-        <ref name="component.mix"/>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of blockquote.element-->
-  <define name="blockquote.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="blockquote.role.attrib"/>
-    <ref name="local.blockquote.attrib"/>
-  </define>
-<!--end of blockquote.attlist-->
-<!--end of blockquote.module-->
-  <define name="local.attribution.attrib">
-    <empty/>
-  </define>
-  <define name="attribution.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="attribution">
-    <element name="attribution">
-      <ref name="attribution.attlist"/>
-      <zeroOrMore>
-        <ref name="para.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of attribution.element-->
-  <define name="attribution.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="attribution.role.attrib"/>
-    <ref name="local.attribution.attrib"/>
-  </define>
-<!--end of attribution.attlist-->
-<!--end of attribution.module-->
-  <define name="local.bridgehead.attrib">
-    <empty/>
-  </define>
-  <define name="bridgehead.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="bridgehead">
-    <element name="bridgehead">
-      <ref name="bridgehead.attlist"/>
-      <zeroOrMore>
-        <ref name="title.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of bridgehead.element-->
+
+  <div db:name="abstract.module">
+    <define name="local.abstract.attrib">
+      <empty/>
+    </define>
+    <define name="abstract.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="abstract">
+      <define name="abstract">
+        <element name="abstract">
+          <ref name="abstract.attlist"/>
+          <optional>
+            <ref name="title"/>
+          </optional>
+          <oneOrMore>
+            <ref name="para.class"/>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="abstract.attlist">
+      <define name="abstract.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="abstract.role.attrib"/>
+        <ref name="local.abstract.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="authorblurb.module">
+    <define name="local.authorblurb.attrib">
+      <empty/>
+    </define>
+    <define name="authorblurb.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="authorblurb">
+      <define name="authorblurb">
+        <element name="authorblurb">
+          <ref name="authorblurb.attlist"/>
+          <optional>
+            <ref name="title"/>
+          </optional>
+          <oneOrMore>
+            <ref name="para.class"/>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="authorblurb.attlist">
+      <define name="authorblurb.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="authorblurb.role.attrib"/>
+        <ref name="local.authorblurb.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="personblurb.module">
+    <define name="local.personblurb.attrib">
+      <empty/>
+    </define>
+    <define name="personblurb.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="personblurb">
+      <define name="personblurb">
+        <element name="personblurb">
+          <ref name="personblurb.attlist"/>
+          <optional>
+            <ref name="title"/>
+          </optional>
+          <oneOrMore>
+            <ref name="para.class"/>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="personblurb.attlist">
+      <define name="personblurb.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="personblurb.role.attrib"/>
+        <ref name="local.personblurb.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="blockquote.module">
+    <define name="local.blockquote.attrib">
+      <empty/>
+    </define>
+    <define name="blockquote.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="blockquote">
+      <define name="blockquote">
+        <element name="blockquote">
+          <ref name="blockquote.attlist"/>
+          <optional>
+            <ref name="title"/>
+          </optional>
+          <optional>
+            <ref name="attribution"/>
+          </optional>
+          <oneOrMore>
+            <ref name="component.mix"/>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="blockquote.attlist">
+      <define name="blockquote.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="blockquote.role.attrib"/>
+        <ref name="local.blockquote.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="attribution.module">
+    <define name="local.attribution.attrib">
+      <empty/>
+    </define>
+    <define name="attribution.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="attribution">
+      <define name="attribution">
+        <element name="attribution">
+          <ref name="attribution.attlist"/>
+          <zeroOrMore>
+            <ref name="para.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="attribution.attlist">
+      <define name="attribution.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="attribution.role.attrib"/>
+        <ref name="local.attribution.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="bridgehead.module">
+    <define name="local.bridgehead.attrib">
+      <empty/>
+    </define>
+    <define name="bridgehead.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="bridgehead">
+      <define name="bridgehead">
+        <element name="bridgehead">
+          <ref name="bridgehead.attlist"/>
+          <zeroOrMore>
+            <ref name="title.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
 <!-- Renderas: Indicates the format in which the BridgeHead
                should appear -->
-  <define name="bridgehead.attlist" combine="interleave">
-    <optional>
-      <attribute name="renderas">
-        <choice>
-          <value>other</value>
-          <value>sect1</value>
-          <value>sect2</value>
-          <value>sect3</value>
-          <value>sect4</value>
-          <value>sect5</value>
-        </choice>
-      </attribute>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="bridgehead.role.attrib"/>
-    <ref name="local.bridgehead.attrib"/>
-  </define>
-<!--end of bridgehead.attlist-->
-<!--end of bridgehead.module-->
-  <define name="local.remark.attrib">
-    <empty/>
-  </define>
-  <define name="remark.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="remark">
-    <element name="remark">
-      <ref name="remark.attlist"/>
-      <zeroOrMore>
-        <ref name="para.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of remark.element-->
-  <define name="remark.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="remark.role.attrib"/>
-    <ref name="local.remark.attrib"/>
-  </define>
-<!--end of remark.attlist-->
-<!--end of remark.module-->
-  <define name="local.epigraph.attrib">
-    <empty/>
-  </define>
-  <define name="epigraph.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="epigraph">
-    <element name="epigraph">
-      <ref name="epigraph.attlist"/>
-      <optional>
-        <ref name="attribution"/>
-      </optional>
-      <oneOrMore>
-        <choice>
-          <ref name="para.class"/>
-          <ref name="literallayout"/>
-        </choice>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of epigraph.element-->
-  <define name="epigraph.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="epigraph.role.attrib"/>
-    <ref name="local.epigraph.attrib"/>
-  </define>
-<!--end of epigraph.attlist-->
+
+    <div db:name="bridgehead.attlist">
+      <define name="bridgehead.attlist" combine="interleave">
+        <optional>
+          <attribute name="renderas">
+            <choice>
+              <value>other</value>
+              <value>sect1</value>
+              <value>sect2</value>
+              <value>sect3</value>
+              <value>sect4</value>
+              <value>sect5</value>
+            </choice>
+          </attribute>
+        </optional>
+        <ref name="common.attrib"/>
+        <ref name="bridgehead.role.attrib"/>
+        <ref name="local.bridgehead.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="remark.module">
+    <define name="local.remark.attrib">
+      <empty/>
+    </define>
+    <define name="remark.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="remark">
+      <define name="remark">
+        <element name="remark">
+          <ref name="remark.attlist"/>
+          <zeroOrMore>
+            <ref name="para.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="remark.attlist">
+      <define name="remark.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="remark.role.attrib"/>
+        <ref name="local.remark.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="epigraph.module">
+    <define name="local.epigraph.attrib">
+      <empty/>
+    </define>
+    <define name="epigraph.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="epigraph">
+      <define name="epigraph">
+        <element name="epigraph">
+          <ref name="epigraph.attlist"/>
+          <optional>
+            <ref name="attribution"/>
+          </optional>
+          <oneOrMore>
+            <choice>
+              <ref name="para.class"/>
+              <ref name="literallayout"/>
+            </choice>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="epigraph.attlist">
+      <define name="epigraph.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="epigraph.role.attrib"/>
+        <ref name="local.epigraph.attrib"/>
+      </define>
+    </div>
+
 <!-- Attribution (defined above)-->
-<!--end of epigraph.module-->
-  <define name="local.footnote.attrib">
-    <empty/>
-  </define>
-  <define name="footnote.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="footnote">
-    <element name="footnote">
-      <ref name="footnote.attlist"/>
-      <oneOrMore>
-        <ref name="footnote.mix"/>
-      </oneOrMore>
-      <s:assert test="count(.//footnote) = 0"/>
-    </element>
-  </define>
-<!--end of footnote.element-->
-  <define name="footnote.attlist" combine="interleave">
-    <ref name="label.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="footnote.role.attrib"/>
-    <ref name="local.footnote.attrib"/>
-  </define>
-<!--end of footnote.attlist-->
-<!--end of footnote.module-->
-  <define name="local.highlights.attrib">
-    <empty/>
-  </define>
-  <define name="highlights.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="highlights">
-    <element name="highlights">
-      <ref name="highlights.attlist"/>
-      <oneOrMore>
-        <ref name="highlights.mix"/>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of highlights.element-->
-  <define name="highlights.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="highlights.role.attrib"/>
-    <ref name="local.highlights.attrib"/>
-  </define>
-<!--end of highlights.attlist-->
-<!--end of highlights.module-->
-  <define name="local.formalpara.attrib">
-    <empty/>
-  </define>
-  <define name="formalpara.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="formalpara">
-    <element name="formalpara">
-      <ref name="formalpara.attlist"/>
-      <ref name="title"/>
-      <zeroOrMore>
-        <ref name="ndxterm.class"/>
-      </zeroOrMore>
-      <ref name="para"/>
-    </element>
-  </define>
-<!--end of formalpara.element-->
-  <define name="formalpara.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="formalpara.role.attrib"/>
-    <ref name="local.formalpara.attrib"/>
-  </define>
-<!--end of formalpara.attlist-->
-<!--end of formalpara.module-->
-  <define name="local.para.attrib">
-    <empty/>
-  </define>
-  <define name="para.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="para">
-    <element name="para">
-      <ref name="para.attlist"/>
-      <zeroOrMore>
-        <choice>
-          <ref name="para.char.mix"/>
-          <ref name="para.mix"/>
-        </choice>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of para.element-->
-  <define name="para.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="para.role.attrib"/>
-    <ref name="local.para.attrib"/>
-  </define>
-<!--end of para.attlist-->
-<!--end of para.module-->
-  <define name="local.simpara.attrib">
-    <empty/>
-  </define>
-  <define name="simpara.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="simpara">
-    <element name="simpara">
-      <ref name="simpara.attlist"/>
-      <zeroOrMore>
-        <ref name="para.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of simpara.element-->
-  <define name="simpara.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="simpara.role.attrib"/>
-    <ref name="local.simpara.attrib"/>
-  </define>
-<!--end of simpara.attlist-->
-<!--end of simpara.module-->
-  <define name="local.admon.attrib">
-    <empty/>
-  </define>
-  <define name="admon.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="caution">
-    <element name="caution">
-      <ref name="caution.attlist"/>
-      <optional>
-        <ref name="title"/>
-      </optional>
-      <oneOrMore>
-        <ref name="admon.mix"/>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of caution.element-->
-  <define name="caution.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="admon.role.attrib"/>
-    <ref name="local.admon.attrib"/>
-  </define>
-<!--end of caution.attlist-->
-  <define name="important">
-    <element name="important">
-      <ref name="important.attlist"/>
-      <optional>
-        <ref name="title"/>
-      </optional>
-      <oneOrMore>
-        <ref name="admon.mix"/>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of important.element-->
-  <define name="important.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="admon.role.attrib"/>
-    <ref name="local.admon.attrib"/>
-  </define>
-<!--end of important.attlist-->
-  <define name="note">
-    <element name="note">
-      <ref name="note.attlist"/>
-      <optional>
-        <ref name="title"/>
-      </optional>
-      <oneOrMore>
-        <ref name="admon.mix"/>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of note.element-->
-  <define name="note.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="admon.role.attrib"/>
-    <ref name="local.admon.attrib"/>
-  </define>
-<!--end of note.attlist-->
-  <define name="tip">
-    <element name="tip">
-      <ref name="tip.attlist"/>
-      <optional>
-        <ref name="title"/>
-      </optional>
-      <oneOrMore>
-        <ref name="admon.mix"/>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of tip.element-->
-  <define name="tip.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="admon.role.attrib"/>
-    <ref name="local.admon.attrib"/>
-  </define>
-<!--end of tip.attlist-->
-  <define name="warning">
-    <element name="warning">
-      <ref name="warning.attlist"/>
-      <optional>
-        <ref name="title"/>
-      </optional>
-      <oneOrMore>
-        <ref name="admon.mix"/>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of warning.element-->
-  <define name="warning.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="admon.role.attrib"/>
-    <ref name="local.admon.attrib"/>
-  </define>
-<!--end of warning.attlist-->
-<!--end of admon.module-->
+
+  </div>
+
+  <div db:name="footnote.module">
+    <define name="local.footnote.attrib">
+      <empty/>
+    </define>
+    <define name="footnote.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="footnote">
+      <define name="footnote">
+        <element name="footnote">
+          <ref name="footnote.attlist"/>
+          <oneOrMore>
+            <ref name="footnote.mix"/>
+          </oneOrMore>
+          <s:assert test="count(.//footnote) = 0"/>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="footnote.attlist">
+      <define name="footnote.attlist" combine="interleave">
+        <ref name="label.attrib"/>
+        <ref name="common.attrib"/>
+        <ref name="footnote.role.attrib"/>
+        <ref name="local.footnote.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="highlights.module">
+    <define name="local.highlights.attrib">
+      <empty/>
+    </define>
+    <define name="highlights.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="highlights">
+      <define name="highlights">
+        <element name="highlights">
+          <ref name="highlights.attlist"/>
+          <oneOrMore>
+            <ref name="highlights.mix"/>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="highlights.attlist">
+      <define name="highlights.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="highlights.role.attrib"/>
+        <ref name="local.highlights.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="formalpara.module">
+    <define name="local.formalpara.attrib">
+      <empty/>
+    </define>
+    <define name="formalpara.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="formalpara">
+      <define name="formalpara">
+        <element name="formalpara">
+          <ref name="formalpara.attlist"/>
+          <ref name="title"/>
+          <zeroOrMore>
+            <ref name="ndxterm.class"/>
+          </zeroOrMore>
+          <ref name="para"/>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="formalpara.attlist">
+      <define name="formalpara.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="formalpara.role.attrib"/>
+        <ref name="local.formalpara.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="para.module">
+    <define name="local.para.attrib">
+      <empty/>
+    </define>
+    <define name="para.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="para">
+      <define name="para">
+        <element name="para">
+          <ref name="para.attlist"/>
+          <zeroOrMore>
+            <choice>
+              <ref name="para.char.mix"/>
+              <ref name="para.mix"/>
+            </choice>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="para.attlist">
+      <define name="para.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="para.role.attrib"/>
+        <ref name="local.para.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="simpara.module">
+    <define name="local.simpara.attrib">
+      <empty/>
+    </define>
+    <define name="simpara.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="simpara">
+      <define name="simpara">
+        <element name="simpara">
+          <ref name="simpara.attlist"/>
+          <zeroOrMore>
+            <ref name="para.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="simpara.attlist">
+      <define name="simpara.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="simpara.role.attrib"/>
+        <ref name="local.simpara.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="admon.module">
+    <define name="local.admon.attrib">
+      <empty/>
+    </define>
+    <define name="admon.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="caution">
+      <define name="caution">
+        <element name="caution">
+          <ref name="caution.attlist"/>
+          <optional>
+            <ref name="title"/>
+          </optional>
+          <oneOrMore>
+            <ref name="admon.mix"/>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="caution.attlist">
+      <define name="caution.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="admon.role.attrib"/>
+        <ref name="local.admon.attrib"/>
+      </define>
+    </div>
+
+    <div db:name="important">
+      <define name="important">
+        <element name="important">
+          <ref name="important.attlist"/>
+          <optional>
+            <ref name="title"/>
+          </optional>
+          <oneOrMore>
+            <ref name="admon.mix"/>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="important.attlist">
+      <define name="important.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="admon.role.attrib"/>
+        <ref name="local.admon.attrib"/>
+      </define>
+    </div>
+
+    <div db:name="note">
+      <define name="note">
+        <element name="note">
+          <ref name="note.attlist"/>
+          <optional>
+            <ref name="title"/>
+          </optional>
+          <oneOrMore>
+            <ref name="admon.mix"/>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="note.attlist">
+      <define name="note.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="admon.role.attrib"/>
+        <ref name="local.admon.attrib"/>
+      </define>
+    </div>
+
+    <div db:name="tip">
+      <define name="tip">
+        <element name="tip">
+          <ref name="tip.attlist"/>
+          <optional>
+            <ref name="title"/>
+          </optional>
+          <oneOrMore>
+            <ref name="admon.mix"/>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="tip.attlist">
+      <define name="tip.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="admon.role.attrib"/>
+        <ref name="local.admon.attrib"/>
+      </define>
+    </div>
+
+    <div db:name="warning">
+      <define name="warning">
+        <element name="warning">
+          <ref name="warning.attlist"/>
+          <optional>
+            <ref name="title"/>
+          </optional>
+          <oneOrMore>
+            <ref name="admon.mix"/>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="warning.attlist">
+      <define name="warning.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="admon.role.attrib"/>
+        <ref name="local.admon.attrib"/>
+      </define>
+    </div>
+  </div>
+
 <!-- ...................................................................... -->
 <!-- Lists ................................................................ -->
 <!-- GlossList ........................ -->
-  <define name="local.glosslist.attrib">
-    <empty/>
-  </define>
-  <define name="glosslist.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="glosslist">
-    <element name="glosslist">
-      <ref name="glosslist.attlist"/>
-      <oneOrMore>
-        <ref name="glossentry"/>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of glosslist.element-->
-  <define name="glosslist.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="glosslist.role.attrib"/>
-    <ref name="local.glosslist.attrib"/>
-  </define>
-<!--end of glosslist.attlist-->
-<!--end of glosslist.module-->
-  <define name="local.glossentry.attrib">
-    <empty/>
-  </define>
-  <define name="glossentry.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="glossentry">
-    <element name="glossentry">
-      <ref name="glossentry.attlist"/>
-      <ref name="glossterm"/>
-      <optional>
-        <ref name="acronym"/>
-      </optional>
-      <optional>
-        <ref name="abbrev"/>
-      </optional>
-      <zeroOrMore>
-        <ref name="ndxterm.class"/>
-      </zeroOrMore>
-      <optional>
-        <ref name="revhistory"/>
-      </optional>
-      <choice>
-        <ref name="glosssee"/>
-        <oneOrMore>
-          <ref name="glossdef"/>
-        </oneOrMore>
-      </choice>
-    </element>
-  </define>
-<!--end of glossentry.element-->
+
+  <div db:name="glosslist.module">
+    <define name="local.glosslist.attrib">
+      <empty/>
+    </define>
+    <define name="glosslist.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="glosslist">
+      <define name="glosslist">
+        <element name="glosslist">
+          <ref name="glosslist.attlist"/>
+          <oneOrMore>
+            <ref name="glossentry"/>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="glosslist.attlist">
+      <define name="glosslist.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="glosslist.role.attrib"/>
+        <ref name="local.glosslist.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="glossentry.content.module">
+
+    <div db:name="glossentry.module">
+      <define name="local.glossentry.attrib">
+        <empty/>
+      </define>
+      <define name="glossentry.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="glossentry">
+        <define name="glossentry">
+          <element name="glossentry">
+            <ref name="glossentry.attlist"/>
+            <ref name="glossterm"/>
+            <optional>
+              <ref name="acronym"/>
+            </optional>
+            <optional>
+              <ref name="abbrev"/>
+            </optional>
+            <zeroOrMore>
+              <ref name="ndxterm.class"/>
+            </zeroOrMore>
+            <optional>
+              <ref name="revhistory"/>
+            </optional>
+            <choice>
+              <ref name="glosssee"/>
+              <oneOrMore>
+                <ref name="glossdef"/>
+              </oneOrMore>
+            </choice>
+          </element>
+        </define>
+      </div>
+
 <!-- SortAs: String by which the GlossEntry is to be sorted
                (alphabetized) in lieu of its proper content -->
-  <define name="glossentry.attlist" combine="interleave">
-    <optional>
-      <attribute name="sortas"/>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="glossentry.role.attrib"/>
-    <ref name="local.glossentry.attrib"/>
-  </define>
-<!--end of glossentry.attlist-->
-<!--end of glossentry.module-->
+
+      <div db:name="glossentry.attlist">
+        <define name="glossentry.attlist" combine="interleave">
+          <optional>
+            <attribute name="sortas"/>
+          </optional>
+          <ref name="common.attrib"/>
+          <ref name="glossentry.role.attrib"/>
+          <ref name="local.glossentry.attrib"/>
+        </define>
+      </div>
+    </div>
+
 <!-- GlossTerm (defined in the Inlines section, below)-->
-  <define name="local.glossdef.attrib">
-    <empty/>
-  </define>
-  <define name="glossdef.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="glossdef">
-    <element name="glossdef">
-      <ref name="glossdef.attlist"/>
-      <oneOrMore>
-        <ref name="glossdef.mix"/>
-      </oneOrMore>
-      <zeroOrMore>
-        <ref name="glossseealso"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of glossdef.element-->
+
+    <div db:name="glossdef.module">
+      <define name="local.glossdef.attrib">
+        <empty/>
+      </define>
+      <define name="glossdef.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="glossdef">
+        <define name="glossdef">
+          <element name="glossdef">
+            <ref name="glossdef.attlist"/>
+            <oneOrMore>
+              <ref name="glossdef.mix"/>
+            </oneOrMore>
+            <zeroOrMore>
+              <ref name="glossseealso"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
 <!-- Subject: List of subjects; keywords for the definition -->
-  <define name="glossdef.attlist" combine="interleave">
-    <optional>
-      <attribute name="subject"/>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="glossdef.role.attrib"/>
-    <ref name="local.glossdef.attrib"/>
-  </define>
-<!--end of glossdef.attlist-->
-<!--end of glossdef.module-->
-  <define name="local.glosssee.attrib">
-    <empty/>
-  </define>
-  <define name="glosssee.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="glosssee">
-    <element name="glosssee">
-      <ref name="glosssee.attlist"/>
-      <zeroOrMore>
-        <ref name="para.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of glosssee.element-->
+
+      <div db:name="glossdef.attlist">
+        <define name="glossdef.attlist" combine="interleave">
+          <optional>
+            <attribute name="subject"/>
+          </optional>
+          <ref name="common.attrib"/>
+          <ref name="glossdef.role.attrib"/>
+          <ref name="local.glossdef.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="glosssee.module">
+      <define name="local.glosssee.attrib">
+        <empty/>
+      </define>
+      <define name="glosssee.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="glosssee">
+        <define name="glosssee">
+          <element name="glosssee">
+            <ref name="glosssee.attlist"/>
+            <zeroOrMore>
+              <ref name="para.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
 <!-- OtherTerm: Reference to the GlossEntry whose GlossTerm
                should be displayed at the point of the GlossSee -->
-  <define name="glosssee.attlist" combine="interleave">
-    <optional>
-      <attribute name="otherterm">
-        <data type="IDREF"/>
-      </attribute>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="glosssee.role.attrib"/>
-    <ref name="local.glosssee.attrib"/>
-  </define>
-<!--end of glosssee.attlist-->
-<!--end of glosssee.module-->
-  <define name="local.glossseealso.attrib">
-    <empty/>
-  </define>
-  <define name="glossseealso.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="glossseealso">
-    <element name="glossseealso">
-      <ref name="glossseealso.attlist"/>
-      <zeroOrMore>
-        <ref name="para.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of glossseealso.element-->
+
+      <div db:name="glosssee.attlist">
+        <define name="glosssee.attlist" combine="interleave">
+          <optional>
+            <attribute name="otherterm">
+              <data type="IDREF"/>
+            </attribute>
+          </optional>
+          <ref name="common.attrib"/>
+          <ref name="glosssee.role.attrib"/>
+          <ref name="local.glosssee.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="glossseealso.module">
+      <define name="local.glossseealso.attrib">
+        <empty/>
+      </define>
+      <define name="glossseealso.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="glossseealso">
+        <define name="glossseealso">
+          <element name="glossseealso">
+            <ref name="glossseealso.attlist"/>
+            <zeroOrMore>
+              <ref name="para.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
 <!-- OtherTerm: Reference to the GlossEntry whose GlossTerm
                should be displayed at the point of the GlossSeeAlso -->
-  <define name="glossseealso.attlist" combine="interleave">
-    <optional>
-      <attribute name="otherterm">
-        <data type="IDREF"/>
-      </attribute>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="glossseealso.role.attrib"/>
-    <ref name="local.glossseealso.attrib"/>
-  </define>
-<!--end of glossseealso.attlist-->
-<!--end of glossseealso.module-->
-<!--end of glossentry.content.module-->
+
+      <div db:name="glossseealso.attlist">
+        <define name="glossseealso.attlist" combine="interleave">
+          <optional>
+            <attribute name="otherterm">
+              <data type="IDREF"/>
+            </attribute>
+          </optional>
+          <ref name="common.attrib"/>
+          <ref name="glossseealso.role.attrib"/>
+          <ref name="local.glossseealso.attrib"/>
+        </define>
+      </div>
+    </div>
+  </div>
+
 <!-- ItemizedList and OrderedList ..... -->
-  <define name="local.itemizedlist.attrib">
-    <empty/>
-  </define>
-  <define name="itemizedlist.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="itemizedlist">
-    <element name="itemizedlist">
-      <ref name="itemizedlist.attlist"/>
-      <optional>
-        <ref name="blockinfo"/>
-      </optional>
-      <optional>
-        <ref name="formalobject.title.content"/>
-      </optional>
-      <zeroOrMore>
-        <ref name="listpreamble.mix"/>
-      </zeroOrMore>
-      <oneOrMore>
-        <ref name="listitem"/>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of itemizedlist.element-->
+
+  <div db:name="itemizedlist.module">
+    <define name="local.itemizedlist.attrib">
+      <empty/>
+    </define>
+    <define name="itemizedlist.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="itemizedlist">
+      <define name="itemizedlist">
+        <element name="itemizedlist">
+          <ref name="itemizedlist.attlist"/>
+          <optional>
+            <ref name="blockinfo"/>
+          </optional>
+          <optional>
+            <ref name="formalobject.title.content"/>
+          </optional>
+          <zeroOrMore>
+            <ref name="listpreamble.mix"/>
+          </zeroOrMore>
+          <oneOrMore>
+            <ref name="listitem"/>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
 <!-- Spacing: Whether the vertical space in the list should be
                compressed -->
 <!-- Mark: Keyword, e.g., bullet, dash, checkbox, none;
                list of keywords and defaults are implementation specific -->
-  <define name="itemizedlist.attlist" combine="interleave">
-    <optional>
-      <attribute name="spacing">
-        <choice>
-          <value>normal</value>
-          <value>compact</value>
-        </choice>
-      </attribute>
-    </optional>
-    <ref name="mark.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="itemizedlist.role.attrib"/>
-    <ref name="local.itemizedlist.attrib"/>
-  </define>
-<!--end of itemizedlist.attlist-->
-<!--end of itemizedlist.module-->
-  <define name="local.orderedlist.attrib">
-    <empty/>
-  </define>
-  <define name="orderedlist.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="orderedlist">
-    <element name="orderedlist">
-      <ref name="orderedlist.attlist"/>
-      <optional>
-        <ref name="blockinfo"/>
-      </optional>
-      <optional>
-        <ref name="formalobject.title.content"/>
-      </optional>
-      <zeroOrMore>
-        <ref name="listpreamble.mix"/>
-      </zeroOrMore>
-      <oneOrMore>
-        <ref name="listitem"/>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of orderedlist.element-->
+
+    <div db:name="itemizedlist.attlist">
+      <define name="itemizedlist.attlist" combine="interleave">
+        <optional>
+          <attribute name="spacing">
+            <choice>
+              <value>normal</value>
+              <value>compact</value>
+            </choice>
+          </attribute>
+        </optional>
+        <ref name="mark.attrib"/>
+        <ref name="common.attrib"/>
+        <ref name="itemizedlist.role.attrib"/>
+        <ref name="local.itemizedlist.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="orderedlist.module">
+    <define name="local.orderedlist.attrib">
+      <empty/>
+    </define>
+    <define name="orderedlist.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="orderedlist">
+      <define name="orderedlist">
+        <element name="orderedlist">
+          <ref name="orderedlist.attlist"/>
+          <optional>
+            <ref name="blockinfo"/>
+          </optional>
+          <optional>
+            <ref name="formalobject.title.content"/>
+          </optional>
+          <zeroOrMore>
+            <ref name="listpreamble.mix"/>
+          </zeroOrMore>
+          <oneOrMore>
+            <ref name="listitem"/>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
 <!-- Numeration: Style of ListItem numbered; default is expected
                to be Arabic -->
 <!-- InheritNum: Specifies for a nested list that the numbering
@@ -2985,188 +3585,232 @@ d. Just Acronym, Emphasis, and Trademark; no other word elements.
                list (Continues) -->
 <!-- Spacing: Whether the vertical space in the list should be
                compressed -->
-  <define name="orderedlist.attlist" combine="interleave">
-    <optional>
-      <attribute name="numeration">
-        <choice>
-          <value>arabic</value>
-          <value>upperalpha</value>
-          <value>loweralpha</value>
-          <value>upperroman</value>
-          <value>lowerroman</value>
-        </choice>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="inheritnum" a:defaultValue="ignore">
-        <choice>
-          <value>inherit</value>
-          <value>ignore</value>
-        </choice>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="continuation" a:defaultValue="restarts">
-        <choice>
-          <value>continues</value>
-          <value>restarts</value>
-        </choice>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="spacing">
-        <choice>
-          <value>normal</value>
-          <value>compact</value>
-        </choice>
-      </attribute>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="orderedlist.role.attrib"/>
-    <ref name="local.orderedlist.attrib"/>
-  </define>
-<!--end of orderedlist.attlist-->
-<!--end of orderedlist.module-->
-  <define name="local.listitem.attrib">
-    <empty/>
-  </define>
-  <define name="listitem.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="listitem">
-    <element name="listitem">
-      <ref name="listitem.attlist"/>
-      <oneOrMore>
-        <ref name="component.mix"/>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of listitem.element-->
-<!-- Override: Indicates the mark to be used for this ListItem
-               instead of the default mark or the mark specified by
-               the Mark attribute on the enclosing ItemizedList -->
-  <define name="listitem.attlist" combine="interleave">
-    <optional>
-      <attribute name="override"/>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="listitem.role.attrib"/>
-    <ref name="local.listitem.attrib"/>
-  </define>
-<!--end of listitem.attlist-->
-<!--end of listitem.module-->
+
+    <div db:name="orderedlist.attlist">
+      <define name="orderedlist.attlist" combine="interleave">
+        <optional>
+          <attribute name="numeration">
+            <choice>
+              <value>arabic</value>
+              <value>upperalpha</value>
+              <value>loweralpha</value>
+              <value>upperroman</value>
+              <value>lowerroman</value>
+            </choice>
+          </attribute>
+        </optional>
+        <optional>
+          <attribute name="inheritnum" a:defaultValue="ignore">
+            <choice>
+              <value>inherit</value>
+              <value>ignore</value>
+            </choice>
+          </attribute>
+        </optional>
+        <optional>
+          <attribute name="continuation" a:defaultValue="restarts">
+            <choice>
+              <value>continues</value>
+              <value>restarts</value>
+            </choice>
+          </attribute>
+        </optional>
+        <optional>
+          <attribute name="spacing">
+            <choice>
+              <value>normal</value>
+              <value>compact</value>
+            </choice>
+          </attribute>
+        </optional>
+        <ref name="common.attrib"/>
+        <ref name="orderedlist.role.attrib"/>
+        <ref name="local.orderedlist.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="listitem.module">
+    <define name="local.listitem.attrib">
+      <empty/>
+    </define>
+    <define name="listitem.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="listitem">
+      <define name="listitem">
+        <element name="listitem">
+          <ref name="listitem.attlist"/>
+          <oneOrMore>
+            <ref name="component.mix"/>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
+<!-- Override: Indicates the mark to be used for this ListItem
+               instead of the default mark or the mark specified by
+               the Mark attribute on the enclosing ItemizedList -->
+
+    <div db:name="listitem.attlist">
+      <define name="listitem.attlist" combine="interleave">
+        <optional>
+          <attribute name="override"/>
+        </optional>
+        <ref name="common.attrib"/>
+        <ref name="listitem.role.attrib"/>
+        <ref name="local.listitem.attrib"/>
+      </define>
+    </div>
+  </div>
+
 <!-- SegmentedList .................... -->
-  <define name="local.segmentedlist.attrib">
-    <empty/>
-  </define>
-  <define name="segmentedlist.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="segmentedlist">
-    <element name="segmentedlist">
-      <ref name="segmentedlist.attlist"/>
-      <optional>
-        <ref name="formalobject.title.content"/>
-      </optional>
-      <oneOrMore>
-        <ref name="segtitle"/>
-      </oneOrMore>
-      <oneOrMore>
-        <ref name="seglistitem"/>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of segmentedlist.element-->
-  <define name="segmentedlist.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="segmentedlist.role.attrib"/>
-    <ref name="local.segmentedlist.attrib"/>
-  </define>
-<!--end of segmentedlist.attlist-->
-<!--end of segmentedlist.module-->
-  <define name="local.segtitle.attrib">
-    <empty/>
-  </define>
-  <define name="segtitle.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="segtitle">
-    <element name="segtitle">
-      <ref name="segtitle.attlist"/>
-      <zeroOrMore>
-        <ref name="title.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of segtitle.element-->
-  <define name="segtitle.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="segtitle.role.attrib"/>
-    <ref name="local.segtitle.attrib"/>
-  </define>
-<!--end of segtitle.attlist-->
-<!--end of segtitle.module-->
-  <define name="local.seglistitem.attrib">
-    <empty/>
-  </define>
-  <define name="seglistitem.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="seglistitem">
-    <element name="seglistitem">
-      <ref name="seglistitem.attlist"/>
-      <oneOrMore>
-        <ref name="seg"/>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of seglistitem.element-->
-  <define name="seglistitem.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="seglistitem.role.attrib"/>
-    <ref name="local.seglistitem.attrib"/>
-  </define>
-<!--end of seglistitem.attlist-->
-<!--end of seglistitem.module-->
-  <define name="local.seg.attrib">
-    <empty/>
-  </define>
-  <define name="seg.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="seg">
-    <element name="seg">
-      <ref name="seg.attlist"/>
-      <zeroOrMore>
-        <ref name="para.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of seg.element-->
-  <define name="seg.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="seg.role.attrib"/>
-    <ref name="local.seg.attrib"/>
-  </define>
-<!--end of seg.attlist-->
-<!--end of seg.module-->
-<!--end of segmentedlist.content.module-->
+
+  <div db:name="segmentedlist.content.module">
+
+    <div db:name="segmentedlist.module">
+      <define name="local.segmentedlist.attrib">
+        <empty/>
+      </define>
+      <define name="segmentedlist.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="segmentedlist">
+        <define name="segmentedlist">
+          <element name="segmentedlist">
+            <ref name="segmentedlist.attlist"/>
+            <optional>
+              <ref name="formalobject.title.content"/>
+            </optional>
+            <oneOrMore>
+              <ref name="segtitle"/>
+            </oneOrMore>
+            <oneOrMore>
+              <ref name="seglistitem"/>
+            </oneOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="segmentedlist.attlist">
+        <define name="segmentedlist.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="segmentedlist.role.attrib"/>
+          <ref name="local.segmentedlist.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="segtitle.module">
+      <define name="local.segtitle.attrib">
+        <empty/>
+      </define>
+      <define name="segtitle.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="segtitle">
+        <define name="segtitle">
+          <element name="segtitle">
+            <ref name="segtitle.attlist"/>
+            <zeroOrMore>
+              <ref name="title.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="segtitle.attlist">
+        <define name="segtitle.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="segtitle.role.attrib"/>
+          <ref name="local.segtitle.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="seglistitem.module">
+      <define name="local.seglistitem.attrib">
+        <empty/>
+      </define>
+      <define name="seglistitem.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="seglistitem">
+        <define name="seglistitem">
+          <element name="seglistitem">
+            <ref name="seglistitem.attlist"/>
+            <oneOrMore>
+              <ref name="seg"/>
+            </oneOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="seglistitem.attlist">
+        <define name="seglistitem.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="seglistitem.role.attrib"/>
+          <ref name="local.seglistitem.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="seg.module">
+      <define name="local.seg.attrib">
+        <empty/>
+      </define>
+      <define name="seg.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="seg">
+        <define name="seg">
+          <element name="seg">
+            <ref name="seg.attlist"/>
+            <zeroOrMore>
+              <ref name="para.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="seg.attlist">
+        <define name="seg.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="seg.role.attrib"/>
+          <ref name="local.seg.attrib"/>
+        </define>
+      </div>
+    </div>
+  </div>
+
 <!-- SimpleList ....................... -->
-  <define name="local.simplelist.attrib">
-    <empty/>
-  </define>
-  <define name="simplelist.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="simplelist">
-    <element name="simplelist">
-      <ref name="simplelist.attlist"/>
-      <oneOrMore>
-        <ref name="member"/>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of simplelist.element-->
+
+  <div db:name="simplelist.content.module">
+
+    <div db:name="simplelist.module">
+      <define name="local.simplelist.attrib">
+        <empty/>
+      </define>
+      <define name="simplelist.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="simplelist">
+        <define name="simplelist">
+          <element name="simplelist">
+            <ref name="simplelist.attlist"/>
+            <oneOrMore>
+              <ref name="member"/>
+            </oneOrMore>
+          </element>
+        </define>
+      </div>
+
 <!-- Columns: The number of columns the array should contain -->
 <!-- Type: How the Members of the SimpleList should be
                formatted: Inline (members separated with commas etc.
@@ -3174,302 +3818,378 @@ d. Just Acronym, Emphasis, and Trademark; no other word elements.
                the direction of text flow) in n Columns.  If Column
                is 1 or implied, Type=Vert and Type=Horiz give the same
                results. -->
-  <define name="simplelist.attlist" combine="interleave">
-    <optional>
-      <attribute name="columns"/>
-    </optional>
-    <optional>
-      <attribute name="type" a:defaultValue="vert">
-        <choice>
-          <value>inline</value>
-          <value>vert</value>
-          <value>horiz</value>
-        </choice>
-      </attribute>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="simplelist.role.attrib"/>
-    <ref name="local.simplelist.attrib"/>
-  </define>
-<!--end of simplelist.attlist-->
-<!--end of simplelist.module-->
-  <define name="local.member.attrib">
-    <empty/>
-  </define>
-  <define name="member.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="member">
-    <element name="member">
-      <ref name="member.attlist"/>
-      <zeroOrMore>
-        <ref name="para.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of member.element-->
-  <define name="member.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="member.role.attrib"/>
-    <ref name="local.member.attrib"/>
-  </define>
-<!--end of member.attlist-->
-<!--end of member.module-->
-<!--end of simplelist.content.module-->
+
+      <div db:name="simplelist.attlist">
+        <define name="simplelist.attlist" combine="interleave">
+          <optional>
+            <attribute name="columns"/>
+          </optional>
+          <optional>
+            <attribute name="type" a:defaultValue="vert">
+              <choice>
+                <value>inline</value>
+                <value>vert</value>
+                <value>horiz</value>
+              </choice>
+            </attribute>
+          </optional>
+          <ref name="common.attrib"/>
+          <ref name="simplelist.role.attrib"/>
+          <ref name="local.simplelist.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="member.module">
+      <define name="local.member.attrib">
+        <empty/>
+      </define>
+      <define name="member.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="member">
+        <define name="member">
+          <element name="member">
+            <ref name="member.attlist"/>
+            <zeroOrMore>
+              <ref name="para.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="member.attlist">
+        <define name="member.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="member.role.attrib"/>
+          <ref name="local.member.attrib"/>
+        </define>
+      </div>
+    </div>
+  </div>
+
 <!-- VariableList ..................... -->
-  <define name="local.variablelist.attrib">
-    <empty/>
-  </define>
-  <define name="variablelist.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="variablelist">
-    <element name="variablelist">
-      <ref name="variablelist.attlist"/>
-      <optional>
-        <ref name="blockinfo"/>
-      </optional>
-      <optional>
-        <ref name="formalobject.title.content"/>
-      </optional>
-      <zeroOrMore>
-        <ref name="listpreamble.mix"/>
-      </zeroOrMore>
-      <oneOrMore>
-        <ref name="varlistentry"/>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of variablelist.element-->
+
+  <div db:name="variablelist.content.module">
+
+    <div db:name="variablelist.module">
+      <define name="local.variablelist.attrib">
+        <empty/>
+      </define>
+      <define name="variablelist.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="variablelist">
+        <define name="variablelist">
+          <element name="variablelist">
+            <ref name="variablelist.attlist"/>
+            <optional>
+              <ref name="blockinfo"/>
+            </optional>
+            <optional>
+              <ref name="formalobject.title.content"/>
+            </optional>
+            <zeroOrMore>
+              <ref name="listpreamble.mix"/>
+            </zeroOrMore>
+            <oneOrMore>
+              <ref name="varlistentry"/>
+            </oneOrMore>
+          </element>
+        </define>
+      </div>
+
 <!-- TermLength: Length beyond which the presentation engine
                may consider the Term too long and select an alternate
                presentation of the Term and, or, its associated ListItem. -->
-  <define name="variablelist.attlist" combine="interleave">
-    <optional>
-      <attribute name="termlength"/>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="variablelist.role.attrib"/>
-    <ref name="local.variablelist.attrib"/>
-  </define>
-<!--end of variablelist.attlist-->
-<!--end of variablelist.module-->
-  <define name="local.varlistentry.attrib">
-    <empty/>
-  </define>
-  <define name="varlistentry.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="varlistentry">
-    <element name="varlistentry">
-      <ref name="varlistentry.attlist"/>
-      <oneOrMore>
-        <ref name="term"/>
-      </oneOrMore>
-      <ref name="listitem"/>
-    </element>
-  </define>
-<!--end of varlistentry.element-->
-  <define name="varlistentry.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="varlistentry.role.attrib"/>
-    <ref name="local.varlistentry.attrib"/>
-  </define>
-<!--end of varlistentry.attlist-->
-<!--end of varlistentry.module-->
-  <define name="local.term.attrib">
-    <empty/>
-  </define>
-  <define name="term.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="term">
-    <element name="term">
-      <ref name="term.attlist"/>
-      <zeroOrMore>
-        <ref name="para.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of term.element-->
-  <define name="term.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="term.role.attrib"/>
-    <ref name="local.term.attrib"/>
-  </define>
-<!--end of term.attlist-->
-<!--end of term.module-->
+
+      <div db:name="variablelist.attlist">
+        <define name="variablelist.attlist" combine="interleave">
+          <optional>
+            <attribute name="termlength"/>
+          </optional>
+          <ref name="common.attrib"/>
+          <ref name="variablelist.role.attrib"/>
+          <ref name="local.variablelist.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="varlistentry.module">
+      <define name="local.varlistentry.attrib">
+        <empty/>
+      </define>
+      <define name="varlistentry.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="varlistentry">
+        <define name="varlistentry">
+          <element name="varlistentry">
+            <ref name="varlistentry.attlist"/>
+            <oneOrMore>
+              <ref name="term"/>
+            </oneOrMore>
+            <ref name="listitem"/>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="varlistentry.attlist">
+        <define name="varlistentry.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="varlistentry.role.attrib"/>
+          <ref name="local.varlistentry.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="term.module">
+      <define name="local.term.attrib">
+        <empty/>
+      </define>
+      <define name="term.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="term">
+        <define name="term">
+          <element name="term">
+            <ref name="term.attlist"/>
+            <zeroOrMore>
+              <ref name="para.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="term.attlist">
+        <define name="term.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="term.role.attrib"/>
+          <ref name="local.term.attrib"/>
+        </define>
+      </div>
+    </div>
+
 <!-- ListItem (defined above)-->
-<!--end of variablelist.content.module-->
+
+  </div>
+
 <!-- CalloutList ...................... -->
-  <define name="local.calloutlist.attrib">
-    <empty/>
-  </define>
-  <define name="calloutlist.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="calloutlist">
-    <element name="calloutlist">
-      <ref name="calloutlist.attlist"/>
-      <optional>
-        <ref name="formalobject.title.content"/>
-      </optional>
-      <oneOrMore>
-        <ref name="callout"/>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of calloutlist.element-->
-  <define name="calloutlist.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="calloutlist.role.attrib"/>
-    <ref name="local.calloutlist.attrib"/>
-  </define>
-<!--end of calloutlist.attlist-->
-<!--end of calloutlist.module-->
-  <define name="local.callout.attrib">
-    <empty/>
-  </define>
-  <define name="callout.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="callout">
-    <element name="callout">
-      <ref name="callout.attlist"/>
-      <oneOrMore>
-        <ref name="component.mix"/>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of callout.element-->
+
+  <div db:name="calloutlist.content.module">
+
+    <div db:name="calloutlist.module">
+      <define name="local.calloutlist.attrib">
+        <empty/>
+      </define>
+      <define name="calloutlist.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="calloutlist">
+        <define name="calloutlist">
+          <element name="calloutlist">
+            <ref name="calloutlist.attlist"/>
+            <optional>
+              <ref name="formalobject.title.content"/>
+            </optional>
+            <oneOrMore>
+              <ref name="callout"/>
+            </oneOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="calloutlist.attlist">
+        <define name="calloutlist.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="calloutlist.role.attrib"/>
+          <ref name="local.calloutlist.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="callout.module">
+      <define name="local.callout.attrib">
+        <empty/>
+      </define>
+      <define name="callout.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="callout">
+        <define name="callout">
+          <element name="callout">
+            <ref name="callout.attlist"/>
+            <oneOrMore>
+              <ref name="component.mix"/>
+            </oneOrMore>
+          </element>
+        </define>
+      </div>
+
 <!-- AreaRefs: IDs of one or more Areas or AreaSets described
                by this Callout -->
-  <define name="callout.attlist" combine="interleave">
-    <attribute name="arearefs">
-      <data type="IDREFS"/>
-    </attribute>
-    <ref name="common.attrib"/>
-    <ref name="callout.role.attrib"/>
-    <ref name="local.callout.attrib"/>
-  </define>
-<!--end of callout.attlist-->
-<!--end of callout.module-->
-<!--end of calloutlist.content.module-->
+
+      <div db:name="callout.attlist">
+        <define name="callout.attlist" combine="interleave">
+          <attribute name="arearefs">
+            <data type="IDREFS"/>
+          </attribute>
+          <ref name="common.attrib"/>
+          <ref name="callout.role.attrib"/>
+          <ref name="local.callout.attrib"/>
+        </define>
+      </div>
+    </div>
+  </div>
+
 <!-- ...................................................................... -->
 <!-- Objects .............................................................. -->
 <!-- Examples etc. .................... -->
-  <define name="local.example.attrib">
-    <empty/>
-  </define>
-  <define name="example.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="example">
-    <element name="example">
-      <ref name="example.attlist"/>
-      <optional>
-        <ref name="blockinfo"/>
-      </optional>
-      <ref name="formalobject.title.content"/>
-      <oneOrMore>
-        <ref name="example.mix"/>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of example.element-->
-  <define name="example.attlist" combine="interleave">
-    <ref name="label.attrib"/>
-    <ref name="width.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="example.role.attrib"/>
-    <ref name="local.example.attrib"/>
-  </define>
-<!--end of example.attlist-->
-<!--end of example.module-->
-  <define name="local.informalexample.attrib">
-    <empty/>
-  </define>
-  <define name="informalexample.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="informalexample">
-    <element name="informalexample">
-      <ref name="informalexample.attlist"/>
-      <optional>
-        <ref name="blockinfo"/>
-      </optional>
-      <oneOrMore>
-        <ref name="example.mix"/>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of informalexample.element-->
-  <define name="informalexample.attlist" combine="interleave">
-    <ref name="width.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="informalexample.role.attrib"/>
-    <ref name="local.informalexample.attrib"/>
-  </define>
-<!--end of informalexample.attlist-->
-<!--end of informalexample.module-->
-  <define name="local.programlistingco.attrib">
-    <empty/>
-  </define>
-  <define name="programlistingco.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="programlistingco">
-    <element name="programlistingco">
-      <ref name="programlistingco.attlist"/>
-      <ref name="areaspec"/>
-      <ref name="programlisting"/>
-      <zeroOrMore>
-        <ref name="calloutlist"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of programlistingco.element-->
-  <define name="programlistingco.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="programlistingco.role.attrib"/>
-    <ref name="local.programlistingco.attrib"/>
-  </define>
-<!--end of programlistingco.attlist-->
-<!-- CalloutList (defined above in Lists)-->
-<!--end of informalexample.module-->
-  <define name="local.areaspec.attrib">
-    <empty/>
-  </define>
-  <define name="areaspec.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="areaspec">
-    <element name="areaspec">
-      <ref name="areaspec.attlist"/>
-      <oneOrMore>
-        <choice>
-          <ref name="area"/>
-          <ref name="areaset"/>
-        </choice>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of areaspec.element-->
-<!-- Units: global unit of measure in which coordinates in
-               this spec are expressed:
 
-               - CALSPair "x1,y1 x2,y2": lower-left and upper-right
-               coordinates in a rectangle describing repro area in which
-               graphic is placed, where X and Y dimensions are each some
-               number 0..10000 (taken from CALS graphic attributes)
+  <div db:name="example.module">
+    <define name="local.example.attrib">
+      <empty/>
+    </define>
+    <define name="example.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
 
-               - LineColumn "line column": line number and column number
-               at which to start callout text in "linespecific" content
+    <div db:name="example">
+      <define name="example">
+        <element name="example">
+          <ref name="example.attlist"/>
+          <optional>
+            <ref name="blockinfo"/>
+          </optional>
+          <ref name="formalobject.title.content"/>
+          <oneOrMore>
+            <ref name="example.mix"/>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
 
-               - LineRange "startline endline": whole lines from startline
-               to endline in "linespecific" content
+    <div db:name="example.attlist">
+      <define name="example.attlist" combine="interleave">
+        <ref name="label.attrib"/>
+        <ref name="width.attrib"/>
+        <ref name="common.attrib"/>
+        <ref name="example.role.attrib"/>
+        <ref name="local.example.attrib"/>
+      </define>
+    </div>
+  </div>
 
-               - LineColumnPair "line1 col1 line2 col2": starting and ending
+  <div db:name="informalexample.module">
+    <define name="local.informalexample.attrib">
+      <empty/>
+    </define>
+    <define name="informalexample.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="informalexample">
+      <define name="informalexample">
+        <element name="informalexample">
+          <ref name="informalexample.attlist"/>
+          <optional>
+            <ref name="blockinfo"/>
+          </optional>
+          <oneOrMore>
+            <ref name="example.mix"/>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="informalexample.attlist">
+      <define name="informalexample.attlist" combine="interleave">
+        <ref name="width.attrib"/>
+        <ref name="common.attrib"/>
+        <ref name="informalexample.role.attrib"/>
+        <ref name="local.informalexample.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="programlistingco.module">
+    <define name="local.programlistingco.attrib">
+      <empty/>
+    </define>
+    <define name="programlistingco.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="programlistingco">
+      <define name="programlistingco">
+        <element name="programlistingco">
+          <ref name="programlistingco.attlist"/>
+          <ref name="areaspec"/>
+          <ref name="programlisting"/>
+          <zeroOrMore>
+            <ref name="calloutlist"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="programlistingco.attlist">
+      <define name="programlistingco.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="programlistingco.role.attrib"/>
+        <ref name="local.programlistingco.attrib"/>
+      </define>
+    </div>
+
+<!-- CalloutList (defined above in Lists)-->
+
+  </div>
+
+  <div db:name="areaspec.content.module">
+
+    <div db:name="areaspec.module">
+      <define name="local.areaspec.attrib">
+        <empty/>
+      </define>
+      <define name="areaspec.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="areaspec">
+        <define name="areaspec">
+          <element name="areaspec">
+            <ref name="areaspec.attlist"/>
+            <oneOrMore>
+              <choice>
+                <ref name="area"/>
+                <ref name="areaset"/>
+              </choice>
+            </oneOrMore>
+          </element>
+        </define>
+      </div>
+
+<!-- Units: global unit of measure in which coordinates in
+               this spec are expressed:
+
+               - CALSPair "x1,y1 x2,y2": lower-left and upper-right
+               coordinates in a rectangle describing repro area in which
+               graphic is placed, where X and Y dimensions are each some
+               number 0..10000 (taken from CALS graphic attributes)
+
+               - LineColumn "line column": line number and column number
+               at which to start callout text in "linespecific" content
+
+               - LineRange "startline endline": whole lines from startline
+               to endline in "linespecific" content
+
+               - LineColumnPair "line1 col1 line2 col2": starting and ending
                points of area in "linespecific" content that starts at
                first position and ends at second position (including the
                beginnings of any intervening lines)
@@ -3481,909 +4201,1097 @@ d. Just Acronym, Emphasis, and Trademark; no other word elements.
                the parent element (GraphicCO gets CALSPair, ProgramListingCO
                and ScreenCO get LineColumn) -->
 <!-- OtherUnits: User-defined units -->
-  <define name="areaspec.attlist" combine="interleave">
-    <optional>
-      <attribute name="units">
-        <choice>
-          <value>calspair</value>
-          <value>linecolumn</value>
-          <value>linerange</value>
-          <value>linecolumnpair</value>
-          <value>other</value>
-        </choice>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="otherunits">
-        <data type="NMTOKEN"/>
-      </attribute>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="areaspec.role.attrib"/>
-    <ref name="local.areaspec.attrib"/>
-  </define>
-<!--end of areaspec.attlist-->
-<!--end of areaspec.module-->
-  <define name="local.area.attrib">
-    <empty/>
-  </define>
-  <define name="area.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="area">
-    <element name="area">
-      <ref name="area.attlist"/>
-      <empty/>
-    </element>
-  </define>
-<!--end of area.element-->
+
+      <div db:name="areaspec.attlist">
+        <define name="areaspec.attlist" combine="interleave">
+          <optional>
+            <attribute name="units">
+              <choice>
+                <value>calspair</value>
+                <value>linecolumn</value>
+                <value>linerange</value>
+                <value>linecolumnpair</value>
+                <value>other</value>
+              </choice>
+            </attribute>
+          </optional>
+          <optional>
+            <attribute name="otherunits">
+              <data type="NMTOKEN"/>
+            </attribute>
+          </optional>
+          <ref name="common.attrib"/>
+          <ref name="areaspec.role.attrib"/>
+          <ref name="local.areaspec.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="area.module">
+      <define name="local.area.attrib">
+        <empty/>
+      </define>
+      <define name="area.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="area">
+        <define name="area">
+          <element name="area">
+            <ref name="area.attlist"/>
+            <empty/>
+          </element>
+        </define>
+      </div>
+
 <!-- bug number/symbol override or initialization -->
 <!-- to any related information -->
 <!-- Units: unit of measure in which coordinates in this
                area are expressed; inherits from AreaSet and AreaSpec -->
 <!-- OtherUnits: User-defined units -->
-  <define name="area.attlist" combine="interleave">
-    <ref name="label.attrib"/>
-    <ref name="linkends.attrib"/>
-    <optional>
-      <attribute name="units">
-        <choice>
-          <value>calspair</value>
-          <value>linecolumn</value>
-          <value>linerange</value>
-          <value>linecolumnpair</value>
-          <value>other</value>
-        </choice>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="otherunits">
-        <data type="NMTOKEN"/>
-      </attribute>
-    </optional>
-    <attribute name="coords"/>
-    <ref name="idreq.common.attrib"/>
-    <ref name="area.role.attrib"/>
-    <ref name="local.area.attrib"/>
-  </define>
-<!--end of area.attlist-->
-<!--end of area.module-->
-  <define name="local.areaset.attrib">
-    <empty/>
-  </define>
-  <define name="areaset.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="areaset">
-    <element name="areaset">
-      <ref name="areaset.attlist"/>
-      <oneOrMore>
-        <ref name="area"/>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of areaset.element-->
+
+      <div db:name="area.attlist">
+        <define name="area.attlist" combine="interleave">
+          <ref name="label.attrib"/>
+          <ref name="linkends.attrib"/>
+          <optional>
+            <attribute name="units">
+              <choice>
+                <value>calspair</value>
+                <value>linecolumn</value>
+                <value>linerange</value>
+                <value>linecolumnpair</value>
+                <value>other</value>
+              </choice>
+            </attribute>
+          </optional>
+          <optional>
+            <attribute name="otherunits">
+              <data type="NMTOKEN"/>
+            </attribute>
+          </optional>
+          <attribute name="coords"/>
+          <ref name="idreq.common.attrib"/>
+          <ref name="area.role.attrib"/>
+          <ref name="local.area.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="areaset.module">
+      <define name="local.areaset.attrib">
+        <empty/>
+      </define>
+      <define name="areaset.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="areaset">
+        <define name="areaset">
+          <element name="areaset">
+            <ref name="areaset.attlist"/>
+            <oneOrMore>
+              <ref name="area"/>
+            </oneOrMore>
+          </element>
+        </define>
+      </div>
+
 <!-- bug number/symbol override or initialization -->
 <!-- Units: unit of measure in which coordinates in this
                area are expressed; inherits from AreaSpec -->
-  <define name="areaset.attlist" combine="interleave">
-    <ref name="label.attrib"/>
-    <optional>
-      <attribute name="units">
-        <choice>
-          <value>calspair</value>
-          <value>linecolumn</value>
-          <value>linerange</value>
-          <value>linecolumnpair</value>
-          <value>other</value>
-        </choice>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="otherunits">
-        <data type="NMTOKEN"/>
-      </attribute>
-    </optional>
-    <attribute name="coords"/>
-    <ref name="idreq.common.attrib"/>
-    <ref name="areaset.role.attrib"/>
-    <ref name="local.areaset.attrib"/>
-  </define>
-<!--end of areaset.attlist-->
-<!--end of areaset.module-->
-<!--end of areaspec.content.module-->
-  <define name="local.programlisting.attrib">
-    <empty/>
-  </define>
-  <define name="programlisting.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="programlisting">
-    <element name="programlisting">
-      <ref name="programlisting.attlist"/>
-      <zeroOrMore>
-        <choice>
-          <ref name="para.char.mix"/>
-          <ref name="co"/>
-          <ref name="coref"/>
-          <ref name="lineannotation"/>
-          <ref name="textobject"/>
-        </choice>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of programlisting.element-->
-  <define name="programlisting.attlist" combine="interleave">
-    <ref name="width.attrib"/>
-    <ref name="linespecific.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="programlisting.role.attrib"/>
-    <ref name="local.programlisting.attrib"/>
-  </define>
-<!--end of programlisting.attlist-->
-<!--end of programlisting.module-->
-  <define name="local.literallayout.attrib">
-    <empty/>
-  </define>
-  <define name="literallayout.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="literallayout">
-    <element name="literallayout">
-      <ref name="literallayout.attlist"/>
-      <zeroOrMore>
-        <choice>
-          <ref name="para.char.mix"/>
-          <ref name="co"/>
-          <ref name="coref"/>
-          <ref name="textobject"/>
-          <ref name="lineannotation"/>
-        </choice>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of literallayout.element-->
-  <define name="literallayout.attlist" combine="interleave">
-    <ref name="width.attrib"/>
-    <ref name="linespecific.attrib"/>
-    <optional>
-      <attribute name="class" a:defaultValue="normal">
-        <choice>
-          <value>monospaced</value>
-          <value>normal</value>
-        </choice>
-      </attribute>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="literallayout.role.attrib"/>
-    <ref name="local.literallayout.attrib"/>
-  </define>
-<!--end of literallayout.attlist-->
+
+      <div db:name="areaset.attlist">
+        <define name="areaset.attlist" combine="interleave">
+          <ref name="label.attrib"/>
+          <optional>
+            <attribute name="units">
+              <choice>
+                <value>calspair</value>
+                <value>linecolumn</value>
+                <value>linerange</value>
+                <value>linecolumnpair</value>
+                <value>other</value>
+              </choice>
+            </attribute>
+          </optional>
+          <optional>
+            <attribute name="otherunits">
+              <data type="NMTOKEN"/>
+            </attribute>
+          </optional>
+          <attribute name="coords"/>
+          <ref name="idreq.common.attrib"/>
+          <ref name="areaset.role.attrib"/>
+          <ref name="local.areaset.attrib"/>
+        </define>
+      </div>
+    </div>
+  </div>
+
+  <div db:name="programlisting.module">
+    <define name="local.programlisting.attrib">
+      <empty/>
+    </define>
+    <define name="programlisting.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="programlisting">
+      <define name="programlisting">
+        <element name="programlisting">
+          <ref name="programlisting.attlist"/>
+          <zeroOrMore>
+            <choice>
+              <ref name="para.char.mix"/>
+              <ref name="co"/>
+              <ref name="coref"/>
+              <ref name="lineannotation"/>
+              <ref name="textobject"/>
+            </choice>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="programlisting.attlist">
+      <define name="programlisting.attlist" combine="interleave">
+        <ref name="width.attrib"/>
+        <ref name="linespecific.attrib"/>
+        <ref name="common.attrib"/>
+        <ref name="programlisting.role.attrib"/>
+        <ref name="local.programlisting.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="literallayout.module">
+    <define name="local.literallayout.attrib">
+      <empty/>
+    </define>
+    <define name="literallayout.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="literallayout">
+      <define name="literallayout">
+        <element name="literallayout">
+          <ref name="literallayout.attlist"/>
+          <zeroOrMore>
+            <choice>
+              <ref name="para.char.mix"/>
+              <ref name="co"/>
+              <ref name="coref"/>
+              <ref name="textobject"/>
+              <ref name="lineannotation"/>
+            </choice>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="literallayout.attlist">
+      <define name="literallayout.attlist" combine="interleave">
+        <ref name="width.attrib"/>
+        <ref name="linespecific.attrib"/>
+        <optional>
+          <attribute name="class" a:defaultValue="normal">
+            <choice>
+              <value>monospaced</value>
+              <value>normal</value>
+            </choice>
+          </attribute>
+        </optional>
+        <ref name="common.attrib"/>
+        <ref name="literallayout.role.attrib"/>
+        <ref name="local.literallayout.attrib"/>
+      </define>
+    </div>
+
 <!-- LineAnnotation (defined in the Inlines section, below)-->
-<!--end of literallayout.module-->
-  <define name="local.screenco.attrib">
-    <empty/>
-  </define>
-  <define name="screenco.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="screenco">
-    <element name="screenco">
-      <ref name="screenco.attlist"/>
-      <ref name="areaspec"/>
-      <ref name="screen"/>
-      <zeroOrMore>
-        <ref name="calloutlist"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of screenco.element-->
-  <define name="screenco.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="screenco.role.attrib"/>
-    <ref name="local.screenco.attrib"/>
-  </define>
-<!--end of screenco.attlist-->
+
+  </div>
+
+  <div db:name="screenco.module">
+    <define name="local.screenco.attrib">
+      <empty/>
+    </define>
+    <define name="screenco.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="screenco">
+      <define name="screenco">
+        <element name="screenco">
+          <ref name="screenco.attlist"/>
+          <ref name="areaspec"/>
+          <ref name="screen"/>
+          <zeroOrMore>
+            <ref name="calloutlist"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="screenco.attlist">
+      <define name="screenco.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="screenco.role.attrib"/>
+        <ref name="local.screenco.attrib"/>
+      </define>
+    </div>
+
 <!-- AreaSpec (defined above)-->
 <!-- CalloutList (defined above in Lists)-->
-<!--end of screenco.module-->
-  <define name="local.screen.attrib">
-    <empty/>
-  </define>
-  <define name="screen.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="screen">
-    <element name="screen">
-      <ref name="screen.attlist"/>
-      <zeroOrMore>
-        <choice>
-          <ref name="para.char.mix"/>
-          <ref name="co"/>
-          <ref name="coref"/>
-          <ref name="textobject"/>
-          <ref name="lineannotation"/>
-        </choice>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of screen.element-->
-  <define name="screen.attlist" combine="interleave">
-    <ref name="width.attrib"/>
-    <ref name="linespecific.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="screen.role.attrib"/>
-    <ref name="local.screen.attrib"/>
-  </define>
-<!--end of screen.attlist-->
-<!--end of screen.module-->
-  <define name="local.screenshot.attrib">
-    <empty/>
-  </define>
-  <define name="screenshot.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="screenshot">
-    <element name="screenshot">
-      <ref name="screenshot.attlist"/>
-      <optional>
-        <ref name="screeninfo"/>
-      </optional>
-      <choice>
-        <ref name="graphic"/>
-        <ref name="graphicco"/>
-        <ref name="mediaobject"/>
-        <ref name="mediaobjectco"/>
-      </choice>
-    </element>
-  </define>
-<!--end of screenshot.element-->
-  <define name="screenshot.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="screenshot.role.attrib"/>
-    <ref name="local.screenshot.attrib"/>
-  </define>
-<!--end of screenshot.attlist-->
-<!--end of screenshot.module-->
-  <define name="local.screeninfo.attrib">
-    <empty/>
-  </define>
-  <define name="screeninfo.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="screeninfo">
-    <element name="screeninfo">
-      <ref name="screeninfo.attlist"/>
-      <zeroOrMore>
-        <ref name="para.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of screeninfo.element-->
-  <define name="screeninfo.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="screeninfo.role.attrib"/>
-    <ref name="local.screeninfo.attrib"/>
-  </define>
-<!--end of screeninfo.attlist-->
-<!--end of screeninfo.module-->
-<!--end of screenshot.content.module-->
+
+  </div>
+
+  <div db:name="screen.module">
+    <define name="local.screen.attrib">
+      <empty/>
+    </define>
+    <define name="screen.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="screen">
+      <define name="screen">
+        <element name="screen">
+          <ref name="screen.attlist"/>
+          <zeroOrMore>
+            <choice>
+              <ref name="para.char.mix"/>
+              <ref name="co"/>
+              <ref name="coref"/>
+              <ref name="textobject"/>
+              <ref name="lineannotation"/>
+            </choice>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="screen.attlist">
+      <define name="screen.attlist" combine="interleave">
+        <ref name="width.attrib"/>
+        <ref name="linespecific.attrib"/>
+        <ref name="common.attrib"/>
+        <ref name="screen.role.attrib"/>
+        <ref name="local.screen.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="screenshot.content.module">
+
+    <div db:name="screenshot.module">
+      <define name="local.screenshot.attrib">
+        <empty/>
+      </define>
+      <define name="screenshot.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="screenshot">
+        <define name="screenshot">
+          <element name="screenshot">
+            <ref name="screenshot.attlist"/>
+            <optional>
+              <ref name="screeninfo"/>
+            </optional>
+            <choice>
+              <ref name="graphic"/>
+              <ref name="graphicco"/>
+              <ref name="mediaobject"/>
+              <ref name="mediaobjectco"/>
+            </choice>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="screenshot.attlist">
+        <define name="screenshot.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="screenshot.role.attrib"/>
+          <ref name="local.screenshot.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="screeninfo.module">
+      <define name="local.screeninfo.attrib">
+        <empty/>
+      </define>
+      <define name="screeninfo.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="screeninfo">
+        <define name="screeninfo">
+          <element name="screeninfo">
+            <ref name="screeninfo.attlist"/>
+            <zeroOrMore>
+              <ref name="para.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="screeninfo.attlist">
+        <define name="screeninfo.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="screeninfo.role.attrib"/>
+          <ref name="local.screeninfo.attrib"/>
+        </define>
+      </div>
+    </div>
+  </div>
+
 <!-- Figures etc. ..................... -->
-  <define name="local.figure.attrib">
-    <empty/>
-  </define>
-  <define name="figure.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="figure">
-    <element name="figure">
-      <ref name="figure.attlist"/>
-      <optional>
-        <ref name="blockinfo"/>
-      </optional>
-      <ref name="formalobject.title.content"/>
-      <oneOrMore>
-        <choice>
-          <ref name="figure.mix"/>
-          <ref name="link.char.class"/>
-        </choice>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of figure.element-->
+
+  <div db:name="figure.module">
+    <define name="local.figure.attrib">
+      <empty/>
+    </define>
+    <define name="figure.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="figure">
+      <define name="figure">
+        <element name="figure">
+          <ref name="figure.attlist"/>
+          <optional>
+            <ref name="blockinfo"/>
+          </optional>
+          <ref name="formalobject.title.content"/>
+          <oneOrMore>
+            <choice>
+              <ref name="figure.mix"/>
+              <ref name="link.char.class"/>
+            </choice>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
 <!-- Float: Whether the Figure is supposed to be rendered
                where convenient (yes (1) value) or at the place it occurs
                in the text (no (0) value, the default) -->
-  <define name="figure.attlist" combine="interleave">
-    <optional>
-      <attribute name="float" a:defaultValue="0">
-        <ref name="yesorno.attvals"/>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="pgwide">
-        <ref name="yesorno.attvals"/>
-      </attribute>
-    </optional>
-    <ref name="label.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="figure.role.attrib"/>
-    <ref name="local.figure.attrib"/>
-  </define>
-<!--end of figure.attlist-->
-<!--end of figure.module-->
-  <define name="local.informalfigure.attrib">
-    <empty/>
-  </define>
-  <define name="informalfigure.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="informalfigure">
-    <element name="informalfigure">
-      <ref name="informalfigure.attlist"/>
-      <optional>
-        <ref name="blockinfo"/>
-      </optional>
-      <oneOrMore>
-        <choice>
-          <ref name="figure.mix"/>
-          <ref name="link.char.class"/>
-        </choice>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of informalfigure.element-->
+
+    <div db:name="figure.attlist">
+      <define name="figure.attlist" combine="interleave">
+        <optional>
+          <attribute name="float" a:defaultValue="0">
+            <ref name="yesorno.attvals"/>
+          </attribute>
+        </optional>
+        <optional>
+          <attribute name="pgwide">
+            <ref name="yesorno.attvals"/>
+          </attribute>
+        </optional>
+        <ref name="label.attrib"/>
+        <ref name="common.attrib"/>
+        <ref name="figure.role.attrib"/>
+        <ref name="local.figure.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="informalfigure.module">
+    <define name="local.informalfigure.attrib">
+      <empty/>
+    </define>
+    <define name="informalfigure.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="informalfigure">
+      <define name="informalfigure">
+        <element name="informalfigure">
+          <ref name="informalfigure.attlist"/>
+          <optional>
+            <ref name="blockinfo"/>
+          </optional>
+          <oneOrMore>
+            <choice>
+              <ref name="figure.mix"/>
+              <ref name="link.char.class"/>
+            </choice>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
 <!--
 Float: Whether the Figure is supposed to be rendered
 where convenient (yes (1) value) or at the place it occurs
 in the text (no (0) value, the default)
 -->
-  <define name="informalfigure.attlist" combine="interleave">
-    <optional>
-      <attribute name="float" a:defaultValue="0">
-        <ref name="yesorno.attvals"/>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="pgwide">
-        <ref name="yesorno.attvals"/>
-      </attribute>
-    </optional>
-    <ref name="label.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="informalfigure.role.attrib"/>
-    <ref name="local.informalfigure.attrib"/>
-  </define>
-<!--end of informalfigure.attlist-->
-<!--end of informalfigure.module-->
-  <define name="local.graphicco.attrib">
-    <empty/>
-  </define>
-  <define name="graphicco.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="graphicco">
-    <element name="graphicco">
-      <ref name="graphicco.attlist"/>
-      <ref name="areaspec"/>
-      <ref name="graphic"/>
-      <zeroOrMore>
-        <ref name="calloutlist"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of graphicco.element-->
-  <define name="graphicco.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="graphicco.role.attrib"/>
-    <ref name="local.graphicco.attrib"/>
-  </define>
-<!--end of graphicco.attlist-->
+
+    <div db:name="informalfigure.attlist">
+      <define name="informalfigure.attlist" combine="interleave">
+        <optional>
+          <attribute name="float" a:defaultValue="0">
+            <ref name="yesorno.attvals"/>
+          </attribute>
+        </optional>
+        <optional>
+          <attribute name="pgwide">
+            <ref name="yesorno.attvals"/>
+          </attribute>
+        </optional>
+        <ref name="label.attrib"/>
+        <ref name="common.attrib"/>
+        <ref name="informalfigure.role.attrib"/>
+        <ref name="local.informalfigure.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="graphicco.module">
+    <define name="local.graphicco.attrib">
+      <empty/>
+    </define>
+    <define name="graphicco.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="graphicco">
+      <define name="graphicco">
+        <element name="graphicco">
+          <ref name="graphicco.attlist"/>
+          <ref name="areaspec"/>
+          <ref name="graphic"/>
+          <zeroOrMore>
+            <ref name="calloutlist"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="graphicco.attlist">
+      <define name="graphicco.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="graphicco.role.attrib"/>
+        <ref name="local.graphicco.attrib"/>
+      </define>
+    </div>
+
 <!-- AreaSpec (defined above in Examples)-->
 <!-- CalloutList (defined above in Lists)-->
-<!--end of graphicco.module-->
+
+  </div>
+
 <!-- Graphical data can be the content of Graphic, or you can reference
      an external file either as an entity (Entitref) or a filename
      (Fileref). -->
-  <define name="local.graphic.attrib">
-    <empty/>
-  </define>
-  <define name="graphic.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="graphic">
-    <element name="graphic">
-      <ref name="graphic.attlist"/>
+
+  <div db:name="graphic.module">
+    <define name="local.graphic.attrib">
       <empty/>
-    </element>
-  </define>
-<!--end of graphic.element-->
-  <define name="graphic.attlist" combine="interleave">
-    <ref name="graphics.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="graphic.role.attrib"/>
-    <ref name="local.graphic.attrib"/>
-  </define>
-<!--end of graphic.attlist-->
-<!--end of graphic.module-->
-  <define name="local.inlinegraphic.attrib">
-    <empty/>
-  </define>
-  <define name="inlinegraphic.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="inlinegraphic">
-    <element name="inlinegraphic">
-      <ref name="inlinegraphic.attlist"/>
+    </define>
+    <define name="graphic.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="graphic">
+      <define name="graphic">
+        <element name="graphic">
+          <ref name="graphic.attlist"/>
+          <empty/>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="graphic.attlist">
+      <define name="graphic.attlist" combine="interleave">
+        <ref name="graphics.attrib"/>
+        <ref name="common.attrib"/>
+        <ref name="graphic.role.attrib"/>
+        <ref name="local.graphic.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="inlinegraphic.module">
+    <define name="local.inlinegraphic.attrib">
       <empty/>
-    </element>
-  </define>
-<!--end of inlinegraphic.element-->
-  <define name="inlinegraphic.attlist" combine="interleave">
-    <ref name="graphics.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="inlinegraphic.role.attrib"/>
-    <ref name="local.inlinegraphic.attrib"/>
-  </define>
-<!--end of inlinegraphic.attlist-->
-<!--end of inlinegraphic.module-->
-  <define name="local.mediaobject.attrib">
-    <empty/>
-  </define>
-  <define name="mediaobject.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="mediaobject">
-    <element name="mediaobject">
-      <ref name="mediaobject.attlist"/>
-      <optional>
-        <ref name="objectinfo"/>
-      </optional>
-      <oneOrMore>
-        <ref name="mediaobject.mix"/>
-      </oneOrMore>
-      <optional>
-        <ref name="caption"/>
-      </optional>
-    </element>
-  </define>
-<!--end of mediaobject.element-->
-  <define name="mediaobject.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="mediaobject.role.attrib"/>
-    <ref name="local.mediaobject.attrib"/>
-  </define>
-<!--end of mediaobject.attlist-->
-<!--end of mediaobject.module-->
-  <define name="local.inlinemediaobject.attrib">
-    <empty/>
-  </define>
-  <define name="inlinemediaobject.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="inlinemediaobject">
-    <element name="inlinemediaobject">
-      <ref name="inlinemediaobject.attlist"/>
-      <optional>
-        <ref name="objectinfo"/>
-      </optional>
-      <oneOrMore>
-        <ref name="mediaobject.mix"/>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of inlinemediaobject.element-->
-  <define name="inlinemediaobject.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="inlinemediaobject.role.attrib"/>
-    <ref name="local.inlinemediaobject.attrib"/>
-  </define>
-<!--end of inlinemediaobject.attlist-->
-<!--end of inlinemediaobject.module-->
-  <define name="local.videoobject.attrib">
-    <empty/>
-  </define>
-  <define name="videoobject.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="videoobject">
-    <element name="videoobject">
-      <ref name="videoobject.attlist"/>
-      <optional>
-        <ref name="objectinfo"/>
-      </optional>
-      <ref name="videodata"/>
-    </element>
-  </define>
-<!--end of videoobject.element-->
-  <define name="videoobject.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="videoobject.role.attrib"/>
-    <ref name="local.videoobject.attrib"/>
-  </define>
-<!--end of videoobject.attlist-->
-<!--end of videoobject.module-->
-  <define name="local.audioobject.attrib">
-    <empty/>
-  </define>
-  <define name="audioobject.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="audioobject">
-    <element name="audioobject">
-      <ref name="audioobject.attlist"/>
-      <optional>
-        <ref name="objectinfo"/>
-      </optional>
-      <ref name="audiodata"/>
-    </element>
-  </define>
-<!--end of audioobject.element-->
-  <define name="audioobject.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="audioobject.role.attrib"/>
-    <ref name="local.audioobject.attrib"/>
-  </define>
-<!--end of audioobject.attlist-->
-<!--end of audioobject.module-->
-  <define name="local.imageobject.attrib">
-    <empty/>
-  </define>
-  <define name="imageobject.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="imageobject">
-    <element name="imageobject">
-      <ref name="imageobject.attlist"/>
-      <optional>
-        <ref name="objectinfo"/>
-      </optional>
-      <ref name="imagedata"/>
-    </element>
-  </define>
-<!--end of imageobject.element-->
-  <define name="imageobject.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="imageobject.role.attrib"/>
-    <ref name="local.imageobject.attrib"/>
-  </define>
-<!--end of imageobject.attlist-->
-<!--end of imageobject.module-->
-  <define name="local.textobject.attrib">
-    <empty/>
-  </define>
-  <define name="textobject.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="textobject">
-    <element name="textobject">
-      <ref name="textobject.attlist"/>
-      <optional>
-        <ref name="objectinfo"/>
-      </optional>
-      <choice>
-        <ref name="phrase"/>
-        <ref name="textdata"/>
-        <oneOrMore>
-          <ref name="textobject.mix"/>
-        </oneOrMore>
-      </choice>
-    </element>
-  </define>
-<!--end of textobject.element-->
-  <define name="textobject.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="textobject.role.attrib"/>
-    <ref name="local.textobject.attrib"/>
-  </define>
-<!--end of textobject.attlist-->
-<!--end of textobject.module-->
-  <define name="local.objectinfo.attrib">
-    <empty/>
-  </define>
-  <define name="objectinfo.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="objectinfo">
-    <element name="objectinfo">
-      <ref name="objectinfo.attlist"/>
-      <oneOrMore>
-        <ref name="info.class"/>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of objectinfo.element-->
-  <define name="objectinfo.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="objectinfo.role.attrib"/>
-    <ref name="local.objectinfo.attrib"/>
-  </define>
-<!--end of objectinfo.attlist-->
-<!--end of objectinfo.module-->
+    </define>
+    <define name="inlinegraphic.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="inlinegraphic">
+      <define name="inlinegraphic">
+        <element name="inlinegraphic">
+          <ref name="inlinegraphic.attlist"/>
+          <empty/>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="inlinegraphic.attlist">
+      <define name="inlinegraphic.attlist" combine="interleave">
+        <ref name="graphics.attrib"/>
+        <ref name="common.attrib"/>
+        <ref name="inlinegraphic.role.attrib"/>
+        <ref name="local.inlinegraphic.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="mediaobject.content.module">
+
+    <div db:name="mediaobject.module">
+      <define name="local.mediaobject.attrib">
+        <empty/>
+      </define>
+      <define name="mediaobject.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="mediaobject">
+        <define name="mediaobject">
+          <element name="mediaobject">
+            <ref name="mediaobject.attlist"/>
+            <optional>
+              <ref name="objectinfo"/>
+            </optional>
+            <oneOrMore>
+              <ref name="mediaobject.mix"/>
+            </oneOrMore>
+            <optional>
+              <ref name="caption"/>
+            </optional>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="mediaobject.attlist">
+        <define name="mediaobject.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="mediaobject.role.attrib"/>
+          <ref name="local.mediaobject.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="inlinemediaobject.module">
+      <define name="local.inlinemediaobject.attrib">
+        <empty/>
+      </define>
+      <define name="inlinemediaobject.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="inlinemediaobject">
+        <define name="inlinemediaobject">
+          <element name="inlinemediaobject">
+            <ref name="inlinemediaobject.attlist"/>
+            <optional>
+              <ref name="objectinfo"/>
+            </optional>
+            <oneOrMore>
+              <ref name="mediaobject.mix"/>
+            </oneOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="inlinemediaobject.attlist">
+        <define name="inlinemediaobject.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="inlinemediaobject.role.attrib"/>
+          <ref name="local.inlinemediaobject.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="videoobject.module">
+      <define name="local.videoobject.attrib">
+        <empty/>
+      </define>
+      <define name="videoobject.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="videoobject">
+        <define name="videoobject">
+          <element name="videoobject">
+            <ref name="videoobject.attlist"/>
+            <optional>
+              <ref name="objectinfo"/>
+            </optional>
+            <ref name="videodata"/>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="videoobject.attlist">
+        <define name="videoobject.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="videoobject.role.attrib"/>
+          <ref name="local.videoobject.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="audioobject.module">
+      <define name="local.audioobject.attrib">
+        <empty/>
+      </define>
+      <define name="audioobject.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="audioobject">
+        <define name="audioobject">
+          <element name="audioobject">
+            <ref name="audioobject.attlist"/>
+            <optional>
+              <ref name="objectinfo"/>
+            </optional>
+            <ref name="audiodata"/>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="audioobject.attlist">
+        <define name="audioobject.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="audioobject.role.attrib"/>
+          <ref name="local.audioobject.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="imageobject.module">
+      <define name="local.imageobject.attrib">
+        <empty/>
+      </define>
+      <define name="imageobject.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="imageobject">
+        <define name="imageobject">
+          <element name="imageobject">
+            <ref name="imageobject.attlist"/>
+            <optional>
+              <ref name="objectinfo"/>
+            </optional>
+            <ref name="imagedata"/>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="imageobject.attlist">
+        <define name="imageobject.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="imageobject.role.attrib"/>
+          <ref name="local.imageobject.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="textobject.module">
+      <define name="local.textobject.attrib">
+        <empty/>
+      </define>
+      <define name="textobject.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="textobject">
+        <define name="textobject">
+          <element name="textobject">
+            <ref name="textobject.attlist"/>
+            <optional>
+              <ref name="objectinfo"/>
+            </optional>
+            <choice>
+              <ref name="phrase"/>
+              <ref name="textdata"/>
+              <oneOrMore>
+                <ref name="textobject.mix"/>
+              </oneOrMore>
+            </choice>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="textobject.attlist">
+        <define name="textobject.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="textobject.role.attrib"/>
+          <ref name="local.textobject.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="objectinfo.module">
+      <define name="local.objectinfo.attrib">
+        <empty/>
+      </define>
+      <define name="objectinfo.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="objectinfo">
+        <define name="objectinfo">
+          <element name="objectinfo">
+            <ref name="objectinfo.attlist"/>
+            <oneOrMore>
+              <ref name="info.class"/>
+            </oneOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="objectinfo.attlist">
+        <define name="objectinfo.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="objectinfo.role.attrib"/>
+          <ref name="local.objectinfo.attrib"/>
+        </define>
+      </div>
+    </div>
+
 <!--EntityRef: Name of an external entity containing the content
        of the object data-->
 <!--FileRef: Filename, qualified by a pathname if desired,
        designating the file containing the content of the object data-->
 <!--Format: Notation of the element content, if any-->
 <!--SrcCredit: Information about the source of the image-->
-  <define name="local.objectdata.attrib">
-    <empty/>
-  </define>
-  <define name="objectdata.attrib">
-    <optional>
-      <attribute name="entityref">
-        <data type="ENTITY"/>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="fileref"/>
-    </optional>
-    <optional>
-      <attribute name="format">
-        <choice>
-          <ref name="notation.class"/>
-        </choice>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="srccredit"/>
-    </optional>
-    <ref name="local.objectdata.attrib"/>
-  </define>
-  <define name="local.videodata.attrib">
-    <empty/>
-  </define>
-  <define name="videodata.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="videodata">
-    <element name="videodata">
-      <ref name="videodata.attlist"/>
-      <empty/>
-    </element>
-  </define>
-<!--end of videodata.element-->
-<!--Width: Same as CALS reprowid (desired width)-->
-<!--Depth: Same as CALS reprodep (desired depth)-->
-<!--Align: Same as CALS hplace with 'none' removed; #IMPLIED means
-       application-specific-->
-<!--Scale: Conflation of CALS hscale and vscale-->
-<!--Scalefit: Same as CALS scalefit-->
-  <define name="videodata.attlist" combine="interleave">
-    <optional>
-      <attribute name="width"/>
-    </optional>
-    <optional>
-      <attribute name="contentwidth"/>
-    </optional>
-    <optional>
-      <attribute name="depth"/>
-    </optional>
-    <optional>
-      <attribute name="contentdepth"/>
-    </optional>
-    <optional>
-      <attribute name="align">
-        <choice>
-          <value>left</value>
-          <value>right</value>
-          <value>center</value>
-        </choice>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="valign">
-        <choice>
-          <value>top</value>
-          <value>middle</value>
-          <value>bottom</value>
-        </choice>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="scale"/>
-    </optional>
-    <optional>
-      <attribute name="scalefit">
-        <ref name="yesorno.attvals"/>
-      </attribute>
-    </optional>
-    <ref name="objectdata.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="videodata.role.attrib"/>
-    <ref name="local.videodata.attrib"/>
-  </define>
-<!--end of videodata.attlist-->
-<!--end of videodata.module-->
-  <define name="local.audiodata.attrib">
-    <empty/>
-  </define>
-  <define name="audiodata.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="audiodata">
-    <element name="audiodata">
-      <ref name="audiodata.attlist"/>
-      <empty/>
-    </element>
-  </define>
-<!--end of audiodata.element-->
-  <define name="audiodata.attlist" combine="interleave">
-    <ref name="objectdata.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="audiodata.role.attrib"/>
-    <ref name="local.audiodata.attrib"/>
-  </define>
-<!--end of audiodata.attlist-->
-<!--end of audiodata.module-->
-  <define name="local.imagedata.attrib">
-    <empty/>
-  </define>
-  <define name="imagedata.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="imagedata">
-    <element name="imagedata">
-      <ref name="imagedata.attlist"/>
-      <empty/>
-    </element>
-  </define>
-<!--end of imagedata.element-->
+
+    <div db:name="objectdata.module">
+      <define name="local.objectdata.attrib">
+        <empty/>
+      </define>
+      <define name="objectdata.attrib">
+        <optional>
+          <attribute name="entityref">
+            <data type="ENTITY"/>
+          </attribute>
+        </optional>
+        <optional>
+          <attribute name="fileref"/>
+        </optional>
+        <optional>
+          <attribute name="format">
+            <choice>
+              <ref name="notation.class"/>
+            </choice>
+          </attribute>
+        </optional>
+        <optional>
+          <attribute name="srccredit"/>
+        </optional>
+        <ref name="local.objectdata.attrib"/>
+      </define>
+    </div>
+
+    <div db:name="videodata.module">
+      <define name="local.videodata.attrib">
+        <empty/>
+      </define>
+      <define name="videodata.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="videodata">
+        <define name="videodata">
+          <element name="videodata">
+            <ref name="videodata.attlist"/>
+            <empty/>
+          </element>
+        </define>
+      </div>
+
 <!--Width: Same as CALS reprowid (desired width)-->
 <!--Depth: Same as CALS reprodep (desired depth)-->
 <!--Align: Same as CALS hplace with 'none' removed; #IMPLIED means
        application-specific-->
 <!--Scale: Conflation of CALS hscale and vscale-->
 <!--Scalefit: Same as CALS scalefit-->
-  <define name="imagedata.attlist" combine="interleave">
-    <optional>
-      <attribute name="width"/>
-    </optional>
-    <optional>
-      <attribute name="contentwidth"/>
-    </optional>
-    <optional>
-      <attribute name="depth"/>
-    </optional>
-    <optional>
-      <attribute name="contentdepth"/>
-    </optional>
-    <optional>
-      <attribute name="align">
-        <choice>
-          <value>left</value>
-          <value>right</value>
-          <value>center</value>
-        </choice>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="valign">
-        <choice>
-          <value>top</value>
-          <value>middle</value>
-          <value>bottom</value>
-        </choice>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="scale"/>
-    </optional>
-    <optional>
-      <attribute name="scalefit">
-        <ref name="yesorno.attvals"/>
-      </attribute>
-    </optional>
-    <ref name="objectdata.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="imagedata.role.attrib"/>
-    <ref name="local.imagedata.attrib"/>
-  </define>
-<!--end of imagedata.attlist-->
-<!--end of imagedata.module-->
-  <define name="local.textdata.attrib">
-    <empty/>
-  </define>
-  <define name="textdata.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="textdata">
-    <element name="textdata">
-      <ref name="textdata.attlist"/>
-      <empty/>
-    </element>
-  </define>
-<!--end of textdata.element-->
-  <define name="textdata.attlist" combine="interleave">
-    <optional>
-      <attribute name="encoding"/>
-    </optional>
-    <ref name="objectdata.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="textdata.role.attrib"/>
-    <ref name="local.textdata.attrib"/>
-  </define>
-<!--end of textdata.attlist-->
-<!--end of textdata.module-->
-  <define name="local.caption.attrib">
-    <empty/>
-  </define>
-  <define name="caption.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="caption">
-    <element name="caption">
-      <ref name="caption.attlist"/>
-      <zeroOrMore>
-        <ref name="textobject.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of caption.element-->
-  <define name="caption.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="caption.role.attrib"/>
-    <ref name="local.caption.attrib"/>
-  </define>
-<!--end of caption.attlist-->
-<!--end of caption.module-->
-  <define name="local.mediaobjectco.attrib">
-    <empty/>
-  </define>
-  <define name="mediaobjectco.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="mediaobjectco">
-    <element name="mediaobjectco">
-      <ref name="mediaobjectco.attlist"/>
-      <optional>
-        <ref name="objectinfo"/>
-      </optional>
-      <ref name="imageobjectco"/>
-      <zeroOrMore>
-        <choice>
-          <ref name="imageobjectco"/>
-          <ref name="textobject"/>
-        </choice>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of mediaobjectco.element-->
-  <define name="mediaobjectco.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="mediaobjectco.role.attrib"/>
-    <ref name="local.mediaobjectco.attrib"/>
-  </define>
-<!--end of mediaobjectco.attlist-->
-<!--end of mediaobjectco.module-->
-  <define name="local.imageobjectco.attrib">
-    <empty/>
-  </define>
-  <define name="imageobjectco.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="imageobjectco">
-    <element name="imageobjectco">
-      <ref name="imageobjectco.attlist"/>
-      <ref name="areaspec"/>
-      <ref name="imageobject"/>
-      <zeroOrMore>
-        <ref name="calloutlist"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of imageobjectco.element-->
-  <define name="imageobjectco.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="imageobjectco.role.attrib"/>
-    <ref name="local.imageobjectco.attrib"/>
-  </define>
-<!--end of imageobjectco.attlist-->
-<!--end of imageobjectco.module-->
-<!--end of mediaobject.content.module-->
+
+      <div db:name="videodata.attlist">
+        <define name="videodata.attlist" combine="interleave">
+          <optional>
+            <attribute name="width"/>
+          </optional>
+          <optional>
+            <attribute name="contentwidth"/>
+          </optional>
+          <optional>
+            <attribute name="depth"/>
+          </optional>
+          <optional>
+            <attribute name="contentdepth"/>
+          </optional>
+          <optional>
+            <attribute name="align">
+              <choice>
+                <value>left</value>
+                <value>right</value>
+                <value>center</value>
+              </choice>
+            </attribute>
+          </optional>
+          <optional>
+            <attribute name="valign">
+              <choice>
+                <value>top</value>
+                <value>middle</value>
+                <value>bottom</value>
+              </choice>
+            </attribute>
+          </optional>
+          <optional>
+            <attribute name="scale"/>
+          </optional>
+          <optional>
+            <attribute name="scalefit">
+              <ref name="yesorno.attvals"/>
+            </attribute>
+          </optional>
+          <ref name="objectdata.attrib"/>
+          <ref name="common.attrib"/>
+          <ref name="videodata.role.attrib"/>
+          <ref name="local.videodata.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="audiodata.module">
+      <define name="local.audiodata.attrib">
+        <empty/>
+      </define>
+      <define name="audiodata.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="audiodata">
+        <define name="audiodata">
+          <element name="audiodata">
+            <ref name="audiodata.attlist"/>
+            <empty/>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="audiodata.attlist">
+        <define name="audiodata.attlist" combine="interleave">
+          <ref name="objectdata.attrib"/>
+          <ref name="common.attrib"/>
+          <ref name="audiodata.role.attrib"/>
+          <ref name="local.audiodata.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="imagedata.module">
+      <define name="local.imagedata.attrib">
+        <empty/>
+      </define>
+      <define name="imagedata.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="imagedata">
+        <define name="imagedata">
+          <element name="imagedata">
+            <ref name="imagedata.attlist"/>
+            <empty/>
+          </element>
+        </define>
+      </div>
+
+<!--Width: Same as CALS reprowid (desired width)-->
+<!--Depth: Same as CALS reprodep (desired depth)-->
+<!--Align: Same as CALS hplace with 'none' removed; #IMPLIED means
+       application-specific-->
+<!--Scale: Conflation of CALS hscale and vscale-->
+<!--Scalefit: Same as CALS scalefit-->
+
+      <div db:name="imagedata.attlist">
+        <define name="imagedata.attlist" combine="interleave">
+          <optional>
+            <attribute name="width"/>
+          </optional>
+          <optional>
+            <attribute name="contentwidth"/>
+          </optional>
+          <optional>
+            <attribute name="depth"/>
+          </optional>
+          <optional>
+            <attribute name="contentdepth"/>
+          </optional>
+          <optional>
+            <attribute name="align">
+              <choice>
+                <value>left</value>
+                <value>right</value>
+                <value>center</value>
+              </choice>
+            </attribute>
+          </optional>
+          <optional>
+            <attribute name="valign">
+              <choice>
+                <value>top</value>
+                <value>middle</value>
+                <value>bottom</value>
+              </choice>
+            </attribute>
+          </optional>
+          <optional>
+            <attribute name="scale"/>
+          </optional>
+          <optional>
+            <attribute name="scalefit">
+              <ref name="yesorno.attvals"/>
+            </attribute>
+          </optional>
+          <ref name="objectdata.attrib"/>
+          <ref name="common.attrib"/>
+          <ref name="imagedata.role.attrib"/>
+          <ref name="local.imagedata.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="textdata.module">
+      <define name="local.textdata.attrib">
+        <empty/>
+      </define>
+      <define name="textdata.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="textdata">
+        <define name="textdata">
+          <element name="textdata">
+            <ref name="textdata.attlist"/>
+            <empty/>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="textdata.attlist">
+        <define name="textdata.attlist" combine="interleave">
+          <optional>
+            <attribute name="encoding"/>
+          </optional>
+          <ref name="objectdata.attrib"/>
+          <ref name="common.attrib"/>
+          <ref name="textdata.role.attrib"/>
+          <ref name="local.textdata.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="caption.module">
+      <define name="local.caption.attrib">
+        <empty/>
+      </define>
+      <define name="caption.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="caption">
+        <define name="caption">
+          <element name="caption">
+            <ref name="caption.attlist"/>
+            <zeroOrMore>
+              <ref name="textobject.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="caption.attlist">
+        <define name="caption.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="caption.role.attrib"/>
+          <ref name="local.caption.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="mediaobjectco.module">
+      <define name="local.mediaobjectco.attrib">
+        <empty/>
+      </define>
+      <define name="mediaobjectco.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="mediaobjectco">
+        <define name="mediaobjectco">
+          <element name="mediaobjectco">
+            <ref name="mediaobjectco.attlist"/>
+            <optional>
+              <ref name="objectinfo"/>
+            </optional>
+            <ref name="imageobjectco"/>
+            <zeroOrMore>
+              <choice>
+                <ref name="imageobjectco"/>
+                <ref name="textobject"/>
+              </choice>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="mediaobjectco.attlist">
+        <define name="mediaobjectco.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="mediaobjectco.role.attrib"/>
+          <ref name="local.mediaobjectco.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="imageobjectco.module">
+      <define name="local.imageobjectco.attrib">
+        <empty/>
+      </define>
+      <define name="imageobjectco.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="imageobjectco">
+        <define name="imageobjectco">
+          <element name="imageobjectco">
+            <ref name="imageobjectco.attlist"/>
+            <ref name="areaspec"/>
+            <ref name="imageobject"/>
+            <zeroOrMore>
+              <ref name="calloutlist"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="imageobjectco.attlist">
+        <define name="imageobjectco.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="imageobjectco.role.attrib"/>
+          <ref name="local.imageobjectco.attrib"/>
+        </define>
+      </div>
+    </div>
+  </div>
+
 <!-- Equations ........................ -->
 <!-- This PE provides a mechanism for replacing equation content, -->
 <!-- perhaps adding a new or different model (e.g., MathML) -->
+
   <define name="equation.content">
     <optional>
       <ref name="alt"/>
@@ -4410,110 +5318,140 @@ in the text (no (0) value, the default)
       </oneOrMore>
     </choice>
   </define>
-  <define name="local.equation.attrib">
-    <empty/>
-  </define>
-  <define name="equation.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="equation">
-    <element name="equation">
-      <ref name="equation.attlist"/>
-      <optional>
-        <ref name="blockinfo"/>
-      </optional>
-      <optional>
-        <ref name="formalobject.title.content"/>
-      </optional>
-      <choice>
-        <ref name="informalequation"/>
-        <ref name="equation.content"/>
-      </choice>
-    </element>
-  </define>
-<!--end of equation.element-->
-  <define name="equation.attlist" combine="interleave">
-    <ref name="label.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="equation.role.attrib"/>
-    <ref name="local.equation.attrib"/>
-  </define>
-<!--end of equation.attlist-->
-<!--end of equation.module-->
-  <define name="local.informalequation.attrib">
-    <empty/>
-  </define>
-  <define name="informalequation.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="informalequation">
-    <element name="informalequation">
-      <ref name="informalequation.attlist"/>
-      <optional>
-        <ref name="blockinfo"/>
-      </optional>
-      <ref name="equation.content"/>
-    </element>
-  </define>
-<!--end of informalequation.element-->
-  <define name="informalequation.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="informalequation.role.attrib"/>
-    <ref name="local.informalequation.attrib"/>
-  </define>
-<!--end of informalequation.attlist-->
-<!--end of informalequation.module-->
-  <define name="local.inlineequation.attrib">
-    <empty/>
-  </define>
-  <define name="inlineequation.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="inlineequation">
-    <element name="inlineequation">
-      <ref name="inlineequation.attlist"/>
-      <ref name="inlineequation.content"/>
-    </element>
-  </define>
-<!--end of inlineequation.element-->
-  <define name="inlineequation.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="inlineequation.role.attrib"/>
-    <ref name="local.inlineequation.attrib"/>
-  </define>
-<!--end of inlineequation.attlist-->
-<!--end of inlineequation.module-->
-  <define name="local.alt.attrib">
-    <empty/>
-  </define>
-  <define name="alt.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="alt">
-    <element name="alt">
-      <ref name="alt.attlist"/>
-      <text/>
-    </element>
-  </define>
-<!--end of alt.element-->
-  <define name="alt.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="alt.role.attrib"/>
-    <ref name="local.alt.attrib"/>
-  </define>
-<!--end of alt.attlist-->
-<!--end of alt.module-->
+
+  <div db:name="equation.module">
+    <define name="local.equation.attrib">
+      <empty/>
+    </define>
+    <define name="equation.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="equation">
+      <define name="equation">
+        <element name="equation">
+          <ref name="equation.attlist"/>
+          <optional>
+            <ref name="blockinfo"/>
+          </optional>
+          <optional>
+            <ref name="formalobject.title.content"/>
+          </optional>
+          <choice>
+            <ref name="informalequation"/>
+            <ref name="equation.content"/>
+          </choice>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="equation.attlist">
+      <define name="equation.attlist" combine="interleave">
+        <ref name="label.attrib"/>
+        <ref name="common.attrib"/>
+        <ref name="equation.role.attrib"/>
+        <ref name="local.equation.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="informalequation.module">
+    <define name="local.informalequation.attrib">
+      <empty/>
+    </define>
+    <define name="informalequation.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="informalequation">
+      <define name="informalequation">
+        <element name="informalequation">
+          <ref name="informalequation.attlist"/>
+          <optional>
+            <ref name="blockinfo"/>
+          </optional>
+          <ref name="equation.content"/>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="informalequation.attlist">
+      <define name="informalequation.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="informalequation.role.attrib"/>
+        <ref name="local.informalequation.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="inlineequation.module">
+    <define name="local.inlineequation.attrib">
+      <empty/>
+    </define>
+    <define name="inlineequation.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="inlineequation">
+      <define name="inlineequation">
+        <element name="inlineequation">
+          <ref name="inlineequation.attlist"/>
+          <ref name="inlineequation.content"/>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="inlineequation.attlist">
+      <define name="inlineequation.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="inlineequation.role.attrib"/>
+        <ref name="local.inlineequation.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="alt.module">
+    <define name="local.alt.attrib">
+      <empty/>
+    </define>
+    <define name="alt.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="alt">
+      <define name="alt">
+        <element name="alt">
+          <ref name="alt.attlist"/>
+          <text/>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="alt.attlist">
+      <define name="alt.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="alt.role.attrib"/>
+        <ref name="local.alt.attrib"/>
+      </define>
+    </div>
+  </div>
+
 <!-- Tables ........................... -->
 <!-- Choose a table model. CALS or OASIS XML Exchange -->
+
   <define name="tables.role.attrib">
     <ref name="role.attrib"/>
   </define>
+
 <!-- Add label and role attributes to table and informaltable -->
+
   <define name="bodyatt">
     <ref name="label.attrib"/>
   </define>
+
 <!-- Add common attributes to Table, TGroup, TBody, THead, TFoot, Row,
      EntryTbl, and Entry (and InformalTable element). -->
+
   <define name="secur">
     <ref name="common.attrib"/>
     <ref name="tables.role.attrib"/>
@@ -4522,7 +5460,9 @@ in the text (no (0) value, the default)
     <ref name="bodyatt"/>
     <ref name="secur"/>
   </define>
+
 <!-- Content model for Table. -->
+
   <define name="tbl.table.mdl">
     <optional>
       <ref name="blockinfo"/>
@@ -4546,229 +5486,271 @@ in the text (no (0) value, the default)
       </oneOrMore>
     </choice>
   </define>
+
 <!-- Allow either objects or inlines; beware of REs between elements. -->
+
   <define name="tbl.entry.mdl">
     <choice>
       <ref name="para.char.mix"/>
       <ref name="tabentry.mix"/>
     </choice>
   </define>
+
 <!-- Reference CALS Table Model -->
+
   <include href="calstbl.rng"/>
-<!--end of table.module-->
+
 <!-- Note that InformalTable is dependent on some of the entity
      declarations that customize Table. -->
-  <define name="local.informaltable.attrib">
-    <empty/>
-  </define>
-  <define name="informaltable">
-    <element name="informaltable">
-      <ref name="informaltable.attlist"/>
-      <optional>
-        <ref name="blockinfo"/>
-      </optional>
-      <zeroOrMore>
-        <ref name="textobject"/>
-      </zeroOrMore>
-      <choice>
-        <oneOrMore>
-          <ref name="graphic"/>
-        </oneOrMore>
-        <oneOrMore>
-          <ref name="mediaobject"/>
-        </oneOrMore>
-        <oneOrMore>
-          <ref name="tgroup"/>
-        </oneOrMore>
-      </choice>
-    </element>
-  </define>
-<!--end of informaltable.element-->
+
+  <div db:name="informaltable.module">
+    <define name="local.informaltable.attrib">
+      <empty/>
+    </define>
+
+    <div db:name="informaltable">
+      <define name="informaltable">
+        <element name="informaltable">
+          <ref name="informaltable.attlist"/>
+          <optional>
+            <ref name="blockinfo"/>
+          </optional>
+          <zeroOrMore>
+            <ref name="textobject"/>
+          </zeroOrMore>
+          <choice>
+            <oneOrMore>
+              <ref name="graphic"/>
+            </oneOrMore>
+            <oneOrMore>
+              <ref name="mediaobject"/>
+            </oneOrMore>
+            <oneOrMore>
+              <ref name="tgroup"/>
+            </oneOrMore>
+          </choice>
+        </element>
+      </define>
+    </div>
+
 <!-- Frame, Colsep, and Rowsep must be repeated because
                they are not in entities in the table module. -->
 <!-- includes TabStyle, ToCentry, ShortEntry,
                                Orient, PgWide -->
 <!-- includes Label -->
 <!-- includes common attributes -->
-  <define name="informaltable.attlist" combine="interleave">
-    <optional>
-      <attribute name="frame">
-        <choice>
-          <value>top</value>
-          <value>bottom</value>
-          <value>topbot</value>
-          <value>all</value>
-          <value>sides</value>
-          <value>none</value>
-        </choice>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="colsep">
-        <ref name="yesorno.attvals"/>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="rowsep">
-        <ref name="yesorno.attvals"/>
-      </attribute>
-    </optional>
-    <ref name="common.table.attribs"/>
-    <ref name="tbl.table.att"/>
-    <ref name="local.informaltable.attrib"/>
-  </define>
-<!--end of informaltable.attlist-->
-<!--end of informaltable.module-->
+
+    <div db:name="informaltable.attlist">
+      <define name="informaltable.attlist" combine="interleave">
+        <optional>
+          <attribute name="frame">
+            <choice>
+              <value>top</value>
+              <value>bottom</value>
+              <value>topbot</value>
+              <value>all</value>
+              <value>sides</value>
+              <value>none</value>
+            </choice>
+          </attribute>
+        </optional>
+        <optional>
+          <attribute name="colsep">
+            <ref name="yesorno.attvals"/>
+          </attribute>
+        </optional>
+        <optional>
+          <attribute name="rowsep">
+            <ref name="yesorno.attvals"/>
+          </attribute>
+        </optional>
+        <ref name="common.table.attribs"/>
+        <ref name="tbl.table.att"/>
+        <ref name="local.informaltable.attrib"/>
+      </define>
+    </div>
+  </div>
+
 <!-- ...................................................................... -->
 <!-- Synopses ............................................................. -->
 <!-- Synopsis ......................... -->
-  <define name="local.synopsis.attrib">
-    <empty/>
-  </define>
-  <define name="synopsis.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="synopsis">
-    <element name="synopsis">
-      <ref name="synopsis.attlist"/>
-      <zeroOrMore>
-        <choice>
-          <ref name="para.char.mix"/>
-          <ref name="graphic"/>
-          <ref name="mediaobject"/>
-          <ref name="co"/>
-          <ref name="coref"/>
-          <ref name="textobject"/>
-          <ref name="lineannotation"/>
-        </choice>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of synopsis.element-->
-  <define name="synopsis.attlist" combine="interleave">
-    <ref name="label.attrib"/>
-    <ref name="linespecific.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="synopsis.role.attrib"/>
-    <ref name="local.synopsis.attrib"/>
-  </define>
-<!--end of synopsis.attlist-->
+
+  <div db:name="synopsis.module">
+    <define name="local.synopsis.attrib">
+      <empty/>
+    </define>
+    <define name="synopsis.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="synopsis">
+      <define name="synopsis">
+        <element name="synopsis">
+          <ref name="synopsis.attlist"/>
+          <zeroOrMore>
+            <choice>
+              <ref name="para.char.mix"/>
+              <ref name="graphic"/>
+              <ref name="mediaobject"/>
+              <ref name="co"/>
+              <ref name="coref"/>
+              <ref name="textobject"/>
+              <ref name="lineannotation"/>
+            </choice>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="synopsis.attlist">
+      <define name="synopsis.attlist" combine="interleave">
+        <ref name="label.attrib"/>
+        <ref name="linespecific.attrib"/>
+        <ref name="common.attrib"/>
+        <ref name="synopsis.role.attrib"/>
+        <ref name="local.synopsis.attrib"/>
+      </define>
+    </div>
+
 <!-- LineAnnotation (defined in the Inlines section, below)-->
-<!--end of synopsis.module-->
+
+  </div>
+
 <!-- CmdSynopsis ...................... -->
-  <define name="local.cmdsynopsis.attrib">
-    <empty/>
-  </define>
-  <define name="cmdsynopsis.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="cmdsynopsis">
-    <element name="cmdsynopsis">
-      <ref name="cmdsynopsis.attlist"/>
-      <oneOrMore>
-        <choice>
-          <ref name="command"/>
-          <ref name="arg"/>
-          <ref name="group"/>
-          <ref name="sbr"/>
-        </choice>
-      </oneOrMore>
-      <zeroOrMore>
-        <ref name="synopfragment"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of cmdsynopsis.element-->
+
+  <div db:name="cmdsynopsis.content.module">
+
+    <div db:name="cmdsynopsis.module">
+      <define name="local.cmdsynopsis.attrib">
+        <empty/>
+      </define>
+      <define name="cmdsynopsis.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="cmdsynopsis">
+        <define name="cmdsynopsis">
+          <element name="cmdsynopsis">
+            <ref name="cmdsynopsis.attlist"/>
+            <oneOrMore>
+              <choice>
+                <ref name="command"/>
+                <ref name="arg"/>
+                <ref name="group"/>
+                <ref name="sbr"/>
+              </choice>
+            </oneOrMore>
+            <zeroOrMore>
+              <ref name="synopfragment"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
 <!-- Sepchar: Character that should separate command and all
                top-level arguments; alternate value might be e.g., &Delta; -->
-  <define name="cmdsynopsis.attlist" combine="interleave">
-    <ref name="label.attrib"/>
-    <optional>
-      <attribute name="sepchar" a:defaultValue=" "/>
-    </optional>
-    <optional>
-      <attribute name="cmdlength"/>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="cmdsynopsis.role.attrib"/>
-    <ref name="local.cmdsynopsis.attrib"/>
-  </define>
-<!--end of cmdsynopsis.attlist-->
-<!--end of cmdsynopsis.module-->
-  <define name="local.arg.attrib">
-    <empty/>
-  </define>
-  <define name="arg.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="arg">
-    <element name="arg">
-      <ref name="arg.attlist"/>
-      <zeroOrMore>
-        <choice>
-          <text/>
-          <ref name="arg"/>
-          <ref name="group"/>
-          <ref name="option"/>
-          <ref name="synopfragmentref"/>
-          <ref name="replaceable"/>
-          <ref name="sbr"/>
-        </choice>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of arg.element-->
+
+      <div db:name="cmdsynopsis.attlist">
+        <define name="cmdsynopsis.attlist" combine="interleave">
+          <ref name="label.attrib"/>
+          <optional>
+            <attribute name="sepchar" a:defaultValue=" "/>
+          </optional>
+          <optional>
+            <attribute name="cmdlength"/>
+          </optional>
+          <ref name="common.attrib"/>
+          <ref name="cmdsynopsis.role.attrib"/>
+          <ref name="local.cmdsynopsis.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="arg.module">
+      <define name="local.arg.attrib">
+        <empty/>
+      </define>
+      <define name="arg.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="arg">
+        <define name="arg">
+          <element name="arg">
+            <ref name="arg.attlist"/>
+            <zeroOrMore>
+              <choice>
+                <text/>
+                <ref name="arg"/>
+                <ref name="group"/>
+                <ref name="option"/>
+                <ref name="synopfragmentref"/>
+                <ref name="replaceable"/>
+                <ref name="sbr"/>
+              </choice>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
 <!-- Choice: Whether Arg must be supplied: Opt (optional to
                supply, e.g. [arg]; the default), Req (required to supply,
                e.g. {arg}), or Plain (required to supply, e.g. arg) -->
 <!-- Rep: whether Arg is repeatable: Norepeat (e.g. arg without
                ellipsis; the default), or Repeat (e.g. arg...) -->
-  <define name="arg.attlist" combine="interleave">
-    <optional>
-      <attribute name="choice" a:defaultValue="opt">
-        <choice>
-          <value>opt</value>
-          <value>req</value>
-          <value>plain</value>
-        </choice>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="rep" a:defaultValue="norepeat">
-        <choice>
-          <value>norepeat</value>
-          <value>repeat</value>
-        </choice>
-      </attribute>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="arg.role.attrib"/>
-    <ref name="local.arg.attrib"/>
-  </define>
-<!--end of arg.attlist-->
-<!--end of arg.module-->
-  <define name="local.group.attrib">
-    <empty/>
-  </define>
-  <define name="group.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="group">
-    <element name="group">
-      <ref name="group.attlist"/>
-      <oneOrMore>
-        <choice>
-          <ref name="arg"/>
-          <ref name="group"/>
-          <ref name="option"/>
-          <ref name="synopfragmentref"/>
-          <ref name="replaceable"/>
-          <ref name="sbr"/>
-        </choice>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of group.element-->
+
+      <div db:name="arg.attlist">
+        <define name="arg.attlist" combine="interleave">
+          <optional>
+            <attribute name="choice" a:defaultValue="opt">
+              <choice>
+                <value>opt</value>
+                <value>req</value>
+                <value>plain</value>
+              </choice>
+            </attribute>
+          </optional>
+          <optional>
+            <attribute name="rep" a:defaultValue="norepeat">
+              <choice>
+                <value>norepeat</value>
+                <value>repeat</value>
+              </choice>
+            </attribute>
+          </optional>
+          <ref name="common.attrib"/>
+          <ref name="arg.role.attrib"/>
+          <ref name="local.arg.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="group.module">
+      <define name="local.group.attrib">
+        <empty/>
+      </define>
+      <define name="group.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="group">
+        <define name="group">
+          <element name="group">
+            <ref name="group.attlist"/>
+            <oneOrMore>
+              <choice>
+                <ref name="arg"/>
+                <ref name="group"/>
+                <ref name="option"/>
+                <ref name="synopfragmentref"/>
+                <ref name="replaceable"/>
+                <ref name="sbr"/>
+              </choice>
+            </oneOrMore>
+          </element>
+        </define>
+      </div>
+
 <!-- Choice: Whether Group must be supplied: Opt (optional to
                supply, e.g.  [g1|g2|g3]; the default), Req (required to
                supply, e.g.  {g1|g2|g3}), Plain (required to supply,
@@ -4777,4738 +5759,5938 @@ in the text (no (0) value, the default)
                {{g1|g2|g3}}) -->
 <!-- Rep: whether Group is repeatable: Norepeat (e.g. group
                without ellipsis; the default), or Repeat (e.g. group...) -->
-  <define name="group.attlist" combine="interleave">
-    <optional>
-      <attribute name="choice" a:defaultValue="opt">
-        <choice>
-          <value>opt</value>
-          <value>req</value>
-          <value>plain</value>
-        </choice>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="rep" a:defaultValue="norepeat">
-        <choice>
-          <value>norepeat</value>
-          <value>repeat</value>
-        </choice>
-      </attribute>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="group.role.attrib"/>
-    <ref name="local.group.attrib"/>
-  </define>
-<!--end of group.attlist-->
-<!--end of group.module-->
-  <define name="local.sbr.attrib">
-    <empty/>
-  </define>
+
+      <div db:name="group.attlist">
+        <define name="group.attlist" combine="interleave">
+          <optional>
+            <attribute name="choice" a:defaultValue="opt">
+              <choice>
+                <value>opt</value>
+                <value>req</value>
+                <value>plain</value>
+              </choice>
+            </attribute>
+          </optional>
+          <optional>
+            <attribute name="rep" a:defaultValue="norepeat">
+              <choice>
+                <value>norepeat</value>
+                <value>repeat</value>
+              </choice>
+            </attribute>
+          </optional>
+          <ref name="common.attrib"/>
+          <ref name="group.role.attrib"/>
+          <ref name="local.group.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="sbr.module">
+      <define name="local.sbr.attrib">
+        <empty/>
+      </define>
+
 <!-- Synopsis break -->
-  <define name="sbr.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="sbr">
-    <element name="sbr">
-      <ref name="sbr.attlist"/>
-      <empty/>
-    </element>
-  </define>
-<!--end of sbr.element-->
-  <define name="sbr.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="sbr.role.attrib"/>
-    <ref name="local.sbr.attrib"/>
-  </define>
-<!--end of sbr.attlist-->
-<!--end of sbr.module-->
-  <define name="local.synopfragmentref.attrib">
-    <empty/>
-  </define>
-  <define name="synopfragmentref.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="synopfragmentref">
-    <element name="synopfragmentref">
-      <ref name="synopfragmentref.attlist"/>
-      <text/>
-    </element>
-  </define>
-<!--end of synopfragmentref.element-->
+
+      <define name="sbr.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="sbr">
+        <define name="sbr">
+          <element name="sbr">
+            <ref name="sbr.attlist"/>
+            <empty/>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="sbr.attlist">
+        <define name="sbr.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="sbr.role.attrib"/>
+          <ref name="local.sbr.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="synopfragmentref.module">
+      <define name="local.synopfragmentref.attrib">
+        <empty/>
+      </define>
+      <define name="synopfragmentref.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="synopfragmentref">
+        <define name="synopfragmentref">
+          <element name="synopfragmentref">
+            <ref name="synopfragmentref.attlist"/>
+            <text/>
+          </element>
+        </define>
+      </div>
+
 <!-- to SynopFragment of complex synopsis
                        material for separate referencing -->
-  <define name="synopfragmentref.attlist" combine="interleave">
-    <ref name="linkendreq.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="synopfragmentref.role.attrib"/>
-    <ref name="local.synopfragmentref.attrib"/>
-  </define>
-<!--end of synopfragmentref.attlist-->
-<!--end of synopfragmentref.module-->
-  <define name="local.synopfragment.attrib">
-    <empty/>
-  </define>
-  <define name="synopfragment.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="synopfragment">
-    <element name="synopfragment">
-      <ref name="synopfragment.attlist"/>
-      <oneOrMore>
-        <choice>
-          <ref name="arg"/>
-          <ref name="group"/>
-        </choice>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of synopfragment.element-->
-  <define name="synopfragment.attlist" combine="interleave">
-    <ref name="idreq.common.attrib"/>
-    <ref name="synopfragment.role.attrib"/>
-    <ref name="local.synopfragment.attrib"/>
-  </define>
-<!--end of synopfragment.attlist-->
-<!--end of synopfragment.module-->
+
+      <div db:name="synopfragmentref.attlist">
+        <define name="synopfragmentref.attlist" combine="interleave">
+          <ref name="linkendreq.attrib"/>
+          <ref name="common.attrib"/>
+          <ref name="synopfragmentref.role.attrib"/>
+          <ref name="local.synopfragmentref.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="synopfragment.module">
+      <define name="local.synopfragment.attrib">
+        <empty/>
+      </define>
+      <define name="synopfragment.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="synopfragment">
+        <define name="synopfragment">
+          <element name="synopfragment">
+            <ref name="synopfragment.attlist"/>
+            <oneOrMore>
+              <choice>
+                <ref name="arg"/>
+                <ref name="group"/>
+              </choice>
+            </oneOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="synopfragment.attlist">
+        <define name="synopfragment.attlist" combine="interleave">
+          <ref name="idreq.common.attrib"/>
+          <ref name="synopfragment.role.attrib"/>
+          <ref name="local.synopfragment.attrib"/>
+        </define>
+      </div>
+    </div>
+
 <!-- Command (defined in the Inlines section, below)-->
 <!-- Option (defined in the Inlines section, below)-->
 <!-- Replaceable (defined in the Inlines section, below)-->
-<!--end of cmdsynopsis.content.module-->
+
+  </div>
+
 <!-- FuncSynopsis ..................... -->
-  <define name="local.funcsynopsis.attrib">
-    <empty/>
-  </define>
-  <define name="funcsynopsis.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="funcsynopsis">
-    <element name="funcsynopsis">
-      <ref name="funcsynopsis.attlist"/>
-      <oneOrMore>
-        <choice>
-          <ref name="funcsynopsisinfo"/>
-          <ref name="funcprototype"/>
-        </choice>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of funcsynopsis.element-->
-  <define name="funcsynopsis.attlist" combine="interleave">
-    <ref name="label.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="funcsynopsis.role.attrib"/>
-    <ref name="local.funcsynopsis.attrib"/>
-  </define>
-<!--end of funcsynopsis.attlist-->
-<!--end of funcsynopsis.module-->
-  <define name="local.funcsynopsisinfo.attrib">
-    <empty/>
-  </define>
-  <define name="funcsynopsisinfo.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="funcsynopsisinfo">
-    <element name="funcsynopsisinfo">
-      <ref name="funcsynopsisinfo.attlist"/>
-      <zeroOrMore>
-        <choice>
-          <ref name="cptr.char.mix"/>
-          <ref name="textobject"/>
-          <ref name="lineannotation"/>
-        </choice>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of funcsynopsisinfo.element-->
-  <define name="funcsynopsisinfo.attlist" combine="interleave">
-    <ref name="linespecific.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="funcsynopsisinfo.role.attrib"/>
-    <ref name="local.funcsynopsisinfo.attrib"/>
-  </define>
-<!--end of funcsynopsisinfo.attlist-->
-<!--end of funcsynopsisinfo.module-->
-  <define name="local.funcprototype.attrib">
-    <empty/>
-  </define>
-  <define name="funcprototype.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="funcprototype">
-    <element name="funcprototype">
-      <ref name="funcprototype.attlist"/>
-      <ref name="funcdef"/>
-      <choice>
-        <ref name="void"/>
-        <ref name="varargs"/>
-        <oneOrMore>
-          <ref name="paramdef"/>
-        </oneOrMore>
-      </choice>
-    </element>
-  </define>
-<!--end of funcprototype.element-->
-  <define name="funcprototype.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="funcprototype.role.attrib"/>
-    <ref name="local.funcprototype.attrib"/>
-  </define>
-<!--end of funcprototype.attlist-->
-<!--end of funcprototype.module-->
-  <define name="local.funcdef.attrib">
-    <empty/>
-  </define>
-  <define name="funcdef.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="funcdef">
-    <element name="funcdef">
-      <ref name="funcdef.attlist"/>
-      <zeroOrMore>
-        <choice>
-          <text/>
-          <ref name="type"/>
-          <ref name="replaceable"/>
-          <ref name="function"/>
-        </choice>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of funcdef.element-->
-  <define name="funcdef.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="funcdef.role.attrib"/>
-    <ref name="local.funcdef.attrib"/>
-  </define>
-<!--end of funcdef.attlist-->
-<!--end of funcdef.module-->
-  <define name="local.void.attrib">
-    <empty/>
-  </define>
-  <define name="void.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="void">
-    <element name="void">
-      <ref name="void.attlist"/>
-      <empty/>
-    </element>
-  </define>
-<!--end of void.element-->
-  <define name="void.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="void.role.attrib"/>
-    <ref name="local.void.attrib"/>
-  </define>
-<!--end of void.attlist-->
-<!--end of void.module-->
-  <define name="local.varargs.attrib">
-    <empty/>
-  </define>
-  <define name="varargs.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="varargs">
-    <element name="varargs">
-      <ref name="varargs.attlist"/>
-      <empty/>
-    </element>
-  </define>
-<!--end of varargs.element-->
-  <define name="varargs.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="varargs.role.attrib"/>
-    <ref name="local.varargs.attrib"/>
-  </define>
-<!--end of varargs.attlist-->
-<!--end of varargs.module-->
+
+  <div db:name="funcsynopsis.content.module">
+
+    <div db:name="funcsynopsis.module">
+      <define name="local.funcsynopsis.attrib">
+        <empty/>
+      </define>
+      <define name="funcsynopsis.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="funcsynopsis">
+        <define name="funcsynopsis">
+          <element name="funcsynopsis">
+            <ref name="funcsynopsis.attlist"/>
+            <oneOrMore>
+              <choice>
+                <ref name="funcsynopsisinfo"/>
+                <ref name="funcprototype"/>
+              </choice>
+            </oneOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="funcsynopsis.attlist">
+        <define name="funcsynopsis.attlist" combine="interleave">
+          <ref name="label.attrib"/>
+          <ref name="common.attrib"/>
+          <ref name="funcsynopsis.role.attrib"/>
+          <ref name="local.funcsynopsis.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="funcsynopsisinfo.module">
+      <define name="local.funcsynopsisinfo.attrib">
+        <empty/>
+      </define>
+      <define name="funcsynopsisinfo.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="funcsynopsisinfo">
+        <define name="funcsynopsisinfo">
+          <element name="funcsynopsisinfo">
+            <ref name="funcsynopsisinfo.attlist"/>
+            <zeroOrMore>
+              <choice>
+                <ref name="cptr.char.mix"/>
+                <ref name="textobject"/>
+                <ref name="lineannotation"/>
+              </choice>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="funcsynopsisinfo.attlist">
+        <define name="funcsynopsisinfo.attlist" combine="interleave">
+          <ref name="linespecific.attrib"/>
+          <ref name="common.attrib"/>
+          <ref name="funcsynopsisinfo.role.attrib"/>
+          <ref name="local.funcsynopsisinfo.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="funcprototype.module">
+      <define name="local.funcprototype.attrib">
+        <empty/>
+      </define>
+      <define name="funcprototype.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="funcprototype">
+        <define name="funcprototype">
+          <element name="funcprototype">
+            <ref name="funcprototype.attlist"/>
+            <ref name="funcdef"/>
+            <choice>
+              <ref name="void"/>
+              <ref name="varargs"/>
+              <oneOrMore>
+                <ref name="paramdef"/>
+              </oneOrMore>
+            </choice>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="funcprototype.attlist">
+        <define name="funcprototype.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="funcprototype.role.attrib"/>
+          <ref name="local.funcprototype.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="funcdef.module">
+      <define name="local.funcdef.attrib">
+        <empty/>
+      </define>
+      <define name="funcdef.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="funcdef">
+        <define name="funcdef">
+          <element name="funcdef">
+            <ref name="funcdef.attlist"/>
+            <zeroOrMore>
+              <choice>
+                <text/>
+                <ref name="type"/>
+                <ref name="replaceable"/>
+                <ref name="function"/>
+              </choice>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="funcdef.attlist">
+        <define name="funcdef.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="funcdef.role.attrib"/>
+          <ref name="local.funcdef.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="void.module">
+      <define name="local.void.attrib">
+        <empty/>
+      </define>
+      <define name="void.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="void">
+        <define name="void">
+          <element name="void">
+            <ref name="void.attlist"/>
+            <empty/>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="void.attlist">
+        <define name="void.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="void.role.attrib"/>
+          <ref name="local.void.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="varargs.module">
+      <define name="local.varargs.attrib">
+        <empty/>
+      </define>
+      <define name="varargs.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="varargs">
+        <define name="varargs">
+          <element name="varargs">
+            <ref name="varargs.attlist"/>
+            <empty/>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="varargs.attlist">
+        <define name="varargs.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="varargs.role.attrib"/>
+          <ref name="local.varargs.attrib"/>
+        </define>
+      </div>
+    </div>
+
 <!-- Processing assumes that only one Parameter will appear in a
      ParamDef, and that FuncParams will be used at most once, for
      providing information on the "inner parameters" for parameters that
      are pointers to functions. -->
-  <define name="local.paramdef.attrib">
-    <empty/>
-  </define>
-  <define name="paramdef.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="paramdef">
-    <element name="paramdef">
-      <ref name="paramdef.attlist"/>
-      <zeroOrMore>
-        <choice>
-          <text/>
-          <ref name="type"/>
-          <ref name="replaceable"/>
-          <ref name="parameter"/>
-          <ref name="funcparams"/>
-        </choice>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of paramdef.element-->
-  <define name="paramdef.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="paramdef.role.attrib"/>
-    <ref name="local.paramdef.attrib"/>
-  </define>
-<!--end of paramdef.attlist-->
-<!--end of paramdef.module-->
-  <define name="local.funcparams.attrib">
-    <empty/>
-  </define>
-  <define name="funcparams.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="funcparams">
-    <element name="funcparams">
-      <ref name="funcparams.attlist"/>
-      <zeroOrMore>
-        <ref name="cptr.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of funcparams.element-->
-  <define name="funcparams.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="funcparams.role.attrib"/>
-    <ref name="local.funcparams.attrib"/>
-  </define>
-<!--end of funcparams.attlist-->
-<!--end of funcparams.module-->
+
+    <div db:name="paramdef.module">
+      <define name="local.paramdef.attrib">
+        <empty/>
+      </define>
+      <define name="paramdef.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="paramdef">
+        <define name="paramdef">
+          <element name="paramdef">
+            <ref name="paramdef.attlist"/>
+            <zeroOrMore>
+              <choice>
+                <text/>
+                <ref name="type"/>
+                <ref name="replaceable"/>
+                <ref name="parameter"/>
+                <ref name="funcparams"/>
+              </choice>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="paramdef.attlist">
+        <define name="paramdef.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="paramdef.role.attrib"/>
+          <ref name="local.paramdef.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="funcparams.module">
+      <define name="local.funcparams.attrib">
+        <empty/>
+      </define>
+      <define name="funcparams.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="funcparams">
+        <define name="funcparams">
+          <element name="funcparams">
+            <ref name="funcparams.attlist"/>
+            <zeroOrMore>
+              <ref name="cptr.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="funcparams.attlist">
+        <define name="funcparams.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="funcparams.role.attrib"/>
+          <ref name="local.funcparams.attrib"/>
+        </define>
+      </div>
+    </div>
+
 <!-- LineAnnotation (defined in the Inlines section, below)-->
 <!-- Replaceable (defined in the Inlines section, below)-->
 <!-- Function (defined in the Inlines section, below)-->
 <!-- Parameter (defined in the Inlines section, below)-->
-<!--end of funcsynopsis.content.module-->
+
+  </div>
+
 <!-- ClassSynopsis ..................... -->
-  <define name="local.classsynopsis.attrib">
-    <empty/>
-  </define>
-  <define name="classsynopsis.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="classsynopsis">
-    <element name="classsynopsis">
-      <ref name="classsynopsis.attlist"/>
-      <oneOrMore>
-        <choice>
-          <ref name="ooclass"/>
-          <ref name="oointerface"/>
-          <ref name="ooexception"/>
-        </choice>
-      </oneOrMore>
-      <zeroOrMore>
-        <choice>
-          <ref name="classsynopsisinfo"/>
-          <ref name="fieldsynopsis"/>
-          <ref name="method.synop.class"/>
-        </choice>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of classsynopsis.element-->
-  <define name="classsynopsis.attlist" combine="interleave">
-    <optional>
-      <attribute name="language"/>
-    </optional>
-    <optional>
-      <attribute name="class" a:defaultValue="class">
-        <choice>
-          <value>class</value>
-          <value>interface</value>
-        </choice>
-      </attribute>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="classsynopsis.role.attrib"/>
-    <ref name="local.classsynopsis.attrib"/>
-  </define>
-<!--end of classsynopsis.attlist-->
-<!--end of classsynopsis.module-->
-  <define name="local.classsynopsisinfo.attrib">
-    <empty/>
-  </define>
-  <define name="classsynopsisinfo.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="classsynopsisinfo">
-    <element name="classsynopsisinfo">
-      <ref name="classsynopsisinfo.attlist"/>
-      <zeroOrMore>
-        <choice>
-          <ref name="cptr.char.mix"/>
-          <ref name="textobject"/>
-          <ref name="lineannotation"/>
-        </choice>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of classsynopsisinfo.element-->
-  <define name="classsynopsisinfo.attlist" combine="interleave">
-    <ref name="linespecific.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="classsynopsisinfo.role.attrib"/>
-    <ref name="local.classsynopsisinfo.attrib"/>
-  </define>
-<!--end of classsynopsisinfo.attlist-->
-<!--end of classsynopsisinfo.module-->
-  <define name="local.ooclass.attrib">
-    <empty/>
-  </define>
-  <define name="ooclass.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="ooclass">
-    <element name="ooclass">
-      <ref name="ooclass.attlist"/>
-      <zeroOrMore>
-        <ref name="modifier"/>
-      </zeroOrMore>
-      <ref name="classname"/>
-    </element>
-  </define>
-<!--end of ooclass.element-->
-  <define name="ooclass.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="ooclass.role.attrib"/>
-    <ref name="local.ooclass.attrib"/>
-  </define>
-<!--end of ooclass.attlist-->
-<!--end of ooclass.module-->
-  <define name="local.oointerface.attrib">
-    <empty/>
-  </define>
-  <define name="oointerface.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="oointerface">
-    <element name="oointerface">
-      <ref name="oointerface.attlist"/>
-      <zeroOrMore>
-        <ref name="modifier"/>
-      </zeroOrMore>
-      <ref name="interfacename"/>
-    </element>
-  </define>
-<!--end of oointerface.element-->
-  <define name="oointerface.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="oointerface.role.attrib"/>
-    <ref name="local.oointerface.attrib"/>
-  </define>
-<!--end of oointerface.attlist-->
-<!--end of oointerface.module-->
-  <define name="local.ooexception.attrib">
-    <empty/>
-  </define>
-  <define name="ooexception.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="ooexception">
-    <element name="ooexception">
-      <ref name="ooexception.attlist"/>
-      <zeroOrMore>
-        <ref name="modifier"/>
-      </zeroOrMore>
-      <ref name="exceptionname"/>
-    </element>
-  </define>
-<!--end of ooexception.element-->
-  <define name="ooexception.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="ooexception.role.attrib"/>
-    <ref name="local.ooexception.attrib"/>
-  </define>
-<!--end of ooexception.attlist-->
-<!--end of ooexception.module-->
-  <define name="local.modifier.attrib">
-    <empty/>
-  </define>
-  <define name="modifier.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="modifier">
-    <element name="modifier">
-      <ref name="modifier.attlist"/>
-      <zeroOrMore>
-        <ref name="smallcptr.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of modifier.element-->
-  <define name="modifier.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="modifier.role.attrib"/>
-    <ref name="local.modifier.attrib"/>
-  </define>
-<!--end of modifier.attlist-->
-<!--end of modifier.module-->
-  <define name="local.interfacename.attrib">
-    <empty/>
-  </define>
-  <define name="interfacename.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="interfacename">
-    <element name="interfacename">
-      <ref name="interfacename.attlist"/>
-      <zeroOrMore>
-        <ref name="cptr.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of interfacename.element-->
-  <define name="interfacename.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="interfacename.role.attrib"/>
-    <ref name="local.interfacename.attrib"/>
-  </define>
-<!--end of interfacename.attlist-->
-<!--end of interfacename.module-->
-  <define name="local.exceptionname.attrib">
-    <empty/>
-  </define>
-  <define name="exceptionname.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="exceptionname">
-    <element name="exceptionname">
-      <ref name="exceptionname.attlist"/>
-      <zeroOrMore>
-        <ref name="smallcptr.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of exceptionname.element-->
-  <define name="exceptionname.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="exceptionname.role.attrib"/>
-    <ref name="local.exceptionname.attrib"/>
-  </define>
-<!--end of exceptionname.attlist-->
-<!--end of exceptionname.module-->
-  <define name="local.fieldsynopsis.attrib">
-    <empty/>
-  </define>
-  <define name="fieldsynopsis.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="fieldsynopsis">
-    <element name="fieldsynopsis">
-      <ref name="fieldsynopsis.attlist"/>
-      <zeroOrMore>
-        <ref name="modifier"/>
-      </zeroOrMore>
-      <optional>
-        <ref name="type"/>
-      </optional>
-      <ref name="varname"/>
-      <optional>
-        <ref name="initializer"/>
-      </optional>
-    </element>
-  </define>
-<!--end of fieldsynopsis.element-->
-  <define name="fieldsynopsis.attlist" combine="interleave">
-    <optional>
-      <attribute name="language"/>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="fieldsynopsis.role.attrib"/>
-    <ref name="local.fieldsynopsis.attrib"/>
-  </define>
-<!--end of fieldsynopsis.attlist-->
-<!--end of fieldsynopsis.module-->
-  <define name="local.initializer.attrib">
-    <empty/>
-  </define>
-  <define name="initializer.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="initializer">
-    <element name="initializer">
-      <ref name="initializer.attlist"/>
-      <zeroOrMore>
-        <ref name="smallcptr.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of initializer.element-->
-  <define name="initializer.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="initializer.role.attrib"/>
-    <ref name="local.initializer.attrib"/>
-  </define>
-<!--end of initializer.attlist-->
-<!--end of initializer.module-->
-  <define name="local.constructorsynopsis.attrib">
-    <empty/>
-  </define>
-  <define name="constructorsynopsis.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="constructorsynopsis">
-    <element name="constructorsynopsis">
-      <ref name="constructorsynopsis.attlist"/>
-      <zeroOrMore>
-        <ref name="modifier"/>
-      </zeroOrMore>
-      <optional>
-        <ref name="methodname"/>
-      </optional>
-      <choice>
-        <oneOrMore>
-          <ref name="methodparam"/>
-        </oneOrMore>
-        <ref name="void"/>
-      </choice>
-      <zeroOrMore>
-        <ref name="exceptionname"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of constructorsynopsis.element-->
-  <define name="constructorsynopsis.attlist" combine="interleave">
-    <optional>
-      <attribute name="language"/>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="constructorsynopsis.role.attrib"/>
-    <ref name="local.constructorsynopsis.attrib"/>
-  </define>
-<!--end of constructorsynopsis.attlist-->
-<!--end of constructorsynopsis.module-->
-  <define name="local.destructorsynopsis.attrib">
-    <empty/>
-  </define>
-  <define name="destructorsynopsis.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="destructorsynopsis">
-    <element name="destructorsynopsis">
-      <ref name="destructorsynopsis.attlist"/>
-      <zeroOrMore>
-        <ref name="modifier"/>
-      </zeroOrMore>
-      <optional>
-        <ref name="methodname"/>
-      </optional>
-      <choice>
-        <oneOrMore>
-          <ref name="methodparam"/>
-        </oneOrMore>
-        <ref name="void"/>
-      </choice>
-      <zeroOrMore>
-        <ref name="exceptionname"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of destructorsynopsis.element-->
-  <define name="destructorsynopsis.attlist" combine="interleave">
-    <optional>
-      <attribute name="language"/>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="destructorsynopsis.role.attrib"/>
-    <ref name="local.destructorsynopsis.attrib"/>
-  </define>
-<!--end of destructorsynopsis.attlist-->
-<!--end of destructorsynopsis.module-->
-  <define name="local.methodsynopsis.attrib">
-    <empty/>
-  </define>
-  <define name="methodsynopsis.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="methodsynopsis">
-    <element name="methodsynopsis">
-      <ref name="methodsynopsis.attlist"/>
-      <zeroOrMore>
-        <ref name="modifier"/>
-      </zeroOrMore>
-      <optional>
-        <choice>
-          <ref name="type"/>
-          <ref name="void"/>
-        </choice>
-      </optional>
-      <ref name="methodname"/>
-      <choice>
-        <oneOrMore>
-          <ref name="methodparam"/>
-        </oneOrMore>
-        <ref name="void"/>
-      </choice>
-      <zeroOrMore>
-        <ref name="exceptionname"/>
-      </zeroOrMore>
-      <zeroOrMore>
-        <ref name="modifier"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of methodsynopsis.element-->
-  <define name="methodsynopsis.attlist" combine="interleave">
-    <optional>
-      <attribute name="language"/>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="methodsynopsis.role.attrib"/>
-    <ref name="local.methodsynopsis.attrib"/>
-  </define>
-<!--end of methodsynopsis.attlist-->
-<!--end of methodsynopsis.module-->
-  <define name="local.methodname.attrib">
-    <empty/>
-  </define>
-  <define name="methodname.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="methodname">
-    <element name="methodname">
-      <ref name="methodname.attlist"/>
-      <zeroOrMore>
-        <ref name="smallcptr.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of methodname.element-->
-  <define name="methodname.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="methodname.role.attrib"/>
-    <ref name="local.methodname.attrib"/>
-  </define>
-<!--end of methodname.attlist-->
-<!--end of methodname.module-->
-  <define name="local.methodparam.attrib">
-    <empty/>
-  </define>
-  <define name="methodparam.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="methodparam">
-    <element name="methodparam">
-      <ref name="methodparam.attlist"/>
-      <zeroOrMore>
-        <ref name="modifier"/>
-      </zeroOrMore>
-      <optional>
-        <ref name="type"/>
-      </optional>
-      <choice>
-        <group>
-          <ref name="parameter"/>
+
+  <div db:name="classsynopsis.content.module">
+
+    <div db:name="classsynopsis.module">
+      <define name="local.classsynopsis.attrib">
+        <empty/>
+      </define>
+      <define name="classsynopsis.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="classsynopsis">
+        <define name="classsynopsis">
+          <element name="classsynopsis">
+            <ref name="classsynopsis.attlist"/>
+            <oneOrMore>
+              <choice>
+                <ref name="ooclass"/>
+                <ref name="oointerface"/>
+                <ref name="ooexception"/>
+              </choice>
+            </oneOrMore>
+            <zeroOrMore>
+              <choice>
+                <ref name="classsynopsisinfo"/>
+                <ref name="fieldsynopsis"/>
+                <ref name="method.synop.class"/>
+              </choice>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="classsynopsis.attlist">
+        <define name="classsynopsis.attlist" combine="interleave">
           <optional>
-            <ref name="initializer"/>
+            <attribute name="language"/>
           </optional>
-        </group>
-        <ref name="funcparams"/>
-      </choice>
-      <zeroOrMore>
-        <ref name="modifier"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of methodparam.element-->
-  <define name="methodparam.attlist" combine="interleave">
-    <optional>
-      <attribute name="choice" a:defaultValue="req">
-        <choice>
-          <value>opt</value>
-          <value>req</value>
-          <value>plain</value>
-        </choice>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="rep" a:defaultValue="norepeat">
-        <choice>
-          <value>norepeat</value>
-          <value>repeat</value>
-        </choice>
-      </attribute>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="methodparam.role.attrib"/>
-    <ref name="local.methodparam.attrib"/>
-  </define>
-<!--end of methodparam.attlist-->
-<!--end of methodparam.module-->
-<!--end of classsynopsis.content.module-->
-<!-- ...................................................................... -->
-<!-- Document information entities and elements ........................... -->
-<!-- The document information elements include some elements that are
-     currently used only in the document hierarchy module. They are
-     defined here so that they will be available for use in customized
-     document hierarchies. -->
-<!-- .................................. -->
-<!-- Ackno ............................ -->
-  <define name="local.ackno.attrib">
-    <empty/>
-  </define>
-  <define name="ackno.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="ackno">
-    <element name="ackno">
-      <ref name="ackno.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of ackno.element-->
-  <define name="ackno.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="ackno.role.attrib"/>
-    <ref name="local.ackno.attrib"/>
-  </define>
-<!--end of ackno.attlist-->
-<!--end of ackno.module-->
-<!-- Address .......................... -->
-  <define name="local.address.attrib">
-    <empty/>
-  </define>
-  <define name="address.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="address">
-    <element name="address">
-      <ref name="address.attlist"/>
-      <zeroOrMore>
-        <choice>
-          <text/>
-          <ref name="personname"/>
-          <ref name="person.ident.mix"/>
-          <ref name="street"/>
-          <ref name="pob"/>
-          <ref name="postcode"/>
-          <ref name="city"/>
-          <ref name="state"/>
-          <ref name="country"/>
-          <ref name="phone"/>
-          <ref name="fax"/>
-          <ref name="email"/>
-          <ref name="otheraddr"/>
-        </choice>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of address.element-->
-  <define name="address.attlist" combine="interleave">
-    <ref name="linespecific.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="address.role.attrib"/>
-    <ref name="local.address.attrib"/>
-  </define>
-<!--end of address.attlist-->
-<!--end of address.module-->
-  <define name="local.street.attrib">
-    <empty/>
-  </define>
-  <define name="street.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="street">
-    <element name="street">
-      <ref name="street.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of street.element-->
-  <define name="street.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="street.role.attrib"/>
-    <ref name="local.street.attrib"/>
-  </define>
-<!--end of street.attlist-->
-<!--end of street.module-->
-  <define name="local.pob.attrib">
-    <empty/>
-  </define>
-  <define name="pob.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="pob">
-    <element name="pob">
-      <ref name="pob.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of pob.element-->
-  <define name="pob.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="pob.role.attrib"/>
-    <ref name="local.pob.attrib"/>
-  </define>
-<!--end of pob.attlist-->
-<!--end of pob.module-->
-  <define name="local.postcode.attrib">
-    <empty/>
-  </define>
-  <define name="postcode.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="postcode">
-    <element name="postcode">
-      <ref name="postcode.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of postcode.element-->
-  <define name="postcode.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="postcode.role.attrib"/>
-    <ref name="local.postcode.attrib"/>
-  </define>
-<!--end of postcode.attlist-->
-<!--end of postcode.module-->
-  <define name="local.city.attrib">
-    <empty/>
-  </define>
-  <define name="city.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="city">
-    <element name="city">
-      <ref name="city.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of city.element-->
-  <define name="city.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="city.role.attrib"/>
-    <ref name="local.city.attrib"/>
-  </define>
-<!--end of city.attlist-->
-<!--end of city.module-->
-  <define name="local.state.attrib">
-    <empty/>
-  </define>
-  <define name="state.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="state">
-    <element name="state">
-      <ref name="state.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of state.element-->
-  <define name="state.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="state.role.attrib"/>
-    <ref name="local.state.attrib"/>
-  </define>
-<!--end of state.attlist-->
-<!--end of state.module-->
-  <define name="local.country.attrib">
-    <empty/>
-  </define>
-  <define name="country.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="country">
-    <element name="country">
-      <ref name="country.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of country.element-->
-  <define name="country.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="country.role.attrib"/>
-    <ref name="local.country.attrib"/>
-  </define>
-<!--end of country.attlist-->
-<!--end of country.module-->
-  <define name="local.phone.attrib">
-    <empty/>
-  </define>
-  <define name="phone.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="phone">
-    <element name="phone">
-      <ref name="phone.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of phone.element-->
-  <define name="phone.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="phone.role.attrib"/>
-    <ref name="local.phone.attrib"/>
-  </define>
-<!--end of phone.attlist-->
-<!--end of phone.module-->
-  <define name="local.fax.attrib">
-    <empty/>
-  </define>
-  <define name="fax.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="fax">
-    <element name="fax">
-      <ref name="fax.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of fax.element-->
-  <define name="fax.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="fax.role.attrib"/>
-    <ref name="local.fax.attrib"/>
-  </define>
-<!--end of fax.attlist-->
-<!--end of fax.module-->
+          <optional>
+            <attribute name="class" a:defaultValue="class">
+              <choice>
+                <value>class</value>
+                <value>interface</value>
+              </choice>
+            </attribute>
+          </optional>
+          <ref name="common.attrib"/>
+          <ref name="classsynopsis.role.attrib"/>
+          <ref name="local.classsynopsis.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="classsynopsisinfo.module">
+      <define name="local.classsynopsisinfo.attrib">
+        <empty/>
+      </define>
+      <define name="classsynopsisinfo.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="classsynopsisinfo">
+        <define name="classsynopsisinfo">
+          <element name="classsynopsisinfo">
+            <ref name="classsynopsisinfo.attlist"/>
+            <zeroOrMore>
+              <choice>
+                <ref name="cptr.char.mix"/>
+                <ref name="textobject"/>
+                <ref name="lineannotation"/>
+              </choice>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="classsynopsisinfo.attlist">
+        <define name="classsynopsisinfo.attlist" combine="interleave">
+          <ref name="linespecific.attrib"/>
+          <ref name="common.attrib"/>
+          <ref name="classsynopsisinfo.role.attrib"/>
+          <ref name="local.classsynopsisinfo.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="ooclass.module">
+      <define name="local.ooclass.attrib">
+        <empty/>
+      </define>
+      <define name="ooclass.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="ooclass">
+        <define name="ooclass">
+          <element name="ooclass">
+            <ref name="ooclass.attlist"/>
+            <zeroOrMore>
+              <ref name="modifier"/>
+            </zeroOrMore>
+            <ref name="classname"/>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="ooclass.attlist">
+        <define name="ooclass.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="ooclass.role.attrib"/>
+          <ref name="local.ooclass.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="oointerface.module">
+      <define name="local.oointerface.attrib">
+        <empty/>
+      </define>
+      <define name="oointerface.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="oointerface">
+        <define name="oointerface">
+          <element name="oointerface">
+            <ref name="oointerface.attlist"/>
+            <zeroOrMore>
+              <ref name="modifier"/>
+            </zeroOrMore>
+            <ref name="interfacename"/>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="oointerface.attlist">
+        <define name="oointerface.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="oointerface.role.attrib"/>
+          <ref name="local.oointerface.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="ooexception.module">
+      <define name="local.ooexception.attrib">
+        <empty/>
+      </define>
+      <define name="ooexception.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="ooexception">
+        <define name="ooexception">
+          <element name="ooexception">
+            <ref name="ooexception.attlist"/>
+            <zeroOrMore>
+              <ref name="modifier"/>
+            </zeroOrMore>
+            <ref name="exceptionname"/>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="ooexception.attlist">
+        <define name="ooexception.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="ooexception.role.attrib"/>
+          <ref name="local.ooexception.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="modifier.module">
+      <define name="local.modifier.attrib">
+        <empty/>
+      </define>
+      <define name="modifier.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="modifier">
+        <define name="modifier">
+          <element name="modifier">
+            <ref name="modifier.attlist"/>
+            <zeroOrMore>
+              <ref name="smallcptr.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="modifier.attlist">
+        <define name="modifier.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="modifier.role.attrib"/>
+          <ref name="local.modifier.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="interfacename.module">
+      <define name="local.interfacename.attrib">
+        <empty/>
+      </define>
+      <define name="interfacename.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="interfacename">
+        <define name="interfacename">
+          <element name="interfacename">
+            <ref name="interfacename.attlist"/>
+            <zeroOrMore>
+              <ref name="cptr.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="interfacename.attlist">
+        <define name="interfacename.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="interfacename.role.attrib"/>
+          <ref name="local.interfacename.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="exceptionname.module">
+      <define name="local.exceptionname.attrib">
+        <empty/>
+      </define>
+      <define name="exceptionname.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="exceptionname">
+        <define name="exceptionname">
+          <element name="exceptionname">
+            <ref name="exceptionname.attlist"/>
+            <zeroOrMore>
+              <ref name="smallcptr.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="exceptionname.attlist">
+        <define name="exceptionname.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="exceptionname.role.attrib"/>
+          <ref name="local.exceptionname.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="fieldsynopsis.module">
+      <define name="local.fieldsynopsis.attrib">
+        <empty/>
+      </define>
+      <define name="fieldsynopsis.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="fieldsynopsis">
+        <define name="fieldsynopsis">
+          <element name="fieldsynopsis">
+            <ref name="fieldsynopsis.attlist"/>
+            <zeroOrMore>
+              <ref name="modifier"/>
+            </zeroOrMore>
+            <optional>
+              <ref name="type"/>
+            </optional>
+            <ref name="varname"/>
+            <optional>
+              <ref name="initializer"/>
+            </optional>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="fieldsynopsis.attlist">
+        <define name="fieldsynopsis.attlist" combine="interleave">
+          <optional>
+            <attribute name="language"/>
+          </optional>
+          <ref name="common.attrib"/>
+          <ref name="fieldsynopsis.role.attrib"/>
+          <ref name="local.fieldsynopsis.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="initializer.module">
+      <define name="local.initializer.attrib">
+        <empty/>
+      </define>
+      <define name="initializer.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="initializer">
+        <define name="initializer">
+          <element name="initializer">
+            <ref name="initializer.attlist"/>
+            <zeroOrMore>
+              <ref name="smallcptr.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="initializer.attlist">
+        <define name="initializer.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="initializer.role.attrib"/>
+          <ref name="local.initializer.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="constructorsynopsis.module">
+      <define name="local.constructorsynopsis.attrib">
+        <empty/>
+      </define>
+      <define name="constructorsynopsis.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="constructorsynopsis">
+        <define name="constructorsynopsis">
+          <element name="constructorsynopsis">
+            <ref name="constructorsynopsis.attlist"/>
+            <zeroOrMore>
+              <ref name="modifier"/>
+            </zeroOrMore>
+            <optional>
+              <ref name="methodname"/>
+            </optional>
+            <choice>
+              <oneOrMore>
+                <ref name="methodparam"/>
+              </oneOrMore>
+              <ref name="void"/>
+            </choice>
+            <zeroOrMore>
+              <ref name="exceptionname"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="constructorsynopsis.attlist">
+        <define name="constructorsynopsis.attlist" combine="interleave">
+          <optional>
+            <attribute name="language"/>
+          </optional>
+          <ref name="common.attrib"/>
+          <ref name="constructorsynopsis.role.attrib"/>
+          <ref name="local.constructorsynopsis.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="destructorsynopsis.module">
+      <define name="local.destructorsynopsis.attrib">
+        <empty/>
+      </define>
+      <define name="destructorsynopsis.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="destructorsynopsis">
+        <define name="destructorsynopsis">
+          <element name="destructorsynopsis">
+            <ref name="destructorsynopsis.attlist"/>
+            <zeroOrMore>
+              <ref name="modifier"/>
+            </zeroOrMore>
+            <optional>
+              <ref name="methodname"/>
+            </optional>
+            <choice>
+              <oneOrMore>
+                <ref name="methodparam"/>
+              </oneOrMore>
+              <ref name="void"/>
+            </choice>
+            <zeroOrMore>
+              <ref name="exceptionname"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="destructorsynopsis.attlist">
+        <define name="destructorsynopsis.attlist" combine="interleave">
+          <optional>
+            <attribute name="language"/>
+          </optional>
+          <ref name="common.attrib"/>
+          <ref name="destructorsynopsis.role.attrib"/>
+          <ref name="local.destructorsynopsis.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="methodsynopsis.module">
+      <define name="local.methodsynopsis.attrib">
+        <empty/>
+      </define>
+      <define name="methodsynopsis.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="methodsynopsis">
+        <define name="methodsynopsis">
+          <element name="methodsynopsis">
+            <ref name="methodsynopsis.attlist"/>
+            <zeroOrMore>
+              <ref name="modifier"/>
+            </zeroOrMore>
+            <optional>
+              <choice>
+                <ref name="type"/>
+                <ref name="void"/>
+              </choice>
+            </optional>
+            <ref name="methodname"/>
+            <choice>
+              <oneOrMore>
+                <ref name="methodparam"/>
+              </oneOrMore>
+              <ref name="void"/>
+            </choice>
+            <zeroOrMore>
+              <ref name="exceptionname"/>
+            </zeroOrMore>
+            <zeroOrMore>
+              <ref name="modifier"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="methodsynopsis.attlist">
+        <define name="methodsynopsis.attlist" combine="interleave">
+          <optional>
+            <attribute name="language"/>
+          </optional>
+          <ref name="common.attrib"/>
+          <ref name="methodsynopsis.role.attrib"/>
+          <ref name="local.methodsynopsis.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="methodname.module">
+      <define name="local.methodname.attrib">
+        <empty/>
+      </define>
+      <define name="methodname.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="methodname">
+        <define name="methodname">
+          <element name="methodname">
+            <ref name="methodname.attlist"/>
+            <zeroOrMore>
+              <ref name="smallcptr.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="methodname.attlist">
+        <define name="methodname.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="methodname.role.attrib"/>
+          <ref name="local.methodname.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="methodparam.module">
+      <define name="local.methodparam.attrib">
+        <empty/>
+      </define>
+      <define name="methodparam.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="methodparam">
+        <define name="methodparam">
+          <element name="methodparam">
+            <ref name="methodparam.attlist"/>
+            <zeroOrMore>
+              <ref name="modifier"/>
+            </zeroOrMore>
+            <optional>
+              <ref name="type"/>
+            </optional>
+            <choice>
+              <group>
+                <ref name="parameter"/>
+                <optional>
+                  <ref name="initializer"/>
+                </optional>
+              </group>
+              <ref name="funcparams"/>
+            </choice>
+            <zeroOrMore>
+              <ref name="modifier"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="methodparam.attlist">
+        <define name="methodparam.attlist" combine="interleave">
+          <optional>
+            <attribute name="choice" a:defaultValue="req">
+              <choice>
+                <value>opt</value>
+                <value>req</value>
+                <value>plain</value>
+              </choice>
+            </attribute>
+          </optional>
+          <optional>
+            <attribute name="rep" a:defaultValue="norepeat">
+              <choice>
+                <value>norepeat</value>
+                <value>repeat</value>
+              </choice>
+            </attribute>
+          </optional>
+          <ref name="common.attrib"/>
+          <ref name="methodparam.role.attrib"/>
+          <ref name="local.methodparam.attrib"/>
+        </define>
+      </div>
+    </div>
+  </div>
+
+<!-- ...................................................................... -->
+<!-- Document information entities and elements ........................... -->
+<!-- The document information elements include some elements that are
+     currently used only in the document hierarchy module. They are
+     defined here so that they will be available for use in customized
+     document hierarchies. -->
+
+  <div db:name="docinfo.content.module">
+
+<!-- .................................. -->
+<!-- Ackno ............................ -->
+
+    <div db:name="ackno.module">
+      <define name="local.ackno.attrib">
+        <empty/>
+      </define>
+      <define name="ackno.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="ackno">
+        <define name="ackno">
+          <element name="ackno">
+            <ref name="ackno.attlist"/>
+            <zeroOrMore>
+              <ref name="docinfo.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="ackno.attlist">
+        <define name="ackno.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="ackno.role.attrib"/>
+          <ref name="local.ackno.attrib"/>
+        </define>
+      </div>
+    </div>
+
+<!-- Address .......................... -->
+
+    <div db:name="address.content.module">
+
+      <div db:name="address.module">
+        <define name="local.address.attrib">
+          <empty/>
+        </define>
+        <define name="address.role.attrib">
+          <ref name="role.attrib"/>
+        </define>
+
+        <div db:name="address">
+          <define name="address">
+            <element name="address">
+              <ref name="address.attlist"/>
+              <zeroOrMore>
+                <choice>
+                  <text/>
+                  <ref name="personname"/>
+                  <ref name="person.ident.mix"/>
+                  <ref name="street"/>
+                  <ref name="pob"/>
+                  <ref name="postcode"/>
+                  <ref name="city"/>
+                  <ref name="state"/>
+                  <ref name="country"/>
+                  <ref name="phone"/>
+                  <ref name="fax"/>
+                  <ref name="email"/>
+                  <ref name="otheraddr"/>
+                </choice>
+              </zeroOrMore>
+            </element>
+          </define>
+        </div>
+
+        <div db:name="address.attlist">
+          <define name="address.attlist" combine="interleave">
+            <ref name="linespecific.attrib"/>
+            <ref name="common.attrib"/>
+            <ref name="address.role.attrib"/>
+            <ref name="local.address.attrib"/>
+          </define>
+        </div>
+      </div>
+
+      <div db:name="street.module">
+        <define name="local.street.attrib">
+          <empty/>
+        </define>
+        <define name="street.role.attrib">
+          <ref name="role.attrib"/>
+        </define>
+
+        <div db:name="street">
+          <define name="street">
+            <element name="street">
+              <ref name="street.attlist"/>
+              <zeroOrMore>
+                <ref name="docinfo.char.mix"/>
+              </zeroOrMore>
+            </element>
+          </define>
+        </div>
+
+        <div db:name="street.attlist">
+          <define name="street.attlist" combine="interleave">
+            <ref name="common.attrib"/>
+            <ref name="street.role.attrib"/>
+            <ref name="local.street.attrib"/>
+          </define>
+        </div>
+      </div>
+
+      <div db:name="pob.module">
+        <define name="local.pob.attrib">
+          <empty/>
+        </define>
+        <define name="pob.role.attrib">
+          <ref name="role.attrib"/>
+        </define>
+
+        <div db:name="pob">
+          <define name="pob">
+            <element name="pob">
+              <ref name="pob.attlist"/>
+              <zeroOrMore>
+                <ref name="docinfo.char.mix"/>
+              </zeroOrMore>
+            </element>
+          </define>
+        </div>
+
+        <div db:name="pob.attlist">
+          <define name="pob.attlist" combine="interleave">
+            <ref name="common.attrib"/>
+            <ref name="pob.role.attrib"/>
+            <ref name="local.pob.attrib"/>
+          </define>
+        </div>
+      </div>
+
+      <div db:name="postcode.module">
+        <define name="local.postcode.attrib">
+          <empty/>
+        </define>
+        <define name="postcode.role.attrib">
+          <ref name="role.attrib"/>
+        </define>
+
+        <div db:name="postcode">
+          <define name="postcode">
+            <element name="postcode">
+              <ref name="postcode.attlist"/>
+              <zeroOrMore>
+                <ref name="docinfo.char.mix"/>
+              </zeroOrMore>
+            </element>
+          </define>
+        </div>
+
+        <div db:name="postcode.attlist">
+          <define name="postcode.attlist" combine="interleave">
+            <ref name="common.attrib"/>
+            <ref name="postcode.role.attrib"/>
+            <ref name="local.postcode.attrib"/>
+          </define>
+        </div>
+      </div>
+
+      <div db:name="city.module">
+        <define name="local.city.attrib">
+          <empty/>
+        </define>
+        <define name="city.role.attrib">
+          <ref name="role.attrib"/>
+        </define>
+
+        <div db:name="city">
+          <define name="city">
+            <element name="city">
+              <ref name="city.attlist"/>
+              <zeroOrMore>
+                <ref name="docinfo.char.mix"/>
+              </zeroOrMore>
+            </element>
+          </define>
+        </div>
+
+        <div db:name="city.attlist">
+          <define name="city.attlist" combine="interleave">
+            <ref name="common.attrib"/>
+            <ref name="city.role.attrib"/>
+            <ref name="local.city.attrib"/>
+          </define>
+        </div>
+      </div>
+
+      <div db:name="state.module">
+        <define name="local.state.attrib">
+          <empty/>
+        </define>
+        <define name="state.role.attrib">
+          <ref name="role.attrib"/>
+        </define>
+
+        <div db:name="state">
+          <define name="state">
+            <element name="state">
+              <ref name="state.attlist"/>
+              <zeroOrMore>
+                <ref name="docinfo.char.mix"/>
+              </zeroOrMore>
+            </element>
+          </define>
+        </div>
+
+        <div db:name="state.attlist">
+          <define name="state.attlist" combine="interleave">
+            <ref name="common.attrib"/>
+            <ref name="state.role.attrib"/>
+            <ref name="local.state.attrib"/>
+          </define>
+        </div>
+      </div>
+
+      <div db:name="country.module">
+        <define name="local.country.attrib">
+          <empty/>
+        </define>
+        <define name="country.role.attrib">
+          <ref name="role.attrib"/>
+        </define>
+
+        <div db:name="country">
+          <define name="country">
+            <element name="country">
+              <ref name="country.attlist"/>
+              <zeroOrMore>
+                <ref name="docinfo.char.mix"/>
+              </zeroOrMore>
+            </element>
+          </define>
+        </div>
+
+        <div db:name="country.attlist">
+          <define name="country.attlist" combine="interleave">
+            <ref name="common.attrib"/>
+            <ref name="country.role.attrib"/>
+            <ref name="local.country.attrib"/>
+          </define>
+        </div>
+      </div>
+
+      <div db:name="phone.module">
+        <define name="local.phone.attrib">
+          <empty/>
+        </define>
+        <define name="phone.role.attrib">
+          <ref name="role.attrib"/>
+        </define>
+
+        <div db:name="phone">
+          <define name="phone">
+            <element name="phone">
+              <ref name="phone.attlist"/>
+              <zeroOrMore>
+                <ref name="docinfo.char.mix"/>
+              </zeroOrMore>
+            </element>
+          </define>
+        </div>
+
+        <div db:name="phone.attlist">
+          <define name="phone.attlist" combine="interleave">
+            <ref name="common.attrib"/>
+            <ref name="phone.role.attrib"/>
+            <ref name="local.phone.attrib"/>
+          </define>
+        </div>
+      </div>
+
+      <div db:name="fax.module">
+        <define name="local.fax.attrib">
+          <empty/>
+        </define>
+        <define name="fax.role.attrib">
+          <ref name="role.attrib"/>
+        </define>
+
+        <div db:name="fax">
+          <define name="fax">
+            <element name="fax">
+              <ref name="fax.attlist"/>
+              <zeroOrMore>
+                <ref name="docinfo.char.mix"/>
+              </zeroOrMore>
+            </element>
+          </define>
+        </div>
+
+        <div db:name="fax.attlist">
+          <define name="fax.attlist" combine="interleave">
+            <ref name="common.attrib"/>
+            <ref name="fax.role.attrib"/>
+            <ref name="local.fax.attrib"/>
+          </define>
+        </div>
+      </div>
+
 <!-- Email (defined in the Inlines section, below)-->
-  <define name="local.otheraddr.attrib">
-    <empty/>
-  </define>
-  <define name="otheraddr.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="otheraddr">
-    <element name="otheraddr">
-      <ref name="otheraddr.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of otheraddr.element-->
-  <define name="otheraddr.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="otheraddr.role.attrib"/>
-    <ref name="local.otheraddr.attrib"/>
-  </define>
-<!--end of otheraddr.attlist-->
-<!--end of otheraddr.module-->
-<!--end of address.content.module-->
+
+      <div db:name="otheraddr.module">
+        <define name="local.otheraddr.attrib">
+          <empty/>
+        </define>
+        <define name="otheraddr.role.attrib">
+          <ref name="role.attrib"/>
+        </define>
+
+        <div db:name="otheraddr">
+          <define name="otheraddr">
+            <element name="otheraddr">
+              <ref name="otheraddr.attlist"/>
+              <zeroOrMore>
+                <ref name="docinfo.char.mix"/>
+              </zeroOrMore>
+            </element>
+          </define>
+        </div>
+
+        <div db:name="otheraddr.attlist">
+          <define name="otheraddr.attlist" combine="interleave">
+            <ref name="common.attrib"/>
+            <ref name="otheraddr.role.attrib"/>
+            <ref name="local.otheraddr.attrib"/>
+          </define>
+        </div>
+      </div>
+    </div>
+
 <!-- Affiliation ...................... -->
-  <define name="local.affiliation.attrib">
-    <empty/>
-  </define>
-  <define name="affiliation.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="affiliation">
-    <element name="affiliation">
-      <ref name="affiliation.attlist"/>
-      <optional>
-        <ref name="shortaffil"/>
-      </optional>
-      <zeroOrMore>
-        <ref name="jobtitle"/>
-      </zeroOrMore>
-      <optional>
-        <ref name="orgname"/>
-      </optional>
-      <zeroOrMore>
-        <ref name="orgdiv"/>
-      </zeroOrMore>
-      <zeroOrMore>
-        <ref name="address"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of affiliation.element-->
-  <define name="affiliation.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="affiliation.role.attrib"/>
-    <ref name="local.affiliation.attrib"/>
-  </define>
-<!--end of affiliation.attlist-->
-<!--end of affiliation.module-->
-  <define name="local.shortaffil.attrib">
-    <empty/>
-  </define>
-  <define name="shortaffil.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="shortaffil">
-    <element name="shortaffil">
-      <ref name="shortaffil.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of shortaffil.element-->
-  <define name="shortaffil.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="shortaffil.role.attrib"/>
-    <ref name="local.shortaffil.attrib"/>
-  </define>
-<!--end of shortaffil.attlist-->
-<!--end of shortaffil.module-->
-  <define name="local.jobtitle.attrib">
-    <empty/>
-  </define>
-  <define name="jobtitle.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="jobtitle">
-    <element name="jobtitle">
-      <ref name="jobtitle.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of jobtitle.element-->
-  <define name="jobtitle.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="jobtitle.role.attrib"/>
-    <ref name="local.jobtitle.attrib"/>
-  </define>
-<!--end of jobtitle.attlist-->
-<!--end of jobtitle.module-->
+
+    <div db:name="affiliation.content.module">
+
+      <div db:name="affiliation.module">
+        <define name="local.affiliation.attrib">
+          <empty/>
+        </define>
+        <define name="affiliation.role.attrib">
+          <ref name="role.attrib"/>
+        </define>
+
+        <div db:name="affiliation">
+          <define name="affiliation">
+            <element name="affiliation">
+              <ref name="affiliation.attlist"/>
+              <optional>
+                <ref name="shortaffil"/>
+              </optional>
+              <zeroOrMore>
+                <ref name="jobtitle"/>
+              </zeroOrMore>
+              <optional>
+                <ref name="orgname"/>
+              </optional>
+              <zeroOrMore>
+                <ref name="orgdiv"/>
+              </zeroOrMore>
+              <zeroOrMore>
+                <ref name="address"/>
+              </zeroOrMore>
+            </element>
+          </define>
+        </div>
+
+        <div db:name="affiliation.attlist">
+          <define name="affiliation.attlist" combine="interleave">
+            <ref name="common.attrib"/>
+            <ref name="affiliation.role.attrib"/>
+            <ref name="local.affiliation.attrib"/>
+          </define>
+        </div>
+      </div>
+
+      <div db:name="shortaffil.module">
+        <define name="local.shortaffil.attrib">
+          <empty/>
+        </define>
+        <define name="shortaffil.role.attrib">
+          <ref name="role.attrib"/>
+        </define>
+
+        <div db:name="shortaffil">
+          <define name="shortaffil">
+            <element name="shortaffil">
+              <ref name="shortaffil.attlist"/>
+              <zeroOrMore>
+                <ref name="docinfo.char.mix"/>
+              </zeroOrMore>
+            </element>
+          </define>
+        </div>
+
+        <div db:name="shortaffil.attlist">
+          <define name="shortaffil.attlist" combine="interleave">
+            <ref name="common.attrib"/>
+            <ref name="shortaffil.role.attrib"/>
+            <ref name="local.shortaffil.attrib"/>
+          </define>
+        </div>
+      </div>
+
+      <div db:name="jobtitle.module">
+        <define name="local.jobtitle.attrib">
+          <empty/>
+        </define>
+        <define name="jobtitle.role.attrib">
+          <ref name="role.attrib"/>
+        </define>
+
+        <div db:name="jobtitle">
+          <define name="jobtitle">
+            <element name="jobtitle">
+              <ref name="jobtitle.attlist"/>
+              <zeroOrMore>
+                <ref name="docinfo.char.mix"/>
+              </zeroOrMore>
+            </element>
+          </define>
+        </div>
+
+        <div db:name="jobtitle.attlist">
+          <define name="jobtitle.attlist" combine="interleave">
+            <ref name="common.attrib"/>
+            <ref name="jobtitle.role.attrib"/>
+            <ref name="local.jobtitle.attrib"/>
+          </define>
+        </div>
+      </div>
+
 <!-- OrgName (defined elsewhere in this section)-->
-  <define name="local.orgdiv.attrib">
-    <empty/>
-  </define>
-  <define name="orgdiv.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="orgdiv">
-    <element name="orgdiv">
-      <ref name="orgdiv.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of orgdiv.element-->
-  <define name="orgdiv.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="orgdiv.role.attrib"/>
-    <ref name="local.orgdiv.attrib"/>
-  </define>
-<!--end of orgdiv.attlist-->
-<!--end of orgdiv.module-->
+
+      <div db:name="orgdiv.module">
+        <define name="local.orgdiv.attrib">
+          <empty/>
+        </define>
+        <define name="orgdiv.role.attrib">
+          <ref name="role.attrib"/>
+        </define>
+
+        <div db:name="orgdiv">
+          <define name="orgdiv">
+            <element name="orgdiv">
+              <ref name="orgdiv.attlist"/>
+              <zeroOrMore>
+                <ref name="docinfo.char.mix"/>
+              </zeroOrMore>
+            </element>
+          </define>
+        </div>
+
+        <div db:name="orgdiv.attlist">
+          <define name="orgdiv.attlist" combine="interleave">
+            <ref name="common.attrib"/>
+            <ref name="orgdiv.role.attrib"/>
+            <ref name="local.orgdiv.attrib"/>
+          </define>
+        </div>
+      </div>
+
 <!-- Address (defined elsewhere in this section)-->
-<!--end of affiliation.content.module-->
+
+    </div>
+
 <!-- ArtPageNums ...................... -->
-  <define name="local.artpagenums.attrib">
-    <empty/>
-  </define>
-  <define name="artpagenums.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="artpagenums">
-    <element name="artpagenums">
-      <ref name="artpagenums.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of artpagenums.element-->
-  <define name="artpagenums.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="artpagenums.role.attrib"/>
-    <ref name="local.artpagenums.attrib"/>
-  </define>
-<!--end of artpagenums.attlist-->
-<!--end of artpagenums.module-->
+
+    <div db:name="artpagenums.module">
+      <define name="local.artpagenums.attrib">
+        <empty/>
+      </define>
+      <define name="artpagenums.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="artpagenums">
+        <define name="artpagenums">
+          <element name="artpagenums">
+            <ref name="artpagenums.attlist"/>
+            <zeroOrMore>
+              <ref name="docinfo.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="artpagenums.attlist">
+        <define name="artpagenums.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="artpagenums.role.attrib"/>
+          <ref name="local.artpagenums.attrib"/>
+        </define>
+      </div>
+    </div>
+
 <!-- PersonName -->
-  <define name="local.personname.attrib">
-    <empty/>
-  </define>
-  <define name="personname.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="personname">
-    <element name="personname">
-      <ref name="personname.attlist"/>
-      <oneOrMore>
-        <choice>
-          <ref name="honorific"/>
-          <ref name="firstname"/>
-          <ref name="surname"/>
-          <ref name="lineage"/>
-          <ref name="othername"/>
-        </choice>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of personname.element-->
-  <define name="personname.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="personname.role.attrib"/>
-    <ref name="local.personname.attrib"/>
-  </define>
-<!--end of personname.attlist-->
-<!--end of personname.module-->
+
+    <div db:name="personname.module">
+      <define name="local.personname.attrib">
+        <empty/>
+      </define>
+      <define name="personname.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="personname">
+        <define name="personname">
+          <element name="personname">
+            <ref name="personname.attlist"/>
+            <oneOrMore>
+              <choice>
+                <ref name="honorific"/>
+                <ref name="firstname"/>
+                <ref name="surname"/>
+                <ref name="lineage"/>
+                <ref name="othername"/>
+              </choice>
+            </oneOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="personname.attlist">
+        <define name="personname.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="personname.role.attrib"/>
+          <ref name="local.personname.attrib"/>
+        </define>
+      </div>
+    </div>
+
 <!-- Author ........................... -->
-  <define name="local.author.attrib">
-    <empty/>
-  </define>
-  <define name="author.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="author">
-    <element name="author">
-      <ref name="author.attlist"/>
-      <choice>
-        <ref name="personname"/>
-        <oneOrMore>
-          <ref name="person.ident.mix"/>
-        </oneOrMore>
-      </choice>
-      <zeroOrMore>
-        <choice>
-          <ref name="personblurb"/>
-          <ref name="email"/>
-          <ref name="address"/>
-        </choice>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of author.element-->
-  <define name="author.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="author.role.attrib"/>
-    <ref name="local.author.attrib"/>
-  </define>
-<!--end of author.attlist-->
+
+    <div db:name="author.module">
+      <define name="local.author.attrib">
+        <empty/>
+      </define>
+      <define name="author.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="author">
+        <define name="author">
+          <element name="author">
+            <ref name="author.attlist"/>
+            <choice>
+              <ref name="personname"/>
+              <oneOrMore>
+                <ref name="person.ident.mix"/>
+              </oneOrMore>
+            </choice>
+            <zeroOrMore>
+              <choice>
+                <ref name="personblurb"/>
+                <ref name="email"/>
+                <ref name="address"/>
+              </choice>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="author.attlist">
+        <define name="author.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="author.role.attrib"/>
+          <ref name="local.author.attrib"/>
+        </define>
+      </div>
+
 <!--(see "Personal identity elements" for %person.ident.mix;)-->
-<!--end of author.module-->
+
+    </div>
+
 <!-- AuthorGroup ...................... -->
-  <define name="local.authorgroup.attrib">
-    <empty/>
-  </define>
-  <define name="authorgroup.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="authorgroup">
-    <element name="authorgroup">
-      <ref name="authorgroup.attlist"/>
-      <oneOrMore>
-        <choice>
-          <ref name="author"/>
-          <ref name="editor"/>
-          <ref name="collab"/>
-          <ref name="corpauthor"/>
-          <ref name="othercredit"/>
-        </choice>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of authorgroup.element-->
-  <define name="authorgroup.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="authorgroup.role.attrib"/>
-    <ref name="local.authorgroup.attrib"/>
-  </define>
-<!--end of authorgroup.attlist-->
-<!--end of authorgroup.module-->
+
+    <div db:name="authorgroup.content.module">
+
+      <div db:name="authorgroup.module">
+        <define name="local.authorgroup.attrib">
+          <empty/>
+        </define>
+        <define name="authorgroup.role.attrib">
+          <ref name="role.attrib"/>
+        </define>
+
+        <div db:name="authorgroup">
+          <define name="authorgroup">
+            <element name="authorgroup">
+              <ref name="authorgroup.attlist"/>
+              <oneOrMore>
+                <choice>
+                  <ref name="author"/>
+                  <ref name="editor"/>
+                  <ref name="collab"/>
+                  <ref name="corpauthor"/>
+                  <ref name="othercredit"/>
+                </choice>
+              </oneOrMore>
+            </element>
+          </define>
+        </div>
+
+        <div db:name="authorgroup.attlist">
+          <define name="authorgroup.attlist" combine="interleave">
+            <ref name="common.attrib"/>
+            <ref name="authorgroup.role.attrib"/>
+            <ref name="local.authorgroup.attrib"/>
+          </define>
+        </div>
+      </div>
+
 <!-- Author (defined elsewhere in this section)-->
 <!-- Editor (defined elsewhere in this section)-->
-  <define name="local.collab.attrib">
-    <empty/>
-  </define>
-  <define name="collab.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="collab">
-    <element name="collab">
-      <ref name="collab.attlist"/>
-      <ref name="collabname"/>
-      <zeroOrMore>
-        <ref name="affiliation"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of collab.element-->
-  <define name="collab.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="collab.role.attrib"/>
-    <ref name="local.collab.attrib"/>
-  </define>
-<!--end of collab.attlist-->
-<!--end of collab.module-->
-  <define name="local.collabname.attrib">
-    <empty/>
-  </define>
-  <define name="collabname.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="collabname">
-    <element name="collabname">
-      <ref name="collabname.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of collabname.element-->
-  <define name="collabname.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="collabname.role.attrib"/>
-    <ref name="local.collabname.attrib"/>
-  </define>
-<!--end of collabname.attlist-->
-<!--end of collabname.module-->
+
+      <div db:name="collab.content.module">
+
+        <div db:name="collab.module">
+          <define name="local.collab.attrib">
+            <empty/>
+          </define>
+          <define name="collab.role.attrib">
+            <ref name="role.attrib"/>
+          </define>
+
+          <div db:name="collab">
+            <define name="collab">
+              <element name="collab">
+                <ref name="collab.attlist"/>
+                <ref name="collabname"/>
+                <zeroOrMore>
+                  <ref name="affiliation"/>
+                </zeroOrMore>
+              </element>
+            </define>
+          </div>
+
+          <div db:name="collab.attlist">
+            <define name="collab.attlist" combine="interleave">
+              <ref name="common.attrib"/>
+              <ref name="collab.role.attrib"/>
+              <ref name="local.collab.attrib"/>
+            </define>
+          </div>
+        </div>
+
+        <div db:name="collabname.module">
+          <define name="local.collabname.attrib">
+            <empty/>
+          </define>
+          <define name="collabname.role.attrib">
+            <ref name="role.attrib"/>
+          </define>
+
+          <div db:name="collabname">
+            <define name="collabname">
+              <element name="collabname">
+                <ref name="collabname.attlist"/>
+                <zeroOrMore>
+                  <ref name="docinfo.char.mix"/>
+                </zeroOrMore>
+              </element>
+            </define>
+          </div>
+
+          <div db:name="collabname.attlist">
+            <define name="collabname.attlist" combine="interleave">
+              <ref name="common.attrib"/>
+              <ref name="collabname.role.attrib"/>
+              <ref name="local.collabname.attrib"/>
+            </define>
+          </div>
+        </div>
+
 <!-- Affiliation (defined elsewhere in this section)-->
-<!--end of collab.content.module-->
+
+      </div>
+
 <!-- CorpAuthor (defined elsewhere in this section)-->
 <!-- OtherCredit (defined elsewhere in this section)-->
-<!--end of authorgroup.content.module-->
+
+    </div>
+
 <!-- AuthorInitials ................... -->
-  <define name="local.authorinitials.attrib">
-    <empty/>
-  </define>
-  <define name="authorinitials.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="authorinitials">
-    <element name="authorinitials">
-      <ref name="authorinitials.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of authorinitials.element-->
-  <define name="authorinitials.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="authorinitials.role.attrib"/>
-    <ref name="local.authorinitials.attrib"/>
-  </define>
-<!--end of authorinitials.attlist-->
-<!--end of authorinitials.module-->
+
+    <div db:name="authorinitials.module">
+      <define name="local.authorinitials.attrib">
+        <empty/>
+      </define>
+      <define name="authorinitials.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="authorinitials">
+        <define name="authorinitials">
+          <element name="authorinitials">
+            <ref name="authorinitials.attlist"/>
+            <zeroOrMore>
+              <ref name="docinfo.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="authorinitials.attlist">
+        <define name="authorinitials.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="authorinitials.role.attrib"/>
+          <ref name="local.authorinitials.attrib"/>
+        </define>
+      </div>
+    </div>
+
 <!-- ConfGroup ........................ -->
-  <define name="local.confgroup.attrib">
-    <empty/>
-  </define>
-  <define name="confgroup.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="confgroup">
-    <element name="confgroup">
-      <ref name="confgroup.attlist"/>
-      <zeroOrMore>
-        <choice>
-          <ref name="confdates"/>
-          <ref name="conftitle"/>
-          <ref name="confnum"/>
-          <ref name="address"/>
-          <ref name="confsponsor"/>
-        </choice>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of confgroup.element-->
-  <define name="confgroup.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="confgroup.role.attrib"/>
-    <ref name="local.confgroup.attrib"/>
-  </define>
-<!--end of confgroup.attlist-->
-<!--end of confgroup.module-->
-  <define name="local.confdates.attrib">
-    <empty/>
-  </define>
-  <define name="confdates.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="confdates">
-    <element name="confdates">
-      <ref name="confdates.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of confdates.element-->
-  <define name="confdates.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="confdates.role.attrib"/>
-    <ref name="local.confdates.attrib"/>
-  </define>
-<!--end of confdates.attlist-->
-<!--end of confdates.module-->
-  <define name="local.conftitle.attrib">
-    <empty/>
-  </define>
-  <define name="conftitle.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="conftitle">
-    <element name="conftitle">
-      <ref name="conftitle.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of conftitle.element-->
-  <define name="conftitle.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="conftitle.role.attrib"/>
-    <ref name="local.conftitle.attrib"/>
-  </define>
-<!--end of conftitle.attlist-->
-<!--end of conftitle.module-->
-  <define name="local.confnum.attrib">
-    <empty/>
-  </define>
-  <define name="confnum.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="confnum">
-    <element name="confnum">
-      <ref name="confnum.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of confnum.element-->
-  <define name="confnum.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="confnum.role.attrib"/>
-    <ref name="local.confnum.attrib"/>
-  </define>
-<!--end of confnum.attlist-->
-<!--end of confnum.module-->
+
+    <div db:name="confgroup.content.module">
+
+      <div db:name="confgroup.module">
+        <define name="local.confgroup.attrib">
+          <empty/>
+        </define>
+        <define name="confgroup.role.attrib">
+          <ref name="role.attrib"/>
+        </define>
+
+        <div db:name="confgroup">
+          <define name="confgroup">
+            <element name="confgroup">
+              <ref name="confgroup.attlist"/>
+              <zeroOrMore>
+                <choice>
+                  <ref name="confdates"/>
+                  <ref name="conftitle"/>
+                  <ref name="confnum"/>
+                  <ref name="address"/>
+                  <ref name="confsponsor"/>
+                </choice>
+              </zeroOrMore>
+            </element>
+          </define>
+        </div>
+
+        <div db:name="confgroup.attlist">
+          <define name="confgroup.attlist" combine="interleave">
+            <ref name="common.attrib"/>
+            <ref name="confgroup.role.attrib"/>
+            <ref name="local.confgroup.attrib"/>
+          </define>
+        </div>
+      </div>
+
+      <div db:name="confdates.module">
+        <define name="local.confdates.attrib">
+          <empty/>
+        </define>
+        <define name="confdates.role.attrib">
+          <ref name="role.attrib"/>
+        </define>
+
+        <div db:name="confdates">
+          <define name="confdates">
+            <element name="confdates">
+              <ref name="confdates.attlist"/>
+              <zeroOrMore>
+                <ref name="docinfo.char.mix"/>
+              </zeroOrMore>
+            </element>
+          </define>
+        </div>
+
+        <div db:name="confdates.attlist">
+          <define name="confdates.attlist" combine="interleave">
+            <ref name="common.attrib"/>
+            <ref name="confdates.role.attrib"/>
+            <ref name="local.confdates.attrib"/>
+          </define>
+        </div>
+      </div>
+
+      <div db:name="conftitle.module">
+        <define name="local.conftitle.attrib">
+          <empty/>
+        </define>
+        <define name="conftitle.role.attrib">
+          <ref name="role.attrib"/>
+        </define>
+
+        <div db:name="conftitle">
+          <define name="conftitle">
+            <element name="conftitle">
+              <ref name="conftitle.attlist"/>
+              <zeroOrMore>
+                <ref name="docinfo.char.mix"/>
+              </zeroOrMore>
+            </element>
+          </define>
+        </div>
+
+        <div db:name="conftitle.attlist">
+          <define name="conftitle.attlist" combine="interleave">
+            <ref name="common.attrib"/>
+            <ref name="conftitle.role.attrib"/>
+            <ref name="local.conftitle.attrib"/>
+          </define>
+        </div>
+      </div>
+
+      <div db:name="confnum.module">
+        <define name="local.confnum.attrib">
+          <empty/>
+        </define>
+        <define name="confnum.role.attrib">
+          <ref name="role.attrib"/>
+        </define>
+
+        <div db:name="confnum">
+          <define name="confnum">
+            <element name="confnum">
+              <ref name="confnum.attlist"/>
+              <zeroOrMore>
+                <ref name="docinfo.char.mix"/>
+              </zeroOrMore>
+            </element>
+          </define>
+        </div>
+
+        <div db:name="confnum.attlist">
+          <define name="confnum.attlist" combine="interleave">
+            <ref name="common.attrib"/>
+            <ref name="confnum.role.attrib"/>
+            <ref name="local.confnum.attrib"/>
+          </define>
+        </div>
+      </div>
+
 <!-- Address (defined elsewhere in this section)-->
-  <define name="local.confsponsor.attrib">
-    <empty/>
-  </define>
-  <define name="confsponsor.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="confsponsor">
-    <element name="confsponsor">
-      <ref name="confsponsor.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of confsponsor.element-->
-  <define name="confsponsor.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="confsponsor.role.attrib"/>
-    <ref name="local.confsponsor.attrib"/>
-  </define>
-<!--end of confsponsor.attlist-->
-<!--end of confsponsor.module-->
-<!--end of confgroup.content.module-->
+
+      <div db:name="confsponsor.module">
+        <define name="local.confsponsor.attrib">
+          <empty/>
+        </define>
+        <define name="confsponsor.role.attrib">
+          <ref name="role.attrib"/>
+        </define>
+
+        <div db:name="confsponsor">
+          <define name="confsponsor">
+            <element name="confsponsor">
+              <ref name="confsponsor.attlist"/>
+              <zeroOrMore>
+                <ref name="docinfo.char.mix"/>
+              </zeroOrMore>
+            </element>
+          </define>
+        </div>
+
+        <div db:name="confsponsor.attlist">
+          <define name="confsponsor.attlist" combine="interleave">
+            <ref name="common.attrib"/>
+            <ref name="confsponsor.role.attrib"/>
+            <ref name="local.confsponsor.attrib"/>
+          </define>
+        </div>
+      </div>
+    </div>
+
 <!-- ContractNum ...................... -->
-  <define name="local.contractnum.attrib">
-    <empty/>
-  </define>
-  <define name="contractnum.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="contractnum">
-    <element name="contractnum">
-      <ref name="contractnum.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of contractnum.element-->
-  <define name="contractnum.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="contractnum.role.attrib"/>
-    <ref name="local.contractnum.attrib"/>
-  </define>
-<!--end of contractnum.attlist-->
-<!--end of contractnum.module-->
+
+    <div db:name="contractnum.module">
+      <define name="local.contractnum.attrib">
+        <empty/>
+      </define>
+      <define name="contractnum.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="contractnum">
+        <define name="contractnum">
+          <element name="contractnum">
+            <ref name="contractnum.attlist"/>
+            <zeroOrMore>
+              <ref name="docinfo.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="contractnum.attlist">
+        <define name="contractnum.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="contractnum.role.attrib"/>
+          <ref name="local.contractnum.attrib"/>
+        </define>
+      </div>
+    </div>
+
 <!-- ContractSponsor .................. -->
-  <define name="local.contractsponsor.attrib">
-    <empty/>
-  </define>
-  <define name="contractsponsor.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="contractsponsor">
-    <element name="contractsponsor">
-      <ref name="contractsponsor.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of contractsponsor.element-->
-  <define name="contractsponsor.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="contractsponsor.role.attrib"/>
-    <ref name="local.contractsponsor.attrib"/>
-  </define>
-<!--end of contractsponsor.attlist-->
-<!--end of contractsponsor.module-->
+
+    <div db:name="contractsponsor.module">
+      <define name="local.contractsponsor.attrib">
+        <empty/>
+      </define>
+      <define name="contractsponsor.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="contractsponsor">
+        <define name="contractsponsor">
+          <element name="contractsponsor">
+            <ref name="contractsponsor.attlist"/>
+            <zeroOrMore>
+              <ref name="docinfo.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="contractsponsor.attlist">
+        <define name="contractsponsor.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="contractsponsor.role.attrib"/>
+          <ref name="local.contractsponsor.attrib"/>
+        </define>
+      </div>
+    </div>
+
 <!-- Copyright ........................ -->
-  <define name="local.copyright.attrib">
-    <empty/>
-  </define>
-  <define name="copyright.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="copyright">
-    <element name="copyright">
-      <ref name="copyright.attlist"/>
-      <oneOrMore>
-        <ref name="year"/>
-      </oneOrMore>
-      <zeroOrMore>
-        <ref name="holder"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of copyright.element-->
-  <define name="copyright.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="copyright.role.attrib"/>
-    <ref name="local.copyright.attrib"/>
-  </define>
-<!--end of copyright.attlist-->
-<!--end of copyright.module-->
-  <define name="local.year.attrib">
-    <empty/>
-  </define>
-  <define name="year.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="year">
-    <element name="year">
-      <ref name="year.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of year.element-->
-  <define name="year.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="year.role.attrib"/>
-    <ref name="local.year.attrib"/>
-  </define>
-<!--end of year.attlist-->
-<!--end of year.module-->
-  <define name="local.holder.attrib">
-    <empty/>
-  </define>
-  <define name="holder.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="holder">
-    <element name="holder">
-      <ref name="holder.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of holder.element-->
-  <define name="holder.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="holder.role.attrib"/>
-    <ref name="local.holder.attrib"/>
-  </define>
-<!--end of holder.attlist-->
-<!--end of holder.module-->
-<!--end of copyright.content.module-->
+
+    <div db:name="copyright.content.module">
+
+      <div db:name="copyright.module">
+        <define name="local.copyright.attrib">
+          <empty/>
+        </define>
+        <define name="copyright.role.attrib">
+          <ref name="role.attrib"/>
+        </define>
+
+        <div db:name="copyright">
+          <define name="copyright">
+            <element name="copyright">
+              <ref name="copyright.attlist"/>
+              <oneOrMore>
+                <ref name="year"/>
+              </oneOrMore>
+              <zeroOrMore>
+                <ref name="holder"/>
+              </zeroOrMore>
+            </element>
+          </define>
+        </div>
+
+        <div db:name="copyright.attlist">
+          <define name="copyright.attlist" combine="interleave">
+            <ref name="common.attrib"/>
+            <ref name="copyright.role.attrib"/>
+            <ref name="local.copyright.attrib"/>
+          </define>
+        </div>
+      </div>
+
+      <div db:name="year.module">
+        <define name="local.year.attrib">
+          <empty/>
+        </define>
+        <define name="year.role.attrib">
+          <ref name="role.attrib"/>
+        </define>
+
+        <div db:name="year">
+          <define name="year">
+            <element name="year">
+              <ref name="year.attlist"/>
+              <zeroOrMore>
+                <ref name="docinfo.char.mix"/>
+              </zeroOrMore>
+            </element>
+          </define>
+        </div>
+
+        <div db:name="year.attlist">
+          <define name="year.attlist" combine="interleave">
+            <ref name="common.attrib"/>
+            <ref name="year.role.attrib"/>
+            <ref name="local.year.attrib"/>
+          </define>
+        </div>
+      </div>
+
+      <div db:name="holder.module">
+        <define name="local.holder.attrib">
+          <empty/>
+        </define>
+        <define name="holder.role.attrib">
+          <ref name="role.attrib"/>
+        </define>
+
+        <div db:name="holder">
+          <define name="holder">
+            <element name="holder">
+              <ref name="holder.attlist"/>
+              <zeroOrMore>
+                <ref name="docinfo.char.mix"/>
+              </zeroOrMore>
+            </element>
+          </define>
+        </div>
+
+        <div db:name="holder.attlist">
+          <define name="holder.attlist" combine="interleave">
+            <ref name="common.attrib"/>
+            <ref name="holder.role.attrib"/>
+            <ref name="local.holder.attrib"/>
+          </define>
+        </div>
+      </div>
+    </div>
+
 <!-- CorpAuthor ....................... -->
-  <define name="local.corpauthor.attrib">
-    <empty/>
-  </define>
-  <define name="corpauthor.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="corpauthor">
-    <element name="corpauthor">
-      <ref name="corpauthor.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of corpauthor.element-->
-  <define name="corpauthor.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="corpauthor.role.attrib"/>
-    <ref name="local.corpauthor.attrib"/>
-  </define>
-<!--end of corpauthor.attlist-->
-<!--end of corpauthor.module-->
+
+    <div db:name="corpauthor.module">
+      <define name="local.corpauthor.attrib">
+        <empty/>
+      </define>
+      <define name="corpauthor.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="corpauthor">
+        <define name="corpauthor">
+          <element name="corpauthor">
+            <ref name="corpauthor.attlist"/>
+            <zeroOrMore>
+              <ref name="docinfo.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="corpauthor.attlist">
+        <define name="corpauthor.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="corpauthor.role.attrib"/>
+          <ref name="local.corpauthor.attrib"/>
+        </define>
+      </div>
+    </div>
+
 <!-- CorpName ......................... -->
-  <define name="local.corpname.attrib">
-    <empty/>
-  </define>
-  <define name="corpname">
-    <element name="corpname">
-      <ref name="corpname.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of corpname.element-->
-  <define name="corpname.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="corpname.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="corpname.role.attrib"/>
-    <ref name="local.corpname.attrib"/>
-  </define>
-<!--end of corpname.attlist-->
-<!--end of corpname.module-->
+
+    <div db:name="corpname.module">
+      <define name="local.corpname.attrib">
+        <empty/>
+      </define>
+
+      <div db:name="corpname">
+        <define name="corpname">
+          <element name="corpname">
+            <ref name="corpname.attlist"/>
+            <zeroOrMore>
+              <ref name="docinfo.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+      <define name="corpname.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="corpname.attlist">
+        <define name="corpname.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="corpname.role.attrib"/>
+          <ref name="local.corpname.attrib"/>
+        </define>
+      </div>
+    </div>
+
 <!-- Date ............................. -->
-  <define name="local.date.attrib">
-    <empty/>
-  </define>
-  <define name="date.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="date">
-    <element name="date">
-      <ref name="date.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of date.element-->
-  <define name="date.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="date.role.attrib"/>
-    <ref name="local.date.attrib"/>
-  </define>
-<!--end of date.attlist-->
-<!--end of date.module-->
+
+    <div db:name="date.module">
+      <define name="local.date.attrib">
+        <empty/>
+      </define>
+      <define name="date.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="date">
+        <define name="date">
+          <element name="date">
+            <ref name="date.attlist"/>
+            <zeroOrMore>
+              <ref name="docinfo.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="date.attlist">
+        <define name="date.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="date.role.attrib"/>
+          <ref name="local.date.attrib"/>
+        </define>
+      </div>
+    </div>
+
 <!-- Edition .......................... -->
-  <define name="local.edition.attrib">
-    <empty/>
-  </define>
-  <define name="edition.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="edition">
-    <element name="edition">
-      <ref name="edition.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of edition.element-->
-  <define name="edition.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="edition.role.attrib"/>
-    <ref name="local.edition.attrib"/>
-  </define>
-<!--end of edition.attlist-->
-<!--end of edition.module-->
+
+    <div db:name="edition.module">
+      <define name="local.edition.attrib">
+        <empty/>
+      </define>
+      <define name="edition.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="edition">
+        <define name="edition">
+          <element name="edition">
+            <ref name="edition.attlist"/>
+            <zeroOrMore>
+              <ref name="docinfo.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="edition.attlist">
+        <define name="edition.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="edition.role.attrib"/>
+          <ref name="local.edition.attrib"/>
+        </define>
+      </div>
+    </div>
+
 <!-- Editor ........................... -->
-  <define name="local.editor.attrib">
-    <empty/>
-  </define>
-  <define name="editor.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="editor">
-    <element name="editor">
-      <ref name="editor.attlist"/>
-      <choice>
-        <ref name="personname"/>
-        <oneOrMore>
-          <ref name="person.ident.mix"/>
-        </oneOrMore>
-      </choice>
-      <zeroOrMore>
-        <choice>
-          <ref name="personblurb"/>
-          <ref name="email"/>
-          <ref name="address"/>
-        </choice>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of editor.element-->
-  <define name="editor.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="editor.role.attrib"/>
-    <ref name="local.editor.attrib"/>
-  </define>
-<!--end of editor.attlist-->
-<!--(see "Personal identity elements" for %person.ident.mix;)-->
-<!--end of editor.module-->
-<!-- ISBN ............................. -->
-  <define name="local.isbn.attrib">
-    <empty/>
-  </define>
-  <define name="isbn.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="isbn">
-    <element name="isbn">
-      <ref name="isbn.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of isbn.element-->
-  <define name="isbn.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="isbn.role.attrib"/>
-    <ref name="local.isbn.attrib"/>
-  </define>
-<!--end of isbn.attlist-->
-<!--end of isbn.module-->
+
+    <div db:name="editor.module">
+      <define name="local.editor.attrib">
+        <empty/>
+      </define>
+      <define name="editor.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="editor">
+        <define name="editor">
+          <element name="editor">
+            <ref name="editor.attlist"/>
+            <choice>
+              <ref name="personname"/>
+              <oneOrMore>
+                <ref name="person.ident.mix"/>
+              </oneOrMore>
+            </choice>
+            <zeroOrMore>
+              <choice>
+                <ref name="personblurb"/>
+                <ref name="email"/>
+                <ref name="address"/>
+              </choice>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="editor.attlist">
+        <define name="editor.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="editor.role.attrib"/>
+          <ref name="local.editor.attrib"/>
+        </define>
+      </div>
+
+<!--(see "Personal identity elements" for %person.ident.mix;)-->
+
+    </div>
+
+<!-- ISBN ............................. -->
+
+    <div db:name="isbn.module">
+      <define name="local.isbn.attrib">
+        <empty/>
+      </define>
+      <define name="isbn.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="isbn">
+        <define name="isbn">
+          <element name="isbn">
+            <ref name="isbn.attlist"/>
+            <zeroOrMore>
+              <ref name="docinfo.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="isbn.attlist">
+        <define name="isbn.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="isbn.role.attrib"/>
+          <ref name="local.isbn.attrib"/>
+        </define>
+      </div>
+    </div>
+
 <!-- ISSN ............................. -->
-  <define name="local.issn.attrib">
-    <empty/>
-  </define>
-  <define name="issn.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="issn">
-    <element name="issn">
-      <ref name="issn.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of issn.element-->
-  <define name="issn.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="issn.role.attrib"/>
-    <ref name="local.issn.attrib"/>
-  </define>
-<!--end of issn.attlist-->
-<!--end of issn.module-->
+
+    <div db:name="issn.module">
+      <define name="local.issn.attrib">
+        <empty/>
+      </define>
+      <define name="issn.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="issn">
+        <define name="issn">
+          <element name="issn">
+            <ref name="issn.attlist"/>
+            <zeroOrMore>
+              <ref name="docinfo.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="issn.attlist">
+        <define name="issn.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="issn.role.attrib"/>
+          <ref name="local.issn.attrib"/>
+        </define>
+      </div>
+    </div>
+
 <!-- BiblioId ................. -->
-  <define name="biblio.class.attrib">
-    <optional>
-      <attribute name="class">
-        <choice>
-          <value>uri</value>
-          <value>doi</value>
-          <value>isbn</value>
-          <value>issn</value>
-          <value>libraryofcongress</value>
-          <value>pubnumber</value>
-          <value>other</value>
-        </choice>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="otherclass"/>
-    </optional>
-  </define>
-  <define name="local.biblioid.attrib">
-    <empty/>
-  </define>
-  <define name="biblioid.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="biblioid">
-    <element name="biblioid">
-      <ref name="biblioid.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of biblioid.element-->
-  <define name="biblioid.attlist" combine="interleave">
-    <ref name="biblio.class.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="biblioid.role.attrib"/>
-    <ref name="local.biblioid.attrib"/>
-  </define>
-<!--end of biblioid.attlist-->
-<!--end of biblioid.module-->
+
+    <define name="biblio.class.attrib">
+      <optional>
+        <attribute name="class">
+          <choice>
+            <value>uri</value>
+            <value>doi</value>
+            <value>isbn</value>
+            <value>issn</value>
+            <value>libraryofcongress</value>
+            <value>pubnumber</value>
+            <value>other</value>
+          </choice>
+        </attribute>
+      </optional>
+      <optional>
+        <attribute name="otherclass"/>
+      </optional>
+    </define>
+
+    <div db:name="biblioid.module">
+      <define name="local.biblioid.attrib">
+        <empty/>
+      </define>
+      <define name="biblioid.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="biblioid">
+        <define name="biblioid">
+          <element name="biblioid">
+            <ref name="biblioid.attlist"/>
+            <zeroOrMore>
+              <ref name="docinfo.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="biblioid.attlist">
+        <define name="biblioid.attlist" combine="interleave">
+          <ref name="biblio.class.attrib"/>
+          <ref name="common.attrib"/>
+          <ref name="biblioid.role.attrib"/>
+          <ref name="local.biblioid.attrib"/>
+        </define>
+      </div>
+    </div>
+
 <!-- CiteBiblioId ................. -->
-  <define name="local.citebiblioid.attrib">
-    <empty/>
-  </define>
-  <define name="citebiblioid.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="citebiblioid">
-    <element name="citebiblioid">
-      <ref name="citebiblioid.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of citebiblioid.element-->
-  <define name="citebiblioid.attlist" combine="interleave">
-    <ref name="biblio.class.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="citebiblioid.role.attrib"/>
-    <ref name="local.citebiblioid.attrib"/>
-  </define>
-<!--end of citebiblioid.attlist-->
-<!--end of citebiblioid.module-->
+
+    <div db:name="citebiblioid.module">
+      <define name="local.citebiblioid.attrib">
+        <empty/>
+      </define>
+      <define name="citebiblioid.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="citebiblioid">
+        <define name="citebiblioid">
+          <element name="citebiblioid">
+            <ref name="citebiblioid.attlist"/>
+            <zeroOrMore>
+              <ref name="docinfo.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="citebiblioid.attlist">
+        <define name="citebiblioid.attlist" combine="interleave">
+          <ref name="biblio.class.attrib"/>
+          <ref name="common.attrib"/>
+          <ref name="citebiblioid.role.attrib"/>
+          <ref name="local.citebiblioid.attrib"/>
+        </define>
+      </div>
+    </div>
+
 <!-- BiblioSource ................. -->
-  <define name="local.bibliosource.attrib">
-    <empty/>
-  </define>
-  <define name="bibliosource.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="bibliosource">
-    <element name="bibliosource">
-      <ref name="bibliosource.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of bibliosource.element-->
-  <define name="bibliosource.attlist" combine="interleave">
-    <ref name="biblio.class.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="bibliosource.role.attrib"/>
-    <ref name="local.bibliosource.attrib"/>
-  </define>
-<!--end of bibliosource.attlist-->
-<!--end of bibliosource.module-->
+
+    <div db:name="bibliosource.module">
+      <define name="local.bibliosource.attrib">
+        <empty/>
+      </define>
+      <define name="bibliosource.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="bibliosource">
+        <define name="bibliosource">
+          <element name="bibliosource">
+            <ref name="bibliosource.attlist"/>
+            <zeroOrMore>
+              <ref name="docinfo.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="bibliosource.attlist">
+        <define name="bibliosource.attlist" combine="interleave">
+          <ref name="biblio.class.attrib"/>
+          <ref name="common.attrib"/>
+          <ref name="bibliosource.role.attrib"/>
+          <ref name="local.bibliosource.attrib"/>
+        </define>
+      </div>
+    </div>
+
 <!-- BiblioRelation ................. -->
-  <define name="local.bibliorelation.attrib">
-    <empty/>
-  </define>
-  <define name="local.bibliorelation.types">
-    <notAllowed/>
-  </define>
-  <define name="bibliorelation.type.attrib">
-    <optional>
-      <attribute name="type">
-        <choice>
-          <value>isversionof</value>
-          <value>hasversion</value>
-          <value>isreplacedby</value>
-          <value>replaces</value>
-          <value>isrequiredby</value>
-          <value>requires</value>
-          <value>ispartof</value>
-          <value>haspart</value>
-          <value>isreferencedby</value>
-          <value>references</value>
-          <value>isformatof</value>
-          <value>hasformat</value>
-          <value>othertype</value>
-          <ref name="local.bibliorelation.types"/>
-        </choice>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="othertype"/>
-    </optional>
-  </define>
-  <define name="bibliorelation.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="bibliorelation">
-    <element name="bibliorelation">
-      <ref name="bibliorelation.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of bibliorelation.element-->
-  <define name="bibliorelation.attlist" combine="interleave">
-    <ref name="biblio.class.attrib"/>
-    <ref name="bibliorelation.type.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="bibliorelation.role.attrib"/>
-    <ref name="local.bibliorelation.attrib"/>
-  </define>
-<!--end of bibliorelation.attlist-->
-<!--end of bibliorelation.module-->
+
+    <div db:name="bibliorelation.module">
+      <define name="local.bibliorelation.attrib">
+        <empty/>
+      </define>
+      <define name="local.bibliorelation.types">
+        <notAllowed/>
+      </define>
+      <define name="bibliorelation.type.attrib">
+        <optional>
+          <attribute name="type">
+            <choice>
+              <value>isversionof</value>
+              <value>hasversion</value>
+              <value>isreplacedby</value>
+              <value>replaces</value>
+              <value>isrequiredby</value>
+              <value>requires</value>
+              <value>ispartof</value>
+              <value>haspart</value>
+              <value>isreferencedby</value>
+              <value>references</value>
+              <value>isformatof</value>
+              <value>hasformat</value>
+              <value>othertype</value>
+              <ref name="local.bibliorelation.types"/>
+            </choice>
+          </attribute>
+        </optional>
+        <optional>
+          <attribute name="othertype"/>
+        </optional>
+      </define>
+      <define name="bibliorelation.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="bibliorelation">
+        <define name="bibliorelation">
+          <element name="bibliorelation">
+            <ref name="bibliorelation.attlist"/>
+            <zeroOrMore>
+              <ref name="docinfo.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="bibliorelation.attlist">
+        <define name="bibliorelation.attlist" combine="interleave">
+          <ref name="biblio.class.attrib"/>
+          <ref name="bibliorelation.type.attrib"/>
+          <ref name="common.attrib"/>
+          <ref name="bibliorelation.role.attrib"/>
+          <ref name="local.bibliorelation.attrib"/>
+        </define>
+      </div>
+    </div>
+
 <!-- BiblioCoverage ................. -->
-  <define name="local.bibliocoverage.attrib">
-    <empty/>
-  </define>
-  <define name="bibliocoverage.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="bibliocoverage">
-    <element name="bibliocoverage">
-      <ref name="bibliocoverage.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of bibliocoverage.element-->
-  <define name="bibliocoverage.attlist" combine="interleave">
-    <optional>
-      <attribute name="spatial">
-        <choice>
-          <value>dcmipoint</value>
-          <value>iso3166</value>
-          <value>dcmibox</value>
-          <value>tgn</value>
-          <value>otherspatial</value>
-        </choice>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="otherspatial"/>
-    </optional>
-    <optional>
-      <attribute name="temporal">
-        <choice>
-          <value>dcmiperiod</value>
-          <value>w3c-dtf</value>
-          <value>othertemporal</value>
-        </choice>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="othertemporal"/>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="bibliocoverage.role.attrib"/>
-    <ref name="local.bibliocoverage.attrib"/>
-  </define>
-<!--end of bibliocoverage.attlist-->
-<!--end of bibliocoverage.module-->
+
+    <div db:name="bibliocoverage.module">
+      <define name="local.bibliocoverage.attrib">
+        <empty/>
+      </define>
+      <define name="bibliocoverage.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="bibliocoverage">
+        <define name="bibliocoverage">
+          <element name="bibliocoverage">
+            <ref name="bibliocoverage.attlist"/>
+            <zeroOrMore>
+              <ref name="docinfo.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="bibliocoverage.attlist">
+        <define name="bibliocoverage.attlist" combine="interleave">
+          <optional>
+            <attribute name="spatial">
+              <choice>
+                <value>dcmipoint</value>
+                <value>iso3166</value>
+                <value>dcmibox</value>
+                <value>tgn</value>
+                <value>otherspatial</value>
+              </choice>
+            </attribute>
+          </optional>
+          <optional>
+            <attribute name="otherspatial"/>
+          </optional>
+          <optional>
+            <attribute name="temporal">
+              <choice>
+                <value>dcmiperiod</value>
+                <value>w3c-dtf</value>
+                <value>othertemporal</value>
+              </choice>
+            </attribute>
+          </optional>
+          <optional>
+            <attribute name="othertemporal"/>
+          </optional>
+          <ref name="common.attrib"/>
+          <ref name="bibliocoverage.role.attrib"/>
+          <ref name="local.bibliocoverage.attrib"/>
+        </define>
+      </div>
+    </div>
+
 <!-- InvPartNumber .................... -->
-  <define name="local.invpartnumber.attrib">
-    <empty/>
-  </define>
-  <define name="invpartnumber.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="invpartnumber">
-    <element name="invpartnumber">
-      <ref name="invpartnumber.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of invpartnumber.element-->
-  <define name="invpartnumber.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="invpartnumber.role.attrib"/>
-    <ref name="local.invpartnumber.attrib"/>
-  </define>
-<!--end of invpartnumber.attlist-->
-<!--end of invpartnumber.module-->
+
+    <div db:name="invpartnumber.module">
+      <define name="local.invpartnumber.attrib">
+        <empty/>
+      </define>
+      <define name="invpartnumber.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="invpartnumber">
+        <define name="invpartnumber">
+          <element name="invpartnumber">
+            <ref name="invpartnumber.attlist"/>
+            <zeroOrMore>
+              <ref name="docinfo.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="invpartnumber.attlist">
+        <define name="invpartnumber.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="invpartnumber.role.attrib"/>
+          <ref name="local.invpartnumber.attrib"/>
+        </define>
+      </div>
+    </div>
+
 <!-- IssueNum ......................... -->
-  <define name="local.issuenum.attrib">
-    <empty/>
-  </define>
-  <define name="issuenum.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="issuenum">
-    <element name="issuenum">
-      <ref name="issuenum.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of issuenum.element-->
-  <define name="issuenum.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="issuenum.role.attrib"/>
-    <ref name="local.issuenum.attrib"/>
-  </define>
-<!--end of issuenum.attlist-->
-<!--end of issuenum.module-->
+
+    <div db:name="issuenum.module">
+      <define name="local.issuenum.attrib">
+        <empty/>
+      </define>
+      <define name="issuenum.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="issuenum">
+        <define name="issuenum">
+          <element name="issuenum">
+            <ref name="issuenum.attlist"/>
+            <zeroOrMore>
+              <ref name="docinfo.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="issuenum.attlist">
+        <define name="issuenum.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="issuenum.role.attrib"/>
+          <ref name="local.issuenum.attrib"/>
+        </define>
+      </div>
+    </div>
+
 <!-- LegalNotice ...................... -->
-  <define name="local.legalnotice.attrib">
-    <empty/>
-  </define>
-  <define name="legalnotice.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="legalnotice">
-    <element name="legalnotice">
-      <ref name="legalnotice.attlist"/>
-      <optional>
-        <ref name="blockinfo"/>
-      </optional>
-      <optional>
-        <ref name="title"/>
-      </optional>
-      <oneOrMore>
-        <ref name="legalnotice.mix"/>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of legalnotice.element-->
-  <define name="legalnotice.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="legalnotice.role.attrib"/>
-    <ref name="local.legalnotice.attrib"/>
-  </define>
-<!--end of legalnotice.attlist-->
-<!--end of legalnotice.module-->
+
+    <div db:name="legalnotice.module">
+      <define name="local.legalnotice.attrib">
+        <empty/>
+      </define>
+      <define name="legalnotice.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="legalnotice">
+        <define name="legalnotice">
+          <element name="legalnotice">
+            <ref name="legalnotice.attlist"/>
+            <optional>
+              <ref name="blockinfo"/>
+            </optional>
+            <optional>
+              <ref name="title"/>
+            </optional>
+            <oneOrMore>
+              <ref name="legalnotice.mix"/>
+            </oneOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="legalnotice.attlist">
+        <define name="legalnotice.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="legalnotice.role.attrib"/>
+          <ref name="local.legalnotice.attrib"/>
+        </define>
+      </div>
+    </div>
+
 <!-- ModeSpec ......................... -->
-  <define name="local.modespec.attrib">
-    <empty/>
-  </define>
-  <define name="modespec.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="modespec">
-    <element name="modespec">
-      <ref name="modespec.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of modespec.element-->
+
+    <div db:name="modespec.module">
+      <define name="local.modespec.attrib">
+        <empty/>
+      </define>
+      <define name="modespec.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="modespec">
+        <define name="modespec">
+          <element name="modespec">
+            <ref name="modespec.attlist"/>
+            <zeroOrMore>
+              <ref name="docinfo.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
 <!-- Application: Type of action required for completion
                of the links to which the ModeSpec is relevant (e.g.,
                retrieval query) -->
-  <define name="modespec.attlist" combine="interleave">
-    <optional>
-      <attribute name="application">
-        <choice>
-          <ref name="notation.class"/>
-        </choice>
-      </attribute>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="modespec.role.attrib"/>
-    <ref name="local.modespec.attrib"/>
-  </define>
-<!--end of modespec.attlist-->
-<!--end of modespec.module-->
+
+      <div db:name="modespec.attlist">
+        <define name="modespec.attlist" combine="interleave">
+          <optional>
+            <attribute name="application">
+              <choice>
+                <ref name="notation.class"/>
+              </choice>
+            </attribute>
+          </optional>
+          <ref name="common.attrib"/>
+          <ref name="modespec.role.attrib"/>
+          <ref name="local.modespec.attrib"/>
+        </define>
+      </div>
+    </div>
+
 <!-- OrgName .......................... -->
-  <define name="local.orgname.attrib">
-    <empty/>
-  </define>
-  <define name="orgname.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="orgname">
-    <element name="orgname">
-      <ref name="orgname.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of orgname.element-->
-  <define name="orgname.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <optional>
-      <attribute name="class">
-        <choice>
-          <value>corporation</value>
-          <value>nonprofit</value>
-          <value>consortium</value>
-          <value>informal</value>
-          <value>other</value>
-        </choice>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="otherclass"/>
-    </optional>
-    <ref name="orgname.role.attrib"/>
-    <ref name="local.orgname.attrib"/>
-  </define>
-<!--end of orgname.attlist-->
-<!--end of orgname.module-->
+
+    <div db:name="orgname.module">
+      <define name="local.orgname.attrib">
+        <empty/>
+      </define>
+      <define name="orgname.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="orgname">
+        <define name="orgname">
+          <element name="orgname">
+            <ref name="orgname.attlist"/>
+            <zeroOrMore>
+              <ref name="docinfo.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="orgname.attlist">
+        <define name="orgname.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <optional>
+            <attribute name="class">
+              <choice>
+                <value>corporation</value>
+                <value>nonprofit</value>
+                <value>consortium</value>
+                <value>informal</value>
+                <value>other</value>
+              </choice>
+            </attribute>
+          </optional>
+          <optional>
+            <attribute name="otherclass"/>
+          </optional>
+          <ref name="orgname.role.attrib"/>
+          <ref name="local.orgname.attrib"/>
+        </define>
+      </div>
+    </div>
+
 <!-- OtherCredit ...................... -->
-  <define name="local.othercredit.attrib">
-    <empty/>
-  </define>
-  <define name="othercredit.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="othercredit">
-    <element name="othercredit">
-      <ref name="othercredit.attlist"/>
-      <choice>
-        <ref name="personname"/>
-        <oneOrMore>
-          <ref name="person.ident.mix"/>
-        </oneOrMore>
-      </choice>
-      <zeroOrMore>
-        <choice>
-          <ref name="personblurb"/>
-          <ref name="email"/>
-          <ref name="address"/>
-        </choice>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of othercredit.element-->
-  <define name="othercredit.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="othercredit.role.attrib"/>
-    <ref name="local.othercredit.attrib"/>
-  </define>
-<!--end of othercredit.attlist-->
-<!--(see "Personal identity elements" for %person.ident.mix;)-->
-<!--end of othercredit.module-->
-<!-- PageNums ......................... -->
-  <define name="local.pagenums.attrib">
-    <empty/>
-  </define>
-  <define name="pagenums.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="pagenums">
-    <element name="pagenums">
-      <ref name="pagenums.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of pagenums.element-->
-  <define name="pagenums.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="pagenums.role.attrib"/>
-    <ref name="local.pagenums.attrib"/>
-  </define>
-<!--end of pagenums.attlist-->
-<!--end of pagenums.module-->
+
+    <div db:name="othercredit.module">
+      <define name="local.othercredit.attrib">
+        <empty/>
+      </define>
+      <define name="othercredit.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="othercredit">
+        <define name="othercredit">
+          <element name="othercredit">
+            <ref name="othercredit.attlist"/>
+            <choice>
+              <ref name="personname"/>
+              <oneOrMore>
+                <ref name="person.ident.mix"/>
+              </oneOrMore>
+            </choice>
+            <zeroOrMore>
+              <choice>
+                <ref name="personblurb"/>
+                <ref name="email"/>
+                <ref name="address"/>
+              </choice>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="othercredit.attlist">
+        <define name="othercredit.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="othercredit.role.attrib"/>
+          <ref name="local.othercredit.attrib"/>
+        </define>
+      </div>
+
+<!--(see "Personal identity elements" for %person.ident.mix;)-->
+
+    </div>
+
+<!-- PageNums ......................... -->
+
+    <div db:name="pagenums.module">
+      <define name="local.pagenums.attrib">
+        <empty/>
+      </define>
+      <define name="pagenums.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="pagenums">
+        <define name="pagenums">
+          <element name="pagenums">
+            <ref name="pagenums.attlist"/>
+            <zeroOrMore>
+              <ref name="docinfo.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="pagenums.attlist">
+        <define name="pagenums.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="pagenums.role.attrib"/>
+          <ref name="local.pagenums.attrib"/>
+        </define>
+      </div>
+    </div>
+
 <!-- Personal identity elements ....... -->
 <!-- These elements are used only within Author, Editor, and
 OtherCredit. -->
-  <define name="local.contrib.attrib">
-    <empty/>
-  </define>
-  <define name="contrib.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="contrib">
-    <element name="contrib">
-      <ref name="contrib.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of contrib.element-->
-  <define name="contrib.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="contrib.role.attrib"/>
-    <ref name="local.contrib.attrib"/>
-  </define>
-<!--end of contrib.attlist-->
-<!--end of contrib.module-->
-  <define name="local.firstname.attrib">
-    <empty/>
-  </define>
-  <define name="firstname.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="firstname">
-    <element name="firstname">
-      <ref name="firstname.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of firstname.element-->
-  <define name="firstname.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="firstname.role.attrib"/>
-    <ref name="local.firstname.attrib"/>
-  </define>
-<!--end of firstname.attlist-->
-<!--end of firstname.module-->
-  <define name="local.honorific.attrib">
-    <empty/>
-  </define>
-  <define name="honorific.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="honorific">
-    <element name="honorific">
-      <ref name="honorific.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of honorific.element-->
-  <define name="honorific.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="honorific.role.attrib"/>
-    <ref name="local.honorific.attrib"/>
-  </define>
-<!--end of honorific.attlist-->
-<!--end of honorific.module-->
-  <define name="local.lineage.attrib">
-    <empty/>
-  </define>
-  <define name="lineage.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="lineage">
-    <element name="lineage">
-      <ref name="lineage.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of lineage.element-->
-  <define name="lineage.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="lineage.role.attrib"/>
-    <ref name="local.lineage.attrib"/>
-  </define>
-<!--end of lineage.attlist-->
-<!--end of lineage.module-->
-  <define name="local.othername.attrib">
-    <empty/>
-  </define>
-  <define name="othername.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="othername">
-    <element name="othername">
-      <ref name="othername.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of othername.element-->
-  <define name="othername.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="othername.role.attrib"/>
-    <ref name="local.othername.attrib"/>
-  </define>
-<!--end of othername.attlist-->
-<!--end of othername.module-->
-  <define name="local.surname.attrib">
-    <empty/>
-  </define>
-  <define name="surname.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="surname">
-    <element name="surname">
-      <ref name="surname.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of surname.element-->
-  <define name="surname.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="surname.role.attrib"/>
-    <ref name="local.surname.attrib"/>
-  </define>
-<!--end of surname.attlist-->
-<!--end of surname.module-->
-<!--end of person.ident.module-->
+
+    <div db:name="person.ident.module">
+
+      <div db:name="contrib.module">
+        <define name="local.contrib.attrib">
+          <empty/>
+        </define>
+        <define name="contrib.role.attrib">
+          <ref name="role.attrib"/>
+        </define>
+
+        <div db:name="contrib">
+          <define name="contrib">
+            <element name="contrib">
+              <ref name="contrib.attlist"/>
+              <zeroOrMore>
+                <ref name="docinfo.char.mix"/>
+              </zeroOrMore>
+            </element>
+          </define>
+        </div>
+
+        <div db:name="contrib.attlist">
+          <define name="contrib.attlist" combine="interleave">
+            <ref name="common.attrib"/>
+            <ref name="contrib.role.attrib"/>
+            <ref name="local.contrib.attrib"/>
+          </define>
+        </div>
+      </div>
+
+      <div db:name="firstname.module">
+        <define name="local.firstname.attrib">
+          <empty/>
+        </define>
+        <define name="firstname.role.attrib">
+          <ref name="role.attrib"/>
+        </define>
+
+        <div db:name="firstname">
+          <define name="firstname">
+            <element name="firstname">
+              <ref name="firstname.attlist"/>
+              <zeroOrMore>
+                <ref name="docinfo.char.mix"/>
+              </zeroOrMore>
+            </element>
+          </define>
+        </div>
+
+        <div db:name="firstname.attlist">
+          <define name="firstname.attlist" combine="interleave">
+            <ref name="common.attrib"/>
+            <ref name="firstname.role.attrib"/>
+            <ref name="local.firstname.attrib"/>
+          </define>
+        </div>
+      </div>
+
+      <div db:name="honorific.module">
+        <define name="local.honorific.attrib">
+          <empty/>
+        </define>
+        <define name="honorific.role.attrib">
+          <ref name="role.attrib"/>
+        </define>
+
+        <div db:name="honorific">
+          <define name="honorific">
+            <element name="honorific">
+              <ref name="honorific.attlist"/>
+              <zeroOrMore>
+                <ref name="docinfo.char.mix"/>
+              </zeroOrMore>
+            </element>
+          </define>
+        </div>
+
+        <div db:name="honorific.attlist">
+          <define name="honorific.attlist" combine="interleave">
+            <ref name="common.attrib"/>
+            <ref name="honorific.role.attrib"/>
+            <ref name="local.honorific.attrib"/>
+          </define>
+        </div>
+      </div>
+
+      <div db:name="lineage.module">
+        <define name="local.lineage.attrib">
+          <empty/>
+        </define>
+        <define name="lineage.role.attrib">
+          <ref name="role.attrib"/>
+        </define>
+
+        <div db:name="lineage">
+          <define name="lineage">
+            <element name="lineage">
+              <ref name="lineage.attlist"/>
+              <zeroOrMore>
+                <ref name="docinfo.char.mix"/>
+              </zeroOrMore>
+            </element>
+          </define>
+        </div>
+
+        <div db:name="lineage.attlist">
+          <define name="lineage.attlist" combine="interleave">
+            <ref name="common.attrib"/>
+            <ref name="lineage.role.attrib"/>
+            <ref name="local.lineage.attrib"/>
+          </define>
+        </div>
+      </div>
+
+      <div db:name="othername.module">
+        <define name="local.othername.attrib">
+          <empty/>
+        </define>
+        <define name="othername.role.attrib">
+          <ref name="role.attrib"/>
+        </define>
+
+        <div db:name="othername">
+          <define name="othername">
+            <element name="othername">
+              <ref name="othername.attlist"/>
+              <zeroOrMore>
+                <ref name="docinfo.char.mix"/>
+              </zeroOrMore>
+            </element>
+          </define>
+        </div>
+
+        <div db:name="othername.attlist">
+          <define name="othername.attlist" combine="interleave">
+            <ref name="common.attrib"/>
+            <ref name="othername.role.attrib"/>
+            <ref name="local.othername.attrib"/>
+          </define>
+        </div>
+      </div>
+
+      <div db:name="surname.module">
+        <define name="local.surname.attrib">
+          <empty/>
+        </define>
+        <define name="surname.role.attrib">
+          <ref name="role.attrib"/>
+        </define>
+
+        <div db:name="surname">
+          <define name="surname">
+            <element name="surname">
+              <ref name="surname.attlist"/>
+              <zeroOrMore>
+                <ref name="docinfo.char.mix"/>
+              </zeroOrMore>
+            </element>
+          </define>
+        </div>
+
+        <div db:name="surname.attlist">
+          <define name="surname.attlist" combine="interleave">
+            <ref name="common.attrib"/>
+            <ref name="surname.role.attrib"/>
+            <ref name="local.surname.attrib"/>
+          </define>
+        </div>
+      </div>
+    </div>
+
 <!-- PrintHistory ..................... -->
-  <define name="local.printhistory.attrib">
-    <empty/>
-  </define>
-  <define name="printhistory.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="printhistory">
-    <element name="printhistory">
-      <ref name="printhistory.attlist"/>
-      <oneOrMore>
-        <ref name="para.class"/>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of printhistory.element-->
-  <define name="printhistory.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="printhistory.role.attrib"/>
-    <ref name="local.printhistory.attrib"/>
-  </define>
-<!--end of printhistory.attlist-->
-<!--end of printhistory.module-->
+
+    <div db:name="printhistory.module">
+      <define name="local.printhistory.attrib">
+        <empty/>
+      </define>
+      <define name="printhistory.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="printhistory">
+        <define name="printhistory">
+          <element name="printhistory">
+            <ref name="printhistory.attlist"/>
+            <oneOrMore>
+              <ref name="para.class"/>
+            </oneOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="printhistory.attlist">
+        <define name="printhistory.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="printhistory.role.attrib"/>
+          <ref name="local.printhistory.attrib"/>
+        </define>
+      </div>
+    </div>
+
 <!-- ProductName ...................... -->
-  <define name="local.productname.attrib">
-    <empty/>
-  </define>
-  <define name="productname.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="productname">
-    <element name="productname">
-      <ref name="productname.attlist"/>
-      <zeroOrMore>
-        <ref name="para.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of productname.element-->
+
+    <div db:name="productname.module">
+      <define name="local.productname.attrib">
+        <empty/>
+      </define>
+      <define name="productname.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="productname">
+        <define name="productname">
+          <element name="productname">
+            <ref name="productname.attlist"/>
+            <zeroOrMore>
+              <ref name="para.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
 <!-- Class: More precisely identifies the item the element names -->
-  <define name="productname.attlist" combine="interleave">
-    <optional>
-      <attribute name="class" a:defaultValue="trade">
-        <choice>
-          <value>service</value>
-          <value>trade</value>
-          <value>registered</value>
-          <value>copyright</value>
-        </choice>
-      </attribute>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="productname.role.attrib"/>
-    <ref name="local.productname.attrib"/>
-  </define>
-<!--end of productname.attlist-->
-<!--end of productname.module-->
+
+      <div db:name="productname.attlist">
+        <define name="productname.attlist" combine="interleave">
+          <optional>
+            <attribute name="class" a:defaultValue="trade">
+              <choice>
+                <value>service</value>
+                <value>trade</value>
+                <value>registered</value>
+                <value>copyright</value>
+              </choice>
+            </attribute>
+          </optional>
+          <ref name="common.attrib"/>
+          <ref name="productname.role.attrib"/>
+          <ref name="local.productname.attrib"/>
+        </define>
+      </div>
+    </div>
+
 <!-- ProductNumber .................... -->
-  <define name="local.productnumber.attrib">
-    <empty/>
-  </define>
-  <define name="productnumber.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="productnumber">
-    <element name="productnumber">
-      <ref name="productnumber.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of productnumber.element-->
-  <define name="productnumber.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="productnumber.role.attrib"/>
-    <ref name="local.productnumber.attrib"/>
-  </define>
-<!--end of productnumber.attlist-->
-<!--end of productnumber.module-->
+
+    <div db:name="productnumber.module">
+      <define name="local.productnumber.attrib">
+        <empty/>
+      </define>
+      <define name="productnumber.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="productnumber">
+        <define name="productnumber">
+          <element name="productnumber">
+            <ref name="productnumber.attlist"/>
+            <zeroOrMore>
+              <ref name="docinfo.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="productnumber.attlist">
+        <define name="productnumber.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="productnumber.role.attrib"/>
+          <ref name="local.productnumber.attrib"/>
+        </define>
+      </div>
+    </div>
+
 <!-- PubDate .......................... -->
-  <define name="local.pubdate.attrib">
-    <empty/>
-  </define>
-  <define name="pubdate.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="pubdate">
-    <element name="pubdate">
-      <ref name="pubdate.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of pubdate.element-->
-  <define name="pubdate.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="pubdate.role.attrib"/>
-    <ref name="local.pubdate.attrib"/>
-  </define>
-<!--end of pubdate.attlist-->
-<!--end of pubdate.module-->
+
+    <div db:name="pubdate.module">
+      <define name="local.pubdate.attrib">
+        <empty/>
+      </define>
+      <define name="pubdate.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="pubdate">
+        <define name="pubdate">
+          <element name="pubdate">
+            <ref name="pubdate.attlist"/>
+            <zeroOrMore>
+              <ref name="docinfo.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="pubdate.attlist">
+        <define name="pubdate.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="pubdate.role.attrib"/>
+          <ref name="local.pubdate.attrib"/>
+        </define>
+      </div>
+    </div>
+
 <!-- Publisher ........................ -->
-  <define name="local.publisher.attrib">
-    <empty/>
-  </define>
-  <define name="publisher.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="publisher">
-    <element name="publisher">
-      <ref name="publisher.attlist"/>
-      <ref name="publishername"/>
-      <zeroOrMore>
-        <ref name="address"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of publisher.element-->
-  <define name="publisher.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="publisher.role.attrib"/>
-    <ref name="local.publisher.attrib"/>
-  </define>
-<!--end of publisher.attlist-->
-<!--end of publisher.module-->
-  <define name="local.publishername.attrib">
-    <empty/>
-  </define>
-  <define name="publishername.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="publishername">
-    <element name="publishername">
-      <ref name="publishername.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of publishername.element-->
-  <define name="publishername.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="publishername.role.attrib"/>
-    <ref name="local.publishername.attrib"/>
-  </define>
-<!--end of publishername.attlist-->
-<!--end of publishername.module-->
+
+    <div db:name="publisher.content.module">
+
+      <div db:name="publisher.module">
+        <define name="local.publisher.attrib">
+          <empty/>
+        </define>
+        <define name="publisher.role.attrib">
+          <ref name="role.attrib"/>
+        </define>
+
+        <div db:name="publisher">
+          <define name="publisher">
+            <element name="publisher">
+              <ref name="publisher.attlist"/>
+              <ref name="publishername"/>
+              <zeroOrMore>
+                <ref name="address"/>
+              </zeroOrMore>
+            </element>
+          </define>
+        </div>
+
+        <div db:name="publisher.attlist">
+          <define name="publisher.attlist" combine="interleave">
+            <ref name="common.attrib"/>
+            <ref name="publisher.role.attrib"/>
+            <ref name="local.publisher.attrib"/>
+          </define>
+        </div>
+      </div>
+
+      <div db:name="publishername.module">
+        <define name="local.publishername.attrib">
+          <empty/>
+        </define>
+        <define name="publishername.role.attrib">
+          <ref name="role.attrib"/>
+        </define>
+
+        <div db:name="publishername">
+          <define name="publishername">
+            <element name="publishername">
+              <ref name="publishername.attlist"/>
+              <zeroOrMore>
+                <ref name="docinfo.char.mix"/>
+              </zeroOrMore>
+            </element>
+          </define>
+        </div>
+
+        <div db:name="publishername.attlist">
+          <define name="publishername.attlist" combine="interleave">
+            <ref name="common.attrib"/>
+            <ref name="publishername.role.attrib"/>
+            <ref name="local.publishername.attrib"/>
+          </define>
+        </div>
+      </div>
+
 <!-- Address (defined elsewhere in this section)-->
-<!--end of publisher.content.module-->
+
+    </div>
+
 <!-- PubsNumber ....................... -->
-  <define name="local.pubsnumber.attrib">
-    <empty/>
-  </define>
-  <define name="pubsnumber.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="pubsnumber">
-    <element name="pubsnumber">
-      <ref name="pubsnumber.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of pubsnumber.element-->
-  <define name="pubsnumber.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="pubsnumber.role.attrib"/>
-    <ref name="local.pubsnumber.attrib"/>
-  </define>
-<!--end of pubsnumber.attlist-->
-<!--end of pubsnumber.module-->
+
+    <div db:name="pubsnumber.module">
+      <define name="local.pubsnumber.attrib">
+        <empty/>
+      </define>
+      <define name="pubsnumber.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="pubsnumber">
+        <define name="pubsnumber">
+          <element name="pubsnumber">
+            <ref name="pubsnumber.attlist"/>
+            <zeroOrMore>
+              <ref name="docinfo.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="pubsnumber.attlist">
+        <define name="pubsnumber.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="pubsnumber.role.attrib"/>
+          <ref name="local.pubsnumber.attrib"/>
+        </define>
+      </div>
+    </div>
+
 <!-- ReleaseInfo ...................... -->
-  <define name="local.releaseinfo.attrib">
-    <empty/>
-  </define>
-  <define name="releaseinfo.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="releaseinfo">
-    <element name="releaseinfo">
-      <ref name="releaseinfo.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of releaseinfo.element-->
-  <define name="releaseinfo.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="releaseinfo.role.attrib"/>
-    <ref name="local.releaseinfo.attrib"/>
-  </define>
-<!--end of releaseinfo.attlist-->
-<!--end of releaseinfo.module-->
+
+    <div db:name="releaseinfo.module">
+      <define name="local.releaseinfo.attrib">
+        <empty/>
+      </define>
+      <define name="releaseinfo.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="releaseinfo">
+        <define name="releaseinfo">
+          <element name="releaseinfo">
+            <ref name="releaseinfo.attlist"/>
+            <zeroOrMore>
+              <ref name="docinfo.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="releaseinfo.attlist">
+        <define name="releaseinfo.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="releaseinfo.role.attrib"/>
+          <ref name="local.releaseinfo.attrib"/>
+        </define>
+      </div>
+    </div>
+
 <!-- RevHistory ....................... -->
-  <define name="local.revhistory.attrib">
-    <empty/>
-  </define>
-  <define name="revhistory.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="revhistory">
-    <element name="revhistory">
-      <ref name="revhistory.attlist"/>
-      <oneOrMore>
-        <ref name="revision"/>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of revhistory.element-->
-  <define name="revhistory.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="revhistory.role.attrib"/>
-    <ref name="local.revhistory.attrib"/>
-  </define>
-<!--end of revhistory.attlist-->
-<!--end of revhistory.module-->
-  <define name="local.revision.attrib">
-    <empty/>
-  </define>
-  <define name="revision.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="revision">
-    <element name="revision">
-      <ref name="revision.attlist"/>
-      <ref name="revnumber"/>
-      <ref name="date"/>
-      <zeroOrMore>
-        <ref name="authorinitials"/>
-      </zeroOrMore>
-      <optional>
-        <choice>
-          <ref name="revremark"/>
-          <ref name="revdescription"/>
-        </choice>
-      </optional>
-    </element>
-  </define>
-<!--end of revision.element-->
-  <define name="revision.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="revision.role.attrib"/>
-    <ref name="local.revision.attrib"/>
-  </define>
-<!--end of revision.attlist-->
-<!--end of revision.module-->
-  <define name="local.revnumber.attrib">
-    <empty/>
-  </define>
-  <define name="revnumber.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="revnumber">
-    <element name="revnumber">
-      <ref name="revnumber.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of revnumber.element-->
-  <define name="revnumber.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="revnumber.role.attrib"/>
-    <ref name="local.revnumber.attrib"/>
-  </define>
-<!--end of revnumber.attlist-->
-<!--end of revnumber.module-->
+
+    <div db:name="revhistory.content.module">
+
+      <div db:name="revhistory.module">
+        <define name="local.revhistory.attrib">
+          <empty/>
+        </define>
+        <define name="revhistory.role.attrib">
+          <ref name="role.attrib"/>
+        </define>
+
+        <div db:name="revhistory">
+          <define name="revhistory">
+            <element name="revhistory">
+              <ref name="revhistory.attlist"/>
+              <oneOrMore>
+                <ref name="revision"/>
+              </oneOrMore>
+            </element>
+          </define>
+        </div>
+
+        <div db:name="revhistory.attlist">
+          <define name="revhistory.attlist" combine="interleave">
+            <ref name="common.attrib"/>
+            <ref name="revhistory.role.attrib"/>
+            <ref name="local.revhistory.attrib"/>
+          </define>
+        </div>
+      </div>
+
+      <div db:name="revision.module">
+        <define name="local.revision.attrib">
+          <empty/>
+        </define>
+        <define name="revision.role.attrib">
+          <ref name="role.attrib"/>
+        </define>
+
+        <div db:name="revision">
+          <define name="revision">
+            <element name="revision">
+              <ref name="revision.attlist"/>
+              <ref name="revnumber"/>
+              <ref name="date"/>
+              <zeroOrMore>
+                <ref name="authorinitials"/>
+              </zeroOrMore>
+              <optional>
+                <choice>
+                  <ref name="revremark"/>
+                  <ref name="revdescription"/>
+                </choice>
+              </optional>
+            </element>
+          </define>
+        </div>
+
+        <div db:name="revision.attlist">
+          <define name="revision.attlist" combine="interleave">
+            <ref name="common.attrib"/>
+            <ref name="revision.role.attrib"/>
+            <ref name="local.revision.attrib"/>
+          </define>
+        </div>
+      </div>
+
+      <div db:name="revnumber.module">
+        <define name="local.revnumber.attrib">
+          <empty/>
+        </define>
+        <define name="revnumber.role.attrib">
+          <ref name="role.attrib"/>
+        </define>
+
+        <div db:name="revnumber">
+          <define name="revnumber">
+            <element name="revnumber">
+              <ref name="revnumber.attlist"/>
+              <zeroOrMore>
+                <ref name="docinfo.char.mix"/>
+              </zeroOrMore>
+            </element>
+          </define>
+        </div>
+
+        <div db:name="revnumber.attlist">
+          <define name="revnumber.attlist" combine="interleave">
+            <ref name="common.attrib"/>
+            <ref name="revnumber.role.attrib"/>
+            <ref name="local.revnumber.attrib"/>
+          </define>
+        </div>
+      </div>
+
 <!-- Date (defined elsewhere in this section)-->
 <!-- AuthorInitials (defined elsewhere in this section)-->
-  <define name="local.revremark.attrib">
-    <empty/>
-  </define>
-  <define name="revremark.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="revremark">
-    <element name="revremark">
-      <ref name="revremark.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of revremark.element-->
-  <define name="revremark.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="revremark.role.attrib"/>
-    <ref name="local.revremark.attrib"/>
-  </define>
-<!--end of revremark.attlist-->
-<!--end of revremark.module-->
-  <define name="local.revdescription.attrib">
-    <empty/>
-  </define>
-  <define name="revdescription.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="revdescription">
-    <element name="revdescription">
-      <ref name="revdescription.attlist"/>
-      <oneOrMore>
-        <ref name="revdescription.mix"/>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of revdescription.element-->
-  <define name="revdescription.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="revdescription.role.attrib"/>
-    <ref name="local.revdescription.attrib"/>
-  </define>
-<!--end of revdescription.attlist-->
-<!--end of revdescription.module-->
-<!--end of revhistory.content.module-->
-<!-- SeriesVolNums .................... -->
-  <define name="local.seriesvolnums.attrib">
-    <empty/>
-  </define>
-  <define name="seriesvolnums.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="seriesvolnums">
-    <element name="seriesvolnums">
-      <ref name="seriesvolnums.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of seriesvolnums.element-->
-  <define name="seriesvolnums.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="seriesvolnums.role.attrib"/>
-    <ref name="local.seriesvolnums.attrib"/>
-  </define>
-<!--end of seriesvolnums.attlist-->
-<!--end of seriesvolnums.module-->
+
+      <div db:name="revremark.module">
+        <define name="local.revremark.attrib">
+          <empty/>
+        </define>
+        <define name="revremark.role.attrib">
+          <ref name="role.attrib"/>
+        </define>
+
+        <div db:name="revremark">
+          <define name="revremark">
+            <element name="revremark">
+              <ref name="revremark.attlist"/>
+              <zeroOrMore>
+                <ref name="docinfo.char.mix"/>
+              </zeroOrMore>
+            </element>
+          </define>
+        </div>
+
+        <div db:name="revremark.attlist">
+          <define name="revremark.attlist" combine="interleave">
+            <ref name="common.attrib"/>
+            <ref name="revremark.role.attrib"/>
+            <ref name="local.revremark.attrib"/>
+          </define>
+        </div>
+      </div>
+
+      <div db:name="revdescription.module">
+        <define name="local.revdescription.attrib">
+          <empty/>
+        </define>
+        <define name="revdescription.role.attrib">
+          <ref name="role.attrib"/>
+        </define>
+
+        <div db:name="revdescription">
+          <define name="revdescription">
+            <element name="revdescription">
+              <ref name="revdescription.attlist"/>
+              <oneOrMore>
+                <ref name="revdescription.mix"/>
+              </oneOrMore>
+            </element>
+          </define>
+        </div>
+
+        <div db:name="revdescription.attlist">
+          <define name="revdescription.attlist" combine="interleave">
+            <ref name="common.attrib"/>
+            <ref name="revdescription.role.attrib"/>
+            <ref name="local.revdescription.attrib"/>
+          </define>
+        </div>
+      </div>
+    </div>
+
+<!-- SeriesVolNums .................... -->
+
+    <div db:name="seriesvolnums.module">
+      <define name="local.seriesvolnums.attrib">
+        <empty/>
+      </define>
+      <define name="seriesvolnums.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="seriesvolnums">
+        <define name="seriesvolnums">
+          <element name="seriesvolnums">
+            <ref name="seriesvolnums.attlist"/>
+            <zeroOrMore>
+              <ref name="docinfo.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="seriesvolnums.attlist">
+        <define name="seriesvolnums.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="seriesvolnums.role.attrib"/>
+          <ref name="local.seriesvolnums.attrib"/>
+        </define>
+      </div>
+    </div>
+
 <!-- VolumeNum ........................ -->
-  <define name="local.volumenum.attrib">
-    <empty/>
-  </define>
-  <define name="volumenum.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="volumenum">
-    <element name="volumenum">
-      <ref name="volumenum.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of volumenum.element-->
-  <define name="volumenum.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="volumenum.role.attrib"/>
-    <ref name="local.volumenum.attrib"/>
-  </define>
-<!--end of volumenum.attlist-->
-<!--end of volumenum.module-->
+
+    <div db:name="volumenum.module">
+      <define name="local.volumenum.attrib">
+        <empty/>
+      </define>
+      <define name="volumenum.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="volumenum">
+        <define name="volumenum">
+          <element name="volumenum">
+            <ref name="volumenum.attlist"/>
+            <zeroOrMore>
+              <ref name="docinfo.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="volumenum.attlist">
+        <define name="volumenum.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="volumenum.role.attrib"/>
+          <ref name="local.volumenum.attrib"/>
+        </define>
+      </div>
+    </div>
+  </div>
+
 <!-- .................................. -->
-<!--end of docinfo.content.module-->
 <!-- ...................................................................... -->
 <!-- Inline, link, and ubiquitous elements ................................ -->
 <!-- Technical and computer terms ......................................... -->
-  <define name="local.accel.attrib">
-    <empty/>
-  </define>
-  <define name="accel.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="accel">
-    <element name="accel">
-      <ref name="accel.attlist"/>
-      <zeroOrMore>
-        <ref name="smallcptr.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of accel.element-->
-  <define name="accel.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="accel.role.attrib"/>
-    <ref name="local.accel.attrib"/>
-  </define>
-<!--end of accel.attlist-->
-<!--end of accel.module-->
-  <define name="local.action.attrib">
-    <empty/>
-  </define>
-  <define name="action.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="action">
-    <element name="action">
-      <ref name="action.attlist"/>
-      <zeroOrMore>
-        <ref name="cptr.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of action.element-->
-  <define name="action.attlist" combine="interleave">
-    <ref name="moreinfo.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="action.role.attrib"/>
-    <ref name="local.action.attrib"/>
-  </define>
-<!--end of action.attlist-->
-<!--end of action.module-->
-  <define name="local.application.attrib">
-    <empty/>
-  </define>
-  <define name="application.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="application">
-    <element name="application">
-      <ref name="application.attlist"/>
-      <zeroOrMore>
-        <ref name="para.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of application.element-->
-  <define name="application.attlist" combine="interleave">
-    <optional>
-      <attribute name="class">
-        <choice>
-          <value>hardware</value>
-          <value>software</value>
-        </choice>
-      </attribute>
-    </optional>
-    <ref name="moreinfo.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="application.role.attrib"/>
-    <ref name="local.application.attrib"/>
-  </define>
-<!--end of application.attlist-->
-<!--end of application.module-->
-  <define name="local.classname.attrib">
-    <empty/>
-  </define>
-  <define name="classname.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="classname">
-    <element name="classname">
-      <ref name="classname.attlist"/>
-      <zeroOrMore>
-        <ref name="smallcptr.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of classname.element-->
-  <define name="classname.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="classname.role.attrib"/>
-    <ref name="local.classname.attrib"/>
-  </define>
-<!--end of classname.attlist-->
-<!--end of classname.module-->
-  <define name="local.co.attrib">
-    <empty/>
-  </define>
+
+  <div db:name="accel.module">
+    <define name="local.accel.attrib">
+      <empty/>
+    </define>
+    <define name="accel.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="accel">
+      <define name="accel">
+        <element name="accel">
+          <ref name="accel.attlist"/>
+          <zeroOrMore>
+            <ref name="smallcptr.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="accel.attlist">
+      <define name="accel.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="accel.role.attrib"/>
+        <ref name="local.accel.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="action.module">
+    <define name="local.action.attrib">
+      <empty/>
+    </define>
+    <define name="action.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="action">
+      <define name="action">
+        <element name="action">
+          <ref name="action.attlist"/>
+          <zeroOrMore>
+            <ref name="cptr.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="action.attlist">
+      <define name="action.attlist" combine="interleave">
+        <ref name="moreinfo.attrib"/>
+        <ref name="common.attrib"/>
+        <ref name="action.role.attrib"/>
+        <ref name="local.action.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="application.module">
+    <define name="local.application.attrib">
+      <empty/>
+    </define>
+    <define name="application.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="application">
+      <define name="application">
+        <element name="application">
+          <ref name="application.attlist"/>
+          <zeroOrMore>
+            <ref name="para.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="application.attlist">
+      <define name="application.attlist" combine="interleave">
+        <optional>
+          <attribute name="class">
+            <choice>
+              <value>hardware</value>
+              <value>software</value>
+            </choice>
+          </attribute>
+        </optional>
+        <ref name="moreinfo.attrib"/>
+        <ref name="common.attrib"/>
+        <ref name="application.role.attrib"/>
+        <ref name="local.application.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="classname.module">
+    <define name="local.classname.attrib">
+      <empty/>
+    </define>
+    <define name="classname.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="classname">
+      <define name="classname">
+        <element name="classname">
+          <ref name="classname.attlist"/>
+          <zeroOrMore>
+            <ref name="smallcptr.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="classname.attlist">
+      <define name="classname.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="classname.role.attrib"/>
+        <ref name="local.classname.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="co.module">
+    <define name="local.co.attrib">
+      <empty/>
+    </define>
+
 <!-- CO is a callout area of the LineColumn unit type (a single character
      position); the position is directly indicated by the location of CO. -->
-  <define name="co.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="co">
-    <element name="co">
-      <ref name="co.attlist"/>
-      <empty/>
-    </element>
-  </define>
-<!--end of co.element-->
+
+    <define name="co.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="co">
+      <define name="co">
+        <element name="co">
+          <ref name="co.attlist"/>
+          <empty/>
+        </element>
+      </define>
+    </div>
+
 <!-- bug number/symbol override or initialization -->
 <!-- to any related information -->
-  <define name="co.attlist" combine="interleave">
-    <ref name="label.attrib"/>
-    <ref name="linkends.attrib"/>
-    <ref name="idreq.common.attrib"/>
-    <ref name="co.role.attrib"/>
-    <ref name="local.co.attrib"/>
-  </define>
-<!--end of co.attlist-->
-<!--end of co.module-->
-  <define name="local.coref.attrib">
-    <empty/>
-  </define>
-<!-- COREF is a reference to a CO -->
-  <define name="coref.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="coref">
-    <element name="coref">
-      <ref name="coref.attlist"/>
+
+    <div db:name="co.attlist">
+      <define name="co.attlist" combine="interleave">
+        <ref name="label.attrib"/>
+        <ref name="linkends.attrib"/>
+        <ref name="idreq.common.attrib"/>
+        <ref name="co.role.attrib"/>
+        <ref name="local.co.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="coref.module">
+    <define name="local.coref.attrib">
       <empty/>
-    </element>
-  </define>
-<!--end of coref.element-->
+    </define>
+
+<!-- COREF is a reference to a CO -->
+
+    <define name="coref.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="coref">
+      <define name="coref">
+        <element name="coref">
+          <ref name="coref.attlist"/>
+          <empty/>
+        </element>
+      </define>
+    </div>
+
 <!-- bug number/symbol override or initialization -->
 <!-- to any related information -->
-  <define name="coref.attlist" combine="interleave">
-    <ref name="label.attrib"/>
-    <ref name="linkendreq.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="coref.role.attrib"/>
-    <ref name="local.coref.attrib"/>
-  </define>
-<!--end of coref.attlist-->
-<!--end of coref.module-->
-  <define name="local.command.attrib">
-    <empty/>
-  </define>
-  <define name="command.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="command">
-    <element name="command">
-      <ref name="command.attlist"/>
-      <zeroOrMore>
-        <ref name="cptr.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of command.element-->
-  <define name="command.attlist" combine="interleave">
-    <ref name="moreinfo.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="command.role.attrib"/>
-    <ref name="local.command.attrib"/>
-  </define>
-<!--end of command.attlist-->
-<!--end of command.module-->
-  <define name="local.computeroutput.attrib">
-    <empty/>
-  </define>
-  <define name="computeroutput.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="computeroutput">
-    <element name="computeroutput">
-      <ref name="computeroutput.attlist"/>
-      <zeroOrMore>
-        <choice>
-          <ref name="cptr.char.mix"/>
-          <ref name="co"/>
-        </choice>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of computeroutput.element-->
-  <define name="computeroutput.attlist" combine="interleave">
-    <ref name="moreinfo.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="computeroutput.role.attrib"/>
-    <ref name="local.computeroutput.attrib"/>
-  </define>
-<!--end of computeroutput.attlist-->
-<!--end of computeroutput.module-->
-  <define name="local.database.attrib">
-    <empty/>
-  </define>
-  <define name="database.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="database">
-    <element name="database">
-      <ref name="database.attlist"/>
-      <zeroOrMore>
-        <ref name="cptr.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of database.element-->
+
+    <div db:name="coref.attlist">
+      <define name="coref.attlist" combine="interleave">
+        <ref name="label.attrib"/>
+        <ref name="linkendreq.attrib"/>
+        <ref name="common.attrib"/>
+        <ref name="coref.role.attrib"/>
+        <ref name="local.coref.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="command.module">
+    <define name="local.command.attrib">
+      <empty/>
+    </define>
+    <define name="command.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="command">
+      <define name="command">
+        <element name="command">
+          <ref name="command.attlist"/>
+          <zeroOrMore>
+            <ref name="cptr.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="command.attlist">
+      <define name="command.attlist" combine="interleave">
+        <ref name="moreinfo.attrib"/>
+        <ref name="common.attrib"/>
+        <ref name="command.role.attrib"/>
+        <ref name="local.command.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="computeroutput.module">
+    <define name="local.computeroutput.attrib">
+      <empty/>
+    </define>
+    <define name="computeroutput.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="computeroutput">
+      <define name="computeroutput">
+        <element name="computeroutput">
+          <ref name="computeroutput.attlist"/>
+          <zeroOrMore>
+            <choice>
+              <ref name="cptr.char.mix"/>
+              <ref name="co"/>
+            </choice>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="computeroutput.attlist">
+      <define name="computeroutput.attlist" combine="interleave">
+        <ref name="moreinfo.attrib"/>
+        <ref name="common.attrib"/>
+        <ref name="computeroutput.role.attrib"/>
+        <ref name="local.computeroutput.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="database.module">
+    <define name="local.database.attrib">
+      <empty/>
+    </define>
+    <define name="database.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="database">
+      <define name="database">
+        <element name="database">
+          <ref name="database.attlist"/>
+          <zeroOrMore>
+            <ref name="cptr.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
 <!-- Class: Type of database the element names; no default -->
-  <define name="database.attlist" combine="interleave">
-    <optional>
-      <attribute name="class">
-        <choice>
-          <value>name</value>
-          <value>table</value>
-          <value>field</value>
-          <value>key1</value>
-          <value>key2</value>
-          <value>record</value>
-        </choice>
-      </attribute>
-    </optional>
-    <ref name="moreinfo.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="database.role.attrib"/>
-    <ref name="local.database.attrib"/>
-  </define>
-<!--end of database.attlist-->
-<!--end of database.module-->
-  <define name="local.email.attrib">
-    <empty/>
-  </define>
-  <define name="email.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="email">
-    <element name="email">
-      <ref name="email.attlist"/>
-      <zeroOrMore>
-        <ref name="docinfo.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of email.element-->
-  <define name="email.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="email.role.attrib"/>
-    <ref name="local.email.attrib"/>
-  </define>
-<!--end of email.attlist-->
-<!--end of email.module-->
-  <define name="local.envar.attrib">
-    <empty/>
-  </define>
-  <define name="envar.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="envar">
-    <element name="envar">
-      <ref name="envar.attlist"/>
-      <zeroOrMore>
-        <ref name="smallcptr.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of envar.element-->
-  <define name="envar.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="envar.role.attrib"/>
-    <ref name="local.envar.attrib"/>
-  </define>
-<!--end of envar.attlist-->
-<!--end of envar.module-->
-  <define name="local.errorcode.attrib">
-    <empty/>
-  </define>
-  <define name="errorcode.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="errorcode">
-    <element name="errorcode">
-      <ref name="errorcode.attlist"/>
-      <zeroOrMore>
-        <ref name="smallcptr.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of errorcode.element-->
-  <define name="errorcode.attlist" combine="interleave">
-    <ref name="moreinfo.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="errorcode.role.attrib"/>
-    <ref name="local.errorcode.attrib"/>
-  </define>
-<!--end of errorcode.attlist-->
-<!--end of errorcode.module-->
-  <define name="local.errorname.attrib">
-    <empty/>
-  </define>
-  <define name="errorname.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="errorname">
-    <element name="errorname">
-      <ref name="errorname.attlist"/>
-      <zeroOrMore>
-        <ref name="smallcptr.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of errorname.element-->
-  <define name="errorname.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="errorname.role.attrib"/>
-    <ref name="local.errorname.attrib"/>
-  </define>
-<!--end of errorname.attlist-->
-<!--end of errorname.module-->
-  <define name="local.errortext.attrib">
-    <empty/>
-  </define>
-  <define name="errortext.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="errortext">
-    <element name="errortext">
-      <ref name="errortext.attlist"/>
-      <zeroOrMore>
-        <ref name="smallcptr.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of errortext.element-->
-  <define name="errortext.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="errortext.role.attrib"/>
-    <ref name="local.errortext.attrib"/>
-  </define>
-<!--end of errortext.attlist-->
-<!--end of errortext.module-->
-  <define name="local.errortype.attrib">
-    <empty/>
-  </define>
-  <define name="errortype.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="errortype">
-    <element name="errortype">
-      <ref name="errortype.attlist"/>
-      <zeroOrMore>
-        <ref name="smallcptr.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of errortype.element-->
-  <define name="errortype.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="errortype.role.attrib"/>
-    <ref name="local.errortype.attrib"/>
-  </define>
-<!--end of errortype.attlist-->
-<!--end of errortype.module-->
-  <define name="local.filename.attrib">
-    <empty/>
-  </define>
-  <define name="filename.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="filename">
-    <element name="filename">
-      <ref name="filename.attlist"/>
-      <zeroOrMore>
-        <ref name="cptr.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of filename.element-->
+
+    <div db:name="database.attlist">
+      <define name="database.attlist" combine="interleave">
+        <optional>
+          <attribute name="class">
+            <choice>
+              <value>name</value>
+              <value>table</value>
+              <value>field</value>
+              <value>key1</value>
+              <value>key2</value>
+              <value>record</value>
+            </choice>
+          </attribute>
+        </optional>
+        <ref name="moreinfo.attrib"/>
+        <ref name="common.attrib"/>
+        <ref name="database.role.attrib"/>
+        <ref name="local.database.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="email.module">
+    <define name="local.email.attrib">
+      <empty/>
+    </define>
+    <define name="email.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="email">
+      <define name="email">
+        <element name="email">
+          <ref name="email.attlist"/>
+          <zeroOrMore>
+            <ref name="docinfo.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="email.attlist">
+      <define name="email.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="email.role.attrib"/>
+        <ref name="local.email.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="envar.module">
+    <define name="local.envar.attrib">
+      <empty/>
+    </define>
+    <define name="envar.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="envar">
+      <define name="envar">
+        <element name="envar">
+          <ref name="envar.attlist"/>
+          <zeroOrMore>
+            <ref name="smallcptr.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="envar.attlist">
+      <define name="envar.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="envar.role.attrib"/>
+        <ref name="local.envar.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="errorcode.module">
+    <define name="local.errorcode.attrib">
+      <empty/>
+    </define>
+    <define name="errorcode.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="errorcode">
+      <define name="errorcode">
+        <element name="errorcode">
+          <ref name="errorcode.attlist"/>
+          <zeroOrMore>
+            <ref name="smallcptr.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="errorcode.attlist">
+      <define name="errorcode.attlist" combine="interleave">
+        <ref name="moreinfo.attrib"/>
+        <ref name="common.attrib"/>
+        <ref name="errorcode.role.attrib"/>
+        <ref name="local.errorcode.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="errorname.module">
+    <define name="local.errorname.attrib">
+      <empty/>
+    </define>
+    <define name="errorname.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="errorname">
+      <define name="errorname">
+        <element name="errorname">
+          <ref name="errorname.attlist"/>
+          <zeroOrMore>
+            <ref name="smallcptr.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="errorname.attlist">
+      <define name="errorname.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="errorname.role.attrib"/>
+        <ref name="local.errorname.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="errortext.module">
+    <define name="local.errortext.attrib">
+      <empty/>
+    </define>
+    <define name="errortext.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="errortext">
+      <define name="errortext">
+        <element name="errortext">
+          <ref name="errortext.attlist"/>
+          <zeroOrMore>
+            <ref name="smallcptr.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="errortext.attlist">
+      <define name="errortext.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="errortext.role.attrib"/>
+        <ref name="local.errortext.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="errortype.module">
+    <define name="local.errortype.attrib">
+      <empty/>
+    </define>
+    <define name="errortype.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="errortype">
+      <define name="errortype">
+        <element name="errortype">
+          <ref name="errortype.attlist"/>
+          <zeroOrMore>
+            <ref name="smallcptr.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="errortype.attlist">
+      <define name="errortype.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="errortype.role.attrib"/>
+        <ref name="local.errortype.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="filename.module">
+    <define name="local.filename.attrib">
+      <empty/>
+    </define>
+    <define name="filename.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="filename">
+      <define name="filename">
+        <element name="filename">
+          <ref name="filename.attlist"/>
+          <zeroOrMore>
+            <ref name="cptr.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
 <!-- Class: Type of filename the element names; no default -->
 <!-- Path: Search path (possibly system-specific) in which
                file can be found -->
-  <define name="filename.attlist" combine="interleave">
-    <optional>
-      <attribute name="class">
-        <choice>
-          <value>headerfile</value>
-          <value>partition</value>
-          <value>devicefile</value>
-          <value>libraryfile</value>
-          <value>directory</value>
-          <value>extension</value>
-          <value>symlink</value>
-        </choice>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="path"/>
-    </optional>
-    <ref name="moreinfo.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="filename.role.attrib"/>
-    <ref name="local.filename.attrib"/>
-  </define>
-<!--end of filename.attlist-->
-<!--end of filename.module-->
-  <define name="local.function.attrib">
-    <empty/>
-  </define>
-  <define name="function.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="function">
-    <element name="function">
-      <ref name="function.attlist"/>
-      <zeroOrMore>
-        <ref name="cptr.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of function.element-->
-  <define name="function.attlist" combine="interleave">
-    <ref name="moreinfo.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="function.role.attrib"/>
-    <ref name="local.function.attrib"/>
-  </define>
-<!--end of function.attlist-->
-<!--end of function.module-->
-  <define name="local.guibutton.attrib">
-    <empty/>
-  </define>
-  <define name="guibutton.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="guibutton">
-    <element name="guibutton">
-      <ref name="guibutton.attlist"/>
-      <zeroOrMore>
-        <choice>
-          <ref name="smallcptr.char.mix"/>
-          <ref name="accel"/>
-        </choice>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of guibutton.element-->
-  <define name="guibutton.attlist" combine="interleave">
-    <ref name="moreinfo.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="guibutton.role.attrib"/>
-    <ref name="local.guibutton.attrib"/>
-  </define>
-<!--end of guibutton.attlist-->
-<!--end of guibutton.module-->
-  <define name="local.guiicon.attrib">
-    <empty/>
-  </define>
-  <define name="guiicon.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="guiicon">
-    <element name="guiicon">
-      <ref name="guiicon.attlist"/>
-      <zeroOrMore>
-        <choice>
-          <ref name="smallcptr.char.mix"/>
-          <ref name="accel"/>
-        </choice>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of guiicon.element-->
-  <define name="guiicon.attlist" combine="interleave">
-    <ref name="moreinfo.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="guiicon.role.attrib"/>
-    <ref name="local.guiicon.attrib"/>
-  </define>
-<!--end of guiicon.attlist-->
-<!--end of guiicon.module-->
-  <define name="local.guilabel.attrib">
-    <empty/>
-  </define>
-  <define name="guilabel.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="guilabel">
-    <element name="guilabel">
-      <ref name="guilabel.attlist"/>
-      <zeroOrMore>
-        <choice>
-          <ref name="smallcptr.char.mix"/>
-          <ref name="accel"/>
-        </choice>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of guilabel.element-->
-  <define name="guilabel.attlist" combine="interleave">
-    <ref name="moreinfo.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="guilabel.role.attrib"/>
-    <ref name="local.guilabel.attrib"/>
-  </define>
-<!--end of guilabel.attlist-->
-<!--end of guilabel.module-->
-  <define name="local.guimenu.attrib">
-    <empty/>
-  </define>
-  <define name="guimenu.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="guimenu">
-    <element name="guimenu">
-      <ref name="guimenu.attlist"/>
-      <zeroOrMore>
-        <choice>
-          <ref name="smallcptr.char.mix"/>
-          <ref name="accel"/>
-        </choice>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of guimenu.element-->
-  <define name="guimenu.attlist" combine="interleave">
-    <ref name="moreinfo.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="guimenu.role.attrib"/>
-    <ref name="local.guimenu.attrib"/>
-  </define>
-<!--end of guimenu.attlist-->
-<!--end of guimenu.module-->
-  <define name="local.guimenuitem.attrib">
-    <empty/>
-  </define>
-  <define name="guimenuitem.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="guimenuitem">
-    <element name="guimenuitem">
-      <ref name="guimenuitem.attlist"/>
-      <zeroOrMore>
-        <choice>
-          <ref name="smallcptr.char.mix"/>
-          <ref name="accel"/>
-        </choice>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of guimenuitem.element-->
-  <define name="guimenuitem.attlist" combine="interleave">
-    <ref name="moreinfo.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="guimenuitem.role.attrib"/>
-    <ref name="local.guimenuitem.attrib"/>
-  </define>
-<!--end of guimenuitem.attlist-->
-<!--end of guimenuitem.module-->
-  <define name="local.guisubmenu.attrib">
-    <empty/>
-  </define>
-  <define name="guisubmenu.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="guisubmenu">
-    <element name="guisubmenu">
-      <ref name="guisubmenu.attlist"/>
-      <zeroOrMore>
-        <choice>
-          <ref name="smallcptr.char.mix"/>
-          <ref name="accel"/>
-        </choice>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of guisubmenu.element-->
-  <define name="guisubmenu.attlist" combine="interleave">
-    <ref name="moreinfo.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="guisubmenu.role.attrib"/>
-    <ref name="local.guisubmenu.attrib"/>
-  </define>
-<!--end of guisubmenu.attlist-->
-<!--end of guisubmenu.module-->
-  <define name="local.hardware.attrib">
-    <empty/>
-  </define>
-  <define name="hardware.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="hardware">
-    <element name="hardware">
-      <ref name="hardware.attlist"/>
-      <zeroOrMore>
-        <ref name="cptr.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of hardware.element-->
-  <define name="hardware.attlist" combine="interleave">
-    <ref name="moreinfo.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="hardware.role.attrib"/>
-    <ref name="local.hardware.attrib"/>
-  </define>
-<!--end of hardware.attlist-->
-<!--end of hardware.module-->
-  <define name="local.interface.attrib">
-    <empty/>
-  </define>
-  <define name="interface.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="interface">
-    <element name="interface">
-      <ref name="interface.attlist"/>
-      <zeroOrMore>
-        <choice>
-          <ref name="smallcptr.char.mix"/>
-          <ref name="accel"/>
-        </choice>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of interface.element-->
+
+    <div db:name="filename.attlist">
+      <define name="filename.attlist" combine="interleave">
+        <optional>
+          <attribute name="class">
+            <choice>
+              <value>headerfile</value>
+              <value>partition</value>
+              <value>devicefile</value>
+              <value>libraryfile</value>
+              <value>directory</value>
+              <value>extension</value>
+              <value>symlink</value>
+            </choice>
+          </attribute>
+        </optional>
+        <optional>
+          <attribute name="path"/>
+        </optional>
+        <ref name="moreinfo.attrib"/>
+        <ref name="common.attrib"/>
+        <ref name="filename.role.attrib"/>
+        <ref name="local.filename.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="function.module">
+    <define name="local.function.attrib">
+      <empty/>
+    </define>
+    <define name="function.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="function">
+      <define name="function">
+        <element name="function">
+          <ref name="function.attlist"/>
+          <zeroOrMore>
+            <ref name="cptr.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="function.attlist">
+      <define name="function.attlist" combine="interleave">
+        <ref name="moreinfo.attrib"/>
+        <ref name="common.attrib"/>
+        <ref name="function.role.attrib"/>
+        <ref name="local.function.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="guibutton.module">
+    <define name="local.guibutton.attrib">
+      <empty/>
+    </define>
+    <define name="guibutton.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="guibutton">
+      <define name="guibutton">
+        <element name="guibutton">
+          <ref name="guibutton.attlist"/>
+          <zeroOrMore>
+            <choice>
+              <ref name="smallcptr.char.mix"/>
+              <ref name="accel"/>
+            </choice>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="guibutton.attlist">
+      <define name="guibutton.attlist" combine="interleave">
+        <ref name="moreinfo.attrib"/>
+        <ref name="common.attrib"/>
+        <ref name="guibutton.role.attrib"/>
+        <ref name="local.guibutton.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="guiicon.module">
+    <define name="local.guiicon.attrib">
+      <empty/>
+    </define>
+    <define name="guiicon.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="guiicon">
+      <define name="guiicon">
+        <element name="guiicon">
+          <ref name="guiicon.attlist"/>
+          <zeroOrMore>
+            <choice>
+              <ref name="smallcptr.char.mix"/>
+              <ref name="accel"/>
+            </choice>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="guiicon.attlist">
+      <define name="guiicon.attlist" combine="interleave">
+        <ref name="moreinfo.attrib"/>
+        <ref name="common.attrib"/>
+        <ref name="guiicon.role.attrib"/>
+        <ref name="local.guiicon.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="guilabel.module">
+    <define name="local.guilabel.attrib">
+      <empty/>
+    </define>
+    <define name="guilabel.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="guilabel">
+      <define name="guilabel">
+        <element name="guilabel">
+          <ref name="guilabel.attlist"/>
+          <zeroOrMore>
+            <choice>
+              <ref name="smallcptr.char.mix"/>
+              <ref name="accel"/>
+            </choice>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="guilabel.attlist">
+      <define name="guilabel.attlist" combine="interleave">
+        <ref name="moreinfo.attrib"/>
+        <ref name="common.attrib"/>
+        <ref name="guilabel.role.attrib"/>
+        <ref name="local.guilabel.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="guimenu.module">
+    <define name="local.guimenu.attrib">
+      <empty/>
+    </define>
+    <define name="guimenu.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="guimenu">
+      <define name="guimenu">
+        <element name="guimenu">
+          <ref name="guimenu.attlist"/>
+          <zeroOrMore>
+            <choice>
+              <ref name="smallcptr.char.mix"/>
+              <ref name="accel"/>
+            </choice>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="guimenu.attlist">
+      <define name="guimenu.attlist" combine="interleave">
+        <ref name="moreinfo.attrib"/>
+        <ref name="common.attrib"/>
+        <ref name="guimenu.role.attrib"/>
+        <ref name="local.guimenu.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="guimenuitem.module">
+    <define name="local.guimenuitem.attrib">
+      <empty/>
+    </define>
+    <define name="guimenuitem.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="guimenuitem">
+      <define name="guimenuitem">
+        <element name="guimenuitem">
+          <ref name="guimenuitem.attlist"/>
+          <zeroOrMore>
+            <choice>
+              <ref name="smallcptr.char.mix"/>
+              <ref name="accel"/>
+            </choice>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="guimenuitem.attlist">
+      <define name="guimenuitem.attlist" combine="interleave">
+        <ref name="moreinfo.attrib"/>
+        <ref name="common.attrib"/>
+        <ref name="guimenuitem.role.attrib"/>
+        <ref name="local.guimenuitem.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="guisubmenu.module">
+    <define name="local.guisubmenu.attrib">
+      <empty/>
+    </define>
+    <define name="guisubmenu.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="guisubmenu">
+      <define name="guisubmenu">
+        <element name="guisubmenu">
+          <ref name="guisubmenu.attlist"/>
+          <zeroOrMore>
+            <choice>
+              <ref name="smallcptr.char.mix"/>
+              <ref name="accel"/>
+            </choice>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="guisubmenu.attlist">
+      <define name="guisubmenu.attlist" combine="interleave">
+        <ref name="moreinfo.attrib"/>
+        <ref name="common.attrib"/>
+        <ref name="guisubmenu.role.attrib"/>
+        <ref name="local.guisubmenu.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="hardware.module">
+    <define name="local.hardware.attrib">
+      <empty/>
+    </define>
+    <define name="hardware.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="hardware">
+      <define name="hardware">
+        <element name="hardware">
+          <ref name="hardware.attlist"/>
+          <zeroOrMore>
+            <ref name="cptr.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="hardware.attlist">
+      <define name="hardware.attlist" combine="interleave">
+        <ref name="moreinfo.attrib"/>
+        <ref name="common.attrib"/>
+        <ref name="hardware.role.attrib"/>
+        <ref name="local.hardware.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="interface.module">
+    <define name="local.interface.attrib">
+      <empty/>
+    </define>
+    <define name="interface.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="interface">
+      <define name="interface">
+        <element name="interface">
+          <ref name="interface.attlist"/>
+          <zeroOrMore>
+            <choice>
+              <ref name="smallcptr.char.mix"/>
+              <ref name="accel"/>
+            </choice>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
 <!-- Class: Type of the Interface item; no default -->
-  <define name="interface.attlist" combine="interleave">
-    <ref name="moreinfo.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="interface.role.attrib"/>
-    <ref name="local.interface.attrib"/>
-  </define>
-<!--end of interface.attlist-->
-<!--end of interface.module-->
-  <define name="local.keycap.attrib">
-    <empty/>
-  </define>
-  <define name="keycap.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="keycap">
-    <element name="keycap">
-      <ref name="keycap.attlist"/>
-      <zeroOrMore>
-        <ref name="cptr.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of keycap.element-->
-  <define name="keycap.attlist" combine="interleave">
-    <ref name="moreinfo.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="keycap.role.attrib"/>
-    <ref name="local.keycap.attrib"/>
-  </define>
-<!--end of keycap.attlist-->
-<!--end of keycap.module-->
-  <define name="local.keycode.attrib">
-    <empty/>
-  </define>
-  <define name="keycode.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="keycode">
-    <element name="keycode">
-      <ref name="keycode.attlist"/>
-      <zeroOrMore>
-        <ref name="smallcptr.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of keycode.element-->
-  <define name="keycode.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="keycode.role.attrib"/>
-    <ref name="local.keycode.attrib"/>
-  </define>
-<!--end of keycode.attlist-->
-<!--end of keycode.module-->
-  <define name="local.keycombo.attrib">
-    <empty/>
-  </define>
-  <define name="keycombo.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="keycombo">
-    <element name="keycombo">
-      <ref name="keycombo.attlist"/>
-      <oneOrMore>
-        <choice>
-          <ref name="keycap"/>
-          <ref name="keycombo"/>
-          <ref name="keysym"/>
-          <ref name="mousebutton"/>
-        </choice>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of keycombo.element-->
-  <define name="keycombo.attlist" combine="interleave">
-    <ref name="keyaction.attrib"/>
-    <ref name="moreinfo.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="keycombo.role.attrib"/>
-    <ref name="local.keycombo.attrib"/>
-  </define>
-<!--end of keycombo.attlist-->
-<!--end of keycombo.module-->
-  <define name="local.keysym.attrib">
-    <empty/>
-  </define>
-  <define name="keysysm.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="keysym">
-    <element name="keysym">
-      <ref name="keysym.attlist"/>
-      <zeroOrMore>
-        <ref name="smallcptr.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of keysym.element-->
-  <define name="keysym.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="keysysm.role.attrib"/>
-    <ref name="local.keysym.attrib"/>
-  </define>
-<!--end of keysym.attlist-->
-<!--end of keysym.module-->
-  <define name="local.lineannotation.attrib">
-    <empty/>
-  </define>
-  <define name="lineannotation.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="lineannotation">
-    <element name="lineannotation">
-      <ref name="lineannotation.attlist"/>
-      <zeroOrMore>
-        <ref name="para.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of lineannotation.element-->
-  <define name="lineannotation.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="lineannotation.role.attrib"/>
-    <ref name="local.lineannotation.attrib"/>
-  </define>
-<!--end of lineannotation.attlist-->
-<!--end of lineannotation.module-->
-  <define name="local.literal.attrib">
-    <empty/>
-  </define>
-  <define name="literal.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="literal">
-    <element name="literal">
-      <ref name="literal.attlist"/>
-      <zeroOrMore>
-        <ref name="cptr.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of literal.element-->
-  <define name="literal.attlist" combine="interleave">
-    <ref name="moreinfo.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="literal.role.attrib"/>
-    <ref name="local.literal.attrib"/>
-  </define>
-<!--end of literal.attlist-->
-<!--end of literal.module-->
-  <define name="local.constant.attrib">
-    <empty/>
-  </define>
-  <define name="constant.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="constant">
-    <element name="constant">
-      <ref name="constant.attlist"/>
-      <zeroOrMore>
-        <ref name="smallcptr.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of constant.element-->
-  <define name="constant.attlist" combine="interleave">
-    <optional>
-      <attribute name="class">
-        <choice>
-          <value>limit</value>
-        </choice>
-      </attribute>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="constant.role.attrib"/>
-    <ref name="local.constant.attrib"/>
-  </define>
-<!--end of constant.attlist-->
-<!--end of constant.module-->
-  <define name="local.varname.attrib">
-    <empty/>
-  </define>
-  <define name="varname.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="varname">
-    <element name="varname">
-      <ref name="varname.attlist"/>
-      <zeroOrMore>
-        <ref name="smallcptr.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of varname.element-->
-  <define name="varname.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="varname.role.attrib"/>
-    <ref name="local.varname.attrib"/>
-  </define>
-<!--end of varname.attlist-->
-<!--end of varname.module-->
-  <define name="local.markup.attrib">
-    <empty/>
-  </define>
-  <define name="markup.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="markup">
-    <element name="markup">
-      <ref name="markup.attlist"/>
-      <zeroOrMore>
-        <ref name="smallcptr.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of markup.element-->
-  <define name="markup.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="markup.role.attrib"/>
-    <ref name="local.markup.attrib"/>
-  </define>
-<!--end of markup.attlist-->
-<!--end of markup.module-->
-  <define name="local.medialabel.attrib">
-    <empty/>
-  </define>
-  <define name="medialabel.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="medialabel">
-    <element name="medialabel">
-      <ref name="medialabel.attlist"/>
-      <zeroOrMore>
-        <ref name="smallcptr.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of medialabel.element-->
+
+    <div db:name="interface.attlist">
+      <define name="interface.attlist" combine="interleave">
+        <ref name="moreinfo.attrib"/>
+        <ref name="common.attrib"/>
+        <ref name="interface.role.attrib"/>
+        <ref name="local.interface.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="keycap.module">
+    <define name="local.keycap.attrib">
+      <empty/>
+    </define>
+    <define name="keycap.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="keycap">
+      <define name="keycap">
+        <element name="keycap">
+          <ref name="keycap.attlist"/>
+          <zeroOrMore>
+            <ref name="cptr.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="keycap.attlist">
+      <define name="keycap.attlist" combine="interleave">
+        <ref name="moreinfo.attrib"/>
+        <ref name="common.attrib"/>
+        <ref name="keycap.role.attrib"/>
+        <ref name="local.keycap.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="keycode.module">
+    <define name="local.keycode.attrib">
+      <empty/>
+    </define>
+    <define name="keycode.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="keycode">
+      <define name="keycode">
+        <element name="keycode">
+          <ref name="keycode.attlist"/>
+          <zeroOrMore>
+            <ref name="smallcptr.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="keycode.attlist">
+      <define name="keycode.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="keycode.role.attrib"/>
+        <ref name="local.keycode.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="keycombo.module">
+    <define name="local.keycombo.attrib">
+      <empty/>
+    </define>
+    <define name="keycombo.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="keycombo">
+      <define name="keycombo">
+        <element name="keycombo">
+          <ref name="keycombo.attlist"/>
+          <oneOrMore>
+            <choice>
+              <ref name="keycap"/>
+              <ref name="keycombo"/>
+              <ref name="keysym"/>
+              <ref name="mousebutton"/>
+            </choice>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="keycombo.attlist">
+      <define name="keycombo.attlist" combine="interleave">
+        <ref name="keyaction.attrib"/>
+        <ref name="moreinfo.attrib"/>
+        <ref name="common.attrib"/>
+        <ref name="keycombo.role.attrib"/>
+        <ref name="local.keycombo.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="keysym.module">
+    <define name="local.keysym.attrib">
+      <empty/>
+    </define>
+    <define name="keysysm.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="keysym">
+      <define name="keysym">
+        <element name="keysym">
+          <ref name="keysym.attlist"/>
+          <zeroOrMore>
+            <ref name="smallcptr.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="keysym.attlist">
+      <define name="keysym.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="keysysm.role.attrib"/>
+        <ref name="local.keysym.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="lineannotation.module">
+    <define name="local.lineannotation.attrib">
+      <empty/>
+    </define>
+    <define name="lineannotation.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="lineannotation">
+      <define name="lineannotation">
+        <element name="lineannotation">
+          <ref name="lineannotation.attlist"/>
+          <zeroOrMore>
+            <ref name="para.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="lineannotation.attlist">
+      <define name="lineannotation.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="lineannotation.role.attrib"/>
+        <ref name="local.lineannotation.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="literal.module">
+    <define name="local.literal.attrib">
+      <empty/>
+    </define>
+    <define name="literal.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="literal">
+      <define name="literal">
+        <element name="literal">
+          <ref name="literal.attlist"/>
+          <zeroOrMore>
+            <ref name="cptr.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="literal.attlist">
+      <define name="literal.attlist" combine="interleave">
+        <ref name="moreinfo.attrib"/>
+        <ref name="common.attrib"/>
+        <ref name="literal.role.attrib"/>
+        <ref name="local.literal.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="constant.module">
+    <define name="local.constant.attrib">
+      <empty/>
+    </define>
+    <define name="constant.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="constant">
+      <define name="constant">
+        <element name="constant">
+          <ref name="constant.attlist"/>
+          <zeroOrMore>
+            <ref name="smallcptr.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="constant.attlist">
+      <define name="constant.attlist" combine="interleave">
+        <optional>
+          <attribute name="class">
+            <choice>
+              <value>limit</value>
+            </choice>
+          </attribute>
+        </optional>
+        <ref name="common.attrib"/>
+        <ref name="constant.role.attrib"/>
+        <ref name="local.constant.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="varname.module">
+    <define name="local.varname.attrib">
+      <empty/>
+    </define>
+    <define name="varname.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="varname">
+      <define name="varname">
+        <element name="varname">
+          <ref name="varname.attlist"/>
+          <zeroOrMore>
+            <ref name="smallcptr.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="varname.attlist">
+      <define name="varname.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="varname.role.attrib"/>
+        <ref name="local.varname.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="markup.module">
+    <define name="local.markup.attrib">
+      <empty/>
+    </define>
+    <define name="markup.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="markup">
+      <define name="markup">
+        <element name="markup">
+          <ref name="markup.attlist"/>
+          <zeroOrMore>
+            <ref name="smallcptr.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="markup.attlist">
+      <define name="markup.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="markup.role.attrib"/>
+        <ref name="local.markup.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="medialabel.module">
+    <define name="local.medialabel.attrib">
+      <empty/>
+    </define>
+    <define name="medialabel.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="medialabel">
+      <define name="medialabel">
+        <element name="medialabel">
+          <ref name="medialabel.attlist"/>
+          <zeroOrMore>
+            <ref name="smallcptr.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
 <!-- Class: Type of medium named by the element; no default -->
-  <define name="medialabel.attlist" combine="interleave">
-    <optional>
-      <attribute name="class">
-        <choice>
-          <value>cartridge</value>
-          <value>cdrom</value>
-          <value>disk</value>
-          <value>tape</value>
-        </choice>
-      </attribute>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="medialabel.role.attrib"/>
-    <ref name="local.medialabel.attrib"/>
-  </define>
-<!--end of medialabel.attlist-->
-<!--end of medialabel.module-->
-  <define name="local.menuchoice.attrib">
-    <empty/>
-  </define>
-  <define name="menuchoice.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="menuchoice">
-    <element name="menuchoice">
-      <ref name="menuchoice.attlist"/>
-      <optional>
-        <ref name="shortcut"/>
-      </optional>
-      <oneOrMore>
-        <choice>
-          <ref name="guibutton"/>
-          <ref name="guiicon"/>
-          <ref name="guilabel"/>
-          <ref name="guimenu"/>
-          <ref name="guimenuitem"/>
-          <ref name="guisubmenu"/>
-          <ref name="interface"/>
-        </choice>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of menuchoice.element-->
-  <define name="menuchoice.attlist" combine="interleave">
-    <ref name="moreinfo.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="menuchoice.role.attrib"/>
-    <ref name="local.menuchoice.attrib"/>
-  </define>
-<!--end of menuchoice.attlist-->
-<!--end of menuchoice.module-->
+
+    <div db:name="medialabel.attlist">
+      <define name="medialabel.attlist" combine="interleave">
+        <optional>
+          <attribute name="class">
+            <choice>
+              <value>cartridge</value>
+              <value>cdrom</value>
+              <value>disk</value>
+              <value>tape</value>
+            </choice>
+          </attribute>
+        </optional>
+        <ref name="common.attrib"/>
+        <ref name="medialabel.role.attrib"/>
+        <ref name="local.medialabel.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="menuchoice.content.module">
+
+    <div db:name="menuchoice.module">
+      <define name="local.menuchoice.attrib">
+        <empty/>
+      </define>
+      <define name="menuchoice.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="menuchoice">
+        <define name="menuchoice">
+          <element name="menuchoice">
+            <ref name="menuchoice.attlist"/>
+            <optional>
+              <ref name="shortcut"/>
+            </optional>
+            <oneOrMore>
+              <choice>
+                <ref name="guibutton"/>
+                <ref name="guiicon"/>
+                <ref name="guilabel"/>
+                <ref name="guimenu"/>
+                <ref name="guimenuitem"/>
+                <ref name="guisubmenu"/>
+                <ref name="interface"/>
+              </choice>
+            </oneOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="menuchoice.attlist">
+        <define name="menuchoice.attlist" combine="interleave">
+          <ref name="moreinfo.attrib"/>
+          <ref name="common.attrib"/>
+          <ref name="menuchoice.role.attrib"/>
+          <ref name="local.menuchoice.attrib"/>
+        </define>
+      </div>
+    </div>
+
 <!-- See also KeyCombo -->
-  <define name="local.shortcut.attrib">
-    <empty/>
-  </define>
-  <define name="shortcut.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="shortcut">
-    <element name="shortcut">
-      <ref name="shortcut.attlist"/>
-      <oneOrMore>
-        <choice>
-          <ref name="keycap"/>
-          <ref name="keycombo"/>
-          <ref name="keysym"/>
-          <ref name="mousebutton"/>
-        </choice>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of shortcut.element-->
-  <define name="shortcut.attlist" combine="interleave">
-    <ref name="keyaction.attrib"/>
-    <ref name="moreinfo.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="shortcut.role.attrib"/>
-    <ref name="local.shortcut.attrib"/>
-  </define>
-<!--end of shortcut.attlist-->
-<!--end of shortcut.module-->
-<!--end of menuchoice.content.module-->
-  <define name="local.mousebutton.attrib">
-    <empty/>
-  </define>
-  <define name="mousebutton.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="mousebutton">
-    <element name="mousebutton">
-      <ref name="mousebutton.attlist"/>
-      <zeroOrMore>
-        <ref name="smallcptr.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of mousebutton.element-->
-  <define name="mousebutton.attlist" combine="interleave">
-    <ref name="moreinfo.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="mousebutton.role.attrib"/>
-    <ref name="local.mousebutton.attrib"/>
-  </define>
-<!--end of mousebutton.attlist-->
-<!--end of mousebutton.module-->
-  <define name="local.msgtext.attrib">
-    <empty/>
-  </define>
-  <define name="msgtext.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="msgtext">
-    <element name="msgtext">
-      <ref name="msgtext.attlist"/>
-      <oneOrMore>
-        <ref name="component.mix"/>
-      </oneOrMore>
-    </element>
-  </define>
-<!--end of msgtext.element-->
-  <define name="msgtext.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="msgtext.role.attrib"/>
-    <ref name="local.msgtext.attrib"/>
-  </define>
-<!--end of msgtext.attlist-->
-<!--end of msgtext.module-->
-  <define name="local.option.attrib">
-    <empty/>
-  </define>
-  <define name="option.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="option">
-    <element name="option">
-      <ref name="option.attlist"/>
-      <zeroOrMore>
-        <ref name="cptr.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of option.element-->
-  <define name="option.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="option.role.attrib"/>
-    <ref name="local.option.attrib"/>
-  </define>
-<!--end of option.attlist-->
-<!--end of option.module-->
-  <define name="local.optional.attrib">
-    <empty/>
-  </define>
-  <define name="optional.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="optional">
-    <element name="optional">
-      <ref name="optional.attlist"/>
-      <zeroOrMore>
-        <ref name="cptr.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of optional.element-->
-  <define name="optional.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="optional.role.attrib"/>
-    <ref name="local.optional.attrib"/>
-  </define>
-<!--end of optional.attlist-->
-<!--end of optional.module-->
-  <define name="local.parameter.attrib">
-    <empty/>
-  </define>
-  <define name="parameter.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="parameter">
-    <element name="parameter">
-      <ref name="parameter.attlist"/>
-      <zeroOrMore>
-        <ref name="cptr.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of parameter.element-->
+
+    <div db:name="shortcut.module">
+      <define name="local.shortcut.attrib">
+        <empty/>
+      </define>
+      <define name="shortcut.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="shortcut">
+        <define name="shortcut">
+          <element name="shortcut">
+            <ref name="shortcut.attlist"/>
+            <oneOrMore>
+              <choice>
+                <ref name="keycap"/>
+                <ref name="keycombo"/>
+                <ref name="keysym"/>
+                <ref name="mousebutton"/>
+              </choice>
+            </oneOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="shortcut.attlist">
+        <define name="shortcut.attlist" combine="interleave">
+          <ref name="keyaction.attrib"/>
+          <ref name="moreinfo.attrib"/>
+          <ref name="common.attrib"/>
+          <ref name="shortcut.role.attrib"/>
+          <ref name="local.shortcut.attrib"/>
+        </define>
+      </div>
+    </div>
+  </div>
+
+  <div db:name="mousebutton.module">
+    <define name="local.mousebutton.attrib">
+      <empty/>
+    </define>
+    <define name="mousebutton.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="mousebutton">
+      <define name="mousebutton">
+        <element name="mousebutton">
+          <ref name="mousebutton.attlist"/>
+          <zeroOrMore>
+            <ref name="smallcptr.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="mousebutton.attlist">
+      <define name="mousebutton.attlist" combine="interleave">
+        <ref name="moreinfo.attrib"/>
+        <ref name="common.attrib"/>
+        <ref name="mousebutton.role.attrib"/>
+        <ref name="local.mousebutton.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="msgtext.module">
+    <define name="local.msgtext.attrib">
+      <empty/>
+    </define>
+    <define name="msgtext.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="msgtext">
+      <define name="msgtext">
+        <element name="msgtext">
+          <ref name="msgtext.attlist"/>
+          <oneOrMore>
+            <ref name="component.mix"/>
+          </oneOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="msgtext.attlist">
+      <define name="msgtext.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="msgtext.role.attrib"/>
+        <ref name="local.msgtext.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="option.module">
+    <define name="local.option.attrib">
+      <empty/>
+    </define>
+    <define name="option.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="option">
+      <define name="option">
+        <element name="option">
+          <ref name="option.attlist"/>
+          <zeroOrMore>
+            <ref name="cptr.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="option.attlist">
+      <define name="option.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="option.role.attrib"/>
+        <ref name="local.option.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="optional.module">
+    <define name="local.optional.attrib">
+      <empty/>
+    </define>
+    <define name="optional.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="optional">
+      <define name="optional">
+        <element name="optional">
+          <ref name="optional.attlist"/>
+          <zeroOrMore>
+            <ref name="cptr.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="optional.attlist">
+      <define name="optional.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="optional.role.attrib"/>
+        <ref name="local.optional.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="parameter.module">
+    <define name="local.parameter.attrib">
+      <empty/>
+    </define>
+    <define name="parameter.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="parameter">
+      <define name="parameter">
+        <element name="parameter">
+          <ref name="parameter.attlist"/>
+          <zeroOrMore>
+            <ref name="cptr.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
 <!-- Class: Type of the Parameter; no default -->
-  <define name="parameter.attlist" combine="interleave">
-    <optional>
-      <attribute name="class">
-        <choice>
-          <value>command</value>
-          <value>function</value>
-          <value>option</value>
-        </choice>
-      </attribute>
-    </optional>
-    <ref name="moreinfo.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="parameter.role.attrib"/>
-    <ref name="local.parameter.attrib"/>
-  </define>
-<!--end of parameter.attlist-->
-<!--end of parameter.module-->
-  <define name="local.prompt.attrib">
-    <empty/>
-  </define>
-  <define name="prompt.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="prompt">
-    <element name="prompt">
-      <ref name="prompt.attlist"/>
-      <zeroOrMore>
-        <choice>
-          <ref name="smallcptr.char.mix"/>
-          <ref name="co"/>
-        </choice>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of prompt.element-->
-  <define name="prompt.attlist" combine="interleave">
-    <ref name="moreinfo.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="prompt.role.attrib"/>
-    <ref name="local.prompt.attrib"/>
-  </define>
-<!--end of prompt.attlist-->
-<!--end of prompt.module-->
-  <define name="local.property.attrib">
-    <empty/>
-  </define>
-  <define name="property.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="property">
-    <element name="property">
-      <ref name="property.attlist"/>
-      <zeroOrMore>
-        <ref name="cptr.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of property.element-->
-  <define name="property.attlist" combine="interleave">
-    <ref name="moreinfo.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="property.role.attrib"/>
-    <ref name="local.property.attrib"/>
-  </define>
-<!--end of property.attlist-->
-<!--end of property.module-->
-  <define name="local.replaceable.attrib">
-    <empty/>
-  </define>
-  <define name="replaceable.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="replaceable">
-    <element name="replaceable">
-      <ref name="replaceable.attlist"/>
-      <zeroOrMore>
-        <choice>
-          <text/>
-          <ref name="link.char.class"/>
-          <ref name="optional"/>
-          <ref name="base.char.class"/>
-          <ref name="other.char.class"/>
-          <ref name="inlinegraphic"/>
-          <ref name="inlinemediaobject"/>
-          <ref name="co"/>
-        </choice>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of replaceable.element-->
+
+    <div db:name="parameter.attlist">
+      <define name="parameter.attlist" combine="interleave">
+        <optional>
+          <attribute name="class">
+            <choice>
+              <value>command</value>
+              <value>function</value>
+              <value>option</value>
+            </choice>
+          </attribute>
+        </optional>
+        <ref name="moreinfo.attrib"/>
+        <ref name="common.attrib"/>
+        <ref name="parameter.role.attrib"/>
+        <ref name="local.parameter.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="prompt.module">
+    <define name="local.prompt.attrib">
+      <empty/>
+    </define>
+    <define name="prompt.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="prompt">
+      <define name="prompt">
+        <element name="prompt">
+          <ref name="prompt.attlist"/>
+          <zeroOrMore>
+            <choice>
+              <ref name="smallcptr.char.mix"/>
+              <ref name="co"/>
+            </choice>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="prompt.attlist">
+      <define name="prompt.attlist" combine="interleave">
+        <ref name="moreinfo.attrib"/>
+        <ref name="common.attrib"/>
+        <ref name="prompt.role.attrib"/>
+        <ref name="local.prompt.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="property.module">
+    <define name="local.property.attrib">
+      <empty/>
+    </define>
+    <define name="property.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="property">
+      <define name="property">
+        <element name="property">
+          <ref name="property.attlist"/>
+          <zeroOrMore>
+            <ref name="cptr.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="property.attlist">
+      <define name="property.attlist" combine="interleave">
+        <ref name="moreinfo.attrib"/>
+        <ref name="common.attrib"/>
+        <ref name="property.role.attrib"/>
+        <ref name="local.property.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="replaceable.module">
+    <define name="local.replaceable.attrib">
+      <empty/>
+    </define>
+    <define name="replaceable.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="replaceable">
+      <define name="replaceable">
+        <element name="replaceable">
+          <ref name="replaceable.attlist"/>
+          <zeroOrMore>
+            <choice>
+              <text/>
+              <ref name="link.char.class"/>
+              <ref name="optional"/>
+              <ref name="base.char.class"/>
+              <ref name="other.char.class"/>
+              <ref name="inlinegraphic"/>
+              <ref name="inlinemediaobject"/>
+              <ref name="co"/>
+            </choice>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
 <!-- Class: Type of information the element represents; no
                default -->
-  <define name="replaceable.attlist" combine="interleave">
-    <optional>
-      <attribute name="class">
-        <choice>
-          <value>command</value>
-          <value>function</value>
-          <value>option</value>
-          <value>parameter</value>
-        </choice>
-      </attribute>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="replaceable.role.attrib"/>
-    <ref name="local.replaceable.attrib"/>
-  </define>
-<!--end of replaceable.attlist-->
-<!--end of replaceable.module-->
-  <define name="local.returnvalue.attrib">
-    <empty/>
-  </define>
-  <define name="returnvalue.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="returnvalue">
-    <element name="returnvalue">
-      <ref name="returnvalue.attlist"/>
-      <zeroOrMore>
-        <ref name="smallcptr.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of returnvalue.element-->
-  <define name="returnvalue.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="returnvalue.role.attrib"/>
-    <ref name="local.returnvalue.attrib"/>
-  </define>
-<!--end of returnvalue.attlist-->
-<!--end of returnvalue.module-->
-  <define name="local.sgmltag.attrib">
-    <empty/>
-  </define>
-  <define name="sgmltag.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="sgmltag">
-    <element name="sgmltag">
-      <ref name="sgmltag.attlist"/>
-      <zeroOrMore>
-        <ref name="smallcptr.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of sgmltag.element-->
+
+    <div db:name="replaceable.attlist">
+      <define name="replaceable.attlist" combine="interleave">
+        <optional>
+          <attribute name="class">
+            <choice>
+              <value>command</value>
+              <value>function</value>
+              <value>option</value>
+              <value>parameter</value>
+            </choice>
+          </attribute>
+        </optional>
+        <ref name="common.attrib"/>
+        <ref name="replaceable.role.attrib"/>
+        <ref name="local.replaceable.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="returnvalue.module">
+    <define name="local.returnvalue.attrib">
+      <empty/>
+    </define>
+    <define name="returnvalue.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="returnvalue">
+      <define name="returnvalue">
+        <element name="returnvalue">
+          <ref name="returnvalue.attlist"/>
+          <zeroOrMore>
+            <ref name="smallcptr.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="returnvalue.attlist">
+      <define name="returnvalue.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="returnvalue.role.attrib"/>
+        <ref name="local.returnvalue.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="sgmltag.module">
+    <define name="local.sgmltag.attrib">
+      <empty/>
+    </define>
+    <define name="sgmltag.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="sgmltag">
+      <define name="sgmltag">
+        <element name="sgmltag">
+          <ref name="sgmltag.attlist"/>
+          <zeroOrMore>
+            <ref name="smallcptr.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
 <!-- Class: Type of SGML construct the element names; no default -->
-  <define name="sgmltag.attlist" combine="interleave">
-    <optional>
-      <attribute name="class">
-        <choice>
-          <value>attribute</value>
-          <value>attvalue</value>
-          <value>element</value>
-          <value>endtag</value>
-          <value>emptytag</value>
-          <value>genentity</value>
-          <value>numcharref</value>
-          <value>paramentity</value>
-          <value>pi</value>
-          <value>xmlpi</value>
-          <value>starttag</value>
-          <value>sgmlcomment</value>
-        </choice>
-      </attribute>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="sgmltag.role.attrib"/>
-    <ref name="local.sgmltag.attrib"/>
-  </define>
-<!--end of sgmltag.attlist-->
-<!--end of sgmltag.module-->
-  <define name="local.structfield.attrib">
-    <empty/>
-  </define>
-  <define name="structfield.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="structfield">
-    <element name="structfield">
-      <ref name="structfield.attlist"/>
-      <zeroOrMore>
-        <ref name="smallcptr.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of structfield.element-->
-  <define name="structfield.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="structfield.role.attrib"/>
-    <ref name="local.structfield.attrib"/>
-  </define>
-<!--end of structfield.attlist-->
-<!--end of structfield.module-->
-  <define name="local.structname.attrib">
-    <empty/>
-  </define>
-  <define name="structname.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="structname">
-    <element name="structname">
-      <ref name="structname.attlist"/>
-      <zeroOrMore>
-        <ref name="smallcptr.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of structname.element-->
-  <define name="structname.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="structname.role.attrib"/>
-    <ref name="local.structname.attrib"/>
-  </define>
-<!--end of structname.attlist-->
-<!--end of structname.module-->
-  <define name="local.symbol.attrib">
-    <empty/>
-  </define>
-  <define name="symbol.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="symbol">
-    <element name="symbol">
-      <ref name="symbol.attlist"/>
-      <zeroOrMore>
-        <ref name="smallcptr.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of symbol.element-->
-<!-- Class: Type of symbol; no default -->
-  <define name="symbol.attlist" combine="interleave">
-    <optional>
-      <attribute name="class">
-        <choice>
-          <value>limit</value>
-        </choice>
-      </attribute>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="symbol.role.attrib"/>
-    <ref name="local.symbol.attrib"/>
-  </define>
-<!--end of symbol.attlist-->
-<!--end of symbol.module-->
-  <define name="local.systemitem.attrib">
-    <empty/>
-  </define>
-  <define name="systemitem.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="systemitem">
-    <element name="systemitem">
-      <ref name="systemitem.attlist"/>
-      <zeroOrMore>
-        <choice>
-          <ref name="cptr.char.mix"/>
-          <ref name="acronym"/>
-          <ref name="co"/>
-        </choice>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of systemitem.element-->
-<!-- Class: Type of system item the element names; no default -->
-  <define name="systemitem.attlist" combine="interleave">
-    <optional>
-      <attribute name="class">
-        <choice>
-          <value>constant</value>
-          <value>event</value>
-          <value>eventhandler</value>
-          <value>domainname</value>
-          <value>fqdomainname</value>
-          <value>ipaddress</value>
-          <value>netmask</value>
-          <value>etheraddress</value>
-          <value>groupname</value>
-          <value>library</value>
-          <value>macro</value>
-          <value>osname</value>
-          <value>filesystem</value>
-          <value>resource</value>
-          <value>systemname</value>
-          <value>username</value>
-          <value>newsgroup</value>
-        </choice>
-      </attribute>
-    </optional>
-    <ref name="moreinfo.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="systemitem.role.attrib"/>
-    <ref name="local.systemitem.attrib"/>
-  </define>
-<!--end of systemitem.attlist-->
-<!--end of systemitem.module-->
-  <define name="local.token.attrib">
-    <empty/>
-  </define>
-  <define name="token.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="token">
-    <element name="token">
-      <ref name="token.attlist"/>
-      <zeroOrMore>
-        <ref name="smallcptr.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of token.element-->
-  <define name="token.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="token.role.attrib"/>
-    <ref name="local.token.attrib"/>
-  </define>
-<!--end of token.attlist-->
-<!--end of token.module-->
-  <define name="local.type.attrib">
-    <empty/>
-  </define>
-  <define name="type.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="type">
-    <element name="type">
-      <ref name="type.attlist"/>
-      <zeroOrMore>
-        <ref name="smallcptr.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of type.element-->
-  <define name="type.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="type.role.attrib"/>
-    <ref name="local.type.attrib"/>
-  </define>
-<!--end of type.attlist-->
-<!--end of type.module-->
-  <define name="local.userinput.attrib">
-    <empty/>
-  </define>
-  <define name="userinput.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="userinput">
-    <element name="userinput">
-      <ref name="userinput.attlist"/>
-      <zeroOrMore>
-        <choice>
-          <ref name="cptr.char.mix"/>
-          <ref name="co"/>
-        </choice>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of userinput.element-->
-  <define name="userinput.attlist" combine="interleave">
-    <ref name="moreinfo.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="userinput.role.attrib"/>
-    <ref name="local.userinput.attrib"/>
-  </define>
-<!--end of userinput.attlist-->
-<!--end of userinput.module-->
+
+    <div db:name="sgmltag.attlist">
+      <define name="sgmltag.attlist" combine="interleave">
+        <optional>
+          <attribute name="class">
+            <choice>
+              <value>attribute</value>
+              <value>attvalue</value>
+              <value>element</value>
+              <value>endtag</value>
+              <value>emptytag</value>
+              <value>genentity</value>
+              <value>numcharref</value>
+              <value>paramentity</value>
+              <value>pi</value>
+              <value>xmlpi</value>
+              <value>starttag</value>
+              <value>sgmlcomment</value>
+            </choice>
+          </attribute>
+        </optional>
+        <ref name="common.attrib"/>
+        <ref name="sgmltag.role.attrib"/>
+        <ref name="local.sgmltag.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="structfield.module">
+    <define name="local.structfield.attrib">
+      <empty/>
+    </define>
+    <define name="structfield.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="structfield">
+      <define name="structfield">
+        <element name="structfield">
+          <ref name="structfield.attlist"/>
+          <zeroOrMore>
+            <ref name="smallcptr.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="structfield.attlist">
+      <define name="structfield.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="structfield.role.attrib"/>
+        <ref name="local.structfield.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="structname.module">
+    <define name="local.structname.attrib">
+      <empty/>
+    </define>
+    <define name="structname.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="structname">
+      <define name="structname">
+        <element name="structname">
+          <ref name="structname.attlist"/>
+          <zeroOrMore>
+            <ref name="smallcptr.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="structname.attlist">
+      <define name="structname.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="structname.role.attrib"/>
+        <ref name="local.structname.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="symbol.module">
+    <define name="local.symbol.attrib">
+      <empty/>
+    </define>
+    <define name="symbol.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="symbol">
+      <define name="symbol">
+        <element name="symbol">
+          <ref name="symbol.attlist"/>
+          <zeroOrMore>
+            <ref name="smallcptr.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+<!-- Class: Type of symbol; no default -->
+
+    <div db:name="symbol.attlist">
+      <define name="symbol.attlist" combine="interleave">
+        <optional>
+          <attribute name="class">
+            <choice>
+              <value>limit</value>
+            </choice>
+          </attribute>
+        </optional>
+        <ref name="common.attrib"/>
+        <ref name="symbol.role.attrib"/>
+        <ref name="local.symbol.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="systemitem.module">
+    <define name="local.systemitem.attrib">
+      <empty/>
+    </define>
+    <define name="systemitem.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="systemitem">
+      <define name="systemitem">
+        <element name="systemitem">
+          <ref name="systemitem.attlist"/>
+          <zeroOrMore>
+            <choice>
+              <ref name="cptr.char.mix"/>
+              <ref name="acronym"/>
+              <ref name="co"/>
+            </choice>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+<!-- Class: Type of system item the element names; no default -->
+
+    <div db:name="systemitem.attlist">
+      <define name="systemitem.attlist" combine="interleave">
+        <optional>
+          <attribute name="class">
+            <choice>
+              <value>constant</value>
+              <value>event</value>
+              <value>eventhandler</value>
+              <value>domainname</value>
+              <value>fqdomainname</value>
+              <value>ipaddress</value>
+              <value>netmask</value>
+              <value>etheraddress</value>
+              <value>groupname</value>
+              <value>library</value>
+              <value>macro</value>
+              <value>osname</value>
+              <value>filesystem</value>
+              <value>resource</value>
+              <value>systemname</value>
+              <value>username</value>
+              <value>newsgroup</value>
+            </choice>
+          </attribute>
+        </optional>
+        <ref name="moreinfo.attrib"/>
+        <ref name="common.attrib"/>
+        <ref name="systemitem.role.attrib"/>
+        <ref name="local.systemitem.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="token.module">
+    <define name="local.token.attrib">
+      <empty/>
+    </define>
+    <define name="token.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="token">
+      <define name="token">
+        <element name="token">
+          <ref name="token.attlist"/>
+          <zeroOrMore>
+            <ref name="smallcptr.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="token.attlist">
+      <define name="token.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="token.role.attrib"/>
+        <ref name="local.token.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="type.module">
+    <define name="local.type.attrib">
+      <empty/>
+    </define>
+    <define name="type.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="type">
+      <define name="type">
+        <element name="type">
+          <ref name="type.attlist"/>
+          <zeroOrMore>
+            <ref name="smallcptr.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="type.attlist">
+      <define name="type.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="type.role.attrib"/>
+        <ref name="local.type.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="userinput.module">
+    <define name="local.userinput.attrib">
+      <empty/>
+    </define>
+    <define name="userinput.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="userinput">
+      <define name="userinput">
+        <element name="userinput">
+          <ref name="userinput.attlist"/>
+          <zeroOrMore>
+            <choice>
+              <ref name="cptr.char.mix"/>
+              <ref name="co"/>
+            </choice>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="userinput.attlist">
+      <define name="userinput.attlist" combine="interleave">
+        <ref name="moreinfo.attrib"/>
+        <ref name="common.attrib"/>
+        <ref name="userinput.role.attrib"/>
+        <ref name="local.userinput.attrib"/>
+      </define>
+    </div>
+  </div>
+
 <!-- General words and phrases ............................................ -->
-  <define name="local.abbrev.attrib">
-    <empty/>
-  </define>
-  <define name="abbrev.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="abbrev">
-    <element name="abbrev">
-      <ref name="abbrev.attlist"/>
-      <zeroOrMore>
-        <ref name="word.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of abbrev.element-->
-  <define name="abbrev.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="abbrev.role.attrib"/>
-    <ref name="local.abbrev.attrib"/>
-  </define>
-<!--end of abbrev.attlist-->
-<!--end of abbrev.module-->
-  <define name="local.acronym.attrib">
-    <empty/>
-  </define>
-  <define name="acronym.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="acronym">
-    <element name="acronym">
-      <ref name="acronym.attlist"/>
-      <zeroOrMore>
-        <ref name="word.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of acronym.element-->
-  <define name="acronym.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="acronym.role.attrib"/>
-    <ref name="local.acronym.attrib"/>
-  </define>
-<!--end of acronym.attlist-->
-<!--end of acronym.module-->
-  <define name="local.citation.attrib">
-    <empty/>
-  </define>
-  <define name="citation.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="citation">
-    <element name="citation">
-      <ref name="citation.attlist"/>
-      <zeroOrMore>
-        <ref name="para.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of citation.element-->
-  <define name="citation.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="citation.role.attrib"/>
-    <ref name="local.citation.attrib"/>
-  </define>
-<!--end of citation.attlist-->
-<!--end of citation.module-->
-  <define name="local.citerefentry.attrib">
-    <empty/>
-  </define>
-  <define name="citerefentry.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="citerefentry">
-    <element name="citerefentry">
-      <ref name="citerefentry.attlist"/>
-      <ref name="refentrytitle"/>
-      <optional>
-        <ref name="manvolnum"/>
-      </optional>
-    </element>
-  </define>
-<!--end of citerefentry.element-->
-  <define name="citerefentry.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="citerefentry.role.attrib"/>
-    <ref name="local.citerefentry.attrib"/>
-  </define>
-<!--end of citerefentry.attlist-->
-<!--end of citerefentry.module-->
-  <define name="local.refentrytitle.attrib">
-    <empty/>
-  </define>
-  <define name="refentrytitle.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="refentrytitle">
-    <element name="refentrytitle">
-      <ref name="refentrytitle.attlist"/>
-      <zeroOrMore>
-        <ref name="para.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of refentrytitle.element-->
-  <define name="refentrytitle.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="refentrytitle.role.attrib"/>
-    <ref name="local.refentrytitle.attrib"/>
-  </define>
-<!--end of refentrytitle.attlist-->
-<!--end of refentrytitle.module-->
-  <define name="local.manvolnum.attrib">
-    <empty/>
-  </define>
-  <define name="namvolnum.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="manvolnum">
-    <element name="manvolnum">
-      <ref name="manvolnum.attlist"/>
-      <zeroOrMore>
-        <ref name="word.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of manvolnum.element-->
-  <define name="manvolnum.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="namvolnum.role.attrib"/>
-    <ref name="local.manvolnum.attrib"/>
-  </define>
-<!--end of manvolnum.attlist-->
-<!--end of manvolnum.module-->
-  <define name="local.citetitle.attrib">
-    <empty/>
-  </define>
-  <define name="citetitle.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="citetitle">
-    <element name="citetitle">
-      <ref name="citetitle.attlist"/>
-      <zeroOrMore>
-        <ref name="para.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of citetitle.element-->
+
+  <div db:name="abbrev.module">
+    <define name="local.abbrev.attrib">
+      <empty/>
+    </define>
+    <define name="abbrev.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="abbrev">
+      <define name="abbrev">
+        <element name="abbrev">
+          <ref name="abbrev.attlist"/>
+          <zeroOrMore>
+            <ref name="word.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="abbrev.attlist">
+      <define name="abbrev.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="abbrev.role.attrib"/>
+        <ref name="local.abbrev.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="acronym.module">
+    <define name="local.acronym.attrib">
+      <empty/>
+    </define>
+    <define name="acronym.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="acronym">
+      <define name="acronym">
+        <element name="acronym">
+          <ref name="acronym.attlist"/>
+          <zeroOrMore>
+            <ref name="word.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="acronym.attlist">
+      <define name="acronym.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="acronym.role.attrib"/>
+        <ref name="local.acronym.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="citation.module">
+    <define name="local.citation.attrib">
+      <empty/>
+    </define>
+    <define name="citation.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="citation">
+      <define name="citation">
+        <element name="citation">
+          <ref name="citation.attlist"/>
+          <zeroOrMore>
+            <ref name="para.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="citation.attlist">
+      <define name="citation.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="citation.role.attrib"/>
+        <ref name="local.citation.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="citerefentry.module">
+    <define name="local.citerefentry.attrib">
+      <empty/>
+    </define>
+    <define name="citerefentry.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="citerefentry">
+      <define name="citerefentry">
+        <element name="citerefentry">
+          <ref name="citerefentry.attlist"/>
+          <ref name="refentrytitle"/>
+          <optional>
+            <ref name="manvolnum"/>
+          </optional>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="citerefentry.attlist">
+      <define name="citerefentry.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="citerefentry.role.attrib"/>
+        <ref name="local.citerefentry.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="refentrytitle.module">
+    <define name="local.refentrytitle.attrib">
+      <empty/>
+    </define>
+    <define name="refentrytitle.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="refentrytitle">
+      <define name="refentrytitle">
+        <element name="refentrytitle">
+          <ref name="refentrytitle.attlist"/>
+          <zeroOrMore>
+            <ref name="para.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="refentrytitle.attlist">
+      <define name="refentrytitle.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="refentrytitle.role.attrib"/>
+        <ref name="local.refentrytitle.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="manvolnum.module">
+    <define name="local.manvolnum.attrib">
+      <empty/>
+    </define>
+    <define name="namvolnum.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="manvolnum">
+      <define name="manvolnum">
+        <element name="manvolnum">
+          <ref name="manvolnum.attlist"/>
+          <zeroOrMore>
+            <ref name="word.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="manvolnum.attlist">
+      <define name="manvolnum.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="namvolnum.role.attrib"/>
+        <ref name="local.manvolnum.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="citetitle.module">
+    <define name="local.citetitle.attrib">
+      <empty/>
+    </define>
+    <define name="citetitle.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="citetitle">
+      <define name="citetitle">
+        <element name="citetitle">
+          <ref name="citetitle.attlist"/>
+          <zeroOrMore>
+            <ref name="para.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
 <!-- Pubwork: Genre of published work cited; no default -->
-  <define name="citetitle.attlist" combine="interleave">
-    <optional>
-      <attribute name="pubwork">
-        <choice>
-          <value>article</value>
-          <value>book</value>
-          <value>chapter</value>
-          <value>part</value>
-          <value>refentry</value>
-          <value>section</value>
-          <value>journal</value>
-          <value>series</value>
-          <value>set</value>
-          <value>manuscript</value>
-        </choice>
-      </attribute>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="citetitle.role.attrib"/>
-    <ref name="local.citetitle.attrib"/>
-  </define>
-<!--end of citetitle.attlist-->
-<!--end of citetitle.module-->
-  <define name="local.emphasis.attrib">
-    <empty/>
-  </define>
-  <define name="emphasis.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="emphasis">
-    <element name="emphasis">
-      <ref name="emphasis.attlist"/>
-      <zeroOrMore>
-        <ref name="para.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of emphasis.element-->
-  <define name="emphasis.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="emphasis.role.attrib"/>
-    <ref name="local.emphasis.attrib"/>
-  </define>
-<!--end of emphasis.attlist-->
-<!--end of emphasis.module-->
-  <define name="local.firstterm.attrib">
-    <empty/>
-  </define>
-  <define name="firstterm.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="firstterm">
-    <element name="firstterm">
-      <ref name="firstterm.attlist"/>
-      <zeroOrMore>
-        <ref name="word.char.mix"/>
-      </zeroOrMore>
-      <s:assert test="not(@linkend)
-                      or local-name(//*[@id=current()/@linkend]) = 'glossentry'"/>
-    </element>
-  </define>
-<!--end of firstterm.element-->
+
+    <div db:name="citetitle.attlist">
+      <define name="citetitle.attlist" combine="interleave">
+        <optional>
+          <attribute name="pubwork">
+            <choice>
+              <value>article</value>
+              <value>book</value>
+              <value>chapter</value>
+              <value>part</value>
+              <value>refentry</value>
+              <value>section</value>
+              <value>journal</value>
+              <value>series</value>
+              <value>set</value>
+              <value>manuscript</value>
+            </choice>
+          </attribute>
+        </optional>
+        <ref name="common.attrib"/>
+        <ref name="citetitle.role.attrib"/>
+        <ref name="local.citetitle.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="emphasis.module">
+    <define name="local.emphasis.attrib">
+      <empty/>
+    </define>
+    <define name="emphasis.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="emphasis">
+      <define name="emphasis">
+        <element name="emphasis">
+          <ref name="emphasis.attlist"/>
+          <zeroOrMore>
+            <ref name="para.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="emphasis.attlist">
+      <define name="emphasis.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="emphasis.role.attrib"/>
+        <ref name="local.emphasis.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="firstterm.module">
+    <define name="local.firstterm.attrib">
+      <empty/>
+    </define>
+    <define name="firstterm.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="firstterm">
+      <define name="firstterm">
+        <element name="firstterm">
+          <ref name="firstterm.attlist"/>
+          <zeroOrMore>
+            <ref name="word.char.mix"/>
+          </zeroOrMore>
+          <s:assert test="not(@linkend)                       or local-name(//*[@id=current()/@linkend]) = 'glossentry'"/>
+        </element>
+      </define>
+    </div>
+
 <!-- to GlossEntry or other explanation -->
-  <define name="firstterm.attlist" combine="interleave">
-    <ref name="linkend.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="firstterm.role.attrib"/>
-    <ref name="local.firstterm.attrib"/>
-  </define>
-<!--end of firstterm.attlist-->
-<!--end of firstterm.module-->
-  <define name="local.foreignphrase.attrib">
-    <empty/>
-  </define>
-  <define name="foreignphrase.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="foreignphrase">
-    <element name="foreignphrase">
-      <ref name="foreignphrase.attlist"/>
-      <zeroOrMore>
-        <ref name="para.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of foreignphrase.element-->
-  <define name="foreignphrase.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="foreignphrase.role.attrib"/>
-    <ref name="local.foreignphrase.attrib"/>
-  </define>
-<!--end of foreignphrase.attlist-->
-<!--end of foreignphrase.module-->
-  <define name="local.glossterm.attrib">
-    <empty/>
-  </define>
-  <define name="glossterm.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="glossterm">
-    <element name="glossterm">
-      <ref name="glossterm.attlist"/>
-      <zeroOrMore>
-        <ref name="para.char.mix"/>
-      </zeroOrMore>
-      <s:assert test="not(@linkend)
-                      or local-name(//*[@id=current()/@linkend]) = 'glossentry'"/>
-    </element>
-  </define>
-<!--end of glossterm.element-->
+
+    <div db:name="firstterm.attlist">
+      <define name="firstterm.attlist" combine="interleave">
+        <ref name="linkend.attrib"/>
+        <ref name="common.attrib"/>
+        <ref name="firstterm.role.attrib"/>
+        <ref name="local.firstterm.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="foreignphrase.module">
+    <define name="local.foreignphrase.attrib">
+      <empty/>
+    </define>
+    <define name="foreignphrase.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="foreignphrase">
+      <define name="foreignphrase">
+        <element name="foreignphrase">
+          <ref name="foreignphrase.attlist"/>
+          <zeroOrMore>
+            <ref name="para.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="foreignphrase.attlist">
+      <define name="foreignphrase.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="foreignphrase.role.attrib"/>
+        <ref name="local.foreignphrase.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="glossterm.module">
+    <define name="local.glossterm.attrib">
+      <empty/>
+    </define>
+    <define name="glossterm.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="glossterm">
+      <define name="glossterm">
+        <element name="glossterm">
+          <ref name="glossterm.attlist"/>
+          <zeroOrMore>
+            <ref name="para.char.mix"/>
+          </zeroOrMore>
+          <s:assert test="not(@linkend)                       or local-name(//*[@id=current()/@linkend]) = 'glossentry'"/>
+        </element>
+      </define>
+    </div>
+
 <!-- to GlossEntry if Glossterm used in text -->
 <!-- BaseForm: Provides the form of GlossTerm to be used
                for indexing -->
-  <define name="glossterm.attlist" combine="interleave">
-    <ref name="linkend.attrib"/>
-    <optional>
-      <attribute name="baseform"/>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="glossterm.role.attrib"/>
-    <ref name="local.glossterm.attrib"/>
-  </define>
-<!--end of glossterm.attlist-->
-<!--end of glossterm.module-->
-  <define name="local.phrase.attrib">
-    <empty/>
-  </define>
-  <define name="phrase.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="phrase">
-    <element name="phrase">
-      <ref name="phrase.attlist"/>
-      <zeroOrMore>
-        <ref name="para.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of phrase.element-->
-  <define name="phrase.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="phrase.role.attrib"/>
-    <ref name="local.phrase.attrib"/>
-  </define>
-<!--end of phrase.attlist-->
-<!--end of phrase.module-->
-  <define name="local.quote.attrib">
-    <empty/>
-  </define>
-  <define name="quote.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="quote">
-    <element name="quote">
-      <ref name="quote.attlist"/>
-      <zeroOrMore>
-        <ref name="para.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of quote.element-->
-  <define name="quote.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="quote.role.attrib"/>
-    <ref name="local.quote.attrib"/>
-  </define>
-<!--end of quote.attlist-->
-<!--end of quote.module-->
-  <define name="local.ssscript.attrib">
-    <empty/>
-  </define>
-  <define name="ssscript.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="subscript">
-    <element name="subscript">
-      <ref name="subscript.attlist"/>
-      <zeroOrMore>
-        <choice>
-          <text/>
-          <ref name="link.char.class"/>
-          <ref name="emphasis"/>
-          <ref name="replaceable"/>
-          <ref name="symbol"/>
-          <ref name="inlinegraphic"/>
-          <ref name="inlinemediaobject"/>
-          <ref name="base.char.class"/>
-          <ref name="other.char.class"/>
-        </choice>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of subscript.element-->
-  <define name="subscript.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="ssscript.role.attrib"/>
-    <ref name="local.ssscript.attrib"/>
-  </define>
-<!--end of subscript.attlist-->
-  <define name="superscript">
-    <element name="superscript">
-      <ref name="superscript.attlist"/>
-      <zeroOrMore>
-        <choice>
-          <text/>
-          <ref name="link.char.class"/>
-          <ref name="emphasis"/>
-          <ref name="replaceable"/>
-          <ref name="symbol"/>
-          <ref name="inlinegraphic"/>
-          <ref name="inlinemediaobject"/>
-          <ref name="base.char.class"/>
-          <ref name="other.char.class"/>
-        </choice>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of superscript.element-->
-  <define name="superscript.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="ssscript.role.attrib"/>
-    <ref name="local.ssscript.attrib"/>
-  </define>
-<!--end of superscript.attlist-->
-<!--end of ssscript.module-->
-  <define name="local.trademark.attrib">
-    <empty/>
-  </define>
-  <define name="trademark.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="trademark">
-    <element name="trademark">
-      <ref name="trademark.attlist"/>
-      <zeroOrMore>
-        <choice>
-          <text/>
-          <ref name="link.char.class"/>
-          <ref name="tech.char.class"/>
-          <ref name="base.char.class"/>
-          <ref name="other.char.class"/>
-          <ref name="inlinegraphic"/>
-          <ref name="inlinemediaobject"/>
-          <ref name="emphasis"/>
-        </choice>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of trademark.element-->
-<!-- Class: More precisely identifies the item the element names -->
-  <define name="trademark.attlist" combine="interleave">
-    <optional>
-      <attribute name="class" a:defaultValue="trade">
-        <choice>
-          <value>service</value>
-          <value>trade</value>
-          <value>registered</value>
-          <value>copyright</value>
-        </choice>
-      </attribute>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="trademark.role.attrib"/>
-    <ref name="local.trademark.attrib"/>
-  </define>
-<!--end of trademark.attlist-->
-<!--end of trademark.module-->
-  <define name="local.wordasword.attrib">
-    <empty/>
-  </define>
-  <define name="wordasword.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="wordasword">
-    <element name="wordasword">
-      <ref name="wordasword.attlist"/>
-      <zeroOrMore>
-        <ref name="word.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of wordasword.element-->
-  <define name="wordasword.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="wordasword.role.attrib"/>
-    <ref name="local.wordasword.attrib"/>
-  </define>
-<!--end of wordasword.attlist-->
-<!--end of wordasword.module-->
+
+    <div db:name="glossterm.attlist">
+      <define name="glossterm.attlist" combine="interleave">
+        <ref name="linkend.attrib"/>
+        <optional>
+          <attribute name="baseform"/>
+        </optional>
+        <ref name="common.attrib"/>
+        <ref name="glossterm.role.attrib"/>
+        <ref name="local.glossterm.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="phrase.module">
+    <define name="local.phrase.attrib">
+      <empty/>
+    </define>
+    <define name="phrase.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="phrase">
+      <define name="phrase">
+        <element name="phrase">
+          <ref name="phrase.attlist"/>
+          <zeroOrMore>
+            <ref name="para.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="phrase.attlist">
+      <define name="phrase.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="phrase.role.attrib"/>
+        <ref name="local.phrase.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="quote.module">
+    <define name="local.quote.attrib">
+      <empty/>
+    </define>
+    <define name="quote.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="quote">
+      <define name="quote">
+        <element name="quote">
+          <ref name="quote.attlist"/>
+          <zeroOrMore>
+            <ref name="para.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="quote.attlist">
+      <define name="quote.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="quote.role.attrib"/>
+        <ref name="local.quote.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="ssscript.module">
+    <define name="local.ssscript.attrib">
+      <empty/>
+    </define>
+    <define name="ssscript.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="subscript">
+      <define name="subscript">
+        <element name="subscript">
+          <ref name="subscript.attlist"/>
+          <zeroOrMore>
+            <choice>
+              <text/>
+              <ref name="link.char.class"/>
+              <ref name="emphasis"/>
+              <ref name="replaceable"/>
+              <ref name="symbol"/>
+              <ref name="inlinegraphic"/>
+              <ref name="inlinemediaobject"/>
+              <ref name="base.char.class"/>
+              <ref name="other.char.class"/>
+            </choice>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="subscript.attlist">
+      <define name="subscript.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="ssscript.role.attrib"/>
+        <ref name="local.ssscript.attrib"/>
+      </define>
+    </div>
+
+    <div db:name="superscript">
+      <define name="superscript">
+        <element name="superscript">
+          <ref name="superscript.attlist"/>
+          <zeroOrMore>
+            <choice>
+              <text/>
+              <ref name="link.char.class"/>
+              <ref name="emphasis"/>
+              <ref name="replaceable"/>
+              <ref name="symbol"/>
+              <ref name="inlinegraphic"/>
+              <ref name="inlinemediaobject"/>
+              <ref name="base.char.class"/>
+              <ref name="other.char.class"/>
+            </choice>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="superscript.attlist">
+      <define name="superscript.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="ssscript.role.attrib"/>
+        <ref name="local.ssscript.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="trademark.module">
+    <define name="local.trademark.attrib">
+      <empty/>
+    </define>
+    <define name="trademark.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="trademark">
+      <define name="trademark">
+        <element name="trademark">
+          <ref name="trademark.attlist"/>
+          <zeroOrMore>
+            <choice>
+              <text/>
+              <ref name="link.char.class"/>
+              <ref name="tech.char.class"/>
+              <ref name="base.char.class"/>
+              <ref name="other.char.class"/>
+              <ref name="inlinegraphic"/>
+              <ref name="inlinemediaobject"/>
+              <ref name="emphasis"/>
+            </choice>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+<!-- Class: More precisely identifies the item the element names -->
+
+    <div db:name="trademark.attlist">
+      <define name="trademark.attlist" combine="interleave">
+        <optional>
+          <attribute name="class" a:defaultValue="trade">
+            <choice>
+              <value>service</value>
+              <value>trade</value>
+              <value>registered</value>
+              <value>copyright</value>
+            </choice>
+          </attribute>
+        </optional>
+        <ref name="common.attrib"/>
+        <ref name="trademark.role.attrib"/>
+        <ref name="local.trademark.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="wordasword.module">
+    <define name="local.wordasword.attrib">
+      <empty/>
+    </define>
+    <define name="wordasword.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="wordasword">
+      <define name="wordasword">
+        <element name="wordasword">
+          <ref name="wordasword.attlist"/>
+          <zeroOrMore>
+            <ref name="word.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
+    <div db:name="wordasword.attlist">
+      <define name="wordasword.attlist" combine="interleave">
+        <ref name="common.attrib"/>
+        <ref name="wordasword.role.attrib"/>
+        <ref name="local.wordasword.attrib"/>
+      </define>
+    </div>
+  </div>
+
 <!-- Links and cross-references ........................................... -->
-  <define name="local.link.attrib">
-    <empty/>
-  </define>
-  <define name="link.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="link">
-    <element name="link">
-      <ref name="link.attlist"/>
-      <zeroOrMore>
-        <ref name="para.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of link.element-->
+
+  <div db:name="link.module">
+    <define name="local.link.attrib">
+      <empty/>
+    </define>
+    <define name="link.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="link">
+      <define name="link">
+        <element name="link">
+          <ref name="link.attlist"/>
+          <zeroOrMore>
+            <ref name="para.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
 <!-- Endterm: ID of element containing text that is to be
                fetched from elsewhere in the document to appear as
                the content of this element -->
 <!-- to linked-to object -->
 <!-- Type: Freely assignable parameter -->
-  <define name="link.attlist" combine="interleave">
-    <optional>
-      <attribute name="endterm">
-        <data type="IDREF"/>
-      </attribute>
-    </optional>
-    <ref name="linkendreq.attrib"/>
-    <optional>
-      <attribute name="type"/>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="link.role.attrib"/>
-    <ref name="local.link.attrib"/>
-  </define>
-<!--end of link.attlist-->
-<!--end of link.module-->
-  <define name="local.olink.attrib">
-    <empty/>
-  </define>
-  <define name="olink.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="olink">
-    <element name="olink">
-      <ref name="olink.attlist"/>
-      <zeroOrMore>
-        <ref name="para.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of olink.element-->
+
+    <div db:name="link.attlist">
+      <define name="link.attlist" combine="interleave">
+        <optional>
+          <attribute name="endterm">
+            <data type="IDREF"/>
+          </attribute>
+        </optional>
+        <ref name="linkendreq.attrib"/>
+        <optional>
+          <attribute name="type"/>
+        </optional>
+        <ref name="common.attrib"/>
+        <ref name="link.role.attrib"/>
+        <ref name="local.link.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="olink.module">
+    <define name="local.olink.attrib">
+      <empty/>
+    </define>
+    <define name="olink.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="olink">
+      <define name="olink">
+        <element name="olink">
+          <ref name="olink.attlist"/>
+          <zeroOrMore>
+            <ref name="para.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
 <!-- TargetDocEnt: Name of an entity to be the target of the link -->
 <!-- LinkMode: ID of a ModeSpec containing instructions for
                operating on the entity named by TargetDocEnt -->
 <!-- LocalInfo: Information that may be passed to ModeSpec -->
 <!-- Type: Freely assignable parameter -->
-  <define name="olink.attlist" combine="interleave">
-    <optional>
-      <attribute name="targetdocent">
-        <data type="ENTITY"/>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="linkmode">
-        <data type="IDREF"/>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="localinfo"/>
-    </optional>
-    <optional>
-      <attribute name="type"/>
-    </optional>
-    <optional>
-      <attribute name="targetdoc"/>
-    </optional>
-    <optional>
-      <attribute name="targetptr"/>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="olink.role.attrib"/>
-    <ref name="local.olink.attrib"/>
-  </define>
-<!--end of olink.attlist-->
-<!--end of olink.module-->
-  <define name="local.ulink.attrib">
-    <empty/>
-  </define>
-  <define name="ulink.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="ulink">
-    <element name="ulink">
-      <ref name="ulink.attlist"/>
-      <zeroOrMore>
-        <ref name="para.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of ulink.element-->
+
+    <div db:name="olink.attlist">
+      <define name="olink.attlist" combine="interleave">
+        <optional>
+          <attribute name="targetdocent">
+            <data type="ENTITY"/>
+          </attribute>
+        </optional>
+        <optional>
+          <attribute name="linkmode">
+            <data type="IDREF"/>
+          </attribute>
+        </optional>
+        <optional>
+          <attribute name="localinfo"/>
+        </optional>
+        <optional>
+          <attribute name="type"/>
+        </optional>
+        <optional>
+          <attribute name="targetdoc"/>
+        </optional>
+        <optional>
+          <attribute name="targetptr"/>
+        </optional>
+        <ref name="common.attrib"/>
+        <ref name="olink.role.attrib"/>
+        <ref name="local.olink.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="ulink.module">
+    <define name="local.ulink.attrib">
+      <empty/>
+    </define>
+    <define name="ulink.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="ulink">
+      <define name="ulink">
+        <element name="ulink">
+          <ref name="ulink.attlist"/>
+          <zeroOrMore>
+            <ref name="para.char.mix"/>
+          </zeroOrMore>
+        </element>
+      </define>
+    </div>
+
 <!-- URL: uniform resource locator; the target of the ULink -->
 <!-- Type: Freely assignable parameter -->
-  <define name="ulink.attlist" combine="interleave">
-    <attribute name="url"/>
-    <optional>
-      <attribute name="type"/>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="ulink.role.attrib"/>
-    <ref name="local.ulink.attrib"/>
-  </define>
-<!--end of ulink.attlist-->
-<!--end of ulink.module-->
-  <define name="local.footnoteref.attrib">
-    <empty/>
-  </define>
-  <define name="footnoteref.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="footnoteref">
-    <element name="footnoteref">
-      <ref name="footnoteref.attlist"/>
+
+    <div db:name="ulink.attlist">
+      <define name="ulink.attlist" combine="interleave">
+        <attribute name="url"/>
+        <optional>
+          <attribute name="type"/>
+        </optional>
+        <ref name="common.attrib"/>
+        <ref name="ulink.role.attrib"/>
+        <ref name="local.ulink.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="footnoteref.module">
+    <define name="local.footnoteref.attrib">
       <empty/>
-    </element>
-  </define>
-<!--end of footnoteref.element-->
+    </define>
+    <define name="footnoteref.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="footnoteref">
+      <define name="footnoteref">
+        <element name="footnoteref">
+          <ref name="footnoteref.attlist"/>
+          <empty/>
+        </element>
+      </define>
+    </div>
+
 <!-- to footnote content supplied elsewhere -->
-  <define name="footnoteref.attlist" combine="interleave">
-    <ref name="linkendreq.attrib"/>
-    <ref name="label.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="footnoteref.role.attrib"/>
-    <ref name="local.footnoteref.attrib"/>
-  </define>
-<!--end of footnoteref.attlist-->
-<!--end of footnoteref.module-->
-  <define name="local.xref.attrib">
-    <empty/>
-  </define>
-  <define name="xref.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="xref">
-    <element name="xref">
-      <ref name="xref.attlist"/>
+
+    <div db:name="footnoteref.attlist">
+      <define name="footnoteref.attlist" combine="interleave">
+        <ref name="linkendreq.attrib"/>
+        <ref name="label.attrib"/>
+        <ref name="common.attrib"/>
+        <ref name="footnoteref.role.attrib"/>
+        <ref name="local.footnoteref.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="xref.module">
+    <define name="local.xref.attrib">
       <empty/>
-    </element>
-  </define>
-<!--end of xref.element-->
+    </define>
+    <define name="xref.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="xref">
+      <define name="xref">
+        <element name="xref">
+          <ref name="xref.attlist"/>
+          <empty/>
+        </element>
+      </define>
+    </div>
+
 <!-- Endterm: ID of element containing text that is to be
                fetched from elsewhere in the document to appear as
                the content of this element -->
 <!-- to linked-to object -->
-  <define name="xref.attlist" combine="interleave">
-    <optional>
-      <attribute name="endterm">
-        <data type="IDREF"/>
-      </attribute>
-    </optional>
-    <ref name="linkendreq.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="xref.role.attrib"/>
-    <ref name="local.xref.attrib"/>
-  </define>
-<!--end of xref.attlist-->
-<!--end of xref.module-->
+
+    <div db:name="xref.attlist">
+      <define name="xref.attlist" combine="interleave">
+        <optional>
+          <attribute name="endterm">
+            <data type="IDREF"/>
+          </attribute>
+        </optional>
+        <ref name="linkendreq.attrib"/>
+        <ref name="common.attrib"/>
+        <ref name="xref.role.attrib"/>
+        <ref name="local.xref.attrib"/>
+      </define>
+    </div>
+  </div>
+
 <!-- Ubiquitous elements .................................................. -->
-  <define name="local.anchor.attrib">
-    <empty/>
-  </define>
-  <define name="anchor.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="anchor">
-    <element name="anchor">
-      <ref name="anchor.attlist"/>
+
+  <div db:name="anchor.module">
+    <define name="local.anchor.attrib">
       <empty/>
-    </element>
-  </define>
-<!--end of anchor.element-->
+    </define>
+    <define name="anchor.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="anchor">
+      <define name="anchor">
+        <element name="anchor">
+          <ref name="anchor.attlist"/>
+          <empty/>
+        </element>
+      </define>
+    </div>
+
 <!-- required -->
 <!-- replaces Lang -->
-  <define name="anchor.attlist" combine="interleave">
-    <ref name="idreq.attrib"/>
-    <ref name="pagenum.attrib"/>
-    <ref name="remap.attrib"/>
-    <ref name="xreflabel.attrib"/>
-    <ref name="revisionflag.attrib"/>
-    <ref name="effectivity.attrib"/>
-    <ref name="anchor.role.attrib"/>
-    <ref name="local.anchor.attrib"/>
-  </define>
-<!--end of anchor.attlist-->
-<!--end of anchor.module-->
-  <define name="local.beginpage.attrib">
-    <empty/>
-  </define>
-  <define name="beginpage.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="beginpage">
-    <element name="beginpage">
-      <ref name="beginpage.attlist"/>
+
+    <div db:name="anchor.attlist">
+      <define name="anchor.attlist" combine="interleave">
+        <ref name="idreq.attrib"/>
+        <ref name="pagenum.attrib"/>
+        <ref name="remap.attrib"/>
+        <ref name="xreflabel.attrib"/>
+        <ref name="revisionflag.attrib"/>
+        <ref name="effectivity.attrib"/>
+        <ref name="anchor.role.attrib"/>
+        <ref name="local.anchor.attrib"/>
+      </define>
+    </div>
+  </div>
+
+  <div db:name="beginpage.module">
+    <define name="local.beginpage.attrib">
       <empty/>
-    </element>
-  </define>
-<!--end of beginpage.element-->
+    </define>
+    <define name="beginpage.role.attrib">
+      <ref name="role.attrib"/>
+    </define>
+
+    <div db:name="beginpage">
+      <define name="beginpage">
+        <element name="beginpage">
+          <ref name="beginpage.attlist"/>
+          <empty/>
+        </element>
+      </define>
+    </div>
+
 <!-- PageNum: Number of page that begins at this point -->
-  <define name="beginpage.attlist" combine="interleave">
-    <ref name="pagenum.attrib"/>
-    <ref name="common.attrib"/>
-    <ref name="beginpage.role.attrib"/>
-    <ref name="local.beginpage.attrib"/>
-  </define>
-<!--end of beginpage.attlist-->
-<!--end of beginpage.module-->
+
+    <div db:name="beginpage.attlist">
+      <define name="beginpage.attlist" combine="interleave">
+        <ref name="pagenum.attrib"/>
+        <ref name="common.attrib"/>
+        <ref name="beginpage.role.attrib"/>
+        <ref name="local.beginpage.attrib"/>
+      </define>
+    </div>
+  </div>
+
 <!-- IndexTerms appear in the text flow for generating or linking an
      index. -->
-  <define name="local.indexterm.attrib">
-    <empty/>
-  </define>
-  <define name="indexterm.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="indexterm">
-    <element name="indexterm">
-      <ref name="indexterm.attlist"/>
-      <optional>
-        <ref name="primary"/>
-      </optional>
-      <optional>
-        <choice>
-          <group>
-            <ref name="secondary"/>
+
+  <div db:name="indexterm.content.module">
+
+    <div db:name="indexterm.module">
+      <define name="local.indexterm.attrib">
+        <empty/>
+      </define>
+      <define name="indexterm.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="indexterm">
+        <define name="indexterm">
+          <element name="indexterm">
+            <ref name="indexterm.attlist"/>
+            <optional>
+              <ref name="primary"/>
+            </optional>
             <optional>
               <choice>
                 <group>
-                  <ref name="tertiary"/>
+                  <ref name="secondary"/>
                   <optional>
                     <choice>
+                      <group>
+                        <ref name="tertiary"/>
+                        <optional>
+                          <choice>
+                            <ref name="see"/>
+                            <oneOrMore>
+                              <ref name="seealso"/>
+                            </oneOrMore>
+                          </choice>
+                        </optional>
+                      </group>
                       <ref name="see"/>
                       <oneOrMore>
                         <ref name="seealso"/>
@@ -9522,20 +11704,13 @@ OtherCredit. -->
                 </oneOrMore>
               </choice>
             </optional>
-          </group>
-          <ref name="see"/>
-          <oneOrMore>
-            <ref name="seealso"/>
-          </oneOrMore>
-        </choice>
-      </optional>
-      <s:assert test="not(@startref) or @class='endofrange'"/>
-      <s:assert test="not(@startref) or count(node()) = 0"/>
-      <s:assert test="not(@startref)
-                      or local-name(//*[@id=current()/@startref]) = 'indexterm'"/>
-    </element>
-  </define>
-<!--end of indexterm.element-->
+            <s:assert test="not(@startref) or @class='endofrange'"/>
+            <s:assert test="not(@startref) or count(node()) = 0"/>
+            <s:assert test="not(@startref)                       or local-name(//*[@id=current()/@startref]) = 'indexterm'"/>
+          </element>
+        </define>
+      </div>
+
 <!-- Scope: Indicates which generated indices the IndexTerm
                should appear in: Global (whole document set), Local (this
                document only), or All (both) -->
@@ -9550,155 +11725,186 @@ OtherCredit. -->
                and indicates that the IndexTerm applies to those entire
                elements rather than the point at which the IndexTerm
                occurs -->
-  <define name="indexterm.attlist" combine="interleave">
-    <ref name="pagenum.attrib"/>
-    <optional>
-      <attribute name="scope">
-        <choice>
-          <value>all</value>
-          <value>global</value>
-          <value>local</value>
-        </choice>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="significance" a:defaultValue="normal">
-        <choice>
-          <value>preferred</value>
-          <value>normal</value>
-        </choice>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="class">
-        <choice>
-          <value>singular</value>
-          <value>startofrange</value>
-          <value>endofrange</value>
-        </choice>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="startref">
-        <data type="IDREF"/>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="zone">
-        <data type="IDREFS"/>
-      </attribute>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="indexterm.role.attrib"/>
-    <ref name="local.indexterm.attrib"/>
-  </define>
-<!--end of indexterm.attlist-->
-<!--end of indexterm.module-->
-  <define name="local.primsecter.attrib">
-    <empty/>
-  </define>
-  <define name="primsecter.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="primary">
-    <element name="primary">
-      <ref name="primary.attlist"/>
-      <zeroOrMore>
-        <ref name="ndxterm.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of primary.element-->
+
+      <div db:name="indexterm.attlist">
+        <define name="indexterm.attlist" combine="interleave">
+          <ref name="pagenum.attrib"/>
+          <optional>
+            <attribute name="scope">
+              <choice>
+                <value>all</value>
+                <value>global</value>
+                <value>local</value>
+              </choice>
+            </attribute>
+          </optional>
+          <optional>
+            <attribute name="significance" a:defaultValue="normal">
+              <choice>
+                <value>preferred</value>
+                <value>normal</value>
+              </choice>
+            </attribute>
+          </optional>
+          <optional>
+            <attribute name="class">
+              <choice>
+                <value>singular</value>
+                <value>startofrange</value>
+                <value>endofrange</value>
+              </choice>
+            </attribute>
+          </optional>
+          <optional>
+            <attribute name="startref">
+              <data type="IDREF"/>
+            </attribute>
+          </optional>
+          <optional>
+            <attribute name="zone">
+              <data type="IDREFS"/>
+            </attribute>
+          </optional>
+          <ref name="common.attrib"/>
+          <ref name="indexterm.role.attrib"/>
+          <ref name="local.indexterm.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="primsecter.module">
+      <define name="local.primsecter.attrib">
+        <empty/>
+      </define>
+      <define name="primsecter.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="primary">
+        <define name="primary">
+          <element name="primary">
+            <ref name="primary.attlist"/>
+            <zeroOrMore>
+              <ref name="ndxterm.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
 <!-- SortAs: Alternate sort string for index sorting, e.g.,
                "fourteen" for an element containing "14" -->
-  <define name="primary.attlist" combine="interleave">
-    <optional>
-      <attribute name="sortas"/>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="primsecter.role.attrib"/>
-    <ref name="local.primsecter.attrib"/>
-  </define>
-<!--end of primary.attlist-->
-  <define name="secondary">
-    <element name="secondary">
-      <ref name="secondary.attlist"/>
-      <zeroOrMore>
-        <ref name="ndxterm.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of secondary.element-->
+
+      <div db:name="primary.attlist">
+        <define name="primary.attlist" combine="interleave">
+          <optional>
+            <attribute name="sortas"/>
+          </optional>
+          <ref name="common.attrib"/>
+          <ref name="primsecter.role.attrib"/>
+          <ref name="local.primsecter.attrib"/>
+        </define>
+      </div>
+
+      <div db:name="secondary">
+        <define name="secondary">
+          <element name="secondary">
+            <ref name="secondary.attlist"/>
+            <zeroOrMore>
+              <ref name="ndxterm.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
 <!-- SortAs: Alternate sort string for index sorting, e.g.,
                "fourteen" for an element containing "14" -->
-  <define name="secondary.attlist" combine="interleave">
-    <optional>
-      <attribute name="sortas"/>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="primsecter.role.attrib"/>
-    <ref name="local.primsecter.attrib"/>
-  </define>
-<!--end of secondary.attlist-->
-  <define name="tertiary">
-    <element name="tertiary">
-      <ref name="tertiary.attlist"/>
-      <zeroOrMore>
-        <ref name="ndxterm.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of tertiary.element-->
+
+      <div db:name="secondary.attlist">
+        <define name="secondary.attlist" combine="interleave">
+          <optional>
+            <attribute name="sortas"/>
+          </optional>
+          <ref name="common.attrib"/>
+          <ref name="primsecter.role.attrib"/>
+          <ref name="local.primsecter.attrib"/>
+        </define>
+      </div>
+
+      <div db:name="tertiary">
+        <define name="tertiary">
+          <element name="tertiary">
+            <ref name="tertiary.attlist"/>
+            <zeroOrMore>
+              <ref name="ndxterm.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
 <!-- SortAs: Alternate sort string for index sorting, e.g.,
                "fourteen" for an element containing "14" -->
-  <define name="tertiary.attlist" combine="interleave">
-    <optional>
-      <attribute name="sortas"/>
-    </optional>
-    <ref name="common.attrib"/>
-    <ref name="primsecter.role.attrib"/>
-    <ref name="local.primsecter.attrib"/>
-  </define>
-<!--end of tertiary.attlist-->
-<!--end of primsecter.module-->
-  <define name="local.seeseealso.attrib">
-    <empty/>
-  </define>
-  <define name="seeseealso.role.attrib">
-    <ref name="role.attrib"/>
-  </define>
-  <define name="see">
-    <element name="see">
-      <ref name="see.attlist"/>
-      <zeroOrMore>
-        <ref name="ndxterm.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of see.element-->
-  <define name="see.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="seeseealso.role.attrib"/>
-    <ref name="local.seeseealso.attrib"/>
-  </define>
-<!--end of see.attlist-->
-  <define name="seealso">
-    <element name="seealso">
-      <ref name="seealso.attlist"/>
-      <zeroOrMore>
-        <ref name="ndxterm.char.mix"/>
-      </zeroOrMore>
-    </element>
-  </define>
-<!--end of seealso.element-->
-  <define name="seealso.attlist" combine="interleave">
-    <ref name="common.attrib"/>
-    <ref name="seeseealso.role.attrib"/>
-    <ref name="local.seeseealso.attrib"/>
-  </define>
-<!--end of seealso.attlist-->
-<!--end of seeseealso.module-->
-<!--end of indexterm.content.module-->
+
+      <div db:name="tertiary.attlist">
+        <define name="tertiary.attlist" combine="interleave">
+          <optional>
+            <attribute name="sortas"/>
+          </optional>
+          <ref name="common.attrib"/>
+          <ref name="primsecter.role.attrib"/>
+          <ref name="local.primsecter.attrib"/>
+        </define>
+      </div>
+    </div>
+
+    <div db:name="seeseealso.module">
+      <define name="local.seeseealso.attrib">
+        <empty/>
+      </define>
+      <define name="seeseealso.role.attrib">
+        <ref name="role.attrib"/>
+      </define>
+
+      <div db:name="see">
+        <define name="see">
+          <element name="see">
+            <ref name="see.attlist"/>
+            <zeroOrMore>
+              <ref name="ndxterm.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="see.attlist">
+        <define name="see.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="seeseealso.role.attrib"/>
+          <ref name="local.seeseealso.attrib"/>
+        </define>
+      </div>
+
+      <div db:name="seealso">
+        <define name="seealso">
+          <element name="seealso">
+            <ref name="seealso.attlist"/>
+            <zeroOrMore>
+              <ref name="ndxterm.char.mix"/>
+            </zeroOrMore>
+          </element>
+        </define>
+      </div>
+
+      <div db:name="seealso.attlist">
+        <define name="seealso.attlist" combine="interleave">
+          <ref name="common.attrib"/>
+          <ref name="seeseealso.role.attrib"/>
+          <ref name="local.seeseealso.attrib"/>
+        </define>
+      </div>
+    </div>
+  </div>
+
 <!-- End of DocBook XML information pool module V4.2 ...................... -->
 <!-- ...................................................................... -->
+
 </grammar>
index 219e713554e346d6b223930b723ebd4118620bed..2ebf7c3951a051995ee7e2194c3b00e361c408b8 100644 (file)
@@ -1,8 +1,159 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <grammar xmlns="http://relaxng.org/ns/structure/1.0"
+         xmlns:rng="http://relaxng.org/ns/structure/1.0"
          xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
+         xmlns:s="http://www.ascc.net/xml/schematron"
+         xmlns:doc="http://nwalsh.com/xmlns/documentation"
+         xmlns:db="http://nwalsh.com/xmlns/docbook-grammar-structure"
          datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 
+<rng:div doc:docbook="yes" xmlns="">
+<partinfo>
+<releaseinfo
+   role="cvs">$Id$</releaseinfo>
+<title>DocBook Information Pool</title>
+<productname>DocBook</productname>
+<productnumber>4.2</productnumber>
+<releaseinfo role="filename">dbpool</releaseinfo>
+<copyright>
+<year>1992</year>
+<year>1993</year>
+<year>1994</year>
+<year>1995</year>
+<year>1996</year>
+<year>1997</year>
+<year>1998</year>
+<year>1999</year>
+<year>2000</year>
+<year>2001</year>
+<year>2002</year>
+<holder>HaL Computer Systems, Inc.</holder>
+<holder>O'Reilly &amp; Associates, Inc.</holder>
+<holder>ArborText, Inc.</holder>
+<holder>Fujitsu Software Corporation</holder>
+<holder>Norman Walsh</holder>
+<holder>Sun Microsystems, Inc.</holder>
+<holder>OASIS Open, Inc.</holder>
+</copyright>
+
+<legalnotice>
+<para>Permission to use, copy, modify and distribute the DocBook schema
+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 schema for
+any purpose. It is provided <quote>as is</quote> without expressed or implied
+warranty.</para>
+
+<para>If you modify the DocBook in any way, except for declaring and
+referencing additional sets of general entities and declaring
+additional notations, label your schema as a variant of DocBook. See
+the maintenance documentation for more information.</para>
+
+<para>Please direct all questions, bug reports, or suggestions for
+changes to the <email>docbook@lists.oasis-open.org</email> mailing list. For more
+information, see <ulink url="http://www.oasis-open.org/docbook/"/>.</para>
+</legalnotice>
+</partinfo>
+
+<partintro>
+<para>This is the driver file for V4.2 of the DocBook DTD.
+Please use the following formal public identifier to identify it:</para>
+
+<screen>"-//OASIS//DTD DocBook XML V4.2//EN"</screen>
+
+<para>For example, if your document's top-level element is Book, and
+you are using the DocBook DTD directly, use the FPI in the DOCTYPE
+declaration:</para>
+
+<programlisting><![CDATA[<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+               "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
+               [...]>]]></programlisting>
+
+<para>Or, if you have a higher-level driver file that customizes the DocBook DTD,
+use the FPI in the parameter entity declaration:</para>
+
+<programlisting><![CDATA[<!ENTITY % DocBookDTD PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+           "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
+%DocBookDTD;]]></programlisting>
+
+<para>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.</para>
+</partintro>
+</rng:div>
+
+<!-- ...................................................................... -->
+<!-- Enable SGML features ................................................. -->
+
+  <div db:name="sgml.features" db:ignore="yes">
+    <db:parameter-entity-declaration name="xml.features" value="IGNORE"/>
+  </div>
+
+  <db:parameter-entity-declaration name="xml.features" value="INCLUDE"/>
+
+  <div db:name="sgml.features" db:declare="no">
+    <div db:name="xml.features" db:declare="no">
+
+      <!-- ERROR: Exactly one of xml.features and sgml.features must be turned on! -->
+      <db:parameter-entity-declaration name="dbnotn"
+          system="http://www.oasis-open.org/docbook/xml/configerror.txt"/>
+      <db:parameter-entity-declaration name="dbcent"
+          system="http://www.oasis-open.org/docbook/xml/configerror.txt"/>
+      <db:parameter-entity-declaration name="dbpool"
+          system="http://www.oasis-open.org/docbook/xml/configerror.txt"/>
+      <db:parameter-entity-declaration name="dbhier"
+          system="http://www.oasis-open.org/docbook/xml/configerror.txt"/>
+      <db:parameter-entity-declaration name="dbgenent"
+          system="http://www.oasis-open.org/docbook/xml/configerror.txt"/>
+    </div>
+  </div>
+
+<!-- Notation declarations ................................................ -->
+
+  <include href="dbnotn.rng"/>
+
+<!-- ...................................................................... -->
+<!-- ISO character entity sets ............................................ -->
+
+  <!-- euro sign, U+20AC NEW -->
+  <div db:name="sgml.features" db:declare="no">
+    <db:parameter-entity-declaration name="euro" value="[euro  ]"/>
+  </div>
+
+  <div db:name="xml.features" db:declare="no">
+    <db:parameter-entity-declaration name="euro" value="&amp;#x20AC;"/>
+  </div>
+
+  <include href="dbcent.rng"/>
+
+<!-- ...................................................................... -->
+<!-- DTD modules .......................................................... -->
+<!-- Information pool .............. -->
+
+  <include href="dbpool.rng"/>
+
+<!-- Redeclaration placeholder ..... -->
+
+  <div db:name="intermod.redecl.module" db:ignore="yes">
+    <!-- Defining rdbmods here makes some buggy XML parsers happy. -->
+    <db:parameter-entity-declaration name="rdbmods" value=""/>
+    <db:parameter-entity-reference name="rdbmods"/>
+  </div>
+
+<!-- Document hierarchy ............ -->
+
+  <include href="dbhier.rng"/>
+
+<!-- ...................................................................... -->
+<!-- Other general entities ............................................... -->
+
+  <include href="dbgenent.rng"/>
+
+<!-- End of DocBook XML DTD V4.2 .......................................... -->
+<!-- ...................................................................... -->
+
   <start>
     <!-- this could (should?) be expanded to include all the elements -->
     <choice>
       <ref name="para"/>
     </choice>
   </start>
-
-
-<!-- ...................................................................... -->
-<!-- DocBook XML DTD V4.2 ................................................. -->
-<!-- File docbookx.dtd .................................................... -->
-<!-- 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$
-
-     Permission to use, copy, modify and distribute the DocBook XML 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 is the driver file for V4.2 of the DocBook DTD.
-     Please use the following formal public identifier to identify it:
-
-     "-//OASIS//DTD DocBook XML V4.2//EN"
-
-     For example, if your document's top-level element is Book, and
-     you are using DocBook directly, use the FPI in the DOCTYPE
-     declaration:
-
-     <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
-                    "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
-                    [...]>
-
-     Or, if you have a higher-level driver file that customizes DocBook,
-     use the FPI in the parameter entity declaration:
-
-     <!ENTITY % DocBookDTD PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
-                "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-     %DocBookDTD;
-
-     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.
--->
-<!-- ...................................................................... -->
-<!-- Enable SGML features ................................................. -->
-<!-- ...................................................................... -->
-<!-- Notation declarations ................................................ -->
-  <include href="dbnotn.rng"/>
-
-<!-- ...................................................................... -->
-<!-- ISO character entity sets ............................................ -->
-<!-- euro sign, U+20AC NEW -->
-  <include href="dbcent.rng"/>
-
-<!-- ...................................................................... -->
-<!-- DTD modules .......................................................... -->
-<!-- Information pool .............. -->
-  <include href="dbpool.rng"/>
-
-<!-- Redeclaration placeholder ..... -->
-<!-- Document hierarchy ............ -->
-  <include href="dbhier.rng"/>
-<!-- ...................................................................... -->
-<!-- Other general entities ............................................... -->
-<!-- End of DocBook XML DTD V4.2 .......................................... -->
-<!-- ...................................................................... -->
-
 </grammar>
index d0866291ed63d25831046d5108478583dd229fc3..c7bd1a0bb84406068c07d6ba8c5288f76e2d072e 100644 (file)
 <?xml version="1.0" encoding="UTF-8"?>
-<grammar datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" xmlns="http://relaxng.org/ns/structure/1.0" xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">
-<!-- XML EXCHANGE TABLE MODEL DECLARATION MODULE -->
-<!-- This set of declarations defines the XML version of the Exchange
-     Table Model as of the date shown in the Formal Public Identifier
-     (FPI) for this entity.
+<grammar xmlns="http://relaxng.org/ns/structure/1.0"
+         xmlns:rng="http://relaxng.org/ns/structure/1.0"
+         xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
+         xmlns:s="http://www.ascc.net/xml/schematron"
+         xmlns:doc="http://nwalsh.com/xmlns/documentation"
+         xmlns:db="http://nwalsh.com/xmlns/docbook-grammar-structure"
+         datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+
+<rng:div doc:docbook="yes" xmlns="">
+<partinfo>
+<releaseinfo
+   role="cvs">$Id$</releaseinfo>
+<title>XML Exchange Table Model</title>
+<productname>DocBook</productname>
+<productnumber>4.2</productnumber>
+<releaseinfo role="filename">soextbl</releaseinfo>
+</partinfo>
+<partintro>
+<para>This set of declarations defines the XML version of the Exchange
+Table Model as of the date shown in the Formal Public Identifier
+(FPI) for this entity.</para>
+
+<para>This set of declarations may be referred to using a public external
+entity declaration and reference as shown in the following three
+lines:</para>
+
+<screen><![CDATA[<!ENTITY % calstblx
+  PUBLIC "-//OASIS//DTD XML Exchange Table Model 19990315//EN">
+  %calstblx;]]></screen>
+
+<para>If various parameter entities used within this set of declarations
+are to be given non-default values, the appropriate declarations
+should be given before calling in this package (i.e., before the
+"%calstblx;" reference).</para>
+
+<para>The motivation for this XML version of the Exchange Table Model
+is simply to create an XML version of the SGML Exchange Table
+Model. By design, no effort has been made to "improve" the model.</para>
+
+<para>This XML version incorporates the logical bare minimum changes
+necessary to make the Exchange Table Model a valid XML DTD.</para>
+
+<para>The XML version of the Exchange Table Model differs from
+the SGML version in the following ways:</para>
+
+<para>The following parameter entities have been removed:</para>
+
+<itemizedlist>
+<listitem>
+<para>tbl.table.excep, tbl.hdft.excep, tbl.row.excep, tbl.entry.excep</para>
+<para>
+There are no exceptions in XML. The following normative statement
+is made in lieu of exceptions: the exchange table model explicitly
+forbids a table from occurring within another table. If the
+content model of an entry includes a table element, then this
+cannot be enforced by the DTD, but it is a deviation from the
+exchange table model to include a table within a table.</para>
+</listitem>
+
+<listitem>
+<para>tbl.hdft.name, tbl.hdft.mdl, tbl.hdft.excep, tbl.hdft.att</para>
+<para>
+The motivation for these elements was to change the table
+header/footer elements. Since XML does not allow element declarations
+to contain name groups, and the exchange table model does not
+allow a table to contain footers, the continued presence of these
+attributes seems unnecessary.</para>
+</listitem>
+</itemizedlist>
+
+<para>The following parameter entity has been added:</para>
+
+<itemizedlist>
+<listitem>
+<para>tbl.thead.att</para>
+<para>This entity parameterizes the attributes on thead. It replaces
+the tbl.hdft.att parameter entity.</para>
+</listitem>
+</itemizedlist>
+
+<para>Other miscellaneous changes:</para>
+
+<itemizedlist>
+<listitem>
+<para>Tag ommission indicators have been removed</para>
+</listitem>
+
+<listitem>
+<para>Comments have been removed from declarations</para>
+</listitem>
+
+<listitem>
+<para>NUMBER attributes have been changed to NMTOKEN</para>
+</listitem>
+
+<listitem>
+<para>NUTOKEN attributes have been to changed to NMTOKEN</para>
+</listitem>
+
+<listitem>
+<para>Removed the grouping characters around the content model
+parameter entry for the 'entry' element. This is necessary
+so that an entry can contain #PCDATA and be defined as an
+optional, repeatable OR group beginning with #PCDATA.</para>
+</listitem>
+</itemizedlist>
+
+<para>This entity includes a set of element and attribute declarations
+that partially defines the Exchange table model.  However, the model
+is not well-defined without the accompanying natural language
+description of the semantics (meanings) of these various elements,
+attributes, and attribute values.  The semantic writeup, also available
+from SGML Open, should be used in conjunction with this entity.</para>
+
+<para>In order to use the Exchange table model, various parameter entity
+declarations are required.  A brief description is as follows:</para>
+
+<informaltable>
+<tgroup cols="3">
+<thead>
+  <row>
+    <entry>Entity Name</entry>
+    <entry>Where Used</entry>
+    <entry>What It Is</entry>
+  </row>
+</thead>
+<tbody>
+  <row>
+    <entry>%yesorno</entry>
+    <entry>In ATTLIST of: almost all elements </entry>
+    <entry>An attribute declared value for a "boolean" attribute</entry>
+  </row>
+  <row>
+    <entry>%paracon</entry>
+    <entry>In the content model of <sgmltag>entry</sgmltag></entry>
+    <entry>The "text" (logical content) of the model group for
+           <sgmltag>entry</sgmltag></entry>
+  </row>
+  <row>
+    <entry>%titles</entry>
+    <entry>In content model of: table element</entry>
+    <entry>The "title" part of the model group for the table element</entry>
+  </row>
+  <row>
+    <entry>%tbl.table.name</entry>
+    <entry>In declaration of: table element</entry>
+    <entry>The name of the "table" element</entry>
+  </row>
+  <row>
+    <entry>%tbl.table-titles.mdl</entry>
+    <entry>In content model of: table elements</entry>
+    <entry>The model group for the title part of the content model for
+           table element</entry>
+  </row>
+  <row>
+    <entry>%tbl.table.mdl</entry>
+    <entry>In content model of: table elements</entry>
+    <entry>The model group for the content model for table element, often (and by
+           default) defined in terms of %tbl.table-titles.mdl and tgroup</entry>
+  </row>
+  <row>
+    <entry>%tbl.table.att</entry>
+    <entry>In ATTLIST of: table element</entry>
+    <entry>Additional attributes on the table element</entry>
+  </row>
+  <row>
+    <entry>%bodyatt</entry>
+    <entry>In ATTLIST of: table element</entry>
+    <entry>Additional attributes on the table element (for backward compatibility
+           with the SGML model)</entry>
+  </row>
+  <row>
+    <entry>%tbl.tgroup.mdl</entry>
+    <entry>In content model of: <sgmltag>tgroup</sgmltag></entry>
+    <entry>The model group for the content model for <sgmltag>tgroup</sgmltag></entry>
+  </row>
+  <row>
+    <entry>%tbl.tgroup.att</entry>
+    <entry>In ATTLIST of: <sgmltag>tgroup</sgmltag></entry>
+    <entry>Additional attributes on the <sgmltag>tgroup</sgmltag> element</entry>
+  </row>
+  <row>
+    <entry>%tbl.thead.att</entry>
+    <entry>In ATTLIST of: <sgmltag>thead</sgmltag></entry>
+    <entry>Additional attributes on the <sgmltag>thead</sgmltag> element</entry>
+  </row>
+  <row>
+    <entry>%tbl.tbody.att</entry>
+    <entry>In ATTLIST of: <sgmltag>tbody</sgmltag></entry>
+    <entry>Additional attributes on the <sgmltag>tbody</sgmltag> element</entry>
+  </row>
+  <row>
+    <entry>%tbl.colspec.att</entry>
+    <entry>In ATTLIST of: <sgmltag>colspec</sgmltag></entry>
+    <entry>Additional attributes on the <sgmltag>colspec</sgmltag> element</entry>
+  </row>
+  <row>
+    <entry>%tbl.row.mdl</entry>
+    <entry>In content model of: <sgmltag>row</sgmltag></entry>
+    <entry>The model group for the content model for <sgmltag>row</sgmltag></entry>
+  </row>
+  <row>
+    <entry>%tbl.row.att</entry>
+    <entry>In ATTLIST of: <sgmltag>row</sgmltag></entry>
+    <entry>Additional attributes on the <sgmltag>row</sgmltag> element</entry>
+  </row>
+  <row>
+    <entry>%tbl.entry.mdl</entry>
+    <entry>In content model of: <sgmltag>entry</sgmltag></entry>
+    <entry>The model group for the content model for <sgmltag>entry</sgmltag></entry>
+  </row>
+  <row>
+    <entry>%tbl.entry.att</entry>
+    <entry>In ATTLIST of: <sgmltag>entry</sgmltag></entry>
+    <entry>Additional attributes on the <sgmltag>entry</sgmltag> element</entry>
+  </row>
+</tbody>
+</tgroup>
+</informaltable>
+
+<para>This set of declarations will use the default definitions shown below
+for any of these parameter entities that are not declared before this
+set of declarations is referenced.</para>
+</partintro>
+</rng:div>
 
-     This set of declarations may be referred to using a public external
-     entity declaration and reference as shown in the following three
-     lines:
-
-     <!ENTITY % calstblx
-       PUBLIC "-//OASIS//DTD XML Exchange Table Model 19990315//EN">
-       %calstblx;
-
-     If various parameter entities used within this set of declarations
-     are to be given non-default values, the appropriate declarations
-     should be given before calling in this package (i.e., before the
-     "%calstblx;" reference).
--->
-<!-- The motivation for this XML version of the Exchange Table Model
-     is simply to create an XML version of the SGML Exchange Table
-     Model. By design, no effort has been made to "improve" the model.
-
-     This XML version incorporates the logical bare minimum changes
-     necessary to make the Exchange Table Model a valid XML DTD.
--->
-<!-- The XML version of the Exchange Table Model differs from
-     the SGML version in the following ways:
-
-     The following parameter entities have been removed:
-
-       - tbl.table.excep, tbl.hdft.excep, tbl.row.excep, tbl.entry.excep
-         There are no exceptions in XML. The following normative statement
-         is made in lieu of exceptions: the exchange table model explicitly
-         forbids a table from occurring within another table. If the
-         content model of an entry includes a table element, then this
-         cannot be enforced by the DTD, but it is a deviation from the
-         exchange table model to include a table within a table.
-
-       - tbl.hdft.name, tbl.hdft.mdl, tbl.hdft.excep, tbl.hdft.att
-         The motivation for these elements was to change the table
-         header/footer elements. Since XML does not allow element declarations
-         to contain name groups, and the exchange table model does not
-         allow a table to contain footers, the continued presence of these
-         attributes seems unnecessary.
-
-     The following parameter entity has been added:
-
-       - tbl.thead.att
-         This entity parameterizes the attributes on thead. It replaces
-         the tbl.hdft.att parameter entity.
-
-     Other miscellaneous changes:
-
-       - Tag ommission indicators have been removed
-       - Comments have been removed from declarations
-       - NUMBER attributes have been changed to NMTOKEN
-       - NUTOKEN attributes have been to changed to NMTOKEN
-       - Removed the grouping characters around the content model
-         parameter entry for the 'entry' element. This is necessary
-         so that an entry can contain #PCDATA and be defined as an
-         optional, repeatable OR group beginning with #PCDATA.
--->
-<!-- This entity includes a set of element and attribute declarations
-     that partially defines the Exchange table model.  However, the model
-     is not well-defined without the accompanying natural language
-     description of the semantics (meanings) of these various elements,
-     attributes, and attribute values.  The semantic writeup, also available
-     from SGML Open, should be used in conjunction with this entity.
--->
-<!-- In order to use the Exchange table model, various parameter entity
-     declarations are required.  A brief description is as follows:
-
-     ENTITY NAME      WHERE USED              WHAT IT IS
-
-     %yesorno         In ATTLIST of:          An attribute declared value
-                      almost all elements     for a "boolean" attribute
-
-     %paracon         In content model of:    The "text" (logical content)
-                      <entry>                 of the model group for <entry>
-
-     %titles          In content model of:    The "title" part of the model
-                      table element           group for the table element
-
-     %tbl.table.name  In declaration of:      The name of the "table"
-                      table element           element
-
-     %tbl.table-titles.mdl In content model of: The model group for the title
-                      table elements          part of the content model for
-                                              table element
-
-     %tbl.table.mdl   In content model of:    The model group for the content
-                      table elements          model for table element,
-                                              often (and by default) defined
-                                              in terms of %tbl.table-titles.mdl
-                                              and tgroup
-
-     %tbl.table.att   In ATTLIST of:          Additional attributes on the
-                      table element           table element
-
-     %bodyatt         In ATTLIST of:          Additional attributes on the
-                      table element           table element (for backward
-                                              compatibility with the SGML
-                                              model)
-
-     %tbl.tgroup.mdl  In content model of:    The model group for the content
-                      <tgroup>                model for <tgroup>
-
-     %tbl.tgroup.att  In ATTLIST of:          Additional attributes on the
-                      <tgroup>                <tgroup> element
-
-     %tbl.thead.att   In ATTLIST of:          Additional attributes on the
-                      <thead>                 <thead> element
-
-     %tbl.tbody.att   In ATTLIST of:          Additional attributes on the
-                      <tbody>                 <tbody> element
-
-     %tbl.colspec.att In ATTLIST of:          Additional attributes on the
-                      <colspec>               <colspec> element
-
-     %tbl.row.mdl     In content model of:    The model group for the content
-                      <row>                   model for <row>
-
-     %tbl.row.att     In ATTLIST of:          Additional attributes on the
-                      <row>                   <row> element
-
-     %tbl.entry.mdl   In content model of:    The model group for the content
-                      <entry>                 model for <entry>
-
-     %tbl.entry.att   In ATTLIST of:          Additional attributes on the
-                      <entry>                 <entry> element
-
-     This set of declarations will use the default definitions shown below
-     for any of these parameter entities that are not declared before this
-     set of declarations is referenced.
--->
 <!-- These definitions are not directly related to the table model, but are
      used in the default CALS table model and may be defined elsewhere (and
      prior to the inclusion of this table module) in the referencing DTD. -->