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

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

   <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>
         <ref name="db.refentry"/>
         <ref name="db.setindex"/>
      </choice>
   </start>

   <div>
      <db:refname>extendedlink</db:refname>
      <db:refpurpose/>
      <define name="db.extendedlink.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.extendedlink.attlist">
         <interleave>
            <optional>
               <ref name="db.extendedlink.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <optional>
               <attribute name="xlink:type" dtd:defaultValue="extended">
                  <value>extended</value>
               </attribute>
            </optional>
            <optional>
               <attribute name="xlink:role">
                  <data type="anyURI"/>
               </attribute>
            </optional>
            <optional>
               <attribute name="xlink:title"/>
            </optional>
         </interleave>
      </define>

      <define name="db.extendedlink">
         <element name="extendedlink">
            <ref name="db.extendedlink.attlist"/>
            <oneOrMore>
               <choice>
                  <ref name="db.locator"/>
                  <ref name="db.arc"/>
               </choice>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>locator</db:refname>
      <db:refpurpose/>
      <define name="db.locator.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.locator.attlist">
         <interleave>
            <optional>
               <ref name="db.locator.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <optional>
               <attribute name="xlink:type" dtd:defaultValue="locator">
                  <value>locator</value>
               </attribute>
            </optional>
            <attribute name="xlink:href"/>
            <optional>
               <attribute name="xlink:role">
                  <data type="anyURI"/>
               </attribute>
            </optional>
            <optional>
               <attribute name="xlink:title"/>
            </optional>
            <optional>
               <attribute name="xlink:label">
                  <data type="NMTOKEN"/>
               </attribute>
            </optional>
         </interleave>
      </define>

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

   </div>
   <div>
      <db:refname>arc</db:refname>
      <db:refpurpose/>
      <define name="db.arc.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.arc.attlist">
         <interleave>
            <optional>
               <ref name="db.arc.role.attribute"/>
            </optional>
            <ref name="db.common.attributes"/>
            <optional>
               <attribute name="xlink:type" dtd:defaultValue="arc">
                  <value>arc</value>
               </attribute>
            </optional>
            <optional>
               <attribute name="xlink:arcrole">
                  <data type="anyURI"/>
               </attribute>
            </optional>
            <optional>
               <attribute name="xlink:title"/>
            </optional>
            <optional>
               <attribute name="xlink:show">
                  <choice>
                     <value>new</value>
                     <value>replace</value>
                     <value>embed</value>
                     <value>other</value>
                  </choice>
               </attribute>
            </optional>
            <optional>
               <attribute name="xlink:actuate">
                  <choice>
                     <value>onLoad</value>
                     <value>onRequest</value>
                     <value>other</value>
                     <value>none</value>
                  </choice>
               </attribute>
            </optional>
            <optional>
               <attribute name="xlink:from">
                  <data type="NMTOKEN"/>
               </attribute>
            </optional>
            <optional>
               <attribute name="xlink:to">
                  <data type="NMTOKEN"/>
               </attribute>
            </optional>
         </interleave>
      </define>

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

   </div>
   <define name="db.status.attribute">
      <db:refpurpose>Identifies the editorial or publication status of the element on which it occurs</db:refpurpose>
      <dbx:description>
         <db:para>Publication status might be used to control formatting (for example, printing a “draft” watermark on drafts) or processing (perhaps a document with a status of “final” should not include any components that are not final).</db:para>
      </dbx:description>
      <attribute name="status"/>
   </define>

   <define name="db.label.attribute">
      <db:refpurpose>Specifies an identifying string for presentation purposes</db:refpurpose>
      <dbx:description>
         <db:para>Generally, an explicit Label attribute is used only if the processing system is incapable of generating the label automatically. Under such circumstances, the third <db:tag>book</db:tag>
 in a <db:tag>set</db:tag>
 might be labeled “Volume III”, for example.</db:para>
         <db:para>If present, the <db:tag class="attribute">label</db:tag>
 is normative; it will used even if the processing system is capable of automatic labelling.</db:para>
      </dbx:description>
      <attribute name="label"/>
   </define>

   <define name="db.toplevel.optional.sections">
      <choice>
         <choice>
            <zeroOrMore>
               <ref name="db.section"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="db.simplesect"/>
            </zeroOrMore>
         </choice>
         <zeroOrMore>
            <ref name="db.sect1"/>
         </zeroOrMore>
         <zeroOrMore>
            <ref name="db.refentry"/>
         </zeroOrMore>
      </choice>
   </define>

   <define name="db.toplevel.required.sections">
      <choice>
         <choice>
            <oneOrMore>
               <ref name="db.section"/>
            </oneOrMore>
            <oneOrMore>
               <ref name="db.simplesect"/>
            </oneOrMore>
         </choice>
         <oneOrMore>
            <ref name="db.sect1"/>
         </oneOrMore>
         <oneOrMore>
            <ref name="db.refentry"/>
         </oneOrMore>
      </choice>
   </define>

   <define name="db.toplevel.blocks.or.sections">
      <choice>
         <group>
            <oneOrMore>
               <ref name="db.all.blocks"/>
            </oneOrMore>
            <ref name="db.toplevel.optional.sections"/>
         </group>
         <ref name="db.toplevel.required.sections"/>
      </choice>
   </define>

   <define name="db.recursive.optional.sections">
      <choice>
         <choice>
            <zeroOrMore>
               <ref name="db.section"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="db.simplesect"/>
            </zeroOrMore>
         </choice>
         <zeroOrMore>
            <ref name="db.refentry"/>
         </zeroOrMore>
      </choice>
   </define>

   <define name="db.recursive.required.sections">
      <choice>
         <choice>
            <oneOrMore>
               <ref name="db.section"/>
            </oneOrMore>
            <oneOrMore>
               <ref name="db.simplesect"/>
            </oneOrMore>
         </choice>
         <oneOrMore>
            <ref name="db.refentry"/>
         </oneOrMore>
      </choice>
   </define>

   <define name="db.recursive.blocks.or.sections">
      <choice>
         <group>
            <oneOrMore>
               <ref name="db.all.blocks"/>
            </oneOrMore>
            <ref name="db.recursive.optional.sections"/>
         </group>
         <ref name="db.recursive.required.sections"/>
      </choice>
   </define>

   <define name="db.optional.refentry">
      <choice>
         <notAllowed/>
         <zeroOrMore>
            <ref name="db.refentry"/>
         </zeroOrMore>
      </choice>
   </define>

   <define name="db.required.refentry">
      <choice>
         <notAllowed/>
         <oneOrMore>
            <ref name="db.refentry"/>
         </oneOrMore>
      </choice>
   </define>

   <define name="db.divisions">
      <choice>
         <ref name="db.part"/>
         <ref name="db.reference"/>
      </choice>
   </define>

   <define name="db.components">
      <choice>
         <ref name="db.dedication"/>
         <ref name="db.preface"/>
         <ref name="db.chapter"/>
         <ref name="db.appendix"/>
         <ref name="db.article"/>
         <ref name="db.colophon"/>
      </choice>
   </define>

   <define name="db.navigation.components">
      <choice>
         <notAllowed/>
         <ref name="db.glossary"/>
         <ref name="db.bibliography"/>
         <ref name="db.index"/>
         <ref name="db.toc"/>
      </choice>
   </define>

   <define name="db.component.contentmodel">
      <zeroOrMore>
         <ref name="db.navigation.components"/>
      </zeroOrMore>
      <ref name="db.toplevel.blocks.or.sections"/>
      <zeroOrMore>
         <ref name="db.navigation.components"/>
      </zeroOrMore>
   </define>

   <define name="db.setindex.components">
      <choice>
         <notAllowed/>
         <ref name="db.setindex"/>
      </choice>
   </define>

   <define name="db.toc.components">
      <choice>
         <notAllowed/>
         <ref name="db.toc"/>
      </choice>
   </define>

   <div>
      <db:refname>set</db:refname>
      <db:refpurpose/>
      <define name="db.set.status.attribute">
         <ref name="db.status.attribute"/>
      </define>

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

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

      <define name="db.set.info">
         <ref name="db._info.title.req"/>
      </define>

      <define name="db.set">
         <element name="set">
            <s:rule context="/db:set" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="@version">The root element must have a version attribute.</s:assert>
            </s:rule>
            <ref name="db.set.attlist"/>
            <ref name="db.set.info"/>
            <optional>
               <ref name="db.toc.components"/>
            </optional>
            <oneOrMore>
               <choice>
                  <ref name="db.set"/>
                  <ref name="db.book"/>
               </choice>
            </oneOrMore>
            <optional>
               <ref name="db.setindex.components"/>
            </optional>
         </element>
      </define>

   </div>
   <div>
      <db:refname>book</db:refname>
      <db:refpurpose/>
      <define name="db.book.status.attribute">
         <ref name="db.status.attribute"/>
      </define>

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

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

      <define name="db.book.info">
         <ref name="db._info.title.req"/>
      </define>

      <define name="db.book">
         <element name="book">
            <s:rule context="/db:book" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="@version">The root element must have a version attribute.</s:assert>
            </s:rule>
            <ref name="db.book.attlist"/>
            <ref name="db.book.info"/>
            <oneOrMore>
               <choice>
                  <ref name="db.navigation.components"/>
                  <ref name="db.components"/>
                  <ref name="db.divisions"/>
               </choice>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>dedication</db:refname>
      <db:refpurpose/>
      <define name="db.dedication.status.attribute">
         <ref name="db.status.attribute"/>
      </define>

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

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

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

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

   </div>
   <div>
      <db:refname>colophon</db:refname>
      <db:refpurpose/>
      <define name="db.colophon.status.attribute">
         <ref name="db.status.attribute"/>
      </define>

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

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

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

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

   </div>
   <div>
      <db:refname>appendix</db:refname>
      <db:refpurpose/>
      <define name="db.appendix.status.attribute">
         <ref name="db.status.attribute"/>
      </define>

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

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

      <define name="db.appendix.info">
         <ref name="db._info.title.req"/>
      </define>

      <define name="db.appendix">
         <element name="appendix">
            <s:rule context="/db:appendix" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="@version">The root element must have a version attribute.</s:assert>
            </s:rule>
            <ref name="db.appendix.attlist"/>
            <ref name="db.appendix.info"/>
            <ref name="db.component.contentmodel"/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>chapter</db:refname>
      <db:refpurpose/>
      <define name="db.chapter.status.attribute">
         <ref name="db.status.attribute"/>
      </define>

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

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

      <define name="db.chapter.info">
         <ref name="db._info.title.req"/>
      </define>

      <define name="db.chapter">
         <element name="chapter">
            <s:rule context="/db:chapter" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="@version">The root element must have a version attribute.</s:assert>
            </s:rule>
            <ref name="db.chapter.attlist"/>
            <ref name="db.chapter.info"/>
            <ref name="db.component.contentmodel"/>
         </element>
      </define>

   </div>
   <define name="db.part.components">
      <choice>
         <choice>
            <ref name="db.navigation.components"/>
            <ref name="db.components"/>
         </choice>
         <choice>
            <ref name="db.refentry"/>
            <ref name="db.reference"/>
         </choice>
      </choice>
   </define>

   <div>
      <db:refname>part</db:refname>
      <db:refpurpose/>
      <define name="db.part.status.attribute">
         <ref name="db.status.attribute"/>
      </define>

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

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

      <define name="db.part.info">
         <ref name="db._info.title.req"/>
      </define>

      <define name="db.part">
         <element name="part">
            <s:rule context="/db:part" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="@version">The root element must have a version attribute.</s:assert>
            </s:rule>
            <ref name="db.part.attlist"/>
            <ref name="db.part.info"/>
            <optional>
               <ref name="db.partintro"/>
            </optional>
            <oneOrMore>
               <ref name="db.part.components"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>preface</db:refname>
      <db:refpurpose/>
      <define name="db.preface.status.attribute">
         <ref name="db.status.attribute"/>
      </define>

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

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

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

      <define name="db.preface">
         <element name="preface">
            <s:rule context="/db:preface" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="@version">The root element must have a version attribute.</s:assert>
            </s:rule>
            <ref name="db.preface.attlist"/>
            <ref name="db.preface.info"/>
            <ref name="db.component.contentmodel"/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>partintro</db:refname>
      <db:refpurpose/>
      <define name="db.partintro.status.attribute">
         <ref name="db.status.attribute"/>
      </define>

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

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

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

      <define name="db.partintro">
         <element name="partintro">
            <ref name="db.partintro.attlist"/>
            <ref name="db.partintro.info"/>
            <ref name="db.toplevel.blocks.or.sections"/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>section</db:refname>
      <db:refpurpose/>
      <define name="db.section.status.attribute">
         <ref name="db.status.attribute"/>
      </define>

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

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

      <define name="db.section.info">
         <ref name="db._info.title.req"/>
      </define>

      <define name="db.section">
         <element name="section">
            <s:rule context="/db:section" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="@version">The root element must have a version attribute.</s:assert>
            </s:rule>
            <ref name="db.section.attlist"/>
            <ref name="db.section.info"/>
            <ref name="db.recursive.blocks.or.sections"/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>simplesect</db:refname>
      <db:refpurpose/>
      <define name="db.simplesect.status.attribute">
         <ref name="db.status.attribute"/>
      </define>

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

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

      <define name="db.simplesect.info">
         <ref name="db._info.title.req"/>
      </define>

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

   </div>
   <div>
      <db:refname>ackno</db:refname>
      <db:refpurpose/>
      <define name="db.ackno.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <define name="db.article.optional.components">
      <choice>
         <choice>
            <zeroOrMore>
               <ref name="db.section"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="db.simplesect"/>
            </zeroOrMore>
         </choice>
         <zeroOrMore>
            <ref name="db.refentry"/>
         </zeroOrMore>
      </choice>
   </define>

   <define name="db.article.required.components">
      <choice>
         <choice>
            <oneOrMore>
               <ref name="db.section"/>
            </oneOrMore>
            <oneOrMore>
               <ref name="db.simplesect"/>
            </oneOrMore>
         </choice>
         <oneOrMore>
            <ref name="db.refentry"/>
         </oneOrMore>
      </choice>
   </define>

   <div>
      <db:refname>article</db:refname>
      <db:refpurpose>An article</db:refpurpose>
      <dbx:description>
         <db:para>The <db:tag>article</db:tag>
 element is a general-purpose container for  articles.  The content model is both quite complex and rather loose in order to accommodate the wide range of possible <db:tag>article</db:tag>
 structures.  Although changes to the <db:tag>article</db:tag>
 element have been discussed on several occasions, no better model has been presented.</db:para>
         <db:para>An <db:tag>article</db:tag>
 is composed of a header and a body.  The body  may include a table of contents and multiple lists of tables, figures,  and so on, before the main text of the article and may include a number of common end-matter components at the end.</db:para>
      </dbx:description>
      <dbx:expectations>
         <db:para>
            <dbx:format class="block"/>
