<?xml version="1.0" encoding="utf-8"?>
<grammar xmlns="http://relaxng.org/ns/structure/1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:db="http://docbook.org/ns/docbook" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://docbook.org/ns/docbook"><!-- DocBook NG: The "PTO" Release --><!-- See http://docbook.org/ns/docbook -->
   <div>
      <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 name="db.effectivity.attributes">
      <optional>
         <attribute name="arch">
            <db:refpurpose>Designates the computer or chip architecture to which the element applies</db:refpurpose>
         </attribute>
      </optional>
      <optional>
         <attribute name="condition">
            <db:refpurpose>provides a standard place for application-specific effectivity</db:refpurpose>
            <dbx:description xmlns:dbx="http://sourceforge.net/projects/docbook/defguide/schema/extra-markup">
               <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">
            <db:refpurpose>Indicates standards conformance characteristics of the element</db:refpurpose>
            <dbx:description xmlns:dbx="http://sourceforge.net/projects/docbook/defguide/schema/extra-markup">
               <db:para>These characteristics are application-specific; DocBook provides no default semantics.</db:para>
            </dbx:description>
         </attribute>
      </optional>
      <optional>
         <attribute name="os">
            <db:refpurpose>Indicates the operating system to which the element is applicable</db:refpurpose>
         </attribute>
      </optional>
      <optional>
         <attribute name="revision">
            <db:refpurpose>Indicates the editorial revision to which the element belongs</db:refpurpose>
         </attribute>
      </optional>
      <optional>
         <attribute name="security">
            <db:refpurpose>Indicates something about the security level associated with the element to which it applies</db:refpurpose>
         </attribute>
      </optional>
      <optional>
         <attribute name="userlevel">
            <db:refpurpose>Indicates the level of user experience for which the element applies</db:refpurpose>
         </attribute>
      </optional>
      <optional>
         <attribute name="vendor">
            <db:refpurpose>Indicates the computer vendor to which the element applies.</db:refpurpose>
         </attribute>
      </optional>
      <optional>
         <attribute name="wordsize">
            <db:refpurpose>Indicates the word size (width in bits) of the computer architecture to which the element applies</db:refpurpose>
         </attribute>
      </optional>
   </define>
   <define name="db.linkend.attribute">
      <attribute name="linkend">
         <db:refpurpose>Points to an internal link target by identifying the value of its xml:id attribute</db:refpurpose>
         <data type="IDREF"/>
      </attribute>
   </define>
   <define name="db.linkends.attribute">
      <attribute name="linkends">
         <db:refpurpose>Points to one or more internal link targets by identifying the value of their xml:id attributes</db:refpurpose>
         <data type="IDREFS"/>
      </attribute>
   </define>
   <define name="db.xlink.href.attribute">
      <attribute name="xlink:href">
         <db:refpurpose>Identifies a link target with a URI</db:refpurpose>
      </attribute>
   </define>
   <define name="db.xlink.type.attribute">
      <attribute name="xlink:type">
         <db:refpurpose>Identifies the element as an XLink simple link</db:refpurpose>
         <value>simple</value>
      </attribute>
   </define>
   <define name="db.xlink.role.attribute">
      <attribute name="xlink:role">
         <db:refpurpose>Identifies the XLink role of the link</db:refpurpose>
         <data type="anyURI"/>
      </attribute>
   </define>
   <define name="db.xlink.arcrole.attribute">
      <attribute name="xlink:arcrole">
         <db:refpurpose>Identifies the XLink arcrole of the link</db:refpurpose>
         <data type="anyURI"/>
      </attribute>
   </define>
   <define name="db.xlink.title.attribute">
      <optional>
         <attribute name="xlink:title">
            <db:refpurpose>Identifies the XLink title of the link</db:refpurpose>
         </attribute>
      </optional>
   </define>
   <define name="db.xlink.show.enumeration">
      <choice>
         <value>new</value>
         <a:documentation>An application traversing to the ending resource should load it in a new window, frame, pane, or other relevant presentation context.</a:documentation>
         <value>replace</value>
         <a:documentation>An application traversing to the ending resource should load the resource in the same window, frame, pane, or other relevant presentation context in which the starting resource was loaded.</a:documentation>
         <value>embed</value>
         <a:documentation>An application traversing to the ending resource should load its presentation in place of the presentation of the starting resource.</a:documentation>
         <value>other</value>
         <a:documentation>The behavior of an application traversing to the ending resource is unconstrained by XLink. The application should look for other markup present in the link to determine the appropriate behavior.</a:documentation>
         <value>none</value>
         <a:documentation>The behavior of an application traversing to the ending resource is unconstrained by this specification. No other markup is present to help the application determine the appropriate behavior.</a:documentation>
      </choice>
   </define>
   <define name="db.xlink.show.attribute">
      <attribute name="xlink:show">
         <db:refpurpose>Identifies the XLink show behavior of the link</db:refpurpose>
         <ref name="db.xlink.show.enumeration"/>
      </attribute>
   </define>
   <define name="db.xlink.actuate.enumeration">
      <choice>
         <value>onLoad</value>
         <a:documentation>An application should traverse to the ending resource immediately on loading the starting resource.</a:documentation>
         <value>onRequest</value>
         <a:documentation>An application should traverse from the starting resource to the ending resource only on a post-loading event triggered for the purpose of traversal.</a:documentation>
         <value>other</value>
         <a:documentation>The behavior of an application traversing to the ending resource is unconstrained by this specification. The application should look for other markup present in the link to determine the appropriate behavior.</a:documentation>
         <value>none</value>
         <a:documentation>The behavior of an application traversing to the ending resource is unconstrained by this specification. No other markup is present to help the application determine the appropriate behavior.</a:documentation>
      </choice>
   </define>
   <define name="db.xlink.actuate.attribute">
      <attribute name="xlink:actuate">
         <db:refpurpose>Identifies the XLink actuate behavior of the link</db:refpurpose>
         <ref name="db.xlink.actuate.enumeration"/>
      </attribute>
   </define>
   <define 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 name="db.xml.id.attribute">
      <attribute name="xml:id">
         <db:refpurpose>Identifies the unique ID value of the element</db:refpurpose>
         <data type="ID"/>
      </attribute>
   </define>
   <define name="db.version.attribute">
      <attribute name="version">
         <db:refpurpose>Specifies the DocBook version of the element and its descendants</db:refpurpose>
      </attribute>
   </define>
   <define name="db.xml.lang.attribute">
      <attribute name="xml:lang">
         <db:refpurpose>Specifies the natural language of the element and its descendants</db:refpurpose>
      </attribute>
   </define>
   <define name="db.xml.base.attribute">
      <attribute name="xml:base">
         <db:refpurpose>Specifies the base URI of the element and its descendants</db:refpurpose>
      </attribute>
   </define>
   <define name="db.remap.attribute">
      <attribute name="remap">
         <db:refpurpose>Provides the name or similar semantic identifier assigned to the content in some previous markup scheme</db:refpurpose>
      </attribute>
   </define>
   <define name="db.xreflabel.attribute">
      <attribute name="xreflabel">
         <db:refpurpose>Provides the text that is to be generated for a cross reference to the element</db:refpurpose>
      </attribute>
   </define>
   <define name="db.revisionflag.enumeration">
      <choice>
         <value>changed</value>
         <a:documentation>The element has been changed.</a:documentation>
         <value>added</value>
         <a:documentation>The element is new (has been added to the document).</a:documentation>
         <value>deleted</value>
         <a:documentation>The element has been deleted.</a:documentation>
         <value>off</value>
         <a:documentation>Explicitly turns off revision markup for this element.</a:documentation>
      </choice>
   </define>
   <define name="db.revisionflag.attribute">
      <attribute name="revisionflag">
         <db:refpurpose>Identifies the revision status of the element</db:refpurpose>
         <ref name="db.revisionflag.enumeration"/>
      </attribute>
   </define>
   <define 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 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 name="db.common.linking.attributes">
      <optional>
         <choice>
            <ref name="db.linkend.attribute"/>
            <ref name="db.href.attribute"/>
         </choice>
      </optional>
   </define>
   <define name="db.common.req.linking.attributes">
      <choice>
         <ref name="db.linkend.attribute"/>
         <ref name="db.href.attribute"/>
      </choice>
   </define>
   <define name="db.common.data.attributes">
      <optional>
         <attribute name="format">
            <db:refpurpose>Specifies the format of the data</db:refpurpose>
         </attribute>
      </optional>
      <choice>
         <attribute name="fileref">
            <db:refpurpose>Indentifies the location of the data by URI</db:refpurpose>
            <data type="anyURI"/>
         </attribute>
         <attribute name="entityref">
            <db:refpurpose>Identifies the location of the data by external identifier (entity name)</db:refpurpose>
            <data type="ENTITY"/>
         </attribute>
      </choice>
   </define>
   <define name="db.verbatim.continuation.enumeration">
      <choice>
         <value>continues</value>
         <a:documentation>Line numbering continues from the immediately preceding element with the same name.</a:documentation>
         <value>restarts</value>
         <a:documentation>Line numbering restarts (begins at 1, usually).</a:documentation>
      </choice>
   </define>
   <define name="db.verbatim.continuation.attribute">
      <attribute name="continuation">
         <db:refpurpose>Determines whether line numbering continues from the previous element or restarts.</db:refpurpose>
         <ref name="db.verbatim.continuation.enumeration"/>
      </attribute>
   </define>
   <define name="db.verbatim.linenumbering.enumeration">
      <choice>
         <value>numbered</value>
         <a:documentation>Lines are numbered.</a:documentation>
         <value>unnumbered</value>
         <a:documentation>Lines are not numbered.</a:documentation>
      </choice>
   </define>
   <define name="db.verbatim.linenumbering.attribute">
      <attribute name="linenumbering">
         <db:refpurpose>Determines whether lines are numbered.</db:refpurpose>
         <ref name="db.verbatim.linenumbering.enumeration"/>
      </attribute>
   </define>
   <define name="db.verbatim.startinglinenumber.attribute">
      <attribute name="startinglinenumber">
         <db:refpurpose>Specifies the initial line number.</db:refpurpose>
         <data type="integer"/>
      </attribute>
   </define>
   <define name="db.verbatim.language.attribute">
      <attribute name="language">
         <db:refpurpose>Identifies the language (i.e. programming language) of the verbatim content.</db:refpurpose>
      </attribute>
   </define>
   <define name="db.verbatim.xml.space.attribute">
      <attribute name="xml:space">
         <db:refpurpose>Can be used to indicate explicitly that whitespace in the verbatim environment is preserved. Whitespace must always be preserved in verbatim environments whether this attribute is specified or not.</db:refpurpose>
         <value>preserve</value>
         <a:documentation>Whitespace must be preserved.</a:documentation>
      </attribute>
   </define>
   <define 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 name="db.spacing.enumeration">
      <choice>
         <value>compact</value>
         <a:documentation>The spacing should be "compact".</a:documentation>
         <value>normal</value>
         <a:documentation>The spacing should be "normal".</a:documentation>
      </choice>
   </define>
   <define name="db.spacing.attribute">
      <attribute name="spacing">
         <db:refpurpose>Specifies (a hint about) the spacing of the content</db:refpurpose>
         <ref name="db.spacing.enumeration"/>
      </attribute>
   </define>
   <define name="db.pgwide.enumeration">
      <choice>
         <value>0</value>
         <a:documentation>The element should be rendered in the current text flow (with the flow column width).</a:documentation>
         <value>1</value>
         <a:documentation>The element should be rendered across the full text page.</a:documentation>
      </choice>
   </define>
   <define name="db.pgwide.attribute">
      <attribute name="pgwide">
         <db:refpurpose>Indicates if the element is rendered across the column or the page</db:refpurpose>
         <ref name="db.pgwide.enumeration"/>
      </attribute>
   </define>
   <define name="db.language.attribute">
      <attribute name="language">
         <db:refpurpose>Identifies the language (i.e. programming language) of the content.</db:refpurpose>
      </attribute>
   </define>
   <define name="db.performance.enumeration">
      <choice>
         <value>optional</value>
         <a:documentation>The content describes an optional step or steps.</a:documentation>
         <value>required</value>
         <a:documentation>The content describes a required step or steps.</a:documentation>
      </choice>
   </define>
   <define name="db.performance.attribute">
      <attribute name="performance">
         <db:refpurpose>Specifies if the content is required or optional.</db:refpurpose>
         <ref name="db.performance.enumeration"/>
      </attribute>
   </define>
   <define name="db.floatstyle.attribute">
      <attribute name="floatstyle">
         <db:refpurpose>Specifies style information to be used when rendering the float</db:refpurpose>
      </attribute>
   </define>
   <define name="db.halign.enumeration">
      <choice>
         <value>center</value>
         <a:documentation>Centered horizontally</a:documentation>
         <value>char</value>
         <a:documentation>Aligned horizontally on the specified character</a:documentation>
         <value>justify</value>
         <a:documentation>Fully justified (left and right margins or edges)</a:documentation>
         <value>left</value>
         <a:documentation>Left aligned</a:documentation>
         <value>right</value>
         <a:documentation>Right aligned</a:documentation>
      </choice>
   </define>
   <define name="db.valign.enumeration">
      <choice>
         <value>bottom</value>
         <a:documentation>Aligned on the bottom of the region</a:documentation>
         <value>middle</value>
         <a:documentation>Centered vertically</a:documentation>
         <value>top</value>
         <a:documentation>Aligned on the top of the region</a:documentation>
      </choice>
   </define>
   <ctrl:other-attribute xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/" name="db.biblio.class.attribute" enum-name="db.biblio.class-enum.attribute" other-name="db.biblio.class-other.attributes"/>
   <define name="db.biblio.class.enumeration">
      <choice>
         <value>doi</value>
         <a:documentation>A document object identifier.</a:documentation>
         <value>isbn</value>
         <a:documentation>An international standard book number.</a:documentation>
         <value>isrn</value>
         <a:documentation>An international standard technical report number (ISO 10444).</a:documentation>
         <value>issn</value>
         <a:documentation>An international standard serial number.</a:documentation>
         <value>libraryofcongress</value>
         <a:documentation>A Library of Congress reference number.</a:documentation>
         <value>pubnumber</value>
         <a:documentation>A publication number (an internal number or possibly organizational standard).</a:documentation>
         <value>uri</value>
         <a:documentation>A Uniform Resource Identifier</a:documentation>
      </choice>
   </define>
   <define name="db.biblio.class-enum.attribute">
      <optional>
         <attribute name="class">
            <db:refpurpose>Identifies the kind of bibliographic identifier</db:refpurpose>
            <dbx:description xmlns:dbx="http://sourceforge.net/projects/docbook/defguide/schema/extra-markup">
               <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 name="db.biblio.class-other.attribute">
      <attribute name="otherclass">
         <db:refpurpose>Provides an identifier for elements with the class 'other'</db:refpurpose>
         <dbx:description xmlns:dbx="http://sourceforge.net/projects/docbook/defguide/schema/extra-markup">
            <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>
   </define>
   <define name="db.biblio.class-other.attributes">
      <interleave>
         <attribute name="class">
            <value>other</value>
         </attribute>
         <ref name="db.biblio.class-other.attribute"/>
      </interleave>
   </define>
   <define name="db.biblio.class.attribute">
      <choice>
         <ref name="db.biblio.class-enum.attribute"/>
         <ref name="db.biblio.class-other.attributes"/>
      </choice>
   </define>
   <define 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 name="db._text">
      <zeroOrMore>
         <choice>
            <text/>
            <ref name="db.ubiq.inlines"/>
            <ref name="db._phrase"/>
            <ref name="db.replaceable"/>
         </choice>
      </zeroOrMore>
   </define>
   <define 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 name="db._title.req">
      <interleave>
         <ref name="db.title"/>
         <optional>
            <ref name="db.titleabbrev"/>
         </optional>
         <optional>
            <ref name="db.subtitle"/>
         </optional>
      </interleave>
   </define>
   <define name="db._title.only">
      <interleave>
         <optional>
            <ref name="db.title"/>
         </optional>
         <optional>
            <ref name="db.titleabbrev"/>
         </optional>
      </interleave>
   </define>
   <define name="db._title.onlyreq">
      <interleave>
         <ref name="db.title"/>
         <optional>
            <ref name="db.titleabbrev"/>
         </optional>
      </interleave>
   </define>
   <define 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 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 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 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 name="db._info.title.forbidden">
      <optional>
         <ref name="db.titleforbidden.info"/>
      </optional>
   </define>
   <define 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 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 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 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 name="db.error.inlines">
      <choice>
         <ref name="db.errorcode"/>
         <ref name="db.errortext"/>
         <ref name="db.errorname"/>
         <ref name="db.errortype"/>
      </choice>
   </define>
   <define name="db.oo.inlines">
      <choice>
         <ref name="db.ooclass"/>
         <ref name="db.ooexception"/>
         <ref name="db.oointerface"/>
      </choice>
   </define>
   <define 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 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 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 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 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 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 name="db.graphic.inlines">
      <ref name="db.inlinemediaobject"/>
   </define>
   <define name="db.indexing.inlines">
      <choice>
         <notAllowed/>
         <ref name="db.indexterm"/>
      </choice>
   </define>
   <define 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 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 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 name="db.extension.inlines">
      <notAllowed/>
   </define>
   <define 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 name="db.para.blocks">
      <choice>
         <ref name="db.anchor"/>
         <ref name="db.para"/>
         <ref name="db.formalpara"/>
         <ref name="db.simpara"/>
      </choice>
   </define>
   <define 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"/>
         <ref name="sl.speakernotes"/>
      </choice>
   </define>
   <ctrl:exclude xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/" from="db.formal.blocks" exclude="db.formal.blocks"/>
   <ctrl:exclude xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/" from="db.formal.blocks" exclude="db.admonition.blocks"/>
   <define name="db.formal.blocks">
      <choice>
         <ref name="db.example"/>
         <ref name="db.figure"/>
         <ref name="db.table"/>
      </choice>
   </define>
   <define name="db.informal.blocks">
      <choice>
         <ref name="db.informalexample"/>
         <ref name="db.informalfigure"/>
         <ref name="db.informaltable"/>
      </choice>
   </define>
   <define name="db.publishing.blocks">
      <choice>
         <ref name="db.sidebar"/>
         <ref name="db.blockquote"/>
         <ref name="db.address"/>
         <ref name="db.epigraph"/>
      </choice>
   </define>
   <define name="db.graphic.blocks">
      <choice>
         <ref name="db.mediaobject"/>
         <ref name="db.screenshot"/>
      </choice>
   </define>
   <define 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:ctrl="http://nwalsh.com/xmlns/schema-control/" from="db.admonition.blocks" exclude="db.admonition.blocks"/>
   <define 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 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 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 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 name="db.extension.blocks">
      <notAllowed/>
   </define>
   <define 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.annotation"/>
         <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 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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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 name="db.table.choice">
      <choice>
         <notAllowed/>
         <ref name="db.cals.table"/>
         <ref name="db.html.table"/>
      </choice>
   </define>
   <define name="db.informaltable.choice">
      <choice>
         <notAllowed/>
         <ref name="db.cals.informaltable"/>
         <ref name="db.html.informaltable"/>
      </choice>
   </define>
   <define name="db.table">
      <ref name="db.table.choice"/>
   </define>
   <define name="db.informaltable">
      <ref name="db.informaltable.choice"/>
   </define>
   <div>
      <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>
      <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>
      <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>
      <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>
      <db:refname>sidebar</db:refname>
      <db:refpurpose>A portion of a document that is isolated from the main narrative flow</db:refpurpose>
      <ctrl:exclude xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/" from="db.sidebar" exclude="db.sidebar"/>
      <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 xmlns:s="http://www.ascc.net/xml/schematron" context="db:sidebar">
               <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <db:refname>footnote</db:refname>
      <db:refpurpose>A footnote</db:refpurpose>
      <ctrl:exclude xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/" from="db.footnote" exclude="db.footnote"/>
      <ctrl:exclude xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/" from="db.footnote" exclude="db.formal.blocks"/>
      <ctrl:exclude xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/" from="db.footnote" exclude="db.admonition.blocks"/>
      <ctrl:exclude xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/" from="db.footnote" exclude="db.indexterm"/>
      <ctrl:exclude xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/" from="db.footnote" exclude="db.sidebar"/>
      <ctrl:exclude xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/" from="db.footnote" exclude="db.task"/>
      <ctrl:exclude xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/" from="db.footnote" exclude="db.epigraph"/>
      <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 xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
               <s:assert test="not(.//db:footnote)">footnote must not occur in the descendants of footnote</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
               <s:assert test="not(.//db:example)">example must not occur in the descendants of footnote</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
               <s:assert test="not(.//db:figure)">figure must not occur in the descendants of footnote</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
               <s:assert test="not(.//db:table)">table must not occur in the descendants of footnote</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
               <s:assert test="not(.//db:table)">table must not occur in the descendants of footnote</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
               <s:assert test="not(.//db:caution)">caution must not occur in the descendants of footnote</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
               <s:assert test="not(.//db:important)">important must not occur in the descendants of footnote</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
               <s:assert test="not(.//db:note)">note must not occur in the descendants of footnote</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
               <s:assert test="not(.//db:tip)">tip must not occur in the descendants of footnote</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
               <s:assert test="not(.//db:warning)">warning must not occur in the descendants of footnote</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
               <s:assert test="not(.//db:indexterm)">indexterm must not occur in the descendants of footnote</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
               <s:assert test="not(.//db:indexterm)">indexterm must not occur in the descendants of footnote</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
               <s:assert test="not(.//db:indexterm)">indexterm must not occur in the descendants of footnote</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
               <s:assert test="not(.//db:sidebar)">sidebar must not occur in the descendants of footnote</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
               <s:assert test="not(.//db:task)">task must not occur in the descendants of footnote</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
               <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>
      <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>
      <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">
            <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>
      <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 name="db.admonition.contentmodel">
      <ref name="db._info.title.only"/>
      <oneOrMore>
         <ref name="db.all.blocks"/>
      </oneOrMore>
   </define>
   <div>
      <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 xmlns:s="http://www.ascc.net/xml/schematron" context="db:caution">
               <s:assert test="not(.//db:caution)">caution must not occur in the descendants of caution</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caution">
               <s:assert test="not(.//db:important)">important must not occur in the descendants of caution</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caution">
               <s:assert test="not(.//db:note)">note must not occur in the descendants of caution</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caution">
               <s:assert test="not(.//db:tip)">tip must not occur in the descendants of caution</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caution">
               <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>
      <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 xmlns:s="http://www.ascc.net/xml/schematron" context="db:important">
               <s:assert test="not(.//db:caution)">caution must not occur in the descendants of important</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:important">
               <s:assert test="not(.//db:important)">important must not occur in the descendants of important</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:important">
               <s:assert test="not(.//db:note)">note must not occur in the descendants of important</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:important">
               <s:assert test="not(.//db:tip)">tip must not occur in the descendants of important</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:important">
               <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>
      <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 xmlns:s="http://www.ascc.net/xml/schematron" context="db:note">
               <s:assert test="not(.//db:caution)">caution must not occur in the descendants of note</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:note">
               <s:assert test="not(.//db:important)">important must not occur in the descendants of note</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:note">
               <s:assert test="not(.//db:note)">note must not occur in the descendants of note</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:note">
               <s:assert test="not(.//db:tip)">tip must not occur in the descendants of note</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:note">
               <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>
      <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 xmlns:s="http://www.ascc.net/xml/schematron" context="db:tip">
               <s:assert test="not(.//db:caution)">caution must not occur in the descendants of tip</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:tip">
               <s:assert test="not(.//db:important)">important must not occur in the descendants of tip</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:tip">
               <s:assert test="not(.//db:note)">note must not occur in the descendants of tip</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:tip">
               <s:assert test="not(.//db:tip)">tip must not occur in the descendants of tip</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:tip">
               <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>
      <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 xmlns:s="http://www.ascc.net/xml/schematron" context="db:warning">
               <s:assert test="not(.//db:caution)">caution must not occur in the descendants of warning</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:warning">
               <s:assert test="not(.//db:important)">important must not occur in the descendants of warning</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:warning">
               <s:assert test="not(.//db:note)">note must not occur in the descendants of warning</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:warning">
               <s:assert test="not(.//db:tip)">tip must not occur in the descendants of warning</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:warning">
               <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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 xmlns:s="http://www.ascc.net/xml/schematron" context="db:seglistitem">
               <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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 xmlns:s="http://www.ascc.net/xml/schematron" context="db:example">
               <s:assert test="not(.//db:example)">example must not occur in the descendants of example</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:example">
               <s:assert test="not(.//db:figure)">figure must not occur in the descendants of example</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:example">
               <s:assert test="not(.//db:table)">table must not occur in the descendants of example</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:example">
               <s:assert test="not(.//db:table)">table must not occur in the descendants of example</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:example">
               <s:assert test="not(.//db:caution)">caution must not occur in the descendants of example</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:example">
               <s:assert test="not(.//db:important)">important must not occur in the descendants of example</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:example">
               <s:assert test="not(.//db:note)">note must not occur in the descendants of example</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:example">
               <s:assert test="not(.//db:tip)">tip must not occur in the descendants of example</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:example">
               <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>
      <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 name="db.verbatim.inlines">
      <choice>
         <choice>
            <ref name="db.all.inlines"/>
            <ref name="db.lineannotation"/>
         </choice>
         <ref name="db.co"/>
      </choice>
   </define>
   <define 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>
      <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>
      <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>
      <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">
            <db:refpurpose>Specifies the width (in characters) of the longest line (formatters may use this value to determine scaling or rotation).</db:refpurpose>
         </attribute>
      </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>
      <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>
      <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 xmlns:s="http://www.ascc.net/xml/schematron" context="db:figure">
               <s:assert test="not(.//db:example)">example must not occur in the descendants of figure</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:figure">
               <s:assert test="not(.//db:figure)">figure must not occur in the descendants of figure</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:figure">
               <s:assert test="not(.//db:table)">table must not occur in the descendants of figure</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:figure">
               <s:assert test="not(.//db:table)">table must not occur in the descendants of figure</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:figure">
               <s:assert test="not(.//db:caution)">caution must not occur in the descendants of figure</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:figure">
               <s:assert test="not(.//db:important)">important must not occur in the descendants of figure</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:figure">
               <s:assert test="not(.//db:note)">note must not occur in the descendants of figure</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:figure">
               <s:assert test="not(.//db:tip)">tip must not occur in the descendants of figure</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:figure">
               <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>
      <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 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>
      <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>
      <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>
      <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>
      <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 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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <db:refname>caption</db:refname>
      <db:refpurpose>A caption</db:refpurpose>
      <ctrl:exclude xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/" from="db.caption" exclude="db.formal.blocks"/>
      <ctrl:exclude xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/" from="db.caption" exclude="db.admonition.blocks"/>
      <ctrl:exclude xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/" from="db.caption" exclude="db.sidebar"/>
      <ctrl:exclude xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/" from="db.caption" exclude="db.task"/>
      <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 xmlns:s="http://www.ascc.net/xml/schematron" context="db:caption">
               <s:assert test="not(.//db:example)">example must not occur in the descendants of caption</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caption">
               <s:assert test="not(.//db:figure)">figure must not occur in the descendants of caption</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caption">
               <s:assert test="not(.//db:table)">table must not occur in the descendants of caption</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caption">
               <s:assert test="not(.//db:table)">table must not occur in the descendants of caption</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caption">
               <s:assert test="not(.//db:caution)">caution must not occur in the descendants of caption</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caption">
               <s:assert test="not(.//db:important)">important must not occur in the descendants of caption</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caption">
               <s:assert test="not(.//db:note)">note must not occur in the descendants of caption</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caption">
               <s:assert test="not(.//db:tip)">tip must not occur in the descendants of caption</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caption">
               <s:assert test="not(.//db:warning)">warning must not occur in the descendants of caption</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caption">
               <s:assert test="not(.//db:sidebar)">sidebar must not occur in the descendants of caption</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caption">
               <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>
      <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>
      <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 name="db.rep.enumeration">
      <choice>
         <value>norepeat</value>
         <value>repeat</value>
      </choice>
   </define>
   <define name="db.rep.attribute">
      <attribute name="rep">
         <ref name="db.rep.enumeration"/>
      </attribute>
   </define>
   <define name="db.choice.enumeration">
      <choice>
         <value>opt</value>
         <value>plain</value>
         <value>req</value>
      </choice>
   </define>
   <define name="db.choice.attribute">
      <attribute name="choice">
         <ref name="db.choice.enumeration"/>
      </attribute>
   </define>
   <div>
      <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>
      <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>
      <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>
      <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>
      <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 xmlns:s="http://www.ascc.net/xml/schematron" context="db:synopfragmentref">
               <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <db:refname>orgname</db:refname>
      <db:refpurpose>The name of an organization other than a corporation </db:refpurpose>
      <ctrl:other-attribute xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/" name="db.orgname.class.attrib" enum-name="db.orgname.class-enum.attribute" other-name="db.orgname.class-other.attributes"/>
      <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>
      <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>
      <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>
      <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 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 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 name="db.credit.contentmodel">
      <choice>
         <ref name="db.person.author.contentmodel"/>
         <ref name="db.org.author.contentmodel"/>
      </choice>
   </define>
   <div>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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 name="db.date.contentmodel">
      <choice>
         <data type="date"/>
         <data type="dateTime"/>
         <data type="gYearMonth"/>
         <data type="gYear"/>
         <text/>
      </choice>
   </define>
   <div>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <db:refname>bibliorelation</db:refname>
      <db:refpurpose>The relationship of a document to another</db:refpurpose>
      <ctrl:other-attribute xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/" name="db.bibliorelation.type.attrib" enum-name="db.bibliorelation.type-enum.attribute" other-name="db.bibliorelation.type-other.attributes"/>
      <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>
      <db:refname>bibliocoverage</db:refname>
      <db:refpurpose>The spatial or temporal coverage of a document</db:refpurpose>
      <ctrl:other-attribute xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/" name="db.bibliocoverage.spatial.attrib" enum-name="db.bibliocoverage.spatial-enum.attribute" other-name="db.bibliocoverage.spatial-other.attributes"/>
      <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 xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/" name="db.bibliocoverage.temporal.attrib" enum-name="db.bibliocoverage.temporal-enum.attribute" other-name="db.bibliocoverage.temporal-other.attributes"/>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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 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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <db:refname>keycap</db:refname>
      <db:refpurpose>The text printed on a key on a keyboard</db:refpurpose>
      <ctrl:other-attribute xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/" name="db.keycap.function.attrib" enum-name="db.keycap.function-enum.attribute" other-name="db.keycap.function-other.attributes"/>
      <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>
      <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>
      <db:refname>keycombo</db:refname>
      <db:refpurpose>A combination of input actions</db:refpurpose>
      <ctrl:other-attribute xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/" name="db.keycombo.action.attrib" enum-name="db.keycombo.action-enum.attribute" other-name="db.keycombo.action-other.attributes"/>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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 name="db.prompt.inlines">
      <choice>
         <ref name="db._text"/>
         <ref name="db.co"/>
      </choice>
   </define>
   <div>
      <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 name="db.replaceable.inlines">
      <choice>
         <ref name="db._text"/>
         <ref name="db.co"/>
      </choice>
   </define>
   <div>
      <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>
      <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>
      <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>
      <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 name="db.systemitem.inlines">
      <choice>
         <ref name="db._text"/>
         <ref name="db.co"/>
      </choice>
   </define>
   <div>
      <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>
      <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>
      <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>
      <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 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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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>
      <db:refname>emphasis</db:refname>
      <db:refpurpose>A limited span of emphasized text</db:refpurpose>
      <define 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>
   </div>
   <div>
      <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>
      <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>
      <db:refname>phrase</db:refname>
      <db:refpurpose>A limited span of text</db:refpurpose>
      <define name="db._phrase">
         <element name="phrase">
            <ref name="db.phrase.attlist"/>
            <ref name="db._text"/>
         </element>
      </define>
   </div>
   <div>
      <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>
      <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>
      <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>
      <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>
      <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>
      <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 xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnoteref">
               <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>
      <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>
      <db:refname>link</db:refname>
      <db:refpurpose>A hypertext link</db:refpurpose>
      <dbx:description xmlns:dbx="http://sourceforge.net/projects/docbook/defguide/schema/extra-markup">
         <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 xmlns:dbx="http://sourceforge.net/projects/docbook/defguide/schema/extra-markup">
         <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>
      <db:refname>olink</db:refname>
      <db:refpurpose>A link that addresses its target indirectly</db:refpurpose>
      <dbx:description xmlns:dbx="http://sourceforge.net/projects/docbook/defguide/schema/extra-markup">
         <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 xmlns:dbx="http://sourceforge.net/projects/docbook/defguide/schema/extra-markup">
         <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>
      <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>
      <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 xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/" from="db.annotation" exclude="db.annotation"/>
      <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 xmlns:s="http://www.ascc.net/xml/schematron" context="db:annotation">
               <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" a: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" a: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" a: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">
      <attribute name="status">
         <db:refpurpose>Identifies the editorial or publication status of the element on which it occurs</db:refpurpose>
         <dbx:description xmlns:dbx="http://sourceforge.net/projects/docbook/defguide/schema/extra-markup">
            <db:para/>
         </dbx:description>
      </attribute>
   </define>
   <define name="db.label.attribute">
      <attribute name="label">
         <db:refpurpose>Specifies an identifying string for presentation purposes</db:refpurpose>
         <dbx:description xmlns:dbx="http://sourceforge.net/projects/docbook/defguide/schema/extra-markup">
            <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>
   </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.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 xmlns:s="http://www.ascc.net/xml/schematron" context="db:glosssee[@otherterm]">
               <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 xmlns:s="http://www.ascc.net/xml/schematron" context="db:glossseealso[@otherterm]">
               <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 xmlns:s="http://www.ascc.net/xml/schematron" context="db:firstterm[@linkend]">
               <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 xmlns:s="http://www.ascc.net/xml/schematron" context="db:glossterm[@linkend]">
               <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">
            <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 xmlns:s="http://www.ascc.net/xml/schematron" context="db:termdef">
               <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">
            <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>A cross-reference to a bibliographic entry</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">
            <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>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">
            <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>A division in a table of contents</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 xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/" name="area.units.attrib" enum-name="area.units-enum.attribute" other-name="area.units-other.attributes"/>
   <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 <db:quote>called out</db:quote>
 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">
         <db:refpurpose>Specifies how the table is to be framed</db:refpurpose>
         <dbx:description xmlns:dbx="http://sourceforge.net/projects/docbook/defguide/schema/extra-markup">
            <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">
         <db:refpurpose>Specifies the presence or absence of the column separator</db:refpurpose>
         <dbx:description xmlns:dbx="http://sourceforge.net/projects/docbook/defguide/schema/extra-markup">
            <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">
         <db:refpurpose>Specifies the presence or absence of the row separator</db:refpurpose>
         <dbx:description xmlns:dbx="http://sourceforge.net/projects/docbook/defguide/schema/extra-markup">
            <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">
         <db:refpurpose>Specifies the orientation of the table</db:refpurpose>
         <dbx:description xmlns:dbx="http://sourceforge.net/projects/docbook/defguide/schema/extra-markup">
            <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">
         <db:refpurpose>Specifies the table style</db:refpurpose>
         <dbx:description xmlns:dbx="http://sourceforge.net/projects/docbook/defguide/schema/extra-markup">
            <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">
         <db:refpurpose>Indicates whether or not the entries in the first column should be considered row headers</db:refpurpose>
         <dbx:description xmlns:dbx="http://sourceforge.net/projects/docbook/defguide/schema/extra-markup">
            <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 xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/" from="db.cals.table" exclude="db.cals.table"/>
      <ctrl:exclude xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/" from="db.cals.table" exclude="db.cals.informaltable"/>
      <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">
                  <db:refpurpose>Indicates if the short or long title should be used in a List of Tables</db:refpurpose>
                  <dbx:description xmlns:dbx="http://sourceforge.net/projects/docbook/defguide/schema/extra-markup">
                     <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">
                  <db:refpurpose>Indicates if the table should appear in a List of Tables</db:refpurpose>
                  <dbx:description xmlns:dbx="http://sourceforge.net/projects/docbook/defguide/schema/extra-markup">
                     <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 xmlns:s="http://www.ascc.net/xml/schematron" context="db:table">
               <s:assert test="not(.//db:example)">example must not occur in the descendants of table</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:table">
               <s:assert test="not(.//db:figure)">figure must not occur in the descendants of table</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:table">
               <s:assert test="not(.//db:table)">table must not occur in the descendants of table</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:table">
               <s:assert test="not(.//db:table)">table must not occur in the descendants of table</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:table">
               <s:assert test="not(.//db:caution)">caution must not occur in the descendants of table</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:table">
               <s:assert test="not(.//db:important)">important must not occur in the descendants of table</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:table">
               <s:assert test="not(.//db:note)">note must not occur in the descendants of table</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:table">
               <s:assert test="not(.//db:tip)">tip must not occur in the descendants of table</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:table">
               <s:assert test="not(.//db:warning)">warning must not occur in the descendants of table</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:table">
               <s:assert test="not(.//db:table)">table must not occur in the descendants of table</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:table">
               <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 xmlns:s="http://www.ascc.net/xml/schematron" context="db:table">
               <s:assert test="not(.//db:example)">example must not occur in the descendants of table</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:table">
               <s:assert test="not(.//db:figure)">figure must not occur in the descendants of table</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:table">
               <s:assert test="not(.//db:table)">table must not occur in the descendants of table</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:table">
               <s:assert test="not(.//db:table)">table must not occur in the descendants of table</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:table">
               <s:assert test="not(.//db:caution)">caution must not occur in the descendants of table</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:table">
               <s:assert test="not(.//db:important)">important must not occur in the descendants of table</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:table">
               <s:assert test="not(.//db:note)">note must not occur in the descendants of table</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:table">
               <s:assert test="not(.//db:tip)">tip must not occur in the descendants of table</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:table">
               <s:assert test="not(.//db:warning)">warning must not occur in the descendants of table</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:table">
               <s:assert test="not(.//db:table)">table must not occur in the descendants of table</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:table">
               <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 xmlns:s="http://www.ascc.net/xml/schematron" context="db:caption">
               <s:assert test="not(.//db:example)">example must not occur in the descendants of caption</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caption">
               <s:assert test="not(.//db:figure)">figure must not occur in the descendants of caption</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caption">
               <s:assert test="not(.//db:table)">table must not occur in the descendants of caption</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caption">
               <s:assert test="not(.//db:table)">table must not occur in the descendants of caption</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caption">
               <s:assert test="not(.//db:caution)">caution must not occur in the descendants of caption</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caption">
               <s:assert test="not(.//db:important)">important must not occur in the descendants of caption</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caption">
               <s:assert test="not(.//db:note)">note must not occur in the descendants of caption</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caption">
               <s:assert test="not(.//db:tip)">tip must not occur in the descendants of caption</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caption">
               <s:assert test="not(.//db:warning)">warning must not occur in the descendants of caption</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caption">
               <s:assert test="not(.//db:sidebar)">sidebar must not occur in the descendants of caption</s:assert>
            </s:rule>
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caption">
               <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>
   <start>
      <ref name="sl.slides"/>
   </start>
   <div>
      <db:refname>slides</db:refname>
      <db:refpurpose>A set of slides (or foils)</db:refpurpose>
      <define name="sl.slides.role.attribute">
         <attribute name="role"/>
      </define>
      <define name="sl.slides.attlist">
         <interleave>
            <optional>
               <ref name="sl.slides.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
         </interleave>
      </define>
      <define name="sl.slides.info">
         <ref name="db._info.title.req"/>
      </define>
      <define name="sl.slides">
         <element name="slides">
            <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="/db:slides">
               <s:assert test="@version">The root element must have a version attribute.</s:assert>
            </s:rule>
            <ref name="sl.slides.attlist"/>
            <ref name="sl.slides.info"/>
            <zeroOrMore>
               <ref name="db.all.blocks"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="sl.foil"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="sl.foilgroup"/>
            </zeroOrMore>
         </element>
      </define>
   </div>
   <div>
      <db:refname>foilgroup</db:refname>
      <db:refpurpose>A group of slides (or foils)</db:refpurpose>
      <define name="sl.foilgroup.role.attribute">
         <attribute name="role"/>
      </define>
      <define name="sl.foilgroup.attlist">
         <interleave>
            <optional>
               <ref name="sl.foilgroup.role.attribute"/>
            </optional>
            <optional>
               <ref name="db.status.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
         </interleave>
      </define>
      <define name="sl.foilgroup.info">
         <ref name="db._info.title.req"/>
      </define>
      <define name="sl.foilgroup">
         <element name="foilgroup">
            <ref name="sl.foilgroup.attlist"/>
            <ref name="sl.foilgroup.info"/>
            <zeroOrMore>
               <choice>
                  <ref name="db.all.blocks"/>
                  <ref name="db.navigation.components"/>
               </choice>
            </zeroOrMore>
            <oneOrMore>
               <ref name="sl.foil"/>
            </oneOrMore>
         </element>
      </define>
   </div>
   <div>
      <db:refname>foil</db:refname>
      <db:refpurpose>A slide (or foil)</db:refpurpose>
      <define name="sl.foil.role.attribute">
         <attribute name="role"/>
      </define>
      <define name="sl.foil.attlist">
         <interleave>
            <optional>
               <ref name="sl.foil.role.attribute"/>
            </optional>
            <optional>
               <ref name="db.status.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
         </interleave>
      </define>
      <define name="sl.foil.info">
         <ref name="db._info.title.req"/>
      </define>
      <define name="sl.foil">
         <element name="foil">
            <ref name="sl.foil.attlist"/>
            <ref name="sl.foil.info"/>
            <oneOrMore>
               <choice>
                  <ref name="db.all.blocks"/>
                  <ref name="db.navigation.components"/>
               </choice>
            </oneOrMore>
         </element>
      </define>
   </div>
   <div>
      <db:refname>speakernotes</db:refname>
      <db:refpurpose>Speaker notes</db:refpurpose>
      <define name="sl.speakernotes.role.attribute">
         <attribute name="role"/>
      </define>
      <define name="sl.speakernotes.attlist">
         <interleave>
            <optional>
               <ref name="sl.speakernotes.role.attribute"/>
            </optional>
            <optional>
               <ref name="db.status.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
         </interleave>
      </define>
      <define name="sl.speakernotes">
         <element name="speakernotes">
            <ref name="sl.speakernotes.attlist"/>
            <oneOrMore>
               <ref name="db.all.blocks"/>
            </oneOrMore>
         </element>
      </define>
   </div>
</grammar>
