<?xml version="1.0" encoding="utf-8"?>
<grammar xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dtd="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns="http://relaxng.org/ns/structure/1.0" xmlns:db="http://docbook.org/ns/docbook" xmlns:dbx="http://sourceforge.net/projects/docbook/defguide/schema/extra-markup" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://docbook.org/ns/docbook">

<!-- DocBook NG: The "Lillet" Release -->
<!-- See http://docbook.org/ns/docbook -->

   <start>
      <choice>
         <choice>
            <ref name="db.set"/>
            <ref name="db.book"/>
            <ref name="db.divisions"/>
            <ref name="db.components"/>
            <ref name="db.navigation.components"/>
            <ref name="db.section"/>
            <ref name="db.para"/>
         </choice>
         <choice>
            <ref name="db.refentry"/>
            <ref name="db.refsection"/>
         </choice>
         <ref name="db.setindex"/>
      </choice>
   </start>

   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>*:*</db:refname>
      <db:refpurpose>Any element from any namespace except the DocBook namespace</db:refpurpose>
      <define name="db._any">
         <element>
            <anyName>
               <except>
                  <nsName/>
                  <nsName ns="http://www.w3.org/1999/xhtml"/>
               </except>
            </anyName>
            <zeroOrMore>
               <choice>
                  <attribute>
                     <anyName/>
                  </attribute>
                  <text/>
                  <ref name="db._any"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.effectivity.attributes">
      <optional>
         <attribute name="arch">
            <dbx:description>
               <db:para>The <db:tag class="attribute">arch</db:tag>
 attribute designates the computer or chip architecture to which the element applies.</db:para>
            </dbx:description>
         </attribute>
      </optional>
      <optional>
         <attribute name="condition">
            <dbx:description>
               <db:para>The <db:tag class="attribute">condition</db:tag>
 attribute provides a standard place for application-specific effectivity.</db:para>
               <db:para>Many DocBook users observed that in order to add an effectivity condition that was unique to their environment required <db:quote>abusing</db:quote>
 the semantics of one of the existing attributes, or adding their own, making their customization <db:link linkend="s-notdocbook">an extension rather than a subset</db:link>
. The<db:tag class="attribute">condition</db:tag>
 attribute is a general-purpose effectivity attribute with no specified semantics.</db:para>
            </dbx:description>
         </attribute>
      </optional>
      <optional>
         <attribute name="conformance">
            <dbx:description>The <db:tag class="attribute">conformance</db:tag>
 attribute indicates standards conformance characteristics of the item contained in the element. These characteristics are application-specific; DocBook provides no default semantics.</dbx:description>
         </attribute>
      </optional>
      <optional>
         <attribute name="os">
            <dbx:description>
               <db:para>The <db:tag class="attribute">os</db:tag>
 attribute indicates the operating system to which the element is applicable.</db:para>
            </dbx:description>
         </attribute>
      </optional>
      <optional>
         <attribute name="revision">
            <dbx:description>
               <db:para>The <db:tag class="attribute">revision</db:tag>
 attribute indicates the editorial revision to which the element belongs.</db:para>
            </dbx:description>
         </attribute>
      </optional>
      <optional>
         <attribute name="security">
            <dbx:description>
               <db:para>The <db:tag class="attribute">security</db:tag>
 attribute indicates something about the security level associated with the element to which it applies.</db:para>
            </dbx:description>
         </attribute>
      </optional>
      <optional>
         <attribute name="userlevel">
            <dbx:description>
               <db:para>The <db:tag class="attribute">userlevel</db:tag>
 attribute indicates the level of user experience to which element applies.</db:para>
            </dbx:description>
         </attribute>
      </optional>
      <optional>
         <attribute name="vendor">
            <dbx:description>
               <db:para>The <db:tag class="attribute">vendor</db:tag>
 attribute indicates the computer vendor to which the element applies.</db:para>
            </dbx:description>
         </attribute>
      </optional>
      <optional>
         <attribute name="wordsize">
            <dbx:description>
               <db:para>The <db:tag class="attribute">wordsize</db:tag>
 attribute indicates the word size (width in bits) of the computer architecture to which the element applies.</db:para>
            </dbx:description>
         </attribute>
      </optional>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.linkend.attribute">
      <attribute name="linkend">
         <data type="IDREF"/>
      </attribute>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.linkends.attribute">
      <attribute name="linkends">
         <data type="IDREFS"/>
      </attribute>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.xlink.href.attribute">
      <attribute name="xlink:href"/>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.xlink.type.attribute">
      <attribute name="xlink:type">
         <value>simple</value>
      </attribute>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.xlink.role.attribute">
      <attribute name="xlink:role">
         <data type="anyURI"/>
      </attribute>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.xlink.arcrole.attribute">
      <attribute name="xlink:arcrole">
         <data type="anyURI"/>
      </attribute>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.xlink.title.attribute">
      <optional>
         <attribute name="xlink:title"/>
      </optional>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.xlink.show.enumeration">
      <choice>
         <value>new</value>
         <value>replace</value>
         <value>embed</value>
         <value>other</value>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.xlink.show.attribute">
      <attribute name="xlink:show">
         <ref name="db.xlink.show.enumeration"/>
      </attribute>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.xlink.actuate.enumeration">
      <choice>
         <value>onLoad</value>
         <value>onRequest</value>
         <value>other</value>
         <value>none</value>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.xlink.actuate.attribute">
      <attribute name="xlink:actuate">
         <ref name="db.xlink.actuate.enumeration"/>
      </attribute>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.href.attribute">
      <interleave>
         <ref name="db.xlink.href.attribute"/>
         <optional>
            <ref name="db.xlink.type.attribute"/>
         </optional>
         <optional>
            <ref name="db.xlink.role.attribute"/>
         </optional>
         <optional>
            <ref name="db.xlink.arcrole.attribute"/>
         </optional>
         <optional>
            <ref name="db.xlink.title.attribute"/>
         </optional>
         <optional>
            <ref name="db.xlink.show.attribute"/>
         </optional>
         <optional>
            <ref name="db.xlink.actuate.attribute"/>
         </optional>
      </interleave>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.xml.id.attribute">
      <attribute name="xml:id">
         <data type="ID"/>
      </attribute>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.version.attribute">
      <attribute name="version"/>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.xml.lang.attribute">
      <attribute name="xml:lang"/>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.xml.base.attribute">
      <attribute name="xml:base"/>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.remap.attribute">
      <attribute name="remap"/>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.xreflabel.attribute">
      <attribute name="xreflabel"/>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.revisionflag.enumeration">
      <choice>
         <value>changed</value>
         <value>added</value>
         <value>deleted</value>
         <value>off</value>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.revisionflag.attribute">
      <attribute name="revisionflag">
         <ref name="db.revisionflag.enumeration"/>
      </attribute>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.common.attributes">
      <interleave>
         <optional>
            <ref name="db.xml.id.attribute"/>
         </optional>
         <optional>
            <ref name="db.version.attribute"/>
         </optional>
         <optional>
            <ref name="db.xml.lang.attribute"/>
         </optional>
         <optional>
            <ref name="db.xml.base.attribute"/>
         </optional>
         <optional>
            <ref name="db.remap.attribute"/>
         </optional>
         <optional>
            <ref name="db.xreflabel.attribute"/>
         </optional>
         <optional>
            <ref name="db.revisionflag.attribute"/>
         </optional>
         <ref name="db.effectivity.attributes"/>
         <optional>
            <ref name="db.annotations.attribute"/>
         </optional>
      </interleave>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.common.idreq.attributes">
      <interleave>
         <ref name="db.xml.id.attribute"/>
         <optional>
            <ref name="db.version.attribute"/>
         </optional>
         <optional>
            <ref name="db.xml.lang.attribute"/>
         </optional>
         <optional>
            <ref name="db.xml.base.attribute"/>
         </optional>
         <optional>
            <ref name="db.remap.attribute"/>
         </optional>
         <optional>
            <ref name="db.xreflabel.attribute"/>
         </optional>
         <optional>
            <ref name="db.revisionflag.attribute"/>
         </optional>
         <ref name="db.effectivity.attributes"/>
         <optional>
            <ref name="db.annotations.attribute"/>
         </optional>
      </interleave>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.common.linking.attributes">
      <optional>
         <choice>
            <ref name="db.linkend.attribute"/>
            <ref name="db.href.attribute"/>
         </choice>
      </optional>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.common.req.linking.attributes">
      <choice>
         <ref name="db.linkend.attribute"/>
         <ref name="db.href.attribute"/>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.common.data.attributes">
      <optional>
         <attribute name="format"/>
      </optional>
      <choice>
         <attribute name="fileref">
            <data type="anyURI"/>
         </attribute>
         <attribute name="entityref">
            <data type="ENTITY"/>
         </attribute>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.verbatim.continuation.enumeration">
      <choice>
         <value>continues</value>
         <value>restarts</value>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.verbatim.continuation.attribute">
      <attribute name="continuation">
         <ref name="db.verbatim.continuation.enumeration"/>
      </attribute>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.verbatim.linenumbering.enumeration">
      <choice>
         <value>numbered</value>
         <value>unnumbered</value>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.verbatim.linenumbering.attribute">
      <attribute name="linenumbering">
         <ref name="db.verbatim.linenumbering.enumeration"/>
      </attribute>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.verbatim.startinglinenumber.attribute">
      <attribute name="startinglinenumber">
         <data type="integer"/>
      </attribute>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.verbatim.language.attribute">
      <attribute name="language"/>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.verbatim.xml.space.attribute">
      <attribute name="xml:space">
         <value>preserve</value>
      </attribute>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.verbatim.attributes">
      <interleave>
         <optional>
            <ref name="db.verbatim.continuation.attribute"/>
         </optional>
         <optional>
            <ref name="db.verbatim.linenumbering.attribute"/>
         </optional>
         <optional>
            <ref name="db.verbatim.startinglinenumber.attribute"/>
         </optional>
         <optional>
            <ref name="db.verbatim.language.attribute"/>
         </optional>
         <optional>
            <ref name="db.verbatim.xml.space.attribute"/>
         </optional>
      </interleave>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.spacing.enumeration">
      <choice>
         <value>compact</value>
         <value>normal</value>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.spacing.attribute">
      <attribute name="spacing">
         <ref name="db.spacing.enumeration"/>
      </attribute>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.pgwide.enumeration">
      <choice>
         <value>0</value>
         <value>1</value>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.pgwide.attribute">
      <attribute name="pgwide">
         <dbx:description>
            <db:para>If <db:tag class="attribute">pgwide</db:tag>
 has the value 0 (false), then the element  is rendered in the current text flow (with flow column width). A value of 1 (true) specifies that the element should be rendered across the full text page.</db:para>
         </dbx:description>
         <ref name="db.pgwide.enumeration"/>
      </attribute>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.language.attribute">
      <attribute name="language"/>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.performance.enumeration">
      <choice>
         <value>optional</value>
         <value>required</value>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.performance.attribute">
      <attribute name="performance">
         <ref name="db.performance.enumeration"/>
      </attribute>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.floatstyle.attribute">
      <attribute name="floatstyle"/>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.halign.enumeration">
      <choice>
         <value>center</value>
         <value>char</value>
         <value>justify</value>
         <value>left</value>
         <value>right</value>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.valign.enumeration">
      <choice>
         <value>bottom</value>
         <value>middle</value>
         <value>top</value>
      </choice>
   </define>

   <ctrl:other-attribute xmlns:html="http://www.w3.org/1999/xhtml" name="db.biblio.class.attribute" enum-name="db.biblio.class-enum.attribute" other-name="db.biblio.class-other.attributes" xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/"/>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.biblio.class.enumeration">
      <choice>
         <value>doi</value>
         <value>isbn</value>
         <value>isrn</value>
         <value>issn</value>
         <value>libraryofcongress</value>
         <value>pubnumber</value>
         <value>uri</value>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.biblio.class-enum.attribute">
      <optional>
         <attribute name="class">
            <dbx:description>
               <db:para>The <db:tag class="atribute">class</db:tag>
 identifies the kind of bibliographic identifier:</db:para>
               <db:informaltable>
                  <db:tgroup cols="2">
                     <db:thead>
                        <db:row>
                           <db:entry>Value</db:entry>
                           <db:entry>Identifier</db:entry>
                        </db:row>
                     </db:thead>
                     <db:tbody>
                        <db:row>
                           <db:entry>
                              <db:tag class="attvalue">doi</db:tag>
                           </db:entry>
                           <db:entry>
                              <db:para>A <db:link xlink:href="http://www.doi.org/">Digital Object Identifier</db:link>
.</db:para>
                           </db:entry>
                        </db:row>
                        <db:row>
                           <db:entry>
                              <db:tag class="attvalue">isbn</db:tag>
                           </db:entry>
                           <db:entry>
                              <db:para>An <db:link xlink:href="http://www.isbn.org/">International Standard Book Number</db:link>
.</db:para>
                           </db:entry>
                        </db:row>
                        <db:row>
                           <db:entry>
                              <db:tag class="attvalue">isrn</db:tag>
                           </db:entry>
                           <db:entry>
                              <db:para>An International Standard Technical Report Number as defined by ISO 10444:1994.</db:para>
                           </db:entry>
                        </db:row>
                        <db:row>
                           <db:entry>
                              <db:tag class="attvalue">issn</db:tag>
                           </db:entry>
                           <db:entry>
                              <db:para>An <db:link xlink:href="http://www.issn.org/">International Standard Serial Number</db:link>