Formatted as a displayed block. Frequently causes a forced page break in print media. May be numbered separately and presented in the table of contents.</db:para>
      </dbx:expectations>
      <define name="db.article.status.attribute">
         <ref name="db.status.attribute"/>
      </define>

      <define name="db.article.class.attribute">
         <db:refpurpose>Class identifies the type of article.</db:refpurpose>
         <attribute name="class">
            <choice>
               <value>faq</value>
               <value>journalarticle</value>
               <value>productsheet</value>
               <value>specification</value>
               <value>techreport</value>
               <value>whitepaper</value>
            </choice>
         </attribute>
      </define>

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

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

      <define name="db.article.info">
         <ref name="db._info.title.req"/>
      </define>

      <define name="db.article">
         <element name="article">
            <s:rule context="/db:article" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="@version">The root element must have a version attribute.</s:assert>
            </s:rule>
            <ref name="db.article.attlist"/>
            <ref name="db.article.info"/>
            <zeroOrMore>
               <ref name="db.navigation.components"/>
            </zeroOrMore>
            <choice>
               <group>
                  <oneOrMore>
                     <ref name="db.all.blocks"/>
                  </oneOrMore>
                  <ref name="db.article.optional.components"/>
               </group>
               <ref name="db.article.required.components"/>
            </choice>
            <zeroOrMore>
               <choice>
                  <ref name="db.appendix"/>
                  <ref name="db.navigation.components"/>
                  <ref name="db.ackno"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>sect1</db:refname>
      <db:refpurpose/>
      <define name="db.sect1.status.attribute">
         <ref name="db.status.attribute"/>
      </define>

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

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

      <define name="db.sect1.info">
         <ref name="db._info.title.req"/>
      </define>

      <define name="db.sect1">
         <element name="sect1">
            <ref name="db.sect1.attlist"/>
            <ref name="db.sect1.info"/>
            <choice>
               <group>
                  <oneOrMore>
                     <ref name="db.all.blocks"/>
                  </oneOrMore>
                  <choice>
                     <ref name="db.optional.refentry"/>
                     <group>
                        <zeroOrMore>
                           <ref name="db.sect2"/>
                        </zeroOrMore>
                        <zeroOrMore>
                           <ref name="db.simplesect"/>
                        </zeroOrMore>
                     </group>
                  </choice>
               </group>
               <ref name="db.required.refentry"/>
               <group>
                  <oneOrMore>
                     <ref name="db.sect2"/>
                  </oneOrMore>
                  <zeroOrMore>
                     <ref name="db.simplesect"/>
                  </zeroOrMore>
               </group>
               <oneOrMore>
                  <ref name="db.simplesect"/>
               </oneOrMore>
            </choice>
         </element>
      </define>

   </div>
   <div>
      <db:refname>sect2</db:refname>
      <db:refpurpose/>
      <define name="db.sect2.status.attribute">
         <ref name="db.status.attribute"/>
      </define>

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

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

      <define name="db.sect2.info">
         <ref name="db._info.title.req"/>
      </define>

      <define name="db.sect2">
         <element name="sect2">
            <ref name="db.sect2.attlist"/>
            <ref name="db.sect2.info"/>
            <choice>
               <group>
                  <oneOrMore>
                     <ref name="db.all.blocks"/>
                  </oneOrMore>
                  <choice>
                     <ref name="db.optional.refentry"/>
                     <group>
                        <zeroOrMore>
                           <ref name="db.sect3"/>
                        </zeroOrMore>
                        <zeroOrMore>
                           <ref name="db.simplesect"/>
                        </zeroOrMore>
                     </group>
                  </choice>
               </group>
               <ref name="db.required.refentry"/>
               <group>
                  <oneOrMore>
                     <ref name="db.sect3"/>
                  </oneOrMore>
                  <zeroOrMore>
                     <ref name="db.simplesect"/>
                  </zeroOrMore>
               </group>
               <oneOrMore>
                  <ref name="db.simplesect"/>
               </oneOrMore>
            </choice>
         </element>
      </define>

   </div>
   <div>
      <db:refname>sect3</db:refname>
      <db:refpurpose/>
      <define name="db.sect3.status.attribute">
         <ref name="db.status.attribute"/>
      </define>

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

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

      <define name="db.sect3.info">
         <ref name="db._info.title.req"/>
      </define>

      <define name="db.sect3">
         <element name="sect3">
            <ref name="db.sect3.attlist"/>
            <ref name="db.sect3.info"/>
            <choice>
               <group>
                  <oneOrMore>
                     <ref name="db.all.blocks"/>
                  </oneOrMore>
                  <choice>
                     <ref name="db.optional.refentry"/>
                     <group>
                        <zeroOrMore>
                           <ref name="db.sect4"/>
                        </zeroOrMore>
                        <zeroOrMore>
                           <ref name="db.simplesect"/>
                        </zeroOrMore>
                     </group>
                  </choice>
               </group>
               <ref name="db.required.refentry"/>
               <group>
                  <oneOrMore>
                     <ref name="db.sect4"/>
                  </oneOrMore>
                  <zeroOrMore>
                     <ref name="db.simplesect"/>
                  </zeroOrMore>
               </group>
               <oneOrMore>
                  <ref name="db.simplesect"/>
               </oneOrMore>
            </choice>
         </element>
      </define>

   </div>
   <div>
      <db:refname>sect4</db:refname>
      <db:refpurpose/>
      <define name="db.sect4.status.attribute">
         <ref name="db.status.attribute"/>
      </define>

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

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

      <define name="db.sect4.info">
         <ref name="db._info.title.req"/>
      </define>

      <define name="db.sect4">
         <element name="sect4">
            <ref name="db.sect4.attlist"/>
            <ref name="db.sect4.info"/>
            <choice>
               <group>
                  <oneOrMore>
                     <ref name="db.all.blocks"/>
                  </oneOrMore>
                  <choice>
                     <ref name="db.optional.refentry"/>
                     <group>
                        <zeroOrMore>
                           <ref name="db.sect5"/>
                        </zeroOrMore>
                        <zeroOrMore>
                           <ref name="db.simplesect"/>
                        </zeroOrMore>
                     </group>
                  </choice>
               </group>
               <ref name="db.required.refentry"/>
               <group>
                  <oneOrMore>
                     <ref name="db.sect5"/>
                  </oneOrMore>
                  <zeroOrMore>
                     <ref name="db.simplesect"/>
                  </zeroOrMore>
               </group>
               <oneOrMore>
                  <ref name="db.simplesect"/>
               </oneOrMore>
            </choice>
         </element>
      </define>

   </div>
   <div>
      <db:refname>sect5</db:refname>
      <db:refpurpose/>
      <define name="db.sect5.status.attribute">
         <ref name="db.status.attribute"/>
      </define>

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

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

      <define name="db.sect5.info">
         <ref name="db._info.title.req"/>
      </define>

      <define name="db.sect5">
         <element name="sect5">
            <ref name="db.sect5.attlist"/>
            <ref name="db.sect5.info"/>
            <choice>
               <group>
                  <oneOrMore>
                     <ref name="db.all.blocks"/>
                  </oneOrMore>
                  <choice>
                     <ref name="db.optional.refentry"/>
                     <zeroOrMore>
                        <ref name="db.simplesect"/>
                     </zeroOrMore>
                  </choice>
               </group>
               <ref name="db.required.refentry"/>
               <oneOrMore>
                  <ref name="db.simplesect"/>
               </oneOrMore>
            </choice>
         </element>
      </define>

   </div>
   <define name="db.refsect1">
      <choice>
         <notAllowed/>
         <element name="refsect1">
            <ref name="db.refsect1.attlist"/>
            <ref name="db.refsect1.info"/>
            <choice>
               <group>
                  <oneOrMore>
                     <ref name="db.all.blocks"/>
                  </oneOrMore>
                  <zeroOrMore>
                     <ref name="db.refsect2"/>
                  </zeroOrMore>
               </group>
               <oneOrMore>
                  <ref name="db.refsect2"/>
               </oneOrMore>
            </choice>
         </element>
      </choice>
   </define>

   <define name="db.refsect2">
      <choice>
         <notAllowed/>
         <element name="refsect2">
            <ref name="db.refsect2.attlist"/>
            <ref name="db.refsect2.info"/>
            <choice>
               <group>
                  <oneOrMore>
                     <ref name="db.all.blocks"/>
                  </oneOrMore>
                  <zeroOrMore>
                     <ref name="db.refsect3"/>
                  </zeroOrMore>
               </group>
               <oneOrMore>
                  <ref name="db.refsect3"/>
               </oneOrMore>
            </choice>
         </element>
      </choice>
   </define>

   <div>
      <db:refname>reference</db:refname>
      <db:refpurpose/>
      <define name="db.reference.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="db.reference.info">
         <ref name="db._info.title.req"/>
      </define>

      <define name="db.reference">
         <element name="reference">
            <s:rule context="/db:reference" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="@version">The root element must have a version attribute.</s:assert>
            </s:rule>
            <ref name="db.reference.attlist"/>
            <ref name="db.reference.info"/>
            <optional>
               <ref name="db.partintro"/>
            </optional>
            <oneOrMore>
               <ref name="db.refentry"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>refentry</db:refname>
      <db:refpurpose/>
      <define name="db.refentry.role.attribute">
         <attribute name="role"/>
      </define>

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

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

      <define name="db.refentry">
         <element name="refentry">
            <s:rule context="/db:refentry" xmlns:s="http://www.ascc.net/xml/schematron">
               <s:assert test="@version">The root element must have a version attribute.</s:assert>
            </s:rule>
            <ref name="db.refentry.attlist"/>
            <zeroOrMore>
               <ref name="db.indexterm"/>
            </zeroOrMore>
            <ref name="db.refentry.info"/>
            <optional>
               <ref name="db.refmeta"/>
            </optional>
            <oneOrMore>
               <ref name="db.refnamediv"/>
            </oneOrMore>
            <optional>
               <ref name="db.refsynopsisdiv"/>
            </optional>
            <choice>
               <oneOrMore>
                  <ref name="db.refsection"/>
               </oneOrMore>
               <oneOrMore>
                  <ref name="db.refsect1"/>
               </oneOrMore>
            </choice>
         </element>
      </define>

   </div>
   <div>
      <db:refname>refmeta</db:refname>
      <db:refpurpose/>
      <define name="db.refmeta.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="db.refmeta">
         <element name="refmeta">
            <ref name="db.refmeta.attlist"/>
            <zeroOrMore>
               <ref name="db.indexterm"/>
            </zeroOrMore>
            <ref name="db.refentrytitle"/>
            <optional>
               <ref name="db.manvolnum"/>
            </optional>
            <zeroOrMore>
               <ref name="db.refmiscinfo"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="db.indexterm"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>db.refmiscinfo</db:refname>
      <db:refpurpose/>
      <define name="db.refmiscinfo.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>refnamediv</db:refname>
      <db:refpurpose/>
      <define name="db.refnamediv.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="db.refnamediv">
         <element name="refnamediv">
            <ref name="db.refnamediv.attlist"/>
            <optional>
               <ref name="db.refdescriptor"/>
            </optional>
            <oneOrMore>
               <ref name="db.refname"/>
            </oneOrMore>
            <ref name="db.refpurpose"/>
            <zeroOrMore>
               <ref name="db.refclass"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>refdescriptor</db:refname>
      <db:refpurpose/>
      <define name="db.refdescriptor.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>refname</db:refname>
      <db:refpurpose/>
      <define name="db.refname.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>refpurpose</db:refname>
      <db:refpurpose/>
      <define name="db.refpurpose.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>refclass</db:refname>
      <db:refpurpose/>
      <define name="db.refclass.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="db.refclass">
         <element name="refclass">
            <ref name="db.refclass.attlist"/>
            <zeroOrMore>
               <choice>
                  <text/>
                  <ref name="db.application"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>refsynopsisdiv</db:refname>
      <db:refpurpose/>
      <define name="db.refsynopsisdiv.role.attribute">
         <attribute name="role"/>
      </define>

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

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

      <define name="db.refsynopsisdiv">
         <element name="refsynopsisdiv">
            <ref name="db.refsynopsisdiv.attlist"/>
            <ref name="db.refsynopsisdiv.info"/>
            <choice>
               <group>
                  <oneOrMore>
                     <ref name="db.all.blocks"/>
                  </oneOrMore>
                  <choice>
                     <zeroOrMore>
                        <ref name="db.refsection"/>
                     </zeroOrMore>
                     <zeroOrMore>
                        <ref name="db.refsect2"/>
                     </zeroOrMore>
                  </choice>
               </group>
               <choice>
                  <oneOrMore>
                     <ref name="db.refsection"/>
                  </oneOrMore>
                  <oneOrMore>
                     <ref name="db.refsect2"/>
                  </oneOrMore>
               </choice>
            </choice>
         </element>
      </define>

   </div>
   <div>
      <db:refname>refsection</db:refname>
      <db:refpurpose/>
      <define name="db.refsection.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="db.refsection.info">
         <ref name="db._info.title.req"/>
      </define>

      <define name="db.refsection">
         <element name="refsection">
            <ref name="db.refsection.attlist"/>
            <ref name="db.refsection.info"/>
            <choice>
               <group>
                  <oneOrMore>
                     <ref name="db.all.blocks"/>
                  </oneOrMore>
                  <zeroOrMore>
                     <ref name="db.refsection"/>
                  </zeroOrMore>
               </group>
               <oneOrMore>
                  <ref name="db.refsection"/>
               </oneOrMore>
            </choice>
         </element>
      </define>

   </div>
   <div>
      <db:refname>refsect1</db:refname>
      <db:refpurpose/>
      <define name="db.refsect1.status.attribute">
         <ref name="db.status.attribute"/>
      </define>

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

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

      <define name="db.refsect1.info">
         <ref name="db._info.title.req"/>
      </define>

   </div>
   <div>
      <db:refname>refsect2</db:refname>
      <db:refpurpose/>
      <define name="db.refsect2.status.attribute">
         <ref name="db.status.attribute"/>
      </define>

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

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

      <define name="db.refsect2.info">
         <ref name="db._info.title.req"/>
      </define>

   </div>
   <div>
      <db:refname>refsect3</db:refname>
      <db:refpurpose/>
      <define name="db.refsect3.status.attribute">
         <ref name="db.status.attribute"/>
      </define>

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

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

      <define name="db.refsect3.info">
         <ref name="db._info.title.req"/>
      </define>

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

   </div>
   <define name="db._any">
      <element>
         <anyName>
            <except>
               <nsName/>
            </except>
         </anyName>
         <zeroOrMore>
            <ref name="db._any.attribute"/>
         </zeroOrMore>
         <zeroOrMore>
            <text/>
            <ref name="db._any"/>
         </zeroOrMore>
      </element>
   </define>

   <define name="db._any.attribute">
      <attribute>
         <anyName/>
      </attribute>
   </define>

   <define name="db.effectivity.attributes">
      <optional>
         <attribute name="arch"/>
      </optional>
      <optional>
         <attribute name="condition"/>
      </optional>
      <optional>
         <attribute name="conformance"/>
      </optional>
      <optional>
         <attribute name="os"/>
      </optional>
      <optional>
         <attribute name="revision"/>
      </optional>
      <optional>
         <attribute name="security"/>
      </optional>
      <optional>
         <attribute name="userlevel"/>
      </optional>
      <optional>
         <attribute name="vendor"/>
      </optional>
   </define>

   <define name="db.linkend.attribute">
      <attribute name="linkend">
         <data type="IDREF"/>
      </attribute>
   </define>

   <define name="db.linkends.attribute">
      <attribute name="linkends">
         <data type="IDREFS"/>
      </attribute>
   </define>

   <define name="db.href.attribute">
      <interleave>
         <attribute name="xlink:href"/>
         <optional>
            <attribute name="xlink:type" dtd:defaultValue="simple">
               <value>simple</value>
            </attribute>
         </optional>
         <optional>
            <attribute name="xlink:role">
               <data type="anyURI"/>
            </attribute>
         </optional>
         <optional>
            <attribute name="xlink:arcrole">
               <data type="anyURI"/>
            </attribute>
         </optional>
         <optional>
            <attribute name="xlink:title"/>
         </optional>
         <optional>
            <attribute name="xlink:show">
               <choice>
                  <value>new</value>
                  <value>replace</value>
                  <value>embed</value>
                  <value>other</value>
               </choice>
            </attribute>
         </optional>
         <optional>
            <attribute name="xlink:actuate">
               <choice>
                  <value>onLoad</value>
                  <value>onRequest</value>
                  <value>other</value>
                  <value>none</value>
               </choice>
            </attribute>
         </optional>
      </interleave>
   </define>

   <define name="db.common.attributes">
      <optional>
         <attribute name="xml:id">
            <data type="ID"/>
         </attribute>
      </optional>
      <optional>
         <attribute name="version"/>
      </optional>
      <optional>
         <attribute name="xml:lang"/>
      </optional>
      <optional>
         <attribute name="xml:base"/>
      </optional>
      <optional>
         <attribute name="remap"/>
      </optional>
      <optional>
         <attribute name="xreflabel"/>
      </optional>
      <optional>
         <attribute name="revisionflag">
            <choice>
               <value>changed</value>
               <value>added</value>
               <value>deleted</value>
               <value>off</value>
            </choice>
         </attribute>
      </optional>
      <ref name="db.effectivity.attributes"/>
   </define>

   <define name="db.common.idreq.attributes">
      <attribute name="xml:id">
         <data type="ID"/>
      </attribute>
      <optional>
         <attribute name="version"/>
      </optional>
      <optional>
         <attribute name="xml:lang"/>
      </optional>
      <optional>
         <attribute name="xml:base"/>
      </optional>
      <optional>
         <attribute name="remap"/>
      </optional>
      <optional>
         <attribute name="xreflabel"/>
      </optional>
      <optional>
         <attribute name="revisionflag">
            <choice>
               <value>changed</value>
               <value>added</value>
               <value>deleted</value>
               <value>off</value>
            </choice>
         </attribute>
      </optional>
      <ref name="db.effectivity.attributes"/>
   </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"/>
         <attribute name="entityref">
            <data type="ENTITY"/>
         </attribute>
      </choice>
   </define>

   <define name="db.verbatim.attributes">
      <optional>
         <attribute name="continuation">
            <choice>
               <value>continues</value>
               <value>restarts</value>
            </choice>
         </attribute>
      </optional>
      <optional>
         <attribute name="linenumbering">
            <choice>
               <value>numbered</value>
               <value>unnumbered</value>
            </choice>
         </attribute>
      </optional>
      <optional>
         <attribute name="startinglinenumber">
            <data type="integer"/>
         </attribute>
      </optional>
      <optional>
         <attribute name="language"/>
      </optional>
   </define>

   <define name="db.spacing.attribute">
      <attribute name="spacing">
         <choice>
            <value>compact</value>
            <value>normal</value>
         </choice>
      </attribute>
   </define>

   <define name="db.float.attribute">
      <attribute name="float"/>
   </define>

   <define name="db.pgwide.attribute">
      <attribute name="pgwide">
         <choice>
            <value>0</value>
            <value>1</value>
         </choice>
      </attribute>
   </define>

   <define name="db.language.attribute">
      <optional>
         <attribute name="language"/>
      </optional>
   </define>

   <define name="db.performance.attribute">
      <attribute name="performance">
         <choice>
            <value>optional</value>
            <value>required</value>
         </choice>
      </attribute>
   </define>

   <define name="db.floatstyle.attribute">
      <attribute name="floatstyle"/>
   </define>

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

   <define name="db.biblio.class-enum.attribute">
      <optional>
         <attribute name="class">
            <choice>
               <value>doi</value>
               <value>isbn</value>
               <value>issn</value>
               <value>libraryofcongress</value>
               <value>pubnumber</value>
               <value>uri</value>
            </choice>
         </attribute>
      </optional>
   </define>

   <define name="db.biblio.class-other.attributes">
      <optional>
         <attribute name="class">
            <value>other</value>
         </attribute>
      </optional>
      <attribute name="otherclass">
         <data type="NMTOKEN"/>
      </attribute>
   </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.anchor"/>
            <ref name="db.remark"/>
         </choice>
         <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._title">
      <interleave>
         <optional>
            <ref name="db.title"/>
         </optional>
         <optional>
            <ref name="db.titleabbrev"/>
         </optional>
         <optional>
            <ref name="db.subtitle"/>
         </optional>
      </interleave>
   </define>

   <define name="db._title.req">
      <interleave>
         <ref name="db.title"/>
         <optional>
            <ref name="db.titleabbrev"/>
         </optional>
         <optional>
            <ref name="db.subtitle"/>
         </optional>
      </interleave>
   </define>

   <define name="db._title.only">
      <interleave>
         <optional>
            <ref name="db.title"/>
         </optional>
         <optional>
            <ref name="db.titleabbrev"/>
         </optional>
      </interleave>
   </define>

   <define name="db._title.onlyreq">
      <interleave>
         <ref name="db.title"/>
         <optional>
            <ref name="db.titleabbrev"/>
         </optional>
      </interleave>
   </define>

   <define name="db._info">
      <choice>
         <group>
            <optional>
               <ref name="db._title.req"/>
            </optional>
            <optional>
               <ref name="db.titleforbidden.info"/>
            </optional>
         </group>
         <optional>
            <ref name="db.info"/>
         </optional>
      </choice>
   </define>

   <define name="db._info.title.req">
      <choice>
         <group>
            <ref name="db._title.req"/>
            <optional>
               <ref name="db.titleforbidden.info"/>
            </optional>
         </group>
         <ref name="db.titlereq.info"/>
      </choice>
   </define>

   <define name="db._info.title.only">
      <choice>
         <group>
            <ref name="db._title.only"/>
            <optional>
               <ref name="db.titleforbidden.info"/>
            </optional>
         </group>
         <ref name="db.titleonly.info"/>
      </choice>
   </define>

   <define name="db._info.title.onlyreq">
      <choice>
         <group>
            <ref name="db._title.onlyreq"/>
            <optional>
               <ref name="db.titleforbidden.info"/>
            </optional>
         </group>
         <ref name="db.titleonlyreq.info"/>
      </choice>
   </define>

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

   <define name="db.all.inlines">
      <choice>
         <text/>
         <ref name="db.ubiq.inlines"/>
         <ref name="db.general.inlines"/>
         <ref name="db.domain.inlines"/>
         <ref name="db.extension.inlines"/>
      </choice>
   </define>

   <define name="db.general.inlines">
      <choice>
         <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>
         <ref name="db.glossary.inlines"/>
      </choice>
   </define>

   <define name="db.domain.inlines">
      <choice>
         <ref name="db.technical.inlines"/>
         <ref name="db.error.inlines"/>
         <ref name="db.os.inlines"/>
         <ref name="db.programming.inlines"/>
         <ref name="db.markup.inlines"/>
         <ref name="db.math.inlines"/>
         <ref name="db.gui.inlines"/>
         <ref name="db.keyboard.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"/>
         </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"/>
      </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.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.coref"/>
      </choice>
   </define>

   <define name="db.math.inlines">
      <ref name="db.inlineequation"/>
   </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.uri"/>
            <ref name="db.anchor"/>
         </choice>
         <ref name="db.biblioref"/>
      </choice>
   </define>

   <define name="db.extension.inlines">
      <choice>
         <notAllowed/>
         <choice xmlns:html="http://www.w3.org/1999/xhtml">
            <ref name="db.html.input"/>
            <ref name="db.html.button"/>
            <ref name="db.html.label"/>
            <ref name="db.html.select"/>
            <ref name="db.html.textarea"/>
         </choice>
      </choice>
   </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"/>
            <ref name="db.highlights"/>
         </choice>
         <ref name="db.indexterm"/>
      </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>
         <ref name="db.nopara.blocks"/>
         <ref name="db.para.blocks"/>
         <ref name="db.extension.blocks"/>
      </choice>
   </define>

   <define name="db.formal.blocks">
      <choice>
         <ref name="db.equation"/>
         <ref name="db.example"/>
         <ref name="db.figure"/>
         <ref name="db.table"/>
      </choice>
   </define>

   <define name="db.informal.blocks">
      <choice>
         <ref name="db.informalequation"/>
         <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">
      <choice>
         <notAllowed/>
         <ref xmlns:html="http://www.w3.org/1999/xhtml" name="db.html.form"/>
      </choice>
   </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.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.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.citetitle"/>
         <ref name="db.personname"/>
         <ref name="db.subtitle"/>
         <ref name="db.title"/>
         <ref name="db.titleabbrev"/>
      </choice>
   </define>

   <div>
      <db:refname>title</db:refname>
      <db:refpurpose/>
      <define name="db.title.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>titleabbrev</db:refname>
      <db:refpurpose/>
      <define name="db.titleabbrev.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>subtitle</db:refname>
      <db:refpurpose/>
      <define name="db.subtitle.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>info</db:refname>
      <db:refpurpose/>
      <define name="db.info.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>info</db:refname>
      <db:refpurpose/>
      <define name="db.titlereq.info.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>info</db:refname>
      <db:refpurpose/>
      <define name="db.titleonly.info.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>info</db:refname>
      <db:refpurpose/>
      <define name="db.titleonlyreq.info.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>info</db:refname>
      <db:refpurpose/>
      <define name="db.titleforbidden.info.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>subjectset</db:refname>
      <db:refpurpose/>
      <define name="db.subjectset.role.attribute">
         <attribute name="role"/>
      </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>
               <attribute name="scheme">
                  <data type="NMTOKEN"/>
               </attribute>
            </optional>
         </interleave>
      </define>

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

   </div>
   <div>
      <db:refname>subject</db:refname>
      <db:refpurpose/>
      <define name="db.subject.role.attribute">
         <attribute name="role"/>
      </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>
               <attribute name="weight"/>
            </optional>
         </interleave>
      </define>

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

   </div>
   <div>
      <db:refname>subjectterm</db:refname>
      <db:refpurpose/>
      <define name="db.subjectterm.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>keywordset</db:refname>
      <db:refpurpose/>
      <define name="db.keywordset.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>keyword</db:refname>
      <db:refpurpose/>
      <define name="db.keyword.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <define name="db.table.choice">
      <choice>
         <notAllowed/>
         <ref name="db.cals.table"/>
         <ref name="db.html.table"/>
      </choice>
   </define>

   <define name="db.informaltable.choice">
      <choice>
         <notAllowed/>
         <ref name="db.cals.informaltable"/>
         <ref name="db.html.informaltable"/>
      </choice>
   </define>

   <define name="db.table">
      <ref name="db.table.choice"/>
   </define>

   <define name="db.informaltable">
      <ref name="db.informaltable.choice"/>
   </define>

   <div>
      <db:refname>procedure</db:refname>
      <db:refpurpose/>
      <define name="db.procedure.role.attribute">
         <attribute name="role"/>
      </define>

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

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

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

   </div>
   <div>
      <db:refname>step</db:refname>
      <db:refpurpose/>
      <define name="db.step.role.attribute">
         <attribute name="role"/>
      </define>

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

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

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

   </div>
   <div>
      <db:refname>stepalternatives</db:refname>
      <db:refpurpose/>
      <define name="db.stepalternatives.role.attribute">
         <attribute name="role"/>
      </define>

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

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

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

   </div>
   <div>
      <db:refname>substeps</db:refname>
      <db:refpurpose/>
      <define name="db.substeps.role.attribute">
         <attribute name="role"/>
      </define>

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

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

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

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

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

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

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

   </div>
   <div>
      <db:refname>abstract</db:refname>
      <db:refpurpose/>
      <define name="db.abstract.role.attribute">
         <attribute name="role"/>
      </define>

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

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

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

   </div>
   <div>
      <db:refname>personblurb</db:refname>
      <db:refpurpose/>
      <define name="db.personblurb.role.attribute">
         <attribute name="role"/>
      </define>

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

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

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

   </div>
   <div>
      <db:refname>blockquote</db:refname>
      <db:refpurpose/>
      <define name="db.blockquote.role.attribute">
         <attribute name="role"/>
      </define>

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

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

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

   </div>
   <div>
      <db:refname>attribution</db:refname>
      <db:refpurpose/>
      <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"/>
            <oneOrMore>
               <choice>
                  <ref name="db._text"/>
                  <ref name="db.personname"/>
               </choice>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>bridgehead</db:refname>
      <db:refpurpose/>
      <define name="db.bridgehead.role.attribute">
         <attribute name="role"/>
      </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>
               <attribute name="renderas">
                  <choice>
                     <value>other</value>
                     <value>sect1</value>
                     <value>sect2</value>
                     <value>sect3</value>
                     <value>sect4</value>
                     <value>sect5</value>
                  </choice>
               </attribute>
            </optional>
         </interleave>
      </define>

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

   </div>
   <div>
      <db:refname>remark</db:refname>
      <db:refpurpose/>
      <define name="db.remark.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>epigraph</db:refname>
      <db:refpurpose/>
      <define name="db.epigraph.role.attribute">
         <attribute name="role"/>
      </define>

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

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

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

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

      <define name="db.footnote.role.attribute">
         <attribute name="role"/>
      </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>
               <attribute name="label"/>
            </optional>
         </interleave>
      </define>

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

   </div>
   <div>
      <db:refname>highlights</db:refname>
      <db:refpurpose/>
      <define name="db.highlights.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="db.highlights">
         <element name="highlights">
            <ref name="db.highlights.attlist"/>
            <oneOrMore>
               <choice>
                  <ref name="db.list.blocks"/>
                  <ref name="db.admonition.blocks"/>
                  <ref name="db.para.blocks"/>
                  <ref name="db.indexing.inlines"/>
               </choice>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>formalpara</db:refname>
      <db:refpurpose/>
      <define name="db.formalpara.role.attribute">
         <attribute name="role"/>
      </define>

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

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

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

   </div>
   <div>
      <db:refname>para</db:refname>
      <db:refpurpose/>
      <define name="db.para.role.attribute">
         <attribute name="role"/>
      </define>

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

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

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

   </div>
   <div>
      <db:refname>simpara</db:refname>
      <db:refpurpose/>
      <define name="db.simpara.role.attribute">
         <attribute name="role"/>
      </define>

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

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

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

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

   <define name="db.admonition.contentmodel">
      <ref name="db._info.title.only"/>
      <oneOrMore>
         <ref name="db.all.blocks"/>
      </oneOrMore>
   </define>

   <div>
      <db:refname>caution</db:refname>
      <db:refpurpose/>
      <define name="db.caution.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>important</db:refname>
      <db:refpurpose/>
      <define name="db.important.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>note</db:refname>
      <db:refpurpose/>
      <define name="db.note.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>tip</db:refname>
      <db:refpurpose/>
      <define name="db.tip.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>warning</db:refname>
      <db:refpurpose/>
      <define name="db.warning.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>itemizedlist</db:refname>
      <db:refpurpose/>
      <define name="db.itemizedlist.role.attribute">
         <attribute name="role"/>
      </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>
               <attribute name="mark"/>
            </optional>
         </interleave>
      </define>

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

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

   </div>
   <div>
      <db:refname>orderedlist</db:refname>
      <db:refpurpose/>
      <define name="db.orderedlist.role.attribute">
         <attribute name="role"/>
      </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>
               <attribute name="continuation">
                  <choice>
                     <value>continues</value>
                     <value>restarts</value>
                  </choice>
               </attribute>
            </optional>
            <optional>
               <attribute name="inheritnum">
                  <choice>
                     <value>ignore</value>
                     <value>inherit</value>
                  </choice>
               </attribute>
            </optional>
            <optional>
               <attribute name="numeration">
                  <choice>
                     <value>arabic</value>
                     <value>upperalpha</value>
                     <value>loweralpha</value>
                     <value>upperroman</value>
                     <value>lowerroman</value>
                  </choice>
               </attribute>
            </optional>
         </interleave>
      </define>

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

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

   </div>
   <div>
      <db:refname>listitem</db:refname>
      <db:refpurpose/>
      <define name="db.listitem.role.attribute">
         <attribute name="role"/>
      </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>
               <attribute name="override"/>
            </optional>
         </interleave>
      </define>

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

   </div>
   <div>
      <db:refname>segmentedlist</db:refname>
      <db:refpurpose/>
      <define name="db.segmentedlist.role.attribute">
         <attribute name="role"/>
      </define>

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

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

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

   </div>
   <div>
      <db:refname>segtitle</db:refname>
      <db:refpurpose/>
      <define name="db.segtitle.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>seglistitem</db:refname>
      <db:refpurpose/>
      <define name="db.seglistitem.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>seg</db:refname>
      <db:refpurpose/>
      <define name="db.seg.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>simplelist</db:refname>
      <db:refpurpose/>
      <define name="db.simplelist.role.attribute">
         <attribute name="role"/>
      </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>
               <attribute name="type">
                  <choice>
                     <value>horiz</value>
                     <value>vert</value>
                     <value>inline</value>
                  </choice>
               </attribute>
            </optional>
            <optional>
               <attribute name="columns">
                  <data type="integer"/>
               </attribute>
            </optional>
         </interleave>
      </define>

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

   </div>
   <div>
      <db:refname>member</db:refname>
      <db:refpurpose/>
      <define name="db.member.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>variablelist</db:refname>
      <db:refpurpose/>
      <define name="db.variablelist.role.attribute">
         <attribute name="role"/>
      </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>
               <attribute name="termlength"/>
            </optional>
         </interleave>
      </define>

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

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

   </div>
   <div>
      <db:refname>varlistentry</db:refname>
      <db:refpurpose/>
      <define name="db.varlistentry.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>term</db:refname>
      <db:refpurpose/>
      <define name="db.term.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>example</db:refname>
      <db:refpurpose/>
      <define name="db.example.role.attribute">
         <attribute name="role"/>
      </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>
               <attribute name="label"/>
            </optional>
            <optional>
               <ref name="db.floatstyle.attribute"/>
            </optional>
            <optional>
               <ref name="db.float.attribute"/>
            </optional>
            <optional>
               <attribute name="width"/>
            </optional>
         </interleave>
      </define>

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

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

   </div>
   <div>
      <db:refname>informalexample</db:refname>
      <db:refpurpose/>
      <define name="db.informalexample.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="db.informalexample.attlist">
         <interleave>
            <optional>
               <ref name="db.informalexample.role.attribute"/>
            </optional>
            <ref name="db.comm