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

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

   <start>
      <choice>
         <ref name="db.set"/>
         <ref name="db.setindex"/>
         <ref name="db.book"/>
         <ref name="divisions"/>
         <ref name="components"/>
         <ref name="navigation.components"/>
         <ref name="db.refentry"/>
         <ref name="db.section"/>
         <ref name="db.para"/>
      </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>
         <ref name="db.toc"/>
         <ref name="db.index"/>
         <ref name="db.glossary"/>
         <ref name="db.bibliography"/>
      </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="set.status.attrib">
      <optional>
         <ref name="status.attribute"/>
      </optional>
   </define>

   <define name="set.label.attrib">
      <optional>
         <ref name="label.attribute"/>
      </optional>
   </define>

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

   <define name="set.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.set.attrib">
      <empty/>
   </define>

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

   <define name="db.set">
      <element name="set">
         <ref name="set.attlist"/>
         <ref name="set.info"/>
         <optional>
            <ref name="db.toc"/>
         </optional>
         <oneOrMore>
            <choice>
               <ref name="db.set"/>
               <ref name="db.book"/>
            </choice>
         </oneOrMore>
         <optional>
            <ref name="db.setindex"/>
         </optional>
      </element>
   </define>

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

   <define name="book.label.attrib">
      <optional>
         <ref name="label.attribute"/>
      </optional>
   </define>

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

   <define name="book.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.book.attrib">
      <empty/>
   </define>

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

   <define name="db.book">
      <element name="book">
         <ref name="book.attlist"/>
         <ref name="book.info"/>
         <oneOrMore>
            <choice>
               <ref name="navigation.components"/>
               <ref name="components"/>
               <ref name="divisions"/>
            </choice>
         </oneOrMore>
      </element>
   </define>

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

   <define name="dedication.label.attrib">
      <optional>
         <ref name="label.attribute"/>
      </optional>
   </define>

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

   <define name="dedication.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.dedication.attrib">
      <empty/>
   </define>

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

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

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

   <define name="colophon.label.attrib">
      <optional>
         <ref name="label.attribute"/>
      </optional>
   </define>

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

   <define name="colophon.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.colophon.attrib">
      <empty/>
   </define>

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

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

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

   <define name="toc.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.toc.attrib">
      <empty/>
   </define>

   <define name="toc.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="toc.role.attrib"/>
      <ref name="local.toc.attrib"/>
   </define>

   <define name="db.toc">
      <element name="toc">
         <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>

   <define name="tocdiv.pagenum.attrib">
      <optional>
         <ref name="pagenum.attribute"/>
      </optional>
   </define>

   <define name="tocdiv.linkend.attrib">
      <optional>
         <ref name="linkend.attribute"/>
      </optional>
   </define>

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

   <define name="tocdiv.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.tocdiv.attrib">
      <empty/>
   </define>

   <define name="tocdiv.attlist">
      <ref name="common.attributes"/>
      <ref name="tocdiv.role.attrib"/>
      <ref name="tocdiv.pagenum.attrib"/>
      <ref name="tocdiv.linkend.attrib"/>
      <ref name="local.tocdiv.attrib"/>
   </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>

   <define name="tocentry.pagenum.attrib">
      <optional>
         <ref name="pagenum.attribute"/>
      </optional>
   </define>

   <define name="tocentry.linkend.attrib">
      <optional>
         <ref name="linkend.attribute"/>
      </optional>
   </define>

   <define name="tocentry.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.tocentry.attrib">
      <empty/>
   </define>

   <define name="tocentry.attlist">
      <ref name="common.attributes"/>
      <ref name="tocentry.role.attrib"/>
      <ref name="tocentry.pagenum.attrib"/>
      <ref name="tocentry.linkend.attrib"/>
      <ref name="local.tocentry.attrib"/>
   </define>

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

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

   <define name="appendix.label.attrib">
      <optional>
         <ref name="label.attribute"/>
      </optional>
   </define>

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

   <define name="appendix.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.appendix.attrib">
      <empty/>
   </define>

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

   <define name="db.appendix">
      <element name="appendix">
         <ref name="appendix.attlist"/>
         <ref name="appendix.info"/>
         <ref name="component.contentmodel"/>
      </element>
   </define>

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

   <define name="chapter.label.attrib">
      <optional>
         <ref name="label.attribute"/>
      </optional>
   </define>

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

   <define name="chapter.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.chapter.attrib">
      <empty/>
   </define>

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

   <define name="db.chapter">
      <element name="chapter">
         <ref name="chapter.attlist"/>
         <ref name="chapter.info"/>
         <ref name="component.contentmodel"/>
      </element>
   </define>

   <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>

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

   <define name="part.label.attrib">
      <optional>
         <ref name="label.attribute"/>
      </optional>
   </define>

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

   <define name="part.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.part.attrib">
      <empty/>
   </define>

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

   <define name="db.part">
      <element name="part">
         <ref name="part.attlist"/>
         <ref name="part.info"/>
         <optional>
            <ref name="db.partintro"/>
         </optional>
         <oneOrMore>
            <ref name="part.components"/>
         </oneOrMore>
      </element>
   </define>

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

   <define name="preface.label.attrib">
      <optional>
         <ref name="label.attribute"/>
      </optional>
   </define>

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

   <define name="preface.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.preface.attrib">
      <empty/>
   </define>

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

   <define name="db.preface">
      <element name="preface">
         <ref name="preface.attlist"/>
         <ref name="preface.info"/>
         <ref name="component.contentmodel"/>
      </element>
   </define>

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

   <define name="partintro.label.attrib">
      <optional>
         <ref name="label.attribute"/>
      </optional>
   </define>

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

   <define name="partintro.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.partintro.attrib">
      <empty/>
   </define>

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

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

   <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>

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

   <define name="section.label.attrib">
      <optional>
         <ref name="label.attribute"/>
      </optional>
   </define>

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

   <define name="section.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.section.attrib">
      <empty/>
   </define>

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

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

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

   <define name="simplesect.label.attrib">
      <optional>
         <ref name="label.attribute"/>
      </optional>
   </define>

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

   <define name="simplesect.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.simplesect.attrib">
      <empty/>
   </define>

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

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

   <define name="bibliography.status.attrib">
      <optional>
         <ref name="status.attribute"/>
      </optional>
   </define>

   <define name="bibliography.label.attrib">
      <optional>
         <ref name="label.attribute"/>
      </optional>
   </define>

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

   <define name="bibliography.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.bibliography.attrib">
      <empty/>
   </define>

   <define name="bibliography.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="bibliography.role.attrib"/>
      <ref name="bibliography.status.attrib"/>
      <ref name="bibliography.label.attrib"/>
      <ref name="local.bibliography.attrib"/>
   </define>

   <define name="db.bibliography">
      <element name="bibliography">
         <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>

   <define name="bibliodiv.status.attrib">
      <optional>
         <ref name="status.attribute"/>
      </optional>
   </define>

   <define name="bibliodiv.label.attrib">
      <optional>
         <ref name="label.attribute"/>
      </optional>
   </define>

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

   <define name="bibliodiv.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.bibliodiv.attrib">
      <empty/>
   </define>

   <define name="bibliodiv.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="bibliodiv.role.attrib"/>
      <ref name="bibliodiv.status.attrib"/>
      <ref name="bibliodiv.label.attrib"/>
      <ref name="local.bibliodiv.attrib"/>
   </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>

   <define name="glossary.status.attrib">
      <optional>
         <ref name="status.attribute"/>
      </optional>
   </define>

   <define name="glossary.label.attrib">
      <optional>
         <ref name="label.attribute"/>
      </optional>
   </define>

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

   <define name="glossary.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.glossary.attrib">
      <empty/>
   </define>

   <define name="glossary.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="glossary.role.attrib"/>
      <ref name="glossary.status.attrib"/>
      <ref name="glossary.label.attrib"/>
      <ref name="local.glossary.attrib"/>
   </define>

   <define name="db.glossary">
      <element name="glossary">
         <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>

   <define name="glossdiv.status.attrib">
      <optional>
         <ref name="status.attribute"/>
      </optional>
   </define>

   <define name="glossdiv.label.attrib">
      <optional>
         <ref name="label.attribute"/>
      </optional>
   </define>

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

   <define name="glossdiv.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.glossdiv.attrib">
      <empty/>
   </define>

   <define name="glossdiv.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="glossdiv.role.attrib"/>
      <ref name="glossdiv.status.attrib"/>
      <ref name="glossdiv.label.attrib"/>
      <ref name="local.glossdiv.attrib"/>
   </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>

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

   <define name="index.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.index.attrib">
      <empty/>
   </define>

   <define name="index.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="index.role.attrib"/>
      <ref name="local.index.attrib"/>
   </define>

   <define name="db.index">
      <element name="index">
         <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>

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

   <define name="setindex.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.setindex.attrib">
      <empty/>
   </define>

   <define name="setindex.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="setindex.role.attrib"/>
      <ref name="local.setindex.attrib"/>
   </define>

   <define name="db.setindex">
      <element name="setindex">
         <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>

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

   <define name="indexdiv.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.indexdiv.attrib">
      <empty/>
   </define>

   <define name="indexdiv.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="indexdiv.role.attrib"/>
      <ref name="local.indexdiv.attrib"/>
   </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>

   <define name="indexentry.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.indexentry.attrib">
      <empty/>
   </define>

   <define name="indexentry.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="indexentry.role.attrib"/>
      <ref name="local.indexentry.attrib"/>
   </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>

   <define name="primaryie.linkends.attrib">
      <optional>
         <ref name="linkends.attribute"/>
      </optional>
   </define>

   <define name="primaryie.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.primaryie.attrib">
      <empty/>
   </define>

   <define name="primaryie.attlist">
      <ref name="common.attributes"/>
      <ref name="primaryie.role.attrib"/>
      <ref name="primaryie.linkends.attrib"/>
      <ref name="local.primaryie.attrib"/>
   </define>

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

   <define name="secondaryie.linkends.attrib">
      <optional>
         <ref name="linkends.attribute"/>
      </optional>
   </define>

   <define name="secondaryie.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.secondaryie.attrib">
      <empty/>
   </define>

   <define name="secondaryie.attlist">
      <ref name="common.attributes"/>
      <ref name="secondaryie.role.attrib"/>
      <ref name="secondaryie.linkends.attrib"/>
      <ref name="local.secondaryie.attrib"/>
   </define>

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

   <define name="tertiaryie.linkends.attrib">
      <optional>
         <ref name="linkends.attribute"/>
      </optional>
   </define>

   <define name="tertiaryie.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.tertiaryie.attrib">
      <empty/>
   </define>

   <define name="tertiaryie.attlist">
      <ref name="common.attributes"/>
      <ref name="tertiaryie.role.attrib"/>
      <ref name="tertiaryie.linkends.attrib"/>
      <ref name="local.tertiaryie.attrib"/>
   </define>

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

   <define name="seeie.linkend.attrib">
      <optional>
         <ref name="linkend.attribute"/>
      </optional>
   </define>

   <define name="seeie.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.seeie.attrib">
      <empty/>
   </define>

   <define name="seeie.attlist">
      <ref name="common.attributes"/>
      <ref name="seeie.role.attrib"/>
      <ref name="seeie.linkend.attrib"/>
      <ref name="local.seeie.attrib"/>
   </define>

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

   <define name="seealsoie.linkends.attrib">
      <optional>
         <ref name="linkends.attribute"/>
      </optional>
   </define>

   <define name="seealsoie.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.seealsoie.attrib">
      <empty/>
   </define>

   <define name="seealsoie.attlist">
      <ref name="common.attributes"/>
      <ref name="seealsoie.role.attrib"/>
      <ref name="seealsoie.linkends.attrib"/>
      <ref name="local.seealsoie.attrib"/>
   </define>

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

   <define name="ackno.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.ackno.attrib">
      <empty/>
   </define>

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

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

   <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>

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

   <define name="article.label.attrib">
      <optional>
         <ref name="label.attribute"/>
      </optional>
   </define>

   <define name="article.class.attrib">
      <optional>
         <attribute name="class">
            <choice>
               <value>faq</value>
               <value>journalarticle</value>
               <value>productsheet</value>
               <value>specification</value>
               <value>techreport</value>
               <value>whitepaper</value>
            </choice>
         </attribute>
      </optional>
   </define>

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

   <define name="article.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.article.attrib">
      <empty/>
   </define>

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

   <define name="db.article">
      <element name="article">
         <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>

   <define name="reference.status.attrib">
      <optional>
         <ref name="status.attribute"/>
      </optional>
   </define>

   <define name="reference.label.attrib">
      <optional>
         <ref name="label.attribute"/>
      </optional>
   </define>

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

   <define name="reference.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.reference.attrib">
      <empty/>
   </define>

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

   <define name="db.reference">
      <element name="reference">
         <ref name="reference.attlist"/>
         <ref name="reference.info"/>
         <optional>
            <ref name="db.partintro"/>
         </optional>
         <oneOrMore>
            <ref name="db.refentry"/>
         </oneOrMore>
      </element>
   </define>

   <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>

   <define name="refentry.status.attrib">
      <optional>
         <ref name="status.attribute"/>
      </optional>
   </define>

   <define name="refentry.label.attrib">
      <optional>
         <ref name="label.attribute"/>
      </optional>
   </define>

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

   <define name="refentry.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.refentry.attrib">
      <empty/>
   </define>

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

   <define name="db.refentry">
      <element name="refentry">
         <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>

   <define name="refmeta.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.refmeta.attrib">
      <empty/>
   </define>

   <define name="refmeta.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="refmeta.role.attrib"/>
      <ref name="local.refmeta.attrib"/>
   </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>

   <define name="refmiscinfo.class.attrib">
      <attribute name="class"/>
   </define>

   <define name="refmiscinfo.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.refmiscinfo.attrib">
      <empty/>
   </define>

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

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

   <define name="refnamediv.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.refnamediv.attrib">
      <empty/>
   </define>

   <define name="refnamediv.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="refnamediv.role.attrib"/>
      <ref name="local.refnamediv.attrib"/>
   </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>

   <define name="refdescriptor.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.refdescriptor.attrib">
      <empty/>
   </define>

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

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

   <define name="refname.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.refname.attrib">
      <empty/>
   </define>

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

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

   <define name="refpurpose.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.refpurpose.attrib">
      <empty/>
   </define>

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

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

   <define name="refclass.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.refclass.attrib">
      <empty/>
   </define>

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

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

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

   <define name="refsynopsisdiv.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.refsynopsisdiv.attrib">
      <empty/>
   </define>

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

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

   <define name="refsection.status.attrib">
      <optional>
         <ref name="status.attribute"/>
      </optional>
   </define>

   <define name="refsection.label.attrib">
      <optional>
         <ref name="label.attribute"/>
      </optional>
   </define>

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

   <define name="refsection.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.refsection.attrib">
      <empty/>
   </define>

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

   <define name="db.refsection">
      <element name="refsection">
         <ref name="refsection.attlist"/>
         <ref name="refsection.info"/>
         <ref name="blocks.or.refsections"/>
      </element>
   </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="role.attribute">
      <attribute name="role"/>
   </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="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>
      <ref name="effectivity.attributes"/>
   </define>

   <define name="common.attrib.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>
      <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="relation.attribute">
      <optional>
         <attribute name="relation"/>
      </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.attribute" 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>

   <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">
      <attribute name="class">
         <value>other</value>
      </attribute>
      <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="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="ubiq.inlines">
      <choice>
         <ref name="db.inlinemediaobject"/>
         <ref name="db.anchor"/>
         <ref name="db.indexterm"/>
         <ref name="db.remark"/>
      </choice>
   </define>

   <define name="text.phrase.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.text.phrase.attrib">
      <empty/>
   </define>

   <define name="text.phrase.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="text.phrase.role.attrib"/>
      <ref name="local.text.phrase.attrib"/>
   </define>

   <define name="text.phrase">
      <element name="phrase">
         <ref name="text.phrase.attlist"/>
         <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>
         <ref name="publishing.inlines"/>
         <ref name="product.inlines"/>
         <ref name="bibliography.inlines"/>
         <ref name="glossary.inlines"/>
         <ref name="graphic.inlines"/>
         <ref name="indexing.inlines"/>
         <ref name="link.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.xmltag"/>
         <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="glossary.inlines">
      <choice>
         <ref name="db.firstterm"/>
         <ref name="db.glossterm"/>
      </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">
      <ref name="db.indexterm"/>
   </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>
         <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.indexterm"/>
         <ref name="db.bridgehead"/>
         <ref name="db.remark"/>
         <ref name="db.revhistory"/>
      </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.qandaset"/>
            <ref name="db.glosslist"/>
            <ref name="db.segmentedlist"/>
         </choice>
         <ref name="db.calloutlist"/>
      </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>

   <define name="title.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.title.attrib">
      <empty/>
   </define>

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

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

   <define name="titleabbrev.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.titleabbrev.attrib">
      <empty/>
   </define>

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

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

   <define name="subtitle.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.subtitle.attrib">
      <empty/>
   </define>

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

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

   <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>
         <ref name="db.biblioid"/>
         <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.itermset"/>
         <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.bibliomisc"/>
         <ref name="db.bibliomset"/>
         <ref name="db.bibliorelation"/>
         <ref name="db.biblioset"/>
         <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>
   </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="biblioentry.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.biblioentry.attrib">
      <empty/>
   </define>

   <define name="biblioentry.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="biblioentry.role.attrib"/>
      <ref name="local.biblioentry.attrib"/>
   </define>

   <define name="db.biblioentry">
      <element name="biblioentry">
         <ref name="biblioentry.attlist"/>
         <oneOrMore>
            <ref name="bibliographic.elements"/>
         </oneOrMore>
      </element>
   </define>

   <define name="bibliomixed.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.bibliomixed.attrib">
      <empty/>
   </define>

   <define name="bibliomixed.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="bibliomixed.role.attrib"/>
      <ref name="local.bibliomixed.attrib"/>
   </define>

   <define name="db.bibliomixed">
      <element name="bibliomixed">
         <ref name="bibliomixed.attlist"/>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="bibliographic.elements"/>
            </choice>
         </zeroOrMore>
      </element>
   </define>

   <define name="info.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.info.attrib">
      <empty/>
   </define>

   <define name="info.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="info.role.attrib"/>
      <ref name="local.info.attrib"/>
   </define>

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

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

   <define name="local.info.titlereq.attrib">
      <empty/>
   </define>

   <define name="info.titlereq.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="info.titlereq.role.attrib"/>
      <ref name="local.info.titlereq.attrib"/>
   </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>

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

   <define name="local.info.titleonly.attrib">
      <empty/>
   </define>

   <define name="info.titleonly.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="info.titleonly.role.attrib"/>
      <ref name="local.info.titleonly.attrib"/>
   </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>

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

   <define name="local.info.titleonlyreq.attrib">
      <empty/>
   </define>

   <define name="info.titleonlyreq.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="info.titleonlyreq.role.attrib"/>
      <ref name="local.info.titleonlyreq.attrib"/>
   </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>

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

   <define name="local.info.titleforbidden.attrib">
      <empty/>
   </define>

   <define name="info.titleforbidden.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="info.titleforbidden.role.attrib"/>
      <ref name="local.info.titleforbidden.attrib"/>
   </define>

   <define name="db.info.titleforbidden">
      <element name="info">
         <ref name="info.titleforbidden.attlist"/>
         <zeroOrMore>
            <ref name="info.elements"/>
         </zeroOrMore>
      </element>
   </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>

   <define name="biblioset.relation.attrib">
      <ref name="relation.attribute"/>
   </define>

   <define name="biblioset.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.biblioset.attrib">
      <empty/>
   </define>

   <define name="biblioset.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="biblioset.role.attrib"/>
      <ref name="biblioset.relation.attrib"/>
      <ref name="local.biblioset.attrib"/>
   </define>

   <define name="db.biblioset">
      <element name="biblioset">
         <ref name="biblioset.attlist"/>
         <oneOrMore>
            <ref name="bibliographic.elements"/>
         </oneOrMore>
      </element>
   </define>

   <define name="bibliomset.relation.attrib">
      <ref name="relation.attribute"/>
   </define>

   <define name="bibliomset.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.bibliomset.attrib">
      <empty/>
   </define>

   <define name="bibliomset.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="bibliomset.role.attrib"/>
      <ref name="bibliomset.relation.attrib"/>
      <ref name="local.bibliomset.attrib"/>
   </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>

   <define name="bibliomisc.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.bibliomisc.attrib">
      <empty/>
   </define>

   <define name="bibliomisc.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="bibliomisc.role.attrib"/>
      <ref name="local.bibliomisc.attrib"/>
   </define>

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

   <define name="subjectset.scheme.attrib">
      <optional>
         <attribute name="scheme">
            <data type="NMTOKEN"/>
         </attribute>
      </optional>
   </define>

   <define name="subjectset.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.subjectset.attrib">
      <empty/>
   </define>

   <define name="subjectset.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="subjectset.role.attrib"/>
      <ref name="subjectset.scheme.attrib"/>
      <ref name="local.subjectset.attrib"/>
   </define>

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

   <define name="subject.weight.attrib">
      <optional>
         <attribute name="weight"/>
      </optional>
   </define>

   <define name="subject.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.subject.attrib">
      <empty/>
   </define>

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

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

   <define name="subjectterm.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.subjectterm.attrib">
      <empty/>
   </define>

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

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

   <define name="keywordset.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.keywordset.attrib">
      <empty/>
   </define>

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

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

   <define name="keyword.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.keyword.attrib">
      <empty/>
   </define>

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

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

   <define name="itermset.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.itermset.attrib">
      <empty/>
   </define>

   <define name="itermset.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="itermset.role.attrib"/>
      <ref name="local.itermset.attrib"/>
   </define>

   <define name="db.itermset">
      <element name="itermset">
         <ref name="itermset.attlist"/>
         <oneOrMore>
            <ref name="indexterm.singular"/>
         </oneOrMore>
      </element>
   </define>

   <define name="qandaset.defaultlabel.attrib">
      <optional>
         <attribute name="defaultlabel">
            <choice>
               <value>none</value>
               <value>number</value>
               <value>qanda</value>
            </choice>
         </attribute>
      </optional>
   </define>

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

   <define name="qandaset.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.qandaset.attrib">
      <empty/>
   </define>

   <define name="qandaset.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="qandaset.role.attrib"/>
      <ref name="qandaset.defaultlabel.attrib"/>
      <ref name="local.qandaset.attrib"/>
   </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>

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

   <define name="qandadiv.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.qandadiv.attrib">
      <empty/>
   </define>

   <define name="qandadiv.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="qandadiv.role.attrib"/>
      <ref name="local.qandadiv.attrib"/>
   </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>

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

   <define name="qandaentry.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.qandaentry.attrib">
      <empty/>
   </define>

   <define name="qandaentry.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="qandaentry.role.attrib"/>
      <ref name="local.qandaentry.attrib"/>
   </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>

   <define name="question.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.question.attrib">
      <empty/>
   </define>

   <define name="question.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="question.role.attrib"/>
      <ref name="local.question.attrib"/>
   </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>

   <define name="answer.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.answer.attrib">
      <empty/>
   </define>

   <define name="answer.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="answer.role.attrib"/>
      <ref name="local.answer.attrib"/>
   </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>

   <define name="label.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.label.attrib">
      <empty/>
   </define>

   <define name="label.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="label.role.attrib"/>
      <ref name="local.label.attrib"/>
   </define>

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

   <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>

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

   <define name="procedure.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.procedure.attrib">
      <empty/>
   </define>

   <define name="procedure.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="procedure.role.attrib"/>
      <ref name="local.procedure.attrib"/>
   </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>

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

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

   <define name="step.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.step.attrib">
      <empty/>
   </define>

   <define name="step.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="step.role.attrib"/>
      <ref name="step.performance.attrib"/>
      <ref name="local.step.attrib"/>
   </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>

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

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

   <define name="stepalternatives.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.stepalternatives.attrib">
      <empty/>
   </define>

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

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

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

   <define name="substeps.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.substeps.attrib">
      <empty/>
   </define>

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

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

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

   <define name="sidebar.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.sidebar.attrib">
      <empty/>
   </define>

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

   <define name="db.sidebar">
      <element name="sidebar">
         <s:rule context="sidebar" xmlns:s="http://www.ascc.net/xml/schematron">
            <s:assert test="not(.//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>

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

   <define name="abstract.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.abstract.attrib">
      <empty/>
   </define>

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

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

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

   <define name="personblurb.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.personblurb.attrib">
      <empty/>
   </define>

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

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

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

   <define name="blockquote.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.blockquote.attrib">
      <empty/>
   </define>

   <define name="blockquote.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="blockquote.role.attrib"/>
      <ref name="local.blockquote.attrib"/>
   </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>

   <define name="attribution.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.attribution.attrib">
      <empty/>
   </define>

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

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

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

   <define name="bridgehead.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.bridgehead.attrib">
      <empty/>
   </define>

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

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

   <define name="remark.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.remark.attrib">
      <empty/>
   </define>

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

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

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

   <define name="epigraph.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.epigraph.attrib">
      <empty/>
   </define>

   <define name="epigraph.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="epigraph.role.attrib"/>
      <ref name="local.epigraph.attrib"/>
   </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>

   <define name="footnote.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.footnote.attrib">
      <empty/>
   </define>

   <define name="footnote.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="footnote.role.attrib"/>
      <ref name="local.footnote.attrib"/>
   </define>

   <define name="db.footnote">
      <element name="footnote">
         <s:rule context="footnote" xmlns:s="http://www.ascc.net/xml/schematron">
            <s:assert test="not(.//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>

   <define name="highlights.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.highlights.attrib">
      <empty/>
   </define>

   <define name="highlights.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="highlights.role.attrib"/>
      <ref name="local.highlights.attrib"/>
   </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="db.indexterm"/>
            </choice>
         </oneOrMore>
      </element>
   </define>

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

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

   <define name="formalpara.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.formalpara.attrib">
      <empty/>
   </define>

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

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

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

   <define name="para.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.para.attrib">
      <empty/>
   </define>

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

   <define name="db.para">
      <element name="para">
         <ref name="para.attlist"/>
         <ref name="para.info"/>
         <zeroOrMore>
            <choice>
               <ref name="inlines"/>
               <ref name="blocks.nopara"/>
            </choice>
         </zeroOrMore>
      </element>
   </define>

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

   <define name="simpara.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.simpara.attrib">
      <empty/>
   </define>

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

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

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

   <define name="caution.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.caution.attrib">
      <empty/>
   </define>

   <define name="caution.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="caution.role.attrib"/>
      <ref name="local.caution.attrib"/>
   </define>

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

   <define name="important.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.important.attrib">
      <empty/>
   </define>

   <define name="important.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="important.role.attrib"/>
      <ref name="local.important.attrib"/>
   </define>

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

   <define name="note.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.note.attrib">
      <empty/>
   </define>

   <define name="note.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="note.role.attrib"/>
      <ref name="local.note.attrib"/>
   </define>

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

   <define name="tip.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.tip.attrib">
      <empty/>
   </define>

   <define name="tip.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="tip.role.attrib"/>
      <ref name="local.tip.attrib"/>
   </define>

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

   <define name="warning.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.warning.attrib">
      <empty/>
   </define>

   <define name="warning.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="warning.role.attrib"/>
      <ref name="local.warning.attrib"/>
   </define>

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

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

   <define name="glosslist.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.glosslist.attrib">
      <empty/>
   </define>

   <define name="glosslist.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="glosslist.role.attrib"/>
      <ref name="local.glosslist.attrib"/>
   </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>

   <define name="glossentry.sortas.attrib">
      <optional>
         <ref name="sortas.attribute"/>
      </optional>
   </define>

   <define name="glossentry.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.glossentry.attrib">
      <empty/>
   </define>

   <define name="glossentry.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="glossentry.role.attrib"/>
      <ref name="glossentry.sortas.attrib"/>
      <ref name="local.glossentry.attrib"/>
   </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>

   <define name="glossdef.subject.attrib">
      <optional>
         <attribute name="subject"/>
      </optional>
   </define>

   <define name="glossdef.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.glossdef.attrib">
      <empty/>
   </define>

   <define name="glossdef.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="glossdef.role.attrib"/>
      <ref name="glossdef.subject.attrib"/>
      <ref name="local.glossdef.attrib"/>
   </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>

   <define name="glosssee.otherterm.attrib">
      <optional>
         <attribute name="otherterm">
            <data type="IDREF"/>
         </attribute>
      </optional>
   </define>

   <define name="glosssee.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.glosssee.attrib">
      <empty/>
   </define>

   <define name="glosssee.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="glosssee.role.attrib"/>
      <ref name="glosssee.otherterm.attrib"/>
      <ref name="local.glosssee.attrib"/>
   </define>

   <define name="db.glosssee">
      <element name="glosssee">
         <ref name="glosssee.attlist"/>
         <s:rule context="glosssee[@linkend]" xmlns:s="http://www.ascc.net/xml/schematron">
            <s:assert test="name(//*[@id=current()/@linkend]) = 'glossentry'">@linkend on glosssee must point to a glossentry.</s:assert>
         </s:rule>
         <zeroOrMore>
            <ref name="inlines"/>
         </zeroOrMore>
      </element>
   </define>

   <define name="glossseealso.otherterm.attrib">
      <optional>
         <attribute name="otherterm">
            <data type="IDREF"/>
         </attribute>
      </optional>
   </define>

   <define name="glossseealso.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.glossseealso.attrib">
      <empty/>
   </define>

   <define name="glossseealso.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="glossseealso.role.attrib"/>
      <ref name="glossseealso.otherterm.attrib"/>
      <ref name="local.glossseealso.attrib"/>
   </define>

   <define name="db.glossseealso">
      <element name="glossseealso">
         <ref name="glossseealso.attlist"/>
         <s:rule context="glossseealso[@linkend]" xmlns:s="http://www.ascc.net/xml/schematron">
            <s:assert test="name(//*[@id=current()/@linkend]) = 'glossentry'">@linkend on glossseealso must point to a glossentry.</s:assert>
         </s:rule>
         <zeroOrMore>
            <ref name="inlines"/>
         </zeroOrMore>
      </element>
   </define>

   <define name="itemizedlist.mark.attrib">
      <optional>
         <attribute name="mark"/>
      </optional>
   </define>

   <define name="itemizedlist.spacing.attrib">
      <optional>
         <attribute name="spacing">
            <choice>
               <value>compact</value>
               <value>normal</value>
            </choice>
         </attribute>
      </optional>
   </define>

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

   <define name="itemizedlist.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.itemizedlist.attrib">
      <empty/>
   </define>

   <define name="itemizedlist.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="itemizedlist.role.attrib"/>
      <ref name="itemizedlist.mark.attrib"/>
      <ref name="itemizedlist.spacing.attrib"/>
      <ref name="local.itemizedlist.attrib"/>
   </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>

   <define name="orderedlist.inheritnum.attrib">
      <optional>
         <attribute name="inheritnum">
            <choice>
               <value>ignore</value>
               <value>inherit</value>
            </choice>
         </attribute>
      </optional>
   </define>

   <define name="orderedlist.spacing.attrib">
      <optional>
         <attribute name="spacing">
            <choice>
               <value>compact</value>
               <value>normal</value>
            </choice>
         </attribute>
      </optional>
   </define>

   <define name="orderedlist.continuation.attrib">
      <optional>
         <ref name="continuation.attribute"/>
      </optional>
   </define>

   <define name="orderedlist.numeration.attrib">
      <optional>
         <attribute name="numeration"/>
      </optional>
   </define>

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

   <define name="orderedlist.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.orderedlist.attrib">
      <empty/>
   </define>

   <define name="orderedlist.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="orderedlist.role.attrib"/>
      <ref name="orderedlist.inheritnum.attrib"/>
      <ref name="orderedlist.spacing.attrib"/>
      <ref name="orderedlist.continuation.attrib"/>
      <ref name="orderedlist.numeration.attrib"/>
      <ref name="local.orderedlist.attrib"/>
   </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>

   <define name="listitem.override.attrib">
      <optional>
         <attribute name="override"/>
      </optional>
   </define>

   <define name="listitem.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.listitem.attrib">
      <empty/>
   </define>

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

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

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

   <define name="segmentedlist.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.segmentedlist.attrib">
      <empty/>
   </define>

   <define name="segmentedlist.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="segmentedlist.role.attrib"/>
      <ref name="local.segmentedlist.attrib"/>
   </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>

   <define name="segtitle.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.segtitle.attrib">
      <empty/>
   </define>

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

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

   <define name="seglistitem.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.seglistitem.attrib">
      <empty/>
   </define>

   <define name="seglistitem.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="seglistitem.role.attrib"/>
      <ref name="local.seglistitem.attrib"/>
   </define>

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

   <define name="seg.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.seg.attrib">
      <empty/>
   </define>

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

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

   <define name="simplelist.type.attrib">
      <optional>
         <attribute name="type">
            <choice>
               <value>horiz</value>
               <value>vert</value>
               <value>inline</value>
            </choice>
         </attribute>
      </optional>
   </define>

   <define name="simplelist.columns.attrib">
      <optional>
         <attribute name="columns">
            <data type="integer"/>
         </attribute>
      </optional>
   </define>

   <define name="simplelist.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.simplelist.attrib">
      <empty/>
   </define>

   <define name="simplelist.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="simplelist.role.attrib"/>
      <ref name="simplelist.type.attrib"/>
      <ref name="simplelist.columns.attrib"/>
      <ref name="local.simplelist.attrib"/>
   </define>

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

   <define name="member.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.member.attrib">
      <empty/>
   </define>

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

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

   <define name="variablelist.termlength.attrib">
      <optional>
         <attribute name="termlength"/>
      </optional>
   </define>

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

   <define name="variablelist.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.variablelist.attrib">
      <empty/>
   </define>

   <define name="variablelist.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="variablelist.role.attrib"/>
      <ref name="variablelist.termlength.attrib"/>
      <ref name="local.variablelist.attrib"/>
   </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>

   <define name="varlistentry.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.varlistentry.attrib">
      <empty/>
   </define>

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

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

   <define name="term.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.term.attrib">
      <empty/>
   </define>

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

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

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

   <define name="example.floatstyle.attrib">
      <optional>
         <ref name="floatstyle.attribute"/>
      </optional>
   </define>

   <define name="example.width.attrib">
      <optional>
         <attribute name="width"/>
      </optional>
   </define>

   <define name="example.label.attrib">
      <optional>
         <attribute name="label"/>
      </optional>
   </define>

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

   <define name="example.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.example.attrib">
      <empty/>
   </define>

   <define name="example.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="example.role.attrib"/>
      <ref name="example.floatstyle.attrib"/>
      <ref name="example.width.attrib"/>
      <ref name="example.label.attrib"/>
      <ref name="local.example.attrib"/>
   </define>

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

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

   <define name="informalexample.width.attrib">
      <optional>
         <attribute name="width"/>
      </optional>
   </define>

   <define name="informalexample.floatstyle.attrib">
      <optional>
         <ref name="floatstyle.attribute"/>
      </optional>
   </define>

   <define name="informalexample.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.informalexample.attrib">
      <empty/>
   </define>

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

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

   <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>

   <define name="programlisting.verbatim.attribs">
      <ref name="verbatim.attributes"/>
   </define>

   <define name="programlisting.width.attrib">
      <optional>
         <attribute name="width"/>
      </optional>
   </define>

   <define name="programlisting.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.programlisting.attrib">
      <empty/>
   </define>

   <define name="programlisting.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="programlisting.role.attrib"/>
      <ref name="programlisting.verbatim.attribs"/>
      <ref name="programlisting.width.attrib"/>
      <ref name="local.programlisting.attrib"/>
   </define>

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

   <define name="literallayout.verbatim.attribs">
      <ref name="verbatim.attributes"/>
   </define>

   <define name="literallayout.class.attrib">
      <optional>
         <attribute name="class">
            <choice>
               <value>monospaced</value>
               <value>normal</value>
            </choice>
         </attribute>
      </optional>
   </define>

   <define name="literallayout.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.literallayout.attrib">
      <empty/>
   </define>

   <define name="literallayout.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="literallayout.role.attrib"/>
      <ref name="literallayout.verbatim.attribs"/>
      <ref name="literallayout.class.attrib"/>
      <ref name="local.literallayout.attrib"/>
   </define>

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

   <define name="screen.verbatim.attribs">
      <ref name="verbatim.attributes"/>
   </define>

   <define name="screen.width.attrib">
      <optional>
         <attribute name="width"/>
      </optional>
   </define>

   <define name="screen.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.screen.attrib">
      <empty/>
   </define>

   <define name="screen.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="screen.role.attrib"/>
      <ref name="screen.verbatim.attribs"/>
      <ref name="screen.width.attrib"/>
      <ref name="local.screen.attrib"/>
   </define>

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

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

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

   <define name="screenshot.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.screenshot.attrib">
      <empty/>
   </define>

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

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

   <define name="figure.floatstyle.attrib">
      <optional>
         <ref name="floatstyle.attribute"/>
      </optional>
   </define>

   <define name="figure.float.attrib">
      <optional>
         <attribute name="float"/>
      </optional>
   </define>

   <define name="figure.pgwide.attrib">
      <optional>
         <ref name="pgwide.attribute"/>
      </optional>
   </define>

   <define name="figure.label.attrib">
      <optional>
         <attribute name="label"/>
      </optional>
   </define>

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

   <define name="figure.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.figure.attrib">
      <empty/>
   </define>

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

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

   <define name="informalfigure.floatstyle.attrib">
      <optional>
         <ref name="floatstyle.attribute"/>
      </optional>
   </define>

   <define name="informalfigure.float.attrib">
      <optional>
         <ref name="float.attribute"/>
      </optional>
   </define>

   <define name="informalfigure.pgwide.attrib">
      <optional>
         <ref name="pgwide.attribute"/>
      </optional>
   </define>

   <define name="informalfigure.label.attrib">
      <optional>
         <attribute name="label"/>
      </optional>
   </define>

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

   <define name="informalfigure.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.informalfigure.attrib">
      <empty/>
   </define>

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

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

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

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

   <define name="mediaobject.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.mediaobject.attrib">
      <empty/>
   </define>

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

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

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

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

   <define name="inlinemediaobject.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.inlinemediaobject.attrib">
      <empty/>
   </define>

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

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

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

   <define name="videoobject.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.videoobject.attrib">
      <empty/>
   </define>

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

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

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

   <define name="audioobject.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.audioobject.attrib">
      <empty/>
   </define>

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

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

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

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

   <define name="imageobject.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.imageobject.attrib">
      <empty/>
   </define>

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

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

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

   <define name="textobject.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.textobject.attrib">
      <empty/>
   </define>

   <define name="textobject.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="textobject.role.attrib"/>
      <ref name="local.textobject.attrib"/>
   </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>

   <define name="videodata.data.attrib">
      <ref name="data.common.attribute"/>
   </define>

   <define name="videodata.align.attrib">
      <optional>
         <attribute name="align">
            <choice>
               <value>center</value>
               <value>char</value>
               <value>justify</value>
               <value>left</value>
               <value>right</value>
            </choice>
         </attribute>
      </optional>
   </define>

   <define name="videodata.valign.attrib">
      <optional>
         <attribute name="valign">
            <choice>
               <value>bottom</value>
               <value>middle</value>
               <value>top</value>
            </choice>
         </attribute>
      </optional>
   </define>

   <define name="videodata.width.attrib">
      <optional>
         <attribute name="width"/>
      </optional>
   </define>

   <define name="videodata.contentwidth.attrib">
      <optional>
         <attribute name="contentwidth"/>
      </optional>
   </define>

   <define name="videodata.scalefit.attrib">
      <optional>
         <attribute name="scalefit">
            <choice>
               <value>0</value>
               <value>1</value>
            </choice>
         </attribute>
      </optional>
   </define>

   <define name="vidoedata.scale.attrib">
      <optional>
         <attribute name="scale"/>
      </optional>
   </define>

   <define name="videodata.depth.attrib">
      <optional>
         <attribute name="depth"/>
      </optional>
   </define>

   <define name="videodata.contentdepth.attrib">
      <optional>
         <attribute name="contentdepth"/>
      </optional>
   </define>

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

   <define name="videodata.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.videodata.attrib">
      <empty/>
   </define>

   <define name="videodata.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="videodata.role.attrib"/>
      <ref name="videodata.data.attrib"/>
      <ref name="videodata.align.attrib"/>
      <ref name="videodata.valign.attrib"/>
      <ref name="videodata.width.attrib"/>
      <ref name="videodata.contentwidth.attrib"/>
      <ref name="videodata.scalefit.attrib"/>
      <ref name="videodata.depth.attrib"/>
      <ref name="videodata.contentdepth.attrib"/>
      <ref name="local.videodata.attrib"/>
   </define>

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

   <define name="audiodata.data.attrib">
      <ref name="data.common.attribute"/>
   </define>

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

   <define name="audiodata.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.audiodata.attrib">
      <empty/>
   </define>

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

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

   <define name="imagedata.data.attrib">
      <ref name="data.common.attribute"/>
   </define>

   <define name="imagedata.align.attrib">
      <optional>
         <attribute name="align">
            <choice>
               <value>center</value>
               <value>char</value>
               <value>justify</value>
               <value>left</value>
               <value>right</value>
            </choice>
         </attribute>
      </optional>
   </define>

   <define name="imagedata.valign.attrib">
      <optional>
         <attribute name="valign">
            <choice>
               <value>bottom</value>
               <value>middle</value>
               <value>top</value>
            </choice>
         </attribute>
      </optional>
   </define>

   <define name="imagedata.width.attrib">
      <optional>
         <attribute name="width"/>
      </optional>
   </define>

   <define name="imagedata.contentwidth.attrib">
      <optional>
         <attribute name="contentwidth"/>
      </optional>
   </define>

   <define name="imagedata.scalefit.attrib">
      <optional>
         <attribute name="scalefit">
            <choice>
               <value>0</value>
               <value>1</value>
            </choice>
         </attribute>
      </optional>
   </define>

   <define name="imagedata.scale.attrib">
      <optional>
         <attribute name="scale"/>
      </optional>
   </define>

   <define name="imagedata.depth.attrib">
      <optional>
         <attribute name="depth"/>
      </optional>
   </define>

   <define name="imagedata.contentdepth.attrib">
      <optional>
         <attribute name="contentdepth"/>
      </optional>
   </define>

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

   <define name="imagedata.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.imagedata.attrib">
      <empty/>
   </define>

   <define name="imagedata.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="imagedata.role.attrib"/>
      <ref name="imagedata.data.attrib"/>
      <ref name="imagedata.align.attrib"/>
      <ref name="imagedata.valign.attrib"/>
      <ref name="imagedata.width.attrib"/>
      <ref name="imagedata.contentwidth.attrib"/>
      <ref name="imagedata.scalefit.attrib"/>
      <ref name="imagedata.scale.attrib"/>
      <ref name="imagedata.depth.attrib"/>
      <ref name="imagedata.contentdepth.attrib"/>
      <ref name="local.imagedata.attrib"/>
   </define>

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

   <define name="textdata.data.attrib">
      <ref name="data.common.attribute"/>
   </define>

   <define name="textdata.encoding.attrib">
      <optional>
         <attribute name="encoding"/>
      </optional>
   </define>

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

   <define name="textdata.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.textdata.attrib">
      <empty/>
   </define>

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

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

   <define name="caption.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.caption.attrib">
      <empty/>
   </define>

   <define name="caption.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="caption.role.attrib"/>
      <ref name="local.caption.attrib"/>
   </define>

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

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

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

   <define name="equation.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.equation.attrib">
      <empty/>
   </define>

   <define name="equation.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="equation.role.attrib"/>
      <ref name="local.equation.attrib"/>
   </define>

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

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

   <define name="informalequation.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.informalequation.attrib">
      <empty/>
   </define>

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

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

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

   <define name="inlineequation.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.inlineequation.attrib">
      <empty/>
   </define>

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

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

   <define name="synopsis.verbatim.attribs">
      <ref name="verbatim.attributes"/>
   </define>

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

   <define name="synopsis.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.synopsis.attrib">
      <empty/>
   </define>

   <define name="synopsis.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="synopsis.role.attrib"/>
      <ref name="synopsis.verbatim.attribs"/>
      <ref name="synopsis.label.attrib"/>
      <ref name="local.synopsis.attrib"/>
   </define>

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

   <define name="cmdsynopsis.sepchar.attrib">
      <optional>
         <attribute name="sepchar"/>
      </optional>
   </define>

   <define name="cmdsynopsis.cmdlength.attrib">
      <optional>
         <attribute name="cmdlength"/>
      </optional>
   </define>

   <define name="cmdsynopsis.label.attrib">
      <optional>
         <attribute name="label"/>
      </optional>
   </define>

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

   <define name="cmdsynopsis.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.cmdsynopsis.attrib">
      <empty/>
   </define>

   <define name="cmdsynopsis.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="cmdsynopsis.role.attrib"/>
      <ref name="cmdsynopsis.sepchar.attrib"/>
      <ref name="cmdsynopsis.cmdlength.attrib"/>
      <ref name="cmdsynopsis.label.attrib"/>
      <ref name="local.cmdsynopsis.attrib"/>
   </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>

   <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>

   <define name="arg.rep.attrib">
      <optional>
         <ref name="rep.attribute"/>
      </optional>
   </define>

   <define name="arg.choice.attrib">
      <optional>
         <ref name="choice.attribute"/>
      </optional>
   </define>

   <define name="arg.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.arg.attrib">
      <empty/>
   </define>

   <define name="arg.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="arg.role.attrib"/>
      <ref name="arg.rep.attrib"/>
      <ref name="arg.choice.attrib"/>
      <ref name="local.arg.attrib"/>
   </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>

   <define name="group.rep.attrib">
      <optional>
         <ref name="rep.attribute"/>
      </optional>
   </define>

   <define name="group.choice.attrib">
      <optional>
         <ref name="choice.attribute"/>
      </optional>
   </define>

   <define name="group.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.group.attrib">
      <empty/>
   </define>

   <define name="group.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="group.role.attrib"/>
      <ref name="group.rep.attrib"/>
      <ref name="group.choice.attrib"/>
      <ref name="local.group.attrib"/>
   </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>

   <define name="sbr.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.sbr.attrib">
      <empty/>
   </define>

   <define name="sbr.attlist">
      <ref name="common.attributes"/>
      <ref name="sbr.role.attrib"/>
      <ref name="local.sbr.attrib"/>
   </define>

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

   <define name="synopfragment.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.synopfragment.attrib">
      <empty/>
   </define>

   <define name="synopfragment.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="synopfragment.role.attrib"/>
      <ref name="local.synopfragment.attrib"/>
   </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>

   <define name="synopfragmentref.linkend.attrib">
      <ref name="linkend.attribute"/>
   </define>

   <define name="synopfragmentref.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.synopfragmentref.attrib">
      <empty/>
   </define>

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

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

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

   <define name="funcsynopsis.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.funcsynopsis.attrib">
      <empty/>
   </define>

   <define name="funcsynopsis.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="funcsynopsis.role.attrib"/>
      <ref name="local.funcsynopsis.attrib"/>
   </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>

   <define name="funcsynopsisinfo.verbatim.attribs">
      <ref name="verbatim.attributes"/>
   </define>

   <define name="funcsynopsisinfo.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.funcsynopsisinfo.attrib">
      <empty/>
   </define>

   <define name="funcsynopsisinfo.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="funcsynopsisinfo.role.attrib"/>
      <ref name="funcsynopsisinfo.verbatim.attribs"/>
      <ref name="local.funcsynopsisinfo.attrib"/>
   </define>

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

   <define name="funcprototype.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.funcprototype.attrib">
      <empty/>
   </define>

   <define name="funcprototype.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="funcprototype.role.attrib"/>
      <ref name="local.funcprototype.attrib"/>
   </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>

   <define name="funcdef.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.funcdef.attrib">
      <empty/>
   </define>

   <define name="funcdef.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="funcdef.role.attrib"/>
      <ref name="local.funcdef.attrib"/>
   </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>

   <define name="void.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.void.attrib">
      <empty/>
   </define>

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

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

   <define name="varargs.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.varargs.attrib">
      <empty/>
   </define>

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

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

   <define name="paramdef.choice.attrib">
      <optional>
         <attribute name="choice">
            <choice>
               <value>opt</value>
               <value>req</value>
            </choice>
         </attribute>
      </optional>
   </define>

   <define name="paramdef.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.paramdef.attrib">
      <empty/>
   </define>

   <define name="paramdef.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="paramdef.role.attrib"/>
      <ref name="paramdef.choice.attrib"/>
      <ref name="local.paramdef.attrib"/>
   </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>

   <define name="funcparams.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.funcparams.attrib">
      <empty/>
   </define>

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

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

   <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>

   <define name="classsynopsis.language.attrib">
      <ref name="oo-language.attribute"/>
   </define>

   <define name="classsynopsis.class.attrib">
      <optional>
         <attribute name="class">
            <choice>
               <value>class</value>
               <value>interface</value>
            </choice>
         </attribute>
      </optional>
   </define>

   <define name="classsynopsis.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.classsynopsis.attrib">
      <empty/>
   </define>

   <define name="classsynopsis.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="classsynopsis.role.attrib"/>
      <ref name="classsynopsis.language.attrib"/>
      <ref name="classsynopsis.class.attrib"/>
      <ref name="local.classsynopsis.attrib"/>
   </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>

   <define name="classsynopsisinfo.verbatim.attribs">
      <ref name="verbatim.attributes"/>
   </define>

   <define name="classsynopsisinfo.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.classsynopsisinfo.attrib">
      <empty/>
   </define>

   <define name="classsynopsisinfo.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="classsynopsisinfo.role.attrib"/>
      <ref name="classsynopsisinfo.verbatim.attribs"/>
      <ref name="local.classsynopsisinfo.attrib"/>
   </define>

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

   <define name="ooclass.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.ooclass.attrib">
      <empty/>
   </define>

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

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

   <define name="oointerface.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.oointerface.attrib">
      <empty/>
   </define>

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

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

   <define name="ooexception.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.ooexception.attrib">
      <empty/>
   </define>

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

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

   <define name="modifier.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.modifier.attrib">
      <empty/>
   </define>

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

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

   <define name="interfacename.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.interfacename.attrib">
      <empty/>
   </define>

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

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

   <define name="exceptionname.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.exceptionname.attrib">
      <empty/>
   </define>

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

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

   <define name="fieldsynopsis.language.attrib">
      <ref name="oo-language.attribute"/>
   </define>

   <define name="fieldsynopsis.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.fieldsynopsis.attrib">
      <empty/>
   </define>

   <define name="fieldsynopsis.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="fieldsynopsis.role.attrib"/>
      <ref name="fieldsynopsis.language.attrib"/>
      <ref name="local.fieldsynopsis.attrib"/>
   </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>

   <define name="initializer.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.initializer.attrib">
      <empty/>
   </define>

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

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

   <define name="constructorsynopsis.language.attrib">
      <ref name="oo-language.attribute"/>
   </define>

   <define name="constructorsynopsis.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.constructorsynopsis.attrib">
      <empty/>
   </define>

   <define name="constructorsynopsis.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="constructorsynopsis.role.attrib"/>
      <ref name="constructorsynopsis.language.attrib"/>
      <ref name="local.constructorsynopsis.attrib"/>
   </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>

   <define name="destructorsynopsis.language.attrib">
      <ref name="oo-language.attribute"/>
   </define>

   <define name="destructorsynopsis.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.destructorsynopsis.attrib">
      <empty/>
   </define>

   <define name="destructorsynopsis.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="destructorsynopsis.role.attrib"/>
      <ref name="destructorsynopsis.language.attrib"/>
      <ref name="local.destructorsynopsis.attrib"/>
   </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>

   <define name="methodsynopsis.language.attrib">
      <ref name="oo-language.attribute"/>
   </define>

   <define name="methodsynopsis.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.methodsynopsis.attrib">
      <empty/>
   </define>

   <define name="methodsynopsis.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="methodsynopsis.role.attrib"/>
      <ref name="methodsynopsis.language.attrib"/>
      <ref name="local.methodsynopsis.attrib"/>
   </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>

   <define name="methodname.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.methodname.attrib">
      <empty/>
   </define>

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

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

   <define name="methodparam.rep.attrib">
      <optional>
         <ref name="rep.attribute"/>
      </optional>
   </define>

   <define name="methodparam.choice.attrib">
      <optional>
         <ref name="choice.attribute"/>
      </optional>
   </define>

   <define name="methodparam.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.methodparam.attrib">
      <empty/>
   </define>

   <define name="methodparam.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="methodparam.role.attrib"/>
      <ref name="methodparam.rep.attrib"/>
      <ref name="methodparam.choice.attrib"/>
      <ref name="local.methodparam.attrib"/>
   </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>

   <define name="address.verbatim.attribs">
      <ref name="verbatim.attributes"/>
   </define>

   <define name="address.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.address.attrib">
      <empty/>
   </define>

   <define name="address.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="address.role.attrib"/>
      <ref name="address.verbatim.attribs"/>
      <ref name="local.address.attrib"/>
   </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>

   <define name="street.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.street.attrib">
      <empty/>
   </define>

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

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

   <define name="pob.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.pob.attrib">
      <empty/>
   </define>

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

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

   <define name="postcode.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.postcode.attrib">
      <empty/>
   </define>

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

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

   <define name="city.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.city.attrib">
      <empty/>
   </define>

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

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

   <define name="state.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.state.attrib">
      <empty/>
   </define>

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

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

   <define name="country.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.country.attrib">
      <empty/>
   </define>

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

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

   <define name="phone.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.phone.attrib">
      <empty/>
   </define>

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

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

   <define name="fax.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.fax.attrib">
      <empty/>
   </define>

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

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

   <define name="otheraddr.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.otheraddr.attrib">
      <empty/>
   </define>

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

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

   <define name="affiliation.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.affiliation.attrib">
      <empty/>
   </define>

   <define name="affiliation.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="affiliation.role.attrib"/>
      <ref name="local.affiliation.attrib"/>
   </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>

   <define name="shortaffil.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.shortaffil.attrib">
      <empty/>
   </define>

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

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

   <define name="jobtitle.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.jobtitle.attrib">
      <empty/>
   </define>

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

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

   <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">
      <attribute name="class">
         <value>other</value>
      </attribute>
      <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.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.orgname.attrib">
      <empty/>
   </define>

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

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

   <define name="orgdiv.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.orgdiv.attrib">
      <empty/>
   </define>

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

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

   <define name="artpagenums.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.artpagenums.attrib">
      <empty/>
   </define>

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

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

   <define name="personname.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.personname.attrib">
      <empty/>
   </define>

   <define name="personname.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="personname.role.attrib"/>
      <ref name="local.personname.attrib"/>
   </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>

   <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>

   <define name="author.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.author.attrib">
      <empty/>
   </define>

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

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

   <define name="authorgroup.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.authorgroup.attrib">
      <empty/>
   </define>

   <define name="authorgroup.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="authorgroup.role.attrib"/>
      <ref name="local.authorgroup.attrib"/>
   </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>

   <define name="collab.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.collab.attrib">
      <empty/>
   </define>

   <define name="collab.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="collab.role.attrib"/>
      <ref name="local.collab.attrib"/>
   </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>

   <define name="authorinitials.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.authorinitials.attrib">
      <empty/>
   </define>

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

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

   <define name="confgroup.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.confgroup.attrib">
      <empty/>
   </define>

   <define name="confgroup.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="confgroup.role.attrib"/>
      <ref name="local.confgroup.attrib"/>
   </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>

   <define name="confdates.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.confdates.attrib">
      <empty/>
   </define>

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

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

   <define name="conftitle.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.conftitle.attrib">
      <empty/>
   </define>

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

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

   <define name="confnum.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.confnum.attrib">
      <empty/>
   </define>

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

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

   <define name="confsponsor.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.confsponsor.attrib">
      <empty/>
   </define>

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

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

   <define name="contractnum.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.contractnum.attrib">
      <empty/>
   </define>

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

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

   <define name="contractsponsor.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.contractsponsor.attrib">
      <empty/>
   </define>

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

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

   <define name="copyright.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.copyright.attrib">
      <empty/>
   </define>

   <define name="copyright.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="copyright.role.attrib"/>
      <ref name="local.copyright.attrib"/>
   </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>

   <define name="year.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.year.attrib">
      <empty/>
   </define>

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

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

   <define name="holder.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.holder.attrib">
      <empty/>
   </define>

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

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

   <define name="date.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.date.attrib">
      <empty/>
   </define>

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

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

   <define name="edition.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.edition.attrib">
      <empty/>
   </define>

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

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

   <define name="editor.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.editor.attrib">
      <empty/>
   </define>

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

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

   <define name="biblioid.class.attrib">
      <ref name="biblio.class.attrib"/>
   </define>

   <define name="biblioid.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.biblioid.attrib">
      <empty/>
   </define>

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

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

   <define name="citebiblioid.class.attrib">
      <ref name="biblio.class.attrib"/>
   </define>

   <define name="citebiblioid.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.citebiblioid.attrib">
      <empty/>
   </define>

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

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

   <define name="bibliosource.class.attrib">
      <ref name="biblio.class.attrib"/>
   </define>

   <define name="bibliosource.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.bibliosource.attrib">
      <empty/>
   </define>

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

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

   <define name="bibliorelation.class.attrib">
      <ref name="biblio.class.attrib"/>
   </define>

   <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">
      <attribute name="type">
         <value>othertype</value>
      </attribute>
      <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.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.bibliorelation.attrib">
      <empty/>
   </define>

   <define name="bibliorelation.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="bibliorelation.role.attrib"/>
      <ref name="bibliorelation.class.attrib"/>
      <ref name="bibliorelation.type.attrib"/>
      <ref name="local.bibliorelation.attrib"/>
   </define>

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

   <define name="bibliocoverage.spatial-enum.attribute">
      <attribute name="spatial">
         <choice>
            <value>dcmipoint</value>
            <value>iso3166</value>
            <value>dcmibox</value>
            <value>tgn</value>
         </choice>
      </attribute>
   </define>

   <define name="bibliocoverage.spatial-other.attributes">
      <attribute name="spatial">
         <value>otherspatial</value>
      </attribute>
      <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>

   <define name="bibliocoverage.temporal-enum.attribute">
      <attribute name="temporal">
         <choice>
            <value>dcmiperiod</value>
            <value>w3c-dtf</value>
         </choice>
      </attribute>
   </define>

   <define name="bibliocoverage.temporal-other.attributes">
      <attribute name="temporal">
         <value>othertemporal</value>
      </attribute>
      <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">
      <choice>
         <choice>
            <ref name="bibliocoverage.spatial.attrs"/>
            <ref name="bibliocoverage.temporal.attrs"/>
         </choice>
         <interleave>
            <ref name="bibliocoverage.spatial.attrs"/>
            <ref name="bibliocoverage.temporal.attrs"/>
         </interleave>
      </choice>
   </define>

   <define name="bibliocoverage.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.bibliocoverage.attrib">
      <empty/>
   </define>

   <define name="bibliocoverage.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="bibliocoverage.role.attrib"/>
      <ref name="bibliocoverage.coverage.attrib"/>
      <ref name="local.bibliocoverage.attrib"/>
   </define>

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

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

   <define name="legalnotice.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.legalnotice.attrib">
      <empty/>
   </define>

   <define name="legalnotice.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="legalnotice.role.attrib"/>
      <ref name="local.legalnotice.attrib"/>
   </define>

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

   <define name="othercredit.class.attrib">
      <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.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.othercredit.attrib">
      <empty/>
   </define>

   <define name="othercredit.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="othercredit.role.attrib"/>
      <ref name="othercredit.class.attrib"/>
      <ref name="local.othercredit.attrib"/>
   </define>

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

   <define name="pagenums.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.pagenums.attrib">
      <empty/>
   </define>

   <define name="pagenums.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="pagenums.role.attrib"/>
      <ref name="local.pagenums.attrib"/>
   </define>

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

   <define name="contrib.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.contrib.attrib">
      <empty/>
   </define>

   <define name="contrib.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="contrib.role.attrib"/>
      <ref name="local.contrib.attrib"/>
   </define>

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

   <define name="honorific.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.honorific.attrib">
      <empty/>
   </define>

   <define name="honorific.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="honorific.role.attrib"/>
      <ref name="local.honorific.attrib"/>
   </define>

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

   <define name="firstname.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.firstname.attrib">
      <empty/>
   </define>

   <define name="firstname.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="firstname.role.attrib"/>
      <ref name="local.firstname.attrib"/>
   </define>

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

   <define name="surname.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.surname.attrib">
      <empty/>
   </define>

   <define name="surname.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="surname.role.attrib"/>
      <ref name="local.surname.attrib"/>
   </define>

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

   <define name="lineage.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.lineage.attrib">
      <empty/>
   </define>

   <define name="lineage.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="lineage.role.attrib"/>
      <ref name="local.lineage.attrib"/>
   </define>

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

   <define name="othername.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.othername.attrib">
      <empty/>
   </define>

   <define name="othername.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="othername.role.attrib"/>
      <ref name="local.othername.attrib"/>
   </define>

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

   <define name="printhistory.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.printhistory.attrib">
      <empty/>
   </define>

   <define name="printhistory.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="printhistory.role.attrib"/>
      <ref name="local.printhistory.attrib"/>
   </define>

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

   <define name="productname.class.attrib">
      <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.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.productname.attrib">
      <empty/>
   </define>

   <define name="productname.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="productname.role.attrib"/>
      <ref name="productname.class.attrib"/>
      <ref name="local.productname.attrib"/>
   </define>

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

   <define name="productnumber.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.productnumber.attrib">
      <empty/>
   </define>

   <define name="productnumber.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="productnumber.role.attrib"/>
      <ref name="local.productnumber.attrib"/>
   </define>

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

   <define name="pubdate.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.pubdate.attrib">
      <empty/>
   </define>

   <define name="pubdate.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="pubdate.role.attrib"/>
      <ref name="local.pubdate.attrib"/>
   </define>

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

   <define name="publisher.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.publisher.attrib">
      <empty/>
   </define>

   <define name="publisher.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="publisher.role.attrib"/>
      <ref name="local.publisher.attrib"/>
   </define>

   <define name="db.publisher">
      <element name="publisher">
         <ref name="publisher.attlist"/>
         <ref name="db.publishername"/>
         <zeroOrMore>
            <ref name="db.address"/>
         </zeroOrMore>
      </element>
   </define>

   <define name="publishername.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.publishername.attrib">
      <empty/>
   </define>

   <define name="publishername.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="publishername.role.attrib"/>
      <ref name="local.publishername.attrib"/>
   </define>

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

   <define name="releaseinfo.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.releaseinfo.attrib">
      <empty/>
   </define>

   <define name="releaseinfo.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="releaseinfo.role.attrib"/>
      <ref name="local.releaseinfo.attrib"/>
   </define>

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

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

   <define name="revhistory.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.revhistory.attrib">
      <empty/>
   </define>

   <define name="revhistory.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="revhistory.role.attrib"/>
      <ref name="local.revhistory.attrib"/>
   </define>

   <define name="db.revhistory">
      <element name="revhistory">
         <ref name="revhistory.attlist"/>
         <ref name="revhistory.info"/>
         <oneOrMore>
            <ref name="db.revision"/>
         </oneOrMore>
      </element>
   </define>

   <define name="revision.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.revision.attrib">
      <empty/>
   </define>

   <define name="revision.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="revision.role.attrib"/>
      <ref name="local.revision.attrib"/>
   </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>

   <define name="revnumber.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.revnumber.attrib">
      <empty/>
   </define>

   <define name="revnumber.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="revnumber.role.attrib"/>
      <ref name="local.revnumber.attrib"/>
   </define>

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

   <define name="revremark.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.revremark.attrib">
      <empty/>
   </define>

   <define name="revremark.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="revremark.role.attrib"/>
      <ref name="local.revremark.attrib"/>
   </define>

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

   <define name="revdescription.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.revdescription.attrib">
      <empty/>
   </define>

   <define name="revdescription.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="revdescription.role.attrib"/>
      <ref name="local.revdescription.attrib"/>
   </define>

   <define name="db.revdescription">
      <element name="revdescription">
         <ref name="revdescription.attlist"/>
         <zeroOrMore>
            <ref name="blocks"/>
         </zeroOrMore>
      </element>
   </define>

   <define name="seriesvolnums.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.seriesvolnums.attrib">
      <empty/>
   </define>

   <define name="seriesvolnums.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="seriesvolnums.role.attrib"/>
      <ref name="local.seriesvolnums.attrib"/>
   </define>

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

   <define name="volumenum.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.volumenum.attrib">
      <empty/>
   </define>

   <define name="volumenum.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="volumenum.role.attrib"/>
      <ref name="local.volumenum.attrib"/>
   </define>

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

   <define name="issuenum.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.issuenum.attrib">
      <empty/>
   </define>

   <define name="issuenum.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="issuenum.role.attrib"/>
      <ref name="local.issuenum.attrib"/>
   </define>

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

   <define name="accel.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.accel.attrib">
      <empty/>
   </define>

   <define name="accel.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="accel.role.attrib"/>
      <ref name="local.accel.attrib"/>
   </define>

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

   <define name="application.class.attrib">
      <optional>
         <attribute name="class">
            <choice>
               <value>hardware</value>
               <value>software</value>
            </choice>
         </attribute>
      </optional>
   </define>

   <define name="application.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.application.attrib">
      <empty/>
   </define>

   <define name="application.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="application.role.attrib"/>
      <ref name="application.class.attrib"/>
      <ref name="local.application.attrib"/>
   </define>

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

   <define name="classname.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.classname.attrib">
      <empty/>
   </define>

   <define name="classname.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="classname.role.attrib"/>
      <ref name="local.classname.attrib"/>
   </define>

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

   <define name="command.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.command.attrib">
      <empty/>
   </define>

   <define name="command.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="command.role.attrib"/>
      <ref name="local.command.attrib"/>
   </define>

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

   <define name="computeroutput.inlines">
      <choice>
         <choice>
            <ref name="inlines"/>
            <ref name="db.co"/>
         </choice>
         <ref name="db.co"/>
      </choice>
   </define>

   <define name="computeroutput.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.computeroutput.attrib">
      <empty/>
   </define>

   <define name="computeroutput.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="computeroutput.role.attrib"/>
      <ref name="local.computeroutput.attrib"/>
   </define>

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

   <define name="database.class.attrib">
      <optional>
         <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>
      </optional>
   </define>

   <define name="database.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.database.attrib">
      <empty/>
   </define>

   <define name="database.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="database.role.attrib"/>
      <ref name="database.class.attrib"/>
      <ref name="local.database.attrib"/>
   </define>

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

   <define name="email.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.email.attrib">
      <empty/>
   </define>

   <define name="email.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="email.role.attrib"/>
      <ref name="local.email.attrib"/>
   </define>

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

   <define name="envar.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.envar.attrib">
      <empty/>
   </define>

   <define name="envar.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="envar.role.attrib"/>
      <ref name="local.envar.attrib"/>
   </define>

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

   <define name="errorcode.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.errorcode.attrib">
      <empty/>
   </define>

   <define name="errorcode.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="errorcode.role.attrib"/>
      <ref name="local.errorcode.attrib"/>
   </define>

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

   <define name="errorname.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.errorname.attrib">
      <empty/>
   </define>

   <define name="errorname.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="errorname.role.attrib"/>
      <ref name="local.errorname.attrib"/>
   </define>

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

   <define name="errortext.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.errortext.attrib">
      <empty/>
   </define>

   <define name="errortext.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="errortext.role.attrib"/>
      <ref name="local.errortext.attrib"/>
   </define>

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

   <define name="errortype.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.errortype.attrib">
      <empty/>
   </define>

   <define name="errortype.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="errortype.role.attrib"/>
      <ref name="local.errortype.attrib"/>
   </define>

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

   <define name="filename.path.attrib">
      <optional>
         <attribute name="path"/>
      </optional>
   </define>

   <define name="filename.class.attrib">
      <optional>
         <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>
      </optional>
   </define>

   <define name="filename.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.filename.attrib">
      <empty/>
   </define>

   <define name="filename.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="filename.role.attrib"/>
      <ref name="filename.path.attrib"/>
      <ref name="filename.class.attrib"/>
      <ref name="local.filename.attrib"/>
   </define>

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

   <define name="function.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.function.attrib">
      <empty/>
   </define>

   <define name="function.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="function.role.attrib"/>
      <ref name="local.function.attrib"/>
   </define>

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

   <define name="guibutton.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.guibutton.attrib">
      <empty/>
   </define>

   <define name="guibutton.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="guibutton.role.attrib"/>
      <ref name="local.guibutton.attrib"/>
   </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>

   <define name="guiicon.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.guiicon.attrib">
      <empty/>
   </define>

   <define name="guiicon.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="guiicon.role.attrib"/>
      <ref name="local.guiicon.attrib"/>
   </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>

   <define name="guilabel.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.guilabel.attrib">
      <empty/>
   </define>

   <define name="guilabel.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="guilabel.role.attrib"/>
      <ref name="local.guilabel.attrib"/>
   </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>

   <define name="guimenu.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.guimenu.attrib">
      <empty/>
   </define>

   <define name="guimenu.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="guimenu.role.attrib"/>
      <ref name="local.guimenu.attrib"/>
   </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>

   <define name="guimenuitem.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.guimenuitem.attrib">
      <empty/>
   </define>

   <define name="guimenuitem.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="guimenuitem.role.attrib"/>
      <ref name="local.guimenuitem.attrib"/>
   </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>

   <define name="guisubmenu.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.guisubmenu.attrib">
      <empty/>
   </define>

   <define name="guisubmenu.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="guisubmenu.role.attrib"/>
      <ref name="local.guisubmenu.attrib"/>
   </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>

   <define name="hardware.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.hardware.attrib">
      <empty/>
   </define>

   <define name="hardware.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="hardware.role.attrib"/>
      <ref name="local.hardware.attrib"/>
   </define>

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

   <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">
      <attribute name="function">
         <value>other</value>
      </attribute>
      <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.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.keycap.attrib">
      <empty/>
   </define>

   <define name="keycap.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="keycap.role.attrib"/>
      <ref name="keycap.function.attrib"/>
      <ref name="local.keycap.attrib"/>
   </define>

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

   <define name="keycode.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.keycode.attrib">
      <empty/>
   </define>

   <define name="keycode.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="keycode.role.attrib"/>
      <ref name="local.keycode.attrib"/>
   </define>

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

   <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">
      <attribute name="action">
         <value>other</value>
      </attribute>
      <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.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.keycombo.attrib">
      <empty/>
   </define>

   <define name="keycombo.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="keycombo.role.attrib"/>
      <ref name="keycombo.action.attrib"/>
      <ref name="local.keycombo.attrib"/>
   </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>

   <define name="keysym.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.keysym.attrib">
      <empty/>
   </define>

   <define name="keysym.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="keysym.role.attrib"/>
      <ref name="local.keysym.attrib"/>
   </define>

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

   <define name="lineannotation.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.lineannotation.attrib">
      <empty/>
   </define>

   <define name="lineannotation.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="lineannotation.role.attrib"/>
      <ref name="local.lineannotation.attrib"/>
   </define>

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

   <define name="literal.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.literal.attrib">
      <empty/>
   </define>

   <define name="literal.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="literal.role.attrib"/>
      <ref name="local.literal.attrib"/>
   </define>

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

   <define name="code.language.attrib">
      <optional>
         <attribute name="language"/>
      </optional>
   </define>

   <define name="code.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.code.attrib">
      <empty/>
   </define>

   <define name="code.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="code.role.attrib"/>
      <ref name="code.language.attrib"/>
      <ref name="local.code.attrib"/>
   </define>

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

   <define name="constant.class.attrib">
      <optional>
         <attribute name="class">
            <value>limit</value>
         </attribute>
      </optional>
   </define>

   <define name="constant.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.constant.attrib">
      <empty/>
   </define>

   <define name="constant.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="constant.role.attrib"/>
      <ref name="constant.class.attrib"/>
      <ref name="local.constant.attrib"/>
   </define>

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

   <define name="varname.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.varname.attrib">
      <empty/>
   </define>

   <define name="varname.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="varname.role.attrib"/>
      <ref name="local.varname.attrib"/>
   </define>

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

   <define name="markup.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.markup.attrib">
      <empty/>
   </define>

   <define name="markup.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="markup.role.attrib"/>
      <ref name="local.markup.attrib"/>
   </define>

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

   <define name="menuchoice.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.menuchoice.attrib">
      <empty/>
   </define>

   <define name="menuchoice.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="menuchoice.role.attrib"/>
      <ref name="local.menuchoice.attrib"/>
   </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>

   <define name="shortcut.action.attrib">
      <ref name="keycombo.action.attrib"/>
   </define>

   <define name="shortcut.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.shortcut.attrib">
      <empty/>
   </define>

   <define name="shortcut.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="shortcut.role.attrib"/>
      <ref name="shortcut.action.attrib"/>
      <ref name="local.shortcut.attrib"/>
   </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>

   <define name="mousebutton.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.mousebutton.attrib">
      <empty/>
   </define>

   <define name="mousebutton.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="mousebutton.role.attrib"/>
      <ref name="local.mousebutton.attrib"/>
   </define>

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

   <define name="option.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.option.attrib">
      <empty/>
   </define>

   <define name="option.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="option.role.attrib"/>
      <ref name="local.option.attrib"/>
   </define>

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

   <define name="optional.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.optional.attrib">
      <empty/>
   </define>

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

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

   <define name="parameter.class.attrib">
      <optional>
         <attribute name="class">
            <choice>
               <value>command</value>
               <value>function</value>
               <value>option</value>
            </choice>
         </attribute>
      </optional>
   </define>

   <define name="parameter.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.parameter.attrib">
      <empty/>
   </define>

   <define name="parameter.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="parameter.role.attrib"/>
      <ref name="parameter.class.attrib"/>
      <ref name="local.parameter.attrib"/>
   </define>

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

   <define name="prompt.inlines">
      <choice>
         <choice>
            <ref name="docbook.text"/>
            <ref name="db.co"/>
         </choice>
         <ref name="db.co"/>
      </choice>
   </define>

   <define name="prompt.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.prompt.attrib">
      <empty/>
   </define>

   <define name="prompt.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="prompt.role.attrib"/>
      <ref name="local.prompt.attrib"/>
   </define>

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

   <define name="replaceable.class.attrib">
      <optional>
         <attribute name="class">
            <choice>
               <value>command</value>
               <value>function</value>
               <value>option</value>
               <value>parameter</value>
            </choice>
         </attribute>
      </optional>
   </define>

   <define name="replaceable.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.replaceable.attrib">
      <empty/>
   </define>

   <define name="replaceable.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="replaceable.role.attrib"/>
      <ref name="replaceable.class.attrib"/>
      <ref name="local.replaceable.attrib"/>
   </define>

   <define name="db.replaceable">
      <element name="replaceable">
         <ref name="replaceable.attlist"/>
         <zeroOrMore>
            <choice>
               <ref name="docbook.text"/>
               <ref name="db.co"/>
            </choice>
         </zeroOrMore>
      </element>
   </define>

   <define name="returnvalue.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.returnvalue.attrib">
      <empty/>
   </define>

   <define name="returnvalue.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="returnvalue.role.attrib"/>
      <ref name="local.returnvalue.attrib"/>
   </define>

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

   <define name="xmltag.class.attrib">
      <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="xmltag.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.xmltag.attrib">
      <empty/>
   </define>

   <define name="xmltag.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="xmltag.role.attrib"/>
      <ref name="xmltag.class.attrib"/>
      <ref name="local.xmltag.attrib"/>
   </define>

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

   <define name="symbol.class.attrib">
      <optional>
         <attribute name="class">
            <value>limit</value>
         </attribute>
      </optional>
   </define>

   <define name="symbol.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.symbol.attrib">
      <empty/>
   </define>

   <define name="symbol.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="symbol.role.attrib"/>
      <ref name="symbol.class.attrib"/>
      <ref name="local.symbol.attrib"/>
   </define>

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

   <define name="systemitem.class.attrib">
      <optional>
         <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>
      </optional>
   </define>

   <define name="systemitem.inlines">
      <choice>
         <choice>
            <ref name="docbook.text"/>
            <ref name="db.co"/>
         </choice>
         <ref name="db.co"/>
      </choice>
   </define>

   <define name="systemitem.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.systemitem.attrib">
      <empty/>
   </define>

   <define name="systemitem.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="systemitem.role.attrib"/>
      <ref name="systemitem.class.attrib"/>
      <ref name="local.systemitem.attrib"/>
   </define>

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

   <define name="uri.type.attrib">
      <optional>
         <attribute name="type"/>
      </optional>
   </define>

   <define name="uri.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.uri.attrib">
      <empty/>
   </define>

   <define name="uri.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="uri.role.attrib"/>
      <ref name="uri.type.attrib"/>
      <ref name="local.uri.attrib"/>
   </define>

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

   <define name="token.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.token.attrib">
      <empty/>
   </define>

   <define name="token.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="token.role.attrib"/>
      <ref name="local.token.attrib"/>
   </define>

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

   <define name="type.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.type.attrib">
      <empty/>
   </define>

   <define name="type.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="type.role.attrib"/>
      <ref name="local.type.attrib"/>
   </define>

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

   <define name="userinput.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.userinput.attrib">
      <empty/>
   </define>

   <define name="userinput.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="userinput.role.attrib"/>
      <ref name="local.userinput.attrib"/>
   </define>

   <define name="db.userinput">
      <element name="userinput">
         <ref name="userinput.attlist"/>
         <zeroOrMore>
            <choice>
               <ref name="inlines"/>
               <ref name="db.co"/>
            </choice>
         </zeroOrMore>
      </element>
   </define>

   <define name="abbrev.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.abbrev.attrib">
      <empty/>
   </define>

   <define name="abbrev.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="abbrev.role.attrib"/>
      <ref name="local.abbrev.attrib"/>
   </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>

   <define name="acronym.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.acronym.attrib">
      <empty/>
   </define>

   <define name="acronym.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="acronym.role.attrib"/>
      <ref name="local.acronym.attrib"/>
   </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>

   <define name="citation.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.citation.attrib">
      <empty/>
   </define>

   <define name="citation.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="citation.role.attrib"/>
      <ref name="local.citation.attrib"/>
   </define>

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

   <define name="citerefentry.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.citerefentry.attrib">
      <empty/>
   </define>

   <define name="citerefentry.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="citerefentry.role.attrib"/>
      <ref name="local.citerefentry.attrib"/>
   </define>

   <define name="db.citerefentry">
      <element name="citerefentry">
         <ref name="citerefentry.attlist"/>
         <ref name="db.refentrytitle"/>
         <optional>
            <ref name="db.manvolnum"/>
         </optional>
      </element>
   </define>

   <define name="refentrytitle.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.refentrytitle.attrib">
      <empty/>
   </define>

   <define name="refentrytitle.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="refentrytitle.role.attrib"/>
      <ref name="local.refentrytitle.attrib"/>
   </define>

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

   <define name="manvolnum.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.manvolnum.attrib">
      <empty/>
   </define>

   <define name="manvolnum.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="manvolnum.role.attrib"/>
      <ref name="local.manvolnum.attrib"/>
   </define>

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

   <define name="citetitle.pubwork.attrib">
      <optional>
         <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>
      </optional>
   </define>

   <define name="citetitle.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.citetitle.attrib">
      <empty/>
   </define>

   <define name="citetitle.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="citetitle.role.attrib"/>
      <ref name="citetitle.pubwork.attrib"/>
      <ref name="local.citetitle.attrib"/>
   </define>

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

   <define name="emphasis.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.emphasis.attrib">
      <empty/>
   </define>

   <define name="emphasis.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="emphasis.role.attrib"/>
      <ref name="local.emphasis.attrib"/>
   </define>

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

   <define name="firstterm.baseform.attrib">
      <ref name="glossterm.baseform.attrib"/>
   </define>

   <define name="firstterm.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.firstterm.attrib">
      <empty/>
   </define>

   <define name="firstterm.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="firstterm.role.attrib"/>
      <ref name="firstterm.baseform.attrib"/>
      <ref name="local.firstterm.attrib"/>
   </define>

   <define name="db.firstterm">
      <element name="firstterm">
         <ref name="firstterm.attlist"/>
         <s:rule context="firstterm[@linkend]" xmlns:s="http://www.ascc.net/xml/schematron">
            <s:assert test="name(//*[@id=current()/@linkend]) = 'glossentry'">@linkend on firstterm must point to a glossentry.</s:assert>
         </s:rule>
         <zeroOrMore>
            <ref name="inlines"/>
         </zeroOrMore>
      </element>
   </define>

   <define name="foreignphrase.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.foreignphrase.attrib">
      <empty/>
   </define>

   <define name="foreignphrase.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="foreignphrase.role.attrib"/>
      <ref name="local.foreignphrase.attrib"/>
   </define>

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

   <define name="glossterm.baseform.attrib">
      <optional>
         <attribute name="baseform"/>
      </optional>
   </define>

   <define name="glossterm.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.glossterm.attrib">
      <empty/>
   </define>

   <define name="glossterm.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="glossterm.role.attrib"/>
      <ref name="glossterm.baseform.attrib"/>
      <ref name="local.glossterm.attrib"/>
   </define>

   <define name="db.glossterm">
      <element name="glossterm">
         <ref name="glossterm.attlist"/>
         <s:rule context="glossterm[@linkend]" xmlns:s="http://www.ascc.net/xml/schematron">
            <s:assert test="name(//*[@id=current()/@linkend]) = 'glossentry'">@linkend on glossterm must point to a glossentry.</s:assert>
         </s:rule>
         <zeroOrMore>
            <ref name="inlines"/>
         </zeroOrMore>
      </element>
   </define>

   <define name="phrase.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.phrase.attrib">
      <empty/>
   </define>

   <define name="phrase.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="phrase.role.attrib"/>
      <ref name="local.phrase.attrib"/>
   </define>

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

   <define name="quote.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.quote.attrib">
      <empty/>
   </define>

   <define name="quote.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="quote.role.attrib"/>
      <ref name="local.quote.attrib"/>
   </define>

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

   <define name="subscript.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.subscript.attrib">
      <empty/>
   </define>

   <define name="subscript.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="subscript.role.attrib"/>
      <ref name="local.subscript.attrib"/>
   </define>

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

   <define name="superscript.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.superscript.attrib">
      <empty/>
   </define>

   <define name="superscript.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="superscript.role.attrib"/>
      <ref name="local.superscript.attrib"/>
   </define>

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

   <define name="trademark.class.attrib">
      <optional>
         <attribute name="class">
            <choice>
               <value>copyright</value>
               <value>registered</value>
               <value>service</value>
               <value>trade</value>
            </choice>
         </attribute>
      </optional>
   </define>

   <define name="trademark.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.trademark.attrib">
      <empty/>
   </define>

   <define name="trademark.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="trademark.role.attrib"/>
      <ref name="trademark.class.attrib"/>
      <ref name="local.trademark.attrib"/>
   </define>

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

   <define name="wordasword.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.wordasword.attrib">
      <empty/>
   </define>

   <define name="wordasword.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="wordasword.role.attrib"/>
      <ref name="local.wordasword.attrib"/>
   </define>

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

   <define name="footnoteref.linkend.attrib">
      <ref name="linkend.attribute"/>
   </define>

   <define name="footnoteref.label.attrib">
      <optional>
         <attribute name="label"/>
      </optional>
   </define>

   <define name="footnoteref.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.footnoteref.attrib">
      <empty/>
   </define>

   <define name="footnoteref.attlist">
      <ref name="common.attributes"/>
      <ref name="footnoteref.role.attrib"/>
      <ref name="footnoteref.linkend.attrib"/>
      <ref name="footnoteref.label.attrib"/>
      <ref name="local.footnoteref.attrib"/>
   </define>

   <define name="db.footnoteref">
      <element name="footnoteref">
         <ref name="footnoteref.attlist"/>
         <s:rule context="footnoteref" xmlns:s="http://www.ascc.net/xml/schematron">
            <s:assert test="name(//*[@id=current()/@linkend]) = 'footnote'">@linkend on footnoteref must point to a footnote.</s:assert>
         </s:rule>
         <empty/>
      </element>
   </define>

   <define name="xref.xrefstyle.attrib">
      <optional>
         <attribute name="xrefstyle"/>
      </optional>
   </define>

   <define name="xref.endterm.attrib">
      <optional>
         <attribute name="endterm">
            <data type="IDREF"/>
         </attribute>
      </optional>
   </define>

   <define name="xref.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.xref.attrib">
      <empty/>
   </define>

   <define name="xref.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes.req"/>
      <ref name="xref.role.attrib"/>
      <ref name="xref.xrefstyle.attrib"/>
      <ref name="xref.endterm.attrib"/>
      <ref name="local.xref.attrib"/>
   </define>

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

   <define name="anchor.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.anchor.attrib">
      <empty/>
   </define>

   <define name="anchor.attlist">
      <ref name="common.attrib.idreq"/>
      <ref name="anchor.role.attrib"/>
      <ref name="local.anchor.attrib"/>
   </define>

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

   <define name="indexterm.singular.significance.attrib">
      <optional>
         <ref name="significance.attribute"/>
      </optional>
   </define>

   <define name="indexterm.startofrange.significance.attrib">
      <optional>
         <ref name="significance.attribute"/>
      </optional>
   </define>

   <define name="indexterm.endofrange.significance.attrib">
      <optional>
         <ref name="significance.attribute"/>
      </optional>
   </define>

   <define name="indexterm.singular.zone.attrib">
      <optional>
         <ref name="zone.attribute"/>
      </optional>
   </define>

   <define name="indexterm.startofrange.zone.attrib">
      <optional>
         <ref name="zone.attribute"/>
      </optional>
   </define>

   <define name="indexterm.endofrange.zone.attrib">
      <optional>
         <ref name="zone.attribute"/>
      </optional>
   </define>

   <define name="indexterm.singular.pagenum.attrib">
      <optional>
         <ref name="pagenum.attribute"/>
      </optional>
   </define>

   <define name="indexterm.startofrange.pagenum.attrib">
      <optional>
         <ref name="pagenum.attribute"/>
      </optional>
   </define>

   <define name="indexterm.endofrange.pagenum.attrib">
      <optional>
         <ref name="pagenum.attribute"/>
      </optional>
   </define>

   <define name="indexterm.singular.scope.attrib">
      <optional>
         <ref name="scope.attribute"/>
      </optional>
   </define>

   <define name="indexterm.startofrange.scope.attrib">
      <optional>
         <ref name="scope.attribute"/>
      </optional>
   </define>

   <define name="indexterm.endofrange.scope.attrib">
      <optional>
         <ref name="scope.attribute"/>
      </optional>
   </define>

   <define name="indexterm.singular.class.attrib">
      <optional>
         <attribute name="class">
            <value>singular</value>
         </attribute>
      </optional>
   </define>

   <define name="indexterm.startofrange.class.attrib">
      <attribute name="class">
         <value>startofrange</value>
      </attribute>
   </define>

   <define name="indexterm.endofrange.class.attrib">
      <attribute name="class">
         <value>endofrange</value>
      </attribute>
   </define>

   <define name="indexterm.endofrange.startref.attrib">
      <attribute name="startref">
         <data type="IDREF"/>
      </attribute>
   </define>

   <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>

   <define name="indexterm.singular.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.indexterm.singular.attrib">
      <empty/>
   </define>

   <define name="indexterm.singular.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="indexterm.singular.role.attrib"/>
      <ref name="indexterm.singular.significance.attrib"/>
      <ref name="indexterm.singular.zone.attrib"/>
      <ref name="indexterm.singular.pagenum.attrib"/>
      <ref name="indexterm.singular.scope.attrib"/>
      <ref name="indexterm.singular.class.attrib"/>
      <ref name="local.indexterm.singular.attrib"/>
   </define>

   <define name="indexterm.singular">
      <element name="indexterm">
         <ref name="indexterm.singular.attlist"/>
         <ref name="indexterm.contentmodel"/>
      </element>
   </define>

   <define name="indexterm.startofrange.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.indexterm.startofrange.attrib">
      <empty/>
   </define>

   <define name="indexterm.startofrange.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="indexterm.startofrange.role.attrib"/>
      <ref name="indexterm.startofrange.significance.attrib"/>
      <ref name="indexterm.startofrange.zone.attrib"/>
      <ref name="indexterm.startofrange.pagenum.attrib"/>
      <ref name="indexterm.startofrange.scope.attrib"/>
      <ref name="indexterm.startofrange.class.attrib"/>
      <ref name="local.indexterm.startofrange.attrib"/>
   </define>

   <define name="indexterm.startofrange">
      <element name="indexterm">
         <ref name="indexterm.startofrange.attlist"/>
         <ref name="indexterm.contentmodel"/>
      </element>
   </define>

   <define name="indexterm.endofrange.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.indexterm.endofrange.attrib">
      <empty/>
   </define>

   <define name="indexterm.endofrange.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="indexterm.endofrange.role.attrib"/>
      <ref name="indexterm.endofrange.significance.attrib"/>
      <ref name="indexterm.endofrange.zone.attrib"/>
      <ref name="indexterm.endofrange.pagenum.attrib"/>
      <ref name="indexterm.endofrange.scope.attrib"/>
      <ref name="indexterm.endofrange.class.attrib"/>
      <ref name="indexterm.endofrange.startref.attrib"/>
      <ref name="local.indexterm.endofrange.attrib"/>
   </define>

   <define name="indexterm.endofrange">
      <element name="indexterm">
         <ref name="indexterm.endofrange.attlist"/>
         <ref name="indexterm.contentmodel"/>
      </element>
   </define>

   <define name="db.indexterm">
      <choice>
         <ref name="indexterm.singular"/>
         <ref name="indexterm.startofrange"/>
         <ref name="indexterm.endofrange"/>
      </choice>
   </define>

   <define name="sortas.attribute">
      <optional>
         <attribute name="sortas"/>
      </optional>
   </define>

   <define name="primary.sortas.attrib">
      <optional>
         <ref name="sortas.attribute"/>
      </optional>
   </define>

   <define name="primary.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.primary.attrib">
      <empty/>
   </define>

   <define name="primary.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="primary.role.attrib"/>
      <ref name="primary.sortas.attrib"/>
      <ref name="local.primary.attrib"/>
   </define>

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

   <define name="secondary.sortas.attrib">
      <optional>
         <ref name="sortas.attribute"/>
      </optional>
   </define>

   <define name="secondary.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.secondary.attrib">
      <empty/>
   </define>

   <define name="secondary.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="secondary.role.attrib"/>
      <ref name="secondary.sortas.attrib"/>
      <ref name="local.secondary.attrib"/>
   </define>

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

   <define name="tertiary.sortas.attrib">
      <optional>
         <ref name="sortas.attribute"/>
      </optional>
   </define>

   <define name="tertiary.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.tertiary.attrib">
      <empty/>
   </define>

   <define name="tertiary.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="tertiary.role.attrib"/>
      <ref name="tertiary.sortas.attrib"/>
      <ref name="local.tertiary.attrib"/>
   </define>

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

   <define name="see.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.see.attrib">
      <empty/>
   </define>

   <define name="see.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="see.role.attrib"/>
      <ref name="local.see.attrib"/>
   </define>

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

   <define name="seealso.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.seealso.attrib">
      <empty/>
   </define>

   <define name="seealso.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="seealso.role.attrib"/>
      <ref name="local.seealso.attrib"/>
   </define>

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

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

   <define name="task.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.task.attrib">
      <empty/>
   </define>

   <define name="task.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="task.role.attrib"/>
      <ref name="local.task.attrib"/>
   </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>

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

   <define name="tasksummary.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.tasksummary.attrib">
      <empty/>
   </define>

   <define name="tasksummary.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="tasksummary.role.attrib"/>
      <ref name="local.tasksummary.attrib"/>
   </define>

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

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

   <define name="taskprerequisites.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.taskprerequisites.attrib">
      <empty/>
   </define>

   <define name="taskprerequisites.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="taskprerequisites.role.attrib"/>
      <ref name="local.taskprerequisites.attrib"/>
   </define>

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

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

   <define name="taskrelated.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.taskrelated.attrib">
      <empty/>
   </define>

   <define name="taskrelated.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="taskrelated.role.attrib"/>
      <ref name="local.taskrelated.attrib"/>
   </define>

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

   <define name="area.units.enumtype.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.othertype.attributes">
      <attribute name="units">
         <value>other</value>
      </attribute>
      <attribute name="otherunits">
         <data type="NMTOKEN"/>
      </attribute>
   </define>

   <define name="area.units.attribute">
      <choice>
         <ref name="area.units.enumtype.attribute"/>
         <ref name="area.units.othertype.attributes"/>
      </choice>
   </define>

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

   <define name="calloutlist.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.calloutlist.attrib">
      <empty/>
   </define>

   <define name="calloutlist.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="calloutlist.role.attrib"/>
      <ref name="local.calloutlist.attrib"/>
   </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>

   <define name="callout.arearefs.attrib">
      <attribute name="arearefs">
         <data type="IDREFS"/>
      </attribute>
   </define>

   <define name="callout.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.callout.attrib">
      <empty/>
   </define>

   <define name="callout.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="callout.role.attrib"/>
      <ref name="callout.arearefs.attrib"/>
      <ref name="local.callout.attrib"/>
   </define>

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

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

   <define name="programlistingco.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.programlistingco.attrib">
      <empty/>
   </define>

   <define name="programlistingco.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="programlistingco.role.attrib"/>
      <ref name="local.programlistingco.attrib"/>
   </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>

   <define name="areaspec.units.attrib">
      <ref name="area.units.attribute"/>
   </define>

   <define name="areaspec.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.areaspec.attrib">
      <empty/>
   </define>

   <define name="areaspec.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="areaspec.role.attrib"/>
      <ref name="areaspec.units.attrib"/>
      <ref name="local.areaspec.attrib"/>
   </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>

   <define name="area.units.attrib">
      <ref name="area.units.attribute"/>
   </define>

   <define name="area.linkends.attrib">
      <optional>
         <ref name="linkends.attribute"/>
      </optional>
   </define>

   <define name="area.label.attrib">
      <optional>
         <attribute name="label"/>
      </optional>
   </define>

   <define name="area.coords.attrib">
      <attribute name="coords"/>
   </define>

   <define name="area.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.area.attrib">
      <empty/>
   </define>

   <define name="area.attlist">
      <ref name="common.attrib.idreq"/>
      <ref name="area.role.attrib"/>
      <ref name="area.units.attrib"/>
      <ref name="area.linkends.attrib"/>
      <ref name="area.label.attrib"/>
      <ref name="area.coords.attrib"/>
      <ref name="local.area.attrib"/>
   </define>

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

   <define name="areaset.units.attrib">
      <ref name="area.units.attribute"/>
   </define>

   <define name="areaset.label.attrib">
      <optional>
         <attribute name="label"/>
      </optional>
   </define>

   <define name="areaset.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.areaset.attrib">
      <empty/>
   </define>

   <define name="areaset.attlist">
      <ref name="common.attrib.idreq"/>
      <ref name="common.linking.attributes"/>
      <ref name="areaset.role.attrib"/>
      <ref name="areaset.units.attrib"/>
      <ref name="areaset.label.attrib"/>
      <ref name="local.areaset.attrib"/>
   </define>

   <define name="db.areaset">
      <element name="areaset">
         <ref name="areaset.attlist"/>
         <oneOrMore>
            <ref name="db.area"/>
         </oneOrMore>
      </element>
   </define>

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

   <define name="screenco.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.screenco.attrib">
      <empty/>
   </define>

   <define name="screenco.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="screenco.role.attrib"/>
      <ref name="local.screenco.attrib"/>
   </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>

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

   <define name="mediaobjectco.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.mediaobjectco.attrib">
      <empty/>
   </define>

   <define name="mediaobjectco.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="mediaobjectco.role.attrib"/>
      <ref name="local.mediaobjectco.attrib"/>
   </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>

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

   <define name="imageobjectco.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.imageobjectco.attrib">
      <empty/>
   </define>

   <define name="imageobjectco.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="imageobjectco.role.attrib"/>
      <ref name="local.imageobjectco.attrib"/>
   </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>

   <define name="co.linkends.attrib">
      <optional>
         <ref name="linkends.attribute"/>
      </optional>
   </define>

   <define name="co.label.attrib">
      <optional>
         <attribute name="label"/>
      </optional>
   </define>

   <define name="co.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.co.attrib">
      <empty/>
   </define>

   <define name="co.attlist">
      <ref name="common.attrib.idreq"/>
      <ref name="co.role.attrib"/>
      <ref name="co.linkends.attrib"/>
      <ref name="co.label.attrib"/>
      <ref name="local.co.attrib"/>
   </define>

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

   <define name="coref.label.attrib">
      <optional>
         <attribute name="label"/>
      </optional>
   </define>

   <define name="coref.linkend.attrib">
      <ref name="linkend.attribute"/>
   </define>

   <define name="coref.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.coref.attrib">
      <empty/>
   </define>

   <define name="coref.attlist">
      <ref name="common.attributes"/>
      <ref name="coref.role.attrib"/>
      <ref name="coref.label.attrib"/>
      <ref name="coref.linkend.attrib"/>
      <ref name="local.coref.attrib"/>
   </define>

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

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

   <define name="productionset.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.productionset.attrib">
      <empty/>
   </define>

   <define name="productionset.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="productionset.role.attrib"/>
      <ref name="local.productionset.attrib"/>
   </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>

   <define name="production.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.production.attrib">
      <empty/>
   </define>

   <define name="production.attlist">
      <ref name="common.attrib.idreq"/>
      <ref name="common.linking.attributes"/>
      <ref name="production.role.attrib"/>
      <ref name="local.production.attrib"/>
   </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>

   <define name="lhs.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.lhs.attrib">
      <empty/>
   </define>

   <define name="lhs.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="lhs.role.attrib"/>
      <ref name="local.lhs.attrib"/>
   </define>

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

   <define name="rhs.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.rhs.attrib">
      <empty/>
   </define>

   <define name="rhs.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="rhs.role.attrib"/>
      <ref name="local.rhs.attrib"/>
   </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>

   <define name="nonterminal.def.attrib">
      <attribute name="def"/>
   </define>

   <define name="nonterminal.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.nonterminal.attrib">
      <empty/>
   </define>

   <define name="nonterminal.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="nonterminal.role.attrib"/>
      <ref name="nonterminal.def.attrib"/>
      <ref name="local.nonterminal.attrib"/>
   </define>

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

   <define name="constraint.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.constraint.attrib">
      <empty/>
   </define>

   <define name="constraint.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="constraint.role.attrib"/>
      <ref name="local.constraint.attrib"/>
   </define>

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

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

   <define name="productionrecap.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.productionrecap.attrib">
      <empty/>
   </define>

   <define name="productionrecap.attlist">
      <ref name="common.attributes"/>
      <ref name="productionrecap.role.attrib"/>
      <ref name="productionrecap.linkend.attrib"/>
      <ref name="local.productionrecap.attrib"/>
   </define>

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

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

   <define name="constraintdef.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.constraintdef.attrib">
      <empty/>
   </define>

   <define name="constraintdef.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="constraintdef.role.attrib"/>
      <ref name="local.constraintdef.attrib"/>
   </define>

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

   <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>

   <define name="tgroup.char.attrib">
      <optional>
         <ref name="char.attribute"/>
      </optional>
   </define>

   <define name="tgroup.charoff.attrib">
      <optional>
         <ref name="charoff.attribute"/>
      </optional>
   </define>

   <define name="tgroup.tgroupstyle.attrib">
      <optional>
         <attribute name="tgroupstyle"/>
      </optional>
   </define>

   <define name="tgroup.cols.attrib">
      <attribute name="cols">
         <data type="integer"/>
      </attribute>
   </define>

   <define name="tgroup.colsep.attrib">
      <optional>
         <ref name="colsep.attribute"/>
      </optional>
   </define>

   <define name="tgroup.rowsep.attrib">
      <optional>
         <ref name="rowsep.attribute"/>
      </optional>
   </define>

   <define name="tgroup.align.attrib">
      <optional>
         <ref name="align.attribute"/>
      </optional>
   </define>

   <define name="tgroup.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.tgroup.attrib">
      <empty/>
   </define>

   <define name="tgroup.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="tgroup.role.attrib"/>
      <ref name="tgroup.char.attrib"/>
      <ref name="tgroup.charoff.attrib"/>
      <ref name="tgroup.tgroupstyle.attrib"/>
      <ref name="tgroup.cols.attrib"/>
      <ref name="tgroup.colsep.attrib"/>
      <ref name="tgroup.rowsep.attrib"/>
      <ref name="tgroup.align.attrib"/>
      <ref name="local.tgroup.attrib"/>
   </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>

   <define name="colspec.colnum.attrib">
      <optional>
         <attribute name="colnum">
            <data type="integer"/>
         </attribute>
      </optional>
   </define>

   <define name="colspec.char.attrib">
      <optional>
         <ref name="char.attribute"/>
      </optional>
   </define>

   <define name="colspec.colsep.attrib">
      <optional>
         <ref name="colsep.attribute"/>
      </optional>
   </define>

   <define name="colspec.colwidth.attrib">
      <optional>
         <attribute name="colwidth"/>
      </optional>
   </define>

   <define name="colspec.charoff.attrib">
      <optional>
         <ref name="charoff.attribute"/>
      </optional>
   </define>

   <define name="colspec.colname.attrib">
      <optional>
         <ref name="colname.attribute"/>
      </optional>
   </define>

   <define name="colspec.rowsep.attrib">
      <optional>
         <ref name="rowsep.attribute"/>
      </optional>
   </define>

   <define name="colspec.align.attrib">
      <optional>
         <ref name="align.attribute"/>
      </optional>
   </define>

   <define name="colspec.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.colspec.attrib">
      <empty/>
   </define>

   <define name="colspec.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="colspec.role.attrib"/>
      <ref name="colspec.colnum.attrib"/>
      <ref name="colspec.char.attrib"/>
      <ref name="colspec.colsep.attrib"/>
      <ref name="colspec.colwidth.attrib"/>
      <ref name="colspec.charoff.attrib"/>
      <ref name="colspec.colname.attrib"/>
      <ref name="colspec.rowsep.attrib"/>
      <ref name="colspec.align.attrib"/>
      <ref name="local.colspec.attrib"/>
   </define>

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

   <define name="spanspec.namest.attrib">
      <attribute name="namest"/>
   </define>

   <define name="spanspec.nameend.attrib">
      <attribute name="nameend"/>
   </define>

   <define name="spanspec.spanname.attrib">
      <ref name="spanname.attribute"/>
   </define>

   <define name="spanspec.char.attrib">
      <optional>
         <ref name="char.attribute"/>
      </optional>
   </define>

   <define name="spanspec.colsep.attrib">
      <optional>
         <ref name="colsep.attribute"/>
      </optional>
   </define>

   <define name="spanspec.charoff.attrib">
      <optional>
         <ref name="charoff.attribute"/>
      </optional>
   </define>

   <define name="spanspec.rowsep.attrib">
      <optional>
         <ref name="rowsep.attribute"/>
      </optional>
   </define>

   <define name="spanspec.align.attrib">
      <optional>
         <ref name="align.attribute"/>
      </optional>
   </define>

   <define name="spanspec.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.spanspec.attrib">
      <empty/>
   </define>

   <define name="spanspec.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="spanspec.role.attrib"/>
      <ref name="spanspec.namest.attrib"/>
      <ref name="spanspec.nameend.attrib"/>
      <ref name="spanspec.spanname.attrib"/>
      <ref name="spanspec.char.attrib"/>
      <ref name="spanspec.colsep.attrib"/>
      <ref name="spanspec.charoff.attrib"/>
      <ref name="spanspec.rowsep.attrib"/>
      <ref name="spanspec.align.attrib"/>
      <ref name="local.spanspec.attrib"/>
   </define>

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

   <define name="cals.thead.valign.attrib">
      <optional>
         <ref name="valign.attribute"/>
      </optional>
   </define>

   <define name="cals.thead.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.cals.thead.attrib">
      <empty/>
   </define>

   <define name="cals.thead.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="cals.thead.role.attrib"/>
      <ref name="cals.thead.valign.attrib"/>
      <ref name="local.cals.thead.attrib"/>
   </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>

   <define name="cals.tfoot.valign.attrib">
      <optional>
         <ref name="valign.attribute"/>
      </optional>
   </define>

   <define name="cals.tfoot.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.cals.tfoot.attrib">
      <empty/>
   </define>

   <define name="cals.tfoot.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="cals.tfoot.role.attrib"/>
      <ref name="cals.tfoot.valign.attrib"/>
      <ref name="local.cals.tfoot.attrib"/>
   </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>

   <define name="cals.tbody.valign.attrib">
      <optional>
         <ref name="valign.attribute"/>
      </optional>
   </define>

   <define name="cals.tbody.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.cals.tbody.attrib">
      <empty/>
   </define>

   <define name="cals.tbody.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="cals.tbody.role.attrib"/>
      <ref name="cals.tbody.valign.attrib"/>
      <ref name="local.cals.tbody.attrib"/>
   </define>

   <define name="cals.tbody">
      <element name="tbody">
         <ref name="cals.tbody.attlist"/>
         <oneOrMore>
            <ref name="db.row"/>
         </oneOrMore>
      </element>
   </define>

   <define name="row.rowsep.attrib">
      <optional>
         <ref name="rowsep.attribute"/>
      </optional>
   </define>

   <define name="row.valign.attrib">
      <optional>
         <ref name="valign.attribute"/>
      </optional>
   </define>

   <define name="row.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.row.attrib">
      <empty/>
   </define>

   <define name="row.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="row.role.attrib"/>
      <ref name="row.rowsep.attrib"/>
      <ref name="row.valign.attrib"/>
      <ref name="local.row.attrib"/>
   </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>

   <define name="entry.nameend.attrib">
      <optional>
         <attribute name="nameend"/>
      </optional>
   </define>

   <define name="entry.valign.attrib">
      <optional>
         <ref name="valign.attribute"/>
      </optional>
   </define>

   <define name="entry.char.attrib">
      <optional>
         <ref name="char.attribute"/>
      </optional>
   </define>

   <define name="entry.colsep.attrib">
      <optional>
         <ref name="colsep.attribute"/>
      </optional>
   </define>

   <define name="entry.charoff.attrib">
      <optional>
         <ref name="charoff.attribute"/>
      </optional>
   </define>

   <define name="entry.morerows.attrib">
      <optional>
         <attribute name="morerows">
            <data type="integer"/>
         </attribute>
      </optional>
   </define>

   <define name="entry.spanname.attrib">
      <optional>
         <attribute name="spanname"/>
      </optional>
   </define>

   <define name="entry.namest.attrib">
      <optional>
         <attribute name="namest"/>
      </optional>
   </define>

   <define name="entry.colname.attrib">
      <optional>
         <ref name="colname.attribute"/>
      </optional>
   </define>

   <define name="entry.rowsep.attrib">
      <optional>
         <ref name="rowsep.attribute"/>
      </optional>
   </define>

   <define name="entry.rotate.attrib">
      <optional>
         <attribute name="rotate"/>
      </optional>
   </define>

   <define name="entry.align.attrib">
      <optional>
         <ref name="align.attribute"/>
      </optional>
   </define>

   <define name="entry.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.entry.attrib">
      <empty/>
   </define>

   <define name="entry.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="entry.role.attrib"/>
      <ref name="entry.nameend.attrib"/>
      <ref name="entry.valign.attrib"/>
      <ref name="entry.char.attrib"/>
      <ref name="entry.colsep.attrib"/>
      <ref name="entry.charoff.attrib"/>
      <ref name="entry.morerows.attrib"/>
      <ref name="entry.spanname.attrib"/>
      <ref name="entry.namest.attrib"/>
      <ref name="entry.colname.attrib"/>
      <ref name="entry.rowsep.attrib"/>
      <ref name="entry.rotate.attrib"/>
      <ref name="entry.align.attrib"/>
      <ref name="local.entry.attrib"/>
   </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>

   <define name="entrytbl.nameend.attrib">
      <optional>
         <attribute name="nameend"/>
      </optional>
   </define>

   <define name="entrytbl.char.attrib">
      <optional>
         <ref name="char.attribute"/>
      </optional>
   </define>

   <define name="entrytbl.charoff.attrib">
      <optional>
         <ref name="charoff.attribute"/>
      </optional>
   </define>

   <define name="entrytbl.spanname.attrib">
      <optional>
         <attribute name="spanname"/>
      </optional>
   </define>

   <define name="entrytbl.namest.attrib">
      <optional>
         <attribute name="namest"/>
      </optional>
   </define>

   <define name="entrytbl.tgroupstyle.attrib">
      <optional>
         <attribute name="tgroupstyle"/>
      </optional>
   </define>

   <define name="entrytbl.cols.attrib">
      <optional>
         <attribute name="cols">
            <data type="integer"/>
         </attribute>
      </optional>
   </define>

   <define name="entrytbl.colsep.attrib">
      <optional>
         <ref name="colsep.attribute"/>
      </optional>
   </define>

   <define name="entrytbl.rowsep.attrib">
      <optional>
         <ref name="rowsep.attribute"/>
      </optional>
   </define>

   <define name="entrytbl.colname.attrib">
      <optional>
         <ref name="colname.attribute"/>
      </optional>
   </define>

   <define name="entrytbl.align.attrib">
      <optional>
         <ref name="align.attribute"/>
      </optional>
   </define>

   <define name="entrytbl.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.entrytbl.attrib">
      <empty/>
   </define>

   <define name="entrytbl.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="entrytbl.role.attrib"/>
      <ref name="entrytbl.nameend.attrib"/>
      <ref name="entrytbl.char.attrib"/>
      <ref name="entrytbl.charoff.attrib"/>
      <ref name="entrytbl.spanname.attrib"/>
      <ref name="entrytbl.namest.attrib"/>
      <ref name="entrytbl.tgroupstyle.attrib"/>
      <ref name="entrytbl.cols.attrib"/>
      <ref name="entrytbl.colsep.attrib"/>
      <ref name="entrytbl.rowsep.attrib"/>
      <ref name="entrytbl.colname.attrib"/>
      <ref name="entrytbl.align.attrib"/>
      <ref name="local.entrytbl.attrib"/>
   </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>

   <define name="cals.table.tabstyle.attrib">
      <optional>
         <attribute name="tabstyle"/>
      </optional>
   </define>

   <define name="cals.table.orient.attrib">
      <optional>
         <attribute name="orient">
            <choice>
               <value>land</value>
               <value>port</value>
            </choice>
         </attribute>
      </optional>
   </define>

   <define name="cals.table.colsep.attrib">
      <optional>
         <ref name="colsep.attribute"/>
      </optional>
   </define>

   <define name="cals.table.rowsep.attrib">
      <optional>
         <ref name="rowsep.attribute"/>
      </optional>
   </define>

   <define name="cals.table.frame.attrib">
      <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>
   </define>

   <define name="cals.table.pgwide.attrib">
      <optional>
         <attribute name="pgwide">
            <choice>
               <value>0</value>
               <value>1</value>
            </choice>
         </attribute>
      </optional>
   </define>

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

   <define name="cals.table.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.cals.table.attrib">
      <empty/>
   </define>

   <define name="cals.table.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="cals.table.role.attrib"/>
      <ref name="cals.table.tabstyle.attrib"/>
      <ref name="cals.table.orient.attrib"/>
      <ref name="cals.table.colsep.attrib"/>
      <ref name="cals.table.rowsep.attrib"/>
      <ref name="cals.table.frame.attrib"/>
      <ref name="cals.table.pgwide.attrib"/>
      <ref name="local.cals.table.attrib"/>
   </define>

   <define name="cals.table">
      <element name="table">
         <ref name="cals.table.attlist"/>
         <ref name="cals.table.info"/>
         <zeroOrMore>
            <ref name="db.indexterm"/>
         </zeroOrMore>
         <zeroOrMore>
            <ref name="db.textobject"/>
         </zeroOrMore>
         <choice>
            <oneOrMore>
               <ref name="db.mediaobject"/>
            </oneOrMore>
            <oneOrMore>
               <ref name="db.tgroup"/>
            </oneOrMore>
         </choice>
      </element>
   </define>

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

   <define name="cals.informaltable.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.cals.informaltable.attrib">
      <empty/>
   </define>

   <define name="cals.informaltable.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="cals.informaltable.role.attrib"/>
      <ref name="cals.informaltable.tabstyle.attrib"/>
      <ref name="cals.informaltable.orient.attrib"/>
      <ref name="cals.informaltable.colsep.attrib"/>
      <ref name="cals.informaltable.rowsep.attrib"/>
      <ref name="cals.informaltable.frame.attrib"/>
      <ref name="cals.informaltable.pgwide.attrib"/>
      <ref name="local.cals.informaltable.attrib"/>
   </define>

   <define name="cals.informaltable">
      <element name="informaltable">
         <ref name="cals.informaltable.attlist"/>
         <ref name="cals.informaltable.info"/>
         <zeroOrMore>
            <ref name="db.indexterm"/>
         </zeroOrMore>
         <zeroOrMore>
            <ref name="db.textobject"/>
         </zeroOrMore>
         <choice>
            <oneOrMore>
               <ref name="db.mediaobject"/>
            </oneOrMore>
            <oneOrMore>
               <ref name="db.tgroup"/>
            </oneOrMore>
         </choice>
      </element>
   </define>

   <define name="cals.informaltable.tabstyle.attrib">
      <ref name="cals.table.tabstyle.attrib"/>
   </define>

   <define name="cals.informaltable.orient.attrib">
      <ref name="cals.table.orient.attrib"/>
   </define>

   <define name="cals.informaltable.colsep.attrib">
      <ref name="cals.table.colsep.attrib"/>
   </define>

   <define name="cals.informaltable.rowsep.attrib">
      <ref name="cals.table.rowsep.attrib"/>
   </define>

   <define name="cals.informaltable.frame.attrib">
      <ref name="cals.table.frame.attrib"/>
   </define>

   <define name="cals.informaltable.pgwide.attrib">
      <ref name="cals.table.pgwide.attrib"/>
   </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.table.html.attrib">
      <ref name="html.attrs"/>
   </define>

   <define name="html.table.summary.attrib">
      <optional>
         <attribute name="summary"/>
      </optional>
   </define>

   <define name="html.table.width.attrib">
      <optional>
         <attribute name="width"/>
      </optional>
   </define>

   <define name="html.table.border.attrib">
      <optional>
         <attribute name="border"/>
      </optional>
   </define>

   <define name="html.table.frame.attrib">
      <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>
   </define>

   <define name="html.table.rules.attrib">
      <optional>
         <attribute name="rules">
            <choice>
               <value>none</value>
               <value>groups</value>
               <value>rows</value>
               <value>cols</value>
               <value>all</value>
            </choice>
         </attribute>
      </optional>
   </define>

   <define name="html.table.cellspacing.attrib">
      <optional>
         <attribute name="cellspacing"/>
      </optional>
   </define>

   <define name="html.table.cellpadding.attrib">
      <optional>
         <attribute name="cellpadding"/>
      </optional>
   </define>

   <define name="html.table.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.html.table.attrib">
      <empty/>
   </define>

   <define name="html.table.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="html.table.role.attrib"/>
      <ref name="html.table.html.attrib"/>
      <ref name="html.table.summary.attrib"/>
      <ref name="html.table.width.attrib"/>
      <ref name="html.table.border.attrib"/>
      <ref name="html.table.frame.attrib"/>
      <ref name="html.table.rules.attrib"/>
      <ref name="html.table.cellspacing.attrib"/>
      <ref name="html.table.cellpadding.attrib"/>
      <ref name="local.html.table.attrib"/>
   </define>

   <define name="html.table">
      <element name="table">
         <ref name="html.table.attlist"/>
         <ref name="html.table.model"/>
      </element>
   </define>

   <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.caption.html.attrib">
      <ref name="html.attrs"/>
   </define>

   <define name="local.html.caption.attrib">
      <empty/>
   </define>

   <define name="html.caption.attlist">
      <ref name="html.caption.html.attrib"/>
      <ref name="local.html.caption.attrib"/>
   </define>

   <define name="html.caption">
      <element name="caption">
         <ref name="html.caption.attlist"/>
         <text/>
      </element>
   </define>

   <define name="html.col.html.attrib">
      <ref name="html.attrs"/>
   </define>

   <define name="html.col.span.attrib">
      <optional>
         <attribute name="span"/>
      </optional>
   </define>

   <define name="html.col.width.attrib">
      <optional>
         <attribute name="width"/>
      </optional>
   </define>

   <define name="html.col.cellhalign.attrib">
      <ref name="html.cellhalign"/>
   </define>

   <define name="html.col.cellvalign.attrib">
      <ref name="html.cellvalign"/>
   </define>

   <define name="html.col.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.html.col.attrib">
      <empty/>
   </define>

   <define name="html.col.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="html.col.role.attrib"/>
      <ref name="html.col.html.attrib"/>
      <ref name="html.col.span.attrib"/>
      <ref name="html.col.width.attrib"/>
      <ref name="html.col.cellhalign.attrib"/>
      <ref name="html.col.cellvalign.attrib"/>
      <ref name="local.html.col.attrib"/>
   </define>

   <define name="html.col">
      <element name="col">
         <ref name="html.col.attlist"/>
         <empty/>
      </element>
   </define>

   <define name="html.colgroup.html.attrib">
      <ref name="html.attrs"/>
   </define>

   <define name="html.colgroup.span.attrib">
      <optional>
         <attribute name="span"/>
      </optional>
   </define>

   <define name="html.colgroup.width.attrib">
      <optional>
         <attribute name="width"/>
      </optional>
   </define>

   <define name="html.colgroup.cellhalign.attrib">
      <ref name="html.cellhalign"/>
   </define>

   <define name="html.colgroup.cellvalign.attrib">
      <ref name="html.cellvalign"/>
   </define>

   <define name="html.colgroup.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.html.colgroup.attrib">
      <empty/>
   </define>

   <define name="html.colgroup.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="html.colgroup.role.attrib"/>
      <ref name="html.colgroup.html.attrib"/>
      <ref name="html.colgroup.span.attrib"/>
      <ref name="html.colgroup.width.attrib"/>
      <ref name="html.colgroup.cellhalign.attrib"/>
      <ref name="html.colgroup.cellvalign.attrib"/>
      <ref name="local.html.colgroup.attrib"/>
   </define>

   <define name="html.colgroup">
      <element name="colgroup">
         <ref name="html.colgroup.attlist"/>
         <zeroOrMore>
            <ref name="html.col"/>
         </zeroOrMore>
      </element>
   </define>

   <define name="html.thead.html.attrib">
      <ref name="html.attrs"/>
   </define>

   <define name="html.thead.cellhalign.attrib">
      <ref name="html.cellhalign"/>
   </define>

   <define name="html.thead.cellvalign.attrib">
      <ref name="html.cellvalign"/>
   </define>

   <define name="html.thead.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.html.thead.attrib">
      <empty/>
   </define>

   <define name="html.thead.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="html.thead.role.attrib"/>
      <ref name="html.thead.html.attrib"/>
      <ref name="html.thead.cellhalign.attrib"/>
      <ref name="html.thead.cellvalign.attrib"/>
      <ref name="local.html.thead.attrib"/>
   </define>

   <define name="html.thead">
      <element name="thead">
         <ref name="html.thead.attlist"/>
         <oneOrMore>
            <ref name="html.tr"/>
         </oneOrMore>
      </element>
   </define>

   <define name="html.tfoot.html.attrib">
      <ref name="html.attrs"/>
   </define>

   <define name="html.tfoot.cellhalign.attrib">
      <ref name="html.cellhalign"/>
   </define>

   <define name="html.tfoot.cellvalign.attrib">
      <ref name="html.cellvalign"/>
   </define>

   <define name="html.tfoot.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.html.tfoot.attrib">
      <empty/>
   </define>

   <define name="html.tfoot.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="html.tfoot.role.attrib"/>
      <ref name="html.tfoot.html.attrib"/>
      <ref name="html.tfoot.cellhalign.attrib"/>
      <ref name="html.tfoot.cellvalign.attrib"/>
      <ref name="local.html.tfoot.attrib"/>
   </define>

   <define name="html.tfoot">
      <element name="tfoot">
         <ref name="html.tfoot.attlist"/>
         <oneOrMore>
            <ref name="html.tr"/>
         </oneOrMore>
      </element>
   </define>

   <define name="html.tbody.html.attrib">
      <ref name="html.attrs"/>
   </define>

   <define name="html.tbody.cellhalign.attrib">
      <ref name="html.cellhalign"/>
   </define>

   <define name="html.tbody.cellvalign.attrib">
      <ref name="html.cellvalign"/>
   </define>

   <define name="html.tbody.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.html.tbody.attrib">
      <empty/>
   </define>

   <define name="html.tbody.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="html.tbody.role.attrib"/>
      <ref name="html.tbody.html.attrib"/>
      <ref name="html.tbody.cellhalign.attrib"/>
      <ref name="html.tbody.cellvalign.attrib"/>
      <ref name="local.html.tbody.attrib"/>
   </define>

   <define name="html.tbody">
      <element name="tbody">
         <ref name="html.tbody.attlist"/>
         <oneOrMore>
            <ref name="html.tr"/>
         </oneOrMore>
      </element>
   </define>

   <define name="html.tr.html.attrib">
      <ref name="html.attrs"/>
   </define>

   <define name="html.tr.cellhalign.attrib">
      <ref name="html.cellhalign"/>
   </define>

   <define name="html.tr.cellvalign.attrib">
      <ref name="html.cellvalign"/>
   </define>

   <define name="html.tr.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.html.tr.attrib">
      <empty/>
   </define>

   <define name="html.tr.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="html.tr.role.attrib"/>
      <ref name="html.tr.html.attrib"/>
      <ref name="html.tr.cellhalign.attrib"/>
      <ref name="html.tr.cellvalign.attrib"/>
      <ref name="local.html.tr.attrib"/>
   </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>

   <define name="html.th.html.attrib">
      <ref name="html.attrs"/>
   </define>

   <define name="html.th.abbr.attrib">
      <optional>
         <attribute name="abbr"/>
      </optional>
   </define>

   <define name="html.th.axis.attrib">
      <optional>
         <attribute name="axis"/>
      </optional>
   </define>

   <define name="html.th.headers.attrib">
      <optional>
         <attribute name="headers"/>
      </optional>
   </define>

   <define name="html.th.scope.attrib">
      <optional>
         <attribute name="scope"/>
      </optional>
   </define>

   <define name="html.th.rowspan.attrib">
      <optional>
         <attribute name="rowspan"/>
      </optional>
   </define>

   <define name="html.th.colspan.attrib">
      <optional>
         <attribute name="colspan"/>
      </optional>
   </define>

   <define name="html.th.cellhalign.attrib">
      <ref name="html.cellhalign"/>
   </define>

   <define name="html.th.cellvalign.attrib">
      <ref name="html.cellvalign"/>
   </define>

   <define name="html.th.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.html.th.attrib">
      <empty/>
   </define>

   <define name="html.th.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="html.th.role.attrib"/>
      <ref name="html.th.html.attrib"/>
      <ref name="html.th.abbr.attrib"/>
      <ref name="html.th.axis.attrib"/>
      <ref name="html.th.headers.attrib"/>
      <ref name="html.th.scope.attrib"/>
      <ref name="html.th.rowspan.attrib"/>
      <ref name="html.th.colspan.attrib"/>
      <ref name="html.th.cellhalign.attrib"/>
      <ref name="html.th.cellvalign.attrib"/>
      <ref name="local.html.th.attrib"/>
   </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>

   <define name="html.td.html.attrib">
      <ref name="html.attrs"/>
   </define>

   <define name="html.td.abbr.attrib">
      <optional>
         <attribute name="abbr"/>
      </optional>
   </define>

   <define name="html.td.axis.attrib">
      <optional>
         <attribute name="axis"/>
      </optional>
   </define>

   <define name="html.td.headers.attrib">
      <optional>
         <attribute name="headers"/>
      </optional>
   </define>

   <define name="html.td.scope.attrib">
      <optional>
         <attribute name="scope"/>
      </optional>
   </define>

   <define name="html.td.rowspan.attrib">
      <optional>
         <attribute name="rowspan"/>
      </optional>
   </define>

   <define name="html.td.colspan.attrib">
      <optional>
         <attribute name="colspan"/>
      </optional>
   </define>

   <define name="html.td.cellhalign.attrib">
      <ref name="html.cellhalign"/>
   </define>

   <define name="html.td.cellvalign.attrib">
      <ref name="html.cellvalign"/>
   </define>

   <define name="html.td.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.html.td.attrib">
      <empty/>
   </define>

   <define name="html.td.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="html.td.role.attrib"/>
      <ref name="html.td.html.attrib"/>
      <ref name="html.td.abbr.attrib"/>
      <ref name="html.td.axis.attrib"/>
      <ref name="html.td.headers.attrib"/>
      <ref name="html.td.scope.attrib"/>
      <ref name="html.td.rowspan.attrib"/>
      <ref name="html.td.colspan.attrib"/>
      <ref name="html.td.cellhalign.attrib"/>
      <ref name="html.td.cellvalign.attrib"/>
      <ref name="local.html.td.attrib"/>
   </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>

   <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>

   <define name="html.informaltable.html.attrib">
      <ref name="html.table.html.attrib"/>
   </define>

   <define name="html.informaltable.summary.attrib">
      <ref name="html.table.summary.attrib"/>
   </define>

   <define name="html.informaltable.width.attrib">
      <ref name="html.table.width.attrib"/>
   </define>

   <define name="html.informaltable.border.attrib">
      <ref name="html.table.border.attrib"/>
   </define>

   <define name="html.informaltable.frame.attrib">
      <ref name="html.table.frame.attrib"/>
   </define>

   <define name="html.informaltable.rules.attrib">
      <ref name="html.table.rules.attrib"/>
   </define>

   <define name="html.informaltable.cellspacing.attrib">
      <ref name="html.table.cellspacing.attrib"/>
   </define>

   <define name="html.informaltable.cellpadding.attrib">
      <ref name="html.table.cellpadding.attrib"/>
   </define>

   <define name="html.informaltable.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.html.informaltable.attrib">
      <empty/>
   </define>

   <define name="html.informaltable.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="html.informaltable.role.attrib"/>
      <ref name="html.informaltable.html.attrib"/>
      <ref name="html.informaltable.summary.attrib"/>
      <ref name="html.informaltable.width.attrib"/>
      <ref name="html.informaltable.border.attrib"/>
      <ref name="html.informaltable.frame.attrib"/>
      <ref name="html.informaltable.rules.attrib"/>
      <ref name="html.informaltable.cellspacing.attrib"/>
      <ref name="html.informaltable.cellpadding.attrib"/>
      <ref name="local.html.informaltable.attrib"/>
   </define>

   <define name="html.informaltable">
      <element name="informaltable">
         <ref name="html.informaltable.attlist"/>
         <ref name="html.informaltable.model"/>
      </element>
   </define>

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

   <define name="msgset.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.msgset.attrib">
      <empty/>
   </define>

   <define name="msgset.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="msgset.role.attrib"/>
      <ref name="local.msgset.attrib"/>
   </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>

   <define name="msgentry.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.msgentry.attrib">
      <empty/>
   </define>

   <define name="msgentry.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="msgentry.role.attrib"/>
      <ref name="local.msgentry.attrib"/>
   </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>

   <define name="simplemsgentry.audience.attrib">
      <attribute name="audience"/>
   </define>

   <define name="simplemsgentry.origin.attrib">
      <attribute name="origin"/>
   </define>

   <define name="simplemsgentry.level.attrib">
      <attribute name="level"/>
   </define>

   <define name="simplemsgentry.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.simplemsgentry.attrib">
      <empty/>
   </define>

   <define name="simplemsgentry.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="simplemsgentry.role.attrib"/>
      <ref name="simplemsgentry.audience.attrib"/>
      <ref name="simplemsgentry.origin.attrib"/>
      <ref name="simplemsgentry.level.attrib"/>
      <ref name="local.simplemsgentry.attrib"/>
   </define>

   <define name="db.simplemsgentry">
      <element name="simplemsgentry">
         <ref name="simplemsgentry.attlist"/>
         <ref name="db.msgtext"/>
         <oneOrMore>
            <ref name="db.msgexplan"/>
         </oneOrMore>
      </element>
   </define>

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

   <define name="msg.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.msg.attrib">
      <empty/>
   </define>

   <define name="msg.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="msg.role.attrib"/>
      <ref name="local.msg.attrib"/>
   </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>

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

   <define name="msgmain.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.msgmain.attrib">
      <empty/>
   </define>

   <define name="msgmain.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="msgmain.role.attrib"/>
      <ref name="local.msgmain.attrib"/>
   </define>

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

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

   <define name="msgsub.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.msgsub.attrib">
      <empty/>
   </define>

   <define name="msgsub.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="msgsub.role.attrib"/>
      <ref name="local.msgsub.attrib"/>
   </define>

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

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

   <define name="msgrel.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.msgrel.attrib">
      <empty/>
   </define>

   <define name="msgrel.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="msgrel.role.attrib"/>
      <ref name="local.msgrel.attrib"/>
   </define>

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

   <define name="msgtext.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.msgtext.attrib">
      <empty/>
   </define>

   <define name="msgtext.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="msgtext.role.attrib"/>
      <ref name="local.msgtext.attrib"/>
   </define>

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

   <define name="msginfo.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.msginfo.attrib">
      <empty/>
   </define>

   <define name="msginfo.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="msginfo.role.attrib"/>
      <ref name="local.msginfo.attrib"/>
   </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>

   <define name="msglevel.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.msglevel.attrib">
      <empty/>
   </define>

   <define name="msglevel.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="msglevel.role.attrib"/>
      <ref name="local.msglevel.attrib"/>
   </define>

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

   <define name="msgorig.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.msgorig.attrib">
      <empty/>
   </define>

   <define name="msgorig.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="msgorig.role.attrib"/>
      <ref name="local.msgorig.attrib"/>
   </define>

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

   <define name="msgaud.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.msgaud.attrib">
      <empty/>
   </define>

   <define name="msgaud.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="msgaud.role.attrib"/>
      <ref name="local.msgaud.attrib"/>
   </define>

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

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

   <define name="msgexplan.role.attrib">
      <optional>
         <ref name="role.attribute"/>
      </optional>
   </define>

   <define name="local.msgexplan.attrib">
      <empty/>
   </define>

   <define name="msgexplan.attlist">
      <ref name="common.attributes"/>
      <ref name="common.linking.attributes"/>
      <ref name="msgexplan.role.attrib"/>
      <ref name="local.msgexplan.attrib"/>
   </define>

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

   <define name="any.mml">
      <element>
         <nsName ns="http://www.w3.org/1998/Math/MathML"/>
         <zeroOrMore>
            <choice>
               <attribute>
                  <anyName/>
               </attribute>
               <text/>
               <ref name="any.mml"/>
            </choice>
         </zeroOrMore>
      </element>
   </define>

   <define name="any.svg">
      <element>
         <nsName ns="http://www.w3.org/2000/svg"/>
         <zeroOrMore>
            <choice>
               <attribute>
                  <anyName/>
               </attribute>
               <text/>
               <zeroOrMore>
                  <ref name="any.svg"/>
               </zeroOrMore>
            </choice>
         </zeroOrMore>
      </element>
   </define>

</grammar>