.</db:para>
                           </db:entry>
                        </db:row>
                        <db:row>
                           <db:entry>
                              <db:tag class="attvalue">libraryofcongress</db:tag>
                           </db:entry>
                           <db:entry>
                              <db:para>A Library of Congress subject identifer</db:para>
                           </db:entry>
                        </db:row>
                        <db:row>
                           <db:entry>
                              <db:tag class="attvalue">pubnumber</db:tag>
                           </db:entry>
                           <db:entry>
                              <db:para>A publication number, for example from a private or corporate numbering scheme.</db:para>
                           </db:entry>
                        </db:row>
                        <db:row>
                           <db:entry>
                              <db:tag class="attvalue">uri</db:tag>
                           </db:entry>
                           <db:entry>
                              <db:para>A Uniform Resource Identifier.</db:para>
                           </db:entry>
                        </db:row>
                        <db:row>
                           <db:entry>
                              <db:tag class="attvalue">other</db:tag>
                           </db:entry>
                           <db:entry>
                              <db:para>Some other kind of identifier. If the value <db:tag class="attvalue">other</db:tag>
 is specified, the <db:tag class="attribute">otherclass</db:tag>
 attribute must also be provided.</db:para>
                           </db:entry>
                        </db:row>
                     </db:tbody>
                  </db:tgroup>
               </db:informaltable>
            </dbx:description>
            <ref name="db.biblio.class.enumeration"/>
         </attribute>
      </optional>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.biblio.class-other.attributes">
      <interleave>
         <attribute name="class">
            <value>other</value>
         </attribute>
         <attribute name="otherclass">
            <dbx:description>
               <db:para>The value of the <db:tag class="attribute">otherclass</db:tag>
 attribute specifies some identifier for the class. It is required when the value <db:tag class="attvalue">other</db:tag>
 is specified for the <db:tag class="attribute">class</db:tag>
 attribute; it is forbidden otherwise.</db:para>
            </dbx:description>
            <data type="NMTOKEN"/>
         </attribute>
      </interleave>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.biblio.class.attribute">
      <choice>
         <ref name="db.biblio.class-enum.attribute"/>
         <ref name="db.biblio.class-other.attributes"/>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.ubiq.inlines">
      <choice>
         <choice>
            <ref name="db.inlinemediaobject"/>
            <ref name="db.remark"/>
            <ref name="db.superscript"/>
            <ref name="db.subscript"/>
            <ref name="db.link.inlines"/>
            <ref name="db.alt"/>
         </choice>
         <ref name="db.annotation"/>
         <ref name="db.indexterm"/>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db._text">
      <zeroOrMore>
         <choice>
            <text/>
            <ref name="db.ubiq.inlines"/>
            <ref name="db._phrase"/>
            <ref name="db.replaceable"/>
         </choice>
      </zeroOrMore>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db._phrase">
      <element name="phrase">
         <ref name="db.phrase.attlist"/>
         <ref name="db._text"/>
      </element>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db._emphasis">
      <element name="emphasis">
         <ref name="db.emphasis.attlist"/>
         <zeroOrMore>
            <choice>
               <ref name="db._text"/>
               <ref name="db._emphasis"/>
            </choice>
         </zeroOrMore>
      </element>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db._title">
      <interleave>
         <optional>
            <ref name="db.title"/>
         </optional>
         <optional>
            <ref name="db.titleabbrev"/>
         </optional>
         <optional>
            <ref name="db.subtitle"/>
         </optional>
      </interleave>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db._title.req">
      <interleave>
         <ref name="db.title"/>
         <optional>
            <ref name="db.titleabbrev"/>
         </optional>
         <optional>
            <ref name="db.subtitle"/>
         </optional>
      </interleave>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db._title.only">
      <interleave>
         <optional>
            <ref name="db.title"/>
         </optional>
         <optional>
            <ref name="db.titleabbrev"/>
         </optional>
      </interleave>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db._title.onlyreq">
      <interleave>
         <ref name="db.title"/>
         <optional>
            <ref name="db.titleabbrev"/>
         </optional>
      </interleave>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db._info">
      <choice>
         <group>
            <optional>
               <ref name="db._title.req"/>
            </optional>
            <optional>
               <ref name="db.titleforbidden.info"/>
            </optional>
         </group>
         <optional>
            <ref name="db.info"/>
         </optional>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db._info.title.req">
      <choice>
         <group>
            <ref name="db._title.req"/>
            <optional>
               <ref name="db.titleforbidden.info"/>
            </optional>
         </group>
         <ref name="db.titlereq.info"/>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db._info.title.only">
      <choice>
         <group>
            <ref name="db._title.only"/>
            <optional>
               <ref name="db.titleforbidden.info"/>
            </optional>
         </group>
         <ref name="db.titleonly.info"/>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db._info.title.onlyreq">
      <choice>
         <group>
            <ref name="db._title.onlyreq"/>
            <optional>
               <ref name="db.titleforbidden.info"/>
            </optional>
         </group>
         <ref name="db.titleonlyreq.info"/>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db._info.title.forbidden">
      <optional>
         <ref name="db.titleforbidden.info"/>
      </optional>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.all.inlines">
      <choice>
         <text/>
         <ref name="db.ubiq.inlines"/>
         <ref name="db.general.inlines"/>
         <ref name="db.domain.inlines"/>
         <ref name="db.extension.inlines"/>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.general.inlines">
      <choice>
         <ref name="db.publishing.inlines"/>
         <ref name="db.product.inlines"/>
         <ref name="db.bibliography.inlines"/>
         <ref name="db.graphic.inlines"/>
         <ref name="db.indexing.inlines"/>
         <ref name="db.link.inlines"/>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.domain.inlines">
      <choice>
         <choice>
            <ref name="db.technical.inlines"/>
            <ref name="db.error.inlines"/>
            <ref name="db.os.inlines"/>
            <ref name="db.programming.inlines"/>
            <ref name="db.markup.inlines"/>
            <ref name="db.gui.inlines"/>
            <ref name="db.keyboard.inlines"/>
         </choice>
         <ref name="db.math.inlines"/>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.technical.inlines">
      <choice>
         <choice>
            <ref name="db.replaceable"/>
            <ref name="db.systemitem"/>
            <ref name="db.option"/>
            <ref name="db.optional"/>
            <ref name="db.package"/>
            <ref name="db.property"/>
            <ref name="db.termdef"/>
         </choice>
         <ref name="db.nonterminal"/>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.error.inlines">
      <choice>
         <ref name="db.errorcode"/>
         <ref name="db.errortext"/>
         <ref name="db.errorname"/>
         <ref name="db.errortype"/>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.oo.inlines">
      <choice>
         <ref name="db.ooclass"/>
         <ref name="db.ooexception"/>
         <ref name="db.oointerface"/>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.programming.inlines">
      <choice>
         <ref name="db.function"/>
         <ref name="db.parameter"/>
         <ref name="db.varname"/>
         <ref name="db.returnvalue"/>
         <ref name="db.type"/>
         <ref name="db.classname"/>
         <ref name="db.exceptionname"/>
         <ref name="db.interfacename"/>
         <ref name="db.methodname"/>
         <ref name="db.modifier"/>
         <ref name="db.initializer"/>
         <ref name="db.oo.inlines"/>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.product.inlines">
      <choice>
         <ref name="db.productnumber"/>
         <ref name="db.productname"/>
         <ref name="db.database"/>
         <ref name="db.application"/>
         <ref name="db.hardware"/>
         <ref name="db.trademark"/>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.os.inlines">
      <choice>
         <ref name="db.prompt"/>
         <ref name="db.envar"/>
         <ref name="db.filename"/>
         <ref name="db.command"/>
         <ref name="db.computeroutput"/>
         <ref name="db.userinput"/>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.markup.inlines">
      <choice>
         <ref name="db.tag"/>
         <ref name="db.markup"/>
         <ref name="db.token"/>
         <ref name="db.symbol"/>
         <ref name="db.literal"/>
         <ref name="db.code"/>
         <ref name="db.constant"/>
         <ref name="db.email"/>
         <ref name="db.uri"/>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.bibliography.inlines">
      <choice>
         <ref name="db.citation"/>
         <ref name="db.citerefentry"/>
         <ref name="db.citetitle"/>
         <ref name="db.citebiblioid"/>
         <ref name="db.author"/>
         <ref name="db.personname"/>
         <ref name="db.orgname"/>
         <ref name="db.editor"/>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.publishing.inlines">
      <choice>
         <choice>
            <ref name="db.abbrev"/>
            <ref name="db.acronym"/>
            <ref name="db.date"/>
            <ref name="db.emphasis"/>
            <ref name="db.footnote"/>
            <ref name="db.footnoteref"/>
            <ref name="db.foreignphrase"/>
            <ref name="db.phrase"/>
            <ref name="db.quote"/>
            <ref name="db.subscript"/>
            <ref name="db.superscript"/>
            <ref name="db.wordasword"/>
         </choice>
         <ref name="db.glossary.inlines"/>
         <ref name="db.coref"/>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.graphic.inlines">
      <ref name="db.inlinemediaobject"/>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.indexing.inlines">
      <choice>
         <notAllowed/>
         <ref name="db.indexterm"/>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.gui.inlines">
      <choice>
         <ref name="db.guiicon"/>
         <ref name="db.guibutton"/>
         <ref name="db.guimenuitem"/>
         <ref name="db.guimenu"/>
         <ref name="db.guisubmenu"/>
         <ref name="db.guilabel"/>
         <ref name="db.menuchoice"/>
         <ref name="db.mousebutton"/>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.keyboard.inlines">
      <choice>
         <ref name="db.keycombo"/>
         <ref name="db.keycap"/>
         <ref name="db.keycode"/>
         <ref name="db.keysym"/>
         <ref name="db.shortcut"/>
         <ref name="db.accel"/>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.link.inlines">
      <choice>
         <choice>
            <ref name="db.xref"/>
            <ref name="db.link"/>
            <ref name="db.olink"/>
            <ref name="db.anchor"/>
         </choice>
         <ref name="db.biblioref"/>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.extension.inlines">
      <notAllowed/>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.nopara.blocks">
      <choice>
         <choice>
            <ref name="db.list.blocks"/>
            <ref name="db.admonition.blocks"/>
            <ref name="db.formal.blocks"/>
            <ref name="db.informal.blocks"/>
            <ref name="db.publishing.blocks"/>
            <ref name="db.graphic.blocks"/>
            <ref name="db.technical.blocks"/>
            <ref name="db.verbatim.blocks"/>
            <ref name="db.synopsis.blocks"/>
            <ref name="db.bridgehead"/>
            <ref name="db.remark"/>
            <ref name="db.revhistory"/>
         </choice>
         <ref name="db.indexterm"/>
         <ref name="db.math.blocks"/>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.para.blocks">
      <choice>
         <ref name="db.anchor"/>
         <ref name="db.para"/>
         <ref name="db.formalpara"/>
         <ref name="db.simpara"/>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.all.blocks">
      <choice>
         <choice>
            <ref name="db.nopara.blocks"/>
            <ref name="db.para.blocks"/>
            <ref name="db.extension.blocks"/>
         </choice>
         <ref name="db.annotation"/>
      </choice>
   </define>

   <ctrl:exclude xmlns:html="http://www.w3.org/1999/xhtml" from="db.formal.blocks" exclude="db.formal.blocks" xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/"/>

   <ctrl:exclude xmlns:html="http://www.w3.org/1999/xhtml" from="db.formal.blocks" exclude="db.admonition.blocks" xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/"/>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.formal.blocks">
      <choice>
         <ref name="db.example"/>
         <ref name="db.figure"/>
         <ref name="db.table"/>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.informal.blocks">
      <choice>
         <ref name="db.informalexample"/>
         <ref name="db.informalfigure"/>
         <ref name="db.informaltable"/>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.publishing.blocks">
      <choice>
         <ref name="db.sidebar"/>
         <ref name="db.blockquote"/>
         <ref name="db.address"/>
         <ref name="db.epigraph"/>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.graphic.blocks">
      <choice>
         <ref name="db.mediaobject"/>
         <ref name="db.screenshot"/>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.technical.blocks">
      <choice>
         <ref name="db.procedure"/>
         <ref name="db.task"/>
         <choice>
            <ref name="db.productionset"/>
            <ref name="db.constraintdef"/>
         </choice>
         <ref name="db.msgset"/>
      </choice>
   </define>

   <ctrl:exclude xmlns:html="http://www.w3.org/1999/xhtml" from="db.admonition.blocks" exclude="db.admonition.blocks" xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/"/>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.admonition.blocks">
      <choice>
         <ref name="db.caution"/>
         <ref name="db.important"/>
         <ref name="db.note"/>
         <ref name="db.tip"/>
         <ref name="db.warning"/>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.list.blocks">
      <choice>
         <choice>
            <ref name="db.itemizedlist"/>
            <ref name="db.orderedlist"/>
            <ref name="db.procedure"/>
            <ref name="db.simplelist"/>
            <ref name="db.variablelist"/>
            <ref name="db.segmentedlist"/>
         </choice>
         <ref name="db.glosslist"/>
         <ref name="db.bibliolist"/>
         <ref name="db.calloutlist"/>
         <ref name="db.qandaset"/>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.verbatim.blocks">
      <choice>
         <choice>
            <ref name="db.programlisting"/>
            <ref name="db.screen"/>
            <ref name="db.literallayout"/>
            <ref name="db.synopsis"/>
         </choice>
         <choice>
            <ref name="db.programlistingco"/>
            <ref name="db.screenco"/>
         </choice>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.synopsis.blocks">
      <choice>
         <ref name="db.cmdsynopsis"/>
         <ref name="db.funcsynopsis"/>
         <ref name="db.classsynopsis"/>
         <ref name="db.methodsynopsis"/>
         <ref name="db.constructorsynopsis"/>
         <ref name="db.destructorsynopsis"/>
         <ref name="db.fieldsynopsis"/>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.extension.blocks">
      <notAllowed/>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.info.elements">
      <choice>
         <choice>
            <ref name="db.abstract"/>
            <ref name="db.address"/>
            <ref name="db.artpagenums"/>
            <ref name="db.author"/>
            <ref name="db.authorgroup"/>
            <ref name="db.authorinitials"/>
            <ref name="db.bibliocoverage"/>
            <ref name="db.biblioid"/>
            <ref name="db.bibliosource"/>
            <ref name="db.collab"/>
            <ref name="db.confgroup"/>
            <ref name="db.contractsponsor"/>
            <ref name="db.contractnum"/>
            <ref name="db.copyright"/>
            <ref name="db.date"/>
            <ref name="db.edition"/>
            <ref name="db.editor"/>
            <ref name="db.issuenum"/>
            <ref name="db.keywordset"/>
            <ref name="db.legalnotice"/>
            <ref name="db.mediaobject"/>
            <ref name="db.orgname"/>
            <ref name="db.othercredit"/>
            <ref name="db.pagenums"/>
            <ref name="db.printhistory"/>
            <ref name="db.productname"/>
            <ref name="db.productnumber"/>
            <ref name="db.pubdate"/>
            <ref name="db.publisher"/>
            <ref name="db.publishername"/>
            <ref name="db.releaseinfo"/>
            <ref name="db.revhistory"/>
            <ref name="db.seriesvolnums"/>
            <ref name="db.subjectset"/>
            <ref name="db.volumenum"/>
         </choice>
         <ref name="db.extendedlink"/>
         <choice>
            <ref name="db.bibliomisc"/>
            <ref name="db.bibliomset"/>
            <ref name="db.bibliorelation"/>
            <ref name="db.biblioset"/>
         </choice>
         <ref name="db.itermset"/>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.bibliographic.elements">
      <choice>
         <ref name="db.info.elements"/>
         <ref name="db.abbrev"/>
         <ref name="db.citerefentry"/>
         <ref name="db.citetitle"/>
         <ref name="db.citebiblioid"/>
         <ref name="db.personname"/>
         <ref name="db.subtitle"/>
         <ref name="db.title"/>
      </choice>
   </define>

   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>title</db:refname>
      <db:refpurpose>The text of the title of a section of a document or of a formal block-level element</db:refpurpose>
      <define name="db.title.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.title.attlist">
         <interleave>
            <optional>
               <ref name="db.title.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.title">
         <element name="title">
            <ref name="db.title.attlist"/>
            <zeroOrMore>
               <ref name="db.all.inlines"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>titleabbrev</db:refname>
      <db:refpurpose>The abbreviation of a Title</db:refpurpose>
      <define name="db.titleabbrev.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.titleabbrev.attlist">
         <interleave>
            <optional>
               <ref name="db.titleabbrev.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.titleabbrev">
         <element name="titleabbrev">
            <ref name="db.titleabbrev.attlist"/>
            <zeroOrMore>
               <ref name="db.all.inlines"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>subtitle</db:refname>
      <db:refpurpose>The subtitle of a document</db:refpurpose>
      <define name="db.subtitle.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.subtitle.attlist">
         <interleave>
            <optional>
               <ref name="db.subtitle.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.subtitle">
         <element name="subtitle">
            <ref name="db.subtitle.attlist"/>
            <zeroOrMore>
               <ref name="db.all.inlines"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>info</db:refname>
      <db:refpurpose>A wrapper for information about a component or other block</db:refpurpose>
      <define name="db.info.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.info.attlist">
         <interleave>
            <optional>
               <ref name="db.info.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
         </interleave>
      </define>

      <define name="db.info">
         <element name="info">
            <ref name="db.info.attlist"/>
            <ref name="db._title"/>
            <zeroOrMore>
               <ref name="db.info.elements"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>info</db:refname>
      <db:refpurpose>A wrapper for information about a component or other block with a required title</db:refpurpose>
      <define name="db.titlereq.info.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.titlereq.info.attlist">
         <interleave>
            <optional>
               <ref name="db.titlereq.info.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
         </interleave>
      </define>

      <define name="db.titlereq.info">
         <element name="info">
            <ref name="db.titlereq.info.attlist"/>
            <ref name="db._title.req"/>
            <zeroOrMore>
               <ref name="db.info.elements"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>info</db:refname>
      <db:refpurpose>A wrapper for information about a component or other block with only a title</db:refpurpose>
      <define name="db.titleonly.info.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.titleonly.info.attlist">
         <interleave>
            <optional>
               <ref name="db.titleonly.info.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
         </interleave>
      </define>

      <define name="db.titleonly.info">
         <element name="info">
            <ref name="db.titleonly.info.attlist"/>
            <ref name="db._title.only"/>
            <zeroOrMore>
               <ref name="db.info.elements"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>info</db:refname>
      <db:refpurpose>A wrapper for information about a component or other block with only a required title</db:refpurpose>
      <define name="db.titleonlyreq.info.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.titleonlyreq.info.attlist">
         <interleave>
            <optional>
               <ref name="db.titleonlyreq.info.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
         </interleave>
      </define>

      <define name="db.titleonlyreq.info">
         <element name="info">
            <ref name="db.titleonlyreq.info.attlist"/>
            <ref name="db._title.onlyreq"/>
            <zeroOrMore>
               <ref name="db.info.elements"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>info</db:refname>
      <db:refpurpose>A wrapper for information about a component or other block without a title</db:refpurpose>
      <define name="db.titleforbidden.info.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.titleforbidden.info.attlist">
         <interleave>
            <optional>
               <ref name="db.titleforbidden.info.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
         </interleave>
      </define>

      <define name="db.titleforbidden.info">
         <element name="info">
            <ref name="db.titleforbidden.info.attlist"/>
            <zeroOrMore>
               <ref name="db.info.elements"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>subjectset</db:refname>
      <db:refpurpose>A set of terms describing the subject matter of a document</db:refpurpose>
      <define name="db.subjectset.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.subjectset.scheme.attribute">
         <attribute name="scheme">
            <data type="NMTOKEN"/>
         </attribute>
      </define>

      <define name="db.subjectset.attlist">
         <interleave>
            <optional>
               <ref name="db.subjectset.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.subjectset.scheme.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.subjectset">
         <element name="subjectset">
            <ref name="db.subjectset.attlist"/>
            <oneOrMore>
               <ref name="db.subject"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>subject</db:refname>
      <db:refpurpose>One of a group of terms describing the subject matter of a document</db:refpurpose>
      <define name="db.subject.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.subject.weight.attribute">
         <attribute name="weight"/>
      </define>

      <define name="db.subject.attlist">
         <interleave>
            <optional>
               <ref name="db.subject.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.subject.weight.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.subject">
         <element name="subject">
            <ref name="db.subject.attlist"/>
            <oneOrMore>
               <ref name="db.subjectterm"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>subjectterm</db:refname>
      <db:refpurpose>A term in a group of terms describing the subject matter of a document</db:refpurpose>
      <define name="db.subjectterm.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.subjectterm.attlist">
         <interleave>
            <optional>
               <ref name="db.subjectterm.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.subjectterm">
         <element name="subjectterm">
            <ref name="db.subjectterm.attlist"/>
            <text/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>keywordset</db:refname>
      <db:refpurpose>A set of keywords describing the content of a document</db:refpurpose>
      <define name="db.keywordset.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.keywordset.attlist">
         <interleave>
            <optional>
               <ref name="db.keywordset.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.keywordset">
         <element name="keywordset">
            <ref name="db.keywordset.attlist"/>
            <oneOrMore>
               <ref name="db.keyword"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>keyword</db:refname>
      <db:refpurpose>One of a set of keywords describing the content of a document</db:refpurpose>
      <define name="db.keyword.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.keyword.attlist">
         <interleave>
            <optional>
               <ref name="db.keyword.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.keyword">
         <element name="keyword">
            <ref name="db.keyword.attlist"/>
            <text/>
         </element>
      </define>

   </div>
   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.table.choice">
      <choice>
         <notAllowed/>
         <ref name="db.cals.table"/>
         <ref name="db.html.table"/>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.informaltable.choice">
      <choice>
         <notAllowed/>
         <ref name="db.cals.informaltable"/>
         <ref name="db.html.informaltable"/>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.table">
      <ref name="db.table.choice"/>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.informaltable">
      <ref name="db.informaltable.choice"/>
   </define>

   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>procedure</db:refname>
      <db:refpurpose>A list of operations to be performed in a well-defined sequence</db:refpurpose>
      <define name="db.procedure.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.procedure.attlist">
         <interleave>
            <optional>
               <ref name="db.procedure.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.procedure.info">
         <ref name="db._info.title.only"/>
      </define>

      <define name="db.procedure">
         <element name="procedure">
            <ref name="db.procedure.attlist"/>
            <ref name="db.procedure.info"/>
            <zeroOrMore>
               <ref name="db.all.blocks"/>
            </zeroOrMore>
            <oneOrMore>
               <ref name="db.step"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>step</db:refname>
      <db:refpurpose>A unit of action in a procedure</db:refpurpose>
      <define name="db.step.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.step.attlist">
         <interleave>
            <optional>
               <ref name="db.step.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.performance.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.step.info">
         <ref name="db._info.title.only"/>
      </define>

      <define name="db.step">
         <element name="step">
            <ref name="db.step.attlist"/>
            <ref name="db.step.info"/>
            <zeroOrMore>
               <ref name="db.all.blocks"/>
            </zeroOrMore>
            <optional>
               <choice>
                  <ref name="db.substeps"/>
                  <ref name="db.stepalternatives"/>
               </choice>
            </optional>
            <zeroOrMore>
               <ref name="db.all.blocks"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>stepalternatives</db:refname>
      <db:refpurpose>Alternative steps in a procedure</db:refpurpose>
      <define name="db.stepalternatives.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.stepalternatives.attlist">
         <interleave>
            <optional>
               <ref name="db.stepalternatives.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.performance.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.stepalternatives.info">
         <ref name="db._info.title.forbidden"/>
      </define>

      <define name="db.stepalternatives">
         <element name="stepalternatives">
            <ref name="db.stepalternatives.attlist"/>
            <ref name="db.stepalternatives.info"/>
            <oneOrMore>
               <ref name="db.step"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>substeps</db:refname>
      <db:refpurpose>A wrapper for steps that occur within steps in a procedure</db:refpurpose>
      <define name="db.substeps.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.substeps.attlist">
         <interleave>
            <optional>
               <ref name="db.substeps.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.performance.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.substeps">
         <element name="substeps">
            <ref name="db.substeps.attlist"/>
            <oneOrMore>
               <ref name="db.step"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>sidebar</db:refname>
      <db:refpurpose>A portion of a document that is isolated from the main narrative flow</db:refpurpose>
      <ctrl:exclude from="db.sidebar" exclude="db.sidebar" xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/"/>

      <define name="db.sidebar.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.sidebar.attlist">
         <interleave>
            <optional>
               <ref name="db.sidebar.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.sidebar.info">
         <ref name="db._info.title.only"/>
      </define>

      <define name="db.sidebar">
         <element name="sidebar">
            <s:rule context="db:sidebar" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:sidebar)">sidebar must not occur in the descendants of sidebar</s:assert>
            </s:rule>
            <ref name="db.sidebar.attlist"/>
            <ref name="db.sidebar.info"/>
            <oneOrMore>
               <ref name="db.all.blocks"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>abstract</db:refname>
      <db:refpurpose>A summary</db:refpurpose>
      <define name="db.abstract.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.abstract.attlist">
         <interleave>
            <optional>
               <ref name="db.abstract.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.abstract.info">
         <ref name="db._info.title.only"/>
      </define>

      <define name="db.abstract">
         <element name="abstract">
            <ref name="db.abstract.attlist"/>
            <ref name="db.abstract.info"/>
            <oneOrMore>
               <ref name="db.para.blocks"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>personblurb</db:refname>
      <db:refpurpose>A short description or note about a person</db:refpurpose>
      <define name="db.personblurb.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.personblurb.attlist">
         <interleave>
            <optional>
               <ref name="db.personblurb.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.personblurb.info">
         <ref name="db._info.title.only"/>
      </define>

      <define name="db.personblurb">
         <element name="personblurb">
            <ref name="db.personblurb.attlist"/>
            <ref name="db.personblurb.info"/>
            <oneOrMore>
               <ref name="db.para.blocks"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>blockquote</db:refname>
      <db:refpurpose>A quotation set off from the main text</db:refpurpose>
      <define name="db.blockquote.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.blockquote.attlist">
         <interleave>
            <optional>
               <ref name="db.blockquote.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.blockquote.info">
         <ref name="db._info.title.only"/>
      </define>

      <define name="db.blockquote">
         <element name="blockquote">
            <ref name="db.blockquote.attlist"/>
            <ref name="db.blockquote.info"/>
            <optional>
               <ref name="db.attribution"/>
            </optional>
            <oneOrMore>
               <ref name="db.all.blocks"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>attribution</db:refname>
      <db:refpurpose>The source of a block quote or epigraph</db:refpurpose>
      <define name="db.attribution.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.attribution.attlist">
         <interleave>
            <optional>
               <ref name="db.attribution.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.attribution">
         <element name="attribution">
            <ref name="db.attribution.attlist"/>
            <zeroOrMore>
               <choice>
                  <ref name="db._text"/>
                  <ref name="db.personname"/>
                  <ref name="db.citetitle"/>
                  <ref name="db.citation"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>bridgehead</db:refname>
      <db:refpurpose>A free-floating heading</db:refpurpose>
      <define name="db.bridgehead.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.bridgehead.renderas.enumeration">
         <choice>
            <value>other</value>
            <value>sect1</value>
            <value>sect2</value>
            <value>sect3</value>
            <value>sect4</value>
            <value>sect5</value>
         </choice>
      </define>

      <define name="db.bridgehead.renderas.attribute">
         <attribute name="renderas">
            <ref name="db.bridgehead.renderas.enumeration"/>
         </attribute>
      </define>

      <define name="db.bridgehead.attlist">
         <interleave>
            <optional>
               <ref name="db.bridgehead.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.bridgehead.renderas.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.bridgehead">
         <element name="bridgehead">
            <ref name="db.bridgehead.attlist"/>
            <zeroOrMore>
               <ref name="db.all.inlines"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>remark</db:refname>
      <db:refpurpose>A remark (or comment) intended for presentation in a draft manuscript</db:refpurpose>
      <define name="db.remark.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.remark.attlist">
         <interleave>
            <optional>
               <ref name="db.remark.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.remark">
         <element name="remark">
            <ref name="db.remark.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>epigraph</db:refname>
      <db:refpurpose>A short inscription at the beginning of a document or component</db:refpurpose>
      <define name="db.epigraph.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.epigraph.attlist">
         <interleave>
            <optional>
               <ref name="db.epigraph.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.epigraph.info">
         <ref name="db._info.title.forbidden"/>
      </define>

      <define name="db.epigraph">
         <element name="epigraph">
            <ref name="db.epigraph.attlist"/>
            <ref name="db.epigraph.info"/>
            <optional>
               <ref name="db.attribution"/>
            </optional>
            <oneOrMore>
               <choice>
                  <ref name="db.para.blocks"/>
                  <ref name="db.literallayout"/>
               </choice>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>footnote</db:refname>
      <db:refpurpose>A footnote</db:refpurpose>
      <ctrl:exclude from="db.footnote" exclude="db.footnote" xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/"/>

      <ctrl:exclude from="db.footnote" exclude="db.formal.blocks" xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/"/>

      <ctrl:exclude from="db.footnote" exclude="db.admonition.blocks" xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/"/>

      <ctrl:exclude from="db.footnote" exclude="db.indexterm" xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/"/>

      <ctrl:exclude from="db.footnote" exclude="db.sidebar" xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/"/>

      <ctrl:exclude from="db.footnote" exclude="db.task" xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/"/>

      <ctrl:exclude from="db.footnote" exclude="db.epigraph" xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/"/>

      <define name="db.footnote.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.footnote.label.attribute">
         <attribute name="label"/>
      </define>

      <define name="db.footnote.attlist">
         <interleave>
            <optional>
               <ref name="db.footnote.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.footnote.label.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.footnote">
         <element name="footnote">
            <s:rule context="db:footnote" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:footnote)">footnote must not occur in the descendants of footnote</s:assert>
            </s:rule>
            <s:rule context="db:footnote" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:example)">example must not occur in the descendants of footnote</s:assert>
            </s:rule>
            <s:rule context="db:footnote" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:figure)">figure must not occur in the descendants of footnote</s:assert>
            </s:rule>
            <s:rule context="db:footnote" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:table)">table must not occur in the descendants of footnote</s:assert>
            </s:rule>
            <s:rule context="db:footnote" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:table)">table must not occur in the descendants of footnote</s:assert>
            </s:rule>
            <s:rule context="db:footnote" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:caution)">caution must not occur in the descendants of footnote</s:assert>
            </s:rule>
            <s:rule context="db:footnote" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:important)">important must not occur in the descendants of footnote</s:assert>
            </s:rule>
            <s:rule context="db:footnote" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:note)">note must not occur in the descendants of footnote</s:assert>
            </s:rule>
            <s:rule context="db:footnote" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:tip)">tip must not occur in the descendants of footnote</s:assert>
            </s:rule>
            <s:rule context="db:footnote" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:warning)">warning must not occur in the descendants of footnote</s:assert>
            </s:rule>
            <s:rule context="db:footnote" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:indexterm)">indexterm must not occur in the descendants of footnote</s:assert>
            </s:rule>
            <s:rule context="db:footnote" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:indexterm)">indexterm must not occur in the descendants of footnote</s:assert>
            </s:rule>
            <s:rule context="db:footnote" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:indexterm)">indexterm must not occur in the descendants of footnote</s:assert>
            </s:rule>
            <s:rule context="db:footnote" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:sidebar)">sidebar must not occur in the descendants of footnote</s:assert>
            </s:rule>
            <s:rule context="db:footnote" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:task)">task must not occur in the descendants of footnote</s:assert>
            </s:rule>
            <s:rule context="db:footnote" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:epigraph)">epigraph must not occur in the descendants of footnote</s:assert>
            </s:rule>
            <ref name="db.footnote.attlist"/>
            <oneOrMore>
               <ref name="db.all.blocks"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>formalpara</db:refname>
      <db:refpurpose>A paragraph with a title</db:refpurpose>
      <define name="db.formalpara.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.formalpara.attlist">
         <interleave>
            <optional>
               <ref name="db.formalpara.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.formalpara.info">
         <ref name="db._info.title.onlyreq"/>
      </define>

      <define name="db.formalpara">
         <element name="formalpara">
            <ref name="db.formalpara.attlist"/>
            <ref name="db.formalpara.info"/>
            <zeroOrMore>
               <ref name="db.indexing.inlines"/>
            </zeroOrMore>
            <ref name="db.para"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>para</db:refname>
      <db:refpurpose>A paragraph</db:refpurpose>
      <define name="db.para.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.para.attlist">
         <interleave>
            <optional>
               <ref name="db.para.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.para.info">
         <ref name="db._info.title.forbidden"/>
      </define>

      <define name="db.para">
         <element name="para">
            <s:rule context="/db:para" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="@version">The root element must have a version attribute.</s:assert>
            </s:rule>
            <ref name="db.para.attlist"/>
            <ref name="db.para.info"/>
            <zeroOrMore>
               <choice>
                  <ref name="db.all.inlines"/>
                  <ref name="db.nopara.blocks"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>simpara</db:refname>
      <db:refpurpose>A paragraph that contains only text and inline markup, no block elements</db:refpurpose>
      <define name="db.simpara.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.simpara.attlist">
         <interleave>
            <optional>
               <ref name="db.simpara.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.simpara.info">
         <ref name="db._info.title.forbidden"/>
      </define>

      <define name="db.simpara">
         <element name="simpara">
            <ref name="db.simpara.attlist"/>
            <ref name="db.simpara.info"/>
            <zeroOrMore>
               <ref name="db.all.inlines"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.admonition.contentmodel">
      <ref name="db._info.title.only"/>
      <oneOrMore>
         <ref name="db.all.blocks"/>
      </oneOrMore>
   </define>

   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>caution</db:refname>
      <db:refpurpose>A note of caution</db:refpurpose>
      <define name="db.caution.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.caution.attlist">
         <interleave>
            <optional>
               <ref name="db.caution.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.caution">
         <element name="caution">
            <s:rule context="db:caution" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:caution)">caution must not occur in the descendants of caution</s:assert>
            </s:rule>
            <s:rule context="db:caution" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:important)">important must not occur in the descendants of caution</s:assert>
            </s:rule>
            <s:rule context="db:caution" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:note)">note must not occur in the descendants of caution</s:assert>
            </s:rule>
            <s:rule context="db:caution" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:tip)">tip must not occur in the descendants of caution</s:assert>
            </s:rule>
            <s:rule context="db:caution" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:warning)">warning must not occur in the descendants of caution</s:assert>
            </s:rule>
            <ref name="db.caution.attlist"/>
            <ref name="db.admonition.contentmodel"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>important</db:refname>
      <db:refpurpose>An admonition set off from the text</db:refpurpose>
      <define name="db.important.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.important.attlist">
         <interleave>
            <optional>
               <ref name="db.important.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.important">
         <element name="important">
            <s:rule context="db:important" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:caution)">caution must not occur in the descendants of important</s:assert>
            </s:rule>
            <s:rule context="db:important" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:important)">important must not occur in the descendants of important</s:assert>
            </s:rule>
            <s:rule context="db:important" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:note)">note must not occur in the descendants of important</s:assert>
            </s:rule>
            <s:rule context="db:important" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:tip)">tip must not occur in the descendants of important</s:assert>
            </s:rule>
            <s:rule context="db:important" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:warning)">warning must not occur in the descendants of important</s:assert>
            </s:rule>
            <ref name="db.important.attlist"/>
            <ref name="db.admonition.contentmodel"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>note</db:refname>
      <db:refpurpose>A message set off from the text</db:refpurpose>
      <define name="db.note.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.note.attlist">
         <interleave>
            <optional>
               <ref name="db.note.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.note">
         <element name="note">
            <s:rule context="db:note" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:caution)">caution must not occur in the descendants of note</s:assert>
            </s:rule>
            <s:rule context="db:note" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:important)">important must not occur in the descendants of note</s:assert>
            </s:rule>
            <s:rule context="db:note" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:note)">note must not occur in the descendants of note</s:assert>
            </s:rule>
            <s:rule context="db:note" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:tip)">tip must not occur in the descendants of note</s:assert>
            </s:rule>
            <s:rule context="db:note" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:warning)">warning must not occur in the descendants of note</s:assert>
            </s:rule>
            <ref name="db.note.attlist"/>
            <ref name="db.admonition.contentmodel"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>tip</db:refname>
      <db:refpurpose>A suggestion to the user, set off from the text</db:refpurpose>
      <define name="db.tip.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.tip.attlist">
         <interleave>
            <optional>
               <ref name="db.tip.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.tip">
         <element name="tip">
            <s:rule context="db:tip" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:caution)">caution must not occur in the descendants of tip</s:assert>
            </s:rule>
            <s:rule context="db:tip" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:important)">important must not occur in the descendants of tip</s:assert>
            </s:rule>
            <s:rule context="db:tip" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:note)">note must not occur in the descendants of tip</s:assert>
            </s:rule>
            <s:rule context="db:tip" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:tip)">tip must not occur in the descendants of tip</s:assert>
            </s:rule>
            <s:rule context="db:tip" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:warning)">warning must not occur in the descendants of tip</s:assert>
            </s:rule>
            <ref name="db.tip.attlist"/>
            <ref name="db.admonition.contentmodel"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>warning</db:refname>
      <db:refpurpose>An admonition set off from the text</db:refpurpose>
      <define name="db.warning.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.warning.attlist">
         <interleave>
            <optional>
               <ref name="db.warning.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.warning">
         <element name="warning">
            <s:rule context="db:warning" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:caution)">caution must not occur in the descendants of warning</s:assert>
            </s:rule>
            <s:rule context="db:warning" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:important)">important must not occur in the descendants of warning</s:assert>
            </s:rule>
            <s:rule context="db:warning" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:note)">note must not occur in the descendants of warning</s:assert>
            </s:rule>
            <s:rule context="db:warning" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:tip)">tip must not occur in the descendants of warning</s:assert>
            </s:rule>
            <s:rule context="db:warning" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:warning)">warning must not occur in the descendants of warning</s:assert>
            </s:rule>
            <ref name="db.warning.attlist"/>
            <ref name="db.admonition.contentmodel"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>itemizedlist</db:refname>
      <db:refpurpose>A list in which each entry is marked with a bullet or other dingbat</db:refpurpose>
      <define name="db.itemizedlist.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.itemizedlist.mark.attribute">
         <attribute name="mark"/>
      </define>

      <define name="db.itemizedlist.attlist">
         <interleave>
            <optional>
               <ref name="db.itemizedlist.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.spacing.attribute"/>
            </optional>
            <optional>
               <ref name="db.itemizedlist.mark.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.itemizedlist.info">
         <ref name="db._info.title.only"/>
      </define>

      <define name="db.itemizedlist">
         <element name="itemizedlist">
            <ref name="db.itemizedlist.attlist"/>
            <ref name="db.itemizedlist.info"/>
            <zeroOrMore>
               <ref name="db.all.blocks"/>
            </zeroOrMore>
            <oneOrMore>
               <ref name="db.listitem"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>orderedlist</db:refname>
      <db:refpurpose>A list in which each entry is marked with a sequentially incremented label</db:refpurpose>
      <define name="db.orderedlist.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.orderedlist.continuation.enumeration">
         <choice>
            <value>continues</value>
            <value>restarts</value>
         </choice>
      </define>

      <define name="db.orderedlist.continuation.attribute">
         <attribute name="continuation">
            <ref name="db.orderedlist.continuation.enumeration"/>
         </attribute>
      </define>

      <define name="db.orderedlist.inheritnum.enumeration">
         <choice>
            <value>ignore</value>
            <value>inherit</value>
         </choice>
      </define>

      <define name="db.orderedlist.inheritnum.attribute">
         <attribute name="inheritnum">
            <ref name="db.orderedlist.inheritnum.enumeration"/>
         </attribute>
      </define>

      <define name="db.orderedlist.numeration.enumeration">
         <choice>
            <value>arabic</value>
            <value>upperalpha</value>
            <value>loweralpha</value>
            <value>upperroman</value>
            <value>lowerroman</value>
         </choice>
      </define>

      <define name="db.orderedlist.numeration.attribute">
         <attribute name="numeration">
            <ref name="db.orderedlist.numeration.enumeration"/>
         </attribute>
      </define>

      <define name="db.orderedlist.attlist">
         <interleave>
            <optional>
               <ref name="db.orderedlist.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.spacing.attribute"/>
            </optional>
            <optional>
               <ref name="db.orderedlist.continuation.attribute"/>
            </optional>
            <optional>
               <ref name="db.orderedlist.inheritnum.attribute"/>
            </optional>
            <optional>
               <ref name="db.orderedlist.numeration.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.orderedlist.info">
         <ref name="db._info.title.only"/>
      </define>

      <define name="db.orderedlist">
         <element name="orderedlist">
            <ref name="db.orderedlist.attlist"/>
            <ref name="db.orderedlist.info"/>
            <zeroOrMore>
               <ref name="db.all.blocks"/>
            </zeroOrMore>
            <oneOrMore>
               <ref name="db.listitem"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>listitem</db:refname>
      <db:refpurpose>A wrapper for the elements of a list item</db:refpurpose>
      <define name="db.listitem.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.listitem.override.attribute">
         <attribute name="override"/>
      </define>

      <define name="db.listitem.attlist">
         <interleave>
            <optional>
               <ref name="db.listitem.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.listitem.override.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.listitem">
         <element name="listitem">
            <ref name="db.listitem.attlist"/>
            <oneOrMore>
               <ref name="db.all.blocks"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>segmentedlist</db:refname>
      <db:refpurpose>A segmented list, a list of sets of elements</db:refpurpose>
      <define name="db.segmentedlist.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.segmentedlist.attlist">
         <interleave>
            <optional>
               <ref name="db.segmentedlist.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.segmentedlist.info">
         <ref name="db._info.title.only"/>
      </define>

      <define name="db.segmentedlist">
         <element name="segmentedlist">
            <ref name="db.segmentedlist.attlist"/>
            <ref name="db.segmentedlist.info"/>
            <oneOrMore>
               <ref name="db.segtitle"/>
            </oneOrMore>
            <oneOrMore>
               <ref name="db.seglistitem"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>segtitle</db:refname>
      <db:refpurpose>The title of an element of a list item in a segmented list</db:refpurpose>
      <define name="db.segtitle.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.segtitle.attlist">
         <interleave>
            <optional>
               <ref name="db.segtitle.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.segtitle">
         <element name="segtitle">
            <ref name="db.segtitle.attlist"/>
            <zeroOrMore>
               <ref name="db.all.inlines"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>seglistitem</db:refname>
      <db:refpurpose>A list item in a segmented list</db:refpurpose>
      <define name="db.seglistitem.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.seglistitem.attlist">
         <interleave>
            <optional>
               <ref name="db.seglistitem.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.seglistitem">
         <element name="seglistitem">
            <s:rule context="db:seglistitem" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="count(db:seg) = count(../db:segtitle)">The number of seg elements must be the same as the number of segtitle elements in the parent segmentedlist</s:assert>
            </s:rule>
            <ref name="db.seglistitem.attlist"/>
            <oneOrMore>
               <ref name="db.seg"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>seg</db:refname>
      <db:refpurpose>An element of a list item in a segmented list</db:refpurpose>
      <define name="db.seg.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.seg.attlist">
         <interleave>
            <optional>
               <ref name="db.seg.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.seg">
         <element name="seg">
            <ref name="db.seg.attlist"/>
            <zeroOrMore>
               <ref name="db.all.inlines"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>simplelist</db:refname>
      <db:refpurpose>An undecorated list of single words or short phrases</db:refpurpose>
      <define name="db.simplelist.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.simplelist.type.enumeration">
         <choice>
            <value>horiz</value>
            <value>vert</value>
            <value>inline</value>
         </choice>
      </define>

      <define name="db.simplelist.type.attribute">
         <attribute name="type">
            <ref name="db.simplelist.type.enumeration"/>
         </attribute>
      </define>

      <define name="db.simplelist.columns.attribute">
         <attribute name="columns">
            <data type="integer"/>
         </attribute>
      </define>

      <define name="db.simplelist.attlist">
         <interleave>
            <optional>
               <ref name="db.simplelist.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.simplelist.type.attribute"/>
            </optional>
            <optional>
               <ref name="db.simplelist.columns.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.simplelist">
         <element name="simplelist">
            <ref name="db.simplelist.attlist"/>
            <oneOrMore>
               <ref name="db.member"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>member</db:refname>
      <db:refpurpose>An element of a simple list</db:refpurpose>
      <define name="db.member.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.member.attlist">
         <interleave>
            <optional>
               <ref name="db.member.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.member">
         <element name="member">
            <ref name="db.member.attlist"/>
            <zeroOrMore>
               <ref name="db.all.inlines"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>variablelist</db:refname>
      <db:refpurpose>A list in which each entry is composed of a set of one or more terms and an associated description</db:refpurpose>
      <define name="db.variablelist.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.variablelist.termlength.attribute">
         <attribute name="termlength"/>
      </define>

      <define name="db.variablelist.attlist">
         <interleave>
            <optional>
               <ref name="db.variablelist.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.spacing.attribute"/>
            </optional>
            <optional>
               <ref name="db.variablelist.termlength.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.variablelist.info">
         <ref name="db._info.title.only"/>
      </define>

      <define name="db.variablelist">
         <element name="variablelist">
            <ref name="db.variablelist.attlist"/>
            <ref name="db.variablelist.info"/>
            <zeroOrMore>
               <ref name="db.all.blocks"/>
            </zeroOrMore>
            <oneOrMore>
               <ref name="db.varlistentry"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>varlistentry</db:refname>
      <db:refpurpose>A wrapper for a set of terms and the associated description in a variable list</db:refpurpose>
      <define name="db.varlistentry.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.varlistentry.attlist">
         <interleave>
            <optional>
               <ref name="db.varlistentry.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.varlistentry">
         <element name="varlistentry">
            <ref name="db.varlistentry.attlist"/>
            <oneOrMore>
               <ref name="db.term"/>
            </oneOrMore>
            <ref name="db.listitem"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>term</db:refname>
      <db:refpurpose>The word or phrase being defined or described in a variable list</db:refpurpose>
      <define name="db.term.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.term.attlist">
         <interleave>
            <optional>
               <ref name="db.term.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.term">
         <element name="term">
            <ref name="db.term.attlist"/>
            <zeroOrMore>
               <ref name="db.all.inlines"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>example</db:refname>
      <db:refpurpose>A formal example, with a title</db:refpurpose>
      <define name="db.example.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.example.label.attribute">
         <attribute name="label"/>
      </define>

      <define name="db.example.width.attribute">
         <attribute name="width"/>
      </define>

      <define name="db.example.attlist">
         <interleave>
            <optional>
               <ref name="db.example.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.example.label.attribute"/>
            </optional>
            <optional>
               <ref name="db.floatstyle.attribute"/>
            </optional>
            <optional>
               <ref name="db.example.width.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.example.info">
         <ref name="db._info.title.onlyreq"/>
      </define>

      <define name="db.example">
         <element name="example">
            <s:rule context="db:example" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:example)">example must not occur in the descendants of example</s:assert>
            </s:rule>
            <s:rule context="db:example" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:figure)">figure must not occur in the descendants of example</s:assert>
            </s:rule>
            <s:rule context="db:example" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:table)">table must not occur in the descendants of example</s:assert>
            </s:rule>
            <s:rule context="db:example" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:table)">table must not occur in the descendants of example</s:assert>
            </s:rule>
            <s:rule context="db:example" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:caution)">caution must not occur in the descendants of example</s:assert>
            </s:rule>
            <s:rule context="db:example" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:important)">important must not occur in the descendants of example</s:assert>
            </s:rule>
            <s:rule context="db:example" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:note)">note must not occur in the descendants of example</s:assert>
            </s:rule>
            <s:rule context="db:example" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:tip)">tip must not occur in the descendants of example</s:assert>
            </s:rule>
            <s:rule context="db:example" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:warning)">warning must not occur in the descendants of example</s:assert>
            </s:rule>
            <ref name="db.example.attlist"/>
            <ref name="db.example.info"/>
            <oneOrMore>
               <ref name="db.all.blocks"/>
            </oneOrMore>
            <optional>
               <ref name="db.caption"/>
            </optional>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>informalexample</db:refname>
      <db:refpurpose>A displayed example without a title</db:refpurpose>
      <define name="db.informalexample.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.informalexample.width.attribute">
         <attribute name="width"/>
      </define>

      <define name="db.informalexample.attlist">
         <interleave>
            <optional>
               <ref name="db.informalexample.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.floatstyle.attribute"/>
            </optional>
            <optional>
               <ref name="db.informalexample.width.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.informalexample.info">
         <ref name="db._info.title.forbidden"/>
      </define>

      <define name="db.informalexample">
         <element name="informalexample">
            <ref name="db.informalexample.attlist"/>
            <ref name="db.informalexample.info"/>
            <oneOrMore>
               <ref name="db.all.blocks"/>
            </oneOrMore>
            <optional>
               <ref name="db.caption"/>
            </optional>
         </element>
      </define>

   </div>
   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.verbatim.inlines">
      <choice>
         <choice>
            <ref name="db.all.inlines"/>
            <ref name="db.lineannotation"/>
         </choice>
         <ref name="db.co"/>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.verbatim.contentmodel">
      <ref name="db._info.title.forbidden"/>
      <choice>
         <ref name="db.textobject"/>
         <zeroOrMore>
            <ref name="db.verbatim.inlines"/>
         </zeroOrMore>
      </choice>
   </define>

   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>programlisting</db:refname>
      <db:refpurpose>A literal listing of all or part of a program</db:refpurpose>
      <define name="db.programlisting.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.programlisting.width.attribute">
         <attribute name="width"/>
      </define>

      <define name="db.programlisting.attlist">
         <interleave>
            <optional>
               <ref name="db.programlisting.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <ref name="db.verbatim.attributes"/>
            <optional>
               <ref name="db.programlisting.width.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.programlisting">
         <element name="programlisting">
            <ref name="db.programlisting.attlist"/>
            <ref name="db.verbatim.contentmodel"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>literallayout</db:refname>
      <db:refpurpose>A block of text in which line breaks and white space are to be reproduced faithfully</db:refpurpose>
      <define name="db.literallayout.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.literallayout.class.enumeration">
         <choice>
            <value>monospaced</value>
            <value>normal</value>
         </choice>
      </define>

      <define name="db.literallayout.class.attribute">
         <attribute name="class">
            <ref name="db.literallayout.class.enumeration"/>
         </attribute>
      </define>

      <define name="db.literallayout.attlist">
         <interleave>
            <optional>
               <ref name="db.literallayout.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <ref name="db.verbatim.attributes"/>
            <optional>
               <ref name="db.literallayout.class.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.literallayout">
         <element name="literallayout">
            <ref name="db.literallayout.attlist"/>
            <ref name="db.verbatim.contentmodel"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>screen</db:refname>
      <db:refpurpose>Text that a user sees or might see on a computer screen</db:refpurpose>
      <define name="db.screen.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.screen.width.attribute">
         <attribute name="width"/>
      </define>

      <define name="db.screen.attlist">
         <interleave>
            <optional>
               <ref name="db.screen.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <ref name="db.verbatim.attributes"/>
            <optional>
               <ref name="db.screen.width.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.screen">
         <element name="screen">
            <ref name="db.screen.attlist"/>
            <ref name="db.verbatim.contentmodel"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>screenshot</db:refname>
      <db:refpurpose>A representation of what the user sees or might see on a computer screen</db:refpurpose>
      <define name="db.screenshot.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.screenshot.attlist">
         <interleave>
            <optional>
               <ref name="db.screenshot.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.screenshot.info">
         <ref name="db._info"/>
      </define>

      <define name="db.screenshot">
         <element name="screenshot">
            <ref name="db.screenshot.attlist"/>
            <ref name="db.screenshot.info"/>
            <ref name="db.mediaobject"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>figure</db:refname>
      <db:refpurpose>A formal figure, generally an illustration, with a title</db:refpurpose>
      <define name="db.figure.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.figure.label.attribute">
         <attribute name="label"/>
      </define>

      <define name="db.figure.attlist">
         <interleave>
            <optional>
               <ref name="db.figure.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.figure.label.attribute"/>
            </optional>
            <optional>
               <ref name="db.pgwide.attribute"/>
            </optional>
            <optional>
               <ref name="db.floatstyle.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.figure.info">
         <ref name="db._info.title.onlyreq"/>
      </define>

      <define name="db.figure">
         <element name="figure">
            <s:rule context="db:figure" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:example)">example must not occur in the descendants of figure</s:assert>
            </s:rule>
            <s:rule context="db:figure" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:figure)">figure must not occur in the descendants of figure</s:assert>
            </s:rule>
            <s:rule context="db:figure" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:table)">table must not occur in the descendants of figure</s:assert>
            </s:rule>
            <s:rule context="db:figure" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:table)">table must not occur in the descendants of figure</s:assert>
            </s:rule>
            <s:rule context="db:figure" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:caution)">caution must not occur in the descendants of figure</s:assert>
            </s:rule>
            <s:rule context="db:figure" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:important)">important must not occur in the descendants of figure</s:assert>
            </s:rule>
            <s:rule context="db:figure" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:note)">note must not occur in the descendants of figure</s:assert>
            </s:rule>
            <s:rule context="db:figure" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:tip)">tip must not occur in the descendants of figure</s:assert>
            </s:rule>
            <s:rule context="db:figure" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:warning)">warning must not occur in the descendants of figure</s:assert>
            </s:rule>
            <ref name="db.figure.attlist"/>
            <ref name="db.figure.info"/>
            <oneOrMore>
               <ref name="db.all.blocks"/>
            </oneOrMore>
            <optional>
               <ref name="db.caption"/>
            </optional>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>informalfigure</db:refname>
      <db:refpurpose>A untitled figure</db:refpurpose>
      <define name="db.informalfigure.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.informalfigure.label.attribute">
         <attribute name="label"/>
      </define>

      <define name="db.informalfigure.attlist">
         <interleave>
            <optional>
               <ref name="db.informalfigure.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.informalfigure.label.attribute"/>
            </optional>
            <optional>
               <ref name="db.pgwide.attribute"/>
            </optional>
            <optional>
               <ref name="db.floatstyle.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.informalfigure.info">
         <ref name="db._info.title.forbidden"/>
      </define>

      <define name="db.informalfigure">
         <element name="informalfigure">
            <ref name="db.informalfigure.attlist"/>
            <ref name="db.informalfigure.info"/>
            <oneOrMore>
               <ref name="db.all.blocks"/>
            </oneOrMore>
            <optional>
               <ref name="db.caption"/>
            </optional>
         </element>
      </define>

   </div>
   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.mediaobject.content">
      <choice>
         <choice>
            <ref name="db.videoobject"/>
            <ref name="db.audioobject"/>
            <ref name="db.imageobject"/>
            <ref name="db.textobject"/>
         </choice>
         <ref name="db.imageobjectco"/>
      </choice>
   </define>

   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>mediaobject</db:refname>
      <db:refpurpose>A displayed media object (video, audio, image, etc.)</db:refpurpose>
      <define name="db.mediaobject.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.mediaobject.attlist">
         <interleave>
            <optional>
               <ref name="db.mediaobject.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.mediaobject.info">
         <ref name="db._info.title.forbidden"/>
      </define>

      <define name="db.mediaobject">
         <element name="mediaobject">
            <ref name="db.mediaobject.attlist"/>
            <ref name="db.mediaobject.info"/>
            <optional>
               <ref name="db.alt"/>
            </optional>
            <oneOrMore>
               <ref name="db.mediaobject.content"/>
            </oneOrMore>
            <optional>
               <ref name="db.caption"/>
            </optional>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>inlinemediaobject</db:refname>
      <db:refpurpose>An inline media object (video, audio, image, and so on)</db:refpurpose>
      <define name="db.inlinemediaobject.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.inlinemediaobject.attlist">
         <interleave>
            <optional>
               <ref name="db.inlinemediaobject.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.inlinemediaobject.info">
         <ref name="db._info.title.forbidden"/>
      </define>

      <define name="db.inlinemediaobject">
         <element name="inlinemediaobject">
            <ref name="db.inlinemediaobject.attlist"/>
            <ref name="db.inlinemediaobject.info"/>
            <optional>
               <ref name="db.alt"/>
            </optional>
            <oneOrMore>
               <ref name="db.mediaobject.content"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>videoobject</db:refname>
      <db:refpurpose>A wrapper for video data and its associated meta-information</db:refpurpose>
      <define name="db.videoobject.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.videoobject.attlist">
         <interleave>
            <optional>
               <ref name="db.videoobject.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.videoobject.info">
         <ref name="db._info.title.forbidden"/>
      </define>

      <define name="db.videoobject">
         <element name="videoobject">
            <ref name="db.videoobject.attlist"/>
            <ref name="db.videoobject.info"/>
            <ref name="db.videodata"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>audioobject</db:refname>
      <db:refpurpose>A wrapper for audio data and its associated meta-information</db:refpurpose>
      <define name="db.audioobject.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.audioobject.attlist">
         <interleave>
            <optional>
               <ref name="db.audioobject.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.audioobject.info">
         <ref name="db._info.title.forbidden"/>
      </define>

      <define name="db.audioobject">
         <element name="audioobject">
            <ref name="db.audioobject.attlist"/>
            <ref name="db.audioobject.info"/>
            <ref name="db.audiodata"/>
         </element>
      </define>

   </div>
   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.imageobject.content">
      <choice>
         <ref name="db.imagedata"/>
         <ref xmlns:svg="http://www.w3.org/2000/svg" name="db._any.svg"/>
      </choice>
   </define>

   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>imageobject</db:refname>
      <db:refpurpose>A wrapper for image data and its associated meta-information</db:refpurpose>
      <define name="db.imageobject.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.imageobject.attlist">
         <interleave>
            <optional>
               <ref name="db.imageobject.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.imageobject.info">
         <ref name="db._info.title.forbidden"/>
      </define>

      <define name="db.imageobject">
         <element name="imageobject">
            <ref name="db.imageobject.attlist"/>
            <ref name="db.imageobject.info"/>
            <ref name="db.imageobject.content"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>textobject</db:refname>
      <db:refpurpose>A wrapper for a text description of an object and its associated meta-information</db:refpurpose>
      <define name="db.textobject.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.textobject.attlist">
         <interleave>
            <optional>
               <ref name="db.textobject.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.textobject.info">
         <ref name="db._info.title.forbidden"/>
      </define>

      <define name="db.textobject">
         <element name="textobject">
            <ref name="db.textobject.attlist"/>
            <ref name="db.textobject.info"/>
            <choice>
               <ref name="db.phrase"/>
               <ref name="db.textdata"/>
               <oneOrMore>
                  <ref name="db.all.blocks"/>
               </oneOrMore>
            </choice>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>videodata</db:refname>
      <db:refpurpose>Pointer to external video data</db:refpurpose>
      <define name="db.videodata.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.videodata.align.enumeration">
         <ref name="db.halign.enumeration"/>
      </define>

      <define name="db.videodata.align.attribute">
         <attribute name="align">
            <ref name="db.videodata.align.enumeration"/>
         </attribute>
      </define>

      <define name="db.videodata.valign.enumeration">
         <ref name="db.valign.enumeration"/>
      </define>

      <define name="db.videodata.valign.attribute">
         <attribute name="valign">
            <ref name="db.videodata.valign.enumeration"/>
         </attribute>
      </define>

      <define name="db.videodata.width.attribute">
         <attribute name="width"/>
      </define>

      <define name="db.videodata.contentwidth.attribute">
         <attribute name="contentwidth"/>
      </define>

      <define name="db.videodata.scalefit.enumeration">
         <choice>
            <value>0</value>
            <value>1</value>
         </choice>
      </define>

      <define name="db.videodata.scalefit.attribute">
         <attribute name="scalefit">
            <ref name="db.videodata.scalefit.enumeration"/>
         </attribute>
      </define>

      <define name="db.videodata.scale.attribute">
         <attribute name="scale"/>
      </define>

      <define name="db.videodata.depth.attribute">
         <attribute name="depth"/>
      </define>

      <define name="db.videodata.contentdepth.attribute">
         <attribute name="contentdepth"/>
      </define>

      <define name="db.videodata.attlist">
         <interleave>
            <optional>
               <ref name="db.videodata.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.data.attributes"/>
            <optional>
               <ref name="db.videodata.align.attribute"/>
            </optional>
            <optional>
               <ref name="db.videodata.valign.attribute"/>
            </optional>
            <optional>
               <ref name="db.videodata.width.attribute"/>
            </optional>
            <optional>
               <ref name="db.videodata.contentwidth.attribute"/>
            </optional>
            <optional>
               <ref name="db.videodata.scalefit.attribute"/>
            </optional>
            <optional>
               <ref name="db.videodata.scale.attribute"/>
            </optional>
            <optional>
               <ref name="db.videodata.depth.attribute"/>
            </optional>
            <optional>
               <ref name="db.videodata.contentdepth.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.videodata.info">
         <ref name="db._info.title.forbidden"/>
      </define>

      <define name="db.videodata">
         <element name="videodata">
            <ref name="db.videodata.attlist"/>
            <ref name="db.videodata.info"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>audiodata</db:refname>
      <db:refpurpose>Pointer to external audio data</db:refpurpose>
      <define name="db.audiodata.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.audiodata.attlist">
         <interleave>
            <optional>
               <ref name="db.audiodata.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.data.attributes"/>
         </interleave>
      </define>

      <define name="db.audiodata.info">
         <ref name="db._info.title.forbidden"/>
      </define>

      <define name="db.audiodata">
         <element name="audiodata">
            <ref name="db.audiodata.attlist"/>
            <ref name="db.audiodata.info"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>imagedata</db:refname>
      <db:refpurpose>Pointer to external image data</db:refpurpose>
      <define name="db.imagedata.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.imagedata.align.enumeration">
         <ref name="db.halign.enumeration"/>
      </define>

      <define name="db.imagedata.align.attribute">
         <attribute name="align">
            <ref name="db.imagedata.align.enumeration"/>
         </attribute>
      </define>

      <define name="db.imagedata.valign.enumeration">
         <ref name="db.valign.enumeration"/>
      </define>

      <define name="db.imagedata.valign.attribute">
         <attribute name="valign">
            <ref name="db.imagedata.valign.enumeration"/>
         </attribute>
      </define>

      <define name="db.imagedata.width.attribute">
         <attribute name="width"/>
      </define>

      <define name="db.imagedata.contentwidth.attribute">
         <attribute name="contentwidth"/>
      </define>

      <define name="db.imagedata.scalefit.enumeration">
         <choice>
            <value>0</value>
            <value>1</value>
         </choice>
      </define>

      <define name="db.imagedata.scalefit.attribute">
         <attribute name="scalefit">
            <ref name="db.imagedata.scalefit.enumeration"/>
         </attribute>
      </define>

      <define name="db.imagedata.scale.attribute">
         <attribute name="scale"/>
      </define>

      <define name="db.imagedata.depth.attribute">
         <attribute name="depth"/>
      </define>

      <define name="db.imagedata.contentdepth.attribute">
         <attribute name="contentdepth"/>
      </define>

      <define name="db.imagedata.attlist">
         <interleave>
            <optional>
               <ref name="db.imagedata.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.data.attributes"/>
            <optional>
               <ref name="db.imagedata.align.attribute"/>
            </optional>
            <optional>
               <ref name="db.imagedata.valign.attribute"/>
            </optional>
            <optional>
               <ref name="db.imagedata.width.attribute"/>
            </optional>
            <optional>
               <ref name="db.imagedata.contentwidth.attribute"/>
            </optional>
            <optional>
               <ref name="db.imagedata.scalefit.attribute"/>
            </optional>
            <optional>
               <ref name="db.imagedata.scale.attribute"/>
            </optional>
            <optional>
               <ref name="db.imagedata.depth.attribute"/>
            </optional>
            <optional>
               <ref name="db.imagedata.contentdepth.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.imagedata.info">
         <ref name="db._info.title.forbidden"/>
      </define>

      <define name="db.imagedata">
         <element name="imagedata">
            <ref name="db.imagedata.attlist"/>
            <ref name="db.imagedata.info"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>textdata</db:refname>
      <db:refpurpose>Pointer to external text data</db:refpurpose>
      <define name="db.textdata.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.textdata.encoding.attribute">
         <attribute name="encoding"/>
      </define>

      <define name="db.textdata.attlist">
         <interleave>
            <optional>
               <ref name="db.textdata.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.data.attributes"/>
            <optional>
               <ref name="db.textdata.encoding.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.textdata.info">
         <ref name="db._info.title.forbidden"/>
      </define>

      <define name="db.textdata">
         <element name="textdata">
            <ref name="db.textdata.attlist"/>
            <ref name="db.textdata.info"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>caption</db:refname>
      <db:refpurpose>A caption</db:refpurpose>
      <ctrl:exclude from="db.caption" exclude="db.formal.blocks" xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/"/>

      <ctrl:exclude from="db.caption" exclude="db.admonition.blocks" xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/"/>

      <ctrl:exclude from="db.caption" exclude="db.sidebar" xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/"/>

      <ctrl:exclude from="db.caption" exclude="db.task" xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/"/>

      <define name="db.caption.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.caption.attlist">
         <interleave>
            <optional>
               <ref name="db.caption.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.caption.info">
         <ref name="db._info.title.forbidden"/>
      </define>

      <define name="db.caption">
         <element name="caption">
            <s:rule context="db:caption" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:example)">example must not occur in the descendants of caption</s:assert>
            </s:rule>
            <s:rule context="db:caption" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:figure)">figure must not occur in the descendants of caption</s:assert>
            </s:rule>
            <s:rule context="db:caption" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:table)">table must not occur in the descendants of caption</s:assert>
            </s:rule>
            <s:rule context="db:caption" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:table)">table must not occur in the descendants of caption</s:assert>
            </s:rule>
            <s:rule context="db:caption" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:caution)">caution must not occur in the descendants of caption</s:assert>
            </s:rule>
            <s:rule context="db:caption" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:important)">important must not occur in the descendants of caption</s:assert>
            </s:rule>
            <s:rule context="db:caption" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:note)">note must not occur in the descendants of caption</s:assert>
            </s:rule>
            <s:rule context="db:caption" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:tip)">tip must not occur in the descendants of caption</s:assert>
            </s:rule>
            <s:rule context="db:caption" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:warning)">warning must not occur in the descendants of caption</s:assert>
            </s:rule>
            <s:rule context="db:caption" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:sidebar)">sidebar must not occur in the descendants of caption</s:assert>
            </s:rule>
            <s:rule context="db:caption" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:task)">task must not occur in the descendants of caption</s:assert>
            </s:rule>
            <ref name="db.caption.attlist"/>
            <ref name="db.caption.info"/>
            <oneOrMore>
               <ref name="db.all.blocks"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>synopsis</db:refname>
      <db:refpurpose>A general-purpose element for representing the syntax of commands or functions</db:refpurpose>
      <define name="db.synopsis.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.synopsis.label.attribute">
         <attribute name="label"/>
      </define>

      <define name="db.synopsis.attlist">
         <interleave>
            <optional>
               <ref name="db.synopsis.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <ref name="db.verbatim.attributes"/>
            <optional>
               <ref name="db.synopsis.label.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.synopsis">
         <element name="synopsis">
            <ref name="db.synopsis.attlist"/>
            <ref name="db.verbatim.contentmodel"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>cmdsynopsis</db:refname>
      <db:refpurpose>A syntax summary for a software command</db:refpurpose>
      <define name="db.cmdsynopsis.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.cmdsynopsis.sepchar.attribute">
         <attribute name="sepchar"/>
      </define>

      <define name="db.cmdsynopsis.cmdlength.attribute">
         <attribute name="cmdlength"/>
      </define>

      <define name="db.cmdsynopsis.label.attribute">
         <attribute name="label"/>
      </define>

      <define name="db.cmdsynopsis.attlist">
         <interleave>
            <optional>
               <ref name="db.cmdsynopsis.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.cmdsynopsis.sepchar.attribute"/>
            </optional>
            <optional>
               <ref name="db.cmdsynopsis.cmdlength.attribute"/>
            </optional>
            <optional>
               <ref name="db.cmdsynopsis.label.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.cmdsynopsis.info">
         <ref name="db._info.title.forbidden"/>
      </define>

      <define name="db.cmdsynopsis">
         <element name="cmdsynopsis">
            <ref name="db.cmdsynopsis.attlist"/>
            <ref name="db.cmdsynopsis.info"/>
            <oneOrMore>
               <choice>
                  <ref name="db.command"/>
                  <ref name="db.arg"/>
                  <ref name="db.group"/>
                  <ref name="db.sbr"/>
               </choice>
            </oneOrMore>
            <zeroOrMore>
               <ref name="db.synopfragment"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.rep.enumeration">
      <choice>
         <value>norepeat</value>
         <value>repeat</value>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.rep.attribute">
      <attribute name="rep">
         <ref name="db.rep.enumeration"/>
      </attribute>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.choice.enumeration">
      <choice>
         <value>opt</value>
         <value>plain</value>
         <value>req</value>
      </choice>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.choice.attribute">
      <attribute name="choice">
         <ref name="db.choice.enumeration"/>
      </attribute>
   </define>

   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>arg</db:refname>
      <db:refpurpose>An argument in a CmdSynopsis</db:refpurpose>
      <define name="db.arg.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.arg.attlist">
         <interleave>
            <optional>
               <ref name="db.arg.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.rep.attribute"/>
            </optional>
            <optional>
               <ref name="db.choice.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.arg">
         <element name="arg">
            <ref name="db.arg.attlist"/>
            <zeroOrMore>
               <choice>
                  <ref name="db._text"/>
                  <ref name="db.arg"/>
                  <ref name="db.group"/>
                  <ref name="db.option"/>
                  <ref name="db.synopfragmentref"/>
                  <ref name="db.sbr"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>group</db:refname>
      <db:refpurpose>A group of elements in a CmdSynopsis</db:refpurpose>
      <define name="db.group.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.group.attlist">
         <interleave>
            <optional>
               <ref name="db.group.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.rep.attribute"/>
            </optional>
            <optional>
               <ref name="db.choice.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.group">
         <element name="group">
            <ref name="db.group.attlist"/>
            <oneOrMore>
               <choice>
                  <ref name="db.arg"/>
                  <ref name="db.group"/>
                  <ref name="db.option"/>
                  <ref name="db.synopfragmentref"/>
                  <ref name="db.replaceable"/>
                  <ref name="db.sbr"/>
               </choice>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>sbr</db:refname>
      <db:refpurpose>An explicit line break in a command synopsis</db:refpurpose>
      <define name="db.sbr.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.sbr.attlist">
         <interleave>
            <optional>
               <ref name="db.sbr.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
         </interleave>
      </define>

      <define name="db.sbr">
         <element name="sbr">
            <ref name="db.sbr.attlist"/>
            <empty/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>synopfragment</db:refname>
      <db:refpurpose>A portion of a CmdSynopsis broken out from the main body of the synopsis</db:refpurpose>
      <define name="db.synopfragment.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.synopfragment.attlist">
         <interleave>
            <optional>
               <ref name="db.synopfragment.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.synopfragment">
         <element name="synopfragment">
            <ref name="db.synopfragment.attlist"/>
            <oneOrMore>
               <choice>
                  <ref name="db.arg"/>
                  <ref name="db.group"/>
               </choice>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>synopfragmentref</db:refname>
      <db:refpurpose>A reference to a fragment of a command synopsis</db:refpurpose>
      <define name="db.synopfragmentref.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.synopfragmentref.attlist">
         <interleave>
            <optional>
               <ref name="db.synopfragmentref.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.linkend.attribute"/>
         </interleave>
      </define>

      <define name="db.synopfragmentref">
         <element name="synopfragmentref">
            <s:rule context="db:synopfragmentref" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="local-name(//*[@id=current()/@linkend]) = 'synopfragment' and namespace-uri(//*[@id=current()/@linkend]) = 'http://docbook.org/ns/docbook'">@linkend on synopfragmentref must point to a synopfragment.</s:assert>
            </s:rule>
            <ref name="db.synopfragmentref.attlist"/>
            <text/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>funcsynopsis</db:refname>
      <db:refpurpose>The syntax summary for a function definition</db:refpurpose>
      <define name="db.funcsynopsis.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.funcsynopsis.attlist">
         <interleave>
            <optional>
               <ref name="db.funcsynopsis.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.language.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.funcsynopsis.info">
         <ref name="db._info.title.forbidden"/>
      </define>

      <define name="db.funcsynopsis">
         <element name="funcsynopsis">
            <ref name="db.funcsynopsis.attlist"/>
            <ref name="db.funcsynopsis.info"/>
            <oneOrMore>
               <choice>
                  <ref name="db.funcsynopsisinfo"/>
                  <ref name="db.funcprototype"/>
               </choice>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>funcsynopsisinfo</db:refname>
      <db:refpurpose>Information supplementing the FuncDefs of a FuncSynopsis</db:refpurpose>
      <define name="db.funcsynopsisinfo.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.funcsynopsisinfo.attlist">
         <interleave>
            <optional>
               <ref name="db.funcsynopsisinfo.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <ref name="db.verbatim.attributes"/>
         </interleave>
      </define>

      <define name="db.funcsynopsisinfo">
         <element name="funcsynopsisinfo">
            <ref name="db.funcsynopsisinfo.attlist"/>
            <ref name="db.verbatim.contentmodel"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>funcprototype</db:refname>
      <db:refpurpose>The prototype of a function</db:refpurpose>
      <define name="db.funcprototype.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.funcprototype.attlist">
         <interleave>
            <optional>
               <ref name="db.funcprototype.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.funcprototype">
         <element name="funcprototype">
            <ref name="db.funcprototype.attlist"/>
            <zeroOrMore>
               <ref name="db.modifier"/>
            </zeroOrMore>
            <ref name="db.funcdef"/>
            <choice>
               <ref name="db.void"/>
               <ref name="db.varargs"/>
               <group>
                  <oneOrMore>
                     <ref name="db.paramdef"/>
                  </oneOrMore>
                  <optional>
                     <ref name="db.varargs"/>
                  </optional>
               </group>
            </choice>
            <zeroOrMore>
               <ref name="db.modifier"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>funcdef</db:refname>
      <db:refpurpose>A function (subroutine) name and its return type</db:refpurpose>
      <define name="db.funcdef.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.funcdef.attlist">
         <interleave>
            <optional>
               <ref name="db.funcdef.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.funcdef">
         <element name="funcdef">
            <ref name="db.funcdef.attlist"/>
            <zeroOrMore>
               <choice>
                  <ref name="db._text"/>
                  <ref name="db.type"/>
                  <ref name="db.function"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>void</db:refname>
      <db:refpurpose>An empty element in a function synopsis indicating that the function in question takes no arguments</db:refpurpose>
      <define name="db.void.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.void.attlist">
         <interleave>
            <optional>
               <ref name="db.void.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.void">
         <element name="void">
            <ref name="db.void.attlist"/>
            <empty/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>varargs</db:refname>
      <db:refpurpose>An empty element in a function synopsis indicating a variable number of arguments</db:refpurpose>
      <define name="db.varargs.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.varargs.attlist">
         <interleave>
            <optional>
               <ref name="db.varargs.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.varargs">
         <element name="varargs">
            <ref name="db.varargs.attlist"/>
            <empty/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>paramdef</db:refname>
      <db:refpurpose>Information about a function parameter in a programming language</db:refpurpose>
      <define name="db.paramdef.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.paramdef.attlist">
         <interleave>
            <optional>
               <ref name="db.paramdef.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.choice.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.paramdef">
         <element name="paramdef">
            <ref name="db.paramdef.attlist"/>
            <zeroOrMore>
               <choice>
                  <ref name="db._text"/>
                  <ref name="db.initializer"/>
                  <ref name="db.type"/>
                  <ref name="db.parameter"/>
                  <ref name="db.funcparams"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>funcparams</db:refname>
      <db:refpurpose>Parameters for a function referenced through a function pointer in a synopsis</db:refpurpose>
      <define name="db.funcparams.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.funcparams.attlist">
         <interleave>
            <optional>
               <ref name="db.funcparams.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.funcparams">
         <element name="funcparams">
            <ref name="db.funcparams.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>classsynopsis</db:refname>
      <db:refpurpose>The syntax summary for a class definition</db:refpurpose>
      <define name="db.classsynopsis.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.classsynopsis.class.enumeration">
         <choice>
            <value>class</value>
            <value>interface</value>
         </choice>
      </define>

      <define name="db.classsynopsis.class.attribute">
         <attribute name="class">
            <ref name="db.classsynopsis.class.enumeration"/>
         </attribute>
      </define>

      <define name="db.classsynopsis.attlist">
         <interleave>
            <optional>
               <ref name="db.classsynopsis.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.language.attribute"/>
            </optional>
            <optional>
               <ref name="db.classsynopsis.class.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.classsynopsis">
         <element name="classsynopsis">
            <ref name="db.classsynopsis.attlist"/>
            <oneOrMore>
               <ref name="db.oo.inlines"/>
            </oneOrMore>
            <zeroOrMore>
               <choice>
                  <ref name="db.classsynopsisinfo"/>
                  <ref name="db.methodsynopsis"/>
                  <ref name="db.constructorsynopsis"/>
                  <ref name="db.destructorsynopsis"/>
                  <ref name="db.fieldsynopsis"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>classsynopsisinfo</db:refname>
      <db:refpurpose>Information supplementing the contents of a ClassSynopsis</db:refpurpose>
      <define name="db.classsynopsisinfo.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.classsynopsisinfo.attlist">
         <interleave>
            <optional>
               <ref name="db.classsynopsisinfo.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <ref name="db.verbatim.attributes"/>
         </interleave>
      </define>

      <define name="db.classsynopsisinfo">
         <element name="classsynopsisinfo">
            <ref name="db.classsynopsisinfo.attlist"/>
            <ref name="db.verbatim.contentmodel"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>ooclass</db:refname>
      <db:refpurpose>A class in an object-oriented programming language</db:refpurpose>
      <define name="db.ooclass.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.ooclass.attlist">
         <interleave>
            <optional>
               <ref name="db.ooclass.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.ooclass">
         <element name="ooclass">
            <ref name="db.ooclass.attlist"/>
            <zeroOrMore>
               <choice>
                  <ref name="db.package"/>
                  <ref name="db.modifier"/>
               </choice>
            </zeroOrMore>
            <ref name="db.classname"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>oointerface</db:refname>
      <db:refpurpose>An interface in an object-oriented programming language</db:refpurpose>
      <define name="db.oointerface.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.oointerface.attlist">
         <interleave>
            <optional>
               <ref name="db.oointerface.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.oointerface">
         <element name="oointerface">
            <ref name="db.oointerface.attlist"/>
            <zeroOrMore>
               <choice>
                  <ref name="db.package"/>
                  <ref name="db.modifier"/>
               </choice>
            </zeroOrMore>
            <ref name="db.interfacename"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>ooexception</db:refname>
      <db:refpurpose>An exception in an object-oriented programming language</db:refpurpose>
      <define name="db.ooexception.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.ooexception.attlist">
         <interleave>
            <optional>
               <ref name="db.ooexception.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.ooexception">
         <element name="ooexception">
            <ref name="db.ooexception.attlist"/>
            <zeroOrMore>
               <choice>
                  <ref name="db.package"/>
                  <ref name="db.modifier"/>
               </choice>
            </zeroOrMore>
            <ref name="db.exceptionname"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>modifier</db:refname>
      <db:refpurpose>Modifiers in a synopsis</db:refpurpose>
      <define name="db.modifier.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.modifier.attlist">
         <interleave>
            <optional>
               <ref name="db.modifier.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.modifier">
         <element name="modifier">
            <ref name="db.modifier.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>interfacename</db:refname>
      <db:refpurpose>The name of an interface</db:refpurpose>
      <define name="db.interfacename.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.interfacename.attlist">
         <interleave>
            <optional>
               <ref name="db.interfacename.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.interfacename">
         <element name="interfacename">
            <ref name="db.interfacename.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>exceptionname</db:refname>
      <db:refpurpose>The name of an exception</db:refpurpose>
      <define name="db.exceptionname.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.exceptionname.attlist">
         <interleave>
            <optional>
               <ref name="db.exceptionname.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.exceptionname">
         <element name="exceptionname">
            <ref name="db.exceptionname.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>fieldsynopsis</db:refname>
      <db:refpurpose>The name of a field in a class definition</db:refpurpose>
      <define name="db.fieldsynopsis.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.fieldsynopsis.attlist">
         <interleave>
            <optional>
               <ref name="db.fieldsynopsis.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.language.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.fieldsynopsis">
         <element name="fieldsynopsis">
            <ref name="db.fieldsynopsis.attlist"/>
            <zeroOrMore>
               <ref name="db.modifier"/>
            </zeroOrMore>
            <optional>
               <ref name="db.type"/>
            </optional>
            <ref name="db.varname"/>
            <optional>
               <ref name="db.initializer"/>
            </optional>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>initializer</db:refname>
      <db:refpurpose>The initializer for a FieldSynopsis</db:refpurpose>
      <define name="db.initializer.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.initializer.attlist">
         <interleave>
            <optional>
               <ref name="db.initializer.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.initializer">
         <element name="initializer">
            <ref name="db.initializer.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>constructorsynopsis</db:refname>
      <db:refpurpose>A syntax summary for a constructor</db:refpurpose>
      <define name="db.constructorsynopsis.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.constructorsynopsis.attlist">
         <interleave>
            <optional>
               <ref name="db.constructorsynopsis.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.language.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.constructorsynopsis">
         <element name="constructorsynopsis">
            <ref name="db.constructorsynopsis.attlist"/>
            <zeroOrMore>
               <ref name="db.modifier"/>
            </zeroOrMore>
            <optional>
               <ref name="db.methodname"/>
            </optional>
            <choice>
               <oneOrMore>
                  <ref name="db.methodparam"/>
               </oneOrMore>
               <optional>
                  <ref name="db.void"/>
               </optional>
            </choice>
            <zeroOrMore>
               <ref name="db.exceptionname"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>destructorsynopsis</db:refname>
      <db:refpurpose>A syntax summary for a destructor</db:refpurpose>
      <define name="db.destructorsynopsis.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.destructorsynopsis.attlist">
         <interleave>
            <optional>
               <ref name="db.destructorsynopsis.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.language.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.destructorsynopsis">
         <element name="destructorsynopsis">
            <ref name="db.destructorsynopsis.attlist"/>
            <zeroOrMore>
               <ref name="db.modifier"/>
            </zeroOrMore>
            <optional>
               <ref name="db.methodname"/>
            </optional>
            <choice>
               <oneOrMore>
                  <ref name="db.methodparam"/>
               </oneOrMore>
               <optional>
                  <ref name="db.void"/>
               </optional>
            </choice>
            <zeroOrMore>
               <ref name="db.exceptionname"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>methodsynopsis</db:refname>
      <db:refpurpose>A syntax summary for a method</db:refpurpose>
      <define name="db.methodsynopsis.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.methodsynopsis.attlist">
         <interleave>
            <optional>
               <ref name="db.methodsynopsis.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.language.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.methodsynopsis">
         <element name="methodsynopsis">
            <ref name="db.methodsynopsis.attlist"/>
            <zeroOrMore>
               <ref name="db.modifier"/>
            </zeroOrMore>
            <optional>
               <choice>
                  <ref name="db.type"/>
                  <ref name="db.void"/>
               </choice>
            </optional>
            <ref name="db.methodname"/>
            <choice>
               <oneOrMore>
                  <ref name="db.methodparam"/>
               </oneOrMore>
               <ref name="db.void"/>
            </choice>
            <zeroOrMore>
               <ref name="db.exceptionname"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="db.modifier"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>methodname</db:refname>
      <db:refpurpose>The name of a method</db:refpurpose>
      <define name="db.methodname.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.methodname.attlist">
         <interleave>
            <optional>
               <ref name="db.methodname.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.methodname">
         <element name="methodname">
            <ref name="db.methodname.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>methodparam</db:refname>
      <db:refpurpose>Parameters to a method</db:refpurpose>
      <define name="db.methodparam.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.methodparam.attlist">
         <interleave>
            <optional>
               <ref name="db.methodparam.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.rep.attribute"/>
            </optional>
            <optional>
               <ref name="db.choice.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.methodparam">
         <element name="methodparam">
            <ref name="db.methodparam.attlist"/>
            <zeroOrMore>
               <ref name="db.modifier"/>
            </zeroOrMore>
            <optional>
               <ref name="db.type"/>
            </optional>
            <choice>
               <group>
                  <ref name="db.parameter"/>
                  <optional>
                     <ref name="db.initializer"/>
                  </optional>
               </group>
               <ref name="db.funcparams"/>
            </choice>
            <zeroOrMore>
               <ref name="db.modifier"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>address</db:refname>
      <db:refpurpose>A real-world address, generally a postal address</db:refpurpose>
      <define name="db.address.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.address.attlist">
         <interleave>
            <optional>
               <ref name="db.address.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <ref name="db.verbatim.attributes"/>
         </interleave>
      </define>

      <define name="db.address">
         <element name="address">
            <ref name="db.address.attlist"/>
            <zeroOrMore>
               <choice>
                  <ref name="db._text"/>
                  <ref name="db.personname"/>
                  <ref name="db.pob"/>
                  <ref name="db.street"/>
                  <ref name="db.city"/>
                  <ref name="db.state"/>
                  <ref name="db.postcode"/>
                  <ref name="db.country"/>
                  <ref name="db.phone"/>
                  <ref name="db.fax"/>
                  <ref name="db.email"/>
                  <ref name="db.otheraddr"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>street</db:refname>
      <db:refpurpose>A street address in an address</db:refpurpose>
      <define name="db.street.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.street.attlist">
         <interleave>
            <optional>
               <ref name="db.street.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.street">
         <element name="street">
            <ref name="db.street.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>pob</db:refname>
      <db:refpurpose>A post office box in an address</db:refpurpose>
      <define name="db.pob.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.pob.attlist">
         <interleave>
            <optional>
               <ref name="db.pob.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.pob">
         <element name="pob">
            <ref name="db.pob.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>postcode</db:refname>
      <db:refpurpose>A postal code in an address</db:refpurpose>
      <define name="db.postcode.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.postcode.attlist">
         <interleave>
            <optional>
               <ref name="db.postcode.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.postcode">
         <element name="postcode">
            <ref name="db.postcode.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>city</db:refname>
      <db:refpurpose>The name of a city in an address</db:refpurpose>
      <define name="db.city.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.city.attlist">
         <interleave>
            <optional>
               <ref name="db.city.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.city">
         <element name="city">
            <ref name="db.city.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>state</db:refname>
      <db:refpurpose>A state or province in an address</db:refpurpose>
      <define name="db.state.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.state.attlist">
         <interleave>
            <optional>
               <ref name="db.state.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.state">
         <element name="state">
            <ref name="db.state.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>country</db:refname>
      <db:refpurpose>The name of a country</db:refpurpose>
      <define name="db.country.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.country.attlist">
         <interleave>
            <optional>
               <ref name="db.country.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.country">
         <element name="country">
            <ref name="db.country.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>phone</db:refname>
      <db:refpurpose>A telephone number</db:refpurpose>
      <define name="db.phone.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.phone.attlist">
         <interleave>
            <optional>
               <ref name="db.phone.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.phone">
         <element name="phone">
            <ref name="db.phone.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>fax</db:refname>
      <db:refpurpose>A fax number</db:refpurpose>
      <define name="db.fax.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.fax.attlist">
         <interleave>
            <optional>
               <ref name="db.fax.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.fax">
         <element name="fax">
            <ref name="db.fax.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>otheraddr</db:refname>
      <db:refpurpose>Uncategorized information in address</db:refpurpose>
      <define name="db.otheraddr.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.otheraddr.attlist">
         <interleave>
            <optional>
               <ref name="db.otheraddr.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.otheraddr">
         <element name="otheraddr">
            <ref name="db.otheraddr.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>affiliation</db:refname>
      <db:refpurpose>The institutional affiliation of an individual</db:refpurpose>
      <define name="db.affiliation.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.affiliation.attlist">
         <interleave>
            <optional>
               <ref name="db.affiliation.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.affiliation">
         <element name="affiliation">
            <ref name="db.affiliation.attlist"/>
            <optional>
               <ref name="db.shortaffil"/>
            </optional>
            <zeroOrMore>
               <ref name="db.jobtitle"/>
            </zeroOrMore>
            <optional>
               <ref name="db.orgname"/>
            </optional>
            <zeroOrMore>
               <ref name="db.orgdiv"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="db.address"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>shortaffil</db:refname>
      <db:refpurpose>A brief description of an affiliation</db:refpurpose>
      <define name="db.shortaffil.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.shortaffil.attlist">
         <interleave>
            <optional>
               <ref name="db.shortaffil.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.shortaffil">
         <element name="shortaffil">
            <ref name="db.shortaffil.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>jobtitle</db:refname>
      <db:refpurpose>The title of an individual in an organization</db:refpurpose>
      <define name="db.jobtitle.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.jobtitle.attlist">
         <interleave>
            <optional>
               <ref name="db.jobtitle.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.jobtitle">
         <element name="jobtitle">
            <ref name="db.jobtitle.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>orgname</db:refname>
      <db:refpurpose>The name of an organization other than a corporation </db:refpurpose>
      <ctrl:other-attribute name="db.orgname.class.attrib" enum-name="db.orgname.class-enum.attribute" other-name="db.orgname.class-other.attributes" xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/"/>

      <define name="db.orgname.class.enumeration">
         <choice>
            <value>consortium</value>
            <value>corporation</value>
            <value>informal</value>
            <value>nonprofit</value>
         </choice>
      </define>

      <define name="db.orgname.class-enum.attribute">
         <attribute name="class">
            <ref name="db.orgname.class.enumeration"/>
         </attribute>
      </define>

      <define name="db.orgname.class-other.attributes">
         <interleave>
            <attribute name="class">
               <value>other</value>
            </attribute>
            <attribute name="otherclass"/>
         </interleave>
      </define>

      <define name="db.orgname.class.attribute">
         <choice>
            <ref name="db.orgname.class-enum.attribute"/>
            <ref name="db.orgname.class-other.attributes"/>
         </choice>
      </define>

      <define name="db.orgname.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.orgname.attlist">
         <interleave>
            <optional>
               <ref name="db.orgname.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.orgname.class.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.orgname">
         <element name="orgname">
            <ref name="db.orgname.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>orgdiv</db:refname>
      <db:refpurpose>A division of an organization</db:refpurpose>
      <define name="db.orgdiv.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.orgdiv.attlist">
         <interleave>
            <optional>
               <ref name="db.orgdiv.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.orgdiv">
         <element name="orgdiv">
            <ref name="db.orgdiv.attlist"/>
            <zeroOrMore>
               <ref name="db.all.inlines"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>artpagenums</db:refname>
      <db:refpurpose>The page numbers of an article as published</db:refpurpose>
      <define name="db.artpagenums.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.artpagenums.attlist">
         <interleave>
            <optional>
               <ref name="db.artpagenums.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.artpagenums">
         <element name="artpagenums">
            <ref name="db.artpagenums.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>personname</db:refname>
      <db:refpurpose>The personal name of an individual</db:refpurpose>
      <define name="db.personname.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.personname.attlist">
         <interleave>
            <optional>
               <ref name="db.personname.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.personname">
         <element name="personname">
            <ref name="db.personname.attlist"/>
            <choice>
               <ref name="db._text"/>
               <oneOrMore>
                  <choice>
                     <ref name="db.honorific"/>
                     <ref name="db.firstname"/>
                     <ref name="db.surname"/>
                     <ref name="db.lineage"/>
                     <ref name="db.othername"/>
                  </choice>
               </oneOrMore>
            </choice>
         </element>
      </define>

   </div>
   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.person.author.contentmodel">
      <ref name="db.personname"/>
      <zeroOrMore>
         <choice>
            <ref name="db.personblurb"/>
            <ref name="db.affiliation"/>
            <ref name="db.email"/>
            <ref name="db.address"/>
            <ref name="db.contrib"/>
         </choice>
      </zeroOrMore>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.org.author.contentmodel">
      <ref name="db.orgname"/>
      <zeroOrMore>
         <choice>
            <ref name="db.orgdiv"/>
            <ref name="db.affiliation"/>
            <ref name="db.email"/>
            <ref name="db.address"/>
            <ref name="db.contrib"/>
         </choice>
      </zeroOrMore>
   </define>

   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.credit.contentmodel">
      <choice>
         <ref name="db.person.author.contentmodel"/>
         <ref name="db.org.author.contentmodel"/>
      </choice>
   </define>

   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>author</db:refname>
      <db:refpurpose>The name of an individual author</db:refpurpose>
      <define name="db.author.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.author.attlist">
         <interleave>
            <optional>
               <ref name="db.author.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.author">
         <element name="author">
            <ref name="db.author.attlist"/>
            <ref name="db.credit.contentmodel"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>authorgroup</db:refname>
      <db:refpurpose>Wrapper for author information when a document has multiple authors or collabarators</db:refpurpose>
      <define name="db.authorgroup.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.authorgroup.attlist">
         <interleave>
            <optional>
               <ref name="db.authorgroup.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.authorgroup">
         <element name="authorgroup">
            <ref name="db.authorgroup.attlist"/>
            <oneOrMore>
               <choice>
                  <ref name="db.author"/>
                  <ref name="db.editor"/>
                  <ref name="db.othercredit"/>
               </choice>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>collab</db:refname>
      <db:refpurpose>Identifies a collaborator</db:refpurpose>
      <define name="db.collab.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.collab.attlist">
         <interleave>
            <optional>
               <ref name="db.collab.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.collab">
         <element name="collab">
            <ref name="db.collab.attlist"/>
            <oneOrMore>
               <choice>
                  <ref name="db.personname"/>
                  <ref name="db.orgname"/>
               </choice>
            </oneOrMore>
            <zeroOrMore>
               <ref name="db.affiliation"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>authorinitials</db:refname>
      <db:refpurpose>The initials or other short identifier for an author</db:refpurpose>
      <define name="db.authorinitials.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.authorinitials.attlist">
         <interleave>
            <optional>
               <ref name="db.authorinitials.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.authorinitials">
         <element name="authorinitials">
            <ref name="db.authorinitials.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>confgroup</db:refname>
      <db:refpurpose>A wrapper for document meta-information about a conference</db:refpurpose>
      <define name="db.confgroup.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.confgroup.attlist">
         <interleave>
            <optional>
               <ref name="db.confgroup.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.confgroup">
         <element name="confgroup">
            <ref name="db.confgroup.attlist"/>
            <zeroOrMore>
               <choice>
                  <ref name="db.confdates"/>
                  <ref name="db.conftitle"/>
                  <ref name="db.confnum"/>
                  <ref name="db.confsponsor"/>
                  <ref name="db.address"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>confdates</db:refname>
      <db:refpurpose>The dates of a conference for which a document was written</db:refpurpose>
      <define name="db.confdates.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.confdates.attlist">
         <interleave>
            <optional>
               <ref name="db.confdates.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.confdates">
         <element name="confdates">
            <ref name="db.confdates.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>conftitle</db:refname>
      <db:refpurpose>The title of a conference for which a document was written</db:refpurpose>
      <define name="db.conftitle.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.conftitle.attlist">
         <interleave>
            <optional>
               <ref name="db.conftitle.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.conftitle">
         <element name="conftitle">
            <ref name="db.conftitle.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>confnum</db:refname>
      <db:refpurpose>An identifier, frequently numerical, associated with a conference for which a document was written</db:refpurpose>
      <define name="db.confnum.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.confnum.attlist">
         <interleave>
            <optional>
               <ref name="db.confnum.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.confnum">
         <element name="confnum">
            <ref name="db.confnum.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>confsponsor</db:refname>
      <db:refpurpose>The sponsor of a conference for which a document was written</db:refpurpose>
      <define name="db.confsponsor.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.confsponsor.attlist">
         <interleave>
            <optional>
               <ref name="db.confsponsor.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.confsponsor">
         <element name="confsponsor">
            <ref name="db.confsponsor.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>contractnum</db:refname>
      <db:refpurpose>The contract number of a document</db:refpurpose>
      <define name="db.contractnum.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.contractnum.attlist">
         <interleave>
            <optional>
               <ref name="db.contractnum.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.contractnum">
         <element name="contractnum">
            <ref name="db.contractnum.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>contractsponsor</db:refname>
      <db:refpurpose>The sponsor of a contract</db:refpurpose>
      <define name="db.contractsponsor.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.contractsponsor.attlist">
         <interleave>
            <optional>
               <ref name="db.contractsponsor.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.contractsponsor">
         <element name="contractsponsor">
            <ref name="db.contractsponsor.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>copyright</db:refname>
      <db:refpurpose>Copyright information about a document</db:refpurpose>
      <define name="db.copyright.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.copyright.attlist">
         <interleave>
            <optional>
               <ref name="db.copyright.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.copyright">
         <element name="copyright">
            <ref name="db.copyright.attlist"/>
            <oneOrMore>
               <ref name="db.year"/>
            </oneOrMore>
            <zeroOrMore>
               <ref name="db.holder"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>year</db:refname>
      <db:refpurpose>The year of publication of a document</db:refpurpose>
      <define name="db.year.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.year.attlist">
         <interleave>
            <optional>
               <ref name="db.year.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.year">
         <element name="year">
            <ref name="db.year.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>holder</db:refname>
      <db:refpurpose>The name of the individual or organization that holds a copyright</db:refpurpose>
      <define name="db.holder.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.holder.attlist">
         <interleave>
            <optional>
               <ref name="db.holder.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.holder">
         <element name="holder">
            <ref name="db.holder.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.date.contentmodel">
      <choice>
         <data type="date"/>
         <data type="dateTime"/>
         <data type="gYearMonth"/>
         <data type="gYear"/>
         <text/>
      </choice>
   </define>

   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>date</db:refname>
      <db:refpurpose>The date of publication or revision of a document</db:refpurpose>
      <define name="db.date.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.date.attlist">
         <interleave>
            <optional>
               <ref name="db.date.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.date">
         <element name="date">
            <ref name="db.date.attlist"/>
            <ref name="db.date.contentmodel"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>edition</db:refname>
      <db:refpurpose>The name or number of an edition of a document</db:refpurpose>
      <define name="db.edition.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.edition.attlist">
         <interleave>
            <optional>
               <ref name="db.edition.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.edition">
         <element name="edition">
            <ref name="db.edition.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>editor</db:refname>
      <db:refpurpose>The name of the editor of a document</db:refpurpose>
      <define name="db.editor.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.editor.attlist">
         <interleave>
            <optional>
               <ref name="db.editor.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.editor">
         <element name="editor">
            <ref name="db.editor.attlist"/>
            <ref name="db.credit.contentmodel"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>biblioid</db:refname>
      <db:refpurpose>An identifier for a document</db:refpurpose>
      <define name="db.biblioid.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.biblioid.attlist">
         <interleave>
            <optional>
               <ref name="db.biblioid.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <ref name="db.biblio.class.attribute"/>
         </interleave>
      </define>

      <define name="db.biblioid">
         <element name="biblioid">
            <ref name="db.biblioid.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>citebiblioid</db:refname>
      <db:refpurpose>A citation of a bibliographic identifier</db:refpurpose>
      <define name="db.citebiblioid.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.citebiblioid.attlist">
         <interleave>
            <optional>
               <ref name="db.citebiblioid.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <ref name="db.biblio.class.attribute"/>
         </interleave>
      </define>

      <define name="db.citebiblioid">
         <element name="citebiblioid">
            <ref name="db.citebiblioid.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>bibliosource</db:refname>
      <db:refpurpose>The source of a document</db:refpurpose>
      <define name="db.bibliosource.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.bibliosource.attlist">
         <interleave>
            <optional>
               <ref name="db.bibliosource.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <ref name="db.biblio.class.attribute"/>
         </interleave>
      </define>

      <define name="db.bibliosource">
         <element name="bibliosource">
            <ref name="db.bibliosource.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>bibliorelation</db:refname>
      <db:refpurpose>The relationship of a document to another</db:refpurpose>
      <ctrl:other-attribute name="db.bibliorelation.type.attrib" enum-name="db.bibliorelation.type-enum.attribute" other-name="db.bibliorelation.type-other.attributes" xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/"/>

      <define name="db.bibliorelation.type-enum.attribute">
         <optional>
            <attribute name="type">
               <choice>
                  <value>hasformat</value>
                  <value>haspart</value>
                  <value>hasversion</value>
                  <value>isformatof</value>
                  <value>ispartof</value>
                  <value>isreferencedby</value>
                  <value>isreplacedby</value>
                  <value>isrequiredby</value>
                  <value>isversionof</value>
                  <value>othertype</value>
                  <value>references</value>
                  <value>replaces</value>
                  <value>requires</value>
               </choice>
            </attribute>
         </optional>
      </define>

      <define name="db.bibliorelation.type-other.attributes">
         <optional>
            <attribute name="type">
               <value>othertype</value>
            </attribute>
         </optional>
         <attribute name="othertype">
            <data type="NMTOKEN"/>
         </attribute>
      </define>

      <define name="db.bibliorelation.type.attribute">
         <choice>
            <ref name="db.bibliorelation.type-enum.attribute"/>
            <ref name="db.bibliorelation.type-other.attributes"/>
         </choice>
      </define>

      <define name="db.bibliorelation.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.bibliorelation.attlist">
         <interleave>
            <optional>
               <ref name="db.bibliorelation.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <ref name="db.biblio.class.attribute"/>
            <ref name="db.bibliorelation.type.attribute"/>
         </interleave>
      </define>

      <define name="db.bibliorelation">
         <element name="bibliorelation">
            <ref name="db.bibliorelation.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>bibliocoverage</db:refname>
      <db:refpurpose>The spatial or temporal coverage of a document</db:refpurpose>
      <ctrl:other-attribute name="db.bibliocoverage.spatial.attrib" enum-name="db.bibliocoverage.spatial-enum.attribute" other-name="db.bibliocoverage.spatial-other.attributes" xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/"/>

      <define name="db.bibliocoverage.spacial.enumeration">
         <choice>
            <value>dcmipoint</value>
            <value>iso3166</value>
            <value>dcmibox</value>
            <value>tgn</value>
         </choice>
      </define>

      <define name="db.bibliocoverage.spatial-enum.attribute">
         <optional>
            <attribute name="spatial">
               <ref name="db.bibliocoverage.spacial.enumeration"/>
            </attribute>
         </optional>
      </define>

      <define name="db.bibliocoverage.spatial-other.attributes">
         <optional>
            <attribute name="spatial">
               <value>otherspatial</value>
            </attribute>
         </optional>
         <attribute name="otherspatial">
            <data type="NMTOKEN"/>
         </attribute>
      </define>

      <define name="db.bibliocoverage.spatial.attribute">
         <choice>
            <ref name="db.bibliocoverage.spatial-enum.attribute"/>
            <ref name="db.bibliocoverage.spatial-other.attributes"/>
         </choice>
      </define>

      <ctrl:other-attribute name="db.bibliocoverage.temporal.attrib" enum-name="db.bibliocoverage.temporal-enum.attribute" other-name="db.bibliocoverage.temporal-other.attributes" xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/"/>

      <define name="db.bibliocoverage.temporal.enumeration">
         <choice>
            <value>dcmiperiod</value>
            <value>w3c-dtf</value>
         </choice>
      </define>

      <define name="db.bibliocoverage.temporal-enum.attribute">
         <optional>
            <attribute name="temporal">
               <ref name="db.bibliocoverage.temporal.enumeration"/>
            </attribute>
         </optional>
      </define>

      <define name="db.bibliocoverage.temporal-other.attributes">
         <optional>
            <attribute name="temporal">
               <value>othertemporal</value>
            </attribute>
         </optional>
         <attribute name="othertemporal">
            <data type="NMTOKEN"/>
         </attribute>
      </define>

      <define name="db.bibliocoverage.temporal.attribute">
         <choice>
            <ref name="db.bibliocoverage.temporal-enum.attribute"/>
            <ref name="db.bibliocoverage.temporal-other.attributes"/>
         </choice>
      </define>

      <define name="db.bibliocoverage.coverage.attrib">
         <interleave>
            <ref name="db.bibliocoverage.spatial.attribute"/>
            <ref name="db.bibliocoverage.temporal.attribute"/>
         </interleave>
      </define>

      <define name="db.bibliocoverage.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.bibliocoverage.attlist">
         <interleave>
            <optional>
               <ref name="db.bibliocoverage.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <ref name="db.bibliocoverage.coverage.attrib"/>
         </interleave>
      </define>

      <define name="db.bibliocoverage">
         <element name="bibliocoverage">
            <ref name="db.bibliocoverage.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>legalnotice</db:refname>
      <db:refpurpose>A statement of legal obligations or requirements</db:refpurpose>
      <define name="db.legalnotice.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.legalnotice.attlist">
         <interleave>
            <optional>
               <ref name="db.legalnotice.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.legalnotice.info">
         <ref name="db._info.title.only"/>
      </define>

      <define name="db.legalnotice">
         <element name="legalnotice">
            <ref name="db.legalnotice.attlist"/>
            <ref name="db.legalnotice.info"/>
            <oneOrMore>
               <ref name="db.all.blocks"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>othercredit</db:refname>
      <db:refpurpose>A person or entity, other than an author or editor, credited in a document</db:refpurpose>
      <define name="db.othercredit.class.attribute">
         <optional>
            <attribute name="class">
               <choice>
                  <value>copyeditor</value>
                  <value>graphicdesigner</value>
                  <value>other</value>
                  <value>productioneditor</value>
                  <value>technicaleditor</value>
                  <value>translator</value>
               </choice>
            </attribute>
         </optional>
      </define>

      <define name="db.othercredit.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.othercredit.attlist">
         <interleave>
            <optional>
               <ref name="db.othercredit.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <ref name="db.othercredit.class.attribute"/>
         </interleave>
      </define>

      <define name="db.othercredit">
         <element name="othercredit">
            <ref name="db.othercredit.attlist"/>
            <ref name="db.credit.contentmodel"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>pagenums</db:refname>
      <db:refpurpose>The numbers of the pages in a book, for use in a bibliographic entry</db:refpurpose>
      <define name="db.pagenums.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.pagenums.attlist">
         <interleave>
            <optional>
               <ref name="db.pagenums.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.pagenums">
         <element name="pagenums">
            <ref name="db.pagenums.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>contrib</db:refname>
      <db:refpurpose>A summary of the contributions made to a document by a credited source</db:refpurpose>
      <define name="db.contrib.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.contrib.attlist">
         <interleave>
            <optional>
               <ref name="db.contrib.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.contrib">
         <element name="contrib">
            <ref name="db.contrib.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>honorific</db:refname>
      <db:refpurpose>The title of a person</db:refpurpose>
      <define name="db.honorific.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.honorific.attlist">
         <interleave>
            <optional>
               <ref name="db.honorific.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.honorific">
         <element name="honorific">
            <ref name="db.honorific.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>firstname</db:refname>
      <db:refpurpose>The first name of a person</db:refpurpose>
      <define name="db.firstname.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.firstname.attlist">
         <interleave>
            <optional>
               <ref name="db.firstname.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.firstname">
         <element name="firstname">
            <ref name="db.firstname.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>surname</db:refname>
      <db:refpurpose>A family name; in western cultures the last name</db:refpurpose>
      <define name="db.surname.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.surname.attlist">
         <interleave>
            <optional>
               <ref name="db.surname.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.surname">
         <element name="surname">
            <ref name="db.surname.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>lineage</db:refname>
      <db:refpurpose>The portion of a person's name indicating a relationship to ancestors</db:refpurpose>
      <define name="db.lineage.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.lineage.attlist">
         <interleave>
            <optional>
               <ref name="db.lineage.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.lineage">
         <element name="lineage">
            <ref name="db.lineage.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>othername</db:refname>
      <db:refpurpose>A component of a persons name that is not a first name, surname, or lineage</db:refpurpose>
      <define name="db.othername.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.othername.attlist">
         <interleave>
            <optional>
               <ref name="db.othername.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.othername">
         <element name="othername">
            <ref name="db.othername.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>printhistory</db:refname>
      <db:refpurpose>The printing history of a document</db:refpurpose>
      <define name="db.printhistory.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.printhistory.attlist">
         <interleave>
            <optional>
               <ref name="db.printhistory.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.printhistory">
         <element name="printhistory">
            <ref name="db.printhistory.attlist"/>
            <oneOrMore>
               <ref name="db.para.blocks"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>productname</db:refname>
      <db:refpurpose>The formal name of a product</db:refpurpose>
      <define name="db.productname.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.productname.class.enumeration">
         <choice>
            <value>copyright</value>
            <value>registered</value>
            <value>service</value>
            <value>trade</value>
         </choice>
      </define>

      <define name="db.productname.class.attribute">
         <attribute name="class">
            <ref name="db.productname.class.enumeration"/>
         </attribute>
      </define>

      <define name="db.productname.attlist">
         <interleave>
            <optional>
               <ref name="db.productname.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.productname.class.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.productname">
         <element name="productname">
            <ref name="db.productname.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>productnumber</db:refname>
      <db:refpurpose>A number assigned to a product</db:refpurpose>
      <define name="db.productnumber.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.productnumber.attlist">
         <interleave>
            <optional>
               <ref name="db.productnumber.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.productnumber">
         <element name="productnumber">
            <ref name="db.productnumber.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>pubdate</db:refname>
      <db:refpurpose>The date of publication of a document</db:refpurpose>
      <define name="db.pubdate.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.pubdate.attlist">
         <interleave>
            <optional>
               <ref name="db.pubdate.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.pubdate">
         <element name="pubdate">
            <ref name="db.pubdate.attlist"/>
            <ref name="db.date.contentmodel"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>publisher</db:refname>
      <db:refpurpose>The publisher of a document</db:refpurpose>
      <define name="db.publisher.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.publisher.attlist">
         <interleave>
            <optional>
               <ref name="db.publisher.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.publisher">
         <element name="publisher">
            <ref name="db.publisher.attlist"/>
            <ref name="db.publishername"/>
            <zeroOrMore>
               <ref name="db.address"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>publishername</db:refname>
      <db:refpurpose>The name of the publisher of a document</db:refpurpose>
      <define name="db.publishername.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.publishername.attlist">
         <interleave>
            <optional>
               <ref name="db.publishername.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.publishername">
         <element name="publishername">
            <ref name="db.publishername.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>releaseinfo</db:refname>
      <db:refpurpose>Information about a particular release of a document</db:refpurpose>
      <define name="db.releaseinfo.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.releaseinfo.attlist">
         <interleave>
            <optional>
               <ref name="db.releaseinfo.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.releaseinfo">
         <element name="releaseinfo">
            <ref name="db.releaseinfo.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>revhistory</db:refname>
      <db:refpurpose>A history of the revisions to a document</db:refpurpose>
      <define name="db.revhistory.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.revhistory.attlist">
         <interleave>
            <optional>
               <ref name="db.revhistory.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.revhistory.info">
         <ref name="db._info.title.only"/>
      </define>

      <define name="db.revhistory">
         <element name="revhistory">
            <ref name="db.revhistory.attlist"/>
            <ref name="db.revhistory.info"/>
            <oneOrMore>
               <ref name="db.revision"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>revision</db:refname>
      <db:refpurpose>An entry describing a single revision in the history of the revisions to a document</db:refpurpose>
      <define name="db.revision.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.revision.attlist">
         <interleave>
            <optional>
               <ref name="db.revision.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.revision">
         <element name="revision">
            <ref name="db.revision.attlist"/>
            <optional>
               <ref name="db.revnumber"/>
            </optional>
            <ref name="db.date"/>
            <zeroOrMore>
               <choice>
                  <ref name="db.authorinitials"/>
                  <ref name="db.author"/>
               </choice>
            </zeroOrMore>
            <optional>
               <choice>
                  <ref name="db.revremark"/>
                  <ref name="db.revdescription"/>
               </choice>
            </optional>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>revnumber</db:refname>
      <db:refpurpose>A document revision number</db:refpurpose>
      <define name="db.revnumber.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.revnumber.attlist">
         <interleave>
            <optional>
               <ref name="db.revnumber.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.revnumber">
         <element name="revnumber">
            <ref name="db.revnumber.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>revremark</db:refname>
      <db:refpurpose>A description of a revision to a document</db:refpurpose>
      <define name="db.revremark.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.revremark.attlist">
         <interleave>
            <optional>
               <ref name="db.revremark.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.revremark">
         <element name="revremark">
            <ref name="db.revremark.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>revdescription</db:refname>
      <db:refpurpose>A extended description of a revision to a document</db:refpurpose>
      <define name="db.revdescription.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.revdescription.attlist">
         <interleave>
            <optional>
               <ref name="db.revdescription.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.revdescription">
         <element name="revdescription">
            <ref name="db.revdescription.attlist"/>
            <zeroOrMore>
               <ref name="db.all.blocks"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>seriesvolnums</db:refname>
      <db:refpurpose>Numbers of the volumes in a series of books</db:refpurpose>
      <define name="db.seriesvolnums.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.seriesvolnums.attlist">
         <interleave>
            <optional>
               <ref name="db.seriesvolnums.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.seriesvolnums">
         <element name="seriesvolnums">
            <ref name="db.seriesvolnums.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>volumenum</db:refname>
      <db:refpurpose>The volume number of a document in a set (as of books in a set or articles in a journal)</db:refpurpose>
      <define name="db.volumenum.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.volumenum.attlist">
         <interleave>
            <optional>
               <ref name="db.volumenum.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.volumenum">
         <element name="volumenum">
            <ref name="db.volumenum.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>issuenum</db:refname>
      <db:refpurpose>The number of an issue of a journal</db:refpurpose>
      <define name="db.issuenum.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.issuenum.attlist">
         <interleave>
            <optional>
               <ref name="db.issuenum.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.issuenum">
         <element name="issuenum">
            <ref name="db.issuenum.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>accel</db:refname>
      <db:refpurpose>A graphical user interface (GUI) keyboard shortcut</db:refpurpose>
      <define name="db.accel.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.accel.attlist">
         <interleave>
            <optional>
               <ref name="db.accel.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.accel">
         <element name="accel">
            <ref name="db.accel.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>application</db:refname>
      <db:refpurpose>The name of a software program</db:refpurpose>
      <define name="db.application.class.enumeration">
         <choice>
            <value>hardware</value>
            <value>software</value>
         </choice>
      </define>

      <define name="db.application.class.attribute">
         <attribute name="class">
            <ref name="db.application.class.enumeration"/>
         </attribute>
      </define>

      <define name="db.application.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.application.attlist">
         <interleave>
            <optional>
               <ref name="db.application.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.application.class.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.application">
         <element name="application">
            <ref name="db.application.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>package</db:refname>
      <db:refpurpose>A software or application package</db:refpurpose>
      <define name="db.package.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.package.attlist">
         <interleave>
            <optional>
               <ref name="db.package.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.package">
         <element name="package">
            <ref name="db.package.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>classname</db:refname>
      <db:refpurpose>The name of a class, in the object-oriented programming sense</db:refpurpose>
      <define name="db.classname.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.classname.attlist">
         <interleave>
            <optional>
               <ref name="db.classname.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.classname">
         <element name="classname">
            <ref name="db.classname.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>command</db:refname>
      <db:refpurpose>The name of an executable program or other software command</db:refpurpose>
      <define name="db.command.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.command.attlist">
         <interleave>
            <optional>
               <ref name="db.command.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.command">
         <element name="command">
            <ref name="db.command.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.computeroutput.inlines">
      <choice>
         <choice>
            <text/>
            <ref name="db.ubiq.inlines"/>
            <ref name="db.os.inlines"/>
            <ref name="db.technical.inlines"/>
            <ref name="db.markup.inlines"/>
         </choice>
         <ref name="db.co"/>
         <ref name="db.co"/>
      </choice>
   </define>

   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>computeroutput</db:refname>
      <db:refpurpose>Data, generally text, displayed or presented by a computer</db:refpurpose>
      <define name="db.computeroutput.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.computeroutput.attlist">
         <interleave>
            <optional>
               <ref name="db.computeroutput.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.computeroutput">
         <element name="computeroutput">
            <ref name="db.computeroutput.attlist"/>
            <zeroOrMore>
               <ref name="db.computeroutput.inlines"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>database</db:refname>
      <db:refpurpose>The name of a database, or part of a database</db:refpurpose>
      <define name="db.database.class.attribute">
         <attribute name="class">
            <choice>
               <value>altkey</value>
               <value>constraint</value>
               <value>datatype</value>
               <value>field</value>
               <value>foreignkey</value>
               <value>group</value>
               <value>index</value>
               <value>key1</value>
               <value>key2</value>
               <value>name</value>
               <value>primarykey</value>
               <value>procedure</value>
               <value>record</value>
               <value>rule</value>
               <value>secondarykey</value>
               <value>table</value>
               <value>user</value>
               <value>view</value>
            </choice>
         </attribute>
      </define>

      <define name="db.database.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.database.attlist">
         <interleave>
            <optional>
               <ref name="db.database.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.database.class.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.database">
         <element name="database">
            <ref name="db.database.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>email</db:refname>
      <db:refpurpose>An email address</db:refpurpose>
      <define name="db.email.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.email.attlist">
         <interleave>
            <optional>
               <ref name="db.email.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.email">
         <element name="email">
            <ref name="db.email.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>envar</db:refname>
      <db:refpurpose>A software environment variable</db:refpurpose>
      <define name="db.envar.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.envar.attlist">
         <interleave>
            <optional>
               <ref name="db.envar.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.envar">
         <element name="envar">
            <ref name="db.envar.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>errorcode</db:refname>
      <db:refpurpose>An error code</db:refpurpose>
      <define name="db.errorcode.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.errorcode.attlist">
         <interleave>
            <optional>
               <ref name="db.errorcode.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.errorcode">
         <element name="errorcode">
            <ref name="db.errorcode.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>errorname</db:refname>
      <db:refpurpose>An error name</db:refpurpose>
      <define name="db.errorname.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.errorname.attlist">
         <interleave>
            <optional>
               <ref name="db.errorname.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.errorname">
         <element name="errorname">
            <ref name="db.errorname.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>errortext</db:refname>
      <db:refpurpose>An error message.</db:refpurpose>
      <define name="db.errortext.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.errortext.attlist">
         <interleave>
            <optional>
               <ref name="db.errortext.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.errortext">
         <element name="errortext">
            <ref name="db.errortext.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>errortype</db:refname>
      <db:refpurpose>The classification of an error message</db:refpurpose>
      <define name="db.errortype.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.errortype.attlist">
         <interleave>
            <optional>
               <ref name="db.errortype.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.errortype">
         <element name="errortype">
            <ref name="db.errortype.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>filename</db:refname>
      <db:refpurpose>The name of a file</db:refpurpose>
      <define name="db.filename.path.attribute">
         <attribute name="path"/>
      </define>

      <define name="db.filename.class.attribute">
         <attribute name="class">
            <choice>
               <value>devicefile</value>
               <value>directory</value>
               <value>extension</value>
               <value>headerfile</value>
               <value>libraryfile</value>
               <value>partition</value>
               <value>symlink</value>
            </choice>
         </attribute>
      </define>

      <define name="db.filename.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.filename.attlist">
         <interleave>
            <optional>
               <ref name="db.filename.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.filename.path.attribute"/>
            </optional>
            <optional>
               <ref name="db.filename.class.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.filename">
         <element name="filename">
            <ref name="db.filename.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>function</db:refname>
      <db:refpurpose>The name of a function or subroutine, as in a programming language</db:refpurpose>
      <define name="db.function.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.function.attlist">
         <interleave>
            <optional>
               <ref name="db.function.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.function">
         <element name="function">
            <ref name="db.function.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>guibutton</db:refname>
      <db:refpurpose>The text on a button in a GUI</db:refpurpose>
      <define name="db.guibutton.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.guibutton.attlist">
         <interleave>
            <optional>
               <ref name="db.guibutton.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.guibutton">
         <element name="guibutton">
            <ref name="db.guibutton.attlist"/>
            <zeroOrMore>
               <choice>
                  <ref name="db._text"/>
                  <ref name="db.accel"/>
                  <ref name="db.superscript"/>
                  <ref name="db.subscript"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>guiicon</db:refname>
      <db:refpurpose>Graphic and/or text appearing as a icon in a GUI</db:refpurpose>
      <define name="db.guiicon.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.guiicon.attlist">
         <interleave>
            <optional>
               <ref name="db.guiicon.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.guiicon">
         <element name="guiicon">
            <ref name="db.guiicon.attlist"/>
            <zeroOrMore>
               <choice>
                  <ref name="db._text"/>
                  <ref name="db.accel"/>
                  <ref name="db.superscript"/>
                  <ref name="db.subscript"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>guilabel</db:refname>
      <db:refpurpose>The text of a label in a GUI</db:refpurpose>
      <define name="db.guilabel.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.guilabel.attlist">
         <interleave>
            <optional>
               <ref name="db.guilabel.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.guilabel">
         <element name="guilabel">
            <ref name="db.guilabel.attlist"/>
            <zeroOrMore>
               <choice>
                  <ref name="db._text"/>
                  <ref name="db.accel"/>
                  <ref name="db.superscript"/>
                  <ref name="db.subscript"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>guimenu</db:refname>
      <db:refpurpose>The name of a menu in a GUI</db:refpurpose>
      <define name="db.guimenu.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.guimenu.attlist">
         <interleave>
            <optional>
               <ref name="db.guimenu.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.guimenu">
         <element name="guimenu">
            <ref name="db.guimenu.attlist"/>
            <zeroOrMore>
               <choice>
                  <ref name="db._text"/>
                  <ref name="db.accel"/>
                  <ref name="db.superscript"/>
                  <ref name="db.subscript"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>guimenuitem</db:refname>
      <db:refpurpose>The name of a terminal menu item in a GUI</db:refpurpose>
      <define name="db.guimenuitem.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.guimenuitem.attlist">
         <interleave>
            <optional>
               <ref name="db.guimenuitem.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.guimenuitem">
         <element name="guimenuitem">
            <ref name="db.guimenuitem.attlist"/>
            <zeroOrMore>
               <choice>
                  <ref name="db._text"/>
                  <ref name="db.accel"/>
                  <ref name="db.superscript"/>
                  <ref name="db.subscript"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>guisubmenu</db:refname>
      <db:refpurpose>The name of a submenu in a GUI</db:refpurpose>
      <define name="db.guisubmenu.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.guisubmenu.attlist">
         <interleave>
            <optional>
               <ref name="db.guisubmenu.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.guisubmenu">
         <element name="guisubmenu">
            <ref name="db.guisubmenu.attlist"/>
            <zeroOrMore>
               <choice>
                  <ref name="db._text"/>
                  <ref name="db.accel"/>
                  <ref name="db.superscript"/>
                  <ref name="db.subscript"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>hardware</db:refname>
      <db:refpurpose>A physical part of a computer system</db:refpurpose>
      <define name="db.hardware.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.hardware.attlist">
         <interleave>
            <optional>
               <ref name="db.hardware.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.hardware">
         <element name="hardware">
            <ref name="db.hardware.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>keycap</db:refname>
      <db:refpurpose>The text printed on a key on a keyboard</db:refpurpose>
      <ctrl:other-attribute name="db.keycap.function.attrib" enum-name="db.keycap.function-enum.attribute" other-name="db.keycap.function-other.attributes" xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/"/>

      <define name="db.keycap.function-enum.attribute">
         <optional>
            <attribute name="function">
               <choice>
                  <value>alt</value>
                  <value>backspace</value>
                  <value>command</value>
                  <value>control</value>
                  <value>delete</value>
                  <value>down</value>
                  <value>end</value>
                  <value>enter</value>
                  <value>escape</value>
                  <value>home</value>
                  <value>insert</value>
                  <value>left</value>
                  <value>meta</value>
                  <value>option</value>
                  <value>pagedown</value>
                  <value>pageup</value>
                  <value>right</value>
                  <value>shift</value>
                  <value>space</value>
                  <value>tab</value>
                  <value>up</value>
               </choice>
            </attribute>
         </optional>
      </define>

      <define name="db.keycap.function-other.attributes">
         <optional>
            <attribute name="function">
               <value>other</value>
            </attribute>
         </optional>
         <attribute name="otherfunction"/>
      </define>

      <define name="db.keycap.function.attrib">
         <choice>
            <ref name="db.keycap.function-enum.attribute"/>
            <ref name="db.keycap.function-other.attributes"/>
         </choice>
      </define>

      <define name="db.keycap.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.keycap.attlist">
         <interleave>
            <optional>
               <ref name="db.keycap.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <ref name="db.keycap.function.attrib"/>
         </interleave>
      </define>

      <define name="db.keycap">
         <element name="keycap">
            <ref name="db.keycap.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>keycode</db:refname>
      <db:refpurpose>The internal, frequently numeric, identifier for a key on a keyboard</db:refpurpose>
      <define name="db.keycode.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.keycode.attlist">
         <interleave>
            <optional>
               <ref name="db.keycode.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.keycode">
         <element name="keycode">
            <ref name="db.keycode.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>keycombo</db:refname>
      <db:refpurpose>A combination of input actions</db:refpurpose>
      <ctrl:other-attribute name="db.keycombo.action.attrib" enum-name="db.keycombo.action-enum.attribute" other-name="db.keycombo.action-other.attributes" xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/"/>

      <define name="db.keycombo.action.enumeration">
         <choice>
            <value>click</value>
            <value>double-click</value>
            <value>press</value>
            <value>seq</value>
            <value>simul</value>
         </choice>
      </define>

      <define name="db.keycombo.action-enum.attribute">
         <optional>
            <attribute name="action">
               <ref name="db.keycombo.action.enumeration"/>
            </attribute>
         </optional>
      </define>

      <define name="db.keycombo.action-other.attributes">
         <optional>
            <attribute name="action">
               <value>other</value>
            </attribute>
         </optional>
         <attribute name="otheraction"/>
      </define>

      <define name="db.keycombo.action.attrib">
         <choice>
            <ref name="db.keycombo.action-enum.attribute"/>
            <ref name="db.keycombo.action-other.attributes"/>
         </choice>
      </define>

      <define name="db.keycombo.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.keycombo.attlist">
         <interleave>
            <optional>
               <ref name="db.keycombo.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <ref name="db.keycombo.action.attrib"/>
         </interleave>
      </define>

      <define name="db.keycombo">
         <element name="keycombo">
            <ref name="db.keycombo.attlist"/>
            <oneOrMore>
               <choice>
                  <ref name="db.keycap"/>
                  <ref name="db.keycombo"/>
                  <ref name="db.keysym"/>
                  <ref name="db.mousebutton"/>
               </choice>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>keysym</db:refname>
      <db:refpurpose>The symbolic name of a key on a keyboard</db:refpurpose>
      <define name="db.keysym.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.keysym.attlist">
         <interleave>
            <optional>
               <ref name="db.keysym.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.keysym">
         <element name="keysym">
            <ref name="db.keysym.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>lineannotation</db:refname>
      <db:refpurpose>A comment on a line in a verbatim listing</db:refpurpose>
      <define name="db.lineannotation.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.lineannotation.attlist">
         <interleave>
            <optional>
               <ref name="db.lineannotation.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.lineannotation">
         <element name="lineannotation">
            <ref name="db.lineannotation.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>literal</db:refname>
      <db:refpurpose>Inline text that is some literal value</db:refpurpose>
      <define name="db.literal.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.literal.attlist">
         <interleave>
            <optional>
               <ref name="db.literal.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.literal">
         <element name="literal">
            <ref name="db.literal.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>code</db:refname>
      <db:refpurpose>An inline code fragment</db:refpurpose>
      <define name="code.language.attribute">
         <attribute name="language"/>
      </define>

      <define name="db.code.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.code.attlist">
         <interleave>
            <optional>
               <ref name="db.code.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="code.language.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.code">
         <element name="code">
            <ref name="db.code.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>constant</db:refname>
      <db:refpurpose>A programming or system constant</db:refpurpose>
      <define name="constant.class.attribute">
         <attribute name="class">
            <value>limit</value>
         </attribute>
      </define>

      <define name="db.constant.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.constant.attlist">
         <interleave>
            <optional>
               <ref name="db.constant.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="constant.class.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.constant">
         <element name="constant">
            <ref name="db.constant.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>varname</db:refname>
      <db:refpurpose>The name of a variable</db:refpurpose>
      <define name="db.varname.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.varname.attlist">
         <interleave>
            <optional>
               <ref name="db.varname.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.varname">
         <element name="varname">
            <ref name="db.varname.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>markup</db:refname>
      <db:refpurpose>A string of formatting markup in text that is to be represented literally</db:refpurpose>
      <define name="db.markup.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.markup.attlist">
         <interleave>
            <optional>
               <ref name="db.markup.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.markup">
         <element name="markup">
            <ref name="db.markup.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>menuchoice</db:refname>
      <db:refpurpose>A selection or series of selections from a menu</db:refpurpose>
      <define name="db.menuchoice.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.menuchoice.attlist">
         <interleave>
            <optional>
               <ref name="db.menuchoice.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.menuchoice">
         <element name="menuchoice">
            <ref name="db.menuchoice.attlist"/>
            <optional>
               <ref name="db.shortcut"/>
            </optional>
            <oneOrMore>
               <choice>
                  <ref name="db.guibutton"/>
                  <ref name="db.guiicon"/>
                  <ref name="db.guilabel"/>
                  <ref name="db.guimenu"/>
                  <ref name="db.guimenuitem"/>
                  <ref name="db.guisubmenu"/>
               </choice>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>shortcut</db:refname>
      <db:refpurpose>A key combination for an action that is also accessible through a menu</db:refpurpose>
      <define name="db.shortcut.action.attrib">
         <ref name="db.keycombo.action.attrib"/>
      </define>

      <define name="db.shortcut.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.shortcut.attlist">
         <interleave>
            <optional>
               <ref name="db.shortcut.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <ref name="db.shortcut.action.attrib"/>
         </interleave>
      </define>

      <define name="db.shortcut">
         <element name="shortcut">
            <ref name="db.shortcut.attlist"/>
            <oneOrMore>
               <choice>
                  <ref name="db.keycap"/>
                  <ref name="db.keycombo"/>
                  <ref name="db.keysym"/>
                  <ref name="db.mousebutton"/>
               </choice>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>mousebutton</db:refname>
      <db:refpurpose>The conventional name of a mouse button</db:refpurpose>
      <define name="db.mousebutton.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.mousebutton.attlist">
         <interleave>
            <optional>
               <ref name="db.mousebutton.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.mousebutton">
         <element name="mousebutton">
            <ref name="db.mousebutton.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>option</db:refname>
      <db:refpurpose>An option for a software command</db:refpurpose>
      <define name="db.option.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.option.attlist">
         <interleave>
            <optional>
               <ref name="db.option.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.option">
         <element name="option">
            <ref name="db.option.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>optional</db:refname>
      <db:refpurpose>Optional information</db:refpurpose>
      <define name="db.optional.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.optional.attlist">
         <interleave>
            <optional>
               <ref name="db.optional.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.optional">
         <element name="optional">
            <ref name="db.optional.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>property</db:refname>
      <db:refpurpose>A unit of data associated with some part of a computer system</db:refpurpose>
      <define name="db.property.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.property.attlist">
         <interleave>
            <optional>
               <ref name="db.property.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.property">
         <element name="property">
            <ref name="db.property.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>parameter</db:refname>
      <db:refpurpose>A value or a symbolic reference to a value</db:refpurpose>
      <define name="db.parameter.class.enumeration">
         <choice>
            <value>command</value>
            <value>function</value>
            <value>option</value>
         </choice>
      </define>

      <define name="db.parameter.class.attribute">
         <attribute name="class">
            <ref name="db.parameter.class.enumeration"/>
         </attribute>
      </define>

      <define name="db.parameter.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.parameter.attlist">
         <interleave>
            <optional>
               <ref name="db.parameter.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.parameter.class.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.parameter">
         <element name="parameter">
            <ref name="db.parameter.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.prompt.inlines">
      <choice>
         <ref name="db._text"/>
         <ref name="db.co"/>
      </choice>
   </define>

   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>prompt</db:refname>
      <db:refpurpose>A character or string indicating the start of an input field in a  computer display</db:refpurpose>
      <define name="db.prompt.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.prompt.attlist">
         <interleave>
            <optional>
               <ref name="db.prompt.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.prompt">
         <element name="prompt">
            <ref name="db.prompt.attlist"/>
            <zeroOrMore>
               <ref name="db.prompt.inlines"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.replaceable.inlines">
      <choice>
         <ref name="db._text"/>
         <ref name="db.co"/>
      </choice>
   </define>

   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>replaceable</db:refname>
      <db:refpurpose>Content that may or must be replaced by the user</db:refpurpose>
      <define name="db.replaceable.class.enumeration">
         <choice>
            <value>command</value>
            <value>function</value>
            <value>option</value>
            <value>parameter</value>
         </choice>
      </define>

      <define name="db.replaceable.class.attribute">
         <attribute name="class">
            <ref name="db.replaceable.class.enumeration"/>
         </attribute>
      </define>

      <define name="db.replaceable.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.replaceable.attlist">
         <interleave>
            <optional>
               <ref name="db.replaceable.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.replaceable.class.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.replaceable">
         <element name="replaceable">
            <ref name="db.replaceable.attlist"/>
            <zeroOrMore>
               <ref name="db.replaceable.inlines"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>returnvalue</db:refname>
      <db:refpurpose>The value returned by a function</db:refpurpose>
      <define name="db.returnvalue.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.returnvalue.attlist">
         <interleave>
            <optional>
               <ref name="db.returnvalue.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.returnvalue">
         <element name="returnvalue">
            <ref name="db.returnvalue.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>tag</db:refname>
      <db:refpurpose>A component of XML (or SGML) markup</db:refpurpose>
      <define name="db.tag.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.tag.class.enumeration">
         <choice>
            <value>attribute</value>
            <value>attvalue</value>
            <value>element</value>
            <value>emptytag</value>
            <value>endtag</value>
            <value>genentity</value>
            <value>numcharref</value>
            <value>paramentity</value>
            <value>pi</value>
            <value>sgmlcomment</value>
            <value>starttag</value>
            <value>xmlpi</value>
         </choice>
      </define>

      <define name="db.tag.class.attribute">
         <attribute name="class">
            <ref name="db.tag.class.enumeration"/>
         </attribute>
      </define>

      <define name="db.tag.namespace.attribute">
         <attribute name="namespace">
            <data type="anyURI"/>
         </attribute>
      </define>

      <define name="db.tag.attlist">
         <interleave>
            <optional>
               <ref name="db.tag.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.tag.class.attribute"/>
            </optional>
            <optional>
               <ref name="db.tag.namespace.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.tag">
         <element name="tag">
            <ref name="db.tag.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>symbol</db:refname>
      <db:refpurpose>A name that is replaced by a value before processing</db:refpurpose>
      <define name="db.symbol.class.attribute">
         <optional>
            <attribute name="class">
               <value>limit</value>
            </attribute>
         </optional>
      </define>

      <define name="db.symbol.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.symbol.attlist">
         <interleave>
            <optional>
               <ref name="db.symbol.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <ref name="db.symbol.class.attribute"/>
         </interleave>
      </define>

      <define name="db.symbol">
         <element name="symbol">
            <ref name="db.symbol.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.systemitem.inlines">
      <choice>
         <ref name="db._text"/>
         <ref name="db.co"/>
      </choice>
   </define>

   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>systemitem</db:refname>
      <db:refpurpose>A system-related item or term</db:refpurpose>
      <define name="db.systemitem.class.attribute">
         <attribute name="class">
            <choice>
               <value>daemon</value>
               <value>domainname</value>
               <value>etheraddress</value>
               <value>event</value>
               <value>eventhandler</value>
               <value>filesystem</value>
               <value>fqdomainname</value>
               <value>groupname</value>
               <value>ipaddress</value>
               <value>library</value>
               <value>macro</value>
               <value>netmask</value>
               <value>newsgroup</value>
               <value>osname</value>
               <value>process</value>
               <value>protocol</value>
               <value>resource</value>
               <value>server</value>
               <value>service</value>
               <value>systemname</value>
               <value>username</value>
            </choice>
         </attribute>
      </define>

      <define name="db.systemitem.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.systemitem.attlist">
         <interleave>
            <optional>
               <ref name="db.systemitem.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.systemitem.class.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.systemitem">
         <element name="systemitem">
            <ref name="db.systemitem.attlist"/>
            <zeroOrMore>
               <ref name="db.systemitem.inlines"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>uri</db:refname>
      <db:refpurpose>A Uniform Resource Identifier</db:refpurpose>
      <define name="db.uri.type.attribute">
         <optional>
            <attribute name="type"/>
         </optional>
      </define>

      <define name="db.uri.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.uri.attlist">
         <interleave>
            <optional>
               <ref name="db.uri.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <ref name="db.uri.type.attribute"/>
         </interleave>
      </define>

      <define name="db.uri">
         <element name="uri">
            <ref name="db.uri.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>token</db:refname>
      <db:refpurpose>A unit of information</db:refpurpose>
      <define name="db.token.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.token.attlist">
         <interleave>
            <optional>
               <ref name="db.token.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.token">
         <element name="token">
            <ref name="db.token.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>type</db:refname>
      <db:refpurpose>The classification of a value</db:refpurpose>
      <define name="db.type.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.type.attlist">
         <interleave>
            <optional>
               <ref name="db.type.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.type">
         <element name="type">
            <ref name="db.type.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <define xmlns:html="http://www.w3.org/1999/xhtml" name="db.userinput.inlines">
      <choice>
         <choice>
            <text/>
            <ref name="db.ubiq.inlines"/>
            <ref name="db.os.inlines"/>
            <ref name="db.technical.inlines"/>
            <ref name="db.markup.inlines"/>
         </choice>
         <ref name="db.co"/>
      </choice>
   </define>

   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>userinput</db:refname>
      <db:refpurpose>Data entered by the user</db:refpurpose>
      <define name="db.userinput.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.userinput.attlist">
         <interleave>
            <optional>
               <ref name="db.userinput.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.userinput">
         <element name="userinput">
            <ref name="db.userinput.attlist"/>
            <zeroOrMore>
               <ref name="db.userinput.inlines"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>abbrev</db:refname>
      <db:refpurpose>An abbreviation, especially one followed by a period</db:refpurpose>
      <define name="db.abbrev.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.abbrev.attlist">
         <interleave>
            <optional>
               <ref name="db.abbrev.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.abbrev">
         <element name="abbrev">
            <ref name="db.abbrev.attlist"/>
            <zeroOrMore>
               <choice>
                  <ref name="db._text"/>
                  <ref name="db.superscript"/>
                  <ref name="db.subscript"/>
                  <ref name="db.trademark"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>acronym</db:refname>
      <db:refpurpose>An often pronounceable word made from the initial (or selected) letters of a name or phrase</db:refpurpose>
      <define name="db.acronym.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.acronym.attlist">
         <interleave>
            <optional>
               <ref name="db.acronym.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.acronym">
         <element name="acronym">
            <ref name="db.acronym.attlist"/>
            <zeroOrMore>
               <choice>
                  <ref name="db._text"/>
                  <ref name="db.superscript"/>
                  <ref name="db.subscript"/>
                  <ref name="db.trademark"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>citation</db:refname>
      <db:refpurpose>An inline bibliographic reference to another published work</db:refpurpose>
      <define name="db.citation.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.citation.attlist">
         <interleave>
            <optional>
               <ref name="db.citation.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.citation">
         <element name="citation">
            <ref name="db.citation.attlist"/>
            <zeroOrMore>
               <ref name="db.all.inlines"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>citerefentry</db:refname>
      <db:refpurpose>A citation to a reference page</db:refpurpose>
      <define name="db.citerefentry.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.citerefentry.attlist">
         <interleave>
            <optional>
               <ref name="db.citerefentry.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.citerefentry">
         <element name="citerefentry">
            <ref name="db.citerefentry.attlist"/>
            <ref name="db.refentrytitle"/>
            <optional>
               <ref name="db.manvolnum"/>
            </optional>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>refentrytitle</db:refname>
      <db:refpurpose>The title of a reference page</db:refpurpose>
      <define name="db.refentrytitle.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.refentrytitle.attlist">
         <interleave>
            <optional>
               <ref name="db.refentrytitle.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.refentrytitle">
         <element name="refentrytitle">
            <ref name="db.refentrytitle.attlist"/>
            <zeroOrMore>
               <ref name="db.all.inlines"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>manvolnum</db:refname>
      <db:refpurpose>A reference volume number</db:refpurpose>
      <define name="db.manvolnum.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.manvolnum.attlist">
         <interleave>
            <optional>
               <ref name="db.manvolnum.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.manvolnum">
         <element name="manvolnum">
            <ref name="db.manvolnum.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>citetitle</db:refname>
      <db:refpurpose>The title of a cited work</db:refpurpose>
      <define name="db.citetitle.pubwork.attribute">
         <attribute name="pubwork">
            <choice>
               <value>article</value>
               <value>bbs</value>
               <value>book</value>
               <value>cdrom</value>
               <value>chapter</value>
               <value>dvd</value>
               <value>emailmessage</value>
               <value>gopher</value>
               <value>journal</value>
               <value>manuscript</value>
               <value>newsposting</value>
               <value>part</value>
               <value>refentry</value>
               <value>section</value>
               <value>series</value>
               <value>set</value>
               <value>webpage</value>
               <value>wiki</value>
            </choice>
         </attribute>
      </define>

      <define name="db.citetitle.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.citetitle.attlist">
         <interleave>
            <optional>
               <ref name="db.citetitle.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.citetitle.pubwork.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.citetitle">
         <element name="citetitle">
            <ref name="db.citetitle.attlist"/>
            <zeroOrMore>
               <ref name="db.all.inlines"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>emphasis</db:refname>
      <db:refpurpose>Emphasized text</db:refpurpose>
      <define name="db.emphasis.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.emphasis.attlist">
         <interleave>
            <optional>
               <ref name="db.emphasis.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.emphasis">
         <element name="emphasis">
            <ref name="db.emphasis.attlist"/>
            <zeroOrMore>
               <ref name="db.all.inlines"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>foreignphrase</db:refname>
      <db:refpurpose>A word or phrase in a language other than the primary language of the document</db:refpurpose>
      <define name="db.foreignphrase.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.foreignphrase.attlist">
         <interleave>
            <optional>
               <ref name="db.foreignphrase.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.foreignphrase">
         <element name="foreignphrase">
            <ref name="db.foreignphrase.attlist"/>
            <zeroOrMore>
               <choice>
                  <text/>
                  <ref name="db.general.inlines"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>phrase</db:refname>
      <db:refpurpose>A span of text</db:refpurpose>
      <define name="db.phrase.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.phrase.attlist">
         <interleave>
            <optional>
               <ref name="db.phrase.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.phrase">
         <element name="phrase">
            <ref name="db.phrase.attlist"/>
            <zeroOrMore>
               <ref name="db.all.inlines"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>quote</db:refname>
      <db:refpurpose>An inline quotation</db:refpurpose>
      <define name="db.quote.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.quote.attlist">
         <interleave>
            <optional>
               <ref name="db.quote.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.quote">
         <element name="quote">
            <ref name="db.quote.attlist"/>
            <zeroOrMore>
               <ref name="db.all.inlines"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>subscript</db:refname>
      <db:refpurpose>A subscript (as in H2O, the molecular formula for water)</db:refpurpose>
      <define name="db.subscript.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.subscript.attlist">
         <interleave>
            <optional>
               <ref name="db.subscript.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.subscript">
         <element name="subscript">
            <ref name="db.subscript.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>superscript</db:refname>
      <db:refpurpose>A superscript (as in x^2, the mathematical notation for x multiplied by itself)</db:refpurpose>
      <define name="db.superscript.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.superscript.attlist">
         <interleave>
            <optional>
               <ref name="db.superscript.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.superscript">
         <element name="superscript">
            <ref name="db.superscript.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>trademark</db:refname>
      <db:refpurpose>A trademark</db:refpurpose>
      <define name="db.trademark.class.enumeration">
         <choice>
            <value>copyright</value>
            <value>registered</value>
            <value>service</value>
            <value>trade</value>
         </choice>
      </define>

      <define name="db.trademark.class.attribute">
         <attribute name="class">
            <ref name="db.trademark.class.enumeration"/>
         </attribute>
      </define>

      <define name="db.trademark.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.trademark.attlist">
         <interleave>
            <optional>
               <ref name="db.trademark.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.trademark.class.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.trademark">
         <element name="trademark">
            <ref name="db.trademark.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>wordasword</db:refname>
      <db:refpurpose>A word meant specifically as a word and not representing anything else</db:refpurpose>
      <define name="db.wordasword.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.wordasword.attlist">
         <interleave>
            <optional>
               <ref name="db.wordasword.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.wordasword">
         <element name="wordasword">
            <ref name="db.wordasword.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>footnoteref</db:refname>
      <db:refpurpose>A cross reference to a footnote (a footnote mark)</db:refpurpose>
      <define name="db.footnoteref.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.footnoteref.label.attribute">
         <attribute name="label"/>
      </define>

      <define name="db.footnoteref.attlist">
         <interleave>
            <optional>
               <ref name="db.footnoteref.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.linkend.attribute"/>
            <optional>
               <ref name="db.footnoteref.label.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.footnoteref">
         <element name="footnoteref">
            <s:rule context="db:footnoteref" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="local-name(//*[@id=current()/@linkend]) = 'footnote' and namespace-uri(//*[@id=current()/@linkend]) = 'http://docbook.org/ns/docbook'">@linkend on footnoteref must point to a footnote.</s:assert>
            </s:rule>
            <ref name="db.footnoteref.attlist"/>
            <empty/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>xref</db:refname>
      <db:refpurpose>A cross reference to another part of the document</db:refpurpose>
      <define name="db.xref.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.xref.xrefstyle.attribute">
         <attribute name="xrefstyle"/>
      </define>

      <define name="db.xref.endterm.attribute">
         <attribute name="endterm">
            <data type="IDREF"/>
         </attribute>
      </define>

      <define name="db.xref.attlist">
         <interleave>
            <optional>
               <ref name="db.xref.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.req.linking.attributes"/>
            <optional>
               <ref name="db.xref.xrefstyle.attribute"/>
            </optional>
            <optional>
               <ref name="db.xref.endterm.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.xref">
         <element name="xref">
            <ref name="db.xref.attlist"/>
            <empty/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>link</db:refname>
      <db:refpurpose>A hypertext link</db:refpurpose>
      <dbx:description>
         <db:para>The <db:tag>link</db:tag>
 element is a general purpose hypertext element. Usually, <db:tag>link</db:tag>
 surrounds the text that should be made “hot” (unlike <db:tag>xref</db:tag>
 which must generate the text) but the <db:tag class="attribute">endterm</db:tag>
 attribute can be used to copy text from another element.</db:para>
      </dbx:description>
      <dbx:expectations>
         <db:para>
            <dbx:format class="inline"/>
         </db:para>
         <db:para>If the <db:tag>link</db:tag>
 element has content, then that content is processed for output as the “hot” text. If the <db:tag>link</db:tag>
 element has content and an <db:tag class="attribute">endterm</db:tag>
 attribute, then the content is used and the <db:tag class="attribute">endterm</db:tag>
 is ignored. If the <db:tag>link</db:tag>
 element has an <db:tag class="attribute">endterm</db:tag>
 attribute and no content, then the content of the element pointed to by <db:tag class="attribute">endterm</db:tag>
