<schema
  xmlns='http://www.w3.org/1999/XMLSchema'
  targetNamespace='http://www.w3.org/1999/xhtml'
  xmlns:html='http://www.w3.org/1999/xhtml'>

  <simpleType name='ContentType' base='string'>
  </simpleType>

  <simpleType name='ContentTypes' base='string'>
  </simpleType>

  <simpleType name='Charset' base='string'>
  </simpleType>

  <simpleType name='Charsets' base='string'>
  </simpleType>

  <simpleType name='LanguageCode' base='NMTOKEN'>
  </simpleType>

  <simpleType name='Character' base='string'>
  </simpleType>

  <simpleType name='Number' base='nonNegativeInteger'>
  </simpleType>

  <simpleType name='LinkTypes' base='string'>
  </simpleType>

  <simpleType name='MediaDesc' base='string'>
  </simpleType>

  <simpleType name='URI' base='uriReference'>
  </simpleType>

  <simpleType name='UriList' base='string'>
  </simpleType>

  <simpleType name='Script' base='string'>
  </simpleType>

  <simpleType name='StyleSheet' base='string'>
  </simpleType>

  <simpleType name='Text' base='string'>
  </simpleType>

  <simpleType name='FrameTarget' base='NMTOKEN'>
  </simpleType>

  <simpleType name='Length' base='string'>
  </simpleType>

  <simpleType name='MultiLength' base='string'>
  </simpleType>

  <simpleType name='MultiLengths' base='string'>
  </simpleType>

  <simpleType name='Pixels' base='nonNegativeInteger'>
  </simpleType>

  <simpleType name='Shape' base='string'>
     <enumeration value='rect'/>
     <enumeration value='circle'/>
     <enumeration value='poly'/>
     <enumeration value='default'/>
  </simpleType>

  <simpleType name='Coords' base='string'>
  </simpleType>

  <simpleType name='InputType' base='string'>
     <enumeration value='text'/>
     <enumeration value='password'/>
     <enumeration value='checkbox'/>
     <enumeration value='radio'/>
     <enumeration value='submit'/>
     <enumeration value='reset'/>
     <enumeration value='file'/>
     <enumeration value='hidden'/>
     <enumeration value='image'/>
     <enumeration value='button'/>
  </simpleType>

  <simpleType name='TFrame' base='string'>
     <enumeration value='void'/>
     <enumeration value='above'/>
     <enumeration value='below'/>
     <enumeration value='hsides'/>
     <enumeration value='lhs'/>
     <enumeration value='rhs'/>
     <enumeration value='vsides'/>
     <enumeration value='box'/>
     <enumeration value='border'/>
  </simpleType>

  <simpleType name='TRules' base='string'>
     <enumeration value='none'/>
     <enumeration value='groups'/>
     <enumeration value='rows'/>
     <enumeration value='cols'/>
     <enumeration value='all'/>
  </simpleType>

  <simpleType name='TAlign' base='string'>
     <enumeration value='left'/>
     <enumeration value='center'/>
     <enumeration value='right'/>
  </simpleType>

  <simpleType name='CAlign' base='string'>
     <enumeration value='top'/>
     <enumeration value='bottom'/>
     <enumeration value='left'/>
     <enumeration value='right'/>
  </simpleType>

  <simpleType name='Scope' base='string'>
     <enumeration value='row'/>
     <enumeration value='col'/>
     <enumeration value='rowgroup'/>
     <enumeration value='colgroup'/>
  </simpleType>

  <attributeGroup name='coreattrs'>
   <attribute name='id' type='ID' use='optional'/>
   <attribute name='class' type='string' use='optional'/>
   <attribute name='style' type='html:StyleSheet' use='optional'/>
   <attribute name='title' type='html:Text' use='optional'/>
  </attributeGroup>

  <attributeGroup name='i18n'>
   <attribute name='lang' type='html:LanguageCode' use='optional'/>
   <attribute name='xml:lang' type='html:LanguageCode' use='optional'/>
   <attribute name='dir' use='optional'>
    <simpleType base='string'>
     <enumeration value='ltr'/>
     <enumeration value='rtl'/>
    </simpleType>
   </attribute>
  </attributeGroup>

  <attributeGroup name='events'>
   <attribute name='onclick' type='html:Script' use='optional'/>
   <attribute name='ondblclick' type='html:Script' use='optional'/>
   <attribute name='onmousedown' type='html:Script' use='optional'/>
   <attribute name='onmouseup' type='html:Script' use='optional'/>
   <attribute name='onmouseover' type='html:Script' use='optional'/>
   <attribute name='onmousemove' type='html:Script' use='optional'/>
   <attribute name='onmouseout' type='html:Script' use='optional'/>
   <attribute name='onkeypress' type='html:Script' use='optional'/>
   <attribute name='onkeydown' type='html:Script' use='optional'/>
   <attribute name='onkeyup' type='html:Script' use='optional'/>
  </attributeGroup>

  <attributeGroup name='focus'>
   <attribute name='accesskey' type='html:Character' use='optional'/>
   <attribute name='tabindex' type='html:Number' use='optional'/>
   <attribute name='onfocus' type='html:Script' use='optional'/>
   <attribute name='onblur' type='html:Script' use='optional'/>
  </attributeGroup>

  <attributeGroup name='attrs'>
   <attributeGroup ref='html:coreattrs'/>
   <attributeGroup ref='html:i18n'/>
   <attributeGroup ref='html:events'/>
  </attributeGroup>

  <attributeGroup name='cellhalign'>
   <attribute name='align' use='optional'>
    <simpleType base='string'>
     <enumeration value='left'/>
     <enumeration value='center'/>
     <enumeration value='right'/>
     <enumeration value='justify'/>
     <enumeration value='char'/>
    </simpleType>
   </attribute>
   <attribute name='char' type='html:Character' use='optional'/>
   <attribute name='charoff' type='html:Length' use='optional'/>
  </attributeGroup>

  <attributeGroup name='cellvalign'>
   <attribute name='valign' use='optional'>
    <simpleType base='string'>
     <enumeration value='top'/>
     <enumeration value='middle'/>
     <enumeration value='bottom'/>
     <enumeration value='baseline'/>
    </simpleType>
   </attribute>
  </attributeGroup>

  <modelGroup name='special'>
