<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="1.0">
  <xs:simpleType name="yesorno">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:group name="titles">
    <xs:sequence>
      <xs:element minOccurs="0" ref="title"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="tbl.table-titles.mdl">
    <xs:sequence>
      <xs:group ref="titles"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="tbl.table-main.mdl">
    <xs:choice>
      <xs:element maxOccurs="unbounded" ref="tgroup"/>
      <xs:element maxOccurs="unbounded" ref="graphic"/>
    </xs:choice>
  </xs:group>
  <xs:attributeGroup name="tbl.table.att">
    <xs:attribute name="tabstyle"/>
    <xs:attribute name="tocentry" type="yesorno"/>
    <xs:attribute name="shortentry" type="yesorno"/>
    <xs:attribute name="orient">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="port"/>
          <xs:enumeration value="land"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="pgwide" type="yesorno"/>
  </xs:attributeGroup>
  <xs:complexType name="tbl.tgroup.mdl">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="colspec"/>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="spanspec"/>
      <xs:element minOccurs="0" ref="thead"/>
      <xs:element minOccurs="0" ref="tfoot"/>
      <xs:element ref="tbody"/>
    </xs:sequence>
  </xs:complexType>
  <xs:attributeGroup name="tbl.tgroup.att">
    <xs:attribute name="tgroupstyle"/>
  </xs:attributeGroup>
  <xs:complexType name="tbl.hdft.mdl">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="colspec"/>
      <xs:element maxOccurs="unbounded" ref="row"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="tbl.row.mdl">
    <xs:choice maxOccurs="unbounded">
      <xs:element ref="entry"/>
      <xs:element ref="entrytbl"/>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="tbl.entrytbl.mdl">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="colspec"/>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="spanspec"/>
      <xs:element minOccurs="0" ref="thead"/>
      <xs:element ref="tbody"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="table">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="tbl.table.mdl">
          <xs:attributeGroup ref="table.attlist"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="table.attlist">
    <xs:attribute name="frame">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="top"/>
          <xs:enumeration value="bottom"/>
          <xs:enumeration value="topbot"/>
          <xs:enumeration value="all"/>
          <xs:enumeration value="sides"/>
          <xs:enumeration value="none"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="colsep" type="yesorno"/>
    <xs:attribute name="rowsep" type="yesorno"/>
    <xs:attributeGroup ref="tbl.table.att"/>
    <xs:attributeGroup ref="bodyatt"/>
    <xs:attributeGroup ref="secur"/>
  </xs:attributeGroup>
  <xs:element name="tgroup">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="tbl.tgroup.mdl">
          <xs:attributeGroup ref="tgroup.attlist"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="tgroup.attlist">
    <xs:attribute name="cols" use="required"/>
    <xs:attributeGroup ref="tbl.tgroup.att"/>
    <xs:attribute name="colsep" type="yesorno"/>
    <xs:attribute name="rowsep" type="yesorno"/>
    <xs:attribute name="align">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="left"/>
          <xs:enumeration value="right"/>
          <xs:enumeration value="center"/>
          <xs:enumeration value="justify"/>
          <xs:enumeration value="char"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="char"/>
    <xs:attribute name="charoff"/>
    <xs:attributeGroup ref="secur"/>
  </xs:attributeGroup>
  <xs:element name="colspec">
    <xs:complexType>
      <xs:attributeGroup ref="colspec.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="colspec.attlist">
    <xs:attribute name="colnum"/>
    <xs:attribute name="colname"/>
    <xs:attribute name="colwidth"/>
    <xs:attribute name="colsep" type="yesorno"/>
    <xs:attribute name="rowsep" type="yesorno"/>
    <xs:attribute name="align">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="left"/>
          <xs:enumeration value="right"/>
          <xs:enumeration value="center"/>
          <xs:enumeration value="justify"/>
          <xs:enumeration value="char"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="char"/>
    <xs:attribute name="charoff"/>
  </xs:attributeGroup>
  <xs:element name="spanspec">
    <xs:complexType>
      <xs:attributeGroup ref="spanspec.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="spanspec.attlist">
    <xs:attribute name="namest" use="required"/>
    <xs:attribute name="nameend" use="required"/>
    <xs:attribute name="spanname" use="required"/>
    <xs:attribute name="colsep" type="yesorno"/>
    <xs:attribute name="rowsep" type="yesorno"/>
    <xs:attribute name="align">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="left"/>
          <xs:enumeration value="right"/>
          <xs:enumeration value="center"/>
          <xs:enumeration value="justify"/>
          <xs:enumeration value="char"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="char"/>
    <xs:attribute name="charoff"/>
  </xs:attributeGroup>
  <xs:element name="thead">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="tbl.hdft.mdl">
          <xs:attributeGroup ref="thead.attlist"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="thead.attlist">
    <xs:attribute name="valign">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="top"/>
          <xs:enumeration value="middle"/>
          <xs:enumeration value="bottom"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attributeGroup ref="secur"/>
  </xs:attributeGroup>
  <xs:element name="tfoot">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="tbl.hdft.mdl">
          <xs:attributeGroup ref="tfoot.attlist"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="tfoot.attlist">
    <xs:attribute name="valign">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="top"/>
          <xs:enumeration value="middle"/>
          <xs:enumeration value="bottom"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attributeGroup ref="secur"/>
  </xs:attributeGroup>
  <xs:element name="tbody">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="row"/>
      </xs:sequence>
      <xs:attributeGroup ref="tbody.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="tbody.attlist">
    <xs:attribute name="valign">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="top"/>
          <xs:enumeration value="middle"/>
          <xs:enumeration value="bottom"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attributeGroup ref="secur"/>
  </xs:attributeGroup>
  <xs:element name="row">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="tbl.row.mdl">
          <xs:attributeGroup ref="row.attlist"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="row.attlist">
    <xs:attribute name="rowsep" type="yesorno"/>
    <xs:attribute name="valign">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="top"/>
          <xs:enumeration value="middle"/>
          <xs:enumeration value="bottom"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attributeGroup ref="secur"/>
  </xs:attributeGroup>
  <xs:element name="entrytbl">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="tbl.entrytbl.mdl">
          <xs:attributeGroup ref="entrytbl.attlist"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="entrytbl.attlist">
    <xs:attribute name="cols" use="required"/>
    <xs:attributeGroup ref="tbl.tgroup.att"/>
    <xs:attribute name="colname"/>
    <xs:attribute name="spanname"/>
    <xs:attribute name="namest"/>
    <xs:attribute name="nameend"/>
    <xs:attribute name="colsep" type="yesorno"/>
    <xs:attribute name="rowsep" type="yesorno"/>
    <xs:attribute name="align">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="left"/>
          <xs:enumeration value="right"/>
          <xs:enumeration value="center"/>
          <xs:enumeration value="justify"/>
          <xs:enumeration value="char"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="char"/>
    <xs:attribute name="charoff"/>
    <xs:attributeGroup ref="secur"/>
  </xs:attributeGroup>
  <xs:element name="entry">
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="tbl.entry.mdl"/>
      <xs:attributeGroup ref="entry.attlist"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="entry.attlist">
    <xs:attribute name="colname"/>
    <xs:attribute name="namest"/>
    <xs:attribute name="nameend"/>
    <xs:attribute name="spanname"/>
    <xs:attribute name="morerows"/>
    <xs:attribute name="colsep" type="yesorno"/>
    <xs:attribute name="rowsep" type="yesorno"/>
    <xs:attribute name="align">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="left"/>
          <xs:enumeration value="right"/>
          <xs:enumeration value="center"/>
          <xs:enumeration value="justify"/>
          <xs:enumeration value="char"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="char"/>
    <xs:attribute name="charoff"/>
    <xs:attribute name="rotate" type="yesorno"/>
    <xs:attribute name="valign">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="top"/>
          <xs:enumeration value="middle"/>
          <xs:enumeration value="bottom"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attributeGroup ref="secur"/>
  </xs:attributeGroup>
</xs:schema>

