<?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 -->
   <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.bibliography"/>
      </choice>
   </define>
   <define name="db.relation.attribute">
      <attribute name="relation"/>
   </define>
   <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>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>
   </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>
   </div>
   <define name="db.bibliolist">
      <notAllowed/>
   </define>
   <define name="db.biblioset">
      <notAllowed/>
   </define>
   <define name="db.biblioref">
      <notAllowed/>
   </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>
               <ref name="db.bibliomixed"/>
            </oneOrMore>
         </choice>
      </element>
   </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>
            <ref name="db.bibliomixed"/>
         </oneOrMore>
      </element>
   </define>
   <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: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>
            <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:note)">note 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: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>
            <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:note)">note 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: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:sidebar)">sidebar 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>
   <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.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.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.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._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>
         <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>
   </define>
   <define name="db.graphic.inlines">
      <ref name="db.inlinemediaobject"/>
   </define>
   <define name="db.indexing.inlines">
      <notAllowed/>
   </define>
   <define name="db.extension.inlines">
      <notAllowed/>
   </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="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"/>
   <ctrl:exclude xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/" from="db.admonition.blocks" exclude="db.admonition.blocks"/>
   <define name="db.extension.blocks">
      <notAllowed/>
   </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>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>
   </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: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: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: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>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>
   </div>
   <define name="db.admonition.contentmodel">
      <ref name="db._info.title.only"/>
      <oneOrMore>
         <ref name="db.all.blocks"/>
      </oneOrMore>
   </define>
   <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:note)">note 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>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>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:note)">note 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>
   <define name="db.verbatim.inlines">
      <choice>
         <ref name="db.all.inlines"/>
         <ref name="db.lineannotation"/>
      </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>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:note)">note 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>
   <define name="db.mediaobject.content">
      <choice>
         <ref name="db.videoobject"/>
         <ref name="db.audioobject"/>
         <ref name="db.imageobject"/>
         <ref name="db.textobject"/>
      </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">
      <ref name="db.imagedata"/>
   </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: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:sidebar)">sidebar 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>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>
   </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>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.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>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>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>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>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>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>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>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>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>
         <text/>
         <ref name="db.ubiq.inlines"/>
         <ref name="db.os.inlines"/>
         <ref name="db.technical.inlines"/>
         <ref name="db.markup.inlines"/>
      </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>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>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>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>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>
   <define name="db.replaceable.inlines">
      <ref name="db._text"/>
   </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>
   <define name="db.systemitem.inlines">
      <ref name="db._text"/>
   </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>
   <define name="db.userinput.inlines">
      <choice>
         <text/>
         <ref name="db.ubiq.inlines"/>
         <ref name="db.os.inlines"/>
         <ref name="db.technical.inlines"/>
         <ref name="db.markup.inlines"/>
      </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>
   </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>
   </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>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>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>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.common.attributes">
      <optional>
         <attribute name="xml:id">
            <data type="ID"/>
         </attribute>
      </optional>
      <optional>
         <attribute name="version"/>
      </optional>
      <optional>
         <attribute name="xml:lang"/>
      </optional>
      <optional>
         <attribute name="xml:base"/>
      </optional>
      <optional>
         <attribute name="revisionflag">
            <choice>
               <value>changed</value>
               <value>added</value>
               <value>deleted</value>
               <value>off</value>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="db.common.idreq.attributes">
      <attribute name="xml:id">
         <data type="ID"/>
      </attribute>
      <optional>
         <attribute name="version"/>
      </optional>
      <optional>
         <attribute name="xml:lang"/>
      </optional>
      <optional>
         <attribute name="xml:base"/>
      </optional>
      <optional>
         <attribute name="revisionflag">
            <choice>
               <value>changed</value>
               <value>added</value>
               <value>deleted</value>
               <value>off</value>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="db.info.elements">
      <choice>
         <choice>
            <ref name="db.abstract"/>
            <ref name="db.author"/>
            <ref name="db.authorgroup"/>
            <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.othercredit"/>
            <ref name="db.pubdate"/>
            <ref name="db.publishername"/>
            <ref name="db.releaseinfo"/>
            <ref name="db.revhistory"/>
            <ref name="db.subjectset"/>
            <ref name="db.volumenum"/>
         </choice>
         <choice>
            <ref name="db.bibliomisc"/>
            <ref name="db.bibliomset"/>
            <ref name="db.bibliorelation"/>
            <ref name="db.biblioset"/>
         </choice>
      </choice>
   </define>
   <define name="db.bibliographic.elements">
      <choice>
         <ref name="db.info.elements"/>
         <ref name="db.abbrev"/>
         <ref name="db.affiliation"/>
         <ref name="db.citetitle"/>
         <ref name="db.orgname"/>
         <ref name="db.personblurb"/>
         <ref name="db.personname"/>
         <ref name="db.subtitle"/>
         <ref name="db.title"/>
         <ref name="db.titleabbrev"/>
      </choice>
   </define>
   <define name="db.list.blocks">
      <choice>
         <choice>
            <ref name="db.itemizedlist"/>
            <ref name="db.orderedlist"/>
            <ref name="db.variablelist"/>
         </choice>
         <ref name="db.bibliolist"/>
      </choice>
   </define>
   <define name="db.admonition.blocks">
      <ref name="db.note"/>
   </define>
   <define name="db.verbatim.blocks">
      <choice>
         <ref name="db.literallayout"/>
         <ref name="db.programlisting"/>
      </choice>
   </define>
   <define name="db.para.blocks">
      <ref name="db.para"/>
   </define>
   <define name="db.publishing.blocks">
      <choice>
         <ref name="db.blockquote"/>
         <ref name="db.sidebar"/>
         <ref name="db.epigraph"/>
      </choice>
   </define>
   <define name="db.graphic.blocks">
      <ref name="db.mediaobject"/>
   </define>
   <define name="db.informal.blocks">
      <ref name="db.informaltable"/>
   </define>
   <define name="db.formal.blocks">
      <choice>
         <ref name="db.example"/>
         <ref name="db.figure"/>
         <ref name="db.table"/>
      </choice>
   </define>
   <define name="db.technical.blocks">
      <empty/>
   </define>
   <define name="db.synopsis.blocks">
      <empty/>
   </define>
   <define name="db.nopara.blocks">
      <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.revhistory"/>
      </choice>
   </define>
   <define name="db.ubiq.inlines">
      <choice>
         <ref name="db.inlinemediaobject"/>
         <ref name="db.superscript"/>
         <ref name="db.subscript"/>
      </choice>
   </define>
   <define name="db.publishing.inlines">
      <choice>
         <ref name="db.abbrev"/>
         <ref name="db.acronym"/>
         <ref name="db.emphasis"/>
         <ref name="db.footnote"/>
         <ref name="db.footnoteref"/>
         <ref name="db.phrase"/>
         <ref name="db.quote"/>
      </choice>
   </define>
   <define name="db.os.inlines">
      <choice>
         <ref name="db.filename"/>
         <ref name="db.command"/>
         <ref name="db.computeroutput"/>
         <ref name="db.userinput"/>
      </choice>
   </define>
   <define name="db.programming.inlines">
      <empty/>
   </define>
   <define name="db.product.inlines">
      <ref name="db.trademark"/>
   </define>
   <define name="db.bibliography.inlines">
      <choice>
         <ref name="db.citetitle"/>
         <ref name="db.author"/>
         <ref name="db.personname"/>
         <ref name="db.orgname"/>
         <ref name="db.editor"/>
      </choice>
   </define>
   <define name="db.markup.inlines">
      <choice>
         <ref name="db.literal"/>
         <ref name="db.email"/>
      </choice>
   </define>
   <define name="db.technical.inlines">
      <choice>
         <ref name="db.replaceable"/>
         <ref name="db.option"/>
         <ref name="db.systemitem"/>
      </choice>
   </define>
   <define name="db.error.inlines">
      <empty/>
   </define>
   <define name="db.link.inlines">
      <choice>
         <choice>
            <ref name="db.xref"/>
            <ref name="db.link"/>
            <ref name="db.anchor"/>
         </choice>
         <ref name="db.biblioref"/>
      </choice>
   </define>
   <define name="db.gui.inlines">
      <empty/>
   </define>
   <define name="db.keyboard.inlines">
      <empty/>
   </define>
   <define name="db.bibliorelation">
      <notAllowed/>
   </define>
   <define name="db.person.author.contentmodel">
      <ref name="db.personname"/>
      <zeroOrMore>
         <choice>
            <ref name="db.personblurb"/>
            <ref name="db.affiliation"/>
            <ref name="db.email"/>
         </choice>
      </zeroOrMore>
   </define>
   <define name="db.org.author.contentmodel">
      <ref name="db.orgname"/>
      <zeroOrMore>
         <choice>
            <ref name="db.affiliation"/>
            <ref name="db.email"/>
         </choice>
      </zeroOrMore>
   </define>
   <define name="db.abbrev">
      <element name="abbrev">
         <ref name="db.abbrev.attlist"/>
         <zeroOrMore>
            <choice>
               <ref name="db._text"/>
               <ref name="db.trademark"/>
            </choice>
         </zeroOrMore>
      </element>
   </define>
   <define name="db.acronym">
      <element name="acronym">
         <ref name="db.acronym.attlist"/>
         <zeroOrMore>
            <choice>
               <ref name="db._text"/>
               <ref name="db.trademark"/>
            </choice>
         </zeroOrMore>
      </element>
   </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"/>
            </choice>
         </zeroOrMore>
      </element>
   </define>
   <define name="db.affiliation">
      <element name="affiliation">
         <ref name="db.affiliation.attlist"/>
         <zeroOrMore>
            <ref name="db.jobtitle"/>
         </zeroOrMore>
         <optional>
            <ref name="db.orgname"/>
         </optional>
      </element>
   </define>
   <define name="db.para">
      <element name="para">
         <ref name="db.para.attlist"/>
         <ref name="db.para.info"/>
         <zeroOrMore>
            <ref name="db.all.inlines"/>
         </zeroOrMore>
      </element>
   </define>
   <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>