Click here to Skip to main content
15,880,796 members
Articles / Web Development / ASP.NET

XsdTidy beautifies the Xsd.exe output *with full DocBook .NET Wrapper*

Rate me:
Please Sign up or sign in to vote.
4.89/5 (32 votes)
1 Mar 20048 min read 185.5K   2.4K   72  
Refactors the Xsd.exe classes. Shipped with a full .NET wrapper of DocBook.
<?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>

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


Written By
Engineer
United States United States
Jonathan de Halleux is Civil Engineer in Applied Mathematics. He finished his PhD in 2004 in the rainy country of Belgium. After 2 years in the Common Language Runtime (i.e. .net), he is now working at Microsoft Research on Pex (http://research.microsoft.com/pex).

Comments and Discussions