<?xml version="1.0"?>
<!DOCTYPE xsd:schema SYSTEM "http://www.w3.org/1999/XMLSchema.dtd"[
<!ENTITY % p "xsd:" >
<!ENTITY % s ":xsd" >
<!-- keep this schema XML 1.0 valid -->
<!ATTLIST xsd:schema
    xmlns:html CDATA #FIXED "http://www.w3.org/1999/xhtml"
>

<!--================ Character Entities for XHTML ==========================-->

<!ENTITY % xhtml-lat1 PUBLIC
   "-//W3C//ENTITIES Latin 1 for XHTML//EN"
   "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-lat1.ent">
%xhtml-lat1;

<!ENTITY % xhtml-symbol PUBLIC
   "-//W3C//ENTITIES Symbols for XHTML//EN"
   "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-symbol.ent">
%xhtml-symbol;

<!ENTITY % xhtml-special PUBLIC
   "-//W3C//ENTITIES Special for XHTML//EN"
   "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-special.ent">
%xhtml-special;
]>
<xsd:schema
  xmlns:xsd="http://www.w3.org/1999/XMLSchema"
  targetNamespace="http://www.w3.org/1999/xhtml"
  xmlns:html="http://www.w3.org/1999/xhtml"
  elementFormDefault="unqualified"
  attributeFormDefault="unqualified">

  <xsd:annotation>
    <xsd:documentation>
	XHTML Basic 1.0, reformulated in XML Schema

	Author: Masayasu Ishikawa (mimasa@w3.org)
	$Id: xhtml-basic10-f.xsd,v 1.9 2000/07/11 14:25:01 mimasa Exp $

	DISCLAIMER: This schema is at the moment merely an author's
	  personal experiment.  Author doesn't guarantee at all whether
	  this schema properly reformulate XHTML Basic 1.0 in XML Schema.

	This is XHTML Basic, a proper subset of XHTML.

	Original copyright of DTD:

	The Extensible HyperText Markup Language (XHTML)
	Copyright 1998-2000 World Wide Web Consortium
	   (Massachusetts Institute of Technology, Institut National de
	    Recherche en Informatique et en Automatique, Keio University).
	    All Rights Reserved.

	Permission to use, copy, modify and distribute the XHTML Basic DTD
	and its accompanying documentation for any purpose and without fee is
	hereby granted in perpetuity, provided that the above copyright notice
	and this paragraph appear in all copies.  The copyright holders make
	no representation about the suitability of the DTD for any purpose.
	
	It is provided "as is" without expressed or implied warranty.

	   Editors:    Murray M. Altheim (mailto:altheim@eng.sun.com)
	               Peter Stark       (mailto:Peter.Stark@ecs.ericsson.se)

	Please use this formal public identifier to identify it:

	    "-//W3C//DTD XHTML Basic 1.0//EN"

	% XHTML.version  "-//W3C//DTD XHTML Basic 1.0//EN"

	Use this URI to identify the default namespace:

	    "http://www.w3.org/1999/xhtml"
    </xsd:documentation>
  </xsd:annotation>

  <xsd:import namespace="http://www.w3.org/XML/1998/namespace"
              schemaLocation="http://www.w3.org/XML/1998/xml.xsd">
    <xsd:annotation>
      <xsd:documentation>
	Get access to the xml: attribute groups for xml:lang
      </xsd:documentation>
    </xsd:annotation>
  </xsd:import>

  <xsd:annotation>
    <xsd:documentation>
	XHTML Datatypes Module

	This DTD module is identified by the PUBLIC and SYSTEM identifiers:

	   PUBLIC "-//W3C//ENTITIES XHTML Datatypes 1.0//EN"
	   SYSTEM "xhtml-datatypes-1.mod"

	Datatypes

	defines containers for the following datatypes, many of
	these imported from other specifications and standards.
    </xsd:documentation>
  </xsd:annotation>

  <xsd:simpleType name="Length.datatype" base="xsd:string">
    <xsd:annotation>
      <xsd:documentation>
	Length defined for cellpadding/cellspacing

	nn for pixels or nn% for percentage length
	% Length.datatype "CDATA"
      </xsd:documentation>
    </xsd:annotation>
  </xsd:simpleType>

  <xsd:simpleType name="LinkTypes.datatype" base="xsd:NMTOKENS">
    <xsd:annotation>
      <xsd:documentation>
	space-separated list of link types
	% LinkTypes.datatype "NMTOKENS"
      </xsd:documentation>
    </xsd:annotation>
  </xsd:simpleType>

  <xsd:simpleType name="MediaDesc.datatype" base="xsd:string">
    <xsd:annotation>
      <xsd:documentation>
	single or comma-separated list of media descriptors
	% MediaDesc.datatype "CDATA"
      </xsd:documentation>
    </xsd:annotation>
  </xsd:simpleType>

  <xsd:simpleType name="MultiLength.datatype" base="xsd:string">
    <xsd:annotation>
      <xsd:documentation>
	pixel, percentage, or relative
	% MultiLength.datatype "CDATA"
      </xsd:documentation>
    </xsd:annotation>

    <xsd:pattern value="\d+|(100|[1-9]?\d(\.\d+)?)%|[1-9]?(\d+)?\*"/>
  </xsd:simpleType>

  <xsd:simpleType name="Number.datatype" base="xsd:nonNegativeInteger">
    <xsd:annotation>
      <xsd:documentation>
	one or more digits (NUMBER)
	% Number.datatype "CDATA"
      </xsd:documentation>
    </xsd:annotation>
  </xsd:simpleType>

  <xsd:simpleType name="tabindexNumber.datatype" base="xsd:nonNegativeInteger">
    <xsd:annotation>
      <xsd:documentation>
	tabindex attribute specifies the position of the current element
	in the tabbing order for the current document. This value must be
	a number between 0 and 32767. User agents should ignore leading zeros. 
      </xsd:documentation>
    </xsd:annotation>

    <xsd:minInclusive value="0"/>
    <xsd:maxInclusive value="32767"/>
  </xsd:simpleType>

  <xsd:simpleType name="Pixels.datatype" base="xsd:nonNegativeInteger">
    <xsd:annotation>
      <xsd:documentation>
	integer representing length in pixels
	% Pixels.datatype "CDATA"
      </xsd:documentation>
    </xsd:annotation>
  </xsd:simpleType>

  <xsd:simpleType name="Script.datatype" base="xsd:string">
    <xsd:annotation>
      <xsd:documentation>
	script expression
	% Script.datatype "CDATA"
      </xsd:documentation>
    </xsd:annotation>
  </xsd:simpleType>

  <xsd:simpleType name="Text.datatype" base="xsd:string">
    <xsd:annotation>
      <xsd:documentation>
	textual content
	% Text.datatype "CDATA"
      </xsd:documentation>
    </xsd:annotation>
  </xsd:simpleType>

  <xsd:annotation>
    <xsd:documentation>Imported Datatypes</xsd:documentation>
  </xsd:annotation>

  <xsd:simpleType name="Character.datatype" base="xsd:string">
    <xsd:annotation>
      <xsd:documentation>
	a single character from [ISO10646]
	% Character.datatype "CDATA"
      </xsd:documentation>
    </xsd:annotation>

    <xsd:length value="1"/>
  </xsd:simpleType>

  <xsd:simpleType name="Charset.datatype" base="xsd:string">
    <xsd:annotation>
      <xsd:documentation>
	a character encoding, as per [RFC2045]
	% Charset.datatype "CDATA"
      </xsd:documentation>
    </xsd:annotation>
  </xsd:simpleType>

  <xsd:simpleType name="Charsets.datatype" base="xsd:string">
    <xsd:annotation>
      <xsd:documentation>
	a space separated list of character encodings, as per [RFC2045]
	% Charsets.datatype "CDATA"
      </xsd:documentation>
    </xsd:annotation>
  </xsd:simpleType>

  <xsd:simpleType name="ContentType.datatype" base="xsd:string">
    <xsd:annotation>
      <xsd:documentation>
	media type, as per [RFC2045]
	% ContentType.datatype "CDATA"
      </xsd:documentation>
    </xsd:annotation>
  </xsd:simpleType>

  <xsd:simpleType name="ContentTypes.datatype" base="xsd:string">
    <xsd:annotation>
      <xsd:documentation>
	comma-separated list of media types, as per [RFC2045]
	% ContentTypes.datatype "CDATA"
      </xsd:documentation>
    </xsd:annotation>
  </xsd:simpleType>

  <xsd:simpleType name="Datetime.datatype" base="xsd:timeInstant">
    <xsd:annotation>
      <xsd:documentation>
	date and time information. ISO date format
	% Datetime.datatype "CDATA"
      </xsd:documentation>
    </xsd:annotation>
  </xsd:simpleType>

  <xsd:simpleType name="FPI.datatype" base="xsd:string">
    <xsd:annotation>
      <xsd:documentation>
	formal public identifier, as per [ISO8879]
	% FPI.datatype "CDATA"
      </xsd:documentation>
    </xsd:annotation>
  </xsd:simpleType>

  <xsd:simpleType name="LanguageCode.datatype" base="xsd:language">
    <xsd:annotation>
      <xsd:documentation>
	a language code, as per [RFC1766]
	% LanguageCode.datatype "NMTOKEN"
      </xsd:documentation>
    </xsd:annotation>
  </xsd:simpleType>

  <xsd:simpleType name="URI.datatype" base="xsd:uriReference">
    <xsd:annotation>
      <xsd:documentation>
	a Uniform Resource Identifier, see [URI]
	% URI.datatype "CDATA"
      </xsd:documentation>
    </xsd:annotation>
  </xsd:simpleType>

  <xsd:simpleType name="URIs.datatype" base="xsd:string">
    <xsd:annotation>
      <xsd:documentation>
	a space-separated list of Uniform Resource Identifiers, see [URI]
	% URIs.datatype "CDATA"
      </xsd:documentation>
    </xsd:annotation>
  </xsd:simpleType>

  <xsd:annotation>
    <xsd:documentation>
	XHTML Common Attributes Module

	This DTD module is identified by the PUBLIC and SYSTEM identifiers:

	  PUBLIC "-//W3C//ENTITIES XHTML Common Attributes 1.0//EN"
	  SYSTEM "xhtml-attribs-1.mod"

	Common Attributes

	This module declares many of the common attributes for the XHTML DTD.
	%NS.decl.attrib; is declared in the XHTML Qname module.
    </xsd:documentation>
  </xsd:annotation>

  <xsd:attributeGroup name="Core.attrib">
    <xsd:annotation>
      <xsd:documentation>
	core attributes common to most elements
	  id       document-wide unique id
	  class    space separated list of classes
	  title    advisory title/amplification
      </xsd:documentation>
    </xsd:annotation>

    <xsd:attribute name="id" type="xsd:ID" use="optional"/>
    <xsd:attribute name="class" type="xsd:string" use="optional"/>
    <xsd:attribute name="title" type="html:Text.datatype" use="optional"/>
  </xsd:attributeGroup>

  <xsd:attributeGroup name="I18n.attrib">
    <xsd:annotation>
      <xsd:documentation>
	internationalization attributes
	  xml:lang    language code (as per XML 1.0 spec)
      </xsd:documentation>
    </xsd:annotation>

    <xsd:attribute ref="xml:lang"/>
  </xsd:attributeGroup>

  <xsd:attributeGroup name="Common.attrib">
    <xsd:annotation>
      <xsd:documentation>Common attribute sets</xsd:documentation>
    </xsd:annotation>

    <xsd:attributeGroup ref="html:Core.attrib"/>
    <xsd:attributeGroup ref="html:I18n.attrib"/>
  </xsd:attributeGroup>

  <xsd:complexType name="Common">
    <xsd:annotation>
      <xsd:documentation>define "Common" type for XHTML</xsd:documentation>
    </xsd:annotation>

    <xsd:attributeGroup ref="html:Core.attrib"/>
    <xsd:attributeGroup ref="html:I18n.attrib"/>
  </xsd:complexType>

  <xsd:annotation>
    <xsd:documentation>
	XHTML Basic 1.0 Document Model Module

	This DTD module is identified by the PUBLIC and SYSTEM identifiers:

	  PUBLIC "-//W3C//ENTITIES XHTML Basic 1.0 Document Model 1.0//EN"
	  SYSTEM "xhtml-basic10-model-1.mod"

	XHTML Basic Document Model

	This module describes the groupings of elements that make up
	common content models for XHTML elements.
    </xsd:documentation>
  </xsd:annotation>

  <xsd:element name="HeadOpts.mix" abstract="true">
    <xsd:annotation>
      <xsd:documentation>
	Optional Elements in head

	"( meta | link | object )*"
      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>

  <xsd:element name="Misc.class" abstract="true">
    <xsd:annotation>
      <xsd:documentation>
	Miscellaneous Elements (not defined in XHTML Basic)
      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>

  <xsd:element name="InlStruct.class" abstract="true">
    <xsd:annotation>
      <xsd:documentation>
	"br | span"
      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>

  <xsd:element name="InlPhras.class" abstract="true">
    <xsd:annotation>
      <xsd:documentation>
	"| em | strong | dfn | code | samp | kbd | var | cite
	 | abbr | acronym | q"
      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>

  <xsd:element name="InlPres.class" abstract="true">
    <xsd:annotation>
      <xsd:documentation>(not defined in XHTML Basic)</xsd:documentation>
    </xsd:annotation>
  </xsd:element>

  <xsd:element name="I18n.class" abstract="true">
    <xsd:annotation>
      <xsd:documentation>(not defined in XHTML Basic)</xsd:documentation>
    </xsd:annotation>
  </xsd:element>

  <xsd:element name="Anchor.class" abstract="true">
    <xsd:annotation>
      <xsd:documentation>
	"| a"
      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>

  <xsd:element name="InlSpecial.class" abstract="true">
    <xsd:annotation>
      <xsd:documentation>
	"| img | object"
      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>

  <xsd:element name="InlForm.class" abstract="true">
    <xsd:annotation>
      <xsd:documentation>
	"| input | select | textarea | label"
      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>

  <xsd:element name="Inline.extra" abstract="true">
    <xsd:annotation>
      <xsd:documentation>(not defined in XHTML Basic)</xsd:documentation>
    </xsd:annotation>
  </xsd:element>

  <xsd:complexType name="Inline.mix" content="mixed"
                   base="html:Common" derivedBy="restriction">
    <xsd:annotation>
      <xsd:documentation>
	% Inline.class
	     "%InlStruct.class;
	      %InlPhras.class;
	      %Anchor.class;
	      %InlSpecial.class;
	      %InlForm.class;
	      %Inline.extra;"

	% Inline.mix
	     "%Inline.class;
	      %Misc.class;"
      </xsd:documentation>
    </xsd:annotation>

    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element ref="html:InlStruct.class"/>
      <xsd:element ref="html:InlPhras.class"/>
      <xsd:element ref="html:Anchor.class"/>
      <xsd:element ref="html:InlSpecial.class"/>
      <xsd:element ref="html:InlForm.class"/>
      <xsd:element ref="html:Inline.extra"/>
      <xsd:element ref="html:Misc.class"/>
    </xsd:choice>
  </xsd:complexType>

  <xsd:complexType name="InlNoAnchor.mix" content="mixed"
                   base="html:Common" derivedBy="restriction">
    <xsd:annotation>
      <xsd:documentation>
	% InlNoAnchor.class
	     "%InlStruct.class;
	      %InlPhras.class;
	      %InlSpecial.class;
	      %InlForm.class;
	      %Inline.extra;"

	% InlNoAnchor.mix
	     "%InlNoAnchor.class;
	      %Misc.class;"
      </xsd:documentation>
    </xsd:annotation>

    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element ref="html:InlStruct.class"/>
      <xsd:element ref="html:InlPhras.class"/>
      <xsd:element ref="html:InlSpecial.class"/>
      <xsd:element ref="html:InlForm.class"/>
      <xsd:element ref="html:Inline.extra"/>
      <xsd:element ref="html:Misc.class"/>
    </xsd:choice>
  </xsd:complexType>

  <xsd:annotation>
    <xsd:documentation>Block Elements</xsd:documentation>
  </xsd:annotation>

  <xsd:element name="Heading.class" abstract="true">
    <xsd:annotation>
      <xsd:documentation>
	"h1 | h2 | h3 | h4 | h5 | h6"
      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>

  <xsd:element name="List.class" abstract="true">
    <xsd:annotation>
      <xsd:documentation>
	"ul | ol | dl"
      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>

  <xsd:element name="Table.class" abstract="true">
    <xsd:annotation>
      <xsd:documentation>
	"| table"
      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>

  <xsd:element name="Form.class" abstract="true">
    <xsd:annotation>
      <xsd:documentation>
	"| form"
      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>

  <xsd:element name="BlkStruct.class" abstract="true">
    <xsd:annotation>
      <xsd:documentation>
	"p | div"
      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>

  <xsd:element name="BlkPhras.class" abstract="true">
    <xsd:annotation>
      <xsd:documentation>
	"| pre | blockquote | address"
      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>

  <xsd:element name="BlkPres.class" abstract="true">
    <xsd:annotation>
      <xsd:documentation>(not defined in XHTML Basic)</xsd:documentation>
    </xsd:annotation>
  </xsd:element>

  <xsd:annotation>
    <xsd:documentation>
	% BlkSpecial.class 
	     "%Table.class;
	      %Form.class;"
    </xsd:documentation>
  </xsd:annotation>

  <xsd:element name="Block.extra" abstract="true">
    <xsd:annotation>
      <xsd:documentation>(not defined in XHTML Basic)</xsd:documentation>
    </xsd:annotation>
  </xsd:element>

  <xsd:complexType name="Block.mix" content="elementOnly"
                   base="html:Common" derivedBy="restriction">
    <xsd:annotation>
      <xsd:documentation>
	% Block.class
	     "%BlkStruct.class;
	      %BlkPhras.class;
	      %BlkSpecial.class;
	      %Block.extra;"

	% Block.mix
	     "%Heading.class;
	      | %List.class;
	      | %Block.class;
	      %Misc.class;"
      </xsd:documentation>
    </xsd:annotation>

    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element ref="html:Heading.class"/>
      <xsd:element ref="html:List.class"/>
      <xsd:element ref="html:BlkStruct.class"/>
      <xsd:element ref="html:BlkPhras.class"/>
      <xsd:element ref="html:Table.class"/>
      <xsd:element ref="html:Form.class"/>
      <xsd:element ref="html:Block.extra"/>
      <xsd:element ref="html:Misc.class"/>
    </xsd:choice>
  </xsd:complexType>

  <xsd:annotation>
    <xsd:documentation>All Content Elements</xsd:documentation>
  </xsd:annotation>

  <xsd:complexType name="FlowNoTable.mix" content="mixed"
                   base="html:Common" derivedBy="restriction">
    <xsd:annotation>
      <xsd:documentation>
	declares all content except tables

	% FlowNoTable.mix
	     "%Heading.class;
	      | %List.class;
	      | %BlkStruct.class;
	      %BlkPhras.class;
	      %Form.class;
	      %Block.extra;
	      | %Inline.class;
	      %Misc.class;"
      </xsd:documentation>
    </xsd:annotation>

    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element ref="html:Heading.class"/>
      <xsd:element ref="html:List.class"/>
      <xsd:element ref="html:BlkStruct.class"/>
      <xsd:element ref="html:BlkPhras.class"/>
      <xsd:element ref="html:Form.class"/>
      <xsd:element ref="html:Block.extra"/>
      <xsd:element ref="html:InlStruct.class"/>
      <xsd:element ref="html:InlPhras.class"/>
      <xsd:element ref="html:Anchor.class"/>
      <xsd:element ref="html:InlSpecial.class"/>
      <xsd:element ref="html:InlForm.class"/>
      <xsd:element ref="html:Inline.extra"/>
      <xsd:element ref="html:Misc.class"/>
    </xsd:choice>
  </xsd:complexType>

  <xsd:complexType name="Flow.mix" content="mixed"
                   base="html:Common" derivedBy="restriction">
    <xsd:annotation>
      <xsd:documentation>
	% Flow.mix
	     "%Heading.class;
	      | %List.class;
	      | %Block.class;
	      | %Inline.class;
	      %Misc.class;"
      </xsd:documentation>
    </xsd:annotation>

    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element ref="html:Heading.class"/>
      <xsd:element ref="html:List.class"/>
      <xsd:element ref="html:BlkStruct.class"/>
      <xsd:element ref="html:BlkPhras.class"/>
      <xsd:element ref="html:Table.class"/>
      <xsd:element ref="html:Form.class"/>
      <xsd:element ref="html:Block.extra"/>
      <xsd:element ref="html:InlStruct.class"/>
      <xsd:element ref="html:InlPhras.class"/>
      <xsd:element ref="html:Anchor.class"/>
      <xsd:element ref="html:InlSpecial.class"/>
      <xsd:element ref="html:InlForm.class"/>
      <xsd:element ref="html:Inline.extra"/>
      <xsd:element ref="html:Misc.class"/>
    </xsd:choice>
  </xsd:complexType>

  <xsd:annotation>
    <xsd:documentation>
	XHTML Character Entities Module

	This DTD module is identified by the PUBLIC and SYSTEM identifiers:

	  PUBLIC "-//W3C//ENTITIES XHTML Character Entities 1.0//EN"
	  SYSTEM "xhtml-charent-1.mod"

	Character Entities for XHTML

	This module declares the set of character entities for XHTML,
	including the Latin 1, Symbol and Special character collections.

	XML Schema doesn't directly support character entities.
	To use them, use ENTITY declarations (whether in internal or
	external DTD subsets)

	XML-compatible ISO Latin 1 Character Entity Set for XHTML

	  PUBLIC "-//W3C//ENTITIES Latin 1 for XHTML//EN"
	  SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-lat1.ent"

	ISO Math, Greek and Symbolic Character Entity Set for XHTML
	
	  PUBLIC "-//W3C//ENTITIES Symbols for XHTML//EN"
	  SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-symbol.ent"

	XML-compatible ISO Special Character Entity Set for XHTML

	  PUBLIC "-//W3C//ENTITIES Special for XHTML//EN"
	  SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-special.ent"
    </xsd:documentation>
  </xsd:annotation>

  <xsd:annotation>
    <xsd:documentation>
	XHTML Text Module

	This DTD module is identified by the PUBLIC and SYSTEM identifiers:

	  PUBLIC "-//W3C//ELEMENTS XHTML Text 1.0//EN"
	  SYSTEM "xhtml-text-1.mod"

	Textual Content

	The Text module includes declarations for all core 
	text container elements and their attributes.
    </xsd:documentation>
  </xsd:annotation>

  <xsd:annotation>
    <xsd:documentation>
	XHTML Inline Structural Module

	Inline Structural

	   br, span

	This module declares the elements and their attributes 
	used to support inline-level structural markup.
    </xsd:documentation>
  </xsd:annotation>

  <xsd:element name="br" equivClass="html:InlStruct.class">
    <xsd:annotation>
      <xsd:documentation>br: forced line break</xsd:documentation>
    </xsd:annotation>

    <xsd:complexType content="empty">
      <xsd:attributeGroup ref="html:Core.attrib"/>
    </xsd:complexType>
  </xsd:element>

  <xsd:element name="span" equivClass="html:InlStruct.class"
               type="html:Inline.mix">
    <xsd:annotation>
      <xsd:documentation>span: generic inline container</xsd:documentation>
    </xsd:annotation>
  </xsd:element>

  <xsd:annotation>
    <xsd:documentation>
	XHTML Inline Phrasal Module

	This DTD module is identified by the PUBLIC and SYSTEM identifiers:

	  PUBLIC "-//W3C//ELEMENTS XHTML Inline Phrasal 1.0//EN"
	  SYSTEM "xhtml-inlphras-1.mod"

	Inline Phrasal

	   abbr, acronym, cite, code, dfn, em, kbd, q, samp, strong, var

	This module declares the elements and their attributes used to
	support inline-level phrasal markup.
    </xsd:documentation>
  </xsd:annotation>

  <xsd:element name="abbr" equivClass="html:InlPhras.class"
               type="html:Inline.mix"/>

  <xsd:element name="acronym" equivClass="html:InlPhras.class"
               type="html:Inline.mix"/>

  <xsd:element name="cite" equivClass="html:InlPhras.class"
               type="html:Inline.mix"/>

  <xsd:element name="code" equivClass="html:InlPhras.class"
               type="html:Inline.mix"/>

  <xsd:element name="dfn" equivClass="html:InlPhras.class"
               type="html:Inline.mix"/>

  <xsd:element name="em" equivClass="html:InlPhras.class"
               type="html:Inline.mix"/>

  <xsd:element name="kbd" equivClass="html:InlPhras.class"
               type="html:Inline.mix"/>

  <xsd:element name="q" equivClass="html:InlPhras.class">
    <xsd:complexType base="html:Inline.mix" derivedBy="extension">
      <xsd:attribute name="cite" type="html:URI.datatype" use="optional"/>
    </xsd:complexType>
  </xsd:element>

  <xsd:element name="samp" equivClass="html:InlPhras.class"
               type="html:Inline.mix"/>

  <xsd:element name="strong" equivClass="html:InlPhras.class"
               type="html:Inline.mix"/>

  <xsd:element name="var" equivClass="html:InlPhras.class"
               type="html:Inline.mix"/>

  <xsd:annotation>
    <xsd:documentation>
	XHTML Block Structural Module

	This DTD module is identified by the PUBLIC and SYSTEM identifiers:

	  PUBLIC "-//W3C//ELEMENTS XHTML Block Structural 1.0//EN"
	  SYSTEM "xhtml-blkstruct-1.mod"

	Block Structural

	   div, p

	This module declares the elements and their attributes used to
	support block-level structural markup.
    </xsd:documentation>
  </xsd:annotation>

  <xsd:element name="div" equivClass="html:BlkStruct.class"
               type="html:Flow.mix"/>

  <xsd:element name="p" equivClass="html:BlkStruct.class"
               type="html:Inline.mix"/>

  <xsd:annotation>
    <xsd:documentation>
	XHTML Block Phrasal Module

	This DTD module is identified by the PUBLIC and SYSTEM identifiers:

	  PUBLIC "-//W3C//ELEMENTS XHTML Block Phrasal 1.0//EN"
	  SYSTEM "xhtml-blkphras-1.mod"

	Block Phrasal

	   address, blockquote, pre, h1, h2, h3, h4, h5, h6

	This module declares the elements and their attributes used to
	support block-level phrasal markup.
    </xsd:documentation>
  </xsd:annotation>

  <xsd:element name="address" equivClass="html:BlkPhras.class"
               type="html:Inline.mix"/>

  <xsd:element name="blockquote" equivClass="html:BlkPhras.class">
    <xsd:complexType base="html:Block.mix" derivedBy="extension">
      <xsd:attribute name="cite" type="html:URI.datatype" use="optional"/>
    </xsd:complexType>
  </xsd:element>

  <xsd:element name="pre" equivClass="html:BlkPhras.class">
    <xsd:complexType content="mixed"
                     base="html:Common" derivedBy="restriction">
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
        <xsd:element ref="html:InlStruct.class"/>
        <xsd:element ref="html:InlPhras.class"/>
        <xsd:element ref="html:Anchor.class"/>
        <xsd:element ref="html:Inline.extra"/>
      </xsd:choice>
      <xsd:attribute ref="xml:space" use="fixed" value="preserve"/>
    </xsd:complexType>
  </xsd:element>

  <xsd:annotation>
    <xsd:documentation>Heading Elements</xsd:documentation>
  </xsd:annotation>

  <xsd:element name="h1" equivClass="html:Heading.class"
               type="html:Inline.mix"/>

  <xsd:element name="h2" equivClass="html:Heading.class"
               type="html:Inline.mix"/>

  <xsd:element name="h3" equivClass="html:Heading.class"
               type="html:Inline.mix"/>

  <xsd:element name="h4" equivClass="html:Heading.class"
               type="html:Inline.mix"/>

  <xsd:element name="h5" equivClass="html:Heading.class"
               type="html:Inline.mix"/>

  <xsd:element name="h6" equivClass="html:Heading.class"
               type="html:Inline.mix"/>

  <xsd:annotation>
    <xsd:documentation>
	XHTML Hypertext Module

	This DTD module is identified by the PUBLIC and SYSTEM identifiers:

	  PUBLIC "-//W3C//ELEMENTS XHTML Hypertext 1.0//EN"
	  SYSTEM "xhtml-hypertext-1.mod"

	Hypertext

	   a

	This module declares the anchor ('a') element type, which
	defines the source of a hypertext link. The destination
	(or link 'target') is identified via its 'id' attribute 
	rather than the 'name' attribute as was used in HTML.
    </xsd:documentation>
  </xsd:annotation>

  <xsd:element name="a" equivClass="html:Anchor.class">
    <xsd:complexType base="html:InlNoAnchor.mix" derivedBy="extension">
      <xsd:attribute name="href" type="html:URI.datatype" use="optional"/>
      <xsd:attribute name="charset" type="html:Charset.datatype" use="optional"/>
      <xsd:attribute name="type" type="html:ContentType.datatype" use="optional"/>
      <xsd:attribute name="hreflang" type="html:LanguageCode.datatype" use="optional"/>
      <xsd:attribute name="rel" type="html:LinkTypes.datatype" use="optional"/>
      <xsd:attribute name="rev" type="html:LinkTypes.datatype" use="optional"/>
      <xsd:attribute name="accesskey" type="html:Character.datatype" use="optional"/>
      <xsd:attribute name="tabindex" type="html:tabindexNumber.datatype" use="optional"/>
    </xsd:complexType>
  </xsd:element>

  <xsd:annotation>
    <xsd:documentation>
	XHTML Lists Module

	This DTD module is identified by the PUBLIC and SYSTEM identifiers:

	  PUBLIC "-//W3C//ELEMENTS XHTML Lists 1.0//EN"
	  SYSTEM "xhtml-list-1.mod"

	Lists

	   dl, dt, dd, ol, ul, li

	This module declares the list-oriented element types
	and their attributes.
    </xsd:documentation>
  </xsd:annotation>

  <xsd:element name="dl" equivClass="html:List.class">
    <xsd:annotation>
      <xsd:documentation>dl: Definition List</xsd:documentation>
    </xsd:annotation>

    <xsd:complexType content="elementOnly"
                     base="html:Common" derivedBy="restriction">
      <xsd:choice minOccurs="1" maxOccurs="unbounded">
        <xsd:element ref="html:dt"/>
        <xsd:element ref="html:dd"/>
      </xsd:choice>
    </xsd:complexType>
  </xsd:element>

  <xsd:element name="dt" type="html:Inline.mix">
    <xsd:annotation>
      <xsd:documentation>dt: Definition Term</xsd:documentation>
    </xsd:annotation>
  </xsd:element>

  <xsd:element name="dd" type="html:Flow.mix">
    <xsd:annotation>
      <xsd:documentation>dd: Definition Description</xsd:documentation>
    </xsd:annotation>
  </xsd:element>

  <xsd:complexType name="listType" content="elementOnly"
                   base="html:Common" derivedBy="restriction">
    <xsd:annotation>
      <xsd:documentation>
	define a complexType for lists (suitable for ul and ol)
      </xsd:documentation>
    </xsd:annotation>

    <xsd:sequence minOccurs="1" maxOccurs="unbounded">
      <xsd:element ref="html:li"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:element name="ol" type="html:listType" equivClass="html:List.class">
    <xsd:annotation>
      <xsd:documentation>ol: Ordered List (numbered styles)</xsd:documentation>
    </xsd:annotation>
  </xsd:element>

  <xsd:element name="ul" type="html:listType" equivClass="html:List.class">
    <xsd:annotation>
      <xsd:documentation>ul: Unordered List (bullet styles)</xsd:documentation>
    </xsd:annotation>
  </xsd:element>

  <xsd:element name="li" type="html:Flow.mix">
    <xsd:annotation>
      <xsd:documentation>li: List Item</xsd:documentation>
    </xsd:annotation>
  </xsd:element>

  <xsd:annotation>
    <xsd:documentation>
	Image Module

	This DTD module is identified by the PUBLIC and SYSTEM identifiers:

	  PUBLIC "-//W3C//ELEMENTS XHTML Images 1.0//EN"
	  SYSTEM "xhtml-image-1.mod"

	Images

	   img

	This module provides markup to support basic image embedding.

	To avoid problems with text-only UAs as well as to make
	image content understandable and navigable to users of
	non-visual UAs, you need to provide a description with
	the 'alt' attribute, and avoid server-side image maps.
    </xsd:documentation>
  </xsd:annotation>

  <xsd:element name="img" equivClass="html:InlSpecial.class">
    <xsd:complexType content="empty">
      <xsd:attributeGroup ref="html:Core.attrib"/>
      <xsd:attributeGroup ref="html:I18n.attrib"/>
      <xsd:attribute name="src" type="html:URI.datatype" use="required"/>
      <xsd:attribute name="alt" type="html:Text.datatype" use="required"/>
      <xsd:attribute name="longdesc" type="html:URI.datatype" use="optional"/>
      <xsd:attribute name="height" type="html:Length.datatype" use="optional"/>
      <xsd:attribute name="width" type="html:Length.datatype" use="optional"/>
    </xsd:complexType>
  </xsd:element>

  <xsd:annotation>
    <xsd:documentation>
	XHTML Basic Table Module

	This DTD module is identified by the PUBLIC and SYSTEM identifiers:

	  PUBLIC "-//W3C//ELEMENTS XHTML Basic Tables 1.0//EN"
	  SYSTEM "xhtml-basic-table-1.mod"

	Basic Tables

	   table, caption, tr, th, td

	This table module declares elements and attributes defining
	a table model based fundamentally on features found in the
	widely-deployed HTML 3.2 table model.  While this module
	mimics the content model and table attributes of HTML 3.2
	tables, the element types declared herein also includes all
	HTML 4.0 common and most of the HTML 4.0 table attributes.
    </xsd:documentation>
  </xsd:annotation>

  <xsd:attributeGroup name="CellHAlign.attrib">
    <xsd:annotation>
      <xsd:documentation>
	horizontal alignment attributes for cell contents
      </xsd:documentation>
    </xsd:annotation>

    <xsd:attribute name="align" use="optional">
      <xsd:simpleType base="xsd:string">
        <xsd:enumeration value="left"/>
        <xsd:enumeration value="center"/>
        <xsd:enumeration value="right"/>
      </xsd:simpleType>
    </xsd:attribute>
  </xsd:attributeGroup>

  <xsd:attributeGroup name="CellVAlign.attrib">
    <xsd:annotation>
      <xsd:documentation>
	vertical alignment attributes for cell contents
      </xsd:documentation>
    </xsd:annotation>

    <xsd:attribute name="valign" use="optional">
      <xsd:simpleType base="xsd:string">
        <xsd:enumeration value="top"/>
        <xsd:enumeration value="middle"/>
        <xsd:enumeration value="bottom"/>
      </xsd:simpleType>
    </xsd:attribute>
  </xsd:attributeGroup>

  <xsd:attributeGroup name="scope.attrib">
    <xsd:annotation>
      <xsd:documentation>
	scope is simpler than axes attribute for common tables
      </xsd:documentation>
    </xsd:annotation>

    <xsd:attribute name="scope" use="optional">
      <xsd:simpleType base="xsd:string">
        <xsd:enumeration value="row"/>
        <xsd:enumeration value="col"/>
      </xsd:simpleType>
    </xsd:attribute>
  </xsd:attributeGroup>

  <xsd:element name="table" equivClass="html:Table.class">
    <xsd:annotation>
      <xsd:documentation>table: Table Element</xsd:documentation>
    </xsd:annotation>

    <xsd:complexType content="elementOnly"
                     base="html:Common" derivedBy="extension">
      <xsd:element ref="html:caption" minOccurs="0" maxOccurs="1"/>
      <xsd:element ref="html:tr" minOccurs="1" maxOccurs="unbounded"/>
      <xsd:attribute name="summary" type="html:Text.datatype" use="optional"/>
    </xsd:complexType>
  </xsd:element>

  <xsd:element name="caption" type="html:Inline.mix">
    <xsd:annotation>
      <xsd:documentation>caption: Table Caption</xsd:documentation>
    </xsd:annotation>
  </xsd:element>

  <xsd:element name="tr">
    <xsd:annotation>
      <xsd:documentation>tr: Table Row</xsd:documentation>
    </xsd:annotation>

    <xsd:complexType content="elementOnly"
                     base="html:Common" derivedBy="extension">
      <xsd:choice minOccurs="1" maxOccurs="unbounded">
        <xsd:element ref="html:th"/>
        <xsd:element ref="html:td"/>
      </xsd:choice>
      <xsd:attributeGroup ref="html:CellHAlign.attrib"/>
      <xsd:attributeGroup ref="html:CellVAlign.attrib"/>
    </xsd:complexType>
  </xsd:element>

  <xsd:element name="tableCellType">
    <xsd:annotation>
      <xsd:documentation>
	define a complexType for table cells (th and td)
	th is for headers, td for data and for cells acting as both
      </xsd:documentation>
    </xsd:annotation>

    <xsd:complexType content="mixed"
                     base="html:FlowNoTable.mix" derivedBy="extension">
      <xsd:attribute name="abbr" type="html:Text.datatype" use="optional"/>
      <xsd:attribute name="axis" type="xsd:string" use="optional"/>
      <xsd:attribute name="headers" type="xsd:IDREFS" use="optional"/>
      <xsd:attributeGroup ref="html:scope.attrib"/>
      <xsd:attribute name="rowspan" type="xsd:positiveInteger" use="default" value="1"/>
      <xsd:attribute name="colspan" type="xsd:positiveInteger" use="default" value="1"/>
      <xsd:attributeGroup ref="html:CellHAlign.attrib"/>
      <xsd:attributeGroup ref="html:CellVAlign.attrib"/>
    </xsd:complexType>
  </xsd:element>

  <xsd:element name="th" type="html:tableCellType">
    <xsd:annotation>
      <xsd:documentation>th: Table Header Cell</xsd:documentation>
    </xsd:annotation>
  </xsd:element>

  <xsd:element name="td" type="html:tableCellType">
    <xsd:annotation>
      <xsd:documentation>td: Table Data Cell</xsd:documentation>
    </xsd:annotation>
  </xsd:element>

  <xsd:annotation>
    <xsd:documentation>
	XHTML Simplified Forms Module

	This DTD module is identified by the PUBLIC and SYSTEM identifiers:

	  PUBLIC "-//W3C//ELEMENTS XHTML Basic Forms 1.0//EN"  
	  SYSTEM "xhtml-basic-form-1.mod"

	Basic Forms

	This forms module is based on the HTML 3.2 forms model, with
	the WAI-requested addition of the label element. While this 
	module essentially mimics the content model and attributes of 
	HTML 3.2 forms, the element types declared herein also include
	all HTML 4.0 common attributes.

	   form, label, input, select, option, textarea
    </xsd:documentation>
  </xsd:annotation>

  <xsd:complexType name="BlkNoForm.mix" content="elementOnly"
                   base="html:Common" derivedBy="restriction">
    <xsd:annotation>
      <xsd:documentation>
	%BlkNoForm.mix; includes all non-form block elements,
	plus %Misc.class;

	% BlkNoForm.mix
	     "%Heading.class;
	      | %List.class;
	      | %BlkStruct.class;
	      %BlkPhras.class;
	      %BlkPres.class;
	      | %table.qname; 
	      %Block.extra;
	      %Misc.class;"
      </xsd:documentation>
    </xsd:annotation>

    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element ref="html:Heading.class"/>
      <xsd:element ref="html:List.class"/>
      <xsd:element ref="html:BlkStruct.class"/>
      <xsd:element ref="html:BlkPhras.class"/>
      <xsd:element ref="html:Table.class"/>
      <xsd:element ref="html:Block.extra"/>
      <xsd:element ref="html:Misc.class"/>
    </xsd:choice>
  </xsd:complexType>


  <xsd:element name="form" equivClass="html:Form.class">
    <xsd:annotation>
      <xsd:documentation>form: Form Element</xsd:documentation>
    </xsd:annotation>

    <xsd:complexType content="elementOnly"
                     base="html:BlkNoForm.mix" derivedBy="extension">
      <xsd:attribute name="action" type="html:URI.datatype" use="required"/>
      <xsd:attribute name="method" use="default" value="get">
        <xsd:simpleType base="xsd:string">
          <xsd:enumeration value="get"/>
          <xsd:enumeration value="post"/>
        </xsd:simpleType>
      </xsd:attribute>
      <xsd:attribute name="enctype" type="xsd:string" use="default"
                     value="application/x-www-form-urlencoded"/>
    </xsd:complexType>
  </xsd:element>

  <xsd:element name="label" equivClass="html:InlForm.class">
    <xsd:annotation>
      <xsd:documentation>
	label: Form Field Label Text

	Each label must not contain more than ONE field
      </xsd:documentation>
    </xsd:annotation>

    <xsd:complexType content="mixed"
                     base="html:Common" derivedBy="extension">
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
        <xsd:element ref="html:input"/>
        <xsd:element ref="html:select"/>
        <xsd:element ref="html:textarea"/>
        <xsd:element ref="html:InlStruct.class"/>
        <xsd:element ref="html:InlPhras.class"/>
        <xsd:element ref="html:I18n.class"/>
        <xsd:element ref="html:InlPres.class"/>
        <xsd:element ref="html:InlSpecial.class"/>
        <xsd:element ref="html:Misc.class"/>
      </xsd:choice>
      <xsd:attribute name="for" type="xsd:IDREF" use="optional"/>
      <xsd:attribute name="accesskey" type="html:Character.datatype" use="optional"/>
    </xsd:complexType>
  </xsd:element>

  <xsd:simpleType name="InputType.class" base="xsd:string">
    <xsd:annotation>
      <xsd:documentation>
	Basic Forms removes 'image' and 'file' input types.

	% InputType.class
	     "( text | password | checkbox | radio 
	      | submit | reset | hidden )"
      </xsd:documentation>
    </xsd:annotation>

    <xsd:enumeration value="text"/>
    <xsd:enumeration value="password"/>
    <xsd:enumeration value="checkbox"/>
    <xsd:enumeration value="radio"/>
    <xsd:enumeration value="submit"/>
    <xsd:enumeration value="reset"/>
    <xsd:enumeration value="hidden"/>
  </xsd:simpleType>

  <xsd:element name="input" equivClass="html:InlForm.class">
    <xsd:annotation>
      <xsd:documentation>
	input: Form Control

	attribute value for maxlength attribute is defined as
	Number.datatype (= xsd:nonNegativeInteger) in DTD, but it should be
	xsd:positiveInteger
      </xsd:documentation>
    </xsd:annotation>

    <xsd:complexType content="empty">
      <xsd:attributeGroup ref="html:Core.attrib"/>
      <xsd:attributeGroup ref="html:I18n.attrib"/>
      <xsd:attribute name="type" use="default" value="text"
                     type="html:InputType.class"/>
      <xsd:attribute name="name" type="xsd:string" use="optional"/>
      <xsd:attribute name="value" type="xsd:string" use="optional"/>
      <xsd:attribute name="checked" use="optional">
        <xsd:simpleType base="xsd:string">
          <xsd:enumeration value="checked"/>
        </xsd:simpleType>
      </xsd:attribute>
      <xsd:attribute name="size" type="html:Number.datatype" use="optional"/>
      <xsd:attribute name="maxlength" type="xsd:positiveInteger" use="optional"/>
      <xsd:attribute name="src" type="html:URI.datatype" use="optional"/>
      <xsd:attribute name="accesskey" type="html:Character.datatype" use="optional"/>
    </xsd:complexType>
  </xsd:element>

  <xsd:element name="select" equivClass="html:InlForm.class">
    <xsd:annotation>
      <xsd:documentation>select: Option Selector</xsd:documentation>
    </xsd:annotation>

    <xsd:complexType content="elementOnly"
                     base="html:Common" derivedBy="extension">
      <xsd:sequence minOccurs="1" maxOccurs="unbounded">
        <xsd:element ref="html:option"/>
      </xsd:sequence>
      <xsd:attribute name="name" type="xsd:string" use="optional"/>
      <xsd:attribute name="size" type="xsd:positiveInteger" use="optional"/>
      <xsd:attribute name="multiple" use="optional">
        <xsd:simpleType base="xsd:string">
          <xsd:enumeration value="multiple"/>
        </xsd:simpleType>
      </xsd:attribute>
    </xsd:complexType>
  </xsd:element>

  <xsd:element name="option">
    <xsd:annotation>
      <xsd:documentation>option: Selectable Choice</xsd:documentation>
    </xsd:annotation>

    <xsd:complexType content="textOnly"
                     base="html:Common" derivedBy="extension">
      <xsd:attribute name="selected" use="optional">
        <xsd:simpleType base="xsd:string">
          <xsd:enumeration value="selected"/>
        </xsd:simpleType>
      </xsd:attribute>
      <xsd:attribute name="value" type="xsd:string" use="optional"/>
    </xsd:complexType>
  </xsd:element>

  <xsd:element name="textarea" equivClass="html:InlForm.class">
    <xsd:annotation>
      <xsd:documentation>textarea: Multi-Line Text Field</xsd:documentation>
    </xsd:annotation>

    <xsd:complexType content="mixed"
                     base="html:Common" derivedBy="extension">
      <xsd:attribute name="name" type="xsd:string" use="optional"/>
      <xsd:attribute name="rows" type="html:Number.datatype" use="required"/>
      <xsd:attribute name="cols" type="html:Number.datatype" use="required"/>
      <xsd:attribute name="accesskey" type="html:Character.datatype" use="optional"/>
    </xsd:complexType>
  </xsd:element>

  <xsd:annotation>
    <xsd:documentation>
	XHTML Link Element Module

	This DTD module is identified by the PUBLIC and SYSTEM identifiers:

	  PUBLIC "-//W3C//ELEMENTS XHTML Link Element 1.0//EN"
	  SYSTEM "xhtml-link-1.mod"

	Link element

	   link

	This module declares the link element type and its attributes,
	which could (in principle) be used to define document-level links
	to external resources such as:

	a) for document specific toolbars/menus, e.g. start, contents,
	   previous, next, index, end, help
	b) to link to a separate style sheet (rel="stylesheet")
	c) to make a link to a script (rel="script")
	d) by stylesheets to control how collections of html nodes are
	   rendered into printed documents
	e) to make a link to a printable version of this document
	   e.g. a postscript or pdf version (rel="alternate" media="print")
    </xsd:documentation>
  </xsd:annotation>

  <xsd:element name="link" equivClass="html:HeadOpts.mix">
    <xsd:annotation>
      <xsd:documentation>link: Media-Independent Link</xsd:documentation>
    </xsd:annotation>

    <xsd:complexType content="empty">
      <xsd:attributeGroup ref="html:Core.attrib"/>
      <xsd:attributeGroup ref="html:I18n.attrib"/>
      <xsd:attribute name="charset" type="html:Charset.datatype" use="optional"/>
      <xsd:attribute name="href" type="html:URI.datatype" use="optional"/>
      <xsd:attribute name="hreflang" type="html:LanguageCode.datatype" use="optional"/>
      <xsd:attribute name="type" type="html:ContentType.datatype" use="optional"/>
      <xsd:attribute name="rel" type="html:LinkTypes.datatype" use="optional"/>
      <xsd:attribute name="rev" type="html:LinkTypes.datatype" use="optional"/>
      <xsd:attribute name="media" type="html:MediaDesc.datatype" use="optional"/>
    </xsd:complexType>
  </xsd:element>

  <xsd:annotation>
    <xsd:documentation>
	XHTML Document Metainformation Module

	This DTD module is identified by the PUBLIC and SYSTEM identifiers:

	  PUBLIC "-//W3C//ELEMENTS XHTML Metainformation 1.0//EN"
	  SYSTEM "xhtml-meta-1.mod"

	Meta Information

	   meta

	This module declares the meta element type and its attributes,
	used to provide declarative document metainformation.
    </xsd:documentation>
  </xsd:annotation>

  <xsd:element name="meta" equivClass="html:HeadOpts.mix">
    <xsd:annotation>
      <xsd:documentation>meta: Generic Metainformation</xsd:documentation>
    </xsd:annotation>

    <xsd:complexType content="empty">
      <xsd:attributeGroup ref="html:I18n.attrib"/>
      <xsd:attribute name="http-equiv" type="xsd:NMTOKEN" use="optional"/>
      <xsd:attribute name="name" type="xsd:NMTOKEN" use="optional"/>
      <xsd:attribute name="content" type="xsd:string" use="required"/>
      <xsd:attribute name="scheme" type="xsd:string" use="optional"/>
    </xsd:complexType>
  </xsd:element>

  <xsd:annotation>
    <xsd:documentation>
	XHTML Base Element Module

	This DTD module is identified by the PUBLIC and SYSTEM identifiers:

	  PUBLIC "-//W3C//ELEMENTS XHTML Base Element 1.0//EN"
	  SYSTEM "xhtml-base-1.mod"

	Base element

	   base

	This module declares the base element type and its attributes,
	used to define a base URI against which relative URIs in the
	document will be resolved.

	Note that this module also redeclares the content model for
	the head element to include the base element.
    </xsd:documentation>
  </xsd:annotation>

  <xsd:element name="base">
    <xsd:annotation>
      <xsd:documentation>base: Document Base URI</xsd:documentation>
    </xsd:annotation>

    <xsd:complexType content="empty">
      <xsd:attribute name="href" type="html:URI.datatype" use="required"/>
    </xsd:complexType>
  </xsd:element>

  <xsd:annotation>
    <xsd:documentation>
	XHTML Param Element Module

	This DTD module is identified by the PUBLIC and SYSTEM identifiers:

	  PUBLIC "-//W3C//ELEMENTS XHTML Param Element 1.0//EN"
	  SYSTEM "xhtml-param-1.mod"

	Parameters for Java Applets and Embedded Objects

	   param

	This module provides declarations for the param element, 
	used to provide named property values for the applet
	and object elements. 
    </xsd:documentation>
  </xsd:annotation>

  <xsd:element name="param">
    <xsd:annotation>
      <xsd:documentation>param: Named Property Value</xsd:documentation>
    </xsd:annotation>

    <xsd:complexType content="empty">
      <xsd:attribute name="id" type="xsd:ID" use="optional"/>
      <xsd:attribute name="name" type="xsd:string" use="required"/>
      <xsd:attribute name="value" type="xsd:string" use="optional"/>
      <xsd:attribute name="valuetype" use="default" value="data">
        <xsd:simpleType base="xsd:string">
          <xsd:enumeration value="data"/>
          <xsd:enumeration value="ref"/>
          <xsd:enumeration value="object"/>
        </xsd:simpleType>
      </xsd:attribute>
      <xsd:attribute name="type" type="html:ContentType.datatype" use="optional"/>
    </xsd:complexType>
  </xsd:element>

  <xsd:annotation>
    <xsd:documentation>
	XHTML Embedded Object Module

	This DTD module is identified by the PUBLIC and SYSTEM identifiers:

	  PUBLIC "-//W3C//ELEMENTS XHTML Embedded Object 1.0//EN"
	  SYSTEM "xhtml-object-1.mod"

	Embedded Objects

	   object

	This module declares the object element type and its attributes,
	used to embed external objects as part of XHTML pages. In the
	document, place param elements prior to the object elements 
	that require their content.

	Note that use of this module requires instantiation of the 
	Param Element Module prior to this module.
    </xsd:documentation>
  </xsd:annotation>

  <xsd:element name="object" equivClass="html:InlSpecial.class">
    <xsd:annotation>
      <xsd:documentation>
	object: Generic Embedded Object

	content model is "( #PCDATA | %Flow.mix; | param )*"
      </xsd:documentation>
    </xsd:annotation>

    <xsd:complexType content="mixed"
                     base="html:Common" derivedBy="extension">
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
        <xsd:element ref="html:Heading.class"/>
        <xsd:element ref="html:List.class"/>
        <xsd:element ref="html:BlkStruct.class"/>
        <xsd:element ref="html:BlkPhras.class"/>
        <xsd:element ref="html:Table.class"/>
        <xsd:element ref="html:Form.class"/>
        <xsd:element ref="html:Block.extra"/>
        <xsd:element ref="html:InlStruct.class"/>
        <xsd:element ref="html:InlPhras.class"/>
        <xsd:element ref="html:Anchor.class"/>
        <xsd:element ref="html:InlSpecial.class"/>
        <xsd:element ref="html:InlForm.class"/>
        <xsd:element ref="html:Inline.extra"/>
        <xsd:element ref="html:Misc.class"/>
        <xsd:element ref="html:param"/>
      </xsd:choice>
      <xsd:attribute name="declare" use="optional">
        <xsd:simpleType base="xsd:string">
          <xsd:enumeration value="declare"/>
        </xsd:simpleType>
      </xsd:attribute>
      <xsd:attribute name="classid" type="html:URI.datatype" use="optional"/>
      <xsd:attribute name="codebase" type="htmlURI.datatype:" use="optional"/>
      <xsd:attribute name="data" type="html:URI.datatype" use="optional"/>
      <xsd:attribute name="type" type="html:ContentType.datatype" use="optional"/>
      <xsd:attribute name="codetype" type="html:ContentType.datatype" use="optional"/>
      <xsd:attribute name="archive" type="html:URIs.datatype" use="optional"/>
      <xsd:attribute name="standby" type="html:Text.datatype" use="optional"/>
      <xsd:attribute name="height" type="html:Length.datatype" use="optional"/>
      <xsd:attribute name="width" type="html:Length.datatype" use="optional"/>
      <xsd:attribute name="name" type="xsd:string" use="optional"/>
      <xsd:attribute name="tabindex" type="html:tabindexNumber.datatype" use="optional"/>
    </xsd:complexType>
  </xsd:element>

  <xsd:annotation>
    <xsd:documentation>
	XHTML Structure Module

	This DTD module is identified by the PUBLIC and SYSTEM identifiers:

	  PUBLIC "-//W3C//ELEMENTS XHTML Document Structure 1.0//EN"
	  SYSTEM "xhtml-struct-1.mod"

	Document Structure

	   title, head, body, html

	The Structure Module defines the major structural elements and 
	their attributes.

	Note that the content model of the head element type is redeclared 
	when the Base Module is included in the DTD.
    </xsd:documentation>
  </xsd:annotation>

  <xsd:element name="title">
    <xsd:annotation>
      <xsd:documentation>
	title: Document Title

	The title element is not considered part of the flow of text.
	It should be displayed, for example as the page header or
	window title. Exactly one title is required per document.
      </xsd:documentation>
    </xsd:annotation>

    <xsd:complexType content="textOnly">
      <xsd:attributeGroup ref="html:I18n.attrib"/>
    </xsd:complexType>
  </xsd:element>

  <xsd:element name="head">
    <xsd:annotation>
      <xsd:documentation>
	head: Document Head

	Note: profile attribute is defined to have %XHTML.profile;
	as default value, but for the moment it's defined to be optional
      </xsd:documentation>
    </xsd:annotation>

    <xsd:complexType content="elementOnly">
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
        <xsd:element ref="html:HeadOpts.mix"/>
        <xsd:element ref="html:object"/>
      </xsd:choice>
      <xsd:choice>
        <xsd:sequence>
          <xsd:element ref="html:title"/>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element ref="html:HeadOpts.mix"/>
            <xsd:element ref="html:object"/>
          </xsd:choice>
          <xsd:sequence minOccurs="0" maxOccurs="1">
            <xsd:element ref="html:base"/>
            <xsd:choice minOccurs="0" maxOccurs="unbounded">
              <xsd:element ref="html:HeadOpts.mix"/>
              <xsd:element ref="html:object"/>
            </xsd:choice>
          </xsd:sequence>
        </xsd:sequence>
        <xsd:sequence>
          <xsd:element ref="html:base"/>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element ref="html:HeadOpts.mix"/>
            <xsd:element ref="html:object"/>
          </xsd:choice>
          <xsd:sequence>
            <xsd:element ref="html:title"/>
            <xsd:choice minOccurs="0" maxOccurs="unbounded">
              <xsd:element ref="html:HeadOpts.mix"/>
              <xsd:element ref="html:object"/>
            </xsd:choice>
          </xsd:sequence>
        </xsd:sequence>
      </xsd:choice>
      <xsd:attributeGroup ref="html:I18n.attrib"/>
      <xsd:attribute name="profile" type="html:URI.datatype" use="optional"/>
    </xsd:complexType>
  </xsd:element>

  <xsd:element name="body" type="html:Block.mix">
    <xsd:annotation>
      <xsd:documentation>body: Document Body</xsd:documentation>
    </xsd:annotation>
  </xsd:element>

  <xsd:element name="html">
    <xsd:annotation>
      <xsd:documentation>html: XHTML Document Element</xsd:documentation>
    </xsd:annotation>

    <xsd:complexType content="elementOnly">
      <xsd:element ref="html:head"/>
      <xsd:element ref="html:body"/>
      <xsd:attribute name="version" type="html:FPI.datatype" use="fixed"
                     value="-//W3C//DTD XHTML Basic 1.0//EN"/>
      <xsd:attributeGroup ref="html:I18n.attrib"/>
    </xsd:complexType>
  </xsd:element>
</xsd:schema>