<!-- br | span | bdo | object | img | map -->
   <choice>
    <element ref='html:br'/>
    <element ref='html:span'/>
    <element ref='html:bdo'/>
    <element ref='html:object'/>
    <element ref='html:img'/>
    <element ref='html:map'/>
   </choice>
  </modelGroup>

  <modelGroup name='fontstyle'>
<!-- tt | i | b | big | small -->
   <choice>
    <element ref='html:tt'/>
    <element ref='html:i'/>
    <element ref='html:b'/>
    <element ref='html:big'/>
    <element ref='html:small'/>
   </choice>
  </modelGroup>

  <modelGroup name='phrase'>
<!-- em | strong | dfn | code | q | sub | sup |
                   samp | kbd | var | cite | abbr | acronym -->
   <choice>
    <element ref='html:em'/>
    <element ref='html:strong'/>
    <element ref='html:dfn'/>
    <element ref='html:code'/>
    <element ref='html:q'/>
    <element ref='html:sub'/>
    <element ref='html:sup'/>
    <element ref='html:samp'/>
    <element ref='html:kbd'/>
    <element ref='html:var'/>
    <element ref='html:cite'/>
    <element ref='html:abbr'/>
    <element ref='html:acronym'/>
   </choice>
  </modelGroup>

  <modelGroup name='inline.forms'>
<!-- input | select | textarea | label | button -->
   <choice>
    <element ref='html:input'/>
    <element ref='html:select'/>
    <element ref='html:textarea'/>
    <element ref='html:label'/>
    <element ref='html:button'/>
   </choice>
  </modelGroup>

  <modelGroup name='misc'>
<!-- ins | del | script | noscript -->
   <choice>
    <element ref='html:ins'/>
    <element ref='html:del'/>
    <element ref='html:script'/>
    <element ref='html:noscript'/>
   </choice>
  </modelGroup>

  <modelGroup name='inline'>
<!-- a | #MODELGROUPREF special | #MODELGROUPREF fontstyle | #MODELGROUPREF phrase | #MODELGROUPREF inline.forms -->
   <choice>
    <element ref='html:a'/>
    <group ref='html:special'/>
    <group ref='html:fontstyle'/>
    <group ref='html:phrase'/>
    <group ref='html:inline.forms'/>
   </choice>
  </modelGroup>

  <modelGroup name='Inline'>
