<?xml version="1.0" encoding="utf-8"?>
<grammar xmlns="http://relaxng.org/ns/structure/1.0" xmlns:db="http://docbook.org/docbook-ng" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://docbook.org/docbook-ng">

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

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

   <define name="status.attribute">
      <attribute name="status"/>
   </define>

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

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

   <define name="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="navigation.components">
      <choice>
         <notAllowed/>
         <ref name="db.glossary"/>
         <ref name="db.bibliography"/>
         <ref name="db.index"/>
         <ref name="db.toc"/>
      </choice>
   </define>

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

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

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

   <div>
      <db:refname>set</db:refname>
      <db:refpurpose/>
      <define name="local.set.attributes">
         <empty/>
      </define>

      <define name="set.status.attribute">
         <ref name="status.attribute"/>
      </define>

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

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

      <define name="set.info">
         <ref name="docbook.info.titlereq"/>
      </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="set.attlist"/>
            <ref name="set.info"/>
            <optional>
               <ref name="toc.components"/>
            </optional>
            <oneOrMore>
               <choice>
                  <ref name="db.set"/>
                  <ref name="db.book"/>
               </choice>
            </oneOrMore>
            <optional>
               <ref name="setindex.components"/>
            </optional>
         </element>
      </define>

   </div>
   <div>
      <db:refname>book</db:refname>
      <db:refpurpose/>
      <define name="local.book.attributes">
         <empty/>
      </define>

      <define name="book.status.attribute">
         <ref name="status.attribute"/>
      </define>

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

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

      <define name="book.info">
         <ref name="docbook.info.titlereq"/>
      </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="book.attlist"/>
            <ref name="book.info"/>
            <oneOrMore>
               <choice>
                  <ref name="navigation.components"/>
                  <ref name="components"/>
                  <ref name="divisions"/>
               </choice>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>dedication</db:refname>
      <db:refpurpose/>
      <define name="local.dedication.attributes">
         <empty/>
      </define>

      <define name="dedication.status.attribute">
         <ref name="status.attribute"/>
      </define>

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

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

      <define name="dedication.info">
         <ref name="docbook.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="dedication.attlist"/>
            <ref name="dedication.info"/>
            <oneOrMore>
               <ref name="blocks"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>colophon</db:refname>
      <db:refpurpose/>
      <define name="local.colophon.attributes">
         <empty/>
      </define>

      <define name="colophon.status.attribute">
         <ref name="status.attribute"/>
      </define>

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

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

      <define name="colophon.info">
         <ref name="docbook.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="colophon.attlist"/>
            <ref name="colophon.info"/>
            <oneOrMore>
               <ref name="blocks"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>appendix</db:refname>
      <db:refpurpose/>
      <define name="local.appendix.attributes">
         <empty/>
      </define>

      <define name="appendix.status.attribute">
         <ref name="status.attribute"/>
      </define>

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

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

      <define name="appendix.info">
         <ref name="docbook.info.titlereq"/>
      </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="appendix.attlist"/>
            <ref name="appendix.info"/>
            <ref name="component.contentmodel"/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>chapter</db:refname>
      <db:refpurpose/>
      <define name="local.chapter.attributes">
         <empty/>
      </define>

      <define name="chapter.status.attribute">
         <ref name="status.attribute"/>
      </define>

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

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

      <define name="chapter.info">
         <ref name="docbook.info.titlereq"/>
      </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="chapter.attlist"/>
            <ref name="chapter.info"/>
            <ref name="component.contentmodel"/>
         </element>
      </define>

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

   <div>
      <db:refname>part</db:refname>
      <db:refpurpose/>
      <define name="local.part.attributes">
         <empty/>
      </define>

      <define name="part.status.attribute">
         <ref name="status.attribute"/>
      </define>

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

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

      <define name="part.info">
         <ref name="docbook.info.titlereq"/>
      </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="part.attlist"/>
            <ref name="part.info"/>
            <optional>
               <ref name="db.partintro"/>
            </optional>
            <oneOrMore>
               <ref name="part.components"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>preface</db:refname>
      <db:refpurpose/>
      <define name="local.preface.attributes">
         <empty/>
      </define>

      <define name="preface.status.attribute">
         <ref name="status.attribute"/>
      </define>

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

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

      <define name="preface.info">
         <ref name="docbook.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="preface.attlist"/>
            <ref name="preface.info"/>
            <ref name="component.contentmodel"/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>partintro</db:refname>
      <db:refpurpose/>
      <define name="local.partintro.attributes">
         <empty/>
      </define>

      <define name="partintro.status.attribute">
         <ref name="status.attribute"/>
      </define>

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

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

      <define name="partintro.info">
         <ref name="docbook.info"/>
      </define>

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

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

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

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

   <div>
      <db:refname>section</db:refname>
      <db:refpurpose/>
      <define name="local.section.attributes">
         <empty/>
      </define>

      <define name="section.status.attribute">
         <ref name="status.attribute"/>
      </define>

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

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

      <define name="section.info">
         <ref name="docbook.info.titlereq"/>
      </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="section.attlist"/>
            <ref name="section.info"/>
            <ref name="blocks.or.sections"/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>simplesect</db:refname>
      <db:refpurpose/>
      <define name="local.simplesect.attributes">
         <empty/>
      </define>

      <define name="simplesect.status.attribute">
         <ref name="status.attribute"/>
      </define>

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

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

      <define name="simplesect.info">
         <ref name="docbook.info.titlereq"/>
      </define>

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

   </div>
   <div>
      <db:refname>ackno</db:refname>
      <db:refpurpose/>
      <define name="local.ackno.attributes">
         <empty/>
      </define>

      <define name="ackno.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <define name="article.components.optional">
      <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="article.components.required">
      <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/>
      <define name="local.article.attributes">
         <empty/>
      </define>

      <define name="article.status.attribute">
         <ref name="status.attribute"/>
      </define>

      <define name="article.class.attribute">
         <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="article.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="article.info">
         <ref name="docbook.info.titlereq"/>
      </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="article.attlist"/>
            <ref name="article.info"/>
            <zeroOrMore>
               <ref name="navigation.components"/>
            </zeroOrMore>
            <choice>
               <group>
                  <oneOrMore>
                     <ref name="blocks"/>
                  </oneOrMore>
                  <ref name="article.components.optional"/>
               </group>
               <ref name="article.components.required"/>
            </choice>
            <zeroOrMore>
               <choice>
                  <ref name="db.appendix"/>
                  <ref name="navigation.components"/>
                  <ref name="db.ackno"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>reference</db:refname>
      <db:refpurpose/>
      <define name="local.reference.attributes">
         <empty/>
      </define>

      <define name="reference.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="reference.info">
         <ref name="docbook.info.titlereq"/>
      </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="reference.attlist"/>
            <ref name="reference.info"/>
            <optional>
               <ref name="db.partintro"/>
            </optional>
            <oneOrMore>
               <ref name="db.refentry"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <define name="refsections.optional">
      <choice>
         <zeroOrMore>
            <ref name="db.refsection"/>
         </zeroOrMore>
         <zeroOrMore>
            <ref name="db.simplesect"/>
         </zeroOrMore>
      </choice>
   </define>

   <define name="refsections.required">
      <choice>
         <oneOrMore>
            <ref name="db.refsection"/>
         </oneOrMore>
         <zeroOrMore>
            <ref name="db.simplesect"/>
         </zeroOrMore>
      </choice>
   </define>

   <define name="blocks.or.refsections">
      <choice>
         <group>
            <oneOrMore>
               <ref name="blocks"/>
            </oneOrMore>
            <ref name="refsections.optional"/>
         </group>
         <ref name="refsections.required"/>
      </choice>
   </define>

   <div>
      <db:refname>refentry</db:refname>
      <db:refpurpose/>
      <define name="local.refentry.attributes">
         <empty/>
      </define>

      <define name="refentry.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="refentry.info">
         <ref name="docbook.info.titleforbidden"/>
      </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="refentry.attlist"/>
            <zeroOrMore>
               <ref name="db.indexterm"/>
            </zeroOrMore>
            <ref name="refentry.info"/>
            <optional>
               <ref name="db.refmeta"/>
            </optional>
            <oneOrMore>
               <ref name="db.refnamediv"/>
            </oneOrMore>
            <optional>
               <ref name="db.refsynopsisdiv"/>
            </optional>
            <oneOrMore>
               <ref name="db.refsection"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>refmeta</db:refname>
      <db:refpurpose/>
      <define name="local.refmeta.attributes">
         <empty/>
      </define>

      <define name="refmeta.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="db.refmeta">
         <element name="refmeta">
            <ref name="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>refmiscinfo</db:refname>
      <db:refpurpose/>
      <define name="local.refmiscinfo.attributes">
         <empty/>
      </define>

      <define name="refmiscinfo.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>refnamediv</db:refname>
      <db:refpurpose/>
      <define name="local.refnamediv.attributes">
         <empty/>
      </define>

      <define name="refnamediv.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="db.refnamediv">
         <element name="refnamediv">
            <ref name="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="local.refdescriptor.attributes">
         <empty/>
      </define>

      <define name="refdescriptor.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>refname</db:refname>
      <db:refpurpose/>
      <define name="local.refname.attributes">
         <empty/>
      </define>

      <define name="refname.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>refpurpose</db:refname>
      <db:refpurpose/>
      <define name="local.refpurpose.attributes">
         <empty/>
      </define>

      <define name="refpurpose.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>refclass</db:refname>
      <db:refpurpose/>
      <define name="local.refclass.attributes">
         <empty/>
      </define>

      <define name="refclass.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>refsynopsisdiv</db:refname>
      <db:refpurpose/>
      <define name="local.refsynopsisdiv.attributes">
         <empty/>
      </define>

      <define name="refsynopsisdiv.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="refsynopsisdiv.info">
         <ref name="docbook.info"/>
      </define>

      <define name="db.refsynopsisdiv">
         <element name="refsynopsisdiv">
            <ref name="refsynopsisdiv.attlist"/>
            <ref name="refsynopsisdiv.info"/>
            <ref name="blocks.or.refsections"/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>refsection</db:refname>
      <db:refpurpose/>
      <define name="local.refsection.attributes">
         <empty/>
      </define>

      <define name="refsection.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="refsection.info">
         <ref name="docbook.info.titlereq"/>
      </define>

      <define name="db.refsection">
         <element name="refsection">
            <ref name="refsection.attlist"/>
            <ref name="refsection.info"/>
            <ref name="blocks.or.refsections"/>
         </element>
      </define>

   </div>
   <define name="anyAttribute">
      <attribute>
         <anyName/>
      </attribute>
   </define>

   <define name="id.attribute">
      <attribute name="id">
         <data type="ID"/>
      </attribute>
   </define>

   <define name="xml.lang.attribute">
      <attribute name="xml:lang"/>
   </define>

   <define name="xml.base.attribute">
      <attribute name="xml:base"/>
   </define>

   <define name="remap.attribute">
      <attribute name="remap"/>
   </define>

   <define name="xreflabel.attribute">
      <attribute name="xreflabel"/>
   </define>

   <define name="revisionflag.attribute">
      <attribute name="revisionflag">
         <choice>
            <value>changed</value>
            <value>added</value>
            <value>deleted</value>
            <value>off</value>
         </choice>
      </attribute>
   </define>

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

   <define name="arch.attribute">
      <attribute name="arch"/>
   </define>

   <define name="condition.attribute">
      <attribute name="condition"/>
   </define>

   <define name="conformance.attribute">
      <attribute name="conformance"/>
   </define>

   <define name="os.attribute">
      <attribute name="os"/>
   </define>

   <define name="revision.attribute">
      <attribute name="revision"/>
   </define>

   <define name="security.attribute">
      <attribute name="security"/>
   </define>

   <define name="userlevel.attribute">
      <attribute name="userlevel"/>
   </define>

   <define name="vendor.attribute">
      <attribute name="vendor"/>
   </define>

   <define name="version.attribute">
      <attribute name="version"/>
   </define>

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

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

   <define name="href.attribute">
      <attribute name="href"/>
   </define>

   <define name="common.attributes">
      <optional>
         <ref name="id.attribute"/>
      </optional>
      <optional>
         <ref name="xml.lang.attribute"/>
      </optional>
      <optional>
         <ref name="xml.base.attribute"/>
      </optional>
      <optional>
         <ref name="remap.attribute"/>
      </optional>
      <optional>
         <ref name="xreflabel.attribute"/>
      </optional>
      <optional>
         <ref name="revisionflag.attribute"/>
      </optional>
      <optional>
         <ref name="version.attribute"/>
      </optional>
      <ref name="effectivity.attributes"/>
   </define>

   <define name="common.attributes.idreq">
      <ref name="id.attribute"/>
      <optional>
         <ref name="xml.lang.attribute"/>
      </optional>
      <optional>
         <ref name="xml.base.attribute"/>
      </optional>
      <optional>
         <ref name="remap.attribute"/>
      </optional>
      <optional>
         <ref name="xreflabel.attribute"/>
      </optional>
      <optional>
         <ref name="revisionflag.attribute"/>
      </optional>
      <optional>
         <ref name="version.attribute"/>
      </optional>
      <ref name="effectivity.attributes"/>
   </define>

   <define name="common.linking.attributes.req">
      <choice>
         <ref name="linkend.attribute"/>
         <ref name="href.attribute"/>
      </choice>
   </define>

   <define name="common.linking.attributes">
      <optional>
         <choice>
            <ref name="linkend.attribute"/>
            <ref name="href.attribute"/>
         </choice>
      </optional>
   </define>

   <define name="linenumbering.attribute">
      <attribute name="linenumbering">
         <choice>
            <value>numbered</value>
            <value>unnumbered</value>
         </choice>
      </attribute>
   </define>

   <define name="startinglinenumber.attribute">
      <attribute name="startinglinenumber">
         <data type="integer"/>
      </attribute>
   </define>

   <define name="verb-language.attribute">
      <attribute name="language"/>
   </define>

   <define name="continuation.attribute">
      <attribute name="continuation">
         <choice>
            <value>continues</value>
            <value>restarts</value>
         </choice>
      </attribute>
   </define>

   <define name="verbatim.attributes" combine="interleave">
      <optional>
         <ref name="continuation.attribute"/>
      </optional>
      <optional>
         <ref name="linenumbering.attribute"/>
      </optional>
      <optional>
         <ref name="startinglinenumber.attribute"/>
      </optional>
      <optional>
         <ref name="verb-language.attribute"/>
      </optional>
   </define>

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

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

   <define name="data.format.attribute">
      <attribute name="format"/>
   </define>

   <define name="data.fileref.attribute">
      <attribute name="fileref"/>
   </define>

   <define name="data.entityref.attribute">
      <attribute name="entityref">
         <data type="ENTITY"/>
      </attribute>
   </define>

   <define name="data.common.attrib" combine="interleave">
      <optional>
         <ref name="data.format.attribute"/>
      </optional>
      <choice>
         <ref name="data.fileref.attribute"/>
         <ref name="data.entityref.attribute"/>
      </choice>
   </define>

   <define name="oo-language.attribute">
      <optional>
         <attribute name="language"/>
      </optional>
   </define>

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

   <define name="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="biblio.class-other.attributes">
      <optional>
         <attribute name="class">
            <value>other</value>
         </attribute>
      </optional>
      <attribute name="otherclass">
         <data type="NMTOKEN"/>
      </attribute>
   </define>

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

   <define name="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="text.phrase">
      <element name="phrase">
         <ref name="docbook.text"/>
      </element>
   </define>

   <define name="docbook.text">
      <zeroOrMore>
         <choice>
            <text/>
            <ref name="ubiq.inlines"/>
            <ref name="text.phrase"/>
            <ref name="db.replaceable"/>
         </choice>
      </zeroOrMore>
   </define>

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

   <define name="general.inlines">
      <choice>
         <choice>
            <ref name="publishing.inlines"/>
            <ref name="product.inlines"/>
            <ref name="bibliography.inlines"/>
            <ref name="graphic.inlines"/>
            <ref name="indexing.inlines"/>
            <ref name="link.inlines"/>
         </choice>
         <ref name="glossary.inlines"/>
      </choice>
   </define>

   <define name="domain.inlines">
      <choice>
         <ref name="technical.inlines"/>
         <ref name="error.inlines"/>
         <ref name="os.inlines"/>
         <ref name="programming.inlines"/>
         <ref name="markup.inlines"/>
         <ref name="math.inlines"/>
         <ref name="gui.inlines"/>
         <ref name="keyboard.inlines"/>
      </choice>
   </define>

   <define name="technical.inlines">
      <choice>
         <choice>
            <ref name="db.replaceable"/>
            <ref name="db.systemitem"/>
            <ref name="db.option"/>
            <ref name="db.optional"/>
         </choice>
         <ref name="db.nonterminal"/>
      </choice>
   </define>

   <define name="error.inlines">
      <choice>
         <ref name="db.errorcode"/>
         <ref name="db.errortext"/>
         <ref name="db.errorname"/>
         <ref name="db.errortype"/>
      </choice>
   </define>

   <define name="oo.inlines">
      <choice>
         <ref name="db.ooclass"/>
         <ref name="db.ooexception"/>
         <ref name="db.oointerface"/>
      </choice>
   </define>

   <define name="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="oo.inlines"/>
      </choice>
   </define>

   <define name="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="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="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"/>
      </choice>
   </define>

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

   <define name="graphic.inlines">
      <ref name="db.inlinemediaobject"/>
   </define>

   <define name="indexing.inlines">
      <choice>
         <notAllowed/>
         <ref name="db.indexterm"/>
      </choice>
   </define>

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

   <define name="extension.inlines">
      <notAllowed/>
   </define>

   <define name="blocks.nopara">
      <choice>
         <choice>
            <ref name="list.blocks"/>
            <ref name="admonition.blocks"/>
            <ref name="formal.blocks"/>
            <ref name="informal.blocks"/>
            <ref name="publishing.blocks"/>
            <ref name="graphic.blocks"/>
            <ref name="technical.blocks"/>
            <ref name="verbatim.blocks"/>
            <ref name="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="blocks">
      <choice>
         <ref name="blocks.nopara"/>
         <ref name="para.blocks"/>
         <ref name="extension.blocks"/>
      </choice>
   </define>

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

   <define name="informal.blocks">
      <choice>
         <ref name="db.informalequation"/>
         <ref name="db.informalexample"/>
         <ref name="db.informalfigure"/>
         <ref name="db.informaltable"/>
      </choice>
   </define>

   <define name="publishing.blocks">
      <choice>
         <ref name="db.sidebar"/>
         <ref name="db.blockquote"/>
         <ref name="db.address"/>
         <ref name="db.epigraph"/>
      </choice>
   </define>

   <define name="graphic.blocks">
      <choice>
         <choice>
            <ref name="db.mediaobject"/>
            <ref name="db.screenshot"/>
         </choice>
         <ref name="db.mediaobjectco"/>
      </choice>
   </define>

   <define name="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="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="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="verbatim.blocks">
      <choice>
         <choice>
            <ref name="db.programlisting"/>
            <ref name="db.screen"/>
            <ref name="db.literallayout"/>
            <ref name="db.synopsis"/>
         </choice>
         <ref name="db.programlistingco"/>
         <ref name="db.screenco"/>
      </choice>
   </define>

   <define name="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="extension.blocks">
      <notAllowed/>
   </define>

   <div>
      <db:refname>title</db:refname>
      <db:refpurpose/>
      <define name="local.title.attributes">
         <empty/>
      </define>

      <define name="title.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>titleabbrev</db:refname>
      <db:refpurpose/>
      <define name="local.titleabbrev.attributes">
         <empty/>
      </define>

      <define name="titleabbrev.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>subtitle</db:refname>
      <db:refpurpose/>
      <define name="local.subtitle.attributes">
         <empty/>
      </define>

      <define name="subtitle.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <define name="docbook.title">
      <interleave>
         <optional>
            <ref name="db.title"/>
         </optional>
         <optional>
            <ref name="db.titleabbrev"/>
         </optional>
         <optional>
            <ref name="db.subtitle"/>
         </optional>
      </interleave>
   </define>

   <define name="docbook.titlereq">
      <interleave>
         <ref name="db.title"/>
         <optional>
            <ref name="db.titleabbrev"/>
         </optional>
         <optional>
            <ref name="db.subtitle"/>
         </optional>
      </interleave>
   </define>

   <define name="docbook.titleonly">
      <interleave>
         <optional>
            <ref name="db.title"/>
         </optional>
         <optional>
            <ref name="db.titleabbrev"/>
         </optional>
      </interleave>
   </define>

   <define name="docbook.titleonlyreq">
      <interleave>
         <ref name="db.title"/>
         <optional>
            <ref name="db.titleabbrev"/>
         </optional>
      </interleave>
   </define>

   <define name="info.elements">
      <choice>
         <choice>
            <ref name="db.biblioid"/>
            <ref name="db.bibliosource"/>
            <ref name="db.artpagenums"/>
            <ref name="db.copyright"/>
            <ref name="db.subjectset"/>
            <ref name="db.keywordset"/>
            <ref name="db.subjectset"/>
            <ref name="db.keywordset"/>
            <ref name="db.abstract"/>
            <ref name="db.authorgroup"/>
            <ref name="db.author"/>
            <ref name="db.editor"/>
            <ref name="db.othercredit"/>
            <ref name="db.bibliocoverage"/>
            <ref name="db.collab"/>
            <ref name="db.confgroup"/>
            <ref name="db.date"/>
            <ref name="db.pubdate"/>
            <ref name="db.edition"/>
            <ref name="db.volumenum"/>
            <ref name="db.issuenum"/>
            <ref name="db.seriesvolnums"/>
            <ref name="db.pagenums"/>
            <ref name="db.legalnotice"/>
            <ref name="db.publisher"/>
            <ref name="db.releaseinfo"/>
            <ref name="db.revhistory"/>
            <ref name="db.printhistory"/>
         </choice>
         <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="bibliographic.elements">
      <choice>
         <ref name="info.elements"/>
         <ref name="db.abbrev"/>
         <ref name="db.title"/>
         <ref name="db.titleabbrev"/>
         <ref name="db.subtitle"/>
         <ref name="db.citetitle"/>
         <ref name="db.address"/>
         <ref name="db.affiliation"/>
         <ref name="db.personblurb"/>
         <ref name="db.authorinitials"/>
         <ref name="db.personname"/>
         <ref name="db.orgname"/>
         <ref name="db.productname"/>
         <ref name="db.productnumber"/>
         <ref name="db.publishername"/>
      </choice>
   </define>

   <define name="docbook.info">
      <choice>
         <group>
            <optional>
               <ref name="docbook.titlereq"/>
            </optional>
            <optional>
               <ref name="db.info.titleforbidden"/>
            </optional>
         </group>
         <optional>
            <ref name="db.info"/>
         </optional>
      </choice>
   </define>

   <define name="docbook.info.titlereq">
      <choice>
         <group>
            <ref name="docbook.titlereq"/>
            <optional>
               <ref name="db.info.titleforbidden"/>
            </optional>
         </group>
         <ref name="db.info.titlereq"/>
      </choice>
   </define>

   <define name="docbook.info.titleonly">
      <choice>
         <group>
            <ref name="docbook.titleonly"/>
            <optional>
               <ref name="db.info.titleforbidden"/>
            </optional>
         </group>
         <ref name="db.info.titleonly"/>
      </choice>
   </define>

   <define name="docbook.info.titleonlyreq">
      <choice>
         <group>
            <ref name="docbook.titleonlyreq"/>
            <optional>
               <ref name="db.info.titleforbidden"/>
            </optional>
         </group>
         <ref name="db.info.titleonlyreq"/>
      </choice>
   </define>

   <define name="docbook.info.titleforbidden">
      <optional>
         <ref name="db.info.titleforbidden"/>
      </optional>
   </define>

   <ctrl:alternate-define name="docbook.title" xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/">

      <optional>
         <ref name="db.title"/>
      </optional>
      <optional>
         <ref name="db.titleabbrev"/>
      </optional>
      <optional>
         <ref name="db.subtitle"/>
      </optional>
   </ctrl:alternate-define>
   <ctrl:alternate-define name="docbook.titlereq" xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/">

      <ref name="db.title"/>
      <optional>
         <ref name="db.titleabbrev"/>
      </optional>
      <optional>
         <ref name="db.subtitle"/>
      </optional>
   </ctrl:alternate-define>
   <ctrl:alternate-define name="db.info" xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/">

      <element name="info">
         <zeroOrMore>
            <choice>
               <ref name="docbook.title"/>
               <ref name="info.elements"/>
            </choice>
         </zeroOrMore>
      </element>
   </ctrl:alternate-define>
   <ctrl:alternate-define name="docbook.info" xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/">

      <optional>
         <ref name="db.info"/>
      </optional>
   </ctrl:alternate-define>
   <ctrl:alternate-define name="docbook.info.titlereq" xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/">

      <ref name="docbook.titlereq"/>
      <optional>
         <ref name="db.info"/>
      </optional>
   </ctrl:alternate-define>
   <ctrl:alternate-define name="docbook.info.titleforbidden" xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/">

      <optional>
         <ref name="db.info"/>
      </optional>
   </ctrl:alternate-define>
   <div>
      <db:refname>info</db:refname>
      <db:refpurpose/>
      <define name="local.info.attributes">
         <empty/>
      </define>

      <define name="info.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>info</db:refname>
      <db:refpurpose/>
      <define name="local.info.titlereq.attributes">
         <empty/>
      </define>

      <define name="info.titlereq.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>info</db:refname>
      <db:refpurpose/>
      <define name="local.info.titleonly.attributes">
         <empty/>
      </define>

      <define name="info.titleonly.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>info</db:refname>
      <db:refpurpose/>
      <define name="local.info.titleonlyreq.attributes">
         <empty/>
      </define>

      <define name="info.titleonlyreq.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>info</db:refname>
      <db:refpurpose/>
      <define name="local.info.titleforbidden.attributes">
         <empty/>
      </define>

      <define name="info.titleforbidden.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>subjectset</db:refname>
      <db:refpurpose/>
      <define name="local.subjectset.attributes">
         <empty/>
      </define>

      <define name="subjectset.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="subjectset.attlist">
         <interleave>
            <optional>
               <ref name="subjectset.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <optional>
               <attribute name="scheme">
                  <data type="NMTOKEN"/>
               </attribute>
            </optional>
            <ref name="local.subjectset.attributes"/>
         </interleave>
      </define>

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

   </div>
   <div>
      <db:refname>subject</db:refname>
      <db:refpurpose/>
      <define name="local.subject.attributes">
         <empty/>
      </define>

      <define name="subject.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>subjectterm</db:refname>
      <db:refpurpose/>
      <define name="local.subjectterm.attributes">
         <empty/>
      </define>

      <define name="subjectterm.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>keywordset</db:refname>
      <db:refpurpose/>
      <define name="local.keywordset.attributes">
         <empty/>
      </define>

      <define name="keywordset.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>keyword</db:refname>
      <db:refpurpose/>
      <define name="local.keyword.attributes">
         <empty/>
      </define>

      <define name="keyword.role.attribute">
         <attribute name="role"/>
      </define>

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

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

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

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

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

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

   <div>
      <db:refname>procedure</db:refname>
      <db:refpurpose/>
      <define name="local.procedure.attributes">
         <empty/>
      </define>

      <define name="procedure.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="procedure.info">
         <ref name="docbook.info.titleonly"/>
      </define>

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

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

   <div>
      <db:refname>step</db:refname>
      <db:refpurpose/>
      <define name="local.step.attributes">
         <empty/>
      </define>

      <define name="step.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="step.info">
         <ref name="docbook.info.titleonly"/>
      </define>

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

   </div>
   <div>
      <db:refname>stepalternatives</db:refname>
      <db:refpurpose/>
      <define name="local.stepalternatives.attributes">
         <empty/>
      </define>

      <define name="stepalternatives.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="stepalternatives.info">
         <ref name="docbook.info.titleforbidden"/>
      </define>

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

   </div>
   <div>
      <db:refname>substeps</db:refname>
      <db:refpurpose/>
      <define name="local.substeps.attributes">
         <empty/>
      </define>

      <define name="substeps.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>sidebar</db:refname>
      <db:refpurpose/>
      <define name="local.sidebar.attributes">
         <empty/>
      </define>

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

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

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

      <define name="sidebar.info">
         <ref name="docbook.info.titleonly"/>
      </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="sidebar.attlist"/>
            <ref name="sidebar.info"/>
            <oneOrMore>
               <ref name="blocks"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>abstract</db:refname>
      <db:refpurpose/>
      <define name="local.abstract.attributes">
         <empty/>
      </define>

      <define name="abstract.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="abstract.info">
         <ref name="docbook.info.titleonly"/>
      </define>

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

   </div>
   <div>
      <db:refname>personblurb</db:refname>
      <db:refpurpose/>
      <define name="local.personblurb.attributes">
         <empty/>
      </define>

      <define name="personblurb.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="personblurb.info">
         <ref name="docbook.info.titleonly"/>
      </define>

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

   </div>
   <div>
      <db:refname>blockquote</db:refname>
      <db:refpurpose/>
      <define name="local.blockquote.attributes">
         <empty/>
      </define>

      <define name="blockquote.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="blockquote.info">
         <ref name="docbook.info.titleonly"/>
      </define>

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

   </div>
   <div>
      <db:refname>attribution</db:refname>
      <db:refpurpose/>
      <define name="local.attribution.attributes">
         <empty/>
      </define>

      <define name="attribution.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="db.attribution">
         <element name="attribution">
            <ref name="attribution.attlist"/>
            <choice>
               <ref name="docbook.text"/>
               <ref name="db.personname"/>
            </choice>
         </element>
      </define>

   </div>
   <define name="renderas.attribute">
      <attribute name="renderas">
         <choice>
            <value>other</value>
            <value>sect1</value>
            <value>sect2</value>
            <value>sect3</value>
            <value>sect4</value>
            <value>sect5</value>
         </choice>
      </attribute>
   </define>

   <div>
      <db:refname>bridgehead</db:refname>
      <db:refpurpose/>
      <define name="local.bridgehead.attributes">
         <empty/>
      </define>

      <define name="bridgehead.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>remark</db:refname>
      <db:refpurpose/>
      <define name="local.remark.attributes">
         <empty/>
      </define>

      <define name="remark.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>epigraph</db:refname>
      <db:refpurpose/>
      <define name="local.epigraph.attributes">
         <empty/>
      </define>

      <define name="epigraph.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="epigraph.info">
         <ref name="docbook.info.titleforbidden"/>
      </define>

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

   </div>
   <div>
      <db:refname>footnote</db:refname>
      <db:refpurpose/>
      <define name="local.footnote.attributes">
         <empty/>
      </define>

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

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

      <define name="footnote.attlist">
         <interleave>
            <optional>
               <ref name="footnote.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <optional>
               <attribute name="label"/>
            </optional>
            <ref name="local.footnote.attributes"/>
         </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="footnote.attlist"/>
            <oneOrMore>
               <ref name="blocks"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>highlights</db:refname>
      <db:refpurpose/>
      <define name="local.highlights.attributes">
         <empty/>
      </define>

      <define name="highlights.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <define name="para.blocks">
      <choice>
         <ref name="db.anchor"/>
         <ref name="db.para"/>
         <ref name="db.formalpara"/>
         <ref name="db.simpara"/>
      </choice>
   </define>

   <div>
      <db:refname>formalpara</db:refname>
      <db:refpurpose/>
      <define name="local.formalpara.attributes">
         <empty/>
      </define>

      <define name="formalpara.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="formalpara.info">
         <ref name="docbook.info.titleonlyreq"/>
      </define>

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

   </div>
   <div>
      <db:refname>para</db:refname>
      <db:refpurpose/>
      <define name="local.para.attributes">
         <empty/>
      </define>

      <define name="para.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="para.info">
         <ref name="docbook.info.titleforbidden"/>
      </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="para.attlist"/>
            <ref name="para.info"/>
            <zeroOrMore>
               <choice>
                  <ref name="inlines"/>
                  <ref name="blocks.nopara"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>simpara</db:refname>
      <db:refpurpose/>
      <define name="local.simpara.attributes">
         <empty/>
      </define>

      <define name="simpara.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="simpara.info">
         <ref name="docbook.info.titleforbidden"/>
      </define>

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

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

   <define name="admonition.contentmodel">
      <ref name="docbook.info.titleonly"/>
      <oneOrMore>
         <ref name="blocks"/>
      </oneOrMore>
   </define>

   <div>
      <db:refname>caution</db:refname>
      <db:refpurpose/>
      <define name="local.caution.attributes">
         <empty/>
      </define>

      <define name="caution.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="caution.attlist">
         <interleave>
            <optional>
               <ref name="caution.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <ref name="local.caution.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="caution.attlist"/>
            <ref name="admonition.contentmodel"/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>important</db:refname>
      <db:refpurpose/>
      <define name="local.important.attributes">
         <empty/>
      </define>

      <define name="important.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="important.attlist">
         <interleave>
            <optional>
               <ref name="important.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <ref name="local.important.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="important.attlist"/>
            <ref name="admonition.contentmodel"/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>note</db:refname>
      <db:refpurpose/>
      <define name="local.note.attributes">
         <empty/>
      </define>

      <define name="note.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="note.attlist">
         <interleave>
            <optional>
               <ref name="note.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <ref name="local.note.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="note.attlist"/>
            <ref name="admonition.contentmodel"/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>tip</db:refname>
      <db:refpurpose/>
      <define name="local.tip.attributes">
         <empty/>
      </define>

      <define name="tip.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="tip.attlist">
         <interleave>
            <optional>
               <ref name="tip.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <ref name="local.tip.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="tip.attlist"/>
            <ref name="admonition.contentmodel"/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>warning</db:refname>
      <db:refpurpose/>
      <define name="local.warning.attributes">
         <empty/>
      </define>

      <define name="warning.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="warning.attlist">
         <interleave>
            <optional>
               <ref name="warning.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <ref name="local.warning.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="warning.attlist"/>
            <ref name="admonition.contentmodel"/>
         </element>
      </define>

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

   <div>
      <db:refname>itemizedlist</db:refname>
      <db:refpurpose/>
      <define name="local.itemizedlist.attributes">
         <empty/>
      </define>

      <define name="itemizedlist.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="itemizedlist.info">
         <ref name="docbook.info.titleonly"/>
      </define>

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

   </div>
   <div>
      <db:refname>orderedlist</db:refname>
      <db:refpurpose/>
      <define name="local.orderedlist.attributes">
         <empty/>
      </define>

      <define name="orderedlist.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="orderedlist.attlist">
         <interleave>
            <optional>
               <ref name="orderedlist.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <optional>
               <ref name="spacing.attribute"/>
            </optional>
            <optional>
               <ref name="continuation.attribute"/>
            </optional>
            <optional>
               <attribute name="inheritnum">
                  <choice>
                     <value>ignore</value>
                     <value>inherit</value>
                  </choice>
               </attribute>
            </optional>
            <optional>
               <attribute name="numeration"/>
            </optional>
            <ref name="local.orderedlist.attributes"/>
         </interleave>
      </define>

      <define name="orderedlist.info">
         <ref name="docbook.info.titleonly"/>
      </define>

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

   </div>
   <div>
      <db:refname>listitem</db:refname>
      <db:refpurpose/>
      <define name="local.listitem.attributes">
         <empty/>
      </define>

      <define name="listitem.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>segmentedlist</db:refname>
      <db:refpurpose/>
      <define name="local.segmentedlist.attributes">
         <empty/>
      </define>

      <define name="segmentedlist.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="segmentedlist.info">
         <ref name="docbook.info.titleonly"/>
      </define>

      <define name="db.segmentedlist">
         <element name="segmentedlist">
            <ref name="segmentedlist.attlist"/>
            <ref name="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="local.segtitle.attributes">
         <empty/>
      </define>

      <define name="segtitle.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>seglistitem</db:refname>
      <db:refpurpose/>
      <define name="local.seglistitem.attributes">
         <empty/>
      </define>

      <define name="seglistitem.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="seglistitem.attlist">
         <interleave>
            <optional>
               <ref name="seglistitem.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <ref name="local.seglistitem.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="seglistitem.attlist"/>
            <oneOrMore>
               <ref name="db.seg"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>seg</db:refname>
      <db:refpurpose/>
      <define name="local.seg.attributes">
         <empty/>
      </define>

      <define name="seg.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>simplelist</db:refname>
      <db:refpurpose/>
      <define name="local.simplelist.attributes">
         <empty/>
      </define>

      <define name="simplelist.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="simplelist.attlist">
         <interleave>
            <optional>
               <ref name="simplelist.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="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>
            <ref name="local.simplelist.attributes"/>
         </interleave>
      </define>

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

   </div>
   <div>
      <db:refname>member</db:refname>
      <db:refpurpose/>
      <define name="local.member.attributes">
         <empty/>
      </define>

      <define name="member.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>variablelist</db:refname>
      <db:refpurpose/>
      <define name="local.variablelist.attributes">
         <empty/>
      </define>

      <define name="variablelist.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="variablelist.info">
         <ref name="docbook.info.titleonly"/>
      </define>

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

   </div>
   <div>
      <db:refname>varlistentry</db:refname>
      <db:refpurpose/>
      <define name="local.varlistentry.attributes">
         <empty/>
      </define>

      <define name="varlistentry.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="db.varlistentry">
         <element name="varlistentry">
            <ref name="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="local.term.attributes">
         <empty/>
      </define>

      <define name="term.role.attribute">
         <attribute name="role"/>
      </define>

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

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

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

   <div>
      <db:refname>example</db:refname>
      <db:refpurpose/>
      <define name="local.example.attributes">
         <empty/>
      </define>

      <define name="example.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="example.info">
         <ref name="docbook.info.titleonlyreq"/>
      </define>

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

   </div>
   <div>
      <db:refname>informalexample</db:refname>
      <db:refpurpose/>
      <define name="local.informalexample.attributes">
         <empty/>
      </define>

      <define name="informalexample.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="informalexample.info">
         <ref name="docbook.info.titleforbidden"/>
      </define>

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

   </div>
   <define name="verbatim.inlines">
      <choice>
         <choice>
            <ref name="inlines"/>
            <ref name="db.lineannotation"/>
         </choice>
         <ref name="db.co"/>
      </choice>
   </define>

   <define name="verbatim.contentmodel">
      <ref name="docbook.info.titleforbidden"/>
      <choice>
         <ref name="db.textobject"/>
         <zeroOrMore>
            <ref name="verbatim.inlines"/>
         </zeroOrMore>
      </choice>
   </define>

   <div>
      <db:refname>programlisting</db:refname>
      <db:refpurpose/>
      <define name="local.programlisting.attributes">
         <empty/>
      </define>

      <define name="programlisting.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>literallayout</db:refname>
      <db:refpurpose/>
      <define name="local.literallayout.attributes">
         <empty/>
      </define>

      <define name="literallayout.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="literallayout.attlist">
         <interleave>
            <optional>
               <ref name="literallayout.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <ref name="verbatim.attributes"/>
            <optional>
               <attribute name="class">
                  <choice>
                     <value>monospaced</value>
                     <value>normal</value>
                  </choice>
               </attribute>
            </optional>
            <ref name="local.literallayout.attributes"/>
         </interleave>
      </define>

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

   </div>
   <div>
      <db:refname>screen</db:refname>
      <db:refpurpose/>
      <define name="local.screen.attributes">
         <empty/>
      </define>

      <define name="screen.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <define name="screenshot.block">
      <choice>
         <ref name="db.mediaobject"/>
         <ref name="db.mediaobjectco"/>
      </choice>
   </define>

   <div>
      <db:refname>screenshot</db:refname>
      <db:refpurpose/>
      <define name="local.screenshot.attributes">
         <empty/>
      </define>

      <define name="screenshot.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="screenshot.info">
         <ref name="docbook.info"/>
      </define>

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

   </div>
   <div>
      <db:refname>figure</db:refname>
      <db:refpurpose/>
      <define name="local.figure.attributes">
         <empty/>
      </define>

      <define name="figure.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="figure.info">
         <ref name="docbook.info.titleonlyreq"/>
      </define>

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

   </div>
   <div>
      <db:refname>informalfigure</db:refname>
      <db:refpurpose/>
      <define name="local.informalfigure.attributes">
         <empty/>
      </define>

      <define name="informalfigure.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="informalfigure.info">
         <ref name="docbook.info.titleforbidden"/>
      </define>

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

   </div>
   <define name="mediaobject.content">
      <choice>
         <ref name="db.videoobject"/>
         <ref name="db.audioobject"/>
         <ref name="db.imageobject"/>
         <ref name="db.textobject"/>
      </choice>
   </define>

   <div>
      <db:refname>mediaobject</db:refname>
      <db:refpurpose/>
      <define name="local.mediaobject.attributes">
         <empty/>
      </define>

      <define name="mediaobject.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="mediaobject.info">
         <ref name="docbook.info.titleforbidden"/>
      </define>

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

   </div>
   <define name="inlinemediaobject.content">
      <choice>
         <ref name="db.videoobject"/>
         <ref name="db.audioobject"/>
         <ref name="db.imageobject"/>
         <ref name="db.textobject"/>
      </choice>
   </define>

   <div>
      <db:refname>inlinemediaobject</db:refname>
      <db:refpurpose/>
      <define name="local.inlinemediaobject.attributes">
         <empty/>
      </define>

      <define name="inlinemediaobject.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="inlinemediaobject.info">
         <ref name="docbook.info.titleforbidden"/>
      </define>

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

   </div>
   <div>
      <db:refname>videoobject</db:refname>
      <db:refpurpose/>
      <define name="local.videoobject.attributes">
         <empty/>
      </define>

      <define name="videoobject.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="videoobject.info">
         <ref name="docbook.info.titleforbidden"/>
      </define>

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

   </div>
   <div>
      <db:refname>audioobject</db:refname>
      <db:refpurpose/>
      <define name="local.audioobject.attributes">
         <empty/>
      </define>

      <define name="audioobject.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="audioobject.info">
         <ref name="docbook.info.titleforbidden"/>
      </define>

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

   </div>
   <define name="imageobject.content">
      <choice>
         <ref name="db.imagedata"/>
         <ref name="any.svg"/>
      </choice>
   </define>

   <div>
      <db:refname>imageobject</db:refname>
      <db:refpurpose/>
      <define name="local.imageobject.attributes">
         <empty/>
      </define>

      <define name="imageobject.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="imageobject.info">
         <ref name="docbook.info.titleforbidden"/>
      </define>

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

   </div>
   <div>
      <db:refname>textobject</db:refname>
      <db:refpurpose/>
      <define name="local.textobject.attributes">
         <empty/>
      </define>

      <define name="textobject.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="textobject.info">
         <ref name="docbook.info.titleforbidden"/>
      </define>

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

   </div>
   <div>
      <db:refname>videodata</db:refname>
      <db:refpurpose/>
      <define name="local.videodata.attributes">
         <empty/>
      </define>

      <define name="videodata.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="videodata.attlist">
         <interleave>
            <optional>
               <ref name="videodata.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="data.common.attrib"/>
            <optional>
               <attribute name="align">
                  <choice>
                     <value>center</value>
                     <value>char</value>
                     <value>justify</value>
                     <value>left</value>
                     <value>right</value>
                  </choice>
               </attribute>
            </optional>
            <optional>
               <attribute name="valign">
                  <choice>
                     <value>bottom</value>
                     <value>middle</value>
                     <value>top</value>
                  </choice>
               </attribute>
            </optional>
            <optional>
               <attribute name="width"/>
            </optional>
            <optional>
               <attribute name="contentwidth"/>
            </optional>
            <optional>
               <attribute name="scalefit">
                  <choice>
                     <value>0</value>
                     <value>1</value>
                  </choice>
               </attribute>
            </optional>
            <optional>
               <attribute name="scale"/>
            </optional>
            <optional>
               <attribute name="depth"/>
            </optional>
            <optional>
               <attribute name="contentdepth"/>
            </optional>
            <ref name="local.videodata.attributes"/>
         </interleave>
      </define>

      <define name="videodata.info">
         <ref name="docbook.info.titleforbidden"/>
      </define>

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

   </div>
   <div>
      <db:refname>audiodata</db:refname>
      <db:refpurpose/>
      <define name="local.audiodata.attributes">
         <empty/>
      </define>

      <define name="audiodata.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="audiodata.info">
         <ref name="docbook.info.titleforbidden"/>
      </define>

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

   </div>
   <div>
      <db:refname>imagedata</db:refname>
      <db:refpurpose/>
      <define name="local.imagedata.attributes">
         <empty/>
      </define>

      <define name="imagedata.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="imagedata.attlist">
         <interleave>
            <optional>
               <ref name="imagedata.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="data.common.attrib"/>
            <optional>
               <attribute name="align">
                  <choice>
                     <value>center</value>
                     <value>char</value>
                     <value>justify</value>
                     <value>left</value>
                     <value>right</value>
                  </choice>
               </attribute>
            </optional>
            <optional>
               <attribute name="valign">
                  <choice>
                     <value>bottom</value>
                     <value>middle</value>
                     <value>top</value>
                  </choice>
               </attribute>
            </optional>
            <optional>
               <attribute name="width"/>
            </optional>
            <optional>
               <attribute name="contentwidth"/>
            </optional>
            <optional>
               <attribute name="scalefit">
                  <choice>
                     <value>0</value>
                     <value>1</value>
                  </choice>
               </attribute>
            </optional>
            <optional>
               <attribute name="scale"/>
            </optional>
            <optional>
               <attribute name="depth"/>
            </optional>
            <optional>
               <attribute name="contentdepth"/>
            </optional>
            <ref name="local.imagedata.attributes"/>
         </interleave>
      </define>

      <define name="imagedata.info">
         <ref name="docbook.info.titleforbidden"/>
      </define>

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

   </div>
   <div>
      <db:refname>textdata</db:refname>
      <db:refpurpose/>
      <define name="local.textdata.attributes">
         <empty/>
      </define>

      <define name="textdata.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="textdata.info">
         <ref name="docbook.info.titleforbidden"/>
      </define>

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

   </div>
   <define name="equation.content">
      <choice>
         <ref name="db.mediaobject"/>
         <ref name="any.mml"/>
      </choice>
   </define>

   <div>
      <db:refname>equation</db:refname>
      <db:refpurpose/>
      <define name="local.equation.attributes">
         <empty/>
      </define>

      <define name="equation.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="equation.info">
         <ref name="docbook.info.titleonlyreq"/>
      </define>

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

   </div>
   <div>
      <db:refname>informalequation</db:refname>
      <db:refpurpose/>
      <define name="local.informalequation.attributes">
         <empty/>
      </define>

      <define name="informalequation.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="informalequation.info">
         <ref name="docbook.info.titleforbidden"/>
      </define>

      <define name="db.informalequation">
         <element name="informalequation">
            <ref name="informalequation.attlist"/>
            <ref name="informalequation.info"/>
            <oneOrMore>
               <ref name="equation.content"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <define name="inlineequation.content">
      <choice>
         <ref name="db.inlinemediaobject"/>
         <ref name="any.mml"/>
      </choice>
   </define>

   <div>
      <db:refname>inlineequation</db:refname>
      <db:refpurpose/>
      <define name="local.inlineequation.attributes">
         <empty/>
      </define>

      <define name="inlineequation.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="db.inlineequation">
         <element name="inlineequation">
            <ref name="inlineequation.attlist"/>
            <oneOrMore>
               <ref name="inlineequation.content"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>synopsis</db:refname>
      <db:refpurpose/>
      <define name="local.synopsis.attributes">
         <empty/>
      </define>

      <define name="synopsis.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>cmdsynopsis</db:refname>
      <db:refpurpose/>
      <define name="local.cmdsynopsis.attributes">
         <empty/>
      </define>

      <define name="cmdsynopsis.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="cmdsynopsis.info">
         <ref name="docbook.info.titleforbidden"/>
      </define>

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

   </div>
   <define name="rep.attribute">
      <attribute name="rep">
         <choice>
            <value>norepeat</value>
            <value>repeat</value>
         </choice>
      </attribute>
   </define>

   <define name="choice.attribute">
      <attribute name="choice">
         <choice>
            <value>opt</value>
            <value>plain</value>
            <value>req</value>
         </choice>
      </attribute>
   </define>

   <div>
      <db:refname>arg</db:refname>
      <db:refpurpose/>
      <define name="local.arg.attributes">
         <empty/>
      </define>

      <define name="arg.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>group</db:refname>
      <db:refpurpose/>
      <define name="local.group.attributes">
         <empty/>
      </define>

      <define name="group.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>sbr</db:refname>
      <db:refpurpose/>
      <define name="local.sbr.attributes">
         <empty/>
      </define>

      <define name="sbr.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>synopfragment</db:refname>
      <db:refpurpose/>
      <define name="local.synopfragment.attributes">
         <empty/>
      </define>

      <define name="synopfragment.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>synopfragmentref</db:refname>
      <db:refpurpose/>
      <define name="local.synopfragmentref.attributes">
         <empty/>
      </define>

      <define name="synopfragmentref.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>funcsynopsis</db:refname>
      <db:refpurpose/>
      <define name="local.funcsynopsis.attributes">
         <empty/>
      </define>

      <define name="funcsynopsis.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="funcsynopsis.info">
         <ref name="docbook.info.titleforbidden"/>
      </define>

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

   </div>
   <div>
      <db:refname>funcsynopsisinfo</db:refname>
      <db:refpurpose/>
      <define name="local.funcsynopsisinfo.attributes">
         <empty/>
      </define>

      <define name="funcsynopsisinfo.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>funcprototype</db:refname>
      <db:refpurpose/>
      <define name="local.funcprototype.attributes">
         <empty/>
      </define>

      <define name="funcprototype.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>funcdef</db:refname>
      <db:refpurpose/>
      <define name="local.funcdef.attributes">
         <empty/>
      </define>

      <define name="funcdef.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>void</db:refname>
      <db:refpurpose/>
      <define name="local.void.attributes">
         <empty/>
      </define>

      <define name="void.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>varargs</db:refname>
      <db:refpurpose/>
      <define name="local.varargs.attributes">
         <empty/>
      </define>

      <define name="varargs.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>paramdef</db:refname>
      <db:refpurpose/>
      <define name="local.paramdef.attributes">
         <empty/>
      </define>

      <define name="paramdef.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="paramdef.attlist">
         <interleave>
            <optional>
               <ref name="paramdef.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <optional>
               <attribute name="choice">
                  <choice>
                     <value>opt</value>
                     <value>req</value>
                  </choice>
               </attribute>
            </optional>
            <ref name="local.paramdef.attributes"/>
         </interleave>
      </define>

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

   </div>
   <div>
      <db:refname>funcparams</db:refname>
      <db:refpurpose/>
      <define name="local.funcparams.attributes">
         <empty/>
      </define>

      <define name="funcparams.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <define name="oo-method.synopsis.blocks">
      <choice>
         <ref name="db.methodsynopsis"/>
         <ref name="db.constructorsynopsis"/>
         <ref name="db.destructorsynopsis"/>
      </choice>
   </define>

   <define name="oo-field.synopsis.blocks">
      <ref name="db.fieldsynopsis"/>
   </define>

   <div>
      <db:refname>classsynopsis</db:refname>
      <db:refpurpose/>
      <define name="local.classsynopsis.attributes">
         <empty/>
      </define>

      <define name="classsynopsis.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="classsynopsis.attlist">
         <interleave>
            <optional>
               <ref name="classsynopsis.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <ref name="oo-language.attribute"/>
            <optional>
               <attribute name="class">
                  <choice>
                     <value>class</value>
                     <value>interface</value>
                  </choice>
               </attribute>
            </optional>
            <ref name="local.classsynopsis.attributes"/>
         </interleave>
      </define>

      <define name="db.classsynopsis">
         <element name="classsynopsis">
            <ref name="classsynopsis.attlist"/>
            <oneOrMore>
               <ref name="oo.inlines"/>
            </oneOrMore>
            <zeroOrMore>
               <choice>
                  <ref name="db.classsynopsisinfo"/>
                  <ref name="oo-method.synopsis.blocks"/>
                  <ref name="oo-field.synopsis.blocks"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>classsynopsisinfo</db:refname>
      <db:refpurpose/>
      <define name="local.classsynopsisinfo.attributes">
         <empty/>
      </define>

      <define name="classsynopsisinfo.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>ooclass</db:refname>
      <db:refpurpose/>
      <define name="local.ooclass.attributes">
         <empty/>
      </define>

      <define name="ooclass.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>oointerface</db:refname>
      <db:refpurpose/>
      <define name="local.oointerface.attributes">
         <empty/>
      </define>

      <define name="oointerface.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>ooexception</db:refname>
      <db:refpurpose/>
      <define name="local.ooexception.attributes">
         <empty/>
      </define>

      <define name="ooexception.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>modifier</db:refname>
      <db:refpurpose/>
      <define name="local.modifier.attributes">
         <empty/>
      </define>

      <define name="modifier.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>interfacename</db:refname>
      <db:refpurpose/>
      <define name="local.interfacename.attributes">
         <empty/>
      </define>

      <define name="interfacename.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>exceptionname</db:refname>
      <db:refpurpose/>
      <define name="local.exceptionname.attributes">
         <empty/>
      </define>

      <define name="exceptionname.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>fieldsynopsis</db:refname>
      <db:refpurpose/>
      <define name="local.fieldsynopsis.attributes">
         <empty/>
      </define>

      <define name="fieldsynopsis.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>initializer</db:refname>
      <db:refpurpose/>
      <define name="local.initializer.attributes">
         <empty/>
      </define>

      <define name="initializer.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>constructorsynopsis</db:refname>
      <db:refpurpose/>
      <define name="local.constructorsynopsis.attributes">
         <empty/>
      </define>

      <define name="constructorsynopsis.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>destructorsynopsis</db:refname>
      <db:refpurpose/>
      <define name="local.destructorsynopsis.attributes">
         <empty/>
      </define>

      <define name="destructorsynopsis.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>methodsynopsis</db:refname>
      <db:refpurpose/>
      <define name="local.methodsynopsis.attributes">
         <empty/>
      </define>

      <define name="methodsynopsis.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>methodname</db:refname>
      <db:refpurpose/>
      <define name="local.methodname.attributes">
         <empty/>
      </define>

      <define name="methodname.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>methodparam</db:refname>
      <db:refpurpose/>
      <define name="local.methodparam.attributes">
         <empty/>
      </define>

      <define name="methodparam.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>address</db:refname>
      <db:refpurpose/>
      <define name="local.address.attributes">
         <empty/>
      </define>

      <define name="address.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>street</db:refname>
      <db:refpurpose/>
      <define name="local.street.attributes">
         <empty/>
      </define>

      <define name="street.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>pob</db:refname>
      <db:refpurpose/>
      <define name="local.pob.attributes">
         <empty/>
      </define>

      <define name="pob.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>postcode</db:refname>
      <db:refpurpose/>
      <define name="local.postcode.attributes">
         <empty/>
      </define>

      <define name="postcode.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>city</db:refname>
      <db:refpurpose/>
      <define name="local.city.attributes">
         <empty/>
      </define>

      <define name="city.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>state</db:refname>
      <db:refpurpose/>
      <define name="local.state.attributes">
         <empty/>
      </define>

      <define name="state.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>country</db:refname>
      <db:refpurpose/>
      <define name="local.country.attributes">
         <empty/>
      </define>

      <define name="country.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>phone</db:refname>
      <db:refpurpose/>
      <define name="local.phone.attributes">
         <empty/>
      </define>

      <define name="phone.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>fax</db:refname>
      <db:refpurpose/>
      <define name="local.fax.attributes">
         <empty/>
      </define>

      <define name="fax.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>otheraddr</db:refname>
      <db:refpurpose/>
      <define name="local.otheraddr.attributes">
         <empty/>
      </define>

      <define name="otheraddr.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>affiliation</db:refname>
      <db:refpurpose/>
      <define name="local.affiliation.attributes">
         <empty/>
      </define>

      <define name="affiliation.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>shortaffil</db:refname>
      <db:refpurpose/>
      <define name="local.shortaffil.attributes">
         <empty/>
      </define>

      <define name="shortaffil.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>jobtitle</db:refname>
      <db:refpurpose/>
      <define name="local.jobtitle.attributes">
         <empty/>
      </define>

      <define name="jobtitle.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>orgname</db:refname>
      <db:refpurpose/>
      <define name="local.orgname.attributes">
         <empty/>
      </define>

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

      <define name="orgname.class-enum.attribute">
         <optional>
            <attribute name="class">
               <choice>
                  <value>consortium</value>
                  <value>corporation</value>
                  <value>informal</value>
                  <value>nonprofit</value>
               </choice>
            </attribute>
         </optional>
      </define>

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

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

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

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

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

   </div>
   <div>
      <db:refname>orgdiv</db:refname>
      <db:refpurpose/>
      <define name="local.orgdiv.attributes">
         <empty/>
      </define>

      <define name="orgdiv.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>artpagenums</db:refname>
      <db:refpurpose/>
      <define name="local.artpagenums.attributes">
         <empty/>
      </define>

      <define name="artpagenums.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>personname</db:refname>
      <db:refpurpose/>
      <define name="local.personname.attributes">
         <empty/>
      </define>

      <define name="personname.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <define name="person.author">
      <ref name="db.personname"/>
      <zeroOrMore>
         <choice>
            <ref name="db.personblurb"/>
            <ref name="db.affiliation"/>
            <ref name="db.email"/>
            <ref name="db.address"/>
            <ref name="db.contrib"/>
         </choice>
      </zeroOrMore>
   </define>

   <define name="org.author">
      <ref name="db.orgname"/>
      <zeroOrMore>
         <choice>
            <ref name="db.orgdiv"/>
            <ref name="db.affiliation"/>
            <ref name="db.email"/>
            <ref name="db.address"/>
            <ref name="db.contrib"/>
         </choice>
      </zeroOrMore>
   </define>

   <define name="credit.contentmodel">
      <choice>
         <ref name="person.author"/>
         <ref name="org.author"/>
      </choice>
   </define>

   <div>
      <db:refname>author</db:refname>
      <db:refpurpose/>
      <define name="local.author.attributes">
         <empty/>
      </define>

      <define name="author.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>authorgroup</db:refname>
      <db:refpurpose/>
      <define name="local.authorgroup.attributes">
         <empty/>
      </define>

      <define name="authorgroup.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>collab</db:refname>
      <db:refpurpose/>
      <define name="local.collab.attributes">
         <empty/>
      </define>

      <define name="collab.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>authorinitials</db:refname>
      <db:refpurpose/>
      <define name="local.authorinitials.attributes">
         <empty/>
      </define>

      <define name="authorinitials.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>confgroup</db:refname>
      <db:refpurpose/>
      <define name="local.confgroup.attributes">
         <empty/>
      </define>

      <define name="confgroup.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>confdates</db:refname>
      <db:refpurpose/>
      <define name="local.confdates.attributes">
         <empty/>
      </define>

      <define name="confdates.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>conftitle</db:refname>
      <db:refpurpose/>
      <define name="local.conftitle.attributes">
         <empty/>
      </define>

      <define name="conftitle.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>confnum</db:refname>
      <db:refpurpose/>
      <define name="local.confnum.attributes">
         <empty/>
      </define>

      <define name="confnum.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>confsponsor</db:refname>
      <db:refpurpose/>
      <define name="local.confsponsor.attributes">
         <empty/>
      </define>

      <define name="confsponsor.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>contractnum</db:refname>
      <db:refpurpose/>
      <define name="local.contractnum.attributes">
         <empty/>
      </define>

      <define name="contractnum.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>contractsponsor</db:refname>
      <db:refpurpose/>
      <define name="local.contractsponsor.attributes">
         <empty/>
      </define>

      <define name="contractsponsor.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>copyright</db:refname>
      <db:refpurpose/>
      <define name="local.copyright.attributes">
         <empty/>
      </define>

      <define name="copyright.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>year</db:refname>
      <db:refpurpose/>
      <define name="local.year.attributes">
         <empty/>
      </define>

      <define name="year.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>holder</db:refname>
      <db:refpurpose/>
      <define name="local.holder.attributes">
         <empty/>
      </define>

      <define name="holder.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>date</db:refname>
      <db:refpurpose/>
      <define name="local.date.attributes">
         <empty/>
      </define>

      <define name="date.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>edition</db:refname>
      <db:refpurpose/>
      <define name="local.edition.attributes">
         <empty/>
      </define>

      <define name="edition.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>editor</db:refname>
      <db:refpurpose/>
      <define name="local.editor.attributes">
         <empty/>
      </define>

      <define name="editor.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>biblioid</db:refname>
      <db:refpurpose/>
      <define name="local.biblioid.attributes">
         <empty/>
      </define>

      <define name="biblioid.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>citebiblioid</db:refname>
      <db:refpurpose/>
      <define name="local.citebiblioid.attributes">
         <empty/>
      </define>

      <define name="citebiblioid.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>bibliosource</db:refname>
      <db:refpurpose/>
      <define name="local.bibliosource.attributes">
         <empty/>
      </define>

      <define name="bibliosource.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>bibliorelation</db:refname>
      <db:refpurpose/>
      <define name="local.bibliorelation.attributes">
         <empty/>
      </define>

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

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

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

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

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

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

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

   </div>
   <div>
      <db:refname>bibliocoverage</db:refname>
      <db:refpurpose/>
      <define name="local.bibliocoverage.attributes">
         <empty/>
      </define>

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

      <define name="bibliocoverage.spatial-enum.attribute">
         <optional>
            <attribute name="spatial">
               <choice>
                  <value>dcmipoint</value>
                  <value>iso3166</value>
                  <value>dcmibox</value>
                  <value>tgn</value>
               </choice>
            </attribute>
         </optional>
      </define>

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

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

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

      <define name="bibliocoverage.temporal-enum.attribute">
         <optional>
            <attribute name="temporal">
               <choice>
                  <value>dcmiperiod</value>
                  <value>w3c-dtf</value>
               </choice>
            </attribute>
         </optional>
      </define>

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

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

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

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

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

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

   </div>
   <div>
      <db:refname>legalnotice</db:refname>
      <db:refpurpose/>
      <define name="local.legalnotice.attributes">
         <empty/>
      </define>

      <define name="legalnotice.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="legalnotice.info">
         <ref name="docbook.info.titleonly"/>
      </define>

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

   </div>
   <div>
      <db:refname>othercredit</db:refname>
      <db:refpurpose/>
      <define name="local.othercredit.attributes">
         <empty/>
      </define>

      <define name="othercredit.class.attribute">
         <optional>
            <attribute name="class">
               <choice>
                  <value>copyeditor</value>
                  <value>graphicdesigner</value>
                  <value>other</value>
                  <value>productioneditor</value>
                  <value>technicaleditor</value>
                  <value>translator</value>
               </choice>
            </attribute>
         </optional>
      </define>

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

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

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

   </div>
   <div>
      <db:refname>pagenums</db:refname>
      <db:refpurpose/>
      <define name="local.pagenums.attributes">
         <empty/>
      </define>

      <define name="pagenums.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>contrib</db:refname>
      <db:refpurpose/>
      <define name="local.contrib.attributes">
         <empty/>
      </define>

      <define name="contrib.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>honorific</db:refname>
      <db:refpurpose/>
      <define name="local.honorific.attributes">
         <empty/>
      </define>

      <define name="honorific.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>firstname</db:refname>
      <db:refpurpose/>
      <define name="local.firstname.attributes">
         <empty/>
      </define>

      <define name="firstname.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>surname</db:refname>
      <db:refpurpose/>
      <define name="local.surname.attributes">
         <empty/>
      </define>

      <define name="surname.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>lineage</db:refname>
      <db:refpurpose/>
      <define name="local.lineage.attributes">
         <empty/>
      </define>

      <define name="lineage.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>othername</db:refname>
      <db:refpurpose/>
      <define name="local.othername.attributes">
         <empty/>
      </define>

      <define name="othername.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>printhistory</db:refname>
      <db:refpurpose/>
      <define name="local.printhistory.attributes">
         <empty/>
      </define>

      <define name="printhistory.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>productname</db:refname>
      <db:refpurpose/>
      <define name="local.productname.attributes">
         <empty/>
      </define>

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

      <define name="productname.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>productnumber</db:refname>
      <db:refpurpose/>
      <define name="local.productnumber.attributes">
         <empty/>
      </define>

      <define name="productnumber.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>pubdate</db:refname>
      <db:refpurpose/>
      <define name="local.pubdate.attributes">
         <empty/>
      </define>

      <define name="pubdate.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>publisher</db:refname>
      <db:refpurpose/>
      <define name="local.publisher.attributes">
         <empty/>
      </define>

      <define name="publisher.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>publishername</db:refname>
      <db:refpurpose/>
      <define name="local.publishername.attributes">
         <empty/>
      </define>

      <define name="publishername.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>releaseinfo</db:refname>
      <db:refpurpose/>
      <define name="local.releaseinfo.attributes">
         <empty/>
      </define>

      <define name="releaseinfo.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>revhistory</db:refname>
      <db:refpurpose/>
      <define name="local.revhistory.attributes">
         <empty/>
      </define>

      <define name="revhistory.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="revhistory.info">
         <ref name="docbook.info.titleonly"/>
      </define>

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

   </div>
   <div>
      <db:refname>revision</db:refname>
      <db:refpurpose/>
      <define name="local.revision.attributes">
         <empty/>
      </define>

      <define name="revision.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>revnumber</db:refname>
      <db:refpurpose/>
      <define name="local.revnumber.attributes">
         <empty/>
      </define>

      <define name="revnumber.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>revremark</db:refname>
      <db:refpurpose/>
      <define name="local.revremark.attributes">
         <empty/>
      </define>

      <define name="revremark.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>revdescription</db:refname>
      <db:refpurpose/>
      <define name="local.revdescription.attributes">
         <empty/>
      </define>

      <define name="revdescription.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>seriesvolnums</db:refname>
      <db:refpurpose/>
      <define name="local.seriesvolnums.attributes">
         <empty/>
      </define>

      <define name="seriesvolnums.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>volumenum</db:refname>
      <db:refpurpose/>
      <define name="local.volumenum.attributes">
         <empty/>
      </define>

      <define name="volumenum.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>issuenum</db:refname>
      <db:refpurpose/>
      <define name="local.issuenum.attributes">
         <empty/>
      </define>

      <define name="issuenum.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname/>
      <db:refpurpose/>
      <define name="local..attributes">
         <empty/>
      </define>

      <define name="accel.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>application</db:refname>
      <db:refpurpose/>
      <define name="local.application.attributes">
         <empty/>
      </define>

      <define name="application.class.attribute">
         <attribute name="class">
            <choice>
               <value>hardware</value>
               <value>software</value>
            </choice>
         </attribute>
      </define>

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

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

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

   </div>
   <div>
      <db:refname>classname</db:refname>
      <db:refpurpose/>
      <define name="local.classname.attributes">
         <empty/>
      </define>

      <define name="classname.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>command</db:refname>
      <db:refpurpose/>
      <define name="local.command.attributes">
         <empty/>
      </define>

      <define name="command.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <define name="computeroutput.inlines">
      <choice>
         <ref name="inlines"/>
         <ref name="db.co"/>
         <ref name="db.co"/>
      </choice>
   </define>

   <div>
      <db:refname>computeroutput</db:refname>
      <db:refpurpose/>
      <define name="local.computeroutput.attributes">
         <empty/>
      </define>

      <define name="computeroutput.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>database</db:refname>
      <db:refpurpose/>
      <define name="local.database.attributes">
         <empty/>
      </define>

      <define name="database.class.attribute">
         <attribute name="class">
            <choice>
               <value>altkey</value>
               <value>constraint</value>
               <value>datatype</value>
               <value>field</value>
               <value>foreignkey</value>
               <value>group</value>
               <value>index</value>
               <value>key1</value>
               <value>key2</value>
               <value>name</value>
               <value>primarykey</value>
               <value>procedure</value>
               <value>record</value>
               <value>rule</value>
               <value>secondarykey</value>
               <value>table</value>
               <value>user</value>
               <value>view</value>
            </choice>
         </attribute>
      </define>

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

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

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

   </div>
   <div>
      <db:refname>email</db:refname>
      <db:refpurpose/>
      <define name="local.email.attributes">
         <empty/>
      </define>

      <define name="email.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>envar</db:refname>
      <db:refpurpose/>
      <define name="local.envar.attributes">
         <empty/>
      </define>

      <define name="envar.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>errorcode</db:refname>
      <db:refpurpose/>
      <define name="local.errorcode.attributes">
         <empty/>
      </define>

      <define name="errorcode.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>errorname</db:refname>
      <db:refpurpose/>
      <define name="local.errorname.attributes">
         <empty/>
      </define>

      <define name="errorname.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>errortext</db:refname>
      <db:refpurpose/>
      <define name="local.errortext.attributes">
         <empty/>
      </define>

      <define name="errortext.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>errortype</db:refname>
      <db:refpurpose/>
      <define name="local.errortype.attributes">
         <empty/>
      </define>

      <define name="errortype.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>filename</db:refname>
      <db:refpurpose/>
      <define name="local.filename.attributes">
         <empty/>
      </define>

      <define name="filename.path.attribute">
         <attribute name="path"/>
      </define>

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

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

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

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

   </div>
   <div>
      <db:refname>function</db:refname>
      <db:refpurpose/>
      <define name="local.function.attributes">
         <empty/>
      </define>

      <define name="function.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>guibutton</db:refname>
      <db:refpurpose/>
      <define name="local.guibutton.attributes">
         <empty/>
      </define>

      <define name="guibutton.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="db.guibutton">
         <element name="guibutton">
            <ref name="guibutton.attlist"/>
            <zeroOrMore>
               <choice>
                  <ref name="docbook.text"/>
                  <ref name="db.accel"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>guiicon</db:refname>
      <db:refpurpose/>
      <define name="local.guiicon.attributes">
         <empty/>
      </define>

      <define name="guiicon.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="db.guiicon">
         <element name="guiicon">
            <ref name="guiicon.attlist"/>
            <zeroOrMore>
               <choice>
                  <ref name="docbook.text"/>
                  <ref name="db.accel"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>guilabel</db:refname>
      <db:refpurpose/>
      <define name="local.guilabel.attributes">
         <empty/>
      </define>

      <define name="guilabel.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="db.guilabel">
         <element name="guilabel">
            <ref name="guilabel.attlist"/>
            <zeroOrMore>
               <choice>
                  <ref name="docbook.text"/>
                  <ref name="db.accel"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>guimenu</db:refname>
      <db:refpurpose/>
      <define name="local.guimenu.attributes">
         <empty/>
      </define>

      <define name="guimenu.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="db.guimenu">
         <element name="guimenu">
            <ref name="guimenu.attlist"/>
            <zeroOrMore>
               <choice>
                  <ref name="docbook.text"/>
                  <ref name="db.accel"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>guimenuitem</db:refname>
      <db:refpurpose/>
      <define name="local.guimenuitem.attributes">
         <empty/>
      </define>

      <define name="guimenuitem.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="db.guimenuitem">
         <element name="guimenuitem">
            <ref name="guimenuitem.attlist"/>
            <zeroOrMore>
               <choice>
                  <ref name="docbook.text"/>
                  <ref name="db.accel"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>guisubmenu</db:refname>
      <db:refpurpose/>
      <define name="local.guisubmenu.attributes">
         <empty/>
      </define>

      <define name="guisubmenu.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="db.guisubmenu">
         <element name="guisubmenu">
            <ref name="guisubmenu.attlist"/>
            <zeroOrMore>
               <choice>
                  <ref name="docbook.text"/>
                  <ref name="db.accel"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>hardware</db:refname>
      <db:refpurpose/>
      <define name="local.hardware.attributes">
         <empty/>
      </define>

      <define name="hardware.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>keycap</db:refname>
      <db:refpurpose/>
      <define name="local.keycap.attributes">
         <empty/>
      </define>

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

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

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

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

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

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

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

   </div>
   <div>
      <db:refname>keycode</db:refname>
      <db:refpurpose/>
      <define name="local.keycode.attributes">
         <empty/>
      </define>

      <define name="keycode.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>keycombo</db:refname>
      <db:refpurpose/>
      <define name="local.keycombo.attributes">
         <empty/>
      </define>

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

      <define name="keycombo.action-enum.attribute">
         <optional>
            <attribute name="action">
               <choice>
                  <value>click</value>
                  <value>double-click</value>
                  <value>press</value>
                  <value>seq</value>
                  <value>simul</value>
               </choice>
            </attribute>
         </optional>
      </define>

      <define name="keycombo.action-other.attributes">
         <optional>
            <attribute name="action">
               <value>other</value>
            </attribute>
         </optional>
         <attribute name="otheraction"/>
      </define>

      <define name="keycombo.action.attrib">
         <choice>
            <ref name="keycombo.action-enum.attribute"/>
            <ref name="keycombo.action-other.attributes"/>
         </choice>
      </define>

      <define name="keycombo.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="keycombo.attlist">
         <interleave>
            <optional>
               <ref name="keycombo.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <ref name="keycombo.action.attrib"/>
            <ref name="local.keycombo.attributes"/>
         </interleave>
      </define>

      <define name="db.keycombo">
         <element name="keycombo">
            <ref name="keycombo.attlist"/>
            <oneOrMore>
               <choice>
                  <ref name="db.keycap"/>
                  <ref name="db.keycombo"/>
                  <ref name="db.keysym"/>
                  <ref name="db.mousebutton"/>
               </choice>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>keysym</db:refname>
      <db:refpurpose/>
      <define name="local.keysym.attributes">
         <empty/>
      </define>

      <define name="keysym.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>lineannotation</db:refname>
      <db:refpurpose/>
      <define name="local.lineannotation.attributes">
         <empty/>
      </define>

      <define name="lineannotation.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>literal</db:refname>
      <db:refpurpose/>
      <define name="local.literal.attributes">
         <empty/>
      </define>

      <define name="literal.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>code</db:refname>
      <db:refpurpose/>
      <define name="local.code.attributes">
         <empty/>
      </define>

      <define name="code.language.attribute">
         <attribute name="language"/>
      </define>

      <define name="code.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>constant</db:refname>
      <db:refpurpose/>
      <define name="local.constant.attributes">
         <empty/>
      </define>

      <define name="constant.class.attribute">
         <attribute name="class">
            <value>limit</value>
         </attribute>
      </define>

      <define name="constant.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>varname</db:refname>
      <db:refpurpose/>
      <define name="local.varname.attributes">
         <empty/>
      </define>

      <define name="varname.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>markup</db:refname>
      <db:refpurpose/>
      <define name="local.markup.attributes">
         <empty/>
      </define>

      <define name="markup.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>menuchoice</db:refname>
      <db:refpurpose/>
      <define name="local.menuchoice.attributes">
         <empty/>
      </define>

      <define name="menuchoice.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="db.menuchoice">
         <element name="menuchoice">
            <ref name="menuchoice.attlist"/>
            <optional>
               <ref name="db.shortcut"/>
            </optional>
            <oneOrMore>
               <choice>
                  <ref name="db.guibutton"/>
                  <ref name="db.guiicon"/>
                  <ref name="db.guilabel"/>
                  <ref name="db.guimenu"/>
                  <ref name="db.guimenuitem"/>
                  <ref name="db.guisubmenu"/>
               </choice>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>shortcut</db:refname>
      <db:refpurpose/>
      <define name="local.shortcut.attributes">
         <empty/>
      </define>

      <define name="shortcut.action.attrib">
         <ref name="keycombo.action.attrib"/>
      </define>

      <define name="shortcut.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="shortcut.attlist">
         <interleave>
            <optional>
               <ref name="shortcut.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <ref name="shortcut.action.attrib"/>
            <ref name="local.shortcut.attributes"/>
         </interleave>
      </define>

      <define name="db.shortcut">
         <element name="shortcut">
            <ref name="shortcut.attlist"/>
            <oneOrMore>
               <choice>
                  <ref name="db.keycap"/>
                  <ref name="db.keycombo"/>
                  <ref name="db.keysym"/>
                  <ref name="db.mousebutton"/>
               </choice>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>mousebutton</db:refname>
      <db:refpurpose/>
      <define name="local.mousebutton.attributes">
         <empty/>
      </define>

      <define name="mousebutton.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>option</db:refname>
      <db:refpurpose/>
      <define name="local.option.attributes">
         <empty/>
      </define>

      <define name="option.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>optional</db:refname>
      <db:refpurpose/>
      <define name="local.optional.attributes">
         <empty/>
      </define>

      <define name="optional.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>parameter</db:refname>
      <db:refpurpose/>
      <define name="local.parameter.attributes">
         <empty/>
      </define>

      <define name="parameter.class.attribute">
         <attribute name="class">
            <choice>
               <value>command</value>
               <value>function</value>
               <value>option</value>
            </choice>
         </attribute>
      </define>

      <define name="parameter.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <define name="prompt.inlines">
      <choice>
         <ref name="docbook.text"/>
         <ref name="db.co"/>
      </choice>
   </define>

   <div>
      <db:refname>prompt</db:refname>
      <db:refpurpose/>
      <define name="local.prompt.attributes">
         <empty/>
      </define>

      <define name="prompt.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <define name="replaceable.inlines">
      <choice>
         <ref name="docbook.text"/>
         <ref name="db.co"/>
      </choice>
   </define>

   <div>
      <db:refname>replaceable</db:refname>
      <db:refpurpose/>
      <define name="local.replaceable.attributes">
         <empty/>
      </define>

      <define name="replaceable.class.attribute">
         <attribute name="class">
            <choice>
               <value>command</value>
               <value>function</value>
               <value>option</value>
               <value>parameter</value>
            </choice>
         </attribute>
      </define>

      <define name="replaceable.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>returnvalue</db:refname>
      <db:refpurpose/>
      <define name="local.returnvalue.attributes">
         <empty/>
      </define>

      <define name="returnvalue.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>tag</db:refname>
      <db:refpurpose/>
      <define name="local.tag.attributes">
         <empty/>
      </define>

      <define name="tag.class.attribute">
         <optional>
            <attribute name="class">
               <choice>
                  <value>attribute</value>
                  <value>attvalue</value>
                  <value>element</value>
                  <value>emptytag</value>
                  <value>endtag</value>
                  <value>genentity</value>
                  <value>numcharref</value>
                  <value>paramentity</value>
                  <value>pi</value>
                  <value>sgmlcomment</value>
                  <value>starttag</value>
                  <value>xmlpi</value>
               </choice>
            </attribute>
         </optional>
      </define>

      <define name="tag.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>symbol</db:refname>
      <db:refpurpose/>
      <define name="local.symbol.attributes">
         <empty/>
      </define>

      <define name="symbol.class.attribute">
         <optional>
            <attribute name="class">
               <value>limit</value>
            </attribute>
         </optional>
      </define>

      <define name="symbol.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <define name="systemitem.inlines">
      <choice>
         <ref name="docbook.text"/>
         <ref name="db.co"/>
      </choice>
   </define>

   <div>
      <db:refname>systemitem</db:refname>
      <db:refpurpose/>
      <define name="local.systemitem.attributes">
         <empty/>
      </define>

      <define name="systemitem.class.attribute">
         <attribute name="class">
            <choice>
               <value>daemon</value>
               <value>domainname</value>
               <value>etheraddress</value>
               <value>event</value>
               <value>eventhandler</value>
               <value>filesystem</value>
               <value>fqdomainname</value>
               <value>groupname</value>
               <value>ipaddress</value>
               <value>library</value>
               <value>macro</value>
               <value>netmask</value>
               <value>newsgroup</value>
               <value>osname</value>
               <value>process</value>
               <value>resource</value>
               <value>server</value>
               <value>service</value>
               <value>systemname</value>
               <value>username</value>
            </choice>
         </attribute>
      </define>

      <define name="systemitem.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>uri</db:refname>
      <db:refpurpose/>
      <define name="local.uri.attributes">
         <empty/>
      </define>

      <define name="uri.type.attribute">
         <optional>
            <attribute name="type"/>
         </optional>
      </define>

      <define name="uri.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="uri.attlist">
         <interleave>
            <optional>
               <ref name="uri.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <ref name="uri.type.attribute"/>
            <ref name="local.uri.attributes"/>
         </interleave>
      </define>

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

   </div>
   <div>
      <db:refname>token</db:refname>
      <db:refpurpose/>
      <define name="local.token.attributes">
         <empty/>
      </define>

      <define name="token.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>type</db:refname>
      <db:refpurpose/>
      <define name="local.type.attributes">
         <empty/>
      </define>

      <define name="type.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <define name="userinput.inlines">
      <choice>
         <ref name="inlines"/>
         <ref name="db.co"/>
      </choice>
   </define>

   <div>
      <db:refname>userinput</db:refname>
      <db:refpurpose/>
      <define name="local.userinput.attributes">
         <empty/>
      </define>

      <define name="userinput.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>abbrev</db:refname>
      <db:refpurpose/>
      <define name="local.abbrev.attributes">
         <empty/>
      </define>

      <define name="abbrev.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="db.abbrev">
         <element name="abbrev">
            <ref name="abbrev.attlist"/>
            <zeroOrMore>
               <choice>
                  <ref name="docbook.text"/>
                  <ref name="db.superscript"/>
                  <ref name="db.subscript"/>
                  <ref name="db.trademark"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>acronym</db:refname>
      <db:refpurpose/>
      <define name="local.acronym.attributes">
         <empty/>
      </define>

      <define name="acronym.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="db.acronym">
         <element name="acronym">
            <ref name="acronym.attlist"/>
            <zeroOrMore>
               <choice>
                  <ref name="docbook.text"/>
                  <ref name="db.superscript"/>
                  <ref name="db.subscript"/>
                  <ref name="db.trademark"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>citation</db:refname>
      <db:refpurpose/>
      <define name="local.citation.attributes">
         <empty/>
      </define>

      <define name="citation.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>citerefentry</db:refname>
      <db:refpurpose/>
      <define name="local.citerefentry.attributes">
         <empty/>
      </define>

      <define name="citerefentry.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="db.citerefentry">
         <element name="citerefentry">
            <ref name="citerefentry.attlist"/>
            <ref name="db.refentrytitle"/>
            <optional>
               <ref name="db.manvolnum"/>
            </optional>
         </element>
      </define>

   </div>
   <div>
      <db:refname>refentrytitle</db:refname>
      <db:refpurpose/>
      <define name="local.refentrytitle.attributes">
         <empty/>
      </define>

      <define name="refentrytitle.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>manvolnum</db:refname>
      <db:refpurpose/>
      <define name="local.manvolnum.attributes">
         <empty/>
      </define>

      <define name="manvolnum.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>citetitle</db:refname>
      <db:refpurpose/>
      <define name="local.citetitle.attributes">
         <empty/>
      </define>

      <define name="citetitle.pubwork.attribute">
         <attribute name="pubwork">
            <choice>
               <value>article</value>
               <value>bbs</value>
               <value>book</value>
               <value>cdrom</value>
               <value>chapter</value>
               <value>dvd</value>
               <value>emailmessage</value>
               <value>gopher</value>
               <value>journal</value>
               <value>manuscript</value>
               <value>newsposting</value>
               <value>part</value>
               <value>refentry</value>
               <value>section</value>
               <value>series</value>
               <value>set</value>
               <value>webpage</value>
               <value>wiki</value>
            </choice>
         </attribute>
      </define>

      <define name="citetitle.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="citetitle.attlist">
         <interleave>
            <optional>
               <ref name="citetitle.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <optional>
               <ref name="citetitle.pubwork.attribute"/>
            </optional>
            <ref name="local.citetitle.attributes"/>
         </interleave>
      </define>

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

   </div>
   <div>
      <db:refname>emphasis</db:refname>
      <db:refpurpose/>
      <define name="local.emphasis.attributes">
         <empty/>
      </define>

      <define name="emphasis.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>foreignphrase</db:refname>
      <db:refpurpose/>
      <define name="local.foreignphrase.attributes">
         <empty/>
      </define>

      <define name="foreignphrase.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="db.foreignphrase">
         <element name="foreignphrase">
            <ref name="foreignphrase.attlist"/>
            <zeroOrMore>
               <choice>
                  <text/>
                  <ref name="general.inlines"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>phrase</db:refname>
      <db:refpurpose/>
      <define name="local.phrase.attributes">
         <empty/>
      </define>

      <define name="phrase.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>quote</db:refname>
      <db:refpurpose/>
      <define name="local.quote.attributes">
         <empty/>
      </define>

      <define name="quote.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>subscript</db:refname>
      <db:refpurpose/>
      <define name="local.subscript.attributes">
         <empty/>
      </define>

      <define name="subscript.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>superscript</db:refname>
      <db:refpurpose/>
      <define name="local.superscript.attributes">
         <empty/>
      </define>

      <define name="superscript.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>trademark</db:refname>
      <db:refpurpose/>
      <define name="local.trademark.attributes">
         <empty/>
      </define>

      <define name="trademark.class.attribute">
         <attribute name="class">
            <choice>
               <value>copyright</value>
               <value>registered</value>
               <value>service</value>
               <value>trade</value>
            </choice>
         </attribute>
      </define>

      <define name="trademark.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>wordasword</db:refname>
      <db:refpurpose/>
      <define name="local.wordasword.attributes">
         <empty/>
      </define>

      <define name="wordasword.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>footnoteref</db:refname>
      <db:refpurpose/>
      <define name="local.footnoteref.attributes">
         <empty/>
      </define>

      <define name="footnoteref.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="footnoteref.attlist">
         <interleave>
            <optional>
               <ref name="footnoteref.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="linkend.attribute"/>
            <optional>
               <attribute name="label"/>
            </optional>
            <ref name="local.footnoteref.attributes"/>
         </interleave>
      </define>

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

   </div>
   <div>
      <db:refname>xref</db:refname>
      <db:refpurpose/>
      <define name="local.xref.attributes">
         <empty/>
      </define>

      <define name="xref.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="xref.attlist">
         <interleave>
            <optional>
               <ref name="xref.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes.req"/>
            <optional>
               <attribute name="xrefstyle"/>
            </optional>
            <optional>
               <attribute name="endterm">
                  <data type="IDREF"/>
               </attribute>
            </optional>
            <ref name="local.xref.attributes"/>
         </interleave>
      </define>

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

   </div>
   <div>
      <db:refname>anchor</db:refname>
      <db:refpurpose/>
      <define name="local.anchor.attributes">
         <empty/>
      </define>

      <define name="anchor.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="anchor.attlist">
         <interleave>
            <optional>
               <ref name="anchor.role.attribute"/>
            </optional>
            <ref name="common.attributes.idreq"/>
            <ref name="local.anchor.attributes"/>
         </interleave>
      </define>

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

   </div>
   <define name="glossary.inlines">
      <choice>
         <ref name="db.firstterm"/>
         <ref name="db.glossterm"/>
      </choice>
   </define>

   <define name="baseform.attribute">
      <optional>
         <attribute name="baseform"/>
      </optional>
   </define>

   <div>
      <db:refname>glosslist</db:refname>
      <db:refpurpose/>
      <define name="local.glosslist.attributes">
         <empty/>
      </define>

      <define name="glosslist.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="glosslist.info">
         <ref name="docbook.info.titleonly"/>
      </define>

      <define name="db.glosslist">
         <element name="glosslist">
            <ref name="glosslist.attlist"/>
            <optional>
               <ref name="glosslist.info"/>
            </optional>
            <zeroOrMore>
               <ref name="blocks"/>
            </zeroOrMore>
            <oneOrMore>
               <ref name="db.glossentry"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>glossentry</db:refname>
      <db:refpurpose/>
      <define name="local.glossentry.attributes">
         <empty/>
      </define>

      <define name="glossentry.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="glossentry.attlist">
         <interleave>
            <optional>
               <ref name="glossentry.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <optional>
               <attribute name="sortas"/>
            </optional>
            <ref name="local.glossentry.attributes"/>
         </interleave>
      </define>

      <define name="db.glossentry">
         <element name="glossentry">
            <ref name="glossentry.attlist"/>
            <ref name="db.glossterm"/>
            <optional>
               <ref name="db.acronym"/>
            </optional>
            <optional>
               <ref name="db.abbrev"/>
            </optional>
            <zeroOrMore>
               <ref name="db.indexterm"/>
            </zeroOrMore>
            <choice>
               <ref name="db.glosssee"/>
               <oneOrMore>
                  <ref name="db.glossdef"/>
               </oneOrMore>
            </choice>
         </element>
      </define>

   </div>
   <div>
      <db:refname>glossdef</db:refname>
      <db:refpurpose/>
      <define name="local.glossdef.attributes">
         <empty/>
      </define>

      <define name="glossdef.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="db.glossdef">
         <element name="glossdef">
            <ref name="glossdef.attlist"/>
            <oneOrMore>
               <ref name="blocks"/>
            </oneOrMore>
            <zeroOrMore>
               <ref name="db.glossseealso"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>glosssee</db:refname>
      <db:refpurpose/>
      <define name="local.glosssee.attributes">
         <empty/>
      </define>

      <define name="glosssee.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="glosssee.attlist">
         <interleave>
            <optional>
               <ref name="glosssee.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <optional>
               <attribute name="otherterm">
                  <data type="IDREF"/>
               </attribute>
            </optional>
            <ref name="local.glosssee.attributes"/>
         </interleave>
      </define>

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

   </div>
   <div>
      <db:refname>glossseealso</db:refname>
      <db:refpurpose/>
      <define name="local.glossseealso.attributes">
         <empty/>
      </define>

      <define name="glossseealso.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="glossseealso.attlist">
         <interleave>
            <optional>
               <ref name="glossseealso.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <optional>
               <attribute name="otherterm">
                  <data type="IDREF"/>
               </attribute>
            </optional>
            <ref name="local.glossseealso.attributes"/>
         </interleave>
      </define>

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

   </div>
   <div>
      <db:refname>firstterm</db:refname>
      <db:refpurpose/>
      <define name="local.firstterm.attributes">
         <empty/>
      </define>

      <define name="firstterm.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="firstterm.attlist">
         <interleave>
            <optional>
               <ref name="firstterm.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <ref name="baseform.attribute"/>
            <ref name="local.firstterm.attributes"/>
         </interleave>
      </define>

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

   </div>
   <div>
      <db:refname>glossterm</db:refname>
      <db:refpurpose/>
      <define name="local.glossterm.attributes">
         <empty/>
      </define>

      <define name="glossterm.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="glossterm.attlist">
         <interleave>
            <optional>
               <ref name="glossterm.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <ref name="baseform.attribute"/>
            <ref name="local.glossterm.attributes"/>
         </interleave>
      </define>

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

   </div>
   <div>
      <db:refname>glossary</db:refname>
      <db:refpurpose/>
      <define name="local.glossary.attributes">
         <empty/>
      </define>

      <define name="glossary.status.attribute">
         <ref name="status.attribute"/>
      </define>

      <define name="glossary.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="glossary.info">
         <ref name="docbook.info"/>
      </define>

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

   </div>
   <div>
      <db:refname>glossdiv</db:refname>
      <db:refpurpose/>
      <define name="local.glossdiv.attributes">
         <empty/>
      </define>

      <define name="glossdiv.status.attribute">
         <ref name="status.attribute"/>
      </define>

      <define name="glossdiv.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="glossdiv.info">
         <ref name="docbook.info.titlereq"/>
      </define>

      <define name="db.glossdiv">
         <element name="glossdiv">
            <ref name="glossdiv.attlist"/>
            <ref name="glossdiv.info"/>
            <zeroOrMore>
               <ref name="blocks"/>
            </zeroOrMore>
            <oneOrMore>
               <ref name="db.glossentry"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <define name="relation.attribute">
      <attribute name="relation"/>
   </define>

   <div>
      <db:refname>biblioentry</db:refname>
      <db:refpurpose/>
      <define name="local.biblioentry.attributes">
         <empty/>
      </define>

      <define name="biblioentry.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="db.biblioentry">
         <element name="biblioentry">
            <ref name="biblioentry.attlist"/>
            <oneOrMore>
               <ref name="bibliographic.elements"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>bibliomixed</db:refname>
      <db:refpurpose/>
      <define name="local.bibliomixed.attributes">
         <empty/>
      </define>

      <define name="bibliomixed.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="db.bibliomixed">
         <element name="bibliomixed">
            <ref name="bibliomixed.attlist"/>
            <zeroOrMore>
               <choice>
                  <text/>
                  <ref name="bibliographic.elements"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>biblioset</db:refname>
      <db:refpurpose/>
      <define name="local.biblioset.attributes">
         <empty/>
      </define>

      <define name="biblioset.relation.attrib">
         <ref name="relation.attribute"/>
      </define>

      <define name="biblioset.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="biblioset.attlist">
         <interleave>
            <optional>
               <ref name="biblioset.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <optional>
               <ref name="biblioset.relation.attrib"/>
            </optional>
            <ref name="local.biblioset.attributes"/>
         </interleave>
      </define>

      <define name="db.biblioset">
         <element name="biblioset">
            <ref name="biblioset.attlist"/>
            <oneOrMore>
               <ref name="bibliographic.elements"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>bibliomset</db:refname>
      <db:refpurpose/>
      <define name="local.bibliomset.attributes">
         <empty/>
      </define>

      <define name="bibliomset.relation.attrib">
         <ref name="relation.attribute"/>
      </define>

      <define name="bibliomset.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="bibliomset.attlist">
         <interleave>
            <optional>
               <ref name="bibliomset.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <optional>
               <ref name="bibliomset.relation.attrib"/>
            </optional>
            <ref name="local.bibliomset.attributes"/>
         </interleave>
      </define>

      <define name="db.bibliomset">
         <element name="bibliomset">
            <ref name="bibliomset.attlist"/>
            <zeroOrMore>
               <choice>
                  <ref name="docbook.text"/>
                  <ref name="bibliographic.elements"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>bibliomisc</db:refname>
      <db:refpurpose/>
      <define name="local.bibliomisc.attributes">
         <empty/>
      </define>

      <define name="bibliomisc.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>bibliography</db:refname>
      <db:refpurpose/>
      <define name="local.bibliography.attributes">
         <empty/>
      </define>

      <define name="bibliography.status.attrib">
         <ref name="status.attribute"/>
      </define>

      <define name="bibliography.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="bibliography.attlist">
         <interleave>
            <optional>
               <ref name="bibliography.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <optional>
               <ref name="label.attribute"/>
            </optional>
            <optional>
               <ref name="bibliography.status.attrib"/>
            </optional>
            <ref name="local.bibliography.attributes"/>
         </interleave>
      </define>

      <define name="bibliography.info">
         <ref name="docbook.info"/>
      </define>

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

   </div>
   <div>
      <db:refname>bibliodiv</db:refname>
      <db:refpurpose/>
      <define name="local.bibliodiv.attributes">
         <empty/>
      </define>

      <define name="bibliodiv.status.attrib">
         <ref name="status.attribute"/>
      </define>

      <define name="bibliodiv.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="bibliodiv.attlist">
         <interleave>
            <optional>
               <ref name="bibliodiv.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <optional>
               <ref name="label.attribute"/>
            </optional>
            <optional>
               <ref name="bibliodiv.status.attrib"/>
            </optional>
            <ref name="local.bibliodiv.attributes"/>
         </interleave>
      </define>

      <define name="bibliodiv.info">
         <ref name="docbook.info.titlereq"/>
      </define>

      <define name="db.bibliodiv">
         <element name="bibliodiv">
            <ref name="bibliodiv.attlist"/>
            <ref name="bibliodiv.info"/>
            <zeroOrMore>
               <ref name="blocks"/>
            </zeroOrMore>
            <oneOrMore>
               <choice>
                  <ref name="db.biblioentry"/>
                  <ref name="db.bibliomixed"/>
               </choice>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>bibliolist</db:refname>
      <db:refpurpose/>
      <define name="local.bibliolist.attributes">
         <empty/>
      </define>

      <define name="bibliolist.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="bibliolist.info">
         <ref name="docbook.info.titleonly"/>
      </define>

      <define name="db.bibliolist">
         <element name="bibliolist">
            <ref name="bibliolist.attlist"/>
            <optional>
               <ref name="bibliolist.info"/>
            </optional>
            <zeroOrMore>
               <ref name="blocks"/>
            </zeroOrMore>
            <oneOrMore>
               <choice>
                  <ref name="db.biblioentry"/>
                  <ref name="db.bibliomixed"/>
               </choice>
            </oneOrMore>
         </element>
      </define>

   </div>
   <define name="significance.attribute">
      <attribute name="significance">
         <choice>
            <value>normal</value>
            <value>preferred</value>
         </choice>
      </attribute>
   </define>

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

   <define name="pagenum.attribute">
      <attribute name="pagenum"/>
   </define>

   <define name="scope.attribute">
      <attribute name="scope">
         <choice>
            <value>all</value>
            <value>global</value>
            <value>local</value>
         </choice>
      </attribute>
   </define>

   <define name="sortas.attribute">
      <attribute name="sortas"/>
   </define>

   <div>
      <db:refname>itermset</db:refname>
      <db:refpurpose/>
      <define name="local.itermset.attributes">
         <empty/>
      </define>

      <define name="itermset.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="db.itermset">
         <element name="itermset">
            <ref name="itermset.attlist"/>
            <oneOrMore>
               <ref name="indexterm.singular"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <define name="indexterm.contentmodel">
      <optional>
         <ref name="db.primary"/>
      </optional>
      <optional>
         <choice>
            <group>
               <ref name="db.secondary"/>
               <optional>
                  <choice>
                     <group>
                        <ref name="db.tertiary"/>
                        <optional>
                           <choice>
                              <ref name="db.see"/>
                              <oneOrMore>
                                 <ref name="db.seealso"/>
                              </oneOrMore>
                           </choice>
                        </optional>
                     </group>
                     <ref name="db.see"/>
                     <oneOrMore>
                        <ref name="db.seealso"/>
                     </oneOrMore>
                  </choice>
               </optional>
            </group>
            <ref name="db.see"/>
            <oneOrMore>
               <ref name="db.seealso"/>
            </oneOrMore>
         </choice>
      </optional>
   </define>

   <div>
      <db:refname>indexterm</db:refname>
      <db:refpurpose/>
      <define name="local.indexterm.singular.attributes">
         <empty/>
      </define>

      <define name="indexterm.singular.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="indexterm.singular.attlist">
         <interleave>
            <optional>
               <ref name="indexterm.singular.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <optional>
               <ref name="significance.attribute"/>
            </optional>
            <optional>
               <ref name="zone.attribute"/>
            </optional>
            <optional>
               <ref name="pagenum.attribute"/>
            </optional>
            <optional>
               <ref name="scope.attribute"/>
            </optional>
            <optional>
               <attribute name="class">
                  <value>singular</value>
               </attribute>
            </optional>
            <ref name="local.indexterm.singular.attributes"/>
         </interleave>
      </define>

      <define name="indexterm.singular">
         <element name="indexterm">
            <ref name="indexterm.singular.attlist"/>
            <ref name="indexterm.contentmodel"/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>indexterm</db:refname>
      <db:refpurpose/>
      <define name="local.indexterm.startofrange.attributes">
         <empty/>
      </define>

      <define name="indexterm.startofrange.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="indexterm.startofrange.attlist">
         <interleave>
            <optional>
               <ref name="indexterm.startofrange.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <optional>
               <ref name="significance.attribute"/>
            </optional>
            <optional>
               <ref name="zone.attribute"/>
            </optional>
            <optional>
               <ref name="pagenum.attribute"/>
            </optional>
            <optional>
               <ref name="scope.attribute"/>
            </optional>
            <attribute name="class">
               <value>startofrange</value>
            </attribute>
            <ref name="local.indexterm.startofrange.attributes"/>
         </interleave>
      </define>

      <define name="indexterm.startofrange">
         <element name="indexterm">
            <ref name="indexterm.startofrange.attlist"/>
            <ref name="indexterm.contentmodel"/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>indexterm</db:refname>
      <db:refpurpose/>
      <define name="local.indexterm.endofrange.attributes">
         <empty/>
      </define>

      <define name="indexterm.endofrange.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="indexterm.endofrange.attlist">
         <interleave>
            <optional>
               <ref name="indexterm.endofrange.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <attribute name="class">
               <value>endofrange</value>
            </attribute>
            <attribute name="startref">
               <data type="IDREF"/>
            </attribute>
            <ref name="local.indexterm.endofrange.attributes"/>
         </interleave>
      </define>

      <define name="indexterm.endofrange">
         <element name="indexterm">
            <ref name="indexterm.endofrange.attlist"/>
            <empty/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>indexterm</db:refname>
      <db:refpurpose/>
      <define name="db.indexterm">
         <choice>
            <ref name="indexterm.singular"/>
            <ref name="indexterm.startofrange"/>
            <ref name="indexterm.endofrange"/>
         </choice>
      </define>

   </div>
   <div>
      <db:refname>primary</db:refname>
      <db:refpurpose/>
      <define name="local.primary.attributes">
         <empty/>
      </define>

      <define name="primary.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="primary.attlist">
         <interleave>
            <optional>
               <ref name="primary.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <optional>
               <ref name="sortas.attribute"/>
            </optional>
            <ref name="local.primary.attributes"/>
         </interleave>
      </define>

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

   </div>
   <div>
      <db:refname>secondary</db:refname>
      <db:refpurpose/>
      <define name="local.secondary.attributes">
         <empty/>
      </define>

      <define name="secondary.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="secondary.attlist">
         <interleave>
            <optional>
               <ref name="secondary.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <optional>
               <ref name="sortas.attribute"/>
            </optional>
            <ref name="local.secondary.attributes"/>
         </interleave>
      </define>

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

   </div>
   <div>
      <db:refname>tertiary</db:refname>
      <db:refpurpose/>
      <define name="local.tertiary.attributes">
         <empty/>
      </define>

      <define name="tertiary.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="tertiary.attlist">
         <interleave>
            <optional>
               <ref name="tertiary.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <optional>
               <ref name="sortas.attribute"/>
            </optional>
            <ref name="local.tertiary.attributes"/>
         </interleave>
      </define>

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

   </div>
   <div>
      <db:refname>see</db:refname>
      <db:refpurpose/>
      <define name="local.see.attributes">
         <empty/>
      </define>

      <define name="see.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>seealso</db:refname>
      <db:refpurpose/>
      <define name="local.seealso.attributes">
         <empty/>
      </define>

      <define name="seealso.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>index</db:refname>
      <db:refpurpose/>
      <define name="local.index.attributes">
         <empty/>
      </define>

      <define name="index.status.attribute">
         <ref name="status.attribute"/>
      </define>

      <define name="index.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="index.info">
         <ref name="docbook.info"/>
      </define>

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

   </div>
   <div>
      <db:refname>setindex</db:refname>
      <db:refpurpose/>
      <define name="local.setindex.attributes">
         <empty/>
      </define>

      <define name="setindex.status.attribute">
         <ref name="status.attribute"/>
      </define>

      <define name="setindex.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="setindex.info">
         <ref name="docbook.info"/>
      </define>

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

   </div>
   <div>
      <db:refname>indexdiv</db:refname>
      <db:refpurpose/>
      <define name="local.indexdiv.attributes">
         <empty/>
      </define>

      <define name="indexdiv.status.attribute">
         <ref name="status.attribute"/>
      </define>

      <define name="indexdiv.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="indexdiv.info">
         <ref name="docbook.info.titlereq"/>
      </define>

      <define name="db.indexdiv">
         <element name="indexdiv">
            <ref name="indexdiv.attlist"/>
            <ref name="indexdiv.info"/>
            <zeroOrMore>
               <ref name="blocks"/>
            </zeroOrMore>
            <choice>
               <oneOrMore>
                  <ref name="db.indexentry"/>
               </oneOrMore>
               <ref name="db.segmentedlist"/>
            </choice>
         </element>
      </define>

   </div>
   <div>
      <db:refname>indexentry</db:refname>
      <db:refpurpose/>
      <define name="local.indexentry.attributes">
         <empty/>
      </define>

      <define name="indexentry.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="db.indexentry">
         <element name="indexentry">
            <ref name="indexentry.attlist"/>
            <ref name="db.primaryie"/>
            <zeroOrMore>
               <choice>
                  <ref name="db.seeie"/>
                  <ref name="db.seealsoie"/>
               </choice>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="db.secondaryie"/>
               <zeroOrMore>
                  <choice>
                     <ref name="db.seeie"/>
                     <ref name="db.seealsoie"/>
                     <ref name="db.tertiaryie"/>
                  </choice>
               </zeroOrMore>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>primaryie</db:refname>
      <db:refpurpose/>
      <define name="local.primaryie.attributes">
         <empty/>
      </define>

      <define name="primaryie.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="primaryie.attlist">
         <interleave>
            <optional>
               <ref name="primaryie.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <optional>
               <ref name="linkends.attribute"/>
            </optional>
            <ref name="local.primaryie.attributes"/>
         </interleave>
      </define>

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

   </div>
   <div>
      <db:refname>secondaryie</db:refname>
      <db:refpurpose/>
      <define name="local.secondaryie.attributes">
         <empty/>
      </define>

      <define name="secondaryie.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="secondaryie.attlist">
         <interleave>
            <optional>
               <ref name="secondaryie.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <optional>
               <ref name="linkends.attribute"/>
            </optional>
            <ref name="local.secondaryie.attributes"/>
         </interleave>
      </define>

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

   </div>
   <div>
      <db:refname>tertiaryie</db:refname>
      <db:refpurpose/>
      <define name="local.tertiaryie.attributes">
         <empty/>
      </define>

      <define name="tertiaryie.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="tertiaryie.attlist">
         <interleave>
            <optional>
               <ref name="tertiaryie.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <optional>
               <ref name="linkends.attribute"/>
            </optional>
            <ref name="local.tertiaryie.attributes"/>
         </interleave>
      </define>

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

   </div>
   <div>
      <db:refname>seeie</db:refname>
      <db:refpurpose/>
      <define name="local.seeie.attributes">
         <empty/>
      </define>

      <define name="seeie.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>seealsoie</db:refname>
      <db:refpurpose/>
      <define name="local.seealsoie.attributes">
         <empty/>
      </define>

      <define name="seealsoie.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="seealsoie.attlist">
         <interleave>
            <optional>
               <ref name="seealsoie.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <optional>
               <ref name="linkends.attribute"/>
            </optional>
            <ref name="local.seealsoie.attributes"/>
         </interleave>
      </define>

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

   </div>
   <div>
      <db:refname>toc</db:refname>
      <db:refpurpose/>
      <define name="local.toc.attributes">
         <empty/>
      </define>

      <define name="toc.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="toc.info">
         <ref name="docbook.info.titleonly"/>
      </define>

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

   </div>
   <div>
      <db:refname>tocdiv</db:refname>
      <db:refpurpose/>
      <define name="local.tocdiv.attributes">
         <empty/>
      </define>

      <define name="tocdiv.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="tocdiv.attlist">
         <interleave>
            <optional>
               <ref name="tocdiv.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <optional>
               <attribute name="pagenum"/>
            </optional>
            <optional>
               <ref name="linkend.attribute"/>
            </optional>
            <ref name="local.tocdiv.attributes"/>
         </interleave>
      </define>

      <define name="tocdiv.info">
         <ref name="docbook.info"/>
      </define>

      <define name="db.tocdiv">
         <element name="tocdiv">
            <ref name="tocdiv.attlist"/>
            <ref name="tocdiv.info"/>
            <zeroOrMore>
               <ref name="blocks"/>
            </zeroOrMore>
            <oneOrMore>
               <choice>
                  <ref name="db.tocdiv"/>
                  <ref name="db.tocentry"/>
               </choice>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>tocentry</db:refname>
      <db:refpurpose/>
      <define name="local.tocentry.attributes">
         <empty/>
      </define>

      <define name="tocentry.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="tocentry.attlist">
         <interleave>
            <optional>
               <ref name="tocentry.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <optional>
               <attribute name="pagenum"/>
            </optional>
            <optional>
               <ref name="linkend.attribute"/>
            </optional>
            <ref name="local.tocentry.attributes"/>
         </interleave>
      </define>

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

   </div>
   <define name="task.info">
      <ref name="docbook.info.titleonly"/>
   </define>

   <div>
      <db:refname>task</db:refname>
      <db:refpurpose/>
      <define name="local.task.attributes">
         <empty/>
      </define>

      <define name="task.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="db.task">
         <element name="task">
            <ref name="task.attlist"/>
            <ref name="task.info"/>
            <optional>
               <ref name="db.tasksummary"/>
            </optional>
            <optional>
               <ref name="db.taskprerequisites"/>
            </optional>
            <ref name="db.procedure"/>
            <zeroOrMore>
               <ref name="db.example"/>
            </zeroOrMore>
            <optional>
               <ref name="db.taskrelated"/>
            </optional>
         </element>
      </define>

   </div>
   <div>
      <db:refname>tasksummary</db:refname>
      <db:refpurpose/>
      <define name="local.tasksummary.attributes">
         <empty/>
      </define>

      <define name="tasksummary.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="tasksummary.info">
         <ref name="docbook.info.titleonly"/>
      </define>

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

   </div>
   <div>
      <db:refname>taskprerequisites</db:refname>
      <db:refpurpose/>
      <define name="local.taskprerequisites.attributes">
         <empty/>
      </define>

      <define name="taskprerequisites.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="taskprerequisites.info">
         <ref name="docbook.info.titleonly"/>
      </define>

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

   </div>
   <div>
      <db:refname>taskrelated</db:refname>
      <db:refpurpose/>
      <define name="local.taskrelated.attributes">
         <empty/>
      </define>

      <define name="taskrelated.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="taskrelated.info">
         <ref name="docbook.info.titleonly"/>
      </define>

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

   </div>
   <ctrl:other-attribute name="area.units.attrib" enum-name="area.units-enum.attribute" other-name="area.units-other.attributes" xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/"/>

   <define name="area.units-enum.attribute">
      <optional>
         <attribute name="units">
            <choice>
               <value>calspair</value>
               <value>linecolumn</value>
               <value>linecolumnpair</value>
               <value>linerange</value>
            </choice>
         </attribute>
      </optional>
   </define>

   <define name="area.units-other.attributes">
      <optional>
         <attribute name="units">
            <value>other</value>
         </attribute>
      </optional>
      <attribute name="otherunits">
         <data type="NMTOKEN"/>
      </attribute>
   </define>

   <define name="area.units.attrib">
      <choice>
         <ref name="area.units-enum.attribute"/>
         <ref name="area.units-other.attributes"/>
      </choice>
   </define>

   <div>
      <db:refname>calloutlist</db:refname>
      <db:refpurpose>A list of <db:xmltag>callout</db:xmltag>
