<!ENTITY % HTMLlat1 PUBLIC
   "-//W3C//ENTITIES Latin 1 for XHTML//EN"
   "xhtml-lat1.ent">
%HTMLlat1;

<!ENTITY % HTMLsymbol PUBLIC
   "-//W3C//ENTITIES Symbols for XHTML//EN"
   "xhtml-symbol.ent">
%HTMLsymbol;

<!ENTITY % HTMLspecial PUBLIC
   "-//W3C//ENTITIES Special for XHTML//EN"
   "xhtml-special.ent">
%HTMLspecial;

<!--=================== Elements and Structure ========================-->
    <!ENTITY % intext "strong|em|big|small|span|a|br|div">
    <!ENTITY % formelements "input|select|textarea">
    <!ENTITY % headings "h1|h2|h3">
    <!ENTITY % lists    "ul|ol|dl">
    
    <!ELEMENT strong (#PCDATA|em|big|small|span|a|br)*>
    <!ELEMENT em     (#PCDATA|strong|big|small|span|a|br)*>
    <!ELEMENT big    (#PCDATA|strong|em|small|span|a|br)*>
    <!ELEMENT small  (#PCDATA|strong|em|big|span|a|br)*>
    <!ELEMENT span   (#PCDATA|strong|em|big|small|a|br|img|span)*>
    <!ELEMENT br     EMPTY>

    <!ELEMENT pre (#PCDATA)>

    <!ELEMENT ul (li)+>
    <!ELEMENT ol (li)+>
    <!ELEMENT li (#PCDATA|%intext;|%lists;|img)*>
    <!ELEMENT dl (dt,dd)>
    <!ELEMENT dt (#PCDATA|%intext;)*> 
    <!ELEMENT dd (#PCDATA|%intext;|%lists;)*> 

    <!ELEMENT h1  (#PCDATA|a)*>
    <!ELEMENT h2  (#PCDATA|a)*>
    <!ELEMENT h3  (#PCDATA|a)*>
    <!ELEMENT hr  EMPTY>
    <!ELEMENT div (#PCDATA|%intext;|img|%lists;|pre|hr|%formelements;|table)*>
    <!ELEMENT p   (#PCDATA|%intext;|img|%lists;|pre|hr|%formelements;|table)*>
    <!ELEMENT img EMPTY>
    
    <!ELEMENT a     (#PCDATA|img)*>
    
    <!ELEMENT table (tr|thead|tbody|tfoot)+>
    <!ELEMENT thead (tr)+>
    <!ELEMENT tbody (tr)+>
    <!ELEMENT tfoot (tr)+>
    <!ELEMENT tr    (td|th)+>
    <!ELEMENT td    (#PCDATA|%intext;|%lists;|img|table|hr|%formelements;)*>
    <!ELEMENT th    (#PCDATA|%intext;|%lists;|img|table|hr|%formelements;)*>

    <!ELEMENT content  (#PCDATA|%headings;|%lists;|p|pre|hr|div|table|script|form)*>
    <!ELEMENT script   (#PCDATA)>
    <!ELEMENT form     (#PCDATA|%headings;|%formelements;|%lists;|p|pre|hr|div|table|script)*>
    <!ELEMENT input    EMPTY>
    <!ELEMENT select   (optgroup|option)+>
    <!ELEMENT option   (#PCDATA)>
    <!ELEMENT optgroup (option+)>
    <!ELEMENT textarea (#PCDATA)>

<!--=================== Attributes ====================================-->
    <!ENTITY % events
     "onclick     CDATA #IMPLIED
      ondblclick  CDATA #IMPLIED
      onmousedown CDATA #IMPLIED
      onmouseup   CDATA #IMPLIED
      onmouseover CDATA #IMPLIED
      onmousemove CDATA #IMPLIED
      onmouseout  CDATA #IMPLIED
      onkeypress  CDATA #IMPLIED
      onkeydown   CDATA #IMPLIED
      onkeyup     CDATA #IMPLIED
      onfocus     CDATA #IMPLIED
      onblur      CDATA #IMPLIED
      onchange    CDATA #IMPLIED">
    <!ENTITY % access
     "accesskey CDATA #IMPLIED
      tabindex  CDATA #IMPLIED">

    <!--================= Content =======================-->
    <!ATTLIST content
              xmlns:mochi CDATA #FIXED "http://www.mochikit.com/">

    <!--================= Script =======================-->
    <!ATTLIST script 
      type CDATA #REQUIRED
      src CDATA #IMPLIED>

    <!--================= Only ID's =================-->
    <!ATTLIST h1 id NMTOKEN #IMPLIED>
    <!ATTLIST h2 id NMTOKEN #IMPLIED>
    <!ATTLIST h3 id NMTOKEN #IMPLIED>

    <!--================ Only Classes and ID's =================-->
    <!ATTLIST span class NMTOKENS #IMPLIED id NMTOKEN #IMPLIED>
    <!ATTLIST ul   class NMTOKENS #IMPLIED id NMTOKEN #IMPLIED>
    <!ATTLIST ol   class NMTOKENS #IMPLIED id NMTOKEN #IMPLIED>
    <!ATTLIST dl   class NMTOKENS #IMPLIED id NMTOKEN #IMPLIED>
    
    <!--================= Classes + Special ============-->
    <!ATTLIST table
      class NMTOKENS #IMPLIED
      id NMTOKEN #IMPLIED>

    <!ATTLIST div
      class NMTOKENS #IMPLIED
      id NMTOKEN #IMPLIED>
    <!ATTLIST strong
      class NMTOKENS #IMPLIED
      id NMTOKEN #IMPLIED>
    <!ATTLIST hr
      class CDATA #IMPLIED
      id NMTOKEN #IMPLIED>
    <!ATTLIST form
      class NMTOKENS #IMPLIED
      action CDATA #REQUIRED
      enctype CDATA #IMPLIED
      method CDATA #IMPLIED
      onsubmit CDATA #IMPLIED
      onreset CDATA #IMPLIED>
    <!ATTLIST input
      class NMTOKENS #IMPLIED
      type (text|password|checkbox|radio|submit|reset|file|hidden|image|button) #REQUIRED
      value CDATA #REQUIRED
      name CDATA #IMPLIED
      src CDATA #IMPLIED
      maxlength CDATA #IMPLIED
      disabled (disabled) #IMPLIED
      checked (checked) #IMPLIED
      readonly (readonly) #IMPLIED
      %access; 
      onselect CDATA #IMPLIED
      %events;>
      
    <!ATTLIST textarea
      class NMTOKENS #IMPLIED
      cols CDATA #REQUIRED
      rows CDATA #REQUIRED
      name CDATA #IMPLIED
      disabled (disabled) #IMPLIED
      readonly (readonly) #IMPLIED
      %access; 
      onselect CDATA #IMPLIED
      %events;>
    <!ATTLIST select
      class NMTOKENS #IMPLIED
      name CDATA #IMPLIED
      disabled (disabled) #IMPLIED
      readonly (readonly) #IMPLIED
      multiple (multiple) #IMPLIED
      size CDATA #IMPLIED
      %access; 
      %events;>
    <!ATTLIST option
      class NMTOKENS #IMPLIED
      value CDATA #REQUIRED
      selected (selected) #IMPLIED>
    <!ATTLIST optgroup
      class NMTOKENS #IMPLIED
      id NMTOKEN #IMPLIED
      label CDATA #REQUIRED>
    <!ATTLIST td    
      class NMTOKENS #IMPLIED
      colspan CDATA #IMPLIED
      rowspan CDATA #IMPLIED
      id NMTOKEN #IMPLIED
      title CDATA #IMPLIED
      %events;>
    <!ATTLIST tr
      class NMTOKENS #IMPLIED
      id NMTOKEN #IMPLIED
      %events;>
    <!ATTLIST th
      class NMTOKENS #IMPLIED
      id NMTOKEN #IMPLIED
      mochi:format NMTOKEN #IMPLIED
      mochi:sort NMTOKEN #IMPLIED
      title CDATA #IMPLIED
      %events;>

    <!ATTLIST img
      class NMTOKENS #IMPLIED
      id NMTOKEN #IMPLIED
      src CDATA #REQUIRED
      alt CDATA #REQUIRED
      title CDATA #IMPLIED
      width CDATA #REQUIRED
      height CDATA #REQUIRED>
    <!ATTLIST a
      class  NMTOKENS #IMPLIED
      id NMTOKEN #IMPLIED
      href CDATA #IMPLIED
      name CDATA #IMPLIED
      title CDATA #IMPLIED
      onclick CDATA #IMPLIED
      %access;>
