<?xml version='1.0'?>
<schema
  xmlns='http://www.w3.org/1999/XMLSchema'
  targetNamespace='http://www.w3.org/1999/xhtml'
  xmlns:t='http://www.w3.org/1999/xhtml'>

 <element name='html'>
  <complexType content='elementOnly'>
   <element ref='t:head'/>
   <element ref='t:body'/>
  </complexType>
 </element>

 <element name='head'>
  <complexType content='elementOnly'>
   <element ref='t:title'/>
  </complexType>
 </element>

 <element name='title'>
  <complexType content='mixed'>
  </complexType>
 </element>

 <element name='body'>
  <complexType content='elementOnly'>
   <choice minOccurs='0' maxOccurs='unbounded'>
    <element ref="t:block"/>
   </choice>
  </complexType>
 </element>

 <complexType name="commonAttrs">
   <attribute name="id" type="ID" use="optional"/>
   <attribute name="class" use="optional"/> <!-- @@type: list of classname-->
   <attribute name="style" use="optional"/> <!-- hmm... css:style? -->
   <anyAttribute namespace="##other"
		 processContents="strict"/>
 </complexType>

 <complexType name="blockType"
	      base="t:commonAttrs" derivedBy="restriction"
	      content="mixed">
   <sequence minOccurs='0' maxOccurs='unbounded'>
    <choice>
     <element ref='t:a'/>
     <element ref='t:img'/>
    </choice>
   </sequence>
 </complexType>

 <element name="block" abstract="true"/>

 <element name='h1'
	  type="t:blockType" equivClass="t:block"/>

 <element name='h2'
	  type="t:blockType" equivClass="t:block"/>

 <element name='h3'
	  type="t:blockType" equivClass="t:block"/>

 <element name="hr"
	equivClass="t:block">
  <complexType base="t:commonAttrs" derivedBy="restriction"
	       content="empty"/>
 </element>

 <element name='p'
	  type="t:blockType" equivClass="t:block"/>

 <element name='address'
	  type="t:blockType" equivClass="t:block"/>


 <element name='a'>
  <complexType content='mixed'>
   <attribute name='href' type='string' use='optional'/>
   <attribute name='name' type='NMTOKENS' use='optional'/>
  </complexType>
 </element>

 <element name='img'>
  <complexType content='empty'>
   <attribute name='src' type='string' use='required'/>
  </complexType>
 </element>
</schema>
