<?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:xlink="http://www.w3.org/1999/xlink" xmlns:db="http://docbook.org/ns/docbook">
  <xs:import namespace="http://www.w3.org/1999/xlink" schemaLocation="xlink.xsd"/>
  <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
  <!--  DocBook V5.0b3 -->
  <!-- See http://docbook.org/ns/docbook -->
  <!--
    This file is part of DocBook V5.0b3
    
    Copyright 1992-2005 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,v 1.6 2006/02/01 15:04:12 nwalsh Exp $
    
    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:attributeGroup name="db._any.attribute">
    <xs:anyAttribute processContents="skip"/>
  </xs:attributeGroup>
  <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.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="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.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:attributeGroup ref="xlink:href"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.xlink.type.attribute">
    <xs:attributeGroup ref="xlink:type"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.xlink.role.attribute">
    <xs:attributeGroup ref="xlink:role"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.xlink.arcrole.attribute">
    <xs:attributeGroup ref="xlink:arcrole"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.xlink.title.attribute">
    <xs:attributeGroup 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:attributeGroup ref="xlink:show"/>
  </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:attributeGroup ref="xlink:actuate"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.href.attribute">
    <xs:attributeGroup ref="db:db.xlink.href.attribute"/>
    <xs:attributeGroup ref="xlink:type"/>
    <xs:attributeGroup ref="xlink:role"/>
    <xs:attributeGroup ref="xlink:arcrole"/>
    <xs:attributeGroup ref="db:db.xlink.title.attribute"/>
    <xs:attributeGroup ref="xlink:show"/>
    <xs:attributeGroup 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: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.attributes">
    <xs:attribute ref="xml:id"/>
    <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:attribute name="annotations"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.common.idreq.attributes">
    <xs:attributeGroup ref="db:db.xml.id.attribute"/>
    <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:attribute name="annotations"/>
  </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:attributeGroup ref="xlink:href"/>
    <xs:attributeGroup ref="xlink:type"/>
    <xs:attributeGroup ref="xlink:role"/>
    <xs:attributeGroup ref="xlink:arcrole"/>
    <xs:attributeGroup ref="db:db.xlink.title.attribute"/>
    <xs:attributeGroup ref="xlink:show"/>
    <xs:attributeGroup 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:attributeGroup ref="xlink:href"/>
    <xs:attributeGroup ref="xlink:type"/>
    <xs:attributeGroup ref="xlink:role"/>
    <xs:attributeGroup ref="xlink:arcrole"/>
    <xs:attributeGroup ref="db:db.xlink.title.attribute"/>
    <xs:attributeGroup ref="xlink:show"/>
    <xs:attributeGroup 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:attribute ref="xml:space" use="required"/>
  </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:attribute ref="xml:space"/>
  </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: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="pubnumber">
        <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>Provides an identifier for elements with the class 'other'</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.biblio.class-other.attributes">
    <xs:attribute name="class" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="other"/>
        </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:restriction>
          </xs:simpleType>
        </xs:union>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="otherclass" type="xs:NMTOKEN">
      <xs:annotation>
        <xs:documentation>Provides an identifier for elements with the class 'other'</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 minOccurs="0" ref="db:db._title.req"/>
        <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:element 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:element name="db.domain.inlines" abstract="true"/>
  <xs:element name="db.technical.inlines" abstract="true" substitutionGroup="db:db.domain.inlines"/>
  <xs:element name="db.error.inlines" abstract="true" substitutionGroup="db:db.domain.inlines"/>
  <xs:element name="db.oo.inlines" abstract="true" substitutionGroup="db:db.programming.inlines"/>
  <xs:element name="db.programming.inlines" abstract="true" substitutionGroup="db:db.domain.inlines"/>
  <xs:element name="db.product.inlines" abstract="true"/>
  <xs:element name="db.os.inlines" abstract="true" substitutionGroup="db:db.domain.inlines"/>
  <xs:element name="db.markup.inlines" abstract="true" substitutionGroup="db:db.domain.inlines"/>
  <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:element name="db.gui.inlines" abstract="true" substitutionGroup="db:db.domain.inlines"/>
  <xs:element name="db.keyboard.inlines" abstract="true" substitutionGroup="db:db.domain.inlines"/>
  <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:element ref="db:db.admonition.blocks"/>
        <xs:group ref="db:db.formal.blocks"/>
        <xs:group ref="db:db.informal.blocks"/>
        <xs:group 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:db.synopsis.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.math.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:element ref="db:example"/>
      <xs:element ref="db:figure"/>
      <xs:group ref="db:db.table"/>
    </xs:choice>
  </xs:group>
  <xs:group name="db.informal.blocks">
    <xs:choice>
      <xs:element ref="db:informalexample"/>
      <xs:element ref="db:informalfigure"/>
      <xs:group ref="db:db.informaltable"/>
    </xs:choice>
  </xs:group>
  <xs:group name="db.publishing.blocks">
    <xs:choice>
      <xs:element ref="db:sidebar"/>
      <xs:element ref="db:blockquote"/>
      <xs:element ref="db:address"/>
      <xs:element ref="db:epigraph"/>
    </xs:choice>
  </xs:group>
  <xs: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:element name="db.admonition.blocks" abstract="true"/>
  <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:element name="db.synopsis.blocks" abstract="true"/>
  <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: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:orgname"/>
        <xs:element ref="db:othercredit"/>
        <xs:element ref="db:pagenums"/>
        <xs:element ref="db:printhistory"/>
        <xs:element ref="db:productname"/>
        <xs:element ref="db:productnumber"/>
        <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: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:group>
  <xs:group name="db.bibliographic.elements">
    <xs:choice>
      <xs:group ref="db:db.info.elements"/>
      <xs:element ref="db:abbrev"/>
      <xs:element ref="db:citerefentry"/>
      <xs:element ref="db:citetitle"/>
      <xs:element ref="db:citebiblioid"/>
      <xs:element ref="db:personname"/>
      <xs:element ref="db:subtitle"/>
      <xs:element ref="db:title"/>
    </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="db: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="db: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="db: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="db: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:sequence>
            <xs:group ref="db:db._title"/>
            <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.info.elements"/>
          </xs:sequence>
          <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="db: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:sequence>
            <xs:group ref="db:db._title.req"/>
            <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.info.elements"/>
          </xs:sequence>
          <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="db: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:sequence>
            <xs:group ref="db:db._title.only"/>
            <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.info.elements"/>
          </xs:sequence>
          <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="db: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:sequence>
            <xs:group ref="db:db._title.onlyreq"/>
            <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.info.elements"/>
          </xs:sequence>
          <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="db: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:attributeGroup>
  <xs:attributeGroup name="db.subjectset.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="db:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="scheme" type="xs:NMTOKEN"/>
  </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:attributeGroup>
  <xs:attributeGroup name="db.subject.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="db:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="weight"/>
  </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="db: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="db: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="db: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="db: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="db: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="db: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="db: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="db: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">
    <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="db: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="db: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="db: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">
    <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:choice maxOccurs="unbounded">
          <xs:group ref="db:db.para.blocks"/>
          <xs:element ref="db:literallayout"/>
        </xs:choice>
      </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="db: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: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:attributeGroup name="db.bridgehead.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:simpleType name="db.bridgehead.renderas.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="other"/>
      <xs:enumeration value="sect1"/>
      <xs:enumeration value="sect2"/>
      <xs:enumeration value="sect3"/>
      <xs:enumeration value="sect4"/>
      <xs:enumeration value="sect5"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.bridgehead.renderas.attribute">
    <xs:attribute name="renderas" use="required" type="db:db.bridgehead.renderas.enumeration"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.bridgehead.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="db:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="renderas" type="db:db.bridgehead.renderas.enumeration"/>
  </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="db: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="db: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">
    <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"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.footnote.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="db:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="label"/>
  </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="db: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="db: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="db: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: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="db: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="db: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="db: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="db: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="db: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: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"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.itemizedlist.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="db: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"/>
  </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:enumeration value="restarts"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.orderedlist.continuation.attribute">
    <xs:attribute name="continuation" use="required" type="db:db.orderedlist.continuation.enumeration"/>
  </xs:attributeGroup>
  <xs:simpleType name="db.orderedlist.inheritnum.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="ignore"/>
      <xs:enumeration value="inherit"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.orderedlist.inheritnum.attribute">
    <xs:attribute name="inheritnum" use="required" type="db:db.orderedlist.inheritnum.enumeration"/>
  </xs:attributeGroup>
  <xs:simpleType name="db.orderedlist.numeration.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="arabic"/>
      <xs:enumeration value="upperalpha"/>
      <xs:enumeration value="loweralpha"/>
      <xs:enumeration value="upperroman"/>
      <xs:enumeration value="lowerroman"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.orderedlist.numeration.attribute">
    <xs:attribute name="numeration" use="required" type="db:db.orderedlist.numeration.enumeration"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.orderedlist.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="db: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:attribute name="inheritnum" type="db:db.orderedlist.inheritnum.enumeration"/>
    <xs:attribute name="numeration" type="db:db.orderedlist.numeration.enumeration"/>
  </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"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.listitem.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="db:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="override"/>
  </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="db: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="db: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="db: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="db: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:attributeGroup>
  <xs:attributeGroup name="db.simplelist.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="db: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: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="db: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:attributeGroup>
  <xs:attributeGroup name="db.variablelist.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="db: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: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="db: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="db: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:attribute name="label" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.example.width.attribute">
    <xs:attribute name="width" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.example.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="db:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="label"/>
    <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"/>
  </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:attribute name="width" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.informalexample.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="db: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"/>
  </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.programlisting.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.programlisting.width.attribute">
    <xs:attribute name="width" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.programlisting.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="db:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attributeGroup ref="db:db.verbatim.attributes"/>
    <xs:attribute name="width"/>
  </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: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:enumeration value="normal"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.literallayout.class.attribute">
    <xs:attribute name="class" use="required" type="db:db.literallayout.class.enumeration"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.literallayout.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="db: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: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:attribute name="width" use="required">
      <xs:annotation>
        <xs:documentation>Specifies the width (in characters) of the longest line (formatters may use this value to determine scaling or rotation).</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.screen.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="db:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attributeGroup ref="db:db.verbatim.attributes"/>
    <xs:attribute name="width">
      <xs:annotation>
        <xs:documentation>Specifies the width (in characters) of the longest line (formatters may use this value to determine scaling or rotation).</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="db: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:attribute name="label" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.figure.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="db:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="label"/>
    <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:attribute name="label" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.informalfigure.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="db:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="label"/>
    <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="db: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="db: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="db: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="db: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:element ref="db:imagedata"/>
      <xs:group maxOccurs="unbounded" ref="db:db._any.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="db: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="db: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: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:attributeGroup>
  <xs:attributeGroup name="db.videodata.width.attribute">
    <xs:attribute name="width" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.videodata.contentwidth.attribute">
    <xs:attribute name="contentwidth" use="required"/>
  </xs:attributeGroup>
  <xs:simpleType name="db.videodata.scalefit.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="0"/>
      <xs:enumeration value="1"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.videodata.scalefit.attribute">
    <xs:attribute name="scalefit" use="required" type="db:db.videodata.scalefit.enumeration"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.videodata.scale.attribute">
    <xs:attribute name="scale" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.videodata.depth.attribute">
    <xs:attribute name="depth" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.videodata.contentdepth.attribute">
    <xs:attribute name="contentdepth" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.videodata.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="db:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.data.attributes"/>
    <xs:attribute name="align" type="db:db.videodata.align.enumeration"/>
    <xs:attribute name="valign" type="db:db.videodata.valign.enumeration"/>
    <xs:attribute name="width"/>
    <xs:attribute name="contentwidth"/>
    <xs:attribute name="scalefit" type="db:db.videodata.scalefit.enumeration"/>
    <xs:attribute name="scale"/>
    <xs:attribute name="depth"/>
    <xs:attribute name="contentdepth"/>
  </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="db: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: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:attributeGroup>
  <xs:attributeGroup name="db.imagedata.width.attribute">
    <xs:attribute name="width" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.imagedata.contentwidth.attribute">
    <xs:attribute name="contentwidth" use="required"/>
  </xs:attributeGroup>
  <xs:simpleType name="db.imagedata.scalefit.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="0"/>
      <xs:enumeration value="1"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.imagedata.scalefit.attribute">
    <xs:attribute name="scalefit" use="required" type="db:db.imagedata.scalefit.enumeration"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.imagedata.scale.attribute">
    <xs:attribute name="scale" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.imagedata.depth.attribute">
    <xs:attribute name="depth" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.imagedata.contentdepth.attribute">
    <xs:attribute name="contentdepth" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.imagedata.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="db:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.data.attributes"/>
    <xs:attribute name="align" type="db:db.imagedata.align.enumeration"/>
    <xs:attribute name="valign" type="db:db.imagedata.valign.enumeration"/>
    <xs:attribute name="width"/>
    <xs:attribute name="contentwidth"/>
    <xs:attribute name="scalefit" type="db:db.imagedata.scalefit.enumeration"/>
    <xs:attribute name="scale"/>
    <xs:attribute name="depth"/>
    <xs:attribute name="contentdepth"/>
  </xs:attributeGroup>
  <xs:complexType name="db.imagedata.info">
    <xs:group ref="db:db._info.title.forbidden"/>
  </xs:complexType>
  <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: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:attributeGroup>
  <xs:attributeGroup name="db.textdata.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="db:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.data.attributes"/>
    <xs:attribute name="encoding"/>
  </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="db: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.synopsis.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.synopsis.label.attribute">
    <xs:attribute name="label" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.synopsis.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="db:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attributeGroup ref="db:db.verbatim.attributes"/>
    <xs:attribute name="label"/>
  </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.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:attributeGroup>
  <xs:attributeGroup name="db.cmdsynopsis.cmdlength.attribute">
    <xs:attribute name="cmdlength" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.cmdsynopsis.label.attribute">
    <xs:attribute name="label" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.cmdsynopsis.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="db:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="sepchar"/>
    <xs:attribute name="cmdlength"/>
    <xs:attribute name="label"/>
  </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.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="db: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.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="db: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="db: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="db: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="db: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: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="db: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="db: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="db: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="db: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.void.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.void.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="db: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="db: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="db: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"/>
  