<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://docbook.org/ns/docbook" xmlns:db="http://docbook.org/ns/docbook" xmlns:dbs="http://docbook.org/ns/docbook-slides" xmlns:xlink="http://www.w3.org/1999/xlink">
  <xs:import namespace="http://docbook.org/ns/docbook-slides" schemaLocation="slides.xsd"/>
  <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"/>
  <!--  DocBook V5.0CR5 -->
  <!-- See http://docbook.org/ns/docbook -->
  <!--
    This file is part of DocBook V5.0
    
    Copyright 1992-2008 HaL Computer Systems, Inc.,
    O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
    Corporation, Norman Walsh, Sun Microsystems, Inc., and the
    Organization for the Advancement of Structured Information
    Standards (OASIS).
    
    Release: $Id: docbook.rnc 7661 2008-02-06 13:52:59Z nwalsh $
    
    Permission to use, copy, modify and distribute the DocBook schema
    and its accompanying documentation for any purpose and without fee
    is hereby granted in perpetuity, provided that the above copyright
    notice and this paragraph appear in all copies. The copyright
    holders make no representation about the suitability of the schema
    for any purpose. It is provided "as is" without expressed or implied
    warranty.
    
    If you modify the DocBook schema in any way, label your schema as a
    variant of DocBook. See the reference documentation
    (http://docbook.org/tdg5/en/html/ch05.html#s-notdocbook)
    for more information.
    
    Please direct all questions, bug reports, or suggestions for changes
    to the docbook@lists.oasis-open.org mailing list. For more
    information, see http://www.oasis-open.org/docbook/.
    
    ======================================================================
  -->
  <xs:group name="db._any">
    <xs:sequence>
      <xs:any processContents="skip">
        <xs:annotation>
          <xs:documentation>Any element from almost any namespace</xs:documentation>
        </xs:annotation>
      </xs:any>
    </xs:sequence>
  </xs:group>
  <xs:attributeGroup name="db.arch.attribute">
    <xs:attribute name="arch" use="required">
      <xs:annotation>
        <xs:documentation>Designates the computer or chip architecture to which the element applies</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.audience.attribute">
    <xs:attribute name="audience" use="required">
      <xs:annotation>
        <xs:documentation>Designates the intended audience to which the element applies, for example, system administrators, programmers, or new users.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.condition.attribute">
    <xs:attribute name="condition" use="required">
      <xs:annotation>
        <xs:documentation>provides a standard place for application-specific effectivity</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.conformance.attribute">
    <xs:attribute name="conformance" use="required">
      <xs:annotation>
        <xs:documentation>Indicates standards conformance characteristics of the element</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.os.attribute">
    <xs:attribute name="os" use="required">
      <xs:annotation>
        <xs:documentation>Indicates the operating system to which the element is applicable</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.revision.attribute">
    <xs:attribute name="revision" use="required">
      <xs:annotation>
        <xs:documentation>Indicates the editorial revision to which the element belongs</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.security.attribute">
    <xs:attribute name="security" use="required">
      <xs:annotation>
        <xs:documentation>Indicates something about the security level associated with the element to which it applies</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.userlevel.attribute">
    <xs:attribute name="userlevel" use="required">
      <xs:annotation>
        <xs:documentation>Indicates the level of user experience for which the element applies</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.vendor.attribute">
    <xs:attribute name="vendor" use="required">
      <xs:annotation>
        <xs:documentation>Indicates the computer vendor to which the element applies.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.wordsize.attribute">
    <xs:attribute name="wordsize" use="required">
      <xs:annotation>
        <xs:documentation>Indicates the word size (width in bits) of the computer architecture to which the element applies</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.effectivity.attributes">
    <xs:attribute name="arch">
      <xs:annotation>
        <xs:documentation>Designates the computer or chip architecture to which the element applies</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="audience">
      <xs:annotation>
        <xs:documentation>Designates the intended audience to which the element applies, for example, system administrators, programmers, or new users.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="condition">
      <xs:annotation>
        <xs:documentation>provides a standard place for application-specific effectivity</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="conformance">
      <xs:annotation>
        <xs:documentation>Indicates standards conformance characteristics of the element</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="os">
      <xs:annotation>
        <xs:documentation>Indicates the operating system to which the element is applicable</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="revision">
      <xs:annotation>
        <xs:documentation>Indicates the editorial revision to which the element belongs</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="security">
      <xs:annotation>
        <xs:documentation>Indicates something about the security level associated with the element to which it applies</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="userlevel">
      <xs:annotation>
        <xs:documentation>Indicates the level of user experience for which the element applies</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="vendor">
      <xs:annotation>
        <xs:documentation>Indicates the computer vendor to which the element applies.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="wordsize">
      <xs:annotation>
        <xs:documentation>Indicates the word size (width in bits) of the computer architecture to which the element applies</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.endterm.attribute">
    <xs:attribute name="endterm" use="required" type="xs:IDREF">
      <xs:annotation>
        <xs:documentation>Points to the element whose content is to be used as the text of the link</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.linkend.attribute">
    <xs:attribute name="linkend" use="required" type="xs:IDREF">
      <xs:annotation>
        <xs:documentation>Points to an internal link target by identifying the value of its xml:id attribute</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.linkends.attribute">
    <xs:attribute name="linkends" use="required" type="xs:IDREFS">
      <xs:annotation>
        <xs:documentation>Points to one or more internal link targets by identifying the value of their xml:id attributes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.xlink.href.attribute">
    <xs:attribute ref="xlink:href" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.xlink.type.attribute">
    <xs:attributeGroup ref="xlink:type"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.xlink.role.attribute">
    <xs:attribute ref="xlink:role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.xlink.arcrole.attribute">
    <xs:attribute ref="xlink:arcrole" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.xlink.title.attribute">
    <xs:attribute ref="xlink:title"/>
  </xs:attributeGroup>
  <xs:simpleType name="db.xlink.show.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="new">
        <xs:annotation>
          <xs:documentation>An application traversing to the ending resource should load it in a new window, frame, pane, or other relevant presentation context.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="replace">
        <xs:annotation>
          <xs:documentation>An application traversing to the ending resource should load the resource in the same window, frame, pane, or other relevant presentation context in which the starting resource was loaded.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="embed">
        <xs:annotation>
          <xs:documentation>An application traversing to the ending resource should load its presentation in place of the presentation of the starting resource.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>The behavior of an application traversing to the ending resource is unconstrained by XLink. The application should look for other markup present in the link to determine the appropriate behavior.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="none">
        <xs:annotation>
          <xs:documentation>The behavior of an application traversing to the ending resource is unconstrained by this specification. No other markup is present to help the application determine the appropriate behavior.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.xlink.show.attribute">
    <xs:attribute ref="xlink:show" use="required"/>
  </xs:attributeGroup>
  <xs:simpleType name="db.xlink.actuate.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="onLoad">
        <xs:annotation>
          <xs:documentation>An application should traverse to the ending resource immediately on loading the starting resource.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="onRequest">
        <xs:annotation>
          <xs:documentation>An application should traverse from the starting resource to the ending resource only on a post-loading event triggered for the purpose of traversal.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>The behavior of an application traversing to the ending resource is unconstrained by this specification. The application should look for other markup present in the link to determine the appropriate behavior.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="none">
        <xs:annotation>
          <xs:documentation>The behavior of an application traversing to the ending resource is unconstrained by this specification. No other markup is present to help the application determine the appropriate behavior.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.xlink.actuate.attribute">
    <xs:attribute ref="xlink:actuate" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.href.attributes">
    <xs:attributeGroup ref="db:db.xlink.href.attribute"/>
    <xs:attributeGroup ref="xlink:type"/>
    <xs:attribute ref="xlink:role"/>
    <xs:attribute ref="xlink:arcrole"/>
    <xs:attributeGroup ref="db:db.xlink.title.attribute"/>
    <xs:attribute ref="xlink:show"/>
    <xs:attribute ref="xlink:actuate"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.xml.id.attribute">
    <xs:attribute ref="xml:id" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.version.attribute">
    <xs:attribute name="version" use="required">
      <xs:annotation>
        <xs:documentation>Specifies the DocBook version of the element and its descendants</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.xml.lang.attribute">
    <xs:attribute ref="xml:lang" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.xml.base.attribute">
    <xs:attribute ref="xml:base" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.remap.attribute">
    <xs:attribute name="remap" use="required">
      <xs:annotation>
        <xs:documentation>Provides the name or similar semantic identifier assigned to the content in some previous markup scheme</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.xreflabel.attribute">
    <xs:attribute name="xreflabel" use="required">
      <xs:annotation>
        <xs:documentation>Provides the text that is to be generated for a cross reference to the element</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.xrefstyle.attribute">
    <xs:attribute name="xrefstyle" use="required">
      <xs:annotation>
        <xs:documentation>Specifies a keyword or keywords identifying additional style information</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:simpleType name="db.revisionflag.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="changed">
        <xs:annotation>
          <xs:documentation>The element has been changed.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="added">
        <xs:annotation>
          <xs:documentation>The element is new (has been added to the document).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="deleted">
        <xs:annotation>
          <xs:documentation>The element has been deleted.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="off">
        <xs:annotation>
          <xs:documentation>Explicitly turns off revision markup for this element.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.revisionflag.attribute">
    <xs:attribute name="revisionflag" use="required" type="db:db.revisionflag.enumeration">
      <xs:annotation>
        <xs:documentation>Identifies the revision status of the element</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:simpleType name="db.dir.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="ltr">
        <xs:annotation>
          <xs:documentation>Left-to-right text</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="rtl">
        <xs:annotation>
          <xs:documentation>Right-to-left text</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lro">
        <xs:annotation>
          <xs:documentation>Left-to-right override</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="rlo">
        <xs:annotation>
          <xs:documentation>Right-to-left override</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.dir.attribute">
    <xs:attribute name="dir" use="required" type="db:db.dir.enumeration">
      <xs:annotation>
        <xs:documentation>Identifies the direction of text in an element</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.common.base.attributes">
    <xs:attribute name="version">
      <xs:annotation>
        <xs:documentation>Specifies the DocBook version of the element and its descendants</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute ref="xml:lang"/>
    <xs:attribute ref="xml:base"/>
    <xs:attribute name="remap">
      <xs:annotation>
        <xs:documentation>Provides the name or similar semantic identifier assigned to the content in some previous markup scheme</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="xreflabel">
      <xs:annotation>
        <xs:documentation>Provides the text that is to be generated for a cross reference to the element</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="revisionflag" type="db:db.revisionflag.enumeration">
      <xs:annotation>
        <xs:documentation>Identifies the revision status of the element</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="dir" type="db:db.dir.enumeration">
      <xs:annotation>
        <xs:documentation>Identifies the direction of text in an element</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attributeGroup ref="db:db.effectivity.attributes"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.common.idreq.attributes">
    <xs:attributeGroup ref="db:db.xml.id.attribute"/>
    <xs:attributeGroup ref="db:db.common.base.attributes"/>
    <xs:attribute name="annotations">
      <xs:annotation>
        <xs:documentation>Identifies one or more annotations that apply to this element</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.common.linking.attributes">
    <xs:attribute name="linkend" type="xs:IDREF">
      <xs:annotation>
        <xs:documentation>Points to an internal link target by identifying the value of its xml:id attribute</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute ref="xlink:href"/>
    <xs:attributeGroup ref="xlink:type"/>
    <xs:attribute ref="xlink:role"/>
    <xs:attribute ref="xlink:arcrole"/>
    <xs:attributeGroup ref="db:db.xlink.title.attribute"/>
    <xs:attribute ref="xlink:show"/>
    <xs:attribute ref="xlink:actuate"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.common.req.linking.attributes">
    <xs:attribute name="linkend" type="xs:IDREF">
      <xs:annotation>
        <xs:documentation>Points to an internal link target by identifying the value of its xml:id attribute</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute ref="xlink:href"/>
    <xs:attributeGroup ref="xlink:type"/>
    <xs:attribute ref="xlink:role"/>
    <xs:attribute ref="xlink:arcrole"/>
    <xs:attributeGroup ref="db:db.xlink.title.attribute"/>
    <xs:attribute ref="xlink:show"/>
    <xs:attribute ref="xlink:actuate"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.common.data.attributes">
    <xs:attribute name="format">
      <xs:annotation>
        <xs:documentation>Specifies the format of the data</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="fileref" type="xs:anyURI">
      <xs:annotation>
        <xs:documentation>Indentifies the location of the data by URI</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="entityref" type="xs:ENTITY">
      <xs:annotation>
        <xs:documentation>Identifies the location of the data by external identifier (entity name)</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:simpleType name="db.verbatim.continuation.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="continues">
        <xs:annotation>
          <xs:documentation>Line numbering continues from the immediately preceding element with the same name.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="restarts">
        <xs:annotation>
          <xs:documentation>Line numbering restarts (begins at 1, usually).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.verbatim.continuation.attribute">
    <xs:attribute name="continuation" use="required" type="db:db.verbatim.continuation.enumeration">
      <xs:annotation>
        <xs:documentation>Determines whether line numbering continues from the previous element or restarts.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:simpleType name="db.verbatim.linenumbering.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="numbered">
        <xs:annotation>
          <xs:documentation>Lines are numbered.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="unnumbered">
        <xs:annotation>
          <xs:documentation>Lines are not numbered.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.verbatim.linenumbering.attribute">
    <xs:attribute name="linenumbering" use="required" type="db:db.verbatim.linenumbering.enumeration">
      <xs:annotation>
        <xs:documentation>Determines whether lines are numbered.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.verbatim.startinglinenumber.attribute">
    <xs:attribute name="startinglinenumber" use="required" type="xs:integer">
      <xs:annotation>
        <xs:documentation>Specifies the initial line number.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.verbatim.language.attribute">
    <xs:attribute name="language" use="required">
      <xs:annotation>
        <xs:documentation>Identifies the language (i.e. programming language) of the verbatim content.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.verbatim.xml.space.attribute">
    <xs:attributeGroup ref="xml:space"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.verbatim.attributes">
    <xs:attribute name="continuation" type="db:db.verbatim.continuation.enumeration">
      <xs:annotation>
        <xs:documentation>Determines whether line numbering continues from the previous element or restarts.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="linenumbering" type="db:db.verbatim.linenumbering.enumeration">
      <xs:annotation>
        <xs:documentation>Determines whether lines are numbered.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="startinglinenumber" type="xs:integer">
      <xs:annotation>
        <xs:documentation>Specifies the initial line number.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="language">
      <xs:annotation>
        <xs:documentation>Identifies the language (i.e. programming language) of the verbatim content.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attributeGroup ref="xml:space"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.label.attribute">
    <xs:attribute name="label" use="required">
      <xs:annotation>
        <xs:documentation>Specifies an identifying string for presentation purposes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.width.characters.attribute">
    <xs:attribute name="width" use="required" type="xs:nonNegativeInteger">
      <xs:annotation>
        <xs:documentation>Specifies the width (in characters) of the element</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:simpleType name="db.spacing.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="compact">
        <xs:annotation>
          <xs:documentation>The spacing should be "compact".</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="normal">
        <xs:annotation>
          <xs:documentation>The spacing should be "normal".</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.spacing.attribute">
    <xs:attribute name="spacing" use="required" type="db:db.spacing.enumeration">
      <xs:annotation>
        <xs:documentation>Specifies (a hint about) the spacing of the content</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:simpleType name="db.pgwide.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="0">
        <xs:annotation>
          <xs:documentation>The element should be rendered in the current text flow (with the flow column width).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="1">
        <xs:annotation>
          <xs:documentation>The element should be rendered across the full text page.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.pgwide.attribute">
    <xs:attribute name="pgwide" use="required" type="db:db.pgwide.enumeration">
      <xs:annotation>
        <xs:documentation>Indicates if the element is rendered across the column or the page</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.language.attribute">
    <xs:attribute name="language" use="required">
      <xs:annotation>
        <xs:documentation>Identifies the language (i.e. programming language) of the content.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:simpleType name="db.performance.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="optional">
        <xs:annotation>
          <xs:documentation>The content describes an optional step or steps.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="required">
        <xs:annotation>
          <xs:documentation>The content describes a required step or steps.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.performance.attribute">
    <xs:attribute name="performance" use="required" type="db:db.performance.enumeration">
      <xs:annotation>
        <xs:documentation>Specifies if the content is required or optional.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.floatstyle.attribute">
    <xs:attribute name="floatstyle" use="required">
      <xs:annotation>
        <xs:documentation>Specifies style information to be used when rendering the float</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.width.attribute">
    <xs:attribute name="width" use="required">
      <xs:annotation>
        <xs:documentation>Specifies the width of the element</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.depth.attribute">
    <xs:attribute name="depth" use="required">
      <xs:annotation>
        <xs:documentation>Specifies the depth of the element</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.contentwidth.attribute">
    <xs:attribute name="contentwidth" use="required">
      <xs:annotation>
        <xs:documentation>Specifies the width of the content rectangle</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.contentdepth.attribute">
    <xs:attribute name="contentdepth" use="required">
      <xs:annotation>
        <xs:documentation>Specifies the depth of the content rectangle</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:simpleType name="db.scalefit.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="0">
        <xs:annotation>
          <xs:documentation>False (do not scale-to-fit; anamorphic scaling may occur)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="1">
        <xs:annotation>
          <xs:documentation>True (scale-to-fit; anamorphic scaling is forbidden)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.scale.attribute">
    <xs:attribute name="scale" use="required" type="xs:positiveInteger">
      <xs:annotation>
        <xs:documentation>Specifies the scaling factor</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:simpleType name="db.halign.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="center">
        <xs:annotation>
          <xs:documentation>Centered horizontally</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="char">
        <xs:annotation>
          <xs:documentation>Aligned horizontally on the specified character</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="justify">
        <xs:annotation>
          <xs:documentation>Fully justified (left and right margins or edges)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="left">
        <xs:annotation>
          <xs:documentation>Left aligned</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="right">
        <xs:annotation>
          <xs:documentation>Right aligned</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="db.valign.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="bottom">
        <xs:annotation>
          <xs:documentation>Aligned on the bottom of the region</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="middle">
        <xs:annotation>
          <xs:documentation>Centered vertically</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="top">
        <xs:annotation>
          <xs:documentation>Aligned on the top of the region</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="db.biblio.class.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="doi">
        <xs:annotation>
          <xs:documentation>A document object identifier.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="isbn">
        <xs:annotation>
          <xs:documentation>An international standard book number.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="isrn">
        <xs:annotation>
          <xs:documentation>An international standard technical report number (ISO 10444).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="issn">
        <xs:annotation>
          <xs:documentation>An international standard serial number.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="libraryofcongress">
        <xs:annotation>
          <xs:documentation>A Library of Congress reference number.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="pubsnumber">
        <xs:annotation>
          <xs:documentation>A publication number (an internal number or possibly organizational standard).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="uri">
        <xs:annotation>
          <xs:documentation>A Uniform Resource Identifier</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.biblio.class-enum.attribute">
    <xs:attribute name="class" type="db:db.biblio.class.enumeration">
      <xs:annotation>
        <xs:documentation>Identifies the kind of bibliographic identifier</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.biblio.class-other.attribute">
    <xs:attribute name="otherclass" use="required" type="xs:NMTOKEN">
      <xs:annotation>
        <xs:documentation>Identifies the nature of the non-standard bibliographic identifier</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.biblio.class-other.attributes">
    <xs:attribute name="class" use="required">
      <xs:annotation>
        <xs:documentation>Identifies the kind of bibliographic identifier</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="other">
            <xs:annotation>
              <xs:documentation>Indicates that the identifier is some 'other' kind.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attributeGroup ref="db:db.biblio.class-other.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.biblio.class.attribute">
    <xs:attribute name="class">
      <xs:simpleType>
        <xs:union memberTypes="db:db.biblio.class.enumeration">
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="other">
                <xs:annotation>
                  <xs:documentation>Indicates that the identifier is some 'other' kind.</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
        </xs:union>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="otherclass" type="xs:NMTOKEN">
      <xs:annotation>
        <xs:documentation>Identifies the nature of the non-standard bibliographic identifier</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.ubiq.inlines">
    <xs:choice>
      <xs:choice>
        <xs:element ref="db:inlinemediaobject"/>
        <xs:element ref="db:remark"/>
        <xs:element ref="db:superscript"/>
        <xs:element ref="db:subscript"/>
        <xs:group ref="db:db.link.inlines"/>
        <xs:element ref="db:alt"/>
      </xs:choice>
      <xs:element ref="db:annotation"/>
      <xs:group ref="db:db.indexterm"/>
    </xs:choice>
  </xs:group>
  <xs:group name="db._text">
    <xs:sequence>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:group ref="db:db.ubiq.inlines"/>
        <xs:group ref="db:db._phrase"/>
        <xs:element ref="db:replaceable"/>
      </xs:choice>
    </xs:sequence>
  </xs:group>
  <xs:group name="db._title">
    <xs:sequence>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="db:title"/>
        <xs:element ref="db:titleabbrev"/>
        <xs:element ref="db:subtitle"/>
      </xs:choice>
    </xs:sequence>
  </xs:group>
  <xs:group name="db._title.req">
    <xs:sequence>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="db:title"/>
        <xs:element ref="db:titleabbrev"/>
        <xs:element ref="db:subtitle"/>
      </xs:choice>
    </xs:sequence>
  </xs:group>
  <xs:group name="db._title.only">
    <xs:sequence>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="db:title"/>
        <xs:element ref="db:titleabbrev"/>
      </xs:choice>
    </xs:sequence>
  </xs:group>
  <xs:group name="db._title.onlyreq">
    <xs:sequence>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="db:title"/>
        <xs:element ref="db:titleabbrev"/>
      </xs:choice>
    </xs:sequence>
  </xs:group>
  <xs:group name="db._info">
    <xs:choice>
      <xs:sequence>
        <xs:group ref="db:db._title"/>
        <xs:group minOccurs="0" ref="db:db.titleforbidden.info"/>
      </xs:sequence>
      <xs:group minOccurs="0" ref="db:db.info"/>
    </xs:choice>
  </xs:group>
  <xs:group name="db._info.title.req">
    <xs:choice>
      <xs:sequence>
        <xs:group ref="db:db._title.req"/>
        <xs:group minOccurs="0" ref="db:db.titleforbidden.info"/>
      </xs:sequence>
      <xs:group ref="db:db.titlereq.info"/>
    </xs:choice>
  </xs:group>
  <xs:group name="db._info.title.only">
    <xs:choice>
      <xs:sequence>
        <xs:group ref="db:db._title.only"/>
        <xs:group minOccurs="0" ref="db:db.titleforbidden.info"/>
      </xs:sequence>
      <xs:group ref="db:db.titleonly.info"/>
    </xs:choice>
  </xs:group>
  <xs:group name="db._info.title.onlyreq">
    <xs:choice>
      <xs:sequence>
        <xs:group ref="db:db._title.onlyreq"/>
        <xs:group minOccurs="0" ref="db:db.titleforbidden.info"/>
      </xs:sequence>
      <xs:group ref="db:db.titleonlyreq.info"/>
    </xs:choice>
  </xs:group>
  <xs:group name="db._info.title.forbidden">
    <xs:sequence>
      <xs:group minOccurs="0" ref="db:db.titleforbidden.info"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="db.all.inlines">
    <xs:sequence>
      <xs:choice minOccurs="0">
        <xs:group ref="db:db.ubiq.inlines"/>
        <xs:group ref="db:db.general.inlines"/>
        <xs:group ref="db:db.domain.inlines"/>
      </xs:choice>
    </xs:sequence>
  </xs:group>
  <xs:group name="db.general.inlines">
    <xs:choice>
      <xs:group ref="db:db.publishing.inlines"/>
      <xs:element ref="db:db.product.inlines"/>
      <xs:element ref="db:db.bibliography.inlines"/>
      <xs:element ref="db:db.graphic.inlines"/>
      <xs:group ref="db:db.indexing.inlines"/>
      <xs:group ref="db:db.link.inlines"/>
    </xs:choice>
  </xs:group>
  <xs:group name="db.domain.inlines">
    <xs:choice>
      <xs:element ref="db:db.technical.inlines"/>
      <xs:element ref="db:db.math.inlines"/>
      <xs:element ref="db:db.markup.inlines"/>
      <xs:element ref="db:db.gui.inlines"/>
      <xs:group ref="db:db.keyboard.inlines"/>
      <xs:element ref="db:db.os.inlines"/>
      <xs:group ref="db:db.programming.inlines"/>
      <xs:element ref="db:db.error.inlines"/>
    </xs:choice>
  </xs:group>
  <xs:element name="db.technical.inlines" abstract="true"/>
  <xs:element name="db.product.inlines" abstract="true"/>
  <xs:element name="db.bibliography.inlines" abstract="true"/>
  <xs:group name="db.publishing.inlines">
    <xs:choice>
      <xs:choice>
        <xs:element ref="db:abbrev"/>
        <xs:element ref="db:acronym"/>
        <xs:element ref="db:date"/>
        <xs:group ref="db:db.emphasis"/>
        <xs:element ref="db:footnote"/>
        <xs:element ref="db:footnoteref"/>
        <xs:element ref="db:foreignphrase"/>
        <xs:group ref="db:db.phrase"/>
        <xs:element ref="db:quote"/>
        <xs:element ref="db:subscript"/>
        <xs:element ref="db:superscript"/>
        <xs:element ref="db:wordasword"/>
      </xs:choice>
      <xs:element ref="db:db.glossary.inlines"/>
      <xs:element ref="db:coref"/>
    </xs:choice>
  </xs:group>
  <xs:element name="db.graphic.inlines" abstract="true">
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.inlinemediaobject.info"/>
        <xs:element minOccurs="0" ref="db:alt"/>
        <xs:element maxOccurs="unbounded" ref="db:db.mediaobject.content"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.inlinemediaobject.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:group name="db.indexing.inlines">
    <xs:sequence>
      <xs:group ref="db:db.indexterm"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="db.link.inlines">
    <xs:choice>
      <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:element ref="db:biblioref"/>
    </xs:choice>
  </xs:group>
  <xs:group name="db.nopara.blocks">
    <xs:choice>
      <xs:choice>
        <xs:group ref="db:db.list.blocks"/>
        <xs:group ref="db:db.formal.blocks"/>
        <xs:group ref="db:db.informal.blocks"/>
        <xs:element ref="db:db.publishing.blocks"/>
        <xs:element ref="db:db.graphic.blocks"/>
        <xs:group ref="db:db.technical.blocks"/>
        <xs:element ref="db:db.verbatim.blocks"/>
        <xs:element ref="db:bridgehead"/>
        <xs:element ref="db:remark"/>
        <xs:element ref="db:revhistory"/>
      </xs:choice>
      <xs:group ref="db:db.indexterm"/>
      <xs:element ref="db:db.synopsis.blocks"/>
      <xs:element ref="db:db.admonition.blocks"/>
    </xs:choice>
  </xs:group>
  <xs:group name="db.para.blocks">
    <xs:choice>
      <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="db.all.blocks">
    <xs:choice>
      <xs:choice>
        <xs:group ref="db:db.nopara.blocks"/>
        <xs:group ref="db:db.para.blocks"/>
      </xs:choice>
      <xs:element ref="db:annotation"/>
    </xs:choice>
  </xs:group>
  <xs:group name="db.formal.blocks">
    <xs:choice>
      <xs:choice>
        <xs:element ref="db:example"/>
        <xs:element ref="db:figure"/>
        <xs:group ref="db:db.table"/>
      </xs:choice>
      <xs:element ref="db:equation"/>
    </xs:choice>
  </xs:group>
  <xs:group name="db.informal.blocks">
    <xs:choice>
      <xs:choice>
        <xs:element ref="db:informalexample"/>
        <xs:element ref="db:informalfigure"/>
        <xs:group ref="db:db.informaltable"/>
      </xs:choice>
      <xs:element ref="db:informalequation"/>
    </xs:choice>
  </xs:group>
  <xs:element name="db.publishing.blocks" abstract="true"/>
  <xs:element name="db.graphic.blocks" abstract="true"/>
  <xs:group name="db.technical.blocks">
    <xs:choice>
      <xs:element ref="db:procedure"/>
      <xs:element ref="db:task"/>
      <xs:choice>
        <xs:element ref="db:productionset"/>
        <xs:element ref="db:constraintdef"/>
      </xs:choice>
      <xs:element ref="db:msgset"/>
    </xs:choice>
  </xs:group>
  <xs:group name="db.list.blocks">
    <xs:choice>
      <xs:choice>
        <xs:element ref="db:itemizedlist"/>
        <xs:element ref="db:orderedlist"/>
        <xs:element ref="db:procedure"/>
        <xs:element ref="db:simplelist"/>
        <xs:element ref="db:variablelist"/>
        <xs:element ref="db:segmentedlist"/>
      </xs:choice>
      <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:element name="db.verbatim.blocks" abstract="true"/>
  <xs:group name="db.info.extension">
    <xs:sequence>
      <xs:group ref="db:db._any"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="db.info.elements">
    <xs:choice>
      <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:group ref="db:db.info.extension"/>
      </xs:choice>
      <xs:element ref="db:annotation"/>
      <xs:element ref="db:extendedlink"/>
      <xs:choice>
        <xs:element ref="db:bibliomisc"/>
        <xs:element ref="db:bibliomset"/>
        <xs:element ref="db:bibliorelation"/>
        <xs:element ref="db:biblioset"/>
      </xs:choice>
      <xs:element ref="db:itermset"/>
      <xs:choice>
        <xs:element ref="db:productname"/>
        <xs:element ref="db:productnumber"/>
      </xs:choice>
    </xs:choice>
  </xs:group>
  <xs:group name="db.bibliographic.elements">
    <xs:choice>
      <xs:group ref="db:db.info.elements"/>
      <xs:group ref="db:db.publishing.inlines"/>
      <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:attributeGroup name="db.title.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.title.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="title">
    <xs:annotation>
      <xs:documentation>The text of the title of a section of a document or of a formal block-level element</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.title.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.titleabbrev.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.titleabbrev.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="titleabbrev">
    <xs:annotation>
      <xs:documentation>The abbreviation of a title</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.titleabbrev.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.subtitle.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.subtitle.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="subtitle">
    <xs:annotation>
      <xs:documentation>The subtitle of a document</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.subtitle.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.info.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.info.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.info">
    <xs:sequence>
      <xs:element name="info">
        <xs:annotation>
          <xs:documentation>A wrapper for information about a component or other block</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:group ref="db:db._title"/>
            <xs:group ref="db:db.info.elements"/>
          </xs:choice>
          <xs:attributeGroup ref="db:db.info.attlist"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:attributeGroup name="db.titlereq.info.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.titlereq.info.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.titlereq.info">
    <xs:sequence>
      <xs:element name="info">
        <xs:annotation>
          <xs:documentation>A wrapper for information about a component or other block with a required title</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:group ref="db:db._title.req"/>
            <xs:group ref="db:db.info.elements"/>
          </xs:choice>
          <xs:attributeGroup ref="db:db.titlereq.info.attlist"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:attributeGroup name="db.titleonly.info.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.titleonly.info.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.titleonly.info">
    <xs:sequence>
      <xs:element name="info">
        <xs:annotation>
          <xs:documentation>A wrapper for information about a component or other block with only a title</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:group ref="db:db._title.only"/>
            <xs:group ref="db:db.info.elements"/>
          </xs:choice>
          <xs:attributeGroup ref="db:db.titleonly.info.attlist"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:attributeGroup name="db.titleonlyreq.info.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.titleonlyreq.info.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.titleonlyreq.info">
    <xs:sequence>
      <xs:element name="info">
        <xs:annotation>
          <xs:documentation>A wrapper for information about a component or other block with only a required title</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:group ref="db:db._title.onlyreq"/>
            <xs:group ref="db:db.info.elements"/>
          </xs:choice>
          <xs:attributeGroup ref="db:db.titleonlyreq.info.attlist"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:attributeGroup name="db.titleforbidden.info.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.titleforbidden.info.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.titleforbidden.info">
    <xs:sequence>
      <xs:element name="info">
        <xs:annotation>
          <xs:documentation>A wrapper for information about a component or other block without a title</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.info.elements"/>
          <xs:attributeGroup ref="db:db.titleforbidden.info.attlist"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:attributeGroup name="db.subjectset.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.subjectset.scheme.attribute">
    <xs:attribute name="scheme" use="required" type="xs:NMTOKEN">
      <xs:annotation>
        <xs:documentation>Identifies the controlled vocabulary used by this set's terms</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.subjectset.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="scheme" type="xs:NMTOKEN">
      <xs:annotation>
        <xs:documentation>Identifies the controlled vocabulary used by this set's terms</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="subjectset">
    <xs:annotation>
      <xs:documentation>A set of terms describing the subject matter of a document</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="db:subject"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.subjectset.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.subject.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.subject.weight.attribute">
    <xs:attribute name="weight" use="required">
      <xs:annotation>
        <xs:documentation>Specifies a ranking for this subject relative to other subjects in the same set</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.subject.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="weight">
      <xs:annotation>
        <xs:documentation>Specifies a ranking for this subject relative to other subjects in the same set</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="subject">
    <xs:annotation>
      <xs:documentation>One of a group of terms describing the subject matter of a document</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="db:subjectterm"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.subject.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.subjectterm.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.subjectterm.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="subjectterm">
    <xs:annotation>
      <xs:documentation>A term in a group of terms describing the subject matter of a document</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:attributeGroup ref="db:db.subjectterm.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.keywordset.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.keywordset.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="keywordset">
    <xs:annotation>
      <xs:documentation>A set of keywords describing the content of a document</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="db:keyword"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.keywordset.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.keyword.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.keyword.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="keyword">
    <xs:annotation>
      <xs:documentation>One of a set of keywords describing the content of a document</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:attributeGroup ref="db:db.keyword.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:group name="db.table.choice">
    <xs:choice>
      <xs:group ref="db:db.cals.table"/>
      <xs:group ref="db:db.html.table"/>
    </xs:choice>
  </xs:group>
  <xs:group name="db.informaltable.choice">
    <xs:choice>
      <xs:group ref="db:db.cals.informaltable"/>
      <xs:group ref="db:db.html.informaltable"/>
    </xs:choice>
  </xs:group>
  <xs:group name="db.table">
    <xs:sequence>
      <xs:group ref="db:db.table.choice"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="db.informaltable">
    <xs:sequence>
      <xs:group ref="db:db.informaltable.choice"/>
    </xs:sequence>
  </xs:group>
  <xs:attributeGroup name="db.procedure.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.procedure.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.procedure.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.only"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="procedure">
    <xs:annotation>
      <xs:documentation>A list of operations to be performed in a well-defined sequence</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.procedure.info"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.blocks"/>
        <xs:element maxOccurs="unbounded" ref="db:step"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.procedure.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.step.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.step.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="performance" type="db:db.performance.enumeration">
      <xs:annotation>
        <xs:documentation>Specifies if the content is required or optional.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.step.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.only"/>
    </xs:sequence>
  </xs:group>
  <!--
    
    This content model is blocks*, step|stepalternatives, blocks* but
    expressed this way it avoids UPA issues in XSD and DTD versions
  -->
  <xs:element name="step">
    <xs:annotation>
      <xs:documentation>A unit of action in a procedure</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.step.info"/>
        <xs:choice>
          <xs:sequence>
            <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
            <xs:sequence minOccurs="0">
              <xs:choice>
                <xs:element ref="db:substeps"/>
                <xs:element ref="db:stepalternatives"/>
              </xs:choice>
              <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.blocks"/>
            </xs:sequence>
          </xs:sequence>
          <xs:sequence>
            <xs:choice>
              <xs:element ref="db:substeps"/>
              <xs:element ref="db:stepalternatives"/>
            </xs:choice>
            <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.blocks"/>
          </xs:sequence>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.step.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.stepalternatives.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.stepalternatives.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="performance" type="db:db.performance.enumeration">
      <xs:annotation>
        <xs:documentation>Specifies if the content is required or optional.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.stepalternatives.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.forbidden"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="stepalternatives">
    <xs:annotation>
      <xs:documentation>Alternative steps in a procedure</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.stepalternatives.info"/>
        <xs:element maxOccurs="unbounded" ref="db:step"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.stepalternatives.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.substeps.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.substeps.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="performance" type="db:db.performance.enumeration">
      <xs:annotation>
        <xs:documentation>Specifies if the content is required or optional.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="substeps">
    <xs:annotation>
      <xs:documentation>A wrapper for steps that occur within steps in a procedure</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="db:step"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.substeps.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.sidebar.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.sidebar.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.sidebar.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.only"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="sidebar" substitutionGroup="db:db.publishing.blocks">
    <xs:annotation>
      <xs:documentation>A portion of a document that is isolated from the main narrative flow</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.sidebar.info"/>
        <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.sidebar.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.abstract.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.abstract.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.abstract.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.only"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="abstract">
    <xs:annotation>
      <xs:documentation>A summary</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.abstract.info"/>
        <xs:group maxOccurs="unbounded" ref="db:db.para.blocks"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.abstract.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.personblurb.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.personblurb.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.personblurb.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.only"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="personblurb">
    <xs:annotation>
      <xs:documentation>A short description or note about a person</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.personblurb.info"/>
        <xs:group maxOccurs="unbounded" ref="db:db.para.blocks"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.personblurb.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.blockquote.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.blockquote.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.blockquote.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.only"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="blockquote" substitutionGroup="db:db.publishing.blocks">
    <xs:annotation>
      <xs:documentation>A quotation set off from the main text</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.blockquote.info"/>
        <xs:element minOccurs="0" ref="db:attribution"/>
        <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.blockquote.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.attribution.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.attribution.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="attribution">
    <xs:annotation>
      <xs:documentation>The source of a block quote or epigraph</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:group ref="db:db._text"/>
        <xs:element ref="db:person"/>
        <xs:element ref="db:personname"/>
        <xs:element ref="db:citetitle"/>
        <xs:element ref="db:citation"/>
      </xs:choice>
      <xs:attributeGroup ref="db:db.attribution.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:simpleType name="db.bridgehead.renderas.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="sect1">
        <xs:annotation>
          <xs:documentation>Render as a first-level section</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="sect2">
        <xs:annotation>
          <xs:documentation>Render as a second-level section</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="sect3">
        <xs:annotation>
          <xs:documentation>Render as a third-level section</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="sect4">
        <xs:annotation>
          <xs:documentation>Render as a fourth-level section</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="sect5">
        <xs:annotation>
          <xs:documentation>Render as a fifth-level section</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.bridgehead.renderas-enum.attribute">
    <xs:attribute name="renderas" type="db:db.bridgehead.renderas.enumeration">
      <xs:annotation>
        <xs:documentation>Indicates how the bridge head should be rendered</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.bridgehead.renderas-other.attribute">
    <xs:attribute name="otherrenderas" use="required" type="xs:NMTOKEN">
      <xs:annotation>
        <xs:documentation>Identifies the nature of the non-standard rendering</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.bridgehead.renderas-other.attributes">
    <xs:attribute name="renderas" use="required">
      <xs:annotation>
        <xs:documentation>Indicates how the bridge head should be rendered</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="other">
            <xs:annotation>
              <xs:documentation>Identifies a non-standard rendering</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attributeGroup ref="db:db.bridgehead.renderas-other.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.bridgehead.renderas.attribute">
    <xs:attribute name="renderas">
      <xs:simpleType>
        <xs:union memberTypes="db:db.bridgehead.renderas.enumeration">
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="other">
                <xs:annotation>
                  <xs:documentation>Identifies a non-standard rendering</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
        </xs:union>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="otherrenderas" type="xs:NMTOKEN">
      <xs:annotation>
        <xs:documentation>Identifies the nature of the non-standard rendering</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.bridgehead.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.bridgehead.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attributeGroup ref="db:db.bridgehead.renderas.attribute"/>
  </xs:attributeGroup>
  <xs:element name="bridgehead">
    <xs:annotation>
      <xs:documentation>A free-floating heading</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.bridgehead.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.remark.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.remark.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="remark">
    <xs:annotation>
      <xs:documentation>A remark (or comment) intended for presentation in a draft manuscript</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.remark.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.epigraph.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.epigraph.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.epigraph.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.forbidden"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="epigraph" substitutionGroup="db:db.publishing.blocks">
    <xs:annotation>
      <xs:documentation>A short inscription at the beginning of a document or component</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.epigraph.info"/>
        <xs:element minOccurs="0" ref="db:attribution"/>
        <xs:choice maxOccurs="unbounded">
          <xs:group ref="db:db.para.blocks"/>
          <xs:element ref="db:literallayout"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.epigraph.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.footnote.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.footnote.label.attribute">
    <xs:attribute name="label" use="required" type="xs:NMTOKEN">
      <xs:annotation>
        <xs:documentation>Identifies the desired footnote mark</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.footnote.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="label" type="xs:NMTOKEN">
      <xs:annotation>
        <xs:documentation>Identifies the desired footnote mark</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="footnote">
    <xs:annotation>
      <xs:documentation>A footnote</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
      <xs:attributeGroup ref="db:db.footnote.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.formalpara.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.formalpara.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.formalpara.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.onlyreq"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="formalpara">
    <xs:annotation>
      <xs:documentation>A paragraph with a title</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.formalpara.info"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.indexing.inlines"/>
        <xs:element ref="db:para"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.formalpara.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.para.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.para.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.para.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.forbidden"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="para">
    <xs:annotation>
      <xs:documentation>A paragraph</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:sequence>
        <xs:group ref="db:db.para.info"/>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:group ref="db:db.all.inlines"/>
          <xs:group ref="db:db.nopara.blocks"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.para.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.simpara.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.simpara.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.simpara.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.forbidden"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="simpara">
    <xs:annotation>
      <xs:documentation>A paragraph that contains only text and inline markup, no block elements</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:sequence>
        <xs:group ref="db:db.simpara.info"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.simpara.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.itemizedlist.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.itemizedlist.mark.attribute">
    <xs:attribute name="mark" use="required" type="xs:NMTOKEN">
      <xs:annotation>
        <xs:documentation>Identifies the type of mark to be used on items in this list</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.itemizedlist.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="spacing" type="db:db.spacing.enumeration">
      <xs:annotation>
        <xs:documentation>Specifies (a hint about) the spacing of the content</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="mark" type="xs:NMTOKEN">
      <xs:annotation>
        <xs:documentation>Identifies the type of mark to be used on items in this list</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.itemizedlist.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.only"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="itemizedlist">
    <xs:annotation>
      <xs:documentation>A list in which each entry is marked with a bullet or other dingbat</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.itemizedlist.info"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.blocks"/>
        <xs:element maxOccurs="unbounded" ref="db:listitem"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.itemizedlist.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.orderedlist.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:simpleType name="db.orderedlist.continuation.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="continues">
        <xs:annotation>
          <xs:documentation>Specifies that numbering should begin where the preceding list left off</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="restarts">
        <xs:annotation>
          <xs:documentation>Specifies that numbering should begin again at 1</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.orderedlist.continuation.attribute">
    <xs:attribute name="continuation" use="required" type="db:db.orderedlist.continuation.enumeration">
      <xs:annotation>
        <xs:documentation>Indicates how list numbering should begin relative to the immediately preceding list</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.orderedlist.startingnumber.attribute">
    <xs:attribute name="startingnumber" use="required" type="xs:integer">
      <xs:annotation>
        <xs:documentation>Specifies the initial line number.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:simpleType name="db.orderedlist.inheritnum.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="ignore">
        <xs:annotation>
          <xs:documentation>Specifies that numbering should ignore list nesting</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="inherit">
        <xs:annotation>
          <xs:documentation>Specifies that numbering should inherit from outer-level lists</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.orderedlist.inheritnum.attribute">
    <xs:attribute name="inheritnum" use="required" type="db:db.orderedlist.inheritnum.enumeration">
      <xs:annotation>
        <xs:documentation>Indicates whether or not item numbering should be influenced by list nesting</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:simpleType name="db.orderedlist.numeration.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="arabic">
        <xs:annotation>
          <xs:documentation>Specifies Arabic numeration (1, 2, 3, …)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="upperalpha">
        <xs:annotation>
          <xs:documentation>Specifies upper-case alphabetic numeration (A, B, C, …)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="loweralpha">
        <xs:annotation>
          <xs:documentation>Specifies lower-case alphabetic numeration (a, b, c, …)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="upperroman">
        <xs:annotation>
          <xs:documentation>Specifies upper-case Roman numeration (I, II, III, …)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lowerroman">
        <xs:annotation>
          <xs:documentation>Specifies lower-case Roman numeration (i, ii, iii …)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.orderedlist.numeration.attribute">
    <xs:attribute name="numeration" use="required" type="db:db.orderedlist.numeration.enumeration">
      <xs:annotation>
        <xs:documentation>Indicates the desired numeration</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.orderedlist.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="spacing" type="db:db.spacing.enumeration">
      <xs:annotation>
        <xs:documentation>Specifies (a hint about) the spacing of the content</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="continuation" type="db:db.orderedlist.continuation.enumeration">
      <xs:annotation>
        <xs:documentation>Indicates how list numbering should begin relative to the immediately preceding list</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="startingnumber" type="xs:integer">
      <xs:annotation>
        <xs:documentation>Specifies the initial line number.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="inheritnum" type="db:db.orderedlist.inheritnum.enumeration">
      <xs:annotation>
        <xs:documentation>Indicates whether or not item numbering should be influenced by list nesting</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="numeration" type="db:db.orderedlist.numeration.enumeration">
      <xs:annotation>
        <xs:documentation>Indicates the desired numeration</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.orderedlist.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.only"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="orderedlist">
    <xs:annotation>
      <xs:documentation>A list in which each entry is marked with a sequentially incremented label</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.orderedlist.info"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.blocks"/>
        <xs:element maxOccurs="unbounded" ref="db:listitem"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.orderedlist.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.listitem.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.listitem.override.attribute">
    <xs:attribute name="override" use="required" type="xs:NMTOKEN">
      <xs:annotation>
        <xs:documentation>Specifies the keyword for the type of mark that should be used on this
 item, instead of the mark that would be used by default</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.listitem.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="override" type="xs:NMTOKEN">
      <xs:annotation>
        <xs:documentation>Specifies the keyword for the type of mark that should be used on this
 item, instead of the mark that would be used by default</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="listitem">
    <xs:annotation>
      <xs:documentation>A wrapper for the elements of a list item</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
      <xs:attributeGroup ref="db:db.listitem.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.segmentedlist.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.segmentedlist.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.segmentedlist.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.only"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="segmentedlist">
    <xs:annotation>
      <xs:documentation>A segmented list, a list of sets of elements</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.segmentedlist.info"/>
        <xs:element maxOccurs="unbounded" ref="db:segtitle"/>
        <xs:element maxOccurs="unbounded" ref="db:seglistitem"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.segmentedlist.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.segtitle.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.segtitle.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="segtitle">
    <xs:annotation>
      <xs:documentation>The title of an element of a list item in a segmented list</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.segtitle.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.seglistitem.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.seglistitem.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="seglistitem">
    <xs:annotation>
      <xs:documentation>A list item in a segmented list</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="db:seg"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.seglistitem.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.seg.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.seg.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="seg">
    <xs:annotation>
      <xs:documentation>An element of a list item in a segmented list</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.seg.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.simplelist.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:simpleType name="db.simplelist.type.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="horiz">
        <xs:annotation>
          <xs:documentation>A tabular presentation in row-major order.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="vert">
        <xs:annotation>
          <xs:documentation>A tabular presentation in column-major order.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="inline">
        <xs:annotation>
          <xs:documentation>An inline presentation, usually a comma-delimited list.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.simplelist.type.attribute">
    <xs:attribute name="type" use="required" type="db:db.simplelist.type.enumeration">
      <xs:annotation>
        <xs:documentation>Specifies the type of list presentation.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.simplelist.columns.attribute">
    <xs:attribute name="columns" use="required" type="xs:integer">
      <xs:annotation>
        <xs:documentation>Specifies the number of columns for horizontal or vertical presentation</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.simplelist.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="type" type="db:db.simplelist.type.enumeration">
      <xs:annotation>
        <xs:documentation>Specifies the type of list presentation.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="columns" type="xs:integer">
      <xs:annotation>
        <xs:documentation>Specifies the number of columns for horizontal or vertical presentation</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="simplelist">
    <xs:annotation>
      <xs:documentation>An undecorated list of single words or short phrases</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="db:member"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.simplelist.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.member.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.member.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="member">
    <xs:annotation>
      <xs:documentation>An element of a simple list</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.member.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.variablelist.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.variablelist.termlength.attribute">
    <xs:attribute name="termlength" use="required">
      <xs:annotation>
        <xs:documentation>Indicates a length beyond which the presentation system may consider a term too long and select an alternate presentation for that term, item, or list</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.variablelist.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="spacing" type="db:db.spacing.enumeration">
      <xs:annotation>
        <xs:documentation>Specifies (a hint about) the spacing of the content</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="termlength">
      <xs:annotation>
        <xs:documentation>Indicates a length beyond which the presentation system may consider a term too long and select an alternate presentation for that term, item, or list</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.variablelist.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.only"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="variablelist">
    <xs:annotation>
      <xs:documentation>A list in which each entry is composed of a set of one or more terms and an associated description</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.variablelist.info"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.blocks"/>
        <xs:element maxOccurs="unbounded" ref="db:varlistentry"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.variablelist.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.varlistentry.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.varlistentry.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="varlistentry">
    <xs:annotation>
      <xs:documentation>A wrapper for a set of terms and the associated description in a variable list</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="db:term"/>
        <xs:element ref="db:listitem"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.varlistentry.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.term.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.term.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="term">
    <xs:annotation>
      <xs:documentation>The word or phrase being defined or described in a variable list</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.term.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.example.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.example.label.attribute">
    <xs:attributeGroup ref="db:db.label.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.example.width.attribute">
    <xs:attributeGroup ref="db:db.width.characters.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.example.pgwide.attribute">
    <xs:attributeGroup ref="db:db.pgwide.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.example.floatstyle.attribute">
    <xs:attributeGroup ref="db:db.floatstyle.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.example.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="label">
      <xs:annotation>
        <xs:documentation>Specifies an identifying string for presentation purposes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="floatstyle">
      <xs:annotation>
        <xs:documentation>Specifies style information to be used when rendering the float</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="width" type="xs:nonNegativeInteger">
      <xs:annotation>
        <xs:documentation>Specifies the width (in characters) of the element</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="pgwide" type="db:db.pgwide.enumeration">
      <xs:annotation>
        <xs:documentation>Indicates if the element is rendered across the column or the page</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.example.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.onlyreq"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="example">
    <xs:annotation>
      <xs:documentation>A formal example, with a title</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.example.info"/>
        <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
        <xs:group minOccurs="0" ref="db:db.caption"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.example.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.informalexample.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.informalexample.width.attribute">
    <xs:attributeGroup ref="db:db.width.characters.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.informalexample.floatstyle.attribute">
    <xs:attributeGroup ref="db:db.floatstyle.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.informalexample.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="floatstyle">
      <xs:annotation>
        <xs:documentation>Specifies style information to be used when rendering the float</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="width" type="xs:nonNegativeInteger">
      <xs:annotation>
        <xs:documentation>Specifies the width (in characters) of the element</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.informalexample.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.forbidden"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="informalexample">
    <xs:annotation>
      <xs:documentation>A displayed example without a title</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.informalexample.info"/>
        <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
        <xs:group minOccurs="0" ref="db:db.caption"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.informalexample.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:group name="db.verbatim.inlines">
    <xs:choice>
      <xs:choice>
        <xs:group ref="db:db.all.inlines"/>
        <xs:element ref="db:lineannotation"/>
      </xs:choice>
      <xs:element ref="db:co"/>
    </xs:choice>
  </xs:group>
  <xs:complexType name="db.verbatim.contentmodel" mixed="true">
    <xs:sequence>
      <xs:group ref="db:db._info.title.forbidden"/>
      <xs:choice>
        <xs:element ref="db:textobject"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.verbatim.inlines"/>
      </xs:choice>
    </xs:sequence>
  </xs:complexType>
  <xs:attributeGroup name="db.literallayout.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:simpleType name="db.literallayout.class.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="monospaced">
        <xs:annotation>
          <xs:documentation>The literal layout should be formatted with a monospaced font</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="normal">
        <xs:annotation>
          <xs:documentation>The literal layout should be formatted with the current font</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.literallayout.class.attribute">
    <xs:attribute name="class" use="required" type="db:db.literallayout.class.enumeration">
      <xs:annotation>
        <xs:documentation>Specifies the class of literal layout</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.literallayout.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attributeGroup ref="db:db.verbatim.attributes"/>
    <xs:attribute name="class" type="db:db.literallayout.class.enumeration">
      <xs:annotation>
        <xs:documentation>Specifies the class of literal layout</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="literallayout" substitutionGroup="db:db.verbatim.blocks">
    <xs:annotation>
      <xs:documentation>A block of text in which line breaks and white space are to be reproduced faithfully</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="db:db.verbatim.contentmodel">
          <xs:attributeGroup ref="db:db.literallayout.attlist"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.screen.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.screen.width.attribute">
    <xs:attributeGroup ref="db:db.width.characters.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.screen.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attributeGroup ref="db:db.verbatim.attributes"/>
    <xs:attribute name="width" type="xs:nonNegativeInteger">
      <xs:annotation>
        <xs:documentation>Specifies the width (in characters) of the element</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="screen" substitutionGroup="db:db.verbatim.blocks">
    <xs:annotation>
      <xs:documentation>Text that a user sees or might see on a computer screen</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="db:db.verbatim.contentmodel">
          <xs:attributeGroup ref="db:db.screen.attlist"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.screenshot.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.screenshot.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.screenshot.info">
    <xs:sequence>
      <xs:group ref="db:db._info"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="screenshot" substitutionGroup="db:db.graphic.blocks">
    <xs:annotation>
      <xs:documentation>A representation of what the user sees or might see on a computer screen</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.screenshot.info"/>
        <xs:element ref="db:mediaobject"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.screenshot.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.figure.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.figure.label.attribute">
    <xs:attributeGroup ref="db:db.label.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.figure.pgwide.attribute">
    <xs:attributeGroup ref="db:db.pgwide.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.figure.floatstyle.attribute">
    <xs:attributeGroup ref="db:db.floatstyle.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.figure.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="label">
      <xs:annotation>
        <xs:documentation>Specifies an identifying string for presentation purposes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="pgwide" type="db:db.pgwide.enumeration">
      <xs:annotation>
        <xs:documentation>Indicates if the element is rendered across the column or the page</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="floatstyle">
      <xs:annotation>
        <xs:documentation>Specifies style information to be used when rendering the float</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.figure.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.onlyreq"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="figure">
    <xs:annotation>
      <xs:documentation>A formal figure, generally an illustration, with a title</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.figure.info"/>
        <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
        <xs:group minOccurs="0" ref="db:db.caption"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.figure.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.informalfigure.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.informalfigure.label.attribute">
    <xs:attributeGroup ref="db:db.label.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.informalfigure.pgwide.attribute">
    <xs:attributeGroup ref="db:db.pgwide.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.informalfigure.floatstyle.attribute">
    <xs:attributeGroup ref="db:db.floatstyle.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.informalfigure.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="label">
      <xs:annotation>
        <xs:documentation>Specifies an identifying string for presentation purposes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="pgwide" type="db:db.pgwide.enumeration">
      <xs:annotation>
        <xs:documentation>Indicates if the element is rendered across the column or the page</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="floatstyle">
      <xs:annotation>
        <xs:documentation>Specifies style information to be used when rendering the float</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.informalfigure.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.forbidden"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="informalfigure">
    <xs:annotation>
      <xs:documentation>A untitled figure</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.informalfigure.info"/>
        <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
        <xs:group minOccurs="0" ref="db:db.caption"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.informalfigure.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="db.mediaobject.content" abstract="true"/>
  <xs:attributeGroup name="db.mediaobject.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.mediaobject.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.mediaobject.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.forbidden"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="mediaobject" substitutionGroup="db:db.graphic.blocks">
    <xs:annotation>
      <xs:documentation>A displayed media object (video, audio, image, etc.)</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.mediaobject.info"/>
        <xs:element minOccurs="0" ref="db:alt"/>
        <xs:element maxOccurs="unbounded" ref="db:db.mediaobject.content"/>
        <xs:group minOccurs="0" ref="db:db.caption"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.mediaobject.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.inlinemediaobject.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.inlinemediaobject.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.inlinemediaobject.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.forbidden"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="inlinemediaobject" substitutionGroup="db:db.graphic.inlines">
    <xs:annotation>
      <xs:documentation>An inline media object (video, audio, image, and so on)</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:attributeGroup name="db.videoobject.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.videoobject.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.videoobject.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.forbidden"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="videoobject" substitutionGroup="db:db.mediaobject.content">
    <xs:annotation>
      <xs:documentation>A wrapper for video data and its associated meta-information</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.videoobject.info"/>
        <xs:element ref="db:videodata"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.videoobject.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.audioobject.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.audioobject.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.audioobject.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.forbidden"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="audioobject" substitutionGroup="db:db.mediaobject.content">
    <xs:annotation>
      <xs:documentation>A wrapper for audio data and its associated meta-information</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.audioobject.info"/>
        <xs:element ref="db:audiodata"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.audioobject.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:group name="db.imageobject.content">
    <xs:choice>
      <xs:group ref="db:db.imagedata"/>
      <xs:group ref="db:db.imagedata.mathml"/>
      <xs:group ref="db:db.imagedata.svg"/>
    </xs:choice>
  </xs:group>
  <xs:attributeGroup name="db.imageobject.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.imageobject.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.imageobject.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.forbidden"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="imageobject" substitutionGroup="db:db.mediaobject.content">
    <xs:annotation>
      <xs:documentation>A wrapper for image data and its associated meta-information</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.imageobject.info"/>
        <xs:group ref="db:db.imageobject.content"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.imageobject.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.textobject.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.textobject.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.textobject.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.forbidden"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="textobject" substitutionGroup="db:db.mediaobject.content">
    <xs:annotation>
      <xs:documentation>A wrapper for a text description of an object and its associated meta-information</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.textobject.info"/>
        <xs:choice>
          <xs:group ref="db:db.phrase"/>
          <xs:element ref="db:textdata"/>
          <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.textobject.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.videodata.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:simpleType name="db.videodata.align.enumeration">
    <xs:restriction base="db:db.halign.enumeration"/>
  </xs:simpleType>
  <xs:attributeGroup name="db.videodata.align.attribute">
    <xs:attribute name="align" use="required" type="db:db.videodata.align.enumeration">
      <xs:annotation>
        <xs:documentation>Specifies the (horizontal) alignment of the video data</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:simpleType name="db.videodata.valign.enumeration">
    <xs:restriction base="db:db.valign.enumeration"/>
  </xs:simpleType>
  <xs:attributeGroup name="db.videodata.valign.attribute">
    <xs:attribute name="valign" use="required" type="db:db.videodata.valign.enumeration">
      <xs:annotation>
        <xs:documentation>Specifies the vertical alignment of the video data</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.videodata.width.attribute">
    <xs:attributeGroup ref="db:db.width.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.videodata.depth.attribute">
    <xs:attributeGroup ref="db:db.depth.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.videodata.contentwidth.attribute">
    <xs:attributeGroup ref="db:db.contentwidth.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.videodata.contentdepth.attribute">
    <xs:attributeGroup ref="db:db.contentdepth.attribute"/>
  </xs:attributeGroup>
  <xs:simpleType name="db.videodata.scalefit.enumeration">
    <xs:restriction base="db:db.scalefit.enumeration"/>
  </xs:simpleType>
  <xs:attributeGroup name="db.videodata.scalefit.attribute">
    <xs:attribute name="scalefit" use="required" type="db:db.videodata.scalefit.enumeration">
      <xs:annotation>
        <xs:documentation>Determines if anamorphic scaling is forbidden</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.videodata.scale.attribute">
    <xs:attributeGroup ref="db:db.scale.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.videodata.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.data.attributes"/>
    <xs:attribute name="align" type="db:db.videodata.align.enumeration">
      <xs:annotation>
        <xs:documentation>Specifies the (horizontal) alignment of the video data</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="valign" type="db:db.videodata.valign.enumeration">
      <xs:annotation>
        <xs:documentation>Specifies the vertical alignment of the video data</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="width">
      <xs:annotation>
        <xs:documentation>Specifies the width of the element</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="contentwidth">
      <xs:annotation>
        <xs:documentation>Specifies the width of the content rectangle</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="scalefit" type="db:db.videodata.scalefit.enumeration">
      <xs:annotation>
        <xs:documentation>Determines if anamorphic scaling is forbidden</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="scale" type="xs:positiveInteger">
      <xs:annotation>
        <xs:documentation>Specifies the scaling factor</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="depth">
      <xs:annotation>
        <xs:documentation>Specifies the depth of the element</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="contentdepth">
      <xs:annotation>
        <xs:documentation>Specifies the depth of the content rectangle</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:complexType name="db.videodata.info">
    <xs:group ref="db:db._info.title.forbidden"/>
  </xs:complexType>
  <xs:element name="videodata">
    <xs:annotation>
      <xs:documentation>Pointer to external video data</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="db:db.videodata.info">
          <xs:attributeGroup ref="db:db.videodata.attlist"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.audiodata.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.audiodata.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.data.attributes"/>
  </xs:attributeGroup>
  <xs:complexType name="db.audiodata.info">
    <xs:group ref="db:db._info.title.forbidden"/>
  </xs:complexType>
  <xs:element name="audiodata">
    <xs:annotation>
      <xs:documentation>Pointer to external audio data</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="db:db.audiodata.info">
          <xs:attributeGroup ref="db:db.audiodata.attlist"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.imagedata.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:simpleType name="db.imagedata.align.enumeration">
    <xs:restriction base="db:db.halign.enumeration"/>
  </xs:simpleType>
  <xs:attributeGroup name="db.imagedata.align.attribute">
    <xs:attribute name="align" use="required" type="db:db.imagedata.align.enumeration">
      <xs:annotation>
        <xs:documentation>Specifies the (horizontal) alignment of the image data</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:simpleType name="db.imagedata.valign.enumeration">
    <xs:restriction base="db:db.valign.enumeration"/>
  </xs:simpleType>
  <xs:attributeGroup name="db.imagedata.valign.attribute">
    <xs:attribute name="valign" use="required" type="db:db.imagedata.valign.enumeration">
      <xs:annotation>
        <xs:documentation>Specifies the vertical alignment of the image data</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.imagedata.width.attribute">
    <xs:attributeGroup ref="db:db.width.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.imagedata.depth.attribute">
    <xs:attributeGroup ref="db:db.depth.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.imagedata.contentwidth.attribute">
    <xs:attributeGroup ref="db:db.contentwidth.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.imagedata.contentdepth.attribute">
    <xs:attributeGroup ref="db:db.contentdepth.attribute"/>
  </xs:attributeGroup>
  <xs:simpleType name="db.imagedata.scalefit.enumeration">
    <xs:restriction base="db:db.scalefit.enumeration"/>
  </xs:simpleType>
  <xs:attributeGroup name="db.imagedata.scalefit.attribute">
    <xs:attribute name="scalefit" use="required" type="db:db.imagedata.scalefit.enumeration">
      <xs:annotation>
        <xs:documentation>Determines if anamorphic scaling is forbidden</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.imagedata.scale.attribute">
    <xs:attributeGroup ref="db:db.scale.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.imagedata.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.data.attributes"/>
    <xs:attribute name="align" type="db:db.imagedata.align.enumeration">
      <xs:annotation>
        <xs:documentation>Specifies the (horizontal) alignment of the image data</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="valign" type="db:db.imagedata.valign.enumeration">
      <xs:annotation>
        <xs:documentation>Specifies the vertical alignment of the image data</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="width">
      <xs:annotation>
        <xs:documentation>Specifies the width of the element</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="contentwidth">
      <xs:annotation>
        <xs:documentation>Specifies the width of the content rectangle</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="scalefit" type="db:db.imagedata.scalefit.enumeration">
      <xs:annotation>
        <xs:documentation>Determines if anamorphic scaling is forbidden</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="scale" type="xs:positiveInteger">
      <xs:annotation>
        <xs:documentation>Specifies the scaling factor</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="depth">
      <xs:annotation>
        <xs:documentation>Specifies the depth of the element</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="contentdepth">
      <xs:annotation>
        <xs:documentation>Specifies the depth of the content rectangle</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:complexType name="db.imagedata.info">
    <xs:group ref="db:db._info.title.forbidden"/>
  </xs:complexType>
  <xs:group name="db.imagedata">
    <xs:sequence>
      <xs:element name="imagedata">
        <xs:annotation>
          <xs:documentation>Pointer to external image data</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:complexContent>
            <xs:extension base="db:db.imagedata.info">
              <xs:attributeGroup ref="db:db.imagedata.attlist"/>
            </xs:extension>
          </xs:complexContent>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:attributeGroup name="db.textdata.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.textdata.encoding.attribute">
    <xs:attribute name="encoding" use="required">
      <xs:annotation>
        <xs:documentation>Identifies the encoding of the text in the external file</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.textdata.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.data.attributes"/>
    <xs:attribute name="encoding">
      <xs:annotation>
        <xs:documentation>Identifies the encoding of the text in the external file</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:complexType name="db.textdata.info">
    <xs:group ref="db:db._info.title.forbidden"/>
  </xs:complexType>
  <xs:element name="textdata">
    <xs:annotation>
      <xs:documentation>Pointer to external text data</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="db:db.textdata.info">
          <xs:attributeGroup ref="db:db.textdata.attlist"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.caption.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.caption.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.caption.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.forbidden"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="db.caption">
    <xs:sequence>
      <xs:element name="caption">
        <xs:annotation>
          <xs:documentation>A caption</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:group ref="db:db.caption.info"/>
            <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
          </xs:sequence>
          <xs:attributeGroup ref="db:db.caption.attlist"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:attributeGroup name="db.address.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.address.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attributeGroup ref="db:db.verbatim.attributes"/>
  </xs:attributeGroup>
  <xs:element name="address" substitutionGroup="db:db.publishing.blocks">
    <xs:annotation>
      <xs:documentation>A real-world address, generally a postal address</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:group ref="db:db._text"/>
        <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:attributeGroup ref="db:db.address.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.street.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.street.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="street">
    <xs:annotation>
      <xs:documentation>A street address in an address</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.street.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.pob.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.pob.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="pob">
    <xs:annotation>
      <xs:documentation>A post office box in an address</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.pob.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.postcode.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.postcode.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="postcode">
    <xs:annotation>
      <xs:documentation>A postal code in an address</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.postcode.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.city.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.city.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="city">
    <xs:annotation>
      <xs:documentation>The name of a city in an address</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.city.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.state.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.state.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="state">
    <xs:annotation>
      <xs:documentation>A state or province in an address</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.state.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.country.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.country.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="country">
    <xs:annotation>
      <xs:documentation>The name of a country</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.country.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.phone.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.phone.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="phone">
    <xs:annotation>
      <xs:documentation>A telephone number</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.phone.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.fax.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.fax.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="fax">
    <xs:annotation>
      <xs:documentation>A fax number</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.fax.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.otheraddr.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.otheraddr.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="otheraddr">
    <xs:annotation>
      <xs:documentation>Uncategorized information in address</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.otheraddr.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.affiliation.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.affiliation.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="affiliation">
    <xs:annotation>
      <xs:documentation>The institutional affiliation of an individual</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="db:shortaffil"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:jobtitle"/>
        <xs:choice>
          <xs:element minOccurs="0" ref="db:org"/>
          <xs:sequence>
            <xs:element minOccurs="0" ref="db:orgname"/>
            <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:orgdiv"/>
            <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:address"/>
          </xs:sequence>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.affiliation.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.shortaffil.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.shortaffil.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="shortaffil">
    <xs:annotation>
      <xs:documentation>A brief description of an affiliation</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.shortaffil.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.jobtitle.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.jobtitle.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="jobtitle" substitutionGroup="db:db.bibliography.inlines">
    <xs:annotation>
      <xs:documentation>The title of an individual in an organization</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.jobtitle.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:simpleType name="db.orgname.class.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="consortium">
        <xs:annotation>
          <xs:documentation>A consortium</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="corporation">
        <xs:annotation>
          <xs:documentation>A corporation</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="informal">
        <xs:annotation>
          <xs:documentation>An informal organization</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="nonprofit">
        <xs:annotation>
          <xs:documentation>A non-profit organization</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.orgname.class-enum.attribute">
    <xs:attribute name="class" use="required" type="db:db.orgname.class.enumeration">
      <xs:annotation>
        <xs:documentation>Specifies the nature of the organization</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.orgname.class-other.attributes">
    <xs:attribute name="class" use="required">
      <xs:annotation>
        <xs:documentation>Specifies the nature of the organization</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="other">
            <xs:annotation>
              <xs:documentation>Indicates a non-standard organization class</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="otherclass" use="required">
      <xs:annotation>
        <xs:documentation>Identifies the non-standard nature of the organization</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.orgname.class.attribute">
    <xs:attribute name="class" use="required">
      <xs:simpleType>
        <xs:union memberTypes="db:db.orgname.class.enumeration">
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="other">
                <xs:annotation>
                  <xs:documentation>Indicates a non-standard organization class</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
        </xs:union>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="otherclass">
      <xs:annotation>
        <xs:documentation>Identifies the non-standard nature of the organization</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.orgname.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.orgname.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="class">
      <xs:simpleType>
        <xs:union memberTypes="db:db.orgname.class.enumeration">
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="other">
                <xs:annotation>
                  <xs:documentation>Indicates a non-standard organization class</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
        </xs:union>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="otherclass">
      <xs:annotation>
        <xs:documentation>Identifies the non-standard nature of the organization</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="orgname" substitutionGroup="db:db.bibliography.inlines">
    <xs:annotation>
      <xs:documentation>The name of an organization</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.orgname.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.orgdiv.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.orgdiv.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="orgdiv">
    <xs:annotation>
      <xs:documentation>A division of an organization</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.orgdiv.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.artpagenums.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.artpagenums.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="artpagenums">
    <xs:annotation>
      <xs:documentation>The page numbers of an article as published</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.artpagenums.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.personname.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.personname.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="personname" substitutionGroup="db:db.bibliography.inlines">
    <xs:annotation>
      <xs:documentation>The personal name of an individual</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:choice>
        <xs:group ref="db:db._text"/>
        <xs:choice maxOccurs="unbounded">
          <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:choice>
      <xs:attributeGroup ref="db:db.personname.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:group name="db.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="db.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:complexType name="db.credit.contentmodel">
    <xs:choice>
      <xs:group ref="db:db.person.author.contentmodel"/>
      <xs:group ref="db:db.org.author.contentmodel"/>
    </xs:choice>
  </xs:complexType>
  <xs:attributeGroup name="db.author.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.author.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="author" substitutionGroup="db:db.bibliography.inlines">
    <xs:annotation>
      <xs:documentation>The name of an individual author</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="db:db.credit.contentmodel">
          <xs:attributeGroup ref="db:db.author.attlist"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.authorgroup.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.authorgroup.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="authorgroup">
    <xs:annotation>
      <xs:documentation>Wrapper for author information when a document has multiple authors or collabarators</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:choice maxOccurs="unbounded">
        <xs:element ref="db:author"/>
        <xs:element ref="db:editor"/>
        <xs:element ref="db:othercredit"/>
      </xs:choice>
      <xs:attributeGroup ref="db:db.authorgroup.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.collab.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.collab.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="collab">
    <xs:annotation>
      <xs:documentation>Identifies a collaborator</xs:documentation>
    </xs:annotation>
    <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 minOccurs="0" maxOccurs="unbounded" ref="db:affiliation"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.collab.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.authorinitials.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.authorinitials.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="authorinitials">
    <xs:annotation>
      <xs:documentation>The initials or other short identifier for an author</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.authorinitials.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.person.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.person.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="person" substitutionGroup="db:db.bibliography.inlines">
    <xs:annotation>
      <xs:documentation>A person and associated metadata</xs:documentation>
    </xs:annotation>
    <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:attributeGroup ref="db:db.person.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.org.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.org.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="org" substitutionGroup="db:db.bibliography.inlines">
    <xs:annotation>
      <xs:documentation>An organization and associated metadata</xs:documentation>
    </xs:annotation>
    <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:attributeGroup ref="db:db.org.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.confgroup.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.confgroup.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="confgroup">
    <xs:annotation>
      <xs:documentation>A wrapper for document meta-information about a conference</xs:documentation>
    </xs:annotation>
    <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:attributeGroup ref="db:db.confgroup.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.confdates.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.confdates.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="confdates">
    <xs:annotation>
      <xs:documentation>The dates of a conference for which a document was written</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.confdates.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.conftitle.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.conftitle.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="conftitle">
    <xs:annotation>
      <xs:documentation>The title of a conference for which a document was written</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.conftitle.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.confnum.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.confnum.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="confnum">
    <xs:annotation>
      <xs:documentation>An identifier, frequently numerical, associated with a conference for which a document was written</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.confnum.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.confsponsor.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.confsponsor.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="confsponsor">
    <xs:annotation>
      <xs:documentation>The sponsor of a conference for which a document was written</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.confsponsor.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.contractnum.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.contractnum.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="contractnum">
    <xs:annotation>
      <xs:documentation>The contract number of a document</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.contractnum.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.contractsponsor.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.contractsponsor.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="contractsponsor">
    <xs:annotation>
      <xs:documentation>The sponsor of a contract</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.contractsponsor.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.copyright.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.copyright.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="copyright">
    <xs:annotation>
      <xs:documentation>Copyright information about a document</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="db:year"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:holder"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.copyright.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.year.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.year.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="year">
    <xs:annotation>
      <xs:documentation>The year of publication of a document</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.year.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.holder.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.holder.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="holder">
    <xs:annotation>
      <xs:documentation>The name of the individual or organization that holds a copyright</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.holder.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:group name="db.cover.contentmodel">
    <xs:choice>
      <xs:choice>
        <xs:group ref="db:db.para.blocks"/>
        <xs:group ref="db:db.list.blocks"/>
        <xs:group ref="db:db.informal.blocks"/>
        <xs:element ref="db:db.publishing.blocks"/>
        <xs:element ref="db:db.graphic.blocks"/>
        <xs:group ref="db:db.technical.blocks"/>
        <xs:element ref="db:db.verbatim.blocks"/>
        <xs:element ref="db:bridgehead"/>
        <xs:element ref="db:remark"/>
        <xs:element ref="db:revhistory"/>
      </xs:choice>
      <xs:element ref="db:db.synopsis.blocks"/>
    </xs:choice>
  </xs:group>
  <xs:attributeGroup name="db.cover.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.cover.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="cover">
    <xs:annotation>
      <xs:documentation>Additional content for the cover of a publication</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="db:db.cover.contentmodel"/>
      <xs:attributeGroup ref="db:db.cover.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.date.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.date.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="date">
    <xs:annotation>
      <xs:documentation>The date of publication or revision of a document</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:attributeGroup ref="db:db.date.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.edition.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.edition.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="edition">
    <xs:annotation>
      <xs:documentation>The name or number of an edition of a document</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.edition.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.editor.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.editor.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="editor" substitutionGroup="db:db.bibliography.inlines">
    <xs:annotation>
      <xs:documentation>The name of the editor of a document</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="db:db.credit.contentmodel">
          <xs:attributeGroup ref="db:db.editor.attlist"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.biblioid.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.biblioid.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attributeGroup ref="db:db.biblio.class.attribute"/>
  </xs:attributeGroup>
  <xs:element name="biblioid">
    <xs:annotation>
      <xs:documentation>An identifier for a document</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.biblioid.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.citebiblioid.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.citebiblioid.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attributeGroup ref="db:db.biblio.class.attribute"/>
  </xs:attributeGroup>
  <xs:element name="citebiblioid" substitutionGroup="db:db.bibliography.inlines">
    <xs:annotation>
      <xs:documentation>A citation of a bibliographic identifier</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.citebiblioid.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.bibliosource.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.bibliosource.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attributeGroup ref="db:db.biblio.class.attribute"/>
  </xs:attributeGroup>
  <xs:element name="bibliosource">
    <xs:annotation>
      <xs:documentation>The source of a document</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.bibliosource.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:simpleType name="db.bibliorelation.type.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="hasformat">
        <xs:annotation>
          <xs:documentation>The described resource pre-existed the referenced resource, which is essentially the same intellectual content presented in another format</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="haspart">
        <xs:annotation>
          <xs:documentation>The described resource includes the referenced resource either physically or logically</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="hasversion">
        <xs:annotation>
          <xs:documentation>The described resource has a version, edition, or adaptation, namely, the referenced resource</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="isformatof">
        <xs:annotation>
          <xs:documentation>The described resource is the same intellectual content of the referenced resource, but presented in another format</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="ispartof">
        <xs:annotation>
          <xs:documentation>The described resource is a physical or logical part of the referenced resource</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="isreferencedby">
        <xs:annotation>
          <xs:documentation>The described resource is referenced, cited, or otherwise pointed to by the referenced resource</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="isreplacedby">
        <xs:annotation>
          <xs:documentation>The described resource is supplanted, displaced, or superceded by the referenced resource</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="isrequiredby">
        <xs:annotation>
          <xs:documentation>The described resource is required by the referenced resource, either physically or logically</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="isversionof">
        <xs:annotation>
          <xs:documentation>The described resource is a version, edition, or adaptation of the referenced resource; changes in version imply substantive changes in content rather than differences in format</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="references">
        <xs:annotation>
          <xs:documentation>The described resource references, cites, or otherwise points to the referenced resource</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="replaces">
        <xs:annotation>
          <xs:documentation>The described resource supplants, displaces, or supersedes the referenced resource</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="requires">
        <xs:annotation>
          <xs:documentation>The described resource requires the referenced resource to support its function, delivery, or coherence of content</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.bibliorelation.type-enum.attribute">
    <xs:attribute name="type" type="db:db.bibliorelation.type.enumeration">
      <xs:annotation>
        <xs:documentation>Identifies the type of relationship</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.bibliorelation.type-other.attributes">
    <xs:attribute name="type">
      <xs:annotation>
        <xs:documentation>Identifies the type of relationship</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="othertype">
            <xs:annotation>
              <xs:documentation>The described resource has a non-standard relationship with the referenced resource</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="othertype" use="required" type="xs:NMTOKEN">
      <xs:annotation>
        <xs:documentation>A keyword that identififes the type of the non-standard relationship</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.bibliorelation.type.attribute">
    <xs:attribute name="type">
      <xs:simpleType>
        <xs:union memberTypes="db:db.bibliorelation.type.enumeration">
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="othertype">
                <xs:annotation>
                  <xs:documentation>The described resource has a non-standard relationship with the referenced resource</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
        </xs:union>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="othertype" type="xs:NMTOKEN">
      <xs:annotation>
        <xs:documentation>A keyword that identififes the type of the non-standard relationship</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.bibliorelation.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.bibliorelation.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attributeGroup ref="db:db.biblio.class.attribute"/>
    <xs:attributeGroup ref="db:db.bibliorelation.type.attribute"/>
  </xs:attributeGroup>
  <xs:element name="bibliorelation">
    <xs:annotation>
      <xs:documentation>The relationship of a document to another</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.bibliorelation.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:simpleType name="db.bibliocoverage.spacial.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="dcmipoint">
        <xs:annotation>
          <xs:documentation>The DCMI Point identifies a point in space using its geographic coordinates</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="iso3166">
        <xs:annotation>
          <xs:documentation>ISO 3166 Codes for the representation of names of countries</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="dcmibox">
        <xs:annotation>
          <xs:documentation>The DCMI Box identifies a region of space using its geographic limits</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="tgn">
        <xs:annotation>
          <xs:documentation>The Getty Thesaurus of Geographic Names</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.bibliocoverage.spatial-enum.attribute">
    <xs:attribute name="spatial" type="db:db.bibliocoverage.spacial.enumeration">
      <xs:annotation>
        <xs:documentation>Specifies the type of spatial coverage</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.bibliocoverage.spatial-other.attributes">
    <xs:attribute name="spatial">
      <xs:annotation>
        <xs:documentation>Specifies the type of spatial coverage</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="otherspatial">
            <xs:annotation>
              <xs:documentation>Identifies a non-standard type of coverage</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="otherspatial" use="required" type="xs:NMTOKEN">
      <xs:annotation>
        <xs:documentation>A keyword that identifies the type of non-standard coverage</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.bibliocoverage.spatial.attribute">
    <xs:attribute name="spatial">
      <xs:simpleType>
        <xs:union memberTypes="db:db.bibliocoverage.spacial.enumeration">
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="otherspatial">
                <xs:annotation>
                  <xs:documentation>Identifies a non-standard type of coverage</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
        </xs:union>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="otherspatial" type="xs:NMTOKEN">
      <xs:annotation>
        <xs:documentation>A keyword that identifies the type of non-standard coverage</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:simpleType name="db.bibliocoverage.temporal.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="dcmiperiod">
        <xs:annotation>
          <xs:documentation>A specification of the limits of a time interval</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="w3c-dtf">
        <xs:annotation>
          <xs:documentation>W3C Encoding rules for dates and times—a profile based on ISO 8601</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.bibliocoverage.temporal-enum.attribute">
    <xs:attribute name="temporal" type="db:db.bibliocoverage.temporal.enumeration">
      <xs:annotation>
        <xs:documentation>Specifies the type of temporal coverage</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.bibliocoverage.temporal-other.attributes">
    <xs:attribute name="temporal">
      <xs:annotation>
        <xs:documentation>Specifies the type of temporal coverage</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="othertemporal">
            <xs:annotation>
              <xs:documentation>Specifies a non-standard type of coverage</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="othertemporal" use="required" type="xs:NMTOKEN">
      <xs:annotation>
        <xs:documentation>A keyword that identifies the type of non-standard coverage</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.bibliocoverage.temporal.attribute">
    <xs:attribute name="temporal">
      <xs:simpleType>
        <xs:union memberTypes="db:db.bibliocoverage.temporal.enumeration">
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="othertemporal">
                <xs:annotation>
                  <xs:documentation>Specifies a non-standard type of coverage</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
        </xs:union>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="othertemporal" type="xs:NMTOKEN">
      <xs:annotation>
        <xs:documentation>A keyword that identifies the type of non-standard coverage</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.bibliocoverage.coverage.attrib">
    <xs:attributeGroup ref="db:db.bibliocoverage.spatial.attribute"/>
    <xs:attributeGroup ref="db:db.bibliocoverage.temporal.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.bibliocoverage.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.bibliocoverage.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attributeGroup ref="db:db.bibliocoverage.coverage.attrib"/>
  </xs:attributeGroup>
  <xs:element name="bibliocoverage">
    <xs:annotation>
      <xs:documentation>The spatial or temporal coverage of a document</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.bibliocoverage.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.legalnotice.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.legalnotice.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.legalnotice.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.only"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="legalnotice">
    <xs:annotation>
      <xs:documentation>A statement of legal obligations or requirements</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.legalnotice.info"/>
        <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.legalnotice.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:simpleType name="db.othercredit.class.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="copyeditor">
        <xs:annotation>
          <xs:documentation>A copy editor</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="graphicdesigner">
        <xs:annotation>
          <xs:documentation>A graphic designer</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>Some other contributor</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="productioneditor">
        <xs:annotation>
          <xs:documentation>A production editor</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="technicaleditor">
        <xs:annotation>
          <xs:documentation>A technical editor</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="translator">
        <xs:annotation>
          <xs:documentation>A translator</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.othercredit.class-enum.attribute">
    <xs:attribute name="class" type="db:db.othercredit.class.enumeration">
      <xs:annotation>
        <xs:documentation>Identifies the nature of the contributor</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.othercredit.class-other.attribute">
    <xs:attribute name="otherclass" use="required" type="xs:NMTOKEN">
      <xs:annotation>
        <xs:documentation>Identifies the nature of the non-standard contribution</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.othercredit.class-other.attributes">
    <xs:attribute name="class" use="required">
      <xs:annotation>
        <xs:documentation>Identifies the nature of the contributor</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="other">
            <xs:annotation>
              <xs:documentation>Identifies a non-standard contribution</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attributeGroup ref="db:db.othercredit.class-other.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.othercredit.class.attribute">
    <xs:attribute name="class">
      <xs:simpleType>
        <xs:union memberTypes="db:db.othercredit.class.enumeration">
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="other">
                <xs:annotation>
                  <xs:documentation>Identifies a non-standard contribution</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
        </xs:union>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="otherclass" type="xs:NMTOKEN">
      <xs:annotation>
        <xs:documentation>Identifies the nature of the non-standard contribution</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.othercredit.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.othercredit.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attributeGroup ref="db:db.othercredit.class.attribute"/>
  </xs:attributeGroup>
  <xs:element name="othercredit">
    <xs:annotation>
      <xs:documentation>A person or entity, other than an author or editor, credited in a document</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="db:db.credit.contentmodel">
          <xs:attributeGroup ref="db:db.othercredit.attlist"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.pagenums.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.pagenums.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="pagenums">
    <xs:annotation>
      <xs:documentation>The numbers of the pages in a book, for use in a bibliographic entry</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.pagenums.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.contrib.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.contrib.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="contrib">
    <xs:annotation>
      <xs:documentation>A summary of the contributions made to a document by a credited source</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.contrib.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.honorific.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.honorific.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="honorific">
    <xs:annotation>
      <xs:documentation>The title of a person</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.honorific.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.firstname.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.firstname.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="firstname">
    <xs:annotation>
      <xs:documentation>The first name of a person</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.firstname.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.surname.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.surname.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="surname">
    <xs:annotation>
      <xs:documentation>A family name; in western cultures the last name</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.surname.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.lineage.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.lineage.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="lineage">
    <xs:annotation>
      <xs:documentation>The portion of a person's name indicating a relationship to ancestors</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.lineage.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.othername.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.othername.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="othername">
    <xs:annotation>
      <xs:documentation>A component of a persons name that is not a first name, surname, or lineage</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.othername.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.printhistory.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.printhistory.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="printhistory">
    <xs:annotation>
      <xs:documentation>The printing history of a document</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="db:db.para.blocks"/>
      <xs:attributeGroup ref="db:db.printhistory.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.pubdate.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.pubdate.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="pubdate">
    <xs:annotation>
      <xs:documentation>The date of publication of a document</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:attributeGroup ref="db:db.pubdate.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.publisher.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.publisher.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="publisher">
    <xs:annotation>
      <xs:documentation>The publisher of a document</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="db:publishername"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:address"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.publisher.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.publishername.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.publishername.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="publishername">
    <xs:annotation>
      <xs:documentation>The name of the publisher of a document</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.publishername.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.releaseinfo.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.releaseinfo.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="releaseinfo">
    <xs:annotation>
      <xs:documentation>Information about a particular release of a document</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.releaseinfo.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.revhistory.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.revhistory.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.revhistory.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.only"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="revhistory">
    <xs:annotation>
      <xs:documentation>A history of the revisions to a document</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.revhistory.info"/>
        <xs:element maxOccurs="unbounded" ref="db:revision"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.revhistory.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.revision.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.revision.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="revision">
    <xs:annotation>
      <xs:documentation>An entry describing a single revision in the history of the revisions to a document</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="db:revnumber"/>
        <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:attributeGroup ref="db:db.revision.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.revnumber.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.revnumber.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="revnumber">
    <xs:annotation>
      <xs:documentation>A document revision number</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.revnumber.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.revremark.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.revremark.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="revremark">
    <xs:annotation>
      <xs:documentation>A description of a revision to a document</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.revremark.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.revdescription.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.revdescription.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="revdescription">
    <xs:annotation>
      <xs:documentation>A extended description of a revision to a document</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.blocks"/>
      <xs:attributeGroup ref="db:db.revdescription.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.seriesvolnums.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.seriesvolnums.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="seriesvolnums">
    <xs:annotation>
      <xs:documentation>Numbers of the volumes in a series of books</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.seriesvolnums.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.volumenum.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.volumenum.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="volumenum">
    <xs:annotation>
      <xs:documentation>The volume number of a document in a set (as of books in a set or articles in a journal)</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.volumenum.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.issuenum.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.issuenum.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="issuenum">
    <xs:annotation>
      <xs:documentation>The number of an issue of a journal</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.issuenum.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.package.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.package.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="package" substitutionGroup="db:db.technical.inlines">
    <xs:annotation>
      <xs:documentation>A software or application package</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.package.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.email.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.email.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="email" substitutionGroup="db:db.markup.inlines">
    <xs:annotation>
      <xs:documentation>An email address</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.email.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.lineannotation.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.lineannotation.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="lineannotation">
    <xs:annotation>
      <xs:documentation>A comment on a line in a verbatim listing</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.lineannotation.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:simpleType name="db.parameter.class.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="command">
        <xs:annotation>
          <xs:documentation>A command</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="function">
        <xs:annotation>
          <xs:documentation>A function</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="option">
        <xs:annotation>
          <xs:documentation>An option</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.parameter.class.attribute">
    <xs:attribute name="class" use="required" type="db:db.parameter.class.enumeration">
      <xs:annotation>
        <xs:documentation>Identifies the class of parameter</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.parameter.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.parameter.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="class" type="db:db.parameter.class.enumeration">
      <xs:annotation>
        <xs:documentation>Identifies the class of parameter</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="parameter" substitutionGroup="db:db.technical.inlines">
    <xs:annotation>
      <xs:documentation>A value or a symbolic reference to a value</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.parameter.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:group name="db.replaceable.inlines">
    <xs:choice>
      <xs:group ref="db:db._text"/>
      <xs:element ref="db:co"/>
    </xs:choice>
  </xs:group>
  <xs:simpleType name="db.replaceable.class.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="command">
        <xs:annotation>
          <xs:documentation>A command</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="function">
        <xs:annotation>
          <xs:documentation>A function</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="option">
        <xs:annotation>
          <xs:documentation>An option</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="parameter">
        <xs:annotation>
          <xs:documentation>A parameter</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.replaceable.class.attribute">
    <xs:attribute name="class" use="required" type="db:db.replaceable.class.enumeration">
      <xs:annotation>
        <xs:documentation>Identifies the nature of the replaceable text</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.replaceable.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.replaceable.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="class" type="db:db.replaceable.class.enumeration">
      <xs:annotation>
        <xs:documentation>Identifies the nature of the replaceable text</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="replaceable" substitutionGroup="db:db.technical.inlines">
    <xs:annotation>
      <xs:documentation>Content that may or must be replaced by the user</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.replaceable.inlines"/>
      <xs:attributeGroup ref="db:db.replaceable.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.uri.type.attribute">
    <xs:attribute name="type">
      <xs:annotation>
        <xs:documentation>Identifies the type of URI specified</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.uri.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.uri.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attributeGroup ref="db:db.uri.type.attribute"/>
  </xs:attributeGroup>
  <xs:element name="uri" substitutionGroup="db:db.markup.inlines">
    <xs:annotation>
      <xs:documentation>A Uniform Resource Identifier</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.uri.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.abbrev.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.abbrev.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="abbrev">
    <xs:annotation>
      <xs:documentation>An abbreviation, especially one followed by a period</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:group ref="db:db._text"/>
        <xs:element ref="db:superscript"/>
        <xs:element ref="db:subscript"/>
        <xs:element ref="db:trademark"/>
      </xs:choice>
      <xs:attributeGroup ref="db:db.abbrev.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.acronym.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.acronym.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="acronym">
    <xs:annotation>
      <xs:documentation>An often pronounceable word made from the initial (or selected) letters of a name or phrase</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:group ref="db:db._text"/>
        <xs:element ref="db:superscript"/>
        <xs:element ref="db:subscript"/>
        <xs:element ref="db:trademark"/>
      </xs:choice>
      <xs:attributeGroup ref="db:db.acronym.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.citation.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.citation.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="citation" substitutionGroup="db:db.bibliography.inlines">
    <xs:annotation>
      <xs:documentation>An inline bibliographic reference to another published work</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.citation.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.citerefentry.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.citerefentry.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="citerefentry" substitutionGroup="db:db.bibliography.inlines">
    <xs:annotation>
      <xs:documentation>A citation to a reference page</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="db:refentrytitle"/>
        <xs:element minOccurs="0" ref="db:manvolnum"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.citerefentry.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.refentrytitle.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.refentrytitle.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="refentrytitle">
    <xs:annotation>
      <xs:documentation>The title of a reference page</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.refentrytitle.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.manvolnum.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.manvolnum.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="manvolnum">
    <xs:annotation>
      <xs:documentation>A reference volume number</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.manvolnum.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:simpleType name="db.citetitle.pubwork.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="article">
        <xs:annotation>
          <xs:documentation>An article</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="bbs">
        <xs:annotation>
          <xs:documentation>A bulletin board system</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="book">
        <xs:annotation>
          <xs:documentation>A book</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="cdrom">
        <xs:annotation>
          <xs:documentation>A CD-ROM</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="chapter">
        <xs:annotation>
          <xs:documentation>A chapter (as of a book)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="dvd">
        <xs:annotation>
          <xs:documentation>A DVD</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="emailmessage">
        <xs:annotation>
          <xs:documentation>An email message</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="gopher">
        <xs:annotation>
          <xs:documentation>A gopher page</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="journal">
        <xs:annotation>
          <xs:documentation>A journal</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="manuscript">
        <xs:annotation>
          <xs:documentation>A manuscript</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="newsposting">
        <xs:annotation>
          <xs:documentation>A posting to a newsgroup</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="part">
        <xs:annotation>
          <xs:documentation>A part (as of a book)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="refentry">
        <xs:annotation>
          <xs:documentation>A reference entry</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="section">
        <xs:annotation>
          <xs:documentation>A section (as of a book or article)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="series">
        <xs:annotation>
          <xs:documentation>A series</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="set">
        <xs:annotation>
          <xs:documentation>A set (as of books)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="webpage">
        <xs:annotation>
          <xs:documentation>A web page</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="wiki">
        <xs:annotation>
          <xs:documentation>A wiki page</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.citetitle.pubwork.attribute">
    <xs:attribute name="pubwork" use="required" type="db:db.citetitle.pubwork.enumeration">
      <xs:annotation>
        <xs:documentation>Identifies the nature of the publication being cited</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.citetitle.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.citetitle.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="pubwork" type="db:db.citetitle.pubwork.enumeration">
      <xs:annotation>
        <xs:documentation>Identifies the nature of the publication being cited</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="citetitle" substitutionGroup="db:db.bibliography.inlines">
    <xs:annotation>
      <xs:documentation>The title of a cited work</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.citetitle.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.emphasis.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.emphasis.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.emphasis">
    <xs:sequence>
      <xs:element name="emphasis">
        <xs:annotation>
          <xs:documentation>Emphasized text</xs:documentation>
        </xs:annotation>
        <xs:complexType mixed="true">
          <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
          <xs:attributeGroup ref="db:db.emphasis.attlist"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:group name="db._emphasis">
    <xs:sequence>
      <xs:element name="emphasis">
        <xs:annotation>
          <xs:documentation>A limited span of emphasized text</xs:documentation>
        </xs:annotation>
        <xs:complexType mixed="true">
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:group ref="db:db._text"/>
            <xs:group ref="db:db._emphasis"/>
          </xs:choice>
          <xs:attributeGroup ref="db:db.emphasis.attlist"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:attributeGroup name="db.foreignphrase.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.foreignphrase.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="foreignphrase">
    <xs:annotation>
      <xs:documentation>A word or phrase in a language other than the primary language of the document</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.general.inlines"/>
      <xs:attributeGroup ref="db:db.foreignphrase.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.phrase.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.phrase.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.phrase">
    <xs:sequence>
      <xs:element name="phrase">
        <xs:annotation>
          <xs:documentation>A span of text</xs:documentation>
        </xs:annotation>
        <xs:complexType mixed="true">
          <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
          <xs:attributeGroup ref="db:db.phrase.attlist"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:group name="db._phrase">
    <xs:sequence>
      <xs:element name="phrase">
        <xs:annotation>
          <xs:documentation>A limited span of text</xs:documentation>
        </xs:annotation>
        <xs:complexType mixed="true">
          <xs:group ref="db:db._text"/>
          <xs:attributeGroup ref="db:db.phrase.attlist"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:attributeGroup name="db.quote.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.quote.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="quote">
    <xs:annotation>
      <xs:documentation>An inline quotation</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.quote.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.subscript.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.subscript.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="subscript">
    <xs:annotation>
      <xs:documentation>A subscript (as in H2
O, the molecular formula for water)</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.subscript.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.superscript.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.superscript.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="superscript">
    <xs:annotation>
      <xs:documentation>A superscript (as in x^2, the mathematical notation for x multiplied by itself)</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.superscript.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:simpleType name="db.trademark.class.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="copyright">
        <xs:annotation>
          <xs:documentation>A copyright</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="registered">
        <xs:annotation>
          <xs:documentation>A registered copyright</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="service">
        <xs:annotation>
          <xs:documentation>A service</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="trade">
        <xs:annotation>
          <xs:documentation>A trademark</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.trademark.class.attribute">
    <xs:attribute name="class" use="required" type="db:db.trademark.class.enumeration">
      <xs:annotation>
        <xs:documentation>Identifies the class of trade mark</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.trademark.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.trademark.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="class" type="db:db.trademark.class.enumeration">
      <xs:annotation>
        <xs:documentation>Identifies the class of trade mark</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="trademark" substitutionGroup="db:db.product.inlines">
    <xs:annotation>
      <xs:documentation>A trademark</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.trademark.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.wordasword.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.wordasword.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="wordasword">
    <xs:annotation>
      <xs:documentation>A word meant specifically as a word and not representing anything else</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.wordasword.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.footnoteref.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.footnoteref.label.attribute">
    <xs:attributeGroup ref="db:db.label.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.footnoteref.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.linkend.attribute"/>
    <xs:attribute name="label">
      <xs:annotation>
        <xs:documentation>Specifies an identifying string for presentation purposes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="footnoteref">
    <xs:annotation>
      <xs:documentation>A cross reference to a footnote (a footnote mark)</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attributeGroup ref="db:db.footnoteref.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.xref.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.xref.xrefstyle.attribute">
    <xs:attributeGroup ref="db:db.xrefstyle.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.xref.endterm.attribute">
    <xs:attributeGroup ref="db:db.endterm.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.xref.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.req.linking.attributes"/>
    <xs:attribute name="xrefstyle">
      <xs:annotation>
        <xs:documentation>Specifies a keyword or keywords identifying additional style information</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="endterm" type="xs:IDREF">
      <xs:annotation>
        <xs:documentation>Points to the element whose content is to be used as the text of the link</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="xref">
    <xs:annotation>
      <xs:documentation>A cross reference to another part of the document</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attributeGroup ref="db:db.xref.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.link.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.link.xrefstyle.attribute">
    <xs:attributeGroup ref="db:db.xrefstyle.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.link.endterm.attribute">
    <xs:attributeGroup ref="db:db.endterm.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.link.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.req.linking.attributes"/>
    <xs:attribute name="xrefstyle">
      <xs:annotation>
        <xs:documentation>Specifies a keyword or keywords identifying additional style information</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="endterm" type="xs:IDREF">
      <xs:annotation>
        <xs:documentation>Points to the element whose content is to be used as the text of the link</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="link">
    <xs:annotation>
      <xs:documentation>A hypertext link</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.link.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.olink.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.olink.xrefstyle.attribute">
    <xs:attributeGroup ref="db:db.xrefstyle.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.olink.localinfo.attribute">
    <xs:attribute name="localinfo" use="required">
      <xs:annotation>
        <xs:documentation>Holds additional information that may be used by the applicatoin when resolving the link</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.olink.targetdoc.attribute">
    <xs:attribute name="targetdoc" use="required" type="xs:anyURI">
      <xs:annotation>
        <xs:documentation>Specifies the URI of the document in which the link target appears</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.olink.targetptr.attribute">
    <xs:attribute name="targetptr" use="required">
      <xs:annotation>
        <xs:documentation>Specifies the location of the link target in the document</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.olink.type.attribute">
    <xs:attribute name="type" use="required">
      <xs:annotation>
        <xs:documentation>Identifies application-specific customization of the link behavior</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.olink.attlist">
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attribute name="targetdoc" type="xs:anyURI">
      <xs:annotation>
        <xs:documentation>Specifies the URI of the document in which the link target appears</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="role"/>
    <xs:attribute name="xrefstyle">
      <xs:annotation>
        <xs:documentation>Specifies a keyword or keywords identifying additional style information</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="localinfo">
      <xs:annotation>
        <xs:documentation>Holds additional information that may be used by the applicatoin when resolving the link</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="targetptr">
      <xs:annotation>
        <xs:documentation>Specifies the location of the link target in the document</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="type">
      <xs:annotation>
        <xs:documentation>Identifies application-specific customization of the link behavior</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="olink">
    <xs:annotation>
      <xs:documentation>A link that addresses its target indirectly</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.olink.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.anchor.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.anchor.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="db:db.common.idreq.attributes"/>
  </xs:attributeGroup>
  <xs:element name="anchor">
    <xs:annotation>
      <xs:documentation>A spot in the document</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attributeGroup ref="db:db.anchor.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.alt.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.alt.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
  </xs:attributeGroup>
  <xs:element name="alt">
    <xs:annotation>
      <xs:documentation>A text-only annotation, often used for accessibility</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:inlinemediaobject"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.alt.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.status.attribute">
    <xs:attribute name="status" use="required">
      <xs:annotation>
        <xs:documentation>Identifies the editorial or publication status of the element on which it occurs</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.toplevel.sections">
    <xs:choice>
      <xs:choice>
        <xs:sequence>
          <xs:element maxOccurs="unbounded" ref="db:section"/>
          <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:simplesect"/>
        </xs:sequence>
        <xs:element maxOccurs="unbounded" ref="db:simplesect"/>
      </xs:choice>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="db:sect1"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:simplesect"/>
      </xs:sequence>
      <xs:element maxOccurs="unbounded" ref="db:refentry"/>
    </xs:choice>
  </xs:group>
  <xs:group name="db.toplevel.blocks.or.sections">
    <xs:choice>
      <xs:sequence>
        <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
        <xs:group minOccurs="0" ref="db:db.toplevel.sections"/>
      </xs:sequence>
      <xs:group ref="db:db.toplevel.sections"/>
    </xs:choice>
  </xs:group>
  <xs:group name="db.recursive.sections">
    <xs:choice>
      <xs:choice>
        <xs:sequence>
          <xs:element maxOccurs="unbounded" ref="db:section"/>
          <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:simplesect"/>
        </xs:sequence>
        <xs:element maxOccurs="unbounded" ref="db:simplesect"/>
      </xs:choice>
      <xs:element maxOccurs="unbounded" ref="db:refentry"/>
    </xs:choice>
  </xs:group>
  <xs:group name="db.recursive.blocks.or.sections">
    <xs:choice>
      <xs:sequence>
        <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
        <xs:group minOccurs="0" ref="db:db.recursive.sections"/>
      </xs:sequence>
      <xs:group ref="db:db.recursive.sections"/>
    </xs:choice>
  </xs:group>
  <xs:element name="db.divisions" abstract="true"/>
  <xs:element name="db.components" abstract="true"/>
  <xs:group name="db.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="db.component.contentmodel">
    <xs:sequence>
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.navigation.components"/>
      <xs:group ref="db:db.toplevel.blocks.or.sections"/>
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.navigation.components"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="db.setindex.components" abstract="true">
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.setindex.info"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.blocks"/>
        <xs:choice>
          <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:indexdiv"/>
          <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:indexentry"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.setindex.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:group name="db.toc.components">
    <xs:sequence>
      <xs:element ref="db:toc"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="db.set.components" abstract="true"/>
  <xs:attributeGroup name="db.set.status.attribute">
    <xs:attributeGroup ref="db:db.status.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.set.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.set.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="label">
      <xs:annotation>
        <xs:documentation>Specifies an identifying string for presentation purposes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="status">
      <xs:annotation>
        <xs:documentation>Identifies the editorial or publication status of the element on which it occurs</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.set.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.req"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="set" substitutionGroup="db:db.set.components">
    <xs:annotation>
      <xs:documentation>A collection of books</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.set.info"/>
        <xs:group minOccurs="0" ref="db:db.toc.components"/>
        <xs:element maxOccurs="unbounded" ref="db:db.set.components"/>
        <xs:element minOccurs="0" ref="db:db.setindex.components"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.set.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.book.status.attribute">
    <xs:attributeGroup ref="db:db.status.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.book.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.book.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="label">
      <xs:annotation>
        <xs:documentation>Specifies an identifying string for presentation purposes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="status">
      <xs:annotation>
        <xs:documentation>Identifies the editorial or publication status of the element on which it occurs</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.book.info">
    <xs:sequence>
      <xs:group ref="db:db._info"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="book" substitutionGroup="db:db.set.components">
    <xs:annotation>
      <xs:documentation>A book</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.book.info"/>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:group ref="db:db.navigation.components"/>
          <xs:element ref="db:db.components"/>
          <xs:element ref="db:db.divisions"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.book.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.dedication.status.attribute">
    <xs:attributeGroup ref="db:db.status.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.dedication.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.dedication.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="label">
      <xs:annotation>
        <xs:documentation>Specifies an identifying string for presentation purposes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="status">
      <xs:annotation>
        <xs:documentation>Identifies the editorial or publication status of the element on which it occurs</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.dedication.info">
    <xs:sequence>
      <xs:group ref="db:db._info"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="dedication" substitutionGroup="db:db.components">
    <xs:annotation>
      <xs:documentation>The dedication of a book or other component</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.dedication.info"/>
        <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.dedication.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.acknowledgements.status.attribute">
    <xs:attributeGroup ref="db:db.status.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.acknowledgements.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.acknowledgements.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="label">
      <xs:annotation>
        <xs:documentation>Specifies an identifying string for presentation purposes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="status">
      <xs:annotation>
        <xs:documentation>Identifies the editorial or publication status of the element on which it occurs</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.acknowledgements.info">
    <xs:sequence>
      <xs:group ref="db:db._info"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="acknowledgements" substitutionGroup="db:db.components">
    <xs:annotation>
      <xs:documentation>Acknowledgements of a book or other component</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.acknowledgements.info"/>
        <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.acknowledgements.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.colophon.status.attribute">
    <xs:attributeGroup ref="db:db.status.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.colophon.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.colophon.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="label">
      <xs:annotation>
        <xs:documentation>Specifies an identifying string for presentation purposes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="status">
      <xs:annotation>
        <xs:documentation>Identifies the editorial or publication status of the element on which it occurs</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.colophon.info">
    <xs:sequence>
      <xs:group ref="db:db._info"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="colophon" substitutionGroup="db:db.components">
    <xs:annotation>
      <xs:documentation>Text at the back of a book describing facts about its production</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.colophon.info"/>
        <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.colophon.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.appendix.status.attribute">
    <xs:attributeGroup ref="db:db.status.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.appendix.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.appendix.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="label">
      <xs:annotation>
        <xs:documentation>Specifies an identifying string for presentation purposes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="status">
      <xs:annotation>
        <xs:documentation>Identifies the editorial or publication status of the element on which it occurs</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.appendix.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.req"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="appendix" substitutionGroup="db:db.components">
    <xs:annotation>
      <xs:documentation>An appendix in a Book or Article</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.appendix.info"/>
        <xs:group ref="db:db.component.contentmodel"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.appendix.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.chapter.status.attribute">
    <xs:attributeGroup ref="db:db.status.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.chapter.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.chapter.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="label">
      <xs:annotation>
        <xs:documentation>Specifies an identifying string for presentation purposes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="status">
      <xs:annotation>
        <xs:documentation>Identifies the editorial or publication status of the element on which it occurs</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.chapter.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.req"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="chapter" substitutionGroup="db:db.components">
    <xs:annotation>
      <xs:documentation>A chapter, as of a book</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.chapter.info"/>
        <xs:group ref="db:db.component.contentmodel"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.chapter.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:group name="db.part.components">
    <xs:choice>
      <xs:choice>
        <xs:group ref="db:db.navigation.components"/>
        <xs:element ref="db:db.components"/>
      </xs:choice>
      <xs:choice>
        <xs:element ref="db:refentry"/>
        <xs:element ref="db:reference"/>
      </xs:choice>
    </xs:choice>
  </xs:group>
  <xs:attributeGroup name="db.part.status.attribute">
    <xs:attributeGroup ref="db:db.status.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.part.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.part.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="label">
      <xs:annotation>
        <xs:documentation>Specifies an identifying string for presentation purposes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="status">
      <xs:annotation>
        <xs:documentation>Identifies the editorial or publication status of the element on which it occurs</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.part.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.req"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="part" substitutionGroup="db:db.divisions">
    <xs:annotation>
      <xs:documentation>A division in a book</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.part.info"/>
        <xs:element minOccurs="0" ref="db:partintro"/>
        <xs:group maxOccurs="unbounded" ref="db:db.part.components"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.part.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.preface.status.attribute">
    <xs:attributeGroup ref="db:db.status.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.preface.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.preface.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="label">
      <xs:annotation>
        <xs:documentation>Specifies an identifying string for presentation purposes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="status">
      <xs:annotation>
        <xs:documentation>Identifies the editorial or publication status of the element on which it occurs</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.preface.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.req"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="preface" substitutionGroup="db:db.components">
    <xs:annotation>
      <xs:documentation>Introductory matter preceding the first chapter of a book</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.preface.info"/>
        <xs:group ref="db:db.component.contentmodel"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.preface.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.partintro.status.attribute">
    <xs:attributeGroup ref="db:db.status.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.partintro.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.partintro.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="label">
      <xs:annotation>
        <xs:documentation>Specifies an identifying string for presentation purposes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="status">
      <xs:annotation>
        <xs:documentation>Identifies the editorial or publication status of the element on which it occurs</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.partintro.info">
    <xs:sequence>
      <xs:group ref="db:db._info"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="partintro">
    <xs:annotation>
      <xs:documentation>An introduction to the contents of a part</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.partintro.info"/>
        <xs:group ref="db:db.toplevel.blocks.or.sections"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.partintro.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.section.status.attribute">
    <xs:attributeGroup ref="db:db.status.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.section.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.section.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="label">
      <xs:annotation>
        <xs:documentation>Specifies an identifying string for presentation purposes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="status">
      <xs:annotation>
        <xs:documentation>Identifies the editorial or publication status of the element on which it occurs</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.section.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.req"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="section">
    <xs:annotation>
      <xs:documentation>A recursive section</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.section.info"/>
        <xs:group ref="db:db.recursive.blocks.or.sections"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.navigation.components"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.section.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.simplesect.status.attribute">
    <xs:attributeGroup ref="db:db.status.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.simplesect.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.simplesect.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="label">
      <xs:annotation>
        <xs:documentation>Specifies an identifying string for presentation purposes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="status">
      <xs:annotation>
        <xs:documentation>Identifies the editorial or publication status of the element on which it occurs</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.simplesect.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.req"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="simplesect">
    <xs:annotation>
      <xs:documentation>A section of a document with no subdivisions</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.simplesect.info"/>
        <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.simplesect.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:group name="db.article.components">
    <xs:sequence>
      <xs:group ref="db:db.toplevel.sections"/>
    </xs:sequence>
  </xs:group>
  <xs:attributeGroup name="db.article.status.attribute">
    <xs:attributeGroup ref="db:db.status.attribute"/>
  </xs:attributeGroup>
  <xs:simpleType name="db.article.class.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="faq">
        <xs:annotation>
          <xs:documentation>A collection of frequently asked questions.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="journalarticle">
        <xs:annotation>
          <xs:documentation>An article in a journal or other periodical.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="productsheet">
        <xs:annotation>
          <xs:documentation>A description of a product.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="specification">
        <xs:annotation>
          <xs:documentation>A specification.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="techreport">
        <xs:annotation>
          <xs:documentation>A technical report.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="whitepaper">
        <xs:annotation>
          <xs:documentation>A white paper.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.article.class.attribute">
    <xs:attribute name="class" use="required" type="db:db.article.class.enumeration">
      <xs:annotation>
        <xs:documentation>Identifies the nature of the article</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.article.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.article.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="label">
      <xs:annotation>
        <xs:documentation>Specifies an identifying string for presentation purposes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="status">
      <xs:annotation>
        <xs:documentation>Identifies the editorial or publication status of the element on which it occurs</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="class" type="db:db.article.class.enumeration">
      <xs:annotation>
        <xs:documentation>Identifies the nature of the article</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.article.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.req"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="article" substitutionGroup="db:db.components">
    <xs:annotation>
      <xs:documentation>An article</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.article.info"/>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:group ref="db: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 maxOccurs="unbounded" ref="db:db.all.blocks"/>
            <xs:group minOccurs="0" ref="db:db.article.components"/>
          </xs:sequence>
          <xs:group ref="db:db.article.components"/>
        </xs:choice>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:group ref="db:db.navigation.components"/>
          <xs:element ref="db:appendix"/>
          <xs:element ref="db:acknowledgements"/>
          <xs:element ref="db:colophon"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.article.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.annotations.attribute">
    <xs:attribute name="annotations" use="required">
      <xs:annotation>
        <xs:documentation>Identifies one or more annotations that apply to this element</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.annotation.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.annotation.annotates.attribute">
    <xs:attribute name="annotates" use="required">
      <xs:annotation>
        <xs:documentation>Identifies one ore more elements to which this annotation applies</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.annotation.attlist">
    <xs:attribute name="role"/>
    <xs:attribute name="annotates">
      <xs:annotation>
        <xs:documentation>Identifies one ore more elements to which this annotation applies</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.annotation.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.only"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="annotation">
    <xs:annotation>
      <xs:documentation>An annotation</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.annotation.info"/>
        <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.annotation.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.xlink.from.attribute">
    <xs:attribute ref="xlink:from"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.xlink.label.attribute">
    <xs:attribute ref="xlink:label"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.xlink.to.attribute">
    <xs:attribute ref="xlink:to"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.extendedlink.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.extendedlink.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="xlink:type1"/>
    <xs:attribute ref="xlink:role"/>
    <xs:attributeGroup ref="db:db.xlink.title.attribute"/>
  </xs:attributeGroup>
  <xs:element name="extendedlink">
    <xs:annotation>
      <xs:documentation>An XLink extended link</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:choice maxOccurs="unbounded">
        <xs:element ref="db:locator"/>
        <xs:element ref="db:arc"/>
      </xs:choice>
      <xs:attributeGroup ref="db:db.extendedlink.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.locator.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.locator.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="xlink:type2"/>
    <xs:attributeGroup ref="db:db.xlink.href.attribute"/>
    <xs:attribute ref="xlink:role"/>
    <xs:attributeGroup ref="db:db.xlink.title.attribute"/>
    <xs:attributeGroup ref="db:db.xlink.label.attribute"/>
  </xs:attributeGroup>
  <xs:element name="locator">
    <xs:annotation>
      <xs:documentation>An XLink locator in an extendedlink</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attributeGroup ref="db:db.locator.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.arc.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.arc.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="xlink:type3"/>
    <xs:attribute ref="xlink:arcrole"/>
    <xs:attributeGroup ref="db:db.xlink.title.attribute"/>
    <xs:attribute ref="xlink:show"/>
    <xs:attribute ref="xlink:actuate"/>
    <xs:attributeGroup ref="db:db.xlink.from.attribute"/>
    <xs:attributeGroup ref="db:db.xlink.to.attribute"/>
  </xs:attributeGroup>
  <xs:element name="arc">
    <xs:annotation>
      <xs:documentation>An XLink arc in an extendedlink</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attributeGroup ref="db:db.arc.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:group name="db.sect1.sections">
    <xs:choice>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="db:sect2"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:simplesect"/>
      </xs:sequence>
      <xs:element maxOccurs="unbounded" ref="db:simplesect"/>
    </xs:choice>
  </xs:group>
  <xs:attributeGroup name="db.sect1.status.attribute">
    <xs:attributeGroup ref="db:db.status.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.sect1.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.sect1.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="label">
      <xs:annotation>
        <xs:documentation>Specifies an identifying string for presentation purposes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="status">
      <xs:annotation>
        <xs:documentation>Identifies the editorial or publication status of the element on which it occurs</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.sect1.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.req"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="sect1">
    <xs:annotation>
      <xs:documentation>A top-level section of document</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.sect1.info"/>
        <xs:choice>
          <xs:sequence>
            <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
            <xs:group minOccurs="0" ref="db:db.sect1.sections"/>
          </xs:sequence>
          <xs:group ref="db:db.sect1.sections"/>
        </xs:choice>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.navigation.components"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.sect1.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:group name="db.sect2.sections">
    <xs:choice>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="db:sect3"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:simplesect"/>
      </xs:sequence>
      <xs:element maxOccurs="unbounded" ref="db:simplesect"/>
    </xs:choice>
  </xs:group>
  <xs:attributeGroup name="db.sect2.status.attribute">
    <xs:attributeGroup ref="db:db.status.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.sect2.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.sect2.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="label">
      <xs:annotation>
        <xs:documentation>Specifies an identifying string for presentation purposes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="status">
      <xs:annotation>
        <xs:documentation>Identifies the editorial or publication status of the element on which it occurs</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.sect2.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.req"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="sect2">
    <xs:annotation>
      <xs:documentation>A subsection within a Sect1</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.sect2.info"/>
        <xs:choice>
          <xs:sequence>
            <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
            <xs:group minOccurs="0" ref="db:db.sect2.sections"/>
          </xs:sequence>
          <xs:group ref="db:db.sect2.sections"/>
        </xs:choice>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.navigation.components"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.sect2.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:group name="db.sect3.sections">
    <xs:choice>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="db:sect4"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:simplesect"/>
      </xs:sequence>
      <xs:element maxOccurs="unbounded" ref="db:simplesect"/>
    </xs:choice>
  </xs:group>
  <xs:attributeGroup name="db.sect3.status.attribute">
    <xs:attributeGroup ref="db:db.status.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.sect3.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.sect3.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="label">
      <xs:annotation>
        <xs:documentation>Specifies an identifying string for presentation purposes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="status">
      <xs:annotation>
        <xs:documentation>Identifies the editorial or publication status of the element on which it occurs</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.sect3.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.req"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="sect3">
    <xs:annotation>
      <xs:documentation>A subsection within a Sect2</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.sect3.info"/>
        <xs:choice>
          <xs:sequence>
            <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
            <xs:group minOccurs="0" ref="db:db.sect3.sections"/>
          </xs:sequence>
          <xs:group ref="db:db.sect3.sections"/>
        </xs:choice>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.navigation.components"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.sect3.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:group name="db.sect4.sections">
    <xs:choice>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="db:sect5"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:simplesect"/>
      </xs:sequence>
      <xs:element maxOccurs="unbounded" ref="db:simplesect"/>
    </xs:choice>
  </xs:group>
  <xs:attributeGroup name="db.sect4.status.attribute">
    <xs:attributeGroup ref="db:db.status.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.sect4.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.sect4.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="label">
      <xs:annotation>
        <xs:documentation>Specifies an identifying string for presentation purposes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="status">
      <xs:annotation>
        <xs:documentation>Identifies the editorial or publication status of the element on which it occurs</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.sect4.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.req"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="sect4">
    <xs:annotation>
      <xs:documentation>A subsection within a Sect3</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.sect4.info"/>
        <xs:choice>
          <xs:sequence>
            <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
            <xs:group minOccurs="0" ref="db:db.sect4.sections"/>
          </xs:sequence>
          <xs:group ref="db:db.sect4.sections"/>
        </xs:choice>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.navigation.components"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.sect4.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:group name="db.sect5.sections">
    <xs:sequence>
      <xs:element maxOccurs="unbounded" ref="db:simplesect"/>
    </xs:sequence>
  </xs:group>
  <xs:attributeGroup name="db.sect5.status.attribute">
    <xs:attributeGroup ref="db:db.status.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.sect5.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.sect5.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="label">
      <xs:annotation>
        <xs:documentation>Specifies an identifying string for presentation purposes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="status">
      <xs:annotation>
        <xs:documentation>Identifies the editorial or publication status of the element on which it occurs</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.sect5.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.req"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="sect5">
    <xs:annotation>
      <xs:documentation>A subsection within a Sect4</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.sect5.info"/>
        <xs:choice>
          <xs:sequence>
            <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
            <xs:group minOccurs="0" ref="db:db.sect5.sections"/>
          </xs:sequence>
          <xs:group ref="db:db.sect5.sections"/>
        </xs:choice>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.navigation.components"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.sect5.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:group name="db.toplevel.refsection">
    <xs:choice>
      <xs:element maxOccurs="unbounded" ref="db:refsection"/>
      <xs:element maxOccurs="unbounded" ref="db:refsect1"/>
    </xs:choice>
  </xs:group>
  <xs:group name="db.secondlevel.refsection">
    <xs:choice>
      <xs:element maxOccurs="unbounded" ref="db:refsection"/>
      <xs:element maxOccurs="unbounded" ref="db:refsect2"/>
    </xs:choice>
  </xs:group>
  <xs:element name="db.reference.components" abstract="true">
    <xs:complexType>
      <xs:sequence>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.indexterm"/>
        <xs:group ref="db:db.refentry.info"/>
        <xs:element minOccurs="0" ref="db:refmeta"/>
        <xs:element maxOccurs="unbounded" ref="db:refnamediv"/>
        <xs:element minOccurs="0" ref="db:refsynopsisdiv"/>
        <xs:group ref="db:db.toplevel.refsection"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.refentry.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.reference.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.reference.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="status">
      <xs:annotation>
        <xs:documentation>Identifies the editorial or publication status of the element on which it occurs</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="label">
      <xs:annotation>
        <xs:documentation>Specifies an identifying string for presentation purposes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.reference.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.req"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="reference" substitutionGroup="db:db.divisions">
    <xs:annotation>
      <xs:documentation>A collection of reference entries</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.reference.info"/>
        <xs:element minOccurs="0" ref="db:partintro"/>
        <xs:element maxOccurs="unbounded" ref="db:db.reference.components"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.reference.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.refentry.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.refentry.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="status">
      <xs:annotation>
        <xs:documentation>Identifies the editorial or publication status of the element on which it occurs</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="label">
      <xs:annotation>
        <xs:documentation>Specifies an identifying string for presentation purposes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.refentry.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.forbidden"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="refentry" substitutionGroup="db:db.reference.components">
    <xs:annotation>
      <xs:documentation>A reference page (originally a UNIX man-style reference page)</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:attributeGroup name="db.refmeta.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.refmeta.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="refmeta">
    <xs:annotation>
      <xs:documentation>Meta-information for a reference entry</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.indexterm"/>
        <xs:element ref="db:refentrytitle"/>
        <xs:element minOccurs="0" ref="db:manvolnum"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:refmiscinfo"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.indexterm"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.refmeta.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:simpleType name="db.refmiscinfo.class.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="source">
        <xs:annotation>
          <xs:documentation>The name of the software product or component to which this topic applies</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="version">
        <xs:annotation>
          <xs:documentation>The version of the software product or component to which this topic applies</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="manual">
        <xs:annotation>
          <xs:documentation>The section title of the reference page (e.g., User Commands)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="sectdesc">
        <xs:annotation>
          <xs:documentation>The section title of the reference page (believed synonymous with "manual" but in wide use)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="software">
        <xs:annotation>
          <xs:documentation>The name of the software product or component to which this topic applies (e.g., SunOS x.y; believed synonymous with "source" but in wide use)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.refmiscinfo.class-enum.attribute">
    <xs:attribute name="class" type="db:db.refmiscinfo.class.enumeration">
      <xs:annotation>
        <xs:documentation>Identifies the kind of miscellaneous information</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.refmiscinfo.class-other.attribute">
    <xs:attribute name="otherclass" use="required">
      <xs:annotation>
        <xs:documentation>Identifies the nature of non-standard miscellaneous information</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.refmiscinfo.class-other.attributes">
    <xs:attribute name="class" use="required">
      <xs:annotation>
        <xs:documentation>Identifies the kind of miscellaneious information</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="other">
            <xs:annotation>
              <xs:documentation>Indicates that the information is some 'other' kind.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attributeGroup ref="db:db.refmiscinfo.class-other.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.refmiscinfo.class.attribute">
    <xs:attribute name="class">
      <xs:simpleType>
        <xs:union memberTypes="db:db.refmiscinfo.class.enumeration">
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="other">
                <xs:annotation>
                  <xs:documentation>Indicates that the information is some 'other' kind.</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
        </xs:union>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="otherclass">
      <xs:annotation>
        <xs:documentation>Identifies the nature of non-standard miscellaneous information</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.refmiscinfo.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.refmiscinfo.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attributeGroup ref="db:db.refmiscinfo.class.attribute"/>
  </xs:attributeGroup>
  <xs:element name="refmiscinfo">
    <xs:annotation>
      <xs:documentation>Meta-information for a reference entry other than the title and volume number</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.refmiscinfo.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.refnamediv.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.refnamediv.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="refnamediv">
    <xs:annotation>
      <xs:documentation>The name, purpose, and classification of a reference page</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="db:refdescriptor"/>
        <xs:element maxOccurs="unbounded" ref="db:refname"/>
        <xs:element ref="db:refpurpose"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:refclass"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.refnamediv.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.refdescriptor.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.refdescriptor.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="refdescriptor">
    <xs:annotation>
      <xs:documentation>A description of the topic of a reference page</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.refdescriptor.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.refname.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.refname.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="refname">
    <xs:annotation>
      <xs:documentation>The name of (one of) the subject(s) of a reference page</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.refname.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.refpurpose.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.refpurpose.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="refpurpose">
    <xs:annotation>
      <xs:documentation>A short (one sentence) synopsis of the topic of a reference page</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.refpurpose.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.refclass.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.refclass.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="refclass">
    <xs:annotation>
      <xs:documentation>The scope or other indication of applicability of a reference entry</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:application"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.refclass.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.refsynopsisdiv.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.refsynopsisdiv.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.refsynopsisdiv.info">
    <xs:sequence>
      <xs:group ref="db:db._info"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="refsynopsisdiv">
    <xs:annotation>
      <xs:documentation>A syntactic synopsis of the subject of the reference page</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.refsynopsisdiv.info"/>
        <xs:choice>
          <xs:sequence>
            <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
            <xs:group minOccurs="0" ref="db:db.secondlevel.refsection"/>
          </xs:sequence>
          <xs:group ref="db:db.secondlevel.refsection"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.refsynopsisdiv.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.refsection.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.refsection.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="status">
      <xs:annotation>
        <xs:documentation>Identifies the editorial or publication status of the element on which it occurs</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="label">
      <xs:annotation>
        <xs:documentation>Specifies an identifying string for presentation purposes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.refsection.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.req"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="refsection">
    <xs:annotation>
      <xs:documentation>A recursive section in a refentry</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.refsection.info"/>
        <xs:choice>
          <xs:sequence>
            <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
            <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:refsection"/>
          </xs:sequence>
          <xs:element maxOccurs="unbounded" ref="db:refsection"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.refsection.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:group name="db.refsect1.sections">
    <xs:sequence>
      <xs:element maxOccurs="unbounded" ref="db:refsect2"/>
    </xs:sequence>
  </xs:group>
  <xs:attributeGroup name="db.refsect1.status.attribute">
    <xs:attributeGroup ref="db:db.status.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.refsect1.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.refsect1.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="label">
      <xs:annotation>
        <xs:documentation>Specifies an identifying string for presentation purposes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="status">
      <xs:annotation>
        <xs:documentation>Identifies the editorial or publication status of the element on which it occurs</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.refsect1.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.req"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="refsect1">
    <xs:annotation>
      <xs:documentation>A major subsection of a reference entry</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.refsect1.info"/>
        <xs:choice>
          <xs:sequence>
            <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
            <xs:group minOccurs="0" ref="db:db.refsect1.sections"/>
          </xs:sequence>
          <xs:group ref="db:db.refsect1.sections"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.refsect1.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:group name="db.refsect2.sections">
    <xs:sequence>
      <xs:element maxOccurs="unbounded" ref="db:refsect3"/>
    </xs:sequence>
  </xs:group>
  <xs:attributeGroup name="db.refsect2.status.attribute">
    <xs:attributeGroup ref="db:db.status.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.refsect2.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.refsect2.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="label">
      <xs:annotation>
        <xs:documentation>Specifies an identifying string for presentation purposes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="status">
      <xs:annotation>
        <xs:documentation>Identifies the editorial or publication status of the element on which it occurs</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.refsect2.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.req"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="refsect2">
    <xs:annotation>
      <xs:documentation>A subsection of a refsect1</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.refsect2.info"/>
        <xs:choice>
          <xs:sequence>
            <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
            <xs:group minOccurs="0" ref="db:db.refsect2.sections"/>
          </xs:sequence>
          <xs:group ref="db:db.refsect2.sections"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.refsect2.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.refsect3.status.attribute">
    <xs:attributeGroup ref="db:db.status.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.refsect3.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.refsect3.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="label">
      <xs:annotation>
        <xs:documentation>Specifies an identifying string for presentation purposes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="status">
      <xs:annotation>
        <xs:documentation>Identifies the editorial or publication status of the element on which it occurs</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.refsect3.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.req"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="refsect3">
    <xs:annotation>
      <xs:documentation>A subsection of a refsect2</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.refsect3.info"/>
        <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.refsect3.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="db.glossary.inlines" abstract="true"/>
  <xs:attributeGroup name="db.baseform.attribute">
    <xs:attribute name="baseform">
      <xs:annotation>
        <xs:documentation>Specifies the base form of the term, the one that appears in the glossary. This allows adjectival, plural, and other variations of the term to appear in the element. The element content is the default base form.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.glosslist.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.glosslist.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.glosslist.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.only"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="glosslist">
    <xs:annotation>
      <xs:documentation>A wrapper for a list of glossary entries</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group minOccurs="0" ref="db:db.glosslist.info"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.blocks"/>
        <xs:element maxOccurs="unbounded" ref="db:glossentry"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.glosslist.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.glossentry.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.glossentry.sortas.attribute">
    <xs:attribute name="sortas" use="required">
      <xs:annotation>
        <xs:documentation>Specifies the string by which the element's content is to be sorted; if unspecified, the content is used</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.glossentry.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="sortas">
      <xs:annotation>
        <xs:documentation>Specifies the string by which the element's content is to be sorted; if unspecified, the content is used</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="glossentry">
    <xs:annotation>
      <xs:documentation>An entry in a Glossary or GlossList</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="db:glossterm"/>
        <xs:element minOccurs="0" ref="db:acronym"/>
        <xs:element minOccurs="0" ref="db:abbrev"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.indexterm"/>
        <xs:choice>
          <xs:element ref="db:glosssee"/>
          <xs:element maxOccurs="unbounded" ref="db:glossdef"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.glossentry.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.glossdef.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.glossdef.subject.attribute">
    <xs:attribute name="subject" use="required">
      <xs:annotation>
        <xs:documentation>Specifies a list of keywords for the definition</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.glossdef.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="subject">
      <xs:annotation>
        <xs:documentation>Specifies a list of keywords for the definition</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="glossdef">
    <xs:annotation>
      <xs:documentation>A definition in a GlossEntry</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:glossseealso"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.glossdef.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.glosssee.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.glosssee.otherterm.attribute">
    <xs:attribute name="otherterm" use="required" type="xs:IDREF">
      <xs:annotation>
        <xs:documentation>Identifies the other term</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.glosssee.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="otherterm" type="xs:IDREF">
      <xs:annotation>
        <xs:documentation>Identifies the other term</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="glosssee">
    <xs:annotation>
      <xs:documentation>A cross-reference from one glossentry
 to another</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.glosssee.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.glossseealso.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.glossseealso.otherterm.attribute">
    <xs:attribute name="otherterm" use="required" type="xs:IDREF">
      <xs:annotation>
        <xs:documentation>Identifies the other term</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.glossseealso.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="otherterm" type="xs:IDREF">
      <xs:annotation>
        <xs:documentation>Identifies the other term</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="glossseealso">
    <xs:annotation>
      <xs:documentation>A cross-reference from one GlossEntry to another</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.glossseealso.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.firstterm.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.firstterm.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attributeGroup ref="db:db.baseform.attribute"/>
  </xs:attributeGroup>
  <xs:element name="firstterm" substitutionGroup="db:db.glossary.inlines">
    <xs:annotation>
      <xs:documentation>The first occurrence of a term</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.firstterm.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.glossterm.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.glossterm.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attributeGroup ref="db:db.baseform.attribute"/>
  </xs:attributeGroup>
  <xs:element name="glossterm" substitutionGroup="db:db.glossary.inlines">
    <xs:annotation>
      <xs:documentation>A glossary term</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.glossterm.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.glossary.status.attribute">
    <xs:attributeGroup ref="db:db.status.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.glossary.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.glossary.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="label">
      <xs:annotation>
        <xs:documentation>Specifies an identifying string for presentation purposes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="status">
      <xs:annotation>
        <xs:documentation>Identifies the editorial or publication status of the element on which it occurs</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.glossary.info">
    <xs:sequence>
      <xs:group ref="db:db._info"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="glossary">
    <xs:annotation>
      <xs:documentation>A glossary</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.glossary.info"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.blocks"/>
        <xs:choice>
          <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:glossdiv"/>
          <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:glossentry"/>
        </xs:choice>
        <xs:element minOccurs="0" ref="db:bibliography"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.glossary.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.glossdiv.status.attribute">
    <xs:attributeGroup ref="db:db.status.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.glossdiv.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.glossdiv.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="label">
      <xs:annotation>
        <xs:documentation>Specifies an identifying string for presentation purposes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="status">
      <xs:annotation>
        <xs:documentation>Identifies the editorial or publication status of the element on which it occurs</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.glossdiv.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.req"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="glossdiv">
    <xs:annotation>
      <xs:documentation>A division in a Glossary</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.glossdiv.info"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.blocks"/>
        <xs:element maxOccurs="unbounded" ref="db:glossentry"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.glossdiv.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.termdef.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.termdef.attlist">
    <xs:attribute name="role"/>
    <xs:attribute name="sortas">
      <xs:annotation>
        <xs:documentation>Specifies the string by which the element's content is to be sorted; if unspecified, the content is used</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attributeGroup ref="db:db.baseform.attribute"/>
  </xs:attributeGroup>
  <xs:element name="termdef" substitutionGroup="db:db.technical.inlines">
    <xs:annotation>
      <xs:documentation>An inline definition of a term</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.termdef.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.relation.attribute">
    <xs:attribute name="relation" use="required">
      <xs:annotation>
        <xs:documentation>Identifies the relationship between the bibliographic elemnts</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.biblioentry.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.biblioentry.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="biblioentry">
    <xs:annotation>
      <xs:documentation>An entry in a Bibliography</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="db:db.bibliographic.elements"/>
      <xs:attributeGroup ref="db:db.biblioentry.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.bibliomixed.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.bibliomixed.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="bibliomixed">
    <xs:annotation>
      <xs:documentation>An entry in a Bibliography</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.bibliographic.elements"/>
      <xs:attributeGroup ref="db:db.bibliomixed.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.biblioset.relation.attribute">
    <xs:attributeGroup ref="db:db.relation.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.biblioset.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.biblioset.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="relation">
      <xs:annotation>
        <xs:documentation>Identifies the relationship between the bibliographic elemnts</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="biblioset">
    <xs:annotation>
      <xs:documentation>A raw container for related bibliographic information</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="db:db.bibliographic.elements"/>
      <xs:attributeGroup ref="db:db.biblioset.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.bibliomset.relation.attribute">
    <xs:attributeGroup ref="db:db.relation.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.bibliomset.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.bibliomset.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="relation">
      <xs:annotation>
        <xs:documentation>Identifies the relationship between the bibliographic elemnts</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="bibliomset">
    <xs:annotation>
      <xs:documentation>A cooked container for related bibliographic information</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:group ref="db:db._text"/>
        <xs:group ref="db:db.bibliographic.elements"/>
      </xs:choice>
      <xs:attributeGroup ref="db:db.bibliomset.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.bibliomisc.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.bibliomisc.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="bibliomisc">
    <xs:annotation>
      <xs:documentation>Untyped bibliographic information</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.bibliomisc.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.bibliography.status.attrib">
    <xs:attributeGroup ref="db:db.status.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.bibliography.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.bibliography.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="label">
      <xs:annotation>
        <xs:documentation>Specifies an identifying string for presentation purposes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="status">
      <xs:annotation>
        <xs:documentation>Identifies the editorial or publication status of the element on which it occurs</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.bibliography.info">
    <xs:sequence>
      <xs:group ref="db:db._info"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="bibliography">
    <xs:annotation>
      <xs:documentation>A bibliography</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.bibliography.info"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.blocks"/>
        <xs:choice>
          <xs:element maxOccurs="unbounded" ref="db:bibliodiv"/>
          <xs:choice maxOccurs="unbounded">
            <xs:element ref="db:biblioentry"/>
            <xs:element ref="db:bibliomixed"/>
          </xs:choice>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.bibliography.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.bibliodiv.status.attrib">
    <xs:attributeGroup ref="db:db.status.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.bibliodiv.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.bibliodiv.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="label">
      <xs:annotation>
        <xs:documentation>Specifies an identifying string for presentation purposes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="status">
      <xs:annotation>
        <xs:documentation>Identifies the editorial or publication status of the element on which it occurs</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.bibliodiv.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.req"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="bibliodiv">
    <xs:annotation>
      <xs:documentation>A section of a Bibliography</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.bibliodiv.info"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.blocks"/>
        <xs:choice maxOccurs="unbounded">
          <xs:element ref="db:biblioentry"/>
          <xs:element ref="db:bibliomixed"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.bibliodiv.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.bibliolist.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.bibliolist.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.bibliolist.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.only"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="bibliolist">
    <xs:annotation>
      <xs:documentation>A wrapper for a list of bibliography entries</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group minOccurs="0" ref="db:db.bibliolist.info"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.blocks"/>
        <xs:choice maxOccurs="unbounded">
          <xs:element ref="db:biblioentry"/>
          <xs:element ref="db:bibliomixed"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.bibliolist.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.biblioref.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.biblioref.xrefstyle.attribute">
    <xs:attributeGroup ref="db:db.xrefstyle.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.biblioref.endterm.attribute">
    <xs:attributeGroup ref="db:db.endterm.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.biblioref.units.attribute">
    <xs:attribute name="units" use="required" type="xs:token">
      <xs:annotation>
        <xs:documentation>The units (for example, pages) used to identify the beginning and ending of a reference.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.biblioref.begin.attribute">
    <xs:attribute name="begin" use="required" type="xs:token">
      <xs:annotation>
        <xs:documentation>Identifies the beginning of a reference; the location within the work that is being referenced.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.biblioref.end.attribute">
    <xs:attribute name="end" use="required" type="xs:token">
      <xs:annotation>
        <xs:documentation>Identifies the end of a reference.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.biblioref.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.req.linking.attributes"/>
    <xs:attribute name="xrefstyle">
      <xs:annotation>
        <xs:documentation>Specifies a keyword or keywords identifying additional style information</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="endterm" type="xs:IDREF">
      <xs:annotation>
        <xs:documentation>Points to the element whose content is to be used as the text of the link</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="units" type="xs:token">
      <xs:annotation>
        <xs:documentation>The units (for example, pages) used to identify the beginning and ending of a reference.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="begin" type="xs:token">
      <xs:annotation>
        <xs:documentation>Identifies the beginning of a reference; the location within the work that is being referenced.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="end" type="xs:token">
      <xs:annotation>
        <xs:documentation>Identifies the end of a reference.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="biblioref">
    <xs:annotation>
      <xs:documentation>A cross-reference to a bibliographic entry</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attributeGroup ref="db:db.biblioref.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:simpleType name="db.significance.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="normal">
        <xs:annotation>
          <xs:documentation>Normal</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="preferred">
        <xs:annotation>
          <xs:documentation>Preferred</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.significance.attribute">
    <xs:attribute name="significance" use="required" type="db:db.significance.enumeration">
      <xs:annotation>
        <xs:documentation>Specifies the significance of the term</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.zone.attribute">
    <xs:attribute name="zone" use="required" type="xs:IDREFS">
      <xs:annotation>
        <xs:documentation>Specifies the IDs of the elements to which this term applies</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.indexterm.pagenum.attribute">
    <xs:attribute name="pagenum" use="required">
      <xs:annotation>
        <xs:documentation>Indicates the page on which this index term occurs in some version of the printed document</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:simpleType name="db.scope.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="all">
        <xs:annotation>
          <xs:documentation>All indexes</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="global">
        <xs:annotation>
          <xs:documentation>The global index (as for a combined index of a set of box)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="local">
        <xs:annotation>
          <xs:documentation>The local index (the index for this document only)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.scope.attribute">
    <xs:attribute name="scope" use="required" type="db:db.scope.enumeration">
      <xs:annotation>
        <xs:documentation>Specifies the scope of the index term</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.sortas.attribute">
    <xs:attribute name="sortas" use="required">
      <xs:annotation>
        <xs:documentation>Specifies the string by which the term is to be sorted; if unspecified, the term content is used</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.index.type.attribute">
    <xs:attribute name="type" use="required">
      <xs:annotation>
        <xs:documentation>Specifies the target index for this term</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.itermset.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.itermset.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="itermset">
    <xs:annotation>
      <xs:documentation>A set of index terms in the meta-information of a document</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="db:db.indexterm.singular"/>
      <xs:attributeGroup ref="db:db.itermset.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="db.indexterm.contentmodel">
    <xs:sequence>
      <xs:element minOccurs="0" ref="db:primary"/>
      <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 maxOccurs="unbounded" ref="db:seealso"/>
              </xs:choice>
            </xs:sequence>
            <xs:element ref="db:see"/>
            <xs:element maxOccurs="unbounded" ref="db:seealso"/>
          </xs:choice>
        </xs:sequence>
        <xs:element ref="db:see"/>
        <xs:element maxOccurs="unbounded" ref="db:seealso"/>
      </xs:choice>
    </xs:sequence>
  </xs:complexType>
  <xs:attributeGroup name="db.indexterm.singular.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.indexterm.singular.class.attribute">
    <xs:attribute name="class" use="required">
      <xs:annotation>
        <xs:documentation>Identifies the class of index term</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="singular">
            <xs:annotation>
              <xs:documentation>A singular index term</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.indexterm.singular.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="significance" type="db:db.significance.enumeration">
      <xs:annotation>
        <xs:documentation>Specifies the significance of the term</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="zone" type="xs:IDREFS">
      <xs:annotation>
        <xs:documentation>Specifies the IDs of the elements to which this term applies</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="pagenum">
      <xs:annotation>
        <xs:documentation>Indicates the page on which this index term occurs in some version of the printed document</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="scope" type="db:db.scope.enumeration">
      <xs:annotation>
        <xs:documentation>Specifies the scope of the index term</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="type">
      <xs:annotation>
        <xs:documentation>Specifies the target index for this term</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="class">
      <xs:annotation>
        <xs:documentation>Identifies the class of index term</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="singular">
            <xs:annotation>
              <xs:documentation>A singular index term</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.indexterm.singular">
    <xs:sequence>
      <xs:element name="indexterm">
        <xs:annotation>
          <xs:documentation>A wrapper for an indexed term</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:complexContent>
            <xs:extension base="db:db.indexterm.contentmodel">
              <xs:attributeGroup ref="db:db.indexterm.singular.attlist"/>
            </xs:extension>
          </xs:complexContent>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:attributeGroup name="db.indexterm.startofrange.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.indexterm.startofrange.class.attribute">
    <xs:attribute name="class" use="required">
      <xs:annotation>
        <xs:documentation>Identifies the class of index term</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="startofrange">
            <xs:annotation>
              <xs:documentation>The start of a range</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.indexterm.startofrange.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="significance" type="db:db.significance.enumeration">
      <xs:annotation>
        <xs:documentation>Specifies the significance of the term</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="zone" type="xs:IDREFS">
      <xs:annotation>
        <xs:documentation>Specifies the IDs of the elements to which this term applies</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="pagenum">
      <xs:annotation>
        <xs:documentation>Indicates the page on which this index term occurs in some version of the printed document</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="scope" type="db:db.scope.enumeration">
      <xs:annotation>
        <xs:documentation>Specifies the scope of the index term</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="type">
      <xs:annotation>
        <xs:documentation>Specifies the target index for this term</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attributeGroup ref="db:db.indexterm.startofrange.class.attribute"/>
  </xs:attributeGroup>
  <xs:group name="db.indexterm.startofrange">
    <xs:sequence>
      <xs:element name="indexterm">
        <xs:annotation>
          <xs:documentation>A wrapper for an indexed term that covers a range</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:complexContent>
            <xs:extension base="db:db.indexterm.contentmodel">
              <xs:attributeGroup ref="db:db.indexterm.startofrange.attlist"/>
            </xs:extension>
          </xs:complexContent>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:attributeGroup name="db.indexterm.endofrange.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.indexterm.endofrange.class.attribute">
    <xs:attribute name="class" use="required">
      <xs:annotation>
        <xs:documentation>Identifies the class of index term</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="endofrange">
            <xs:annotation>
              <xs:documentation>The end of a range</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.indexterm.endofrange.startref.attribute">
    <xs:attribute name="startref" use="required" type="xs:IDREF">
      <xs:annotation>
        <xs:documentation>Points to the start of the range</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.indexterm.endofrange.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attributeGroup ref="db:db.indexterm.endofrange.class.attribute"/>
    <xs:attributeGroup ref="db:db.indexterm.endofrange.startref.attribute"/>
  </xs:attributeGroup>
  <xs:group name="db.indexterm.endofrange">
    <xs:sequence>
      <xs:element name="indexterm">
        <xs:annotation>
          <xs:documentation>Identifies the end of a range associated with an indexed term</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:attributeGroup ref="db:db.indexterm.endofrange.attlist"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:group name="db.indexterm">
    <xs:choice>
      <xs:group ref="db:db.indexterm.singular"/>
      <xs:group ref="db:db.indexterm.startofrange"/>
      <xs:group ref="db:db.indexterm.endofrange"/>
    </xs:choice>
  </xs:group>
  <xs:attributeGroup name="db.primary.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.primary.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="sortas">
      <xs:annotation>
        <xs:documentation>Specifies the string by which the term is to be sorted; if unspecified, the term content is used</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="primary">
    <xs:annotation>
      <xs:documentation>The primary word or phrase under which an index term should be sorted</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.primary.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.secondary.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.secondary.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="sortas">
      <xs:annotation>
        <xs:documentation>Specifies the string by which the term is to be sorted; if unspecified, the term content is used</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="secondary">
    <xs:annotation>
      <xs:documentation>A secondary word or phrase in an index term</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.secondary.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.tertiary.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.tertiary.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="sortas">
      <xs:annotation>
        <xs:documentation>Specifies the string by which the term is to be sorted; if unspecified, the term content is used</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="tertiary">
    <xs:annotation>
      <xs:documentation>A tertiary word or phrase in an index term</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.tertiary.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.see.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.see.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="see">
    <xs:annotation>
      <xs:documentation>Part of an index term directing the reader instead to another entry in the index</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.see.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.seealso.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.seealso.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="seealso">
    <xs:annotation>
      <xs:documentation>Part of an index term directing the reader also to another entry in the index</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.seealso.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.index.status.attribute">
    <xs:attributeGroup ref="db:db.status.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.index.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.index.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="label">
      <xs:annotation>
        <xs:documentation>Specifies an identifying string for presentation purposes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="status">
      <xs:annotation>
        <xs:documentation>Identifies the editorial or publication status of the element on which it occurs</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="type">
      <xs:annotation>
        <xs:documentation>Specifies the target index for this term</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.index.info">
    <xs:sequence>
      <xs:group ref="db:db._info"/>
    </xs:sequence>
  </xs:group>
  <!--
    
    Yes, db.indexdiv* and db.indexentry*; that way an <index/> is valid.
    Authors can use an empty index to indicate where a generated index should
    appear.
  -->
  <xs:element name="index">
    <xs:annotation>
      <xs:documentation>An index to a book or part of a book</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.index.info"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.blocks"/>
        <xs:choice>
          <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:indexdiv"/>
          <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:indexentry"/>
          <xs:element ref="db:segmentedlist"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.index.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.setindex.status.attribute">
    <xs:attributeGroup ref="db:db.status.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.setindex.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.setindex.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="label">
      <xs:annotation>
        <xs:documentation>Specifies an identifying string for presentation purposes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="status">
      <xs:annotation>
        <xs:documentation>Identifies the editorial or publication status of the element on which it occurs</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="type">
      <xs:annotation>
        <xs:documentation>Specifies the target index for this term</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.setindex.info">
    <xs:sequence>
      <xs:group ref="db:db._info"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="setindex" substitutionGroup="db:db.setindex.components">
    <xs:annotation>
      <xs:documentation>An index to a set of books</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:attributeGroup name="db.indexdiv.status.attribute">
    <xs:attributeGroup ref="db:db.status.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.indexdiv.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.indexdiv.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="label">
      <xs:annotation>
        <xs:documentation>Specifies an identifying string for presentation purposes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="status">
      <xs:annotation>
        <xs:documentation>Identifies the editorial or publication status of the element on which it occurs</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.indexdiv.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.req"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="indexdiv">
    <xs:annotation>
      <xs:documentation>A division in an index</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.indexdiv.info"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.blocks"/>
        <xs:choice>
          <xs:element maxOccurs="unbounded" ref="db:indexentry"/>
          <xs:element ref="db:segmentedlist"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.indexdiv.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.indexentry.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.indexentry.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="indexentry">
    <xs:annotation>
      <xs:documentation>An entry in an index</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="db:primaryie"/>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <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:attributeGroup ref="db:db.indexentry.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.primaryie.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.primaryie.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attribute name="linkends" type="xs:IDREFS">
      <xs:annotation>
        <xs:documentation>Points to one or more internal link targets by identifying the value of their xml:id attributes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="primaryie">
    <xs:annotation>
      <xs:documentation>A primary term in an index entry, not in the text</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.primaryie.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.secondaryie.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.secondaryie.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attribute name="linkends" type="xs:IDREFS">
      <xs:annotation>
        <xs:documentation>Points to one or more internal link targets by identifying the value of their xml:id attributes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="secondaryie">
    <xs:annotation>
      <xs:documentation>A secondary term in an index entry, rather than in the text</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.secondaryie.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.tertiaryie.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.tertiaryie.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attribute name="linkends" type="xs:IDREFS">
      <xs:annotation>
        <xs:documentation>Points to one or more internal link targets by identifying the value of their xml:id attributes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="tertiaryie">
    <xs:annotation>
      <xs:documentation>A tertiary term in an index entry, rather than in the text</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.tertiaryie.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.seeie.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.seeie.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attribute name="linkend" type="xs:IDREF">
      <xs:annotation>
        <xs:documentation>Points to an internal link target by identifying the value of its xml:id attribute</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="seeie">
    <xs:annotation>
      <xs:documentation>A See
entry in an index, rather than in the text</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.seeie.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.seealsoie.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.seealsoie.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attribute name="linkends" type="xs:IDREFS">
      <xs:annotation>
        <xs:documentation>Points to one or more internal link targets by identifying the value of their xml:id attributes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="seealsoie">
    <xs:annotation>
      <xs:documentation>A See also
 entry in an index, rather than in the text</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.seealsoie.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.toc.pagenum.attribute">
    <xs:attribute name="pagenum" use="required">
      <xs:annotation>
        <xs:documentation>Indicates the page on which this element occurs in some version of the printed document</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.toc.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.toc.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.toc.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.only"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="toc">
    <xs:annotation>
      <xs:documentation>A table of contents</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.toc.info"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.blocks"/>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element ref="db:tocdiv"/>
          <xs:element ref="db:tocentry"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.toc.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.tocdiv.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.tocdiv.pagenum.attribute">
    <xs:attributeGroup ref="db:db.toc.pagenum.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.tocdiv.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attribute name="pagenum">
      <xs:annotation>
        <xs:documentation>Indicates the page on which this element occurs in some version of the printed document</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="linkend" type="xs:IDREF">
      <xs:annotation>
        <xs:documentation>Points to an internal link target by identifying the value of its xml:id attribute</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.tocdiv.info">
    <xs:sequence>
      <xs:group ref="db:db._info"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="tocdiv">
    <xs:annotation>
      <xs:documentation>A division in a table of contents</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.tocdiv.info"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.blocks"/>
        <xs:choice maxOccurs="unbounded">
          <xs:element ref="db:tocdiv"/>
          <xs:element ref="db:tocentry"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.tocdiv.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.tocentry.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.tocentry.pagenum.attribute">
    <xs:attributeGroup ref="db:db.toc.pagenum.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.tocentry.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attribute name="pagenum">
      <xs:annotation>
        <xs:documentation>Indicates the page on which this element occurs in some version of the printed document</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="linkend" type="xs:IDREF">
      <xs:annotation>
        <xs:documentation>Points to an internal link target by identifying the value of its xml:id attribute</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="tocentry">
    <xs:annotation>
      <xs:documentation>A component title in a table of contents</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.tocentry.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:group name="db.task.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.req"/>
    </xs:sequence>
  </xs:group>
  <xs:attributeGroup name="db.task.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.task.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="task">
    <xs:annotation>
      <xs:documentation>A task to be completed</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.task.info"/>
        <xs:element minOccurs="0" ref="db:tasksummary"/>
        <xs:element minOccurs="0" ref="db:taskprerequisites"/>
        <xs:element ref="db:procedure"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:example"/>
        <xs:element minOccurs="0" ref="db:taskrelated"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.task.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.tasksummary.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.tasksummary.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.tasksummary.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.only"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="tasksummary">
    <xs:annotation>
      <xs:documentation>A summary of a task</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.tasksummary.info"/>
        <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.tasksummary.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.taskprerequisites.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.taskprerequisites.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.taskprerequisites.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.only"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="taskprerequisites">
    <xs:annotation>
      <xs:documentation>The prerequisites for a task</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.taskprerequisites.info"/>
        <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.taskprerequisites.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.taskrelated.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.taskrelated.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.taskrelated.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.only"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="taskrelated">
    <xs:annotation>
      <xs:documentation>Information related to a task</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.taskrelated.info"/>
        <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.taskrelated.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:simpleType name="db.area.units.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="calspair">
        <xs:annotation>
          <xs:documentation>Coordinates expressed as a pair of CALS graphic coordinates.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="linecolumn">
        <xs:annotation>
          <xs:documentation>Coordinates expressed as a line and column.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="linecolumnpair">
        <xs:annotation>
          <xs:documentation>Coordinates expressed as a pair of lines and columns.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="linerange">
        <xs:annotation>
          <xs:documentation>Coordinates expressed as a line range.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.area.units-enum.attribute">
    <xs:attribute name="units" type="db:db.area.units.enumeration">
      <xs:annotation>
        <xs:documentation>Identifies the units used in the coords attribute The default units vary according to the type of callout specified: calspair
 for graphics and linecolumn
 for line-oriented elements.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.area.units-other.attributes">
    <xs:attribute name="units">
      <xs:annotation>
        <xs:documentation>Indicates that non-standard units are used for this area
. In this case otherunits
 must be specified.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="other">
            <xs:annotation>
              <xs:documentation>Coordinates expressed in some non-standard units.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="otherunits" use="required" type="xs:NMTOKEN">
      <xs:annotation>
        <xs:documentation>Identifies the units used in the coords
 attribute when the units
 attribute is other
. This attribute is forbidden otherwise.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.area.units.attribute">
    <xs:attribute name="units">
      <xs:simpleType>
        <xs:union memberTypes="db:db.area.units.enumeration">
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="other">
                <xs:annotation>
                  <xs:documentation>Coordinates expressed in some non-standard units.</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
        </xs:union>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="otherunits" type="xs:NMTOKEN">
      <xs:annotation>
        <xs:documentation>Identifies the units used in the coords
 attribute when the units
 attribute is other
. This attribute is forbidden otherwise.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.calloutlist.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.calloutlist.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.calloutlist.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.only"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="calloutlist">
    <xs:annotation>
      <xs:documentation>A list of callout
s</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.calloutlist.info"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.blocks"/>
        <xs:element maxOccurs="unbounded" ref="db:callout"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.calloutlist.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.callout.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.callout.arearefs.attribute">
    <xs:attribute name="arearefs" use="required" type="xs:IDREFS">
      <xs:annotation>
        <xs:documentation>Identifies the areas described by this callout.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.callout.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.callout.arearefs.attribute"/>
  </xs:attributeGroup>
  <xs:element name="callout">
    <xs:annotation>
      <xs:documentation>A called out
 description of a marked Area</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
      <xs:attributeGroup ref="db:db.callout.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.programlistingco.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.programlistingco.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.programlistingco.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.forbidden"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="programlistingco" substitutionGroup="db:db.verbatim.blocks">
    <xs:annotation>
      <xs:documentation>A program listing with associated areas used in callouts</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.programlistingco.info"/>
        <xs:element ref="db:areaspec"/>
        <xs:element ref="db:programlisting"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:calloutlist"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.programlistingco.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.areaspec.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.areaspec.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attributeGroup ref="db:db.area.units.attribute"/>
  </xs:attributeGroup>
  <xs:element name="areaspec">
    <xs:annotation>
      <xs:documentation>A collection of regions in a graphic or code example</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:choice maxOccurs="unbounded">
        <xs:group ref="db:db.area"/>
        <xs:element ref="db:areaset"/>
      </xs:choice>
      <xs:attributeGroup ref="db:db.areaspec.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.area.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.area.linkends.attribute">
    <xs:attribute name="linkends" use="required" type="xs:IDREFS">
      <xs:annotation>
        <xs:documentation>Point to the callout
s which refer to this area. (This provides bidirectional linking which may be useful in online presentation.)</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.area.label.attribute">
    <xs:attribute name="label" use="required">
      <xs:annotation>
        <xs:documentation>Specifies an identifying number or string that may be used in presentation. The area label might be drawn on top of the figure, for example, at the position indicated by the coords attribute.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.area.coords.attribute">
    <xs:attribute name="coords" use="required">
      <xs:annotation>
        <xs:documentation>Provides the coordinates of the area. The coordinates must be interpreted using the units
 specified.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.area.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="db:db.common.idreq.attributes"/>
    <xs:attributeGroup ref="db:db.area.units.attribute"/>
    <xs:attribute name="linkends" type="xs:IDREFS">
      <xs:annotation>
        <xs:documentation>Point to the callout
s which refer to this area. (This provides bidirectional linking which may be useful in online presentation.)</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute ref="xlink:href"/>
    <xs:attributeGroup ref="xlink:type"/>
    <xs:attribute ref="xlink:role"/>
    <xs:attribute ref="xlink:arcrole"/>
    <xs:attributeGroup ref="db:db.xlink.title.attribute"/>
    <xs:attribute ref="xlink:show"/>
    <xs:attribute ref="xlink:actuate"/>
    <xs:attribute name="label">
      <xs:annotation>
        <xs:documentation>Specifies an identifying number or string that may be used in presentation. The area label might be drawn on top of the figure, for example, at the position indicated by the coords attribute.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attributeGroup ref="db:db.area.coords.attribute"/>
  </xs:attributeGroup>
  <xs:group name="db.area">
    <xs:sequence>
      <xs:element name="area">
        <xs:annotation>
          <xs:documentation>A region defined for a Callout in a graphic or code example</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" ref="db:alt"/>
          </xs:sequence>
          <xs:attributeGroup ref="db:db.area.attlist"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <!-- The only difference is that xml:id is optional -->
  <xs:attributeGroup name="db.area.inareaset.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.area.units.attribute"/>
    <xs:attribute name="linkends" type="xs:IDREFS">
      <xs:annotation>
        <xs:documentation>Point to the callout
s which refer to this area. (This provides bidirectional linking which may be useful in online presentation.)</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute ref="xlink:href"/>
    <xs:attributeGroup ref="xlink:type"/>
    <xs:attribute ref="xlink:role"/>
    <xs:attribute ref="xlink:arcrole"/>
    <xs:attributeGroup ref="db:db.xlink.title.attribute"/>
    <xs:attribute ref="xlink:show"/>
    <xs:attribute ref="xlink:actuate"/>
    <xs:attribute name="label">
      <xs:annotation>
        <xs:documentation>Specifies an identifying number or string that may be used in presentation. The area label might be drawn on top of the figure, for example, at the position indicated by the coords attribute.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attributeGroup ref="db:db.area.coords.attribute"/>
  </xs:attributeGroup>
  <xs:group name="db.area.inareaset">
    <xs:sequence>
      <xs:element name="area">
        <xs:annotation>
          <xs:documentation>A region defined for a Callout in a graphic or code example</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" ref="db:alt"/>
          </xs:sequence>
          <xs:attributeGroup ref="db:db.area.inareaset.attlist"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:attributeGroup name="db.areaset.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.areaset.linkends.attribute">
    <xs:attributeGroup ref="db:db.linkends.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.areaset.label.attribute">
    <xs:attributeGroup ref="db:db.label.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.areaset.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="db:db.common.idreq.attributes"/>
    <xs:attributeGroup ref="db:db.area.units.attribute"/>
    <xs:attribute name="linkends" type="xs:IDREFS">
      <xs:annotation>
        <xs:documentation>Points to one or more internal link targets by identifying the value of their xml:id attributes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute ref="xlink:href"/>
    <xs:attributeGroup ref="xlink:type"/>
    <xs:attribute ref="xlink:role"/>
    <xs:attribute ref="xlink:arcrole"/>
    <xs:attributeGroup ref="db:db.xlink.title.attribute"/>
    <xs:attribute ref="xlink:show"/>
    <xs:attribute ref="xlink:actuate"/>
    <xs:attribute name="label">
      <xs:annotation>
        <xs:documentation>Specifies an identifying string for presentation purposes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="areaset">
    <xs:annotation>
      <xs:documentation>A set of related areas in a graphic or code example</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="db:db.area.inareaset"/>
      <xs:attributeGroup ref="db:db.areaset.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.screenco.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.screenco.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.screenco.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.forbidden"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="screenco" substitutionGroup="db:db.verbatim.blocks">
    <xs:annotation>
      <xs:documentation>A screen with associated areas used in callouts</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.screenco.info"/>
        <xs:element ref="db:areaspec"/>
        <xs:element ref="db:screen"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:calloutlist"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.screenco.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.imageobjectco.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.imageobjectco.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.imageobjectco.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.forbidden"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="imageobjectco" substitutionGroup="db:db.mediaobject.content">
    <xs:annotation>
      <xs:documentation>A wrapper for an image object with callouts</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.imageobjectco.info"/>
        <xs:element ref="db:areaspec"/>
        <xs:element maxOccurs="unbounded" ref="db:imageobject"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:calloutlist"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.imageobjectco.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.co.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.co.linkends.attribute">
    <xs:attributeGroup ref="db:db.linkends.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.co.label.attribute">
    <xs:attributeGroup ref="db:db.label.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.co.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="db:db.common.idreq.attributes"/>
    <xs:attribute name="linkends" type="xs:IDREFS">
      <xs:annotation>
        <xs:documentation>Points to one or more internal link targets by identifying the value of their xml:id attributes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="label">
      <xs:annotation>
        <xs:documentation>Specifies an identifying string for presentation purposes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="co">
    <xs:annotation>
      <xs:documentation>The location of a callout embedded in text</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attributeGroup ref="db:db.co.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.coref.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.coref.label.attribute">
    <xs:attributeGroup ref="db:db.label.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.coref.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.linkend.attribute"/>
    <xs:attribute name="label">
      <xs:annotation>
        <xs:documentation>Specifies an identifying string for presentation purposes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="coref">
    <xs:annotation>
      <xs:documentation>A cross reference to a co</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attributeGroup ref="db:db.coref.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.productionset.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.productionset.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.productionset.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.only"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="productionset">
    <xs:annotation>
      <xs:documentation>A set of EBNF productions</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.productionset.info"/>
        <xs:choice maxOccurs="unbounded">
          <xs:element ref="db:production"/>
          <xs:element ref="db:productionrecap"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.productionset.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.production.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.production.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="db:db.common.idreq.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="production">
    <xs:annotation>
      <xs:documentation>A production in a set of EBNF productions</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="db:lhs"/>
        <xs:element ref="db:rhs"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:constraint"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.production.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.lhs.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.lhs.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="lhs">
    <xs:annotation>
      <xs:documentation>The left-hand side of an EBNF production</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:attributeGroup ref="db:db.lhs.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.rhs.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.rhs.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="rhs">
    <xs:annotation>
      <xs:documentation>The right-hand side of an EBNF production</xs:documentation>
    </xs:annotation>
    <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:attributeGroup ref="db:db.rhs.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.nonterminal.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.nonterminal.def.attribute">
    <xs:attribute name="def" use="required" type="xs:anyURI">
      <xs:annotation>
        <xs:documentation>Specifies a URI that points to a production
where the nonterminal
 is defined</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.nonterminal.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attributeGroup ref="db:db.nonterminal.def.attribute"/>
  </xs:attributeGroup>
  <xs:element name="nonterminal" substitutionGroup="db:db.technical.inlines">
    <xs:annotation>
      <xs:documentation>A non-terminal in an EBNF production</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:attributeGroup ref="db:db.nonterminal.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.constraint.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.constraint.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.req.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="constraint">
    <xs:annotation>
      <xs:documentation>A constraint in an EBNF production</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attributeGroup ref="db:db.constraint.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.productionrecap.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.productionrecap.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.req.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="productionrecap">
    <xs:annotation>
      <xs:documentation>A cross-reference to an EBNF production</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attributeGroup ref="db:db.productionrecap.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.constraintdef.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.constraintdef.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.constraintdef.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.only"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="constraintdef">
    <xs:annotation>
      <xs:documentation>The definition of a constraint in an EBNF production</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.constraintdef.info"/>
        <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.constraintdef.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.char.attribute">
    <xs:attribute name="char" use="required">
      <xs:annotation>
        <xs:documentation>Specifies the alignment character when align
 is set to char
.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.charoff.attribute">
    <xs:attribute name="charoff" use="required">
      <xs:annotation>
        <xs:documentation>Specifies the percentage of the column's total width that should appear to the left of the first occurance of the character identified in char
 when align
 is set to char
.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:decimal">
          <xs:minExclusive value="0"/>
          <xs:maxExclusive value="100"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.frame.attribute">
    <xs:attribute name="frame" use="required">
      <xs:annotation>
        <xs:documentation>Specifies how the table is to be framed. Note that there is no way to obtain a border on only the starting edge (left, in left-to-right writing systems) of the table.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="all">
            <xs:annotation>
              <xs:documentation>Frame all four sides of the table. In some environments with limited control over table border formatting, such as HTML, this may imply additional borders.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="bottom">
            <xs:annotation>
              <xs:documentation>Frame only the bottom of the table.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="none">
            <xs:annotation>
              <xs:documentation>Place no border on the table. In some environments with limited control over table border formatting, such as HTML, this may disable other borders as well.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="sides">
            <xs:annotation>
              <xs:documentation>Frame the left and right sides of the table.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="top">
            <xs:annotation>
              <xs:documentation>Frame the top of the table.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="topbot">
            <xs:annotation>
              <xs:documentation>Frame the top and bottom of the table.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.colsep.attribute">
    <xs:attribute name="colsep" use="required">
      <xs:annotation>
        <xs:documentation>Specifies the presence or absence of the column separator</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="0">
            <xs:annotation>
              <xs:documentation>No column separator rule.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="1">
            <xs:annotation>
              <xs:documentation>Provide a column separator rule on the right</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.rowsep.attribute">
    <xs:attribute name="rowsep" use="required">
      <xs:annotation>
        <xs:documentation>Specifies the presence or absence of the row separator</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="0">
            <xs:annotation>
              <xs:documentation>No row separator rule.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="1">
            <xs:annotation>
              <xs:documentation>Provide a row separator rule below</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.orient.attribute">
    <xs:attribute name="orient" use="required">
      <xs:annotation>
        <xs:documentation>Specifies the orientation of the table</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="land">
            <xs:annotation>
              <xs:documentation>90 degrees counter-clockwise from the rest of the text flow.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="port">
            <xs:annotation>
              <xs:documentation>The same orientation as the rest of the text flow.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.tabstyle.attribute">
    <xs:attribute name="tabstyle" use="required">
      <xs:annotation>
        <xs:documentation>Specifies the table style</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.rowheader.attribute">
    <xs:attribute name="rowheader" use="required">
      <xs:annotation>
        <xs:documentation>Indicates whether or not the entries in the first column should be considered row headers</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="firstcol">
            <xs:annotation>
              <xs:documentation>Indicates that entries in the first column of the table are functionally row headers (analogous to the way that a thead provides column headers).</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="norowheader">
            <xs:annotation>
              <xs:documentation>Indicates that entries in the first column have no special significance with respect to column headers.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.align.attribute">
    <xs:attribute name="align" use="required">
      <xs:annotation>
        <xs:documentation>Specifies the horizontal alignment of text in an entry.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="center">
            <xs:annotation>
              <xs:documentation>Centered.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="char">
            <xs:annotation>
              <xs:documentation>Aligned on a particular character.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="justify">
            <xs:annotation>
              <xs:documentation>Left and right justified.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="left">
            <xs:annotation>
              <xs:documentation>Left justified.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="right">
            <xs:annotation>
              <xs:documentation>Right justified.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.valign.attribute">
    <xs:attribute name="valign" use="required">
      <xs:annotation>
        <xs:documentation>Specifies the vertical alignment of text in an entry.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="bottom">
            <xs:annotation>
              <xs:documentation>Aligned on the bottom of the entry.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="middle">
            <xs:annotation>
              <xs:documentation>Aligned in the middle.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="top">
            <xs:annotation>
              <xs:documentation>Aligned at the top of the entry.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.specify-col-by-colname.attributes">
    <xs:attribute name="colname" use="required">
      <xs:annotation>
        <xs:documentation>Specifies a column specification by name.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.specify-col-by-namest.attributes">
    <xs:attribute name="namest" use="required">
      <xs:annotation>
        <xs:documentation>Specifies a starting column by name.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.specify-span-by-spanspec.attributes">
    <xs:attribute name="spanname" use="required">
      <xs:annotation>
        <xs:documentation>Specifies a span by name.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.specify-span-directly.attributes">
    <xs:attribute name="namest" use="required">
      <xs:annotation>
        <xs:documentation>Specifies a starting column by name.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="nameend" use="required">
      <xs:annotation>
        <xs:documentation>Specifies an ending column by name.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.column-spec.attributes">
    <xs:attribute name="colname">
      <xs:annotation>
        <xs:documentation>Specifies a column specification by name.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="namest">
      <xs:annotation>
        <xs:documentation>Specifies a starting column by name.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="spanname">
      <xs:annotation>
        <xs:documentation>Specifies a span by name.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="nameend">
      <xs:annotation>
        <xs:documentation>Specifies an ending column by name.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.colname.attribute">
    <xs:attribute name="colname" use="required">
      <xs:annotation>
        <xs:documentation>Provides a name for a column specification.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.spanname.attribute">
    <xs:attribute name="spanname" use="required">
      <xs:annotation>
        <xs:documentation>Provides a name for a span specification.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.tgroup.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.tgroup.tgroupstyle.attribute">
    <xs:attribute name="tgroupstyle" use="required">
      <xs:annotation>
        <xs:documentation>Additional style information for downstream processing; typically the name of a style.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.tgroup.cols.attribute">
    <xs:attribute name="cols" use="required" type="xs:positiveInteger">
      <xs:annotation>
        <xs:documentation>The number of columns in the table. Must be an integer greater than zero.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.tgroup.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="char">
      <xs:annotation>
        <xs:documentation>Specifies the alignment character when align
 is set to char
.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="charoff">
      <xs:annotation>
        <xs:documentation>Specifies the percentage of the column's total width that should appear to the left of the first occurance of the character identified in char
 when align
 is set to char
.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:decimal">
          <xs:minExclusive value="0"/>
          <xs:maxExclusive value="100"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="tgroupstyle">
      <xs:annotation>
        <xs:documentation>Additional style information for downstream processing; typically the name of a style.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attributeGroup ref="db:db.tgroup.cols.attribute"/>
    <xs:attribute name="colsep">
      <xs:annotation>
        <xs:documentation>Specifies the presence or absence of the column separator</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="0">
            <xs:annotation>
              <xs:documentation>No column separator rule.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="1">
            <xs:annotation>
              <xs:documentation>Provide a column separator rule on the right</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="rowsep">
      <xs:annotation>
        <xs:documentation>Specifies the presence or absence of the row separator</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="0">
            <xs:annotation>
              <xs:documentation>No row separator rule.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="1">
            <xs:annotation>
              <xs:documentation>Provide a row separator rule below</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="align">
      <xs:annotation>
        <xs:documentation>Specifies the horizontal alignment of text in an entry.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="center">
            <xs:annotation>
              <xs:documentation>Centered.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="char">
            <xs:annotation>
              <xs:documentation>Aligned on a particular character.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="justify">
            <xs:annotation>
              <xs:documentation>Left and right justified.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="left">
            <xs:annotation>
              <xs:documentation>Left justified.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="right">
            <xs:annotation>
              <xs:documentation>Right justified.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="tgroup">
    <xs:annotation>
      <xs:documentation>A wrapper for the main content of a table, or part of a table</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:colspec"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:spanspec"/>
        <xs:group minOccurs="0" ref="db:db.cals.thead"/>
        <xs:group minOccurs="0" ref="db:db.cals.tfoot"/>
        <xs:group ref="db:db.cals.tbody"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.tgroup.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.colspec.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.colspec.colnum.attribute">
    <xs:attribute name="colnum" use="required" type="xs:positiveInteger">
      <xs:annotation>
        <xs:documentation>The number of the column to which this specification applies. Must be greater than any preceding column number. Defaults to one more than the number of the preceding column, if there is one, or one.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.colspec.colwidth.attribute">
    <xs:attribute name="colwidth" use="required">
      <xs:annotation>
        <xs:documentation>Specifies the width of the column.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.colspec.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="colnum" type="xs:positiveInteger">
      <xs:annotation>
        <xs:documentation>The number of the column to which this specification applies. Must be greater than any preceding column number. Defaults to one more than the number of the preceding column, if there is one, or one.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="char">
      <xs:annotation>
        <xs:documentation>Specifies the alignment character when align
 is set to char
.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="colsep">
      <xs:annotation>
        <xs:documentation>Specifies the presence or absence of the column separator</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="0">
            <xs:annotation>
              <xs:documentation>No column separator rule.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="1">
            <xs:annotation>
              <xs:documentation>Provide a column separator rule on the right</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="colwidth">
      <xs:annotation>
        <xs:documentation>Specifies the width of the column.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="charoff">
      <xs:annotation>
        <xs:documentation>Specifies the percentage of the column's total width that should appear to the left of the first occurance of the character identified in char
 when align
 is set to char
.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:decimal">
          <xs:minExclusive value="0"/>
          <xs:maxExclusive value="100"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="colname">
      <xs:annotation>
        <xs:documentation>Provides a name for a column specification.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="rowsep">
      <xs:annotation>
        <xs:documentation>Specifies the presence or absence of the row separator</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="0">
            <xs:annotation>
              <xs:documentation>No row separator rule.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="1">
            <xs:annotation>
              <xs:documentation>Provide a row separator rule below</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="align">
      <xs:annotation>
        <xs:documentation>Specifies the horizontal alignment of text in an entry.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="center">
            <xs:annotation>
              <xs:documentation>Centered.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="char">
            <xs:annotation>
              <xs:documentation>Aligned on a particular character.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="justify">
            <xs:annotation>
              <xs:documentation>Left and right justified.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="left">
            <xs:annotation>
              <xs:documentation>Left justified.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="right">
            <xs:annotation>
              <xs:documentation>Right justified.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="colspec">
    <xs:annotation>
      <xs:documentation>Specifications for a column in a table</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attributeGroup ref="db:db.colspec.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.spanspec.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.spanspec.namest.attribute">
    <xs:attribute name="namest" use="required">
      <xs:annotation>
        <xs:documentation>Specifies a starting column by name.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.spanspec.nameend.attribute">
    <xs:attribute name="nameend" use="required">
      <xs:annotation>
        <xs:documentation>Specifies an ending column by name.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.spanspec.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attributeGroup ref="db:db.spanname.attribute"/>
    <xs:attributeGroup ref="db:db.spanspec.namest.attribute"/>
    <xs:attributeGroup ref="db:db.spanspec.nameend.attribute"/>
    <xs:attribute name="char">
      <xs:annotation>
        <xs:documentation>Specifies the alignment character when align
 is set to char
.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="colsep">
      <xs:annotation>
        <xs:documentation>Specifies the presence or absence of the column separator</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="0">
            <xs:annotation>
              <xs:documentation>No column separator rule.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="1">
            <xs:annotation>
              <xs:documentation>Provide a column separator rule on the right</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="charoff">
      <xs:annotation>
        <xs:documentation>Specifies the percentage of the column's total width that should appear to the left of the first occurance of the character identified in char
 when align
 is set to char
.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:decimal">
          <xs:minExclusive value="0"/>
          <xs:maxExclusive value="100"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="rowsep">
      <xs:annotation>
        <xs:documentation>Specifies the presence or absence of the row separator</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="0">
            <xs:annotation>
              <xs:documentation>No row separator rule.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="1">
            <xs:annotation>
              <xs:documentation>Provide a row separator rule below</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="align">
      <xs:annotation>
        <xs:documentation>Specifies the horizontal alignment of text in an entry.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="center">
            <xs:annotation>
              <xs:documentation>Centered.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="char">
            <xs:annotation>
              <xs:documentation>Aligned on a particular character.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="justify">
            <xs:annotation>
              <xs:documentation>Left and right justified.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="left">
            <xs:annotation>
              <xs:documentation>Left justified.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="right">
            <xs:annotation>
              <xs:documentation>Right justified.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="spanspec">
    <xs:annotation>
      <xs:documentation>Formatting information for a spanned column in a table</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attributeGroup ref="db:db.spanspec.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.cals.thead.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.cals.thead.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="valign">
      <xs:annotation>
        <xs:documentation>Specifies the vertical alignment of text in an entry.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="bottom">
            <xs:annotation>
              <xs:documentation>Aligned on the bottom of the entry.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="middle">
            <xs:annotation>
              <xs:documentation>Aligned in the middle.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="top">
            <xs:annotation>
              <xs:documentation>Aligned at the top of the entry.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.cals.thead">
    <xs:sequence>
      <xs:element name="thead">
        <xs:annotation>
          <xs:documentation>A table header consisting of one or more rows</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:colspec"/>
            <xs:group maxOccurs="unbounded" ref="db:db.row"/>
          </xs:sequence>
          <xs:attributeGroup ref="db:db.cals.thead.attlist"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:attributeGroup name="db.cals.tfoot.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.cals.tfoot.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="valign">
      <xs:annotation>
        <xs:documentation>Specifies the vertical alignment of text in an entry.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="bottom">
            <xs:annotation>
              <xs:documentation>Aligned on the bottom of the entry.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="middle">
            <xs:annotation>
              <xs:documentation>Aligned in the middle.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="top">
            <xs:annotation>
              <xs:documentation>Aligned at the top of the entry.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.cals.tfoot">
    <xs:sequence>
      <xs:element name="tfoot">
        <xs:annotation>
          <xs:documentation>A table footer consisting of one or more rows</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:colspec"/>
            <xs:group maxOccurs="unbounded" ref="db:db.row"/>
          </xs:sequence>
          <xs:attributeGroup ref="db:db.cals.tfoot.attlist"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:attributeGroup name="db.cals.tbody.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.cals.tbody.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="valign">
      <xs:annotation>
        <xs:documentation>Specifies the vertical alignment of text in an entry.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="bottom">
            <xs:annotation>
              <xs:documentation>Aligned on the bottom of the entry.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="middle">
            <xs:annotation>
              <xs:documentation>Aligned in the middle.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="top">
            <xs:annotation>
              <xs:documentation>Aligned at the top of the entry.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.cals.tbody">
    <xs:sequence>
      <xs:element name="tbody">
        <xs:annotation>
          <xs:documentation>A wrapper for the rows of a table or informal table</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:group maxOccurs="unbounded" ref="db:db.row"/>
          <xs:attributeGroup ref="db:db.cals.tbody.attlist"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:attributeGroup name="db.row.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.row.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="rowsep">
      <xs:annotation>
        <xs:documentation>Specifies the presence or absence of the row separator</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="0">
            <xs:annotation>
              <xs:documentation>No row separator rule.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="1">
            <xs:annotation>
              <xs:documentation>Provide a row separator rule below</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="valign">
      <xs:annotation>
        <xs:documentation>Specifies the vertical alignment of text in an entry.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="bottom">
            <xs:annotation>
              <xs:documentation>Aligned on the bottom of the entry.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="middle">
            <xs:annotation>
              <xs:documentation>Aligned in the middle.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="top">
            <xs:annotation>
              <xs:documentation>Aligned at the top of the entry.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.row">
    <xs:sequence>
      <xs:element name="row">
        <xs:annotation>
          <xs:documentation>A row in a table</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:choice maxOccurs="unbounded">
            <xs:element ref="db:entry"/>
            <xs:element ref="db:entrytbl"/>
          </xs:choice>
          <xs:attributeGroup ref="db:db.row.attlist"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:attributeGroup name="db.entry.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.entry.morerows.attribute">
    <xs:attribute name="morerows" use="required" type="xs:integer">
      <xs:annotation>
        <xs:documentation>Specifies the number of additional rows which this entry occupies. Defaults to zero.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.entry.rotate.attribute">
    <xs:attribute name="rotate" use="required">
      <xs:annotation>
        <xs:documentation>Specifies the rotation of this entry. A value of 1 (true) rotates the cell 90 degrees counter-clockwise. A value of 0 (false) leaves the cell unrotated.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="0">
            <xs:annotation>
              <xs:documentation>Do not rotate the cell.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="1">
            <xs:annotation>
              <xs:documentation>Rotate the cell 90 degrees counter-clockwise.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.entry.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="valign">
      <xs:annotation>
        <xs:documentation>Specifies the vertical alignment of text in an entry.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="bottom">
            <xs:annotation>
              <xs:documentation>Aligned on the bottom of the entry.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="middle">
            <xs:annotation>
              <xs:documentation>Aligned in the middle.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="top">
            <xs:annotation>
              <xs:documentation>Aligned at the top of the entry.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="char">
      <xs:annotation>
        <xs:documentation>Specifies the alignment character when align
 is set to char
.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="colsep">
      <xs:annotation>
        <xs:documentation>Specifies the presence or absence of the column separator</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="0">
            <xs:annotation>
              <xs:documentation>No column separator rule.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="1">
            <xs:annotation>
              <xs:documentation>Provide a column separator rule on the right</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="charoff">
      <xs:annotation>
        <xs:documentation>Specifies the percentage of the column's total width that should appear to the left of the first occurance of the character identified in char
 when align
 is set to char
.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:decimal">
          <xs:minExclusive value="0"/>
          <xs:maxExclusive value="100"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="morerows" type="xs:integer">
      <xs:annotation>
        <xs:documentation>Specifies the number of additional rows which this entry occupies. Defaults to zero.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attributeGroup ref="db:db.column-spec.attributes"/>
    <xs:attribute name="rowsep">
      <xs:annotation>
        <xs:documentation>Specifies the presence or absence of the row separator</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="0">
            <xs:annotation>
              <xs:documentation>No row separator rule.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="1">
            <xs:annotation>
              <xs:documentation>Provide a row separator rule below</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="rotate">
      <xs:annotation>
        <xs:documentation>Specifies the rotation of this entry. A value of 1 (true) rotates the cell 90 degrees counter-clockwise. A value of 0 (false) leaves the cell unrotated.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="0">
            <xs:annotation>
              <xs:documentation>Do not rotate the cell.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="1">
            <xs:annotation>
              <xs:documentation>Rotate the cell 90 degrees counter-clockwise.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="align">
      <xs:annotation>
        <xs:documentation>Specifies the horizontal alignment of text in an entry.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="center">
            <xs:annotation>
              <xs:documentation>Centered.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="char">
            <xs:annotation>
              <xs:documentation>Aligned on a particular character.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="justify">
            <xs:annotation>
              <xs:documentation>Left and right justified.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="left">
            <xs:annotation>
              <xs:documentation>Left justified.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="right">
            <xs:annotation>
              <xs:documentation>Right justified.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="entry">
    <xs:annotation>
      <xs:documentation>A cell in a table</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:choice>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.blocks"/>
      </xs:choice>
      <xs:attributeGroup ref="db:db.entry.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.entrytbl.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.entrytbl.tgroupstyle.attribute">
    <xs:attribute name="tgroupstyle" use="required">
      <xs:annotation>
        <xs:documentation>Additional style information for downstream processing; typically the name of a style.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.entrytbl.cols.attribute">
    <xs:attribute name="cols" use="required" type="xs:positiveInteger">
      <xs:annotation>
        <xs:documentation>The number of columns in the entry table. Must be an integer greater than zero.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.entrytbl.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="char">
      <xs:annotation>
        <xs:documentation>Specifies the alignment character when align
 is set to char
.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="charoff">
      <xs:annotation>
        <xs:documentation>Specifies the percentage of the column's total width that should appear to the left of the first occurance of the character identified in char
 when align
 is set to char
.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:decimal">
          <xs:minExclusive value="0"/>
          <xs:maxExclusive value="100"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attributeGroup ref="db:db.column-spec.attributes"/>
    <xs:attribute name="tgroupstyle">
      <xs:annotation>
        <xs:documentation>Additional style information for downstream processing; typically the name of a style.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="cols" type="xs:positiveInteger">
      <xs:annotation>
        <xs:documentation>The number of columns in the entry table. Must be an integer greater than zero.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="colsep">
      <xs:annotation>
        <xs:documentation>Specifies the presence or absence of the column separator</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="0">
            <xs:annotation>
              <xs:documentation>No column separator rule.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="1">
            <xs:annotation>
              <xs:documentation>Provide a column separator rule on the right</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="rowsep">
      <xs:annotation>
        <xs:documentation>Specifies the presence or absence of the row separator</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="0">
            <xs:annotation>
              <xs:documentation>No row separator rule.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="1">
            <xs:annotation>
              <xs:documentation>Provide a row separator rule below</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="align">
      <xs:annotation>
        <xs:documentation>Specifies the horizontal alignment of text in an entry.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="center">
            <xs:annotation>
              <xs:documentation>Centered.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="char">
            <xs:annotation>
              <xs:documentation>Aligned on a particular character.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="justify">
            <xs:annotation>
              <xs:documentation>Left and right justified.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="left">
            <xs:annotation>
              <xs:documentation>Left justified.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="right">
            <xs:annotation>
              <xs:documentation>Right justified.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="entrytbl">
    <xs:annotation>
      <xs:documentation>A subtable appearing in place of an Entry in a table</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:colspec"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:spanspec"/>
        <xs:group minOccurs="0" ref="db:db.cals.entrytbl.thead"/>
        <xs:group ref="db:db.cals.entrytbl.tbody"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.entrytbl.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.cals.entrytbl.thead.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.cals.entrytbl.thead.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="valign">
      <xs:annotation>
        <xs:documentation>Specifies the vertical alignment of text in an entry.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="bottom">
            <xs:annotation>
              <xs:documentation>Aligned on the bottom of the entry.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="middle">
            <xs:annotation>
              <xs:documentation>Aligned in the middle.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="top">
            <xs:annotation>
              <xs:documentation>Aligned at the top of the entry.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.cals.entrytbl.thead">
    <xs:sequence>
      <xs:element name="thead">
        <xs:annotation>
          <xs:documentation>A table header consisting of one or more rows</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:colspec"/>
            <xs:group maxOccurs="unbounded" ref="db:db.entrytbl.row"/>
          </xs:sequence>
          <xs:attributeGroup ref="db:db.cals.entrytbl.thead.attlist"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:attributeGroup name="db.cals.entrytbl.tbody.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.cals.entrytbl.tbody.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="valign">
      <xs:annotation>
        <xs:documentation>Specifies the vertical alignment of text in an entry.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="bottom">
            <xs:annotation>
              <xs:documentation>Aligned on the bottom of the entry.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="middle">
            <xs:annotation>
              <xs:documentation>Aligned in the middle.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="top">
            <xs:annotation>
              <xs:documentation>Aligned at the top of the entry.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.cals.entrytbl.tbody">
    <xs:sequence>
      <xs:element name="tbody">
        <xs:annotation>
          <xs:documentation>A wrapper for the rows of a table or informal table</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:group maxOccurs="unbounded" ref="db:db.entrytbl.row"/>
          <xs:attributeGroup ref="db:db.cals.entrytbl.tbody.attlist"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:attributeGroup name="db.entrytbl.row.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.entrytbl.row.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="rowsep">
      <xs:annotation>
        <xs:documentation>Specifies the presence or absence of the row separator</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="0">
            <xs:annotation>
              <xs:documentation>No row separator rule.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="1">
            <xs:annotation>
              <xs:documentation>Provide a row separator rule below</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="valign">
      <xs:annotation>
        <xs:documentation>Specifies the vertical alignment of text in an entry.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="bottom">
            <xs:annotation>
              <xs:documentation>Aligned on the bottom of the entry.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="middle">
            <xs:annotation>
              <xs:documentation>Aligned in the middle.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="top">
            <xs:annotation>
              <xs:documentation>Aligned at the top of the entry.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.entrytbl.row">
    <xs:sequence>
      <xs:element name="row">
        <xs:annotation>
          <xs:documentation>A row in a table</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element maxOccurs="unbounded" ref="db:entry"/>
          </xs:sequence>
          <xs:attributeGroup ref="db:db.entrytbl.row.attlist"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:attributeGroup name="db.cals.table.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.cals.table.label.attribute">
    <xs:attributeGroup ref="db:db.label.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.cals.table.attlist">
    <xs:attribute name="role"/>
    <xs:attribute name="label">
      <xs:annotation>
        <xs:documentation>Specifies an identifying string for presentation purposes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="tabstyle">
      <xs:annotation>
        <xs:documentation>Specifies the table style</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="floatstyle">
      <xs:annotation>
        <xs:documentation>Specifies style information to be used when rendering the float</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="orient">
      <xs:annotation>
        <xs:documentation>Specifies the orientation of the table</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="land">
            <xs:annotation>
              <xs:documentation>90 degrees counter-clockwise from the rest of the text flow.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="port">
            <xs:annotation>
              <xs:documentation>The same orientation as the rest of the text flow.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="colsep">
      <xs:annotation>
        <xs:documentation>Specifies the presence or absence of the column separator</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="0">
            <xs:annotation>
              <xs:documentation>No column separator rule.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="1">
            <xs:annotation>
              <xs:documentation>Provide a column separator rule on the right</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="rowsep">
      <xs:annotation>
        <xs:documentation>Specifies the presence or absence of the row separator</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="0">
            <xs:annotation>
              <xs:documentation>No row separator rule.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="1">
            <xs:annotation>
              <xs:documentation>Provide a row separator rule below</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="frame">
      <xs:annotation>
        <xs:documentation>Specifies how the table is to be framed. Note that there is no way to obtain a border on only the starting edge (left, in left-to-right writing systems) of the table.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="all">
            <xs:annotation>
              <xs:documentation>Frame all four sides of the table. In some environments with limited control over table border formatting, such as HTML, this may imply additional borders.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="bottom">
            <xs:annotation>
              <xs:documentation>Frame only the bottom of the table.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="none">
            <xs:annotation>
              <xs:documentation>Place no border on the table. In some environments with limited control over table border formatting, such as HTML, this may disable other borders as well.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="sides">
            <xs:annotation>
              <xs:documentation>Frame the left and right sides of the table.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="top">
            <xs:annotation>
              <xs:documentation>Frame the top of the table.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="topbot">
            <xs:annotation>
              <xs:documentation>Frame the top and bottom of the table.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="pgwide" type="db:db.pgwide.enumeration">
      <xs:annotation>
        <xs:documentation>Indicates if the element is rendered across the column or the page</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="shortentry">
      <xs:annotation>
        <xs:documentation>Indicates if the short or long title should be used in a List of Tables</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="0">
            <xs:annotation>
              <xs:documentation>Indicates that the full title should be used.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="1">
            <xs:annotation>
              <xs:documentation>Indicates that the short short title (titleabbrev) should be used.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="tocentry">
      <xs:annotation>
        <xs:documentation>Indicates if the table should appear in a List of Tables</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="0">
            <xs:annotation>
              <xs:documentation>Indicates that the table should not occur in the List of Tables.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="1">
            <xs:annotation>
              <xs:documentation>Indicates that the table should appear in the List of Tables.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="rowheader">
      <xs:annotation>
        <xs:documentation>Indicates whether or not the entries in the first column should be considered row headers</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="firstcol">
            <xs:annotation>
              <xs:documentation>Indicates that entries in the first column of the table are functionally row headers (analogous to the way that a thead provides column headers).</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="norowheader">
            <xs:annotation>
              <xs:documentation>Indicates that entries in the first column have no special significance with respect to column headers.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.cals.table.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.onlyreq"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="db.cals.table">
    <xs:sequence>
      <xs:element name="table">
        <xs:annotation>
          <xs:documentation>A formal table in a document</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:group ref="db:db.cals.table.info"/>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
              <xs:element ref="db:alt"/>
              <xs:group ref="db:db.indexing.inlines"/>
              <xs:element ref="db:textobject"/>
            </xs:choice>
            <xs:choice>
              <xs:element maxOccurs="unbounded" ref="db:mediaobject"/>
              <xs:element maxOccurs="unbounded" ref="db:tgroup"/>
            </xs:choice>
            <xs:group minOccurs="0" ref="db:db.caption"/>
          </xs:sequence>
          <xs:attributeGroup ref="db:db.cals.table.attlist"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:attributeGroup name="db.cals.informaltable.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.cals.informaltable.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="tabstyle">
      <xs:annotation>
        <xs:documentation>Specifies the table style</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="floatstyle">
      <xs:annotation>
        <xs:documentation>Specifies style information to be used when rendering the float</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="orient">
      <xs:annotation>
        <xs:documentation>Specifies the orientation of the table</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="land">
            <xs:annotation>
              <xs:documentation>90 degrees counter-clockwise from the rest of the text flow.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="port">
            <xs:annotation>
              <xs:documentation>The same orientation as the rest of the text flow.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="colsep">
      <xs:annotation>
        <xs:documentation>Specifies the presence or absence of the column separator</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="0">
            <xs:annotation>
              <xs:documentation>No column separator rule.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="1">
            <xs:annotation>
              <xs:documentation>Provide a column separator rule on the right</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="rowsep">
      <xs:annotation>
        <xs:documentation>Specifies the presence or absence of the row separator</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="0">
            <xs:annotation>
              <xs:documentation>No row separator rule.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="1">
            <xs:annotation>
              <xs:documentation>Provide a row separator rule below</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="frame">
      <xs:annotation>
        <xs:documentation>Specifies how the table is to be framed. Note that there is no way to obtain a border on only the starting edge (left, in left-to-right writing systems) of the table.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="all">
            <xs:annotation>
              <xs:documentation>Frame all four sides of the table. In some environments with limited control over table border formatting, such as HTML, this may imply additional borders.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="bottom">
            <xs:annotation>
              <xs:documentation>Frame only the bottom of the table.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="none">
            <xs:annotation>
              <xs:documentation>Place no border on the table. In some environments with limited control over table border formatting, such as HTML, this may disable other borders as well.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="sides">
            <xs:annotation>
              <xs:documentation>Frame the left and right sides of the table.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="top">
            <xs:annotation>
              <xs:documentation>Frame the top of the table.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="topbot">
            <xs:annotation>
              <xs:documentation>Frame the top and bottom of the table.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="pgwide" type="db:db.pgwide.enumeration">
      <xs:annotation>
        <xs:documentation>Indicates if the element is rendered across the column or the page</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="rowheader">
      <xs:annotation>
        <xs:documentation>Indicates whether or not the entries in the first column should be considered row headers</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="firstcol">
            <xs:annotation>
              <xs:documentation>Indicates that entries in the first column of the table are functionally row headers (analogous to the way that a thead provides column headers).</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="norowheader">
            <xs:annotation>
              <xs:documentation>Indicates that entries in the first column have no special significance with respect to column headers.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.cals.informaltable.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.forbidden"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="db.cals.informaltable">
    <xs:sequence>
      <xs:element name="informaltable">
        <xs:annotation>
          <xs:documentation>A table without a title</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:group ref="db:db.cals.informaltable.info"/>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
              <xs:element ref="db:alt"/>
              <xs:group ref="db:db.indexing.inlines"/>
              <xs:element ref="db:textobject"/>
            </xs:choice>
            <xs:choice>
              <xs:element maxOccurs="unbounded" ref="db:mediaobject"/>
              <xs:element maxOccurs="unbounded" ref="db:tgroup"/>
            </xs:choice>
            <xs:group minOccurs="0" ref="db:db.caption"/>
          </xs:sequence>
          <xs:attributeGroup ref="db:db.cals.informaltable.attlist"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:attributeGroup name="db.html.coreattrs">
    <xs:attribute name="class">
      <xs:annotation>
        <xs:documentation>This attribute assigns a class name or set of class names to an element. Any number of elements may be assigned the same class name or names. Multiple class names must be separated by white space characters.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="style">
      <xs:annotation>
        <xs:documentation>This attribute specifies style information for the current element.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="title">
      <xs:annotation>
        <xs:documentation>This attribute offers advisory information about the element for which it is set.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.html.i18n">
    <xs:attribute name="lang">
      <xs:annotation>
        <xs:documentation>This attribute specifies the base language of an element's attribute values and text content. The default value of this attribute is unknown.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.html.events">
    <xs:attribute name="onclick">
      <xs:annotation>
        <xs:documentation>Occurs when the pointing device button is clicked over an element.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="ondblclick">
      <xs:annotation>
        <xs:documentation>Occurs when the pointing device button is double clicked over an element.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="onmousedown">
      <xs:annotation>
        <xs:documentation>Occurs when the pointing device button is pressed over an element.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="onmouseup">
      <xs:annotation>
        <xs:documentation>Occurs when the pointing device button is released over an element.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="onmouseover">
      <xs:annotation>
        <xs:documentation>Occurs when the pointing device is moved onto an element.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="onmousemove">
      <xs:annotation>
        <xs:documentation>Occurs when the pointing device is moved while it is over an element.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="onmouseout">
      <xs:annotation>
        <xs:documentation>Occurs when the pointing device is moved away from an element.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="onkeypress">
      <xs:annotation>
        <xs:documentation>Occurs when a key is pressed and released over an element.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="onkeydown">
      <xs:annotation>
        <xs:documentation>Occurs when a key is pressed down over an element.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="onkeyup">
      <xs:annotation>
        <xs:documentation>Occurs when a key is released over an element.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.html.attrs">
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.html.coreattrs"/>
    <xs:attributeGroup ref="db:db.html.i18n"/>
    <xs:attributeGroup ref="db:db.html.events"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.html.cellhalign">
    <xs:attribute name="align">
      <xs:annotation>
        <xs:documentation>Specifies the alignment of data and the justification of text in a cell.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="left">
            <xs:annotation>
              <xs:documentation>Left-flush data/Left-justify text. This is the default value for table data.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="center">
            <xs:annotation>
              <xs:documentation>Center data/Center-justify text. This is the default value for table headers.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="right">
            <xs:annotation>
              <xs:documentation>Right-flush data/Right-justify text.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="justify">
            <xs:annotation>
              <xs:documentation>Double-justify text.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="char">
            <xs:annotation>
              <xs:documentation>Align text around a specific character. If a user agent doesn't support character alignment, behavior in the presence of this value is unspecified.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="char">
      <xs:annotation>
        <xs:documentation>This attribute specifies a single character within a text fragment to act as an axis for alignment. The default value for this attribute is the decimal point character for the current language as set by the lang attribute (e.g., the period in English and the comma in French). User agents are not required to support this attribute.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="charoff">
      <xs:annotation>
        <xs:documentation>When present, this attribute specifies the offset to the first occurrence of the alignment character on each line. If a line doesn't include the alignment character, it should be horizontally shifted to end at the alignment position. When charoff is used to set the offset of an alignment character, the direction of offset is determined by the current text direction (set by the dir attribute). In left-to-right texts (the default), offset is from the left margin. In right-to-left texts, offset is from the right margin. User agents are not required to support this attribute.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:union memberTypes="xs:integer">
          <xs:simpleType>
            <xs:restriction base="xs:string">
              <xs:pattern value="[0-9]+%"/>
            </xs:restriction>
          </xs:simpleType>
        </xs:union>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.html.cellvalign">
    <xs:attribute name="valign">
      <xs:annotation>
        <xs:documentation>Specifies the vertical position of data within a cell.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="top">
            <xs:annotation>
              <xs:documentation>Cell data is flush with the top of the cell.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="middle">
            <xs:annotation>
              <xs:documentation>Cell data is centered vertically within the cell. This is the default value.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="bottom">
            <xs:annotation>
              <xs:documentation>Cell data is flush with the bottom of the cell.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="baseline">
            <xs:annotation>
              <xs:documentation>All cells in the same row as a cell whose valign attribute has this value should have their textual data positioned so that the first text line occurs on a baseline common to all cells in the row. This constraint does not apply to subsequent text lines in these cells.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.html.table.attributes">
    <xs:attribute name="summary">
      <xs:annotation>
        <xs:documentation>Provides a summary of the table's purpose and structure for user agents rendering to non-visual media such as speech and Braille.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="width">
      <xs:annotation>
        <xs:documentation>Specifies the desired width of the entire table and is intended for visual user agents. When the value is a percentage value, the value is relative to the user agent's available horizontal space. In the absence of any width specification, table width is determined by the user agent.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:union memberTypes="xs:integer">
          <xs:simpleType>
            <xs:restriction base="xs:string">
              <xs:pattern value="[0-9]+%"/>
            </xs:restriction>
          </xs:simpleType>
        </xs:union>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="border" type="xs:nonNegativeInteger">
      <xs:annotation>
        <xs:documentation>Specifies the width (in pixels only) of the frame around a table.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="frame">
      <xs:annotation>
        <xs:documentation>Specifies which sides of the frame surrounding a table will be visible.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="void">
            <xs:annotation>
              <xs:documentation>No sides. This is the default value.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="above">
            <xs:annotation>
              <xs:documentation>The top side only.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="below">
            <xs:annotation>
              <xs:documentation>The bottom side only.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="hsides">
            <xs:annotation>
              <xs:documentation>The top and bottom sides only.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="lhs">
            <xs:annotation>
              <xs:documentation>The left-hand side only.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="rhs">
            <xs:annotation>
              <xs:documentation>The right-hand side only.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="vsides">
            <xs:annotation>
              <xs:documentation>The right and left sides only.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="box">
            <xs:annotation>
              <xs:documentation>All four sides.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="border">
            <xs:annotation>
              <xs:documentation>All four sides.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="rules">
      <xs:annotation>
        <xs:documentation>Specifies which rules will appear between cells within a table. The rendering of rules is user agent dependent.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="none">
            <xs:annotation>
              <xs:documentation>No rules. This is the default value.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="groups">
            <xs:annotation>
              <xs:documentation>Rules will appear between row groups (see thead, tfoot, and tbody) and column groups (see colgroup and col) only.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="rows">
            <xs:annotation>
              <xs:documentation>Rules will appear between rows only.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="cols">
            <xs:annotation>
              <xs:documentation>Rules will appear between columns only.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="all">
            <xs:annotation>
              <xs:documentation>Rules will appear between all rows and columns.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="cellspacing">
      <xs:annotation>
        <xs:documentation>Specifies how much space the user agent should leave between the left side of the table and the left-hand side of the leftmost column, the top of the table and the top side of the topmost row, and so on for the right and bottom of the table. The attribute also specifies the amount of space to leave between cells.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:union memberTypes="xs:integer">
          <xs:simpleType>
            <xs:restriction base="xs:string">
              <xs:pattern value="[0-9]+%"/>
            </xs:restriction>
          </xs:simpleType>
        </xs:union>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="cellpadding">
      <xs:annotation>
        <xs:documentation>Specifies the amount of space between the border of the cell and its contents. If the value of this attribute is a pixel length, all four margins should be this distance from the contents. If the value of the attribute is a percentage length, the top and bottom margins should be equally separated from the content based on a percentage of the available vertical space, and the left and right margins should be equally separated from the content based on a percentage of the available horizontal space.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:union memberTypes="xs:integer">
          <xs:simpleType>
            <xs:restriction base="xs:string">
              <xs:pattern value="[0-9]+%"/>
            </xs:restriction>
          </xs:simpleType>
        </xs:union>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.html.tablecell.attributes">
    <xs:attribute name="abbr">
      <xs:annotation>
        <xs:documentation>Provides an abbreviated form of the cell's content and may be rendered by user agents when appropriate in place of the cell's content. Abbreviated names should be short since user agents may render them repeatedly. For instance, speech synthesizers may render the abbreviated headers relating to a particular cell before rendering that cell's content.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="axis">
      <xs:annotation>
        <xs:documentation>This attribute may be used to place a cell into conceptual categories that can be considered to form axes in an n-dimensional space. User agents may give users access to these categories (e.g., the user may query the user agent for all cells that belong to certain categories, the user agent may present a table in the form of a table of contents, etc.). Please consult an HTML reference for more details.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="headers">
      <xs:annotation>
        <xs:documentation>Specifies the list of header cells that provide header information for the current data cell. The value of this attribute is a space-separated list of cell names; those cells must be named by setting their id attribute. Authors generally use the headers attribute to help non-visual user agents render header information about data cells (e.g., header information is spoken prior to the cell data), but the attribute may also be used in conjunction with style sheets.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="scope">
      <xs:annotation>
        <xs:documentation>Specifies the set of data cells for which the current header cell provides header information. This attribute may be used in place of the headers attribute, particularly for simple tables.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="row">
            <xs:annotation>
              <xs:documentation>The current cell provides header information for the rest of the row that contains it</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="col">
            <xs:annotation>
              <xs:documentation>The current cell provides header information for the rest of the column that contains it.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="rowgroup">
            <xs:annotation>
              <xs:documentation>The header cell provides header information for the rest of the row group that contains it.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="colgroup">
            <xs:annotation>
              <xs:documentation>The header cell provides header information for the rest of the column group that contains it.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="rowspan" type="xs:nonNegativeInteger">
      <xs:annotation>
        <xs:documentation>Specifies the number of rows spanned by the current cell. The default value of this attribute is one (1
). The value zero (0
) means that the cell spans all rows from the current row to the last row of the table section (thead
, tbody
, or tfoot
) in which the cell is defined.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="colspan" type="xs:nonNegativeInteger">
      <xs:annotation>
        <xs:documentation>Specifies the number of columns spanned by the current cell. The default value of this attribute is one (1
). The value zero (0
) means that the cell spans all columns from the current column to the last column of the column group (colgroup
) in which the cell is defined.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.html.table.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.forbidden"/>
    </xs:sequence>
  </xs:group>
  <xs:complexType name="db.html.table.model">
    <xs:sequence>
      <xs:group minOccurs="0" ref="db:db.html.table.info"/>
      <xs:group ref="db:db.html.caption"/>
      <xs:choice>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:col"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:colgroup"/>
      </xs:choice>
      <xs:group minOccurs="0" ref="db:db.html.thead"/>
      <xs:group minOccurs="0" ref="db:db.html.tfoot"/>
      <xs:choice>
        <xs:group maxOccurs="unbounded" ref="db:db.html.tbody"/>
        <xs:element maxOccurs="unbounded" ref="db:tr"/>
      </xs:choice>
    </xs:sequence>
  </xs:complexType>
  <xs:group name="db.html.informaltable.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.forbidden"/>
    </xs:sequence>
  </xs:group>
  <xs:complexType name="db.html.informaltable.model">
    <xs:sequence>
      <xs:group minOccurs="0" ref="db:db.html.informaltable.info"/>
      <xs:choice>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:col"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:colgroup"/>
      </xs:choice>
      <xs:group minOccurs="0" ref="db:db.html.thead"/>
      <xs:group minOccurs="0" ref="db:db.html.tfoot"/>
      <xs:choice>
        <xs:group maxOccurs="unbounded" ref="db:db.html.tbody"/>
        <xs:element maxOccurs="unbounded" ref="db:tr"/>
      </xs:choice>
    </xs:sequence>
  </xs:complexType>
  <xs:attributeGroup name="db.html.table.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.html.table.label.attribute">
    <xs:attributeGroup ref="db:db.label.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.html.table.attlist">
    <xs:attributeGroup ref="db:db.html.attrs"/>
    <xs:attributeGroup ref="db:db.html.table.attributes"/>
    <xs:attribute name="role"/>
    <xs:attribute name="label">
      <xs:annotation>
        <xs:documentation>Specifies an identifying string for presentation purposes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="orient">
      <xs:annotation>
        <xs:documentation>Specifies the orientation of the table</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="land">
            <xs:annotation>
              <xs:documentation>90 degrees counter-clockwise from the rest of the text flow.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="port">
            <xs:annotation>
              <xs:documentation>The same orientation as the rest of the text flow.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="pgwide" type="db:db.pgwide.enumeration">
      <xs:annotation>
        <xs:documentation>Indicates if the element is rendered across the column or the page</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="tabstyle">
      <xs:annotation>
        <xs:documentation>Specifies the table style</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="floatstyle">
      <xs:annotation>
        <xs:documentation>Specifies style information to be used when rendering the float</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.html.table">
    <xs:sequence>
      <xs:element name="table">
        <xs:annotation>
          <xs:documentation>A formal (captioned) HTML table in a document</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:complexContent>
            <xs:extension base="db:db.html.table.model">
              <xs:attributeGroup ref="db:db.html.table.attlist"/>
            </xs:extension>
          </xs:complexContent>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:attributeGroup name="db.html.informaltable.attlist">
    <xs:attributeGroup ref="db:db.html.attrs"/>
    <xs:attributeGroup ref="db:db.html.table.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.html.informaltable">
    <xs:sequence>
      <xs:element name="informaltable">
        <xs:annotation>
          <xs:documentation>An HTML table without a title</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:complexContent>
            <xs:extension base="db:db.html.informaltable.model">
              <xs:attributeGroup ref="db:db.html.informaltable.attlist"/>
            </xs:extension>
          </xs:complexContent>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:attributeGroup name="db.html.caption.attlist">
    <xs:attributeGroup ref="db:db.html.attrs"/>
  </xs:attributeGroup>
  <xs:group name="db.html.caption">
    <xs:sequence>
      <xs:element name="caption">
        <xs:annotation>
          <xs:documentation>An HTML table caption</xs:documentation>
        </xs:annotation>
        <xs:complexType mixed="true">
          <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
          <xs:attributeGroup ref="db:db.html.caption.attlist"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:attributeGroup name="db.html.col.attlist">
    <xs:attributeGroup ref="db:db.html.attrs"/>
    <xs:attribute name="span" type="xs:nonNegativeInteger">
      <xs:annotation>
        <xs:documentation>This attribute, whose value must be an integer &gt; 0, specifies the number of columns spanned
 by the col
 element; the col
 element shares its attributes with all the columns it spans. The default value for this attribute is 1 (i.e., a single column). If the span attribute is set to N &gt; 1, the current col
 element shares its attributes with the next N-1 columns.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="width">
      <xs:annotation>
        <xs:documentation>Specifies a default width for each column spanned by the current col
 element. It has the same meaning as the width
 attribute for the colgroup
 element and overrides it.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attributeGroup ref="db:db.html.cellhalign"/>
    <xs:attributeGroup ref="db:db.html.cellvalign"/>
  </xs:attributeGroup>
  <xs:element name="col">
    <xs:annotation>
      <xs:documentation>Specifications for a column in an HTML table</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attributeGroup ref="db:db.html.col.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.html.colgroup.attlist">
    <xs:attributeGroup ref="db:db.html.attrs"/>
    <xs:attribute name="span" type="xs:nonNegativeInteger">
      <xs:annotation>
        <xs:documentation>This attribute, which must be an integer &gt; 0, specifies the number of columns in a column group. In the absence of a span attribute, each colgroup
 defines a column group containing one column. If the span attribute is set to N &gt; 0, the current colgroup
 element defines a column group containing N columns. User agents must ignore this attribute if the colgroup
 element contains one or more col
 elements.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="width">
      <xs:annotation>
        <xs:documentation>This attribute specifies a default width for each column in the current column group. In addition to the standard pixel, percentage, and relative values, this attribute allows the special form 0*
 (zero asterisk) which means that the width of the each column in the group should be the minimum width necessary to hold the column's contents. This implies that a column's entire contents must be known before its width may be correctly computed. Authors should be aware that specifying 0*
 will prevent visual user agents from rendering a table incrementally. This attribute is overridden for any column in the column group whose width is specified via a col
 element.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attributeGroup ref="db:db.html.cellhalign"/>
    <xs:attributeGroup ref="db:db.html.cellvalign"/>
  </xs:attributeGroup>
  <xs:element name="colgroup">
    <xs:annotation>
      <xs:documentation>A group of columns in an HTML table</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:col"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.html.colgroup.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.html.thead.attlist">
    <xs:attributeGroup ref="db:db.html.attrs"/>
    <xs:attributeGroup ref="db:db.html.cellhalign"/>
    <xs:attributeGroup ref="db:db.html.cellvalign"/>
  </xs:attributeGroup>
  <xs:group name="db.html.thead">
    <xs:sequence>
      <xs:element name="thead">
        <xs:annotation>
          <xs:documentation>A table header consisting of one or more rows in an HTML table</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element maxOccurs="unbounded" ref="db:tr"/>
          </xs:sequence>
          <xs:attributeGroup ref="db:db.html.thead.attlist"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:attributeGroup name="db.html.tfoot.attlist">
    <xs:attributeGroup ref="db:db.html.attrs"/>
    <xs:attributeGroup ref="db:db.html.cellhalign"/>
    <xs:attributeGroup ref="db:db.html.cellvalign"/>
  </xs:attributeGroup>
  <xs:group name="db.html.tfoot">
    <xs:sequence>
      <xs:element name="tfoot">
        <xs:annotation>
          <xs:documentation>A table footer consisting of one or more rows in an HTML table</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element maxOccurs="unbounded" ref="db:tr"/>
          </xs:sequence>
          <xs:attributeGroup ref="db:db.html.tfoot.attlist"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:attributeGroup name="db.html.tbody.attlist">
    <xs:attributeGroup ref="db:db.html.attrs"/>
    <xs:attributeGroup ref="db:db.html.cellhalign"/>
    <xs:attributeGroup ref="db:db.html.cellvalign"/>
  </xs:attributeGroup>
  <xs:group name="db.html.tbody">
    <xs:sequence>
      <xs:element name="tbody">
        <xs:annotation>
          <xs:documentation>A wrapper for the rows of an HTML table or informal HTML table</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element maxOccurs="unbounded" ref="db:tr"/>
          </xs:sequence>
          <xs:attributeGroup ref="db:db.html.tbody.attlist"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:attributeGroup name="db.html.tr.attlist">
    <xs:attributeGroup ref="db:db.html.attrs"/>
    <xs:attributeGroup ref="db:db.html.cellhalign"/>
    <xs:attributeGroup ref="db:db.html.cellvalign"/>
  </xs:attributeGroup>
  <xs:element name="tr">
    <xs:annotation>
      <xs:documentation>A row in an HTML table</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:choice maxOccurs="unbounded">
        <xs:element ref="db:th"/>
        <xs:element ref="db:td"/>
      </xs:choice>
      <xs:attributeGroup ref="db:db.html.tr.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.html.th.attlist">
    <xs:attributeGroup ref="db:db.html.attrs"/>
    <xs:attributeGroup ref="db:db.html.tablecell.attributes"/>
    <xs:attributeGroup ref="db:db.html.cellhalign"/>
    <xs:attributeGroup ref="db:db.html.cellvalign"/>
  </xs:attributeGroup>
  <xs:element name="th">
    <xs:annotation>
      <xs:documentation>A table header entry in an HTML table</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:choice>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.blocks"/>
      </xs:choice>
      <xs:attributeGroup ref="db:db.html.th.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.html.td.attlist">
    <xs:attributeGroup ref="db:db.html.attrs"/>
    <xs:attributeGroup ref="db:db.html.tablecell.attributes"/>
    <xs:attributeGroup ref="db:db.html.cellhalign"/>
    <xs:attributeGroup ref="db:db.html.cellvalign"/>
  </xs:attributeGroup>
  <xs:element name="td">
    <xs:annotation>
      <xs:documentation>A table entry in an HTML table</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:choice>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.blocks"/>
      </xs:choice>
      <xs:attributeGroup ref="db:db.html.td.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.msgset.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.msgset.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.msgset.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.only"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="msgset">
    <xs:annotation>
      <xs:documentation>A detailed set of messages, usually error messages</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.msgset.info"/>
        <xs:choice>
          <xs:element maxOccurs="unbounded" ref="db:msgentry"/>
          <xs:element maxOccurs="unbounded" ref="db:simplemsgentry"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.msgset.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.msgentry.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.msgentry.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="msgentry">
    <xs:annotation>
      <xs:documentation>A wrapper for an entry in a message set</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="db:msg"/>
        <xs:element minOccurs="0" ref="db:msginfo"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:msgexplan"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.msgentry.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.simplemsgentry.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.simplemsgentry.msgaud.attribute">
    <xs:attribute name="msgaud" use="required">
      <xs:annotation>
        <xs:documentation>The audience to which the message relevant</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.simplemsgentry.msgorig.attribute">
    <xs:attribute name="msgorig" use="required">
      <xs:annotation>
        <xs:documentation>The origin of the message</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.simplemsgentry.msglevel.attribute">
    <xs:attribute name="msglevel" use="required">
      <xs:annotation>
        <xs:documentation>The level of importance or severity of a message</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.simplemsgentry.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="msgaud">
      <xs:annotation>
        <xs:documentation>The audience to which the message relevant</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="msgorig">
      <xs:annotation>
        <xs:documentation>The origin of the message</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="msglevel">
      <xs:annotation>
        <xs:documentation>The level of importance or severity of a message</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="simplemsgentry">
    <xs:annotation>
      <xs:documentation>A wrapper for a simpler entry in a message set</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="db:msgtext"/>
        <xs:element maxOccurs="unbounded" ref="db:msgexplan"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.simplemsgentry.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.msg.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.msg.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.msg.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.only"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="msg">
    <xs:annotation>
      <xs:documentation>A message in a message set</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.msg.info"/>
        <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:attributeGroup ref="db:db.msg.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.msgmain.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.msgmain.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.msgmain.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.only"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="msgmain">
    <xs:annotation>
      <xs:documentation>The primary component of a message in a message set </xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.msgmain.info"/>
        <xs:element ref="db:msgtext"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.msgmain.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.msgsub.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.msgsub.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.msgsub.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.only"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="msgsub">
    <xs:annotation>
      <xs:documentation>A subcomponent of a message in a message set</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.msgsub.info"/>
        <xs:element ref="db:msgtext"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.msgsub.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.msgrel.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.msgrel.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.msgrel.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.only"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="msgrel">
    <xs:annotation>
      <xs:documentation>A related component of a message in a message set</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.msgrel.info"/>
        <xs:element ref="db:msgtext"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.msgrel.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.msgtext.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.msgtext.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="msgtext">
    <xs:annotation>
      <xs:documentation>The actual text of a message component in a message set</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
      <xs:attributeGroup ref="db:db.msgtext.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.msginfo.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.msginfo.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="msginfo">
    <xs:annotation>
      <xs:documentation>Information about a message in a message set</xs:documentation>
    </xs:annotation>
    <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:attributeGroup ref="db:db.msginfo.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.msglevel.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.msglevel.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="msglevel">
    <xs:annotation>
      <xs:documentation>The level of importance or severity of a message in a message set</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.msglevel.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.msgorig.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.msgorig.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="msgorig">
    <xs:annotation>
      <xs:documentation>The origin of a message in a message set</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.msgorig.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.msgaud.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.msgaud.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="msgaud">
    <xs:annotation>
      <xs:documentation>The audience to which a message in a message set is relevant</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.msgaud.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.msgexplan.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.msgexplan.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.msgexplan.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.only"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="msgexplan">
    <xs:annotation>
      <xs:documentation>Explanatory material relating to a message in a message set</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.msgexplan.info"/>
        <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.msgexplan.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.qandaset.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:simpleType name="db.qandaset.defaultlabel.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="none">
        <xs:annotation>
          <xs:documentation>No labels</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="number">
        <xs:annotation>
          <xs:documentation>Numeric labels</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="qanda">
        <xs:annotation>
          <xs:documentation>"Q:" and "A:" labels</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.qandaset.defaultlabel.attribute">
    <xs:attribute name="defaultlabel" use="required" type="db:db.qandaset.defaultlabel.enumeration">
      <xs:annotation>
        <xs:documentation>Specifies the default labelling</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.qandaset.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="defaultlabel" type="db:db.qandaset.defaultlabel.enumeration">
      <xs:annotation>
        <xs:documentation>Specifies the default labelling</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.qandaset.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.only"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="qandaset">
    <xs:annotation>
      <xs:documentation>A question-and-answer set</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.qandaset.info"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.blocks"/>
        <xs:choice>
          <xs:element maxOccurs="unbounded" ref="db:qandadiv"/>
          <xs:element maxOccurs="unbounded" ref="db:qandaentry"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.qandaset.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.qandadiv.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.qandadiv.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.qandadiv.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.only"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="qandadiv">
    <xs:annotation>
      <xs:documentation>A titled division in a QandASet</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.qandadiv.info"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.blocks"/>
        <xs:choice>
          <xs:element maxOccurs="unbounded" ref="db:qandadiv"/>
          <xs:element maxOccurs="unbounded" ref="db:qandaentry"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.qandadiv.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.qandaentry.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.qandaentry.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.qandaentry.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.only"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="qandaentry">
    <xs:annotation>
      <xs:documentation>A question/answer set within a QandASet</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.qandaentry.info"/>
        <xs:element ref="db:question"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:answer"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.qandaentry.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.question.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.question.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="question">
    <xs:annotation>
      <xs:documentation>A question in a QandASet</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="db:label"/>
        <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.question.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.answer.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.answer.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="answer">
    <xs:annotation>
      <xs:documentation>An answer to a question posed in a QandASet</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="db:label"/>
        <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.answer.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.label.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.label.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="label">
    <xs:annotation>
      <xs:documentation>A label on a Question or Answer</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.label.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="db.math.inlines" abstract="true">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="db:alt"/>
        <xs:group ref="db:db.inlineequation.content"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.inlineequation.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:group name="db.equation.content">
    <xs:choice>
      <xs:choice>
        <xs:element maxOccurs="unbounded" ref="db:mediaobject"/>
        <xs:element maxOccurs="unbounded" ref="db:mathphrase"/>
      </xs:choice>
      <xs:group maxOccurs="unbounded" ref="dbs:db._any.mml"/>
    </xs:choice>
  </xs:group>
  <xs:group name="db.inlineequation.content">
    <xs:choice>
      <xs:choice>
        <xs:element maxOccurs="unbounded" ref="db:inlinemediaobject"/>
        <xs:element maxOccurs="unbounded" ref="db:mathphrase"/>
      </xs:choice>
      <xs:group maxOccurs="unbounded" ref="dbs:db._any.mml"/>
    </xs:choice>
  </xs:group>
  <xs:attributeGroup name="db.equation.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.equation.label.attribute">
    <xs:attributeGroup ref="db:db.label.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.equation.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="label">
      <xs:annotation>
        <xs:documentation>Specifies an identifying string for presentation purposes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="pgwide" type="db:db.pgwide.enumeration">
      <xs:annotation>
        <xs:documentation>Indicates if the element is rendered across the column or the page</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="floatstyle">
      <xs:annotation>
        <xs:documentation>Specifies style information to be used when rendering the float</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.equation.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.only"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="equation">
    <xs:annotation>
      <xs:documentation>A displayed mathematical equation</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.equation.info"/>
        <xs:element minOccurs="0" ref="db:alt"/>
        <xs:group ref="db:db.equation.content"/>
        <xs:group minOccurs="0" ref="db:db.caption"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.equation.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.informalequation.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.informalequation.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.informalequation.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.forbidden"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="informalequation">
    <xs:annotation>
      <xs:documentation>A displayed mathematical equation without a title</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.informalequation.info"/>
        <xs:element minOccurs="0" ref="db:alt"/>
        <xs:group ref="db:db.equation.content"/>
        <xs:group minOccurs="0" ref="db:db.caption"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.informalequation.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.inlineequation.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.inlineequation.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="inlineequation" substitutionGroup="db:db.math.inlines">
    <xs:annotation>
      <xs:documentation>A mathematical equation or expression occurring inline</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:attributeGroup name="db.mathphrase.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.mathphrase.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="mathphrase">
    <xs:annotation>
      <xs:documentation>A mathematical phrase, an expression that can be represented with ordinary text and a small amount of markup</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:group ref="db:db._text"/>
        <xs:group ref="db:db.ubiq.inlines"/>
        <xs:group ref="db:db._emphasis"/>
      </xs:choice>
      <xs:attributeGroup ref="db:db.mathphrase.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.imagedata.mathml.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.imagedata.mathml.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attribute name="format">
      <xs:annotation>
        <xs:documentation>Specifies that the format of the data is MathML</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="mathml">
            <xs:annotation>
              <xs:documentation>Specifies MathML.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="align" type="db:db.imagedata.align.enumeration">
      <xs:annotation>
        <xs:documentation>Specifies the (horizontal) alignment of the image data</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="valign" type="db:db.imagedata.valign.enumeration">
      <xs:annotation>
        <xs:documentation>Specifies the vertical alignment of the image data</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="width">
      <xs:annotation>
        <xs:documentation>Specifies the width of the element</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="contentwidth">
      <xs:annotation>
        <xs:documentation>Specifies the width of the content rectangle</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="scalefit" type="db:db.imagedata.scalefit.enumeration">
      <xs:annotation>
        <xs:documentation>Determines if anamorphic scaling is forbidden</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="scale" type="xs:positiveInteger">
      <xs:annotation>
        <xs:documentation>Specifies the scaling factor</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="depth">
      <xs:annotation>
        <xs:documentation>Specifies the depth of the element</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="contentdepth">
      <xs:annotation>
        <xs:documentation>Specifies the depth of the content rectangle</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.imagedata.mathml.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.forbidden"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="db.imagedata.mathml">
    <xs:sequence>
      <xs:element name="imagedata">
        <xs:annotation>
          <xs:documentation>A MathML expression in a media object</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:group ref="db:db.imagedata.mathml.info"/>
            <xs:group maxOccurs="unbounded" ref="dbs:db._any.mml"/>
          </xs:sequence>
          <xs:attributeGroup ref="db:db.imagedata.mathml.attlist"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:attributeGroup name="db.imagedata.svg.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.imagedata.svg.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attribute name="format">
      <xs:annotation>
        <xs:documentation>Specifies that the format of the data is SVG</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="svg">
            <xs:annotation>
              <xs:documentation>Specifies SVG.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="align" type="db:db.imagedata.align.enumeration">
      <xs:annotation>
        <xs:documentation>Specifies the (horizontal) alignment of the image data</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="valign" type="db:db.imagedata.valign.enumeration">
      <xs:annotation>
        <xs:documentation>Specifies the vertical alignment of the image data</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="width">
      <xs:annotation>
        <xs:documentation>Specifies the width of the element</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="contentwidth">
      <xs:annotation>
        <xs:documentation>Specifies the width of the content rectangle</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="scalefit" type="db:db.imagedata.scalefit.enumeration">
      <xs:annotation>
        <xs:documentation>Determines if anamorphic scaling is forbidden</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="scale" type="xs:positiveInteger">
      <xs:annotation>
        <xs:documentation>Specifies the scaling factor</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="depth">
      <xs:annotation>
        <xs:documentation>Specifies the depth of the element</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="contentdepth">
      <xs:annotation>
        <xs:documentation>Specifies the depth of the content rectangle</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.imagedata.svg.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.forbidden"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="db.imagedata.svg">
    <xs:sequence>
      <xs:element name="imagedata">
        <xs:annotation>
          <xs:documentation>An SVG drawing in a media object</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:group ref="db:db.imagedata.svg.info"/>
            <xs:group maxOccurs="unbounded" ref="dbs:db._any.svg"/>
          </xs:sequence>
          <xs:attributeGroup ref="db:db.imagedata.svg.attlist"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:element name="db.markup.inlines" abstract="true"/>
  <xs:attributeGroup name="db.markup.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.markup.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="markup" substitutionGroup="db:db.markup.inlines">
    <xs:annotation>
      <xs:documentation>A string of formatting markup in text that is to be represented literally</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.markup.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.tag.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:simpleType name="db.tag.class.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="attribute">
        <xs:annotation>
          <xs:documentation>An attribute</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="attvalue">
        <xs:annotation>
          <xs:documentation>An attribute value</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="element">
        <xs:annotation>
          <xs:documentation>An element</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="emptytag">
        <xs:annotation>
          <xs:documentation>An empty element tag</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="endtag">
        <xs:annotation>
          <xs:documentation>An end tag</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="genentity">
        <xs:annotation>
          <xs:documentation>A general entity</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="localname">
        <xs:annotation>
          <xs:documentation>The local name part of a qualified name</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="namespace">
        <xs:annotation>
          <xs:documentation>A namespace</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="numcharref">
        <xs:annotation>
          <xs:documentation>A numeric character reference</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="paramentity">
        <xs:annotation>
          <xs:documentation>A parameter entity</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="pi">
        <xs:annotation>
          <xs:documentation>A processing instruction</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="prefix">
        <xs:annotation>
          <xs:documentation>The prefix part of a qualified name</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="comment">
        <xs:annotation>
          <xs:documentation>An SGML comment</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="starttag">
        <xs:annotation>
          <xs:documentation>A start tag</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="xmlpi">
        <xs:annotation>
          <xs:documentation>An XML processing instruction</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.tag.class.attribute">
    <xs:attribute name="class" use="required" type="db:db.tag.class.enumeration">
      <xs:annotation>
        <xs:documentation>Identifies the nature of the tag content</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.tag.namespace.attribute">
    <xs:attribute name="namespace" use="required" type="xs:anyURI">
      <xs:annotation>
        <xs:documentation>Identifies the namespace of the tag content</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.tag.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="class" type="db:db.tag.class.enumeration">
      <xs:annotation>
        <xs:documentation>Identifies the nature of the tag content</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="namespace" type="xs:anyURI">
      <xs:annotation>
        <xs:documentation>Identifies the namespace of the tag content</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="tag" substitutionGroup="db:db.markup.inlines">
    <xs:annotation>
      <xs:documentation>A component of XML (or SGML) markup</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.tag.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.symbol.class.attribute">
    <xs:attribute name="class" use="required">
      <xs:annotation>
        <xs:documentation>Identifies the class of symbol</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="limit">
            <xs:annotation>
              <xs:documentation>The value is a limit of some kind</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.symbol.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.symbol.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="class">
      <xs:annotation>
        <xs:documentation>Identifies the class of symbol</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="limit">
            <xs:annotation>
              <xs:documentation>The value is a limit of some kind</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="symbol" substitutionGroup="db:db.markup.inlines">
    <xs:annotation>
      <xs:documentation>A name that is replaced by a value before processing</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.symbol.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.token.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.token.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="token" substitutionGroup="db:db.markup.inlines">
    <xs:annotation>
      <xs:documentation>A unit of information</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.token.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.literal.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.literal.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="literal" substitutionGroup="db:db.markup.inlines">
    <xs:annotation>
      <xs:documentation>Inline text that is some literal value</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.literal.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="code.language.attribute">
    <xs:attribute name="language" use="required">
      <xs:annotation>
        <xs:documentation>Identifies the (computer) language of the code fragment</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.code.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.code.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="language">
      <xs:annotation>
        <xs:documentation>Identifies the (computer) language of the code fragment</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="code" substitutionGroup="db:db.markup.inlines">
    <xs:annotation>
      <xs:documentation>An inline code fragment</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:group ref="db:db.programming.inlines"/>
        <xs:group ref="db:db._text"/>
      </xs:choice>
      <xs:attributeGroup ref="db:db.code.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.constant.class.attribute">
    <xs:attribute name="class" use="required">
      <xs:annotation>
        <xs:documentation>Identifies the class of constant</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="limit">
            <xs:annotation>
              <xs:documentation>The value is a limit of some kind</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.constant.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.constant.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="class">
      <xs:annotation>
        <xs:documentation>Identifies the class of constant</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="limit">
            <xs:annotation>
              <xs:documentation>The value is a limit of some kind</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="constant" substitutionGroup="db:db.markup.inlines">
    <xs:annotation>
      <xs:documentation>A programming or system constant</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.constant.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.productname.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:simpleType name="db.productname.class.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="copyright">
        <xs:annotation>
          <xs:documentation>A name with a copyright</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="registered">
        <xs:annotation>
          <xs:documentation>A name with a registered copyright</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="service">
        <xs:annotation>
          <xs:documentation>A name of a service</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="trade">
        <xs:annotation>
          <xs:documentation>A name which is trademarked</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.productname.class.attribute">
    <xs:attribute name="class" use="required" type="db:db.productname.class.enumeration">
      <xs:annotation>
        <xs:documentation>Specifies the class of product name</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.productname.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="class" type="db:db.productname.class.enumeration">
      <xs:annotation>
        <xs:documentation>Specifies the class of product name</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="productname" substitutionGroup="db:db.product.inlines">
    <xs:annotation>
      <xs:documentation>The formal name of a product</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.productname.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.productnumber.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.productnumber.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="productnumber" substitutionGroup="db:db.product.inlines">
    <xs:annotation>
      <xs:documentation>A number assigned to a product</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.productnumber.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:simpleType name="db.database.class.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="altkey">
        <xs:annotation>
          <xs:documentation>An alternate or secondary key</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="constraint">
        <xs:annotation>
          <xs:documentation>A constraint</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="datatype">
        <xs:annotation>
          <xs:documentation>A data type</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="field">
        <xs:annotation>
          <xs:documentation>A field</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="foreignkey">
        <xs:annotation>
          <xs:documentation>A foreign key</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="group">
        <xs:annotation>
          <xs:documentation>A group</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="index">
        <xs:annotation>
          <xs:documentation>An index</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="key1">
        <xs:annotation>
          <xs:documentation>The first or primary key</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="key2">
        <xs:annotation>
          <xs:documentation>An alternate or secondary key</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="name">
        <xs:annotation>
          <xs:documentation>A name</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="primarykey">
        <xs:annotation>
          <xs:documentation>The primary key</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="procedure">
        <xs:annotation>
          <xs:documentation>A (stored) procedure</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="record">
        <xs:annotation>
          <xs:documentation>A record</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="rule">
        <xs:annotation>
          <xs:documentation>A rule</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="secondarykey">
        <xs:annotation>
          <xs:documentation>The secondary key</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="table">
        <xs:annotation>
          <xs:documentation>A table</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="user">
        <xs:annotation>
          <xs:documentation>A user</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="view">
        <xs:annotation>
          <xs:documentation>A view</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.database.class.attribute">
    <xs:attribute name="class" use="required" type="db:db.database.class.enumeration">
      <xs:annotation>
        <xs:documentation>Identifies the class of database artifact</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.database.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.database.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="class" type="db:db.database.class.enumeration">
      <xs:annotation>
        <xs:documentation>Identifies the class of database artifact</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="database" substitutionGroup="db:db.product.inlines">
    <xs:annotation>
      <xs:documentation>The name of a database, or part of a database</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.database.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:simpleType name="db.application.class.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="hardware">
        <xs:annotation>
          <xs:documentation>A hardware application</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="software">
        <xs:annotation>
          <xs:documentation>A software application</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.application.class.attribute">
    <xs:attribute name="class" use="required" type="db:db.application.class.enumeration">
      <xs:annotation>
        <xs:documentation>Identifies the class of application</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.application.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.application.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="class" type="db:db.application.class.enumeration">
      <xs:annotation>
        <xs:documentation>Identifies the class of application</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="application" substitutionGroup="db:db.product.inlines">
    <xs:annotation>
      <xs:documentation>The name of a software program</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.application.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.hardware.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.hardware.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="hardware" substitutionGroup="db:db.product.inlines">
    <xs:annotation>
      <xs:documentation>A physical part of a computer system</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.hardware.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="db.gui.inlines" abstract="true"/>
  <xs:attributeGroup name="db.guibutton.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.guibutton.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="guibutton" substitutionGroup="db:db.gui.inlines">
    <xs:annotation>
      <xs:documentation>The text on a button in a GUI</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:group ref="db:db._text"/>
        <xs:element ref="db:accel"/>
        <xs:element ref="db:superscript"/>
        <xs:element ref="db:subscript"/>
      </xs:choice>
      <xs:attributeGroup ref="db:db.guibutton.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.guiicon.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.guiicon.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="guiicon" substitutionGroup="db:db.gui.inlines">
    <xs:annotation>
      <xs:documentation>Graphic and/or text appearing as a icon in a GUI</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:group ref="db:db._text"/>
        <xs:element ref="db:accel"/>
        <xs:element ref="db:superscript"/>
        <xs:element ref="db:subscript"/>
      </xs:choice>
      <xs:attributeGroup ref="db:db.guiicon.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.guilabel.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.guilabel.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="guilabel" substitutionGroup="db:db.gui.inlines">
    <xs:annotation>
      <xs:documentation>The text of a label in a GUI</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:group ref="db:db._text"/>
        <xs:element ref="db:accel"/>
        <xs:element ref="db:superscript"/>
        <xs:element ref="db:subscript"/>
      </xs:choice>
      <xs:attributeGroup ref="db:db.guilabel.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.guimenu.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.guimenu.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="guimenu" substitutionGroup="db:db.gui.inlines">
    <xs:annotation>
      <xs:documentation>The name of a menu in a GUI</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:group ref="db:db._text"/>
        <xs:element ref="db:accel"/>
        <xs:element ref="db:superscript"/>
        <xs:element ref="db:subscript"/>
      </xs:choice>
      <xs:attributeGroup ref="db:db.guimenu.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.guimenuitem.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.guimenuitem.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="guimenuitem" substitutionGroup="db:db.gui.inlines">
    <xs:annotation>
      <xs:documentation>The name of a terminal menu item in a GUI</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:group ref="db:db._text"/>
        <xs:element ref="db:accel"/>
        <xs:element ref="db:superscript"/>
        <xs:element ref="db:subscript"/>
      </xs:choice>
      <xs:attributeGroup ref="db:db.guimenuitem.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.guisubmenu.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.guisubmenu.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="guisubmenu" substitutionGroup="db:db.gui.inlines">
    <xs:annotation>
      <xs:documentation>The name of a submenu in a GUI</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:group ref="db:db._text"/>
        <xs:element ref="db:accel"/>
        <xs:element ref="db:superscript"/>
        <xs:element ref="db:subscript"/>
      </xs:choice>
      <xs:attributeGroup ref="db:db.guisubmenu.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.menuchoice.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.menuchoice.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="menuchoice" substitutionGroup="db:db.gui.inlines">
    <xs:annotation>
      <xs:documentation>A selection or series of selections from a menu</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="db:shortcut"/>
        <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:attributeGroup ref="db:db.menuchoice.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.mousebutton.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.mousebutton.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="mousebutton" substitutionGroup="db:db.gui.inlines">
    <xs:annotation>
      <xs:documentation>The conventional name of a mouse button</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.mousebutton.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:group name="db.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:simpleType name="db.keycap.function.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="alt">
        <xs:annotation>
          <xs:documentation>The "Alt" key</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="backspace">
        <xs:annotation>
          <xs:documentation>The "Backspace" key</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="command">
        <xs:annotation>
          <xs:documentation>The "Command" key</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="control">
        <xs:annotation>
          <xs:documentation>The "Control" key</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="delete">
        <xs:annotation>
          <xs:documentation>The "Delete" key</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="down">
        <xs:annotation>
          <xs:documentation>The down arrow</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="end">
        <xs:annotation>
          <xs:documentation>The "End" key</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="enter">
        <xs:annotation>
          <xs:documentation>The "Enter" or "Return" key</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="escape">
        <xs:annotation>
          <xs:documentation>The "Escape" key</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="home">
        <xs:annotation>
          <xs:documentation>The "Home" key</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="insert">
        <xs:annotation>
          <xs:documentation>The "Insert" key</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="left">
        <xs:annotation>
          <xs:documentation>The left arrow</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="meta">
        <xs:annotation>
          <xs:documentation>The "Meta" key</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="option">
        <xs:annotation>
          <xs:documentation>The "Option" key</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="pagedown">
        <xs:annotation>
          <xs:documentation>The page down key</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="pageup">
        <xs:annotation>
          <xs:documentation>The page up key</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="right">
        <xs:annotation>
          <xs:documentation>The right arrow</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="shift">
        <xs:annotation>
          <xs:documentation>The "Shift" key</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="space">
        <xs:annotation>
          <xs:documentation>The spacebar</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="tab">
        <xs:annotation>
          <xs:documentation>The "Tab" key</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="up">
        <xs:annotation>
          <xs:documentation>The up arrow</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.keycap.function-enum.attribute">
    <xs:attribute name="function" type="db:db.keycap.function.enumeration">
      <xs:annotation>
        <xs:documentation>Identifies the function key</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.keycap.function-other.attributes">
    <xs:attribute name="function">
      <xs:annotation>
        <xs:documentation>Identifies the function key</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="other">
            <xs:annotation>
              <xs:documentation>Indicates a non-standard function key</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="otherfunction" use="required">
      <xs:annotation>
        <xs:documentation>Specifies a keyword that identifies the non-standard key</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.keycap.function.attrib">
    <xs:attribute name="function">
      <xs:simpleType>
        <xs:union memberTypes="db:db.keycap.function.enumeration">
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="other">
                <xs:annotation>
                  <xs:documentation>Indicates a non-standard function key</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
        </xs:union>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="otherfunction">
      <xs:annotation>
        <xs:documentation>Specifies a keyword that identifies the non-standard key</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.keycap.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.keycap.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attributeGroup ref="db:db.keycap.function.attrib"/>
  </xs:attributeGroup>
  <xs:element name="keycap">
    <xs:annotation>
      <xs:documentation>The text printed on a key on a keyboard</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.keycap.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.keycode.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.keycode.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="keycode">
    <xs:annotation>
      <xs:documentation>The internal, frequently numeric, identifier for a key on a keyboard</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.keycode.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:group name="db.keycombination.contentmodel">
    <xs:choice>
      <xs:choice>
        <xs:element ref="db:keycap"/>
        <xs:element ref="db:keycombo"/>
        <xs:element ref="db:keysym"/>
      </xs:choice>
      <xs:element ref="db:mousebutton"/>
    </xs:choice>
  </xs:group>
  <xs:simpleType name="db.keycombo.action.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="click">
        <xs:annotation>
          <xs:documentation>A (single) mouse click.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="double-click">
        <xs:annotation>
          <xs:documentation>A double mouse click.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="press">
        <xs:annotation>
          <xs:documentation>A mouse or key press.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="seq">
        <xs:annotation>
          <xs:documentation>Sequential clicks or presses.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="simul">
        <xs:annotation>
          <xs:documentation>Simultaneous clicks or presses.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.keycombo.action-enum.attribute">
    <xs:attribute name="action" type="db:db.keycombo.action.enumeration">
      <xs:annotation>
        <xs:documentation>Identifies the nature of the action taken. If keycombo
 contains more than one element, simul
 is the default, otherwise there is no default.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.keycombo.action-other.attributes">
    <xs:attribute name="action">
      <xs:annotation>
        <xs:documentation>Identifies the nature of the action taken</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="other">
            <xs:annotation>
              <xs:documentation>Indicates a non-standard action</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="otheraction" use="required">
      <xs:annotation>
        <xs:documentation>Identifies the non-standard action in some unspecified way.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.keycombo.action.attrib">
    <xs:attribute name="action">
      <xs:simpleType>
        <xs:union memberTypes="db:db.keycombo.action.enumeration">
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="other">
                <xs:annotation>
                  <xs:documentation>Indicates a non-standard action</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
        </xs:union>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="otheraction">
      <xs:annotation>
        <xs:documentation>Identifies the non-standard action in some unspecified way.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.keycombo.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.keycombo.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attributeGroup ref="db:db.keycombo.action.attrib"/>
  </xs:attributeGroup>
  <xs:element name="keycombo">
    <xs:annotation>
      <xs:documentation>A combination of input actions</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="db:db.keycombination.contentmodel"/>
      <xs:attributeGroup ref="db:db.keycombo.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.keysym.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.keysym.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="keysym">
    <xs:annotation>
      <xs:documentation>The symbolic name of a key on a keyboard</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.keysym.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.accel.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.accel.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="accel">
    <xs:annotation>
      <xs:documentation>A graphical user interface (GUI) keyboard shortcut</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.accel.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.shortcut.action.attrib">
    <xs:attributeGroup ref="db:db.keycombo.action.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.shortcut.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.shortcut.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attributeGroup ref="db:db.shortcut.action.attrib"/>
  </xs:attributeGroup>
  <xs:element name="shortcut">
    <xs:annotation>
      <xs:documentation>A key combination for an action that is also accessible through a menu</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="db:db.keycombination.contentmodel"/>
      <xs:attributeGroup ref="db:db.shortcut.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="db.os.inlines" abstract="true"/>
  <xs:group name="db.computeroutput.inlines">
    <xs:choice>
      <xs:choice minOccurs="0">
        <xs:group ref="db:db.ubiq.inlines"/>
        <xs:element ref="db:db.os.inlines"/>
        <xs:element ref="db:db.technical.inlines"/>
      </xs:choice>
      <xs:element ref="db:co"/>
      <xs:element ref="db:db.markup.inlines"/>
    </xs:choice>
  </xs:group>
  <xs:group name="db.userinput.inlines">
    <xs:choice>
      <xs:choice minOccurs="0">
        <xs:group ref="db:db.ubiq.inlines"/>
        <xs:element ref="db:db.os.inlines"/>
        <xs:element ref="db:db.technical.inlines"/>
      </xs:choice>
      <xs:element ref="db:co"/>
      <xs:element ref="db:db.markup.inlines"/>
      <xs:element ref="db:db.gui.inlines"/>
      <xs:group ref="db:db.keyboard.inlines"/>
    </xs:choice>
  </xs:group>
  <xs:group name="db.prompt.inlines">
    <xs:choice>
      <xs:group ref="db:db._text"/>
      <xs:element ref="db:co"/>
    </xs:choice>
  </xs:group>
  <xs:attributeGroup name="db.prompt.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.prompt.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="prompt" substitutionGroup="db:db.os.inlines">
    <xs:annotation>
      <xs:documentation>A character or string indicating the start of an input field in a  computer display</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.prompt.inlines"/>
      <xs:attributeGroup ref="db:db.prompt.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.envar.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.envar.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="envar" substitutionGroup="db:db.os.inlines">
    <xs:annotation>
      <xs:documentation>A software environment variable</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.envar.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:simpleType name="db.filename.class.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="devicefile">
        <xs:annotation>
          <xs:documentation>A device</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="directory">
        <xs:annotation>
          <xs:documentation>A directory</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="extension">
        <xs:annotation>
          <xs:documentation>A filename extension</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="headerfile">
        <xs:annotation>
          <xs:documentation>A header file (as for a programming language)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="libraryfile">
        <xs:annotation>
          <xs:documentation>A library file</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="partition">
        <xs:annotation>
          <xs:documentation>A partition (as of a hard disk)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="symlink">
        <xs:annotation>
          <xs:documentation>A symbolic link</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.filename.class.attribute">
    <xs:attribute name="class" use="required" type="db:db.filename.class.enumeration">
      <xs:annotation>
        <xs:documentation>Identifies the class of filename</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.filename.path.attribute">
    <xs:attribute name="path" use="required">
      <xs:annotation>
        <xs:documentation>Specifies the path of the filename</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.filename.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.filename.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="path">
      <xs:annotation>
        <xs:documentation>Specifies the path of the filename</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="class" type="db:db.filename.class.enumeration">
      <xs:annotation>
        <xs:documentation>Identifies the class of filename</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="filename" substitutionGroup="db:db.os.inlines">
    <xs:annotation>
      <xs:documentation>The name of a file</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.filename.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.command.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.command.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="command" substitutionGroup="db:db.os.inlines">
    <xs:annotation>
      <xs:documentation>The name of an executable program or other software command</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.command.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.computeroutput.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.computeroutput.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="computeroutput" substitutionGroup="db:db.os.inlines">
    <xs:annotation>
      <xs:documentation>Data, generally text, displayed or presented by a computer</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.computeroutput.inlines"/>
      <xs:attributeGroup ref="db:db.computeroutput.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.userinput.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.userinput.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="userinput" substitutionGroup="db:db.os.inlines">
    <xs:annotation>
      <xs:documentation>Data entered by the user</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.userinput.inlines"/>
      <xs:attributeGroup ref="db:db.userinput.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.cmdsynopsis.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.cmdsynopsis.sepchar.attribute">
    <xs:attribute name="sepchar" use="required">
      <xs:annotation>
        <xs:documentation>Specifies the character that should separate the command and its top-level arguments</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.cmdsynopsis.cmdlength.attribute">
    <xs:attribute name="cmdlength" use="required">
      <xs:annotation>
        <xs:documentation>Indicates the displayed length of the command; this information may be used to intelligently indent command synopses which extend beyond one line</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.cmdsynopsis.label.attribute">
    <xs:attributeGroup ref="db:db.label.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.cmdsynopsis.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="sepchar">
      <xs:annotation>
        <xs:documentation>Specifies the character that should separate the command and its top-level arguments</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="cmdlength">
      <xs:annotation>
        <xs:documentation>Indicates the displayed length of the command; this information may be used to intelligently indent command synopses which extend beyond one line</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="label">
      <xs:annotation>
        <xs:documentation>Specifies an identifying string for presentation purposes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.cmdsynopsis.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.forbidden"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="cmdsynopsis" substitutionGroup="db:db.synopsis.blocks">
    <xs:annotation>
      <xs:documentation>A syntax summary for a software command</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.cmdsynopsis.info"/>
        <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 minOccurs="0" maxOccurs="unbounded" ref="db:synopfragment"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.cmdsynopsis.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:simpleType name="db.rep.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="norepeat">
        <xs:annotation>
          <xs:documentation>Can not be repeated.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="repeat">
        <xs:annotation>
          <xs:documentation>Can be repeated.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.rep.attribute">
    <xs:attribute name="rep" use="required" type="db:db.rep.enumeration">
      <xs:annotation>
        <xs:documentation>Indicates whether or not repetition is possible.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:simpleType name="db.choice.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="opt">
        <xs:annotation>
          <xs:documentation>Formatted to indicate that it is optional.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="plain">
        <xs:annotation>
          <xs:documentation>Formatted without indication.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="req">
        <xs:annotation>
          <xs:documentation>Formatted to indicate that it is required.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.choice.opt.attribute">
    <xs:attribute name="choice" use="required" type="db:db.choice.enumeration">
      <xs:annotation>
        <xs:documentation>Indicates optionality.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.choice.req.attribute">
    <xs:attribute name="choice" use="required" type="db:db.choice.enumeration">
      <xs:annotation>
        <xs:documentation>Indicates optionality.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.arg.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.arg.rep.attribute">
    <xs:attributeGroup ref="db:db.rep.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.arg.choice.attribute">
    <xs:attributeGroup ref="db:db.choice.opt.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.arg.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="rep" type="db:db.rep.enumeration">
      <xs:annotation>
        <xs:documentation>Indicates whether or not repetition is possible.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="choice" type="db:db.choice.enumeration">
      <xs:annotation>
        <xs:documentation>Indicates optionality.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="arg">
    <xs:annotation>
      <xs:documentation>An argument in a CmdSynopsis</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:group ref="db: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:attributeGroup ref="db:db.arg.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.group.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.group.rep.attribute">
    <xs:attributeGroup ref="db:db.rep.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.group.choice.attribute">
    <xs:attributeGroup ref="db:db.choice.opt.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.group.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="rep" type="db:db.rep.enumeration">
      <xs:annotation>
        <xs:documentation>Indicates whether or not repetition is possible.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="choice" type="db:db.choice.enumeration">
      <xs:annotation>
        <xs:documentation>Indicates optionality.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="group">
    <xs:annotation>
      <xs:documentation>A group of elements in a CmdSynopsis</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:choice 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:attributeGroup ref="db:db.group.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.sbr.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.sbr.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
  </xs:attributeGroup>
  <xs:element name="sbr">
    <xs:annotation>
      <xs:documentation>An explicit line break in a command synopsis</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attributeGroup ref="db:db.sbr.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.synopfragment.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.synopfragment.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="synopfragment">
    <xs:annotation>
      <xs:documentation>A portion of a CmdSynopsis broken out from the main body of the synopsis</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:choice maxOccurs="unbounded">
        <xs:element ref="db:arg"/>
        <xs:element ref="db:group"/>
      </xs:choice>
      <xs:attributeGroup ref="db:db.synopfragment.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.synopfragmentref.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.synopfragmentref.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.linkend.attribute"/>
  </xs:attributeGroup>
  <xs:element name="synopfragmentref">
    <xs:annotation>
      <xs:documentation>A reference to a fragment of a command synopsis</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:attributeGroup ref="db:db.synopfragmentref.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:group name="db.programming.inlines">
    <xs:choice>
      <xs:element ref="db:function"/>
      <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:element ref="db:db.oo.inlines"/>
    </xs:choice>
  </xs:group>
  <xs:element name="db.oo.inlines" abstract="true"/>
  <xs:element name="db.synopsis.blocks" abstract="true"/>
  <xs:attributeGroup name="db.synopsis.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.synopsis.label.attribute">
    <xs:attributeGroup ref="db:db.label.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.synopsis.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attributeGroup ref="db:db.verbatim.attributes"/>
    <xs:attribute name="label">
      <xs:annotation>
        <xs:documentation>Specifies an identifying string for presentation purposes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="synopsis" substitutionGroup="db:db.verbatim.blocks">
    <xs:annotation>
      <xs:documentation>A general-purpose element for representing the syntax of commands or functions</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="db:db.verbatim.contentmodel">
          <xs:attributeGroup ref="db:db.synopsis.attlist"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.funcsynopsis.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.funcsynopsis.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="language">
      <xs:annotation>
        <xs:documentation>Identifies the language (i.e. programming language) of the content.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="db.funcsynopsis.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.forbidden"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="funcsynopsis" substitutionGroup="db:db.synopsis.blocks">
    <xs:annotation>
      <xs:documentation>The syntax summary for a function definition</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.funcsynopsis.info"/>
        <xs:choice maxOccurs="unbounded">
          <xs:element ref="db:funcsynopsisinfo"/>
          <xs:element ref="db:funcprototype"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.funcsynopsis.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.funcsynopsisinfo.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.funcsynopsisinfo.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attributeGroup ref="db:db.verbatim.attributes"/>
  </xs:attributeGroup>
  <xs:element name="funcsynopsisinfo">
    <xs:annotation>
      <xs:documentation>Information supplementing the FuncDefs of a FuncSynopsis</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="db:db.verbatim.contentmodel">
          <xs:attributeGroup ref="db:db.funcsynopsisinfo.attlist"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.funcprototype.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.funcprototype.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="funcprototype">
    <xs:annotation>
      <xs:documentation>The prototype of a function</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:modifier"/>
        <xs:element ref="db:funcdef"/>
        <xs:choice>
          <xs:element ref="db:void"/>
          <xs:element ref="db:varargs"/>
          <xs:sequence>
            <xs:element maxOccurs="unbounded" ref="db:paramdef"/>
            <xs:element minOccurs="0" ref="db:varargs"/>
          </xs:sequence>
        </xs:choice>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:modifier"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.funcprototype.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.funcdef.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.funcdef.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="funcdef">
    <xs:annotation>
      <xs:documentation>A function (subroutine) name and its return type</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:group ref="db:db._text"/>
        <xs:element ref="db:type"/>
        <xs:element ref="db:function"/>
      </xs:choice>
      <xs:attributeGroup ref="db:db.funcdef.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.function.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.function.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="function">
    <xs:annotation>
      <xs:documentation>The name of a function or subroutine, as in a programming language</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.function.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.void.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.void.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="void">
    <xs:annotation>
      <xs:documentation>An empty element in a function synopsis indicating that the function in question takes no arguments</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attributeGroup ref="db:db.void.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.varargs.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.varargs.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="varargs">
    <xs:annotation>
      <xs:documentation>An empty element in a function synopsis indicating a variable number of arguments</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attributeGroup ref="db:db.varargs.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.paramdef.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:simpleType name="db.paramdef.choice.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="opt">
        <xs:annotation>
          <xs:documentation>Formatted to indicate that it is optional.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="req">
        <xs:annotation>
          <xs:documentation>Formatted to indicate that it is required.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.paramdef.choice.attribute">
    <xs:attribute name="choice" use="required" type="db:db.paramdef.choice.enumeration">
      <xs:annotation>
        <xs:documentation>Indicates optionality.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.paramdef.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="choice" type="db:db.paramdef.choice.enumeration">
      <xs:annotation>
        <xs:documentation>Indicates optionality.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="paramdef">
    <xs:annotation>
      <xs:documentation>Information about a function parameter in a programming language</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:group ref="db: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:attributeGroup ref="db:db.paramdef.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.funcparams.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.funcparams.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="funcparams">
    <xs:annotation>
      <xs:documentation>Parameters for a function referenced through a function pointer in a synopsis</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.funcparams.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.classsynopsis.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:simpleType name="db.classsynopsis.class.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="class">
        <xs:annotation>
          <xs:documentation>This is the synopsis of a class</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="interface">
        <xs:annotation>
          <xs:documentation>This is the synopsis of an interface</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.classsynopsis.class.attribute">
    <xs:attribute name="class" use="required" type="db:db.classsynopsis.class.enumeration">
      <xs:annotation>
        <xs:documentation>Specifies the nature of the synopsis</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.classsynopsis.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="language">
      <xs:annotation>
        <xs:documentation>Identifies the language (i.e. programming language) of the content.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="class" type="db:db.classsynopsis.class.enumeration">
      <xs:annotation>
        <xs:documentation>Specifies the nature of the synopsis</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="classsynopsis" substitutionGroup="db:db.synopsis.blocks">
    <xs:annotation>
      <xs:documentation>The syntax summary for a class definition</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="db: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:attributeGroup ref="db:db.classsynopsis.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.classsynopsisinfo.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.classsynopsisinfo.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attributeGroup ref="db:db.verbatim.attributes"/>
  </xs:attributeGroup>
  <xs:element name="classsynopsisinfo">
    <xs:annotation>
      <xs:documentation>Information supplementing the contents of a ClassSynopsis</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="db:db.verbatim.contentmodel">
          <xs:attributeGroup ref="db:db.classsynopsisinfo.attlist"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.ooclass.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.ooclass.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="ooclass" substitutionGroup="db:db.oo.inlines">
    <xs:annotation>
      <xs:documentation>A class in an object-oriented programming language</xs:documentation>
    </xs:annotation>
    <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:attributeGroup ref="db:db.ooclass.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.oointerface.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.oointerface.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="oointerface" substitutionGroup="db:db.oo.inlines">
    <xs:annotation>
      <xs:documentation>An interface in an object-oriented programming language</xs:documentation>
    </xs:annotation>
    <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:attributeGroup ref="db:db.oointerface.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.ooexception.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.ooexception.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="ooexception" substitutionGroup="db:db.oo.inlines">
    <xs:annotation>
      <xs:documentation>An exception in an object-oriented programming language</xs:documentation>
    </xs:annotation>
    <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:attributeGroup ref="db:db.ooexception.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.modifier.xml.space.attribute">
    <xs:attributeGroup ref="xml:space1"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.modifier.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.modifier.attlist">
    <xs:attributeGroup ref="xml:space1"/>
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="modifier">
    <xs:annotation>
      <xs:documentation>Modifiers in a synopsis</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.modifier.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.interfacename.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.interfacename.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="interfacename">
    <xs:annotation>
      <xs:documentation>The name of an interface</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.interfacename.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.exceptionname.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.exceptionname.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="exceptionname">
    <xs:annotation>
      <xs:documentation>The name of an exception</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.exceptionname.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.fieldsynopsis.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.fieldsynopsis.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="language">
      <xs:annotation>
        <xs:documentation>Identifies the language (i.e. programming language) of the content.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="fieldsynopsis" substitutionGroup="db:db.synopsis.blocks">
    <xs:annotation>
      <xs:documentation>The name of a field in a class definition</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:modifier"/>
        <xs:element minOccurs="0" ref="db:type"/>
        <xs:element ref="db:varname"/>
        <xs:element minOccurs="0" ref="db:initializer"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.fieldsynopsis.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.initializer.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.initializer.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="initializer">
    <xs:annotation>
      <xs:documentation>The initializer for a FieldSynopsis</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.initializer.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.constructorsynopsis.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.constructorsynopsis.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="language">
      <xs:annotation>
        <xs:documentation>Identifies the language (i.e. programming language) of the content.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="constructorsynopsis" substitutionGroup="db:db.synopsis.blocks">
    <xs:annotation>
      <xs:documentation>A syntax summary for a constructor</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:modifier"/>
        <xs:element minOccurs="0" ref="db:methodname"/>
        <xs:choice>
          <xs:element maxOccurs="unbounded" ref="db:methodparam"/>
          <xs:element minOccurs="0" ref="db:void"/>
        </xs:choice>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:exceptionname"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.constructorsynopsis.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.destructorsynopsis.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.destructorsynopsis.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="language">
      <xs:annotation>
        <xs:documentation>Identifies the language (i.e. programming language) of the content.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="destructorsynopsis" substitutionGroup="db:db.synopsis.blocks">
    <xs:annotation>
      <xs:documentation>A syntax summary for a destructor</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:modifier"/>
        <xs:element minOccurs="0" ref="db:methodname"/>
        <xs:choice>
          <xs:element maxOccurs="unbounded" ref="db:methodparam"/>
          <xs:element minOccurs="0" ref="db:void"/>
        </xs:choice>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:exceptionname"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.destructorsynopsis.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.methodsynopsis.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.methodsynopsis.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="language">
      <xs:annotation>
        <xs:documentation>Identifies the language (i.e. programming language) of the content.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="methodsynopsis" substitutionGroup="db:db.synopsis.blocks">
    <xs:annotation>
      <xs:documentation>A syntax summary for a method</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:modifier"/>
        <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 maxOccurs="unbounded" ref="db:methodparam"/>
          <xs:element ref="db:void"/>
        </xs:choice>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:exceptionname"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:modifier"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.methodsynopsis.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.methodname.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.methodname.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="methodname">
    <xs:annotation>
      <xs:documentation>The name of a method</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.methodname.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.methodparam.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.methodparam.rep.attribute">
    <xs:attributeGroup ref="db:db.rep.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.methodparam.choice.attribute">
    <xs:attributeGroup ref="db:db.choice.req.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.methodparam.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="rep" type="db:db.rep.enumeration">
      <xs:annotation>
        <xs:documentation>Indicates whether or not repetition is possible.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="choice" type="db:db.choice.enumeration">
      <xs:annotation>
        <xs:documentation>Indicates optionality.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="methodparam">
    <xs:annotation>
      <xs:documentation>Parameters to a method</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:modifier"/>
        <xs:element minOccurs="0" ref="db:type"/>
        <xs:choice>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:modifier"/>
            <xs:element ref="db:parameter"/>
            <xs:element minOccurs="0" ref="db:initializer"/>
          </xs:sequence>
          <xs:element ref="db:funcparams"/>
        </xs:choice>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:modifier"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.methodparam.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.varname.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.varname.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="varname">
    <xs:annotation>
      <xs:documentation>The name of a variable</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.varname.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.returnvalue.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.returnvalue.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="returnvalue">
    <xs:annotation>
      <xs:documentation>The value returned by a function</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.returnvalue.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.type.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.type.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="type">
    <xs:annotation>
      <xs:documentation>The classification of a value</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.type.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.classname.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.classname.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="classname">
    <xs:annotation>
      <xs:documentation>The name of a class, in the object-oriented programming sense</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.classname.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.programlisting.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.programlisting.width.attribute">
    <xs:attributeGroup ref="db:db.width.characters.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.programlisting.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attributeGroup ref="db:db.verbatim.attributes"/>
    <xs:attribute name="width" type="xs:nonNegativeInteger">
      <xs:annotation>
        <xs:documentation>Specifies the width (in characters) of the element</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="programlisting" substitutionGroup="db:db.verbatim.blocks">
    <xs:annotation>
      <xs:documentation>A literal listing of all or part of a program</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="db:db.verbatim.contentmodel">
          <xs:attributeGroup ref="db:db.programlisting.attlist"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="db.admonition.blocks" abstract="true"/>
  <xs:complexType name="db.admonition.contentmodel">
    <xs:sequence>
      <xs:group ref="db:db._info.title.only"/>
      <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
    </xs:sequence>
  </xs:complexType>
  <xs:attributeGroup name="db.caution.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.caution.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="caution" substitutionGroup="db:db.admonition.blocks">
    <xs:annotation>
      <xs:documentation>A note of caution</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="db:db.admonition.contentmodel">
          <xs:attributeGroup ref="db:db.caution.attlist"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.important.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.important.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="important" substitutionGroup="db:db.admonition.blocks">
    <xs:annotation>
      <xs:documentation>An admonition set off from the text</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="db:db.admonition.contentmodel">
          <xs:attributeGroup ref="db:db.important.attlist"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.note.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.note.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="note" substitutionGroup="db:db.admonition.blocks">
    <xs:annotation>
      <xs:documentation>A message set off from the text</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="db:db.admonition.contentmodel">
          <xs:attributeGroup ref="db:db.note.attlist"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.tip.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.tip.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="tip" substitutionGroup="db:db.admonition.blocks">
    <xs:annotation>
      <xs:documentation>A suggestion to the user, set off from the text</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="db:db.admonition.contentmodel">
          <xs:attributeGroup ref="db:db.tip.attlist"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.warning.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.warning.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="warning" substitutionGroup="db:db.admonition.blocks">
    <xs:annotation>
      <xs:documentation>An admonition set off from the text</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="db:db.admonition.contentmodel">
          <xs:attributeGroup ref="db:db.warning.attlist"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="db.error.inlines" abstract="true"/>
  <xs:attributeGroup name="db.errorcode.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.errorcode.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="errorcode" substitutionGroup="db:db.error.inlines">
    <xs:annotation>
      <xs:documentation>An error code</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.errorcode.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.errorname.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.errorname.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="errorname" substitutionGroup="db:db.error.inlines">
    <xs:annotation>
      <xs:documentation>An error name</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.errorname.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.errortext.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.errortext.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="errortext" substitutionGroup="db:db.error.inlines">
    <xs:annotation>
      <xs:documentation>An error message.</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.errortext.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.errortype.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.errortype.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="errortype" substitutionGroup="db:db.error.inlines">
    <xs:annotation>
      <xs:documentation>The classification of an error message</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.errortype.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:group name="db.systemitem.inlines">
    <xs:choice>
      <xs:group ref="db:db._text"/>
      <xs:element ref="db:co"/>
    </xs:choice>
  </xs:group>
  <xs:simpleType name="db.systemitem.class.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="daemon">
        <xs:annotation>
          <xs:documentation>A daemon or other system process (syslogd)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="domainname">
        <xs:annotation>
          <xs:documentation>A domain name (example.com)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="etheraddress">
        <xs:annotation>
          <xs:documentation>An ethernet address (00:05:4E:49:FD:8E)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="event">
        <xs:annotation>
          <xs:documentation>An event of some sort (SIGHUP)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="eventhandler">
        <xs:annotation>
          <xs:documentation>An event handler of some sort (hangup)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="filesystem">
        <xs:annotation>
          <xs:documentation>A filesystem (ext3)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="fqdomainname">
        <xs:annotation>
          <xs:documentation>A fully qualified domain name (my.example.com)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="groupname">
        <xs:annotation>
          <xs:documentation>A group name (wheel)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="ipaddress">
        <xs:annotation>
          <xs:documentation>An IP address (127.0.0.1)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="library">
        <xs:annotation>
          <xs:documentation>A library (libncurses)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="macro">
        <xs:annotation>
          <xs:documentation>A macro</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="netmask">
        <xs:annotation>
          <xs:documentation>A netmask (255.255.255.192)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="newsgroup">
        <xs:annotation>
          <xs:documentation>A newsgroup (comp.text.xml)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="osname">
        <xs:annotation>
          <xs:documentation>An operating system name (Hurd)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="process">
        <xs:annotation>
          <xs:documentation>A process (gnome-cups-icon)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="protocol">
        <xs:annotation>
          <xs:documentation>A protocol (ftp)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="resource">
        <xs:annotation>
          <xs:documentation>A resource</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="server">
        <xs:annotation>
          <xs:documentation>A server (mail.example.com)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="service">
        <xs:annotation>
          <xs:documentation>A service (ppp)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="systemname">
        <xs:annotation>
          <xs:documentation>A system name (hephaistos)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="username">
        <xs:annotation>
          <xs:documentation>A user name (ndw)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.systemitem.class.attribute">
    <xs:attribute name="class" use="required" type="db:db.systemitem.class.enumeration">
      <xs:annotation>
        <xs:documentation>Identifies the nature of the system item</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.systemitem.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.systemitem.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="class" type="db:db.systemitem.class.enumeration">
      <xs:annotation>
        <xs:documentation>Identifies the nature of the system item</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="systemitem" substitutionGroup="db:db.technical.inlines">
    <xs:annotation>
      <xs:documentation>A system-related item or term</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.systemitem.inlines"/>
      <xs:attributeGroup ref="db:db.systemitem.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.option.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.option.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="option" substitutionGroup="db:db.technical.inlines">
    <xs:annotation>
      <xs:documentation>An option for a software command</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.option.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.optional.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.optional.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="optional" substitutionGroup="db:db.technical.inlines">
    <xs:annotation>
      <xs:documentation>Optional information</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.optional.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="db.property.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.property.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="property" substitutionGroup="db:db.technical.inlines">
    <xs:annotation>
      <xs:documentation>A unit of data associated with some part of a computer system</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.property.attlist"/>
    </xs:complexType>
  </xs:element>
</xs:schema>