s</db:refpurpose>
      <define name="local.calloutlist.attributes">
         <empty/>
      </define>

      <define name="calloutlist.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="calloutlist.info">
         <ref name="docbook.info.titleonly"/>
      </define>

      <define name="db.calloutlist">
         <element name="calloutlist">
            <ref name="calloutlist.attlist"/>
            <ref name="calloutlist.info"/>
            <zeroOrMore>
               <ref name="blocks"/>
            </zeroOrMore>
            <oneOrMore>
               <ref name="db.callout"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>callout</db:refname>
      <db:refpurpose/>
      <define name="local.callout.attributes">
         <empty/>
      </define>

      <define name="callout.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="callout.attlist">
         <interleave>
            <optional>
               <ref name="callout.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <attribute name="arearefs">
               <data type="IDREFS"/>
            </attribute>
            <ref name="local.callout.attributes"/>
         </interleave>
      </define>

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

   </div>
   <div>
      <db:refname>programlistingco</db:refname>
      <db:refpurpose/>
      <define name="local.programlistingco.attributes">
         <empty/>
      </define>

      <define name="programlistingco.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="programlistingco.info">
         <ref name="docbook.info.titleforbidden"/>
      </define>

      <define name="db.programlistingco">
         <element name="programlistingco">
            <ref name="programlistingco.attlist"/>
            <ref name="programlistingco.info"/>
            <ref name="db.areaspec"/>
            <ref name="db.programlisting"/>
            <zeroOrMore>
               <ref name="db.calloutlist"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>areaspec</db:refname>
      <db:refpurpose/>
      <define name="local.areaspec.attributes">
         <empty/>
      </define>

      <define name="areaspec.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="areaspec.attlist">
         <interleave>
            <optional>
               <ref name="areaspec.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <ref name="area.units.attrib"/>
            <ref name="local.areaspec.attributes"/>
         </interleave>
      </define>

      <define name="db.areaspec">
         <element name="areaspec">
            <ref name="areaspec.attlist"/>
            <oneOrMore>
               <choice>
                  <ref name="db.area"/>
                  <ref name="db.areaset"/>
               </choice>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>area</db:refname>
      <db:refpurpose/>
      <define name="local.area.attributes">
         <empty/>
      </define>

      <define name="area.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="area.attlist">
         <interleave>
            <optional>
               <ref name="area.role.attribute"/>
            </optional>
            <ref name="common.attributes.idreq"/>
            <ref name="area.units.attrib"/>
            <optional>
               <attribute name="linkends">
                  <data type="IDREFS"/>
               </attribute>
            </optional>
            <optional>
               <attribute name="label"/>
            </optional>
            <attribute name="coords"/>
            <ref name="local.area.attributes"/>
         </interleave>
      </define>

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

   </div>
   <div>
      <db:refname>areaset</db:refname>
      <db:refpurpose/>
      <define name="local.areaset.attributes">
         <empty/>
      </define>

      <define name="areaset.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="areaset.attlist">
         <interleave>
            <optional>
               <ref name="areaset.role.attribute"/>
            </optional>
            <ref name="common.attributes.idreq"/>
            <ref name="area.units.attrib"/>
            <optional>
               <attribute name="label"/>
            </optional>
            <ref name="local.areaset.attributes"/>
         </interleave>
      </define>

      <define name="db.areaset">
         <element name="areaset">
            <ref name="areaset.attlist"/>
            <oneOrMore>
               <ref name="db.area"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>screenco</db:refname>
      <db:refpurpose/>
      <define name="local.screenco.attributes">
         <empty/>
      </define>

      <define name="screenco.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="screenco.info">
         <ref name="docbook.info.titleforbidden"/>
      </define>

      <define name="db.screenco">
         <element name="screenco">
            <ref name="screenco.attlist"/>
            <ref name="screenco.info"/>
            <ref name="db.areaspec"/>
            <ref name="db.screen"/>
            <zeroOrMore>
               <ref name="db.calloutlist"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>mediaobjectco</db:refname>
      <db:refpurpose/>
      <define name="local.mediaobjectco.attributes">
         <empty/>
      </define>

      <define name="mediaobjectco.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="mediaobjectco.info">
         <ref name="docbook.info.titleforbidden"/>
      </define>

      <define name="db.mediaobjectco">
         <element name="mediaobjectco">
            <ref name="mediaobjectco.attlist"/>
            <ref name="mediaobjectco.info"/>
            <ref name="db.imageobjectco"/>
            <zeroOrMore>
               <choice>
                  <ref name="db.imageobjectco"/>
                  <ref name="db.textobject"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>imageobjectco</db:refname>
      <db:refpurpose/>
      <define name="local.imageobjectco.attributes">
         <empty/>
      </define>

      <define name="imageobjectco.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="imageobjectco.info">
         <ref name="docbook.info.titleforbidden"/>
      </define>

      <define name="db.imageobjectco">
         <element name="imageobjectco">
            <ref name="imageobjectco.attlist"/>
            <optional>
               <ref name="imageobjectco.info"/>
            </optional>
            <ref name="db.areaspec"/>
            <ref name="db.imageobject"/>
            <zeroOrMore>
               <ref name="db.calloutlist"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>co</db:refname>
      <db:refpurpose/>
      <define name="local.co.attributes">
         <empty/>
      </define>

      <define name="co.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="co.attlist">
         <interleave>
            <optional>
               <ref name="co.role.attribute"/>
            </optional>
            <ref name="common.attributes.idreq"/>
            <optional>
               <attribute name="linkends">
                  <data type="IDREFS"/>
               </attribute>
            </optional>
            <optional>
               <attribute name="label"/>
            </optional>
            <ref name="local.co.attributes"/>
         </interleave>
      </define>

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

   </div>
   <div>
      <db:refname>coref</db:refname>
      <db:refpurpose/>
      <define name="local.coref.attributes">
         <empty/>
      </define>

      <define name="coref.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="coref.attlist">
         <interleave>
            <optional>
               <ref name="coref.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <attribute name="linkend">
               <data type="IDREF"/>
            </attribute>
            <optional>
               <attribute name="label"/>
            </optional>
            <ref name="local.coref.attributes"/>
         </interleave>
      </define>

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

   </div>
   <div>
      <db:refname>productionset</db:refname>
      <db:refpurpose/>
      <define name="local.productionset.attributes">
         <empty/>
      </define>

      <define name="productionset.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="productionset.info">
         <ref name="docbook.info.titleonly"/>
      </define>

      <define name="db.productionset">
         <element name="productionset">
            <ref name="productionset.attlist"/>
            <ref name="productionset.info"/>
            <oneOrMore>
               <choice>
                  <ref name="db.production"/>
                  <ref name="db.productionrecap"/>
               </choice>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>production</db:refname>
      <db:refpurpose/>
      <define name="local.production.attributes">
         <empty/>
      </define>

      <define name="production.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="production.attlist">
         <interleave>
            <optional>
               <ref name="production.role.attribute"/>
            </optional>
            <ref name="common.attributes.idreq"/>
            <ref name="common.linking.attributes"/>
            <ref name="local.production.attributes"/>
         </interleave>
      </define>

      <define name="db.production">
         <element name="production">
            <ref name="production.attlist"/>
            <ref name="db.lhs"/>
            <ref name="db.rhs"/>
            <zeroOrMore>
               <ref name="db.constraint"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>lhs</db:refname>
      <db:refpurpose/>
      <define name="local.lhs.attributes">
         <empty/>
      </define>

      <define name="lhs.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>rhs</db:refname>
      <db:refpurpose/>
      <define name="local.rhs.attributes">
         <empty/>
      </define>

      <define name="rhs.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="db.rhs">
         <element name="rhs">
            <ref name="rhs.attlist"/>
            <zeroOrMore>
               <choice>
                  <text/>
                  <ref name="db.nonterminal"/>
                  <ref name="db.lineannotation"/>
                  <ref name="db.sbr"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>nonterminal</db:refname>
      <db:refpurpose/>
      <define name="local.nonterminal.attributes">
         <empty/>
      </define>

      <define name="nonterminal.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="nonterminal.attlist">
         <interleave>
            <optional>
               <ref name="nonterminal.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <attribute name="def"/>
            <ref name="local.nonterminal.attributes"/>
         </interleave>
      </define>

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

   </div>
   <div>
      <db:refname>constraint</db:refname>
      <db:refpurpose/>
      <define name="local.constraint.attributes">
         <empty/>
      </define>

      <define name="constraint.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="constraint.attlist">
         <interleave>
            <optional>
               <ref name="constraint.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes.req"/>
            <ref name="local.constraint.attributes"/>
         </interleave>
      </define>

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

   </div>
   <div>
      <db:refname>productionrecap</db:refname>
      <db:refpurpose/>
      <define name="local.productionrecap.attributes">
         <empty/>
      </define>

      <define name="productionrecap.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="productionrecap.attlist">
         <interleave>
            <optional>
               <ref name="productionrecap.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes.req"/>
            <ref name="local.productionrecap.attributes"/>
         </interleave>
      </define>

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

   </div>
   <div>
      <db:refname>constraintdef</db:refname>
      <db:refpurpose/>
      <define name="local.constraintdef.attributes">
         <empty/>
      </define>

      <define name="constraintdef.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="constraintdef.info">
         <ref name="docbook.info.titleonly"/>
      </define>

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

   </div>
   <define name="char.attribute">
      <attribute name="char"/>
   </define>

   <define name="charoff.attribute">
      <attribute name="charoff"/>
   </define>

   <define name="colsep.attribute">
      <attribute name="colsep"/>
   </define>

   <define name="rowsep.attribute">
      <attribute name="rowsep"/>
   </define>

   <define name="align.attribute">
      <attribute name="align">
         <choice>
            <value>center</value>
            <value>char</value>
            <value>justify</value>
            <value>left</value>
            <value>right</value>
         </choice>
      </attribute>
   </define>

   <define name="valign.attribute">
      <attribute name="valign">
         <choice>
            <value>bottom</value>
            <value>middle</value>
            <value>top</value>
         </choice>
      </attribute>
   </define>

   <define name="spanname.attribute">
      <attribute name="spanname"/>
   </define>

   <define name="colname.attribute">
      <attribute name="colname"/>
   </define>

   <div>
      <db:refname>tgroup</db:refname>
      <db:refpurpose/>
      <define name="local.tgroup.attributes">
         <empty/>
      </define>

      <define name="tgroup.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="tgroup.attlist">
         <interleave>
            <optional>
               <ref name="tgroup.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <optional>
               <ref name="char.attribute"/>
            </optional>
            <optional>
               <ref name="charoff.attribute"/>
            </optional>
            <optional>
               <attribute name="tgroupstyle"/>
            </optional>
            <attribute name="cols">
               <data type="integer"/>
            </attribute>
            <optional>
               <ref name="colsep.attribute"/>
            </optional>
            <optional>
               <ref name="rowsep.attribute"/>
            </optional>
            <optional>
               <ref name="align.attribute"/>
            </optional>
            <ref name="local.tgroup.attributes"/>
         </interleave>
      </define>

      <define name="db.tgroup">
         <element name="tgroup">
            <ref name="tgroup.attlist"/>
            <zeroOrMore>
               <ref name="db.colspec"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="db.spanspec"/>
            </zeroOrMore>
            <optional>
               <ref name="cals.thead"/>
            </optional>
            <optional>
               <ref name="cals.tfoot"/>
            </optional>
            <ref name="cals.tbody"/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>colspec</db:refname>
      <db:refpurpose/>
      <define name="local.colspec.attributes">
         <empty/>
      </define>

      <define name="colspec.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="colspec.attlist">
         <interleave>
            <optional>
               <ref name="colspec.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <optional>
               <attribute name="colnum">
                  <data type="integer"/>
               </attribute>
            </optional>
            <optional>
               <ref name="char.attribute"/>
            </optional>
            <optional>
               <ref name="colsep.attribute"/>
            </optional>
            <optional>
               <attribute name="colwidth"/>
            </optional>
            <optional>
               <ref name="charoff.attribute"/>
            </optional>
            <optional>
               <ref name="colname.attribute"/>
            </optional>
            <optional>
               <ref name="rowsep.attribute"/>
            </optional>
            <optional>
               <ref name="align.attribute"/>
            </optional>
            <ref name="local.colspec.attributes"/>
         </interleave>
      </define>

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

   </div>
   <div>
      <db:refname>spanspec</db:refname>
      <db:refpurpose/>
      <define name="local.spanspec.attributes">
         <empty/>
      </define>

      <define name="spanspec.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="spanspec.attlist">
         <interleave>
            <optional>
               <ref name="spanspec.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <attribute name="namest"/>
            <attribute name="nameend"/>
            <ref name="spanname.attribute"/>
            <optional>
               <ref name="char.attribute"/>
            </optional>
            <optional>
               <ref name="colsep.attribute"/>
            </optional>
            <optional>
               <ref name="charoff.attribute"/>
            </optional>
            <optional>
               <ref name="rowsep.attribute"/>
            </optional>
            <optional>
               <ref name="align.attribute"/>
            </optional>
            <ref name="local.spanspec.attributes"/>
         </interleave>
      </define>

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

   </div>
   <div>
      <db:refname>thead</db:refname>
      <db:refpurpose/>
      <define name="local.cals.thead.attributes">
         <empty/>
      </define>

      <define name="cals.thead.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="cals.thead.attlist">
         <interleave>
            <optional>
               <ref name="cals.thead.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <optional>
               <ref name="valign.attribute"/>
            </optional>
            <ref name="local.cals.thead.attributes"/>
         </interleave>
      </define>

      <define name="cals.thead">
         <element name="thead">
            <ref name="cals.thead.attlist"/>
            <zeroOrMore>
               <ref name="db.colspec"/>
            </zeroOrMore>
            <oneOrMore>
               <ref name="db.row"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>tfoot</db:refname>
      <db:refpurpose/>
      <define name="local.cals.tfoot.attributes">
         <empty/>
      </define>

      <define name="cals.tfoot.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="cals.tfoot.attlist">
         <interleave>
            <optional>
               <ref name="cals.tfoot.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <optional>
               <ref name="valign.attribute"/>
            </optional>
            <ref name="local.cals.tfoot.attributes"/>
         </interleave>
      </define>

      <define name="cals.tfoot">
         <element name="tfoot">
            <ref name="cals.tfoot.attlist"/>
            <zeroOrMore>
               <ref name="db.colspec"/>
            </zeroOrMore>
            <oneOrMore>
               <ref name="db.row"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>tbody</db:refname>
      <db:refpurpose/>
      <define name="local.cals.tbody.attributes">
         <empty/>
      </define>

      <define name="cals.tbody.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="cals.tbody.attlist">
         <interleave>
            <optional>
               <ref name="cals.tbody.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <optional>
               <ref name="valign.attribute"/>
            </optional>
            <ref name="local.cals.tbody.attributes"/>
         </interleave>
      </define>

      <define name="cals.tbody">
         <element name="tbody">
            <ref name="cals.tbody.attlist"/>
            <oneOrMore>
               <ref name="db.row"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>row</db:refname>
      <db:refpurpose/>
      <define name="local.row.attributes">
         <empty/>
      </define>

      <define name="row.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="row.attlist">
         <interleave>
            <optional>
               <ref name="row.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <optional>
               <ref name="rowsep.attribute"/>
            </optional>
            <optional>
               <ref name="valign.attribute"/>
            </optional>
            <ref name="local.row.attributes"/>
         </interleave>
      </define>

      <define name="db.row">
         <element name="row">
            <ref name="row.attlist"/>
            <oneOrMore>
               <choice>
                  <ref name="db.entry"/>
                  <ref name="db.entrytbl"/>
               </choice>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>entry</db:refname>
      <db:refpurpose/>
      <define name="local.entry.attributes">
         <empty/>
      </define>

      <define name="entry.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="entry.attlist">
         <interleave>
            <optional>
               <ref name="entry.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <optional>
               <attribute name="nameend"/>
            </optional>
            <optional>
               <ref name="valign.attribute"/>
            </optional>
            <optional>
               <ref name="char.attribute"/>
            </optional>
            <optional>
               <ref name="colsep.attribute"/>
            </optional>
            <optional>
               <ref name="charoff.attribute"/>
            </optional>
            <optional>
               <attribute name="morerows">
                  <data type="integer"/>
               </attribute>
            </optional>
            <optional>
               <attribute name="spanname"/>
            </optional>
            <optional>
               <attribute name="namest"/>
            </optional>
            <optional>
               <ref name="colname.attribute"/>
            </optional>
            <optional>
               <ref name="rowsep.attribute"/>
            </optional>
            <optional>
               <attribute name="rotate"/>
            </optional>
            <optional>
               <ref name="align.attribute"/>
            </optional>
            <ref name="local.entry.attributes"/>
         </interleave>
      </define>

      <define name="db.entry">
         <element name="entry">
            <ref name="entry.attlist"/>
            <choice>
               <zeroOrMore>
                  <ref name="inlines"/>
               </zeroOrMore>
               <zeroOrMore>
                  <ref name="blocks"/>
               </zeroOrMore>
            </choice>
         </element>
      </define>

   </div>
   <div>
      <db:refname>entrytbl</db:refname>
      <db:refpurpose/>
      <define name="local.entrytbl.attributes">
         <empty/>
      </define>

      <define name="entrytbl.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="entrytbl.attlist">
         <interleave>
            <optional>
               <ref name="entrytbl.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <optional>
               <attribute name="nameend"/>
            </optional>
            <optional>
               <ref name="char.attribute"/>
            </optional>
            <optional>
               <ref name="charoff.attribute"/>
            </optional>
            <optional>
               <attribute name="spanname"/>
            </optional>
            <optional>
               <attribute name="namest"/>
            </optional>
            <optional>
               <attribute name="tgroupstyle"/>
            </optional>
            <optional>
               <attribute name="cols">
                  <data type="integer"/>
               </attribute>
            </optional>
            <optional>
               <ref name="colsep.attribute"/>
            </optional>
            <optional>
               <ref name="rowsep.attribute"/>
            </optional>
            <optional>
               <ref name="colname.attribute"/>
            </optional>
            <optional>
               <ref name="align.attribute"/>
            </optional>
            <ref name="local.entrytbl.attributes"/>
         </interleave>
      </define>

      <define name="db.entrytbl">
         <element name="entrytbl">
            <ref name="entrytbl.attlist"/>
            <zeroOrMore>
               <ref name="db.colspec"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="db.spanspec"/>
            </zeroOrMore>
            <optional>
               <ref name="cals.thead"/>
            </optional>
            <ref name="cals.tbody"/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>table</db:refname>
      <db:refpurpose/>
      <define name="local.cals.table.attributes">
         <empty/>
      </define>

      <define name="cals.table.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="cals.table.attlist">
         <interleave>
            <optional>
               <ref name="cals.table.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <optional>
               <attribute name="tabstyle"/>
            </optional>
            <optional>
               <attribute name="orient">
                  <choice>
                     <value>land</value>
                     <value>port</value>
                  </choice>
               </attribute>
            </optional>
            <optional>
               <ref name="colsep.attribute"/>
            </optional>
            <optional>
               <ref name="rowsep.attribute"/>
            </optional>
            <optional>
               <attribute name="frame">
                  <choice>
                     <value>all</value>
                     <value>bottom</value>
                     <value>none</value>
                     <value>sides</value>
                     <value>top</value>
                     <value>topbot</value>
                  </choice>
               </attribute>
            </optional>
            <optional>
               <attribute name="pgwide">
                  <choice>
                     <value>0</value>
                     <value>1</value>
                  </choice>
               </attribute>
            </optional>
            <ref name="local.cals.table.attributes"/>
         </interleave>
      </define>

      <define name="cals.table.info">
         <ref name="docbook.info.titleonlyreq"/>
      </define>

      <define name="cals.table">
         <element name="table">
            <ref name="cals.table.attlist"/>
            <ref name="cals.table.info"/>
            <zeroOrMore>
               <ref name="indexing.inlines"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="db.textobject"/>
            </zeroOrMore>
            <choice>
               <oneOrMore>
                  <ref name="db.mediaobject"/>
               </oneOrMore>
               <oneOrMore>
                  <ref name="db.tgroup"/>
               </oneOrMore>
            </choice>
         </element>
      </define>

   </div>
   <div>
      <db:refname>informaltable</db:refname>
      <db:refpurpose/>
      <define name="local.cals.informaltable.attributes">
         <empty/>
      </define>

      <define name="cals.informaltable.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="cals.informaltable.attlist">
         <interleave>
            <optional>
               <ref name="cals.informaltable.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <optional>
               <attribute name="tabstyle"/>
            </optional>
            <optional>
               <attribute name="orient">
                  <choice>
                     <value>land</value>
                     <value>port</value>
                  </choice>
               </attribute>
            </optional>
            <optional>
               <ref name="colsep.attribute"/>
            </optional>
            <optional>
               <ref name="rowsep.attribute"/>
            </optional>
            <optional>
               <attribute name="frame">
                  <choice>
                     <value>all</value>
                     <value>bottom</value>
                     <value>none</value>
                     <value>sides</value>
                     <value>top</value>
                     <value>topbot</value>
                  </choice>
               </attribute>
            </optional>
            <optional>
               <attribute name="pgwide">
                  <choice>
                     <value>0</value>
                     <value>1</value>
                  </choice>
               </attribute>
            </optional>
            <ref name="local.cals.informaltable.attributes"/>
         </interleave>
      </define>

      <define name="cals.informaltable.info">
         <ref name="docbook.info.titleforbidden"/>
      </define>

      <define name="cals.informaltable">
         <element name="informaltable">
            <ref name="cals.informaltable.attlist"/>
            <ref name="cals.informaltable.info"/>
            <zeroOrMore>
               <ref name="indexing.inlines"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="db.textobject"/>
            </zeroOrMore>
            <choice>
               <oneOrMore>
                  <ref name="db.mediaobject"/>
               </oneOrMore>
               <oneOrMore>
                  <ref name="db.tgroup"/>
               </oneOrMore>
            </choice>
         </element>
      </define>

   </div>
   <define name="html.coreattrs" combine="interleave">
      <optional>
         <attribute name="class"/>
      </optional>
      <optional>
         <attribute name="style"/>
      </optional>
      <optional>
         <attribute name="title"/>
      </optional>
   </define>

   <define name="html.i18n" combine="interleave">
      <optional>
         <attribute name="lang"/>
      </optional>
      <optional>
         <attribute name="dir">
            <choice>
               <value>ltr</value>
               <value>rtl</value>
            </choice>
         </attribute>
      </optional>
   </define>

   <define name="html.events" combine="interleave">
      <optional>
         <attribute name="onclick"/>
      </optional>
      <optional>
         <attribute name="ondblclick"/>
      </optional>
      <optional>
         <attribute name="onmousedown"/>
      </optional>
      <optional>
         <attribute name="onmouseup"/>
      </optional>
      <optional>
         <attribute name="onmouseover"/>
      </optional>
      <optional>
         <attribute name="onmousemove"/>
      </optional>
      <optional>
         <attribute name="onmouseout"/>
      </optional>
      <optional>
         <attribute name="onkeypress"/>
      </optional>
      <optional>
         <attribute name="onkeydown"/>
      </optional>
      <optional>
         <attribute name="onkeyup"/>
      </optional>
   </define>

   <define name="html.attrs" combine="interleave">
      <ref name="html.coreattrs"/>
      <ref name="html.i18n"/>
      <ref name="html.events"/>
   </define>

   <define name="html.cellhalign" combine="interleave">
      <optional>
         <attribute name="align">
            <choice>
               <value>left</value>
               <value>center</value>
               <value>right</value>
               <value>justify</value>
               <value>char</value>
            </choice>
         </attribute>
      </optional>
      <optional>
         <attribute name="char"/>
      </optional>
      <optional>
         <attribute name="charoff"/>
      </optional>
   </define>

   <define name="html.cellvalign" combine="interleave">
      <optional>
         <attribute name="valign">
            <choice>
               <value>top</value>
               <value>middle</value>
               <value>bottom</value>
               <value>baseline</value>
            </choice>
         </attribute>
      </optional>
   </define>

   <define name="html.table.model">
      <ref name="html.caption"/>
      <choice>
         <zeroOrMore>
            <ref name="html.col"/>
         </zeroOrMore>
         <zeroOrMore>
            <ref name="html.colgroup"/>
         </zeroOrMore>
      </choice>
      <optional>
         <ref name="html.thead"/>
      </optional>
      <optional>
         <ref name="html.tfoot"/>
      </optional>
      <choice>
         <oneOrMore>
            <ref name="html.tbody"/>
         </oneOrMore>
         <oneOrMore>
            <ref name="html.tr"/>
         </oneOrMore>
      </choice>
   </define>

   <define name="html.informaltable.model">
      <choice>
         <zeroOrMore>
            <ref name="html.col"/>
         </zeroOrMore>
         <zeroOrMore>
            <ref name="html.colgroup"/>
         </zeroOrMore>
      </choice>
      <optional>
         <ref name="html.thead"/>
      </optional>
      <optional>
         <ref name="html.tfoot"/>
      </optional>
      <choice>
         <oneOrMore>
            <ref name="html.tbody"/>
         </oneOrMore>
         <oneOrMore>
            <ref name="html.tr"/>
         </oneOrMore>
      </choice>
   </define>

   <div>
      <db:refname>table</db:refname>
      <db:refpurpose/>
      <define name="local.html.table.attributes">
         <empty/>
      </define>

      <define name="html.table.attlist">
         <interleave>
            <ref name="html.attrs"/>
            <optional>
               <attribute name="summary"/>
            </optional>
            <optional>
               <attribute name="width"/>
            </optional>
            <optional>
               <attribute name="border"/>
            </optional>
            <optional>
               <attribute name="frame">
                  <choice>
                     <value>void</value>
                     <value>above</value>
                     <value>below</value>
                     <value>hsides</value>
                     <value>lhs</value>
                     <value>rhs</value>
                     <value>vsides</value>
                     <value>box</value>
                     <value>border</value>
                  </choice>
               </attribute>
            </optional>
            <optional>
               <attribute name="rules">
                  <choice>
                     <value>none</value>
                     <value>groups</value>
                     <value>rows</value>
                     <value>cols</value>
                     <value>all</value>
                  </choice>
               </attribute>
            </optional>
            <optional>
               <attribute name="cellspacing"/>
            </optional>
            <optional>
               <attribute name="cellpadding"/>
            </optional>
            <ref name="local.html.table.attributes"/>
         </interleave>
      </define>

      <define name="html.table">
         <element name="table">
            <ref name="html.table.attlist"/>
            <ref name="html.table.model"/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>informaltable</db:refname>
      <db:refpurpose/>
      <define name="local.html.informaltable.attributes">
         <empty/>
      </define>

      <define name="html.informaltable.attlist">
         <interleave>
            <ref name="html.attrs"/>
            <optional>
               <attribute name="summary"/>
            </optional>
            <optional>
               <attribute name="width"/>
            </optional>
            <optional>
               <attribute name="border"/>
            </optional>
            <optional>
               <attribute name="frame">
                  <choice>
                     <value>void</value>
                     <value>above</value>
                     <value>below</value>
                     <value>hsides</value>
                     <value>lhs</value>
                     <value>rhs</value>
                     <value>vsides</value>
                     <value>box</value>
                     <value>border</value>
                  </choice>
               </attribute>
            </optional>
            <optional>
               <attribute name="rules">
                  <choice>
                     <value>none</value>
                     <value>groups</value>
                     <value>rows</value>
                     <value>cols</value>
                     <value>all</value>
                  </choice>
               </attribute>
            </optional>
            <optional>
               <attribute name="cellspacing"/>
            </optional>
            <optional>
               <attribute name="cellpadding"/>
            </optional>
            <ref name="local.html.informaltable.attributes"/>
         </interleave>
      </define>

      <define name="html.informaltable">
         <element name="informaltable">
            <ref name="html.informaltable.attlist"/>
            <ref name="html.informaltable.model"/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>caption</db:refname>
      <db:refpurpose/>
      <define name="local.caption.attributes">
         <empty/>
      </define>

      <define name="html.caption.attlist">
         <interleave>
            <ref name="html.attrs"/>
            <ref name="local.caption.attributes"/>
         </interleave>
      </define>

      <define name="html.caption">
         <element name="caption">
            <ref name="html.caption.attlist"/>
            <text/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>col</db:refname>
      <db:refpurpose/>
      <define name="local.col.attributes">
         <empty/>
      </define>

      <define name="html.col.attlist">
         <interleave>
            <ref name="html.attrs"/>
            <optional>
               <attribute name="span"/>
            </optional>
            <optional>
               <attribute name="width"/>
            </optional>
            <ref name="html.cellhalign"/>
            <ref name="html.cellvalign"/>
            <ref name="local.col.attributes"/>
         </interleave>
      </define>

      <define name="html.col">
         <element name="col">
            <ref name="html.col.attlist"/>
            <empty/>
         </element>
      </define>

   </div>
   <div>
      <db:refname>colgroup</db:refname>
      <db:refpurpose/>
      <define name="local.colgroup.attributes">
         <empty/>
      </define>

      <define name="html.colgroup.attlist">
         <interleave>
            <ref name="html.attrs"/>
            <optional>
               <attribute name="span"/>
            </optional>
            <optional>
               <attribute name="width"/>
            </optional>
            <ref name="html.cellhalign"/>
            <ref name="html.cellvalign"/>
            <ref name="local.colgroup.attributes"/>
         </interleave>
      </define>

      <define name="html.colgroup">
         <element name="colgroup">
            <ref name="html.colgroup.attlist"/>
            <zeroOrMore>
               <ref name="html.col"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>thead</db:refname>
      <db:refpurpose/>
      <define name="local.html.thead.attributes">
         <empty/>
      </define>

      <define name="html.thead.attlist">
         <interleave>
            <ref name="html.attrs"/>
            <ref name="html.cellhalign"/>
            <ref name="html.cellvalign"/>
            <ref name="local.html.thead.attributes"/>
         </interleave>
      </define>

      <define name="html.thead">
         <element name="thead">
            <ref name="html.thead.attlist"/>
            <oneOrMore>
               <ref name="html.tr"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>tfoot</db:refname>
      <db:refpurpose/>
      <define name="local.html.tfoot.attributes">
         <empty/>
      </define>

      <define name="html.tfoot.attlist">
         <interleave>
            <ref name="html.attrs"/>
            <ref name="html.cellhalign"/>
            <ref name="html.cellvalign"/>
            <ref name="local.html.tfoot.attributes"/>
         </interleave>
      </define>

      <define name="html.tfoot">
         <element name="tfoot">
            <ref name="html.tfoot.attlist"/>
            <oneOrMore>
               <ref name="html.tr"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>tbody</db:refname>
      <db:refpurpose/>
      <define name="local.html.tbody.attributes">
         <empty/>
      </define>

      <define name="html.tbody.attlist">
         <interleave>
            <ref name="html.attrs"/>
            <ref name="html.cellhalign"/>
            <ref name="html.cellvalign"/>
            <ref name="local.html.tbody.attributes"/>
         </interleave>
      </define>

      <define name="html.tbody">
         <element name="tbody">
            <ref name="html.tbody.attlist"/>
            <oneOrMore>
               <ref name="html.tr"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>tr</db:refname>
      <db:refpurpose/>
      <define name="local.tr.attributes">
         <empty/>
      </define>

      <define name="html.tr.attlist">
         <interleave>
            <ref name="html.attrs"/>
            <ref name="html.cellhalign"/>
            <ref name="html.cellvalign"/>
            <ref name="local.tr.attributes"/>
         </interleave>
      </define>

      <define name="html.tr">
         <element name="tr">
            <ref name="html.tr.attlist"/>
            <oneOrMore>
               <choice>
                  <ref name="html.th"/>
                  <ref name="html.td"/>
               </choice>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>th</db:refname>
      <db:refpurpose/>
      <define name="local.th.attributes">
         <empty/>
      </define>

      <define name="html.th.attlist">
         <interleave>
            <ref name="html.attrs"/>
            <optional>
               <attribute name="abbr"/>
            </optional>
            <optional>
               <attribute name="axis"/>
            </optional>
            <optional>
               <attribute name="headers"/>
            </optional>
            <optional>
               <attribute name="scope"/>
            </optional>
            <optional>
               <attribute name="rowspan"/>
            </optional>
            <optional>
               <attribute name="colspan"/>
            </optional>
            <ref name="html.cellhalign"/>
            <ref name="html.cellvalign"/>
            <ref name="local.th.attributes"/>
         </interleave>
      </define>

      <define name="html.th">
         <element name="th">
            <ref name="html.th.attlist"/>
            <choice>
               <zeroOrMore>
                  <ref name="inlines"/>
               </zeroOrMore>
               <zeroOrMore>
                  <ref name="blocks"/>
               </zeroOrMore>
            </choice>
         </element>
      </define>

   </div>
   <div>
      <db:refname>td</db:refname>
      <db:refpurpose/>
      <define name="local.td.attributes">
         <empty/>
      </define>

      <define name="html.td.attlist">
         <interleave>
            <ref name="html.attrs"/>
            <optional>
               <attribute name="abbr"/>
            </optional>
            <optional>
               <attribute name="axis"/>
            </optional>
            <optional>
               <attribute name="headers"/>
            </optional>
            <optional>
               <attribute name="scope"/>
            </optional>
            <optional>
               <attribute name="rowspan"/>
            </optional>
            <optional>
               <attribute name="colspan"/>
            </optional>
            <ref name="html.cellhalign"/>
            <ref name="html.cellvalign"/>
            <ref name="local.td.attributes"/>
         </interleave>
      </define>

      <define name="html.td">
         <element name="td">
            <ref name="html.td.attlist"/>
            <choice>
               <zeroOrMore>
                  <ref name="inlines"/>
               </zeroOrMore>
               <zeroOrMore>
                  <ref name="blocks"/>
               </zeroOrMore>
            </choice>
         </element>
      </define>

   </div>
   <div>
      <db:refname>msgset</db:refname>
      <db:refpurpose/>
      <define name="local.msgset.attributes">
         <empty/>
      </define>

      <define name="msgset.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="msgset.info">
         <ref name="docbook.info.titleonly"/>
      </define>

      <define name="db.msgset">
         <element name="msgset">
            <ref name="msgset.attlist"/>
            <ref name="msgset.info"/>
            <choice>
               <oneOrMore>
                  <ref name="db.msgentry"/>
               </oneOrMore>
               <oneOrMore>
                  <ref name="db.simplemsgentry"/>
               </oneOrMore>
            </choice>
         </element>
      </define>

   </div>
   <div>
      <db:refname>msgentry</db:refname>
      <db:refpurpose/>
      <define name="local.msgentry.attributes">
         <empty/>
      </define>

      <define name="msgentry.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="db.msgentry">
         <element name="msgentry">
            <ref name="msgentry.attlist"/>
            <oneOrMore>
               <ref name="db.msg"/>
            </oneOrMore>
            <optional>
               <ref name="db.msginfo"/>
            </optional>
            <zeroOrMore>
               <ref name="db.msgexplan"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>simplemsgentry</db:refname>
      <db:refpurpose/>
      <define name="local.simplemsgentry.attributes">
         <empty/>
      </define>

      <define name="simplemsgentry.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="simplemsgentry.attlist">
         <interleave>
            <optional>
               <ref name="simplemsgentry.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <attribute name="audience"/>
            <attribute name="origin"/>
            <attribute name="level"/>
            <ref name="local.simplemsgentry.attributes"/>
         </interleave>
      </define>

      <define name="db.simplemsgentry">
         <element name="simplemsgentry">
            <ref name="simplemsgentry.attlist"/>
            <ref name="db.msgtext"/>
            <oneOrMore>
               <ref name="db.msgexplan"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>msg</db:refname>
      <db:refpurpose/>
      <define name="local.msg.attributes">
         <empty/>
      </define>

      <define name="msg.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="msg.info">
         <ref name="docbook.info.titleonly"/>
      </define>

      <define name="db.msg">
         <element name="msg">
            <ref name="msg.attlist"/>
            <ref name="msg.info"/>
            <ref name="db.msgmain"/>
            <zeroOrMore>
               <choice>
                  <ref name="db.msgsub"/>
                  <ref name="db.msgrel"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>msgmain</db:refname>
      <db:refpurpose/>
      <define name="local.msgmain.attributes">
         <empty/>
      </define>

      <define name="msgmain.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="msgmain.info">
         <ref name="docbook.info.titleonly"/>
      </define>

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

   </div>
   <div>
      <db:refname>msgsub</db:refname>
      <db:refpurpose/>
      <define name="local.msgsub.attributes">
         <empty/>
      </define>

      <define name="msgsub.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="msgsub.info">
         <ref name="docbook.info.titleonly"/>
      </define>

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

   </div>
   <div>
      <db:refname>msgrel</db:refname>
      <db:refpurpose/>
      <define name="local.msgrel.attributes">
         <empty/>
      </define>

      <define name="msgrel.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="msgrel.info">
         <ref name="docbook.info.titleonly"/>
      </define>

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

   </div>
   <div>
      <db:refname>msgtext</db:refname>
      <db:refpurpose/>
      <define name="local.msgtext.attributes">
         <empty/>
      </define>

      <define name="msgtext.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>msginfo</db:refname>
      <db:refpurpose/>
      <define name="local.msginfo.attributes">
         <empty/>
      </define>

      <define name="msginfo.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="db.msginfo">
         <element name="msginfo">
            <ref name="msginfo.attlist"/>
            <zeroOrMore>
               <choice>
                  <ref name="db.msglevel"/>
                  <ref name="db.msgorig"/>
                  <ref name="db.msgaud"/>
               </choice>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>msglevel</db:refname>
      <db:refpurpose/>
      <define name="local.msglevel.attributes">
         <empty/>
      </define>

      <define name="msglevel.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>msgorig</db:refname>
      <db:refpurpose/>
      <define name="local.msgorig.attributes">
         <empty/>
      </define>

      <define name="msgorig.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>msgaud</db:refname>
      <db:refpurpose/>
      <define name="local.msgaud.attributes">
         <empty/>
      </define>

      <define name="msgaud.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <div>
      <db:refname>msgexplan</db:refname>
      <db:refpurpose/>
      <define name="local.msgexplan.attributes">
         <empty/>
      </define>

      <define name="msgexplan.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="msgexplan.info">
         <ref name="docbook.info.titleonly"/>
      </define>

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

   </div>
   <div>
      <db:refname>qandaset</db:refname>
      <db:refpurpose/>
      <define name="local.qandaset.attributes">
         <empty/>
      </define>

      <define name="qandaset.role.attribute">
         <attribute name="role"/>
      </define>

      <define name="qandaset.attlist">
         <interleave>
            <optional>
               <ref name="qandaset.role.attribute"/>
            </optional>
            <ref name="common.attributes"/>
            <ref name="common.linking.attributes"/>
            <optional>
               <attribute name="defaultlabel">
                  <choice>
                     <value>none</value>
                     <value>number</value>
                     <value>qanda</value>
                  </choice>
               </attribute>
            </optional>
            <ref name="local.qandaset.attributes"/>
         </interleave>
      </define>

      <define name="qandaset.info">
         <ref name="docbook.info.titleonly"/>
      </define>

      <define name="db.qandaset">
         <element name="qandaset">
            <ref name="qandaset.attlist"/>
            <ref name="qandaset.info"/>
            <zeroOrMore>
               <ref name="blocks"/>
            </zeroOrMore>
            <choice>
               <oneOrMore>
                  <ref name="db.qandadiv"/>
               </oneOrMore>
               <oneOrMore>
                  <ref name="db.qandaentry"/>
               </oneOrMore>
            </choice>
         </element>
      </define>

   </div>
   <div>
      <db:refname>qandadiv</db:refname>
      <db:refpurpose/>
      <define name="local.qandadiv.attributes">
         <empty/>
      </define>

      <define name="qandadiv.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="qandadiv.info">
         <ref name="docbook.info.titleonly"/>
      </define>

      <define name="db.qandadiv">
         <element name="qandadiv">
            <ref name="qandadiv.attlist"/>
            <ref name="qandadiv.info"/>
            <zeroOrMore>
               <ref name="blocks"/>
            </zeroOrMore>
            <choice>
               <oneOrMore>
                  <ref name="db.qandadiv"/>
               </oneOrMore>
               <oneOrMore>
                  <ref name="db.qandaentry"/>
               </oneOrMore>
            </choice>
         </element>
      </define>

   </div>
   <div>
      <db:refname>qandaentry</db:refname>
      <db:refpurpose/>
      <define name="local.qandaentry.attributes">
         <empty/>
      </define>

      <define name="qandaentry.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="qandaentry.info">
         <ref name="docbook.info.titleforbidden"/>
      </define>

      <define name="db.qandaentry">
         <element name="qandaentry">
            <ref name="qandaentry.attlist"/>
            <ref name="qandaentry.info"/>
            <ref name="db.question"/>
            <zeroOrMore>
               <ref name="db.answer"/>
            </zeroOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>question</db:refname>
      <db:refpurpose/>
      <define name="local.question.attributes">
         <empty/>
      </define>

      <define name="question.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="db.question">
         <element name="question">
            <ref name="question.attlist"/>
            <optional>
               <ref name="db.label"/>
            </optional>
            <oneOrMore>
               <ref name="blocks"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>answer</db:refname>
      <db:refpurpose/>
      <define name="local.answer.attributes">
         <empty/>
      </define>

      <define name="answer.role.attribute">
         <attribute name="role"/>
      </define>

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

      <define name="db.answer">
         <element name="answer">
            <ref name="answer.attlist"/>
            <optional>
               <ref name="db.label"/>
            </optional>
            <oneOrMore>
               <ref name="blocks"/>
            </oneOrMore>
         </element>
      </define>

   </div>
   <div>
      <db:refname>label</db:refname>
      <db:refpurpose/>
      <define name="local.label.attributes">
         <empty/>
      </define>

      <define name="label.role.attribute">
         <attribute name="role"/>
      </define>

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

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

   </div>
   <define name="any.mml">
      <element>
         <nsName ns="http://www.w3.org/1998/Math/MathML"/>
         <zeroOrMore>
            <ref name="anyAttribute"/>
         </zeroOrMore>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="any.mml"/>
            </choice>
         </zeroOrMore>
      </element>
   </define>

   <define name="any.svg">
      <element>
         <nsName ns="http://www.w3.org/2000/svg"/>
         <zeroOrMore>
            <ref name="anyAttribute"/>
         </zeroOrMore>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="any.svg"/>
            </choice>
         </zeroOrMore>
      </element>
   </define>

</grammar>
