<?xml version="1.0" encoding="utf-8"?>
<!-- $Id: docbook.rng,v 1.5 2001/10/23 05:56:47 jjc Exp $ -->
<grammar xmlns="http://relaxng.org/ns/structure/1.0"
         datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   <start>
      <choice>
         <ref name="set"/>
         <ref name="book"/>
         <ref name="chapter"/>
         <ref name="appendix"/>
         <ref name="article"/>
         <ref name="part"/>
         <ref name="reference"/>
         <ref name="refentry"/>
         <ref name="section"/>
         <ref name="sect1"/>
         <ref name="sect2"/>
         <ref name="sect3"/>
         <ref name="sect4"/>
         <ref name="sect5"/>
         <ref name="para"/>
      </choice>
   </start>
   <define name="ndxterm.class">
      <ref name="indexterm"/>
   </define>
   <define name="list.class">
      <choice>
         <ref name="calloutlist"/>
         <ref name="glosslist"/>
         <ref name="itemizedlist"/>
         <ref name="orderedlist"/>
         <ref name="segmentedlist"/>
         <ref name="simplelist"/>
         <ref name="variablelist"/>
      </choice>
   </define>
   <define name="admon.class">
      <choice>
         <ref name="caution"/>
         <ref name="important"/>
         <ref name="note"/>
         <ref name="tip"/>
         <ref name="warning"/>
      </choice>
   </define>
   <define name="linespecific.class">
      <choice>
         <ref name="literallayout"/>
         <ref name="programlisting"/>
         <ref name="programlistingco"/>
         <ref name="screen"/>
         <ref name="screenco"/>
         <ref name="screenshot"/>
      </choice>
   </define>
   <define name="method.synop.class">
      <choice>
         <ref name="constructorsynopsis"/>
         <ref name="destructorsynopsis"/>
         <ref name="methodsynopsis"/>
      </choice>
   </define>
   <define name="synop.class">
      <choice>
         <ref name="synopsis"/>
         <ref name="cmdsynopsis"/>
         <ref name="funcsynopsis"/>
         <ref name="classsynopsis"/>
         <ref name="fieldsynopsis"/>
      </choice>
   </define>
   <define name="para.class">
      <choice>
         <ref name="formalpara"/>
         <ref name="para"/>
         <ref name="simpara"/>
      </choice>
   </define>
   <define name="informal.class">
      <choice>
         <ref name="address"/>
         <ref name="blockquote"/>
         <ref name="graphic"/>
         <ref name="graphicco"/>
         <ref name="mediaobject"/>
         <ref name="mediaobjectco"/>
         <ref name="informalequation"/>
         <ref name="informalexample"/>
         <ref name="informalfigure"/>
         <ref name="informaltable"/>
      </choice>
   </define>
   <define name="formal.class">
      <choice>
         <ref name="equation"/>
         <ref name="example"/>
         <ref name="figure"/>
         <ref name="table"/>
      </choice>
   </define>
   <define name="compound.class">
      <choice>
         <ref name="msgset"/>
         <ref name="procedure"/>
         <ref name="sidebar"/>
         <ref name="qandaset"/>
      </choice>
   </define>
   <define name="genobj.class">
      <choice>
         <ref name="anchor"/>
         <ref name="bridgehead"/>
         <ref name="remark"/>
         <ref name="highlights"/>
      </choice>
   </define>
   <define name="descobj.class">
      <choice>
         <ref name="abstract"/>
         <ref name="authorblurb"/>
         <ref name="epigraph"/>
      </choice>
   </define>
   <define name="xref.char.class">
      <choice>
         <ref name="footnoteref"/>
         <ref name="xref"/>
      </choice>
   </define>
   <define name="gen.char.class">
      <choice>
         <ref name="abbrev"/>
         <ref name="acronym"/>
         <ref name="citation"/>
         <ref name="citerefentry"/>
         <ref name="citetitle"/>
         <ref name="emphasis"/>
         <ref name="firstterm"/>
         <ref name="foreignphrase"/>
         <ref name="glossterm"/>
         <ref name="footnote"/>
         <ref name="phrase"/>
         <ref name="quote"/>
         <ref name="trademark"/>
         <ref name="wordasword"/>
      </choice>
   </define>
   <define name="link.char.class">
      <choice>
         <ref name="link"/>
         <ref name="olink"/>
         <ref name="ulink"/>
      </choice>
   </define>
   <define name="tech.char.class">
      <choice>
         <ref name="action"/>
         <ref name="application"/>
         <ref name="classname"/>
         <ref name="methodname"/>
         <ref name="interfacename"/>
         <ref name="exceptionname"/>
         <ref name="ooclass"/>
         <ref name="oointerface"/>
         <ref name="ooexception"/>
         <ref name="command"/>
         <ref name="computeroutput"/>
         <ref name="database"/>
         <ref name="email"/>
         <ref name="envar"/>
         <ref name="errorcode"/>
         <ref name="errorname"/>
         <ref name="errortype"/>
         <ref name="filename"/>
         <ref name="function"/>
         <ref name="guibutton"/>
         <ref name="guiicon"/>
         <ref name="guilabel"/>
         <ref name="guimenu"/>
         <ref name="guimenuitem"/>
         <ref name="guisubmenu"/>
         <ref name="hardware"/>
         <ref name="interface"/>
         <ref name="keycap"/>
         <ref name="keycode"/>
         <ref name="keycombo"/>
         <ref name="keysym"/>
         <ref name="literal"/>
         <ref name="constant"/>
         <ref name="markup"/>
         <ref name="medialabel"/>
         <ref name="menuchoice"/>
         <ref name="mousebutton"/>
         <ref name="option"/>
         <ref name="optional"/>
         <ref name="parameter"/>
         <ref name="prompt"/>
         <ref name="property"/>
         <ref name="replaceable"/>
         <ref name="returnvalue"/>
         <ref name="sgmltag"/>
         <ref name="structfield"/>
         <ref name="structname"/>
         <ref name="symbol"/>
         <ref name="systemitem"/>
         <ref name="token"/>
         <ref name="type"/>
         <ref name="userinput"/>
         <ref name="varname"/>
      </choice>
   </define>
   <define name="base.char.class">
      <ref name="anchor"/>
   </define>
   <define name="docinfo.char.class">
      <choice>
         <ref name="author"/>
         <ref name="authorinitials"/>
         <ref name="corpauthor"/>
         <ref name="modespec"/>
         <ref name="othercredit"/>
         <ref name="productname"/>
         <ref name="productnumber"/>
         <ref name="revhistory"/>
      </choice>
   </define>
   <define name="other.char.class">
      <choice>
         <ref name="remark"/>
         <ref name="subscript"/>
         <ref name="superscript"/>
      </choice>
   </define>
   <define name="inlineobj.char.class">
      <choice>
         <ref name="inlinegraphic"/>
         <ref name="inlinemediaobject"/>
         <ref name="inlineequation"/>
      </choice>
   </define>
   <define name="component.mix">
      <choice>
         <ref name="list.class"/>
         <ref name="admon.class"/>
         <ref name="linespecific.class"/>
         <ref name="synop.class"/>
         <ref name="para.class"/>
         <ref name="informal.class"/>
         <ref name="formal.class"/>
         <ref name="compound.class"/>
         <ref name="genobj.class"/>
         <ref name="descobj.class"/>
         <ref name="ndxterm.class"/>
         <ref name="beginpage"/>
      </choice>
   </define>
   <define name="sidebar.mix">
      <choice>
         <ref name="list.class"/>
         <ref name="admon.class"/>
         <ref name="linespecific.class"/>
         <ref name="synop.class"/>
         <ref name="para.class"/>
         <ref name="informal.class"/>
         <ref name="formal.class"/>
         <ref name="procedure"/>
         <ref name="genobj.class"/>
         <ref name="ndxterm.class"/>
         <ref name="beginpage"/>
      </choice>
   </define>
   <define name="qandaset.mix">
      <choice>
         <ref name="list.class"/>
         <ref name="admon.class"/>
         <ref name="linespecific.class"/>
         <ref name="synop.class"/>
         <ref name="para.class"/>
         <ref name="informal.class"/>
         <ref name="formal.class"/>
         <ref name="procedure"/>
         <ref name="genobj.class"/>
         <ref name="ndxterm.class"/>
      </choice>
   </define>
   <define name="revdescription.mix">
      <choice>
         <ref name="list.class"/>
         <ref name="admon.class"/>
         <ref name="linespecific.class"/>
         <ref name="synop.class"/>
         <ref name="para.class"/>
         <ref name="informal.class"/>
         <ref name="formal.class"/>
         <ref name="procedure"/>
         <ref name="genobj.class"/>
         <ref name="ndxterm.class"/>
      </choice>
   </define>
   <define name="footnote.mix">
      <choice>
         <ref name="list.class"/>
         <ref name="linespecific.class"/>
         <ref name="synop.class"/>
         <ref name="para.class"/>
         <ref name="informal.class"/>
      </choice>
   </define>
   <define name="example.mix">
      <choice>
         <ref name="list.class"/>
         <ref name="linespecific.class"/>
         <ref name="synop.class"/>
         <ref name="para.class"/>
         <ref name="informal.class"/>
         <ref name="ndxterm.class"/>
         <ref name="beginpage"/>
      </choice>
   </define>
   <define name="highlights.mix">
      <choice>
         <ref name="list.class"/>
         <ref name="admon.class"/>
         <ref name="para.class"/>
         <ref name="ndxterm.class"/>
      </choice>
   </define>
   <define name="para.mix">
      <choice>
         <ref name="list.class"/>
         <ref name="admon.class"/>
         <ref name="linespecific.class"/>
         <ref name="informal.class"/>
         <ref name="formal.class"/>
      </choice>
   </define>
   <define name="admon.mix">
      <choice>
         <ref name="list.class"/>
         <ref name="linespecific.class"/>
         <ref name="synop.class"/>
         <ref name="para.class"/>
         <ref name="informal.class"/>
         <ref name="formal.class"/>
         <ref name="procedure"/>
         <ref name="sidebar"/>
         <ref name="anchor"/>
         <ref name="bridgehead"/>
         <ref name="remark"/>
         <ref name="ndxterm.class"/>
         <ref name="beginpage"/>
      </choice>
   </define>
   <define name="figure.mix">
      <choice>
         <ref name="linespecific.class"/>
         <ref name="synop.class"/>
         <ref name="informal.class"/>
         <ref name="ndxterm.class"/>
         <ref name="beginpage"/>
      </choice>
   </define>
   <define name="tabentry.mix">
      <choice>
         <ref name="list.class"/>
         <ref name="admon.class"/>
         <ref name="linespecific.class"/>
         <ref name="para.class"/>
         <ref name="graphic"/>
         <ref name="mediaobject"/>
      </choice>
   </define>
   <define name="glossdef.mix">
      <choice>
         <ref name="list.class"/>
         <ref name="linespecific.class"/>
         <ref name="synop.class"/>
         <ref name="para.class"/>
         <ref name="informal.class"/>
         <ref name="formal.class"/>
         <ref name="remark"/>
         <ref name="ndxterm.class"/>
         <ref name="beginpage"/>
      </choice>
   </define>
   <define name="legalnotice.mix">
      <choice>
         <ref name="list.class"/>
         <ref name="admon.class"/>
         <ref name="linespecific.class"/>
         <ref name="para.class"/>
         <ref name="blockquote"/>
         <ref name="ndxterm.class"/>
         <ref name="beginpage"/>
      </choice>
   </define>
   <define name="textobject.mix">
      <choice>
         <ref name="list.class"/>
         <ref name="admon.class"/>
         <ref name="linespecific.class"/>
         <ref name="para.class"/>
         <ref name="blockquote"/>
      </choice>
   </define>
   <define name="mediaobject.mix">
      <choice>
         <ref name="videoobject"/>
         <ref name="audioobject"/>
         <ref name="imageobject"/>
      </choice>
   </define>
   <define name="para.char.mix">
      <choice>
         <ref name="xref.char.class"/>
         <ref name="gen.char.class"/>
         <ref name="link.char.class"/>
         <ref name="tech.char.class"/>
         <ref name="base.char.class"/>
         <ref name="docinfo.char.class"/>
         <ref name="other.char.class"/>
         <ref name="inlineobj.char.class"/>
         <ref name="synop.class"/>
         <ref name="ndxterm.class"/>
         <ref name="beginpage"/>
      </choice>
   </define>
   <define name="title.char.mix">
      <choice>
         <ref name="xref.char.class"/>
         <ref name="gen.char.class"/>
         <ref name="link.char.class"/>
         <ref name="tech.char.class"/>
         <ref name="base.char.class"/>
         <ref name="docinfo.char.class"/>
         <ref name="other.char.class"/>
         <ref name="inlineobj.char.class"/>
         <ref name="ndxterm.class"/>
      </choice>
   </define>
   <define name="ndxterm.char.mix">
      <choice>
         <ref name="xref.char.class"/>
         <ref name="gen.char.class"/>
         <ref name="link.char.class"/>
         <ref name="tech.char.class"/>
         <ref name="base.char.class"/>
         <ref name="docinfo.char.class"/>
         <ref name="other.char.class"/>
         <ref name="inlinegraphic"/>
         <ref name="inlinemediaobject"/>
      </choice>
   </define>
   <define name="cptr.char.mix">
      <choice>
         <ref name="link.char.class"/>
         <ref name="tech.char.class"/>
         <ref name="base.char.class"/>
         <ref name="other.char.class"/>
         <ref name="inlinegraphic"/>
         <ref name="inlinemediaobject"/>
         <ref name="ndxterm.class"/>
         <ref name="beginpage"/>
      </choice>
   </define>
   <define name="smallcptr.char.mix">
      <choice>
         <ref name="replaceable"/>
         <ref name="inlinegraphic"/>
         <ref name="inlinemediaobject"/>
         <ref name="ndxterm.class"/>
         <ref name="beginpage"/>
      </choice>
   </define>
   <define name="word.char.mix">
      <choice>
         <ref name="acronym"/>
         <ref name="emphasis"/>
         <ref name="trademark"/>
         <ref name="link.char.class"/>
         <ref name="base.char.class"/>
         <ref name="other.char.class"/>
         <ref name="inlinegraphic"/>
         <ref name="inlinemediaobject"/>
         <ref name="ndxterm.class"/>
         <ref name="beginpage"/>
      </choice>
   </define>
   <define name="docinfo.char.mix">
      <choice>
         <ref name="link.char.class"/>
         <ref name="emphasis"/>
         <ref name="trademark"/>
         <ref name="replaceable"/>
         <ref name="other.char.class"/>
         <ref name="inlinegraphic"/>
         <ref name="inlinemediaobject"/>
         <ref name="ndxterm.class"/>
      </choice>
   </define>
   <define name="formalobject.title.content">
      <ref name="title"/>
      <optional>
         <ref name="titleabbrev"/>
      </optional>
   </define>
   <define name="arch.attrib">
      <optional>
         <attribute name="arch">
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="condition.attrib">
      <optional>
         <attribute name="condition">
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="conformance.attrib">
      <optional>
         <attribute name="conformance">
            <data type="NMTOKEN"/>
         </attribute>
      </optional>
   </define>
   <define name="os.attrib">
      <optional>
         <attribute name="os">
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="revision.attrib">
      <optional>
         <attribute name="revision">
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="security.attrib">
      <optional>
         <attribute name="security">
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="userlevel.attrib">
      <optional>
         <attribute name="userlevel">
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="vendor.attrib">
      <optional>
         <attribute name="vendor">
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="effectivity.attrib">
      <ref name="arch.attrib"/>
      <ref name="condition.attrib"/>
      <ref name="conformance.attrib"/>
      <ref name="os.attrib"/>
      <ref name="revision.attrib"/>
      <ref name="security.attrib"/>
      <ref name="userlevel.attrib"/>
      <ref name="vendor.attrib"/>
   </define>
   <define name="id.attrib">
      <optional>
         <attribute name="id">
            <data type="ID"/>
         </attribute>
      </optional>
   </define>
   <define name="idreq.attrib">
      <attribute name="id">
         <data type="ID"/>
      </attribute>
   </define>
   <define name="lang.attrib">
      <optional>
         <attribute name="lang">
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="remap.attrib">
      <optional>
         <attribute name="remap">
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="role.attrib">
      <optional>
         <attribute name="role">
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="xreflabel.attrib">
      <optional>
         <attribute name="xreflabel">
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="revisionflag.attrib">
      <optional>
         <attribute name="revisionflag">
            <choice>
               <value>changed</value>
               <value>added</value>
               <value>deleted</value>
               <value>off</value>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="common.attrib">
      <ref name="id.attrib"/>
      <ref name="lang.attrib"/>
      <ref name="remap.attrib"/>
      <ref name="xreflabel.attrib"/>
      <ref name="revisionflag.attrib"/>
      <ref name="effectivity.attrib"/>
   </define>
   <define name="idreq.common.attrib">
      <ref name="idreq.attrib"/>
      <ref name="lang.attrib"/>
      <ref name="remap.attrib"/>
      <ref name="xreflabel.attrib"/>
      <ref name="revisionflag.attrib"/>
      <ref name="effectivity.attrib"/>
   </define>
   <define name="graphics.attrib">
      <optional>
         <attribute name="fileref">
            <data type="string"/>
         </attribute>
      </optional>
      <optional>
         <attribute name="format">
            <choice>
               <value>BMP</value>
               <value>CGM-CHAR</value>
               <value>CGM-BINARY</value>
               <value>CGM-CLEAR</value>
               <value>DITROFF</value>
               <value>DVI</value>
               <value>EPS</value>
               <value>EQN</value>
               <value>FAX</value>
               <value>GIF</value>
               <value>GIF87a</value>
               <value>GIF89a</value>
               <value>JPG</value>
               <value>JPEG</value>
               <value>IGES</value>
               <value>PCX</value>
               <value>PIC</value>
               <value>PNG</value>
               <value>PS</value>
               <value>SGML</value>
               <value>TBL</value>
               <value>TEX</value>
               <value>TIFF</value>
               <value>WMF</value>
               <value>WPG</value>
               <value>linespecific</value>
            </choice>
         </attribute>
      </optional>
      <optional>
         <attribute name="srccredit">
            <data type="string"/>
         </attribute>
      </optional>
      <optional>
         <attribute name="width">
            <data type="string"/>
         </attribute>
      </optional>
      <optional>
         <attribute name="depth">
            <data type="string"/>
         </attribute>
      </optional>
      <optional>
         <attribute name="align">
            <choice>
               <value>left</value>
               <value>right</value>
               <value>center</value>
            </choice>
         </attribute>
      </optional>
      <optional>
         <attribute name="scale">
            <data type="string"/>
         </attribute>
      </optional>
      <optional>
         <attribute name="scalefit">
            <choice>
               <value>0</value>
               <value>1</value>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="keyaction.attrib">
      <optional>
         <attribute name="action">
            <choice>
               <value>click</value>
               <value>double-click</value>
               <value>press</value>
               <value>seq</value>
               <value>simul</value>
               <value>other</value>
            </choice>
         </attribute>
      </optional>
      <optional>
         <attribute name="otheraction">
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="label.attrib">
      <optional>
         <attribute name="label">
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="linespecific.attrib">
      <optional>
         <attribute name="format">
            <value>linespecific</value>
         </attribute>
      </optional>
      <optional>
         <attribute name="linenumbering">
            <choice>
               <value>numbered</value>
               <value>unnumbered</value>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="linkend.attrib">
      <optional>
         <attribute name="linkend">
            <data type="IDREF"/>
         </attribute>
      </optional>
   </define>
   <define name="linkendreq.attrib">
      <attribute name="linkend">
         <data type="IDREF"/>
      </attribute>
   </define>
   <define name="linkends.attrib">
      <optional>
         <attribute name="linkends">
            <data type="IDREFS"/>
         </attribute>
      </optional>
   </define>
   <define name="mark.attrib">
      <optional>
         <attribute name="mark">
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="moreinfo.attrib">
      <optional>
         <attribute name="moreinfo">
            <choice>
               <value>refentry</value>
               <value>none</value>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="pagenum.attrib">
      <optional>
         <attribute name="pagenum">
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="status.attrib">
      <optional>
         <attribute name="status">
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="width.attrib">
      <optional>
         <attribute name="width">
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="title.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="title">
      <element name="title">
         <ref name="title.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="title.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="title.attlist">
      <ref name="pagenum.attrib"/>
      <ref name="common.attrib"/>
      <ref name="title.role.attrib"/>
   </define>
   <define name="titleabbrev.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="titleabbrev">
      <element name="titleabbrev">
         <ref name="titleabbrev.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="title.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="titleabbrev.attlist">
      <ref name="common.attrib"/>
      <ref name="titleabbrev.role.attrib"/>
   </define>
   <define name="subtitle.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="subtitle">
      <element name="subtitle">
         <ref name="subtitle.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="title.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="subtitle.attlist">
      <ref name="common.attrib"/>
      <ref name="subtitle.role.attrib"/>
   </define>
   <define name="person.ident.mix">
      <choice>
         <ref name="honorific"/>
         <ref name="firstname"/>
         <ref name="surname"/>
         <ref name="lineage"/>
         <ref name="othername"/>
         <ref name="affiliation"/>
         <ref name="authorblurb"/>
         <ref name="contrib"/>
      </choice>
   </define>
   <define name="bibliocomponent.mix">
      <choice>
         <ref name="abbrev"/>
         <ref name="abstract"/>
         <ref name="address"/>
         <ref name="artpagenums"/>
         <ref name="author"/>
         <ref name="authorgroup"/>
         <ref name="authorinitials"/>
         <ref name="bibliomisc"/>
         <ref name="biblioset"/>
         <ref name="collab"/>
         <ref name="confgroup"/>
         <ref name="contractnum"/>
         <ref name="contractsponsor"/>
         <ref name="copyright"/>
         <ref name="corpauthor"/>
         <ref name="corpname"/>
         <ref name="date"/>
         <ref name="edition"/>
         <ref name="editor"/>
         <ref name="invpartnumber"/>
         <ref name="isbn"/>
         <ref name="issn"/>
         <ref name="issuenum"/>
         <ref name="orgname"/>
         <ref name="othercredit"/>
         <ref name="pagenums"/>
         <ref name="printhistory"/>
         <ref name="productname"/>
         <ref name="productnumber"/>
         <ref name="pubdate"/>
         <ref name="publisher"/>
         <ref name="publishername"/>
         <ref name="pubsnumber"/>
         <ref name="releaseinfo"/>
         <ref name="revhistory"/>
         <ref name="seriesvolnums"/>
         <ref name="subtitle"/>
         <ref name="title"/>
         <ref name="titleabbrev"/>
         <ref name="volumenum"/>
         <ref name="citetitle"/>
         <ref name="person.ident.mix"/>
         <ref name="ndxterm.class"/>
      </choice>
   </define>
   <define name="biblioentry.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="biblioentry">
      <element name="biblioentry">
         <ref name="biblioentry.attlist"/>
         <oneOrMore>
            <choice>
               <ref name="articleinfo"/>
               <ref name="bibliocomponent.mix"/>
            </choice>
         </oneOrMore>
      </element>
   </define>
   <define name="biblioentry.attlist">
      <ref name="common.attrib"/>
      <ref name="biblioentry.role.attrib"/>
   </define>
   <define name="bibliomixed.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="bibliomixed">
      <element name="bibliomixed">
         <ref name="bibliomixed.attlist"/>
         <mixed>
            <zeroOrMore>
               <choice>
                  <ref name="bibliocomponent.mix"/>
                  <ref name="bibliomset"/>
               </choice>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="bibliomixed.attlist">
      <ref name="common.attrib"/>
      <ref name="bibliomixed.role.attrib"/>
   </define>
   <define name="articleinfo.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="infoContentModel">
      <oneOrMore>
         <choice>
            <ref name="graphic"/>
            <ref name="mediaobject"/>
            <ref name="legalnotice"/>
            <ref name="modespec"/>
            <ref name="subjectset"/>
            <ref name="keywordset"/>
            <ref name="itermset"/>
            <ref name="bibliocomponent.mix"/>
         </choice>
      </oneOrMore>
   </define>
   <define name="articleinfo">
      <element name="articleinfo">
         <ref name="articleinfo.attlist"/>
         <ref name="infoContentModel"/>
      </element>
   </define>
   <define name="articleinfo.attlist">
      <ref name="common.attrib"/>
      <ref name="articleinfo.role.attrib"/>
   </define>
   <define name="biblioset.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="biblioset">
      <element name="biblioset">
         <ref name="biblioset.attlist"/>
         <oneOrMore>
            <ref name="bibliocomponent.mix"/>
         </oneOrMore>
      </element>
   </define>
   <define name="biblioset.attlist">
      <ref name="common.attrib"/>
      <ref name="biblioset.role.attrib"/>
      <optional>
         <attribute name="relation">
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="bibliomset.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="bibliomset">
      <element name="bibliomset">
         <ref name="bibliomset.attlist"/>
         <mixed>
            <zeroOrMore>
               <choice>
                  <ref name="bibliocomponent.mix"/>
                  <ref name="bibliomset"/>
               </choice>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="bibliomset.attlist">
      <ref name="bibliomset.role.attrib"/>
      <ref name="common.attrib"/>
      <optional>
         <attribute name="relation">
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="bibliomisc.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="bibliomisc">
      <element name="bibliomisc">
         <ref name="bibliomisc.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="para.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="bibliomisc.attlist">
      <ref name="common.attrib"/>
      <ref name="bibliomisc.role.attrib"/>
   </define>
   <define name="subjectset.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="subjectset">
      <element name="subjectset">
         <ref name="subjectset.attlist"/>
         <oneOrMore>
            <ref name="subject"/>
         </oneOrMore>
      </element>
   </define>
   <define name="subjectset.attlist">
      <ref name="common.attrib"/>
      <ref name="subjectset.role.attrib"/>
      <optional>
         <attribute name="scheme">
            <data type="NMTOKEN"/>
         </attribute>
      </optional>
   </define>
   <define name="subject.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="subject">
      <element name="subject">
         <ref name="subject.attlist"/>
         <oneOrMore>
            <ref name="subjectterm"/>
         </oneOrMore>
      </element>
   </define>
   <define name="subject.attlist">
      <ref name="common.attrib"/>
      <ref name="subject.role.attrib"/>
      <optional>
         <attribute name="weight">
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="subjectterm.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="subjectterm">
      <element name="subjectterm">
         <ref name="subjectterm.attlist"/>
         <text/>
      </element>
   </define>
   <define name="subjectterm.attlist">
      <ref name="common.attrib"/>
      <ref name="subjectterm.role.attrib"/>
   </define>
   <define name="keywordset.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="keywordset">
      <element name="keywordset">
         <ref name="keywordset.attlist"/>
         <oneOrMore>
            <ref name="keyword"/>
         </oneOrMore>
      </element>
   </define>
   <define name="keywordset.attlist">
      <ref name="common.attrib"/>
      <ref name="keywordset.role.attrib"/>
   </define>
   <define name="keyword.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="keyword">
      <element name="keyword">
         <ref name="keyword.attlist"/>
         <text/>
      </element>
   </define>
   <define name="keyword.attlist">
      <ref name="common.attrib"/>
      <ref name="keyword.role.attrib"/>
   </define>
   <define name="itermset.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="itermset">
      <element name="itermset">
         <ref name="itermset.attlist"/>
         <oneOrMore>
            <ref name="indexterm"/>
         </oneOrMore>
      </element>
   </define>
   <define name="itermset.attlist">
      <ref name="common.attrib"/>
      <ref name="itermset.role.attrib"/>
   </define>
   <define name="msgset.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="msgset">
      <element name="msgset">
         <ref name="msgset.attlist"/>
         <optional>
            <ref name="formalobject.title.content"/>
         </optional>
         <choice>
            <oneOrMore>
               <ref name="msgentry"/>
            </oneOrMore>
            <oneOrMore>
               <ref name="simplemsgentry"/>
            </oneOrMore>
         </choice>
      </element>
   </define>
   <define name="msgset.attlist">
      <ref name="common.attrib"/>
      <ref name="msgset.role.attrib"/>
   </define>
   <define name="msgentry.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="msgentry">
      <element name="msgentry">
         <ref name="msgentry.attlist"/>
         <oneOrMore>
            <ref name="msg"/>
         </oneOrMore>
         <optional>
            <ref name="msginfo"/>
         </optional>
         <zeroOrMore>
            <ref name="msgexplan"/>
         </zeroOrMore>
      </element>
   </define>
   <define name="msgentry.attlist">
      <ref name="common.attrib"/>
      <ref name="msgentry.role.attrib"/>
   </define>
   <define name="simplemsgentry.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="simplemsgentry">
      <element name="simplemsgentry">
         <ref name="simplemsgentry.attlist"/>
         <ref name="msgtext"/>
         <ref name="msgexplan"/>
      </element>
   </define>
   <define name="simplemsgentry.attlist">
      <ref name="common.attrib"/>
      <ref name="simplemsgentry.role.attrib"/>
      <optional>
         <attribute name="audience">
            <data type="string"/>
         </attribute>
      </optional>
      <optional>
         <attribute name="level">
            <data type="string"/>
         </attribute>
      </optional>
      <optional>
         <attribute name="origin">
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="msg.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="msg">
      <element name="msg">
         <ref name="msg.attlist"/>
         <optional>
            <ref name="title"/>
         </optional>
         <ref name="msgmain"/>
         <zeroOrMore>
            <choice>
               <ref name="msgsub"/>
               <ref name="msgrel"/>
            </choice>
         </zeroOrMore>
      </element>
   </define>
   <define name="msg.attlist">
      <ref name="common.attrib"/>
      <ref name="msg.role.attrib"/>
   </define>
   <define name="msgmain.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="msgmain">
      <element name="msgmain">
         <ref name="msgmain.attlist"/>
         <optional>
            <ref name="title"/>
         </optional>
         <ref name="msgtext"/>
      </element>
   </define>
   <define name="msgmain.attlist">
      <ref name="common.attrib"/>
      <ref name="msgmain.role.attrib"/>
   </define>
   <define name="msgsub.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="msgsub">
      <element name="msgsub">
         <ref name="msgsub.attlist"/>
         <optional>
            <ref name="title"/>
         </optional>
         <ref name="msgtext"/>
      </element>
   </define>
   <define name="msgsub.attlist">
      <ref name="common.attrib"/>
      <ref name="msgsub.role.attrib"/>
   </define>
   <define name="msgrel.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="msgrel">
      <element name="msgrel">
         <ref name="msgrel.attlist"/>
         <optional>
            <ref name="title"/>
         </optional>
         <ref name="msgtext"/>
      </element>
   </define>
   <define name="msgrel.attlist">
      <ref name="common.attrib"/>
      <ref name="msgrel.role.attrib"/>
   </define>
   <define name="msginfo.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="msginfo">
      <element name="msginfo">
         <ref name="msginfo.attlist"/>
         <zeroOrMore>
            <choice>
               <ref name="msglevel"/>
               <ref name="msgorig"/>
               <ref name="msgaud"/>
            </choice>
         </zeroOrMore>
      </element>
   </define>
   <define name="msginfo.attlist">
      <ref name="common.attrib"/>
      <ref name="msginfo.role.attrib"/>
   </define>
   <define name="msglevel.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="msglevel">
      <element name="msglevel">
         <ref name="msglevel.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="smallcptr.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="msglevel.attlist">
      <ref name="common.attrib"/>
      <ref name="msglevel.role.attrib"/>
   </define>
   <define name="msgorig.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="msgorig">
      <element name="msgorig">
         <ref name="msgorig.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="smallcptr.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="msgorig.attlist">
      <ref name="common.attrib"/>
      <ref name="msgorig.role.attrib"/>
   </define>
   <define name="msgaud.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="msgaud">
      <element name="msgaud">
         <ref name="msgaud.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="para.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="msgaud.attlist">
      <ref name="common.attrib"/>
      <ref name="msgaud.role.attrib"/>
   </define>
   <define name="msgexplan.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="msgexplan">
      <element name="msgexplan">
         <ref name="msgexplan.attlist"/>
         <optional>
            <ref name="title"/>
         </optional>
         <zeroOrMore>
            <ref name="component.mix"/>
         </zeroOrMore>
      </element>
   </define>
   <define name="msgexplan.attlist">
      <ref name="common.attrib"/>
      <ref name="msgexplan.role.attrib"/>
   </define>
   <define name="qandset.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="qandaset">
      <element name="qandaset">
         <ref name="qandaset.attlist"/>
         <optional>
            <ref name="formalobject.title.content"/>
         </optional>
         <zeroOrMore>
            <ref name="qandaset.mix"/>
         </zeroOrMore>
         <choice>
            <oneOrMore>
               <ref name="qandadiv"/>
            </oneOrMore>
            <oneOrMore>
               <ref name="qandaentry"/>
            </oneOrMore>
         </choice>
      </element>
   </define>
   <define name="qandaset.attlist">
      <ref name="common.attrib"/>
      <ref name="qandset.role.attrib"/>
      <optional>
         <attribute name="defaultlabel">
            <choice>
               <value>qanda</value>
               <value>number</value>
               <value>none</value>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="qandadiv.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="qandadiv">
      <element name="qandadiv">
         <ref name="qandadiv.attlist"/>
         <optional>
            <ref name="formalobject.title.content"/>
         </optional>
         <zeroOrMore>
            <ref name="qandaset.mix"/>
         </zeroOrMore>
         <choice>
            <oneOrMore>
               <ref name="qandadiv"/>
            </oneOrMore>
            <oneOrMore>
               <ref name="qandaentry"/>
            </oneOrMore>
         </choice>
      </element>
   </define>
   <define name="qandadiv.attlist">
      <ref name="common.attrib"/>
      <ref name="qandadiv.role.attrib"/>
   </define>
   <define name="qandaentry.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="qandaentry">
      <element name="qandaentry">
         <ref name="qandaentry.attlist"/>
         <optional>
            <ref name="revhistory"/>
         </optional>
         <ref name="question"/>
         <zeroOrMore>
            <ref name="answer"/>
         </zeroOrMore>
      </element>
   </define>
   <define name="qandaentry.attlist">
      <ref name="common.attrib"/>
      <ref name="qandaentry.role.attrib"/>
   </define>
   <define name="question.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="question">
      <element name="question">
         <ref name="question.attlist"/>
         <optional>
            <ref name="label"/>
         </optional>
         <oneOrMore>
            <ref name="qandaset.mix"/>
         </oneOrMore>
      </element>
   </define>
   <define name="question.attlist">
      <ref name="common.attrib"/>
      <ref name="question.role.attrib"/>
   </define>
   <define name="answer.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="answer">
      <element name="answer">
         <ref name="answer.attlist"/>
         <optional>
            <ref name="label"/>
         </optional>
         <zeroOrMore>
            <ref name="qandaset.mix"/>
         </zeroOrMore>
         <zeroOrMore>
            <ref name="qandaentry"/>
         </zeroOrMore>
      </element>
   </define>
   <define name="answer.attlist">
      <ref name="common.attrib"/>
      <ref name="answer.role.attrib"/>
   </define>
   <define name="label.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="label">
      <element name="label">
         <ref name="label.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="word.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="label.attlist">
      <ref name="common.attrib"/>
      <ref name="label.role.attrib"/>
   </define>
   <define name="procedure.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="procedure">
      <element name="procedure">
         <ref name="procedure.attlist"/>
         <optional>
            <ref name="formalobject.title.content"/>
         </optional>
         <zeroOrMore>
            <ref name="component.mix"/>
         </zeroOrMore>
         <oneOrMore>
            <ref name="step"/>
         </oneOrMore>
      </element>
   </define>
   <define name="procedure.attlist">
      <ref name="common.attrib"/>
      <ref name="procedure.role.attrib"/>
   </define>
   <define name="step.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="step">
      <element name="step">
         <ref name="step.attlist"/>
         <optional>
            <ref name="title"/>
         </optional>
         <choice>
            <group>
               <oneOrMore>
                  <ref name="component.mix"/>
               </oneOrMore>
               <optional>
                  <ref name="substeps"/>
                  <zeroOrMore>
                     <ref name="component.mix"/>
                  </zeroOrMore>
               </optional>
            </group>
            <group>
               <ref name="substeps"/>
               <zeroOrMore>
                  <ref name="component.mix"/>
               </zeroOrMore>
            </group>
         </choice>
      </element>
   </define>
   <define name="step.attlist">
      <ref name="common.attrib"/>
      <ref name="step.role.attrib"/>
      <optional>
         <attribute name="performance">
            <choice>
               <value>optional</value>
               <value>required</value>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="substeps.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="substeps">
      <element name="substeps">
         <ref name="substeps.attlist"/>
         <oneOrMore>
            <ref name="step"/>
         </oneOrMore>
      </element>
   </define>
   <define name="substeps.attlist">
      <ref name="common.attrib"/>
      <ref name="substeps.role.attrib"/>
      <optional>
         <attribute name="performance">
            <choice>
               <value>optional</value>
               <value>required</value>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="sidebarinfo.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="sidebarinfo">
      <element name="sidebarinfo">
         <ref name="sidebarinfo.attlist"/>
         <text/>
      </element>
   </define>
   <define name="sidebarinfo.attlist">
      <ref name="common.attrib"/>
      <ref name="sidebarinfo.role.attrib"/>
   </define>
   <define name="sidebar.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="sidebar">
      <element name="sidebar">
         <ref name="sidebar.attlist"/>
         <optional>
            <ref name="sidebarinfo"/>
         </optional>
         <optional>
            <ref name="formalobject.title.content"/>
         </optional>
         <oneOrMore>
            <ref name="sidebar.mix"/>
         </oneOrMore>
      </element>
   </define>
   <define name="sidebar.attlist">
      <ref name="common.attrib"/>
      <ref name="sidebar.role.attrib"/>
   </define>
   <define name="abstract.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="abstract">
      <element name="abstract">
         <ref name="abstract.attlist"/>
         <optional>
            <ref name="title"/>
         </optional>
         <oneOrMore>
            <ref name="para.class"/>
         </oneOrMore>
      </element>
   </define>
   <define name="abstract.attlist">
      <ref name="common.attrib"/>
      <ref name="abstract.role.attrib"/>
   </define>
   <define name="authorblurb.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="authorblurb">
      <element name="authorblurb">
         <ref name="authorblurb.attlist"/>
         <optional>
            <ref name="title"/>
         </optional>
         <oneOrMore>
            <ref name="para.class"/>
         </oneOrMore>
      </element>
   </define>
   <define name="authorblurb.attlist">
      <ref name="common.attrib"/>
      <ref name="authorblurb.role.attrib"/>
   </define>
   <define name="blockquote.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="blockquote">
      <element name="blockquote">
         <ref name="blockquote.attlist"/>
         <optional>
            <ref name="title"/>
         </optional>
         <optional>
            <ref name="attribution"/>
         </optional>
         <oneOrMore>
            <ref name="component.mix"/>
         </oneOrMore>
      </element>
   </define>
   <define name="blockquote.attlist">
      <ref name="common.attrib"/>
      <ref name="blockquote.role.attrib"/>
   </define>
   <define name="attribution.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="attribution">
      <element name="attribution">
         <ref name="attribution.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="para.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="attribution.attlist">
      <ref name="common.attrib"/>
      <ref name="attribution.role.attrib"/>
   </define>
   <define name="bridgehead.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="bridgehead">
      <element name="bridgehead">
         <ref name="bridgehead.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="title.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="bridgehead.attlist">
      <ref name="common.attrib"/>
      <ref name="bridgehead.role.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="remark.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="remark">
      <element name="remark">
         <ref name="remark.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="para.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="remark.attlist">
      <ref name="common.attrib"/>
      <ref name="remark.role.attrib"/>
   </define>
   <define name="epigraph.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="epigraph">
      <element name="epigraph">
         <ref name="epigraph.attlist"/>
         <optional>
            <ref name="attribution"/>
         </optional>
         <oneOrMore>
            <ref name="para.class"/>
         </oneOrMore>
      </element>
   </define>
   <define name="epigraph.attlist">
      <ref name="common.attrib"/>
      <ref name="epigraph.role.attrib"/>
   </define>
   <define name="footnote.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="footnote">
      <element name="footnote">
         <ref name="footnote.attlist"/>
         <oneOrMore>
            <ref name="footnote.mix"/>
         </oneOrMore>
      </element>
   </define>
   <define name="footnote.attlist">
      <ref name="label.attrib"/>
      <ref name="common.attrib"/>
      <ref name="footnote.role.attrib"/>
   </define>
   <define name="highlights.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="highlights">
      <element name="highlights">
         <ref name="highlights.attlist"/>
         <oneOrMore>
            <ref name="highlights.mix"/>
         </oneOrMore>
      </element>
   </define>
   <define name="highlights.attlist">
      <ref name="common.attrib"/>
      <ref name="highlights.role.attrib"/>
   </define>
   <define name="formalpara.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="formalpara">
      <element name="formalpara">
         <ref name="formalpara.attlist"/>
         <ref name="title"/>
         <zeroOrMore>
            <ref name="ndxterm.class"/>
         </zeroOrMore>
         <ref name="para"/>
      </element>
   </define>
   <define name="formalpara.attlist">
      <ref name="common.attrib"/>
      <ref name="formalpara.role.attrib"/>
   </define>
   <define name="para.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="para">
      <element name="para">
         <ref name="para.attlist"/>
         <mixed>
            <zeroOrMore>
               <choice>
                  <ref name="para.char.mix"/>
                  <ref name="para.mix"/>
               </choice>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="para.attlist">
      <ref name="common.attrib"/>
      <ref name="para.role.attrib"/>
   </define>
   <define name="simpara.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="simpara">
      <element name="simpara">
         <ref name="simpara.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="para.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="simpara.attlist">
      <ref name="common.attrib"/>
      <ref name="simpara.role.attrib"/>
   </define>
   <define name="admon.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="admonitionType">
      <optional>
         <ref name="title"/>
      </optional>
      <oneOrMore>
         <ref name="admon.mix"/>
      </oneOrMore>
   </define>
   <define name="important">
      <element name="important">
         <ref name="important.attlist"/>
         <ref name="admonitionType"/>
      </element>
   </define>
   <define name="important.attlist">
      <ref name="common.attrib"/>
      <ref name="admon.role.attrib"/>
   </define>
   <define name="warning">
      <element name="warning">
         <ref name="warning.attlist"/>
         <ref name="admonitionType"/>
      </element>
   </define>
   <define name="warning.attlist">
      <ref name="common.attrib"/>
      <ref name="admon.role.attrib"/>
   </define>
   <define name="caution">
      <element name="caution">
         <ref name="caution.attlist"/>
         <ref name="admonitionType"/>
      </element>
   </define>
   <define name="caution.attlist">
      <ref name="common.attrib"/>
      <ref name="admon.role.attrib"/>
   </define>
   <define name="note">
      <element name="note">
         <ref name="note.attlist"/>
         <ref name="admonitionType"/>
      </element>
   </define>
   <define name="note.attlist">
      <ref name="common.attrib"/>
      <ref name="admon.role.attrib"/>
   </define>
   <define name="tip">
      <element name="tip">
         <ref name="tip.attlist"/>
         <ref name="admonitionType"/>
      </element>
   </define>
   <define name="tip.attlist">
      <ref name="common.attrib"/>
      <ref name="admon.role.attrib"/>
   </define>
   <define name="glosslist.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="glosslist">
      <element name="glosslist">
         <ref name="glosslist.attlist"/>
         <oneOrMore>
            <ref name="glossentry"/>
         </oneOrMore>
      </element>
   </define>
   <define name="glosslist.attlist">
      <ref name="common.attrib"/>
      <ref name="glosslist.role.attrib"/>
   </define>
   <define name="glossentry.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="glossentry">
      <element name="glossentry">
         <ref name="glossentry.attlist"/>
         <ref name="glossterm"/>
         <optional>
            <ref name="acronym"/>
         </optional>
         <optional>
            <ref name="abbrev"/>
         </optional>
         <zeroOrMore>
            <ref name="ndxterm.class"/>
         </zeroOrMore>
         <optional>
            <ref name="revhistory"/>
         </optional>
         <choice>
            <ref name="glosssee"/>
            <oneOrMore>
               <ref name="glossdef"/>
            </oneOrMore>
         </choice>
      </element>
   </define>
   <define name="glossentry.attlist">
      <ref name="common.attrib"/>
      <ref name="glossentry.role.attrib"/>
      <optional>
         <attribute name="sortas">
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="glossdef.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="glossdef">
      <element name="glossdef">
         <ref name="glossdef.attlist"/>
         <oneOrMore>
            <ref name="glossdef.mix"/>
         </oneOrMore>
         <oneOrMore>
            <ref name="glossseealso"/>
         </oneOrMore>
      </element>
   </define>
   <define name="glossdef.attlist">
      <ref name="common.attrib"/>
      <ref name="glossdef.role.attrib"/>
      <optional>
         <attribute name="subject">
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="glosssee.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="glosssee">
      <element name="glosssee">
         <ref name="glosssee.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="para.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="glosssee.attlist">
      <ref name="common.attrib"/>
      <ref name="glosssee.role.attrib"/>
      <optional>
         <attribute name="otherterm">
            <data type="IDREF"/>
         </attribute>
      </optional>
   </define>
   <define name="glossseealso.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="glossseealso">
      <element name="glossseealso">
         <ref name="glossseealso.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="para.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="glossseealso.attlist">
      <ref name="common.attrib"/>
      <ref name="glossseealso.role.attrib"/>
      <optional>
         <attribute name="otherterm">
            <data type="IDREF"/>
         </attribute>
      </optional>
   </define>
   <define name="itemizedlist.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="itemizedlist">
      <element name="itemizedlist">
         <ref name="itemizedlist.attlist"/>
         <optional>
            <ref name="formalobject.title.content"/>
         </optional>
         <oneOrMore>
            <ref name="listitem"/>
         </oneOrMore>
      </element>
   </define>
   <define name="itemizedlist.attlist">
      <ref name="mark.attrib"/>
      <ref name="common.attrib"/>
      <ref name="itemizedlist.role.attrib"/>
      <optional>
         <attribute name="spacing">
            <choice>
               <value>normal</value>
               <value>compact</value>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="orderedlist.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="orderedlist">
      <element name="orderedlist">
         <ref name="orderedlist.attlist"/>
         <optional>
            <ref name="formalobject.title.content"/>
         </optional>
         <oneOrMore>
            <ref name="listitem"/>
         </oneOrMore>
      </element>
   </define>
   <define name="orderedlist.attlist">
      <ref name="common.attrib"/>
      <ref name="orderedlist.role.attrib"/>
      <optional>
         <attribute name="numeration">
            <choice>
               <value>arabic</value>
               <value>upperalpha</value>
               <value>loweralpha</value>
               <value>upperroman</value>
               <value>lowerroman</value>
            </choice>
         </attribute>
      </optional>
      <optional>
         <attribute name="inheritnum">
            <choice>
               <value>inherit</value>
               <value>ignore</value>
            </choice>
         </attribute>
      </optional>
      <optional>
         <attribute name="continuation">
            <choice>
               <value>continues</value>
               <value>restarts</value>
            </choice>
         </attribute>
      </optional>
      <optional>
         <attribute name="spacing">
            <choice>
               <value>normal</value>
               <value>compact</value>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="listitem.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="listitem">
      <element name="listitem">
         <ref name="listitem.attlist"/>
         <oneOrMore>
            <ref name="component.mix"/>
         </oneOrMore>
      </element>
   </define>
   <define name="listitem.attlist">
      <ref name="common.attrib"/>
      <ref name="listitem.role.attrib"/>
      <optional>
         <attribute name="override">
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="segmentedlist.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="segmentedlist">
      <element name="segmentedlist">
         <ref name="segmentedlist.attlist"/>
         <optional>
            <ref name="formalobject.title.content"/>
         </optional>
         <ref name="segtitle"/>
         <zeroOrMore>
            <ref name="segtitle"/>
         </zeroOrMore>
         <oneOrMore>
            <ref name="seglistitem"/>
         </oneOrMore>
      </element>
   </define>
   <define name="segmentedlist.attlist">
      <ref name="common.attrib"/>
      <ref name="segmentedlist.role.attrib"/>
   </define>
   <define name="segtitle.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="segtitle">
      <element name="segtitle">
         <ref name="segtitle.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="title.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="segtitle.attlist">
      <ref name="common.attrib"/>
      <ref name="segtitle.role.attrib"/>
   </define>
   <define name="seglistitem.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="seglistitem">
      <element name="seglistitem">
         <ref name="seglistitem.attlist"/>
         <ref name="seg"/>
         <zeroOrMore>
            <ref name="seg"/>
         </zeroOrMore>
      </element>
   </define>
   <define name="seglistitem.attlist">
      <ref name="common.attrib"/>
      <ref name="seglistitem.role.attrib"/>
   </define>
   <define name="seg.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="seg">
      <element name="seg">
         <ref name="seg.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="para.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="seg.attlist">
      <ref name="common.attrib"/>
      <ref name="seg.role.attrib"/>
   </define>
   <define name="simplelist.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="simplelist">
      <element name="simplelist">
         <ref name="simplelist.attlist"/>
         <oneOrMore>
            <ref name="member"/>
         </oneOrMore>
      </element>
   </define>
   <define name="simplelist.attlist">
      <ref name="common.attrib"/>
      <ref name="simplelist.role.attrib"/>
      <optional>
         <attribute name="columns">
            <data type="integer"/>
         </attribute>
      </optional>
      <optional>
         <attribute name="type">
            <choice>
               <value>inline</value>
               <value>vert</value>
               <value>horiz</value>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="member.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="member">
      <element name="member">
         <ref name="member.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="para.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="member.attlist">
      <ref name="common.attrib"/>
      <ref name="member.role.attrib"/>
   </define>
   <define name="variablelist.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="variablelist">
      <element name="variablelist">
         <ref name="variablelist.attlist"/>
         <optional>
            <ref name="formalobject.title.content"/>
         </optional>
         <oneOrMore>
            <ref name="varlistentry"/>
         </oneOrMore>
      </element>
   </define>
   <define name="variablelist.attlist">
      <ref name="common.attrib"/>
      <ref name="variablelist.role.attrib"/>
      <optional>
         <attribute name="termlength">
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="varlistentry.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="varlistentry">
      <element name="varlistentry">
         <ref name="varlistentry.attlist"/>
         <oneOrMore>
            <ref name="term"/>
         </oneOrMore>
         <ref name="listitem"/>
      </element>
   </define>
   <define name="varlistentry.attlist">
      <ref name="common.attrib"/>
      <ref name="varlistentry.role.attrib"/>
   </define>
   <define name="term.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="term">
      <element name="term">
         <ref name="term.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="para.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="term.attlist">
      <ref name="common.attrib"/>
      <ref name="term.role.attrib"/>
   </define>
   <define name="calloutlist.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="calloutlist">
      <element name="calloutlist">
         <ref name="calloutlist.attlist"/>
         <optional>
            <ref name="formalobject.title.content"/>
         </optional>
         <oneOrMore>
            <ref name="callout"/>
         </oneOrMore>
      </element>
   </define>
   <define name="calloutlist.attlist">
      <ref name="common.attrib"/>
      <ref name="calloutlist.role.attrib"/>
   </define>
   <define name="callout.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="callout">
      <element name="callout">
         <ref name="callout.attlist"/>
         <oneOrMore>
            <ref name="component.mix"/>
         </oneOrMore>
      </element>
   </define>
   <define name="callout.attlist">
      <ref name="common.attrib"/>
      <ref name="callout.role.attrib"/>
      <optional>
         <attribute name="arearefs">
            <data type="IDREFS"/>
         </attribute>
      </optional>
   </define>
   <define name="example.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="example">
      <element name="example">
         <ref name="example.attlist"/>
         <optional>
            <ref name="formalobject.title.content"/>
         </optional>
         <oneOrMore>
            <ref name="example.mix"/>
         </oneOrMore>
      </element>
   </define>
   <define name="example.attlist">
      <ref name="label.attrib"/>
      <ref name="width.attrib"/>
      <ref name="common.attrib"/>
      <ref name="example.role.attrib"/>
   </define>
   <define name="informalexample.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="informalexample">
      <element name="informalexample">
         <ref name="informalexample.attlist"/>
         <oneOrMore>
            <ref name="example.mix"/>
         </oneOrMore>
      </element>
   </define>
   <define name="informalexample.attlist">
      <ref name="width.attrib"/>
      <ref name="common.attrib"/>
      <ref name="informalexample.role.attrib"/>
   </define>
   <define name="programlistingco.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="programlistingco">
      <element name="programlistingco">
         <ref name="programlistingco.attlist"/>
         <ref name="areaspec"/>
         <ref name="programlisting"/>
         <zeroOrMore>
            <ref name="calloutlist"/>
         </zeroOrMore>
      </element>
   </define>
   <define name="programlistingco.attlist">
      <ref name="common.attrib"/>
      <ref name="programlistingco.role.attrib"/>
   </define>
   <define name="areaspec.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="areaspec">
      <element name="areaspec">
         <ref name="areaspec.attlist"/>
         <oneOrMore>
            <choice>
               <ref name="area"/>
               <ref name="areaset"/>
            </choice>
         </oneOrMore>
      </element>
   </define>
   <define name="areaspec.attlist">
      <ref name="common.attrib"/>
      <ref name="areaspec.role.attrib"/>
      <optional>
         <attribute name="units">
            <choice>
               <value>calspair</value>
               <value>linecolumn</value>
               <value>linerange</value>
               <value>linecolumnpair</value>
               <value>other</value>
            </choice>
         </attribute>
      </optional>
      <optional>
         <attribute name="otherunits">
            <data type="NMTOKEN"/>
         </attribute>
      </optional>
   </define>
   <define name="area.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="area">
      <element name="area">
         <ref name="area.attlist"/>
      </element>
   </define>
   <define name="area.attlist">
      <ref name="label.attrib"/>
      <ref name="linkends.attrib"/>
      <ref name="idreq.common.attrib"/>
      <ref name="area.role.attrib"/>
      <optional>
         <attribute name="units">
            <choice>
               <value>calspair</value>
               <value>linecolumn</value>
               <value>linerange</value>
               <value>linecolumnpair</value>
               <value>other</value>
            </choice>
         </attribute>
      </optional>
      <optional>
         <attribute name="otherunits">
            <data type="NMTOKEN"/>
         </attribute>
      </optional>
      <attribute name="coords">
         <data type="string"/>
      </attribute>
   </define>
   <define name="areaset.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="areaset">
      <element name="areaset">
         <ref name="areaset.attlist"/>
         <oneOrMore>
            <ref name="area"/>
         </oneOrMore>
      </element>
   </define>
   <define name="areaset.attlist">
      <ref name="label.attrib"/>
      <ref name="idreq.common.attrib"/>
      <ref name="areaset.role.attrib"/>
      <optional>
         <attribute name="units">
            <choice>
               <value>calspair</value>
               <value>linecolumn</value>
               <value>linerange</value>
               <value>linecolumnpair</value>
               <value>other</value>
            </choice>
         </attribute>
      </optional>
      <optional>
         <attribute name="otherunits">
            <data type="NMTOKEN"/>
         </attribute>
      </optional>
      <attribute name="coords">
         <data type="string"/>
      </attribute>
   </define>
   <define name="programlisting.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="programlisting">
      <element name="programlisting">
         <ref name="programlisting.attlist"/>
         <mixed>
            <zeroOrMore>
               <choice>
                  <ref name="para.char.mix"/>
                  <ref name="co"/>
                  <ref name="lineannotation"/>
               </choice>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="programlisting.attlist">
      <ref name="width.attrib"/>
      <ref name="linespecific.attrib"/>
      <ref name="common.attrib"/>
      <ref name="programlisting.role.attrib"/>
   </define>
   <define name="literallayout.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="literallayout">
      <element name="literallayout">
         <ref name="literallayout.attlist"/>
         <mixed>
            <zeroOrMore>
               <choice>
                  <ref name="para.char.mix"/>
                  <ref name="co"/>
                  <ref name="lineannotation"/>
               </choice>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="literallayout.attlist">
      <ref name="width.attrib"/>
      <ref name="linespecific.attrib"/>
      <ref name="common.attrib"/>
      <ref name="literallayout.role.attrib"/>
      <optional>
         <attribute name="class">
            <choice>
               <value>monospaced</value>
               <value>normal</value>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="screenco.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="screenco">
      <element name="screenco">
         <ref name="screenco.attlist"/>
         <ref name="areaspec"/>
         <ref name="screen"/>
         <zeroOrMore>
            <ref name="calloutlist"/>
         </zeroOrMore>
      </element>
   </define>
   <define name="screenco.attlist">
      <ref name="common.attrib"/>
      <ref name="screenco.role.attrib"/>
   </define>
   <define name="screen.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="screen">
      <element name="screen">
         <ref name="screen.attlist"/>
         <mixed>
            <zeroOrMore>
               <choice>
                  <ref name="para.char.mix"/>
                  <ref name="co"/>
                  <ref name="lineannotation"/>
               </choice>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="screen.attlist">
      <ref name="width.attrib"/>
      <ref name="linespecific.attrib"/>
      <ref name="common.attrib"/>
      <ref name="screen.role.attrib"/>
   </define>
   <define name="screenshot.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="screenshot">
      <element name="screenshot">
         <ref name="screenshot.attlist"/>
         <optional>
            <ref name="screeninfo"/>
         </optional>
         <choice>
            <ref name="graphic"/>
            <ref name="graphicco"/>
            <ref name="mediaobject"/>
            <ref name="mediaobjectco"/>
         </choice>
      </element>
   </define>
   <define name="screenshot.attlist">
      <ref name="common.attrib"/>
      <ref name="screenshot.role.attrib"/>
   </define>
   <define name="screeninfo.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="screeninfo">
      <element name="screeninfo">
         <ref name="screeninfo.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="para.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="screeninfo.attlist">
      <ref name="common.attrib"/>
      <ref name="screeninfo.role.attrib"/>
   </define>
   <define name="figure.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="figure">
      <element name="figure">
         <ref name="figure.attlist"/>
         <optional>
            <ref name="formalobject.title.content"/>
         </optional>
         <oneOrMore>
            <choice>
               <ref name="figure.mix"/>
               <ref name="link.char.class"/>
            </choice>
         </oneOrMore>
      </element>
   </define>
   <define name="figure.attlist">
      <ref name="label.attrib"/>
      <ref name="common.attrib"/>
      <ref name="figure.role.attrib"/>
      <optional>
         <attribute name="float">
            <choice>
               <value>0</value>
               <value>1</value>
            </choice>
         </attribute>
      </optional>
      <optional>
         <attribute name="pgwide">
            <choice>
               <value>0</value>
               <value>1</value>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="informalfigure.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="informalfigure">
      <element name="informalfigure">
         <ref name="informalfigure.attlist"/>
         <oneOrMore>
            <choice>
               <ref name="figure.mix"/>
               <ref name="link.char.class"/>
            </choice>
         </oneOrMore>
      </element>
   </define>
   <define name="informalfigure.attlist">
      <ref name="label.attrib"/>
      <ref name="common.attrib"/>
      <ref name="informalfigure.role.attrib"/>
      <optional>
         <attribute name="float">
            <choice>
               <value>0</value>
               <value>1</value>
            </choice>
         </attribute>
      </optional>
      <optional>
         <attribute name="pgwide">
            <choice>
               <value>0</value>
               <value>1</value>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="graphicco.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="graphicco">
      <element name="graphicco">
         <ref name="graphicco.attlist"/>
         <ref name="areaspec"/>
         <ref name="graphic"/>
         <zeroOrMore>
            <ref name="calloutlist"/>
         </zeroOrMore>
      </element>
   </define>
   <define name="graphicco.attlist">
      <ref name="common.attrib"/>
      <ref name="graphicco.role.attrib"/>
   </define>
   <define name="graphic.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="graphic">
      <element name="graphic">
         <ref name="graphic.attlist"/>
      </element>
   </define>
   <define name="graphic.attlist">
      <ref name="graphics.attrib"/>
      <ref name="common.attrib"/>
      <ref name="graphic.role.attrib"/>
   </define>
   <define name="inlinegraphic.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="inlinegraphic">
      <element name="inlinegraphic">
         <ref name="inlinegraphic.attlist"/>
      </element>
   </define>
   <define name="inlinegraphic.attlist">
      <ref name="graphics.attrib"/>
      <ref name="common.attrib"/>
      <ref name="inlinegraphic.role.attrib"/>
   </define>
   <define name="mediaobject.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="mediaobject">
      <element name="mediaobject">
         <ref name="mediaobject.attlist"/>
         <optional>
            <ref name="objectinfo"/>
         </optional>
         <ref name="mediaobject.mix"/>
         <zeroOrMore>
            <choice>
               <ref name="mediaobject.mix"/>
               <ref name="textobject"/>
            </choice>
         </zeroOrMore>
         <optional>
            <ref name="caption"/>
         </optional>
      </element>
   </define>
   <define name="mediaobject.attlist">
      <ref name="common.attrib"/>
      <ref name="mediaobject.role.attrib"/>
   </define>
   <define name="inlinemediaobject.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="inlinemediaobject">
      <element name="inlinemediaobject">
         <ref name="inlinemediaobject.attlist"/>
         <optional>
            <ref name="objectinfo"/>
         </optional>
         <ref name="mediaobject.mix"/>
         <zeroOrMore>
            <choice>
               <ref name="mediaobject.mix"/>
               <ref name="textobject"/>
            </choice>
         </zeroOrMore>
      </element>
   </define>
   <define name="inlinemediaobject.attlist">
      <ref name="common.attrib"/>
      <ref name="inlinemediaobject.role.attrib"/>
   </define>
   <define name="videoobject.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="videoobject">
      <element name="videoobject">
         <ref name="videoobject.attlist"/>
         <optional>
            <ref name="objectinfo"/>
         </optional>
         <ref name="videodata"/>
      </element>
   </define>
   <define name="videoobject.attlist">
      <ref name="common.attrib"/>
      <ref name="videoobject.role.attrib"/>
   </define>
   <define name="audioobject.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="audioobject">
      <element name="audioobject">
         <ref name="audioobject.attlist"/>
         <optional>
            <ref name="objectinfo"/>
         </optional>
         <ref name="audiodata"/>
      </element>
   </define>
   <define name="audioobject.attlist">
      <ref name="common.attrib"/>
      <ref name="audioobject.role.attrib"/>
   </define>
   <define name="imageobject.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="imageobject">
      <element name="imageobject">
         <ref name="imageobject.attlist"/>
         <optional>
            <ref name="objectinfo"/>
         </optional>
         <ref name="imagedata"/>
      </element>
   </define>
   <define name="imageobject.attlist">
      <ref name="common.attrib"/>
      <ref name="imageobject.role.attrib"/>
   </define>
   <define name="textobject.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="textobject">
      <element name="textobject">
         <ref name="textobject.attlist"/>
         <optional>
            <ref name="objectinfo"/>
         </optional>
         <choice>
            <ref name="phrase"/>
            <oneOrMore>
               <ref name="textobject.mix"/>
            </oneOrMore>
         </choice>
      </element>
   </define>
   <define name="textobject.attlist">
      <ref name="common.attrib"/>
      <ref name="textobject.role.attrib"/>
   </define>
   <define name="objectinfo.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="objectinfo">
      <element name="objectinfo">
         <ref name="objectinfo.attlist"/>
         <ref name="infoContentModel"/>
      </element>
   </define>
   <define name="objectinfo.attlist">
      <ref name="common.attrib"/>
      <ref name="objectinfo.role.attrib"/>
   </define>
   <define name="objectdata.attrib">
      <optional>
         <attribute name="fileref">
            <data type="string"/>
         </attribute>
      </optional>
      <optional>
         <attribute name="format">
            <choice>
               <value>BMP</value>
               <value>CGM-CHAR</value>
               <value>CGM-BINARY</value>
               <value>CGM-CLEAR</value>
               <value>DITROFF</value>
               <value>DVI</value>
               <value>EPS</value>
               <value>EQN</value>
               <value>FAX</value>
               <value>GIF</value>
               <value>GIF87a</value>
               <value>GIF89a</value>
               <value>JPG</value>
               <value>JPEG</value>
               <value>IGES</value>
               <value>PCX</value>
               <value>PIC</value>
               <value>PNG</value>
               <value>PS</value>
               <value>SGML</value>
               <value>TBL</value>
               <value>TEX</value>
               <value>TIFF</value>
               <value>WMF</value>
               <value>WPG</value>
               <value>linespecific</value>
            </choice>
         </attribute>
      </optional>
      <optional>
         <attribute name="srccredit">
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="videodata.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="videodata">
      <element name="videodata">
         <ref name="videodata.attlist"/>
      </element>
   </define>
   <define name="videodata.attlist">
      <ref name="common.attrib"/>
      <ref name="objectdata.attrib"/>
      <optional>
         <attribute name="width">
            <data type="string"/>
         </attribute>
      </optional>
      <optional>
         <attribute name="depth">
            <data type="string"/>
         </attribute>
      </optional>
      <optional>
         <attribute name="align">
            <choice>
               <value>left</value>
               <value>right</value>
               <value>center</value>
            </choice>
         </attribute>
      </optional>
      <optional>
         <attribute name="scale">
            <data type="string"/>
         </attribute>
      </optional>
      <optional>
         <attribute name="scalefit">
            <choice>
               <value>0</value>
               <value>1</value>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="audiodata.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="audiodata">
      <element name="audiodata">
         <ref name="audiodata.attlist"/>
      </element>
   </define>
   <define name="audiodata.attlist">
      <ref name="common.attrib"/>
      <ref name="objectdata.attrib"/>
      <ref name="audiodata.role.attrib"/>
   </define>
   <define name="imagedata.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="imagedata">
      <element name="imagedata">
         <ref name="imagedata.attlist"/>
      </element>
   </define>
   <define name="imagedata.attlist">
      <ref name="common.attrib"/>
      <ref name="objectdata.attrib"/>
      <ref name="imagedata.role.attrib"/>
      <optional>
         <attribute name="width">
            <data type="string"/>
         </attribute>
      </optional>
      <optional>
         <attribute name="depth">
            <data type="string"/>
         </attribute>
      </optional>
      <optional>
         <attribute name="align">
            <choice>
               <value>left</value>
               <value>right</value>
               <value>center</value>
            </choice>
         </attribute>
      </optional>
      <optional>
         <attribute name="scale">
            <data type="string"/>
         </attribute>
      </optional>
      <optional>
         <attribute name="scalefit">
            <choice>
               <value>0</value>
               <value>1</value>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="caption.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="caption">
      <element name="caption">
         <ref name="caption.attlist"/>
         <zeroOrMore>
            <ref name="textobject.mix"/>
         </zeroOrMore>
      </element>
   </define>
   <define name="caption.attlist">
      <ref name="common.attrib"/>
      <ref name="caption.role.attrib"/>
   </define>
   <define name="mediaobjectco.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="mediaobjectco">
      <element name="mediaobjectco">
         <ref name="mediaobjectco.attlist"/>
         <optional>
            <ref name="objectinfo"/>
         </optional>
         <ref name="imageobjectco"/>
         <zeroOrMore>
            <choice>
               <ref name="imageobjectco"/>
               <ref name="textobject"/>
            </choice>
         </zeroOrMore>
      </element>
   </define>
   <define name="mediaobjectco.attlist">
      <ref name="common.attrib"/>
      <ref name="mediaobjectco.role.attrib"/>
   </define>
   <define name="imageobjectco.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="imageobjectco">
      <element name="imageobjectco">
         <ref name="imageobjectco.attlist"/>
         <ref name="areaspec"/>
         <ref name="imageobject"/>
         <zeroOrMore>
            <ref name="calloutlist"/>
         </zeroOrMore>
      </element>
   </define>
   <define name="imageobjectco.attlist">
      <ref name="common.attrib"/>
      <ref name="imageobjectco.role.attrib"/>
   </define>
   <define name="equation.content">
      <optional>
         <ref name="alt"/>
      </optional>
      <choice>
         <oneOrMore>
            <ref name="graphic"/>
         </oneOrMore>
         <oneOrMore>
            <ref name="mediaobject"/>
         </oneOrMore>
      </choice>
   </define>
   <define name="inlineequation.content">
      <optional>
         <ref name="alt"/>
      </optional>
      <choice>
         <oneOrMore>
            <ref name="graphic"/>
         </oneOrMore>
         <oneOrMore>
            <ref name="inlinemediaobject"/>
         </oneOrMore>
      </choice>
   </define>
   <define name="equation.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="equation">
      <element name="equation">
         <ref name="equation.attlist"/>
         <optional>
            <ref name="formalobject.title.content"/>
         </optional>
         <choice>
            <ref name="informalequation"/>
            <ref name="equation.content"/>
         </choice>
      </element>
   </define>
   <define name="equation.attlist">
      <ref name="label.attrib"/>
      <ref name="common.attrib"/>
      <ref name="equation.role.attrib"/>
   </define>
   <define name="informalequation.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="informalequation">
      <element name="informalequation">
         <ref name="informalequation.attlist"/>
         <ref name="equation.content"/>
      </element>
   </define>
   <define name="informalequation.attlist">
      <ref name="common.attrib"/>
      <ref name="informalequation.role.attrib"/>
   </define>
   <define name="inlineequation.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="inlineequation">
      <element name="inlineequation">
         <ref name="inlineequation.attlist"/>
         <ref name="inlineequation.content"/>
      </element>
   </define>
   <define name="inlineequation.attlist">
      <ref name="common.attrib"/>
      <ref name="inlineequation.role.attrib"/>
   </define>
   <define name="alt.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="alt">
      <element name="alt">
         <ref name="alt.attlist"/>
         <text/>
      </element>
   </define>
   <define name="alt.attlist">
      <ref name="common.attrib"/>
      <ref name="alt.role.attrib"/>
   </define>
   <define name="synopsis.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="synopsis">
      <element name="synopsis">
         <ref name="synopsis.attlist"/>
         <mixed>
            <zeroOrMore>
               <choice>
                  <ref name="para.char.mix"/>
                  <ref name="graphic"/>
                  <ref name="mediaobject"/>
                  <ref name="lineannotation"/>
                  <ref name="co"/>
               </choice>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="synopsis.attlist">
      <ref name="label.attrib"/>
      <ref name="linespecific.attrib"/>
      <ref name="common.attrib"/>
      <ref name="synopsis.role.attrib"/>
   </define>
   <define name="cmdsynopsis.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="cmdsynopsis">
      <element name="cmdsynopsis">
         <ref name="cmdsynopsis.attlist"/>
         <oneOrMore>
            <choice>
               <ref name="command"/>
               <ref name="arg"/>
               <ref name="group"/>
               <ref name="sbr"/>
            </choice>
         </oneOrMore>
         <zeroOrMore>
            <ref name="synopfragment"/>
         </zeroOrMore>
      </element>
   </define>
   <define name="cmdsynopsis.attlist">
      <ref name="label.attrib"/>
      <ref name="common.attrib"/>
      <ref name="cmdsynopsis.role.attrib"/>
      <optional>
         <attribute name="sepchar">
            <data type="string"/>
         </attribute>
      </optional>
      <optional>
         <attribute name="cmdlength">
            <data type="integer"/>
         </attribute>
      </optional>
   </define>
   <define name="arg.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="arg">
      <element name="arg">
         <ref name="arg.attlist"/>
         <mixed>
            <zeroOrMore>
               <choice>
                  <ref name="arg"/>
                  <ref name="group"/>
                  <ref name="option"/>
                  <ref name="synopfragmentref"/>
                  <ref name="replaceable"/>
                  <ref name="sbr"/>
               </choice>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="arg.attlist">
      <ref name="common.attrib"/>
      <ref name="arg.role.attrib"/>
      <optional>
         <attribute name="choice">
            <choice>
               <value>opt</value>
               <value>req</value>
               <value>plain</value>
            </choice>
         </attribute>
      </optional>
      <optional>
         <attribute name="rep">
            <choice>
               <value>norepeat</value>
               <value>repeat</value>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="group.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="group">
      <element name="group">
         <ref name="group.attlist"/>
         <oneOrMore>
            <choice>
               <ref name="arg"/>
               <ref name="group"/>
               <ref name="option"/>
               <ref name="synopfragmentref"/>
               <ref name="replaceable"/>
               <ref name="sbr"/>
            </choice>
         </oneOrMore>
      </element>
   </define>
   <define name="group.attlist">
      <ref name="common.attrib"/>
      <ref name="group.role.attrib"/>
      <optional>
         <attribute name="choice">
            <choice>
               <value>opt</value>
               <value>req</value>
               <value>plain</value>
            </choice>
         </attribute>
      </optional>
      <optional>
         <attribute name="rep">
            <choice>
               <value>norepeat</value>
               <value>repeat</value>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="sbr.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="sbr">
      <element name="sbr">
         <ref name="sbr.attlist"/>
      </element>
   </define>
   <define name="sbr.attlist">
      <ref name="common.attrib"/>
      <ref name="sbr.role.attrib"/>
   </define>
   <define name="synopfragmentref.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="synopfragmentref">
      <element name="synopfragmentref">
         <ref name="synopfragmentref.attlist"/>
         <text/>
      </element>
   </define>
   <define name="synopfragmentref.attlist">
      <ref name="linkendreq.attrib"/>
      <ref name="common.attrib"/>
      <ref name="synopfragmentref.role.attrib"/>
   </define>
   <define name="synopfragment.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="synopfragment">
      <element name="synopfragment">
         <ref name="synopfragment.attlist"/>
         <oneOrMore>
            <choice>
               <ref name="arg"/>
               <ref name="group"/>
            </choice>
         </oneOrMore>
      </element>
   </define>
   <define name="synopfragment.attlist">
      <ref name="idreq.common.attrib"/>
      <ref name="synopfragment.role.attrib"/>
   </define>
   <define name="funcsynopsis.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="funcsynopsis">
      <element name="funcsynopsis">
         <ref name="funcsynopsis.attlist"/>
         <oneOrMore>
            <choice>
               <ref name="funcsynopsisinfo"/>
               <ref name="funcprototype"/>
            </choice>
         </oneOrMore>
      </element>
   </define>
   <define name="funcsynopsis.attlist">
      <ref name="label.attrib"/>
      <ref name="common.attrib"/>
      <ref name="funcsynopsis.role.attrib"/>
   </define>
   <define name="funcsynopsisinfo.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="funcsynopsisinfo">
      <element name="funcsynopsisinfo">
         <ref name="funcsynopsisinfo.attlist"/>
         <mixed>
            <zeroOrMore>
               <choice>
                  <ref name="cptr.char.mix"/>
                  <ref name="lineannotation"/>
               </choice>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="funcsynopsisinfo.attlist">
      <ref name="linespecific.attrib"/>
      <ref name="common.attrib"/>
      <ref name="funcsynopsisinfo.role.attrib"/>
   </define>
   <define name="funcprototype.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="funcprototype">
      <element name="funcprototype">
         <ref name="funcprototype.attlist"/>
         <ref name="funcdef"/>
         <oneOrMore>
            <choice>
               <ref name="void"/>
               <ref name="varargs"/>
               <ref name="paramdef"/>
            </choice>
         </oneOrMore>
      </element>
   </define>
   <define name="funcprototype.attlist">
      <ref name="common.attrib"/>
      <ref name="funcprototype.role.attrib"/>
   </define>
   <define name="funcdef.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="funcdef">
      <element name="funcdef">
         <ref name="funcdef.attlist"/>
         <mixed>
            <zeroOrMore>
               <choice>
                  <ref name="replaceable"/>
                  <ref name="function"/>
               </choice>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="funcdef.attlist">
      <ref name="common.attrib"/>
      <ref name="funcdef.role.attrib"/>
   </define>
   <define name="void.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="void">
      <element name="void">
         <ref name="void.attlist"/>
      </element>
   </define>
   <define name="void.attlist">
      <ref name="common.attrib"/>
      <ref name="void.role.attrib"/>
   </define>
   <define name="varargs.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="varargs">
      <element name="varargs">
         <ref name="varargs.attlist"/>
      </element>
   </define>
   <define name="varargs.attlist">
      <ref name="common.attrib"/>
      <ref name="varargs.role.attrib"/>
   </define>
   <define name="paramdef.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="paramdef">
      <element name="paramdef">
         <ref name="paramdef.attlist"/>
         <mixed>
            <zeroOrMore>
               <choice>
                  <ref name="replaceable"/>
                  <ref name="parameter"/>
                  <ref name="funcparams"/>
               </choice>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="paramdef.attlist">
      <ref name="common.attrib"/>
      <ref name="paramdef.role.attrib"/>
   </define>
   <define name="funcparams.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="funcparams">
      <element name="funcparams">
         <ref name="funcparams.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="cptr.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="funcparams.attlist">
      <ref name="common.attrib"/>
      <ref name="funcparams.role.attrib"/>
   </define>
   <define name="classsynopsis.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="classsynopsis">
      <element name="classsynopsis">
         <ref name="classsynopsis.attlist"/>
         <oneOrMore>
            <choice>
               <ref name="ooclass"/>
               <ref name="oointerface"/>
               <ref name="ooexception"/>
            </choice>
         </oneOrMore>
         <zeroOrMore>
            <choice>
               <ref name="classsynopsisinfo"/>
               <ref name="fieldsynopsis"/>
               <ref name="method.synop.class"/>
            </choice>
         </zeroOrMore>
      </element>
   </define>
   <define name="classsynopsis.attlist">
      <ref name="common.attrib"/>
      <ref name="classsynopsis.role.attrib"/>
      <optional>
         <attribute name="language">
            <data type="string"/>
         </attribute>
      </optional>
      <optional>
         <attribute name="class">
            <choice>
               <value>class</value>
               <value>interface</value>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="classsynopsisinfo.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="classsynopsisinfo">
      <element name="classsynopsisinfo">
         <ref name="classsynopsisinfo.attlist"/>
         <mixed>
            <zeroOrMore>
               <choice>
                  <ref name="cptr.char.mix"/>
                  <ref name="lineannotation"/>
               </choice>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="classsynopsisinfo.attlist">
      <ref name="linespecific.attrib"/>
      <ref name="common.attrib"/>
      <ref name="classsynopsisinfo.role.attrib"/>
   </define>
   <define name="ooclass.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="ooclass">
      <element name="ooclass">
         <ref name="ooclass.attlist"/>
         <zeroOrMore>
            <ref name="modifier"/>
         </zeroOrMore>
         <ref name="classname"/>
      </element>
   </define>
   <define name="ooclass.attlist">
      <ref name="common.attrib"/>
      <ref name="ooclass.role.attrib"/>
   </define>
   <define name="oointerface.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="oointerface">
      <element name="oointerface">
         <ref name="oointerface.attlist"/>
         <zeroOrMore>
            <ref name="modifier"/>
         </zeroOrMore>
         <ref name="interfacename"/>
      </element>
   </define>
   <define name="oointerface.attlist">
      <ref name="common.attrib"/>
      <ref name="oointerface.role.attrib"/>
   </define>
   <define name="ooexception.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="ooexception">
      <element name="ooexception">
         <ref name="ooexception.attlist"/>
         <zeroOrMore>
            <ref name="modifier"/>
         </zeroOrMore>
         <ref name="exceptionname"/>
      </element>
   </define>
   <define name="ooexception.attlist">
      <ref name="common.attrib"/>
      <ref name="ooexception.role.attrib"/>
   </define>
   <define name="modifier.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="modifier">
      <element name="modifier">
         <ref name="modifier.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="smallcptr.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="modifier.attlist">
      <ref name="common.attrib"/>
      <ref name="modifier.role.attrib"/>
   </define>
   <define name="interfacename.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="interfacename">
      <element name="interfacename">
         <ref name="interfacename.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="smallcptr.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="interfacename.attlist">
      <ref name="common.attrib"/>
      <ref name="interfacename.role.attrib"/>
   </define>
   <define name="exceptionname.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="exceptionname">
      <element name="exceptionname">
         <ref name="exceptionname.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="smallcptr.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="exceptionname.attlist">
      <ref name="common.attrib"/>
      <ref name="exceptionname.role.attrib"/>
   </define>
   <define name="fieldsynopsis.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="fieldsynopsis">
      <element name="fieldsynopsis">
         <ref name="fieldsynopsis.attlist"/>
         <zeroOrMore>
            <ref name="modifier"/>
         </zeroOrMore>
         <optional>
            <ref name="type"/>
         </optional>
         <ref name="varname"/>
         <optional>
            <ref name="initializer"/>
         </optional>
      </element>
   </define>
   <define name="fieldsynopsis.attlist">
      <ref name="common.attrib"/>
      <ref name="fieldsynopsis.role.attrib"/>
   </define>
   <define name="initializer.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="initializer">
      <element name="initializer">
         <ref name="initializer.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="smallcptr.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="initializer.attlist">
      <ref name="common.attrib"/>
      <ref name="initializer.role.attrib"/>
   </define>
   <define name="constructorsynopsis.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="constructorsynopsis">
      <element name="constructorsynopsis">
         <ref name="constructorsynopsis.attlist"/>
         <zeroOrMore>
            <ref name="modifier"/>
         </zeroOrMore>
         <optional>
            <ref name="methodname"/>
         </optional>
         <choice>
            <oneOrMore>
               <ref name="methodparam"/>
            </oneOrMore>
            <ref name="void"/>
         </choice>
         <zeroOrMore>
            <ref name="exceptionname"/>
         </zeroOrMore>
      </element>
   </define>
   <define name="constructorsynopsis.attlist">
      <ref name="common.attrib"/>
      <ref name="constructorsynopsis.role.attrib"/>
   </define>
   <define name="destructorsynopsis.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="destructorsynopsis">
      <element name="destructorsynopsis">
         <ref name="destructorsynopsis.attlist"/>
         <zeroOrMore>
            <ref name="modifier"/>
         </zeroOrMore>
         <optional>
            <ref name="methodname"/>
         </optional>
         <choice>
            <oneOrMore>
               <ref name="methodparam"/>
            </oneOrMore>
            <ref name="void"/>
         </choice>
         <zeroOrMore>
            <ref name="exceptionname"/>
         </zeroOrMore>
      </element>
   </define>
   <define name="destructorsynopsis.attlist">
      <ref name="common.attrib"/>
      <ref name="destructorsynopsis.role.attrib"/>
   </define>
   <define name="methodsynopsis.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="methodsynopsis">
      <element name="methodsynopsis">
         <ref name="methodsynopsis.attlist"/>
         <zeroOrMore>
            <ref name="modifier"/>
         </zeroOrMore>
         <optional>
            <choice>
               <ref name="type"/>
               <ref name="void"/>
            </choice>
         </optional>
         <optional>
            <ref name="methodname"/>
         </optional>
         <choice>
            <oneOrMore>
               <ref name="methodparam"/>
            </oneOrMore>
            <ref name="void"/>
         </choice>
         <zeroOrMore>
            <ref name="exceptionname"/>
         </zeroOrMore>
         <zeroOrMore>
            <ref name="modifier"/>
         </zeroOrMore>
      </element>
   </define>
   <define name="methodsynopsis.attlist">
      <ref name="common.attrib"/>
      <ref name="methodsynopsis.role.attrib"/>
   </define>
   <define name="methodname.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="methodname">
      <element name="methodname">
         <ref name="methodname.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="smallcptr.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="methodname.attlist">
      <ref name="common.attrib"/>
      <ref name="methodname.role.attrib"/>
   </define>
   <define name="methodparam.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="methodparam">
      <element name="methodparam">
         <ref name="methodparam.attlist"/>
         <zeroOrMore>
            <element name="modifier">
               <text/>
            </element>
         </zeroOrMore>
         <optional>
            <element name="type">
               <text/>
            </element>
         </optional>
         <choice>
            <group>
               <element name="parameter">
                  <text/>
               </element>
               <optional>
                  <element name="initializer">
                     <text/>
                  </element>
               </optional>
            </group>
            <element name="funcparams">
               <text/>
            </element>
         </choice>
         <zeroOrMore>
            <element name="modifier">
               <text/>
            </element>
         </zeroOrMore>
      </element>
   </define>
   <define name="methodparam.attlist">
      <ref name="common.attrib"/>
      <ref name="methodparam.role.attrib"/>
      <optional>
         <attribute name="choice">
            <choice>
               <value>opt</value>
               <value>req</value>
               <value>plain</value>
            </choice>
         </attribute>
      </optional>
      <optional>
         <attribute name="rep">
            <choice>
               <value>norepeat</value>
               <value>repeat</value>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="ackno.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="ackno">
      <element name="ackno">
         <ref name="ackno.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="ackno.attlist">
      <ref name="common.attrib"/>
      <ref name="ackno.role.attrib"/>
   </define>
   <define name="address.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="address">
      <element name="address">
         <ref name="address.attlist"/>
         <mixed>
            <zeroOrMore>
               <choice>
                  <ref name="person.ident.mix"/>
                  <ref name="street"/>
                  <ref name="pob"/>
                  <ref name="postcode"/>
                  <ref name="city"/>
                  <ref name="state"/>
                  <ref name="country"/>
                  <ref name="phone"/>
                  <ref name="fax"/>
                  <ref name="email"/>
                  <ref name="otheraddr"/>
               </choice>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="address.attlist">
      <ref name="linespecific.attrib"/>
      <ref name="common.attrib"/>
      <ref name="address.role.attrib"/>
   </define>
   <define name="street.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="street">
      <element name="street">
         <ref name="street.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="street.attlist">
      <ref name="common.attrib"/>
      <ref name="street.role.attrib"/>
   </define>
   <define name="pob.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="pob">
      <element name="pob">
         <ref name="pob.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="pob.attlist">
      <ref name="common.attrib"/>
      <ref name="pob.role.attrib"/>
   </define>
   <define name="postcode.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="postcode">
      <element name="postcode">
         <ref name="postcode.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="postcode.attlist">
      <ref name="common.attrib"/>
      <ref name="postcode.role.attrib"/>
   </define>
   <define name="city.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="city">
      <element name="city">
         <ref name="city.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="city.attlist">
      <ref name="common.attrib"/>
      <ref name="city.role.attrib"/>
   </define>
   <define name="state.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="state">
      <element name="state">
         <ref name="state.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="state.attlist">
      <ref name="common.attrib"/>
      <ref name="state.role.attrib"/>
   </define>
   <define name="country.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="country">
      <element name="country">
         <ref name="country.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="country.attlist">
      <ref name="common.attrib"/>
      <ref name="country.role.attrib"/>
   </define>
   <define name="phone.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="phone">
      <element name="phone">
         <ref name="phone.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="phone.attlist">
      <ref name="common.attrib"/>
      <ref name="phone.role.attrib"/>
   </define>
   <define name="fax.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="fax">
      <element name="fax">
         <ref name="fax.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="fax.attlist">
      <ref name="common.attrib"/>
      <ref name="fax.role.attrib"/>
   </define>
   <define name="otheraddr.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="otheraddr">
      <element name="otheraddr">
         <ref name="otheraddr.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="otheraddr.attlist">
      <ref name="common.attrib"/>
      <ref name="otheraddr.role.attrib"/>
   </define>
   <define name="affiliation.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="affiliation">
      <element name="affiliation">
         <ref name="affiliation.attlist"/>
         <optional>
            <ref name="shortaffil"/>
         </optional>
         <zeroOrMore>
            <ref name="jobtitle"/>
         </zeroOrMore>
         <optional>
            <ref name="orgname"/>
         </optional>
         <zeroOrMore>
            <ref name="orgdiv"/>
         </zeroOrMore>
         <zeroOrMore>
            <ref name="address"/>
         </zeroOrMore>
      </element>
   </define>
   <define name="affiliation.attlist">
      <ref name="common.attrib"/>
      <ref name="affiliation.role.attrib"/>
   </define>
   <define name="shortaffil.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="shortaffil">
      <element name="shortaffil">
         <ref name="shortaffil.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="shortaffil.attlist">
      <ref name="common.attrib"/>
      <ref name="shortaffil.role.attrib"/>
   </define>
   <define name="jobtitle.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="jobtitle">
      <element name="jobtitle">
         <ref name="jobtitle.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="jobtitle.attlist">
      <ref name="common.attrib"/>
      <ref name="jobtitle.role.attrib"/>
   </define>
   <define name="orgdiv.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="orgdiv">
      <element name="orgdiv">
         <ref name="orgdiv.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="orgdiv.attlist">
      <ref name="common.attrib"/>
      <ref name="orgdiv.role.attrib"/>
   </define>
   <define name="artpagenums.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="artpagenums">
      <element name="artpagenums">
         <ref name="artpagenums.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="artpagenums.attlist">
      <ref name="common.attrib"/>
      <ref name="artpagenums.role.attrib"/>
   </define>
   <define name="author.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="author">
      <element name="author">
         <ref name="author.attlist"/>
         <oneOrMore>
            <ref name="person.ident.mix"/>
         </oneOrMore>
      </element>
   </define>
   <define name="author.attlist">
      <ref name="common.attrib"/>
      <ref name="author.role.attrib"/>
   </define>
   <define name="authorgroup.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="authorgroup">
      <element name="authorgroup">
         <ref name="authorgroup.attlist"/>
         <oneOrMore>
            <choice>
               <ref name="author"/>
               <ref name="editor"/>
               <ref name="collab"/>
               <ref name="corpauthor"/>
               <ref name="othercredit"/>
            </choice>
         </oneOrMore>
      </element>
   </define>
   <define name="authorgroup.attlist">
      <ref name="common.attrib"/>
      <ref name="authorgroup.role.attrib"/>
   </define>
   <define name="collab.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="collab">
      <element name="collab">
         <ref name="collab.attlist"/>
         <ref name="collabname"/>
         <zeroOrMore>
            <ref name="affiliation"/>
         </zeroOrMore>
      </element>
   </define>
   <define name="collab.attlist">
      <ref name="common.attrib"/>
      <ref name="collab.role.attrib"/>
   </define>
   <define name="collabname.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="collabname">
      <element name="collabname">
         <ref name="collabname.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="collabname.attlist">
      <ref name="common.attrib"/>
      <ref name="collabname.role.attrib"/>
   </define>
   <define name="authorinitials.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="authorinitials">
      <element name="authorinitials">
         <ref name="authorinitials.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="authorinitials.attlist">
      <ref name="common.attrib"/>
      <ref name="authorinitials.role.attrib"/>
   </define>
   <define name="confgroup.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="confgroup">
      <element name="confgroup">
         <ref name="confgroup.attlist"/>
         <zeroOrMore>
            <choice>
               <ref name="confdates"/>
               <ref name="conftitle"/>
               <ref name="confnum"/>
               <ref name="address"/>
               <ref name="confsponsor"/>
            </choice>
         </zeroOrMore>
      </element>
   </define>
   <define name="confgroup.attlist">
      <ref name="common.attrib"/>
      <ref name="confgroup.role.attrib"/>
   </define>
   <define name="confdates.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="confdates">
      <element name="confdates">
         <ref name="confdates.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="confdates.attlist">
      <ref name="common.attrib"/>
      <ref name="confdates.role.attrib"/>
   </define>
   <define name="conftitle.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="conftitle">
      <element name="conftitle">
         <ref name="conftitle.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="conftitle.attlist">
      <ref name="common.attrib"/>
      <ref name="conftitle.role.attrib"/>
   </define>
   <define name="confnum.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="confnum">
      <element name="confnum">
         <ref name="confnum.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="confnum.attlist">
      <ref name="common.attrib"/>
      <ref name="confnum.role.attrib"/>
   </define>
   <define name="confsponsor.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="confsponsor">
      <element name="confsponsor">
         <ref name="confsponsor.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="confsponsor.attlist">
      <ref name="common.attrib"/>
      <ref name="confsponsor.role.attrib"/>
   </define>
   <define name="contractnum.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="contractnum">
      <element name="contractnum">
         <ref name="contractnum.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="contractnum.attlist">
      <ref name="common.attrib"/>
      <ref name="contractnum.role.attrib"/>
   </define>
   <define name="contractsponsor.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="contractsponsor">
      <element name="contractsponsor">
         <ref name="contractsponsor.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="contractsponsor.attlist">
      <ref name="common.attrib"/>
      <ref name="contractsponsor.role.attrib"/>
   </define>
   <define name="copyright.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="copyright">
      <element name="copyright">
         <ref name="copyright.attlist"/>
         <oneOrMore>
            <ref name="year"/>
         </oneOrMore>
         <zeroOrMore>
            <ref name="holder"/>
         </zeroOrMore>
      </element>
   </define>
   <define name="copyright.attlist">
      <ref name="common.attrib"/>
      <ref name="copyright.role.attrib"/>
   </define>
   <define name="year.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="year">
      <element name="year">
         <ref name="year.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="year.attlist">
      <ref name="common.attrib"/>
      <ref name="year.role.attrib"/>
   </define>
   <define name="holder.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="holder">
      <element name="holder">
         <ref name="holder.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="holder.attlist">
      <ref name="common.attrib"/>
      <ref name="holder.role.attrib"/>
   </define>
   <define name="corpauthor.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="corpauthor">
      <element name="corpauthor">
         <ref name="corpauthor.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="corpauthor.attlist">
      <ref name="common.attrib"/>
      <ref name="corpauthor.role.attrib"/>
   </define>
   <define name="corpname.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="corpname">
      <element name="corpname">
         <ref name="corpname.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="corpname.attlist">
      <ref name="common.attrib"/>
      <ref name="corpname.role.attrib"/>
   </define>
   <define name="date.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="date">
      <element name="date">
         <ref name="date.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="date.attlist">
      <ref name="common.attrib"/>
      <ref name="date.role.attrib"/>
   </define>
   <define name="edition.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="edition">
      <element name="edition">
         <ref name="edition.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="edition.attlist">
      <ref name="common.attrib"/>
      <ref name="edition.role.attrib"/>
   </define>
   <define name="editor.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="editor">
      <element name="editor">
         <ref name="editor.attlist"/>
         <oneOrMore>
            <ref name="person.ident.mix"/>
         </oneOrMore>
      </element>
   </define>
   <define name="editor.attlist">
      <ref name="common.attrib"/>
      <ref name="editor.role.attrib"/>
   </define>
   <define name="isbn.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="isbn">
      <element name="isbn">
         <ref name="isbn.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="isbn.attlist">
      <ref name="common.attrib"/>
      <ref name="isbn.role.attrib"/>
   </define>
   <define name="issn.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="issn">
      <element name="issn">
         <ref name="issn.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="issn.attlist">
      <ref name="common.attrib"/>
      <ref name="issn.role.attrib"/>
   </define>
   <define name="invpartnumber.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="invpartnumber">
      <element name="invpartnumber">
         <ref name="invpartnumber.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="invpartnumber.attlist">
      <ref name="common.attrib"/>
      <ref name="invpartnumber.role.attrib"/>
   </define>
   <define name="issuenum.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="issuenum">
      <element name="issuenum">
         <ref name="issuenum.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="issuenum.attlist">
      <ref name="common.attrib"/>
      <ref name="issuenum.role.attrib"/>
   </define>
   <define name="legalnotice.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="legalnotice">
      <element name="legalnotice">
         <ref name="legalnotice.attlist"/>
         <optional>
            <ref name="title"/>
         </optional>
         <oneOrMore>
            <ref name="legalnotice.mix"/>
         </oneOrMore>
      </element>
   </define>
   <define name="legalnotice.attlist">
      <ref name="common.attrib"/>
      <ref name="legalnotice.role.attrib"/>
   </define>
   <define name="modespec.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="modespec">
      <element name="modespec">
         <ref name="modespec.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="modespec.attlist">
      <ref name="common.attrib"/>
      <ref name="modespec.role.attrib"/>
      <optional>
         <attribute name="application">
            <choice>
               <value>BMP</value>
               <value>CGM-CHAR</value>
               <value>CGM-BINARY</value>
               <value>CGM-CLEAR</value>
               <value>DITROFF</value>
               <value>DVI</value>
               <value>EPS</value>
               <value>EQN</value>
               <value>FAX</value>
               <value>GIF</value>
               <value>GIF87a</value>
               <value>GIF89a</value>
               <value>JPG</value>
               <value>JPEG</value>
               <value>IGES</value>
               <value>PCX</value>
               <value>PIC</value>
               <value>PNG</value>
               <value>PS</value>
               <value>SGML</value>
               <value>TBL</value>
               <value>TEX</value>
               <value>TIFF</value>
               <value>WMF</value>
               <value>WPG</value>
               <value>linespecific</value>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="orgname.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="orgname">
      <element name="orgname">
         <ref name="orgname.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="orgname.attlist">
      <ref name="common.attrib"/>
      <ref name="orgname.role.attrib"/>
   </define>
   <define name="othercredit.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="othercredit">
      <element name="othercredit">
         <ref name="othercredit.attlist"/>
         <oneOrMore>
            <ref name="person.ident.mix"/>
         </oneOrMore>
      </element>
   </define>
   <define name="othercredit.attlist">
      <ref name="common.attrib"/>
      <ref name="othercredit.role.attrib"/>
   </define>
   <define name="pagenums.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="pagenums">
      <element name="pagenums">
         <ref name="pagenums.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="pagenums.attlist">
      <ref name="common.attrib"/>
      <ref name="pagenums.role.attrib"/>
   </define>
   <define name="contrib.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="contrib">
      <element name="contrib">
         <ref name="contrib.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="contrib.attlist">
      <ref name="common.attrib"/>
      <ref name="contrib.role.attrib"/>
   </define>
   <define name="firstname.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="firstname">
      <element name="firstname">
         <ref name="firstname.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="firstname.attlist">
      <ref name="common.attrib"/>
      <ref name="firstname.role.attrib"/>
   </define>
   <define name="honorific.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="honorific">
      <element name="honorific">
         <ref name="honorific.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="honorific.attlist">
      <ref name="common.attrib"/>
      <ref name="honorific.role.attrib"/>
   </define>
   <define name="lineage.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="lineage">
      <element name="lineage">
         <ref name="lineage.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="lineage.attlist">
      <ref name="common.attrib"/>
      <ref name="lineage.role.attrib"/>
   </define>
   <define name="othername.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="othername">
      <element name="othername">
         <ref name="othername.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="othername.attlist">
      <ref name="common.attrib"/>
      <ref name="othername.role.attrib"/>
   </define>
   <define name="surname.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="surname">
      <element name="surname">
         <ref name="surname.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="surname.attlist">
      <ref name="common.attrib"/>
      <ref name="surname.role.attrib"/>
   </define>
   <define name="printhistory.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="printhistory">
      <element name="printhistory">
         <ref name="printhistory.attlist"/>
         <oneOrMore>
            <ref name="para.class"/>
         </oneOrMore>
      </element>
   </define>
   <define name="printhistory.attlist">
      <ref name="common.attrib"/>
      <ref name="printhistory.role.attrib"/>
   </define>
   <define name="productname.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="productname">
      <element name="productname">
         <ref name="productname.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="para.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="productname.attlist">
      <ref name="common.attrib"/>
      <ref name="productname.role.attrib"/>
      <optional>
         <attribute name="class">
            <choice>
               <value>service</value>
               <value>trade</value>
               <value>registered</value>
               <value>copyright</value>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="productnumber.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="productnumber">
      <element name="productnumber">
         <ref name="productnumber.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="productnumber.attlist">
      <ref name="common.attrib"/>
      <ref name="productnumber.role.attrib"/>
   </define>
   <define name="pubdate.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="pubdate">
      <element name="pubdate">
         <ref name="pubdate.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="pubdate.attlist">
      <ref name="common.attrib"/>
      <ref name="pubdate.role.attrib"/>
   </define>
   <define name="publisher.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="publisher">
      <element name="publisher">
         <ref name="publisher.attlist"/>
         <ref name="publishername"/>
         <zeroOrMore>
            <ref name="address"/>
         </zeroOrMore>
      </element>
   </define>
   <define name="publisher.attlist">
      <ref name="common.attrib"/>
      <ref name="publisher.role.attrib"/>
   </define>
   <define name="publishername.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="publishername">
      <element name="publishername">
         <ref name="publishername.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="publishername.attlist">
      <ref name="common.attrib"/>
      <ref name="publishername.role.attrib"/>
   </define>
   <define name="pubsnumber.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="pubsnumber">
      <element name="pubsnumber">
         <ref name="pubsnumber.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="pubsnumber.attlist">
      <ref name="common.attrib"/>
      <ref name="pubsnumber.role.attrib"/>
   </define>
   <define name="releaseinfo.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="releaseinfo">
      <element name="releaseinfo">
         <ref name="releaseinfo.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="releaseinfo.attlist">
      <ref name="common.attrib"/>
      <ref name="releaseinfo.role.attrib"/>
   </define>
   <define name="revhistory.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="revhistory">
      <element name="revhistory">
         <ref name="revhistory.attlist"/>
         <oneOrMore>
            <ref name="revision"/>
         </oneOrMore>
      </element>
   </define>
   <define name="revhistory.attlist">
      <ref name="common.attrib"/>
      <ref name="revhistory.role.attrib"/>
   </define>
   <define name="revision.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="revision">
      <element name="revision">
         <ref name="revision.attlist"/>
         <ref name="revnumber"/>
         <ref name="date"/>
         <zeroOrMore>
            <ref name="authorinitials"/>
         </zeroOrMore>
         <optional>
            <choice>
               <ref name="revremark"/>
               <ref name="revdescription"/>
            </choice>
         </optional>
      </element>
   </define>
   <define name="revision.attlist">
      <ref name="common.attrib"/>
      <ref name="revision.role.attrib"/>
   </define>
   <define name="revnumber.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="revnumber">
      <element name="revnumber">
         <ref name="revnumber.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="revnumber.attlist">
      <ref name="common.attrib"/>
      <ref name="revnumber.role.attrib"/>
   </define>
   <define name="revremark.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="revremark">
      <element name="revremark">
         <ref name="revremark.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="revremark.attlist">
      <ref name="common.attrib"/>
      <ref name="revremark.role.attrib"/>
   </define>
   <define name="revdescription.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="revdescription">
      <element name="revdescription">
         <ref name="revdescription.attlist"/>
         <oneOrMore>
            <ref name="revdescription.mix"/>
         </oneOrMore>
      </element>
   </define>
   <define name="revdescription.attlist">
      <ref name="common.attrib"/>
      <ref name="revdescription.role.attrib"/>
   </define>
   <define name="seriesvolnums.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="seriesvolnums">
      <element name="seriesvolnums">
         <ref name="seriesvolnums.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="seriesvolnums.attlist">
      <ref name="common.attrib"/>
      <ref name="seriesvolnums.role.attrib"/>
   </define>
   <define name="volumenum.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="volumenum">
      <element name="volumenum">
         <ref name="volumenum.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="volumenum.attlist">
      <ref name="common.attrib"/>
      <ref name="volumenum.role.attrib"/>
   </define>
   <define name="accel.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="accel">
      <element name="accel">
         <ref name="accel.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="smallcptr.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="accel.attlist">
      <ref name="common.attrib"/>
      <ref name="accel.role.attrib"/>
   </define>
   <define name="action.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="action">
      <element name="action">
         <ref name="action.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="smallcptr.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="action.attlist">
      <ref name="moreinfo.attrib"/>
      <ref name="common.attrib"/>
      <ref name="action.role.attrib"/>
   </define>
   <define name="application.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="application">
      <element name="application">
         <ref name="application.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="para.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="application.attlist">
      <ref name="moreinfo.attrib"/>
      <ref name="common.attrib"/>
      <ref name="application.role.attrib"/>
      <optional>
         <attribute name="class">
            <choice>
               <value>hardware</value>
               <value>software</value>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="classname.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="classname">
      <element name="classname">
         <ref name="classname.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="smallcptr.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="classname.attlist">
      <ref name="common.attrib"/>
      <ref name="classname.role.attrib"/>
   </define>
   <define name="co.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="co">
      <element name="co">
         <ref name="co.attlist"/>
      </element>
   </define>
   <define name="co.attlist">
      <ref name="label.attrib"/>
      <ref name="linkends.attrib"/>
      <ref name="idreq.common.attrib"/>
      <ref name="co.role.attrib"/>
   </define>
   <define name="command.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="command">
      <element name="command">
         <ref name="command.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="cptr.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="command.attlist">
      <ref name="moreinfo.attrib"/>
      <ref name="common.attrib"/>
      <ref name="command.role.attrib"/>
   </define>
   <define name="computeroutput.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="computeroutput">
      <element name="computeroutput">
         <ref name="computeroutput.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="cptr.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="computeroutput.attlist">
      <ref name="moreinfo.attrib"/>
      <ref name="common.attrib"/>
      <ref name="computeroutput.role.attrib"/>
   </define>
   <define name="database.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="database">
      <element name="database">
         <ref name="database.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="smallcptr.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="database.attlist">
      <ref name="common.attrib"/>
      <ref name="database.role.attrib"/>
      <ref name="moreinfo.attrib"/>
      <optional>
         <attribute name="class">
            <choice>
               <value>name</value>
               <value>table</value>
               <value>field</value>
               <value>key1</value>
               <value>key2</value>
               <value>record</value>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="email.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="email">
      <element name="email">
         <ref name="email.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="email.attlist">
      <ref name="common.attrib"/>
      <ref name="email.role.attrib"/>
   </define>
   <define name="envar.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="envar">
      <element name="envar">
         <ref name="envar.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="envar.attlist">
      <ref name="common.attrib"/>
      <ref name="envar.role.attrib"/>
   </define>
   <define name="errorcode.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="errorcode">
      <element name="errorcode">
         <ref name="errorcode.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="smallcptr.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="errorcode.attlist">
      <ref name="moreinfo.attrib"/>
      <ref name="common.attrib"/>
      <ref name="errorcode.role.attrib"/>
   </define>
   <define name="errorname.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="errorname">
      <element name="errorname">
         <ref name="errorname.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="smallcptr.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="errorname.attlist">
      <ref name="common.attrib"/>
      <ref name="errorname.role.attrib"/>
   </define>
   <define name="errortype.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="errortype">
      <element name="errortype">
         <ref name="errortype.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="smallcptr.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="errortype.attlist">
      <ref name="common.attrib"/>
      <ref name="errortype.role.attrib"/>
   </define>
   <define name="filename.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="filename">
      <element name="filename">
         <ref name="filename.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="smallcptr.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="filename.attlist">
      <ref name="moreinfo.attrib"/>
      <ref name="common.attrib"/>
      <ref name="filename.role.attrib"/>
      <optional>
         <attribute name="class">
            <choice>
               <value>headerfile</value>
               <value>devicefile</value>
               <value>libraryfile</value>
               <value>directory</value>
               <value>symlink</value>
            </choice>
         </attribute>
      </optional>
      <optional>
         <attribute name="path">
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="function.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="function">
      <element name="function">
         <ref name="function.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="cptr.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="function.attlist">
      <ref name="moreinfo.attrib"/>
      <ref name="common.attrib"/>
      <ref name="function.role.attrib"/>
   </define>
   <define name="guibutton.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="guibutton">
      <element name="guibutton">
         <ref name="guibutton.attlist"/>
         <mixed>
            <zeroOrMore>
               <choice>
                  <ref name="smallcptr.char.mix"/>
                  <ref name="accel"/>
               </choice>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="guibutton.attlist">
      <ref name="moreinfo.attrib"/>
      <ref name="common.attrib"/>
      <ref name="guibutton.role.attrib"/>
   </define>
   <define name="guiicon.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="guiicon">
      <element name="guiicon">
         <ref name="guiicon.attlist"/>
         <mixed>
            <zeroOrMore>
               <choice>
                  <ref name="smallcptr.char.mix"/>
                  <ref name="accel"/>
               </choice>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="guiicon.attlist">
      <ref name="moreinfo.attrib"/>
      <ref name="common.attrib"/>
      <ref name="guiicon.role.attrib"/>
   </define>
   <define name="guilabel.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="guilabel">
      <element name="guilabel">
         <ref name="guilabel.attlist"/>
         <mixed>
            <zeroOrMore>
               <choice>
                  <ref name="smallcptr.char.mix"/>
                  <ref name="accel"/>
               </choice>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="guilabel.attlist">
      <ref name="moreinfo.attrib"/>
      <ref name="common.attrib"/>
      <ref name="guilabel.role.attrib"/>
   </define>
   <define name="guimenu.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="guimenu">
      <element name="guimenu">
         <ref name="guimenu.attlist"/>
         <mixed>
            <zeroOrMore>
               <choice>
                  <ref name="smallcptr.char.mix"/>
                  <ref name="accel"/>
               </choice>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="guimenu.attlist">
      <ref name="moreinfo.attrib"/>
      <ref name="common.attrib"/>
      <ref name="guimenu.role.attrib"/>
   </define>
   <define name="guimenuitem.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="guimenuitem">
      <element name="guimenuitem">
         <ref name="guimenuitem.attlist"/>
         <mixed>
            <zeroOrMore>
               <choice>
                  <ref name="smallcptr.char.mix"/>
                  <ref name="accel"/>
               </choice>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="guimenuitem.attlist">
      <ref name="moreinfo.attrib"/>
      <ref name="common.attrib"/>
      <ref name="guimenuitem.role.attrib"/>
   </define>
   <define name="guisubmenu.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="guisubmenu">
      <element name="guisubmenu">
         <ref name="guisubmenu.attlist"/>
         <mixed>
            <zeroOrMore>
               <choice>
                  <ref name="smallcptr.char.mix"/>
                  <ref name="accel"/>
               </choice>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="guisubmenu.attlist">
      <ref name="moreinfo.attrib"/>
      <ref name="common.attrib"/>
      <ref name="guisubmenu.role.attrib"/>
   </define>
   <define name="hardware.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="hardware">
      <element name="hardware">
         <ref name="hardware.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="smallcptr.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="hardware.attlist">
      <ref name="moreinfo.attrib"/>
      <ref name="common.attrib"/>
      <ref name="hardware.role.attrib"/>
   </define>
   <define name="interface.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="interface">
      <element name="interface">
         <ref name="interface.attlist"/>
         <mixed>
            <zeroOrMore>
               <choice>
                  <ref name="smallcptr.char.mix"/>
                  <ref name="accel"/>
               </choice>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="interface.attlist">
      <ref name="moreinfo.attrib"/>
      <ref name="common.attrib"/>
      <ref name="interface.role.attrib"/>
   </define>
   <define name="keycap.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="keycap">
      <element name="keycap">
         <ref name="keycap.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="smallcptr.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="keycap.attlist">
      <ref name="moreinfo.attrib"/>
      <ref name="common.attrib"/>
      <ref name="keycap.role.attrib"/>
   </define>
   <define name="keycode.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="keycode">
      <element name="keycode">
         <ref name="keycode.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="smallcptr.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="keycode.attlist">
      <ref name="common.attrib"/>
      <ref name="keycode.role.attrib"/>
   </define>
   <define name="keycombo.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="keycombo">
      <element name="keycombo">
         <ref name="keycombo.attlist"/>
         <oneOrMore>
            <choice>
               <ref name="keycap"/>
               <ref name="keycombo"/>
               <ref name="keysym"/>
               <ref name="mousebutton"/>
            </choice>
         </oneOrMore>
      </element>
   </define>
   <define name="keycombo.attlist">
      <ref name="keyaction.attrib"/>
      <ref name="moreinfo.attrib"/>
      <ref name="common.attrib"/>
      <ref name="keycombo.role.attrib"/>
   </define>
   <define name="keysysm.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="keysym">
      <element name="keysym">
         <ref name="keysym.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="smallcptr.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="keysym.attlist">
      <ref name="common.attrib"/>
      <ref name="keysysm.role.attrib"/>
   </define>
   <define name="lineannotation.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="lineannotation">
      <element name="lineannotation">
         <ref name="lineannotation.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="para.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="lineannotation.attlist">
      <ref name="common.attrib"/>
      <ref name="lineannotation.role.attrib"/>
   </define>
   <define name="literal.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="literal">
      <element name="literal">
         <ref name="literal.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="cptr.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="literal.attlist">
      <ref name="moreinfo.attrib"/>
      <ref name="common.attrib"/>
      <ref name="literal.role.attrib"/>
   </define>
   <define name="constant.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="constant">
      <element name="constant">
         <ref name="constant.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="smallcptr.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="constant.attlist">
      <ref name="common.attrib"/>
      <ref name="constant.role.attrib"/>
      <optional>
         <attribute name="class">
            <value>limit</value>
         </attribute>
      </optional>
   </define>
   <define name="varname.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="varname">
      <element name="varname">
         <ref name="varname.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="smallcptr.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="varname.attlist">
      <ref name="common.attrib"/>
      <ref name="varname.role.attrib"/>
   </define>
   <define name="markup.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="markup">
      <element name="markup">
         <ref name="markup.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="smallcptr.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="markup.attlist">
      <ref name="common.attrib"/>
      <ref name="markup.role.attrib"/>
   </define>
   <define name="medialabel.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="medialabel">
      <element name="medialabel">
         <ref name="medialabel.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="smallcptr.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="medialabel.attlist">
      <ref name="common.attrib"/>
      <ref name="medialabel.role.attrib"/>
      <optional>
         <attribute name="class">
            <choice>
               <value>cartridge</value>
               <value>cdrom</value>
               <value>disk</value>
               <value>tape</value>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="menuchoice.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="menuchoice">
      <element name="menuchoice">
         <ref name="menuchoice.attlist"/>
         <optional>
            <ref name="shortcut"/>
         </optional>
         <oneOrMore>
            <choice>
               <ref name="guibutton"/>
               <ref name="guiicon"/>
               <ref name="guilabel"/>
               <ref name="guimenu"/>
               <ref name="guimenuitem"/>
               <ref name="guisubmenu"/>
               <ref name="interface"/>
            </choice>
         </oneOrMore>
      </element>
   </define>
   <define name="menuchoice.attlist">
      <ref name="moreinfo.attrib"/>
      <ref name="common.attrib"/>
      <ref name="menuchoice.role.attrib"/>
   </define>
   <define name="shortcut.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="shortcut">
      <element name="shortcut">
         <ref name="shortcut.attlist"/>
         <oneOrMore>
            <choice>
               <ref name="keycap"/>
               <ref name="keycombo"/>
               <ref name="keysym"/>
               <ref name="mousebutton"/>
            </choice>
         </oneOrMore>
      </element>
   </define>
   <define name="shortcut.attlist">
      <ref name="keyaction.attrib"/>
      <ref name="moreinfo.attrib"/>
      <ref name="common.attrib"/>
      <ref name="shortcut.role.attrib"/>
   </define>
   <define name="mousebutton.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="mousebutton">
      <element name="mousebutton">
         <ref name="mousebutton.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="smallcptr.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="mousebutton.attlist">
      <ref name="moreinfo.attrib"/>
      <ref name="common.attrib"/>
      <ref name="mousebutton.role.attrib"/>
   </define>
   <define name="msgtext.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="msgtext">
      <element name="msgtext">
         <ref name="msgtext.attlist"/>
         <oneOrMore>
            <ref name="component.mix"/>
         </oneOrMore>
      </element>
   </define>
   <define name="msgtext.attlist">
      <ref name="common.attrib"/>
      <ref name="msgtext.role.attrib"/>
   </define>
   <define name="option.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="option">
      <element name="option">
         <ref name="option.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="smallcptr.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="option.attlist">
      <ref name="common.attrib"/>
      <ref name="option.role.attrib"/>
   </define>
   <define name="optional.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="optional">
      <element name="optional">
         <ref name="optional.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="cptr.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="optional.attlist">
      <ref name="common.attrib"/>
      <ref name="optional.role.attrib"/>
   </define>
   <define name="parameter.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="parameter">
      <element name="parameter">
         <ref name="parameter.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="smallcptr.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="parameter.attlist">
      <ref name="moreinfo.attrib"/>
      <ref name="common.attrib"/>
      <ref name="parameter.role.attrib"/>
      <optional>
         <attribute name="class">
            <choice>
               <value>command</value>
               <value>function</value>
               <value>option</value>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="prompt.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="prompt">
      <element name="prompt">
         <ref name="prompt.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="smallcptr.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="prompt.attlist">
      <ref name="moreinfo.attrib"/>
      <ref name="common.attrib"/>
      <ref name="prompt.role.attrib"/>
   </define>
   <define name="property.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="property">
      <element name="property">
         <ref name="property.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="smallcptr.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="property.attlist">
      <ref name="moreinfo.attrib"/>
      <ref name="common.attrib"/>
      <ref name="property.role.attrib"/>
   </define>
   <define name="replaceable.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="replaceable">
      <element name="replaceable">
         <ref name="replaceable.attlist"/>
         <mixed>
            <zeroOrMore>
               <choice>
                  <ref name="link.char.class"/>
                  <ref name="optional"/>
                  <ref name="base.char.class"/>
                  <ref name="other.char.class"/>
                  <ref name="inlinegraphic"/>
                  <ref name="inlinemediaobject"/>
               </choice>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="replaceable.attlist">
      <ref name="common.attrib"/>
      <ref name="replaceable.role.attrib"/>
      <optional>
         <attribute name="class">
            <choice>
               <value>command</value>
               <value>function</value>
               <value>option</value>
               <value>parameter</value>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="returnvalue.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="returnvalue">
      <element name="returnvalue">
         <ref name="returnvalue.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="smallcptr.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="returnvalue.attlist">
      <ref name="common.attrib"/>
      <ref name="returnvalue.role.attrib"/>
   </define>
   <define name="sgmltag.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="sgmltag">
      <element name="sgmltag">
         <ref name="sgmltag.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="smallcptr.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="sgmltag.attlist">
      <ref name="common.attrib"/>
      <ref name="sgmltag.role.attrib"/>
      <optional>
         <attribute name="class">
            <choice>
               <value>attribute</value>
               <value>attvalue</value>
               <value>element</value>
               <value>endtag</value>
               <value>emptytag</value>
               <value>genentity</value>
               <value>numcharref</value>
               <value>paramentity</value>
               <value>pi</value>
               <value>xmlpi</value>
               <value>starttag</value>
               <value>sgmlcomment</value>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="structfield.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="structfield">
      <element name="structfield">
         <ref name="structfield.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="smallcptr.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="structfield.attlist">
      <ref name="common.attrib"/>
      <ref name="structfield.role.attrib"/>
   </define>
   <define name="structname.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="structname">
      <element name="structname">
         <ref name="structname.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="smallcptr.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="structname.attlist">
      <ref name="common.attrib"/>
      <ref name="structname.role.attrib"/>
   </define>
   <define name="symbol.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="symbol">
      <element name="symbol">
         <ref name="symbol.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="smallcptr.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="symbol.attlist">
      <ref name="common.attrib"/>
      <ref name="symbol.role.attrib"/>
      <optional>
         <attribute name="class">
            <value>limit</value>
         </attribute>
      </optional>
   </define>
   <define name="systemitem.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="systemitem">
      <element name="systemitem">
         <ref name="systemitem.attlist"/>
         <mixed>
            <zeroOrMore>
               <choice>
                  <ref name="smallcptr.char.mix"/>
                  <ref name="acronym"/>
               </choice>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="systemitem.attlist">
      <ref name="moreinfo.attrib"/>
      <ref name="common.attrib"/>
      <ref name="systemitem.role.attrib"/>
      <optional>
         <attribute name="class">
            <choice>
               <value>constant</value>
               <value>groupname</value>
               <value>library</value>
               <value>macro</value>
               <value>osname</value>
               <value>resource</value>
               <value>systemname</value>
               <value>username</value>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="token.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="token">
      <element name="token">
         <ref name="token.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="smallcptr.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="token.attlist">
      <ref name="common.attrib"/>
      <ref name="token.role.attrib"/>
   </define>
   <define name="type.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="type">
      <element name="type">
         <ref name="type.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="smallcptr.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="type.attlist">
      <ref name="common.attrib"/>
      <ref name="type.role.attrib"/>
   </define>
   <define name="userinput.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="userinput">
      <element name="userinput">
         <ref name="userinput.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="cptr.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="userinput.attlist">
      <ref name="moreinfo.attrib"/>
      <ref name="common.attrib"/>
      <ref name="userinput.role.attrib"/>
   </define>
   <define name="abbrev.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="abbrev">
      <element name="abbrev">
         <ref name="abbrev.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="word.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="abbrev.attlist">
      <ref name="common.attrib"/>
      <ref name="abbrev.role.attrib"/>
   </define>
   <define name="acronym.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="acronym">
      <element name="acronym">
         <ref name="acronym.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="word.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="acronym.attlist">
      <ref name="common.attrib"/>
      <ref name="acronym.role.attrib"/>
   </define>
   <define name="citation.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="citation">
      <element name="citation">
         <ref name="citation.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="para.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="citation.attlist">
      <ref name="common.attrib"/>
      <ref name="citation.role.attrib"/>
   </define>
   <define name="citerefentry.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="citerefentry">
      <element name="citerefentry">
         <ref name="citerefentry.attlist"/>
         <ref name="refentrytitle"/>
         <optional>
            <ref name="manvolnum"/>
         </optional>
      </element>
   </define>
   <define name="citerefentry.attlist">
      <ref name="common.attrib"/>
      <ref name="citerefentry.role.attrib"/>
   </define>
   <define name="refentrytitle.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="refentrytitle">
      <element name="refentrytitle">
         <ref name="refentrytitle.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="para.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="refentrytitle.attlist">
      <ref name="common.attrib"/>
      <ref name="refentrytitle.role.attrib"/>
   </define>
   <define name="namvolnum.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="manvolnum">
      <element name="manvolnum">
         <ref name="manvolnum.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="word.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="manvolnum.attlist">
      <ref name="common.attrib"/>
      <ref name="namvolnum.role.attrib"/>
   </define>
   <define name="citetitle.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="citetitle">
      <element name="citetitle">
         <ref name="citetitle.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="para.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="citetitle.attlist">
      <ref name="common.attrib"/>
      <ref name="citetitle.role.attrib"/>
      <optional>
         <attribute name="pubwork">
            <choice>
               <value>article</value>
               <value>book</value>
               <value>chapter</value>
               <value>part</value>
               <value>refentry</value>
               <value>section</value>
               <value>journal</value>
               <value>series</value>
               <value>set</value>
               <value>manuscript</value>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="emphasis.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="emphasis">
      <element name="emphasis">
         <ref name="emphasis.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="para.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="emphasis.attlist">
      <ref name="common.attrib"/>
      <ref name="emphasis.role.attrib"/>
   </define>
   <define name="firstterm.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="firstterm">
      <element name="firstterm">
         <ref name="firstterm.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="word.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="firstterm.attlist">
      <ref name="common.attrib"/>
      <ref name="firstterm.role.attrib"/>
      <ref name="linkend.attrib"/>
   </define>
   <define name="foreignphrase.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="foreignphrase">
      <element name="foreignphrase">
         <ref name="foreignphrase.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="para.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="foreignphrase.attlist">
      <ref name="common.attrib"/>
      <ref name="foreignphrase.role.attrib"/>
   </define>
   <define name="glossterm.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="glossterm">
      <element name="glossterm">
         <ref name="glossterm.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="para.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="glossterm.attlist">
      <ref name="common.attrib"/>
      <ref name="glossterm.role.attrib"/>
      <ref name="linkend.attrib"/>
      <optional>
         <attribute name="baseform">
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="phrase.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="phrase">
      <element name="phrase">
         <ref name="phrase.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="para.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="phrase.attlist">
      <ref name="common.attrib"/>
      <ref name="phrase.role.attrib"/>
   </define>
   <define name="quote.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="quote">
      <element name="quote">
         <ref name="quote.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="para.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="quote.attlist">
      <ref name="common.attrib"/>
      <ref name="quote.role.attrib"/>
   </define>
   <define name="ssscript.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="subscriptContentModel">
      <zeroOrMore>
         <choice>
            <ref name="link.char.class"/>
            <ref name="emphasis"/>
            <ref name="replaceable"/>
            <ref name="symbol"/>
            <ref name="inlinegraphic"/>
            <ref name="inlinemediaobject"/>
            <ref name="base.char.class"/>
            <ref name="other.char.class"/>
         </choice>
      </zeroOrMore>
   </define>
   <define name="subscript">
      <element name="subscript">
         <ref name="subscript.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="subscriptContentModel"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="subscript.attlist">
      <ref name="common.attrib"/>
      <ref name="ssscript.role.attrib"/>
   </define>
   <define name="superscript">
      <element name="superscript">
         <ref name="superscript.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="subscriptContentModel"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="superscript.attlist">
      <ref name="common.attrib"/>
      <ref name="ssscript.role.attrib"/>
   </define>
   <define name="trademark.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="trademark">
      <element name="trademark">
         <ref name="trademark.attlist"/>
         <mixed>
            <zeroOrMore>
               <choice>
                  <ref name="link.char.class"/>
                  <ref name="tech.char.class"/>
                  <ref name="base.char.class"/>
                  <ref name="other.char.class"/>
                  <ref name="inlinegraphic"/>
                  <ref name="inlinemediaobject"/>
                  <ref name="emphasis"/>
               </choice>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="trademark.attlist">
      <ref name="common.attrib"/>
      <ref name="trademark.role.attrib"/>
      <optional>
         <attribute name="class">
            <choice>
               <value>service</value>
               <value>trade</value>
               <value>registered</value>
               <value>copyright</value>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="wordasword.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="wordasword">
      <element name="wordasword">
         <ref name="wordasword.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="word.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="wordasword.attlist">
      <ref name="common.attrib"/>
      <ref name="wordasword.role.attrib"/>
   </define>
   <define name="link.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="link">
      <element name="link">
         <ref name="link.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="para.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="link.attlist">
      <ref name="linkendreq.attrib"/>
      <ref name="common.attrib"/>
      <ref name="link.role.attrib"/>
      <optional>
         <attribute name="endterm">
            <data type="IDREF"/>
         </attribute>
      </optional>
      <optional>
         <attribute name="type">
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="olink.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="olink">
      <element name="olink">
         <ref name="olink.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="para.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="olink.attlist">
      <ref name="common.attrib"/>
      <ref name="olink.role.attrib"/>
      <optional>
         <attribute name="linkmode">
            <data type="IDREF"/>
         </attribute>
      </optional>
      <optional>
         <attribute name="localinfo">
            <data type="string"/>
         </attribute>
      </optional>
      <optional>
         <attribute name="type">
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="ulink.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="ulink">
      <element name="ulink">
         <ref name="ulink.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="para.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="ulink.attlist">
      <ref name="common.attrib"/>
      <ref name="ulink.role.attrib"/>
      <attribute name="url">
         <data type="string"/>
      </attribute>
      <optional>
         <attribute name="type">
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="footnoteref.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="footnoteref">
      <element name="footnoteref">
         <ref name="footnoteref.attlist"/>
      </element>
   </define>
   <define name="footnoteref.attlist">
      <ref name="linkendreq.attrib"/>
      <ref name="label.attrib"/>
      <ref name="common.attrib"/>
      <ref name="footnoteref.role.attrib"/>
   </define>
   <define name="xref.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="xref">
      <element name="xref">
         <ref name="xref.attlist"/>
      </element>
   </define>
   <define name="xref.attlist">
      <ref name="linkendreq.attrib"/>
      <ref name="common.attrib"/>
      <ref name="xref.role.attrib"/>
      <optional>
         <attribute name="endterm">
            <data type="IDREF"/>
         </attribute>
      </optional>
   </define>
   <define name="anchor.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="anchor">
      <element name="anchor">
         <ref name="anchor.attlist"/>
      </element>
   </define>
   <define name="anchor.attlist">
      <ref name="idreq.attrib"/>
      <ref name="pagenum.attrib"/>
      <ref name="remap.attrib"/>
      <ref name="xreflabel.attrib"/>
      <ref name="revisionflag.attrib"/>
      <ref name="effectivity.attrib"/>
      <ref name="anchor.role.attrib"/>
   </define>
   <define name="beginpage.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="beginpage">
      <element name="beginpage">
         <ref name="beginpage.attlist"/>
      </element>
   </define>
   <define name="beginpage.attlist">
      <ref name="pagenum.attrib"/>
      <ref name="common.attrib"/>
      <ref name="beginpage.role.attrib"/>
   </define>
   <define name="indexterm.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="indexterm">
      <element name="indexterm">
         <ref name="indexterm.attlist"/>
         <optional>
            <ref name="primary"/>
         </optional>
         <optional>
            <choice>
               <group>
                  <ref name="secondary"/>
                  <optional>
                     <choice>
                        <group>
                           <ref name="tertiary"/>
                           <optional>
                              <choice>
                                 <ref name="see"/>
                                 <oneOrMore>
                                    <ref name="seealso"/>
                                 </oneOrMore>
                              </choice>
                           </optional>
                        </group>
                        <ref name="see"/>
                        <oneOrMore>
                           <ref name="seealso"/>
                        </oneOrMore>
                     </choice>
                  </optional>
               </group>
               <ref name="see"/>
               <oneOrMore>
                  <ref name="seealso"/>
               </oneOrMore>
            </choice>
         </optional>
      </element>
   </define>
   <define name="indexterm.attlist">
      <ref name="common.attrib"/>
      <ref name="indexterm.role.attrib"/>
      <ref name="pagenum.attrib"/>
      <optional>
         <attribute name="scope">
            <choice>
               <value>all</value>
               <value>global</value>
               <value>local</value>
            </choice>
         </attribute>
      </optional>
      <optional>
         <attribute name="significance">
            <choice>
               <value>preferred</value>
               <value>normal</value>
            </choice>
         </attribute>
      </optional>
      <optional>
         <attribute name="class">
            <choice>
               <value>singular</value>
               <value>startofrange</value>
               <value>endofrange</value>
            </choice>
         </attribute>
      </optional>
      <optional>
         <attribute name="startref">
            <data type="IDREF"/>
         </attribute>
      </optional>
      <optional>
         <attribute name="zone">
            <data type="IDREFS"/>
         </attribute>
      </optional>
   </define>
   <define name="primsecter.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="primary">
      <element name="primary">
         <ref name="primary.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="ndxterm.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="primary.attlist">
      <ref name="common.attrib"/>
      <ref name="primsecter.role.attrib"/>
      <optional>
         <attribute name="sortas">
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="secondary">
      <element name="secondary">
         <ref name="secondary.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="ndxterm.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="secondary.attlist">
      <ref name="common.attrib"/>
      <ref name="primsecter.role.attrib"/>
      <optional>
         <attribute name="sortas">
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="tertiary">
      <element name="tertiary">
         <ref name="tertiary.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="ndxterm.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="tertiary.attlist">
      <ref name="common.attrib"/>
      <ref name="primsecter.role.attrib"/>
      <optional>
         <attribute name="sortas">
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="seeseealso.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="see">
      <element name="see">
         <ref name="see.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="ndxterm.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="see.attlist">
      <ref name="common.attrib"/>
      <ref name="seeseealso.role.attrib"/>
   </define>
   <define name="seealso">
      <element name="seealso">
         <ref name="seealso.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="ndxterm.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="seealso.attlist">
      <ref name="common.attrib"/>
      <ref name="seeseealso.role.attrib"/>
   </define>
   <define name="appendix.class">
      <ref name="appendix"/>
   </define>
   <define name="article.class">
      <ref name="article"/>
   </define>
   <define name="book.class">
      <ref name="book"/>
   </define>
   <define name="chapter.class">
      <ref name="chapter"/>
   </define>
   <define name="index.class">
      <choice>
         <ref name="index"/>
         <ref name="setindex"/>
      </choice>
   </define>
   <define name="refentry.class">
      <ref name="refentry"/>
   </define>
   <define name="nav.class">
      <choice>
         <ref name="toc"/>
         <ref name="lot"/>
         <ref name="index"/>
         <ref name="glossary"/>
         <ref name="bibliography"/>
      </choice>
   </define>
   <define name="divcomponent.mix">
      <choice>
         <ref name="list.class"/>
         <ref name="admon.class"/>
         <ref name="linespecific.class"/>
         <ref name="synop.class"/>
         <ref name="para.class"/>
         <ref name="informal.class"/>
         <ref name="formal.class"/>
         <ref name="compound.class"/>
         <ref name="genobj.class"/>
         <ref name="descobj.class"/>
         <ref name="ndxterm.class"/>
         <ref name="beginpage"/>
      </choice>
   </define>
   <define name="refcomponent.mix">
      <choice>
         <ref name="list.class"/>
         <ref name="admon.class"/>
         <ref name="linespecific.class"/>
         <ref name="synop.class"/>
         <ref name="para.class"/>
         <ref name="informal.class"/>
         <ref name="formal.class"/>
         <ref name="compound.class"/>
         <ref name="genobj.class"/>
         <ref name="descobj.class"/>
         <ref name="ndxterm.class"/>
         <ref name="beginpage"/>
      </choice>
   </define>
   <define name="indexdivcomponent.mix">
      <choice>
         <ref name="itemizedlist"/>
         <ref name="orderedlist"/>
         <ref name="variablelist"/>
         <ref name="simplelist"/>
         <ref name="linespecific.class"/>
         <ref name="synop.class"/>
         <ref name="para.class"/>
         <ref name="informal.class"/>
         <ref name="anchor"/>
         <ref name="remark"/>
         <ref name="link.char.class"/>
         <ref name="beginpage"/>
      </choice>
   </define>
   <define name="refname.char.mix">
      <ref name="tech.char.class"/>
   </define>
   <define name="partcontent.mix">
      <choice>
         <ref name="appendix.class"/>
         <ref name="chapter.class"/>
         <ref name="nav.class"/>
         <ref name="article.class"/>
         <ref name="preface"/>
         <ref name="refentry.class"/>
         <ref name="reference"/>
      </choice>
   </define>
   <define name="refinline.char.mix">
      <choice>
         <ref name="xref.char.class"/>
         <ref name="gen.char.class"/>
         <ref name="link.char.class"/>
         <ref name="tech.char.class"/>
         <ref name="base.char.class"/>
         <ref name="docinfo.char.class"/>
         <ref name="other.char.class"/>
         <ref name="ndxterm.class"/>
         <ref name="beginpage"/>
      </choice>
   </define>
   <define name="refclass.char.mix">
      <ref name="application"/>
   </define>
   <define name="div.title.content">
      <ref name="title"/>
      <optional>
         <ref name="subtitle"/>
      </optional>
      <optional>
         <ref name="titleabbrev"/>
      </optional>
   </define>
   <define name="bookcomponent.title.content">
      <ref name="title"/>
      <optional>
         <ref name="subtitle"/>
      </optional>
      <optional>
         <ref name="titleabbrev"/>
      </optional>
   </define>
   <define name="sect.title.content">
      <ref name="title"/>
      <optional>
         <ref name="subtitle"/>
      </optional>
      <optional>
         <ref name="titleabbrev"/>
      </optional>
   </define>
   <define name="refsect.title.content">
      <ref name="title"/>
      <optional>
         <ref name="subtitle"/>
      </optional>
      <optional>
         <ref name="titleabbrev"/>
      </optional>
   </define>
   <define name="bookcomponent.content">
      <choice>
         <group>
            <oneOrMore>
               <ref name="divcomponent.mix"/>
            </oneOrMore>
            <choice>
               <zeroOrMore>
                  <ref name="sect1"/>
               </zeroOrMore>
               <zeroOrMore>
                  <ref name="refentry.class"/>
               </zeroOrMore>
               <zeroOrMore>
                  <ref name="simplesect"/>
               </zeroOrMore>
               <zeroOrMore>
                  <ref name="section"/>
               </zeroOrMore>
            </choice>
         </group>
         <choice>
            <oneOrMore>
               <ref name="sect1"/>
            </oneOrMore>
            <oneOrMore>
               <ref name="refentry.class"/>
            </oneOrMore>
            <oneOrMore>
               <ref name="simplesect"/>
            </oneOrMore>
            <oneOrMore>
               <ref name="section"/>
            </oneOrMore>
         </choice>
      </choice>
   </define>
   <define name="set.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="set">
      <element name="set">
         <ref name="set.attlist"/>
         <optional>
            <ref name="div.title.content"/>
         </optional>
         <optional>
            <ref name="setinfo"/>
         </optional>
         <optional>
            <ref name="toc"/>
         </optional>
         <oneOrMore>
            <ref name="book.class"/>
         </oneOrMore>
         <optional>
            <ref name="setindex"/>
         </optional>
      </element>
   </define>
   <define name="set.attlist">
      <ref name="status.attrib"/>
      <ref name="common.attrib"/>
      <ref name="set.role.attrib"/>
      <optional>
         <attribute name="fpi">
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="setinfo.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="setinfo">
      <element name="setinfo">
         <ref name="setinfo.attlist"/>
         <ref name="infoContentModel"/>
      </element>
   </define>
   <define name="setinfo.attlist">
      <ref name="common.attrib"/>
      <ref name="setinfo.role.attrib"/>
      <optional>
         <attribute name="contents">
            <data type="IDREFS"/>
         </attribute>
      </optional>
   </define>
   <define name="book.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="book">
      <element name="book">
         <ref name="book.attlist"/>
         <optional>
            <ref name="div.title.content"/>
         </optional>
         <optional>
            <ref name="bookinfo"/>
         </optional>
         <zeroOrMore>
            <choice>
               <ref name="dedication"/>
               <ref name="toc"/>
               <ref name="lot"/>
               <ref name="glossary"/>
               <ref name="bibliography"/>
               <ref name="preface"/>
               <ref name="chapter.class"/>
               <ref name="reference"/>
               <ref name="part"/>
               <ref name="article.class"/>
               <ref name="appendix.class"/>
               <ref name="index.class"/>
               <ref name="colophon"/>
            </choice>
         </zeroOrMore>
      </element>
   </define>
   <define name="book.attlist">
      <ref name="label.attrib"/>
      <ref name="status.attrib"/>
      <ref name="common.attrib"/>
      <ref name="book.role.attrib"/>
      <optional>
         <attribute name="fpi">
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="bookinfo.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="bookinfo">
      <element name="bookinfo">
         <ref name="bookinfo.attlist"/>
         <ref name="infoContentModel"/>
      </element>
   </define>
   <define name="bookinfo.attlist">
      <ref name="common.attrib"/>
      <ref name="bookinfo.role.attrib"/>
      <optional>
         <attribute name="contents">
            <data type="IDREFS"/>
         </attribute>
      </optional>
   </define>
   <define name="dedication.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="dedication">
      <element name="dedication">
         <ref name="dedication.attlist"/>
         <optional>
            <ref name="sect.title.content"/>
         </optional>
         <oneOrMore>
            <ref name="legalnotice.mix"/>
         </oneOrMore>
      </element>
   </define>
   <define name="dedication.attlist">
      <ref name="status.attrib"/>
      <ref name="common.attrib"/>
      <ref name="dedication.role.attrib"/>
   </define>
   <define name="colophon.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="colophon">
      <element name="colophon">
         <ref name="colophon.attlist"/>
         <optional>
            <ref name="sect.title.content"/>
         </optional>
         <oneOrMore>
            <ref name="textobject.mix"/>
         </oneOrMore>
      </element>
   </define>
   <define name="colophon.attlist">
      <ref name="status.attrib"/>
      <ref name="common.attrib"/>
      <ref name="colophon.role.attrib"/>
   </define>
   <define name="toc.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="toc">
      <element name="toc">
         <ref name="toc.attlist"/>
         <optional>
            <ref name="bookcomponent.title.content"/>
         </optional>
         <zeroOrMore>
            <ref name="tocfront"/>
         </zeroOrMore>
         <zeroOrMore>
            <choice>
               <ref name="tocpart"/>
               <ref name="tocchap"/>
            </choice>
         </zeroOrMore>
         <zeroOrMore>
            <ref name="tocback"/>
         </zeroOrMore>
      </element>
   </define>
   <define name="toc.attlist">
      <ref name="pagenum.attrib"/>
      <ref name="common.attrib"/>
      <ref name="toc.role.attrib"/>
   </define>
   <define name="tocfront.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="tocfront">
      <element name="tocfront">
         <ref name="tocfront.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="para.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="tocfront.attlist">
      <ref name="label.attrib"/>
      <ref name="linkend.attrib"/>
      <ref name="pagenum.attrib"/>
      <ref name="common.attrib"/>
      <ref name="tocfront.role.attrib"/>
   </define>
   <define name="tocentry.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="tocentry">
      <element name="tocentry">
         <ref name="tocentry.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="para.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="tocentry.attlist">
      <ref name="linkend.attrib"/>
      <ref name="pagenum.attrib"/>
      <ref name="common.attrib"/>
      <ref name="tocentry.role.attrib"/>
   </define>
   <define name="tocpart.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="tocpart">
      <element name="tocpart">
         <ref name="tocpart.attlist"/>
         <oneOrMore>
            <ref name="tocentry"/>
         </oneOrMore>
         <zeroOrMore>
            <ref name="tocchap"/>
         </zeroOrMore>
      </element>
   </define>
   <define name="tocpart.attlist">
      <ref name="common.attrib"/>
      <ref name="tocpart.role.attrib"/>
   </define>
   <define name="tocchap.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="tocchap">
      <element name="tocchap">
         <ref name="tocchap.attlist"/>
         <oneOrMore>
            <ref name="tocentry"/>
         </oneOrMore>
         <zeroOrMore>
            <ref name="toclevel1"/>
         </zeroOrMore>
      </element>
   </define>
   <define name="tocchap.attlist">
      <ref name="label.attrib"/>
      <ref name="common.attrib"/>
      <ref name="tocchap.role.attrib"/>
   </define>
   <define name="toclevel1.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="toclevel1">
      <element name="toclevel1">
         <ref name="toclevel1.attlist"/>
         <oneOrMore>
            <ref name="tocentry"/>
         </oneOrMore>
         <zeroOrMore>
            <ref name="toclevel2"/>
         </zeroOrMore>
      </element>
   </define>
   <define name="toclevel1.attlist">
      <ref name="common.attrib"/>
      <ref name="toclevel1.role.attrib"/>
   </define>
   <define name="toclevel2.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="toclevel2">
      <element name="toclevel2">
         <ref name="toclevel2.attlist"/>
         <oneOrMore>
            <ref name="tocentry"/>
         </oneOrMore>
         <zeroOrMore>
            <ref name="toclevel3"/>
         </zeroOrMore>
      </element>
   </define>
   <define name="toclevel2.attlist">
      <ref name="common.attrib"/>
      <ref name="toclevel2.role.attrib"/>
   </define>
   <define name="toclevel3.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="toclevel3">
      <element name="toclevel3">
         <ref name="toclevel3.attlist"/>
         <oneOrMore>
            <ref name="tocentry"/>
         </oneOrMore>
         <zeroOrMore>
            <ref name="toclevel4"/>
         </zeroOrMore>
      </element>
   </define>
   <define name="toclevel3.attlist">
      <ref name="common.attrib"/>
      <ref name="toclevel3.role.attrib"/>
   </define>
   <define name="toclevel4.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="toclevel4">
      <element name="toclevel4">
         <ref name="toclevel4.attlist"/>
         <oneOrMore>
            <ref name="tocentry"/>
         </oneOrMore>
         <zeroOrMore>
            <ref name="toclevel5"/>
         </zeroOrMore>
      </element>
   </define>
   <define name="toclevel4.attlist">
      <ref name="common.attrib"/>
      <ref name="toclevel4.role.attrib"/>
   </define>
   <define name="toclevel5.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="toclevel5">
      <element name="toclevel5">
         <ref name="toclevel5.attlist"/>
         <oneOrMore>
            <ref name="tocentry"/>
         </oneOrMore>
      </element>
   </define>
   <define name="toclevel5.attlist">
      <ref name="common.attrib"/>
      <ref name="toclevel5.role.attrib"/>
   </define>
   <define name="tocback.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="tocback">
      <element name="tocback">
         <ref name="tocback.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="para.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="tocback.attlist">
      <ref name="label.attrib"/>
      <ref name="linkend.attrib"/>
      <ref name="pagenum.attrib"/>
      <ref name="common.attrib"/>
      <ref name="tocback.role.attrib"/>
   </define>
   <define name="lot.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="lot">
      <element name="lot">
         <ref name="lot.attlist"/>
         <optional>
            <ref name="bookcomponent.title.content"/>
         </optional>
         <zeroOrMore>
            <ref name="lotentry"/>
         </zeroOrMore>
      </element>
   </define>
   <define name="lot.attlist">
      <ref name="label.attrib"/>
      <ref name="common.attrib"/>
      <ref name="lot.role.attrib"/>
   </define>
   <define name="lotentry.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="lotentry">
      <element name="lotentry">
         <ref name="lotentry.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="para.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="lotentry.attlist">
      <ref name="pagenum.attrib"/>
      <ref name="common.attrib"/>
      <ref name="linkend.attrib"/>
      <ref name="lotentry.role.attrib"/>
      <optional>
         <attribute name="srccredit">
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="appendix.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="appendix">
      <element name="appendix">
         <ref name="appendix.attlist"/>
         <optional>
            <ref name="appendixinfo"/>
         </optional>
         <ref name="bookcomponent.title.content"/>
         <zeroOrMore>
            <ref name="nav.class"/>
         </zeroOrMore>
         <optional>
            <ref name="tocchap"/>
         </optional>
         <ref name="bookcomponent.content"/>
         <zeroOrMore>
            <ref name="nav.class"/>
         </zeroOrMore>
      </element>
   </define>
   <define name="appendix.attlist">
      <ref name="label.attrib"/>
      <ref name="status.attrib"/>
      <ref name="common.attrib"/>
      <ref name="appendix.role.attrib"/>
   </define>
   <define name="chapter.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="chapter">
      <element name="chapter">
         <ref name="chapter.attlist"/>
         <optional>
            <ref name="chapterinfo"/>
         </optional>
         <ref name="bookcomponent.title.content"/>
         <zeroOrMore>
            <ref name="nav.class"/>
         </zeroOrMore>
         <optional>
            <ref name="tocchap"/>
         </optional>
         <ref name="bookcomponent.content"/>
         <zeroOrMore>
            <ref name="nav.class"/>
         </zeroOrMore>
      </element>
   </define>
   <define name="chapter.attlist">
      <ref name="label.attrib"/>
      <ref name="status.attrib"/>
      <ref name="common.attrib"/>
      <ref name="chapter.role.attrib"/>
   </define>
   <define name="part.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="part">
      <element name="part">
         <ref name="part.attlist"/>
         <optional>
            <ref name="partinfo"/>
         </optional>
         <ref name="bookcomponent.title.content"/>
         <optional>
            <ref name="partintro"/>
         </optional>
         <oneOrMore>
            <ref name="partcontent.mix"/>
         </oneOrMore>
      </element>
   </define>
   <define name="part.attlist">
      <ref name="label.attrib"/>
      <ref name="status.attrib"/>
      <ref name="common.attrib"/>
      <ref name="part.role.attrib"/>
   </define>
   <define name="preface.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="preface">
      <element name="preface">
         <ref name="preface.attlist"/>
         <optional>
            <ref name="prefaceinfo"/>
         </optional>
         <ref name="bookcomponent.title.content"/>
         <zeroOrMore>
            <ref name="nav.class"/>
         </zeroOrMore>
         <optional>
            <ref name="tocchap"/>
         </optional>
         <ref name="bookcomponent.content"/>
         <zeroOrMore>
            <ref name="nav.class"/>
         </zeroOrMore>
      </element>
   </define>
   <define name="preface.attlist">
      <ref name="status.attrib"/>
      <ref name="common.attrib"/>
      <ref name="preface.role.attrib"/>
   </define>
   <define name="reference.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="reference">
      <element name="reference">
         <ref name="reference.attlist"/>
         <optional>
            <ref name="referenceinfo"/>
         </optional>
         <ref name="bookcomponent.title.content"/>
         <optional>
            <ref name="partintro"/>
         </optional>
         <oneOrMore>
            <ref name="refentry.class"/>
         </oneOrMore>
      </element>
   </define>
   <define name="reference.attlist">
      <ref name="label.attrib"/>
      <ref name="status.attrib"/>
      <ref name="common.attrib"/>
      <ref name="reference.role.attrib"/>
   </define>
   <define name="partintro.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="partintro">
      <element name="partintro">
         <ref name="partintro.attlist"/>
         <optional>
            <ref name="div.title.content"/>
         </optional>
         <ref name="bookcomponent.content"/>
      </element>
   </define>
   <define name="partintro.attlist">
      <ref name="label.attrib"/>
      <ref name="common.attrib"/>
      <ref name="partintro.role.attrib"/>
   </define>
   <define name="appendixinfo.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="appendixinfo">
      <element name="appendixinfo">
         <ref name="appendixinfo.attlist"/>
         <ref name="infoContentModel"/>
      </element>
   </define>
   <define name="appendixinfo.attlist">
      <ref name="common.attrib"/>
      <ref name="appendixinfo.role.attrib"/>
   </define>
   <define name="bibliographyinfo.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="bibliographyinfo">
      <element name="bibliographyinfo">
         <ref name="bibliographyinfo.attlist"/>
         <ref name="infoContentModel"/>
      </element>
   </define>
   <define name="bibliographyinfo.attlist">
      <ref name="common.attrib"/>
      <ref name="bibliographyinfo.role.attrib"/>
   </define>
   <define name="chapterinfo.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="chapterinfo">
      <element name="chapterinfo">
         <ref name="chapterinfo.attlist"/>
         <ref name="infoContentModel"/>
      </element>
   </define>
   <define name="chapterinfo.attlist">
      <ref name="common.attrib"/>
      <ref name="chapterinfo.role.attrib"/>
   </define>
   <define name="glossaryinfo.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="glossaryinfo">
      <element name="glossaryinfo">
         <ref name="glossaryinfo.attlist"/>
         <ref name="infoContentModel"/>
      </element>
   </define>
   <define name="glossaryinfo.attlist">
      <ref name="common.attrib"/>
      <ref name="glossaryinfo.role.attrib"/>
   </define>
   <define name="indexinfo.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="indexinfo">
      <element name="indexinfo">
         <ref name="indexinfo.attlist"/>
         <ref name="infoContentModel"/>
      </element>
   </define>
   <define name="indexinfo.attlist">
      <ref name="common.attrib"/>
      <ref name="indexinfo.role.attrib"/>
   </define>
   <define name="setindexinfo.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="setindexinfo">
      <element name="setindexinfo">
         <ref name="setindexinfo.attlist"/>
         <ref name="infoContentModel"/>
      </element>
   </define>
   <define name="setindexinfo.attlist">
      <ref name="common.attrib"/>
      <ref name="setindexinfo.role.attrib"/>
   </define>
   <define name="partinfo.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="partinfo">
      <element name="partinfo">
         <ref name="partinfo.attlist"/>
         <ref name="infoContentModel"/>
      </element>
   </define>
   <define name="partinfo.attlist">
      <ref name="common.attrib"/>
      <ref name="partinfo.role.attrib"/>
   </define>
   <define name="prefaceinfo.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="prefaceinfo">
      <element name="prefaceinfo">
         <ref name="prefaceinfo.attlist"/>
         <ref name="infoContentModel"/>
      </element>
   </define>
   <define name="prefaceinfo.attlist">
      <ref name="common.attrib"/>
      <ref name="prefaceinfo.role.attrib"/>
   </define>
   <define name="refentryinfo.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="refentryinfo">
      <element name="refentryinfo">
         <ref name="refentryinfo.attlist"/>
         <ref name="infoContentModel"/>
      </element>
   </define>
   <define name="refentryinfo.attlist">
      <ref name="common.attrib"/>
      <ref name="refentryinfo.role.attrib"/>
   </define>
   <define name="refsect1info.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="refsect1info">
      <element name="refsect1info">
         <ref name="refsect1info.attlist"/>
         <ref name="infoContentModel"/>
      </element>
   </define>
   <define name="refsect1info.attlist">
      <ref name="common.attrib"/>
      <ref name="refsect1info.role.attrib"/>
   </define>
   <define name="refsect2info.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="refsect2info">
      <element name="refsect2info">
         <ref name="refsect2info.attlist"/>
         <ref name="infoContentModel"/>
      </element>
   </define>
   <define name="refsect2info.attlist">
      <ref name="common.attrib"/>
      <ref name="refsect2info.role.attrib"/>
   </define>
   <define name="refsect3info.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="refsect3info">
      <element name="refsect3info">
         <ref name="refsect3info.attlist"/>
         <ref name="infoContentModel"/>
      </element>
   </define>
   <define name="refsect3info.attlist">
      <ref name="common.attrib"/>
      <ref name="refsect3info.role.attrib"/>
   </define>
   <define name="refsynopsisdivinfo.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="refsynopsisdivinfo">
      <element name="refsynopsisdivinfo">
         <ref name="refsynopsisdivinfo.attlist"/>
         <ref name="infoContentModel"/>
      </element>
   </define>
   <define name="refsynopsisdivinfo.attlist">
      <ref name="common.attrib"/>
      <ref name="refsynopsisdivinfo.role.attrib"/>
   </define>
   <define name="referenceinfo.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="referenceinfo">
      <element name="referenceinfo">
         <ref name="referenceinfo.attlist"/>
         <ref name="infoContentModel"/>
      </element>
   </define>
   <define name="referenceinfo.attlist">
      <ref name="common.attrib"/>
      <ref name="referenceinfo.role.attrib"/>
   </define>
   <define name="sect1info.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="sect1info">
      <element name="sect1info">
         <ref name="sect1info.attlist"/>
         <ref name="infoContentModel"/>
      </element>
   </define>
   <define name="sect1info.attlist">
      <ref name="common.attrib"/>
      <ref name="sect1info.role.attrib"/>
   </define>
   <define name="sect2info.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="sect2info">
      <element name="sect2info">
         <ref name="sect2info.attlist"/>
         <ref name="infoContentModel"/>
      </element>
   </define>
   <define name="sect2info.attlist">
      <ref name="common.attrib"/>
      <ref name="sect2info.role.attrib"/>
   </define>
   <define name="sect3info.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="sect3info">
      <element name="sect3info">
         <ref name="sect3info.attlist"/>
         <ref name="infoContentModel"/>
      </element>
   </define>
   <define name="sect3info.attlist">
      <ref name="common.attrib"/>
      <ref name="sect3info.role.attrib"/>
   </define>
   <define name="sect4info.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="sect4info">
      <element name="sect4info">
         <ref name="sect4info.attlist"/>
         <ref name="infoContentModel"/>
      </element>
   </define>
   <define name="sect4info.attlist">
      <ref name="common.attrib"/>
      <ref name="sect4info.role.attrib"/>
   </define>
   <define name="sect5info.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="sect5info">
      <element name="sect5info">
         <ref name="sect5info.attlist"/>
         <ref name="infoContentModel"/>
      </element>
   </define>
   <define name="sect5info.attlist">
      <ref name="common.attrib"/>
      <ref name="sect5info.role.attrib"/>
   </define>
   <define name="section.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="section">
      <element name="section">
         <ref name="section.attlist"/>
         <optional>
            <ref name="sectioninfo"/>
         </optional>
         <ref name="sect.title.content"/>
         <zeroOrMore>
            <ref name="nav.class"/>
         </zeroOrMore>
         <choice>
            <group>
               <oneOrMore>
                  <ref name="divcomponent.mix"/>
               </oneOrMore>
               <choice>
                  <zeroOrMore>
                     <ref name="refentry.class"/>
                  </zeroOrMore>
                  <zeroOrMore>
                     <ref name="section"/>
                  </zeroOrMore>
               </choice>
            </group>
            <choice>
               <oneOrMore>
                  <ref name="refentry.class"/>
               </oneOrMore>
               <oneOrMore>
                  <ref name="section"/>
               </oneOrMore>
            </choice>
         </choice>
         <zeroOrMore>
            <ref name="nav.class"/>
         </zeroOrMore>
      </element>
   </define>
   <define name="section.attlist">
      <ref name="label.attrib"/>
      <ref name="status.attrib"/>
      <ref name="common.attrib"/>
      <ref name="section.role.attrib"/>
   </define>
   <define name="sectioninfo.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="sectioninfo">
      <element name="sectioninfo">
         <ref name="sectioninfo.attlist"/>
         <ref name="infoContentModel"/>
      </element>
   </define>
   <define name="sectioninfo.attlist">
      <ref name="common.attrib"/>
      <ref name="sectioninfo.role.attrib"/>
   </define>
   <define name="sect1.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="sect1">
      <element name="sect1">
         <ref name="sect1.attlist"/>
         <optional>
            <ref name="sect1info"/>
         </optional>
         <ref name="sect.title.content"/>
         <zeroOrMore>
            <ref name="nav.class"/>
         </zeroOrMore>
         <choice>
            <group>
               <oneOrMore>
                  <ref name="divcomponent.mix"/>
               </oneOrMore>
               <choice>
                  <zeroOrMore>
                     <ref name="refentry.class"/>
                  </zeroOrMore>
                  <zeroOrMore>
                     <ref name="sect2"/>
                  </zeroOrMore>
                  <zeroOrMore>
                     <ref name="simplesect"/>
                  </zeroOrMore>
               </choice>
            </group>
            <choice>
               <oneOrMore>
                  <ref name="refentry.class"/>
               </oneOrMore>
               <oneOrMore>
                  <ref name="sect2"/>
               </oneOrMore>
               <oneOrMore>
                  <ref name="simplesect"/>
               </oneOrMore>
            </choice>
         </choice>
         <zeroOrMore>
            <ref name="nav.class"/>
         </zeroOrMore>
      </element>
   </define>
   <define name="sect1.attlist">
      <ref name="label.attrib"/>
      <ref name="status.attrib"/>
      <ref name="common.attrib"/>
      <ref name="sect1.role.attrib"/>
      <optional>
         <attribute name="renderas">
            <choice>
               <value>sect2</value>
               <value>sect3</value>
               <value>sect4</value>
               <value>sect5</value>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="sect2.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="sect2">
      <element name="sect2">
         <ref name="sect2.attlist"/>
         <optional>
            <ref name="sect2info"/>
         </optional>
         <ref name="sect.title.content"/>
         <zeroOrMore>
            <ref name="nav.class"/>
         </zeroOrMore>
         <choice>
            <group>
               <oneOrMore>
                  <ref name="divcomponent.mix"/>
               </oneOrMore>
               <choice>
                  <zeroOrMore>
                     <ref name="refentry.class"/>
                  </zeroOrMore>
                  <zeroOrMore>
                     <ref name="sect3"/>
                  </zeroOrMore>
                  <zeroOrMore>
                     <ref name="simplesect"/>
                  </zeroOrMore>
               </choice>
            </group>
            <choice>
               <oneOrMore>
                  <ref name="refentry.class"/>
               </oneOrMore>
               <oneOrMore>
                  <ref name="sect3"/>
               </oneOrMore>
               <oneOrMore>
                  <ref name="simplesect"/>
               </oneOrMore>
            </choice>
         </choice>
         <zeroOrMore>
            <ref name="nav.class"/>
         </zeroOrMore>
      </element>
   </define>
   <define name="sect2.attlist">
      <ref name="label.attrib"/>
      <ref name="status.attrib"/>
      <ref name="common.attrib"/>
      <ref name="sect2.role.attrib"/>
      <optional>
         <attribute name="renderas">
            <choice>
               <value>sect1</value>
               <value>sect3</value>
               <value>sect4</value>
               <value>sect5</value>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="sect3.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="sect3">
      <element name="sect3">
         <ref name="sect3.attlist"/>
         <optional>
            <ref name="sect3info"/>
         </optional>
         <ref name="sect.title.content"/>
         <zeroOrMore>
            <ref name="nav.class"/>
         </zeroOrMore>
         <choice>
            <group>
               <oneOrMore>
                  <ref name="divcomponent.mix"/>
               </oneOrMore>
               <choice>
                  <zeroOrMore>
                     <ref name="refentry.class"/>
                  </zeroOrMore>
                  <zeroOrMore>
                     <ref name="sect4"/>
                  </zeroOrMore>
                  <zeroOrMore>
                     <ref name="simplesect"/>
                  </zeroOrMore>
               </choice>
            </group>
            <choice>
               <oneOrMore>
                  <ref name="refentry.class"/>
               </oneOrMore>
               <oneOrMore>
                  <ref name="sect4"/>
               </oneOrMore>
               <oneOrMore>
                  <ref name="simplesect"/>
               </oneOrMore>
            </choice>
         </choice>
         <zeroOrMore>
            <ref name="nav.class"/>
         </zeroOrMore>
      </element>
   </define>
   <define name="sect3.attlist">
      <ref name="label.attrib"/>
      <ref name="status.attrib"/>
      <ref name="common.attrib"/>
      <ref name="sect3.role.attrib"/>
      <optional>
         <attribute name="renderas">
            <choice>
               <value>sect1</value>
               <value>sect2</value>
               <value>sect4</value>
               <value>sect5</value>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="sect4.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="sect4">
      <element name="sect4">
         <ref name="sect4.attlist"/>
         <optional>
            <ref name="sect4info"/>
         </optional>
         <ref name="sect.title.content"/>
         <zeroOrMore>
            <ref name="nav.class"/>
         </zeroOrMore>
         <choice>
            <group>
               <oneOrMore>
                  <ref name="divcomponent.mix"/>
               </oneOrMore>
               <choice>
                  <zeroOrMore>
                     <ref name="refentry.class"/>
                  </zeroOrMore>
                  <zeroOrMore>
                     <ref name="sect5"/>
                  </zeroOrMore>
                  <zeroOrMore>
                     <ref name="simplesect"/>
                  </zeroOrMore>
               </choice>
            </group>
            <choice>
               <oneOrMore>
                  <ref name="refentry.class"/>
               </oneOrMore>
               <oneOrMore>
                  <ref name="sect5"/>
               </oneOrMore>
               <oneOrMore>
                  <ref name="simplesect"/>
               </oneOrMore>
            </choice>
         </choice>
         <zeroOrMore>
            <ref name="nav.class"/>
         </zeroOrMore>
      </element>
   </define>
   <define name="sect4.attlist">
      <ref name="label.attrib"/>
      <ref name="status.attrib"/>
      <ref name="common.attrib"/>
      <ref name="sect4.role.attrib"/>
      <optional>
         <attribute name="renderas">
            <choice>
               <value>sect1</value>
               <value>sect2</value>
               <value>sect3</value>
               <value>sect5</value>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="sect5.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="sect5">
      <element name="sect5">
         <ref name="sect5.attlist"/>
         <optional>
            <ref name="sect5info"/>
         </optional>
         <ref name="sect.title.content"/>
         <zeroOrMore>
            <ref name="nav.class"/>
         </zeroOrMore>
         <choice>
            <group>
               <oneOrMore>
                  <ref name="divcomponent.mix"/>
               </oneOrMore>
               <choice>
                  <zeroOrMore>
                     <ref name="refentry.class"/>
                  </zeroOrMore>
                  <zeroOrMore>
                     <ref name="simplesect"/>
                  </zeroOrMore>
               </choice>
            </group>
            <choice>
               <oneOrMore>
                  <ref name="refentry.class"/>
               </oneOrMore>
               <oneOrMore>
                  <ref name="simplesect"/>
               </oneOrMore>
            </choice>
         </choice>
         <zeroOrMore>
            <ref name="nav.class"/>
         </zeroOrMore>
      </element>
   </define>
   <define name="sect5.attlist">
      <ref name="label.attrib"/>
      <ref name="status.attrib"/>
      <ref name="common.attrib"/>
      <ref name="sect5.role.attrib"/>
      <optional>
         <attribute name="renderas">
            <choice>
               <value>sect1</value>
               <value>sect2</value>
               <value>sect3</value>
               <value>sect4</value>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="simplesect.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="simplesect">
      <element name="simplesect">
         <ref name="simplesect.attlist"/>
         <ref name="sect.title.content"/>
         <oneOrMore>
            <ref name="divcomponent.mix"/>
         </oneOrMore>
      </element>
   </define>
   <define name="simplesect.attlist">
      <ref name="common.attrib"/>
      <ref name="simplesect.role.attrib"/>
   </define>
   <define name="bibliography.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="bibliography">
      <element name="bibliography">
         <ref name="bibliography.attlist"/>
         <zeroOrMore>
            <ref name="bibliographyinfo"/>
         </zeroOrMore>
         <optional>
            <ref name="bookcomponent.title.content"/>
         </optional>
         <zeroOrMore>
            <ref name="component.mix"/>
         </zeroOrMore>
         <choice>
            <oneOrMore>
               <ref name="bibliodiv"/>
            </oneOrMore>
            <oneOrMore>
               <choice>
                  <ref name="biblioentry"/>
                  <ref name="bibliomixed"/>
               </choice>
            </oneOrMore>
         </choice>
      </element>
   </define>
   <define name="bibliography.attlist">
      <ref name="status.attrib"/>
      <ref name="common.attrib"/>
      <ref name="bibliography.role.attrib"/>
   </define>
   <define name="bibliodiv.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="bibliodiv">
      <element name="bibliodiv">
         <ref name="bibliodiv.attlist"/>
         <optional>
            <ref name="sect.title.content"/>
         </optional>
         <zeroOrMore>
            <ref name="component.mix"/>
         </zeroOrMore>
         <oneOrMore>
            <choice>
               <ref name="biblioentry"/>
               <ref name="bibliomixed"/>
            </choice>
         </oneOrMore>
      </element>
   </define>
   <define name="bibliodiv.attlist">
      <ref name="status.attrib"/>
      <ref name="common.attrib"/>
      <ref name="bibliodiv.role.attrib"/>
   </define>
   <define name="glossary.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="glossary">
      <element name="glossary">
         <ref name="glossary.attlist"/>
         <zeroOrMore>
            <ref name="glossaryinfo"/>
         </zeroOrMore>
         <optional>
            <ref name="bookcomponent.title.content"/>
         </optional>
         <zeroOrMore>
            <ref name="component.mix"/>
         </zeroOrMore>
         <choice>
            <oneOrMore>
               <ref name="glossdiv"/>
            </oneOrMore>
            <oneOrMore>
               <ref name="glossentry"/>
            </oneOrMore>
         </choice>
         <optional>
            <ref name="bibliography"/>
         </optional>
      </element>
   </define>
   <define name="glossary.attlist">
      <ref name="status.attrib"/>
      <ref name="common.attrib"/>
      <ref name="glossary.role.attrib"/>
   </define>
   <define name="glossdiv.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="glossdiv">
      <element name="glossdiv">
         <ref name="glossdiv.attlist"/>
         <optional>
            <ref name="sect.title.content"/>
         </optional>
         <zeroOrMore>
            <ref name="component.mix"/>
         </zeroOrMore>
         <oneOrMore>
            <ref name="glossentry"/>
         </oneOrMore>
      </element>
   </define>
   <define name="glossdiv.attlist">
      <ref name="status.attrib"/>
      <ref name="common.attrib"/>
      <ref name="glossdiv.role.attrib"/>
   </define>
   <define name="indexes.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="index">
      <element name="index">
         <ref name="index.attlist"/>
         <zeroOrMore>
            <ref name="indexinfo"/>
         </zeroOrMore>
         <optional>
            <ref name="bookcomponent.title.content"/>
         </optional>
         <zeroOrMore>
            <ref name="component.mix"/>
         </zeroOrMore>
         <choice>
            <oneOrMore>
               <ref name="indexdiv"/>
            </oneOrMore>
            <oneOrMore>
               <ref name="indexentry"/>
            </oneOrMore>
         </choice>
      </element>
   </define>
   <define name="index.attlist">
      <ref name="common.attrib"/>
      <ref name="indexes.role.attrib"/>
   </define>
   <define name="setindex">
      <element name="setindex">
         <ref name="setindex.attlist"/>
         <zeroOrMore>
            <ref name="setindexinfo"/>
         </zeroOrMore>
         <optional>
            <ref name="bookcomponent.title.content"/>
         </optional>
         <zeroOrMore>
            <ref name="component.mix"/>
         </zeroOrMore>
         <choice>
            <oneOrMore>
               <ref name="indexdiv"/>
            </oneOrMore>
            <oneOrMore>
               <ref name="indexentry"/>
            </oneOrMore>
         </choice>
      </element>
   </define>
   <define name="setindex.attlist">
      <ref name="common.attrib"/>
      <ref name="indexes.role.attrib"/>
   </define>
   <define name="indexdiv.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="indexdiv">
      <element name="indexdiv">
         <ref name="indexdiv.attlist"/>
         <optional>
            <ref name="sect.title.content"/>
         </optional>
         <zeroOrMore>
            <ref name="indexdivcomponent.mix"/>
         </zeroOrMore>
         <zeroOrMore>
            <ref name="indexentry"/>
         </zeroOrMore>
         <ref name="segmentedlist"/>
      </element>
   </define>
   <define name="indexdiv.attlist">
      <ref name="common.attrib"/>
      <ref name="indexdiv.role.attrib"/>
   </define>
   <define name="indexentry.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="indexentry">
      <element name="indexentry">
         <ref name="indexentry.attlist"/>
         <ref name="primaryie"/>
         <zeroOrMore>
            <choice>
               <ref name="seeie"/>
               <ref name="seealsoie"/>
            </choice>
         </zeroOrMore>
         <zeroOrMore>
            <ref name="secondaryie"/>
            <zeroOrMore>
               <choice>
                  <ref name="seeie"/>
                  <ref name="seealsoie"/>
                  <ref name="tertiaryie"/>
               </choice>
            </zeroOrMore>
         </zeroOrMore>
      </element>
   </define>
   <define name="indexentry.attlist">
      <ref name="common.attrib"/>
      <ref name="indexentry.role.attrib"/>
   </define>
   <define name="primsecterie.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="primaryie">
      <element name="primaryie">
         <ref name="primaryie.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="ndxterm.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="primaryie.attlist">
      <ref name="linkends.attrib"/>
      <ref name="common.attrib"/>
      <ref name="primsecterie.role.attrib"/>
   </define>
   <define name="secondaryie">
      <element name="secondaryie">
         <ref name="secondaryie.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="ndxterm.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="secondaryie.attlist">
      <ref name="linkends.attrib"/>
      <ref name="common.attrib"/>
      <ref name="primsecterie.role.attrib"/>
   </define>
   <define name="tertiaryie">
      <element name="tertiaryie">
         <ref name="tertiaryie.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="ndxterm.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="tertiaryie.attlist">
      <ref name="linkends.attrib"/>
      <ref name="common.attrib"/>
      <ref name="primsecterie.role.attrib"/>
   </define>
   <define name="seeie.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="seeie">
      <element name="seeie">
         <ref name="seeie.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="ndxterm.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="seeie.attlist">
      <ref name="linkend.attrib"/>
      <ref name="common.attrib"/>
      <ref name="seeie.role.attrib"/>
   </define>
   <define name="seealsoie.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="seealsoie">
      <element name="seealsoie">
         <ref name="seealsoie.attlist"/>
         <zeroOrMore>
            <ref name="ndxterm.char.mix"/>
         </zeroOrMore>
      </element>
   </define>
   <define name="seealsoie.attlist">
      <ref name="linkends.attrib"/>
      <ref name="common.attrib"/>
      <ref name="seealsoie.role.attrib"/>
   </define>
   <define name="refentry.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="refentry">
      <element name="refentry">
         <ref name="refentry.attlist"/>
         <zeroOrMore>
            <ref name="ndxterm.class"/>
         </zeroOrMore>
         <optional>
            <ref name="refentryinfo"/>
         </optional>
         <optional>
            <ref name="refmeta"/>
         </optional>
         <zeroOrMore>
            <choice>
               <ref name="remark"/>
               <ref name="link.char.class"/>
            </choice>
         </zeroOrMore>
         <ref name="refnamediv"/>
         <optional>
            <ref name="refsynopsisdiv"/>
         </optional>
         <oneOrMore>
            <ref name="refsect1"/>
         </oneOrMore>
      </element>
   </define>
   <define name="refentry.attlist">
      <ref name="status.attrib"/>
      <ref name="common.attrib"/>
      <ref name="refentry.role.attrib"/>
   </define>
   <define name="refmeta.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="refmeta">
      <element name="refmeta">
         <ref name="refmeta.attlist"/>
         <zeroOrMore>
            <ref name="ndxterm.class"/>
         </zeroOrMore>
         <ref name="refentrytitle"/>
         <optional>
            <ref name="manvolnum"/>
         </optional>
         <zeroOrMore>
            <ref name="refmiscinfo"/>
         </zeroOrMore>
         <zeroOrMore>
            <ref name="ndxterm.class"/>
         </zeroOrMore>
      </element>
   </define>
   <define name="refmeta.attlist">
      <ref name="common.attrib"/>
      <ref name="refmeta.role.attrib"/>
   </define>
   <define name="refmiscinfo.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="refmiscinfo">
      <element name="refmiscinfo">
         <ref name="refmiscinfo.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="docinfo.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="refmiscinfo.attlist">
      <ref name="common.attrib"/>
      <ref name="refmiscinfo.role.attrib"/>
      <optional>
         <attribute name="class">
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="refnamediv.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="refnamediv">
      <element name="refnamediv">
         <ref name="refnamediv.attlist"/>
         <optional>
            <ref name="refdescriptor"/>
         </optional>
         <oneOrMore>
            <ref name="refname"/>
         </oneOrMore>
         <ref name="refpurpose"/>
         <zeroOrMore>
            <choice>
               <ref name="remark"/>
               <ref name="link.char.class"/>
            </choice>
         </zeroOrMore>
      </element>
   </define>
   <define name="refnamediv.attlist">
      <ref name="common.attrib"/>
      <ref name="refnamediv.role.attrib"/>
   </define>
   <define name="refdescriptor.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="refdescriptor">
      <element name="refdescriptor">
         <ref name="refdescriptor.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="refname.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="refdescriptor.attlist">
      <ref name="common.attrib"/>
      <ref name="refdescriptor.role.attrib"/>
   </define>
   <define name="refname.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="refname">
      <element name="refname">
         <ref name="refname.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="refname.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="refname.attlist">
      <ref name="common.attrib"/>
      <ref name="refname.role.attrib"/>
   </define>
   <define name="refpurpose.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="refpurpose">
      <element name="refpurpose">
         <ref name="refpurpose.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="refinline.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="refpurpose.attlist">
      <ref name="common.attrib"/>
      <ref name="refpurpose.role.attrib"/>
   </define>
   <define name="refclass.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="refclass">
      <element name="refclass">
         <ref name="refclass.attlist"/>
         <mixed>
            <zeroOrMore>
               <ref name="refclass.char.mix"/>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="refclass.attlist">
      <ref name="common.attrib"/>
      <ref name="refclass.role.attrib"/>
   </define>
   <define name="refsynopsisdiv.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="refsynopsisdiv">
      <element name="refsynopsisdiv">
         <ref name="refsynopsisdiv.attlist"/>
         <optional>
            <ref name="refsynopsisdivinfo"/>
         </optional>
         <optional>
            <ref name="refsect.title.content"/>
         </optional>
         <choice>
            <group>
               <oneOrMore>
                  <ref name="refcomponent.mix"/>
               </oneOrMore>
               <zeroOrMore>
                  <ref name="refsect2"/>
               </zeroOrMore>
            </group>
            <oneOrMore>
               <ref name="refsect2"/>
            </oneOrMore>
         </choice>
      </element>
   </define>
   <define name="refsynopsisdiv.attlist">
      <ref name="common.attrib"/>
      <ref name="refsynopsisdiv.role.attrib"/>
   </define>
   <define name="refsect1.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="refsect1">
      <element name="refsect1">
         <ref name="refsect1.attlist"/>
         <optional>
            <ref name="refsect1info"/>
         </optional>
         <ref name="refsect.title.content"/>
         <choice>
            <group>
               <oneOrMore>
                  <ref name="refcomponent.mix"/>
               </oneOrMore>
               <zeroOrMore>
                  <ref name="refsect2"/>
               </zeroOrMore>
            </group>
            <oneOrMore>
               <ref name="refsect2"/>
            </oneOrMore>
         </choice>
      </element>
   </define>
   <define name="refsect1.attlist">
      <ref name="status.attrib"/>
      <ref name="common.attrib"/>
      <ref name="refsect1.role.attrib"/>
   </define>
   <define name="refsect2.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="refsect2">
      <element name="refsect2">
         <ref name="refsect2.attlist"/>
         <optional>
            <ref name="refsect2info"/>
         </optional>
         <ref name="refsect.title.content"/>
         <choice>
            <group>
               <oneOrMore>
                  <ref name="refcomponent.mix"/>
               </oneOrMore>
               <zeroOrMore>
                  <ref name="refsect3"/>
               </zeroOrMore>
            </group>
            <oneOrMore>
               <ref name="refsect3"/>
            </oneOrMore>
         </choice>
      </element>
   </define>
   <define name="refsect2.attlist">
      <ref name="status.attrib"/>
      <ref name="common.attrib"/>
      <ref name="refsect2.role.attrib"/>
   </define>
   <define name="refsect3.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="refsect3">
      <element name="refsect3">
         <ref name="refsect3.attlist"/>
         <optional>
            <ref name="refsect3info"/>
         </optional>
         <ref name="refsect.title.content"/>
         <oneOrMore>
            <ref name="refcomponent.mix"/>
         </oneOrMore>
      </element>
   </define>
   <define name="refsect3.attlist">
      <ref name="status.attrib"/>
      <ref name="common.attrib"/>
      <ref name="refsect3.role.attrib"/>
   </define>
   <define name="article.role.attrib">
      <ref name="role.attrib"/>
   </define>
   <define name="article">
      <element name="article">
         <ref name="article.attlist"/>
         <optional>
            <ref name="div.title.content"/>
         </optional>
         <optional>
            <ref name="articleinfo"/>
         </optional>
         <optional>
            <ref name="tocchap"/>
         </optional>
         <zeroOrMore>
            <ref name="lot"/>
         </zeroOrMore>
         <ref name="bookcomponent.content"/>
         <zeroOrMore>
            <choice>
               <ref name="nav.class"/>
               <ref name="appendix.class"/>
               <ref name="ackno"/>
            </choice>
         </zeroOrMore>
      </element>
   </define>
   <define name="article.attlist">
      <ref name="status.attrib"/>
      <ref name="common.attrib"/>
      <ref name="article.role.attrib"/>
      <optional>
         <attribute name="class">
            <choice>
               <value>journalarticle</value>
               <value>productsheet</value>
               <value>whitepaper</value>
               <value>techreport</value>
               <value>specification</value>
               <value>faq</value>
            </choice>
         </attribute>
      </optional>
      <optional>
         <attribute name="parentbook">
            <data type="IDREF"/>
         </attribute>
      </optional>
   </define>
   <define name="table.att">
      <empty/>
   </define>
   <define name="tgroup.att">
      <empty/>
   </define>
   <define name="colspec.att">
      <empty/>
   </define>
   <define name="thead.att">
      <empty/>
   </define>
   <define name="tbody.att">
      <empty/>
   </define>
   <define name="row.att">
      <empty/>
   </define>
   <define name="entry.att">
      <empty/>
   </define>
   <define name="table">
      <element name="table">
         <ref name="table.attlist"/>
         <ref name="formalobject.title.content"/>
         <optional>
            <ref name="ndxterm.class"/>
         </optional>
         <choice>
            <oneOrMore>
               <ref name="graphic"/>
            </oneOrMore>
            <oneOrMore>
               <ref name="mediaobject"/>
            </oneOrMore>
            <oneOrMore>
               <ref name="tgroup"/>
            </oneOrMore>
         </choice>
      </element>
   </define>
   <define name="table.attlist">
      <ref name="table.att"/>
      <optional>
         <attribute name="frame">
            <choice>
               <value>top</value>
               <value>bottom</value>
               <value>topbot</value>
               <value>all</value>
               <value>sides</value>
               <value>none</value>
            </choice>
         </attribute>
      </optional>
      <optional>
         <attribute name="colsep">
            <choice>
               <value>0</value>
               <value>1</value>
            </choice>
         </attribute>
      </optional>
      <optional>
         <attribute name="rowsep">
            <choice>
               <value>0</value>
               <value>1</value>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="informaltable">
      <element name="informaltable">
         <ref name="informaltable.attlist"/>
         <choice>
            <oneOrMore>
               <ref name="graphic"/>
            </oneOrMore>
            <oneOrMore>
               <ref name="mediaobject"/>
            </oneOrMore>
            <oneOrMore>
               <ref name="tgroup"/>
            </oneOrMore>
         </choice>
      </element>
   </define>
   <define name="informaltable.attlist">
      <ref name="table.att"/>
      <optional>
         <attribute name="frame">
            <choice>
               <value>top</value>
               <value>bottom</value>
               <value>topbot</value>
               <value>all</value>
               <value>sides</value>
               <value>none</value>
            </choice>
         </attribute>
      </optional>
      <optional>
         <attribute name="colsep">
            <choice>
               <value>0</value>
               <value>1</value>
            </choice>
         </attribute>
      </optional>
      <optional>
         <attribute name="rowsep">
            <choice>
               <value>0</value>
               <value>1</value>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="tgroup">
      <element name="tgroup">
         <ref name="tgroup.attlist"/>
         <zeroOrMore>
            <ref name="colspec"/>
         </zeroOrMore>
         <optional>
            <ref name="thead"/>
         </optional>
         <ref name="tbody"/>
      </element>
   </define>
   <define name="tgroup.attlist">
      <ref name="tgroup.att"/>
      <attribute name="cols">
         <data type="integer"/>
      </attribute>
      <optional>
         <attribute name="colsep">
            <choice>
               <value>0</value>
               <value>1</value>
            </choice>
         </attribute>
      </optional>
      <optional>
         <attribute name="rowsep">
            <choice>
               <value>0</value>
               <value>1</value>
            </choice>
         </attribute>
      </optional>
      <optional>
         <attribute name="align">
            <choice>
               <value>left</value>
               <value>right</value>
               <value>center</value>
               <value>justify</value>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="colspec">
      <element name="colspec">
         <ref name="colspec.attlist"/>
      </element>
   </define>
   <define name="colspec.attlist">
      <ref name="colspec.att"/>
      <optional>
         <attribute name="colnum">
            <data type="integer"/>
         </attribute>
      </optional>
      <optional>
         <attribute name="colname">
            <data type="NMTOKEN"/>
         </attribute>
      </optional>
      <optional>
         <attribute name="colwidth">
            <data type="string"/>
         </attribute>
      </optional>
      <optional>
         <attribute name="colsep">
            <choice>
               <value>0</value>
               <value>1</value>
            </choice>
         </attribute>
      </optional>
      <optional>
         <attribute name="rowsep">
            <choice>
               <value>0</value>
               <value>1</value>
            </choice>
         </attribute>
      </optional>
      <optional>
         <attribute name="align">
            <choice>
               <value>left</value>
               <value>right</value>
               <value>center</value>
               <value>justify</value>
               <value>char</value>
            </choice>
         </attribute>
      </optional>
      <optional>
         <attribute name="char">
            <data type="string"/>
         </attribute>
      </optional>
      <optional>
         <attribute name="charoff">
            <data type="NMTOKEN"/>
         </attribute>
      </optional>
   </define>
   <define name="thead">
      <element name="thead">
         <ref name="thead.attlist"/>
         <oneOrMore>
            <ref name="row"/>
         </oneOrMore>
      </element>
   </define>
   <define name="thead.attlist">
      <ref name="thead.att"/>
      <optional>
         <attribute name="valign">
            <choice>
               <value>top</value>
               <value>middle</value>
               <value>bottom</value>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="tbody">
      <element name="tbody">
         <ref name="tbody.attlist"/>
         <oneOrMore>
            <ref name="row"/>
         </oneOrMore>
      </element>
   </define>
   <define name="tbody.attlist">
      <ref name="tbody.att"/>
      <optional>
         <attribute name="valign">
            <choice>
               <value>top</value>
               <value>middle</value>
               <value>bottom</value>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="row">
      <element name="row">
         <ref name="row.attlist"/>
         <oneOrMore>
            <ref name="entry"/>
         </oneOrMore>
      </element>
   </define>
   <define name="row.attlist">
      <ref name="row.att"/>
      <optional>
         <attribute name="rowsep">
            <choice>
               <value>0</value>
               <value>1</value>
            </choice>
         </attribute>
      </optional>
      <optional>
         <attribute name="valign">
            <choice>
               <value>top</value>
               <value>middle</value>
               <value>bottom</value>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="entry">
      <element name="entry">
         <ref name="entry.attlist"/>
         <mixed>
            <zeroOrMore>
               <choice>
                  <ref name="para.char.mix"/>
                  <ref name="tabentry.mix"/>
               </choice>
            </zeroOrMore>
         </mixed>
      </element>
   </define>
   <define name="entry.attlist">
      <ref name="entry.att"/>
      <optional>
         <attribute name="colname">
            <data type="NMTOKEN"/>
         </attribute>
      </optional>
      <optional>
         <attribute name="namest">
            <data type="NMTOKEN"/>
         </attribute>
      </optional>
      <optional>
         <attribute name="nameend">
            <data type="NMTOKEN"/>
         </attribute>
      </optional>
      <optional>
         <attribute name="morerows">
            <data type="integer"/>
         </attribute>
      </optional>
      <optional>
         <attribute name="colsep">
            <choice>
               <value>0</value>
               <value>1</value>
            </choice>
         </attribute>
      </optional>
      <optional>
         <attribute name="rowsep">
            <choice>
               <value>0</value>
               <value>1</value>
            </choice>
         </attribute>
      </optional>
      <optional>
         <attribute name="align">
            <choice>
               <value>left</value>
               <value>right</value>
               <value>center</value>
               <value>justify</value>
               <value>char</value>
            </choice>
         </attribute>
      </optional>
      <optional>
         <attribute name="char">
            <data type="string"/>
         </attribute>
      </optional>
      <optional>
         <attribute name="charoff">
            <data type="NMTOKEN"/>
         </attribute>
      </optional>
      <optional>
         <attribute name="valign">
            <choice>
               <value>top</value>
               <value>middle</value>
               <value>bottom</value>
            </choice>
         </attribute>
      </optional>
   </define>
</grammar>
