<?xml version="1.0" encoding="UTF-8"?>
<!--
  This file is part of DocBook V5.0
  
  Copyright 1992-2008 HaL Computer Systems, Inc.,
  O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
  Corporation, Norman Walsh, Sun Microsystems, Inc., and the
  Organization for the Advancement of Structured Information
  Standards (OASIS).
  
  Release: $Id: pool.rnc 8931 2010-10-20 13:29:20Z nwalsh $
  
  Permission to use, copy, modify and distribute the DocBook schema
  and its accompanying documentation for any purpose and without fee
  is hereby granted in perpetuity, provided that the above copyright
  notice and this paragraph appear in all copies. The copyright
  holders make no representation about the suitability of the schema
  for any purpose. It is provided "as is" without expressed or implied
  warranty.
  
  If you modify the DocBook schema in any way, label your schema as a
  variant of DocBook. See the reference documentation
  (http://docbook.org/tdg5/en/html/ch05.html#s-notdocbook)
  for more information.
  
  Please direct all questions, bug reports, or suggestions for changes
  to the docbook@lists.oasis-open.org mailing list. For more
  information, see http://www.oasis-open.org/docbook/.
  
  ======================================================================
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://docbook.org/ns/docbook" xmlns:dbs="http://docbook.org/ns/docbook-slides" xmlns:db="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
  <xs:import namespace="http://docbook.org/ns/docbook-slides" schemaLocation="slides.xsd"/>
  <xs:import namespace="http://www.w3.org/1999/xlink" schemaLocation="xlink.xsd"/>
  <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
  <!-- ====================================================================== -->
  <!--
    The start tokens are somewhat arbitrary. To resolve RFE #1899655, the
    TC concluded that anything with an info element was a reasonable start
    element. That's mostly what has been done, with a few extra elements
    where the patterns seemed to warrant it. If you need more, just ask.
  -->
  <!-- ====================================================================== -->
  <xs:group name="db._any">
    <xs:sequence>
      <xs:any processContents="skip"/>
    </xs:sequence>
  </xs:group>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.arch.attribute">
    <xs:attribute name="arch" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.audience.attribute">
    <xs:attribute name="audience" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.condition.attribute">
    <xs:attribute name="condition" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.conformance.attribute">
    <xs:attribute name="conformance" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.os.attribute">
    <xs:attribute name="os" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.revision.attribute">
    <xs:attribute name="revision" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.security.attribute">
    <xs:attribute name="security" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.userlevel.attribute">
    <xs:attribute name="userlevel" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.vendor.attribute">
    <xs:attribute name="vendor" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.wordsize.attribute">
    <xs:attribute name="wordsize" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.effectivity.attributes">
    <xs:attribute name="arch"/>
    <xs:attribute name="audience"/>
    <xs:attribute name="condition"/>
    <xs:attribute name="conformance"/>
    <xs:attribute name="os"/>
    <xs:attribute name="revision"/>
    <xs:attribute name="security"/>
    <xs:attribute name="userlevel"/>
    <xs:attribute name="vendor"/>
    <xs:attribute name="wordsize"/>
  </xs:attributeGroup>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.endterm.attribute">
    <xs:attribute name="endterm" use="required" type="xs:IDREF"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.linkend.attribute">
    <xs:attribute name="linkend" use="required" type="xs:IDREF"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.linkends.attribute">
    <xs:attribute name="linkends" use="required" type="xs:IDREFS"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.xlink.href.attribute">
    <xs:attribute ref="xlink:href" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.xlink.type.attribute">
    <xs:attributeGroup ref="xlink:type"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.xlink.role.attribute">
    <xs:attribute ref="xlink:role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.xlink.arcrole.attribute">
    <xs:attribute ref="xlink:arcrole" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.xlink.title.attribute">
    <xs:attribute ref="xlink:title" use="required"/>
  </xs:attributeGroup>
  <xs:simpleType name="db.xlink.show.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="new">
        <xs:annotation>
          <xs:documentation>An application traversing to the ending resource should load it in a new window, frame, pane, or other relevant presentation context.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="replace">
        <xs:annotation>
          <xs:documentation>An application traversing to the ending resource should load the resource in the same window, frame, pane, or other relevant presentation context in which the starting resource was loaded.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="embed">
        <xs:annotation>
          <xs:documentation>An application traversing to the ending resource should load its presentation in place of the presentation of the starting resource.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>The behavior of an application traversing to the ending resource is unconstrained by XLink. The application should look for other markup present in the link to determine the appropriate behavior.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="none">
        <xs:annotation>
          <xs:documentation>The behavior of an application traversing to the ending resource is unconstrained by this specification. No other markup is present to help the application determine the appropriate behavior.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.xlink.show.attribute">
    <xs:attribute ref="xlink:show" use="required"/>
  </xs:attributeGroup>
  <xs:simpleType name="db.xlink.actuate.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="onLoad">
        <xs:annotation>
          <xs:documentation>An application should traverse to the ending resource immediately on loading the starting resource.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="onRequest">
        <xs:annotation>
          <xs:documentation>An application should traverse from the starting resource to the ending resource only on a post-loading event triggered for the purpose of traversal.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>The behavior of an application traversing to the ending resource is unconstrained by this specification. The application should look for other markup present in the link to determine the appropriate behavior.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="none">
        <xs:annotation>
          <xs:documentation>The behavior of an application traversing to the ending resource is unconstrained by this specification. No other markup is present to help the application determine the appropriate behavior.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.xlink.actuate.attribute">
    <xs:attribute ref="xlink:actuate" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.href.attributes">
    <xs:attributeGroup ref="db:db.xlink.href.attribute"/>
    <xs:attributeGroup ref="xlink:type"/>
    <xs:attribute ref="xlink:role"/>
    <xs:attribute ref="xlink:arcrole"/>
    <xs:attribute ref="xlink:title"/>
    <xs:attribute ref="xlink:show"/>
    <xs:attribute ref="xlink:actuate"/>
  </xs:attributeGroup>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.xml.id.attribute">
    <xs:attribute ref="xml:id" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.version.attribute">
    <xs:attribute name="version" use="required"/>
  </xs: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:attributeGroup>
  <xs:attributeGroup name="db.xreflabel.attribute">
    <xs:attribute name="xreflabel" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.xrefstyle.attribute">
    <xs:attribute name="xrefstyle" use="required"/>
  </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: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:attributeGroup>
  <xs:attributeGroup name="db.common.base.attributes">
    <xs:attribute name="version"/>
    <xs:attribute ref="xml:lang"/>
    <xs:attribute ref="xml:base"/>
    <xs:attribute name="remap"/>
    <xs:attribute name="xreflabel"/>
    <xs:attribute name="revisionflag" type="db:db.revisionflag.enumeration"/>
    <xs:attribute name="dir" type="db:db.dir.enumeration"/>
    <xs:attributeGroup ref="db:db.effectivity.attributes"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.common.idreq.attributes">
    <xs:attributeGroup ref="db:db.xml.id.attribute"/>
    <xs:attributeGroup ref="db:db.common.base.attributes"/>
    <xs:attribute name="annotations"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.common.linking.attributes">
    <xs:attribute name="linkend" type="xs:IDREF"/>
    <xs:attribute ref="xlink:href"/>
    <xs:attributeGroup ref="xlink:type"/>
    <xs:attribute ref="xlink:role"/>
    <xs:attribute ref="xlink:arcrole"/>
    <xs:attribute ref="xlink:title"/>
    <xs:attribute ref="xlink:show"/>
    <xs:attribute ref="xlink:actuate"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.common.req.linking.attributes">
    <xs:attribute name="linkend" type="xs:IDREF"/>
    <xs:attribute ref="xlink:href"/>
    <xs:attributeGroup ref="xlink:type"/>
    <xs:attribute ref="xlink:role"/>
    <xs:attribute ref="xlink:arcrole"/>
    <xs:attribute ref="xlink:title"/>
    <xs:attribute ref="xlink:show"/>
    <xs:attribute ref="xlink:actuate"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.common.data.attributes">
    <xs:attribute name="format"/>
    <xs:attribute name="fileref" type="xs:anyURI"/>
    <xs:attribute name="entityref" type="xs:ENTITY"/>
  </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: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:attributeGroup>
  <xs:attributeGroup name="db.verbatim.startinglinenumber.attribute">
    <xs:attribute name="startinglinenumber" use="required" type="xs:integer"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.verbatim.language.attribute">
    <xs:attribute name="language" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.verbatim.xml.space.attribute">
    <xs:attributeGroup ref="xml:space"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.verbatim.attributes">
    <xs:attribute name="continuation" type="db:db.verbatim.continuation.enumeration"/>
    <xs:attribute name="linenumbering" type="db:db.verbatim.linenumbering.enumeration"/>
    <xs:attribute name="startinglinenumber" type="xs:integer"/>
    <xs:attribute name="language"/>
    <xs:attributeGroup ref="xml:space"/>
  </xs:attributeGroup>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.label.attribute">
    <xs:attribute name="label" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.width.characters.attribute">
    <xs:attribute name="width" use="required" type="xs:nonNegativeInteger"/>
  </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: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:attributeGroup>
  <xs:attributeGroup name="db.language.attribute">
    <xs:attribute name="language" use="required"/>
  </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:attributeGroup>
  <xs:attributeGroup name="db.floatstyle.attribute">
    <xs:attribute name="floatstyle" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.width.attribute">
    <xs:attribute name="width" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.depth.attribute">
    <xs:attribute name="depth" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.contentwidth.attribute">
    <xs:attribute name="contentwidth" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.contentdepth.attribute">
    <xs:attribute name="contentdepth" use="required"/>
  </xs:attributeGroup>
  <xs:simpleType name="db.scalefit.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="0">
        <xs:annotation>
          <xs:documentation>False (do not scale-to-fit; anamorphic scaling may occur)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="1">
        <xs:annotation>
          <xs:documentation>True (scale-to-fit; anamorphic scaling is forbidden)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.scale.attribute">
    <xs:attribute name="scale" use="required" type="xs:positiveInteger"/>
  </xs: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 digital object identifier.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="isbn">
        <xs:annotation>
          <xs:documentation>An international standard book number.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="isrn">
        <xs:annotation>
          <xs:documentation>An international standard technical report number (ISO 10444).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="issn">
        <xs:annotation>
          <xs:documentation>An international standard serial number.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="libraryofcongress">
        <xs:annotation>
          <xs:documentation>A Library of Congress reference number.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="pubsnumber">
        <xs:annotation>
          <xs:documentation>A publication number (an internal number or possibly organizational standard).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="uri">
        <xs:annotation>
          <xs:documentation>A Uniform Resource Identifier</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.biblio.class-enum.attribute">
    <xs:attribute name="class" type="db:db.biblio.class.enumeration"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.biblio.class-other.attribute">
    <xs:attribute name="otherclass" use="required" type="xs:NMTOKEN"/>
  </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:annotation>
              <xs:documentation>Indicates that the identifier is some 'other' kind.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attributeGroup ref="db:db.biblio.class-other.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.biblio.class.attribute">
    <xs:attribute name="class">
      <xs:simpleType>
        <xs:union memberTypes="db:db.biblio.class.enumeration">
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="other">
                <xs:annotation>
                  <xs:documentation>Indicates that the identifier is some 'other' kind.</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
        </xs:union>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="otherclass" type="xs:NMTOKEN"/>
  </xs:attributeGroup>
  <!-- ====================================================================== -->
  <xs:group name="db.ubiq.inlines">
    <xs:choice>
      <xs:choice>
        <xs:element ref="db:inlinemediaobject"/>
        <xs:element ref="db:remark"/>
        <xs:group ref="db:db.link.inlines"/>
        <xs:element ref="db:alt"/>
        <xs:element ref="db:trademark"/>
        <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:group ref="db:db._foreignphrase"/>
        <xs:group ref="db:db._phrase"/>
        <xs:group ref="db:db._quote"/>
        <xs:element ref="db:subscript"/>
        <xs:element ref="db:superscript"/>
        <xs:element ref="db:wordasword"/>
      </xs:choice>
      <xs:element ref="db:annotation"/>
      <xs:choice>
        <xs:group ref="db:db._firstterm"/>
        <xs:group ref="db:db._glossterm"/>
      </xs:choice>
      <xs:group ref="db:db.indexterm"/>
      <xs:element ref="db:coref"/>
    </xs:choice>
  </xs:group>
  <xs:group name="db._text">
    <xs:sequence>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:group ref="db:db.ubiq.inlines"/>
        <xs:group ref="db:db._phrase"/>
        <xs:element ref="db:replaceable"/>
      </xs:choice>
    </xs:sequence>
  </xs:group>
  <xs:group name="db._title">
    <xs:sequence>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="db:title"/>
        <xs:element ref="db:titleabbrev"/>
        <xs:element ref="db:subtitle"/>
      </xs:choice>
    </xs:sequence>
  </xs:group>
  <xs:group name="db._title.req">
    <xs:sequence>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="db:title"/>
        <xs:element ref="db:titleabbrev"/>
        <xs:element ref="db:subtitle"/>
      </xs:choice>
    </xs:sequence>
  </xs:group>
  <xs:group name="db._title.only">
    <xs:sequence>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="db:title"/>
        <xs:element ref="db:titleabbrev"/>
      </xs:choice>
    </xs:sequence>
  </xs:group>
  <xs:group name="db._title.onlyreq">
    <xs:sequence>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="db:title"/>
        <xs:element ref="db:titleabbrev"/>
      </xs:choice>
    </xs:sequence>
  </xs:group>
  <xs:group name="db._info">
    <xs:choice>
      <xs:sequence>
        <xs:group ref="db:db._title"/>
        <xs:group minOccurs="0" ref="db:db.titleforbidden.info"/>
      </xs:sequence>
      <xs:group minOccurs="0" ref="db:db.info"/>
    </xs:choice>
  </xs:group>
  <xs:group name="db._info.title.req">
    <xs:choice>
      <xs:sequence>
        <xs:group ref="db:db._title.req"/>
        <xs:group minOccurs="0" ref="db:db.titleforbidden.info"/>
      </xs:sequence>
      <xs:group ref="db:db.titlereq.info"/>
    </xs:choice>
  </xs:group>
  <xs:group name="db._info.title.only">
    <xs:choice>
      <xs:sequence>
        <xs:group ref="db:db._title.only"/>
        <xs:group minOccurs="0" ref="db:db.titleforbidden.info"/>
      </xs:sequence>
      <xs:group ref="db:db.titleonly.info"/>
    </xs:choice>
  </xs:group>
  <xs:group name="db._info.title.onlyreq">
    <xs:choice>
      <xs:sequence>
        <xs:group ref="db:db._title.onlyreq"/>
        <xs:group minOccurs="0" ref="db:db.titleforbidden.info"/>
      </xs:sequence>
      <xs:group ref="db:db.titleonlyreq.info"/>
    </xs:choice>
  </xs:group>
  <xs:group name="db._info.title.forbidden">
    <xs:sequence>
      <xs:group minOccurs="0" ref="db:db.titleforbidden.info"/>
    </xs:sequence>
  </xs:group>
  <!-- ====================================================================== -->
  <xs:group name="db.all.inlines">
    <xs:sequence>
      <xs:choice minOccurs="0">
        <xs:group ref="db:db.ubiq.inlines"/>
        <xs:group ref="db:db.general.inlines"/>
        <xs:group ref="db:db.domain.inlines"/>
      </xs:choice>
    </xs:sequence>
  </xs:group>
  <xs:group name="db.general.inlines">
    <xs:choice>
      <xs:group ref="db:db.publishing.inlines"/>
      <xs:element ref="db:db.product.inlines"/>
      <xs:element ref="db:db.bibliography.inlines"/>
      <xs:element ref="db:db.graphic.inlines"/>
      <xs:group ref="db:db.indexing.inlines"/>
      <xs:group ref="db:db.link.inlines"/>
    </xs:choice>
  </xs:group>
  <xs:group name="db.domain.inlines">
    <xs:choice>
      <xs:element ref="db:db.technical.inlines"/>
      <xs:element ref="db:db.math.inlines"/>
      <xs:element ref="db:db.markup.inlines"/>
      <xs:group ref="db:db.gui.inlines"/>
      <xs:group ref="db:db.keyboard.inlines"/>
      <xs:element ref="db:db.os.inlines"/>
      <xs:group ref="db:db.programming.inlines"/>
      <xs:element ref="db:db.error.inlines"/>
    </xs:choice>
  </xs:group>
  <xs:element name="db.technical.inlines" abstract="true"/>
  <xs:element name="db.product.inlines" abstract="true"/>
  <xs:element name="db.bibliography.inlines" abstract="true"/>
  <xs:group name="db.publishing.inlines">
    <xs:choice>
      <xs:choice>
        <xs:element ref="db:abbrev"/>
        <xs:element ref="db:acronym"/>
        <xs:element ref="db:date"/>
        <xs:group ref="db:db.emphasis"/>
        <xs:element ref="db:footnote"/>
        <xs:element ref="db:footnoteref"/>
        <xs:group ref="db:db.foreignphrase"/>
        <xs:group ref="db:db.phrase"/>
        <xs:group ref="db:db.quote"/>
        <xs:element ref="db:subscript"/>
        <xs:element ref="db:superscript"/>
        <xs:element ref="db:wordasword"/>
      </xs:choice>
      <xs:group ref="db:db.glossary.inlines"/>
      <xs:element ref="db:coref"/>
    </xs:choice>
  </xs:group>
  <xs:element name="db.graphic.inlines" abstract="true">
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.inlinemediaobject.info"/>
        <xs:element minOccurs="0" ref="db:alt"/>
        <xs:element maxOccurs="unbounded" ref="db:db.mediaobject.content"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.inlinemediaobject.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:group name="db.indexing.inlines">
    <xs:sequence>
      <xs:group ref="db:db.indexterm"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="db.link.inlines">
    <xs:choice>
      <xs:choice>
        <xs:element ref="db:xref"/>
        <xs:element ref="db:link"/>
        <xs:element ref="db:olink"/>
        <xs:element ref="db:anchor"/>
      </xs:choice>
      <xs:element ref="db:biblioref"/>
    </xs:choice>
  </xs:group>
  <!-- ====================================================================== -->
  <xs:group name="db.nopara.blocks">
    <xs:choice>
      <xs:choice>
        <xs:group ref="db:db.list.blocks"/>
        <xs:group ref="db:db.formal.blocks"/>
        <xs:group ref="db:db.informal.blocks"/>
        <xs:element ref="db:db.publishing.blocks"/>
        <xs:element ref="db:db.graphic.blocks"/>
        <xs:group ref="db:db.technical.blocks"/>
        <xs:element ref="db:db.verbatim.blocks"/>
        <xs:element ref="db:bridgehead"/>
        <xs:element ref="db:remark"/>
        <xs:element ref="db:revhistory"/>
      </xs:choice>
      <xs:group ref="db:db.indexterm"/>
      <xs:element ref="db:db.synopsis.blocks"/>
      <xs:element ref="db:db.admonition.blocks"/>
    </xs:choice>
  </xs:group>
  <xs:group name="db.para.blocks">
    <xs:choice>
      <xs:element ref="db:anchor"/>
      <xs:element ref="db:para"/>
      <xs:element ref="db:formalpara"/>
      <xs:element ref="db:simpara"/>
    </xs:choice>
  </xs:group>
  <xs:group name="db.all.blocks">
    <xs:choice>
      <xs:choice>
        <xs:group ref="db:db.nopara.blocks"/>
        <xs:group ref="db:db.para.blocks"/>
      </xs:choice>
      <xs:element ref="db:annotation"/>
    </xs:choice>
  </xs:group>
  <xs:group name="db.formal.blocks">
    <xs:choice>
      <xs:choice>
        <xs:element ref="db:example"/>
        <xs:element ref="db:figure"/>
        <xs:group ref="db:db.table"/>
      </xs:choice>
      <xs:element ref="db:equation"/>
    </xs:choice>
  </xs:group>
  <xs:group name="db.informal.blocks">
    <xs:choice>
      <xs:choice>
        <xs:element ref="db:informalexample"/>
        <xs:element ref="db:informalfigure"/>
        <xs:group ref="db:db.informaltable"/>
      </xs:choice>
      <xs:element ref="db:informalequation"/>
    </xs:choice>
  </xs:group>
  <xs:element name="db.publishing.blocks" abstract="true"/>
  <xs:element name="db.graphic.blocks" abstract="true"/>
  <xs:group name="db.technical.blocks">
    <xs:choice>
      <xs:element ref="db:procedure"/>
      <xs:element ref="db:task"/>
      <xs:choice>
        <xs:element ref="db:productionset"/>
        <xs:element ref="db:constraintdef"/>
      </xs:choice>
      <xs:element ref="db:msgset"/>
    </xs:choice>
  </xs:group>
  <xs:group name="db.list.blocks">
    <xs:choice>
      <xs:choice>
        <xs:element ref="db:itemizedlist"/>
        <xs:element ref="db:orderedlist"/>
        <xs:element ref="db:procedure"/>
        <xs:element ref="db:simplelist"/>
        <xs:element ref="db:variablelist"/>
        <xs:element ref="db:segmentedlist"/>
      </xs:choice>
      <xs:element ref="db:glosslist"/>
      <xs:element ref="db:bibliolist"/>
      <xs:element ref="db:calloutlist"/>
      <xs:element ref="db:qandaset"/>
    </xs:choice>
  </xs:group>
  <xs:element name="db.verbatim.blocks" abstract="true"/>
  <!-- ====================================================================== -->
  <xs:group name="db.info.extension">
    <xs:sequence>
      <xs:group ref="db:db._any"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="db.info.elements">
    <xs:choice>
      <xs:choice>
        <xs:element ref="db:abstract"/>
        <xs:element ref="db:address"/>
        <xs:element ref="db:artpagenums"/>
        <xs:element ref="db:author"/>
        <xs:element ref="db:authorgroup"/>
        <xs:element ref="db:authorinitials"/>
        <xs:element ref="db:bibliocoverage"/>
        <xs:element ref="db:biblioid"/>
        <xs:element ref="db:bibliosource"/>
        <xs:element ref="db:collab"/>
        <xs:element ref="db:confgroup"/>
        <xs:element ref="db:contractsponsor"/>
        <xs:element ref="db:contractnum"/>
        <xs:element ref="db:copyright"/>
        <xs:element ref="db:cover"/>
        <xs:element ref="db:date"/>
        <xs:element ref="db:edition"/>
        <xs:element ref="db:editor"/>
        <xs:element ref="db:issuenum"/>
        <xs:element ref="db:keywordset"/>
        <xs:element ref="db:legalnotice"/>
        <xs:element ref="db:mediaobject"/>
        <xs:element ref="db:org"/>
        <xs:element ref="db:orgname"/>
        <xs:element ref="db:othercredit"/>
        <xs:element ref="db:pagenums"/>
        <xs:element ref="db:printhistory"/>
        <xs:element ref="db:pubdate"/>
        <xs:element ref="db:publisher"/>
        <xs:element ref="db:publishername"/>
        <xs:element ref="db:releaseinfo"/>
        <xs:element ref="db:revhistory"/>
        <xs:element ref="db:seriesvolnums"/>
        <xs:element ref="db:subjectset"/>
        <xs:element ref="db:volumenum"/>
        <xs:group ref="db:db.info.extension"/>
      </xs:choice>
      <xs:element ref="db:annotation"/>
      <xs:element ref="db:extendedlink"/>
      <xs:choice>
        <xs:element ref="db:bibliomisc"/>
        <xs:element ref="db:bibliomset"/>
        <xs:element ref="db:bibliorelation"/>
        <xs:element ref="db:biblioset"/>
      </xs:choice>
      <xs:element ref="db:itermset"/>
      <xs:choice>
        <xs:element ref="db:productname"/>
        <xs:element ref="db:productnumber"/>
      </xs:choice>
    </xs:choice>
  </xs:group>
  <xs:group name="db.bibliographic.elements">
    <xs:choice>
      <xs:group ref="db:db.info.elements"/>
      <xs:group ref="db:db.publishing.inlines"/>
      <xs:element ref="db:citerefentry"/>
      <xs:element ref="db:citetitle"/>
      <xs:element ref="db:citebiblioid"/>
      <xs:element ref="db:person"/>
      <xs:element ref="db:personblurb"/>
      <xs:element ref="db:personname"/>
      <xs:element ref="db:subtitle"/>
      <xs:element ref="db:title"/>
      <xs:element ref="db:titleabbrev"/>
    </xs:choice>
  </xs:group>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.title.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.title.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="title">
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.title.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.titleabbrev.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.titleabbrev.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="titleabbrev">
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.titleabbrev.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.subtitle.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.subtitle.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="subtitle">
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.subtitle.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.info.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.info.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.info">
    <xs:sequence>
      <xs:element name="info">
        <xs:complexType>
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:group ref="db:db._title"/>
            <xs:group ref="db:db.info.elements"/>
          </xs:choice>
          <xs:attributeGroup ref="db:db.info.attlist"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.titlereq.info.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.titlereq.info.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.titlereq.info">
    <xs:sequence>
      <xs:element name="info">
        <xs:complexType>
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:group ref="db:db._title.req"/>
            <xs:group ref="db:db.info.elements"/>
          </xs:choice>
          <xs:attributeGroup ref="db:db.titlereq.info.attlist"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.titleonly.info.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.titleonly.info.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.titleonly.info">
    <xs:sequence>
      <xs:element name="info">
        <xs:complexType>
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:group ref="db:db._title.only"/>
            <xs:group ref="db:db.info.elements"/>
          </xs:choice>
          <xs:attributeGroup ref="db:db.titleonly.info.attlist"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.titleonlyreq.info.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.titleonlyreq.info.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.titleonlyreq.info">
    <xs:sequence>
      <xs:element name="info">
        <xs:complexType>
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:group ref="db:db._title.onlyreq"/>
            <xs:group ref="db:db.info.elements"/>
          </xs:choice>
          <xs:attributeGroup ref="db:db.titleonlyreq.info.attlist"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.titleforbidden.info.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.titleforbidden.info.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.titleforbidden.info">
    <xs:sequence>
      <xs:element name="info">
        <xs: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="dbs: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: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="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="weight"/>
  </xs:attributeGroup>
  <xs:element name="subject">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="db:subjectterm"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.subject.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.subjectterm.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.subjectterm.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="subjectterm">
    <xs:complexType mixed="true">
      <xs:attributeGroup ref="db:db.subjectterm.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.keywordset.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.keywordset.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="keywordset">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="db:keyword"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.keywordset.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.keyword.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.keyword.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="keyword">
    <xs:complexType mixed="true">
      <xs:attributeGroup ref="db:db.keyword.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:group name="db.table.choice">
    <xs:choice>
      <xs:group ref="db:db.cals.table"/>
      <xs:group ref="db:db.html.table"/>
    </xs:choice>
  </xs:group>
  <xs:group name="db.informaltable.choice">
    <xs:choice>
      <xs:group ref="db:db.cals.informaltable"/>
      <xs:group ref="db:db.html.informaltable"/>
    </xs:choice>
  </xs:group>
  <xs:group name="db.table">
    <xs:sequence>
      <xs:group ref="db:db.table.choice"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="db.informaltable">
    <xs:sequence>
      <xs:group ref="db:db.informaltable.choice"/>
    </xs:sequence>
  </xs:group>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.procedure.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.procedure.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.procedure.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.only"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="procedure">
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.procedure.info"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.blocks"/>
        <xs:element maxOccurs="unbounded" ref="db:step"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.procedure.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.step.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.step.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="performance" type="db:db.performance.enumeration"/>
  </xs: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:complexType>
      <xs:sequence>
        <xs:group ref="db:db.step.info"/>
        <xs:choice>
          <xs:sequence>
            <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
            <xs:sequence minOccurs="0">
              <xs:choice>
                <xs:element ref="db:substeps"/>
                <xs:element ref="db:stepalternatives"/>
              </xs:choice>
              <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.blocks"/>
            </xs:sequence>
          </xs:sequence>
          <xs:sequence>
            <xs:choice>
              <xs:element ref="db:substeps"/>
              <xs:element ref="db:stepalternatives"/>
            </xs:choice>
            <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.blocks"/>
          </xs:sequence>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.step.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.stepalternatives.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.stepalternatives.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="performance" type="db:db.performance.enumeration"/>
  </xs: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:complexType>
      <xs:sequence>
        <xs:group ref="db:db.stepalternatives.info"/>
        <xs:element maxOccurs="unbounded" ref="db:step"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.stepalternatives.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.substeps.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.substeps.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="performance" type="db:db.performance.enumeration"/>
  </xs:attributeGroup>
  <xs:element name="substeps">
    <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.floatstyle.attribute">
    <xs:attributeGroup ref="db:db.floatstyle.attribute"/>
  </xs:attributeGroup>
  <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:attribute name="floatstyle"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.sidebar.info">
    <xs:sequence>
      <xs:group ref="db:db._info"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="sidebar" substitutionGroup="db:db.publishing.blocks">
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.sidebar.info"/>
        <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.sidebar.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.abstract.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.abstract.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.abstract.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.only"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="abstract">
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.abstract.info"/>
        <xs:group maxOccurs="unbounded" ref="db:db.para.blocks"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.abstract.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.personblurb.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.personblurb.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.personblurb.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.only"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="personblurb">
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.personblurb.info"/>
        <xs:group maxOccurs="unbounded" ref="db:db.para.blocks"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.personblurb.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.blockquote.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.blockquote.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.blockquote.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.only"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="blockquote" substitutionGroup="db:db.publishing.blocks">
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.blockquote.info"/>
        <xs:element minOccurs="0" ref="db:attribution"/>
        <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.blockquote.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.attribution.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.attribution.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="attribution">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:group ref="db:db._text"/>
        <xs:element ref="db:person"/>
        <xs:element ref="db:personname"/>
        <xs:element ref="db:citetitle"/>
        <xs:element ref="db:citation"/>
      </xs:choice>
      <xs:attributeGroup ref="db:db.attribution.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:simpleType name="db.bridgehead.renderas.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="sect1">
        <xs:annotation>
          <xs:documentation>Render as a first-level section</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="sect2">
        <xs:annotation>
          <xs:documentation>Render as a second-level section</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="sect3">
        <xs:annotation>
          <xs:documentation>Render as a third-level section</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="sect4">
        <xs:annotation>
          <xs:documentation>Render as a fourth-level section</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="sect5">
        <xs:annotation>
          <xs:documentation>Render as a fifth-level section</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.bridgehead.renderas-enum.attribute">
    <xs:attribute name="renderas" type="db:db.bridgehead.renderas.enumeration"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.bridgehead.renderas-other.attribute">
    <xs:attribute name="otherrenderas" use="required" type="xs:NMTOKEN"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.bridgehead.renderas-other.attributes">
    <xs:attribute name="renderas" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="other">
            <xs:annotation>
              <xs:documentation>Identifies a non-standard rendering</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attributeGroup ref="db:db.bridgehead.renderas-other.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.bridgehead.renderas.attribute">
    <xs:attribute name="renderas">
      <xs:simpleType>
        <xs:union memberTypes="db:db.bridgehead.renderas.enumeration">
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="other">
                <xs:annotation>
                  <xs:documentation>Identifies a non-standard rendering</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
        </xs:union>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="otherrenderas" type="xs:NMTOKEN"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.bridgehead.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.bridgehead.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attributeGroup ref="db:db.bridgehead.renderas.attribute"/>
  </xs:attributeGroup>
  <xs:element name="bridgehead">
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.bridgehead.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.remark.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.remark.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="remark">
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.remark.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.epigraph.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.epigraph.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.epigraph.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.forbidden"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="epigraph" substitutionGroup="db:db.publishing.blocks">
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.epigraph.info"/>
        <xs:element minOccurs="0" ref="db:attribution"/>
        <xs:choice maxOccurs="unbounded">
          <xs:group ref="db:db.para.blocks"/>
          <xs:element ref="db:literallayout"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.epigraph.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.footnote.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.footnote.label.attribute">
    <xs:attribute name="label" use="required" type="xs:NMTOKEN"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.footnote.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="label" type="xs:NMTOKEN"/>
  </xs:attributeGroup>
  <xs:element name="footnote">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
      <xs:attributeGroup ref="db:db.footnote.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.formalpara.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.formalpara.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.formalpara.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.onlyreq"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="formalpara">
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.formalpara.info"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.indexing.inlines"/>
        <xs:element ref="db:para"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.formalpara.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.para.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.para.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.para.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.forbidden"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="para">
    <xs:complexType mixed="true">
      <xs:sequence>
        <xs:group ref="db:db.para.info"/>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:group ref="db:db.all.inlines"/>
          <xs:group ref="db:db.nopara.blocks"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.para.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.simpara.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.simpara.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.simpara.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.forbidden"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="simpara">
    <xs:complexType mixed="true">
      <xs:sequence>
        <xs:group ref="db:db.simpara.info"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.simpara.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.itemizedlist.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.itemizedlist.mark.attribute">
    <xs:attribute name="mark" use="required" type="xs:NMTOKEN"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.itemizedlist.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="spacing" type="db:db.spacing.enumeration"/>
    <xs:attribute name="mark" type="xs:NMTOKEN"/>
  </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:complexType>
      <xs:sequence>
        <xs:group ref="db:db.itemizedlist.info"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.blocks"/>
        <xs:element maxOccurs="unbounded" ref="db:listitem"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.itemizedlist.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.orderedlist.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:simpleType name="db.orderedlist.continuation.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="continues">
        <xs:annotation>
          <xs:documentation>Specifies that numbering should begin where the preceding list left off</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="restarts">
        <xs:annotation>
          <xs:documentation>Specifies that numbering should begin again at 1</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.orderedlist.continuation.attribute">
    <xs:attribute name="continuation" use="required" type="db:db.orderedlist.continuation.enumeration"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.orderedlist.startingnumber.attribute">
    <xs:attribute name="startingnumber" use="required" type="xs:integer"/>
  </xs:attributeGroup>
  <xs:simpleType name="db.orderedlist.inheritnum.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="ignore">
        <xs:annotation>
          <xs:documentation>Specifies that numbering should ignore list nesting</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="inherit">
        <xs:annotation>
          <xs:documentation>Specifies that numbering should inherit from outer-level lists</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.orderedlist.inheritnum.attribute">
    <xs:attribute name="inheritnum" use="required" type="db:db.orderedlist.inheritnum.enumeration"/>
  </xs:attributeGroup>
  <xs:simpleType name="db.orderedlist.numeration.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="arabic">
        <xs:annotation>
          <xs:documentation>Specifies Arabic numeration (1, 2, 3, …)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="upperalpha">
        <xs:annotation>
          <xs:documentation>Specifies upper-case alphabetic numeration (A, B, C, …)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="loweralpha">
        <xs:annotation>
          <xs:documentation>Specifies lower-case alphabetic numeration (a, b, c, …)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="upperroman">
        <xs:annotation>
          <xs:documentation>Specifies upper-case Roman numeration (I, II, III, …)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lowerroman">
        <xs:annotation>
          <xs:documentation>Specifies lower-case Roman numeration (i, ii, iii …)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.orderedlist.numeration.attribute">
    <xs:attribute name="numeration" use="required" type="db:db.orderedlist.numeration.enumeration"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.orderedlist.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="spacing" type="db:db.spacing.enumeration"/>
    <xs:attribute name="continuation" type="db:db.orderedlist.continuation.enumeration"/>
    <xs:attribute name="startingnumber" type="xs:integer"/>
    <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:complexType>
      <xs:sequence>
        <xs:group ref="db:db.orderedlist.info"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.blocks"/>
        <xs:element maxOccurs="unbounded" ref="db:listitem"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.orderedlist.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.listitem.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.listitem.override.attribute">
    <xs:attribute name="override" use="required" type="xs:NMTOKEN"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.listitem.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="override" type="xs:NMTOKEN"/>
  </xs:attributeGroup>
  <xs:element name="listitem">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
      <xs:attributeGroup ref="db:db.listitem.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.segmentedlist.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.segmentedlist.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.segmentedlist.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.only"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="segmentedlist">
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.segmentedlist.info"/>
        <xs:element maxOccurs="unbounded" ref="db:segtitle"/>
        <xs:element maxOccurs="unbounded" ref="db:seglistitem"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.segmentedlist.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.segtitle.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.segtitle.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="segtitle">
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.segtitle.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.seglistitem.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.seglistitem.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="seglistitem">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="db:seg"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.seglistitem.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.seg.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.seg.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="seg">
    <xs: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: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="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="type" type="db:db.simplelist.type.enumeration"/>
    <xs:attribute name="columns" type="xs:integer"/>
  </xs:attributeGroup>
  <xs:element name="simplelist">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="db:member"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.simplelist.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.member.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.member.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="member">
    <xs: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="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="spacing" type="db:db.spacing.enumeration"/>
    <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:complexType>
      <xs:sequence>
        <xs:group ref="db:db.variablelist.info"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.blocks"/>
        <xs:element maxOccurs="unbounded" ref="db:varlistentry"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.variablelist.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.varlistentry.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.varlistentry.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="varlistentry">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="db:term"/>
        <xs:element ref="db:listitem"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.varlistentry.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.term.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.term.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="term">
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.term.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.example.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.example.label.attribute">
    <xs:attributeGroup ref="db:db.label.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.example.width.attribute">
    <xs:attributeGroup ref="db:db.width.characters.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.example.pgwide.attribute">
    <xs:attributeGroup ref="db:db.pgwide.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.example.floatstyle.attribute">
    <xs:attributeGroup ref="db:db.floatstyle.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.example.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="label"/>
    <xs:attribute name="floatstyle"/>
    <xs:attribute name="width" type="xs:nonNegativeInteger"/>
    <xs:attribute name="pgwide" type="db:db.pgwide.enumeration"/>
  </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:complexType>
      <xs:sequence>
        <xs:group ref="db:db.example.info"/>
        <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
        <xs:group minOccurs="0" ref="db:db.caption"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.example.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.informalexample.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.informalexample.width.attribute">
    <xs:attributeGroup ref="db:db.width.characters.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.informalexample.floatstyle.attribute">
    <xs:attributeGroup ref="db:db.floatstyle.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.informalexample.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="floatstyle"/>
    <xs:attribute name="width" type="xs:nonNegativeInteger"/>
  </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:complexType>
      <xs:sequence>
        <xs:group ref="db:db.informalexample.info"/>
        <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
        <xs:group minOccurs="0" ref="db:db.caption"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.informalexample.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:group name="db.verbatim.inlines">
    <xs:choice>
      <xs:choice>
        <xs:group ref="db:db.all.inlines"/>
        <xs:element ref="db:lineannotation"/>
      </xs:choice>
      <xs:element ref="db:co"/>
    </xs:choice>
  </xs:group>
  <xs:complexType name="db.verbatim.contentmodel" mixed="true">
    <xs:sequence>
      <xs:group ref="db:db._info.title.forbidden"/>
      <xs:choice>
        <xs:element ref="db:textobject"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.verbatim.inlines"/>
      </xs:choice>
    </xs:sequence>
  </xs:complexType>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.literallayout.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:simpleType name="db.literallayout.class.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="monospaced">
        <xs:annotation>
          <xs:documentation>The literal layout should be formatted with a monospaced font</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="normal">
        <xs:annotation>
          <xs:documentation>The literal layout should be formatted with the current font</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.literallayout.class.attribute">
    <xs:attribute name="class" use="required" type="db:db.literallayout.class.enumeration"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.literallayout.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attributeGroup ref="db:db.verbatim.attributes"/>
    <xs:attribute name="class" type="db:db.literallayout.class.enumeration"/>
  </xs:attributeGroup>
  <xs:element name="literallayout" substitutionGroup="db:db.verbatim.blocks">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="db:db.verbatim.contentmodel">
          <xs:attributeGroup ref="db:db.literallayout.attlist"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.screen.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.screen.width.attribute">
    <xs:attributeGroup ref="db:db.width.characters.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.screen.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attributeGroup ref="db:db.verbatim.attributes"/>
    <xs:attribute name="width" type="xs:nonNegativeInteger"/>
  </xs:attributeGroup>
  <xs:element name="screen" substitutionGroup="db:db.verbatim.blocks">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="db:db.verbatim.contentmodel">
          <xs:attributeGroup ref="db:db.screen.attlist"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.screenshot.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.screenshot.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.screenshot.info">
    <xs:sequence>
      <xs:group ref="db:db._info"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="screenshot" substitutionGroup="db:db.graphic.blocks">
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.screenshot.info"/>
        <xs:element ref="db:mediaobject"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.screenshot.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.figure.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.figure.label.attribute">
    <xs:attributeGroup ref="db:db.label.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.figure.pgwide.attribute">
    <xs:attributeGroup ref="db:db.pgwide.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.figure.floatstyle.attribute">
    <xs:attributeGroup ref="db:db.floatstyle.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.figure.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="label"/>
    <xs:attribute name="pgwide" type="db:db.pgwide.enumeration"/>
    <xs:attribute name="floatstyle"/>
  </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:complexType>
      <xs:sequence>
        <xs:group ref="db:db.figure.info"/>
        <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
        <xs:group minOccurs="0" ref="db:db.caption"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.figure.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.informalfigure.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.informalfigure.label.attribute">
    <xs:attributeGroup ref="db:db.label.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.informalfigure.pgwide.attribute">
    <xs:attributeGroup ref="db:db.pgwide.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.informalfigure.floatstyle.attribute">
    <xs:attributeGroup ref="db:db.floatstyle.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.informalfigure.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="label"/>
    <xs:attribute name="pgwide" type="db:db.pgwide.enumeration"/>
    <xs:attribute name="floatstyle"/>
  </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:complexType>
      <xs:sequence>
        <xs:group ref="db:db.informalfigure.info"/>
        <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
        <xs:group minOccurs="0" ref="db:db.caption"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.informalfigure.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:element name="db.mediaobject.content" abstract="true"/>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.mediaobject.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.mediaobject.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.mediaobject.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.forbidden"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="mediaobject" substitutionGroup="db:db.graphic.blocks">
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.mediaobject.info"/>
        <xs:element minOccurs="0" ref="db:alt"/>
        <xs:element maxOccurs="unbounded" ref="db:db.mediaobject.content"/>
        <xs:group minOccurs="0" ref="db:db.caption"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.mediaobject.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.inlinemediaobject.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.inlinemediaobject.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.inlinemediaobject.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.forbidden"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="inlinemediaobject" substitutionGroup="db:db.graphic.inlines"/>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.videoobject.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.videoobject.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.videoobject.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.forbidden"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="videoobject" substitutionGroup="db:db.mediaobject.content">
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.videoobject.info"/>
        <xs:element ref="db:videodata"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.videoobject.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.audioobject.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.audioobject.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.audioobject.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.forbidden"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="audioobject" substitutionGroup="db:db.mediaobject.content">
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.audioobject.info"/>
        <xs:element ref="db:audiodata"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.audioobject.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:group name="db.imageobject.content">
    <xs:choice>
      <xs:group ref="db:db.imagedata"/>
      <xs:group ref="db:db.imagedata.mathml"/>
      <xs:group ref="db:db.imagedata.svg"/>
    </xs:choice>
  </xs:group>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.imageobject.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.imageobject.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.imageobject.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.forbidden"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="imageobject" substitutionGroup="db:db.mediaobject.content">
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.imageobject.info"/>
        <xs:group ref="db:db.imageobject.content"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.imageobject.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.textobject.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.textobject.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.textobject.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.forbidden"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="textobject" substitutionGroup="db:db.mediaobject.content">
    <xs: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:attributeGroup ref="db:db.width.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.videodata.depth.attribute">
    <xs:attributeGroup ref="db:db.depth.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.videodata.contentwidth.attribute">
    <xs:attributeGroup ref="db:db.contentwidth.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.videodata.contentdepth.attribute">
    <xs:attributeGroup ref="db:db.contentdepth.attribute"/>
  </xs:attributeGroup>
  <xs:simpleType name="db.videodata.scalefit.enumeration">
    <xs:restriction base="db:db.scalefit.enumeration"/>
  </xs:simpleType>
  <xs:attributeGroup name="db.videodata.scalefit.attribute">
    <xs:attribute name="scalefit" use="required" type="db:db.videodata.scalefit.enumeration"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.videodata.scale.attribute">
    <xs:attributeGroup ref="db:db.scale.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.videodata.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.data.attributes"/>
    <xs:attribute name="align" type="db:db.videodata.align.enumeration"/>
    <xs: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" type="xs:positiveInteger"/>
    <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:complexType>
      <xs:complexContent>
        <xs:extension base="db:db.videodata.info">
          <xs:attributeGroup ref="db:db.videodata.attlist"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.audiodata.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.audiodata.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.data.attributes"/>
  </xs:attributeGroup>
  <xs:complexType name="db.audiodata.info">
    <xs:group ref="db:db._info.title.forbidden"/>
  </xs:complexType>
  <xs:element name="audiodata">
    <xs: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:attributeGroup ref="db:db.width.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.imagedata.depth.attribute">
    <xs:attributeGroup ref="db:db.depth.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.imagedata.contentwidth.attribute">
    <xs:attributeGroup ref="db:db.contentwidth.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.imagedata.contentdepth.attribute">
    <xs:attributeGroup ref="db:db.contentdepth.attribute"/>
  </xs:attributeGroup>
  <xs:simpleType name="db.imagedata.scalefit.enumeration">
    <xs:restriction base="db:db.scalefit.enumeration"/>
  </xs:simpleType>
  <xs:attributeGroup name="db.imagedata.scalefit.attribute">
    <xs:attribute name="scalefit" use="required" type="db:db.imagedata.scalefit.enumeration"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.imagedata.scale.attribute">
    <xs:attributeGroup ref="db:db.scale.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.imagedata.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.data.attributes"/>
    <xs:attribute name="align" type="db:db.imagedata.align.enumeration"/>
    <xs: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" type="xs:positiveInteger"/>
    <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:group name="db.imagedata">
    <xs:sequence>
      <xs:element name="imagedata">
        <xs:complexType>
          <xs:complexContent>
            <xs:extension base="db:db.imagedata.info">
              <xs:attributeGroup ref="db:db.imagedata.attlist"/>
            </xs:extension>
          </xs:complexContent>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.textdata.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.textdata.encoding.attribute">
    <xs:attribute name="encoding" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.textdata.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.data.attributes"/>
    <xs:attribute name="encoding"/>
  </xs:attributeGroup>
  <xs:complexType name="db.textdata.info">
    <xs:group ref="db:db._info.title.forbidden"/>
  </xs:complexType>
  <xs:element name="textdata">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="db:db.textdata.info">
          <xs:attributeGroup ref="db:db.textdata.attlist"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.caption.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.caption.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.caption.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.forbidden"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="db.caption">
    <xs:sequence>
      <xs:element name="caption">
        <xs:complexType>
          <xs:sequence>
            <xs:group ref="db:db.caption.info"/>
            <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
          </xs:sequence>
          <xs:attributeGroup ref="db:db.caption.attlist"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.address.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.address.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attributeGroup ref="db:db.verbatim.attributes"/>
  </xs:attributeGroup>
  <xs:element name="address" substitutionGroup="db:db.publishing.blocks">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:group ref="db:db._text"/>
        <xs:element ref="db:personname"/>
        <xs:element ref="db:orgname"/>
        <xs:element ref="db:pob"/>
        <xs:element ref="db:street"/>
        <xs:element ref="db:city"/>
        <xs:element ref="db:state"/>
        <xs:element ref="db:postcode"/>
        <xs:element ref="db:country"/>
        <xs:element ref="db:phone"/>
        <xs:element ref="db:fax"/>
        <xs:element ref="db:email"/>
        <xs:element ref="db:uri"/>
        <xs:element ref="db:otheraddr"/>
      </xs:choice>
      <xs:attributeGroup ref="db:db.address.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.street.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.street.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="street">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.street.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.pob.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.pob.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="pob">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.pob.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.postcode.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.postcode.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="postcode">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.postcode.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.city.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.city.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="city">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.city.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.state.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.state.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="state">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.state.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.country.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.country.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="country">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.country.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.phone.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.phone.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="phone">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.phone.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.fax.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.fax.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="fax">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.fax.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.otheraddr.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.otheraddr.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="otheraddr">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.otheraddr.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.affiliation.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.affiliation.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="affiliation">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="db:shortaffil"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:jobtitle"/>
        <xs:choice>
          <xs:element minOccurs="0" ref="db:org"/>
          <xs:sequence>
            <xs:element minOccurs="0" ref="db:orgname"/>
            <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:orgdiv"/>
            <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:address"/>
          </xs:sequence>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.affiliation.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.shortaffil.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.shortaffil.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="shortaffil">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.shortaffil.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.jobtitle.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.jobtitle.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="jobtitle" substitutionGroup="db:db.bibliography.inlines">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.jobtitle.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:simpleType name="db.orgname.class.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="consortium">
        <xs:annotation>
          <xs:documentation>A consortium</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="corporation">
        <xs:annotation>
          <xs:documentation>A corporation</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="informal">
        <xs:annotation>
          <xs:documentation>An informal organization</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="nonprofit">
        <xs:annotation>
          <xs:documentation>A non-profit organization</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.orgname.class-enum.attribute">
    <xs:attribute name="class" use="required" type="db:db.orgname.class.enumeration"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.orgname.class-other.attributes">
    <xs:attribute name="class" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="other">
            <xs:annotation>
              <xs:documentation>Indicates a non-standard organization class</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="otherclass" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.orgname.class.attribute">
    <xs:attribute name="class" use="required">
      <xs:simpleType>
        <xs:union memberTypes="db:db.orgname.class.enumeration">
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="other">
                <xs:annotation>
                  <xs:documentation>Indicates a non-standard organization class</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
        </xs:union>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="otherclass"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.orgname.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.orgname.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="class">
      <xs:simpleType>
        <xs:union memberTypes="db:db.orgname.class.enumeration">
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="other">
                <xs:annotation>
                  <xs:documentation>Indicates a non-standard organization class</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
        </xs:union>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="otherclass"/>
  </xs:attributeGroup>
  <xs:element name="orgname" substitutionGroup="db:db.bibliography.inlines">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.orgname.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.orgdiv.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.orgdiv.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="orgdiv">
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.orgdiv.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.artpagenums.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.artpagenums.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="artpagenums">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.artpagenums.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.personname.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.personname.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="personname" substitutionGroup="db:db.bibliography.inlines">
    <xs:complexType mixed="true">
      <xs:choice>
        <xs:group ref="db:db._text"/>
        <xs:choice maxOccurs="unbounded">
          <xs:element ref="db:honorific"/>
          <xs:element ref="db:firstname"/>
          <xs:element ref="db:surname"/>
          <xs:element ref="db:lineage"/>
          <xs:element ref="db:othername"/>
        </xs:choice>
        <xs:choice maxOccurs="unbounded">
          <xs:element ref="db:honorific"/>
          <xs:element ref="db:givenname"/>
          <xs:element ref="db:surname"/>
          <xs:element ref="db:lineage"/>
          <xs:element ref="db:othername"/>
        </xs:choice>
      </xs:choice>
      <xs:attributeGroup ref="db:db.personname.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:group name="db.person.author.contentmodel">
    <xs:sequence>
      <xs:element ref="db:personname"/>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="db:personblurb"/>
        <xs:element ref="db:affiliation"/>
        <xs:element ref="db:email"/>
        <xs:element ref="db:uri"/>
        <xs:element ref="db:address"/>
        <xs:element ref="db:contrib"/>
      </xs:choice>
    </xs:sequence>
  </xs:group>
  <xs:group name="db.org.author.contentmodel">
    <xs:sequence>
      <xs:element ref="db:orgname"/>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="db:orgdiv"/>
        <xs:element ref="db:affiliation"/>
        <xs:element ref="db:email"/>
        <xs:element ref="db:uri"/>
        <xs:element ref="db:address"/>
        <xs:element ref="db:contrib"/>
      </xs:choice>
    </xs:sequence>
  </xs:group>
  <xs:complexType name="db.credit.contentmodel">
    <xs:choice>
      <xs:group ref="db:db.person.author.contentmodel"/>
      <xs:group ref="db:db.org.author.contentmodel"/>
    </xs:choice>
  </xs:complexType>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.author.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.author.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="author" substitutionGroup="db:db.bibliography.inlines">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="db:db.credit.contentmodel">
          <xs:attributeGroup ref="db:db.author.attlist"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.authorgroup.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.authorgroup.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="authorgroup">
    <xs:complexType>
      <xs:choice maxOccurs="unbounded">
        <xs:element ref="db:author"/>
        <xs:element ref="db:editor"/>
        <xs:element ref="db:othercredit"/>
      </xs:choice>
      <xs:attributeGroup ref="db:db.authorgroup.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.collab.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.collab.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="collab">
    <xs:complexType>
      <xs:sequence>
        <xs:choice maxOccurs="unbounded">
          <xs:element ref="db:person"/>
          <xs:element ref="db:personname"/>
          <xs:element ref="db:org"/>
          <xs:element ref="db:orgname"/>
        </xs:choice>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:affiliation"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.collab.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.authorinitials.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.authorinitials.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="authorinitials">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.authorinitials.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.person.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.person.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="person" substitutionGroup="db:db.bibliography.inlines">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="db:personname"/>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element ref="db:address"/>
          <xs:element ref="db:affiliation"/>
          <xs:element ref="db:email"/>
          <xs:element ref="db:uri"/>
          <xs:element ref="db:personblurb"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.person.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.org.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.org.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="org" substitutionGroup="db:db.bibliography.inlines">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="db:orgname"/>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element ref="db:address"/>
          <xs:element ref="db:affiliation"/>
          <xs:element ref="db:email"/>
          <xs:element ref="db:uri"/>
          <xs:element ref="db:orgdiv"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.org.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.confgroup.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.confgroup.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="confgroup">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="db:confdates"/>
        <xs:element ref="db:conftitle"/>
        <xs:element ref="db:confnum"/>
        <xs:element ref="db:confsponsor"/>
        <xs:element ref="db:address"/>
      </xs:choice>
      <xs:attributeGroup ref="db:db.confgroup.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.confdates.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.confdates.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="confdates">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.confdates.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.conftitle.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.conftitle.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="conftitle">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.conftitle.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.confnum.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.confnum.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="confnum">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.confnum.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.confsponsor.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.confsponsor.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="confsponsor">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.confsponsor.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.contractnum.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.contractnum.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="contractnum">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.contractnum.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.contractsponsor.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.contractsponsor.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="contractsponsor">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.contractsponsor.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.copyright.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.copyright.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="copyright">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="db:year"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:holder"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.copyright.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.year.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.year.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="year">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.year.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.holder.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.holder.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="holder">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.holder.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:group name="db.cover.contentmodel">
    <xs:choice>
      <xs:choice>
        <xs:group ref="db:db.para.blocks"/>
        <xs:group ref="db:db.list.blocks"/>
        <xs:group ref="db:db.informal.blocks"/>
        <xs:element ref="db:db.publishing.blocks"/>
        <xs:element ref="db:db.graphic.blocks"/>
        <xs:group ref="db:db.technical.blocks"/>
        <xs:element ref="db:db.verbatim.blocks"/>
        <xs:element ref="db:bridgehead"/>
        <xs:element ref="db:remark"/>
        <xs:element ref="db:revhistory"/>
      </xs:choice>
      <xs:element ref="db:db.synopsis.blocks"/>
    </xs:choice>
  </xs:group>
  <xs:attributeGroup name="db.cover.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.cover.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="cover">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="db:db.cover.contentmodel"/>
      <xs:attributeGroup ref="db:db.cover.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.date.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.date.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="date">
    <xs:complexType mixed="true">
      <xs:attributeGroup ref="db:db.date.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.edition.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.edition.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="edition">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.edition.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.editor.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.editor.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="editor" substitutionGroup="db:db.bibliography.inlines">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="db:db.credit.contentmodel">
          <xs:attributeGroup ref="db:db.editor.attlist"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.biblioid.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.biblioid.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attributeGroup ref="db:db.biblio.class.attribute"/>
  </xs:attributeGroup>
  <xs:element name="biblioid">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.biblioid.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.citebiblioid.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.citebiblioid.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attributeGroup ref="db:db.biblio.class.attribute"/>
  </xs:attributeGroup>
  <xs:element name="citebiblioid" substitutionGroup="db:db.bibliography.inlines">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.citebiblioid.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.bibliosource.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.bibliosource.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attributeGroup ref="db:db.biblio.class.attribute"/>
  </xs:attributeGroup>
  <xs:element name="bibliosource">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.bibliosource.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:simpleType name="db.bibliorelation.type.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="hasformat">
        <xs:annotation>
          <xs:documentation>The described resource pre-existed the referenced resource, which is essentially the same intellectual content presented in another format</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="haspart">
        <xs:annotation>
          <xs:documentation>The described resource includes the referenced resource either physically or logically</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="hasversion">
        <xs:annotation>
          <xs:documentation>The described resource has a version, edition, or adaptation, namely, the referenced resource</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="isformatof">
        <xs:annotation>
          <xs:documentation>The described resource is the same intellectual content of the referenced resource, but presented in another format</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="ispartof">
        <xs:annotation>
          <xs:documentation>The described resource is a physical or logical part of the referenced resource</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="isreferencedby">
        <xs:annotation>
          <xs:documentation>The described resource is referenced, cited, or otherwise pointed to by the referenced resource</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="isreplacedby">
        <xs:annotation>
          <xs:documentation>The described resource is supplanted, displaced, or superceded by the referenced resource</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="isrequiredby">
        <xs:annotation>
          <xs:documentation>The described resource is required by the referenced resource, either physically or logically</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="isversionof">
        <xs:annotation>
          <xs:documentation>The described resource is a version, edition, or adaptation of the referenced resource; changes in version imply substantive changes in content rather than differences in format</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="references">
        <xs:annotation>
          <xs:documentation>The described resource references, cites, or otherwise points to the referenced resource</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="replaces">
        <xs:annotation>
          <xs:documentation>The described resource supplants, displaces, or supersedes the referenced resource</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="requires">
        <xs:annotation>
          <xs:documentation>The described resource requires the referenced resource to support its function, delivery, or coherence of content</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.bibliorelation.type-enum.attribute">
    <xs:attribute name="type" type="db:db.bibliorelation.type.enumeration"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.bibliorelation.type-other.attributes">
    <xs:attribute name="type">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="othertype">
            <xs:annotation>
              <xs:documentation>The described resource has a non-standard relationship with the referenced resource</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="othertype" use="required" type="xs:NMTOKEN"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.bibliorelation.type.attribute">
    <xs:attribute name="type">
      <xs:simpleType>
        <xs:union memberTypes="db:db.bibliorelation.type.enumeration">
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="othertype">
                <xs:annotation>
                  <xs:documentation>The described resource has a non-standard relationship with the referenced resource</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
        </xs:union>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="othertype" type="xs:NMTOKEN"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.bibliorelation.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.bibliorelation.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attributeGroup ref="db:db.biblio.class.attribute"/>
    <xs:attributeGroup ref="db:db.bibliorelation.type.attribute"/>
  </xs:attributeGroup>
  <xs:element name="bibliorelation">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.bibliorelation.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:simpleType name="db.bibliocoverage.spacial.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="dcmipoint">
        <xs:annotation>
          <xs:documentation>The DCMI Point identifies a point in space using its geographic coordinates</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="iso3166">
        <xs:annotation>
          <xs:documentation>ISO 3166 Codes for the representation of names of countries</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="dcmibox">
        <xs:annotation>
          <xs:documentation>The DCMI Box identifies a region of space using its geographic limits</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="tgn">
        <xs:annotation>
          <xs:documentation>The Getty Thesaurus of Geographic Names</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.bibliocoverage.spatial-enum.attribute">
    <xs:attribute name="spatial" type="db:db.bibliocoverage.spacial.enumeration"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.bibliocoverage.spatial-other.attributes">
    <xs:attribute name="spatial">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="otherspatial">
            <xs:annotation>
              <xs:documentation>Identifies a non-standard type of coverage</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="otherspatial" use="required" type="xs:NMTOKEN"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.bibliocoverage.spatial.attribute">
    <xs:attribute name="spatial">
      <xs:simpleType>
        <xs:union memberTypes="db:db.bibliocoverage.spacial.enumeration">
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="otherspatial">
                <xs:annotation>
                  <xs:documentation>Identifies a non-standard type of coverage</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
        </xs:union>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="otherspatial" type="xs:NMTOKEN"/>
  </xs:attributeGroup>
  <xs:simpleType name="db.bibliocoverage.temporal.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="dcmiperiod">
        <xs:annotation>
          <xs:documentation>A specification of the limits of a time interval</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="w3c-dtf">
        <xs:annotation>
          <xs:documentation>W3C Encoding rules for dates and times—a profile based on ISO 8601</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.bibliocoverage.temporal-enum.attribute">
    <xs:attribute name="temporal" type="db:db.bibliocoverage.temporal.enumeration"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.bibliocoverage.temporal-other.attributes">
    <xs:attribute name="temporal">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="othertemporal">
            <xs:annotation>
              <xs:documentation>Specifies a non-standard type of coverage</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="othertemporal" use="required" type="xs:NMTOKEN"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.bibliocoverage.temporal.attribute">
    <xs:attribute name="temporal">
      <xs:simpleType>
        <xs:union memberTypes="db:db.bibliocoverage.temporal.enumeration">
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="othertemporal">
                <xs:annotation>
                  <xs:documentation>Specifies a non-standard type of coverage</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
        </xs:union>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="othertemporal" type="xs:NMTOKEN"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.bibliocoverage.coverage.attrib">
    <xs:attributeGroup ref="db:db.bibliocoverage.spatial.attribute"/>
    <xs:attributeGroup ref="db:db.bibliocoverage.temporal.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.bibliocoverage.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.bibliocoverage.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attributeGroup ref="db:db.bibliocoverage.coverage.attrib"/>
  </xs:attributeGroup>
  <xs:element name="bibliocoverage">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.bibliocoverage.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.legalnotice.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.legalnotice.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.legalnotice.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.only"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="legalnotice">
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.legalnotice.info"/>
        <xs:group maxOccurs="unbounded" ref="db:db.all.blocks"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.legalnotice.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:simpleType name="db.othercredit.class.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="copyeditor">
        <xs:annotation>
          <xs:documentation>A copy editor</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="graphicdesigner">
        <xs:annotation>
          <xs:documentation>A graphic designer</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>Some other contributor</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="productioneditor">
        <xs:annotation>
          <xs:documentation>A production editor</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="technicaleditor">
        <xs:annotation>
          <xs:documentation>A technical editor</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="translator">
        <xs:annotation>
          <xs:documentation>A translator</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="indexer">
        <xs:annotation>
          <xs:documentation>An indexer</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="proofreader">
        <xs:annotation>
          <xs:documentation>A proof-reader</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="coverdesigner">
        <xs:annotation>
          <xs:documentation>A cover designer</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="interiordesigner">
        <xs:annotation>
          <xs:documentation>An interior designer</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="illustrator">
        <xs:annotation>
          <xs:documentation>An illustrator</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="reviewer">
        <xs:annotation>
          <xs:documentation>A reviewer</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="typesetter">
        <xs:annotation>
          <xs:documentation>A typesetter</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="conversion">
        <xs:annotation>
          <xs:documentation>A converter (a persons responsible for conversion, not an application)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.othercredit.class-enum.attribute">
    <xs:attribute name="class" type="db:db.othercredit.class.enumeration"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.othercredit.class-other.attribute">
    <xs:attribute name="otherclass" use="required" type="xs:NMTOKEN"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.othercredit.class-other.attributes">
    <xs:attribute name="class" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="other">
            <xs:annotation>
              <xs:documentation>Identifies a non-standard contribution</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attributeGroup ref="db:db.othercredit.class-other.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.othercredit.class.attribute">
    <xs:attribute name="class">
      <xs:simpleType>
        <xs:union memberTypes="db:db.othercredit.class.enumeration">
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="other">
                <xs:annotation>
                  <xs:documentation>Identifies a non-standard contribution</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
        </xs:union>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="otherclass" type="xs:NMTOKEN"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.othercredit.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.othercredit.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attributeGroup ref="db:db.othercredit.class.attribute"/>
  </xs:attributeGroup>
  <xs:element name="othercredit">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="db:db.credit.contentmodel">
          <xs:attributeGroup ref="db:db.othercredit.attlist"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.pagenums.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.pagenums.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="pagenums">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.pagenums.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.contrib.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.contrib.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="contrib">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.contrib.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.honorific.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.honorific.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="honorific">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.honorific.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.firstname.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.firstname.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="firstname">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.firstname.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.givenname.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.givenname.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="givenname">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.givenname.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.surname.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.surname.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="surname">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.surname.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.lineage.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.lineage.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="lineage">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.lineage.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.othername.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.othername.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="othername">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.othername.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.printhistory.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.printhistory.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="printhistory">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="db:db.para.blocks"/>
      <xs:attributeGroup ref="db:db.printhistory.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.pubdate.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.pubdate.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="pubdate">
    <xs:complexType mixed="true">
      <xs:attributeGroup ref="db:db.pubdate.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.publisher.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.publisher.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="publisher">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="db:publishername"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:address"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.publisher.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.publishername.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.publishername.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="publishername">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.publishername.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.releaseinfo.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.releaseinfo.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="releaseinfo">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.releaseinfo.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.revhistory.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.revhistory.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.revhistory.info">
    <xs:sequence>
      <xs:group ref="db:db._info.title.only"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="revhistory">
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="db:db.revhistory.info"/>
        <xs:element maxOccurs="unbounded" ref="db:revision"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.revhistory.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.revision.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.revision.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="revision">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="db:revnumber"/>
        <xs:element ref="db:date"/>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element ref="db:authorinitials"/>
          <xs:element ref="db:author"/>
        </xs:choice>
        <xs:choice minOccurs="0">
          <xs:element ref="db:revremark"/>
          <xs:element ref="db:revdescription"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.revision.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.revnumber.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.revnumber.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="revnumber">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.revnumber.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.revremark.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.revremark.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="revremark">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.revremark.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.revdescription.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.revdescription.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="revdescription">
    <xs:complexType>
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.blocks"/>
      <xs:attributeGroup ref="db:db.revdescription.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.seriesvolnums.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.seriesvolnums.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="seriesvolnums">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.seriesvolnums.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.volumenum.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.volumenum.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="volumenum">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.volumenum.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.issuenum.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.issuenum.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="issuenum">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.issuenum.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.package.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.package.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="package" substitutionGroup="db:db.technical.inlines">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.package.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.email.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.email.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="email" substitutionGroup="db:db.markup.inlines">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.email.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.lineannotation.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.lineannotation.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="lineannotation">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.lineannotation.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:simpleType name="db.parameter.class.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="command">
        <xs:annotation>
          <xs:documentation>A command</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="function">
        <xs:annotation>
          <xs:documentation>A function</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="option">
        <xs:annotation>
          <xs:documentation>An option</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.parameter.class.attribute">
    <xs:attribute name="class" use="required" type="db:db.parameter.class.enumeration"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.parameter.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.parameter.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="class" type="db:db.parameter.class.enumeration"/>
  </xs:attributeGroup>
  <xs:element name="parameter" substitutionGroup="db:db.technical.inlines">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.parameter.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:group name="db.replaceable.inlines">
    <xs:choice>
      <xs:group ref="db:db._text"/>
      <xs:element ref="db:co"/>
    </xs:choice>
  </xs:group>
  <!-- ====================================================================== -->
  <xs:simpleType name="db.replaceable.class.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="command">
        <xs:annotation>
          <xs:documentation>A command</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="function">
        <xs:annotation>
          <xs:documentation>A function</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="option">
        <xs:annotation>
          <xs:documentation>An option</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="parameter">
        <xs:annotation>
          <xs:documentation>A parameter</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.replaceable.class.attribute">
    <xs:attribute name="class" use="required" type="db:db.replaceable.class.enumeration"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.replaceable.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.replaceable.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="class" type="db:db.replaceable.class.enumeration"/>
  </xs:attributeGroup>
  <xs:element name="replaceable" substitutionGroup="db:db.technical.inlines">
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.replaceable.inlines"/>
      <xs:attributeGroup ref="db:db.replaceable.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.uri.type.attribute">
    <xs:attribute name="type"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.uri.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.uri.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attributeGroup ref="db:db.uri.type.attribute"/>
  </xs:attributeGroup>
  <xs:element name="uri" substitutionGroup="db:db.markup.inlines">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.uri.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.abbrev.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.abbrev.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="abbrev">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:group ref="db:db._text"/>
        <xs:element ref="db:superscript"/>
        <xs:element ref="db:subscript"/>
        <xs:element ref="db:trademark"/>
      </xs:choice>
      <xs:attributeGroup ref="db:db.abbrev.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.acronym.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.acronym.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="acronym">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:group ref="db:db._text"/>
        <xs:element ref="db:superscript"/>
        <xs:element ref="db:subscript"/>
        <xs:element ref="db:trademark"/>
      </xs:choice>
      <xs:attributeGroup ref="db:db.acronym.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.citation.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.citation.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="citation" substitutionGroup="db:db.bibliography.inlines">
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.citation.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.citerefentry.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.citerefentry.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="citerefentry" substitutionGroup="db:db.bibliography.inlines">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="db:refentrytitle"/>
        <xs:element minOccurs="0" ref="db:manvolnum"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.citerefentry.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.refentrytitle.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.refentrytitle.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="refentrytitle">
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.refentrytitle.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.manvolnum.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.manvolnum.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="manvolnum">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.manvolnum.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:simpleType name="db.citetitle.pubwork.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="article">
        <xs:annotation>
          <xs:documentation>An article</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="bbs">
        <xs:annotation>
          <xs:documentation>A bulletin board system</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="book">
        <xs:annotation>
          <xs:documentation>A book</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="cdrom">
        <xs:annotation>
          <xs:documentation>A CD-ROM</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="chapter">
        <xs:annotation>
          <xs:documentation>A chapter (as of a book)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="dvd">
        <xs:annotation>
          <xs:documentation>A DVD</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="emailmessage">
        <xs:annotation>
          <xs:documentation>An email message</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="gopher">
        <xs:annotation>
          <xs:documentation>A gopher page</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="journal">
        <xs:annotation>
          <xs:documentation>A journal</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="manuscript">
        <xs:annotation>
          <xs:documentation>A manuscript</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="newsposting">
        <xs:annotation>
          <xs:documentation>A posting to a newsgroup</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="part">
        <xs:annotation>
          <xs:documentation>A part (as of a book)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="refentry">
        <xs:annotation>
          <xs:documentation>A reference entry</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="section">
        <xs:annotation>
          <xs:documentation>A section (as of a book or article)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="series">
        <xs:annotation>
          <xs:documentation>A series</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="set">
        <xs:annotation>
          <xs:documentation>A set (as of books)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="webpage">
        <xs:annotation>
          <xs:documentation>A web page</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="wiki">
        <xs:annotation>
          <xs:documentation>A wiki page</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.citetitle.pubwork.attribute">
    <xs:attribute name="pubwork" use="required" type="db:db.citetitle.pubwork.enumeration"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.citetitle.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.citetitle.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="pubwork" type="db:db.citetitle.pubwork.enumeration"/>
  </xs:attributeGroup>
  <xs:element name="citetitle" substitutionGroup="db:db.bibliography.inlines">
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.citetitle.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.emphasis.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.emphasis.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.emphasis">
    <xs:sequence>
      <xs:element name="emphasis">
        <xs:complexType mixed="true">
          <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
          <xs:attributeGroup ref="db:db.emphasis.attlist"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <!-- ====================================================================== -->
  <xs:group name="db._emphasis">
    <xs:sequence>
      <xs:element name="emphasis">
        <xs:complexType mixed="true">
          <xs:group ref="db:db._text"/>
          <xs:attributeGroup ref="db:db.emphasis.attlist"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.foreignphrase.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.foreignphrase.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.foreignphrase">
    <xs:sequence>
      <xs:element name="foreignphrase">
        <xs:complexType mixed="true">
          <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.general.inlines"/>
          <xs:attributeGroup ref="db:db.foreignphrase.attlist"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db._foreignphrase.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db._foreignphrase.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db._foreignphrase">
    <xs:sequence>
      <xs:element name="foreignphrase">
        <xs:complexType mixed="true">
          <xs:group ref="db:db._text"/>
          <xs:attributeGroup ref="db:db._foreignphrase.attlist"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.phrase.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.phrase.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.phrase">
    <xs:sequence>
      <xs:element name="phrase">
        <xs:complexType mixed="true">
          <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
          <xs:attributeGroup ref="db:db.phrase.attlist"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <!-- ====================================================================== -->
  <xs:group name="db._phrase">
    <xs:sequence>
      <xs:element name="phrase">
        <xs:complexType mixed="true">
          <xs:group ref="db:db._text"/>
          <xs:attributeGroup ref="db:db.phrase.attlist"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.quote.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.quote.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db.quote">
    <xs:sequence>
      <xs:element name="quote">
        <xs:complexType mixed="true">
          <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
          <xs:attributeGroup ref="db:db.quote.attlist"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db._quote.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db._quote.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:group name="db._quote">
    <xs:sequence>
      <xs:element name="quote">
        <xs:complexType mixed="true">
          <xs:group ref="db:db._text"/>
          <xs:attributeGroup ref="db:db._quote.attlist"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.subscript.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.subscript.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="subscript">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.subscript.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.superscript.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.superscript.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="superscript">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.superscript.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:simpleType name="db.trademark.class.enumeration">
    <xs:restriction base="xs:token">
      <xs:enumeration value="copyright">
        <xs:annotation>
          <xs:documentation>A copyright</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="registered">
        <xs:annotation>
          <xs:documentation>A registered copyright</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="service">
        <xs:annotation>
          <xs:documentation>A service</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="trade">
        <xs:annotation>
          <xs:documentation>A trademark</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="db.trademark.class.attribute">
    <xs:attribute name="class" use="required" type="db:db.trademark.class.enumeration"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.trademark.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.trademark.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
    <xs:attribute name="class" type="db:db.trademark.class.enumeration"/>
  </xs:attributeGroup>
  <xs:element name="trademark" substitutionGroup="db:db.product.inlines">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.trademark.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.wordasword.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.wordasword.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.linking.attributes"/>
  </xs:attributeGroup>
  <xs:element name="wordasword">
    <xs:complexType mixed="true">
      <xs:group ref="db:db._text"/>
      <xs:attributeGroup ref="db:db.wordasword.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.footnoteref.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.footnoteref.label.attribute">
    <xs:attributeGroup ref="db:db.label.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.footnoteref.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.linkend.attribute"/>
    <xs:attribute name="label"/>
  </xs:attributeGroup>
  <xs:element name="footnoteref">
    <xs:complexType>
      <xs:attributeGroup ref="db:db.footnoteref.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.xref.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.xref.xrefstyle.attribute">
    <xs:attributeGroup ref="db:db.xrefstyle.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.xref.endterm.attribute">
    <xs:attributeGroup ref="db:db.endterm.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.xref.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.req.linking.attributes"/>
    <xs:attribute name="xrefstyle"/>
    <xs:attribute name="endterm" type="xs:IDREF"/>
  </xs:attributeGroup>
  <xs:element name="xref">
    <xs:complexType>
      <xs:attributeGroup ref="db:db.xref.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.link.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.link.xrefstyle.attribute">
    <xs:attributeGroup ref="db:db.xrefstyle.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.link.endterm.attribute">
    <xs:attributeGroup ref="db:db.endterm.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.link.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attributeGroup ref="db:db.common.req.linking.attributes"/>
    <xs:attribute name="xrefstyle"/>
    <xs:attribute name="endterm" type="xs:IDREF"/>
  </xs:attributeGroup>
  <xs:element name="link">
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.link.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.olink.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.olink.xrefstyle.attribute">
    <xs:attributeGroup ref="db:db.xrefstyle.attribute"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.olink.localinfo.attribute">
    <xs:attribute name="localinfo" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.olink.targetdoc.attribute">
    <xs:attribute name="targetdoc" use="required" type="xs:anyURI"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.olink.targetptr.attribute">
    <xs:attribute name="targetptr" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.olink.type.attribute">
    <xs:attribute name="type" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.olink.attlist">
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
    <xs:attribute name="targetdoc" type="xs:anyURI"/>
    <xs:attribute name="role"/>
    <xs:attribute name="xrefstyle"/>
    <xs:attribute name="localinfo"/>
    <xs:attribute name="targetptr"/>
    <xs:attribute name="type"/>
  </xs:attributeGroup>
  <xs:element name="olink">
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="db:db.all.inlines"/>
      <xs:attributeGroup ref="db:db.olink.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.anchor.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.anchor.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="db:db.common.idreq.attributes"/>
  </xs:attributeGroup>
  <xs:element name="anchor">
    <xs:complexType>
      <xs:attributeGroup ref="db:db.anchor.attlist"/>
    </xs:complexType>
  </xs:element>
  <!-- ====================================================================== -->
  <xs:attributeGroup name="db.alt.role.attribute">
    <xs:attribute name="role" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="db.alt.attlist">
    <xs:attribute name="role"/>
    <xs:attributeGroup ref="dbs:db.common.attributes"/>
  </xs:attributeGroup>
  <xs:element name="alt">
    <xs:complexType mixed="true">
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="db:inlinemediaobject"/>
      </xs:sequence>
      <xs:attributeGroup ref="db:db.alt.attlist"/>
    </xs:complexType>
  </xs:element>
</xs:schema>