should be repeated at the location of the <db:tag>link</db:tag>
 and used as the “hot” text.</db:para>
      </dbx:expectations>
      <define name="db.link.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.link.xrefstyle.attribute">
         <attribute name="xrefstyle"/>
      </define>

      <define name="db.link.endterm.attribute">
         <attribute name="endterm">
            <data type="IDREF"/>
         </attribute>
      </define>

      <define name="db.link.attlist">
         <interleave>
            <optional>
               <ref name="db.link.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.req.linking.attributes"/>
            <optional>
               <ref name="db.link.xrefstyle.attribute"/>
            </optional>
            <optional>
               <ref name="db.link.endterm.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.link">
         <element name="link">
            <ref name="db.link.attlist"/>
            <zeroOrMore>
               <ref name="db.all.inlines"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>olink</db:refname>
      <db:refpurpose>A link that addresses its target indirectly</db:refpurpose>
      <dbx:description>
         <db:para>The <db:tag>olink</db:tag>
 element provides a mechanism for establishing links across documents where ID/IDREF linking is not possible and <db:tag>link</db:tag>
 is inadequate.</db:para>
      </dbx:description>
      <dbx:expectations>
         <db:para>
            <dbx:format class="inline"/>
         </db:para>
      </dbx:expectations>
      <define name="db.olink.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.olink.xrefstyle.attribute">
         <attribute name="xrefstyle">
            <data type="IDREF"/>
         </attribute>
      </define>

      <define name="db.olink.localinfo.attribute">
         <attribute name="localinfo"/>
      </define>

      <define name="db.olink.targetdoc.attribute">
         <attribute name="targetdoc">
            <data type="anyURI"/>
         </attribute>
      </define>

      <define name="db.olink.targetptr.attribute">
         <attribute name="targetptr"/>
      </define>

      <define name="db.olink.type.attribute">
         <attribute name="type"/>
      </define>

      <define name="db.olink.attlist">
         <interleave>
            <ref name="db.common.attributes"/>
            <ref name="db.olink.targetdoc.attribute"/>
            <optional>
               <ref name="db.olink.role.attribute"/>
            </optional>
            <optional>
               <ref name="db.olink.xrefstyle.attribute"/>
            </optional>
            <optional>
               <ref name="db.olink.localinfo.attribute"/>
            </optional>
            <optional>
               <ref name="db.olink.targetptr.attribute"/>
            </optional>
            <optional>
               <ref name="db.olink.type.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.olink">
         <element name="olink">
            <ref name="db.olink.attlist"/>
            <zeroOrMore>
               <ref name="db.all.inlines"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>anchor</db:refname>
      <db:refpurpose>A spot in the document</db:refpurpose>
      <define name="db.anchor.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.anchor.attlist">
         <interleave>
            <optional>
               <ref name="db.anchor.role.attribute"/>
            </optional>
            <ref name="db.common.idreq.attributes"/>
         </interleave>
      </define>

      <define name="db.anchor">
         <element name="anchor">
            <ref name="db.anchor.attlist"/>
            <empty/>
         </element>
      </define>

   </div>
   <div xmlns:html="http://www.w3.org/1999/xhtml">
      <db:refname>alt</db:refname>
      <db:refpurpose>A text-only annotation, often used for accessibility</db:refpurpose>
      <define name="db.alt.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.alt.attlist">
         <interleave>
            <optional>
               <ref name="db.alt.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
         </interleave>
      </define>

      <define name="db.alt">
         <element name="alt">
            <ref name="db.alt.attlist"/>
            <zeroOrMore>
               <choice>
                  <text/>
                  <ref name="db.inlinemediaobject"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <define name="db.annotations.attribute">
      <attribute name="annotations"/>
   </define>

   <div>
      <db:refname>annotation</db:refname>
      <db:refpurpose>An annotation</db:refpurpose>
      <ctrl:exclude from="db.annotation" exclude="db.annotation" xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/"/>

      <define name="db.annotation.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.annotation.annotates.attribute">
         <attribute name="annotates"/>
      </define>

      <define name="db.annotation.attlist">
         <interleave>
            <optional>
               <ref name="db.annotation.role.attribute"/>
            </optional>
            <optional>
               <ref name="db.annotation.annotates.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
         </interleave>
      </define>

      <define name="db.annotation.info">
         <ref name="db._info.title.only"/>
      </define>

      <define name="db.annotation">
         <element name="annotation">
            <s:rule context="db:annotation" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:annotation)">annotation must not occur in the descendants of annotation</s:assert>
            </s:rule>
            <ref name="db.annotation.attlist"/>
            <ref name="db.annotation.info"/>
            <oneOrMore>
               <ref name="db.all.blocks"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>extendedlink</db:refname>
      <db:refpurpose>An XLink extended link</db:refpurpose>
      <define name="db.extendedlink.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.extendedlink.attlist">
         <interleave>
            <optional>
               <ref name="db.extendedlink.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <optional>
               <attribute name="xlink:type" dtd:defaultValue="extended">
                  <value>extended</value>
               </attribute>
            </optional>
            <optional>
               <attribute name="xlink:role">
                  <data type="anyURI"/>
               </attribute>
            </optional>
            <optional>
               <attribute name="xlink:title"/>
            </optional>
         </interleave>
      </define>

      <define name="db.extendedlink">
         <element name="extendedlink">
            <ref name="db.extendedlink.attlist"/>
            <oneOrMore>
               <choice>
                  <ref name="db.locator"/>
                  <ref name="db.arc"/>
               </choice>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>locator</db:refname>
      <db:refpurpose>An XLink locator in an <db:tag>extendedlink</db:tag>
      </db:refpurpose>
      <define name="db.locator.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.locator.attlist">
         <interleave>
            <optional>
               <ref name="db.locator.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <optional>
               <attribute name="xlink:type" dtd:defaultValue="locator">
                  <value>locator</value>
               </attribute>
            </optional>
            <attribute name="xlink:href"/>
            <optional>
               <attribute name="xlink:role">
                  <data type="anyURI"/>
               </attribute>
            </optional>
            <optional>
               <attribute name="xlink:title"/>
            </optional>
            <optional>
               <attribute name="xlink:label">
                  <data type="NMTOKEN"/>
               </attribute>
            </optional>
         </interleave>
      </define>

      <define name="db.locator">
         <element name="locator">
            <ref name="db.locator.attlist"/>
            <empty/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>arc</db:refname>
      <db:refpurpose>An XLink arc in an <db:tag>extendedlink</db:tag>
      </db:refpurpose>
      <define name="db.arc.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.arc.attlist">
         <interleave>
            <optional>
               <ref name="db.arc.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <optional>
               <attribute name="xlink:type" dtd:defaultValue="arc">
                  <value>arc</value>
               </attribute>
            </optional>
            <optional>
               <attribute name="xlink:arcrole">
                  <data type="anyURI"/>
               </attribute>
            </optional>
            <optional>
               <attribute name="xlink:title"/>
            </optional>
            <optional>
               <attribute name="xlink:show">
                  <choice>
                     <value>new</value>
                     <value>replace</value>
                     <value>embed</value>
                     <value>other</value>
                  </choice>
               </attribute>
            </optional>
            <optional>
               <attribute name="xlink:actuate">
                  <choice>
                     <value>onLoad</value>
                     <value>onRequest</value>
                     <value>other</value>
                     <value>none</value>
                  </choice>
               </attribute>
            </optional>
            <optional>
               <attribute name="xlink:from">
                  <data type="NMTOKEN"/>
               </attribute>
            </optional>
            <optional>
               <attribute name="xlink:to">
                  <data type="NMTOKEN"/>
               </attribute>
            </optional>
         </interleave>
      </define>

      <define name="db.arc">
         <element name="arc">
            <ref name="db.arc.attlist"/>
            <empty/>
         </element>
      </define>

   </div>
   <define name="db.status.attribute">
      <db:refpurpose>Identifies the editorial or publication status of the element on which it occurs</db:refpurpose>
      <dbx:description>
         <db:para>Publication status might be used to control formatting (for example, printing a “draft” watermark on drafts) or processing (perhaps a document with a status of “final” should not include any components that are not final).</db:para>
      </dbx:description>
      <attribute name="status"/>
   </define>

   <define name="db.label.attribute">
      <db:refpurpose>Specifies an identifying string for presentation purposes</db:refpurpose>
      <dbx:description>
         <db:para>Generally, an explicit Label attribute is used only if the processing system is incapable of generating the label automatically. Under such circumstances, the third <db:tag>book</db:tag>
 in a <db:tag>set</db:tag>
 might be labeled “Volume III”, for example.</db:para>
         <db:para>If present, the <db:tag class="attribute">label</db:tag>
 is normative; it will used even if the processing system is capable of automatic labelling.</db:para>
      </dbx:description>
      <attribute name="label"/>
   </define>

   <define name="db.toplevel.optional.sections">
      <choice>
         <choice>
            <zeroOrMore>
               <ref name="db.section"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="db.simplesect"/>
            </zeroOrMore>
         </choice>
         <zeroOrMore>
            <ref name="db.sect1"/>
         </zeroOrMore>
         <zeroOrMore>
            <ref name="db.refentry"/>
         </zeroOrMore>
      </choice>
   </define>

   <define name="db.toplevel.required.sections">
      <choice>
         <choice>
            <oneOrMore>
               <ref name="db.section"/>
            </oneOrMore>
            <oneOrMore>
               <ref name="db.simplesect"/>
            </oneOrMore>
         </choice>
         <oneOrMore>
            <ref name="db.sect1"/>
         </oneOrMore>
         <oneOrMore>
            <ref name="db.refentry"/>
         </oneOrMore>
      </choice>
   </define>

   <define name="db.toplevel.blocks.or.sections">
      <choice>
         <group>
            <oneOrMore>
               <ref name="db.all.blocks"/>
            </oneOrMore>
            <ref name="db.toplevel.optional.sections"/>
         </group>
         <ref name="db.toplevel.required.sections"/>
      </choice>
   </define>

   <define name="db.recursive.optional.sections">
      <choice>
         <choice>
            <zeroOrMore>
               <ref name="db.section"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="db.simplesect"/>
            </zeroOrMore>
         </choice>
         <zeroOrMore>
            <ref name="db.refentry"/>
         </zeroOrMore>
      </choice>
   </define>

   <define name="db.recursive.required.sections">
      <choice>
         <choice>
            <oneOrMore>
               <ref name="db.section"/>
            </oneOrMore>
            <oneOrMore>
               <ref name="db.simplesect"/>
            </oneOrMore>
         </choice>
         <oneOrMore>
            <ref name="db.refentry"/>
         </oneOrMore>
      </choice>
   </define>

   <define name="db.recursive.blocks.or.sections">
      <choice>
         <group>
            <oneOrMore>
               <ref name="db.all.blocks"/>
            </oneOrMore>
            <ref name="db.recursive.optional.sections"/>
         </group>
         <ref name="db.recursive.required.sections"/>
      </choice>
   </define>

   <define name="db.optional.refentry">
      <choice>
         <notAllowed/>
         <zeroOrMore>
            <ref name="db.refentry"/>
         </zeroOrMore>
      </choice>
   </define>

   <define name="db.required.refentry">
      <choice>
         <notAllowed/>
         <oneOrMore>
            <ref name="db.refentry"/>
         </oneOrMore>
      </choice>
   </define>

   <define name="db.divisions">
      <choice>
         <ref name="db.part"/>
         <ref name="db.reference"/>
      </choice>
   </define>

   <define name="db.components">
      <choice>
         <ref name="db.dedication"/>
         <ref name="db.preface"/>
         <ref name="db.chapter"/>
         <ref name="db.appendix"/>
         <ref name="db.article"/>
         <ref name="db.colophon"/>
      </choice>
   </define>

   <define name="db.navigation.components">
      <choice>
         <notAllowed/>
         <ref name="db.glossary"/>
         <ref name="db.bibliography"/>
         <ref name="db.index"/>
         <ref name="db.toc"/>
      </choice>
   </define>

   <define name="db.component.contentmodel">
      <zeroOrMore>
         <ref name="db.navigation.components"/>
      </zeroOrMore>
      <ref name="db.toplevel.blocks.or.sections"/>
      <zeroOrMore>
         <ref name="db.navigation.components"/>
      </zeroOrMore>
   </define>

   <define name="db.setindex.components">
      <choice>
         <notAllowed/>
         <ref name="db.setindex"/>
      </choice>
   </define>

   <define name="db.toc.components">
      <choice>
         <notAllowed/>
         <ref name="db.toc"/>
      </choice>
   </define>

   <div>
      <db:refname>set</db:refname>
      <db:refpurpose>A collection of books</db:refpurpose>
      <define name="db.set.status.attribute">
         <ref name="db.status.attribute"/>
      </define>

      <define name="db.set.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.set.attlist">
         <interleave>
            <optional>
               <ref name="db.set.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.label.attribute"/>
            </optional>
            <optional>
               <ref name="db.set.status.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.set.info">
         <ref name="db._info.title.req"/>
      </define>

      <define name="db.set">
         <element name="set">
            <s:rule context="/db:set" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="@version">The root element must have a version attribute.</s:assert>
            </s:rule>
            <ref name="db.set.attlist"/>
            <ref name="db.set.info"/>
            <optional>
               <ref name="db.toc.components"/>
            </optional>
            <oneOrMore>
               <choice>
                  <ref name="db.set"/>
                  <ref name="db.book"/>
               </choice>
            </oneOrMore>
            <optional>
               <ref name="db.setindex.components"/>
            </optional>
         </element>
      </define>

   </div>
   <div>
      <db:refname>book</db:refname>
      <db:refpurpose>A book</db:refpurpose>
      <define name="db.book.status.attribute">
         <ref name="db.status.attribute"/>
      </define>

      <define name="db.book.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.book.attlist">
         <interleave>
            <optional>
               <ref name="db.book.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.label.attribute"/>
            </optional>
            <optional>
               <ref name="db.book.status.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.book.info">
         <ref name="db._info.title.req"/>
      </define>

      <define name="db.book">
         <element name="book">
            <s:rule context="/db:book" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="@version">The root element must have a version attribute.</s:assert>
            </s:rule>
            <ref name="db.book.attlist"/>
            <ref name="db.book.info"/>
            <oneOrMore>
               <choice>
                  <ref name="db.navigation.components"/>
                  <ref name="db.components"/>
                  <ref name="db.divisions"/>
               </choice>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>dedication</db:refname>
      <db:refpurpose>A wrapper for the dedication section of a book</db:refpurpose>
      <define name="db.dedication.status.attribute">
         <ref name="db.status.attribute"/>
      </define>

      <define name="db.dedication.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.dedication.attlist">
         <interleave>
            <optional>
               <ref name="db.dedication.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.label.attribute"/>
            </optional>
            <optional>
               <ref name="db.dedication.status.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.dedication.info">
         <ref name="db._info"/>
      </define>

      <define name="db.dedication">
         <element name="dedication">
            <s:rule context="/db:dedication" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="@version">The root element must have a version attribute.</s:assert>
            </s:rule>
            <ref name="db.dedication.attlist"/>
            <ref name="db.dedication.info"/>
            <oneOrMore>
               <ref name="db.all.blocks"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>colophon</db:refname>
      <db:refpurpose>Text at the back of a book describing facts about its production</db:refpurpose>
      <define name="db.colophon.status.attribute">
         <ref name="db.status.attribute"/>
      </define>

      <define name="db.colophon.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.colophon.attlist">
         <interleave>
            <optional>
               <ref name="db.colophon.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.label.attribute"/>
            </optional>
            <optional>
               <ref name="db.colophon.status.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.colophon.info">
         <ref name="db._info"/>
      </define>

      <define name="db.colophon">
         <element name="colophon">
            <s:rule context="/db:colophon" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="@version">The root element must have a version attribute.</s:assert>
            </s:rule>
            <ref name="db.colophon.attlist"/>
            <ref name="db.colophon.info"/>
            <oneOrMore>
               <ref name="db.all.blocks"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>appendix</db:refname>
      <db:refpurpose>An appendix in a Book or Article</db:refpurpose>
      <define name="db.appendix.status.attribute">
         <ref name="db.status.attribute"/>
      </define>

      <define name="db.appendix.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.appendix.attlist">
         <interleave>
            <optional>
               <ref name="db.appendix.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.label.attribute"/>
            </optional>
            <optional>
               <ref name="db.appendix.status.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.appendix.info">
         <ref name="db._info.title.req"/>
      </define>

      <define name="db.appendix">
         <element name="appendix">
            <s:rule context="/db:appendix" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="@version">The root element must have a version attribute.</s:assert>
            </s:rule>
            <ref name="db.appendix.attlist"/>
            <ref name="db.appendix.info"/>
            <ref name="db.component.contentmodel"/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>chapter</db:refname>
      <db:refpurpose>A chapter, as of a book</db:refpurpose>
      <define name="db.chapter.status.attribute">
         <ref name="db.status.attribute"/>
      </define>

      <define name="db.chapter.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.chapter.attlist">
         <interleave>
            <optional>
               <ref name="db.chapter.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.label.attribute"/>
            </optional>
            <optional>
               <ref name="db.chapter.status.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.chapter.info">
         <ref name="db._info.title.req"/>
      </define>

      <define name="db.chapter">
         <element name="chapter">
            <s:rule context="/db:chapter" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="@version">The root element must have a version attribute.</s:assert>
            </s:rule>
            <ref name="db.chapter.attlist"/>
            <ref name="db.chapter.info"/>
            <ref name="db.component.contentmodel"/>
         </element>
      </define>

   </div>
   <define name="db.part.components">
      <choice>
         <choice>
            <ref name="db.navigation.components"/>
            <ref name="db.components"/>
         </choice>
         <choice>
            <ref name="db.refentry"/>
            <ref name="db.reference"/>
         </choice>
      </choice>
   </define>

   <div>
      <db:refname>part</db:refname>
      <db:refpurpose>A division in a book</db:refpurpose>
      <define name="db.part.status.attribute">
         <ref name="db.status.attribute"/>
      </define>

      <define name="db.part.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.part.attlist">
         <interleave>
            <optional>
               <ref name="db.part.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.label.attribute"/>
            </optional>
            <optional>
               <ref name="db.part.status.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.part.info">
         <ref name="db._info.title.req"/>
      </define>

      <define name="db.part">
         <element name="part">
            <s:rule context="/db:part" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="@version">The root element must have a version attribute.</s:assert>
            </s:rule>
            <ref name="db.part.attlist"/>
            <ref name="db.part.info"/>
            <optional>
               <ref name="db.partintro"/>
            </optional>
            <oneOrMore>
               <ref name="db.part.components"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>preface</db:refname>
      <db:refpurpose>Introductory matter preceding the first chapter of a book</db:refpurpose>
      <define name="db.preface.status.attribute">
         <ref name="db.status.attribute"/>
      </define>

      <define name="db.preface.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.preface.attlist">
         <interleave>
            <optional>
               <ref name="db.preface.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.label.attribute"/>
            </optional>
            <optional>
               <ref name="db.preface.status.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.preface.info">
         <ref name="db._info.title.req"/>
      </define>

      <define name="db.preface">
         <element name="preface">
            <s:rule context="/db:preface" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="@version">The root element must have a version attribute.</s:assert>
            </s:rule>
            <ref name="db.preface.attlist"/>
            <ref name="db.preface.info"/>
            <ref name="db.component.contentmodel"/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>partintro</db:refname>
      <db:refpurpose>An introduction to the contents of a part</db:refpurpose>
      <define name="db.partintro.status.attribute">
         <ref name="db.status.attribute"/>
      </define>

      <define name="db.partintro.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.partintro.attlist">
         <interleave>
            <optional>
               <ref name="db.partintro.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.label.attribute"/>
            </optional>
            <optional>
               <ref name="db.partintro.status.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.partintro.info">
         <ref name="db._info"/>
      </define>

      <define name="db.partintro">
         <element name="partintro">
            <ref name="db.partintro.attlist"/>
            <ref name="db.partintro.info"/>
            <ref name="db.toplevel.blocks.or.sections"/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>section</db:refname>
      <db:refpurpose>A recursive section</db:refpurpose>
      <define name="db.section.status.attribute">
         <ref name="db.status.attribute"/>
      </define>

      <define name="db.section.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.section.attlist">
         <interleave>
            <optional>
               <ref name="db.section.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.label.attribute"/>
            </optional>
            <optional>
               <ref name="db.section.status.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.section.info">
         <ref name="db._info.title.req"/>
      </define>

      <define name="db.section">
         <element name="section">
            <s:rule context="/db:section" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="@version">The root element must have a version attribute.</s:assert>
            </s:rule>
            <ref name="db.section.attlist"/>
            <ref name="db.section.info"/>
            <ref name="db.recursive.blocks.or.sections"/>
            <zeroOrMore>
               <ref name="db.navigation.components"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>simplesect</db:refname>
      <db:refpurpose>A section of a document with no subdivisions</db:refpurpose>
      <define name="db.simplesect.status.attribute">
         <ref name="db.status.attribute"/>
      </define>

      <define name="db.simplesect.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.simplesect.attlist">
         <interleave>
            <optional>
               <ref name="db.simplesect.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.label.attribute"/>
            </optional>
            <optional>
               <ref name="db.simplesect.status.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.simplesect.info">
         <ref name="db._info.title.req"/>
      </define>

      <define name="db.simplesect">
         <element name="simplesect">
            <ref name="db.simplesect.attlist"/>
            <ref name="db.simplesect.info"/>
            <oneOrMore>
               <ref name="db.all.blocks"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>ackno</db:refname>
      <db:refpurpose>Acknowledgements in an Article</db:refpurpose>
      <define name="db.ackno.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.ackno.attlist">
         <interleave>
            <optional>
               <ref name="db.ackno.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.ackno">
         <element name="ackno">
            <ref name="db.ackno.attlist"/>
            <oneOrMore>
               <ref name="db.para.blocks"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <define name="db.article.optional.components">
      <choice>
         <choice>
            <zeroOrMore>
               <ref name="db.section"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="db.simplesect"/>
            </zeroOrMore>
         </choice>
         <zeroOrMore>
            <ref name="db.sect1"/>
         </zeroOrMore>
         <zeroOrMore>
            <ref name="db.refentry"/>
         </zeroOrMore>
      </choice>
   </define>

   <define name="db.article.required.components">
      <choice>
         <choice>
            <oneOrMore>
               <ref name="db.section"/>
            </oneOrMore>
            <oneOrMore>
               <ref name="db.simplesect"/>
            </oneOrMore>
         </choice>
         <oneOrMore>
            <ref name="db.sect1"/>
         </oneOrMore>
         <oneOrMore>
            <ref name="db.refentry"/>
         </oneOrMore>
      </choice>
   </define>

   <div>
      <db:refname>article</db:refname>
      <db:refpurpose>An article</db:refpurpose>
      <dbx:description>
         <db:para>The <db:tag>article</db:tag>
 element is a general-purpose container for  articles.  The content model is both quite complex and rather loose in order to accommodate the wide range of possible <db:tag>article</db:tag>
 structures.  Although changes to the <db:tag>article</db:tag>
 element have been discussed on several occasions, no better model has been presented.</db:para>
         <db:para>An <db:tag>article</db:tag>
 is composed of a header and a body.  The body  may include a table of contents and multiple lists of tables, figures,  and so on, before the main text of the article and may include a number of common end-matter components at the end.</db:para>
      </dbx:description>
      <dbx:expectations>
         <db:para>
            <dbx:format class="block"/>
