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