<!-- (#PCDATA | #MODELGROUPREF inline | #MODELGROUPREF misc)* -->
   <choice minOccurs='0' maxOccurs='unbounded'>
    <group ref='html:inline'/>
    <group ref='html:misc'/>
   </choice>
  </modelGroup>

  <modelGroup name='heading'>
<!-- h1|h2|h3|h4|h5|h6 -->
   <choice>
    <element ref='html:h1'/>
    <element ref='html:h2'/>
    <element ref='html:h3'/>
    <element ref='html:h4'/>
    <element ref='html:h5'/>
    <element ref='html:h6'/>
   </choice>
  </modelGroup>

  <modelGroup name='lists'>
<!-- ul | ol | dl -->
   <choice>
    <element ref='html:ul'/>
    <element ref='html:ol'/>
    <element ref='html:dl'/>
   </choice>
  </modelGroup>

  <modelGroup name='blocktext'>
<!-- pre | hr | blockquote | address -->
   <choice>
    <element ref='html:pre'/>
    <element ref='html:hr'/>
    <element ref='html:blockquote'/>
    <element ref='html:address'/>
   </choice>
  </modelGroup>

  <modelGroup name='block'>
<!-- p | #MODELGROUPREF heading | div | #MODELGROUPREF lists | #MODELGROUPREF blocktext | fieldset | table -->
   <choice>
    <element ref='html:p'/>
    <group ref='html:heading'/>
    <element ref='html:div'/>
    <group ref='html:lists'/>
    <group ref='html:blocktext'/>
    <element ref='html:fieldset'/>
    <element ref='html:table'/>
   </choice>
  </modelGroup>

  <modelGroup name='Block'>
<!-- (#MODELGROUPREF block | form | #MODELGROUPREF misc)* -->
   <choice minOccurs='0' maxOccurs='unbounded'>
    <group ref='html:block'/>
    <element ref='html:form'/>
    <group ref='html:misc'/>
   </choice>
  </modelGroup>

  <modelGroup name='Flow'>
<!-- (#PCDATA | #MODELGROUPREF block | form | #MODELGROUPREF inline | #MODELGROUPREF misc)* -->
   <choice minOccurs='0' maxOccurs='unbounded'>
    <group ref='html:block'/>
    <element ref='html:form'/>
    <group ref='html:inline'/>
    <group ref='html:misc'/>
   </choice>
  </modelGroup>

  <modelGroup name='a.content'>
<!-- (#PCDATA | #MODELGROUPREF special | #MODELGROUPREF fontstyle | #MODELGROUPREF phrase | #MODELGROUPREF inline.forms | #MODELGROUPREF misc)* -->
   <choice minOccurs='0' maxOccurs='unbounded'>
    <group ref='html:special'/>
    <group ref='html:fontstyle'/>
    <group ref='html:phrase'/>
    <group ref='html:inline.forms'/>
    <group ref='html:misc'/>
   </choice>
  </modelGroup>

  <modelGroup name='pre.content'>
<!-- (#PCDATA | a | br | span | bdo | map | tt | i | b |
      #MODELGROUPREF phrase | #MODELGROUPREF inline.forms)* -->
   <choice minOccurs='0' maxOccurs='unbounded'>
    <element ref='html:a'/>
    <element ref='html:br'/>
    <element ref='html:span'/>
    <element ref='html:bdo'/>
    <element ref='html:map'/>
    <element ref='html:tt'/>
    <element ref='html:i'/>
    <element ref='html:b'/>
    <group ref='html:phrase'/>
    <group ref='html:inline.forms'/>
   </choice>
  </modelGroup>

  <modelGroup name='form.content'>
<!-- (#MODELGROUPREF block | #MODELGROUPREF misc)* -->
   <choice minOccurs='0' maxOccurs='unbounded'>
    <group ref='html:block'/>
    <group ref='html:misc'/>
   </choice>
  </modelGroup>

  <modelGroup name='button.content'>
<!-- (#PCDATA | p | #MODELGROUPREF heading | div | #MODELGROUPREF lists | #MODELGROUPREF blocktext |
    table | #MODELGROUPREF special | #MODELGROUPREF fontstyle | #MODELGROUPREF phrase | #MODELGROUPREF misc)* -->
   <choice minOccurs='0' maxOccurs='unbounded'>
    <element ref='html:p'/>
    <group ref='html:heading'/>
    <element ref='html:div'/>
    <group ref='html:lists'/>
    <group ref='html:blocktext'/>
    <element ref='html:table'/>
    <group ref='html:special'/>
    <group ref='html:fontstyle'/>
    <group ref='html:phrase'/>
    <group ref='html:misc'/>
   </choice>
  </modelGroup>

  <modelGroup name='head.misc'>
<!-- (script|style|meta|link|object)* -->
   <choice minOccurs='0' maxOccurs='unbounded'>
    <element ref='html:script'/>
    <element ref='html:style'/>
    <element ref='html:meta'/>
    <element ref='html:link'/>
    <element ref='html:object'/>
   </choice>
  </modelGroup>

 <element name='html'>
  <complexType content='elementOnly'>
   <element ref='html:head'/>
   <element ref='html:body'/>
   <attributeGroup ref='html:i18n'/>
   <attribute name='xmlns' type='html:URI' use='fixed' value='http://www.w3.org/1999/xhtml'/>
  </complexType>
 </element>

 <element name='head'>
  <complexType content='elementOnly'>
   <group ref='html:head.misc'/>
   <choice>
    <sequence>
     <element ref='html:title'/>
     <group ref='html:head.misc'/>
     <sequence minOccurs='0' maxOccurs='1'>
      <element ref='html:base'/>
      <group ref='html:head.misc'/>
     </sequence>
    </sequence>
    <sequence>
     <element ref='html:base'/>
     <group ref='html:head.misc'/>
     <sequence>
      <element ref='html:title'/>
      <group ref='html:head.misc'/>
     </sequence>
    </sequence>
   </choice>
   <attributeGroup ref='html:i18n'/>
   <attribute name='profile' type='html:URI' use='optional'/>
  </complexType>
 </element>

 <element name='title'>
  <complexType content='mixed'>
   <attributeGroup ref='html:i18n'/>
  </complexType>
 </element>

 <element name='base'>
  <complexType content='empty'>
   <attribute name='href' type='html:URI' use='optional'/>
  </complexType>
 </element>

 <element name='meta'>
  <complexType content='empty'>
   <attributeGroup ref='html:i18n'/>
   <attribute name='http-equiv' type='string' use='optional'/>
   <attribute name='name' type='string' use='optional'/>
   <attribute name='content' type='string' use='required'/>
   <attribute name='scheme' type='string' use='optional'/>
  </complexType>
 </element>

 <element name='link'>
  <complexType content='empty'>
   <attributeGroup ref='html:attrs'/>
   <attribute name='charset' type='html:Charset' use='optional'/>
   <attribute name='href' type='html:URI' use='optional'/>
   <attribute name='hreflang' type='html:LanguageCode' use='optional'/>
   <attribute name='type' type='html:ContentType' use='optional'/>
   <attribute name='rel' type='html:LinkTypes' use='optional'/>
   <attribute name='rev' type='html:LinkTypes' use='optional'/>
   <attribute name='media' type='html:MediaDesc' use='optional'/>
  </complexType>
 </element>

 <element name='style'>
  <complexType content='mixed'>
   <attributeGroup ref='html:i18n'/>
   <attribute name='type' type='html:ContentType' use='required'/>
   <attribute name='media' type='html:MediaDesc' use='optional'/>
   <attribute name='title' type='html:Text' use='optional'/>
   <attribute name='xml:space' use='fixed' value='preserve'/>
  </complexType>
 </element>

 <element name='script'>
  <complexType content='mixed'>
   <attribute name='charset' type='html:Charset' use='optional'/>
   <attribute name='type' type='html:ContentType' use='required'/>
   <attribute name='src' type='html:URI' use='optional'/>
   <attribute name='defer' use='optional'>
    <simpleType base='string'>
     <enumeration value='defer'/>
    </simpleType>
   </attribute>
   <attribute name='xml:space' use='fixed' value='preserve'/>
  </complexType>
 </element>

 <element name='noscript'>
  <complexType content='elementOnly'>
   <group ref='html:Block'/>
   <attributeGroup ref='html:attrs'/>
  </complexType>
 </element>

 <element name='body'>
  <complexType content='elementOnly'>
   <group ref='html:Block'/>
   <attributeGroup ref='html:attrs'/>
   <attribute name='onload' type='html:Script' use='optional'/>
   <attribute name='onunload' type='html:Script' use='optional'/>
  </complexType>
 </element>

 <element name='div'>
  <complexType content='elementOnly'>
   <group ref='html:Flow'/>
   <attributeGroup ref='html:attrs'/>
  </complexType>
 </element>

 <element name='p'>
  <complexType content='elementOnly'>
   <group ref='html:Inline'/>
   <attributeGroup ref='html:attrs'/>
  </complexType>
 </element>

 <element name='h1'>
  <complexType content='elementOnly'>
   <group ref='html:Inline'/>
   <attributeGroup ref='html:attrs'/>
  </complexType>
 </element>

 <element name='h2'>
  <complexType content='elementOnly'>
   <group ref='html:Inline'/>
   <attributeGroup ref='html:attrs'/>
  </complexType>
 </element>

 <element name='h3'>
  <complexType content='elementOnly'>
   <group ref='html:Inline'/>
   <attributeGroup ref='html:attrs'/>
  </complexType>
 </element>

 <element name='h4'>
  <complexType content='elementOnly'>
   <group ref='html:Inline'/>
   <attributeGroup ref='html:attrs'/>
  </complexType>
 </element>

 <element name='h5'>
  <complexType content='elementOnly'>
   <group ref='html:Inline'/>
   <attributeGroup ref='html:attrs'/>
  </complexType>
 </element>

 <element name='h6'>
  <complexType content='elementOnly'>
   <group ref='html:Inline'/>
   <attributeGroup ref='html:attrs'/>
  </complexType>
 </element>

 <element name='ul'>
  <complexType content='elementOnly'>
   <sequence maxOccurs='unbounded'>
    <element ref='html:li'/>
   </sequence>
   <attributeGroup ref='html:attrs'/>
  </complexType>
 </element>

 <element name='ol'>
  <complexType content='elementOnly'>
   <sequence maxOccurs='unbounded'>
    <element ref='html:li'/>
   </sequence>
   <attributeGroup ref='html:attrs'/>
  </complexType>
 </element>

 <element name='li'>
  <complexType content='elementOnly'>
   <group ref='html:Flow'/>
   <attributeGroup ref='html:attrs'/>
  </complexType>
 </element>

 <element name='dl'>
  <complexType content='elementOnly'>
   <choice maxOccurs='unbounded'>
    <element ref='html:dt'/>
    <element ref='html:dd'/>
   </choice>
   <attributeGroup ref='html:attrs'/>
  </complexType>
 </element>

 <element name='dt'>
  <complexType content='elementOnly'>
   <group ref='html:Inline'/>
   <attributeGroup ref='html:attrs'/>
  </complexType>
 </element>

 <element name='dd'>
  <complexType content='elementOnly'>
   <group ref='html:Flow'/>
   <attributeGroup ref='html:attrs'/>
  </complexType>
 </element>

 <element name='address'>
  <complexType content='elementOnly'>
   <group ref='html:Inline'/>
   <attributeGroup ref='html:attrs'/>
  </complexType>
 </element>

 <element name='hr'>
  <complexType content='empty'>
   <attributeGroup ref='html:attrs'/>
  </complexType>
 </element>

 <element name='pre'>
  <complexType content='elementOnly'>
   <group ref='html:pre.content'/>
   <attributeGroup ref='html:attrs'/>
   <attribute name='xml:space' use='fixed' value='preserve'/>
  </complexType>
 </element>

 <element name='blockquote'>
  <complexType content='elementOnly'>
   <group ref='html:Block'/>
   <attributeGroup ref='html:attrs'/>
   <attribute name='cite' type='html:URI' use='optional'/>
  </complexType>
 </element>

 <element name='ins'>
  <complexType content='elementOnly'>
   <group ref='html:Flow'/>
   <attributeGroup ref='html:attrs'/>
   <attribute name='cite' type='html:URI' use='optional'/>
   <attribute name='datetime' type='string' use='optional'/>
  </complexType>
 </element>

 <element name='del'>
  <complexType content='elementOnly'>
   <group ref='html:Flow'/>
   <attributeGroup ref='html:attrs'/>
   <attribute name='cite' type='html:URI' use='optional'/>
   <attribute name='datetime' type='string' use='optional'/>
  </complexType>
 </element>

 <element name='a'>
  <complexType content='elementOnly'>
   <group ref='html:a.content'/>
   <attributeGroup ref='html:attrs'/>
   <attribute name='charset' type='html:Charset' use='optional'/>
   <attribute name='type' type='html:ContentType' use='optional'/>
   <attribute name='name' type='NMTOKEN' use='optional'/>
   <attribute name='href' type='html:URI' use='optional'/>
   <attribute name='hreflang' type='html:LanguageCode' use='optional'/>
   <attribute name='rel' type='html:LinkTypes' use='optional'/>
   <attribute name='rev' type='html:LinkTypes' use='optional'/>
   <attribute name='accesskey' type='html:Character' use='optional'/>
   <attribute name='shape' type='html:Shape' use='default' value='rect'/>
   <attribute name='coords' type='html:Coords' use='optional'/>
   <attribute name='tabindex' type='html:Number' use='optional'/>
   <attribute name='onfocus' type='html:Script' use='optional'/>
   <attribute name='onblur' type='html:Script' use='optional'/>
  </complexType>
 </element>

 <element name='span'>
  <complexType content='elementOnly'>
   <group ref='html:Inline'/>
   <attributeGroup ref='html:attrs'/>
  </complexType>
 </element>

 <element name='bdo'>
  <complexType content='elementOnly'>
   <group ref='html:Inline'/>
   <attributeGroup ref='html:coreattrs'/>
   <attributeGroup ref='html:events'/>
   <attribute name='lang' type='html:LanguageCode' use='optional'/>
   <attribute name='xml:lang' type='html:LanguageCode' use='optional'/>
   <attribute name='dir' use='required'>
    <simpleType base='string'>
     <enumeration value='ltr'/>
     <enumeration value='rtl'/>
    </simpleType>
   </attribute>
  </complexType>
 </element>

 <element name='br'>
  <complexType content='empty'>
   <attributeGroup ref='html:coreattrs'/>
  </complexType>
 </element>

 <element name='em'>
  <complexType content='elementOnly'>
   <group ref='html:Inline'/>
   <attributeGroup ref='html:attrs'/>
  </complexType>
 </element>

 <element name='strong'>
  <complexType content='elementOnly'>
   <group ref='html:Inline'/>
   <attributeGroup ref='html:attrs'/>
  </complexType>
 </element>

 <element name='dfn'>
  <complexType content='elementOnly'>
   <group ref='html:Inline'/>
   <attributeGroup ref='html:attrs'/>
  </complexType>
 </element>

 <element name='code'>
  <complexType content='elementOnly'>
   <group ref='html:Inline'/>
   <attributeGroup ref='html:attrs'/>
  </complexType>
 </element>

 <element name='samp'>
  <complexType content='elementOnly'>
   <group ref='html:Inline'/>
   <attributeGroup ref='html:attrs'/>
  </complexType>
 </element>

 <element name='kbd'>
  <complexType content='elementOnly'>
   <group ref='html:Inline'/>
   <attributeGroup ref='html:attrs'/>
  </complexType>
 </element>

 <element name='var'>
  <complexType content='elementOnly'>
   <group ref='html:Inline'/>
   <attributeGroup ref='html:attrs'/>
  </complexType>
 </element>

 <element name='cite'>
  <complexType content='elementOnly'>
   <group ref='html:Inline'/>
   <attributeGroup ref='html:attrs'/>
  </complexType>
 </element>

 <element name='abbr'>
  <complexType content='elementOnly'>
   <group ref='html:Inline'/>
   <attributeGroup ref='html:attrs'/>
  </complexType>
 </element>

 <element name='acronym'>
  <complexType content='elementOnly'>
   <group ref='html:Inline'/>
   <attributeGroup ref='html:attrs'/>
  </complexType>
 </element>

 <element name='q'>
  <complexType content='elementOnly'>
   <group ref='html:Inline'/>
   <attributeGroup ref='html:attrs'/>
   <attribute name='cite' type='html:URI' use='optional'/>
  </complexType>
 </element>

 <element name='sub'>
  <complexType content='elementOnly'>
   <group ref='html:Inline'/>
   <attributeGroup ref='html:attrs'/>
  </complexType>
 </element>

 <element name='sup'>
  <complexType content='elementOnly'>
   <group ref='html:Inline'/>
   <attributeGroup ref='html:attrs'/>
  </complexType>
 </element>

 <element name='tt'>
  <complexType content='elementOnly'>
   <group ref='html:Inline'/>
   <attributeGroup ref='html:attrs'/>
  </complexType>
 </element>

 <element name='i'>
  <complexType content='elementOnly'>
   <group ref='html:Inline'/>
   <attributeGroup ref='html:attrs'/>
  </complexType>
 </element>

 <element name='b'>
  <complexType content='elementOnly'>
   <group ref='html:Inline'/>
   <attributeGroup ref='html:attrs'/>
  </complexType>
 </element>

 <element name='big'>
  <complexType content='elementOnly'>
   <group ref='html:Inline'/>
   <attributeGroup ref='html:attrs'/>
  </complexType>
 </element>

 <element name='small'>
  <complexType content='elementOnly'>
   <group ref='html:Inline'/>
   <attributeGroup ref='html:attrs'/>
  </complexType>
 </element>

 <element name='object'>
  <complexType content='mixed'>
   <choice minOccurs='0' maxOccurs='unbounded'>
    <element ref='html:param'/>
    <group ref='html:block'/>
    <element ref='html:form'/>
    <group ref='html:inline'/>
    <group ref='html:misc'/>
   </choice>
   <attributeGroup ref='html:attrs'/>
   <attribute name='declare' use='optional'>
    <simpleType base='string'>
     <enumeration value='declare'/>
    </simpleType>
   </attribute>
   <attribute name='classid' type='html:URI' use='optional'/>
   <attribute name='codebase' type='html:URI' use='optional'/>
   <attribute name='data' type='html:URI' use='optional'/>
   <attribute name='type' type='html:ContentType' use='optional'/>
   <attribute name='codetype' type='html:ContentType' use='optional'/>
   <attribute name='archive' type='html:UriList' use='optional'/>
   <attribute name='standby' type='html:Text' use='optional'/>
   <attribute name='height' type='html:Length' use='optional'/>
   <attribute name='width' type='html:Length' use='optional'/>
   <attribute name='usemap' type='html:URI' use='optional'/>
   <attribute name='name' type='NMTOKEN' use='optional'/>
   <attribute name='tabindex' type='html:Number' use='optional'/>
  </complexType>
 </element>

 <element name='param'>
  <complexType content='empty'>
   <attribute name='id' type='ID' use='optional'/>
   <attribute name='name' type='string' use='optional'/>
   <attribute name='value' type='string' use='optional'/>
   <attribute name='valuetype' use='default' value='data'>
    <simpleType base='string'>
     <enumeration value='data'/>
     <enumeration value='ref'/>
     <enumeration value='object'/>
    </simpleType>
   </attribute>
   <attribute name='type' type='html:ContentType' use='optional'/>
  </complexType>
 </element>

 <element name='img'>
  <complexType content='empty'>
   <attributeGroup ref='html:attrs'/>
   <attribute name='src' type='html:URI' use='required'/>
   <attribute name='alt' type='html:Text' use='required'/>
   <attribute name='longdesc' type='html:URI' use='optional'/>
   <attribute name='height' type='html:Length' use='optional'/>
   <attribute name='width' type='html:Length' use='optional'/>
   <attribute name='usemap' type='html:URI' use='optional'/>
   <attribute name='ismap' use='optional'>
    <simpleType base='string'>
     <enumeration value='ismap'/>
    </simpleType>
   </attribute>
  </complexType>
 </element>

 <element name='map'>
  <complexType content='elementOnly'>
   <choice>
    <choice maxOccurs='unbounded'>
     <group ref='html:block'/>
     <element ref='html:form'/>
     <group ref='html:misc'/>
    </choice>
    <element ref='html:area'/>
    <element ref='html:+'/>
   </choice>
   <attributeGroup ref='html:i18n'/>
   <attributeGroup ref='html:events'/>
   <attribute name='id' type='ID' use='required'/>
   <attribute name='class' type='string' use='optional'/>
   <attribute name='style' type='html:StyleSheet' use='optional'/>
   <attribute name='title' type='html:Text' use='optional'/>
   <attribute name='name' type='NMTOKEN' use='optional'/>
  </complexType>
 </element>

 <element name='area'>
  <complexType content='empty'>
   <attributeGroup ref='html:attrs'/>
   <attribute name='shape' type='html:Shape' use='default' value='rect'/>
   <attribute name='coords' type='html:Coords' use='optional'/>
   <attribute name='href' type='html:URI' use='optional'/>
   <attribute name='nohref' use='optional'>
    <simpleType base='string'>
     <enumeration value='nohref'/>
    </simpleType>
   </attribute>
   <attribute name='alt' type='html:Text' use='required'/>
   <attribute name='tabindex' type='html:Number' use='optional'/>
   <attribute name='accesskey' type='html:Character' use='optional'/>
   <attribute name='onfocus' type='html:Script' use='optional'/>
   <attribute name='onblur' type='html:Script' use='optional'/>
  </complexType>
 </element>

 <element name='form'>
  <complexType content='elementOnly'>
   <group ref='html:form.content'/>
   <attributeGroup ref='html:attrs'/>
   <attribute name='action' type='html:URI' use='required'/>
   <attribute name='method' use='default' value='get'>
    <simpleType base='string'>
     <enumeration value='get'/>
     <enumeration value='post'/>
    </simpleType>
   </attribute>
   <attribute name='enctype' type='html:ContentType' use='default' value='application/x-www-form-urlencoded'/>
   <attribute name='onsubmit' type='html:Script' use='optional'/>
   <attribute name='onreset' type='html:Script' use='optional'/>
   <attribute name='accept' type='html:ContentTypes' use='optional'/>
   <attribute name='accept-charset' type='html:Charsets' use='optional'/>
  </complexType>
 </element>

 <element name='label'>
  <complexType content='elementOnly'>
   <group ref='html:Inline'/>
   <attributeGroup ref='html:attrs'/>
   <attribute name='for' type='IDREF' use='optional'/>
   <attribute name='accesskey' type='html:Character' use='optional'/>
   <attribute name='onfocus' type='html:Script' use='optional'/>
   <attribute name='onblur' type='html:Script' use='optional'/>
  </complexType>
 </element>

 <element name='input'>
  <complexType content='empty'>
   <attributeGroup ref='html:attrs'/>
   <attribute name='type' type='html:InputType' use='default' value='text'/>
   <attribute name='name' type='string' use='optional'/>
   <attribute name='value' type='string' use='optional'/>
   <attribute name='checked' use='optional'>
    <simpleType base='string'>
     <enumeration value='checked'/>
    </simpleType>
   </attribute>
   <attribute name='disabled' use='optional'>
    <simpleType base='string'>
     <enumeration value='disabled'/>
    </simpleType>
   </attribute>
   <attribute name='readonly' use='optional'>
    <simpleType base='string'>
     <enumeration value='readonly'/>
    </simpleType>
   </attribute>
   <attribute name='size' type='string' use='optional'/>
   <attribute name='maxlength' type='html:Number' use='optional'/>
   <attribute name='src' type='html:URI' use='optional'/>
   <attribute name='alt' type='string' use='optional'/>
   <attribute name='usemap' type='html:URI' use='optional'/>
   <attribute name='tabindex' type='html:Number' use='optional'/>
   <attribute name='accesskey' type='html:Character' use='optional'/>
   <attribute name='onfocus' type='html:Script' use='optional'/>
   <attribute name='onblur' type='html:Script' use='optional'/>
   <attribute name='onselect' type='html:Script' use='optional'/>
   <attribute name='onchange' type='html:Script' use='optional'/>
   <attribute name='accept' type='html:ContentTypes' use='optional'/>
  </complexType>
 </element>

 <element name='select'>
  <complexType content='elementOnly'>
   <choice maxOccurs='unbounded'>
    <element ref='html:optgroup'/>
    <element ref='html:option'/>
   </choice>
   <attributeGroup ref='html:attrs'/>
   <attribute name='name' type='string' use='optional'/>
   <attribute name='size' type='html:Number' use='optional'/>
   <attribute name='multiple' use='optional'>
    <simpleType base='string'>
     <enumeration value='multiple'/>
    </simpleType>
   </attribute>
   <attribute name='disabled' use='optional'>
    <simpleType base='string'>
     <enumeration value='disabled'/>
    </simpleType>
   </attribute>
   <attribute name='tabindex' type='html:Number' use='optional'/>
   <attribute name='onfocus' type='html:Script' use='optional'/>
   <attribute name='onblur' type='html:Script' use='optional'/>
   <attribute name='onchange' type='html:Script' use='optional'/>
  </complexType>
 </element>

 <element name='optgroup'>
  <complexType content='elementOnly'>
   <sequence maxOccurs='unbounded'>
    <element ref='html:option'/>
   </sequence>
   <attributeGroup ref='html:attrs'/>
   <attribute name='disabled' use='optional'>
    <simpleType base='string'>
     <enumeration value='disabled'/>
    </simpleType>
   </attribute>
   <attribute name='label' type='html:Text' use='required'/>
  </complexType>
 </element>

 <element name='option'>
  <complexType content='mixed'>
   <attributeGroup ref='html:attrs'/>
   <attribute name='selected' use='optional'>
    <simpleType base='string'>
     <enumeration value='selected'/>
    </simpleType>
   </attribute>
   <attribute name='disabled' use='optional'>
    <simpleType base='string'>
     <enumeration value='disabled'/>
    </simpleType>
   </attribute>
   <attribute name='label' type='html:Text' use='optional'/>
   <attribute name='value' type='string' use='optional'/>
  </complexType>
 </element>

 <element name='textarea'>
  <complexType content='mixed'>
   <attributeGroup ref='html:attrs'/>
   <attribute name='name' type='string' use='optional'/>
   <attribute name='rows' type='html:Number' use='required'/>
   <attribute name='cols' type='html:Number' use='required'/>
   <attribute name='disabled' use='optional'>
    <simpleType base='string'>
     <enumeration value='disabled'/>
    </simpleType>
   </attribute>
   <attribute name='readonly' use='optional'>
    <simpleType base='string'>
     <enumeration value='readonly'/>
    </simpleType>
   </attribute>
   <attribute name='tabindex' type='html:Number' use='optional'/>
   <attribute name='accesskey' type='html:Character' use='optional'/>
   <attribute name='onfocus' type='html:Script' use='optional'/>
   <attribute name='onblur' type='html:Script' use='optional'/>
   <attribute name='onselect' type='html:Script' use='optional'/>
   <attribute name='onchange' type='html:Script' use='optional'/>
  </complexType>
 </element>

 <element name='fieldset'>
  <complexType content='mixed'>
   <choice minOccurs='0' maxOccurs='unbounded'>
    <element ref='html:legend'/>
    <group ref='html:block'/>
    <element ref='html:form'/>
    <group ref='html:inline'/>
    <group ref='html:misc'/>
   </choice>
   <attributeGroup ref='html:attrs'/>
  </complexType>
 </element>

 <element name='legend'>
  <complexType content='elementOnly'>
   <group ref='html:Inline'/>
   <attributeGroup ref='html:attrs'/>
   <attribute name='accesskey' type='html:Character' use='optional'/>
  </complexType>
 </element>

 <element name='button'>
  <complexType content='elementOnly'>
   <group ref='html:button.content'/>
   <attributeGroup ref='html:attrs'/>
   <attribute name='name' type='string' use='optional'/>
   <attribute name='value' type='string' use='optional'/>
   <attribute name='type' use='default' value='submit'>
    <simpleType base='string'>
     <enumeration value='button'/>
     <enumeration value='submit'/>
     <enumeration value='reset'/>
    </simpleType>
   </attribute>
   <attribute name='disabled' use='optional'>
    <simpleType base='string'>
     <enumeration value='disabled'/>
    </simpleType>
   </attribute>
   <attribute name='tabindex' type='html:Number' use='optional'/>
   <attribute name='accesskey' type='html:Character' use='optional'/>
   <attribute name='onfocus' type='html:Script' use='optional'/>
   <attribute name='onblur' type='html:Script' use='optional'/>
  </complexType>
 </element>

 <element name='table'>
  <complexType content='elementOnly'>
   <element ref='html:caption' minOccurs='0' maxOccurs='1'/>
   <choice>
    <element ref='html:col'/>
    <element ref='html:*'/>
    <element ref='html:colgroup'/>
    <element ref='html:*'/>
   </choice>
   <element ref='html:thead' minOccurs='0' maxOccurs='1'/>
   <element ref='html:tfoot' minOccurs='0' maxOccurs='1'/>
   <choice>
    <element ref='html:tbody'/>
    <element ref='html:+'/>
    <element ref='html:tr'/>
    <element ref='html:+'/>
   </choice>
   <attributeGroup ref='html:attrs'/>
   <attribute name='summary' type='html:Text' use='optional'/>
   <attribute name='width' type='html:Length' use='optional'/>
   <attribute name='border' type='html:Pixels' use='optional'/>
   <attribute name='frame' type='html:TFrame' use='optional'/>
   <attribute name='rules' type='html:TRules' use='optional'/>
   <attribute name='cellspacing' type='html:Length' use='optional'/>
   <attribute name='cellpadding' type='html:Length' use='optional'/>
  </complexType>
 </element>

 <element name='caption'>
  <complexType content='elementOnly'>
   <group ref='html:Inline'/>
   <attributeGroup ref='html:attrs'/>
  </complexType>
 </element>

 <element name='thead'>
  <complexType content='elementOnly'>
   <sequence maxOccurs='unbounded'>
    <element ref='html:tr'/>
   </sequence>
   <attributeGroup ref='html:attrs'/>
   <attributeGroup ref='html:cellhalign'/>
   <attributeGroup ref='html:cellvalign'/>
  </complexType>
 </element>

 <element name='tfoot'>
  <complexType content='elementOnly'>
   <sequence maxOccurs='unbounded'>
    <element ref='html:tr'/>
   </sequence>
   <attributeGroup ref='html:attrs'/>
   <attributeGroup ref='html:cellhalign'/>
   <attributeGroup ref='html:cellvalign'/>
  </complexType>
 </element>

 <element name='tbody'>
  <complexType content='elementOnly'>
   <sequence maxOccurs='unbounded'>
    <element ref='html:tr'/>
   </sequence>
   <attributeGroup ref='html:attrs'/>
   <attributeGroup ref='html:cellhalign'/>
   <attributeGroup ref='html:cellvalign'/>
  </complexType>
 </element>

 <element name='colgroup'>
  <complexType content='elementOnly'>
   <sequence minOccurs='0' maxOccurs='unbounded'>
    <element ref='html:col'/>
   </sequence>
   <attributeGroup ref='html:attrs'/>
   <attribute name='span' type='html:Number' use='default' value='1'/>
   <attribute name='width' type='html:MultiLength' use='optional'/>
   <attributeGroup ref='html:cellhalign'/>
   <attributeGroup ref='html:cellvalign'/>
  </complexType>
 </element>

 <element name='col'>
  <complexType content='empty'>
   <attributeGroup ref='html:attrs'/>
   <attribute name='span' type='html:Number' use='default' value='1'/>
   <attribute name='width' type='html:MultiLength' use='optional'/>
   <attributeGroup ref='html:cellhalign'/>
   <attributeGroup ref='html:cellvalign'/>
  </complexType>
 </element>

 <element name='tr'>
  <complexType content='elementOnly'>
   <choice maxOccurs='unbounded'>
    <element ref='html:th'/>
    <element ref='html:td'/>
   </choice>
   <attributeGroup ref='html:attrs'/>
   <attributeGroup ref='html:cellhalign'/>
   <attributeGroup ref='html:cellvalign'/>
  </complexType>
 </element>

 <element name='th'>
  <complexType content='elementOnly'>
   <group ref='html:Flow'/>
   <attributeGroup ref='html:attrs'/>
   <attribute name='abbr' type='html:Text' use='optional'/>
   <attribute name='axis' type='string' use='optional'/>
   <attribute name='headers' type='IDREFS' use='optional'/>
   <attribute name='scope' type='html:Scope' use='optional'/>
   <attribute name='rowspan' type='html:Number' use='default' value='1'/>
   <attribute name='colspan' type='html:Number' use='default' value='1'/>
   <attributeGroup ref='html:cellhalign'/>
   <attributeGroup ref='html:cellvalign'/>
  </complexType>
 </element>

 <element name='td'>
  <complexType content='elementOnly'>
   <group ref='html:Flow'/>
   <attributeGroup ref='html:attrs'/>
   <attribute name='abbr' type='html:Text' use='optional'/>
   <attribute name='axis' type='string' use='optional'/>
   <attribute name='headers' type='IDREFS' use='optional'/>
   <attribute name='scope' type='html:Scope' use='optional'/>
   <attribute name='rowspan' type='html:Number' use='default' value='1'/>
   <attribute name='colspan' type='html:Number' use='default' value='1'/>
   <attributeGroup ref='html:cellhalign'/>
   <attributeGroup ref='html:cellvalign'/>
  </complexType>
 </element>
</schema>