Formatted as a displayed block. Frequently causes a forced page break in print media. May be numbered separately and presented in the table of contents.</db:para>
      </dbx:expectations>
      <define name="db.article.status.attribute">
         <ref name="db.status.attribute"/>
      </define>

      <define name="db.article.class.enumeration">
         <db:refpurpose>Class identifies the type of article.</db:refpurpose>
         <choice>
            <value>faq</value>
            <value>journalarticle</value>
            <value>productsheet</value>
            <value>specification</value>
            <value>techreport</value>
            <value>whitepaper</value>
         </choice>
      </define>

      <define name="db.article.class.attribute">
         <attribute name="class">
            <ref name="db.article.class.enumeration"/>
         </attribute>
      </define>

      <define name="db.article.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.article.attlist">
         <interleave>
            <optional>
               <ref name="db.article.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.label.attribute"/>
            </optional>
            <optional>
               <ref name="db.article.status.attribute"/>
            </optional>
            <optional>
               <ref name="db.article.class.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.article.info">
         <ref name="db._info.title.req"/>
      </define>

      <define name="db.article">
         <element name="article">
            <s:rule context="/db:article" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="@version">The root element must have a version attribute.</s:assert>
            </s:rule>
            <ref name="db.article.attlist"/>
            <ref name="db.article.info"/>
            <zeroOrMore>
               <ref name="db.navigation.components"/>
            </zeroOrMore>
            <choice>
               <group>
                  <oneOrMore>
                     <ref name="db.all.blocks"/>
                  </oneOrMore>
                  <ref name="db.article.optional.components"/>
               </group>
               <ref name="db.article.required.components"/>
            </choice>
            <zeroOrMore>
               <choice>
                  <ref name="db.appendix"/>
                  <ref name="db.navigation.components"/>
                  <ref name="db.ackno"/>
                  <ref name="db.colophon"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>sect1</db:refname>
      <db:refpurpose>A top-level section of document</db:refpurpose>
      <define name="db.sect1.status.attribute">
         <ref name="db.status.attribute"/>
      </define>

      <define name="db.sect1.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.sect1.attlist">
         <interleave>
            <optional>
               <ref name="db.sect1.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.label.attribute"/>
            </optional>
            <optional>
               <ref name="db.sect1.status.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.sect1.info">
         <ref name="db._info.title.req"/>
      </define>

      <define name="db.sect1">
         <element name="sect1">
            <ref name="db.sect1.attlist"/>
            <ref name="db.sect1.info"/>
            <choice>
               <group>
                  <oneOrMore>
                     <ref name="db.all.blocks"/>
                  </oneOrMore>
                  <choice>
                     <ref name="db.optional.refentry"/>
                     <group>
                        <zeroOrMore>
                           <ref name="db.sect2"/>
                        </zeroOrMore>
                        <zeroOrMore>
                           <ref name="db.simplesect"/>
                        </zeroOrMore>
                     </group>
                  </choice>
               </group>
               <ref name="db.required.refentry"/>
               <group>
                  <oneOrMore>
                     <ref name="db.sect2"/>
                  </oneOrMore>
                  <zeroOrMore>
                     <ref name="db.simplesect"/>
                  </zeroOrMore>
               </group>
               <oneOrMore>
                  <ref name="db.simplesect"/>
               </oneOrMore>
            </choice>
            <zeroOrMore>
               <ref name="db.navigation.components"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>sect2</db:refname>
      <db:refpurpose>A subsection within a Sect1</db:refpurpose>
      <define name="db.sect2.status.attribute">
         <ref name="db.status.attribute"/>
      </define>

      <define name="db.sect2.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.sect2.attlist">
         <interleave>
            <optional>
               <ref name="db.sect2.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.label.attribute"/>
            </optional>
            <optional>
               <ref name="db.sect2.status.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.sect2.info">
         <ref name="db._info.title.req"/>
      </define>

      <define name="db.sect2">
         <element name="sect2">
            <ref name="db.sect2.attlist"/>
            <ref name="db.sect2.info"/>
            <choice>
               <group>
                  <oneOrMore>
                     <ref name="db.all.blocks"/>
                  </oneOrMore>
                  <choice>
                     <ref name="db.optional.refentry"/>
                     <group>
                        <zeroOrMore>
                           <ref name="db.sect3"/>
                        </zeroOrMore>
                        <zeroOrMore>
                           <ref name="db.simplesect"/>
                        </zeroOrMore>
                     </group>
                  </choice>
               </group>
               <ref name="db.required.refentry"/>
               <group>
                  <oneOrMore>
                     <ref name="db.sect3"/>
                  </oneOrMore>
                  <zeroOrMore>
                     <ref name="db.simplesect"/>
                  </zeroOrMore>
               </group>
               <oneOrMore>
                  <ref name="db.simplesect"/>
               </oneOrMore>
            </choice>
            <zeroOrMore>
               <ref name="db.navigation.components"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>sect3</db:refname>
      <db:refpurpose>A subsection within a Sect2</db:refpurpose>
      <define name="db.sect3.status.attribute">
         <ref name="db.status.attribute"/>
      </define>

      <define name="db.sect3.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.sect3.attlist">
         <interleave>
            <optional>
               <ref name="db.sect3.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.label.attribute"/>
            </optional>
            <optional>
               <ref name="db.sect3.status.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.sect3.info">
         <ref name="db._info.title.req"/>
      </define>

      <define name="db.sect3">
         <element name="sect3">
            <ref name="db.sect3.attlist"/>
            <ref name="db.sect3.info"/>
            <choice>
               <group>
                  <oneOrMore>
                     <ref name="db.all.blocks"/>
                  </oneOrMore>
                  <choice>
                     <ref name="db.optional.refentry"/>
                     <group>
                        <zeroOrMore>
                           <ref name="db.sect4"/>
                        </zeroOrMore>
                        <zeroOrMore>
                           <ref name="db.simplesect"/>
                        </zeroOrMore>
                     </group>
                  </choice>
               </group>
               <ref name="db.required.refentry"/>
               <group>
                  <oneOrMore>
                     <ref name="db.sect4"/>
                  </oneOrMore>
                  <zeroOrMore>
                     <ref name="db.simplesect"/>
                  </zeroOrMore>
               </group>
               <oneOrMore>
                  <ref name="db.simplesect"/>
               </oneOrMore>
            </choice>
            <zeroOrMore>
               <ref name="db.navigation.components"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>sect4</db:refname>
      <db:refpurpose>A subsection within a Sect3</db:refpurpose>
      <define name="db.sect4.status.attribute">
         <ref name="db.status.attribute"/>
      </define>

      <define name="db.sect4.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.sect4.attlist">
         <interleave>
            <optional>
               <ref name="db.sect4.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.label.attribute"/>
            </optional>
            <optional>
               <ref name="db.sect4.status.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.sect4.info">
         <ref name="db._info.title.req"/>
      </define>

      <define name="db.sect4">
         <element name="sect4">
            <ref name="db.sect4.attlist"/>
            <ref name="db.sect4.info"/>
            <choice>
               <group>
                  <oneOrMore>
                     <ref name="db.all.blocks"/>
                  </oneOrMore>
                  <choice>
                     <ref name="db.optional.refentry"/>
                     <group>
                        <zeroOrMore>
                           <ref name="db.sect5"/>
                        </zeroOrMore>
                        <zeroOrMore>
                           <ref name="db.simplesect"/>
                        </zeroOrMore>
                     </group>
                  </choice>
               </group>
               <ref name="db.required.refentry"/>
               <group>
                  <oneOrMore>
                     <ref name="db.sect5"/>
                  </oneOrMore>
                  <zeroOrMore>
                     <ref name="db.simplesect"/>
                  </zeroOrMore>
               </group>
               <oneOrMore>
                  <ref name="db.simplesect"/>
               </oneOrMore>
            </choice>
            <zeroOrMore>
               <ref name="db.navigation.components"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>sect5</db:refname>
      <db:refpurpose>A subsection within a Sect4</db:refpurpose>
      <define name="db.sect5.status.attribute">
         <ref name="db.status.attribute"/>
      </define>

      <define name="db.sect5.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.sect5.attlist">
         <interleave>
            <optional>
               <ref name="db.sect5.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.label.attribute"/>
            </optional>
            <optional>
               <ref name="db.sect5.status.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.sect5.info">
         <ref name="db._info.title.req"/>
      </define>

      <define name="db.sect5">
         <element name="sect5">
            <ref name="db.sect5.attlist"/>
            <ref name="db.sect5.info"/>
            <choice>
               <group>
                  <oneOrMore>
                     <ref name="db.all.blocks"/>
                  </oneOrMore>
                  <choice>
                     <ref name="db.optional.refentry"/>
                     <zeroOrMore>
                        <ref name="db.simplesect"/>
                     </zeroOrMore>
                  </choice>
               </group>
               <ref name="db.required.refentry"/>
               <oneOrMore>
                  <ref name="db.simplesect"/>
               </oneOrMore>
            </choice>
            <zeroOrMore>
               <ref name="db.navigation.components"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <define name="db.toplevel.optional.refsection">
      <choice>
         <zeroOrMore>
            <ref name="db.refsection"/>
         </zeroOrMore>
         <zeroOrMore>
            <ref name="db.refsect1"/>
         </zeroOrMore>
      </choice>
   </define>

   <define name="db.toplevel.required.refsection">
      <choice>
         <oneOrMore>
            <ref name="db.refsection"/>
         </oneOrMore>
         <oneOrMore>
            <ref name="db.refsect1"/>
         </oneOrMore>
      </choice>
   </define>

   <define name="db.secondlevel.optional.refsection">
      <choice>
         <zeroOrMore>
            <ref name="db.refsection"/>
         </zeroOrMore>
         <zeroOrMore>
            <ref name="db.refsect2"/>
         </zeroOrMore>
      </choice>
   </define>

   <define name="db.secondlevel.required.refsection">
      <choice>
         <oneOrMore>
            <ref name="db.refsection"/>
         </oneOrMore>
         <oneOrMore>
            <ref name="db.refsect2"/>
         </oneOrMore>
      </choice>
   </define>

   <div>
      <db:refname>reference</db:refname>
      <db:refpurpose>A collection of reference entries</db:refpurpose>
      <define name="db.reference.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.reference.attlist">
         <interleave>
            <optional>
               <ref name="db.reference.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.status.attribute"/>
            </optional>
            <optional>
               <ref name="db.label.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.reference.info">
         <ref name="db._info.title.req"/>
      </define>

      <define name="db.reference">
         <element name="reference">
            <s:rule context="/db:reference" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="@version">The root element must have a version attribute.</s:assert>
            </s:rule>
            <ref name="db.reference.attlist"/>
            <ref name="db.reference.info"/>
            <optional>
               <ref name="db.partintro"/>
            </optional>
            <oneOrMore>
               <ref name="db.refentry"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>refentry</db:refname>
      <db:refpurpose>A reference page (originally a UNIX man-style reference page)</db:refpurpose>
      <define name="db.refentry.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.refentry.attlist">
         <interleave>
            <optional>
               <ref name="db.refentry.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.status.attribute"/>
            </optional>
            <optional>
               <ref name="db.label.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.refentry.info">
         <ref name="db._info.title.forbidden"/>
      </define>

      <define name="db.refentry">
         <element name="refentry">
            <s:rule context="/db:refentry" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="@version">The root element must have a version attribute.</s:assert>
            </s:rule>
            <ref name="db.refentry.attlist"/>
            <zeroOrMore>
               <ref name="db.indexterm"/>
            </zeroOrMore>
            <ref name="db.refentry.info"/>
            <optional>
               <ref name="db.refmeta"/>
            </optional>
            <oneOrMore>
               <ref name="db.refnamediv"/>
            </oneOrMore>
            <optional>
               <ref name="db.refsynopsisdiv"/>
            </optional>
            <ref name="db.toplevel.required.refsection"/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>refmeta</db:refname>
      <db:refpurpose>Meta-information for a reference entry</db:refpurpose>
      <define name="db.refmeta.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.refmeta.attlist">
         <interleave>
            <optional>
               <ref name="db.refmeta.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.refmeta">
         <element name="refmeta">
            <ref name="db.refmeta.attlist"/>
            <zeroOrMore>
               <ref name="db.indexterm"/>
            </zeroOrMore>
            <ref name="db.refentrytitle"/>
            <optional>
               <ref name="db.manvolnum"/>
            </optional>
            <zeroOrMore>
               <ref name="db.refmiscinfo"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="db.indexterm"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>db.refmiscinfo</db:refname>
      <db:refpurpose/>
      <define name="db.refmiscinfo.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.refmiscinfo.class.attribute">
         <attribute name="class"/>
      </define>

      <define name="db.refmiscinfo.attlist">
         <interleave>
            <optional>
               <ref name="db.refmiscinfo.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.refmiscinfo.class.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.refmiscinfo">
         <element name="refmiscinfo">
            <ref name="db.refmiscinfo.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>refnamediv</db:refname>
      <db:refpurpose>The name, purpose, and classification of a reference page</db:refpurpose>
      <define name="db.refnamediv.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.refnamediv.attlist">
         <interleave>
            <optional>
               <ref name="db.refnamediv.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.refnamediv">
         <element name="refnamediv">
            <ref name="db.refnamediv.attlist"/>
            <optional>
               <ref name="db.refdescriptor"/>
            </optional>
            <oneOrMore>
               <ref name="db.refname"/>
            </oneOrMore>
            <ref name="db.refpurpose"/>
            <zeroOrMore>
               <ref name="db.refclass"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>refdescriptor</db:refname>
      <db:refpurpose>A description of the topic of a reference page</db:refpurpose>
      <define name="db.refdescriptor.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.refdescriptor.attlist">
         <interleave>
            <optional>
               <ref name="db.refdescriptor.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.refdescriptor">
         <element name="refdescriptor">
            <ref name="db.refdescriptor.attlist"/>
            <zeroOrMore>
               <ref name="db.all.inlines"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>refname</db:refname>
      <db:refpurpose>The name of (one of) the subject(s) of a reference page</db:refpurpose>
      <define name="db.refname.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.refname.attlist">
         <interleave>
            <optional>
               <ref name="db.refname.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.refname">
         <element name="refname">
            <ref name="db.refname.attlist"/>
            <zeroOrMore>
               <ref name="db.all.inlines"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>refpurpose</db:refname>
      <db:refpurpose>A short (one sentence) synopsis of the topic of a reference page</db:refpurpose>
      <define name="db.refpurpose.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.refpurpose.attlist">
         <interleave>
            <optional>
               <ref name="db.refpurpose.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.refpurpose">
         <element name="refpurpose">
            <ref name="db.refpurpose.attlist"/>
            <zeroOrMore>
               <ref name="db.all.inlines"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>refclass</db:refname>
      <db:refpurpose>The scope or other indication of applicability of a reference entry</db:refpurpose>
      <define name="db.refclass.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.refclass.attlist">
         <interleave>
            <optional>
               <ref name="db.refclass.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.refclass">
         <element name="refclass">
            <ref name="db.refclass.attlist"/>
            <zeroOrMore>
               <choice>
                  <text/>
                  <ref name="db.application"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>refsynopsisdiv</db:refname>
      <db:refpurpose>A syntactic synopsis of the subject of the reference page</db:refpurpose>
      <define name="db.refsynopsisdiv.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.refsynopsisdiv.attlist">
         <interleave>
            <optional>
               <ref name="db.refsynopsisdiv.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.refsynopsisdiv.info">
         <ref name="db._info"/>
      </define>

      <define name="db.refsynopsisdiv">
         <element name="refsynopsisdiv">
            <ref name="db.refsynopsisdiv.attlist"/>
            <ref name="db.refsynopsisdiv.info"/>
            <choice>
               <group>
                  <oneOrMore>
                     <ref name="db.all.blocks"/>
                  </oneOrMore>
                  <ref name="db.secondlevel.optional.refsection"/>
               </group>
               <ref name="db.secondlevel.required.refsection"/>
            </choice>
         </element>
      </define>

   </div>
   <div>
      <db:refname>refsection</db:refname>
      <db:refpurpose>A recursive section in a refentry</db:refpurpose>
      <define name="db.refsection.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.refsection.attlist">
         <interleave>
            <optional>
               <ref name="db.refsection.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.status.attribute"/>
            </optional>
            <optional>
               <ref name="db.label.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.refsection.info">
         <ref name="db._info.title.req"/>
      </define>

      <define name="db.refsection">
         <element name="refsection">
            <s:rule context="/db:refsection" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="@version">The root element must have a version attribute.</s:assert>
            </s:rule>
            <ref name="db.refsection.attlist"/>
            <ref name="db.refsection.info"/>
            <choice>
               <group>
                  <oneOrMore>
                     <ref name="db.all.blocks"/>
                  </oneOrMore>
                  <zeroOrMore>
                     <ref name="db.refsection"/>
                  </zeroOrMore>
               </group>
               <oneOrMore>
                  <ref name="db.refsection"/>
               </oneOrMore>
            </choice>
         </element>
      </define>

   </div>
   <div>
      <db:refname>refsect1</db:refname>
      <db:refpurpose>A major subsection of a reference entry</db:refpurpose>
      <define name="db.refsect1.status.attribute">
         <ref name="db.status.attribute"/>
      </define>

      <define name="db.refsect1.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.refsect1.attlist">
         <interleave>
            <optional>
               <ref name="db.refsect1.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.label.attribute"/>
            </optional>
            <optional>
               <ref name="db.refsect1.status.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.refsect1.info">
         <ref name="db._info.title.req"/>
      </define>

      <define name="db.refsect1">
         <element name="refsect1">
            <ref name="db.refsect1.attlist"/>
            <ref name="db.refsect1.info"/>
            <choice>
               <group>
                  <oneOrMore>
                     <ref name="db.all.blocks"/>
                  </oneOrMore>
                  <zeroOrMore>
                     <ref name="db.refsect2"/>
                  </zeroOrMore>
               </group>
               <oneOrMore>
                  <ref name="db.refsect2"/>
               </oneOrMore>
            </choice>
         </element>
      </define>

   </div>
   <div>
      <db:refname>refsect2</db:refname>
      <db:refpurpose>A subsection of a <db:tag>refsect1</db:tag>
      </db:refpurpose>
      <define name="db.refsect2.status.attribute">
         <ref name="db.status.attribute"/>
      </define>

      <define name="db.refsect2.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.refsect2.attlist">
         <interleave>
            <optional>
               <ref name="db.refsect2.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.label.attribute"/>
            </optional>
            <optional>
               <ref name="db.refsect2.status.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.refsect2.info">
         <ref name="db._info.title.req"/>
      </define>

      <define name="db.refsect2">
         <element name="refsect2">
            <ref name="db.refsect2.attlist"/>
            <ref name="db.refsect2.info"/>
            <choice>
               <group>
                  <oneOrMore>
                     <ref name="db.all.blocks"/>
                  </oneOrMore>
                  <zeroOrMore>
                     <ref name="db.refsect3"/>
                  </zeroOrMore>
               </group>
               <oneOrMore>
                  <ref name="db.refsect3"/>
               </oneOrMore>
            </choice>
         </element>
      </define>

   </div>
   <div>
      <db:refname>refsect3</db:refname>
      <db:refpurpose>A subsection of a <db:tag>refsect2</db:tag>
      </db:refpurpose>
      <define name="db.refsect3.status.attribute">
         <ref name="db.status.attribute"/>
      </define>

      <define name="db.refsect3.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.refsect3.attlist">
         <interleave>
            <optional>
               <ref name="db.refsect3.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.label.attribute"/>
            </optional>
            <optional>
               <ref name="db.refsect3.status.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.refsect3.info">
         <ref name="db._info.title.req"/>
      </define>

      <define name="db.refsect3">
         <element name="refsect3">
            <ref name="db.refsect3.attlist"/>
            <ref name="db.refsect3.info"/>
            <oneOrMore>
               <ref name="db.all.blocks"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <define name="db.glossary.inlines">
      <choice>
         <ref name="db.firstterm"/>
         <ref name="db.glossterm"/>
      </choice>
   </define>

   <define name="db.baseform.attribute">
      <optional>
         <attribute name="baseform"/>
      </optional>
   </define>

   <div>
      <db:refname>glosslist</db:refname>
      <db:refpurpose>A wrapper for a list of glossary entries</db:refpurpose>
      <define name="db.glosslist.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.glosslist.attlist">
         <interleave>
            <optional>
               <ref name="db.glosslist.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.glosslist.info">
         <ref name="db._info.title.only"/>
      </define>

      <define name="db.glosslist">
         <element name="glosslist">
            <ref name="db.glosslist.attlist"/>
            <optional>
               <ref name="db.glosslist.info"/>
            </optional>
            <zeroOrMore>
               <ref name="db.all.blocks"/>
            </zeroOrMore>
            <oneOrMore>
               <ref name="db.glossentry"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>glossentry</db:refname>
      <db:refpurpose>An entry in a Glossary or GlossList</db:refpurpose>
      <define name="db.glossentry.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.glossentry.sortas.attribute">
         <attribute name="sortas"/>
      </define>

      <define name="db.glossentry.attlist">
         <interleave>
            <optional>
               <ref name="db.glossentry.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.glossentry.sortas.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.glossentry">
         <element name="glossentry">
            <ref name="db.glossentry.attlist"/>
            <ref name="db.glossterm"/>
            <optional>
               <ref name="db.acronym"/>
            </optional>
            <optional>
               <ref name="db.abbrev"/>
            </optional>
            <zeroOrMore>
               <ref name="db.indexterm"/>
            </zeroOrMore>
            <choice>
               <ref name="db.glosssee"/>
               <oneOrMore>
                  <ref name="db.glossdef"/>
               </oneOrMore>
            </choice>
         </element>
      </define>

   </div>
   <div>
      <db:refname>glossdef</db:refname>
      <db:refpurpose>A definition in a GlossEntry</db:refpurpose>
      <define name="db.glossdef.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.glossdef.subject.attribute">
         <attribute name="subject"/>
      </define>

      <define name="db.glossdef.attlist">
         <interleave>
            <optional>
               <ref name="db.glossdef.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.glossdef.subject.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.glossdef">
         <element name="glossdef">
            <ref name="db.glossdef.attlist"/>
            <oneOrMore>
               <ref name="db.all.blocks"/>
            </oneOrMore>
            <zeroOrMore>
               <ref name="db.glossseealso"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>glosssee</db:refname>
      <db:refpurpose>A cross-reference from one GlossEntry to another</db:refpurpose>
      <define name="db.glosssee.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.glosssee.otherterm.attribute">
         <attribute name="otherterm">
            <data type="IDREF"/>
         </attribute>
      </define>

      <define name="db.glosssee.attlist">
         <interleave>
            <optional>
               <ref name="db.glosssee.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.glosssee.otherterm.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.glosssee">
         <element name="glosssee">
            <s:rule context="db:glosssee[@otherterm]" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="local-name(//*[@id=current()/@otherterm]) = 'glossentry' and namespace-uri(//*[@id=current()/@otherterm]) = 'http://docbook.org/ns/docbook'">@otherterm on glosssee must point to a glossentry.</s:assert>
            </s:rule>
            <ref name="db.glosssee.attlist"/>
            <zeroOrMore>
               <ref name="db.all.inlines"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>glossseealso</db:refname>
      <db:refpurpose>A cross-reference from one GlossEntry to another</db:refpurpose>
      <define name="db.glossseealso.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.glossseealso.otherterm.attribute">
         <attribute name="otherterm">
            <data type="IDREF"/>
         </attribute>
      </define>

      <define name="db.glossseealso.attlist">
         <interleave>
            <optional>
               <ref name="db.glossseealso.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.glossseealso.otherterm.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.glossseealso">
         <element name="glossseealso">
            <s:rule context="db:glossseealso[@otherterm]" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="local-name(//*[@id=current()/@otherterm]) = 'glossentry' and namespace-uri(//*[@id=current()/@otherterm]) = 'http://docbook.org/ns/docbook'">@otherterm on glossseealso must point to a glossentry.</s:assert>
            </s:rule>
            <ref name="db.glossseealso.attlist"/>
            <zeroOrMore>
               <ref name="db.all.inlines"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>firstterm</db:refname>
      <db:refpurpose>The first occurrence of a term</db:refpurpose>
      <define name="db.firstterm.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.firstterm.attlist">
         <interleave>
            <optional>
               <ref name="db.firstterm.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <ref name="db.baseform.attribute"/>
         </interleave>
      </define>

      <define name="db.firstterm">
         <element name="firstterm">
            <s:rule context="db:firstterm[@linkend]" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="local-name(//*[@id=current()/@linkend]) = 'glossentry' and namespace-uri(//*[@id=current()/@linkend]) = 'http://docbook.org/ns/docbook'">@linkend on firstterm must point to a glossentry.</s:assert>
            </s:rule>
            <ref name="db.firstterm.attlist"/>
            <zeroOrMore>
               <ref name="db.all.inlines"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>glossterm</db:refname>
      <db:refpurpose>A glossary term</db:refpurpose>
      <define name="db.glossterm.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.glossterm.attlist">
         <interleave>
            <optional>
               <ref name="db.glossterm.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <ref name="db.baseform.attribute"/>
         </interleave>
      </define>

      <define name="db.glossterm">
         <element name="glossterm">
            <s:rule context="db:glossterm[@linkend]" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="local-name(//*[@id=current()/@linkend]) = 'glossentry' and namespace-uri(//*[@id=current()/@linkend]) = 'http://docbook.org/ns/docbook'">@linkend on glossterm must point to a glossentry.</s:assert>
            </s:rule>
            <ref name="db.glossterm.attlist"/>
            <zeroOrMore>
               <ref name="db.all.inlines"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>glossary</db:refname>
      <db:refpurpose>A glossary</db:refpurpose>
      <define name="db.glossary.status.attribute">
         <ref name="db.status.attribute"/>
      </define>

      <define name="db.glossary.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.glossary.attlist">
         <interleave>
            <optional>
               <ref name="db.glossary.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.label.attribute"/>
            </optional>
            <optional>
               <ref name="db.glossary.status.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.glossary.info">
         <ref name="db._info"/>
      </define>

      <define name="db.glossary">
         <element name="glossary">
            <s:rule context="/db:glossary" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="@version">The root element must have a version attribute.</s:assert>
            </s:rule>
            <ref name="db.glossary.attlist"/>
            <ref name="db.glossary.info"/>
            <zeroOrMore>
               <ref name="db.all.blocks"/>
            </zeroOrMore>
            <choice>
               <oneOrMore>
                  <ref name="db.glossdiv"/>
               </oneOrMore>
               <oneOrMore>
                  <ref name="db.glossentry"/>
               </oneOrMore>
            </choice>
            <optional>
               <ref name="db.bibliography"/>
            </optional>
         </element>
      </define>

   </div>
   <div>
      <db:refname>glossdiv</db:refname>
      <db:refpurpose>A division in a Glossary</db:refpurpose>
      <define name="db.glossdiv.status.attribute">
         <ref name="db.status.attribute"/>
      </define>

      <define name="db.glossdiv.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.glossdiv.attlist">
         <interleave>
            <optional>
               <ref name="db.glossdiv.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.label.attribute"/>
            </optional>
            <optional>
               <ref name="db.glossdiv.status.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.glossdiv.info">
         <ref name="db._info.title.req"/>
      </define>

      <define name="db.glossdiv">
         <element name="glossdiv">
            <ref name="db.glossdiv.attlist"/>
            <ref name="db.glossdiv.info"/>
            <zeroOrMore>
               <ref name="db.all.blocks"/>
            </zeroOrMore>
            <oneOrMore>
               <ref name="db.glossentry"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>termdef</db:refname>
      <db:refpurpose>An inline definition of a term</db:refpurpose>
      <define name="db.termdef.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.termdef.attlist">
         <interleave>
            <optional>
               <ref name="db.termdef.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <ref name="db.baseform.attribute"/>
         </interleave>
      </define>

      <define name="db.termdef">
         <element name="termdef">
            <s:rule context="db:termdef" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="count(db:glossterm) != 1">A termdef must contain a glossterm</s:assert>
            </s:rule>
            <ref name="db.termdef.attlist"/>
            <zeroOrMore>
               <ref name="db.all.inlines"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <define name="db.relation.attribute">
      <attribute name="relation"/>
   </define>

   <div>
      <db:refname>biblioentry</db:refname>
      <db:refpurpose>An entry in a Bibliography</db:refpurpose>
      <define name="db.biblioentry.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.biblioentry.attlist">
         <interleave>
            <optional>
               <ref name="db.biblioentry.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.biblioentry">
         <element name="biblioentry">
            <ref name="db.biblioentry.attlist"/>
            <oneOrMore>
               <ref name="db.bibliographic.elements"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>bibliomixed</db:refname>
      <db:refpurpose>An entry in a Bibliography</db:refpurpose>
      <define name="db.bibliomixed.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.bibliomixed.attlist">
         <interleave>
            <optional>
               <ref name="db.bibliomixed.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.bibliomixed">
         <element name="bibliomixed">
            <ref name="db.bibliomixed.attlist"/>
            <zeroOrMore>
               <choice>
                  <text/>
                  <ref name="db.bibliographic.elements"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>biblioset</db:refname>
      <db:refpurpose>A raw container for related bibliographic information</db:refpurpose>
      <define name="db.biblioset.relation.attrib">
         <ref name="db.relation.attribute"/>
      </define>

      <define name="db.biblioset.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.biblioset.attlist">
         <interleave>
            <optional>
               <ref name="db.biblioset.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.biblioset.relation.attrib"/>
            </optional>
         </interleave>
      </define>

      <define name="db.biblioset">
         <element name="biblioset">
            <ref name="db.biblioset.attlist"/>
            <oneOrMore>
               <ref name="db.bibliographic.elements"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>bibliomset</db:refname>
      <db:refpurpose>A cooked container for related bibliographic information</db:refpurpose>
      <define name="db.bibliomset.relation.attrib">
         <ref name="db.relation.attribute"/>
      </define>

      <define name="db.bibliomset.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.bibliomset.attlist">
         <interleave>
            <optional>
               <ref name="db.bibliomset.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.bibliomset.relation.attrib"/>
            </optional>
         </interleave>
      </define>

      <define name="db.bibliomset">
         <element name="bibliomset">
            <ref name="db.bibliomset.attlist"/>
            <zeroOrMore>
               <choice>
                  <ref name="db._text"/>
                  <ref name="db.bibliographic.elements"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>bibliomisc</db:refname>
      <db:refpurpose>Untyped bibliographic information</db:refpurpose>
      <define name="db.bibliomisc.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.bibliomisc.attlist">
         <interleave>
            <optional>
               <ref name="db.bibliomisc.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.bibliomisc">
         <element name="bibliomisc">
            <ref name="db.bibliomisc.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>bibliography</db:refname>
      <db:refpurpose>A bibliography</db:refpurpose>
      <define name="db.bibliography.status.attrib">
         <ref name="db.status.attribute"/>
      </define>

      <define name="db.bibliography.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.bibliography.attlist">
         <interleave>
            <optional>
               <ref name="db.bibliography.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.label.attribute"/>
            </optional>
            <optional>
               <ref name="db.bibliography.status.attrib"/>
            </optional>
         </interleave>
      </define>

      <define name="db.bibliography.info">
         <ref name="db._info"/>
      </define>

      <define name="db.bibliography">
         <element name="bibliography">
            <s:rule context="/db:bibliography" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="@version">The root element must have a version attribute.</s:assert>
            </s:rule>
            <ref name="db.bibliography.attlist"/>
            <ref name="db.bibliography.info"/>
            <zeroOrMore>
               <ref name="db.all.blocks"/>
            </zeroOrMore>
            <choice>
               <oneOrMore>
                  <ref name="db.bibliodiv"/>
               </oneOrMore>
               <oneOrMore>
                  <choice>
                     <ref name="db.biblioentry"/>
                     <ref name="db.bibliomixed"/>
                  </choice>
               </oneOrMore>
            </choice>
         </element>
      </define>

   </div>
   <div>
      <db:refname>bibliodiv</db:refname>
      <db:refpurpose>A section of a Bibliography</db:refpurpose>
      <define name="db.bibliodiv.status.attrib">
         <ref name="db.status.attribute"/>
      </define>

      <define name="db.bibliodiv.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.bibliodiv.attlist">
         <interleave>
            <optional>
               <ref name="db.bibliodiv.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.label.attribute"/>
            </optional>
            <optional>
               <ref name="db.bibliodiv.status.attrib"/>
            </optional>
         </interleave>
      </define>

      <define name="db.bibliodiv.info">
         <ref name="db._info.title.req"/>
      </define>

      <define name="db.bibliodiv">
         <element name="bibliodiv">
            <ref name="db.bibliodiv.attlist"/>
            <ref name="db.bibliodiv.info"/>
            <zeroOrMore>
               <ref name="db.all.blocks"/>
            </zeroOrMore>
            <oneOrMore>
               <choice>
                  <ref name="db.biblioentry"/>
                  <ref name="db.bibliomixed"/>
               </choice>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>bibliolist</db:refname>
      <db:refpurpose>A wrapper for a list of bibliography entries</db:refpurpose>
      <define name="db.bibliolist.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.bibliolist.attlist">
         <interleave>
            <optional>
               <ref name="db.bibliolist.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.bibliolist.info">
         <ref name="db._info.title.only"/>
      </define>

      <define name="db.bibliolist">
         <element name="bibliolist">
            <ref name="db.bibliolist.attlist"/>
            <optional>
               <ref name="db.bibliolist.info"/>
            </optional>
            <zeroOrMore>
               <ref name="db.all.blocks"/>
            </zeroOrMore>
            <oneOrMore>
               <choice>
                  <ref name="db.biblioentry"/>
                  <ref name="db.bibliomixed"/>
               </choice>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>biblioref</db:refname>
      <db:refpurpose/>
      <define name="db.biblioref.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.biblioref.xrefstyle.attribute">
         <attribute name="xrefstyle"/>
      </define>

      <define name="db.biblioref.endterm.attribute">
         <attribute name="endterm">
            <data type="IDREF"/>
         </attribute>
      </define>

      <define name="db.biblioref.units.attribute">
         <attribute name="units">
            <data type="token"/>
         </attribute>
      </define>

      <define name="db.biblioref.begin.attribute">
         <attribute name="begin">
            <data type="token"/>
         </attribute>
      </define>

      <define name="db.biblioref.end.attribute">
         <attribute name="end">
            <data type="token"/>
         </attribute>
      </define>

      <define name="db.biblioref.attlist">
         <interleave>
            <optional>
               <ref name="db.biblioref.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.req.linking.attributes"/>
            <optional>
               <ref name="db.biblioref.xrefstyle.attribute"/>
            </optional>
            <optional>
               <ref name="db.biblioref.endterm.attribute"/>
            </optional>
            <optional>
               <ref name="db.biblioref.units.attribute"/>
            </optional>
            <optional>
               <ref name="db.biblioref.begin.attribute"/>
            </optional>
            <optional>
               <ref name="db.biblioref.end.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.biblioref">
         <element name="biblioref">
            <ref name="db.biblioref.attlist"/>
            <empty/>
         </element>
      </define>

   </div>
   <define name="db.significance.attribute">
      <attribute name="significance">
         <choice>
            <value>normal</value>
            <value>preferred</value>
         </choice>
      </attribute>
   </define>

   <define name="db.zone.attribute">
      <attribute name="zone">
         <data type="IDREFS"/>
      </attribute>
   </define>

   <define name="db.pagenum.attribute">
      <attribute name="pagenum"/>
   </define>

   <define name="db.scope.attribute">
      <attribute name="scope">
         <choice>
            <value>all</value>
            <value>global</value>
            <value>local</value>
         </choice>
      </attribute>
   </define>

   <define name="db.sortas.attribute">
      <attribute name="sortas"/>
   </define>

   <div>
      <db:refname>itermset</db:refname>
      <db:refpurpose>A set of index terms in the meta-information of a document</db:refpurpose>
      <define name="db.itermset.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.itermset.attlist">
         <interleave>
            <optional>
               <ref name="db.itermset.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.itermset">
         <element name="itermset">
            <ref name="db.itermset.attlist"/>
            <oneOrMore>
               <ref name="db.indexterm.singular"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <define name="db.indexterm.contentmodel">
      <optional>
         <ref name="db.primary"/>
      </optional>
      <optional>
         <choice>
            <group>
               <ref name="db.secondary"/>
               <optional>
                  <choice>
                     <group>
                        <ref name="db.tertiary"/>
                        <optional>
                           <choice>
                              <ref name="db.see"/>
                              <oneOrMore>
                                 <ref name="db.seealso"/>
                              </oneOrMore>
                           </choice>
                        </optional>
                     </group>
                     <ref name="db.see"/>
                     <oneOrMore>
                        <ref name="db.seealso"/>
                     </oneOrMore>
                  </choice>
               </optional>
            </group>
            <ref name="db.see"/>
            <oneOrMore>
               <ref name="db.seealso"/>
            </oneOrMore>
         </choice>
      </optional>
   </define>

   <div>
      <db:refname>indexterm</db:refname>
      <db:refpurpose>A wrapper for an indexed term</db:refpurpose>
      <define name="db.indexterm.singular.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.indexterm.singular.class.attribute">
         <attribute name="class">
            <value>singular</value>
         </attribute>
      </define>

      <define name="db.indexterm.singular.attlist">
         <interleave>
            <optional>
               <ref name="db.indexterm.singular.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.significance.attribute"/>
            </optional>
            <optional>
               <ref name="db.zone.attribute"/>
            </optional>
            <optional>
               <ref name="db.pagenum.attribute"/>
            </optional>
            <optional>
               <ref name="db.scope.attribute"/>
            </optional>
            <optional>
               <ref name="db.indexterm.singular.class.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.indexterm.singular">
         <element name="indexterm">
            <ref name="db.indexterm.singular.attlist"/>
            <ref name="db.indexterm.contentmodel"/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>indexterm</db:refname>
      <db:refpurpose>A wrapper for an indexed term that covers a range</db:refpurpose>
      <define name="db.indexterm.startofrange.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.indexterm.startofrange.class.attribute">
         <attribute name="class">
            <value>startofrange</value>
         </attribute>
      </define>

      <define name="db.indexterm.startofrange.attlist">
         <interleave>
            <optional>
               <ref name="db.indexterm.startofrange.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.significance.attribute"/>
            </optional>
            <optional>
               <ref name="db.zone.attribute"/>
            </optional>
            <optional>
               <ref name="db.pagenum.attribute"/>
            </optional>
            <optional>
               <ref name="db.scope.attribute"/>
            </optional>
            <ref name="db.indexterm.startofrange.class.attribute"/>
         </interleave>
      </define>

      <define name="db.indexterm.startofrange">
         <element name="indexterm">
            <ref name="db.indexterm.startofrange.attlist"/>
            <ref name="db.indexterm.contentmodel"/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>indexterm</db:refname>
      <db:refpurpose>Identifies the end of a range associated with an indexed term</db:refpurpose>
      <define name="db.indexterm.endofrange.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.indexterm.endofrange.class.attribute">
         <attribute name="class">
            <value>endofrange</value>
         </attribute>
      </define>

      <define name="db.indexterm.endofrange.startref.attribute">
         <attribute name="startref">
            <data type="IDREF"/>
         </attribute>
      </define>

      <define name="db.indexterm.endofrange.attlist">
         <interleave>
            <optional>
               <ref name="db.indexterm.endofrange.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <ref name="db.indexterm.endofrange.class.attribute"/>
            <ref name="db.indexterm.endofrange.startref.attribute"/>
         </interleave>
      </define>

      <define name="db.indexterm.endofrange">
         <element name="indexterm">
            <ref name="db.indexterm.endofrange.attlist"/>
            <empty/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>indexterm</db:refname>
      <db:refpurpose>A wrapper for terms to be indexed</db:refpurpose>
      <define name="db.indexterm">
         <choice>
            <ref name="db.indexterm.singular"/>
            <ref name="db.indexterm.startofrange"/>
            <ref name="db.indexterm.endofrange"/>
         </choice>
      </define>

   </div>
   <div>
      <db:refname>primary</db:refname>
      <db:refpurpose>The primary word or phrase under which an index term should be sorted</db:refpurpose>
      <define name="db.primary.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.primary.attlist">
         <interleave>
            <optional>
               <ref name="db.primary.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.sortas.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.primary">
         <element name="primary">
            <ref name="db.primary.attlist"/>
            <zeroOrMore>
               <ref name="db.all.inlines"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>secondary</db:refname>
      <db:refpurpose>A secondary word or phrase in an index term</db:refpurpose>
      <define name="db.secondary.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.secondary.attlist">
         <interleave>
            <optional>
               <ref name="db.secondary.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.sortas.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.secondary">
         <element name="secondary">
            <ref name="db.secondary.attlist"/>
            <zeroOrMore>
               <ref name="db.all.inlines"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>tertiary</db:refname>
      <db:refpurpose>A tertiary word or phrase in an index term</db:refpurpose>
      <define name="db.tertiary.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.tertiary.attlist">
         <interleave>
            <optional>
               <ref name="db.tertiary.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.sortas.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.tertiary">
         <element name="tertiary">
            <ref name="db.tertiary.attlist"/>
            <zeroOrMore>
               <ref name="db.all.inlines"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>see</db:refname>
      <db:refpurpose>Part of an index term directing the reader instead to another entry in the index</db:refpurpose>
      <define name="db.see.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.see.attlist">
         <interleave>
            <optional>
               <ref name="db.see.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.see">
         <element name="see">
            <ref name="db.see.attlist"/>
            <zeroOrMore>
               <ref name="db.all.inlines"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>seealso</db:refname>
      <db:refpurpose>Part of an index term directing the reader also to another entry in the index</db:refpurpose>
      <define name="db.seealso.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.seealso.attlist">
         <interleave>
            <optional>
               <ref name="db.seealso.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.seealso">
         <element name="seealso">
            <ref name="db.seealso.attlist"/>
            <zeroOrMore>
               <ref name="db.all.inlines"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>index</db:refname>
      <db:refpurpose>An index to a book or part of a book</db:refpurpose>
      <define name="db.index.status.attribute">
         <ref name="db.status.attribute"/>
      </define>

      <define name="db.index.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.index.attlist">
         <interleave>
            <optional>
               <ref name="db.index.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.label.attribute"/>
            </optional>
            <optional>
               <ref name="db.index.status.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.index.info">
         <ref name="db._info"/>
      </define>

      <define name="db.index">
         <element name="index">
            <s:rule context="/db:index" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="@version">The root element must have a version attribute.</s:assert>
            </s:rule>
            <ref name="db.index.attlist"/>
            <ref name="db.index.info"/>
            <zeroOrMore>
               <ref name="db.all.blocks"/>
            </zeroOrMore>
            <choice>
               <zeroOrMore>
                  <ref name="db.indexdiv"/>
               </zeroOrMore>
               <zeroOrMore>
                  <ref name="db.indexentry"/>
               </zeroOrMore>
               <ref name="db.segmentedlist"/>
            </choice>
         </element>
      </define>

   </div>
   <div>
      <db:refname>setindex</db:refname>
      <db:refpurpose>An index to a set of books</db:refpurpose>
      <define name="db.setindex.status.attribute">
         <ref name="db.status.attribute"/>
      </define>

      <define name="db.setindex.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.setindex.attlist">
         <interleave>
            <optional>
               <ref name="db.setindex.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.label.attribute"/>
            </optional>
            <optional>
               <ref name="db.setindex.status.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.setindex.info">
         <ref name="db._info"/>
      </define>

      <define name="db.setindex">
         <element name="setindex">
            <s:rule context="/db:setindex" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="@version">The root element must have a version attribute.</s:assert>
            </s:rule>
            <ref name="db.setindex.attlist"/>
            <ref name="db.setindex.info"/>
            <zeroOrMore>
               <ref name="db.all.blocks"/>
            </zeroOrMore>
            <choice>
               <zeroOrMore>
                  <ref name="db.indexdiv"/>
               </zeroOrMore>
               <zeroOrMore>
                  <ref name="db.indexentry"/>
               </zeroOrMore>
            </choice>
         </element>
      </define>

   </div>
   <div>
      <db:refname>indexdiv</db:refname>
      <db:refpurpose>A division in an index</db:refpurpose>
      <define name="db.indexdiv.status.attribute">
         <ref name="db.status.attribute"/>
      </define>

      <define name="db.indexdiv.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.indexdiv.attlist">
         <interleave>
            <optional>
               <ref name="db.indexdiv.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.label.attribute"/>
            </optional>
            <optional>
               <ref name="db.indexdiv.status.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.indexdiv.info">
         <ref name="db._info.title.req"/>
      </define>

      <define name="db.indexdiv">
         <element name="indexdiv">
            <ref name="db.indexdiv.attlist"/>
            <ref name="db.indexdiv.info"/>
            <zeroOrMore>
               <ref name="db.all.blocks"/>
            </zeroOrMore>
            <choice>
               <oneOrMore>
                  <ref name="db.indexentry"/>
               </oneOrMore>
               <ref name="db.segmentedlist"/>
            </choice>
         </element>
      </define>

   </div>
   <div>
      <db:refname>indexentry</db:refname>
      <db:refpurpose>An entry in an index</db:refpurpose>
      <define name="db.indexentry.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.indexentry.attlist">
         <interleave>
            <optional>
               <ref name="db.indexentry.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.indexentry">
         <element name="indexentry">
            <ref name="db.indexentry.attlist"/>
            <ref name="db.primaryie"/>
            <zeroOrMore>
               <choice>
                  <ref name="db.seeie"/>
                  <ref name="db.seealsoie"/>
               </choice>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="db.secondaryie"/>
               <zeroOrMore>
                  <choice>
                     <ref name="db.seeie"/>
                     <ref name="db.seealsoie"/>
                     <ref name="db.tertiaryie"/>
                  </choice>
               </zeroOrMore>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>primaryie</db:refname>
      <db:refpurpose>A primary term in an index entry, not in the text</db:refpurpose>
      <define name="db.primaryie.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.primaryie.attlist">
         <interleave>
            <optional>
               <ref name="db.primaryie.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <optional>
               <ref name="db.linkends.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.primaryie">
         <element name="primaryie">
            <ref name="db.primaryie.attlist"/>
            <zeroOrMore>
               <ref name="db.all.inlines"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>secondaryie</db:refname>
      <db:refpurpose>A secondary term in an index entry, rather than in the text</db:refpurpose>
      <define name="db.secondaryie.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.secondaryie.attlist">
         <interleave>
            <optional>
               <ref name="db.secondaryie.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <optional>
               <ref name="db.linkends.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.secondaryie">
         <element name="secondaryie">
            <ref name="db.secondaryie.attlist"/>
            <zeroOrMore>
               <ref name="db.all.inlines"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>tertiaryie</db:refname>
      <db:refpurpose>A tertiary term in an index entry, rather than in the text</db:refpurpose>
      <define name="db.tertiaryie.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.tertiaryie.attlist">
         <interleave>
            <optional>
               <ref name="db.tertiaryie.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <optional>
               <ref name="db.linkends.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.tertiaryie">
         <element name="tertiaryie">
            <ref name="db.tertiaryie.attlist"/>
            <zeroOrMore>
               <ref name="db.all.inlines"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>seeie</db:refname>
      <db:refpurpose>A <db:quote>See</db:quote>
