<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="1.0">
  <xs:group name="appendix.class">
    <xs:sequence>
      <xs:element ref="appendix"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="article.class">
    <xs:sequence>
      <xs:element ref="article"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="book.class">
    <xs:sequence>
      <xs:element ref="book"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="chapter.class">
    <xs:sequence>
      <xs:element ref="chapter"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="index.class">
    <xs:choice>
      <xs:element ref="index"/>
      <xs:element ref="setindex"/>
    </xs:choice>
  </xs:group>
  <xs:group name="refentry.class">
    <xs:sequence>
      <xs:element ref="refentry"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="section.class">
    <xs:sequence>
      <xs:element ref="section"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="nav.class">
    <xs:choice>
      <xs:element ref="toc"/>
      <xs:element ref="lot"/>
      <xs:element ref="index"/>
      <xs:element ref="glossary"/>
      <xs:element ref="bibliography"/>
    </xs:choice>
  </xs:group>
  <xs:group name="divcomponent.mix">
    <xs:choice>
      <xs:group ref="list.class"/>
      <xs:group ref="admon.class"/>
      <xs:group ref="linespecific.class"/>
      <xs:group ref="synop.class"/>
      <xs:group ref="para.class"/>
      <xs:group ref="informal.class"/>
      <xs:group ref="formal.class"/>
      <xs:group ref="compound.class"/>
      <xs:group ref="genobj.class"/>
      <xs:group ref="descobj.class"/>
      <xs:group ref="ndxterm.class"/>
      <xs:element ref="beginpage"/>
    </xs:choice>
  </xs:group>
  <xs:group name="refcomponent.mix">
    <xs:choice>
      <xs:group ref="list.class"/>
      <xs:group ref="admon.class"/>
      <xs:group ref="linespecific.class"/>
      <xs:group ref="synop.class"/>
      <xs:group ref="para.class"/>
      <xs:group ref="informal.class"/>
      <xs:group ref="formal.class"/>
      <xs:group ref="compound.class"/>
      <xs:group ref="genobj.class"/>
      <xs:group ref="descobj.class"/>
      <xs:group ref="ndxterm.class"/>
      <xs:element ref="beginpage"/>
    </xs:choice>
  </xs:group>
  <xs:group name="indexdivcomponent.mix">
    <xs:choice>
      <xs:element ref="itemizedlist"/>
      <xs:element ref="orderedlist"/>
      <xs:element ref="variablelist"/>
      <xs:element ref="simplelist"/>
      <xs:group ref="linespecific.class"/>
      <xs:group ref="synop.class"/>
      <xs:group ref="para.class"/>
      <xs:group ref="informal.class"/>
      <xs:element ref="anchor"/>
      <xs:element ref="remark"/>
      <xs:group ref="link.char.class"/>
      <xs:element ref="beginpage"/>
    </xs:choice>
  </xs:group>
  <xs:group name="refname.char.mix">
    <xs:sequence>
      <xs:group minOccurs="0" ref="tech.char.class"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="partcontent.mix">
    <xs:choice>
      <xs:group ref="appendix.class"/>
      <xs:group ref="chapter.class"/>
      <xs:group ref="nav.class"/>
      <xs:group ref="article.class"/>
      <xs:element ref="preface"/>
      <xs:group ref="refentry.class"/>
      <xs:element ref="reference"/>
    </xs:choice>
  </xs:group>
  <xs:group name="refinline.char.mix">
    <xs:sequence>
      <xs:choice minOccurs="0">
        <xs:group ref="xref.char.class"/>
        <xs:group ref="gen.char.class"/>
        <xs:group ref="link.char.class"/>
        <xs:group ref="tech.char.class"/>
        <xs:group ref="base.char.class"/>
        <xs:group ref="docinfo.char.class"/>
        <xs:group ref="other.char.class"/>
        <xs:group ref="ndxterm.class"/>
        <xs:element ref="beginpage"/>
      </xs:choice>
    </xs:sequence>
  </xs:group>
  <xs:group name="refclass.char.mix">
    <xs:sequence>
      <xs:element minOccurs="0" ref="application"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="div.title.content">
    <xs:sequence>
      <xs:element ref="title"/>
      <xs:element minOccurs="0" ref="subtitle"/>
      <xs:element minOccurs="0" ref="titleabbrev"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="bookcomponent.title.content">
    <xs:sequence>
      <xs:element ref="title"/>
      <xs:element minOccurs="0" ref="subtitle"/>
      <xs:element minOccurs="0" ref="titleabbrev"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="sect.title.content">
    <xs:sequence>
      <xs:element ref="title"/>
      <xs:element minOccurs="0" ref="subtitle"/>
      <xs:element minOccurs="0" ref="titleabbrev"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="refsect.title.content">
    <xs:sequence>
      <xs:element ref="title"/>
      <xs:element minOccurs="0" ref="subtitle"/>
      <xs:element minOccurs="0" ref="titleabbrev"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="bookcomponent.content">
    <xs:choice>
      <xs:sequence>
        <xs:group maxOccurs="unbounded" ref="divcomponent.mix"/>
        <xs:choice>
          <xs:element minOccurs="0" maxOccurs="unbounded" ref="sect1"/>
          <xs:group minOccurs="0" maxOccurs="unbounded" ref="refentry.class"/>
          <xs:element minOccurs="0" maxOccurs="unbounded" ref="simplesect"/>
          <xs:group minOccurs="0" maxOccurs="unbounded" ref="section.class"/>
        </xs:choice>
      </xs:sequence>
      <xs:element maxOccurs="unbounded" ref="sect1"/>
      <xs:group maxOccurs="unbounded" ref="refentry.class"/>
      <xs:element maxOccurs="unbounded" ref="simplesect"/>
      <xs:group maxOccurs="unbounded" ref="section.class"/>
    </xs:choice>
  </xs:group>
  <xs:attributeGroup name="set.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="set">
    <xs:complexType>
      <xs:sequence>
        <xs:group minOccurs="0" ref="div.title.content"/>
        <xs:element minOccurs="0" ref="setinfo"/>
        <xs:element minOccurs="0" ref="toc"/>
        <xs:group maxOccurs="unbounded" ref="book.class"/>
        <xs:element minOccurs="0" ref="setindex"/>
      </xs:sequence>
      <xs:attributeGroup ref="set.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="set.attlist">
    <xs:attribute name="fpi"/>
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="set.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="setinfo.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="setinfo">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="setinfo.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="setinfo.attlist">
    <xs:attribute name="contents" type="xs:IDREFS"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="setinfo.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="book.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="book">
    <xs:complexType>
      <xs:sequence>
        <xs:group minOccurs="0" ref="div.title.content"/>
        <xs:element minOccurs="0" ref="bookinfo"/>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element ref="dedication"/>
          <xs:element ref="toc"/>
          <xs:element ref="lot"/>
          <xs:element ref="glossary"/>
          <xs:element ref="bibliography"/>
          <xs:element ref="preface"/>
          <xs:group ref="chapter.class"/>
          <xs:element ref="reference"/>
          <xs:element ref="part"/>
          <xs:group ref="article.class"/>
          <xs:group ref="appendix.class"/>
          <xs:group ref="index.class"/>
          <xs:element ref="colophon"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="book.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="book.attlist">
    <xs:attribute name="fpi"/>
    <xs:attributeGroup ref="label.attrib"/>
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="book.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="bookinfo.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="bookinfo">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="bookinfo.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="bookinfo.attlist">
    <xs:attribute name="contents" type="xs:IDREFS"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="bookinfo.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="dedication.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="dedication">
    <xs:complexType>
      <xs:sequence>
        <xs:group minOccurs="0" ref="sect.title.content"/>
        <xs:group maxOccurs="unbounded" ref="legalnotice.mix"/>
      </xs:sequence>
      <xs:attributeGroup ref="dedication.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="dedication.attlist">
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="dedication.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="colophon.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="colophon">
    <xs:complexType>
      <xs:sequence>
        <xs:group minOccurs="0" ref="sect.title.content"/>
        <xs:group maxOccurs="unbounded" ref="textobject.mix"/>
      </xs:sequence>
      <xs:attributeGroup ref="colophon.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="colophon.attlist">
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="colophon.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="toc.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="toc">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="beginpage"/>
        <xs:group minOccurs="0" ref="bookcomponent.title.content"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="tocfront"/>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element ref="tocpart"/>
          <xs:element ref="tocchap"/>
        </xs:choice>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="tocback"/>
      </xs:sequence>
      <xs:attributeGroup ref="toc.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="toc.attlist">
    <xs:attributeGroup ref="pagenum.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="toc.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="tocfront.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="tocfront">
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="para.char.mix"/>
      <xs:attributeGroup ref="tocfront.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="tocfront.attlist">
    <xs:attributeGroup ref="label.attrib"/>
    <xs:attributeGroup ref="linkend.attrib"/>
    <xs:attributeGroup ref="pagenum.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="tocfront.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="tocentry.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="tocentry">
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="para.char.mix"/>
      <xs:attributeGroup ref="tocentry.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="tocentry.attlist">
    <xs:attributeGroup ref="linkend.attrib"/>
    <xs:attributeGroup ref="pagenum.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="tocentry.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="tocpart.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="tocpart">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="tocentry"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="tocchap"/>
      </xs:sequence>
      <xs:attributeGroup ref="tocpart.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="tocpart.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="tocpart.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="tocchap.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="tocchap">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="tocentry"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="toclevel1"/>
      </xs:sequence>
      <xs:attributeGroup ref="tocchap.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="tocchap.attlist">
    <xs:attributeGroup ref="label.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="tocchap.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="toclevel1.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="toclevel1">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="tocentry"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="toclevel2"/>
      </xs:sequence>
      <xs:attributeGroup ref="toclevel1.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="toclevel1.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="toclevel1.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="toclevel2.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="toclevel2">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="tocentry"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="toclevel3"/>
      </xs:sequence>
      <xs:attributeGroup ref="toclevel2.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="toclevel2.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="toclevel2.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="toclevel3.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="toclevel3">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="tocentry"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="toclevel4"/>
      </xs:sequence>
      <xs:attributeGroup ref="toclevel3.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="toclevel3.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="toclevel3.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="toclevel4.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="toclevel4">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="tocentry"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="toclevel5"/>
      </xs:sequence>
      <xs:attributeGroup ref="toclevel4.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="toclevel4.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="toclevel4.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="toclevel5.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="toclevel5">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="tocentry"/>
      </xs:sequence>
      <xs:attributeGroup ref="toclevel5.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="toclevel5.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="toclevel5.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="tocback.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="tocback">
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="para.char.mix"/>
      <xs:attributeGroup ref="tocback.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="tocback.attlist">
    <xs:attributeGroup ref="label.attrib"/>
    <xs:attributeGroup ref="linkend.attrib"/>
    <xs:attributeGroup ref="pagenum.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="tocback.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="lot.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="lot">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="beginpage"/>
        <xs:group minOccurs="0" ref="bookcomponent.title.content"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="lotentry"/>
      </xs:sequence>
      <xs:attributeGroup ref="lot.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="lot.attlist">
    <xs:attributeGroup ref="label.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="lot.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="lotentry.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="lotentry">
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="para.char.mix"/>
      <xs:attributeGroup ref="lotentry.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="lotentry.attlist">
    <xs:attributeGroup ref="linkend.attrib"/>
    <xs:attributeGroup ref="pagenum.attrib"/>
    <xs:attribute name="srccredit"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="lotentry.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="appendix.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="appendix">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="beginpage"/>
        <xs:element minOccurs="0" ref="appendixinfo"/>
        <xs:group ref="bookcomponent.title.content"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
        <xs:element minOccurs="0" ref="tocchap"/>
        <xs:group ref="bookcomponent.content"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
      </xs:sequence>
      <xs:attributeGroup ref="appendix.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="appendix.attlist">
    <xs:attributeGroup ref="label.attrib"/>
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="appendix.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="chapter.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="chapter">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="beginpage"/>
        <xs:element minOccurs="0" ref="chapterinfo"/>
        <xs:group ref="bookcomponent.title.content"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
        <xs:element minOccurs="0" ref="tocchap"/>
        <xs:group ref="bookcomponent.content"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
      </xs:sequence>
      <xs:attributeGroup ref="chapter.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="chapter.attlist">
    <xs:attributeGroup ref="label.attrib"/>
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="chapter.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="part.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="part">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="beginpage"/>
        <xs:element minOccurs="0" ref="partinfo"/>
        <xs:group ref="bookcomponent.title.content"/>
        <xs:element minOccurs="0" ref="partintro"/>
        <xs:group maxOccurs="unbounded" ref="partcontent.mix"/>
      </xs:sequence>
      <xs:attributeGroup ref="part.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="part.attlist">
    <xs:attributeGroup ref="label.attrib"/>
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="part.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="preface.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="preface">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="beginpage"/>
        <xs:element minOccurs="0" ref="prefaceinfo"/>
        <xs:group ref="bookcomponent.title.content"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
        <xs:element minOccurs="0" ref="tocchap"/>
        <xs:group ref="bookcomponent.content"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
      </xs:sequence>
      <xs:attributeGroup ref="preface.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="preface.attlist">
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="preface.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="reference.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="reference">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="beginpage"/>
        <xs:element minOccurs="0" ref="referenceinfo"/>
        <xs:group ref="bookcomponent.title.content"/>
        <xs:element minOccurs="0" ref="partintro"/>
        <xs:group maxOccurs="unbounded" ref="refentry.class"/>
      </xs:sequence>
      <xs:attributeGroup ref="reference.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="reference.attlist">
    <xs:attributeGroup ref="label.attrib"/>
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="reference.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="partintro.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="partintro">
    <xs:complexType>
      <xs:sequence>
        <xs:group minOccurs="0" ref="div.title.content"/>
        <xs:group ref="bookcomponent.content"/>
      </xs:sequence>
      <xs:attributeGroup ref="partintro.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="partintro.attlist">
    <xs:attributeGroup ref="label.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="partintro.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="appendixinfo.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="appendixinfo">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="appendixinfo.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="appendixinfo.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="appendixinfo.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="bibliographyinfo.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="bibliographyinfo">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="bibliographyinfo.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="bibliographyinfo.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="bibliographyinfo.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="chapterinfo.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="chapterinfo">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="chapterinfo.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="chapterinfo.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="chapterinfo.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="glossaryinfo.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="glossaryinfo">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="glossaryinfo.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="glossaryinfo.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="glossaryinfo.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="indexinfo.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="indexinfo">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="indexinfo.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="indexinfo.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="indexinfo.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="setindexinfo.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="setindexinfo">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="setindexinfo.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="setindexinfo.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="setindexinfo.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="partinfo.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="partinfo">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="partinfo.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="partinfo.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="partinfo.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="prefaceinfo.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="prefaceinfo">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="prefaceinfo.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="prefaceinfo.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="prefaceinfo.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="refentryinfo.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="refentryinfo">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="refentryinfo.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="refentryinfo.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="refentryinfo.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="refsectioninfo.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="refsectioninfo">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="refsectioninfo.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="refsectioninfo.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="refsectioninfo.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="refsect1info.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="refsect1info">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="refsect1info.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="refsect1info.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="refsect1info.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="refsect2info.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="refsect2info">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="refsect2info.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="refsect2info.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="refsect2info.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="refsect3info.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="refsect3info">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="refsect3info.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="refsect3info.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="refsect3info.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="refsynopsisdivinfo.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="refsynopsisdivinfo">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="refsynopsisdivinfo.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="refsynopsisdivinfo.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="refsynopsisdivinfo.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="referenceinfo.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="referenceinfo">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="referenceinfo.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="referenceinfo.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="referenceinfo.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="sect1info.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="sect1info">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="sect1info.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="sect1info.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="sect1info.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="sect2info.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="sect2info">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="sect2info.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="sect2info.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="sect2info.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="sect3info.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="sect3info">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="sect3info.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="sect3info.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="sect3info.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="sect4info.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="sect4info">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="sect4info.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="sect4info.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="sect4info.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="sect5info.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="sect5info">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="sect5info.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="sect5info.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="sect5info.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="section.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="section">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="sectioninfo"/>
        <xs:group ref="sect.title.content"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
        <xs:choice>
          <xs:sequence>
            <xs:group maxOccurs="unbounded" ref="divcomponent.mix"/>
            <xs:choice>
              <xs:group minOccurs="0" maxOccurs="unbounded" ref="refentry.class"/>
              <xs:group minOccurs="0" maxOccurs="unbounded" ref="section.class"/>
              <xs:element minOccurs="0" maxOccurs="unbounded" ref="simplesect"/>
            </xs:choice>
          </xs:sequence>
          <xs:group maxOccurs="unbounded" ref="refentry.class"/>
          <xs:group maxOccurs="unbounded" ref="section.class"/>
          <xs:element maxOccurs="unbounded" ref="simplesect"/>
        </xs:choice>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
      </xs:sequence>
      <xs:attributeGroup ref="section.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="section.attlist">
    <xs:attributeGroup ref="label.attrib"/>
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="section.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="sectioninfo.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="sectioninfo">
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="info.class"/>
      <xs:attributeGroup ref="sectioninfo.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="sectioninfo.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="sectioninfo.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="sect1.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="sect1">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="sect1info"/>
        <xs:group ref="sect.title.content"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
        <xs:choice>
          <xs:sequence>
            <xs:group maxOccurs="unbounded" ref="divcomponent.mix"/>
            <xs:choice>
              <xs:group minOccurs="0" maxOccurs="unbounded" ref="refentry.class"/>
              <xs:element minOccurs="0" maxOccurs="unbounded" ref="sect2"/>
              <xs:element minOccurs="0" maxOccurs="unbounded" ref="simplesect"/>
            </xs:choice>
          </xs:sequence>
          <xs:group maxOccurs="unbounded" ref="refentry.class"/>
          <xs:element maxOccurs="unbounded" ref="sect2"/>
          <xs:element maxOccurs="unbounded" ref="simplesect"/>
        </xs:choice>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
      </xs:sequence>
      <xs:attributeGroup ref="sect1.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="sect1.attlist">
    <xs:attribute name="renderas">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="sect2"/>
          <xs:enumeration value="sect3"/>
          <xs:enumeration value="sect4"/>
          <xs:enumeration value="sect5"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attributeGroup ref="label.attrib"/>
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="sect1.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="sect2.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="sect2">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="sect2info"/>
        <xs:group ref="sect.title.content"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
        <xs:choice>
          <xs:sequence>
            <xs:group maxOccurs="unbounded" ref="divcomponent.mix"/>
            <xs:choice>
              <xs:group minOccurs="0" maxOccurs="unbounded" ref="refentry.class"/>
              <xs:element minOccurs="0" maxOccurs="unbounded" ref="sect3"/>
              <xs:element minOccurs="0" maxOccurs="unbounded" ref="simplesect"/>
            </xs:choice>
          </xs:sequence>
          <xs:group maxOccurs="unbounded" ref="refentry.class"/>
          <xs:element maxOccurs="unbounded" ref="sect3"/>
          <xs:element maxOccurs="unbounded" ref="simplesect"/>
        </xs:choice>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
      </xs:sequence>
      <xs:attributeGroup ref="sect2.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="sect2.attlist">
    <xs:attribute name="renderas">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="sect1"/>
          <xs:enumeration value="sect3"/>
          <xs:enumeration value="sect4"/>
          <xs:enumeration value="sect5"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attributeGroup ref="label.attrib"/>
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="sect2.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="sect3.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="sect3">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="sect3info"/>
        <xs:group ref="sect.title.content"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
        <xs:choice>
          <xs:sequence>
            <xs:group maxOccurs="unbounded" ref="divcomponent.mix"/>
            <xs:choice>
              <xs:group minOccurs="0" maxOccurs="unbounded" ref="refentry.class"/>
              <xs:element minOccurs="0" maxOccurs="unbounded" ref="sect4"/>
              <xs:element minOccurs="0" maxOccurs="unbounded" ref="simplesect"/>
            </xs:choice>
          </xs:sequence>
          <xs:group maxOccurs="unbounded" ref="refentry.class"/>
          <xs:element maxOccurs="unbounded" ref="sect4"/>
          <xs:element maxOccurs="unbounded" ref="simplesect"/>
        </xs:choice>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
      </xs:sequence>
      <xs:attributeGroup ref="sect3.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="sect3.attlist">
    <xs:attribute name="renderas">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="sect1"/>
          <xs:enumeration value="sect2"/>
          <xs:enumeration value="sect4"/>
          <xs:enumeration value="sect5"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attributeGroup ref="label.attrib"/>
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="sect3.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="sect4.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="sect4">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="sect4info"/>
        <xs:group ref="sect.title.content"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
        <xs:choice>
          <xs:sequence>
            <xs:group maxOccurs="unbounded" ref="divcomponent.mix"/>
            <xs:choice>
              <xs:group minOccurs="0" maxOccurs="unbounded" ref="refentry.class"/>
              <xs:element minOccurs="0" maxOccurs="unbounded" ref="sect5"/>
              <xs:element minOccurs="0" maxOccurs="unbounded" ref="simplesect"/>
            </xs:choice>
          </xs:sequence>
          <xs:group maxOccurs="unbounded" ref="refentry.class"/>
          <xs:element maxOccurs="unbounded" ref="sect5"/>
          <xs:element maxOccurs="unbounded" ref="simplesect"/>
        </xs:choice>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
      </xs:sequence>
      <xs:attributeGroup ref="sect4.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="sect4.attlist">
    <xs:attribute name="renderas">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="sect1"/>
          <xs:enumeration value="sect2"/>
          <xs:enumeration value="sect3"/>
          <xs:enumeration value="sect5"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attributeGroup ref="label.attrib"/>
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="sect4.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="sect5.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="sect5">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="sect5info"/>
        <xs:group ref="sect.title.content"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
        <xs:choice>
          <xs:sequence>
            <xs:group maxOccurs="unbounded" ref="divcomponent.mix"/>
            <xs:choice>
              <xs:group minOccurs="0" maxOccurs="unbounded" ref="refentry.class"/>
              <xs:element minOccurs="0" maxOccurs="unbounded" ref="simplesect"/>
            </xs:choice>
          </xs:sequence>
          <xs:group maxOccurs="unbounded" ref="refentry.class"/>
          <xs:element maxOccurs="unbounded" ref="simplesect"/>
        </xs:choice>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
      </xs:sequence>
      <xs:attributeGroup ref="sect5.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="sect5.attlist">
    <xs:attribute name="renderas">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="sect1"/>
          <xs:enumeration value="sect2"/>
          <xs:enumeration value="sect3"/>
          <xs:enumeration value="sect4"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attributeGroup ref="label.attrib"/>
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="sect5.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="simplesect.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="simplesect">
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="sect.title.content"/>
        <xs:group maxOccurs="unbounded" ref="divcomponent.mix"/>
      </xs:sequence>
      <xs:attributeGroup ref="simplesect.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="simplesect.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="simplesect.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="bibliography.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="bibliography">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="bibliographyinfo"/>
        <xs:group minOccurs="0" ref="bookcomponent.title.content"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="component.mix"/>
        <xs:choice>
          <xs:element maxOccurs="unbounded" ref="bibliodiv"/>
          <xs:choice maxOccurs="unbounded">
            <xs:element ref="biblioentry"/>
            <xs:element ref="bibliomixed"/>
          </xs:choice>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="bibliography.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="bibliography.attlist">
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="bibliography.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="bibliodiv.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="bibliodiv">
    <xs:complexType>
      <xs:sequence>
        <xs:group minOccurs="0" ref="sect.title.content"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="component.mix"/>
        <xs:choice maxOccurs="unbounded">
          <xs:element ref="biblioentry"/>
          <xs:element ref="bibliomixed"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="bibliodiv.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="bibliodiv.attlist">
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="bibliodiv.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="glossary.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="glossary">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="glossaryinfo"/>
        <xs:group minOccurs="0" ref="bookcomponent.title.content"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="component.mix"/>
        <xs:choice>
          <xs:element maxOccurs="unbounded" ref="glossdiv"/>
          <xs:element maxOccurs="unbounded" ref="glossentry"/>
        </xs:choice>
        <xs:element minOccurs="0" ref="bibliography"/>
      </xs:sequence>
      <xs:attributeGroup ref="glossary.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="glossary.attlist">
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="glossary.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="glossdiv.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="glossdiv">
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="sect.title.content"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="component.mix"/>
        <xs:element maxOccurs="unbounded" ref="glossentry"/>
      </xs:sequence>
      <xs:attributeGroup ref="glossdiv.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="glossdiv.attlist">
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="glossdiv.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="indexes.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="index">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="indexinfo"/>
        <xs:group minOccurs="0" ref="bookcomponent.title.content"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="component.mix"/>
        <xs:choice>
          <xs:element minOccurs="0" maxOccurs="unbounded" ref="indexdiv"/>
          <xs:element minOccurs="0" maxOccurs="unbounded" ref="indexentry"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="index.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="index.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="indexes.role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="setindex">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="setindexinfo"/>
        <xs:group minOccurs="0" ref="bookcomponent.title.content"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="component.mix"/>
        <xs:choice>
          <xs:element minOccurs="0" maxOccurs="unbounded" ref="indexdiv"/>
          <xs:element minOccurs="0" maxOccurs="unbounded" ref="indexentry"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="setindex.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="setindex.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="indexes.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="indexdiv.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="indexdiv">
    <xs:complexType>
      <xs:sequence>
        <xs:group minOccurs="0" ref="sect.title.content"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="indexdivcomponent.mix"/>
        <xs:choice>
          <xs:element maxOccurs="unbounded" ref="indexentry"/>
          <xs:element ref="segmentedlist"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="indexdiv.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="indexdiv.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="indexdiv.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="indexentry.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="indexentry">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="primaryie"/>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element ref="seeie"/>
          <xs:element ref="seealsoie"/>
        </xs:choice>
        <xs:sequence minOccurs="0" maxOccurs="unbounded">
          <xs:element ref="secondaryie"/>
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element ref="seeie"/>
            <xs:element ref="seealsoie"/>
            <xs:element ref="tertiaryie"/>
          </xs:choice>
        </xs:sequence>
      </xs:sequence>
      <xs:attributeGroup ref="indexentry.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="indexentry.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="indexentry.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="primsecterie.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="primaryie">
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="ndxterm.char.mix"/>
      <xs:attributeGroup ref="primaryie.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="primaryie.attlist">
    <xs:attributeGroup ref="linkends.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="primsecterie.role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="secondaryie">
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="ndxterm.char.mix"/>
      <xs:attributeGroup ref="secondaryie.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="secondaryie.attlist">
    <xs:attributeGroup ref="linkends.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="primsecterie.role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="tertiaryie">
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="ndxterm.char.mix"/>
      <xs:attributeGroup ref="tertiaryie.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="tertiaryie.attlist">
    <xs:attributeGroup ref="linkends.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="primsecterie.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="seeie.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="seeie">
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="ndxterm.char.mix"/>
      <xs:attributeGroup ref="seeie.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="seeie.attlist">
    <xs:attributeGroup ref="linkend.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="seeie.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="seealsoie.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="seealsoie">
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="ndxterm.char.mix"/>
      <xs:attributeGroup ref="seealsoie.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="seealsoie.attlist">
    <xs:attributeGroup ref="linkends.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="seealsoie.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="refentry.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="refentry">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="beginpage"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="ndxterm.class"/>
        <xs:element minOccurs="0" ref="refentryinfo"/>
        <xs:element minOccurs="0" ref="refmeta"/>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element ref="remark"/>
          <xs:group ref="link.char.class"/>
        </xs:choice>
        <xs:element ref="refnamediv"/>
        <xs:element minOccurs="0" ref="refsynopsisdiv"/>
        <xs:choice>
          <xs:element maxOccurs="unbounded" ref="refsect1"/>
          <xs:element maxOccurs="unbounded" ref="refsection"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="refentry.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="refentry.attlist">
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="refentry.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="refmeta.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="refmeta">
    <xs:complexType>
      <xs:sequence>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="ndxterm.class"/>
        <xs:element ref="refentrytitle"/>
        <xs:element minOccurs="0" ref="manvolnum"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="refmiscinfo"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="ndxterm.class"/>
      </xs:sequence>
      <xs:attributeGroup ref="refmeta.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="refmeta.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="refmeta.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="refmiscinfo.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="refmiscinfo">
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
      <xs:attributeGroup ref="refmiscinfo.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="refmiscinfo.attlist">
    <xs:attribute name="class"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="refmiscinfo.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="refnamediv.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="refnamediv">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="refdescriptor"/>
        <xs:element maxOccurs="unbounded" ref="refname"/>
        <xs:element ref="refpurpose"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="refclass"/>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element ref="remark"/>
          <xs:group ref="link.char.class"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="refnamediv.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="refnamediv.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="refnamediv.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="refdescriptor.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="refdescriptor">
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="refname.char.mix"/>
      <xs:attributeGroup ref="refdescriptor.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="refdescriptor.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="refdescriptor.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="refname.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="refname">
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="refname.char.mix"/>
      <xs:attributeGroup ref="refname.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="refname.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="refname.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="refpurpose.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="refpurpose">
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="refinline.char.mix"/>
      <xs:attributeGroup ref="refpurpose.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="refpurpose.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="refpurpose.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="refclass.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="refclass">
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="refclass.char.mix"/>
      <xs:attributeGroup ref="refclass.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="refclass.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="refclass.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="refsynopsisdiv.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="refsynopsisdiv">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="refsynopsisdivinfo"/>
        <xs:group minOccurs="0" ref="refsect.title.content"/>
        <xs:choice>
          <xs:sequence>
            <xs:group maxOccurs="unbounded" ref="refcomponent.mix"/>
            <xs:element minOccurs="0" maxOccurs="unbounded" ref="refsect2"/>
          </xs:sequence>
          <xs:element maxOccurs="unbounded" ref="refsect2"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="refsynopsisdiv.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="refsynopsisdiv.attlist">
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="refsynopsisdiv.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="refsection.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="refsection">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="refsectioninfo"/>
        <xs:group ref="refsect.title.content"/>
        <xs:choice>
          <xs:sequence>
            <xs:group maxOccurs="unbounded" ref="refcomponent.mix"/>
            <xs:element minOccurs="0" maxOccurs="unbounded" ref="refsection"/>
          </xs:sequence>
          <xs:element maxOccurs="unbounded" ref="refsection"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="refsection.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="refsection.attlist">
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="refsection.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="refsect1.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="refsect1">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="refsect1info"/>
        <xs:group ref="refsect.title.content"/>
        <xs:choice>
          <xs:sequence>
            <xs:group maxOccurs="unbounded" ref="refcomponent.mix"/>
            <xs:element minOccurs="0" maxOccurs="unbounded" ref="refsect2"/>
          </xs:sequence>
          <xs:element maxOccurs="unbounded" ref="refsect2"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="refsect1.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="refsect1.attlist">
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="refsect1.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="refsect2.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="refsect2">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="refsect2info"/>
        <xs:group ref="refsect.title.content"/>
        <xs:choice>
          <xs:sequence>
            <xs:group maxOccurs="unbounded" ref="refcomponent.mix"/>
            <xs:element minOccurs="0" maxOccurs="unbounded" ref="refsect3"/>
          </xs:sequence>
          <xs:element maxOccurs="unbounded" ref="refsect3"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="refsect2.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="refsect2.attlist">
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="refsect2.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="refsect3.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="refsect3">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="refsect3info"/>
        <xs:group ref="refsect.title.content"/>
        <xs:group maxOccurs="unbounded" ref="refcomponent.mix"/>
      </xs:sequence>
      <xs:attributeGroup ref="refsect3.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="refsect3.attlist">
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="refsect3.role.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="article.role.attrib">
    <xs:attributeGroup ref="role.attrib"/>
  </xs:attributeGroup>
  <xs:element name="article">
    <xs:complexType>
      <xs:sequence>
        <xs:group minOccurs="0" ref="div.title.content"/>
        <xs:element minOccurs="0" ref="articleinfo"/>
        <xs:element minOccurs="0" ref="tocchap"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="lot"/>
        <xs:group ref="bookcomponent.content"/>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:group ref="nav.class"/>
          <xs:group ref="appendix.class"/>
          <xs:element ref="ackno"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="article.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="article.attlist">
    <xs:attribute name="class">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="journalarticle"/>
          <xs:enumeration value="productsheet"/>
          <xs:enumeration value="whitepaper"/>
          <xs:enumeration value="techreport"/>
          <xs:enumeration value="specification"/>
          <xs:enumeration value="faq"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="parentbook" type="xs:IDREF"/>
    <xs:attributeGroup ref="status.attrib"/>
    <xs:attributeGroup ref="common.attrib"/>
    <xs:attributeGroup ref="article.role.attrib"/>
  </xs:attributeGroup>
</xs:schema>

