<?xml version="1.0" encoding="utf-8"?>
<grammar xmlns="http://relaxng.org/ns/structure/1.0" xmlns:db="http://docbook.org/ns/docbook" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns:xlink="http://www.w3.org/1999/xlink" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://docbook.org/ns/docbook">
<!-- DocBook NG: The "Mezcal" Release -->
<!-- See http://docbook.org/ns/docbook -->
<!-- DocBook NG: The "Mezcal" Release -->
<!-- See http://docbook.org/ns/docbook -->
<!-- This file is part of DocBook NG: The "Mezcal" Release. -->
<!--
    This schema is a "work-in-progress". It validates a DocBook-like grammar that
    may, in some incarnation, form the basis for DocBook V.next. Or it may not.
    At the moment, it's just an exploration by Norm. It has utterly no normative
    value at all.
    
    Author: Norman Walsh, <ndw@nwalsh.com>
    Source: Derived from DocBook XML V4.3
    Release: $Id: docbook.rnc,v 1.2 2005/07/07 14:28:25 nwalsh Exp $
    
    ======================================================================
  -->
  <start>
    <choice>
      <choice>
        <ref name="db.set"/>
        <ref name="db.book"/>
        <ref name="db.divisions"/>
        <ref name="db.components"/>
        <ref name="db.navigation.components"/>
        <ref name="db.section"/>
        <ref name="db.para"/>
      </choice>
      <choice>
        <ref name="db.sect1"/>
        <ref name="db.sect2"/>
        <ref name="db.sect3"/>
        <ref name="db.sect4"/>
        <ref name="db.sect5"/>
      </choice>
      <choice>
        <ref name="db.refentry"/>
        <ref name="db.refsection"/>
      </choice>
      <choice>
        <ref name="db.refsect1"/>
        <ref name="db.refsect2"/>
        <ref name="db.refsect3"/>
      </choice>
      <ref name="db.setindex"/>
    </choice>
  </start>
  <div>
    <define name="db._any">
      <element>
        <anyName>
          <except>
            <nsName/>
            <nsName ns="http://www.w3.org/1999/xhtml"/>
          </except>
        </anyName>
        <zeroOrMore>
          <choice>
            <attribute>
              <anyName/>
            </attribute>
            <text/>
            <ref name="db._any"/>
          </choice>
        </zeroOrMore>
        <a:documentation>Any element from any namespace except the DocBook namespace</a:documentation>
      </element>
    </define>
  </div>
  <define name="db.effectivity.attributes">
    <optional>
      <attribute name="arch">
        <a:documentation>Designates the computer or chip architecture to which the element applies</a:documentation>
      </attribute>
    </optional>
    <optional>
      <attribute name="condition">
        <a:documentation>provides a standard place for application-specific effectivity</a:documentation>
      </attribute>
    </optional>
    <optional>
      <attribute name="conformance">
        <a:documentation>Indicates standards conformance characteristics of the element</a:documentation>
      </attribute>
    </optional>
    <optional>
      <attribute name="os">
        <a:documentation>Indicates the operating system to which the element is applicable</a:documentation>
      </attribute>
    </optional>
    <optional>
      <attribute name="revision">
        <a:documentation>Indicates the editorial revision to which the element belongs</a:documentation>
      </attribute>
    </optional>
    <optional>
      <attribute name="security">
        <a:documentation>Indicates something about the security level associated with the element to which it applies</a:documentation>
      </attribute>
    </optional>
    <optional>
      <attribute name="userlevel">
        <a:documentation>Indicates the level of user experience for which the element applies</a:documentation>
      </attribute>
    </optional>
    <optional>
      <attribute name="vendor">
        <a:documentation>Indicates the computer vendor to which the element applies.</a:documentation>
      </attribute>
    </optional>
    <optional>
      <attribute name="wordsize">
        <a:documentation>Indicates the word size (width in bits) of the computer architecture to which the element applies</a:documentation>
      </attribute>
    </optional>
  </define>
  <define name="db.linkend.attribute">
    <attribute name="linkend">
      <data type="IDREF"/>
      <a:documentation>Points to an internal link target by identifying the value of its xml:id attribute</a:documentation>
    </attribute>
  </define>
  <define name="db.linkends.attribute">
    <attribute name="linkends">
      <data type="IDREFS"/>
      <a:documentation>Points to one or more internal link targets by identifying the value of their xml:id attributes</a:documentation>
    </attribute>
  </define>
  <define name="db.xlink.href.attribute">
    <attribute name="xlink:href">
      <a:documentation>Identifies a link target with a URI</a:documentation>
    </attribute>
  </define>
  <define name="db.xlink.type.attribute">
    <attribute name="xlink:type">
      <value>simple</value>
      <a:documentation>Identifies the element as an XLink simple link</a:documentation>
    </attribute>
  </define>
  <define name="db.xlink.role.attribute">
    <attribute name="xlink:role">
      <data type="anyURI"/>
      <a:documentation>Identifies the XLink role of the link</a:documentation>
    </attribute>
  </define>
  <define name="db.xlink.arcrole.attribute">
    <attribute name="xlink:arcrole">
      <data type="anyURI"/>
      <a:documentation>Identifies the XLink arcrole of the link</a:documentation>
    </attribute>
  </define>
  <define name="db.xlink.title.attribute">
    <optional>
      <attribute name="xlink:title">
        <a:documentation>Identifies the XLink title of the link</a:documentation>
      </attribute>
    </optional>
  </define>
  <define name="db.xlink.show.enumeration">
    <choice>
      <value>new</value>
      <value>replace</value>
      <value>embed</value>
      <value>other</value>
    </choice>
  </define>
  <define name="db.xlink.show.attribute">
    <attribute name="xlink:show">
      <ref name="db.xlink.show.enumeration"/>
      <a:documentation>Identifies the XLink show behavior of the link</a:documentation>
    </attribute>
  </define>
  <define name="db.xlink.actuate.enumeration">
    <choice>
      <value>onLoad</value>
      <value>onRequest</value>
      <value>other</value>
      <value>none</value>
    </choice>
  </define>
  <define name="db.xlink.actuate.attribute">
    <attribute name="xlink:actuate">
      <ref name="db.xlink.actuate.enumeration"/>
      <a:documentation>Identifies the XLink actuate behavior of the link</a:documentation>
    </attribute>
  </define>
  <define name="db.href.attribute">
    <interleave>
      <ref name="db.xlink.href.attribute"/>
      <optional>
        <ref name="db.xlink.type.attribute"/>
      </optional>
      <optional>
        <ref name="db.xlink.role.attribute"/>
      </optional>
      <optional>
        <ref name="db.xlink.arcrole.attribute"/>
      </optional>
      <optional>
        <ref name="db.xlink.title.attribute"/>
      </optional>
      <optional>
        <ref name="db.xlink.show.attribute"/>
      </optional>
      <optional>
        <ref name="db.xlink.actuate.attribute"/>
      </optional>
    </interleave>
  </define>
  <define name="db.xml.id.attribute">
    <attribute name="xml:id">
      <data type="ID"/>
      <a:documentation>Identifies the unique ID value of the element</a:documentation>
    </attribute>
  </define>
  <define name="db.version.attribute">
    <attribute name="version">
      <a:documentation>Specifies the DocBook version of the element and its descendants</a:documentation>
    </attribute>
  </define>
  <define name="db.xml.lang.attribute">
    <attribute name="xml:lang">
      <a:documentation>Specifies the natural language of the element and its descendants</a:documentation>
    </attribute>
  </define>
  <define name="db.xml.base.attribute">
    <attribute name="xml:base">
      <a:documentation>Specifies the base URI of the element and its descendants</a:documentation>
    </attribute>
  </define>
  <define name="db.remap.attribute">
    <attribute name="remap">
      <a:documentation>Provides the name or similar semantic identifier assigned to the content in some previous markup scheme</a:documentation>
    </attribute>
  </define>
  <define name="db.xreflabel.attribute">
    <attribute name="xreflabel">
      <a:documentation>Provides the text that is to be generated for a cross reference to the element</a:documentation>
    </attribute>
  </define>
  <define name="db.revisionflag.enumeration">
    <choice>
      <value>changed</value>
      <value>added</value>
      <value>deleted</value>
      <value>off</value>
    </choice>
  </define>
  <define name="db.revisionflag.attribute">
    <attribute name="revisionflag">
      <ref name="db.revisionflag.enumeration"/>
      <a:documentation>Identifies the revision status of the element</a:documentation>
    </attribute>
  </define>
  <define name="db.common.attributes">
    <interleave>
      <optional>
        <ref name="db.xml.id.attribute"/>
      </optional>
      <optional>
        <ref name="db.version.attribute"/>
      </optional>
      <optional>
        <ref name="db.xml.lang.attribute"/>
      </optional>
      <optional>
        <ref name="db.xml.base.attribute"/>
      </optional>
      <optional>
        <ref name="db.remap.attribute"/>
      </optional>
      <optional>
        <ref name="db.xreflabel.attribute"/>
      </optional>
      <optional>
        <ref name="db.revisionflag.attribute"/>
      </optional>
      <ref name="db.effectivity.attributes"/>
      <optional>
        <ref name="db.annotations.attribute"/>
      </optional>
    </interleave>
  </define>
  <define name="db.common.idreq.attributes">
    <interleave>
      <ref name="db.xml.id.attribute"/>
      <optional>
        <ref name="db.version.attribute"/>
      </optional>
      <optional>
        <ref name="db.xml.lang.attribute"/>
      </optional>
      <optional>
        <ref name="db.xml.base.attribute"/>
      </optional>
      <optional>
        <ref name="db.remap.attribute"/>
      </optional>
      <optional>
        <ref name="db.xreflabel.attribute"/>
      </optional>
      <optional>
        <ref name="db.revisionflag.attribute"/>
      </optional>
      <ref name="db.effectivity.attributes"/>
      <optional>
        <ref name="db.annotations.attribute"/>
      </optional>
    </interleave>
  </define>
  <define name="db.common.linking.attributes">
    <optional>
      <choice>
        <ref name="db.linkend.attribute"/>
        <ref name="db.href.attribute"/>
      </choice>
    </optional>
  </define>
  <define name="db.common.req.linking.attributes">
    <choice>
      <ref name="db.linkend.attribute"/>
      <ref name="db.href.attribute"/>
    </choice>
  </define>
  <define name="db.common.data.attributes">
    <optional>
      <attribute name="format"/>
    </optional>
    <choice>
      <attribute name="fileref">
        <data type="anyURI"/>
      </attribute>
      <attribute name="entityref">
        <data type="ENTITY"/>
      </attribute>
    </choice>
  </define>
  <define name="db.verbatim.continuation.enumeration">
    <choice>
      <value>continues</value>
      <value>restarts</value>
    </choice>
  </define>
  <define name="db.verbatim.continuation.attribute">
    <attribute name="continuation">
      <ref name="db.verbatim.continuation.enumeration"/>
    </attribute>
  </define>
  <define name="db.verbatim.linenumbering.enumeration">
    <choice>
      <value>numbered</value>
      <value>unnumbered</value>
    </choice>
  </define>
  <define name="db.verbatim.linenumbering.attribute">
    <attribute name="linenumbering">
      <ref name="db.verbatim.linenumbering.enumeration"/>
    </attribute>
  </define>
  <define name="db.verbatim.startinglinenumber.attribute">
    <attribute name="startinglinenumber">
      <data type="integer"/>
    </attribute>
  </define>
  <define name="db.verbatim.language.attribute">
    <attribute name="language"/>
  </define>
  <define name="db.verbatim.xml.space.attribute">
    <attribute name="xml:space">
      <value>preserve</value>
    </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>
      <value>normal</value>
    </choice>
  </define>
  <define name="db.spacing.attribute">
    <attribute name="spacing">
      <ref name="db.spacing.enumeration"/>
    </attribute>
  </define>
  <define name="db.pgwide.enumeration">
    <choice>
      <value>0</value>
      <value>1</value>
    </choice>
  </define>
  <define name="db.pgwide.attribute">
    <attribute name="pgwide">
      <ref name="db.pgwide.enumeration"/>
      <a:documentation>Indicates if the element is rendered across the column or the page</a:documentation>
    </attribute>
  </define>
  <define name="db.language.attribute">
    <attribute name="language"/>
  </define>
  <define name="db.performance.enumeration">
    <choice>
      <value>optional</value>
      <value>required</value>
    </choice>
  </define>
  <define name="db.performance.attribute">
    <attribute name="performance">
      <ref name="db.performance.enumeration"/>
    </attribute>
  </define>
  <define name="db.floatstyle.attribute">
    <attribute name="floatstyle"/>
  </define>
  <define name="db.halign.enumeration">
    <choice>
      <value>center</value>
      <value>char</value>
      <value>justify</value>
      <value>left</value>
      <value>right</value>
    </choice>
  </define>
  <define name="db.valign.enumeration">
    <choice>
      <value>bottom</value>
      <value>middle</value>
      <value>top</value>
    </choice>
  </define>
  <define name="db.biblio.class.enumeration">
    <choice>
      <value>doi</value>
      <value>isbn</value>
      <value>isrn</value>
      <value>issn</value>
      <value>libraryofcongress</value>
      <value>pubnumber</value>
      <value>uri</value>
    </choice>
  </define>
  <define name="db.biblio.class-enum.attribute">
    <optional>
      <attribute name="class">
        <ref name="db.biblio.class.enumeration"/>
        <a:documentation>Identifies the kind of bibliographic identifier</a:documentation>
      </attribute>
    </optional>
  </define>
  <define name="db.biblio.class-other.attribute">
    <attribute name="otherclass">
      <data type="NMTOKEN"/>
      <a:documentation>Provides an identifier for elements with the class 'other'</a:documentation>
    </attribute>
  </define>
  <define name="db.biblio.class-other.attributes">
    <interleave>
      <attribute name="class">
        <value>other</value>
      </attribute>
      <ref name="db.biblio.class-other.attribute"/>
    </interleave>
  </define>
  <define name="db.biblio.class.attribute">
    <choice>
      <ref name="db.biblio.class-enum.attribute"/>
      <ref name="db.biblio.class-other.attributes"/>
    </choice>
  </define>
  <define name="db.ubiq.inlines">
    <choice>
      <choice>
        <ref name="db.inlinemediaobject"/>
        <ref name="db.remark"/>
        <ref name="db.superscript"/>
        <ref name="db.subscript"/>
        <ref name="db.link.inlines"/>
        <ref name="db.alt"/>
      </choice>
      <ref name="db.annotation"/>
      <ref name="db.indexterm"/>
    </choice>
  </define>
  <define name="db._text">
    <zeroOrMore>
      <choice>
        <text/>
        <ref name="db.ubiq.inlines"/>
        <ref name="db._phrase"/>
        <ref name="db.replaceable"/>
      </choice>
    </zeroOrMore>
  </define>
  <define name="db._phrase">
    <element name="phrase">
      <ref name="db.phrase.attlist"/>
      <ref name="db._text"/>
    </element>
  </define>
  <define name="db._emphasis">
    <element name="emphasis">
      <ref name="db.emphasis.attlist"/>
      <zeroOrMore>
        <choice>
          <ref name="db._text"/>
          <ref name="db._emphasis"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <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>
      <choice>
        <text/>
        <ref name="db.ubiq.inlines"/>
        <ref name="db.general.inlines"/>
        <ref name="db.domain.inlines"/>
        <ref name="db.extension.inlines"/>
      </choice>
      <ref xmlns:xi="http://www.w3.org/2001/XInclude" name="db.xi.include"/>
    </choice>
  </define>
  <define name="db.general.inlines">
    <choice>
      <ref name="db.publishing.inlines"/>
      <ref name="db.product.inlines"/>
      <ref name="db.bibliography.inlines"/>
      <ref name="db.graphic.inlines"/>
      <ref name="db.indexing.inlines"/>
      <ref name="db.link.inlines"/>
    </choice>
  </define>
  <define name="db.domain.inlines">
    <choice>
      <choice>
        <ref name="db.technical.inlines"/>
        <ref name="db.error.inlines"/>
        <ref name="db.os.inlines"/>
        <ref name="db.programming.inlines"/>
        <ref name="db.markup.inlines"/>
        <ref name="db.gui.inlines"/>
        <ref name="db.keyboard.inlines"/>
      </choice>
      <ref name="db.math.inlines"/>
    </choice>
  </define>
  <define name="db.technical.inlines">
    <choice>
      <choice>
        <ref name="db.replaceable"/>
        <ref name="db.systemitem"/>
        <ref name="db.option"/>
        <ref name="db.optional"/>
        <ref name="db.package"/>
        <ref name="db.property"/>
        <ref name="db.termdef"/>
      </choice>
      <ref name="db.nonterminal"/>
    </choice>
  </define>
  <define name="db.error.inlines">
    <choice>
      <ref name="db.errorcode"/>
      <ref name="db.errortext"/>
      <ref name="db.errorname"/>
      <ref name="db.errortype"/>
    </choice>
  </define>
  <define name="db.oo.inlines">
    <choice>
      <ref name="db.ooclass"/>
      <ref name="db.ooexception"/>
      <ref name="db.oointerface"/>
    </choice>
  </define>
  <define name="db.programming.inlines">
    <choice>
      <ref name="db.function"/>
      <ref name="db.parameter"/>
      <ref name="db.varname"/>
      <ref name="db.returnvalue"/>
      <ref name="db.type"/>
      <ref name="db.classname"/>
      <ref name="db.exceptionname"/>
      <ref name="db.interfacename"/>
      <ref name="db.methodname"/>
      <ref name="db.modifier"/>
      <ref name="db.initializer"/>
      <ref name="db.oo.inlines"/>
    </choice>
  </define>
  <define name="db.product.inlines">
    <choice>
      <ref name="db.productnumber"/>
      <ref name="db.productname"/>
      <ref name="db.database"/>
      <ref name="db.application"/>
      <ref name="db.hardware"/>
      <ref name="db.trademark"/>
    </choice>
  </define>
  <define name="db.os.inlines">
    <choice>
      <ref name="db.prompt"/>
      <ref name="db.envar"/>
      <ref name="db.filename"/>
      <ref name="db.command"/>
      <ref name="db.computeroutput"/>
      <ref name="db.userinput"/>
    </choice>
  </define>
  <define name="db.markup.inlines">
    <choice>
      <ref name="db.tag"/>
      <ref name="db.markup"/>
      <ref name="db.token"/>
      <ref name="db.symbol"/>
      <ref name="db.literal"/>
      <ref name="db.code"/>
      <ref name="db.constant"/>
      <ref name="db.email"/>
      <ref name="db.uri"/>
    </choice>
  </define>
  <define name="db.bibliography.inlines">
    <choice>
      <ref name="db.citation"/>
      <ref name="db.citerefentry"/>
      <ref name="db.citetitle"/>
      <ref name="db.citebiblioid"/>
      <ref name="db.author"/>
      <ref name="db.personname"/>
      <ref name="db.orgname"/>
      <ref name="db.editor"/>
    </choice>
  </define>
  <define name="db.publishing.inlines">
    <choice>
      <choice>
        <ref name="db.abbrev"/>
        <ref name="db.acronym"/>
        <ref name="db.date"/>
        <ref name="db.emphasis"/>
        <ref name="db.footnote"/>
        <ref name="db.footnoteref"/>
        <ref name="db.foreignphrase"/>
        <ref name="db.phrase"/>
        <ref name="db.quote"/>
        <ref name="db.subscript"/>
        <ref name="db.superscript"/>
        <ref name="db.wordasword"/>
      </choice>
      <ref name="db.glossary.inlines"/>
      <ref name="db.coref"/>
    </choice>
  </define>
  <define name="db.graphic.inlines">
    <ref name="db.inlinemediaobject"/>
  </define>
  <define name="db.indexing.inlines">
    <choice>
      <notAllowed/>
      <ref name="db.indexterm"/>
    </choice>
  </define>
  <define name="db.gui.inlines">
    <choice>
      <ref name="db.guiicon"/>
      <ref name="db.guibutton"/>
      <ref name="db.guimenuitem"/>
      <ref name="db.guimenu"/>
      <ref name="db.guisubmenu"/>
      <ref name="db.guilabel"/>
      <ref name="db.menuchoice"/>
      <ref name="db.mousebutton"/>
    </choice>
  </define>
  <define name="db.keyboard.inlines">
    <choice>
      <ref name="db.keycombo"/>
      <ref name="db.keycap"/>
      <ref name="db.keycode"/>
      <ref name="db.keysym"/>
      <ref name="db.shortcut"/>
      <ref name="db.accel"/>
    </choice>
  </define>
  <define name="db.link.inlines">
    <choice>
      <choice>
        <ref name="db.xref"/>
        <ref name="db.link"/>
        <ref name="db.olink"/>
        <ref name="db.anchor"/>
      </choice>
      <ref name="db.biblioref"/>
    </choice>
  </define>
  <define name="db.extension.inlines">
    <notAllowed/>
  </define>
  <define name="db.nopara.blocks">
    <choice>
      <choice>
        <ref name="db.list.blocks"/>
        <ref name="db.admonition.blocks"/>
        <ref name="db.formal.blocks"/>
        <ref name="db.informal.blocks"/>
        <ref name="db.publishing.blocks"/>
        <ref name="db.graphic.blocks"/>
        <ref name="db.technical.blocks"/>
        <ref name="db.verbatim.blocks"/>
        <ref name="db.synopsis.blocks"/>
        <ref name="db.bridgehead"/>
        <ref name="db.remark"/>
        <ref name="db.revhistory"/>
      </choice>
      <ref name="db.indexterm"/>
      <ref name="db.math.blocks"/>
    </choice>
  </define>
  <define name="db.para.blocks">
    <choice>
      <ref name="db.anchor"/>
      <ref name="db.para"/>
      <ref name="db.formalpara"/>
      <ref name="db.simpara"/>
    </choice>
  </define>
  <define name="db.all.blocks">
    <choice>
      <choice>
        <ref name="db.nopara.blocks"/>
        <ref name="db.para.blocks"/>
        <ref name="db.extension.blocks"/>
      </choice>
      <ref name="db.annotation"/>
      <ref xmlns:xi="http://www.w3.org/2001/XInclude" name="db.xi.include"/>
    </choice>
  </define>
  <define name="db.formal.blocks">
    <choice>
      <ref name="db.example"/>
      <ref name="db.figure"/>
      <ref name="db.table"/>
    </choice>
  </define>
  <define name="db.informal.blocks">
    <choice>
      <ref name="db.informalexample"/>
      <ref name="db.informalfigure"/>
      <ref name="db.informaltable"/>
    </choice>
  </define>
  <define name="db.publishing.blocks">
    <choice>
      <ref name="db.sidebar"/>
      <ref name="db.blockquote"/>
      <ref name="db.address"/>
      <ref name="db.epigraph"/>
    </choice>
  </define>
  <define name="db.graphic.blocks">
    <choice>
      <ref name="db.mediaobject"/>
      <ref name="db.screenshot"/>
    </choice>
  </define>
  <define name="db.technical.blocks">
    <choice>
      <ref name="db.procedure"/>
      <ref name="db.task"/>
      <choice>
        <ref name="db.productionset"/>
        <ref name="db.constraintdef"/>
      </choice>
      <ref name="db.msgset"/>
    </choice>
  </define>
  <define name="db.admonition.blocks">
    <choice>
      <ref name="db.caution"/>
      <ref name="db.important"/>
      <ref name="db.note"/>
      <ref name="db.tip"/>
      <ref name="db.warning"/>
    </choice>
  </define>
  <define name="db.list.blocks">
    <choice>
      <choice>
        <ref name="db.itemizedlist"/>
        <ref name="db.orderedlist"/>
        <ref name="db.procedure"/>
        <ref name="db.simplelist"/>
        <ref name="db.variablelist"/>
        <ref name="db.segmentedlist"/>
      </choice>
      <ref name="db.glosslist"/>
      <ref name="db.bibliolist"/>
      <ref name="db.calloutlist"/>
      <ref name="db.qandaset"/>
    </choice>
  </define>
  <define name="db.verbatim.blocks">
    <choice>
      <choice>
        <ref name="db.programlisting"/>
        <ref name="db.screen"/>
        <ref name="db.literallayout"/>
        <ref name="db.synopsis"/>
      </choice>
      <choice>
        <ref name="db.programlistingco"/>
        <ref name="db.screenco"/>
      </choice>
    </choice>
  </define>
  <define name="db.synopsis.blocks">
    <choice>
      <ref name="db.cmdsynopsis"/>
      <ref name="db.funcsynopsis"/>
      <ref name="db.classsynopsis"/>
      <ref name="db.methodsynopsis"/>
      <ref name="db.constructorsynopsis"/>
      <ref name="db.destructorsynopsis"/>
      <ref name="db.fieldsynopsis"/>
    </choice>
  </define>
  <define name="db.extension.blocks">
    <notAllowed/>
  </define>
  <define name="db.info.elements">
    <choice>
      <choice>
        <ref name="db.abstract"/>
        <ref name="db.address"/>
        <ref name="db.artpagenums"/>
        <ref name="db.author"/>
        <ref name="db.authorgroup"/>
        <ref name="db.authorinitials"/>
        <ref name="db.bibliocoverage"/>
        <ref name="db.biblioid"/>
        <ref name="db.bibliosource"/>
        <ref name="db.collab"/>
        <ref name="db.confgroup"/>
        <ref name="db.contractsponsor"/>
        <ref name="db.contractnum"/>
        <ref name="db.copyright"/>
        <ref name="db.date"/>
        <ref name="db.edition"/>
        <ref name="db.editor"/>
        <ref name="db.issuenum"/>
        <ref name="db.keywordset"/>
        <ref name="db.legalnotice"/>
        <ref name="db.mediaobject"/>
        <ref name="db.orgname"/>
        <ref name="db.othercredit"/>
        <ref name="db.pagenums"/>
        <ref name="db.printhistory"/>
        <ref name="db.productname"/>
        <ref name="db.productnumber"/>
        <ref name="db.pubdate"/>
        <ref name="db.publisher"/>
        <ref name="db.publishername"/>
        <ref name="db.releaseinfo"/>
        <ref name="db.revhistory"/>
        <ref name="db.seriesvolnums"/>
        <ref name="db.subjectset"/>
        <ref name="db.volumenum"/>
      </choice>
      <ref name="db.extendedlink"/>
      <choice>
        <ref name="db.bibliomisc"/>
        <ref name="db.bibliomset"/>
        <ref name="db.bibliorelation"/>
        <ref name="db.biblioset"/>
      </choice>
      <ref name="db.itermset"/>
    </choice>
  </define>
  <define name="db.bibliographic.elements">
    <choice>
      <ref name="db.info.elements"/>
      <ref name="db.abbrev"/>
      <ref name="db.citerefentry"/>
      <ref name="db.citetitle"/>
      <ref name="db.citebiblioid"/>
      <ref name="db.personname"/>
      <ref name="db.subtitle"/>
      <ref name="db.title"/>
    </choice>
  </define>
  <div>
    <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>
        <a:documentation>The text of the title of a section of a document or of a formal block-level element</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <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>
        <a:documentation>The abbreviation of a Title</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <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>
        <a:documentation>The subtitle of a document</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <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>
        <a:documentation>A wrapper for information about a component or other block</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <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>
        <a:documentation>A wrapper for information about a component or other block with a required title</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <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>
        <a:documentation>A wrapper for information about a component or other block with only a title</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <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>
        <a:documentation>A wrapper for information about a component or other block with only a required title</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <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>
        <a:documentation>A wrapper for information about a component or other block without a title</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <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>
        <a:documentation>A set of terms describing the subject matter of a document</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <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>
        <a:documentation>One of a group of terms describing the subject matter of a document</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <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/>
        <a:documentation>A term in a group of terms describing the subject matter of a document</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <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>
        <a:documentation>A set of keywords describing the content of a document</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <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/>
        <a:documentation>One of a set of keywords describing the content of a document</a:documentation>
      </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>
    <define name="db.procedure.role.attribute">
      <attribute name="role"/>
    </define>
    <define name="db.procedure.attlist">
      <interleave>
        <optional>
          <ref name="db.procedure.role.attribute"/>
        </optional>
        <ref name="db.common.attributes"/>
        <ref name="db.common.linking.attributes"/>
      </interleave>
    </define>
    <define name="db.procedure.info">
      <ref name="db._info.title.only"/>
    </define>
    <define name="db.procedure">
      <element name="procedure">
        <ref name="db.procedure.attlist"/>
        <ref name="db.procedure.info"/>
        <zeroOrMore>
          <ref name="db.all.blocks"/>
        </zeroOrMore>
        <oneOrMore>
          <ref name="db.step"/>
        </oneOrMore>
        <a:documentation>A list of operations to be performed in a well-defined sequence</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <define name="db.step.role.attribute">
      <attribute name="role"/>
    </define>
    <define name="db.step.attlist">
      <interleave>
        <optional>
          <ref name="db.step.role.attribute"/>
        </optional>
        <ref name="db.common.attributes"/>
        <ref name="db.common.linking.attributes"/>
        <optional>
          <ref name="db.performance.attribute"/>
        </optional>
      </interleave>
    </define>
    <define name="db.step.info">
      <ref name="db._info.title.only"/>
    </define>
    <define name="db.step">
      <element name="step">
        <ref name="db.step.attlist"/>
        <ref name="db.step.info"/>
        <zeroOrMore>
          <ref name="db.all.blocks"/>
        </zeroOrMore>
        <optional>
          <choice>
            <ref name="db.substeps"/>
            <ref name="db.stepalternatives"/>
          </choice>
        </optional>
        <zeroOrMore>
          <ref name="db.all.blocks"/>
        </zeroOrMore>
        <a:documentation>A unit of action in a procedure</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <define name="db.stepalternatives.role.attribute">
      <attribute name="role"/>
    </define>
    <define name="db.stepalternatives.attlist">
      <interleave>
        <optional>
          <ref name="db.stepalternatives.role.attribute"/>
        </optional>
        <ref name="db.common.attributes"/>
        <ref name="db.common.linking.attributes"/>
        <optional>
          <ref name="db.performance.attribute"/>
        </optional>
      </interleave>
    </define>
    <define name="db.stepalternatives.info">
      <ref name="db._info.title.forbidden"/>
    </define>
    <define name="db.stepalternatives">
      <element name="stepalternatives">
        <ref name="db.stepalternatives.attlist"/>
        <ref name="db.stepalternatives.info"/>
        <oneOrMore>
          <ref name="db.step"/>
        </oneOrMore>
        <a:documentation>Alternative steps in a procedure</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <define name="db.substeps.role.attribute">
      <attribute name="role"/>
    </define>
    <define name="db.substeps.attlist">
      <interleave>
        <optional>
          <ref name="db.substeps.role.attribute"/>
        </optional>
        <ref name="db.common.attributes"/>
        <ref name="db.common.linking.attributes"/>
        <optional>
          <ref name="db.performance.attribute"/>
        </optional>
      </interleave>
    </define>
    <define name="db.substeps">
      <element name="substeps">
        <ref name="db.substeps.attlist"/>
        <oneOrMore>
          <ref name="db.step"/>
        </oneOrMore>
        <a:documentation>A wrapper for steps that occur within steps in a procedure</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <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>
        <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>
        <a:documentation>A portion of a document that is isolated from the main narrative flow</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <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>
        <a:documentation>A summary</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <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>
        <a:documentation>A short description or note about a person</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <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>
        <a:documentation>A quotation set off from the main text</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <define name="db.attribution.role.attribute">
      <attribute name="role"/>
    </define>
    <define name="db.attribution.attlist">
      <interleave>
        <optional>
          <ref name="db.attribution.role.attribute"/>
        </optional>
        <ref name="db.common.attributes"/>
        <ref name="db.common.linking.attributes"/>
      </interleave>
    </define>
    <define name="db.attribution">
      <element name="attribution">
        <ref name="db.attribution.attlist"/>
        <zeroOrMore>
          <choice>
            <ref name="db._text"/>
            <ref name="db.personname"/>
            <ref name="db.citetitle"/>
            <ref name="db.citation"/>
          </choice>
        </zeroOrMore>
        <a:documentation>The source of a block quote or epigraph</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <define name="db.bridgehead.role.attribute">
      <attribute name="role"/>
    </define>
    <define name="db.bridgehead.renderas.enumeration">
      <choice>
        <value>other</value>
        <value>sect1</value>
        <value>sect2</value>
        <value>sect3</value>
        <value>sect4</value>
        <value>sect5</value>
      </choice>
    </define>
    <define name="db.bridgehead.renderas.attribute">
      <attribute name="renderas">
        <ref name="db.bridgehead.renderas.enumeration"/>
      </attribute>
    </define>
    <define name="db.bridgehead.attlist">
      <interleave>
        <optional>
          <ref name="db.bridgehead.role.attribute"/>
        </optional>
        <ref name="db.common.attributes"/>
        <ref name="db.common.linking.attributes"/>
        <optional>
          <ref name="db.bridgehead.renderas.attribute"/>
        </optional>
      </interleave>
    </define>
    <define name="db.bridgehead">
      <element name="bridgehead">
        <ref name="db.bridgehead.attlist"/>
        <zeroOrMore>
          <ref name="db.all.inlines"/>
        </zeroOrMore>
        <a:documentation>A free-floating heading</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <define name="db.remark.role.attribute">
      <attribute name="role"/>
    </define>
    <define name="db.remark.attlist">
      <interleave>
        <optional>
          <ref name="db.remark.role.attribute"/>
        </optional>
        <ref name="db.common.attributes"/>
        <ref name="db.common.linking.attributes"/>
      </interleave>
    </define>
    <define name="db.remark">
      <element name="remark">
        <ref name="db.remark.attlist"/>
        <ref name="db._text"/>
        <a:documentation>A remark (or comment) intended for presentation in a draft manuscript</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <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>
        <a:documentation>A short inscription at the beginning of a document or component</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <define name="db.footnote.role.attribute">
      <attribute name="role"/>
    </define>
    <define name="db.footnote.label.attribute">
      <attribute name="label"/>
    </define>
    <define name="db.footnote.attlist">
      <interleave>
        <optional>
          <ref name="db.footnote.role.attribute"/>
        </optional>
        <ref name="db.common.attributes"/>
        <ref name="db.common.linking.attributes"/>
        <optional>
          <ref name="db.footnote.label.attribute"/>
        </optional>
      </interleave>
    </define>
    <define name="db.footnote">
      <element name="footnote">
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
          <s:assert test="not(.//db:footnote)">footnote must not occur in the descendants of footnote</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
          <s:assert test="not(.//db:example)">example must not occur in the descendants of footnote</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
          <s:assert test="not(.//db:figure)">figure must not occur in the descendants of footnote</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
          <s:assert test="not(.//db:table)">table must not occur in the descendants of footnote</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
          <s:assert test="not(.//db:table)">table must not occur in the descendants of footnote</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
          <s:assert test="not(.//db:caution)">caution must not occur in the descendants of footnote</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
          <s:assert test="not(.//db:important)">important must not occur in the descendants of footnote</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
          <s:assert test="not(.//db:note)">note must not occur in the descendants of footnote</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
          <s:assert test="not(.//db:tip)">tip must not occur in the descendants of footnote</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
          <s:assert test="not(.//db:warning)">warning must not occur in the descendants of footnote</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
          <s:assert test="not(.//db:indexterm)">indexterm must not occur in the descendants of footnote</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
          <s:assert test="not(.//db:indexterm)">indexterm must not occur in the descendants of footnote</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
          <s:assert test="not(.//db:indexterm)">indexterm must not occur in the descendants of footnote</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
          <s:assert test="not(.//db:sidebar)">sidebar must not occur in the descendants of footnote</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
          <s:assert test="not(.//db:task)">task must not occur in the descendants of footnote</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
          <s:assert test="not(.//db:epigraph)">epigraph must not occur in the descendants of footnote</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
          <s:assert test="not(.//db:footnote)">footnote must not occur in the descendants of footnote</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
          <s:assert test="not(.//db:example)">example must not occur in the descendants of footnote</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
          <s:assert test="not(.//db:figure)">figure must not occur in the descendants of footnote</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
          <s:assert test="not(.//db:table)">table must not occur in the descendants of footnote</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
          <s:assert test="not(.//db:table)">table must not occur in the descendants of footnote</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
          <s:assert test="not(.//db:caution)">caution must not occur in the descendants of footnote</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
          <s:assert test="not(.//db:important)">important must not occur in the descendants of footnote</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
          <s:assert test="not(.//db:note)">note must not occur in the descendants of footnote</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
          <s:assert test="not(.//db:tip)">tip must not occur in the descendants of footnote</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
          <s:assert test="not(.//db:warning)">warning must not occur in the descendants of footnote</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
          <s:assert test="not(.//db:indexterm)">indexterm must not occur in the descendants of footnote</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
          <s:assert test="not(.//db:indexterm)">indexterm must not occur in the descendants of footnote</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
          <s:assert test="not(.//db:indexterm)">indexterm must not occur in the descendants of footnote</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
          <s:assert test="not(.//db:sidebar)">sidebar must not occur in the descendants of footnote</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
          <s:assert test="not(.//db:task)">task must not occur in the descendants of footnote</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:footnote">
          <s:assert test="not(.//db:epigraph)">epigraph must not occur in the descendants of footnote</s:assert>
        </s:rule>
        <ref name="db.footnote.attlist"/>
        <oneOrMore>
          <ref name="db.all.blocks"/>
        </oneOrMore>
        <a:documentation>A footnote</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <define name="db.formalpara.role.attribute">
      <attribute name="role"/>
    </define>
    <define name="db.formalpara.attlist">
      <interleave>
        <optional>
          <ref name="db.formalpara.role.attribute"/>
        </optional>
        <ref name="db.common.attributes"/>
        <ref name="db.common.linking.attributes"/>
      </interleave>
    </define>
    <define name="db.formalpara.info">
      <ref name="db._info.title.onlyreq"/>
    </define>
    <define name="db.formalpara">
      <element name="formalpara">
        <ref name="db.formalpara.attlist"/>
        <ref name="db.formalpara.info"/>
        <zeroOrMore>
          <ref name="db.indexing.inlines"/>
        </zeroOrMore>
        <ref name="db.para"/>
        <a:documentation>A paragraph with a title</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <define name="db.para.role.attribute">
      <attribute name="role"/>
    </define>
    <define name="db.para.attlist">
      <interleave>
        <optional>
          <ref name="db.para.role.attribute"/>
        </optional>
        <ref name="db.common.attributes"/>
        <ref name="db.common.linking.attributes"/>
      </interleave>
    </define>
    <define name="db.para.info">
      <ref name="db._info.title.forbidden"/>
    </define>
    <define name="db.para">
      <element name="para">
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="/db:para">
          <s:assert test="@version">The root element must have a version attribute.</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="/db:para">
          <s:assert test="@version">The root element must have a version attribute.</s:assert>
        </s:rule>
        <ref name="db.para.attlist"/>
        <ref name="db.para.info"/>
        <zeroOrMore>
          <choice>
            <ref name="db.all.inlines"/>
            <ref name="db.nopara.blocks"/>
          </choice>
        </zeroOrMore>
        <a:documentation>A paragraph</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <define name="db.simpara.role.attribute">
      <attribute name="role"/>
    </define>
    <define name="db.simpara.attlist">
      <interleave>
        <optional>
          <ref name="db.simpara.role.attribute"/>
        </optional>
        <ref name="db.common.attributes"/>
        <ref name="db.common.linking.attributes"/>
      </interleave>
    </define>
    <define name="db.simpara.info">
      <ref name="db._info.title.forbidden"/>
    </define>
    <define name="db.simpara">
      <element name="simpara">
        <ref name="db.simpara.attlist"/>
        <ref name="db.simpara.info"/>
        <zeroOrMore>
          <ref name="db.all.inlines"/>
        </zeroOrMore>
        <a:documentation>A paragraph that contains only text and inline markup, no block elements</a:documentation>
      </element>
    </define>
  </div>
  <define name="db.admonition.contentmodel">
    <ref name="db._info.title.only"/>
    <oneOrMore>
      <ref name="db.all.blocks"/>
    </oneOrMore>
  </define>
  <div>
    <define name="db.caution.role.attribute">
      <attribute name="role"/>
    </define>
    <define name="db.caution.attlist">
      <interleave>
        <optional>
          <ref name="db.caution.role.attribute"/>
        </optional>
        <ref name="db.common.attributes"/>
        <ref name="db.common.linking.attributes"/>
      </interleave>
    </define>
    <define name="db.caution">
      <element name="caution">
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caution">
          <s:assert test="not(.//db:caution)">caution must not occur in the descendants of caution</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caution">
          <s:assert test="not(.//db:important)">important must not occur in the descendants of caution</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caution">
          <s:assert test="not(.//db:note)">note must not occur in the descendants of caution</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caution">
          <s:assert test="not(.//db:tip)">tip must not occur in the descendants of caution</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caution">
          <s:assert test="not(.//db:warning)">warning must not occur in the descendants of caution</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caution">
          <s:assert test="not(.//db:caution)">caution must not occur in the descendants of caution</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caution">
          <s:assert test="not(.//db:important)">important must not occur in the descendants of caution</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caution">
          <s:assert test="not(.//db:note)">note must not occur in the descendants of caution</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caution">
          <s:assert test="not(.//db:tip)">tip must not occur in the descendants of caution</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caution">
          <s:assert test="not(.//db:warning)">warning must not occur in the descendants of caution</s:assert>
        </s:rule>
        <ref name="db.caution.attlist"/>
        <ref name="db.admonition.contentmodel"/>
        <a:documentation>A note of caution</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <define name="db.important.role.attribute">
      <attribute name="role"/>
    </define>
    <define name="db.important.attlist">
      <interleave>
        <optional>
          <ref name="db.important.role.attribute"/>
        </optional>
        <ref name="db.common.attributes"/>
        <ref name="db.common.linking.attributes"/>
      </interleave>
    </define>
    <define name="db.important">
      <element name="important">
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:important">
          <s:assert test="not(.//db:caution)">caution must not occur in the descendants of important</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:important">
          <s:assert test="not(.//db:important)">important must not occur in the descendants of important</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:important">
          <s:assert test="not(.//db:note)">note must not occur in the descendants of important</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:important">
          <s:assert test="not(.//db:tip)">tip must not occur in the descendants of important</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:important">
          <s:assert test="not(.//db:warning)">warning must not occur in the descendants of important</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:important">
          <s:assert test="not(.//db:caution)">caution must not occur in the descendants of important</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:important">
          <s:assert test="not(.//db:important)">important must not occur in the descendants of important</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:important">
          <s:assert test="not(.//db:note)">note must not occur in the descendants of important</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:important">
          <s:assert test="not(.//db:tip)">tip must not occur in the descendants of important</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:important">
          <s:assert test="not(.//db:warning)">warning must not occur in the descendants of important</s:assert>
        </s:rule>
        <ref name="db.important.attlist"/>
        <ref name="db.admonition.contentmodel"/>
        <a:documentation>An admonition set off from the text</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <define name="db.note.role.attribute">
      <attribute name="role"/>
    </define>
    <define name="db.note.attlist">
      <interleave>
        <optional>
          <ref name="db.note.role.attribute"/>
        </optional>
        <ref name="db.common.attributes"/>
        <ref name="db.common.linking.attributes"/>
      </interleave>
    </define>
    <define name="db.note">
      <element name="note">
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:note">
          <s:assert test="not(.//db:caution)">caution must not occur in the descendants of note</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:note">
          <s:assert test="not(.//db:important)">important must not occur in the descendants of note</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:note">
          <s:assert test="not(.//db:note)">note must not occur in the descendants of note</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:note">
          <s:assert test="not(.//db:tip)">tip must not occur in the descendants of note</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:note">
          <s:assert test="not(.//db:warning)">warning must not occur in the descendants of note</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:note">
          <s:assert test="not(.//db:caution)">caution must not occur in the descendants of note</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:note">
          <s:assert test="not(.//db:important)">important must not occur in the descendants of note</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:note">
          <s:assert test="not(.//db:note)">note must not occur in the descendants of note</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:note">
          <s:assert test="not(.//db:tip)">tip must not occur in the descendants of note</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:note">
          <s:assert test="not(.//db:warning)">warning must not occur in the descendants of note</s:assert>
        </s:rule>
        <ref name="db.note.attlist"/>
        <ref name="db.admonition.contentmodel"/>
        <a:documentation>A message set off from the text</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <define name="db.tip.role.attribute">
      <attribute name="role"/>
    </define>
    <define name="db.tip.attlist">
      <interleave>
        <optional>
          <ref name="db.tip.role.attribute"/>
        </optional>
        <ref name="db.common.attributes"/>
        <ref name="db.common.linking.attributes"/>
      </interleave>
    </define>
    <define name="db.tip">
      <element name="tip">
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:tip">
          <s:assert test="not(.//db:caution)">caution must not occur in the descendants of tip</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:tip">
          <s:assert test="not(.//db:important)">important must not occur in the descendants of tip</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:tip">
          <s:assert test="not(.//db:note)">note must not occur in the descendants of tip</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:tip">
          <s:assert test="not(.//db:tip)">tip must not occur in the descendants of tip</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:tip">
          <s:assert test="not(.//db:warning)">warning must not occur in the descendants of tip</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:tip">
          <s:assert test="not(.//db:caution)">caution must not occur in the descendants of tip</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:tip">
          <s:assert test="not(.//db:important)">important must not occur in the descendants of tip</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:tip">
          <s:assert test="not(.//db:note)">note must not occur in the descendants of tip</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:tip">
          <s:assert test="not(.//db:tip)">tip must not occur in the descendants of tip</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:tip">
          <s:assert test="not(.//db:warning)">warning must not occur in the descendants of tip</s:assert>
        </s:rule>
        <ref name="db.tip.attlist"/>
        <ref name="db.admonition.contentmodel"/>
        <a:documentation>A suggestion to the user, set off from the text</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <define name="db.warning.role.attribute">
      <attribute name="role"/>
    </define>
    <define name="db.warning.attlist">
      <interleave>
        <optional>
          <ref name="db.warning.role.attribute"/>
        </optional>
        <ref name="db.common.attributes"/>
        <ref name="db.common.linking.attributes"/>
      </interleave>
    </define>
    <define name="db.warning">
      <element name="warning">
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:warning">
          <s:assert test="not(.//db:caution)">caution must not occur in the descendants of warning</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:warning">
          <s:assert test="not(.//db:important)">important must not occur in the descendants of warning</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:warning">
          <s:assert test="not(.//db:note)">note must not occur in the descendants of warning</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:warning">
          <s:assert test="not(.//db:tip)">tip must not occur in the descendants of warning</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:warning">
          <s:assert test="not(.//db:warning)">warning must not occur in the descendants of warning</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:warning">
          <s:assert test="not(.//db:caution)">caution must not occur in the descendants of warning</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:warning">
          <s:assert test="not(.//db:important)">important must not occur in the descendants of warning</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:warning">
          <s:assert test="not(.//db:note)">note must not occur in the descendants of warning</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:warning">
          <s:assert test="not(.//db:tip)">tip must not occur in the descendants of warning</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:warning">
          <s:assert test="not(.//db:warning)">warning must not occur in the descendants of warning</s:assert>
        </s:rule>
        <ref name="db.warning.attlist"/>
        <ref name="db.admonition.contentmodel"/>
        <a:documentation>An admonition set off from the text</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <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>
        <a:documentation>A list in which each entry is marked with a bullet or other dingbat</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <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>
        <a:documentation>A list in which each entry is marked with a sequentially incremented label</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <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>
        <a:documentation>A wrapper for the elements of a list item</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <define name="db.segmentedlist.role.attribute">
      <attribute name="role"/>
    </define>
    <define name="db.segmentedlist.attlist">
      <interleave>
        <optional>
          <ref name="db.segmentedlist.role.attribute"/>
        </optional>
        <ref name="db.common.attributes"/>
        <ref name="db.common.linking.attributes"/>
      </interleave>
    </define>
    <define name="db.segmentedlist.info">
      <ref name="db._info.title.only"/>
    </define>
    <define name="db.segmentedlist">
      <element name="segmentedlist">
        <ref name="db.segmentedlist.attlist"/>
        <ref name="db.segmentedlist.info"/>
        <oneOrMore>
          <ref name="db.segtitle"/>
        </oneOrMore>
        <oneOrMore>
          <ref name="db.seglistitem"/>
        </oneOrMore>
        <a:documentation>A segmented list, a list of sets of elements</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <define name="db.segtitle.role.attribute">
      <attribute name="role"/>
    </define>
    <define name="db.segtitle.attlist">
      <interleave>
        <optional>
          <ref name="db.segtitle.role.attribute"/>
        </optional>
        <ref name="db.common.attributes"/>
        <ref name="db.common.linking.attributes"/>
      </interleave>
    </define>
    <define name="db.segtitle">
      <element name="segtitle">
        <ref name="db.segtitle.attlist"/>
        <zeroOrMore>
          <ref name="db.all.inlines"/>
        </zeroOrMore>
        <a:documentation>The title of an element of a list item in a segmented list</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <define name="db.seglistitem.role.attribute">
      <attribute name="role"/>
    </define>
    <define name="db.seglistitem.attlist">
      <interleave>
        <optional>
          <ref name="db.seglistitem.role.attribute"/>
        </optional>
        <ref name="db.common.attributes"/>
        <ref name="db.common.linking.attributes"/>
      </interleave>
    </define>
    <define name="db.seglistitem">
      <element name="seglistitem">
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:seglistitem">
          <s:assert test="count(db:seg) = count(../db:segtitle)">The number of seg elements must be the same as the number of segtitle elements in the parent segmentedlist</s:assert>
        </s:rule>
        <ref name="db.seglistitem.attlist"/>
        <oneOrMore>
          <ref name="db.seg"/>
        </oneOrMore>
        <a:documentation>A list item in a segmented list</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <define name="db.seg.role.attribute">
      <attribute name="role"/>
    </define>
    <define name="db.seg.attlist">
      <interleave>
        <optional>
          <ref name="db.seg.role.attribute"/>
        </optional>
        <ref name="db.common.attributes"/>
        <ref name="db.common.linking.attributes"/>
      </interleave>
    </define>
    <define name="db.seg">
      <element name="seg">
        <ref name="db.seg.attlist"/>
        <zeroOrMore>
          <ref name="db.all.inlines"/>
        </zeroOrMore>
        <a:documentation>An element of a list item in a segmented list</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <define name="db.simplelist.role.attribute">
      <attribute name="role"/>
    </define>
    <define name="db.simplelist.type.enumeration">
      <choice>
        <value>horiz</value>
        <value>vert</value>
        <value>inline</value>
      </choice>
    </define>
    <define name="db.simplelist.type.attribute">
      <attribute name="type">
        <ref name="db.simplelist.type.enumeration"/>
      </attribute>
    </define>
    <define name="db.simplelist.columns.attribute">
      <attribute name="columns">
        <data type="integer"/>
      </attribute>
    </define>
    <define name="db.simplelist.attlist">
      <interleave>
        <optional>
          <ref name="db.simplelist.role.attribute"/>
        </optional>
        <ref name="db.common.attributes"/>
        <ref name="db.common.linking.attributes"/>
        <optional>
          <ref name="db.simplelist.type.attribute"/>
        </optional>
        <optional>
          <ref name="db.simplelist.columns.attribute"/>
        </optional>
      </interleave>
    </define>
    <define name="db.simplelist">
      <element name="simplelist">
        <ref name="db.simplelist.attlist"/>
        <oneOrMore>
          <ref name="db.member"/>
        </oneOrMore>
        <a:documentation>An undecorated list of single words or short phrases</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <define name="db.member.role.attribute">
      <attribute name="role"/>
    </define>
    <define name="db.member.attlist">
      <interleave>
        <optional>
          <ref name="db.member.role.attribute"/>
        </optional>
        <ref name="db.common.attributes"/>
        <ref name="db.common.linking.attributes"/>
      </interleave>
    </define>
    <define name="db.member">
      <element name="member">
        <ref name="db.member.attlist"/>
        <zeroOrMore>
          <ref name="db.all.inlines"/>
        </zeroOrMore>
        <a:documentation>An element of a simple list</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <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>
        <a:documentation>A list in which each entry is composed of a set of one or more terms and an associated description</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <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"/>
        <a:documentation>A wrapper for a set of terms and the associated description in a variable list</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <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>
        <a:documentation>The word or phrase being defined or described in a variable list</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <define name="db.example.role.attribute">
      <attribute name="role"/>
    </define>
    <define name="db.example.label.attribute">
      <attribute name="label"/>
    </define>
    <define name="db.example.width.attribute">
      <attribute name="width"/>
    </define>
    <define name="db.example.attlist">
      <interleave>
        <optional>
          <ref name="db.example.role.attribute"/>
        </optional>
        <ref name="db.common.attributes"/>
        <ref name="db.common.linking.attributes"/>
        <optional>
          <ref name="db.example.label.attribute"/>
        </optional>
        <optional>
          <ref name="db.floatstyle.attribute"/>
        </optional>
        <optional>
          <ref name="db.example.width.attribute"/>
        </optional>
      </interleave>
    </define>
    <define name="db.example.info">
      <ref name="db._info.title.onlyreq"/>
    </define>
    <define name="db.example">
      <element name="example">
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:example">
          <s:assert test="not(.//db:example)">example must not occur in the descendants of example</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:example">
          <s:assert test="not(.//db:figure)">figure must not occur in the descendants of example</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:example">
          <s:assert test="not(.//db:table)">table must not occur in the descendants of example</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:example">
          <s:assert test="not(.//db:table)">table must not occur in the descendants of example</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:example">
          <s:assert test="not(.//db:caution)">caution must not occur in the descendants of example</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:example">
          <s:assert test="not(.//db:important)">important must not occur in the descendants of example</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:example">
          <s:assert test="not(.//db:note)">note must not occur in the descendants of example</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:example">
          <s:assert test="not(.//db:tip)">tip must not occur in the descendants of example</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:example">
          <s:assert test="not(.//db:warning)">warning must not occur in the descendants of example</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:example">
          <s:assert test="not(.//db:example)">example must not occur in the descendants of example</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:example">
          <s:assert test="not(.//db:figure)">figure must not occur in the descendants of example</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:example">
          <s:assert test="not(.//db:table)">table must not occur in the descendants of example</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:example">
          <s:assert test="not(.//db:table)">table must not occur in the descendants of example</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:example">
          <s:assert test="not(.//db:caution)">caution must not occur in the descendants of example</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:example">
          <s:assert test="not(.//db:important)">important must not occur in the descendants of example</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:example">
          <s:assert test="not(.//db:note)">note must not occur in the descendants of example</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:example">
          <s:assert test="not(.//db:tip)">tip must not occur in the descendants of example</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:example">
          <s:assert test="not(.//db:warning)">warning must not occur in the descendants of example</s:assert>
        </s:rule>
        <ref name="db.example.attlist"/>
        <ref name="db.example.info"/>
        <oneOrMore>
          <ref name="db.all.blocks"/>
        </oneOrMore>
        <optional>
          <ref name="db.caption"/>
        </optional>
        <a:documentation>A formal example, with a title</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <define name="db.informalexample.role.attribute">
      <attribute name="role"/>
    </define>
    <define name="db.informalexample.width.attribute">
      <attribute name="width"/>
    </define>
    <define name="db.informalexample.attlist">
      <interleave>
        <optional>
          <ref name="db.informalexample.role.attribute"/>
        </optional>
        <ref name="db.common.attributes"/>
        <ref name="db.common.linking.attributes"/>
        <optional>
          <ref name="db.floatstyle.attribute"/>
        </optional>
        <optional>
          <ref name="db.informalexample.width.attribute"/>
        </optional>
      </interleave>
    </define>
    <define name="db.informalexample.info">
      <ref name="db._info.title.forbidden"/>
    </define>
    <define name="db.informalexample">
      <element name="informalexample">
        <ref name="db.informalexample.attlist"/>
        <ref name="db.informalexample.info"/>
        <oneOrMore>
          <ref name="db.all.blocks"/>
        </oneOrMore>
        <optional>
          <ref name="db.caption"/>
        </optional>
        <a:documentation>A displayed example without a title</a:documentation>
      </element>
    </define>
  </div>
  <define name="db.verbatim.inlines">
    <choice>
      <choice>
        <ref name="db.all.inlines"/>
        <ref name="db.lineannotation"/>
      </choice>
      <ref name="db.co"/>
    </choice>
  </define>
  <define name="db.verbatim.contentmodel">
    <ref name="db._info.title.forbidden"/>
    <choice>
      <ref name="db.textobject"/>
      <zeroOrMore>
        <ref name="db.verbatim.inlines"/>
      </zeroOrMore>
    </choice>
  </define>
  <div>
    <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"/>
        <a:documentation>A literal listing of all or part of a program</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <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"/>
        <a:documentation>A block of text in which line breaks and white space are to be reproduced faithfully</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <define name="db.screen.role.attribute">
      <attribute name="role"/>
    </define>
    <define name="db.screen.width.attribute">
      <attribute name="width"/>
    </define>
    <define name="db.screen.attlist">
      <interleave>
        <optional>
          <ref name="db.screen.role.attribute"/>
        </optional>
        <ref name="db.common.attributes"/>
        <ref name="db.common.linking.attributes"/>
        <ref name="db.verbatim.attributes"/>
        <optional>
          <ref name="db.screen.width.attribute"/>
        </optional>
      </interleave>
    </define>
    <define name="db.screen">
      <element name="screen">
        <ref name="db.screen.attlist"/>
        <ref name="db.verbatim.contentmodel"/>
        <a:documentation>Text that a user sees or might see on a computer screen</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <define name="db.screenshot.role.attribute">
      <attribute name="role"/>
    </define>
    <define name="db.screenshot.attlist">
      <interleave>
        <optional>
          <ref name="db.screenshot.role.attribute"/>
        </optional>
        <ref name="db.common.attributes"/>
        <ref name="db.common.linking.attributes"/>
      </interleave>
    </define>
    <define name="db.screenshot.info">
      <ref name="db._info"/>
    </define>
    <define name="db.screenshot">
      <element name="screenshot">
        <ref name="db.screenshot.attlist"/>
        <ref name="db.screenshot.info"/>
        <ref name="db.mediaobject"/>
        <a:documentation>A representation of what the user sees or might see on a computer screen</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <define name="db.figure.role.attribute">
      <attribute name="role"/>
    </define>
    <define name="db.figure.label.attribute">
      <attribute name="label"/>
    </define>
    <define name="db.figure.attlist">
      <interleave>
        <optional>
          <ref name="db.figure.role.attribute"/>
        </optional>
        <ref name="db.common.attributes"/>
        <ref name="db.common.linking.attributes"/>
        <optional>
          <ref name="db.figure.label.attribute"/>
        </optional>
        <optional>
          <ref name="db.pgwide.attribute"/>
        </optional>
        <optional>
          <ref name="db.floatstyle.attribute"/>
        </optional>
      </interleave>
    </define>
    <define name="db.figure.info">
      <ref name="db._info.title.onlyreq"/>
    </define>
    <define name="db.figure">
      <element name="figure">
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:figure">
          <s:assert test="not(.//db:example)">example must not occur in the descendants of figure</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:figure">
          <s:assert test="not(.//db:figure)">figure must not occur in the descendants of figure</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:figure">
          <s:assert test="not(.//db:table)">table must not occur in the descendants of figure</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:figure">
          <s:assert test="not(.//db:table)">table must not occur in the descendants of figure</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:figure">
          <s:assert test="not(.//db:caution)">caution must not occur in the descendants of figure</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:figure">
          <s:assert test="not(.//db:important)">important must not occur in the descendants of figure</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:figure">
          <s:assert test="not(.//db:note)">note must not occur in the descendants of figure</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:figure">
          <s:assert test="not(.//db:tip)">tip must not occur in the descendants of figure</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:figure">
          <s:assert test="not(.//db:warning)">warning must not occur in the descendants of figure</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:figure">
          <s:assert test="not(.//db:example)">example must not occur in the descendants of figure</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:figure">
          <s:assert test="not(.//db:figure)">figure must not occur in the descendants of figure</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:figure">
          <s:assert test="not(.//db:table)">table must not occur in the descendants of figure</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:figure">
          <s:assert test="not(.//db:table)">table must not occur in the descendants of figure</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:figure">
          <s:assert test="not(.//db:caution)">caution must not occur in the descendants of figure</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:figure">
          <s:assert test="not(.//db:important)">important must not occur in the descendants of figure</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:figure">
          <s:assert test="not(.//db:note)">note must not occur in the descendants of figure</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:figure">
          <s:assert test="not(.//db:tip)">tip must not occur in the descendants of figure</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:figure">
          <s:assert test="not(.//db:warning)">warning must not occur in the descendants of figure</s:assert>
        </s:rule>
        <ref name="db.figure.attlist"/>
        <ref name="db.figure.info"/>
        <oneOrMore>
          <ref name="db.all.blocks"/>
        </oneOrMore>
        <optional>
          <ref name="db.caption"/>
        </optional>
        <a:documentation>A formal figure, generally an illustration, with a title</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <define name="db.informalfigure.role.attribute">
      <attribute name="role"/>
    </define>
    <define name="db.informalfigure.label.attribute">
      <attribute name="label"/>
    </define>
    <define name="db.informalfigure.attlist">
      <interleave>
        <optional>
          <ref name="db.informalfigure.role.attribute"/>
        </optional>
        <ref name="db.common.attributes"/>
        <ref name="db.common.linking.attributes"/>
        <optional>
          <ref name="db.informalfigure.label.attribute"/>
        </optional>
        <optional>
          <ref name="db.pgwide.attribute"/>
        </optional>
        <optional>
          <ref name="db.floatstyle.attribute"/>
        </optional>
      </interleave>
    </define>
    <define name="db.informalfigure.info">
      <ref name="db._info.title.forbidden"/>
    </define>
    <define name="db.informalfigure">
      <element name="informalfigure">
        <ref name="db.informalfigure.attlist"/>
        <ref name="db.informalfigure.info"/>
        <oneOrMore>
          <ref name="db.all.blocks"/>
        </oneOrMore>
        <optional>
          <ref name="db.caption"/>
        </optional>
        <a:documentation>A untitled figure</a:documentation>
      </element>
    </define>
  </div>
  <define name="db.mediaobject.content">
    <choice>
      <choice>
        <ref name="db.videoobject"/>
        <ref name="db.audioobject"/>
        <ref name="db.imageobject"/>
        <ref name="db.textobject"/>
      </choice>
      <ref name="db.imageobjectco"/>
    </choice>
  </define>
  <div>
    <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>
        <a:documentation>A displayed media object (video, audio, image, etc.)</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <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>
        <a:documentation>An inline media object (video, audio, image, and so on)</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <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"/>
        <a:documentation>A wrapper for video data and its associated meta-information</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <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"/>
        <a:documentation>A wrapper for audio data and its associated meta-information</a:documentation>
      </element>
    </define>
  </div>
  <define name="db.imageobject.content">
    <choice>
      <ref name="db.imagedata"/>
      <ref xmlns:svg="http://www.w3.org/2000/svg" name="db._any.svg"/>
    </choice>
  </define>
  <div>
    <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"/>
        <a:documentation>A wrapper for image data and its associated meta-information</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <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>
        <a:documentation>A wrapper for a text description of an object and its associated meta-information</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <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"/>
        <a:documentation>Pointer to external video data</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <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"/>
        <a:documentation>Pointer to external audio data</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <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"/>
        <a:documentation>Pointer to external image data</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <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"/>
        <a:documentation>Pointer to external text data</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <define name="db.caption.role.attribute">
      <attribute name="role"/>
    </define>
    <define name="db.caption.attlist">
      <interleave>
        <optional>
          <ref name="db.caption.role.attribute"/>
        </optional>
        <ref name="db.common.attributes"/>
        <ref name="db.common.linking.attributes"/>
      </interleave>
    </define>
    <define name="db.caption.info">
      <ref name="db._info.title.forbidden"/>
    </define>
    <define name="db.caption">
      <element name="caption">
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caption">
          <s:assert test="not(.//db:example)">example must not occur in the descendants of caption</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caption">
          <s:assert test="not(.//db:figure)">figure must not occur in the descendants of caption</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caption">
          <s:assert test="not(.//db:table)">table must not occur in the descendants of caption</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caption">
          <s:assert test="not(.//db:table)">table must not occur in the descendants of caption</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caption">
          <s:assert test="not(.//db:caution)">caution must not occur in the descendants of caption</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caption">
          <s:assert test="not(.//db:important)">important must not occur in the descendants of caption</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caption">
          <s:assert test="not(.//db:note)">note must not occur in the descendants of caption</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caption">
          <s:assert test="not(.//db:tip)">tip must not occur in the descendants of caption</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caption">
          <s:assert test="not(.//db:warning)">warning must not occur in the descendants of caption</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caption">
          <s:assert test="not(.//db:sidebar)">sidebar must not occur in the descendants of caption</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caption">
          <s:assert test="not(.//db:task)">task must not occur in the descendants of caption</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caption">
          <s:assert test="not(.//db:example)">example must not occur in the descendants of caption</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caption">
          <s:assert test="not(.//db:figure)">figure must not occur in the descendants of caption</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caption">
          <s:assert test="not(.//db:table)">table must not occur in the descendants of caption</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caption">
          <s:assert test="not(.//db:table)">table must not occur in the descendants of caption</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caption">
          <s:assert test="not(.//db:caution)">caution must not occur in the descendants of caption</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caption">
          <s:assert test="not(.//db:important)">important must not occur in the descendants of caption</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caption">
          <s:assert test="not(.//db:note)">note must not occur in the descendants of caption</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caption">
          <s:assert test="not(.//db:tip)">tip must not occur in the descendants of caption</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caption">
          <s:assert test="not(.//db:warning)">warning must not occur in the descendants of caption</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caption">
          <s:assert test="not(.//db:sidebar)">sidebar must not occur in the descendants of caption</s:assert>
        </s:rule>
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:caption">
          <s:assert test="not(.//db:task)">task must not occur in the descendants of caption</s:assert>
        </s:rule>
        <ref name="db.caption.attlist"/>
        <ref name="db.caption.info"/>
        <oneOrMore>
          <ref name="db.all.blocks"/>
        </oneOrMore>
        <a:documentation>A caption</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <define name="db.synopsis.role.attribute">
      <attribute name="role"/>
    </define>
    <define name="db.synopsis.label.attribute">
      <attribute name="label"/>
    </define>
    <define name="db.synopsis.attlist">
      <interleave>
        <optional>
          <ref name="db.synopsis.role.attribute"/>
        </optional>
        <ref name="db.common.attributes"/>
        <ref name="db.common.linking.attributes"/>
        <ref name="db.verbatim.attributes"/>
        <optional>
          <ref name="db.synopsis.label.attribute"/>
        </optional>
      </interleave>
    </define>
    <define name="db.synopsis">
      <element name="synopsis">
        <ref name="db.synopsis.attlist"/>
        <ref name="db.verbatim.contentmodel"/>
        <a:documentation>A general-purpose element for representing the syntax of commands or functions</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <define name="db.cmdsynopsis.role.attribute">
      <attribute name="role"/>
    </define>
    <define name="db.cmdsynopsis.sepchar.attribute">
      <attribute name="sepchar"/>
    </define>
    <define name="db.cmdsynopsis.cmdlength.attribute">
      <attribute name="cmdlength"/>
    </define>
    <define name="db.cmdsynopsis.label.attribute">
      <attribute name="label"/>
    </define>
    <define name="db.cmdsynopsis.attlist">
      <interleave>
        <optional>
          <ref name="db.cmdsynopsis.role.attribute"/>
        </optional>
        <ref name="db.common.attributes"/>
        <ref name="db.common.linking.attributes"/>
        <optional>
          <ref name="db.cmdsynopsis.sepchar.attribute"/>
        </optional>
        <optional>
          <ref name="db.cmdsynopsis.cmdlength.attribute"/>
        </optional>
        <optional>
          <ref name="db.cmdsynopsis.label.attribute"/>
        </optional>
      </interleave>
    </define>
    <define name="db.cmdsynopsis.info">
      <ref name="db._info.title.forbidden"/>
    </define>
    <define name="db.cmdsynopsis">
      <element name="cmdsynopsis">
        <ref name="db.cmdsynopsis.attlist"/>
        <ref name="db.cmdsynopsis.info"/>
        <oneOrMore>
          <choice>
            <ref name="db.command"/>
            <ref name="db.arg"/>
            <ref name="db.group"/>
            <ref name="db.sbr"/>
          </choice>
        </oneOrMore>
        <zeroOrMore>
          <ref name="db.synopfragment"/>
        </zeroOrMore>
        <a:documentation>A syntax summary for a software command</a:documentation>
      </element>
    </define>
  </div>
  <define name="db.rep.enumeration">
    <choice>
      <value>norepeat</value>
      <value>repeat</value>
    </choice>
  </define>
  <define name="db.rep.attribute">
    <attribute name="rep">
      <ref name="db.rep.enumeration"/>
    </attribute>
  </define>
  <define name="db.choice.enumeration">
    <choice>
      <value>opt</value>
      <value>plain</value>
      <value>req</value>
    </choice>
  </define>
  <define name="db.choice.attribute">
    <attribute name="choice">
      <ref name="db.choice.enumeration"/>
    </attribute>
  </define>
  <div>
    <define name="db.arg.role.attribute">
      <attribute name="role"/>
    </define>
    <define name="db.arg.attlist">
      <interleave>
        <optional>
          <ref name="db.arg.role.attribute"/>
        </optional>
        <ref name="db.common.attributes"/>
        <ref name="db.common.linking.attributes"/>
        <optional>
          <ref name="db.rep.attribute"/>
        </optional>
        <optional>
          <ref name="db.choice.attribute"/>
        </optional>
      </interleave>
    </define>
    <define name="db.arg">
      <element name="arg">
        <ref name="db.arg.attlist"/>
        <zeroOrMore>
          <choice>
            <ref name="db._text"/>
            <ref name="db.arg"/>
            <ref name="db.group"/>
            <ref name="db.option"/>
            <ref name="db.synopfragmentref"/>
            <ref name="db.sbr"/>
          </choice>
        </zeroOrMore>
        <a:documentation>An argument in a CmdSynopsis</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <define name="db.group.role.attribute">
      <attribute name="role"/>
    </define>
    <define name="db.group.attlist">
      <interleave>
        <optional>
          <ref name="db.group.role.attribute"/>
        </optional>
        <ref name="db.common.attributes"/>
        <ref name="db.common.linking.attributes"/>
        <optional>
          <ref name="db.rep.attribute"/>
        </optional>
        <optional>
          <ref name="db.choice.attribute"/>
        </optional>
      </interleave>
    </define>
    <define name="db.group">
      <element name="group">
        <ref name="db.group.attlist"/>
        <oneOrMore>
          <choice>
            <ref name="db.arg"/>
            <ref name="db.group"/>
            <ref name="db.option"/>
            <ref name="db.synopfragmentref"/>
            <ref name="db.replaceable"/>
            <ref name="db.sbr"/>
          </choice>
        </oneOrMore>
        <a:documentation>A group of elements in a CmdSynopsis</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <define name="db.sbr.role.attribute">
      <attribute name="role"/>
    </define>
    <define name="db.sbr.attlist">
      <interleave>
        <optional>
          <ref name="db.sbr.role.attribute"/>
        </optional>
        <ref name="db.common.attributes"/>
      </interleave>
    </define>
    <define name="db.sbr">
      <element name="sbr">
        <ref name="db.sbr.attlist"/>
        <empty/>
        <a:documentation>An explicit line break in a command synopsis</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <define name="db.synopfragment.role.attribute">
      <attribute name="role"/>
    </define>
    <define name="db.synopfragment.attlist">
      <interleave>
        <optional>
          <ref name="db.synopfragment.role.attribute"/>
        </optional>
        <ref name="db.common.attributes"/>
        <ref name="db.common.linking.attributes"/>
      </interleave>
    </define>
    <define name="db.synopfragment">
      <element name="synopfragment">
        <ref name="db.synopfragment.attlist"/>
        <oneOrMore>
          <choice>
            <ref name="db.arg"/>
            <ref name="db.group"/>
          </choice>
        </oneOrMore>
        <a:documentation>A portion of a CmdSynopsis broken out from the main body of the synopsis</a:documentation>
      </element>
    </define>
  </div>
  <div>
    <define name="db.synopfragmentref.role.attribute">
      <attribute name="role"/>
    </define>
    <define name="db.synopfragmentref.attlist">
      <interleave>
        <optional>
          <ref name="db.synopfragmentref.role.attribute"/>
        </optional>
        <ref name="db.common.attributes"/>
        <ref name="db.linkend.attribute"/>
      </interleave>
    </define>
    <define name="db.synopfragmentref">
      <element name="synopfragmentref">
        <s:rule xmlns:s="http://www.ascc.net/xml/schematron" context="db:synopfragmentref">
          <s:assert test="local-na