entry in an index, rather than in the text</db:refpurpose>
      <define name="db.seeie.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.seeie.attlist">
         <interleave>
            <optional>
               <ref name="db.seeie.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <optional>
               <ref name="db.linkend.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.seeie">
         <element name="seeie">
            <ref name="db.seeie.attlist"/>
            <zeroOrMore>
               <ref name="db.all.inlines"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>seealsoie</db:refname>
      <db:refpurpose>A <db:quote>See also</db:quote>
 entry in an index, rather than in the text</db:refpurpose>
      <define name="db.seealsoie.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.seealsoie.attlist">
         <interleave>
            <optional>
               <ref name="db.seealsoie.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <optional>
               <ref name="db.linkends.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.seealsoie">
         <element name="seealsoie">
            <ref name="db.seealsoie.attlist"/>
            <zeroOrMore>
               <ref name="db.all.inlines"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>toc</db:refname>
      <db:refpurpose>A table of contents</db:refpurpose>
      <define name="db.toc.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.toc.attlist">
         <interleave>
            <optional>
               <ref name="db.toc.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.toc.info">
         <ref name="db._info.title.only"/>
      </define>

      <define name="db.toc">
         <element name="toc">
            <s:rule context="/db:toc" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="@version">The root element must have a version attribute.</s:assert>
            </s:rule>
            <ref name="db.toc.attlist"/>
            <ref name="db.toc.info"/>
            <zeroOrMore>
               <ref name="db.all.blocks"/>
            </zeroOrMore>
            <zeroOrMore>
               <choice>
                  <ref name="db.tocdiv"/>
                  <ref name="db.tocentry"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>tocdiv</db:refname>
      <db:refpurpose/>
      <define name="db.tocdiv.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.tocdiv.pagenum.attribute">
         <attribute name="pagenum"/>
      </define>

      <define name="db.tocdiv.attlist">
         <interleave>
            <optional>
               <ref name="db.tocdiv.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <optional>
               <ref name="db.tocdiv.pagenum.attribute"/>
            </optional>
            <optional>
               <ref name="db.linkend.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.tocdiv.info">
         <ref name="db._info"/>
      </define>

      <define name="db.tocdiv">
         <element name="tocdiv">
            <ref name="db.tocdiv.attlist"/>
            <ref name="db.tocdiv.info"/>
            <zeroOrMore>
               <ref name="db.all.blocks"/>
            </zeroOrMore>
            <oneOrMore>
               <choice>
                  <ref name="db.tocdiv"/>
                  <ref name="db.tocentry"/>
               </choice>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>tocentry</db:refname>
      <db:refpurpose>A component title in a table of contents</db:refpurpose>
      <define name="db.tocentry.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.tocentry.pagenum.attribute">
         <attribute name="pagenum"/>
      </define>

      <define name="db.tocentry.attlist">
         <interleave>
            <optional>
               <ref name="db.tocentry.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <optional>
               <ref name="db.tocentry.pagenum.attribute"/>
            </optional>
            <optional>
               <ref name="db.linkend.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.tocentry">
         <element name="tocentry">
            <ref name="db.tocentry.attlist"/>
            <zeroOrMore>
               <ref name="db.all.inlines"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <define name="db.task.info">
      <ref name="db._info.title.only"/>
   </define>

   <div>
      <db:refname>task</db:refname>
      <db:refpurpose>A task to be completed</db:refpurpose>
      <define name="db.task.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.task.attlist">
         <interleave>
            <optional>
               <ref name="db.task.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.task">
         <element name="task">
            <ref name="db.task.attlist"/>
            <ref name="db.task.info"/>
            <optional>
               <ref name="db.tasksummary"/>
            </optional>
            <optional>
               <ref name="db.taskprerequisites"/>
            </optional>
            <ref name="db.procedure"/>
            <zeroOrMore>
               <ref name="db.example"/>
            </zeroOrMore>
            <optional>
               <ref name="db.taskrelated"/>
            </optional>
         </element>
      </define>

   </div>
   <div>
      <db:refname>tasksummary</db:refname>
      <db:refpurpose>A summary of a task</db:refpurpose>
      <define name="db.tasksummary.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.tasksummary.attlist">
         <interleave>
            <optional>
               <ref name="db.tasksummary.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.tasksummary.info">
         <ref name="db._info.title.only"/>
      </define>

      <define name="db.tasksummary">
         <element name="tasksummary">
            <ref name="db.tasksummary.attlist"/>
            <ref name="db.tasksummary.info"/>
            <oneOrMore>
               <ref name="db.all.blocks"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>taskprerequisites</db:refname>
      <db:refpurpose>The prerequisites for a task</db:refpurpose>
      <define name="db.taskprerequisites.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.taskprerequisites.attlist">
         <interleave>
            <optional>
               <ref name="db.taskprerequisites.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.taskprerequisites.info">
         <ref name="db._info.title.only"/>
      </define>

      <define name="db.taskprerequisites">
         <element name="taskprerequisites">
            <ref name="db.taskprerequisites.attlist"/>
            <ref name="db.taskprerequisites.info"/>
            <oneOrMore>
               <ref name="db.all.blocks"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>taskrelated</db:refname>
      <db:refpurpose>Information related to a task</db:refpurpose>
      <define name="db.taskrelated.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.taskrelated.attlist">
         <interleave>
            <optional>
               <ref name="db.taskrelated.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.taskrelated.info">
         <ref name="db._info.title.only"/>
      </define>

      <define name="db.taskrelated">
         <element name="taskrelated">
            <ref name="db.taskrelated.attlist"/>
            <ref name="db.taskrelated.info"/>
            <oneOrMore>
               <ref name="db.all.blocks"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <ctrl:other-attribute name="area.units.attrib" enum-name="area.units-enum.attribute" other-name="area.units-other.attributes" xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/"/>

   <define name="db.area.units.enumeration">
      <choice>
         <value>calspair</value>
         <value>linecolumn</value>
         <value>linecolumnpair</value>
         <value>linerange</value>
      </choice>
   </define>

   <define name="db.area.units-enum.attribute">
      <optional>
         <attribute name="units">
            <ref name="db.area.units.enumeration"/>
         </attribute>
      </optional>
   </define>

   <define name="db.area.units-other.attributes">
      <optional>
         <attribute name="units">
            <value>other</value>
         </attribute>
      </optional>
      <attribute name="otherunits">
         <data type="NMTOKEN"/>
      </attribute>
   </define>

   <define name="db.area.units.attribute">
      <choice>
         <ref name="db.area.units-enum.attribute"/>
         <ref name="db.area.units-other.attributes"/>
      </choice>
   </define>

   <div>
      <db:refname>calloutlist</db:refname>
      <db:refpurpose>A list of <db:tag>callout</db:tag>
