<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:xlink="http://www.w3.org/1999/xlink"
           xmlns:db="http://docbook.org/ns/docbook"
           elementFormDefault="qualified"
           targetNamespace="http://docbook.org/ns/docbook">
   <xs:import namespace="http://www.w3.org/1999/xlink" schemaLocation="xlink.xsd"/>
   <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
   <xs:attributeGroup name="effectivity.attributes">
      <xs:attribute name="arch"/>
      <xs:attribute name="audience"/>
      <xs:attribute name="condition"/>
      <xs:attribute name="conformance"/>
      <xs:attribute name="os"/>
      <xs:attribute name="revision"/>
      <xs:attribute name="security"/>
      <xs:attribute name="userlevel"/>
      <xs:attribute name="vendor"/>
      <xs:attribute name="wordsize"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="common.attributes">
      <xs:attribute ref="xml:id"/>
      <xs:attribute ref="xml:lang"/>
      <xs:attribute ref="xml:base"/>
      <xs:attribute name="version"/>
      <xs:attribute name="remap"/>
      <xs:attribute name="xreflabel"/>
      <xs:attribute name="revisionflag">
         <xs:simpleType>
            <xs:restriction base="xs:token">
               <xs:enumeration value="changed"/>
               <xs:enumeration value="added"/>
               <xs:enumeration value="deleted"/>
               <xs:enumeration value="off"/>
            </xs:restriction>
         </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="dir">
         <xs:simpleType>
            <xs:restriction base="xs:token">
               <xs:enumeration value="ltr"/>
               <xs:enumeration value="rtl"/>
               <xs:enumeration value="lro"/>
               <xs:enumeration value="rlo"/>
            </xs:restriction>
         </xs:simpleType>
      </xs:attribute>
      <xs:attributeGroup ref="db:effectivity.attributes"/>
      <xs:attribute name="annotations"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="common.idreq.attributes">
      <xs:attribute ref="xml:id" use="required"/>
      <xs:attribute ref="xml:lang"/>
      <xs:attribute ref="xml:base"/>
      <xs:attribute name="version"/>
      <xs:attribute name="remap"/>
      <xs:attribute name="xreflabel"/>
      <xs:attribute name="revisionflag">
         <xs:simpleType>
            <xs:restriction base="xs:token">
               <xs:enumeration value="changed"/>
               <xs:enumeration value="added"/>
               <xs:enumeration value="deleted"/>
               <xs:enumeration value="off"/>
            </xs:restriction>
         </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="dir">
         <xs:simpleType>
            <xs:restriction base="xs:token">
               <xs:enumeration value="ltr"/>
               <xs:enumeration value="rtl"/>
               <xs:enumeration value="lro"/>
               <xs:enumeration value="rlo"/>
            </xs:restriction>
         </xs:simpleType>
      </xs:attribute>
      <xs:attributeGroup ref="db:effectivity.attributes"/>
      <xs:attribute name="annotations"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="common.linking.attributes">
      <xs:attribute name="linkend" type="xs:IDREF"/>
      <xs:attribute ref="xlink:href"/>
      <xs:attribute ref="xlink:type"/>
      <xs:attribute ref="xlink:role"/>
      <xs:attribute ref="xlink:arcrole"/>
      <xs:attribute ref="xlink:title"/>
      <xs:attribute ref="xlink:show"/>
      <xs:attribute ref="xlink:actuate"/>
   </xs:attributeGroup>
   <!-- Note: Can't test that linkend or href required; use schematron --><xs:attributeGroup name="common.req.linking.attributes">
      <xs:attribute name="linkend" type="xs:IDREF"/>
      <xs:attribute ref="xlink:href"/>
      <xs:attribute ref="xlink:type"/>
      <xs:attribute ref="xlink:role"/>
      <xs:attribute ref="xlink:arcrole"/>
      <xs:attribute ref="xlink:title"/>
      <xs:attribute ref="xlink:show"/>
      <xs:attribute ref="xlink:actuate"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="common.data.attributes">
      <xs:attribute name="format"/>
      <xs:attribute name="fileref" type="xs:anyURI"/>
      <xs:attribute name="entityref" type="xs:ENTITY"/>
   </xs:attributeGroup>
   <xs:group name="all.inlines">
      <xs:choice>
         <xs:group ref="db:ubiq.inlines"/>
         <xs:group ref="db:general.inlines"/>
         <xs:group ref="db:domain.inlines"/>
      </xs:choice>
   </xs:group>
   <xs:group name="ubiq.inlines">
      <xs:choice>
         <xs:element ref="db:phrase"/>
         <xs:element ref="db:inlinemediaobject"/>
         <xs:element ref="db:remark"/>
         <xs:element ref="db:superscript"/>
         <xs:element ref="db:subscript"/>
         <xs:group ref="db:link.inlines"/>
         <xs:element ref="db:alt"/>
         <xs:element ref="db:annotation"/>
         <!-- ambig <xs:element ref="db:indexterm"/> --></xs:choice>
   </xs:group>
   <xs:group name="_text">
      <xs:sequence>
         <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:group ref="db:ubiq.inlines"/>
            <xs:element ref="db:replaceable"/>
         </xs:choice>
      </xs:sequence>
   </xs:group>
   <xs:group name="general.inlines">
      <xs:choice>
         <xs:group ref="db:publishing.inlines"/>
         <xs:group ref="db:product.inlines"/>
         <xs:group ref="db:bibliography.inlines"/>
         <!-- ubiq: <xs:group ref="db:graphic.inlines"/> --><xs:group ref="db:indexing.inlines"/>
         <xs:group ref="db:link.inlines"/>
      </xs:choice>
   </xs:group>
   <xs:group name="domain.inlines">
      <xs:choice>
         <xs:group ref="db:technical.inlines"/>
         <xs:group ref="db:math.inlines"/>
         <xs:group ref="db:markup.inlines"/>
         <xs:group ref="db:gui.inlines"/>
         <xs:group ref="db:keyboard.inlines"/>
         <xs:group ref="db:os.inlines"/>
         <xs:group ref="db:programming.inlines"/>
         <xs:group ref="db:error.inlines"/>
      </xs:choice>
   </xs:group>
   <xs:group name="technical.inlines">
      <xs:choice>
         <xs:element ref="db:replaceable"/>
         <xs:element ref="db:package"/>
         <xs:element ref="db:parameter"/>
         <xs:element ref="db:termdef"/>
         <xs:element ref="db:nonterminal"/>
         <xs:element ref="db:systemitem"/>
         <xs:element ref="db:option"/>
         <xs:element ref="db:optional"/>
         <xs:element ref="db:property"/>
      </xs:choice>
   </xs:group>
   <xs:group name="product.inlines">
      <xs:choice>
         <xs:element ref="db:trademark"/>
         <xs:element ref="db:productnumber"/>
         <xs:element ref="db:productname"/>
         <xs:element ref="db:database"/>
         <xs:element ref="db:application"/>
         <xs:element ref="db:hardware"/>
      </xs:choice>
   </xs:group>
   <xs:group name="bibliography.inlines">
      <xs:choice>
         <xs:element ref="db:citation"/>
         <xs:element ref="db:citerefentry"/>
         <xs:element ref="db:citetitle"/>
         <xs:element ref="db:citebiblioid"/>
         <xs:element ref="db:author"/>
         <xs:element ref="db:person"/>
         <xs:element ref="db:personname"/>
         <xs:element ref="db:org"/>
         <xs:element ref="db:orgname"/>
         <xs:element ref="db:editor"/>
         <xs:element ref="db:jobtitle"/>
      </xs:choice>
   </xs:group>
   <xs:group name="publishing.inlines">
      <xs:choice>
         <xs:element ref="db:abbrev"/>
         <xs:element ref="db:acronym"/>
         <xs:element ref="db:date"/>
         <xs:element ref="db:emphasis"/>
         <xs:element ref="db:footnote"/>
         <xs:element ref="db:footnoteref"/>
         <xs:element ref="db:foreignphrase"/>
         <!-- ubiq: <xs:element ref="db:phrase"/> --><xs:element ref="db:quote"/>
         <!-- ubiq: <xs:element ref="db:subscript"/> --><!-- ubiq: <xs:element ref="db:superscript"/> --><xs:element ref="db:wordasword"/>
         <xs:group ref="db:glossary.inlines"/>
         <xs:element ref="db:coref"/>
         <!-- ??? really !!! --></xs:choice>
   </xs:group>
   <xs:group name="programming.inlines">
      <xs:choice>
         <xs:element ref="db:function"/>
         <!-- technical.inlines: <xs:element ref="db:parameter"/> --><xs:element ref="db:varname"/>
         <xs:element ref="db:returnvalue"/>
         <xs:element ref="db:type"/>
         <xs:element ref="db:classname"/>
         <xs:element ref="db:exceptionname"/>
         <xs:element ref="db:interfacename"/>
         <xs:element ref="db:methodname"/>
         <xs:element ref="db:modifier"/>
         <xs:element ref="db:initializer"/>
         <xs:group ref="db:oo.inlines"/>
      </xs:choice>
   </xs:group>
   <xs:group name="oo.inlines">
      <xs:choice>
         <xs:element ref="db:ooclass"/>
         <xs:element ref="db:ooexception"/>
         <xs:element ref="db:oointerface"/>
      </xs:choice>
   </xs:group>
   <!-- ubiq: <xs:element ref="db:inlinemediaobject"/>
  <xs:group name="graphic.inlines">
    <xs:choice>
      <xs:element ref="db:inlinemediaobject"/>
    </xs:choice>
  </xs:group>
  --><xs:group name="indexing.inlines">
      <xs:choice>
         <xs:element ref="db:indexterm"/>
      </xs:choice>
   </xs:group>
   <xs:group name="link.inlines">
      <xs:choice>
         <xs:element ref="db:xref"/>
         <xs:element ref="db:link"/>
         <xs:element ref="db:olink"/>
         <xs:element ref="db:anchor"/>
      </xs:choice>
   </xs:group>
   <xs:group name="nopara.blocks">
      <xs:choice>
         <xs:group ref="db:list.blocks"/>
         <xs:group ref="db:formal.blocks"/>
         <xs:group ref="db:informal.blocks"/>
         <xs:group ref="db:publishing.blocks"/>
         <xs:group ref="db:graphic.blocks"/>
         <xs:group ref="db:technical.blocks"/>
         <xs:group ref="db:verbatim.blocks"/>
         <xs:element ref="db:bridgehead"/>
         <!-- ubiq: <xs:element ref="db:remark"/> --><xs:element ref="db:revhistory"/>
         <xs:group ref="db:synopsis.blocks"/>
         <xs:group ref="db:admonition.blocks"/>
      </xs:choice>
   </xs:group>
   <xs:group name="para.blocks">
      <xs:choice><!-- link.inlines: <xs:element ref="db:anchor"/> --><xs:element ref="db:para"/>
         <xs:element ref="db:formalpara"/>
         <xs:element ref="db:simpara"/>
      </xs:choice>
   </xs:group>
   <xs:group name="all.blocks">
      <xs:choice>
         <xs:group ref="db:nopara.blocks"/>
         <xs:element ref="db:remark"/>
         <!-- because it can't be in nopara.blocks --><xs:group ref="db:para.blocks"/>
         <xs:element ref="db:annotation"/>
         <xs:element ref="db:indexterm"/>
      </xs:choice>
   </xs:group>
   <xs:group name="all-i.blocks">
      <xs:choice>
         <xs:group ref="db:nopara.blocks"/>
         <xs:group ref="db:para.blocks"/>
      </xs:choice>
   </xs:group>
   <xs:group name="formal.blocks">
      <xs:choice>
         <xs:element ref="db:example"/>
         <xs:element ref="db:figure"/>
         <xs:element ref="db:table"/>
         <xs:element ref="db:equation"/>
      </xs:choice>
   </xs:group>
   <xs:group name="informal.blocks">
      <xs:choice>
         <xs:element ref="db:informalexample"/>
         <xs:element ref="db:informalfigure"/>
         <xs:element ref="db:informaltable"/>
         <xs:element ref="db:informalequation"/>
      </xs:choice>
   </xs:group>
   <xs:group name="publishing.blocks">
      <xs:choice>
         <xs:element ref="db:sidebar"/>
         <xs:element ref="db:blockquote"/>
         <xs:element ref="db:address"/>
         <xs:element ref="db:epigraph"/>
      </xs:choice>
   </xs:group>
   <xs:group name="graphic.blocks">
      <xs:choice>
         <xs:element ref="db:mediaobject"/>
         <xs:element ref="db:screenshot"/>
      </xs:choice>
   </xs:group>
   <xs:group name="technical.blocks">
      <xs:choice>
         <xs:element ref="db:procedure"/>
         <xs:element ref="db:task"/>
         <xs:element ref="db:productionset"/>
         <xs:element ref="db:constraintdef"/>
         <xs:element ref="db:msgset"/>
      </xs:choice>
   </xs:group>
   <xs:group name="synopsis.blocks">
      <xs:choice>
         <xs:element ref="db:funcsynopsis"/>
         <xs:element ref="db:classsynopsis"/>
         <xs:element ref="db:methodsynopsis"/>
         <xs:element ref="db:constructorsynopsis"/>
         <xs:element ref="db:destructorsynopsis"/>
         <xs:element ref="db:fieldsynopsis"/>
         <xs:element ref="db:cmdsynopsis"/>
      </xs:choice>
   </xs:group>
   <xs:group name="list.blocks">
      <xs:choice>
         <xs:element ref="db:itemizedlist"/>
         <xs:element ref="db:orderedlist"/>
         <!-- technical.blocks: <xs:element ref="db:procedure"/> --><xs:element ref="db:simplelist"/>
         <xs:element ref="db:variablelist"/>
         <xs:element ref="db:segmentedlist"/>
         <xs:element ref="db:glosslist"/>
         <xs:element ref="db:bibliolist"/>
         <xs:element ref="db:calloutlist"/>
         <xs:element ref="db:qandaset"/>
      </xs:choice>
   </xs:group>
   <xs:group name="verbatim.blocks">
      <xs:choice>
         <xs:element ref="db:screen"/>
         <xs:element ref="db:literallayout"/>
         <xs:element ref="db:programlistingco"/>
         <xs:element ref="db:screenco"/>
         <xs:element ref="db:programlisting"/>
         <xs:element ref="db:synopsis"/>
      </xs:choice>
   </xs:group>
   <xs:group name="admonition.blocks">
      <xs:choice>
         <xs:element ref="db:caution"/>
         <xs:element ref="db:important"/>
         <xs:element ref="db:note"/>
         <xs:element ref="db:tip"/>
         <xs:element ref="db:warning"/>
      </xs:choice>
   </xs:group>
   <xs:group name="info.elements">
      <xs:choice>
         <xs:element ref="db:abstract"/>
         <xs:element ref="db:address"/>
         <xs:element ref="db:artpagenums"/>
         <xs:element ref="db:author"/>
         <xs:element ref="db:authorgroup"/>
         <xs:element ref="db:authorinitials"/>
         <xs:element ref="db:bibliocoverage"/>
         <xs:element ref="db:biblioid"/>
         <xs:element ref="db:bibliosource"/>
         <xs:element ref="db:collab"/>
         <xs:element ref="db:confgroup"/>
         <xs:element ref="db:contractsponsor"/>
         <xs:element ref="db:contractnum"/>
         <xs:element ref="db:copyright"/>
         <xs:element ref="db:cover"/>
         <xs:element ref="db:date"/>
         <xs:element ref="db:edition"/>
         <xs:element ref="db:editor"/>
         <xs:element ref="db:issuenum"/>
         <xs:element ref="db:keywordset"/>
         <xs:element ref="db:legalnotice"/>
         <xs:element ref="db:mediaobject"/>
         <xs:element ref="db:org"/>
         <xs:element ref="db:orgname"/>
         <xs:element ref="db:othercredit"/>
         <xs:element ref="db:pagenums"/>
         <xs:element ref="db:printhistory"/>
         <xs:element ref="db:pubdate"/>
         <xs:element ref="db:publisher"/>
         <xs:element ref="db:publishername"/>
         <xs:element ref="db:releaseinfo"/>
         <xs:element ref="db:revhistory"/>
         <xs:element ref="db:seriesvolnums"/>
         <xs:element ref="db:subjectset"/>
         <xs:element ref="db:volumenum"/>
         <xs:element ref="db:annotation"/>
         <xs:element ref="db:extendedlink"/>
         <xs:element ref="db:bibliomisc"/>
         <xs:element ref="db:bibliomset"/>
         <xs:element ref="db:bibliorelation"/>
         <xs:element ref="db:biblioset"/>
         <xs:element ref="db:itermset"/>
         <xs:element ref="db:productname"/>
         <xs:element ref="db:productnumber"/>
      </xs:choice>
   </xs:group>
   <xs:group name="bibliographic.elements">
      <xs:choice>
         <xs:group ref="db:info.elements"/>
         <!-- This should be publishing.inlines, but there are ambiguity problems --><xs:element ref="db:abbrev"/>
         <xs:element ref="db:acronym"/>
         <xs:element ref="db:emphasis"/>
         <xs:element ref="db:footnote"/>
         <xs:element ref="db:footnoteref"/>
         <xs:element ref="db:foreignphrase"/>
         <xs:element ref="db:quote"/>
         <xs:element ref="db:subscript"/>
         <xs:element ref="db:superscript"/>
         <xs:element ref="db:wordasword"/>
         <xs:element ref="db:citerefentry"/>
         <xs:element ref="db:citetitle"/>
         <xs:element ref="db:citebiblioid"/>
         <xs:element ref="db:person"/>
         <xs:element ref="db:personblurb"/>
         <xs:element ref="db:personname"/>
         <xs:element ref="db:subtitle"/>
         <xs:element ref="db:title"/>
         <xs:element ref="db:titleabbrev"/>
      </xs:choice>
   </xs:group>
   <!-- ============================================================ --><xs:complexType name="inline.type" mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
         <xs:group ref="db:all.inlines"/>
      </xs:choice>
      <xs:attribute name="role"/>
      <xs:attributeGroup ref="db:common.attributes"/>
      <xs:attributeGroup ref="db:common.linking.attributes"/>
   </xs:complexType>
   <xs:complexType name="block.type" mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
         <xs:group ref="db:all.blocks"/>
      </xs:choice>
      <xs:attribute name="role"/>
      <xs:attributeGroup ref="db:common.attributes"/>
      <xs:attributeGroup ref="db:common.linking.attributes"/>
   </xs:complexType>
   <!-- ============================================================ --><xs:element name="title">
      <xs:complexType mixed="true">
         <xs:group ref="db:all.inlines" minOccurs="0" maxOccurs="unbounded"/>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="titleabbrev">
      <xs:complexType mixed="true">
         <xs:group ref="db:all.inlines" minOccurs="0"/>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="subtitle">
      <xs:complexType mixed="true">
         <xs:group ref="db:all.inlines" minOccurs="0"/>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:group name="_info.title.only">
      <xs:sequence>
         <xs:choice minOccurs="0" maxOccurs="2">
            <xs:element ref="db:title"/>
            <xs:element ref="db:titleabbrev"/>
         </xs:choice>
         <xs:element name="info" minOccurs="0">
            <xs:complexType>
               <xs:choice minOccurs="0" maxOccurs="unbounded">
                  <xs:choice>
                     <xs:element ref="db:title"/>
                     <xs:element ref="db:titleabbrev"/>
                  </xs:choice>
                  <xs:group ref="db:info.elements"/>
                  <xs:any namespace="##other" processContents="skip"/>
               </xs:choice>
               <xs:attribute name="role"/>
               <xs:attributeGroup ref="db:common.attributes"/>
            </xs:complexType>
         </xs:element>
      </xs:sequence>
   </xs:group>
   <!-- No way to enforce that title is required --><xs:group name="_info.title.onlyreq">
      <xs:sequence>
         <xs:choice minOccurs="0" maxOccurs="2">
            <xs:element ref="db:title"/>
            <xs:element ref="db:titleabbrev"/>
         </xs:choice>
         <xs:element name="info" minOccurs="0">
            <xs:complexType>
               <xs:choice minOccurs="0" maxOccurs="unbounded">
                  <xs:choice>
                     <xs:element ref="db:title"/>
                     <xs:element ref="db:titleabbrev"/>
                  </xs:choice>
                  <xs:group ref="db:info.elements"/>
                  <xs:any namespace="##other" processContents="skip"/>
               </xs:choice>
               <xs:attribute name="role"/>
               <xs:attributeGroup ref="db:common.attributes"/>
            </xs:complexType>
         </xs:element>
      </xs:sequence>
   </xs:group>
   <!-- No way to enforce that title is required --><xs:group name="_info.title.req">
      <xs:sequence>
         <xs:choice minOccurs="0" maxOccurs="3">
            <xs:element ref="db:title"/>
            <xs:element ref="db:titleabbrev"/>
            <xs:element ref="db:subtitle"/>
         </xs:choice>
         <xs:element name="info" minOccurs="0">
            <xs:complexType>
               <xs:choice minOccurs="0" maxOccurs="unbounded">
                  <xs:choice>
                     <xs:element ref="db:title"/>
                     <xs:element ref="db:titleabbrev"/>
                     <xs:element ref="db:subtitle"/>
                  </xs:choice>
                  <xs:group ref="db:info.elements"/>
                  <xs:any namespace="##other" processContents="skip"/>
               </xs:choice>
               <xs:attribute name="role"/>
               <xs:attributeGroup ref="db:common.attributes"/>
            </xs:complexType>
         </xs:element>
      </xs:sequence>
   </xs:group>
   <!-- No way to enforce that info must not contain a title --><xs:group name="_info.title.forbidden">
      <xs:sequence>
         <xs:element name="info" minOccurs="0">
            <xs:complexType>
               <xs:choice minOccurs="0" maxOccurs="unbounded">
                  <xs:group ref="db:info.elements"/>
                  <xs:any namespace="##other" processContents="skip"/>
               </xs:choice>
               <xs:attribute name="role"/>
               <xs:attributeGroup ref="db:common.attributes"/>
            </xs:complexType>
         </xs:element>
      </xs:sequence>
   </xs:group>
   <xs:group name="_info">
      <xs:sequence>
         <xs:choice minOccurs="0" maxOccurs="3">
            <xs:element ref="db:title"/>
            <xs:element ref="db:titleabbrev"/>
            <xs:element ref="db:subtitle"/>
         </xs:choice>
         <xs:element name="info" minOccurs="0">
            <xs:complexType>
               <xs:choice minOccurs="0" maxOccurs="unbounded">
                  <xs:element ref="db:title"/>
                  <xs:element ref="db:titleabbrev"/>
                  <xs:element ref="db:subtitle"/>
                  <xs:group ref="db:info.elements"/>
                  <xs:any namespace="##other" processContents="skip"/>
               </xs:choice>
               <xs:attribute name="role"/>
               <xs:attributeGroup ref="db:common.attributes"/>
            </xs:complexType>
         </xs:element>
      </xs:sequence>
   </xs:group>
   <xs:element name="subjectset">
      <xs:complexType>
         <xs:choice maxOccurs="unbounded">
            <xs:element ref="db:subject"/>
         </xs:choice>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attribute name="scheme" type="xs:NMTOKEN"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="subject">
      <xs:complexType>
         <xs:choice maxOccurs="unbounded">
            <xs:element ref="db:subjectterm"/>
         </xs:choice>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attribute name="weight"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="subjectterm">
      <xs:complexType mixed="true">
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="keywordset">
      <xs:complexType>
         <xs:choice maxOccurs="unbounded">
            <xs:element ref="db:keyword"/>
         </xs:choice>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="keyword">
      <xs:complexType mixed="true">
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:attributeGroup name="orient.attribute">
      <xs:attribute name="orient">
         <xs:simpleType>
            <xs:restriction base="xs:token">
               <xs:enumeration value="land"/>
               <xs:enumeration value="port"/>
            </xs:restriction>
         </xs:simpleType>
      </xs:attribute>
   </xs:attributeGroup>
   <xs:attributeGroup name="tabstyle.attribute">
      <xs:attribute name="tabstyle"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="floatstyle.attribute">
      <xs:attribute name="floatstyle"/>
   </xs:attributeGroup>
   <xs:simpleType name="zeroorone.type">
      <xs:restriction base="xs:token">
         <xs:enumeration value="0"/>
         <xs:enumeration value="1"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:attributeGroup name="pgwide.attribute">
      <xs:attribute name="pgwide" type="db:zeroorone.type"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="label.attribute">
      <xs:attribute name="label"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="performance.attribute">
      <xs:attribute name="performance">
         <xs:simpleType>
            <xs:restriction base="xs:token">
               <xs:enumeration value="optional"/>
               <xs:enumeration value="required"/>
            </xs:restriction>
         </xs:simpleType>
      </xs:attribute>
   </xs:attributeGroup>
   <xs:element name="procedure">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.only" minOccurs="0"/>
            <xs:group ref="db:all.blocks" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element ref="db:step" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="step">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.only" minOccurs="0"/>
            <xs:group ref="db:all.blocks" minOccurs="0" maxOccurs="unbounded"/>
            <xs:sequence minOccurs="0">
               <xs:choice>
                  <xs:element ref="db:substeps"/>
                  <xs:element ref="db:stepalternatives"/>
               </xs:choice>
               <xs:group ref="db:all.blocks" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attributeGroup ref="db:performance.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="stepalternatives">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.forbidden" minOccurs="0"/>
            <xs:element ref="db:step" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attributeGroup ref="db:performance.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="substeps">
      <xs:complexType>
         <xs:sequence>
            <xs:element ref="db:step" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attributeGroup ref="db:performance.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:complexType name="block.container">
      <xs:sequence>
         <xs:group ref="db:_info.title.only" minOccurs="0"/>
         <xs:group ref="db:all.blocks" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="role"/>
      <xs:attributeGroup ref="db:common.attributes"/>
      <xs:attributeGroup ref="db:common.linking.attributes"/>
   </xs:complexType>
   <xs:complexType name="para.container">
      <xs:sequence>
         <xs:group ref="db:_info.title.only" minOccurs="0"/>
         <xs:group ref="db:para.blocks" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="role"/>
      <xs:attributeGroup ref="db:common.attributes"/>
      <xs:attributeGroup ref="db:common.linking.attributes"/>
   </xs:complexType>
   <xs:element name="sidebar" type="db:block.container"/>
   <xs:element name="abstract" type="db:para.container"/>
   <xs:element name="personblurb" type="db:para.container"/>
   <xs:element name="blockquote">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.only" minOccurs="0"/>
            <xs:element ref="db:attribution" minOccurs="0"/>
            <xs:group ref="db:all.blocks" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="attribution">
      <xs:complexType mixed="true">
         <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element ref="db:person"/>
            <xs:element ref="db:personname"/>
            <xs:element ref="db:citetitle"/>
            <xs:element ref="db:citation"/>
         </xs:choice>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="bridgehead">
      <xs:complexType mixed="true">
         <xs:sequence>
            <xs:group ref="db:all.inlines" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attribute name="renderas">
            <xs:simpleType>
               <xs:restriction base="xs:token">
                  <xs:enumeration value="sect1"/>
                  <xs:enumeration value="sect2"/>
                  <xs:enumeration value="sect3"/>
                  <xs:enumeration value="sect4"/>
                  <xs:enumeration value="sect5"/>
                  <xs:enumeration value="other"/>
               </xs:restriction>
            </xs:simpleType>
         </xs:attribute>
         <xs:attribute name="otherrenderas" type="xs:NMTOKEN"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="remark">
      <xs:complexType mixed="true">
         <xs:group ref="db:all.inlines" minOccurs="0" maxOccurs="unbounded"/>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="epigraph">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.forbidden" minOccurs="0"/>
            <xs:element ref="db:attribution"/>
            <xs:choice maxOccurs="unbounded">
               <xs:group ref="db:para.blocks"/>
               <xs:element ref="db:literallayout"/>
            </xs:choice>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="footnote">
      <xs:complexType>
         <xs:group ref="db:all.blocks" maxOccurs="unbounded"/>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attributeGroup ref="db:label.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="formalpara">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.onlyreq"/>
            <xs:group ref="db:indexing.inlines" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element ref="db:para"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="para">
      <xs:complexType mixed="true">
         <xs:sequence>
            <xs:group ref="db:_info.title.forbidden" minOccurs="0"/>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
               <xs:group ref="db:all.inlines"/>
               <xs:group ref="db:nopara.blocks"/>
            </xs:choice>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="simpara">
      <xs:complexType mixed="true">
         <xs:sequence>
            <xs:group ref="db:_info.title.forbidden" minOccurs="0"/>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
               <xs:group ref="db:all.inlines"/>
            </xs:choice>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:attributeGroup name="spacing.attribute">
      <xs:attribute name="spacing">
         <xs:simpleType>
            <xs:restriction base="xs:token">
               <xs:enumeration value="compact"/>
               <xs:enumeration value="normal"/>
            </xs:restriction>
         </xs:simpleType>
      </xs:attribute>
   </xs:attributeGroup>
   <xs:element name="itemizedlist">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.only" minOccurs="0"/>
            <xs:group ref="db:all.blocks" minOccurs="0"/>
            <xs:element ref="db:listitem" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attribute name="mark" type="xs:NMTOKEN"/>
         <xs:attributeGroup ref="db:spacing.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:attributeGroup name="continuation.attribute">
      <xs:attribute name="continuation">
         <xs:simpleType>
            <xs:restriction base="xs:token">
               <xs:enumeration value="continues"/>
               <xs:enumeration value="restarts"/>
            </xs:restriction>
         </xs:simpleType>
      </xs:attribute>
   </xs:attributeGroup>
   <xs:attributeGroup name="startingnumber.attribute">
      <xs:attribute name="startingnumber" type="xs:integer"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="inheritnum.attribute">
      <xs:attribute name="inheritnum">
         <xs:simpleType>
            <xs:restriction base="xs:token">
               <xs:enumeration value="ignore"/>
               <xs:enumeration value="inherit"/>
            </xs:restriction>
         </xs:simpleType>
      </xs:attribute>
   </xs:attributeGroup>
   <xs:attributeGroup name="numeration.attribute">
      <xs:attribute name="numeration">
         <xs:simpleType>
            <xs:restriction base="xs:token">
               <xs:enumeration value="arabic"/>
               <xs:enumeration value="upperalpha"/>
               <xs:enumeration value="loweralpha"/>
               <xs:enumeration value="upperroman"/>
               <xs:enumeration value="lowerroman"/>
            </xs:restriction>
         </xs:simpleType>
      </xs:attribute>
   </xs:attributeGroup>
   <xs:element name="orderedlist">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.only" minOccurs="0"/>
            <xs:group ref="db:all.blocks" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element ref="db:listitem" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attributeGroup ref="db:spacing.attribute"/>
         <xs:attributeGroup ref="db:continuation.attribute"/>
         <xs:attributeGroup ref="db:startingnumber.attribute"/>
         <xs:attributeGroup ref="db:inheritnum.attribute"/>
         <xs:attributeGroup ref="db:numeration.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="listitem">
      <xs:complexType>
         <xs:group ref="db:all.blocks" maxOccurs="unbounded"/>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attribute name="override" type="xs:NMTOKEN"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="segmentedlist">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.only" minOccurs="0"/>
            <xs:element ref="db:segtitle" maxOccurs="unbounded"/>
            <xs:element ref="db:seglistitem" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="segtitle">
      <xs:complexType mixed="true">
         <xs:group ref="db:all.inlines" minOccurs="0" maxOccurs="unbounded"/>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="seglistitem">
      <xs:complexType>
         <xs:sequence>
            <xs:element ref="db:seg" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="seg">
      <xs:complexType mixed="true">
         <xs:group ref="db:all.inlines" minOccurs="0" maxOccurs="unbounded"/>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="simplelist">
      <xs:complexType>
         <xs:sequence>
            <xs:element ref="db:member" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attribute name="type">
            <xs:simpleType>
               <xs:restriction base="xs:token">
                  <xs:enumeration value="horiz"/>
                  <xs:enumeration value="vert"/>
                  <xs:enumeration value="inline"/>
               </xs:restriction>
            </xs:simpleType>
         </xs:attribute>
         <xs:attribute name="columns" type="xs:integer"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="member">
      <xs:complexType mixed="true">
         <xs:group ref="db:all.inlines" minOccurs="0" maxOccurs="unbounded"/>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="variablelist">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.only" minOccurs="0"/>
            <xs:group ref="db:all.blocks" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element ref="db:varlistentry" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attributeGroup ref="db:spacing.attribute"/>
         <xs:attribute name="termlength"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="varlistentry">
      <xs:complexType>
         <xs:sequence>
            <xs:element ref="db:term" maxOccurs="unbounded"/>
            <xs:element ref="db:listitem"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="term">
      <xs:complexType mixed="true">
         <xs:group ref="db:all.inlines" minOccurs="0" maxOccurs="unbounded"/>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="example">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.onlyreq"/>
            <xs:group ref="db:all.blocks" maxOccurs="unbounded"/>
            <xs:element ref="db:caption" minOccurs="0"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attributeGroup ref="db:label.attribute"/>
         <xs:attributeGroup ref="db:floatstyle.attribute"/>
         <xs:attributeGroup ref="db:pgwide.attribute"/>
         <xs:attribute name="width" type="xs:nonNegativeInteger"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="informalexample">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.forbidden"/>
            <xs:group ref="db:all.blocks"/>
            <xs:element ref="db:caption" minOccurs="0"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attributeGroup ref="db:floatstyle.attribute"/>
         <xs:attributeGroup ref="db:pgwide.attribute"/>
         <xs:attribute name="width" type="xs:nonNegativeInteger"/>
      </xs:complexType>
   </xs:element>
   <xs:group name="verbatim.inlines">
      <xs:choice>
         <xs:group ref="db:all.inlines"/>
         <xs:element ref="db:lineannotation"/>
         <xs:element ref="db:co"/>
      </xs:choice>
   </xs:group>
   <xs:group name="verbatim.contentmodel">
      <xs:sequence>
         <xs:group ref="db:_info.title.forbidden"/>
         <xs:choice>
            <xs:element ref="db:textobject"/>
            <xs:group ref="db:verbatim.inlines" minOccurs="0" maxOccurs="unbounded"/>
         </xs:choice>
      </xs:sequence>
   </xs:group>
   <xs:attributeGroup name="verbatim.continuation.attribute">
      <xs:attribute name="continuation">
         <xs:simpleType>
            <xs:restriction base="xs:token">
               <xs:enumeration value="continues"/>
               <xs:enumeration value="restart"/>
            </xs:restriction>
         </xs:simpleType>
      </xs:attribute>
   </xs:attributeGroup>
   <xs:attributeGroup name="verbatim.linenumbering.attribute">
      <xs:attribute name="linenumbering">
         <xs:simpleType>
            <xs:restriction base="xs:token">
               <xs:enumeration value="numbered"/>
               <xs:enumeration value="unnumbered"/>
            </xs:restriction>
         </xs:simpleType>
      </xs:attribute>
   </xs:attributeGroup>
   <xs:attributeGroup name="verbatim.startinglinenumber.attribute">
      <xs:attribute name="startinglinenumber" type="xs:integer"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="verbatim.language.attribute">
      <xs:attribute name="language"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="verbatim.attributes">
      <xs:attributeGroup ref="db:verbatim.continuation.attribute"/>
      <xs:attributeGroup ref="db:verbatim.linenumbering.attribute"/>
      <xs:attributeGroup ref="db:verbatim.startinglinenumber.attribute"/>
      <xs:attributeGroup ref="db:verbatim.language.attribute"/>
      <xs:attribute ref="xml:space"/>
   </xs:attributeGroup>
   <xs:element name="literallayout">
      <xs:complexType mixed="true">
         <xs:group ref="db:verbatim.contentmodel"/>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attributeGroup ref="db:verbatim.attributes"/>
         <xs:attribute name="class">
            <xs:simpleType>
               <xs:restriction base="xs:token">
                  <xs:enumeration value="monospaced"/>
                  <xs:enumeration value="normal"/>
               </xs:restriction>
            </xs:simpleType>
         </xs:attribute>
      </xs:complexType>
   </xs:element>
   <xs:complexType name="verbatim.monospaced" mixed="true">
      <xs:group ref="db:verbatim.contentmodel"/>
      <xs:attribute name="role"/>
      <xs:attributeGroup ref="db:common.attributes"/>
      <xs:attributeGroup ref="db:common.linking.attributes"/>
      <xs:attributeGroup ref="db:verbatim.attributes"/>
      <xs:attribute name="width" type="xs:nonNegativeInteger"/>
   </xs:complexType>
   <xs:element name="screen">
      <xs:complexType mixed="true">
         <xs:complexContent>
            <xs:extension base="db:verbatim.monospaced"/>
         </xs:complexContent>
      </xs:complexType>
   </xs:element>
   <xs:element name="programlisting">
      <xs:complexType mixed="true">
         <xs:complexContent>
            <xs:extension base="db:verbatim.monospaced"/>
         </xs:complexContent>
      </xs:complexType>
   </xs:element>
   <xs:element name="lineannotation">
      <xs:complexType mixed="true">
         <xs:sequence>
            <xs:group ref="db:ubiq.inlines" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:attributeGroup name="linkends.attribute">
      <xs:attribute name="linkends" type="xs:IDREFS"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="co.linkends.attribute">
      <xs:attributeGroup ref="db:linkends.attribute"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="co.label.attribute">
      <xs:attributeGroup ref="db:label.attribute"/>
   </xs:attributeGroup>
   <xs:element name="co">
      <xs:complexType>
         <xs:complexContent>
            <xs:restriction base="xs:anyType">
               <xs:attribute name="role"/>
               <xs:attributeGroup ref="db:common.idreq.attributes"/>
               <xs:attributeGroup ref="db:co.linkends.attribute"/>
               <xs:attributeGroup ref="db:co.label.attribute"/>
            </xs:restriction>
         </xs:complexContent>
      </xs:complexType>
   </xs:element>
   <xs:attributeGroup name="coref.label.attribute">
      <xs:attributeGroup ref="db:label.attribute"/>
   </xs:attributeGroup>
   <xs:element name="coref">
      <xs:complexType>
         <xs:complexContent>
            <xs:restriction base="xs:anyType">
               <xs:attribute name="role"/>
               <xs:attributeGroup ref="db:common.attributes"/>
               <xs:attribute name="linkend" type="xs:IDREF"/>
               <xs:attributeGroup ref="db:coref.label.attribute"/>
            </xs:restriction>
         </xs:complexContent>
      </xs:complexType>
   </xs:element>
   <xs:element name="screenshot">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info" minOccurs="0"/>
            <xs:element ref="db:mediaobject"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="figure">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.onlyreq"/>
            <xs:group ref="db:all.blocks" maxOccurs="unbounded"/>
            <xs:element ref="db:caption" minOccurs="0"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attributeGroup ref="db:label.attribute"/>
         <xs:attributeGroup ref="db:floatstyle.attribute"/>
         <xs:attributeGroup ref="db:pgwide.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="informalfigure">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.forbidden" minOccurs="0"/>
            <xs:group ref="db:all.blocks" maxOccurs="unbounded"/>
            <xs:element ref="db:caption" minOccurs="0"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attributeGroup ref="db:label.attribute"/>
         <xs:attributeGroup ref="db:floatstyle.attribute"/>
         <xs:attributeGroup ref="db:pgwide.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:group name="mediaobject.content">
      <xs:choice>
         <xs:element ref="db:videoobject"/>
         <xs:element ref="db:audioobject"/>
         <xs:element ref="db:imageobject"/>
         <xs:element ref="db:textobject"/>
         <xs:element ref="db:imageobjectco"/>
      </xs:choice>
   </xs:group>
   <xs:element name="mediaobject">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.forbidden" minOccurs="0"/>
            <xs:element ref="db:alt" minOccurs="0"/>
            <xs:group ref="db:mediaobject.content" maxOccurs="unbounded"/>
            <xs:element ref="db:caption" minOccurs="0"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="inlinemediaobject">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.forbidden" minOccurs="0"/>
            <xs:element ref="db:alt" minOccurs="0"/>
            <xs:group ref="db:mediaobject.content" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="videoobject">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.forbidden" minOccurs="0"/>
            <xs:element ref="db:videodata"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="audioobject">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.forbidden" minOccurs="0"/>
            <xs:element ref="db:audiodata"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="imageobject">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.forbidden" minOccurs="0"/>
            <xs:choice>
               <xs:element ref="db:imagedata"/>
               <xs:any namespace="http://www.w3.org/1998/Math/MathML" processContents="lax"/>
               <xs:any namespace="http://www.w3.org/2000/svg" processContents="lax"/>
            </xs:choice>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="textobject">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.forbidden" minOccurs="0"/>
            <xs:choice>
               <xs:element ref="db:phrase"/>
               <xs:element ref="db:textdata"/>
               <xs:group ref="db:all.blocks" maxOccurs="unbounded"/>
            </xs:choice>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:attributeGroup name="videodata.align.attribute">
      <xs:attributeGroup ref="db:align.attribute"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="videodata.valign.attribute">
      <xs:attributeGroup ref="db:valign.attribute"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="width.attribute">
      <xs:attribute name="width"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="videodata.width.attribute">
      <xs:attributeGroup ref="db:width.attribute"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="depth.attribute">
      <xs:attribute name="depth"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="videodata.depth.attribute">
      <xs:attributeGroup ref="db:depth.attribute"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="contentwidth.attribute">
      <xs:attribute name="contentwidth"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="videodata.contentwidth.attribute">
      <xs:attributeGroup ref="db:contentwidth.attribute"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="contentdepth.attribute">
      <xs:attribute name="contentdepth"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="videodata.contentdepth.attribute">
      <xs:attributeGroup ref="db:contentdepth.attribute"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="scalefit.attribute">
      <xs:attribute name="scalefit" type="db:zeroorone.type"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="videodata.scalefit.attribute">
      <xs:attributeGroup ref="db:scalefit.attribute"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="scale.attribute">
      <xs:attribute name="scale" type="xs:positiveInteger"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="videodata.scale.attribute">
      <xs:attributeGroup ref="db:scale.attribute"/>
   </xs:attributeGroup>
   <xs:element name="videodata">
      <xs:complexType>
         <xs:group ref="db:_info.title.forbidden" minOccurs="0"/>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.data.attributes"/>
         <xs:attributeGroup ref="db:videodata.align.attribute"/>
         <xs:attributeGroup ref="db:videodata.valign.attribute"/>
         <xs:attributeGroup ref="db:videodata.width.attribute"/>
         <xs:attributeGroup ref="db:videodata.contentwidth.attribute"/>
         <xs:attributeGroup ref="db:videodata.scalefit.attribute"/>
         <xs:attributeGroup ref="db:videodata.scale.attribute"/>
         <xs:attributeGroup ref="db:videodata.depth.attribute"/>
         <xs:attributeGroup ref="db:videodata.contentdepth.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="audiodata">
      <xs:complexType>
         <xs:group ref="db:_info.title.forbidden" minOccurs="0"/>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.data.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:attributeGroup name="imagedata.align.attribute">
      <xs:attributeGroup ref="db:align.attribute"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="imagedata.valign.attribute">
      <xs:attributeGroup ref="db:valign.attribute"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="imagedata.width.attribute">
      <xs:attributeGroup ref="db:width.attribute"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="imagedata.depth.attribute">
      <xs:attributeGroup ref="db:depth.attribute"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="imagedata.contentwidth.attribute">
      <xs:attributeGroup ref="db:contentwidth.attribute"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="imagedata.contentdepth.attribute">
      <xs:attributeGroup ref="db:contentdepth.attribute"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="imagedata.scalefit.attribute">
      <xs:attributeGroup ref="db:scalefit.attribute"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="imagedata.scale.attribute">
      <xs:attributeGroup ref="db:scale.attribute"/>
   </xs:attributeGroup>
   <xs:element name="imagedata">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.forbidden" minOccurs="0"/>
            <xs:any namespace="http://www.w3.org/2000/svg" processContents="lax" minOccurs="0"
                    maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.data.attributes"/>
         <xs:attributeGroup ref="db:imagedata.align.attribute"/>
         <xs:attributeGroup ref="db:imagedata.valign.attribute"/>
         <xs:attributeGroup ref="db:imagedata.width.attribute"/>
         <xs:attributeGroup ref="db:imagedata.contentwidth.attribute"/>
         <xs:attributeGroup ref="db:imagedata.scalefit.attribute"/>
         <xs:attributeGroup ref="db:imagedata.scale.attribute"/>
         <xs:attributeGroup ref="db:imagedata.depth.attribute"/>
         <xs:attributeGroup ref="db:imagedata.contentdepth.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="textdata">
      <xs:complexType>
         <xs:group ref="db:_info.title.forbidden" minOccurs="0"/>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.data.attributes"/>
         <xs:attribute name="encoding"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="caption">
      <xs:complexType mixed="true">
         <xs:sequence>
            <xs:group ref="db:_info.title.forbidden" minOccurs="0"/>
            <xs:choice>
               <xs:group ref="db:all.inlines" minOccurs="0" maxOccurs="unbounded"/>
               <xs:group ref="db:all-i.blocks" minOccurs="0" maxOccurs="unbounded"/>
            </xs:choice>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:html.attrs"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:attributeGroup name="area.units.attribute">
      <xs:attribute name="units">
         <xs:simpleType>
            <xs:restriction base="xs:token">
               <xs:enumeration value="calspair"/>
               <xs:enumeration value="linecolumn"/>
               <xs:enumeration value="linecolumnpair"/>
               <xs:enumeration value="linerange"/>
               <xs:enumeration value="other"/>
            </xs:restriction>
         </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="otherunits" type="xs:NMTOKEN"/>
   </xs:attributeGroup>
   <xs:element name="calloutlist">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.only" minOccurs="0"/>
            <xs:group ref="db:all.blocks" minOccurs="0"/>
            <xs:element ref="db:callout" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="callout">
      <xs:complexType>
         <xs:group ref="db:all.blocks" maxOccurs="unbounded"/>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attribute name="arearefs" type="xs:IDREFS"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="programlistingco">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.forbidden" minOccurs="0"/>
            <xs:element ref="db:areaspec"/>
            <xs:element ref="db:programlisting"/>
            <xs:element ref="db:calloutlist" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="areaspec">
      <xs:complexType>
         <xs:choice maxOccurs="unbounded">
            <xs:element ref="db:area"/>
            <xs:element ref="db:areaset"/>
         </xs:choice>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attributeGroup ref="db:area.units.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="area">
      <xs:complexType>
         <xs:sequence>
            <xs:element ref="db:alt" minOccurs="0"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.idreq.attributes"/>
         <xs:attributeGroup ref="db:area.units.attribute"/>
         <xs:attribute name="linkends" type="xs:IDREFS"/>
         <xs:attribute ref="xlink:href"/>
         <xs:attribute name="label"/>
         <xs:attribute name="coords"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="areaset">
      <xs:complexType>
         <xs:sequence><!-- only different from global area in that xml:id is optional --><xs:element name="area" maxOccurs="unbounded">
               <xs:complexType>
                  <xs:sequence>
                     <xs:element ref="db:alt" minOccurs="0"/>
                  </xs:sequence>
                  <xs:attribute name="role"/>
                  <xs:attributeGroup ref="db:common.attributes"/>
                  <xs:attributeGroup ref="db:area.units.attribute"/>
                  <xs:attribute name="linkends" type="xs:IDREFS"/>
                  <xs:attribute name="href" type="xs:anyURI"/>
                  <xs:attribute name="label"/>
                  <xs:attribute name="coords"/>
               </xs:complexType>
            </xs:element>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.idreq.attributes"/>
         <xs:attributeGroup ref="db:area.units.attribute"/>
         <xs:attribute name="linkends" type="xs:IDREFS"/>
         <xs:attribute ref="xlink:href"/>
         <xs:attribute name="label"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="screenco">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.forbidden" minOccurs="0"/>
            <xs:element ref="db:areaspec"/>
            <xs:element ref="db:screen"/>
            <xs:element ref="db:calloutlist" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="imageobjectco">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.forbidden" minOccurs="0"/>
            <xs:element ref="db:areaspec"/>
            <xs:element ref="db:imageobject" maxOccurs="unbounded"/>
            <xs:element ref="db:calloutlist" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="address">
      <xs:complexType mixed="true">
         <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:group ref="db:ubiq.inlines"/>
            <xs:element ref="db:personname"/>
            <xs:element ref="db:pob"/>
            <xs:element ref="db:street"/>
            <xs:element ref="db:city"/>
            <xs:element ref="db:state"/>
            <xs:element ref="db:postcode"/>
            <xs:element ref="db:country"/>
            <xs:element ref="db:phone"/>
            <xs:element ref="db:fax"/>
            <xs:element ref="db:email"/>
            <xs:element ref="db:uri"/>
            <xs:element ref="db:otheraddr"/>
         </xs:choice>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attributeGroup ref="db:verbatim.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:complexType name="limited.text" mixed="true">
      <xs:sequence>
         <xs:group ref="db:_text"/>
      </xs:sequence>
      <xs:attribute name="role"/>
      <xs:attributeGroup ref="db:common.attributes"/>
      <xs:attributeGroup ref="db:common.linking.attributes"/>
   </xs:complexType>
   <xs:element name="street" type="db:limited.text"/>
   <xs:element name="pob" type="db:limited.text"/>
   <xs:element name="postcode" type="db:limited.text"/>
   <xs:element name="city" type="db:limited.text"/>
   <xs:element name="state" type="db:limited.text"/>
   <xs:element name="country" type="db:limited.text"/>
   <xs:element name="phone" type="db:limited.text"/>
   <xs:element name="fax" type="db:limited.text"/>
   <xs:element name="otheraddr" type="db:limited.text"/>
   <xs:element name="affiliation">
      <xs:complexType>
         <xs:sequence>
            <xs:element ref="db:shortaffil" minOccurs="0"/>
            <xs:element ref="db:jobtitle" minOccurs="0" maxOccurs="unbounded"/>
            <xs:choice>
               <xs:element ref="db:org" minOccurs="0"/>
               <xs:sequence>
                  <xs:element ref="db:orgname" minOccurs="0"/>
                  <xs:element ref="db:orgdiv" minOccurs="0" maxOccurs="unbounded"/>
                  <xs:element ref="db:address" minOccurs="0" maxOccurs="unbounded"/>
               </xs:sequence>
            </xs:choice>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="shortaffil" type="db:limited.text"/>
   <xs:element name="jobtitle" type="db:limited.text"/>
   <xs:element name="orgname">
      <xs:complexType mixed="true">
         <xs:complexContent>
            <xs:extension base="db:limited.text">
               <xs:attribute name="class">
                  <xs:simpleType>
                     <xs:restriction base="xs:token">
                        <xs:enumeration value="consortium"/>
                        <xs:enumeration value="corporation"/>
                        <xs:enumeration value="informal"/>
                        <xs:enumeration value="nonprofit"/>
                        <xs:enumeration value="other"/>
                     </xs:restriction>
                  </xs:simpleType>
               </xs:attribute>
               <xs:attribute name="otherclass" type="xs:NMTOKEN"/>
            </xs:extension>
         </xs:complexContent>
      </xs:complexType>
   </xs:element>
   <xs:element name="orgdiv">
      <xs:complexType mixed="true">
         <xs:sequence>
            <xs:group ref="db:all.inlines" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="artpagenums" type="db:limited.text"/>
   <xs:element name="personname">
      <xs:complexType mixed="true">
         <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:group ref="db:_text"/>
            <xs:element ref="db:honorific"/>
            <xs:element ref="db:firstname"/>
            <xs:element ref="db:surname"/>
            <xs:element ref="db:lineage"/>
            <xs:element ref="db:othername"/>
         </xs:choice>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:group name="person.author.contentmodel">
      <xs:sequence>
         <xs:element ref="db:personname"/>
         <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element ref="db:personblurb"/>
            <xs:element ref="db:affiliation"/>
            <xs:element ref="db:email"/>
            <xs:element ref="db:uri"/>
            <xs:element ref="db:address"/>
            <xs:element ref="db:contrib"/>
         </xs:choice>
      </xs:sequence>
   </xs:group>
   <xs:group name="org.author.contentmodel">
      <xs:sequence>
         <xs:element ref="db:orgname"/>
         <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element ref="db:orgdiv"/>
            <xs:element ref="db:affiliation"/>
            <xs:element ref="db:email"/>
            <xs:element ref="db:uri"/>
            <xs:element ref="db:address"/>
            <xs:element ref="db:contrib"/>
         </xs:choice>
      </xs:sequence>
   </xs:group>
   <xs:group name="credit.contentmodel">
      <xs:choice>
         <xs:group ref="db:person.author.contentmodel"/>
         <xs:group ref="db:org.author.contentmodel"/>
      </xs:choice>
   </xs:group>
   <xs:element name="author">
      <xs:complexType>
         <xs:group ref="db:credit.contentmodel"/>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="authorgroup">
      <xs:complexType>
         <xs:choice maxOccurs="unbounded">
            <xs:element ref="db:author"/>
            <xs:element ref="db:editor"/>
            <xs:element ref="db:othercredit"/>
         </xs:choice>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="collab">
      <xs:complexType>
         <xs:sequence>
            <xs:choice maxOccurs="unbounded">
               <xs:element ref="db:person"/>
               <xs:element ref="db:personname"/>
               <xs:element ref="db:org"/>
               <xs:element ref="db:orgname"/>
            </xs:choice>
            <xs:element ref="db:affiliation" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="authorinitials" type="db:limited.text"/>
   <xs:element name="person">
      <xs:complexType>
         <xs:sequence>
            <xs:element ref="db:personname"/>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
               <xs:element ref="db:address"/>
               <xs:element ref="db:affiliation"/>
               <xs:element ref="db:email"/>
               <xs:element ref="db:uri"/>
               <xs:element ref="db:personblurb"/>
            </xs:choice>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="org">
      <xs:complexType>
         <xs:sequence>
            <xs:element ref="db:orgname"/>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
               <xs:element ref="db:address"/>
               <xs:element ref="db:affiliation"/>
               <xs:element ref="db:email"/>
               <xs:element ref="db:uri"/>
               <xs:element ref="db:orgdiv"/>
            </xs:choice>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="confgroup">
      <xs:complexType>
         <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element ref="db:confdates"/>
            <xs:element ref="db:conftitle"/>
            <xs:element ref="db:confnum"/>
            <xs:element ref="db:confsponsor"/>
            <xs:element ref="db:address"/>
         </xs:choice>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="confdates" type="db:limited.text"/>
   <xs:element name="conftitle" type="db:limited.text"/>
   <xs:element name="confnum" type="db:limited.text"/>
   <xs:element name="confsponsor" type="db:limited.text"/>
   <xs:element name="contractnum" type="db:limited.text"/>
   <xs:element name="contractsponsor" type="db:limited.text"/>
   <xs:element name="copyright">
      <xs:complexType>
         <xs:sequence>
            <xs:element ref="db:year" maxOccurs="unbounded"/>
            <xs:element ref="db:holder" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="year" type="db:limited.text"/>
   <xs:element name="holder" type="db:limited.text"/>
   <xs:group name="cover.contentmodel">
      <xs:choice>
         <xs:group ref="db:para.blocks"/>
         <xs:group ref="db:list.blocks"/>
         <xs:group ref="db:informal.blocks"/>
         <xs:group ref="db:publishing.blocks"/>
         <xs:group ref="db:graphic.blocks"/>
         <xs:group ref="db:technical.blocks"/>
         <xs:group ref="db:verbatim.blocks"/>
         <xs:element ref="db:bridgehead"/>
         <xs:element ref="db:remark"/>
         <xs:element ref="db:revhistory"/>
         <xs:group ref="db:synopsis.blocks"/>
      </xs:choice>
   </xs:group>
   <xs:element name="cover">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:cover.contentmodel" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="date">
      <xs:complexType mixed="true">
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="edition" type="db:limited.text"/>
   <xs:element name="editor">
      <xs:complexType>
         <xs:group ref="db:credit.contentmodel"/>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:attributeGroup name="biblio.class.attribute">
      <xs:attribute name="class">
         <xs:simpleType>
            <xs:restriction base="xs:token">
               <xs:enumeration value="doi"/>
               <xs:enumeration value="isbn"/>
               <xs:enumeration value="isrn"/>
               <xs:enumeration value="issn"/>
               <xs:enumeration value="libraryofcongress"/>
               <xs:enumeration value="pubsnumber"/>
               <xs:enumeration value="uri"/>
               <xs:enumeration value="other"/>
            </xs:restriction>
         </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="otherclass" type="xs:NMTOKEN"/>
   </xs:attributeGroup>
   <xs:element name="biblioid">
      <xs:complexType mixed="true">
         <xs:complexContent>
            <xs:extension base="db:limited.text">
               <xs:attributeGroup ref="db:biblio.class.attribute"/>
            </xs:extension>
         </xs:complexContent>
      </xs:complexType>
   </xs:element>
   <xs:element name="citebiblioid">
      <xs:complexType mixed="true">
         <xs:complexContent>
            <xs:extension base="db:limited.text">
               <xs:attributeGroup ref="db:biblio.class.attribute"/>
            </xs:extension>
         </xs:complexContent>
      </xs:complexType>
   </xs:element>
   <xs:element name="bibliosource">
      <xs:complexType mixed="true">
         <xs:complexContent>
            <xs:extension base="db:limited.text">
               <xs:attributeGroup ref="db:biblio.class.attribute"/>
            </xs:extension>
         </xs:complexContent>
      </xs:complexType>
   </xs:element>
   <xs:element name="bibliorelation">
      <xs:complexType mixed="true">
         <xs:complexContent>
            <xs:extension base="db:limited.text">
               <xs:attributeGroup ref="db:biblio.class.attribute"/>
               <xs:attribute name="type">
                  <xs:simpleType>
                     <xs:restriction base="xs:token">
                        <xs:enumeration value="hasformat"/>
                        <xs:enumeration value="haspart"/>
                        <xs:enumeration value="hasversion"/>
                        <xs:enumeration value="isformatof"/>
                        <xs:enumeration value="ispartof"/>
                        <xs:enumeration value="isreferencedby"/>
                        <xs:enumeration value="isreplacedby"/>
                        <xs:enumeration value="isrequiredby"/>
                        <xs:enumeration value="isversionof"/>
                        <xs:enumeration value="references"/>
                        <xs:enumeration value="replaces"/>
                        <xs:enumeration value="requires"/>
                        <xs:enumeration value="other"/>
                     </xs:restriction>
                  </xs:simpleType>
               </xs:attribute>
               <xs:attribute name="othertype" type="xs:NMTOKEN"/>
            </xs:extension>
         </xs:complexContent>
      </xs:complexType>
   </xs:element>
   <xs:attributeGroup name="bibliocoverage.spatial.attribute">
      <xs:attribute name="spatial">
         <xs:simpleType>
            <xs:restriction base="xs:token">
               <xs:enumeration value="dcmipoint"/>
               <xs:enumeration value="iso3166"/>
               <xs:enumeration value="dcmibox"/>
               <xs:enumeration value="tgn"/>
               <xs:enumeration value="other"/>
            </xs:restriction>
         </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="otherspatial" type="xs:NMTOKEN"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="bibliocoverage.temporal.attribute">
      <xs:attribute name="temporal">
         <xs:simpleType>
            <xs:restriction base="xs:token">
               <xs:enumeration value="dcmiperiod"/>
               <xs:enumeration value="w3c-dtf"/>
               <xs:enumeration value="other"/>
            </xs:restriction>
         </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="othertemporal" type="xs:NMTOKEN"/>
   </xs:attributeGroup>
   <xs:element name="bibliocoverage">
      <xs:complexType mixed="true">
         <xs:complexContent>
            <xs:extension base="db:limited.text">
               <xs:attributeGroup ref="db:bibliocoverage.spatial.attribute"/>
               <xs:attributeGroup ref="db:bibliocoverage.temporal.attribute"/>
            </xs:extension>
         </xs:complexContent>
      </xs:complexType>
   </xs:element>
   <xs:element name="legalnotice" type="db:block.container"/>
   <xs:attributeGroup name="othercredit.class.attribute">
      <xs:attribute name="class">
         <xs:simpleType>
            <xs:restriction base="xs:token">
               <xs:enumeration value="copyeditor"/>
               <xs:enumeration value="graphicdesigner"/>
               <xs:enumeration value="productioneditor"/>
               <xs:enumeration value="technicaleditor"/>
               <xs:enumeration value="translator"/>
               <xs:enumeration value="other"/>
            </xs:restriction>
         </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="otherclass" type="xs:NMTOKEN"/>
   </xs:attributeGroup>
   <xs:element name="othercredit">
      <xs:complexType>
         <xs:group ref="db:credit.contentmodel"/>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attributeGroup ref="db:othercredit.class.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="pagenums" type="db:limited.text"/>
   <xs:element name="contrib" type="db:limited.text"/>
   <xs:element name="honorific" type="db:limited.text"/>
   <xs:element name="firstname" type="db:limited.text"/>
   <xs:element name="surname" type="db:limited.text"/>
   <xs:element name="lineage" type="db:limited.text"/>
   <xs:element name="othername" type="db:limited.text"/>
   <xs:element name="printhistory">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:para.blocks" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="email" type="db:limited.text"/>
   <xs:element name="uri">
      <xs:complexType mixed="true">
         <xs:complexContent>
            <xs:extension base="db:limited.text">
               <xs:attribute name="type"/>
            </xs:extension>
         </xs:complexContent>
      </xs:complexType>
   </xs:element>
   <xs:element name="pubdate">
      <xs:complexType mixed="true">
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="publisher">
      <xs:complexType>
         <xs:sequence>
            <xs:element ref="db:publishername"/>
            <xs:element ref="db:address" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="publishername" type="db:limited.text"/>
   <xs:element name="releaseinfo" type="db:limited.text"/>
   <xs:element name="revhistory">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.only" minOccurs="0"/>
            <xs:element ref="db:revision" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="revision">
      <xs:complexType>
         <xs:sequence>
            <xs:element ref="db:revnumber" minOccurs="0"/>
            <xs:element ref="db:date"/>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
               <xs:element ref="db:authorinitials"/>
               <xs:element ref="db:author"/>
            </xs:choice>
            <xs:choice minOccurs="0">
               <xs:element ref="db:revremark"/>
               <xs:element ref="db:revdescription"/>
            </xs:choice>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="revnumber" type="db:limited.text"/>
   <xs:element name="revremark" type="db:limited.text"/>
   <xs:element name="revdescription" type="db:block.type"/>
   <xs:element name="seriesvolnums" type="db:limited.text"/>
   <xs:element name="volumenum" type="db:limited.text"/>
   <xs:element name="issuenum" type="db:limited.text"/>
   <xs:element name="package" type="db:limited.text"/>
   <xs:element name="parameter">
      <xs:complexType mixed="true">
         <xs:complexContent>
            <xs:extension base="db:limited.text">
               <xs:attribute name="class">
                  <xs:simpleType>
                     <xs:restriction base="xs:token">
                        <xs:enumeration value="command"/>
                        <xs:enumeration value="function"/>
                        <xs:enumeration value="option"/>
                     </xs:restriction>
                  </xs:simpleType>
               </xs:attribute>
            </xs:extension>
         </xs:complexContent>
      </xs:complexType>
   </xs:element>
   <xs:group name="replaceable.inlines">
      <xs:choice>
         <xs:group ref="db:_text"/>
         <xs:element ref="db:co"/>
      </xs:choice>
   </xs:group>
   <xs:element name="replaceable">
      <xs:complexType mixed="true">
         <xs:sequence>
            <xs:group ref="db:replaceable.inlines" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attribute name="class">
            <xs:simpleType>
               <xs:restriction base="xs:token">
                  <xs:enumeration value="command"/>
                  <xs:enumeration value="function"/>
                  <xs:enumeration value="option"/>
                  <xs:enumeration value="parameter"/>
               </xs:restriction>
            </xs:simpleType>
         </xs:attribute>
      </xs:complexType>
   </xs:element>
   <xs:element name="abbrev">
      <xs:complexType mixed="true">
         <xs:sequence minOccurs="0" maxOccurs="unbounded">
            <xs:group ref="db:_text"/>
            <xs:element ref="db:trademark"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="acronym">
      <xs:complexType mixed="true">
         <xs:sequence minOccurs="0" maxOccurs="unbounded">
            <xs:group ref="db:_text"/>
            <xs:element ref="db:trademark"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="citation" type="db:inline.type"/>
   <xs:element name="citerefentry">
      <xs:complexType>
         <xs:sequence>
            <xs:element ref="db:refentrytitle"/>
            <xs:element ref="db:manvolnum" minOccurs="0"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="refentrytitle" type="db:inline.type"/>
   <xs:element name="manvolnum" type="db:limited.text"/>
   <xs:attributeGroup name="citetitle.pubwork.attribute">
      <xs:attribute name="pubwork">
         <xs:simpleType>
            <xs:restriction base="xs:token">
               <xs:enumeration value="article"/>
               <xs:enumeration value="bbs"/>
               <xs:enumeration value="book"/>
               <xs:enumeration value="cdrom"/>
               <xs:enumeration value="chapter"/>
               <xs:enumeration value="dvd"/>
               <xs:enumeration value="emailmessage"/>
               <xs:enumeration value="gopher"/>
               <xs:enumeration value="journal"/>
               <xs:enumeration value="manuscript"/>
               <xs:enumeration value="newsposting"/>
               <xs:enumeration value="part"/>
               <xs:enumeration value="refentry"/>
               <xs:enumeration value="section"/>
               <xs:enumeration value="series"/>
               <xs:enumeration value="set"/>
               <xs:enumeration value="webpage"/>
               <xs:enumeration value="wiki"/>
            </xs:restriction>
         </xs:simpleType>
      </xs:attribute>
   </xs:attributeGroup>
   <xs:element name="citetitle">
      <xs:complexType mixed="true">
         <xs:sequence minOccurs="0" maxOccurs="unbounded">
            <xs:group ref="db:all.inlines"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attributeGroup ref="db:citetitle.pubwork.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="emphasis" type="db:inline.type"/>
   <xs:group name="_emphasis">
      <xs:sequence>
         <xs:element name="emphasis">
            <xs:complexType mixed="true">
               <xs:sequence minOccurs="0" maxOccurs="unbounded">
                  <xs:group ref="db:_text"/>
                  <xs:group ref="db:_emphasis"/>
               </xs:sequence>
               <xs:attribute name="role"/>
               <xs:attributeGroup ref="db:common.attributes"/>
               <xs:attributeGroup ref="db:common.linking.attributes"/>
            </xs:complexType>
         </xs:element>
      </xs:sequence>
   </xs:group>
   <xs:element name="foreignphrase">
      <xs:complexType mixed="true">
         <xs:sequence minOccurs="0" maxOccurs="unbounded">
            <xs:group ref="db:general.inlines"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="phrase" type="db:inline.type"/>
   <xs:group name="_phrase">
      <xs:sequence>
         <xs:element name="phrase">
            <xs:complexType mixed="true">
               <xs:sequence minOccurs="0" maxOccurs="unbounded">
                  <xs:group ref="db:_text"/>
               </xs:sequence>
               <xs:attribute name="role"/>
               <xs:attributeGroup ref="db:common.attributes"/>
               <xs:attributeGroup ref="db:common.linking.attributes"/>
            </xs:complexType>
         </xs:element>
      </xs:sequence>
   </xs:group>
   <xs:element name="quote" type="db:inline.type"/>
   <xs:element name="subscript" type="db:limited.text"/>
   <xs:element name="superscript" type="db:limited.text"/>
   <xs:element name="trademark">
      <xs:complexType mixed="true">
         <xs:complexContent>
            <xs:extension base="db:limited.text">
               <xs:attribute name="class">
                  <xs:simpleType>
                     <xs:restriction base="xs:token">
                        <xs:enumeration value="copyright"/>
                        <xs:enumeration value="registered"/>
                        <xs:enumeration value="service"/>
                        <xs:enumeration value="trade"/>
                     </xs:restriction>
                  </xs:simpleType>
               </xs:attribute>
            </xs:extension>
         </xs:complexContent>
      </xs:complexType>
   </xs:element>
   <xs:element name="wordasword" type="db:limited.text"/>
   <xs:element name="footnoteref">
      <xs:complexType>
         <xs:complexContent>
            <xs:restriction base="xs:anyType">
               <xs:attribute name="role"/>
               <xs:attributeGroup ref="db:common.attributes"/>
               <xs:attributeGroup ref="db:common.linking.attributes"/>
               <xs:attribute name="label"/>
            </xs:restriction>
         </xs:complexContent>
      </xs:complexType>
   </xs:element>
   <xs:element name="xref">
      <xs:complexType>
         <xs:complexContent>
            <xs:restriction base="xs:anyType">
               <xs:attribute name="role"/>
               <xs:attributeGroup ref="db:common.attributes"/>
               <xs:attributeGroup ref="db:common.linking.attributes"/>
               <xs:attribute name="xrefstyle"/>
               <xs:attribute name="endterm" type="xs:IDREF"/>
            </xs:restriction>
         </xs:complexContent>
      </xs:complexType>
   </xs:element>
   <xs:element name="link">
      <xs:complexType mixed="true">
         <xs:complexContent>
            <xs:extension base="db:inline.type">
               <xs:attribute name="xrefstyle"/>
               <xs:attribute name="endterm" type="xs:IDREF"/>
            </xs:extension>
         </xs:complexContent>
      </xs:complexType>
   </xs:element>
   <xs:element name="olink">
      <xs:complexType mixed="true">
         <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:group ref="db:all.inlines"/>
         </xs:choice>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attribute name="xrefstyle"/>
         <xs:attribute name="localinfo"/>
         <xs:attribute name="targetdoc" type="xs:anyURI"/>
         <xs:attribute name="targetptr"/>
         <xs:attribute name="type"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="anchor">
      <xs:complexType>
         <xs:complexContent>
            <xs:restriction base="xs:anyType">
               <xs:attribute name="role"/>
               <xs:attributeGroup ref="db:common.idreq.attributes"/>
            </xs:restriction>
         </xs:complexContent>
      </xs:complexType>
   </xs:element>
   <xs:element name="alt">
      <xs:complexType mixed="true">
         <xs:sequence minOccurs="0" maxOccurs="unbounded">
            <xs:element ref="db:inlinemediaobject"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:attributeGroup name="status.attribute">
      <xs:attribute name="status"/>
   </xs:attributeGroup>
   <xs:group name="toplevel.sections">
      <xs:choice>
         <xs:choice>
            <xs:sequence>
               <xs:element ref="db:section" maxOccurs="unbounded"/>
               <xs:element ref="db:simplesect" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:element ref="db:simplesect" maxOccurs="unbounded"/>
         </xs:choice>
         <xs:sequence>
            <xs:element ref="db:sect1" maxOccurs="unbounded"/>
            <xs:element ref="db:simplesect" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:element ref="db:refentry" maxOccurs="unbounded"/>
      </xs:choice>
   </xs:group>
   <xs:group name="toplevel.blocks.or.sections">
      <xs:choice>
         <xs:sequence>
            <xs:group ref="db:all.blocks" maxOccurs="unbounded"/>
            <xs:group ref="db:toplevel.sections" minOccurs="0"/>
         </xs:sequence>
         <xs:group ref="db:toplevel.sections"/>
      </xs:choice>
   </xs:group>
   <xs:group name="recursive.sections">
      <xs:choice>
         <xs:choice>
            <xs:sequence>
               <xs:element ref="db:section" maxOccurs="unbounded"/>
               <xs:element ref="db:simplesect" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:element ref="db:simplesect" maxOccurs="unbounded"/>
         </xs:choice>
         <xs:element ref="db:refentry" maxOccurs="unbounded"/>
      </xs:choice>
   </xs:group>
   <xs:group name="recursive.blocks.or.sections">
      <xs:choice>
         <xs:sequence>
            <xs:group ref="db:all.blocks" maxOccurs="unbounded"/>
            <xs:group ref="db:recursive.sections" minOccurs="0"/>
         </xs:sequence>
         <xs:group ref="db:recursive.sections"/>
      </xs:choice>
   </xs:group>
   <xs:group name="divisions">
      <xs:choice>
         <xs:element ref="db:part"/>
         <xs:element ref="db:reference"/>
      </xs:choice>
   </xs:group>
   <xs:group name="components">
      <xs:choice>
         <xs:element ref="db:dedication"/>
         <xs:element ref="db:acknowledgements"/>
         <xs:element ref="db:preface"/>
         <xs:element ref="db:chapter"/>
         <xs:element ref="db:appendix"/>
         <xs:element ref="db:article"/>
         <xs:element ref="db:colophon"/>
      </xs:choice>
   </xs:group>
   <xs:group name="navigation.components">
      <xs:choice>
         <xs:element ref="db:glossary"/>
         <xs:element ref="db:bibliography"/>
         <xs:element ref="db:index"/>
         <xs:element ref="db:toc"/>
      </xs:choice>
   </xs:group>
   <xs:group name="component.contentmodel">
      <xs:sequence>
         <xs:group ref="db:navigation.components" minOccurs="0" maxOccurs="unbounded"/>
         <xs:group ref="db:toplevel.blocks.or.sections"/>
         <xs:group ref="db:navigation.components" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
   </xs:group>
   <xs:group name="setindex.components">
      <xs:choice>
         <xs:element ref="db:setindex"/>
      </xs:choice>
   </xs:group>
   <xs:group name="toc.components">
      <xs:choice>
         <xs:element ref="db:toc"/>
      </xs:choice>
   </xs:group>
   <xs:group name="set.components">
      <xs:choice>
         <xs:element ref="db:set"/>
         <xs:element ref="db:book"/>
      </xs:choice>
   </xs:group>
   <xs:element name="set">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.req" minOccurs="0"/>
            <xs:group ref="db:toc.components" minOccurs="0"/>
            <xs:group ref="db:set.components" maxOccurs="unbounded"/>
            <xs:group ref="db:setindex.components" minOccurs="0"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attribute name="label"/>
         <xs:attributeGroup ref="db:status.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="book">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info" minOccurs="0"/>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
               <xs:group ref="db:navigation.components"/>
               <xs:group ref="db:components"/>
               <xs:group ref="db:divisions"/>
            </xs:choice>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attribute name="label"/>
         <xs:attributeGroup ref="db:status.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:complexType name="block.component.type">
      <xs:sequence>
         <xs:group ref="db:_info" minOccurs="0"/>
         <xs:group ref="db:all.blocks" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="role"/>
      <xs:attributeGroup ref="db:common.attributes"/>
      <xs:attributeGroup ref="db:common.linking.attributes"/>
      <xs:attribute name="label"/>
      <xs:attributeGroup ref="db:status.attribute"/>
   </xs:complexType>
   <xs:element name="dedication" type="db:block.component.type"/>
   <xs:element name="acknowledgements" type="db:block.component.type"/>
   <xs:element name="colophon" type="db:block.component.type"/>
   <xs:complexType name="component.type">
      <xs:sequence>
         <xs:group ref="db:_info.title.req" minOccurs="0"/>
         <xs:group ref="db:component.contentmodel"/>
      </xs:sequence>
      <xs:attribute name="role"/>
      <xs:attributeGroup ref="db:common.attributes"/>
      <xs:attributeGroup ref="db:common.linking.attributes"/>
      <xs:attribute name="label"/>
      <xs:attributeGroup ref="db:status.attribute"/>
   </xs:complexType>
   <xs:element name="appendix" type="db:component.type"/>
   <xs:element name="chapter" type="db:component.type"/>
   <xs:element name="preface" type="db:component.type"/>
   <xs:group name="part.components">
      <xs:choice>
         <xs:group ref="db:navigation.components"/>
         <xs:group ref="db:components"/>
         <xs:element ref="db:refentry"/>
         <xs:element ref="db:reference"/>
      </xs:choice>
   </xs:group>
   <xs:element name="part">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.req" minOccurs="0"/>
            <xs:element ref="db:partintro" minOccurs="0"/>
            <xs:group ref="db:part.components" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attribute name="label"/>
         <xs:attributeGroup ref="db:status.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="partintro">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info" minOccurs="0"/>
            <xs:group ref="db:toplevel.blocks.or.sections"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attribute name="label"/>
         <xs:attributeGroup ref="db:status.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="section">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.req" minOccurs="0"/>
            <xs:group ref="db:recursive.blocks.or.sections"/>
            <xs:group ref="db:navigation.components" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attribute name="label"/>
         <xs:attributeGroup ref="db:status.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="simplesect">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.req" minOccurs="0"/>
            <xs:group ref="db:all.blocks" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attribute name="label"/>
         <xs:attributeGroup ref="db:status.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:group name="article.components">
      <xs:choice>
         <xs:group ref="db:toplevel.sections"/>
      </xs:choice>
   </xs:group>
   <xs:element name="article">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.req" minOccurs="0"/>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
               <xs:group ref="db:navigation.components"/>
               <xs:element ref="db:appendix"/>
               <xs:element ref="db:acknowledgements"/>
               <xs:element ref="db:colophon"/>
            </xs:choice>
            <xs:choice>
               <xs:sequence>
                  <xs:group ref="db:all.blocks" minOccurs="1" maxOccurs="unbounded"/>
                  <xs:group ref="db:article.components" minOccurs="0"/>
               </xs:sequence>
               <xs:group ref="db:article.components"/>
            </xs:choice>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
               <xs:group ref="db:navigation.components"/>
               <xs:element ref="db:appendix"/>
               <xs:element ref="db:acknowledgements"/>
               <xs:element ref="db:colophon"/>
            </xs:choice>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attribute name="label"/>
         <xs:attributeGroup ref="db:status.attribute"/>
         <xs:attribute name="class">
            <xs:simpleType>
               <xs:restriction base="xs:token">
                  <xs:enumeration value="faq"/>
                  <xs:enumeration value="journalarticle"/>
                  <xs:enumeration value="productsheet"/>
                  <xs:enumeration value="specification"/>
                  <xs:enumeration value="techreport"/>
                  <xs:enumeration value="whitepaper"/>
               </xs:restriction>
            </xs:simpleType>
         </xs:attribute>
      </xs:complexType>
   </xs:element>
   <xs:element name="annotation">
      <xs:complexType>
         <xs:complexContent>
            <xs:extension base="db:block.container">
               <xs:attribute name="annotates"/>
            </xs:extension>
         </xs:complexContent>
      </xs:complexType>
   </xs:element>
   <xs:element name="extendedlink">
      <xs:complexType>
         <xs:choice maxOccurs="unbounded">
            <xs:element ref="db:locator"/>
            <xs:element ref="db:arc"/>
         </xs:choice>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="locator">
      <xs:complexType>
         <xs:complexContent>
            <xs:restriction base="xs:anyType">
               <xs:attribute name="role"/>
               <xs:attributeGroup ref="db:common.attributes"/>
               <xs:attributeGroup ref="db:coref.label.attribute"/>
            </xs:restriction>
         </xs:complexContent>
      </xs:complexType>
   </xs:element>
   <xs:element name="arc">
      <xs:complexType>
         <xs:complexContent>
            <xs:restriction base="xs:anyType">
               <xs:attribute name="role"/>
               <xs:attributeGroup ref="db:common.attributes"/>
               <xs:attributeGroup ref="db:coref.label.attribute"/>
            </xs:restriction>
         </xs:complexContent>
      </xs:complexType>
   </xs:element>
   <xs:group name="sect1.sections">
      <xs:choice>
         <xs:sequence>
            <xs:element ref="db:sect2" minOccurs="1" maxOccurs="unbounded"/>
            <xs:element ref="db:simplesect" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:element ref="db:simplesect" maxOccurs="unbounded"/>
      </xs:choice>
   </xs:group>
   <xs:element name="sect1">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.req" minOccurs="0"/>
            <xs:choice>
               <xs:sequence>
                  <xs:group ref="db:all.blocks" maxOccurs="unbounded"/>
                  <xs:group ref="db:sect1.sections" minOccurs="0"/>
               </xs:sequence>
               <xs:group ref="db:sect1.sections"/>
            </xs:choice>
            <xs:group ref="db:navigation.components" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attribute name="label"/>
         <xs:attributeGroup ref="db:status.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:group name="sect2.sections">
      <xs:choice>
         <xs:sequence>
            <xs:element ref="db:sect3" minOccurs="1" maxOccurs="unbounded"/>
            <xs:element ref="db:simplesect" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:element ref="db:simplesect" maxOccurs="unbounded"/>
      </xs:choice>
   </xs:group>
   <xs:element name="sect2">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.req" minOccurs="0"/>
            <xs:choice>
               <xs:sequence>
                  <xs:group ref="db:all.blocks" maxOccurs="unbounded"/>
                  <xs:group ref="db:sect2.sections" minOccurs="0"/>
               </xs:sequence>
               <xs:group ref="db:sect2.sections"/>
            </xs:choice>
            <xs:group ref="db:navigation.components" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attribute name="label"/>
         <xs:attributeGroup ref="db:status.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:group name="sect3.sections">
      <xs:choice>
         <xs:sequence>
            <xs:element ref="db:sect4" minOccurs="1" maxOccurs="unbounded"/>
            <xs:element ref="db:simplesect" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:element ref="db:simplesect" maxOccurs="unbounded"/>
      </xs:choice>
   </xs:group>
   <xs:element name="sect3">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.req" minOccurs="0"/>
            <xs:choice>
               <xs:sequence>
                  <xs:group ref="db:all.blocks" maxOccurs="unbounded"/>
                  <xs:group ref="db:sect3.sections" minOccurs="0"/>
               </xs:sequence>
               <xs:group ref="db:sect3.sections"/>
            </xs:choice>
            <xs:group ref="db:navigation.components" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attribute name="label"/>
         <xs:attributeGroup ref="db:status.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:group name="sect4.sections">
      <xs:choice>
         <xs:sequence>
            <xs:element ref="db:sect5" minOccurs="1" maxOccurs="unbounded"/>
            <xs:element ref="db:simplesect" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:element ref="db:simplesect" maxOccurs="unbounded"/>
      </xs:choice>
   </xs:group>
   <xs:element name="sect4">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.req" minOccurs="0"/>
            <xs:choice>
               <xs:sequence>
                  <xs:group ref="db:all.blocks" maxOccurs="unbounded"/>
                  <xs:group ref="db:sect4.sections" minOccurs="0"/>
               </xs:sequence>
               <xs:group ref="db:sect4.sections"/>
            </xs:choice>
            <xs:group ref="db:navigation.components" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attribute name="label"/>
         <xs:attributeGroup ref="db:status.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:group name="sect5.sections">
      <xs:sequence>
         <xs:element ref="db:simplesect" maxOccurs="unbounded"/>
      </xs:sequence>
   </xs:group>
   <xs:element name="sect5">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.req" minOccurs="0"/>
            <xs:choice>
               <xs:sequence>
                  <xs:group ref="db:all.blocks" maxOccurs="unbounded"/>
                  <xs:group ref="db:sect5.sections" minOccurs="0"/>
               </xs:sequence>
               <xs:group ref="db:sect5.sections"/>
            </xs:choice>
            <xs:group ref="db:navigation.components" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attribute name="label"/>
         <xs:attributeGroup ref="db:status.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:group name="toplevel.refsection">
      <xs:choice>
         <xs:element ref="db:refsection" maxOccurs="unbounded"/>
         <xs:element ref="db:refsect1" maxOccurs="unbounded"/>
      </xs:choice>
   </xs:group>
   <xs:group name="secondlevel.refsection">
      <xs:choice>
         <xs:element ref="db:refsection" maxOccurs="unbounded"/>
         <xs:element ref="db:refsect2" maxOccurs="unbounded"/>
      </xs:choice>
   </xs:group>
   <xs:group name="reference.components">
      <xs:choice>
         <xs:element ref="db:refentry"/>
      </xs:choice>
   </xs:group>
   <xs:element name="reference">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.req" minOccurs="0"/>
            <xs:element ref="db:partintro" minOccurs="0"/>
            <xs:group ref="db:reference.components" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attribute name="label"/>
         <xs:attributeGroup ref="db:status.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="refentry">
      <xs:complexType>
         <xs:sequence>
            <xs:element ref="db:indexterm" minOccurs="0" maxOccurs="unbounded"/>
            <xs:group ref="db:_info.title.forbidden" minOccurs="0"/>
            <xs:element ref="db:refmeta" minOccurs="0"/>
            <xs:element ref="db:refnamediv" maxOccurs="unbounded"/>
            <xs:element ref="db:refsynopsisdiv" minOccurs="0"/>
            <xs:group ref="db:toplevel.refsection"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attribute name="label"/>
         <xs:attributeGroup ref="db:status.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="refmeta">
      <xs:complexType>
         <xs:sequence>
            <xs:element ref="db:indexterm" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element ref="db:refentrytitle"/>
            <xs:element ref="db:manvolnum" minOccurs="0"/>
            <xs:element ref="db:refmiscinfo" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element ref="db:indexterm" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="refmiscinfo">
      <xs:complexType mixed="true">
         <xs:complexContent>
            <xs:extension base="db:limited.text">
               <xs:attribute name="class">
                  <xs:simpleType>
                     <xs:restriction base="xs:token">
                        <xs:enumeration value="source"/>
                        <xs:enumeration value="version"/>
                        <xs:enumeration value="manual"/>
                        <xs:enumeration value="sectdesc"/>
                        <xs:enumeration value="software"/>
                        <xs:enumeration value="other"/>
                     </xs:restriction>
                  </xs:simpleType>
               </xs:attribute>
               <xs:attribute name="otherclass"/>
            </xs:extension>
         </xs:complexContent>
      </xs:complexType>
   </xs:element>
   <xs:element name="refnamediv">
      <xs:complexType>
         <xs:sequence>
            <xs:element ref="db:refdescriptor" minOccurs="0"/>
            <xs:element ref="db:refname" maxOccurs="unbounded"/>
            <xs:element ref="db:refpurpose"/>
            <xs:element ref="db:refclass" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="refdescriptor" type="db:inline.type"/>
   <xs:element name="refname" type="db:inline.type"/>
   <xs:element name="refpurpose" type="db:inline.type"/>
   <xs:element name="refclass">
      <xs:complexType mixed="true">
         <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element ref="db:application"/>
         </xs:choice>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="refsynopsisdiv">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.req" minOccurs="0"/>
            <xs:choice>
               <xs:sequence>
                  <xs:group ref="db:all.blocks" maxOccurs="unbounded"/>
                  <xs:group ref="db:secondlevel.refsection" minOccurs="0"/>
               </xs:sequence>
               <xs:group ref="db:secondlevel.refsection"/>
            </xs:choice>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="refsection">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.req" minOccurs="0"/>
            <xs:choice>
               <xs:sequence>
                  <xs:group ref="db:all.blocks" maxOccurs="unbounded"/>
                  <xs:element ref="db:refsection" minOccurs="0" maxOccurs="unbounded"/>
               </xs:sequence>
               <xs:element ref="db:refsection" maxOccurs="unbounded"/>
            </xs:choice>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attribute name="label"/>
         <xs:attributeGroup ref="db:status.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:group name="refsect1.sections">
      <xs:sequence>
         <xs:element ref="db:refsect2" maxOccurs="unbounded"/>
      </xs:sequence>
   </xs:group>
   <xs:element name="refsect1">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.req" minOccurs="0"/>
            <xs:choice>
               <xs:sequence>
                  <xs:group ref="db:all.blocks" maxOccurs="unbounded"/>
                  <xs:group ref="db:refsect1.sections" minOccurs="0" maxOccurs="unbounded"/>
               </xs:sequence>
               <xs:group ref="db:refsect1.sections" maxOccurs="unbounded"/>
            </xs:choice>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attribute name="label"/>
         <xs:attributeGroup ref="db:status.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:group name="refsect2.sections">
      <xs:sequence>
         <xs:element ref="db:refsect3" maxOccurs="unbounded"/>
      </xs:sequence>
   </xs:group>
   <xs:element name="refsect2">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.req" minOccurs="0"/>
            <xs:choice>
               <xs:sequence>
                  <xs:group ref="db:all.blocks" maxOccurs="unbounded"/>
                  <xs:group ref="db:refsect2.sections" minOccurs="0" maxOccurs="unbounded"/>
               </xs:sequence>
               <xs:group ref="db:refsect2.sections" maxOccurs="unbounded"/>
            </xs:choice>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attribute name="label"/>
         <xs:attributeGroup ref="db:status.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="refsect3">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.req" minOccurs="0"/>
            <xs:group ref="db:all.blocks" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attribute name="label"/>
         <xs:attributeGroup ref="db:status.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:group name="glossary.inlines">
      <xs:choice>
         <xs:element ref="db:firstterm"/>
         <xs:element ref="db:glossterm"/>
      </xs:choice>
   </xs:group>
   <xs:attributeGroup name="baseform.attribute">
      <xs:attribute name="baseform"/>
   </xs:attributeGroup>
   <xs:element name="glosslist">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.only" minOccurs="0"/>
            <xs:group ref="db:all.blocks" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element ref="db:glossentry" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="glossentry">
      <xs:complexType>
         <xs:sequence>
            <xs:element ref="db:glossterm"/>
            <xs:element ref="db:acronym" minOccurs="0"/>
            <xs:element ref="db:abbrev" minOccurs="0"/>
            <xs:element ref="db:indexterm" minOccurs="0" maxOccurs="unbounded"/>
            <xs:choice>
               <xs:element ref="db:glosssee"/>
               <xs:element ref="db:glossdef" maxOccurs="unbounded"/>
            </xs:choice>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attribute name="sortas"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="glossdef">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:all.blocks" maxOccurs="unbounded"/>
            <xs:element ref="db:glossseealso" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attribute name="subject"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="glosssee">
      <xs:complexType mixed="true">
         <xs:sequence>
            <xs:group ref="db:all.inlines" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attribute name="otherterm" type="xs:IDREF"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="glossseealso">
      <xs:complexType mixed="true">
         <xs:sequence>
            <xs:group ref="db:all.inlines" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attribute name="otherterm" type="xs:IDREF"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="firstterm">
      <xs:complexType mixed="true">
         <xs:sequence>
            <xs:group ref="db:all.inlines" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attributeGroup ref="db:baseform.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="glossterm">
      <xs:complexType mixed="true">
         <xs:sequence>
            <xs:group ref="db:all.inlines" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attributeGroup ref="db:baseform.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="glossary">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info" minOccurs="0"/>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
               <xs:group ref="db:all.blocks"/>
            </xs:choice>
            <xs:choice>
               <xs:element ref="db:glossdiv" minOccurs="0" maxOccurs="unbounded"/>
               <xs:element ref="db:glossentry" minOccurs="0" maxOccurs="unbounded"/>
            </xs:choice>
            <xs:element ref="db:bibliography" minOccurs="0"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attribute name="label"/>
         <xs:attributeGroup ref="db:status.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="glossdiv">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info" minOccurs="0"/>
            <xs:group ref="db:all.blocks" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element ref="db:glossentry" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attribute name="label"/>
         <xs:attributeGroup ref="db:status.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="termdef">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:all.inlines" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attributeGroup ref="db:baseform.attribute"/>
         <xs:attribute name="sortas"/>
      </xs:complexType>
   </xs:element>
   <xs:attributeGroup name="relation.attribute">
      <xs:attribute name="relation"/>
   </xs:attributeGroup>
   <xs:element name="biblioentry">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:bibliographic.elements" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="bibliomixed">
      <xs:complexType mixed="true">
         <xs:sequence minOccurs="0" maxOccurs="unbounded">
            <xs:group ref="db:bibliographic.elements"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="biblioset">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:bibliographic.elements" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attributeGroup ref="db:relation.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="bibliomset">
      <xs:complexType mixed="true">
         <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:group ref="db:_text"/>
            <!-- This should be db:bibliographic.elements, but there's an ambiguity
             problem with annotation in db:_text and db:info.elements --><xs:element ref="db:abstract"/>
            <xs:element ref="db:address"/>
            <xs:element ref="db:artpagenums"/>
            <xs:element ref="db:author"/>
            <xs:element ref="db:authorgroup"/>
            <xs:element ref="db:authorinitials"/>
            <xs:element ref="db:bibliocoverage"/>
            <xs:element ref="db:biblioid"/>
            <xs:element ref="db:bibliosource"/>
            <xs:element ref="db:collab"/>
            <xs:element ref="db:confgroup"/>
            <xs:element ref="db:contractsponsor"/>
            <xs:element ref="db:contractnum"/>
            <xs:element ref="db:copyright"/>
            <xs:element ref="db:cover"/>
            <xs:element ref="db:date"/>
            <xs:element ref="db:edition"/>
            <xs:element ref="db:editor"/>
            <xs:element ref="db:issuenum"/>
            <xs:element ref="db:keywordset"/>
            <xs:element ref="db:legalnotice"/>
            <xs:element ref="db:mediaobject"/>
            <xs:element ref="db:org"/>
            <xs:element ref="db:orgname"/>
            <xs:element ref="db:othercredit"/>
            <xs:element ref="db:pagenums"/>
            <xs:element ref="db:printhistory"/>
            <xs:element ref="db:pubdate"/>
            <xs:element ref="db:publisher"/>
            <xs:element ref="db:publishername"/>
            <xs:element ref="db:releaseinfo"/>
            <xs:element ref="db:revhistory"/>
            <xs:element ref="db:seriesvolnums"/>
            <xs:element ref="db:subjectset"/>
            <xs:element ref="db:volumenum"/>
            <xs:element ref="db:extendedlink"/>
            <xs:element ref="db:bibliomisc"/>
            <xs:element ref="db:bibliomset"/>
            <xs:element ref="db:bibliorelation"/>
            <xs:element ref="db:biblioset"/>
            <xs:element ref="db:itermset"/>
            <xs:element ref="db:productname"/>
            <xs:element ref="db:productnumber"/>
            <xs:element ref="db:abbrev"/>
            <xs:element ref="db:acronym"/>
            <xs:element ref="db:emphasis"/>
            <xs:element ref="db:footnote"/>
            <xs:element ref="db:footnoteref"/>
            <xs:element ref="db:foreignphrase"/>
            <xs:element ref="db:quote"/>
            <xs:element ref="db:citerefentry"/>
            <xs:element ref="db:citetitle"/>
            <xs:element ref="db:citebiblioid"/>
            <xs:element ref="db:person"/>
            <xs:element ref="db:personblurb"/>
            <xs:element ref="db:personname"/>
            <xs:element ref="db:subtitle"/>
            <xs:element ref="db:title"/>
            <xs:element ref="db:titleabbrev"/>
         </xs:choice>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attributeGroup ref="db:relation.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="bibliomisc" type="db:limited.text"/>
   <xs:element name="bibliography">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info" minOccurs="0"/>
            <xs:group ref="db:all.blocks" minOccurs="0" maxOccurs="unbounded"/>
            <xs:choice>
               <xs:element ref="db:bibliodiv" maxOccurs="unbounded"/>
               <xs:choice maxOccurs="unbounded">
                  <xs:element ref="db:biblioentry"/>
                  <xs:element ref="db:bibliomixed"/>
               </xs:choice>
            </xs:choice>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attribute name="label"/>
         <xs:attributeGroup ref="db:status.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="bibliodiv">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info" minOccurs="0"/>
            <xs:group ref="db:all.blocks" minOccurs="0" maxOccurs="unbounded"/>
            <xs:choice maxOccurs="unbounded">
               <xs:element ref="db:biblioentry"/>
               <xs:element ref="db:bibliomixed"/>
            </xs:choice>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attribute name="label"/>
         <xs:attributeGroup ref="db:status.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="bibliolist">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.only" minOccurs="0"/>
            <xs:group ref="db:all.blocks" minOccurs="0" maxOccurs="unbounded"/>
            <xs:choice maxOccurs="unbounded">
               <xs:element ref="db:biblioentry"/>
               <xs:element ref="db:bibliomixed"/>
            </xs:choice>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="biblioref">
      <xs:complexType>
         <xs:complexContent>
            <xs:restriction base="xs:anyType">
               <xs:attribute name="role"/>
               <xs:attributeGroup ref="db:common.attributes"/>
               <xs:attributeGroup ref="db:coref.label.attribute"/>
               <xs:attribute name="xrefstyle"/>
               <xs:attribute name="endterm" type="xs:IDREF"/>
               <xs:attribute name="units" type="xs:token"/>
               <xs:attribute name="begin" type="xs:token"/>
               <xs:attribute name="end" type="xs:token"/>
            </xs:restriction>
         </xs:complexContent>
      </xs:complexType>
   </xs:element>
   <xs:attributeGroup name="significance.attribute">
      <xs:attribute name="significance">
         <xs:simpleType>
            <xs:restriction base="xs:token">
               <xs:enumeration value="normal"/>
               <xs:enumeration value="preferred"/>
            </xs:restriction>
         </xs:simpleType>
      </xs:attribute>
   </xs:attributeGroup>
   <xs:attributeGroup name="zone.attribute">
      <xs:attribute name="zone" type="xs:IDREFS"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="pagenum.attribute">
      <xs:attribute name="pagenum"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="scope.attribute">
      <xs:attribute name="scope">
         <xs:simpleType>
            <xs:restriction base="xs:token">
               <xs:enumeration value="all"/>
               <xs:enumeration value="global"/>
               <xs:enumeration value="local"/>
            </xs:restriction>
         </xs:simpleType>
      </xs:attribute>
   </xs:attributeGroup>
   <xs:attributeGroup name="sortas.attribute">
      <xs:attribute name="sortas"/>
   </xs:attributeGroup>
   <xs:element name="itermset">
      <xs:complexType>
         <xs:sequence>
            <xs:element ref="db:indexterm" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="indexterm">
      <xs:complexType>
         <xs:sequence>
            <xs:element ref="db:primary" minOccurs="0"/>
            <xs:choice minOccurs="0">
               <xs:sequence>
                  <xs:element ref="db:secondary"/>
                  <xs:choice minOccurs="0">
                     <xs:sequence>
                        <xs:element ref="db:tertiary"/>
                        <xs:choice minOccurs="0">
                           <xs:element ref="db:see"/>
                           <xs:element ref="db:seealso" maxOccurs="unbounded"/>
                        </xs:choice>
                     </xs:sequence>
                     <xs:element ref="db:see"/>
                     <xs:element ref="db:seealso" maxOccurs="unbounded"/>
                  </xs:choice>
               </xs:sequence>
               <xs:element ref="db:see"/>
               <xs:element ref="db:seealso" maxOccurs="unbounded"/>
            </xs:choice>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attributeGroup ref="db:significance.attribute"/>
         <xs:attributeGroup ref="db:zone.attribute"/>
         <xs:attributeGroup ref="db:pagenum.attribute"/>
         <xs:attributeGroup ref="db:scope.attribute"/>
         <xs:attribute name="type"/>
         <xs:attribute name="class">
            <xs:simpleType>
               <xs:restriction base="xs:token">
                  <xs:enumeration value="singular"/>
                  <xs:enumeration value="startofrange"/>
                  <xs:enumeration value="endofrange"/>
               </xs:restriction>
            </xs:simpleType>
         </xs:attribute>
         <xs:attribute name="startref" type="xs:IDREF"/>
      </xs:complexType>
   </xs:element>
   <xs:complexType name="indexterm.parts.type" mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
         <xs:group ref="db:all.inlines"/>
      </xs:choice>
      <xs:attribute name="role"/>
      <xs:attributeGroup ref="db:common.attributes"/>
      <xs:attributeGroup ref="db:common.linking.attributes"/>
      <xs:attributeGroup ref="db:sortas.attribute"/>
   </xs:complexType>
   <xs:element name="primary" type="db:indexterm.parts.type"/>
   <xs:element name="secondary" type="db:indexterm.parts.type"/>
   <xs:element name="tertiary" type="db:indexterm.parts.type"/>
   <xs:element name="see" type="db:inline.type"/>
   <xs:element name="seealso" type="db:inline.type"/>
   <xs:element name="index">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info" minOccurs="0"/>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
               <xs:group ref="db:all.blocks"/>
               <xs:element ref="db:indexdiv"/>
               <xs:element ref="db:indexentry"/>
            </xs:choice>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attribute name="label"/>
         <xs:attributeGroup ref="db:status.attribute"/>
         <xs:attribute name="type"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="setindex">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info" minOccurs="0"/>
            <xs:group ref="db:all.blocks" minOccurs="0" maxOccurs="unbounded"/>
            <xs:choice>
               <xs:element ref="db:indexdiv" minOccurs="0" maxOccurs="unbounded"/>
               <xs:element ref="db:indexentry" minOccurs="0" maxOccurs="unbounded"/>
            </xs:choice>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attribute name="label"/>
         <xs:attributeGroup ref="db:status.attribute"/>
         <xs:attribute name="type"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="indexdiv">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.req" minOccurs="0"/>
            <xs:choice maxOccurs="unbounded">
               <xs:group ref="db:all.blocks"/>
               <xs:element ref="db:indexentry"/>
            </xs:choice>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attribute name="label"/>
         <xs:attributeGroup ref="db:status.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="indexentry">
      <xs:complexType>
         <xs:sequence>
            <xs:element ref="db:primaryie" minOccurs="0"/>
            <xs:choice minOccurs="0">
               <xs:element ref="db:seeie"/>
               <xs:element ref="db:seealsoie"/>
            </xs:choice>
            <xs:sequence minOccurs="0" maxOccurs="unbounded">
               <xs:element ref="db:secondaryie"/>
               <xs:choice minOccurs="0" maxOccurs="unbounded">
                  <xs:element ref="db:seeie"/>
                  <xs:element ref="db:seealsoie"/>
                  <xs:element ref="db:tertiaryie"/>
               </xs:choice>
            </xs:sequence>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="primaryie" type="db:inline.type"/>
   <xs:element name="secondaryie" type="db:inline.type"/>
   <xs:element name="tertiaryie" type="db:inline.type"/>
   <xs:element name="seeie" type="db:inline.type"/>
   <xs:element name="seealsoie" type="db:inline.type"/>
   <xs:element name="toc">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.only" minOccurs="0"/>
            <xs:group ref="db:all.blocks" minOccurs="0" maxOccurs="unbounded"/>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
               <xs:element ref="db:tocdiv"/>
               <xs:element ref="db:tocentry"/>
            </xs:choice>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="tocdiv">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info" minOccurs="0"/>
            <xs:group ref="db:all.blocks" minOccurs="0" maxOccurs="unbounded"/>
            <xs:choice maxOccurs="unbounded">
               <xs:element ref="db:tocdiv"/>
               <xs:element ref="db:tocentry"/>
            </xs:choice>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attribute name="pagenum"/>
         <xs:attribute name="linkend" type="xs:IDREF"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="tocentry">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:all.inlines" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attribute name="pagenum"/>
         <xs:attribute name="linkend" type="xs:IDREF"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="task">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.req" minOccurs="0"/>
            <xs:element ref="db:tasksummary" minOccurs="0"/>
            <xs:element ref="db:taskprerequisites" minOccurs="0"/>
            <xs:element ref="db:procedure"/>
            <xs:element ref="db:example" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element ref="db:taskrelated" minOccurs="0"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="tasksummary" type="db:block.container"/>
   <xs:element name="taskprerequisites" type="db:block.container"/>
   <xs:element name="taskrelated" type="db:block.container"/>
   <xs:element name="productionset">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.only" minOccurs="0"/>
            <xs:choice maxOccurs="unbounded">
               <xs:element ref="db:production"/>
               <xs:element ref="db:productionrecap"/>
            </xs:choice>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="production">
      <xs:complexType>
         <xs:sequence>
            <xs:element ref="db:lhs"/>
            <xs:element ref="db:rhs"/>
            <xs:element ref="db:constraint" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.idreq.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="lhs">
      <xs:complexType mixed="true">
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="rhs">
      <xs:complexType mixed="true">
         <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element ref="db:nonterminal"/>
            <xs:element ref="db:lineannotation"/>
            <xs:element ref="db:sbr"/>
         </xs:choice>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="nonterminal">
      <xs:complexType mixed="true">
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attribute name="def" type="xs:anyURI"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="constraint">
      <xs:complexType>
         <xs:complexContent>
            <xs:restriction base="xs:anyType">
               <xs:attribute name="role"/>
               <xs:attributeGroup ref="db:common.attributes"/>
               <xs:attributeGroup ref="db:common.req.linking.attributes"/>
            </xs:restriction>
         </xs:complexContent>
      </xs:complexType>
   </xs:element>
   <xs:element name="productionrecap">
      <xs:complexType>
         <xs:complexContent>
            <xs:restriction base="xs:anyType">
               <xs:attribute name="role"/>
               <xs:attributeGroup ref="db:common.attributes"/>
               <xs:attributeGroup ref="db:common.req.linking.attributes"/>
            </xs:restriction>
         </xs:complexContent>
      </xs:complexType>
   </xs:element>
   <xs:element name="constraintdef" type="db:block.type"/>
   <xs:attributeGroup name="html.coreattrs">
      <xs:attribute name="class"/>
      <xs:attribute name="style"/>
      <xs:attribute name="title"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="html.i18n">
      <xs:attribute name="lang"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="html.events">
      <xs:attribute name="onclick"/>
      <xs:attribute name="ondblclick"/>
      <xs:attribute name="onmousedown"/>
      <xs:attribute name="onmouseup"/>
      <xs:attribute name="onmouseover"/>
      <xs:attribute name="onmousemove"/>
      <xs:attribute name="onmouseout"/>
      <xs:attribute name="onkeypress"/>
      <xs:attribute name="onkeydown"/>
      <xs:attribute name="onkeyup"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="html.attrs">
      <xs:attributeGroup ref="db:common.attributes"/>
      <xs:attributeGroup ref="db:html.coreattrs"/>
      <xs:attributeGroup ref="db:html.i18n"/>
      <xs:attributeGroup ref="db:html.events"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="html.table.attributes">
      <xs:attribute name="summary"/>
      <xs:attribute name="width"/>
      <xs:attribute name="border" type="xs:nonNegativeInteger"/>
      <xs:attribute name="rules">
         <xs:simpleType>
            <xs:restriction base="xs:token">
               <xs:enumeration value="none"/>
               <xs:enumeration value="groups"/>
               <xs:enumeration value="rows"/>
               <xs:enumeration value="cols"/>
               <xs:enumeration value="all"/>
            </xs:restriction>
         </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="cellspacing"/>
      <xs:attribute name="cellpadding"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="html.tablecell.attributes">
      <xs:attribute name="abbr"/>
      <xs:attribute name="axis"/>
      <xs:attribute name="headers"/>
      <xs:attribute name="scope">
         <xs:simpleType>
            <xs:restriction base="xs:token">
               <xs:enumeration value="row"/>
               <xs:enumeration value="col"/>
               <xs:enumeration value="rowgroup"/>
               <xs:enumeration value="colgroup"/>
            </xs:restriction>
         </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="rowspan" type="xs:nonNegativeInteger"/>
      <xs:attribute name="colspan" type="xs:nonNegativeInteger"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="merged-html-cals-frame.attribute">
      <xs:attribute name="frame">
         <xs:simpleType>
            <xs:restriction base="xs:token"><!-- CALS --><xs:enumeration value="all"/>
               <xs:enumeration value="bottom"/>
               <xs:enumeration value="none"/>
               <xs:enumeration value="sides"/>
               <xs:enumeration value="top"/>
               <xs:enumeration value="topbot"/>
               <!-- HTML --><xs:enumeration value="void"/>
               <xs:enumeration value="above"/>
               <xs:enumeration value="below"/>
               <xs:enumeration value="hsides"/>
               <xs:enumeration value="lhs"/>
               <xs:enumeration value="rhs"/>
               <xs:enumeration value="vsides"/>
               <xs:enumeration value="box"/>
               <xs:enumeration value="border"/>
            </xs:restriction>
         </xs:simpleType>
      </xs:attribute>
   </xs:attributeGroup>
   <xs:element name="table">
      <xs:complexType>
         <xs:sequence>
            <xs:choice>
               <xs:sequence><!-- CALS --><xs:group ref="db:_info.title.onlyreq" minOccurs="0" maxOccurs="1"/>
                  <xs:choice minOccurs="0" maxOccurs="unbounded">
                     <xs:element ref="db:alt"/>
                     <xs:group ref="db:indexing.inlines"/>
                     <xs:element ref="db:textobject"/>
                  </xs:choice>
                  <xs:choice>
                     <xs:element ref="db:mediaobject" minOccurs="1" maxOccurs="unbounded"/>
                     <xs:element ref="db:tgroup" minOccurs="1" maxOccurs="unbounded"/>
                  </xs:choice>
                  <xs:element ref="db:caption" minOccurs="0" maxOccurs="1"/>
               </xs:sequence>
               <xs:sequence><!-- HTML --><xs:element ref="db:caption"/>
                  <xs:choice>
                     <xs:element ref="db:col" minOccurs="0" maxOccurs="unbounded"/>
                     <xs:element ref="db:colgroup" minOccurs="0" maxOccurs="unbounded"/>
                  </xs:choice>
                  <xs:element ref="db:thead" minOccurs="0" maxOccurs="1"/>
                  <xs:element ref="db:tfoot" minOccurs="0" maxOccurs="1"/>
                  <xs:choice>
                     <xs:element ref="db:tbody" minOccurs="1" maxOccurs="unbounded"/>
                     <xs:element ref="db:tr" minOccurs="1" maxOccurs="unbounded"/>
                  </xs:choice>
               </xs:sequence>
            </xs:choice>
         </xs:sequence>
         <!-- common and CALS --><xs:attribute name="role"/>
         <xs:attributeGroup ref="db:label.attribute"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attributeGroup ref="db:tabstyle.attribute"/>
         <xs:attributeGroup ref="db:floatstyle.attribute"/>
         <xs:attributeGroup ref="db:orient.attribute"/>
         <xs:attributeGroup ref="db:colsep.attribute"/>
         <xs:attributeGroup ref="db:rowsep.attribute"/>
         <xs:attributeGroup ref="db:pgwide.attribute"/>
         <xs:attribute name="shortentry" type="db:zeroorone.type"/>
         <xs:attribute name="tocentry" type="db:zeroorone.type"/>
         <xs:attributeGroup ref="db:rowheader.attribute"/>
         <!-- HTML --><xs:attributeGroup ref="db:html.coreattrs"/>
         <xs:attributeGroup ref="db:html.i18n"/>
         <xs:attributeGroup ref="db:html.events"/>
         <xs:attributeGroup ref="db:html.table.attributes"/>
         <!-- Merged --><xs:attributeGroup ref="db:merged-html-cals-frame.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="informaltable">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.forbidden" minOccurs="0" maxOccurs="1"/>
            <xs:choice>
               <xs:sequence><!-- CALS --><xs:choice minOccurs="0" maxOccurs="unbounded">
                     <xs:element ref="db:alt"/>
                     <xs:group ref="db:indexing.inlines"/>
                     <xs:element ref="db:textobject"/>
                  </xs:choice>
                  <xs:choice>
                     <xs:element ref="db:mediaobject" minOccurs="1" maxOccurs="unbounded"/>
                     <xs:element ref="db:tgroup" minOccurs="1" maxOccurs="unbounded"/>
                  </xs:choice>
                  <xs:element ref="db:caption" minOccurs="0" maxOccurs="1"/>
               </xs:sequence>
               <xs:sequence><!-- HTML --><xs:choice>
                     <xs:element ref="db:col" minOccurs="0" maxOccurs="unbounded"/>
                     <xs:element ref="db:colgroup" minOccurs="0" maxOccurs="unbounded"/>
                  </xs:choice>
                  <xs:element ref="db:thead" minOccurs="0" maxOccurs="1"/>
                  <xs:element ref="db:tfoot" minOccurs="0" maxOccurs="1"/>
                  <xs:choice>
                     <xs:element ref="db:tbody" minOccurs="1" maxOccurs="unbounded"/>
                     <xs:element ref="db:tr" minOccurs="1" maxOccurs="unbounded"/>
                  </xs:choice>
               </xs:sequence>
            </xs:choice>
         </xs:sequence>
         <!-- Common and CALS --><xs:attribute name="role"/>
         <xs:attributeGroup ref="db:label.attribute"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attributeGroup ref="db:tabstyle.attribute"/>
         <xs:attributeGroup ref="db:floatstyle.attribute"/>
         <xs:attributeGroup ref="db:orient.attribute"/>
         <xs:attributeGroup ref="db:colsep.attribute"/>
         <xs:attributeGroup ref="db:rowsep.attribute"/>
         <xs:attributeGroup ref="db:pgwide.attribute"/>
         <xs:attribute name="shortentry" type="db:zeroorone.type"/>
         <xs:attribute name="tocentry" type="db:zeroorone.type"/>
         <xs:attributeGroup ref="db:rowheader.attribute"/>
         <!-- HTML --><xs:attributeGroup ref="db:html.coreattrs"/>
         <xs:attributeGroup ref="db:html.i18n"/>
         <xs:attributeGroup ref="db:html.events"/>
         <xs:attributeGroup ref="db:html.table.attributes"/>
         <!-- Merged --><xs:attributeGroup ref="db:merged-html-cals-frame.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:attributeGroup name="html.cellhalign">
      <xs:attribute name="align">
         <xs:simpleType>
            <xs:restriction base="xs:token">
               <xs:enumeration value="left"/>
               <xs:enumeration value="center"/>
               <xs:enumeration value="right"/>
               <xs:enumeration value="justfy"/>
               <xs:enumeration value="char"/>
            </xs:restriction>
         </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="charoff"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="html.cellvalign">
      <xs:attribute name="valign">
         <xs:simpleType>
            <xs:restriction base="xs:token">
               <xs:enumeration value="bottom"/>
               <xs:enumeration value="middle"/>
               <xs:enumeration value="top"/>
            </xs:restriction>
         </xs:simpleType>
      </xs:attribute>
   </xs:attributeGroup>
   <xs:element name="col">
      <xs:complexType>
         <xs:complexContent>
            <xs:restriction base="xs:anyType">
               <xs:attributeGroup ref="db:html.attrs"/>
               <xs:attribute name="span" type="xs:nonNegativeInteger"/>
               <xs:attribute name="width"/>
               <xs:attributeGroup ref="db:html.cellhalign"/>
               <xs:attributeGroup ref="db:html.cellvalign"/>
            </xs:restriction>
         </xs:complexContent>
      </xs:complexType>
   </xs:element>
   <xs:element name="colgroup">
      <xs:complexType>
         <xs:sequence minOccurs="0" maxOccurs="unbounded">
            <xs:element ref="db:col"/>
         </xs:sequence>
         <xs:attributeGroup ref="db:html.attrs"/>
         <xs:attribute name="span" type="xs:nonNegativeInteger"/>
         <xs:attribute name="width"/>
         <xs:attributeGroup ref="db:html.cellhalign"/>
         <xs:attributeGroup ref="db:html.cellvalign"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="thead">
      <xs:complexType>
         <xs:choice>
            <xs:sequence><!-- CALS --><xs:element ref="db:colspec" minOccurs="0" maxOccurs="unbounded"/>
               <xs:element ref="db:row" minOccurs="1" maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:sequence><!-- HTML --><xs:element ref="db:tr" minOccurs="1" maxOccurs="unbounded"/>
            </xs:sequence>
         </xs:choice>
         <!-- Common and CALS --><xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attributeGroup ref="db:valign.attribute"/>
         <!-- HTML --><xs:attributeGroup ref="db:html.coreattrs"/>
         <xs:attributeGroup ref="db:html.i18n"/>
         <xs:attributeGroup ref="db:html.events"/>
         <xs:attributeGroup ref="db:html.cellhalign"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="tfoot">
      <xs:complexType>
         <xs:choice>
            <xs:sequence><!-- CALS --><xs:element ref="db:colspec" minOccurs="0" maxOccurs="unbounded"/>
               <xs:element ref="db:row" minOccurs="1" maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:sequence><!-- HTML --><xs:element ref="db:tr" minOccurs="1" maxOccurs="unbounded"/>
            </xs:sequence>
         </xs:choice>
         <!-- Common and CALS --><xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attributeGroup ref="db:valign.attribute"/>
         <!-- HTML --><xs:attributeGroup ref="db:html.coreattrs"/>
         <xs:attributeGroup ref="db:html.i18n"/>
         <xs:attributeGroup ref="db:html.events"/>
         <xs:attributeGroup ref="db:html.cellhalign"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="tbody">
      <xs:complexType>
         <xs:choice>
            <xs:sequence><!-- CALS --><xs:element ref="db:row" minOccurs="1" maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:sequence><!-- HTML --><xs:element ref="db:tr" minOccurs="1" maxOccurs="unbounded"/>
            </xs:sequence>
         </xs:choice>
         <!-- Common and CALS --><xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attributeGroup ref="db:valign.attribute"/>
         <!-- HTML --><xs:attributeGroup ref="db:html.coreattrs"/>
         <xs:attributeGroup ref="db:html.i18n"/>
         <xs:attributeGroup ref="db:html.events"/>
         <xs:attributeGroup ref="db:html.cellhalign"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="tr">
      <xs:complexType>
         <xs:choice minOccurs="1" maxOccurs="unbounded">
            <xs:element ref="db:th"/>
            <xs:element ref="db:td"/>
         </xs:choice>
         <xs:attributeGroup ref="db:html.attrs"/>
         <xs:attributeGroup ref="db:html.cellhalign"/>
         <xs:attributeGroup ref="db:html.cellvalign"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="th">
      <xs:complexType>
         <xs:choice>
            <xs:group ref="db:all.inlines" minOccurs="0" maxOccurs="unbounded"/>
            <xs:group ref="db:all-i.blocks" minOccurs="0" maxOccurs="unbounded"/>
         </xs:choice>
         <xs:attributeGroup ref="db:html.attrs"/>
         <xs:attributeGroup ref="db:html.tablecell.attributes"/>
         <xs:attributeGroup ref="db:html.cellhalign"/>
         <xs:attributeGroup ref="db:html.cellvalign"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="td">
      <xs:complexType mixed="true">
         <xs:choice>
            <xs:group ref="db:all.inlines" minOccurs="0" maxOccurs="unbounded"/>
            <xs:group ref="db:all-i.blocks" minOccurs="0" maxOccurs="unbounded"/>
         </xs:choice>
         <xs:attributeGroup ref="db:html.attrs"/>
         <xs:attributeGroup ref="db:html.tablecell.attributes"/>
         <xs:attributeGroup ref="db:html.cellhalign"/>
         <xs:attributeGroup ref="db:html.cellvalign"/>
      </xs:complexType>
   </xs:element>
   <xs:attributeGroup name="char.attribute">
      <xs:attribute name="char"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="charoff.attribute">
      <xs:attribute name="charoff">
         <xs:simpleType>
            <xs:restriction base="xs:nonNegativeInteger">
               <xs:minExclusive value="0"/>
               <xs:maxExclusive value="100"/>
            </xs:restriction>
         </xs:simpleType>
      </xs:attribute>
   </xs:attributeGroup>
   <xs:attributeGroup name="colsep.attribute">
      <xs:attribute name="colsep" type="db:zeroorone.type"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="rowsep.attribute">
      <xs:attribute name="rowsep" type="db:zeroorone.type"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="rowheader.attribute">
      <xs:attribute name="rowheader">
         <xs:simpleType>
            <xs:restriction base="xs:token">
               <xs:enumeration value="firstcol"/>
               <xs:enumeration value="norowheader"/>
            </xs:restriction>
         </xs:simpleType>
      </xs:attribute>
   </xs:attributeGroup>
   <xs:attributeGroup name="align.attribute">
      <xs:attribute name="align">
         <xs:simpleType>
            <xs:restriction base="xs:token">
               <xs:enumeration value="center"/>
               <xs:enumeration value="char"/>
               <xs:enumeration value="justify"/>
               <xs:enumeration value="left"/>
               <xs:enumeration value="right"/>
            </xs:restriction>
         </xs:simpleType>
      </xs:attribute>
   </xs:attributeGroup>
   <xs:attributeGroup name="valign.attribute">
      <xs:attribute name="valign">
         <xs:simpleType>
            <xs:restriction base="xs:token">
               <xs:enumeration value="bottom"/>
               <xs:enumeration value="middle"/>
               <xs:enumeration value="top"/>
            </xs:restriction>
         </xs:simpleType>
      </xs:attribute>
   </xs:attributeGroup>
   <xs:attributeGroup name="column-spec.attributes">
      <xs:attribute name="colname"/>
      <xs:attribute name="namest"/>
      <xs:attribute name="nameend"/>
      <xs:attribute name="spanname"/>
   </xs:attributeGroup>
   <xs:element name="tgroup">
      <xs:complexType>
         <xs:sequence>
            <xs:element ref="db:colspec" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element ref="db:spanspec" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element ref="db:thead" minOccurs="0" maxOccurs="1"/>
            <xs:element ref="db:tfoot" minOccurs="0" maxOccurs="1"/>
            <xs:element ref="db:tbody" minOccurs="1" maxOccurs="1"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attribute name="tgroupstyle"/>
         <xs:attribute name="cols" type="xs:positiveInteger"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attributeGroup ref="db:char.attribute"/>
         <xs:attributeGroup ref="db:charoff.attribute"/>
         <xs:attributeGroup ref="db:colsep.attribute"/>
         <xs:attributeGroup ref="db:rowsep.attribute"/>
         <xs:attributeGroup ref="db:align.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="colspec">
      <xs:complexType>
         <xs:complexContent>
            <xs:restriction base="xs:anyType">
               <xs:attribute name="role"/>
               <xs:attribute name="colnum" type="xs:positiveInteger"/>
               <xs:attribute name="colwidth"/>
               <xs:attributeGroup ref="db:common.attributes"/>
               <xs:attributeGroup ref="db:common.linking.attributes"/>
               <xs:attributeGroup ref="db:char.attribute"/>
               <xs:attributeGroup ref="db:charoff.attribute"/>
               <xs:attributeGroup ref="db:colsep.attribute"/>
               <xs:attributeGroup ref="db:rowsep.attribute"/>
               <xs:attributeGroup ref="db:align.attribute"/>
               <xs:attribute name="colname"/>
            </xs:restriction>
         </xs:complexContent>
      </xs:complexType>
   </xs:element>
   <xs:element name="spanspec">
      <xs:complexType>
         <xs:complexContent>
            <xs:restriction base="xs:anyType">
               <xs:attribute name="role"/>
               <xs:attributeGroup ref="db:common.attributes"/>
               <xs:attributeGroup ref="db:common.linking.attributes"/>
               <xs:attribute name="spanname"/>
               <xs:attribute name="namest"/>
               <xs:attribute name="nameend"/>
               <xs:attributeGroup ref="db:char.attribute"/>
               <xs:attributeGroup ref="db:charoff.attribute"/>
               <xs:attributeGroup ref="db:colsep.attribute"/>
               <xs:attributeGroup ref="db:rowsep.attribute"/>
               <xs:attributeGroup ref="db:align.attribute"/>
            </xs:restriction>
         </xs:complexContent>
      </xs:complexType>
   </xs:element>
   <xs:element name="row">
      <xs:complexType>
         <xs:choice minOccurs="1" maxOccurs="unbounded">
            <xs:element ref="db:entry"/>
            <xs:element ref="db:entrytbl"/>
         </xs:choice>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attributeGroup ref="db:rowsep.attribute"/>
         <xs:attributeGroup ref="db:valign.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="entry">
      <xs:complexType mixed="true">
         <xs:choice>
            <xs:group ref="db:all.inlines" minOccurs="0" maxOccurs="unbounded"/>
            <xs:group ref="db:all-i.blocks" minOccurs="0" maxOccurs="unbounded"/>
         </xs:choice>
         <xs:attribute name="role"/>
         <xs:attribute name="morerows" type="xs:nonNegativeInteger"/>
         <xs:attribute name="rotate" type="db:zeroorone.type"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attributeGroup ref="db:valign.attribute"/>
         <xs:attributeGroup ref="db:char.attribute"/>
         <xs:attributeGroup ref="db:charoff.attribute"/>
         <xs:attributeGroup ref="db:colsep.attribute"/>
         <xs:attributeGroup ref="db:rowsep.attribute"/>
         <xs:attributeGroup ref="db:column-spec.attributes"/>
         <xs:attributeGroup ref="db:align.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="entrytbl">
      <xs:complexType>
         <xs:sequence>
            <xs:element ref="db:colspec" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element ref="db:spanspec" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element ref="db:thead" minOccurs="0" maxOccurs="1"/>
            <xs:element ref="db:tbody"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attribute name="tgroupstyle"/>
         <xs:attribute name="cols" type="xs:positiveInteger"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attributeGroup ref="db:char.attribute"/>
         <xs:attributeGroup ref="db:charoff.attribute"/>
         <xs:attributeGroup ref="db:colsep.attribute"/>
         <xs:attributeGroup ref="db:rowsep.attribute"/>
         <xs:attributeGroup ref="db:column-spec.attributes"/>
         <xs:attributeGroup ref="db:align.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="msgset">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.only" minOccurs="0"/>
            <xs:choice>
               <xs:element ref="db:msgentry" maxOccurs="unbounded"/>
               <xs:element ref="db:simplemsgentry" maxOccurs="unbounded"/>
            </xs:choice>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="msgentry">
      <xs:complexType>
         <xs:sequence>
            <xs:element ref="db:msg" maxOccurs="unbounded"/>
            <xs:element ref="db:msginfo" minOccurs="0"/>
            <xs:element ref="db:msgexplan" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="simplemsgentry">
      <xs:complexType>
         <xs:sequence>
            <xs:element ref="db:msgtext"/>
            <xs:element ref="db:msgexplan" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attribute name="msgaud"/>
         <xs:attribute name="msgorig"/>
         <xs:attribute name="msglevel"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="msg">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.only" minOccurs="0"/>
            <xs:element ref="db:msgmain"/>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
               <xs:element ref="db:msgsub"/>
               <xs:element ref="db:msgrel"/>
            </xs:choice>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="msgmain">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.only" minOccurs="0"/>
            <xs:element ref="db:msgtext"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="msgsub">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.only" minOccurs="0"/>
            <xs:element ref="db:msgtext"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="msgrel">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.only" minOccurs="0"/>
            <xs:element ref="db:msgtext"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="msgtext" type="db:block.type"/>
   <xs:element name="msginfo">
      <xs:complexType>
         <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element ref="db:msglevel"/>
            <xs:element ref="db:msgorig"/>
            <xs:element ref="db:msgaud"/>
         </xs:choice>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="msglevel" type="db:limited.text"/>
   <xs:element name="msgorig" type="db:limited.text"/>
   <xs:element name="msgaud" type="db:limited.text"/>
   <xs:element name="msgexplan" type="db:block.container"/>
   <xs:element name="qandaset">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.only" minOccurs="0"/>
            <xs:group ref="db:all.blocks" minOccurs="0" maxOccurs="unbounded"/>
            <xs:choice>
               <xs:element ref="db:qandadiv" maxOccurs="unbounded"/>
               <xs:element ref="db:qandaentry" maxOccurs="unbounded"/>
            </xs:choice>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attribute name="defaultlabel">
            <xs:simpleType>
               <xs:restriction base="xs:token">
                  <xs:enumeration value="none"/>
                  <xs:enumeration value="number"/>
                  <xs:enumeration value="qanda"/>
               </xs:restriction>
            </xs:simpleType>
         </xs:attribute>
      </xs:complexType>
   </xs:element>
   <xs:element name="qandadiv">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.only" minOccurs="0"/>
            <xs:group ref="db:all.blocks" minOccurs="0" maxOccurs="unbounded"/>
            <xs:choice>
               <xs:element ref="db:qandadiv" maxOccurs="unbounded"/>
               <xs:element ref="db:qandaentry" maxOccurs="unbounded"/>
            </xs:choice>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="qandaentry">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.only" minOccurs="0"/>
            <xs:element ref="db:question"/>
            <xs:element ref="db:answer" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="question">
      <xs:complexType>
         <xs:sequence>
            <xs:element ref="db:label" minOccurs="0"/>
            <xs:group ref="db:all.blocks" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="answer">
      <xs:complexType>
         <xs:sequence>
            <xs:element ref="db:label" minOccurs="0"/>
            <xs:group ref="db:all.blocks" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="label" type="db:limited.text"/>
   <xs:group name="math.inlines">
      <xs:choice>
         <xs:element ref="db:inlineequation"/>
      </xs:choice>
   </xs:group>
   <xs:group name="equation.content">
      <xs:choice>
         <xs:choice>
            <xs:element ref="db:mediaobject" maxOccurs="unbounded"/>
            <xs:element ref="db:mathphrase" maxOccurs="unbounded"/>
         </xs:choice>
         <xs:any namespace="http://www.w3.org/1998/Math/MathML" processContents="lax"/>
      </xs:choice>
   </xs:group>
   <xs:group name="inlineequation.content">
      <xs:choice>
         <xs:choice>
            <xs:element ref="db:inlinemediaobject" maxOccurs="unbounded"/>
            <xs:element ref="db:mathphrase" maxOccurs="unbounded"/>
         </xs:choice>
         <xs:any namespace="http://www.w3.org/1998/Math/MathML" processContents="lax"/>
      </xs:choice>
   </xs:group>
   <xs:element name="equation">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.only" minOccurs="0"/>
            <xs:element ref="db:alt" minOccurs="0"/>
            <xs:group ref="db:equation.content"/>
            <xs:element ref="db:caption" minOccurs="0"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attributeGroup ref="db:label.attribute"/>
         <xs:attributeGroup ref="db:pgwide.attribute"/>
         <xs:attributeGroup ref="db:floatstyle.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="informalequation">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.forbidden" minOccurs="0"/>
            <xs:element ref="db:alt" minOccurs="0"/>
            <xs:group ref="db:equation.content"/>
            <xs:element ref="db:caption" minOccurs="0"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attributeGroup ref="db:pgwide.attribute"/>
         <xs:attributeGroup ref="db:floatstyle.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="inlineequation">
      <xs:complexType>
         <xs:sequence>
            <xs:element ref="db:alt" minOccurs="0"/>
            <xs:group ref="db:inlineequation.content"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="mathphrase">
      <xs:complexType mixed="true">
         <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:group ref="db:ubiq.inlines"/>
            <xs:group ref="db:_emphasis"/>
         </xs:choice>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:group name="markup.inlines">
      <xs:choice>
         <xs:element ref="db:tag"/>
         <xs:element ref="db:markup"/>
         <xs:element ref="db:token"/>
         <xs:element ref="db:symbol"/>
         <xs:element ref="db:literal"/>
         <xs:element ref="db:code"/>
         <xs:element ref="db:constant"/>
         <xs:element ref="db:email"/>
         <xs:element ref="db:uri"/>
      </xs:choice>
   </xs:group>
   <xs:element name="markup" type="db:limited.text"/>
   <xs:element name="tag">
      <xs:complexType mixed="true">
         <xs:complexContent>
            <xs:extension base="db:limited.text">
               <xs:attribute name="class">
                  <xs:simpleType>
                     <xs:restriction base="xs:token">
                        <xs:enumeration value="attribute"/>
                        <xs:enumeration value="attvalue"/>
                        <xs:enumeration value="element"/>
                        <xs:enumeration value="emptytag"/>
                        <xs:enumeration value="endtag"/>
                        <xs:enumeration value="genentity"/>
                        <xs:enumeration value="localname"/>
                        <xs:enumeration value="namespace"/>
                        <xs:enumeration value="numcharref"/>
                        <xs:enumeration value="paramentity"/>
                        <xs:enumeration value="pi"/>
                        <xs:enumeration value="prefix"/>
                        <xs:enumeration value="comment"/>
                        <xs:enumeration value="starttag"/>
                        <xs:enumeration value="xmlpi"/>
                     </xs:restriction>
                  </xs:simpleType>
               </xs:attribute>
               <xs:attribute name="namespace" type="xs:anyURI"/>
            </xs:extension>
         </xs:complexContent>
      </xs:complexType>
   </xs:element>
   <xs:element name="symbol">
      <xs:complexType mixed="true">
         <xs:complexContent>
            <xs:extension base="db:limited.text">
               <xs:attribute name="class">
                  <xs:simpleType>
                     <xs:restriction base="xs:token">
                        <xs:enumeration value="limit"/>
                     </xs:restriction>
                  </xs:simpleType>
               </xs:attribute>
            </xs:extension>
         </xs:complexContent>
      </xs:complexType>
   </xs:element>
   <xs:element name="token" type="db:limited.text"/>
   <xs:element name="literal" type="db:limited.text"/>
   <xs:element name="code">
      <xs:complexType mixed="true">
         <xs:complexContent>
            <xs:extension base="db:limited.text">
               <xs:attribute name="language"/>
            </xs:extension>
         </xs:complexContent>
      </xs:complexType>
   </xs:element>
   <xs:element name="constant">
      <xs:complexType mixed="true">
         <xs:complexContent>
            <xs:extension base="db:limited.text">
               <xs:attribute name="class">
                  <xs:simpleType>
                     <xs:restriction base="xs:token">
                        <xs:enumeration value="limit"/>
                     </xs:restriction>
                  </xs:simpleType>
               </xs:attribute>
            </xs:extension>
         </xs:complexContent>
      </xs:complexType>
   </xs:element>
   <xs:element name="productname">
      <xs:complexType mixed="true">
         <xs:complexContent>
            <xs:extension base="db:limited.text">
               <xs:attribute name="class">
                  <xs:simpleType>
                     <xs:restriction base="xs:token">
                        <xs:enumeration value="copyright"/>
                        <xs:enumeration value="registered"/>
                        <xs:enumeration value="service"/>
                        <xs:enumeration value="trade"/>
                     </xs:restriction>
                  </xs:simpleType>
               </xs:attribute>
            </xs:extension>
         </xs:complexContent>
      </xs:complexType>
   </xs:element>
   <xs:element name="productnumber" type="db:limited.text"/>
   <xs:element name="database">
      <xs:complexType mixed="true">
         <xs:complexContent>
            <xs:extension base="db:limited.text">
               <xs:attribute name="class">
                  <xs:simpleType>
                     <xs:restriction base="xs:token">
                        <xs:enumeration value="altkey"/>
                        <xs:enumeration value="constraint"/>
                        <xs:enumeration value="datatype"/>
                        <xs:enumeration value="field"/>
                        <xs:enumeration value="foreignkey"/>
                        <xs:enumeration value="group"/>
                        <xs:enumeration value="index"/>
                        <xs:enumeration value="key1"/>
                        <xs:enumeration value="key2"/>
                        <xs:enumeration value="name"/>
                        <xs:enumeration value="primarykey"/>
                        <xs:enumeration value="procedure"/>
                        <xs:enumeration value="record"/>
                        <xs:enumeration value="rule"/>
                        <xs:enumeration value="secondarykey"/>
                        <xs:enumeration value="table"/>
                        <xs:enumeration value="user"/>
                        <xs:enumeration value="view"/>
                     </xs:restriction>
                  </xs:simpleType>
               </xs:attribute>
            </xs:extension>
         </xs:complexContent>
      </xs:complexType>
   </xs:element>
   <xs:element name="application">
      <xs:complexType mixed="true">
         <xs:complexContent>
            <xs:extension base="db:limited.text">
               <xs:attribute name="class">
                  <xs:simpleType>
                     <xs:restriction base="xs:token">
                        <xs:enumeration value="hardware"/>
                        <xs:enumeration value="software"/>
                     </xs:restriction>
                  </xs:simpleType>
               </xs:attribute>
            </xs:extension>
         </xs:complexContent>
      </xs:complexType>
   </xs:element>
   <xs:element name="hardware" type="db:limited.text"/>
   <xs:group name="gui.inlines">
      <xs:choice>
         <xs:element ref="db:guiicon"/>
         <xs:element ref="db:guibutton"/>
         <xs:element ref="db:guimenuitem"/>
         <xs:element ref="db:guimenu"/>
         <xs:element ref="db:guisubmenu"/>
         <xs:element ref="db:guilabel"/>
         <xs:element ref="db:menuchoice"/>
         <xs:element ref="db:mousebutton"/>
      </xs:choice>
   </xs:group>
   <xs:complexType name="gui.inline.type" mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
         <xs:group ref="db:_text"/>
         <xs:element ref="db:accel"/>
      </xs:choice>
      <xs:attribute name="role"/>
      <xs:attributeGroup ref="db:common.attributes"/>
      <xs:attributeGroup ref="db:common.linking.attributes"/>
   </xs:complexType>
   <xs:element name="guibutton" type="db:gui.inline.type"/>
   <xs:element name="guiicon" type="db:gui.inline.type"/>
   <xs:element name="guilabel" type="db:gui.inline.type"/>
   <xs:element name="guimenu" type="db:gui.inline.type"/>
   <xs:element name="guimenuitem" type="db:gui.inline.type"/>
   <xs:element name="guisubmenu" type="db:gui.inline.type"/>
   <xs:element name="menuchoice">
      <xs:complexType mixed="true">
         <xs:sequence>
            <xs:element ref="db:shortcut" minOccurs="0"/>
            <xs:choice maxOccurs="unbounded">
               <xs:element ref="db:guibutton"/>
               <xs:element ref="db:guiicon"/>
               <xs:element ref="db:guilabel"/>
               <xs:element ref="db:guimenu"/>
               <xs:element ref="db:guimenuitem"/>
               <xs:element ref="db:guisubmenu"/>
            </xs:choice>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="mousebutton" type="db:limited.text"/>
   <xs:group name="keyboard.inlines">
      <xs:choice>
         <xs:element ref="db:keycombo"/>
         <xs:element ref="db:keycap"/>
         <xs:element ref="db:keycode"/>
         <xs:element ref="db:keysym"/>
         <xs:element ref="db:shortcut"/>
         <xs:element ref="db:accel"/>
      </xs:choice>
   </xs:group>
   <xs:element name="keycap">
      <xs:complexType mixed="true">
         <xs:complexContent>
            <xs:extension base="db:limited.text">
               <xs:attribute name="function">
                  <xs:simpleType>
                     <xs:restriction base="xs:token">
                        <xs:enumeration value="alt"/>
                        <xs:enumeration value="backspace"/>
                        <xs:enumeration value="command"/>
                        <xs:enumeration value="control"/>
                        <xs:enumeration value="delete"/>
                        <xs:enumeration value="down"/>
                        <xs:enumeration value="end"/>
                        <xs:enumeration value="enter"/>
                        <xs:enumeration value="escape"/>
                        <xs:enumeration value="home"/>
                        <xs:enumeration value="insert"/>
                        <xs:enumeration value="left"/>
                        <xs:enumeration value="meta"/>
                        <xs:enumeration value="option"/>
                        <xs:enumeration value="pagedown"/>
                        <xs:enumeration value="pageup"/>
                        <xs:enumeration value="right"/>
                        <xs:enumeration value="shift"/>
                        <xs:enumeration value="space"/>
                        <xs:enumeration value="tab"/>
                        <xs:enumeration value="up"/>
                        <xs:enumeration value="other"/>
                     </xs:restriction>
                  </xs:simpleType>
               </xs:attribute>
               <xs:attribute name="otherfunction"/>
            </xs:extension>
         </xs:complexContent>
      </xs:complexType>
   </xs:element>
   <xs:element name="keycode" type="db:limited.text"/>
   <xs:group name="keycombination.contentmodel">
      <xs:choice>
         <xs:element ref="db:keycap"/>
         <xs:element ref="db:keycombo"/>
         <xs:element ref="db:keysym"/>
         <xs:element ref="db:mousebutton"/>
      </xs:choice>
   </xs:group>
   <xs:element name="keycombo">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:keycombination.contentmodel" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attribute name="action">
            <xs:simpleType>
               <xs:restriction base="xs:token">
                  <xs:enumeration value="click"/>
                  <xs:enumeration value="double-click"/>
                  <xs:enumeration value="press"/>
                  <xs:enumeration value="seq"/>
                  <xs:enumeration value="simul"/>
                  <xs:enumeration value="other"/>
               </xs:restriction>
            </xs:simpleType>
         </xs:attribute>
         <xs:attribute name="otheraction"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="keysym" type="db:limited.text"/>
   <xs:element name="accel" type="db:limited.text"/>
   <xs:element name="shortcut">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:keycombination.contentmodel" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attribute name="action">
            <xs:simpleType>
               <xs:restriction base="xs:token">
                  <xs:enumeration value="click"/>
                  <xs:enumeration value="double-click"/>
                  <xs:enumeration value="press"/>
                  <xs:enumeration value="seq"/>
                  <xs:enumeration value="simul"/>
                  <xs:enumeration value="other"/>
               </xs:restriction>
            </xs:simpleType>
         </xs:attribute>
         <xs:attribute name="otheraction"/>
      </xs:complexType>
   </xs:element>
   <xs:group name="os.inlines">
      <xs:choice>
         <xs:element ref="db:prompt"/>
         <xs:element ref="db:envar"/>
         <xs:element ref="db:filename"/>
         <xs:element ref="db:command"/>
         <xs:element ref="db:computeroutput"/>
         <xs:element ref="db:userinput"/>
      </xs:choice>
   </xs:group>
   <xs:group name="computeroutput.inlines">
      <xs:choice>
         <xs:group ref="db:ubiq.inlines"/>
         <xs:group ref="db:os.inlines"/>
         <xs:group ref="db:technical.inlines"/>
         <xs:element ref="db:co"/>
         <xs:group ref="db:markup.inlines"/>
      </xs:choice>
   </xs:group>
   <xs:group name="userinput.inlines">
      <xs:choice>
         <xs:group ref="db:ubiq.inlines"/>
         <xs:group ref="db:os.inlines"/>
         <xs:group ref="db:technical.inlines"/>
         <xs:element ref="db:co"/>
         <xs:group ref="db:markup.inlines"/>
         <xs:group ref="db:gui.inlines"/>
         <xs:group ref="db:keyboard.inlines"/>
      </xs:choice>
   </xs:group>
   <xs:group name="prompt.inlines">
      <xs:choice>
         <xs:group ref="db:_text"/>
         <xs:element ref="db:co"/>
      </xs:choice>
   </xs:group>
   <xs:element name="prompt">
      <xs:complexType mixed="true">
         <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:group ref="db:prompt.inlines"/>
         </xs:choice>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="envar" type="db:limited.text"/>
   <xs:element name="filename">
      <xs:complexType mixed="true">
         <xs:complexContent>
            <xs:extension base="db:limited.text">
               <xs:attribute name="class">
                  <xs:simpleType>
                     <xs:restriction base="xs:token">
                        <xs:enumeration value="devicefile"/>
                        <xs:enumeration value="directory"/>
                        <xs:enumeration value="extension"/>
                        <xs:enumeration value="headerfile"/>
                        <xs:enumeration value="libraryfile"/>
                        <xs:enumeration value="partition"/>
                        <xs:enumeration value="symlink"/>
                     </xs:restriction>
                  </xs:simpleType>
               </xs:attribute>
               <xs:attribute name="path"/>
            </xs:extension>
         </xs:complexContent>
      </xs:complexType>
   </xs:element>
   <xs:element name="command" type="db:limited.text"/>
   <xs:element name="computeroutput">
      <xs:complexType mixed="true">
         <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:group ref="db:computeroutput.inlines"/>
         </xs:choice>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="userinput">
      <xs:complexType mixed="true">
         <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:group ref="db:userinput.inlines"/>
         </xs:choice>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="cmdsynopsis">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.forbidden" minOccurs="0"/>
            <xs:choice maxOccurs="unbounded">
               <xs:element ref="db:command"/>
               <xs:element ref="db:arg"/>
               <xs:element ref="db:group"/>
               <xs:element ref="db:sbr"/>
            </xs:choice>
            <xs:element ref="db:synopfragment" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attribute name="sepchar"/>
         <xs:attribute name="cmdlength"/>
         <xs:attributeGroup ref="db:label.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:attributeGroup name="rep.attribute">
      <xs:attribute name="rep">
         <xs:simpleType>
            <xs:restriction base="xs:token">
               <xs:enumeration value="norepeat"/>
               <xs:enumeration value="repeat"/>
            </xs:restriction>
         </xs:simpleType>
      </xs:attribute>
   </xs:attributeGroup>
   <xs:attributeGroup name="choice.attribute">
      <xs:attribute name="choice">
         <xs:simpleType>
            <xs:restriction base="xs:token">
               <xs:enumeration value="opt"/>
               <xs:enumeration value="plain"/>
               <xs:enumeration value="req"/>
            </xs:restriction>
         </xs:simpleType>
      </xs:attribute>
   </xs:attributeGroup>
   <xs:element name="arg">
      <xs:complexType mixed="true">
         <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:group ref="db:_text"/>
            <xs:element ref="db:arg"/>
            <xs:element ref="db:group"/>
            <xs:element ref="db:option"/>
            <xs:element ref="db:synopfragmentref"/>
            <xs:element ref="db:sbr"/>
         </xs:choice>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attributeGroup ref="db:rep.attribute"/>
         <xs:attributeGroup ref="db:choice.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="group">
      <xs:complexType>
         <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element ref="db:arg"/>
            <xs:element ref="db:group"/>
            <xs:element ref="db:option"/>
            <xs:element ref="db:synopfragmentref"/>
            <xs:element ref="db:replaceable"/>
            <xs:element ref="db:sbr"/>
         </xs:choice>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attributeGroup ref="db:rep.attribute"/>
         <xs:attributeGroup ref="db:choice.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="sbr">
      <xs:complexType>
         <xs:complexContent>
            <xs:restriction base="xs:anyType">
               <xs:attribute name="role"/>
               <xs:attributeGroup ref="db:common.attributes"/>
            </xs:restriction>
         </xs:complexContent>
      </xs:complexType>
   </xs:element>
   <xs:element name="synopfragment">
      <xs:complexType>
         <xs:choice maxOccurs="unbounded">
            <xs:element ref="db:arg"/>
            <xs:element ref="db:group"/>
         </xs:choice>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="synopfragmentref">
      <xs:complexType mixed="true">
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="synopsis">
      <xs:complexType mixed="true">
         <xs:complexContent>
            <xs:extension base="db:verbatim.monospaced"/>
         </xs:complexContent>
      </xs:complexType>
   </xs:element>
   <xs:element name="funcsynopsis">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:_info.title.forbidden"/>
            <xs:choice maxOccurs="unbounded">
               <xs:element ref="db:funcsynopsisinfo"/>
               <xs:element ref="db:funcprototype"/>
            </xs:choice>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attributeGroup ref="db:verbatim.language.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="funcsynopsisinfo">
      <xs:complexType mixed="true">
         <xs:complexContent>
            <xs:extension base="db:verbatim.monospaced"/>
         </xs:complexContent>
      </xs:complexType>
   </xs:element>
   <xs:element name="funcprototype">
      <xs:complexType>
         <xs:sequence>
            <xs:element ref="db:modifier" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element ref="db:funcdef"/>
            <xs:choice>
               <xs:element ref="db:void"/>
               <xs:element ref="db:varargs"/>
               <xs:sequence>
                  <xs:element ref="db:paramdef" maxOccurs="unbounded"/>
                  <xs:element ref="db:varargs" minOccurs="0"/>
               </xs:sequence>
            </xs:choice>
            <xs:element ref="db:modifier" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="funcdef">
      <xs:complexType mixed="true">
         <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:group ref="db:_text"/>
            <xs:element ref="db:type"/>
            <xs:element ref="db:function"/>
         </xs:choice>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="function" type="db:limited.text"/>
   <xs:element name="void">
      <xs:complexType>
         <xs:complexContent>
            <xs:restriction base="xs:anyType">
               <xs:attribute name="role"/>
               <xs:attributeGroup ref="db:common.attributes"/>
               <xs:attributeGroup ref="db:common.linking.attributes"/>
            </xs:restriction>
         </xs:complexContent>
      </xs:complexType>
   </xs:element>
   <xs:element name="varargs">
      <xs:complexType>
         <xs:complexContent>
            <xs:restriction base="xs:anyType">
               <xs:attribute name="role"/>
               <xs:attributeGroup ref="db:common.attributes"/>
               <xs:attributeGroup ref="db:common.linking.attributes"/>
            </xs:restriction>
         </xs:complexContent>
      </xs:complexType>
   </xs:element>
   <xs:element name="paramdef">
      <xs:complexType mixed="true">
         <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:group ref="db:_text"/>
            <xs:element ref="db:initializer"/>
            <xs:element ref="db:type"/>
            <xs:element ref="db:parameter"/>
            <xs:element ref="db:funcparams"/>
         </xs:choice>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attributeGroup ref="db:choice.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="funcparams" type="db:limited.text"/>
   <xs:element name="classsynopsis">
      <xs:complexType>
         <xs:sequence>
            <xs:group ref="db:oo.inlines"/>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
               <xs:element ref="db:classsynopsisinfo"/>
               <xs:element ref="db:methodsynopsis"/>
               <xs:element ref="db:constructorsynopsis"/>
               <xs:element ref="db:destructorsynopsis"/>
               <xs:element ref="db:fieldsynopsis"/>
            </xs:choice>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attributeGroup ref="db:verbatim.language.attribute"/>
         <xs:attribute name="class">
            <xs:simpleType>
               <xs:restriction base="xs:token">
                  <xs:enumeration value="class"/>
                  <xs:enumeration value="interface"/>
               </xs:restriction>
            </xs:simpleType>
         </xs:attribute>
      </xs:complexType>
   </xs:element>
   <xs:element name="classsynopsisinfo">
      <xs:complexType mixed="true">
         <xs:complexContent>
            <xs:extension base="db:verbatim.monospaced"/>
         </xs:complexContent>
      </xs:complexType>
   </xs:element>
   <xs:element name="ooclass">
      <xs:complexType>
         <xs:sequence>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
               <xs:element ref="db:package"/>
               <xs:element ref="db:modifier"/>
            </xs:choice>
            <xs:element ref="db:classname"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="oointerface">
      <xs:complexType>
         <xs:sequence>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
               <xs:element ref="db:package"/>
               <xs:element ref="db:modifier"/>
            </xs:choice>
            <xs:element ref="db:interfacename"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="ooexception">
      <xs:complexType>
         <xs:sequence>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
               <xs:element ref="db:package"/>
               <xs:element ref="db:modifier"/>
            </xs:choice>
            <xs:element ref="db:exceptionname"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="modifier">
      <xs:complexType mixed="true">
         <xs:complexContent>
            <xs:extension base="db:limited.text">
               <xs:attribute ref="xml:space"/>
            </xs:extension>
         </xs:complexContent>
      </xs:complexType>
   </xs:element>
   <xs:element name="interfacename" type="db:limited.text"/>
   <xs:element name="exceptionname" type="db:limited.text"/>
   <xs:element name="fieldsynopsis">
      <xs:complexType>
         <xs:sequence>
            <xs:element ref="db:modifier" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element ref="db:type" minOccurs="0"/>
            <xs:element ref="db:varname"/>
            <xs:element ref="db:initializer" minOccurs="0"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attributeGroup ref="db:verbatim.language.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="initializer" type="db:limited.text"/>
   <xs:element name="constructorsynopsis">
      <xs:complexType>
         <xs:sequence>
            <xs:element ref="db:modifier" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element ref="db:methodname" minOccurs="0"/>
            <xs:choice>
               <xs:element ref="db:methodparam" maxOccurs="unbounded"/>
               <xs:element ref="db:void" minOccurs="0"/>
            </xs:choice>
            <xs:element ref="db:exceptionname" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attributeGroup ref="db:verbatim.language.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="destructorsynopsis">
      <xs:complexType>
         <xs:sequence>
            <xs:element ref="db:modifier" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element ref="db:methodname" minOccurs="0"/>
            <xs:choice>
               <xs:element ref="db:methodparam" maxOccurs="unbounded"/>
               <xs:element ref="db:void" minOccurs="0"/>
            </xs:choice>
            <xs:element ref="db:exceptionname" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attributeGroup ref="db:verbatim.language.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="methodsynopsis">
      <xs:complexType>
         <xs:sequence>
            <xs:element ref="db:modifier" minOccurs="0" maxOccurs="unbounded"/>
            <xs:choice minOccurs="0">
               <xs:element ref="db:type"/>
               <xs:element ref="db:void"/>
            </xs:choice>
            <xs:element ref="db:methodname"/>
            <xs:choice>
               <xs:element ref="db:methodparam" maxOccurs="unbounded"/>
               <xs:element ref="db:void" minOccurs="0"/>
            </xs:choice>
            <xs:element ref="db:exceptionname" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element ref="db:modifier" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attributeGroup ref="db:verbatim.language.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="methodname" type="db:limited.text"/>
   <xs:element name="methodparam">
      <xs:complexType>
         <xs:sequence><!-- FIXME: Relaxed to avoid ambiguity wrt db:modifier --><xs:choice maxOccurs="unbounded">
               <xs:element ref="db:modifier"/>
               <xs:element ref="db:type"/>
               <xs:element ref="db:parameter"/>
               <xs:element ref="db:initializer"/>
               <xs:element ref="db:funcparams"/>
            </xs:choice>
         </xs:sequence>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attributeGroup ref="db:rep.attribute"/>
         <xs:attributeGroup ref="db:choice.attribute"/>
      </xs:complexType>
   </xs:element>
   <xs:element name="varname" type="db:limited.text"/>
   <xs:element name="returnvalue" type="db:limited.text"/>
   <xs:element name="type" type="db:limited.text"/>
   <xs:element name="classname" type="db:limited.text"/>
   <xs:complexType name="admonition.type">
      <xs:sequence>
         <xs:group ref="db:_info.title.only"/>
         <xs:group ref="db:all.blocks" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="role"/>
      <xs:attributeGroup ref="db:common.attributes"/>
      <xs:attributeGroup ref="db:common.linking.attributes"/>
   </xs:complexType>
   <xs:element name="caution" type="db:admonition.type"/>
   <xs:element name="note" type="db:admonition.type"/>
   <xs:element name="tip" type="db:admonition.type"/>
   <xs:element name="important" type="db:admonition.type"/>
   <xs:element name="warning" type="db:admonition.type"/>
   <xs:group name="error.inlines">
      <xs:choice>
         <xs:element ref="db:errorcode"/>
         <xs:element ref="db:errortext"/>
         <xs:element ref="db:errorname"/>
         <xs:element ref="db:errortype"/>
      </xs:choice>
   </xs:group>
   <xs:element name="errorcode" type="db:limited.text"/>
   <xs:element name="errortext" type="db:limited.text"/>
   <xs:element name="errorname" type="db:limited.text"/>
   <xs:element name="errortype" type="db:limited.text"/>
   <xs:group name="systemitem.inlines">
      <xs:choice>
         <xs:group ref="db:_text"/>
         <xs:element ref="db:co"/>
      </xs:choice>
   </xs:group>
   <xs:element name="systemitem">
      <xs:complexType mixed="true">
         <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:group ref="db:systemitem.inlines"/>
         </xs:choice>
         <xs:attribute name="role"/>
         <xs:attributeGroup ref="db:common.attributes"/>
         <xs:attributeGroup ref="db:common.linking.attributes"/>
         <xs:attribute name="class">
            <xs:simpleType>
               <xs:restriction base="xs:token">
                  <xs:enumeration value="daemon"/>
                  <xs:enumeration value="domainname"/>
                  <xs:enumeration value="etheraddress"/>
                  <xs:enumeration value="event"/>
                  <xs:enumeration value="eventhandler"/>
                  <xs:enumeration value="filesystem"/>
                  <xs:enumeration value="fqdomainname"/>
                  <xs:enumeration value="groupname"/>
                  <xs:enumeration value="ipaddress"/>
                  <xs:enumeration value="library"/>
                  <xs:enumeration value="macro"/>
                  <xs:enumeration value="netmask"/>
                  <xs:enumeration value="newsgroup"/>
                  <xs:enumeration value="osname"/>
                  <xs:enumeration value="process"/>
                  <xs:enumeration value="protocol"/>
                  <xs:enumeration value="resource"/>
                  <xs:enumeration value="server"/>
                  <xs:enumeration value="service"/>
                  <xs:enumeration value="systemname"/>
                  <xs:enumeration value="username"/>
               </xs:restriction>
            </xs:simpleType>
         </xs:attribute>
      </xs:complexType>
   </xs:element>
   <xs:element name="option" type="db:limited.text"/>
   <xs:element name="optional" type="db:limited.text"/>
   <xs:element name="property" type="db:limited.text"/>
</xs:schema>