s</db:refpurpose>
      <define name="db.calloutlist.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.calloutlist.attlist">
         <interleave>
            <optional>
               <ref name="db.calloutlist.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.calloutlist.info">
         <ref name="db._info.title.only"/>
      </define>

      <define name="db.calloutlist">
         <element name="calloutlist">
            <ref name="db.calloutlist.attlist"/>
            <ref name="db.calloutlist.info"/>
            <zeroOrMore>
               <ref name="db.all.blocks"/>
            </zeroOrMore>
            <oneOrMore>
               <ref name="db.callout"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>callout</db:refname>
      <db:refpurpose>A &amp;#8220;called out&amp;#8221; description of a marked Area</db:refpurpose>
      <define name="db.callout.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.callout.arearefs.attribute">
         <attribute name="arearefs">
            <data type="IDREFS"/>
         </attribute>
      </define>

      <define name="db.callout.attlist">
         <interleave>
            <optional>
               <ref name="db.callout.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.callout.arearefs.attribute"/>
         </interleave>
      </define>

      <define name="db.callout">
         <element name="callout">
            <ref name="db.callout.attlist"/>
            <oneOrMore>
               <ref name="db.all.blocks"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>programlistingco</db:refname>
      <db:refpurpose>A program listing with associated areas used in callouts</db:refpurpose>
      <define name="db.programlistingco.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.programlistingco.attlist">
         <interleave>
            <optional>
               <ref name="db.programlistingco.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.programlistingco.info">
         <ref name="db._info.title.forbidden"/>
      </define>

      <define name="db.programlistingco">
         <element name="programlistingco">
            <ref name="db.programlistingco.attlist"/>
            <ref name="db.programlistingco.info"/>
            <ref name="db.areaspec"/>
            <ref name="db.programlisting"/>
            <zeroOrMore>
               <ref name="db.calloutlist"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>areaspec</db:refname>
      <db:refpurpose>A collection of regions in a graphic or code example</db:refpurpose>
      <define name="db.areaspec.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.areaspec.attlist">
         <interleave>
            <optional>
               <ref name="db.areaspec.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <ref name="db.area.units.attribute"/>
         </interleave>
      </define>

      <define name="db.areaspec">
         <element name="areaspec">
            <ref name="db.areaspec.attlist"/>
            <oneOrMore>
               <choice>
                  <ref name="db.area"/>
                  <ref name="db.areaset"/>
               </choice>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>area</db:refname>
      <db:refpurpose>A region defined for a Callout in a graphic or code example</db:refpurpose>
      <define name="db.area.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.area.linkends.attribute">
         <attribute name="linkends">
            <data type="IDREFS"/>
         </attribute>
      </define>

      <define name="db.area.label.attribute">
         <attribute name="label"/>
      </define>

      <define name="db.area.coords.attribute">
         <attribute name="coords"/>
      </define>

      <define name="db.area.attlist">
         <interleave>
            <optional>
               <ref name="db.area.role.attribute"/>
            </optional>
            <ref name="db.common.idreq.attributes"/>
            <ref name="db.area.units.attribute"/>
            <optional>
               <choice>
                  <ref name="db.area.linkends.attribute"/>
                  <ref name="db.href.attribute"/>
               </choice>
            </optional>
            <optional>
               <ref name="db.area.label.attribute"/>
            </optional>
            <ref name="db.area.coords.attribute"/>
         </interleave>
      </define>

      <define name="db.area">
         <element name="area">
            <ref name="db.area.attlist"/>
            <empty/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>areaset</db:refname>
      <db:refpurpose>A set of related areas in a graphic or code example</db:refpurpose>
      <define name="db.areaset.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.areaset.label.attribute">
         <attribute name="label"/>
      </define>

      <define name="db.areaset.attlist">
         <interleave>
            <optional>
               <ref name="db.areaset.role.attribute"/>
            </optional>
            <ref name="db.common.idreq.attributes"/>
            <ref name="db.area.units.attribute"/>
            <optional>
               <ref name="db.areaset.label.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.areaset">
         <element name="areaset">
            <ref name="db.areaset.attlist"/>
            <oneOrMore>
               <ref name="db.area"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>screenco</db:refname>
      <db:refpurpose>A screen with associated areas used in callouts</db:refpurpose>
      <define name="db.screenco.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.screenco.attlist">
         <interleave>
            <optional>
               <ref name="db.screenco.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.screenco.info">
         <ref name="db._info.title.forbidden"/>
      </define>

      <define name="db.screenco">
         <element name="screenco">
            <ref name="db.screenco.attlist"/>
            <ref name="db.screenco.info"/>
            <ref name="db.areaspec"/>
            <ref name="db.screen"/>
            <zeroOrMore>
               <ref name="db.calloutlist"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>imageobjectco</db:refname>
      <db:refpurpose>A wrapper for an image object with callouts</db:refpurpose>
      <define name="db.imageobjectco.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.imageobjectco.attlist">
         <interleave>
            <optional>
               <ref name="db.imageobjectco.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.imageobjectco.info">
         <ref name="db._info.title.forbidden"/>
      </define>

      <define name="db.imageobjectco">
         <element name="imageobjectco">
            <ref name="db.imageobjectco.attlist"/>
            <ref name="db.imageobjectco.info"/>
            <ref name="db.areaspec"/>
            <ref name="db.imageobject"/>
            <zeroOrMore>
               <ref name="db.calloutlist"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>co</db:refname>
      <db:refpurpose>The location of a callout embedded in text</db:refpurpose>
      <define name="db.co.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.co.linkends.attribute">
         <attribute name="linkends">
            <data type="IDREFS"/>
         </attribute>
      </define>

      <define name="db.co.label.attribute">
         <attribute name="label"/>
      </define>

      <define name="db.co.attlist">
         <interleave>
            <optional>
               <ref name="db.co.role.attribute"/>
            </optional>
            <ref name="db.common.idreq.attributes"/>
            <optional>
               <ref name="db.co.linkends.attribute"/>
            </optional>
            <optional>
               <ref name="db.co.label.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.co">
         <element name="co">
            <ref name="db.co.attlist"/>
            <empty/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>coref</db:refname>
      <db:refpurpose>A cross reference to a co</db:refpurpose>
      <define name="db.coref.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.coref.label.attribute">
         <attribute name="label"/>
      </define>

      <define name="db.coref.attlist">
         <interleave>
            <optional>
               <ref name="db.coref.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.linkend.attribute"/>
            <optional>
               <ref name="db.coref.label.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.coref">
         <element name="coref">
            <ref name="db.coref.attlist"/>
            <empty/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>productionset</db:refname>
      <db:refpurpose>A set of EBNF productions</db:refpurpose>
      <define name="db.productionset.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.productionset.attlist">
         <interleave>
            <optional>
               <ref name="db.productionset.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.productionset.info">
         <ref name="db._info.title.only"/>
      </define>

      <define name="db.productionset">
         <element name="productionset">
            <ref name="db.productionset.attlist"/>
            <ref name="db.productionset.info"/>
            <oneOrMore>
               <choice>
                  <ref name="db.production"/>
                  <ref name="db.productionrecap"/>
               </choice>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>production</db:refname>
      <db:refpurpose>A production in a set of EBNF productions</db:refpurpose>
      <define name="db.production.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.production.attlist">
         <interleave>
            <optional>
               <ref name="db.production.role.attribute"/>
            </optional>
            <ref name="db.common.idreq.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.production">
         <element name="production">
            <ref name="db.production.attlist"/>
            <ref name="db.lhs"/>
            <ref name="db.rhs"/>
            <zeroOrMore>
               <ref name="db.constraint"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>lhs</db:refname>
      <db:refpurpose>The left-hand side of an EBNF production</db:refpurpose>
      <define name="db.lhs.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.lhs.attlist">
         <interleave>
            <optional>
               <ref name="db.lhs.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.lhs">
         <element name="lhs">
            <ref name="db.lhs.attlist"/>
            <text/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>rhs</db:refname>
      <db:refpurpose>The right-hand side of an EBNF production</db:refpurpose>
      <define name="db.rhs.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.rhs.attlist">
         <interleave>
            <optional>
               <ref name="db.rhs.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.rhs">
         <element name="rhs">
            <ref name="db.rhs.attlist"/>
            <zeroOrMore>
               <choice>
                  <text/>
                  <ref name="db.nonterminal"/>
                  <ref name="db.lineannotation"/>
                  <ref name="db.sbr"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>nonterminal</db:refname>
      <db:refpurpose>A non-terminal in an EBNF production</db:refpurpose>
      <define name="db.nonterminal.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.nonterminal.def.attribute">
         <attribute name="def"/>
      </define>

      <define name="db.nonterminal.attlist">
         <interleave>
            <optional>
               <ref name="db.nonterminal.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <ref name="db.nonterminal.def.attribute"/>
         </interleave>
      </define>

      <define name="db.nonterminal">
         <element name="nonterminal">
            <ref name="db.nonterminal.attlist"/>
            <text/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>constraint</db:refname>
      <db:refpurpose>A constraint in an EBNF production</db:refpurpose>
      <define name="db.constraint.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.constraint.attlist">
         <interleave>
            <optional>
               <ref name="db.constraint.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.req.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.constraint">
         <element name="constraint">
            <ref name="db.constraint.attlist"/>
            <empty/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>productionrecap</db:refname>
      <db:refpurpose>A cross-reference to an EBNF production</db:refpurpose>
      <define name="db.productionrecap.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.productionrecap.attlist">
         <interleave>
            <optional>
               <ref name="db.productionrecap.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.req.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.productionrecap">
         <element name="productionrecap">
            <ref name="db.productionrecap.attlist"/>
            <empty/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>constraintdef</db:refname>
      <db:refpurpose>The definition of a constraint in an EBNF production</db:refpurpose>
      <define name="db.constraintdef.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.constraintdef.attlist">
         <interleave>
            <optional>
               <ref name="db.constraintdef.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.constraintdef.info">
         <ref name="db._info.title.only"/>
      </define>

      <define name="db.constraintdef">
         <element name="constraintdef">
            <ref name="db.constraintdef.attlist"/>
            <ref name="db.constraintdef.info"/>
            <oneOrMore>
               <ref name="db.all.blocks"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <define name="db.char.attribute">
      <attribute name="char"/>
   </define>

   <define name="db.charoff.attribute">
      <attribute name="charoff"/>
   </define>

   <define name="db.frame.attribute">
      <attribute name="frame">
         <dbx:description>
            <db:para>The <db:tag class="atribute">frame</db:tag>
 specifies how the table is to be framed:</db:para>
            <db:informaltable>
               <db:tgroup cols="2">
                  <db:thead>
                     <db:row>
                        <db:entry>Value</db:entry>
                        <db:entry>Meaning</db:entry>
                     </db:row>
                  </db:thead>
                  <db:tbody>
                     <db:row>
                        <db:entry>
                           <db:tag class="attvalue">all</db:tag>
                        </db:entry>
                        <db:entry>
                           <db:para>Frame all four sides of the table. In some environments with limited control over table border formatting, such as HTML, this may imply additional borders.</db:para>
                        </db:entry>
                     </db:row>
                     <db:row>
                        <db:entry>
                           <db:tag class="attvalue">bottom</db:tag>
                        </db:entry>
                        <db:entry>
                           <db:para>Frame only the bottom of the table.</db:para>
                        </db:entry>
                     </db:row>
                     <db:row>
                        <db:entry>
                           <db:tag class="attvalue">none</db:tag>
                        </db:entry>
                        <db:entry>
                           <db:para>Place no border on the table. In some environments with limited control over table border formatting, such as HTML, this may disable other borders aswell.</db:para>
                        </db:entry>
                     </db:row>
                     <db:row>
                        <db:entry>
                           <db:tag class="attvalue">sides</db:tag>
                        </db:entry>
                        <db:entry>
                           <db:para>Frame the left and right sides of the table.</db:para>
                        </db:entry>
                     </db:row>
                     <db:row>
                        <db:entry>
                           <db:tag class="attvalue">top</db:tag>
                        </db:entry>
                        <db:entry>
                           <db:para>Frame the top of the table.</db:para>
                        </db:entry>
                     </db:row>
                     <db:row>
                        <db:entry>
                           <db:tag class="attvalue">topbot</db:tag>
                        </db:entry>
                        <db:entry>
                           <db:para>Frame the top and bottom of the table.</db:para>
                        </db:entry>
                     </db:row>
                  </db:tbody>
               </db:tgroup>
            </db:informaltable>
            <db:para>There is no way to obtain a border on only the starting edge (left, in left-to-right writing systems) of the table.</db:para>
         </dbx:description>
         <choice>
            <value>all</value>
            <value>bottom</value>
            <value>none</value>
            <value>sides</value>
            <value>top</value>
            <value>topbot</value>
         </choice>
      </attribute>
   </define>

   <define name="db.colsep.attribute">
      <attribute name="colsep">
         <dbx:description>
            <db:para>If <db:tag class="attribute">colsep</db:tag>
 has the value 1 (true), then a rule will be drawn to the right of all columns in this table. A value of 0 (false) suppresses the rule. The rule to the right of the last column in the table is controlled by the <db:tag class="attribute">frame</db:tag>
 attribute, not <db:tag class="attribute">colsep</db:tag>
.</db:para>
         </dbx:description>
      </attribute>
   </define>

   <define name="db.rowsep.attribute">
      <attribute name="rowsep">
         <dbx:description>
            <db:para>If <db:tag class="attribute">rowsep</db:tag>
 has the value 1 (true), then a rule will be drawn below all rows in this table. A value of 0 (false) suppresses the rule. The rule below the last row in the table is controlled by the <db:tag class="attribute">frame</db:tag>
 attribute, not <db:tag class="attribute">rowsep</db:tag>
.</db:para>
         </dbx:description>
      </attribute>
   </define>

   <define name="db.orient.attribute">
      <attribute name="orient">
         <dbx:description>
            <db:para>The <db:tag class="attribute">orient</db:tag>
 attribute specifies the orientation of the table.. An orientation of <db:tag class="attvalue">port</db:tag>
 is <db:quote>upright</db:quote>
, the same orientation as the rest of the text flow. An orientation of <db:tag class="attvalue">land</db:tag>
 is 90 degrees counter-clockwise from the upright orientation.</db:para>
         </dbx:description>
         <choice>
            <value>land</value>
            <value>port</value>
         </choice>
      </attribute>
   </define>

   <define name="db.tabstyle.attribute">
      <attribute name="tabstyle">
         <dbx:description>
            <db:para>The <db:tag class="attribute">tabstyle</db:tag>
 attribute holds the name of a table style defined in a stylesheet that will be used to process this document.</db:para>
         </dbx:description>
      </attribute>
   </define>

   <define name="db.rowheader.attribute">
      <attribute name="rowheader">
         <dbx:description>
            <db:para>The <db:tag class="attribute">rowheader</db:tag>
 attribute indicates whether the entries in the first column of the table are functionally row headers (analagous to the way that a <db:tag>thead</db:tag>
 provides column headers). A value of <db:tag class="attvalue">firstcol</db:tag>
 indicates that they are, a value of <db:tag class="attvalue">norowheader</db:tag>
 indicates that they are not.</db:para>
         </dbx:description>
         <choice>
            <value>firstcol</value>
            <value>norowheader</value>
         </choice>
      </attribute>
   </define>

   <define name="db.align.attribute">
      <attribute name="align">
         <choice>
            <value>center</value>
            <value>char</value>
            <value>justify</value>
            <value>left</value>
            <value>right</value>
         </choice>
      </attribute>
   </define>

   <define name="db.valign.attribute">
      <attribute name="valign">
         <choice>
            <value>bottom</value>
            <value>middle</value>
            <value>top</value>
         </choice>
      </attribute>
   </define>

   <define name="db.specify-col-by-colname.attributes">
      <attribute name="colname"/>
   </define>

   <define name="db.specify-col-by-namest.attributes">
      <attribute name="namest"/>
   </define>

   <define name="db.specify-span-by-spanspec.attributes">
      <attribute name="spanname"/>
   </define>

   <define name="db.specify-span-directly.attributes">
      <interleave>
         <attribute name="namest"/>
         <attribute name="nameend"/>
      </interleave>
   </define>

   <define name="db.column-spec.attributes">
      <choice>
         <ref name="db.specify-col-by-colname.attributes"/>
         <ref name="db.specify-col-by-namest.attributes"/>
         <ref name="db.specify-span-by-spanspec.attributes"/>
         <ref name="db.specify-span-directly.attributes"/>
      </choice>
   </define>

   <define name="db.colname.attribute">
      <attribute name="colname"/>
   </define>

   <define name="db.spanname.attribute">
      <attribute name="spanname"/>
   </define>

   <div>
      <db:refname>tgroup</db:refname>
      <db:refpurpose>A wrapper for the main content of a table, or part of a table</db:refpurpose>
      <define name="db.tgroup.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.tgroup.tgroupstyle.attribute">
         <attribute name="tgroupstyle"/>
      </define>

      <define name="db.tgroup.cols.attribute">
         <attribute name="cols">
            <data type="integer"/>
         </attribute>
      </define>

      <define name="db.tgroup.attlist">
         <interleave>
            <optional>
               <ref name="db.tgroup.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.char.attribute"/>
            </optional>
            <optional>
               <ref name="db.charoff.attribute"/>
            </optional>
            <optional>
               <ref name="db.tgroup.tgroupstyle.attribute"/>
            </optional>
            <ref name="db.tgroup.cols.attribute"/>
            <optional>
               <ref name="db.colsep.attribute"/>
            </optional>
            <optional>
               <ref name="db.rowsep.attribute"/>
            </optional>
            <optional>
               <ref name="db.align.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.tgroup">
         <element name="tgroup">
            <ref name="db.tgroup.attlist"/>
            <zeroOrMore>
               <ref name="db.colspec"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="db.spanspec"/>
            </zeroOrMore>
            <optional>
               <ref name="db.cals.thead"/>
            </optional>
            <optional>
               <ref name="db.cals.tfoot"/>
            </optional>
            <ref name="db.cals.tbody"/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>colspec</db:refname>
      <db:refpurpose>Specifications for a column in a table</db:refpurpose>
      <define name="db.colspec.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.colspec.colnum.attribute">
         <attribute name="colnum">
            <data type="integer"/>
         </attribute>
      </define>

      <define name="db.colspec.colwidth.attribute">
         <attribute name="colwidth"/>
      </define>

      <define name="db.colspec.attlist">
         <interleave>
            <optional>
               <ref name="db.colspec.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.colspec.colnum.attribute"/>
            </optional>
            <optional>
               <ref name="db.char.attribute"/>
            </optional>
            <optional>
               <ref name="db.colsep.attribute"/>
            </optional>
            <optional>
               <ref name="db.colspec.colwidth.attribute"/>
            </optional>
            <optional>
               <ref name="db.charoff.attribute"/>
            </optional>
            <optional>
               <ref name="db.colname.attribute"/>
            </optional>
            <optional>
               <ref name="db.rowsep.attribute"/>
            </optional>
            <optional>
               <ref name="db.align.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.colspec">
         <element name="colspec">
            <ref name="db.colspec.attlist"/>
            <empty/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>spanspec</db:refname>
      <db:refpurpose>Formatting information for a spanned column in a table</db:refpurpose>
      <define name="db.spanspec.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.spanspec.namest.attribute">
         <attribute name="namest"/>
      </define>

      <define name="db.spanspec.nameend.attribute">
         <attribute name="nameend"/>
      </define>

      <define name="db.spanspec.attlist">
         <interleave>
            <optional>
               <ref name="db.spanspec.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <ref name="db.spanname.attribute"/>
            <ref name="db.spanspec.namest.attribute"/>
            <ref name="db.spanspec.nameend.attribute"/>
            <optional>
               <ref name="db.char.attribute"/>
            </optional>
            <optional>
               <ref name="db.colsep.attribute"/>
            </optional>
            <optional>
               <ref name="db.charoff.attribute"/>
            </optional>
            <optional>
               <ref name="db.rowsep.attribute"/>
            </optional>
            <optional>
               <ref name="db.align.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.spanspec">
         <element name="spanspec">
            <ref name="db.spanspec.attlist"/>
            <empty/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>thead</db:refname>
      <db:refpurpose>A table header consisting of one or more rows</db:refpurpose>
      <define name="db.cals.thead.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.cals.thead.attlist">
         <interleave>
            <optional>
               <ref name="db.cals.thead.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.valign.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.cals.thead">
         <element name="thead">
            <ref name="db.cals.thead.attlist"/>
            <zeroOrMore>
               <ref name="db.colspec"/>
            </zeroOrMore>
            <oneOrMore>
               <ref name="db.row"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>tfoot</db:refname>
      <db:refpurpose>A table footer consisting of one or more rows</db:refpurpose>
      <define name="db.cals.tfoot.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.cals.tfoot.attlist">
         <interleave>
            <optional>
               <ref name="db.cals.tfoot.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.valign.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.cals.tfoot">
         <element name="tfoot">
            <ref name="db.cals.tfoot.attlist"/>
            <zeroOrMore>
               <ref name="db.colspec"/>
            </zeroOrMore>
            <oneOrMore>
               <ref name="db.row"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>tbody</db:refname>
      <db:refpurpose>A wrapper for the rows of a table or informal table</db:refpurpose>
      <define name="db.cals.tbody.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.cals.tbody.attlist">
         <interleave>
            <optional>
               <ref name="db.cals.tbody.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.valign.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.cals.tbody">
         <element name="tbody">
            <ref name="db.cals.tbody.attlist"/>
            <oneOrMore>
               <ref name="db.row"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>row</db:refname>
      <db:refpurpose>A row in a table</db:refpurpose>
      <define name="db.row.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.row.attlist">
         <interleave>
            <optional>
               <ref name="db.row.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.rowsep.attribute"/>
            </optional>
            <optional>
               <ref name="db.valign.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.row">
         <element name="row">
            <ref name="db.row.attlist"/>
            <oneOrMore>
               <choice>
                  <ref name="db.entry"/>
                  <ref name="db.entrytbl"/>
               </choice>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>entry</db:refname>
      <db:refpurpose>A cell in a table</db:refpurpose>
      <define name="db.entry.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.entry.morerows.attribute">
         <attribute name="morerows">
            <data type="integer"/>
         </attribute>
      </define>

      <define name="db.entry.rotate.attribute">
         <attribute name="rotate"/>
      </define>

      <define name="db.entry.attlist">
         <interleave>
            <optional>
               <ref name="db.entry.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.valign.attribute"/>
            </optional>
            <optional>
               <ref name="db.char.attribute"/>
            </optional>
            <optional>
               <ref name="db.colsep.attribute"/>
            </optional>
            <optional>
               <ref name="db.charoff.attribute"/>
            </optional>
            <optional>
               <ref name="db.entry.morerows.attribute"/>
            </optional>
            <optional>
               <ref name="db.column-spec.attributes"/>
            </optional>
            <optional>
               <ref name="db.rowsep.attribute"/>
            </optional>
            <optional>
               <ref name="db.entry.rotate.attribute"/>
            </optional>
            <optional>
               <ref name="db.align.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.entry">
         <element name="entry">
            <ref name="db.entry.attlist"/>
            <choice>
               <zeroOrMore>
                  <ref name="db.all.inlines"/>
               </zeroOrMore>
               <zeroOrMore>
                  <ref name="db.all.blocks"/>
               </zeroOrMore>
            </choice>
         </element>
      </define>

   </div>
   <div>
      <db:refname>entrytbl</db:refname>
      <db:refpurpose>A subtable appearing in place of an Entry in a table</db:refpurpose>
      <define name="db.entrytbl.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.entrytbl.tgroupstyle.attribute">
         <attribute name="tgroupstyle"/>
      </define>

      <define name="db.entrytbl.cols.attribute">
         <attribute name="cols">
            <data type="integer"/>
         </attribute>
      </define>

      <define name="db.entrytbl.attlist">
         <interleave>
            <optional>
               <ref name="db.entrytbl.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.char.attribute"/>
            </optional>
            <optional>
               <ref name="db.charoff.attribute"/>
            </optional>
            <optional>
               <ref name="db.column-spec.attributes"/>
            </optional>
            <optional>
               <ref name="db.entrytbl.tgroupstyle.attribute"/>
            </optional>
            <optional>
               <ref name="db.entrytbl.cols.attribute"/>
            </optional>
            <optional>
               <ref name="db.colsep.attribute"/>
            </optional>
            <optional>
               <ref name="db.rowsep.attribute"/>
            </optional>
            <optional>
               <ref name="db.align.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.entrytbl">
         <element name="entrytbl">
            <ref name="db.entrytbl.attlist"/>
            <zeroOrMore>
               <ref name="db.colspec"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="db.spanspec"/>
            </zeroOrMore>
            <optional>
               <ref name="db.cals.entrytbl.thead"/>
            </optional>
            <ref name="db.cals.entrytbl.tbody"/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>thead</db:refname>
      <db:refpurpose>A table header consisting of one or more rows</db:refpurpose>
      <define name="db.cals.entrytbl.thead.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.cals.entrytbl.thead.attlist">
         <interleave>
            <optional>
               <ref name="db.cals.entrytbl.thead.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.valign.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.cals.entrytbl.thead">
         <element name="thead">
            <ref name="db.cals.entrytbl.thead.attlist"/>
            <zeroOrMore>
               <ref name="db.colspec"/>
            </zeroOrMore>
            <oneOrMore>
               <ref name="db.entrytbl.row"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>tbody</db:refname>
      <db:refpurpose>A wrapper for the rows of a table or informal table</db:refpurpose>
      <define name="db.cals.entrytbl.tbody.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.cals.entrytbl.tbody.attlist">
         <interleave>
            <optional>
               <ref name="db.cals.entrytbl.tbody.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.valign.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.cals.entrytbl.tbody">
         <element name="tbody">
            <ref name="db.cals.entrytbl.tbody.attlist"/>
            <oneOrMore>
               <ref name="db.entrytbl.row"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>row</db:refname>
      <db:refpurpose>A row in a table</db:refpurpose>
      <define name="db.entrytbl.row.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.entrytbl.row.attlist">
         <interleave>
            <optional>
               <ref name="db.entrytbl.row.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.rowsep.attribute"/>
            </optional>
            <optional>
               <ref name="db.valign.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.entrytbl.row">
         <element name="row">
            <ref name="db.entrytbl.row.attlist"/>
            <oneOrMore>
               <ref name="db.entry"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>table</db:refname>
      <db:refpurpose>A formal table in a document</db:refpurpose>
      <ctrl:exclude from="db.cals.table" exclude="db.cals.table" xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/"/>

      <ctrl:exclude from="db.cals.table" exclude="db.cals.informaltable" xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/"/>

      <define name="db.cals.table.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.cals.table.attlist">
         <interleave>
            <optional>
               <ref name="db.cals.table.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.tabstyle.attribute"/>
            </optional>
            <optional>
               <ref name="db.floatstyle.attribute"/>
            </optional>
            <optional>
               <ref name="db.orient.attribute"/>
            </optional>
            <optional>
               <ref name="db.colsep.attribute"/>
            </optional>
            <optional>
               <ref name="db.rowsep.attribute"/>
            </optional>
            <optional>
               <ref name="db.frame.attribute"/>
            </optional>
            <optional>
               <ref name="db.pgwide.attribute"/>
            </optional>
            <optional>
               <attribute name="shortentry">
                  <dbx:description>
                     <db:para>If <db:tag class="attribute">shortentry</db:tag>
 has the value 1 (true), then the table's <db:tag>titleabbrev</db:tag>
 will be used in the list of titles, index, etc. A value of 0 (false) indicates that the full <db:tag>title</db:tag>
 title should be used in those places.</db:para>
                  </dbx:description>
                  <choice>
                     <value>0</value>
                     <value>1</value>
                  </choice>
               </attribute>
            </optional>
            <optional>
               <attribute name="tocentry">
                  <dbx:description>
                     <db:para>If <db:tag class="attribute">tocentry</db:tag>
 has the value 1 (true), then the table will appear in a generated list of tables. A value of 0 (false) indicates that it should not.</db:para>
                  </dbx:description>
                  <choice>
                     <value>0</value>
                     <value>1</value>
                  </choice>
               </attribute>
            </optional>
            <optional>
               <ref name="db.rowheader.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.cals.table.info">
         <ref name="db._info.title.onlyreq"/>
      </define>

      <define name="db.cals.table">
         <element name="table">
            <s:rule context="db:table" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:example)">example must not occur in the descendants of table</s:assert>
            </s:rule>
            <s:rule context="db:table" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:figure)">figure must not occur in the descendants of table</s:assert>
            </s:rule>
            <s:rule context="db:table" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:table)">table must not occur in the descendants of table</s:assert>
            </s:rule>
            <s:rule context="db:table" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:table)">table must not occur in the descendants of table</s:assert>
            </s:rule>
            <s:rule context="db:table" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:caution)">caution must not occur in the descendants of table</s:assert>
            </s:rule>
            <s:rule context="db:table" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:important)">important must not occur in the descendants of table</s:assert>
            </s:rule>
            <s:rule context="db:table" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:note)">note must not occur in the descendants of table</s:assert>
            </s:rule>
            <s:rule context="db:table" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:tip)">tip must not occur in the descendants of table</s:assert>
            </s:rule>
            <s:rule context="db:table" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:warning)">warning must not occur in the descendants of table</s:assert>
            </s:rule>
            <s:rule context="db:table" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:table)">table must not occur in the descendants of table</s:assert>
            </s:rule>
            <s:rule context="db:table" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:informaltable)">informaltable must not occur in the descendants of table</s:assert>
            </s:rule>
            <ref name="db.cals.table.attlist"/>
            <ref name="db.cals.table.info"/>
            <interleave>
               <optional>
                  <ref name="db.alt"/>
               </optional>
               <zeroOrMore>
                  <ref name="db.indexing.inlines"/>
               </zeroOrMore>
               <zeroOrMore>
                  <ref name="db.textobject"/>
               </zeroOrMore>
            </interleave>
            <choice>
               <oneOrMore>
                  <ref name="db.mediaobject"/>
               </oneOrMore>
               <oneOrMore>
                  <ref name="db.tgroup"/>
               </oneOrMore>
            </choice>
            <optional>
               <ref name="db.caption"/>
            </optional>
         </element>
      </define>

   </div>
   <div>
      <db:refname>informaltable</db:refname>
      <db:refpurpose>A table without a title</db:refpurpose>
      <define name="db.cals.informaltable.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.cals.informaltable.attlist">
         <interleave>
            <optional>
               <ref name="db.cals.informaltable.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.tabstyle.attribute"/>
            </optional>
            <optional>
               <ref name="db.floatstyle.attribute"/>
            </optional>
            <optional>
               <ref name="db.orient.attribute"/>
            </optional>
            <optional>
               <ref name="db.colsep.attribute"/>
            </optional>
            <optional>
               <ref name="db.rowsep.attribute"/>
            </optional>
            <optional>
               <ref name="db.frame.attribute"/>
            </optional>
            <optional>
               <ref name="db.pgwide.attribute"/>
            </optional>
            <optional>
               <ref name="db.rowheader.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.cals.informaltable.info">
         <ref name="db._info.title.forbidden"/>
      </define>

      <define name="db.cals.informaltable">
         <element name="informaltable">
            <ref name="db.cals.informaltable.attlist"/>
            <ref name="db.cals.informaltable.info"/>
            <interleave>
               <optional>
                  <ref name="db.alt"/>
               </optional>
               <zeroOrMore>
                  <ref name="db.indexing.inlines"/>
               </zeroOrMore>
               <zeroOrMore>
                  <ref name="db.textobject"/>
               </zeroOrMore>
            </interleave>
            <choice>
               <oneOrMore>
                  <ref name="db.mediaobject"/>
               </oneOrMore>
               <oneOrMore>
                  <ref name="db.tgroup"/>
               </oneOrMore>
            </choice>
            <optional>
               <ref name="db.caption"/>
            </optional>
         </element>
      </define>

   </div>
   <define name="db.html.coreattrs">
      <interleave>
         <optional>
            <attribute name="class"/>
         </optional>
         <optional>
            <attribute name="style"/>
         </optional>
         <optional>
            <attribute name="title"/>
         </optional>
      </interleave>
   </define>

   <define name="db.html.i18n">
      <interleave>
         <optional>
            <attribute name="lang"/>
         </optional>
         <optional>
            <attribute name="dir">
               <choice>
                  <value>ltr</value>
                  <value>rtl</value>
               </choice>
            </attribute>
         </optional>
      </interleave>
   </define>

   <define name="db.html.events">
      <interleave>
         <optional>
            <attribute name="onclick"/>
         </optional>
         <optional>
            <attribute name="ondblclick"/>
         </optional>
         <optional>
            <attribute name="onmousedown"/>
         </optional>
         <optional>
            <attribute name="onmouseup"/>
         </optional>
         <optional>
            <attribute name="onmouseover"/>
         </optional>
         <optional>
            <attribute name="onmousemove"/>
         </optional>
         <optional>
            <attribute name="onmouseout"/>
         </optional>
         <optional>
            <attribute name="onkeypress"/>
         </optional>
         <optional>
            <attribute name="onkeydown"/>
         </optional>
         <optional>
            <attribute name="onkeyup"/>
         </optional>
      </interleave>
   </define>

   <define name="db.html.attrs">
      <interleave>
         <ref name="db.common.attributes"/>
         <ref name="db.html.coreattrs"/>
         <ref name="db.html.i18n"/>
         <ref name="db.html.events"/>
      </interleave>
   </define>

   <define name="db.html.cellhalign">
      <interleave>
         <optional>
            <attribute name="align">
               <choice>
                  <value>left</value>
                  <value>center</value>
                  <value>right</value>
                  <value>justify</value>
                  <value>char</value>
               </choice>
            </attribute>
         </optional>
         <optional>
            <attribute name="char"/>
         </optional>
         <optional>
            <attribute name="charoff"/>
         </optional>
      </interleave>
   </define>

   <define name="db.html.cellvalign">
      <optional>
         <attribute name="valign">
            <choice>
               <value>top</value>
               <value>middle</value>
               <value>bottom</value>
               <value>baseline</value>
            </choice>
         </attribute>
      </optional>
   </define>

   <define name="db.html.table.model">
      <ref name="db.html.caption"/>
      <choice>
         <zeroOrMore>
            <ref name="db.html.col"/>
         </zeroOrMore>
         <zeroOrMore>
            <ref name="db.html.colgroup"/>
         </zeroOrMore>
      </choice>
      <optional>
         <ref name="db.html.thead"/>
      </optional>
      <optional>
         <ref name="db.html.tfoot"/>
      </optional>
      <choice>
         <oneOrMore>
            <ref name="db.html.tbody"/>
         </oneOrMore>
         <oneOrMore>
            <ref name="db.html.tr"/>
         </oneOrMore>
      </choice>
   </define>

   <define name="db.html.informaltable.model">
      <choice>
         <zeroOrMore>
            <ref name="db.html.col"/>
         </zeroOrMore>
         <zeroOrMore>
            <ref name="db.html.colgroup"/>
         </zeroOrMore>
      </choice>
      <optional>
         <ref name="db.html.thead"/>
      </optional>
      <optional>
         <ref name="db.html.tfoot"/>
      </optional>
      <choice>
         <oneOrMore>
            <ref name="db.html.tbody"/>
         </oneOrMore>
         <oneOrMore>
            <ref name="db.html.tr"/>
         </oneOrMore>
      </choice>
   </define>

   <div>
      <db:refname>table</db:refname>
      <db:refpurpose>A formal table in a document</db:refpurpose>
      <define name="db.html.table.attlist">
         <interleave>
            <ref name="db.html.attrs"/>
            <optional>
               <ref name="db.orient.attribute"/>
            </optional>
            <optional>
               <ref name="db.pgwide.attribute"/>
            </optional>
            <optional>
               <ref name="db.tabstyle.attribute"/>
            </optional>
            <optional>
               <ref name="db.floatstyle.attribute"/>
            </optional>
            <optional>
               <attribute name="summary"/>
            </optional>
            <optional>
               <attribute name="width"/>
            </optional>
            <optional>
               <attribute name="border"/>
            </optional>
            <optional>
               <attribute name="frame">
                  <choice>
                     <value>void</value>
                     <value>above</value>
                     <value>below</value>
                     <value>hsides</value>
                     <value>lhs</value>
                     <value>rhs</value>
                     <value>vsides</value>
                     <value>box</value>
                     <value>border</value>
                  </choice>
               </attribute>
            </optional>
            <optional>
               <attribute name="rules">
                  <choice>
                     <value>none</value>
                     <value>groups</value>
                     <value>rows</value>
                     <value>cols</value>
                     <value>all</value>
                  </choice>
               </attribute>
            </optional>
            <optional>
               <attribute name="cellspacing"/>
            </optional>
            <optional>
               <attribute name="cellpadding"/>
            </optional>
         </interleave>
      </define>

      <define name="db.html.table">
         <element name="table">
            <s:rule context="db:table" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:example)">example must not occur in the descendants of table</s:assert>
            </s:rule>
            <s:rule context="db:table" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:figure)">figure must not occur in the descendants of table</s:assert>
            </s:rule>
            <s:rule context="db:table" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:table)">table must not occur in the descendants of table</s:assert>
            </s:rule>
            <s:rule context="db:table" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:table)">table must not occur in the descendants of table</s:assert>
            </s:rule>
            <s:rule context="db:table" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:caution)">caution must not occur in the descendants of table</s:assert>
            </s:rule>
            <s:rule context="db:table" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:important)">important must not occur in the descendants of table</s:assert>
            </s:rule>
            <s:rule context="db:table" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:note)">note must not occur in the descendants of table</s:assert>
            </s:rule>
            <s:rule context="db:table" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:tip)">tip must not occur in the descendants of table</s:assert>
            </s:rule>
            <s:rule context="db:table" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:warning)">warning must not occur in the descendants of table</s:assert>
            </s:rule>
            <s:rule context="db:table" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:table)">table must not occur in the descendants of table</s:assert>
            </s:rule>
            <s:rule context="db:table" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:informaltable)">informaltable must not occur in the descendants of table</s:assert>
            </s:rule>
            <ref name="db.html.table.attlist"/>
            <ref name="db.html.table.model"/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>informaltable</db:refname>
      <db:refpurpose>A table without a title</db:refpurpose>
      <define name="db.html.informaltable.attlist">
         <interleave>
            <ref name="db.html.attrs"/>
            <optional>
               <attribute name="summary"/>
            </optional>
            <optional>
               <attribute name="width"/>
            </optional>
            <optional>
               <attribute name="border"/>
            </optional>
            <optional>
               <attribute name="frame">
                  <choice>
                     <value>void</value>
                     <value>above</value>
                     <value>below</value>
                     <value>hsides</value>
                     <value>lhs</value>
                     <value>rhs</value>
                     <value>vsides</value>
                     <value>box</value>
                     <value>border</value>
                  </choice>
               </attribute>
            </optional>
            <optional>
               <attribute name="rules">
                  <choice>
                     <value>none</value>
                     <value>groups</value>
                     <value>rows</value>
                     <value>cols</value>
                     <value>all</value>
                  </choice>
               </attribute>
            </optional>
            <optional>
               <attribute name="cellspacing"/>
            </optional>
            <optional>
               <attribute name="cellpadding"/>
            </optional>
         </interleave>
      </define>

      <define name="db.html.informaltable">
         <element name="informaltable">
            <ref name="db.html.informaltable.attlist"/>
            <ref name="db.html.informaltable.model"/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>caption</db:refname>
      <db:refpurpose>A caption</db:refpurpose>
      <define name="db.html.caption.attlist">
         <ref name="db.html.attrs"/>
      </define>

      <define name="db.html.caption">
         <element name="caption">
            <s:rule context="db:caption" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:example)">example must not occur in the descendants of caption</s:assert>
            </s:rule>
            <s:rule context="db:caption" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:figure)">figure must not occur in the descendants of caption</s:assert>
            </s:rule>
            <s:rule context="db:caption" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:table)">table must not occur in the descendants of caption</s:assert>
            </s:rule>
            <s:rule context="db:caption" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:table)">table must not occur in the descendants of caption</s:assert>
            </s:rule>
            <s:rule context="db:caption" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:caution)">caution must not occur in the descendants of caption</s:assert>
            </s:rule>
            <s:rule context="db:caption" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:important)">important must not occur in the descendants of caption</s:assert>
            </s:rule>
            <s:rule context="db:caption" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:note)">note must not occur in the descendants of caption</s:assert>
            </s:rule>
            <s:rule context="db:caption" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:tip)">tip must not occur in the descendants of caption</s:assert>
            </s:rule>
            <s:rule context="db:caption" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:warning)">warning must not occur in the descendants of caption</s:assert>
            </s:rule>
            <s:rule context="db:caption" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:sidebar)">sidebar must not occur in the descendants of caption</s:assert>
            </s:rule>
            <s:rule context="db:caption" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="not(.//db:task)">task must not occur in the descendants of caption</s:assert>
            </s:rule>
            <ref name="db.html.caption.attlist"/>
            <text/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>col</db:refname>
      <db:refpurpose>Specifications for a column in an HTML table</db:refpurpose>
      <define name="db.html.col.attlist">
         <interleave>
            <ref name="db.html.attrs"/>
            <optional>
               <attribute name="span"/>
            </optional>
            <optional>
               <attribute name="width"/>
            </optional>
            <ref name="db.html.cellhalign"/>
            <ref name="db.html.cellvalign"/>
         </interleave>
      </define>

      <define name="db.html.col">
         <element name="col">
            <ref name="db.html.col.attlist"/>
            <empty/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>colgroup</db:refname>
      <db:refpurpose>A group of columns in an HTML table</db:refpurpose>
      <define name="db.html.colgroup.attlist">
         <interleave>
            <ref name="db.html.attrs"/>
            <optional>
               <attribute name="span"/>
            </optional>
            <optional>
               <attribute name="width"/>
            </optional>
            <ref name="db.html.cellhalign"/>
            <ref name="db.html.cellvalign"/>
         </interleave>
      </define>

      <define name="db.html.colgroup">
         <element name="colgroup">
            <ref name="db.html.colgroup.attlist"/>
            <zeroOrMore>
               <ref name="db.html.col"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>thead</db:refname>
      <db:refpurpose>A table header consisting of one or more rows</db:refpurpose>
      <define name="db.html.thead.attlist">
         <interleave>
            <ref name="db.html.attrs"/>
            <ref name="db.html.cellhalign"/>
            <ref name="db.html.cellvalign"/>
         </interleave>
      </define>

      <define name="db.html.thead">
         <element name="thead">
            <ref name="db.html.thead.attlist"/>
            <oneOrMore>
               <ref name="db.html.tr"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>tfoot</db:refname>
      <db:refpurpose>A table footer consisting of one or more rows</db:refpurpose>
      <define name="db.html.tfoot.attlist">
         <interleave>
            <ref name="db.html.attrs"/>
            <ref name="db.html.cellhalign"/>
            <ref name="db.html.cellvalign"/>
         </interleave>
      </define>

      <define name="db.html.tfoot">
         <element name="tfoot">
            <ref name="db.html.tfoot.attlist"/>
            <oneOrMore>
               <ref name="db.html.tr"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>tbody</db:refname>
      <db:refpurpose>A wrapper for the rows of a table or informal table</db:refpurpose>
      <define name="db.html.tbody.attlist">
         <interleave>
            <ref name="db.html.attrs"/>
            <ref name="db.html.cellhalign"/>
            <ref name="db.html.cellvalign"/>
         </interleave>
      </define>

      <define name="db.html.tbody">
         <element name="tbody">
            <ref name="db.html.tbody.attlist"/>
            <oneOrMore>
               <ref name="db.html.tr"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>tr</db:refname>
      <db:refpurpose>A row in an HTML table</db:refpurpose>
      <define name="db.html.tr.attlist">
         <interleave>
            <ref name="db.html.attrs"/>
            <ref name="db.html.cellhalign"/>
            <ref name="db.html.cellvalign"/>
         </interleave>
      </define>

      <define name="db.html.tr">
         <element name="tr">
            <ref name="db.html.tr.attlist"/>
            <oneOrMore>
               <choice>
                  <ref name="db.html.th"/>
                  <ref name="db.html.td"/>
               </choice>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>th</db:refname>
      <db:refpurpose>A table header entry in an HTML table</db:refpurpose>
      <define name="db.html.th.attlist">
         <interleave>
            <ref name="db.html.attrs"/>
            <optional>
               <attribute name="abbr"/>
            </optional>
            <optional>
               <attribute name="axis"/>
            </optional>
            <optional>
               <attribute name="headers"/>
            </optional>
            <optional>
               <attribute name="scope"/>
            </optional>
            <optional>
               <attribute name="rowspan"/>
            </optional>
            <optional>
               <attribute name="colspan"/>
            </optional>
            <ref name="db.html.cellhalign"/>
            <ref name="db.html.cellvalign"/>
         </interleave>
      </define>

      <define name="db.html.th">
         <element name="th">
            <ref name="db.html.th.attlist"/>
            <choice>
               <zeroOrMore>
                  <ref name="db.all.inlines"/>
               </zeroOrMore>
               <zeroOrMore>
                  <ref name="db.all.blocks"/>
               </zeroOrMore>
            </choice>
         </element>
      </define>

   </div>
   <div>
      <db:refname>td</db:refname>
      <db:refpurpose>A table entry in an HTML table</db:refpurpose>
      <define name="db.html.td.attlist">
         <interleave>
            <ref name="db.html.attrs"/>
            <optional>
               <attribute name="abbr"/>
            </optional>
            <optional>
               <attribute name="axis"/>
            </optional>
            <optional>
               <attribute name="headers"/>
            </optional>
            <optional>
               <attribute name="scope"/>
            </optional>
            <optional>
               <attribute name="rowspan"/>
            </optional>
            <optional>
               <attribute name="colspan"/>
            </optional>
            <ref name="db.html.cellhalign"/>
            <ref name="db.html.cellvalign"/>
         </interleave>
      </define>

      <define name="db.html.td">
         <element name="td">
            <ref name="db.html.td.attlist"/>
            <choice>
               <zeroOrMore>
                  <ref name="db.all.inlines"/>
               </zeroOrMore>
               <zeroOrMore>
                  <ref name="db.all.blocks"/>
               </zeroOrMore>
            </choice>
         </element>
      </define>

   </div>
   <div>
      <db:refname>msgset</db:refname>
      <db:refpurpose>A detailed set of messages, usually error messages</db:refpurpose>
      <define name="db.msgset.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.msgset.attlist">
         <interleave>
            <optional>
               <ref name="db.msgset.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.msgset.info">
         <ref name="db._info.title.only"/>
      </define>

      <define name="db.msgset">
         <element name="msgset">
            <ref name="db.msgset.attlist"/>
            <ref name="db.msgset.info"/>
            <choice>
               <oneOrMore>
                  <ref name="db.msgentry"/>
               </oneOrMore>
               <oneOrMore>
                  <ref name="db.simplemsgentry"/>
               </oneOrMore>
            </choice>
         </element>
      </define>

   </div>
   <div>
      <db:refname>msgentry</db:refname>
      <db:refpurpose>A wrapper for an entry in a message set</db:refpurpose>
      <define name="db.msgentry.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.msgentry.attlist">
         <interleave>
            <optional>
               <ref name="db.msgentry.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.msgentry">
         <element name="msgentry">
            <ref name="db.msgentry.attlist"/>
            <oneOrMore>
               <ref name="db.msg"/>
            </oneOrMore>
            <optional>
               <ref name="db.msginfo"/>
            </optional>
            <zeroOrMore>
               <ref name="db.msgexplan"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>simplemsgentry</db:refname>
      <db:refpurpose>A wrapper for a simpler entry in a message set</db:refpurpose>
      <define name="db.simplemsgentry.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.simplemsgentry.audience.attribute">
         <attribute name="audience"/>
      </define>

      <define name="db.simplemsgentry.origin.attribute">
         <attribute name="origin"/>
      </define>

      <define name="db.simplemsgentry.level.attribute">
         <attribute name="level"/>
      </define>

      <define name="db.simplemsgentry.attlist">
         <interleave>
            <optional>
               <ref name="db.simplemsgentry.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <ref name="db.simplemsgentry.audience.attribute"/>
            <ref name="db.simplemsgentry.origin.attribute"/>
            <ref name="db.simplemsgentry.level.attribute"/>
         </interleave>
      </define>

      <define name="db.simplemsgentry">
         <element name="simplemsgentry">
            <ref name="db.simplemsgentry.attlist"/>
            <ref name="db.msgtext"/>
            <oneOrMore>
               <ref name="db.msgexplan"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>msg</db:refname>
      <db:refpurpose>A message in a message set</db:refpurpose>
      <define name="db.msg.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.msg.attlist">
         <interleave>
            <optional>
               <ref name="db.msg.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.msg.info">
         <ref name="db._info.title.only"/>
      </define>

      <define name="db.msg">
         <element name="msg">
            <ref name="db.msg.attlist"/>
            <ref name="db.msg.info"/>
            <ref name="db.msgmain"/>
            <zeroOrMore>
               <choice>
                  <ref name="db.msgsub"/>
                  <ref name="db.msgrel"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>msgmain</db:refname>
      <db:refpurpose>The primary component of a message in a message set </db:refpurpose>
      <define name="db.msgmain.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.msgmain.attlist">
         <interleave>
            <optional>
               <ref name="db.msgmain.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.msgmain.info">
         <ref name="db._info.title.only"/>
      </define>

      <define name="db.msgmain">
         <element name="msgmain">
            <ref name="db.msgmain.attlist"/>
            <ref name="db.msgmain.info"/>
            <ref name="db.msgtext"/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>msgsub</db:refname>
      <db:refpurpose>A subcomponent of a message in a message set</db:refpurpose>
      <define name="db.msgsub.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.msgsub.attlist">
         <interleave>
            <optional>
               <ref name="db.msgsub.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.msgsub.info">
         <ref name="db._info.title.only"/>
      </define>

      <define name="db.msgsub">
         <element name="msgsub">
            <ref name="db.msgsub.attlist"/>
            <ref name="db.msgsub.info"/>
            <ref name="db.msgtext"/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>msgrel</db:refname>
      <db:refpurpose>A related component of a message in a message set</db:refpurpose>
      <define name="db.msgrel.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.msgrel.attlist">
         <interleave>
            <optional>
               <ref name="db.msgrel.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.msgrel.info">
         <ref name="db._info.title.only"/>
      </define>

      <define name="db.msgrel">
         <element name="msgrel">
            <ref name="db.msgrel.attlist"/>
            <ref name="db.msgrel.info"/>
            <ref name="db.msgtext"/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>msgtext</db:refname>
      <db:refpurpose>The actual text of a message component in a message set</db:refpurpose>
      <define name="db.msgtext.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.msgtext.attlist">
         <interleave>
            <optional>
               <ref name="db.msgtext.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.msgtext">
         <element name="msgtext">
            <ref name="db.msgtext.attlist"/>
            <oneOrMore>
               <ref name="db.all.blocks"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>msginfo</db:refname>
      <db:refpurpose>Information about a message in a message set</db:refpurpose>
      <define name="db.msginfo.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.msginfo.attlist">
         <interleave>
            <optional>
               <ref name="db.msginfo.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.msginfo">
         <element name="msginfo">
            <ref name="db.msginfo.attlist"/>
            <zeroOrMore>
               <choice>
                  <ref name="db.msglevel"/>
                  <ref name="db.msgorig"/>
                  <ref name="db.msgaud"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>msglevel</db:refname>
      <db:refpurpose>The level of importance or severity of a message in a message set</db:refpurpose>
      <define name="db.msglevel.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.msglevel.attlist">
         <interleave>
            <optional>
               <ref name="db.msglevel.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.msglevel">
         <element name="msglevel">
            <ref name="db.msglevel.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>msgorig</db:refname>
      <db:refpurpose>The origin of a message in a message set</db:refpurpose>
      <define name="db.msgorig.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.msgorig.attlist">
         <interleave>
            <optional>
               <ref name="db.msgorig.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.msgorig">
         <element name="msgorig">
            <ref name="db.msgorig.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>msgaud</db:refname>
      <db:refpurpose>The audience to which a message in a message set is relevant</db:refpurpose>
      <define name="db.msgaud.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.msgaud.attlist">
         <interleave>
            <optional>
               <ref name="db.msgaud.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.msgaud">
         <element name="msgaud">
            <ref name="db.msgaud.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>msgexplan</db:refname>
      <db:refpurpose>Explanatory material relating to a message in a message set</db:refpurpose>
      <define name="db.msgexplan.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.msgexplan.attlist">
         <interleave>
            <optional>
               <ref name="db.msgexplan.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.msgexplan.info">
         <ref name="db._info.title.only"/>
      </define>

      <define name="db.msgexplan">
         <element name="msgexplan">
            <ref name="db.msgexplan.attlist"/>
            <ref name="db.msgexplan.info"/>
            <oneOrMore>
               <ref name="db.all.blocks"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>qandaset</db:refname>
      <db:refpurpose>A question-and-answer set</db:refpurpose>
      <define name="db.qandaset.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.qandaset.defaultlabel.enumeration">
         <choice>
            <value>none</value>
            <value>number</value>
            <value>qanda</value>
         </choice>
      </define>

      <define name="db.qandaset.defaultlabel.attribute">
         <attribute name="defaultlabel">
            <ref name="db.qandaset.defaultlabel.enumeration"/>
         </attribute>
      </define>

      <define name="db.qandaset.attlist">
         <interleave>
            <optional>
               <ref name="db.qandaset.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.qandaset.defaultlabel.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.qandaset.info">
         <ref name="db._info.title.only"/>
      </define>

      <define name="db.qandaset">
         <element name="qandaset">
            <ref name="db.qandaset.attlist"/>
            <ref name="db.qandaset.info"/>
            <zeroOrMore>
               <ref name="db.all.blocks"/>
            </zeroOrMore>
            <choice>
               <oneOrMore>
                  <ref name="db.qandadiv"/>
               </oneOrMore>
               <oneOrMore>
                  <ref name="db.qandaentry"/>
               </oneOrMore>
            </choice>
         </element>
      </define>

   </div>
   <div>
      <db:refname>qandadiv</db:refname>
      <db:refpurpose>A titled division in a QandASet</db:refpurpose>
      <define name="db.qandadiv.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.qandadiv.attlist">
         <interleave>
            <optional>
               <ref name="db.qandadiv.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.qandadiv.info">
         <ref name="db._info.title.only"/>
      </define>

      <define name="db.qandadiv">
         <element name="qandadiv">
            <ref name="db.qandadiv.attlist"/>
            <ref name="db.qandadiv.info"/>
            <zeroOrMore>
               <ref name="db.all.blocks"/>
            </zeroOrMore>
            <choice>
               <oneOrMore>
                  <ref name="db.qandadiv"/>
               </oneOrMore>
               <oneOrMore>
                  <ref name="db.qandaentry"/>
               </oneOrMore>
            </choice>
         </element>
      </define>

   </div>
   <div>
      <db:refname>qandaentry</db:refname>
      <db:refpurpose>A question/answer set within a QandASet</db:refpurpose>
      <define name="db.qandaentry.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.qandaentry.attlist">
         <interleave>
            <optional>
               <ref name="db.qandaentry.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.qandaentry.info">
         <ref name="db._info.title.forbidden"/>
      </define>

      <define name="db.qandaentry">
         <element name="qandaentry">
            <ref name="db.qandaentry.attlist"/>
            <ref name="db.qandaentry.info"/>
            <ref name="db.question"/>
            <zeroOrMore>
               <ref name="db.answer"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>question</db:refname>
      <db:refpurpose>A question in a QandASet</db:refpurpose>
      <define name="db.question.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.question.attlist">
         <interleave>
            <optional>
               <ref name="db.question.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.question">
         <element name="question">
            <ref name="db.question.attlist"/>
            <optional>
               <ref name="db.label"/>
            </optional>
            <oneOrMore>
               <ref name="db.all.blocks"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>answer</db:refname>
      <db:refpurpose>An answer to a question posed in a QandASet</db:refpurpose>
      <define name="db.answer.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.answer.attlist">
         <interleave>
            <optional>
               <ref name="db.answer.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.answer">
         <element name="answer">
            <ref name="db.answer.attlist"/>
            <optional>
               <ref name="db.label"/>
            </optional>
            <oneOrMore>
               <ref name="db.all.blocks"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>label</db:refname>
      <db:refpurpose>A label on a Question or Answer</db:refpurpose>
      <define name="db.label.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.label.attlist">
         <interleave>
            <optional>
               <ref name="db.label.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.label">
         <element name="label">
            <ref name="db.label.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>

   </div>
   <define name="db.math.inlines">
      <ref name="db.inlineequation"/>
   </define>

   <define name="db.math.blocks">
      <choice>
         <ref name="db.equation"/>
         <ref name="db.informalequation"/>
      </choice>
   </define>

   <define name="db.equation.content">
      <choice>
         <optional>
            <ref name="db.alt"/>
         </optional>
         <choice>
            <oneOrMore>
               <ref name="db.mediaobject"/>
            </oneOrMore>
            <oneOrMore>
               <ref name="db.mathphrase"/>
            </oneOrMore>
         </choice>
         <ref xmlns:mml="http://www.w3.org/1998/Math/MathML" name="db._any.mml"/>
      </choice>
   </define>

   <div>
      <db:refname>equation</db:refname>
      <db:refpurpose>A displayed mathematical equation</db:refpurpose>
      <define name="db.equation.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.equation.label.attribute">
         <attribute name="label"/>
      </define>

      <define name="db.equation.attlist">
         <interleave>
            <optional>
               <ref name="db.equation.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
            <optional>
               <ref name="db.equation.label.attribute"/>
            </optional>
            <optional>
               <ref name="db.pgwide.attribute"/>
            </optional>
            <optional>
               <ref name="db.floatstyle.attribute"/>
            </optional>
         </interleave>
      </define>

      <define name="db.equation.info">
         <ref name="db._info.title.only"/>
      </define>

      <define name="db.equation">
         <element name="equation">
            <ref name="db.equation.attlist"/>
            <ref name="db.equation.info"/>
            <ref name="db.equation.content"/>
            <optional>
               <ref name="db.caption"/>
            </optional>
         </element>
      </define>

   </div>
   <div>
      <db:refname>informalequation</db:refname>
      <db:refpurpose>A displayed mathematical equation without a title</db:refpurpose>
      <define name="db.informalequation.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.informalequation.attlist">
         <interleave>
            <optional>
               <ref name="db.informalequation.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.informalequation.info">
         <ref name="db._info.title.forbidden"/>
      </define>

      <define name="db.informalequation">
         <element name="informalequation">
            <ref name="db.informalequation.attlist"/>
            <ref name="db.informalequation.info"/>
            <ref name="db.equation.content"/>
            <optional>
               <ref name="db.caption"/>
            </optional>
         </element>
      </define>

   </div>
   <div>
      <db:refname>inlineequation</db:refname>
      <db:refpurpose>A mathematical equation or expression occurring inline</db:refpurpose>
      <define name="db.inlineequation.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.inlineequation.attlist">
         <interleave>
            <optional>
               <ref name="db.inlineequation.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.inlineequation">
         <element name="inlineequation">
            <ref name="db.inlineequation.attlist"/>
            <ref name="db.equation.content"/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>mathphrase</db:refname>
      <db:refpurpose>A mathematical phrase, an expression that can be represented with ordinary text and a small amount of markup</db:refpurpose>
      <define name="db.mathphrase.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.mathphrase.attlist">
         <interleave>
            <optional>
               <ref name="db.mathphrase.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <ref name="db.common.linking.attributes"/>
         </interleave>
      </define>

      <define name="db.mathphrase">
         <element name="mathphrase">
            <ref name="db.mathphrase.attlist"/>
            <zeroOrMore>
               <choice>
                  <ref name="db._text"/>
                  <ref name="db.ubiq.inlines"/>
                  <ref name="db._emphasis"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div xmlns:mml="http://www.w3.org/1998/Math/MathML">
      <db:refname>mml:*</db:refname>
      <db:refpurpose>Any element from the MathML namespace</db:refpurpose>
      <define name="db._any.mml">
         <element>
            <nsName ns="http://www.w3.org/1998/Math/MathML"/>
            <ref name="db._any"/>
         </element>
      </define>

   </div>
   <div xmlns:svg="http://www.w3.org/2000/svg">
      <db:refname>svg:*</db:refname>
      <db:refpurpose>Any element from the SVG namespace</db:refpurpose>
      <define name="db._any.svg">
         <element>
            <nsName ns="http://www.w3.org/2000/svg"/>
            <ref name="db._any"/>
         </element>
      </define>

   </div>
</grammar>