C. XHTML Schema Module Implementations

Contents

This appendix is normative.

This appendix contains implementations of the modules defined in XHTML Abstract Modules via XML Schemas. These module implementations can be used by XHTML Family Document Types. There are direct links to the various files, and the files are also contained in the "Gzip'd TAR" and "Zip" archives linked to at the top of this specification.

C.1. Character Entities

XML Schema uses DTDs to support character entities. The DTD implementation of XHTML Modularization [XHTMLMOD] defines the required character entities for XHTML. The schema implementation includes the set of character entities for XHTML, including the Latin 1, Symbol and Special character collections defined as part the DTD implementation of XHTML Modularization [XHTMLMOD].

Even though the named character entities are defined using DTDs and included in the Schema Modularization Framework, schema processors typically do not expand the named character entities in an XML document instance. The html DOCTYPE declaration must still be present if one wishes to use named entities defined by this Framework module

C.2. XHTML Schema Modular Framework

The Framework modules instantiates a set of support model that define the common Datatypes, Notations, Common attribute definitions and character entities. These are defined in a set of support modules, instantiated by a main Framework module:

You can download this file from http://www.w3.org/MarkUp/SCHEMA/xhtml-framework-1.xsd.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
 xmlns:xs="http://www.w3.org/2001/XMLSchema"
 xmlns:xh11d="http://www.w3.org/1999/xhtml/datatypes/"
 elementFormDefault="qualified"
>
    <xs:annotation>
        <xs:documentation>
      This is the XML Schema Modular Framework support module for XHTML
      $Id: xhtml-framework-1.xsd,v 1.5 2005/09/26 23:37:47 ahby Exp $
    </xs:documentation>
        <xs:documentation source="xhtml-copyright-1.xsd"/>
    </xs:annotation>
    <xs:annotation>
        <xs:documentation>
      XHTML Modular Framework
      This required module instantiates the necessary modules
      needed to support the XHTML modularization framework.

      The Schema modules instantiated are:
        +  notations
        +  datatypes
        +  common attributes
        +  character entities
    </xs:documentation>
        <xs:documentation source="http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_commonatts"/>
    </xs:annotation>
    <!-- xs:include schemaLocation="xhtml-notations-1.xsd">
        <xs:annotation>
            <xs:documentation>
         Notations module
         Declares XHTML notations for Attribute data types
      </xs:documentation>
        </xs:annotation>
    </xs:include -->
    <xs:import namespace="http://www.w3.org/1999/xhtml/datatypes/" schemaLocation="xhtml-datatypes-1.xsd">
        <xs:annotation>
            <xs:documentation>
        This module defines XHTML Attribute DataTypes
      </xs:documentation>
            <xs:documentation source="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstraction.html#s_common_attrtypes"/>
        </xs:annotation>
    </xs:import>
    <xs:include schemaLocation="xhtml-attribs-1.xsd">
        <xs:annotation>
            <xs:documentation>
        This module defines Common attributes for XHTML
      </xs:documentation>
            <xs:documentation source="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstract_modules.html#s_commonatts"/>
        </xs:annotation>
    </xs:include>
    <!-- xs:include schemaLocation="xhtml-charent-1.xsd">
        <xs:annotation>
            <xs:documentation>
        Character entities module
        Note: Entities are not supported in XML Schema
        The Schema Module uses DTDs to define Entities

        This module defines
          + XHTML Latin 1 Character Entities
          + XHTML Special Characters
          + XHTML Mathematical, Greek, and Symbolic Characters
    </xs:documentation>
        </xs:annotation>
    </xs:include -->
</xs:schema>

The Modular Schema framework also relies upon the following component modules:

C.2.1. XHTML Notations

You can download this file from http://www.w3.org/MarkUp/SCHEMA/xhtml-notations-1.xsd.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
 xmlns:xs="http://www.w3.org/2001/XMLSchema"
 elementFormDefault="qualified"
 xmlns:xh11d="http://www.w3.org/1999/xhtml/datatypes/"
>
    <xs:import namespace="http://www.w3.org/1999/xhtml/datatypes/" 
               schemaLocation="xhtml-datatypes-1.xsd" />
    <xs:annotation>
        <xs:documentation>
      Notations module
      This is the XML Schema module for data type notations for XHTML
      $Id: xhtml-notations-1.xsd,v 1.5 2005/09/26 22:54:53 ahby Exp $
    </xs:documentation>
        <xs:documentation source="xhtml-copyright-1.xsd"/>
    </xs:annotation>
    <xs:annotation>
        <xs:documentation>
      Notations module
      Defines the XHTML notations, many of these imported from 
      other specifications and standards. When an existing FPI is
      known, it is incorporated here.            
    </xs:documentation>
        <xs:documentation source="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstraction.html#s_common_attrtypes"/>
    </xs:annotation>
    <!-- W3C XML 1.0 Recommendation -->
    <xs:notation name="w3c-xml" public="ISO 8879//NOTATION Extensible Markup Language (XML) 1.0//EN"/>
    <!-- XML 1.0 CDATA -->
    <xs:notation name="cdata" public="-//W3C//NOTATION XML 1.0: CDATA//EN"/>
    <!-- SGML Formal Public Identifiers -->
    <xs:notation name="fpi" public="ISO 8879:1986//NOTATION Formal Public Identifier//EN"/>
    <!-- XHTML Notations ... -->
    <!-- Length defined for cellpadding/cellspacing -->
    <!-- nn for pixels or nn% for percentage length -->
    <!-- a single character, as per section 2.2 of [XML] -->
    <xs:notation name="character" public="-//W3C//NOTATION XHTML Datatype: Character//EN"/>
    <!-- a character encoding, as per [RFC2045] -->
    <xs:notation name="charset" public="-//W3C//NOTATION XHTML Datatype: Charset//EN"/>
    <!-- a space separated list of character encodings, as per [RFC2045] -->
    <xs:notation name="charsets" public="-//W3C//NOTATION XHTML Datatype: Charsets//EN"/>
    <!-- media type, as per [RFC2045] -->
    <xs:notation name="contentType" public="-//W3C//NOTATION XHTML Datatype: ContentType//EN"/>
    <!-- comma-separated list of media types, as per [RFC2045] -->
    <xs:notation name="contentTypes" public="-//W3C//NOTATION XHTML Datatype: ContentTypes//EN"/>
    <!-- date and time information. ISO date format -->
    <xs:notation name="datetime" public="-//W3C//NOTATION XHTML Datatype: Datetime//EN"/>
    <!-- a language code, as per [RFC3066] -->
    <xs:notation name="languageCode" public="-//W3C//NOTATION XHTML Datatype: LanguageCode//EN"/>
    <!-- nn for pixels or nn% for percentage length -->
    <xs:notation name="length" public="-//W3C//NOTATION XHTML Datatype: Length//EN"/>
    <!-- space-separated list of link types -->
    <xs:notation name="linkTypes" public="-//W3C//NOTATION XHTML Datatype: LinkTypes//EN"/>
    <!-- single or comma-separated list of media descriptors -->
    <xs:notation name="mediaDesc" public="-//W3C//NOTATION XHTML Datatype: MediaDesc//EN"/>
    <!-- pixel, percentage, or relative -->
    <xs:notation name="multiLength" public="-//W3C//NOTATION XHTML Datatype: MultiLength//EN"/>
    <!-- one or more digits (NUMBER) -->
    <xs:notation name="number" public="-//W3C//NOTATION XHTML Datatype: Number//EN"/>
    <!-- one or more digits (NUMBER) -->
    <xs:notation name="pixels" public="-//W3C//NOTATION XHTML Datatype: Pixels//EN"/>
    <!-- script expression -->
    <xs:notation name="script" public="-//W3C//NOTATION XHTML Datatype: Script//EN"/>
    <!-- textual content -->
    <xs:notation name="text" public="-//W3C//NOTATION XHTML Datatype: Text//EN"/>
    <!-- a Uniform Resource Identifier, see [URI] -->
    <xs:notation name="uri" public="-//W3C//NOTATION XHTML Datatype: URI//EN"/>
    <!-- a space-separated list of Uniform Resource Identifiers, see [URI] -->
    <xs:notation name="uris" public="-//W3C//NOTATION XHTML Datatype: URIs//EN"/>
</xs:schema>

C.2.2. XHTML Datatypes

You can download this file from http://www.w3.org/MarkUp/SCHEMA/xhtml-datatypes-1.xsd.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
 xmlns:xs="http://www.w3.org/2001/XMLSchema"
 xmlns="http://www.w3.org/1999/xhtml/datatypes/"
 xmlns:xh11d="http://www.w3.org/1999/xhtml/datatypes/"
 targetNamespace="http://www.w3.org/1999/xhtml/datatypes/"
 elementFormDefault="qualified"
>
    <xs:annotation>
        <xs:documentation>
          XHTML Datatypes
          This is the XML Schema datatypes module for XHTML
          
          Defines containers for the XHTML datatypes, many of
          these imported from other specifications and standards.
          
          $Id: xhtml-datatypes-1.xsd,v 1.9 2008/06/04 20:58:09 ahby Exp $
        </xs:documentation>
        <xs:documentation source="xhtml-copyright-1.xsd"/>
        <xs:documentation source="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstraction.html#s_common_attrtypes"/>
    </xs:annotation>

    <!-- nn for pixels or nn% for percentage length -->
    <xs:simpleType name="Length">
        <xs:union memberTypes="xs:nonNegativeInteger">
            <xs:simpleType>
                <xs:restriction base="xs:token">
                    <xs:pattern value="\d+[%]|\d*\.\d+[%]"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:union>
    </xs:simpleType>
    <!-- space-separated list of link types -->
    <xs:simpleType name="LinkTypes">
        <xs:list itemType="xs:NMTOKEN"/>
    </xs:simpleType>
    <!-- single or comma-separated list of media descriptors -->
    <xs:simpleType name="MediaDesc">
        <xs:restriction base="xs:string"/>
    </xs:simpleType>
    <!-- pixel, percentage, or relative -->
    <xs:simpleType name="MultiLength">
        <xs:union memberTypes="xh11d:Length">
            <xs:simpleType>
                <xs:restriction base="xs:token">
                    <xs:pattern value="\d*\*"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:union>
    </xs:simpleType>
    <!-- one or more digits (NUMBER) -->
    <xs:simpleType name="Number">
        <xs:restriction base="xs:nonNegativeInteger"/>
    </xs:simpleType>
    <!-- integer representing length in pixels -->
    <xs:simpleType name="Pixels">
        <xs:restriction base="xs:nonNegativeInteger"/>
    </xs:simpleType>
    <!-- script expression -->
    <xs:simpleType name="Script">
        <xs:restriction base="xs:string"/>
    </xs:simpleType>
    <!-- sixteen color names or RGB color expression-->
    <xs:simpleType name="Color">
        <xs:union memberTypes="xs:NMTOKEN">
            <xs:simpleType>
                <xs:restriction base="xs:token">
                    <xs:pattern value="#[0-9a-fA-F]{3}([0-9a-fA-F]{3})?"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:union>
    </xs:simpleType>
    <!-- textual content -->
    <xs:simpleType name="Text">
        <xs:restriction base="xs:string"/>
    </xs:simpleType>
    <!-- Imported Datatypes  -->
    <!-- a single character, as per section 2.2 of [XML] -->
    <xs:simpleType name="Character">
        <xs:restriction base="xs:string">
            <xs:length value="1" fixed="true"/>
        </xs:restriction>
    </xs:simpleType>
    <!-- a character encoding, as per [RFC2045] -->
    <xs:simpleType name="Charset">
        <xs:restriction base="xs:string"/>
    </xs:simpleType>
    <!-- a space separated list of character encodings, as per [RFC2045] -->
    <xs:simpleType name="Charsets">
        <xs:list itemType="Charset"/>
    </xs:simpleType>
    <!-- media type, as per [RFC2045] -->
    <xs:simpleType name="ContentType">
        <xs:restriction base="xs:string"/>
    </xs:simpleType>
    <!-- comma-separated list of media types, as per [RFC2045] -->
    <xs:simpleType name="ContentTypes">
        <xs:restriction base="xs:string"/>
    </xs:simpleType>
    <!-- date and time information. ISO date format -->
    <xs:simpleType name="Datetime">
        <xs:restriction base="xs:dateTime"/>
    </xs:simpleType>
    <!-- formal public identifier, as per [ISO8879] -->
    <xs:simpleType name="FPI">
        <xs:restriction base="xs:normalizedString"/>
    </xs:simpleType>

    <!-- a window name as used in the target attribute -->
    <xs:simpleType name="FrameTarget">
      <xs:union>
        <xs:simpleType>
          <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="_blank"/>
            <xs:enumeration value="_self"/>
            <xs:enumeration value="_parent"/>
            <xs:enumeration value="_top"/>
          </xs:restriction>
        </xs:simpleType>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:pattern value="[a-zA-Z].*"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:union>
    </xs:simpleType>
    
    <!-- a language code, as per [RFC3066] -->
    <xs:simpleType name="LanguageCode">
        <xs:restriction base="xs:language"/>
    </xs:simpleType>
    <!-- a comma separated list of language ranges -->
    <xs:simpleType name="LanguageCodes">
        <xs:restriction base="xs:string"/>
    </xs:simpleType>
    <!-- a Uniform Resource Identifier, see [URI] -->
    <xs:simpleType name="URI">
        <xs:restriction base="xs:anyURI"/>
    </xs:simpleType>
    <!-- a space-separated list of Uniform Resource Identifiers, see [URI] -->
    <xs:simpleType name="URIs">
        <xs:list itemType="xs:anyURI"/>
    </xs:simpleType>
    <!-- comma-separated list of MultiLength -->
    <xs:simpleType name="MultiLengths">
        <xs:restriction base="xs:string"/>
    </xs:simpleType>
    <!-- character Data -->
    <xs:simpleType name="CDATA">
        <xs:restriction base="xs:string"/>
    </xs:simpleType>
    <!-- CURIE placeholder datatypes -->
    <xs:simpleType name="CURIE">
        <xs:restriction base="xs:string">
            <xs:pattern value="[\i-[:]][\c-[:]]*:.+" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="CURIEs">
        <xs:list itemType="xh11d:CURIE"/>
    </xs:simpleType>
    <xs:simpleType name="SafeCURIE">
        <xs:restriction base="xs:string">
            <xs:pattern value="\[[\i-[:]][\c-[:]]*:.+\]" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="SafeCURIEs">
        <xs:list itemType="xh11d:SafeCURIE"/>
    </xs:simpleType>
    <xs:simpleType name="URIorSafeCURIE">
        <xs:union memberTypes="xs:anyURI xh11d:SafeCURIE" />
    </xs:simpleType>
    <xs:simpleType name="URIorSafeCURIEs">
        <xs:list itemType="xh11d:URIorSafeCURIE"/>
    </xs:simpleType>
</xs:schema>

C.2.3. XHTML Common Attribute Definitions

You can download this file from http://www.w3.org/MarkUp/SCHEMA/xhtml-attribs-1.xsd.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
 xmlns:xs="http://www.w3.org/2001/XMLSchema"
 elementFormDefault="qualified"
 xmlns:xh11d="http://www.w3.org/1999/xhtml/datatypes/"
>
    <xs:import namespace="http://www.w3.org/1999/xhtml/datatypes/" 
               schemaLocation="xhtml-datatypes-1.xsd" />

    <xs:annotation>
        <xs:documentation>
      This is the XML Schema common attributes module for XHTML
      $Id: xhtml-attribs-1.xsd,v 1.6 2005/09/26 23:37:47 ahby Exp $
    </xs:documentation>
        <xs:documentation source="xhtml-copyright-1.xsd"/>
        <xs:documentation source="http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_commonatts"/>
    </xs:annotation>
  <xs:import namespace="http://www.w3.org/XML/1998/namespace"
             schemaLocation="http://www.w3.org/2001/xml.xsd">
        <xs:annotation>
            <xs:documentation>
        This import brings in the XML namespace attributes
        The module itself does not provide the schemaLocation
        and expects the driver schema to provide the
        actual SchemaLocation.
      </xs:documentation>
        </xs:annotation>
    </xs:import>
    <xs:attributeGroup name="xhtml.id">
        <xs:attribute name="id" type="xs:ID"/>
    </xs:attributeGroup>
    <xs:attributeGroup name="xhtml.class">
        <xs:attribute name="class" type="xs:NMTOKENS"/>
    </xs:attributeGroup>
    <xs:attributeGroup name="xhtml.title">
        <xs:attribute name="title" type="xs:string"/>
    </xs:attributeGroup>
    <xs:attributeGroup name="xhtml.Core.attrib">
        <xs:attributeGroup ref="xhtml.id"/>
        <xs:attributeGroup ref="xhtml.class"/>
        <xs:attributeGroup ref="xhtml.title"/>
        <xs:attributeGroup ref="xhtml.Core.extra.attrib"/>
    </xs:attributeGroup>
    <xs:attributeGroup name="xhtml.I18n.attrib">
        <xs:attribute ref="xml:lang" />
        <xs:attributeGroup ref="xhtml.I18n.extra.attrib"/>
    </xs:attributeGroup>
    <xs:attributeGroup name="xhtml.Common.attrib">
        <xs:attributeGroup ref="xhtml.Core.attrib"/>
        <xs:attributeGroup ref="xhtml.I18n.attrib"/>
        <xs:attributeGroup ref="xhtml.Common.extra"/>
    </xs:attributeGroup>
    <!-- Global attributes -->
    <xs:attribute name="id" type="xs:ID"/>
    <xs:attribute name="class" type="xs:NMTOKENS"/>
    <xs:attribute name="title" type="xs:string"/>
    <xs:attributeGroup name="xhtml.Global.core.attrib">
        <xs:attribute ref="id"/>
        <xs:attribute ref="class"/>
        <xs:attribute ref="title"/>
        <xs:attributeGroup ref="xhtml.Global.core.extra.attrib" />
    </xs:attributeGroup>
    <xs:attributeGroup name="xhtml.Global.i18n.attrib">
        <xs:attribute ref="xml:lang" />
        <xs:attributeGroup ref="xhtml.Global.I18n.extra.attrib"/>
    </xs:attributeGroup>
    <xs:attributeGroup name="xhtml.Global.common.attrib">
        <xs:attributeGroup ref="xhtml.Global.core.attrib"/>
        <xs:attributeGroup ref="xhtml.Global.i18n.attrib"/>
        <xs:attributeGroup ref="xhtml.Global.Common.extra"/>
    </xs:attributeGroup>
</xs:schema>

C.2.4. XHTML Character Entities

You can download this file from http://www.w3.org/MarkUp/SCHEMA/xhtml-charent-1.xsd.

<?xml version="1.0" encoding="UTF-8"?>
<!--
  This schema module includes three named character entity files.
-->
<!DOCTYPE xs:schema [
    <!-- These are the entity sets for ISO Latin 1 characters for the XHTML -->
    <!ENTITY % HTMLlat1 PUBLIC
   "-//W3C//ENTITIES Latin 1 for XHTML//EN"
   "http://www.w3.org/TR/2008/PR-xhtml-modularization-20080611/DTD/xhtml-lat1.ent">
    %HTMLlat1;
    <!-- These are the entity sets for special characters for the XHTML -->
    <!ENTITY % HTMLsymbol PUBLIC
   "-//W3C//ENTITIES Symbols for XHTML//EN"
   "http://www.w3.org/TR/2008/PR-xhtml-modularization-20080611/DTD/xhtml-symbol.ent">
    %HTMLsymbol;
    <!-- These are the entity sets for symbol characters for the XHTML -->
    <!ENTITY % HTMLspecial PUBLIC
   "-//W3C//ENTITIES Special for XHTML//EN"
   "http://www.w3.org/TR/2008/PR-xhtml-modularization-20080611/DTD/xhtml-special.ent">
    %HTMLspecial;
]>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
           elementFormDefault="qualified">
    <xs:annotation>
        <xs:documentation>
      Character Entities for XHTML    
      This is the XML Schema Character Entities module for XHTML

      This module declares the set of character entities for XHTML,
      including the Latin 1, Symbol and Special character collections.
      XML Schema does not support Entities, hence Entities are enable
      through an Internal DTD Subset.
      
      $Id: xhtml-charent-1.xsd,v 1.3 2005/09/26 22:54:53 ahby Exp $
    </xs:documentation>
        <xs:documentation source="xhtml-copyright-1.xsd"/>
    </xs:annotation>
</xs:schema>

C.3. XHTML Module Implementations

This section contains the formal definition of each of the XHTML Abstract Modules as a Schema module.

C.3.1. XHTML Core Modules

C.3.1.1. Structure

You can download this file from http://www.w3.org/MarkUp/SCHEMA/xhtml-struct-1.xsd.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    elementFormDefault="qualified"
    xmlns:xh11d="http://www.w3.org/1999/xhtml/datatypes/">
    <xs:import
        namespace="http://www.w3.org/1999/xhtml/datatypes/"
        schemaLocation="xhtml-datatypes-1.xsd"/>
    <xs:annotation>
        <xs:documentation>
        This is the XML Schema Document Structure module for XHTML
        Document Structure
    
          * title, head, body, html
    
        The Structure Module defines the major structural elements and 
        their attributes.
        
        $Id: xhtml-struct-1.xsd,v 1.8 2006/09/11 10:27:50 ahby Exp $     
      </xs:documentation>
        <xs:documentation source="xhtml-copyright-1.xsd"/>
        <xs:documentation source="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstract_modules.html#s_structuremodule"/>
    </xs:annotation>
    <xs:attributeGroup
        name="xhtml.title.attlist">
        <xs:attributeGroup
            ref="xhtml.I18n.attrib"/>
        <xs:attributeGroup ref="xhtml.id"/>
    </xs:attributeGroup>
    <xs:group
        name="xhtml.title.content">
        <xs:sequence/>
    </xs:group>
    <xs:complexType
        name="xhtml.title.type"
        mixed="true">
        <xs:group
            ref="xhtml.title.content"/>
        <xs:attributeGroup
            ref="xhtml.title.attlist"/>
    </xs:complexType>
    <xs:attributeGroup
        name="xhtml.profile.attrib">
        <xs:attribute
            name="profile"
            type="xh11d:URI"/>
    </xs:attributeGroup>
    <xs:attributeGroup
        name="xhtml.head.attlist">
        <xs:attributeGroup
            ref="xhtml.profile.attrib"/>
        <xs:attributeGroup
            ref="xhtml.I18n.attrib"/>
        <xs:attributeGroup ref="xhtml.id"/>
    </xs:attributeGroup>
    <xs:complexType
        name="xhtml.head.type">
        <xs:group
            ref="xhtml.head.content"/>
        <xs:attributeGroup
            ref="xhtml.head.attlist"/>
    </xs:complexType>
    <xs:attributeGroup
        name="xhtml.body.attlist">
        <xs:attributeGroup
            ref="xhtml.Common.attrib"/>
    </xs:attributeGroup>
    <xs:group
        name="xhtml.body.content">
        <xs:sequence>
            <xs:group
                ref="xhtml.Block.mix"
                minOccurs="0"
                maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:group>
    <xs:complexType
        name="xhtml.body.type">
        <xs:group
            ref="xhtml.body.content"/>
        <xs:attributeGroup
            ref="xhtml.body.attlist"/>
    </xs:complexType>
    <xs:attributeGroup
        name="xhtml.version.attrib">
        <xs:attribute
            name="version"
            type="xh11d:FPI"/>
    </xs:attributeGroup>
    <xs:attributeGroup
        name="xhtml.html.attlist">
        <xs:attributeGroup
            ref="xhtml.version.attrib"/>
        <xs:attributeGroup
            ref="xhtml.I18n.attrib"/>
        <xs:attributeGroup ref="xhtml.id"/>
    </xs:attributeGroup>
    <xs:group
        name="xhtml.html.content">
        <xs:sequence>
            <xs:element
                name="head"
                type="xhtml.head.type"/>
            <xs:element
                name="body"
                type="xhtml.body.type"/>
        </xs:sequence>
    </xs:group>
    <xs:complexType
        name="xhtml.html.type">
        <xs:group
            ref="xhtml.html.content"/>
        <xs:attributeGroup
            ref="xhtml.html.attlist"/>
    </xs:complexType>
</xs:schema>

C.3.1.2. Text

You can download this file from http://www.w3.org/MarkUp/SCHEMA/xhtml-text-1.xsd.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
 xmlns:xs="http://www.w3.org/2001/XMLSchema"
 elementFormDefault="qualified"
 xmlns:xh11d="http://www.w3.org/1999/xhtml/datatypes/"
>
    <xs:import namespace="http://www.w3.org/1999/xhtml/datatypes/" 
               schemaLocation="xhtml-datatypes-1.xsd" />
    <xs:annotation>
        <xs:documentation>
      Textual Content
      This is the XML Schema Text module for XHTML

      The Text module includes declarations for all core
      text container elements and their attributes.
    
        +  block phrasal
        +  block structural
        +  inline phrasal
        +  inline structural
      
      $Id: xhtml-text-1.xsd,v 1.2 2005/09/26 22:54:53 ahby Exp $
    </xs:documentation>
        <xs:documentation source="xhtml-copyright-1.xsd"/>
        <xs:documentation source="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstract_modules.html#s_textmodule"/>
    </xs:annotation>
    <xs:include schemaLocation="xhtml-blkphras-1.xsd">
        <xs:annotation>
            <xs:documentation>
        Block Phrasal module
        Elements defined here:

          * address, blockquote, pre, h1, h2, h3, h4, h5, h6
    </xs:documentation>
        </xs:annotation>
    </xs:include>
    <xs:include schemaLocation="xhtml-blkstruct-1.xsd">
        <xs:annotation>
            <xs:documentation>
        Block Structural module 
        Elements defined here:

          * div, p
    </xs:documentation>
        </xs:annotation>
    </xs:include>
    <xs:include schemaLocation="xhtml-inlphras-1.xsd">
        <xs:annotation>
            <xs:documentation>
        Inline Phrasal module
        Elements defined here:

          * abbr, acronym, cite, code, dfn, em, kbd, q, samp, strong, var
    </xs:documentation>
        </xs:annotation>
    </xs:include>
    <xs:include schemaLocation="xhtml-inlstruct-1.xsd">
        <xs:annotation>
            <xs:documentation>
        Inline Structural module 
        Elements defined here:

          * br,span
    </xs:documentation>
        </xs:annotation>
    </xs:include>
</xs:schema>

C.3.1.3. Hypertext

You can download this file from http://www.w3.org/MarkUp/SCHEMA/xhtml-hypertext-1.xsd.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
 xmlns:xs="http://www.w3.org/2001/XMLSchema"
 elementFormDefault="qualified"
 xmlns:xh11d="http://www.w3.org/1999/xhtml/datatypes/"
>
    <xs:import namespace="http://www.w3.org/1999/xhtml/datatypes/" 
               schemaLocation="xhtml-datatypes-1.xsd" />

    <xs:annotation>
        <xs:documentation>
      Hypertext Module
      This is the XML Schema Hypertext module for XHTML
            
        * 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.

      $Id: xhtml-hypertext-1.xsd,v 1.4 2005/09/26 23:37:47 ahby Exp $
    </xs:documentation>
        <xs:documentation source="xhtml-copyright-1.xsd"/>
        <xs:documentation source="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstract_modules.html#s_hypertextmodule"/>
    </xs:annotation>
    <xs:attributeGroup name="xhtml.a.attlist">
        <xs:attributeGroup ref="xhtml.Common.attrib"/>
        <xs:attribute name="href" type="xh11d:URI"/>
        <xs:attribute name="charset" type="xh11d:Charset"/>
        <xs:attribute name="type" type="xh11d:ContentType"/>
        <xs:attribute name="hreflang" type="xh11d:LanguageCode"/>
        <xs:attribute name="rel" type="xh11d:LinkTypes"/>
        <xs:attribute name="rev" type="xh11d:LinkTypes"/>
        <xs:attribute name="accesskey" type="xh11d:Character"/>
        <xs:attribute name="tabindex" type="xh11d:Number"/>
    </xs:attributeGroup>
    <xs:group name="xhtml.a.content">
        <xs:sequence>
            <xs:group ref="xhtml.InlNoAnchor.mix" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:group>
    <xs:complexType name="xhtml.a.type" mixed="true">
        <xs:group ref="xhtml.a.content"/>
        <xs:attributeGroup ref="xhtml.a.attlist"/>
    </xs:complexType>
</xs:schema>

C.3.1.4. Lists

You can download this file from http://www.w3.org/MarkUp/SCHEMA/xhtml-list-1.xsd.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
 xmlns:xs="http://www.w3.org/2001/XMLSchema"
 elementFormDefault="qualified"
 xmlns:xh11d="http://www.w3.org/1999/xhtml/datatypes/"
>
    <xs:import namespace="http://www.w3.org/1999/xhtml/datatypes/" 
               schemaLocation="xhtml-datatypes-1.xsd" />
    <xs:annotation>
        <xs:documentation>
      List Module
      This is the XML Schema Lists module for XHTML
      List Module Elements
    
        * dl, dt, dd, ol, ul, li
    
      This module declares the list-oriented element types
      and their attributes.
      $Id: xhtml-list-1.xsd,v 1.2 2005/09/26 22:54:53 ahby Exp $      
    </xs:documentation>
        <xs:documentation source="xhtml-copyright-1.xsd"/>
        <xs:documentation source="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstract_modules.html#s_listmodule"/>
    </xs:annotation>
    <xs:attributeGroup name="xhtml.dt.attlist">
        <xs:attributeGroup ref="xhtml.Common.attrib"/>
    </xs:attributeGroup>
    <xs:group name="xhtml.dt.content">
        <xs:sequence>
            <xs:group ref="xhtml.Inline.mix" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:group>
    <xs:complexType name="xhtml.dt.type" mixed="true">
        <xs:group ref="xhtml.dt.content"/>
        <xs:attributeGroup ref="xhtml.dt.attlist"/>
    </xs:complexType>
    <xs:attributeGroup name="xhtml.dd.attlist">
        <xs:attributeGroup ref="xhtml.Common.attrib"/>
    </xs:attributeGroup>
    <xs:group name="xhtml.dd.content">
        <xs:sequence>
            <xs:group ref="xhtml.Flow.mix" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:group>
    <xs:complexType name="xhtml.dd.type" mixed="true">
        <xs:group ref="xhtml.dd.content"/>
        <xs:attributeGroup ref="xhtml.dd.attlist"/>
    </xs:complexType>
    <xs:attributeGroup name="xhtml.dl.attlist">
        <xs:attributeGroup ref="xhtml.Common.attrib"/>
    </xs:attributeGroup>
    <xs:group name="xhtml.dl.content">
        <xs:sequence>
            <xs:choice maxOccurs="unbounded">
                <xs:element name="dt" type="xhtml.dt.type"/>
                <xs:element name="dd" type="xhtml.dd.type"/>
            </xs:choice>
        </xs:sequence>
    </xs:group>
    <xs:complexType name="xhtml.dl.type">
        <xs:group ref="xhtml.dl.content"/>
        <xs:attributeGroup ref="xhtml.dl.attlist"/>
    </xs:complexType>
    <xs:attributeGroup name="xhtml.li.attlist">
        <xs:attributeGroup ref="xhtml.Common.attrib"/>
    </xs:attributeGroup>
    <xs:group name="xhtml.li.content">
        <xs:sequence>
            <xs:group ref="xhtml.Flow.mix" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:group>
    <xs:complexType name="xhtml.li.type" mixed="true">
        <xs:group ref="xhtml.li.content"/>
        <xs:attributeGroup ref="xhtml.li.attlist"/>
    </xs:complexType>
    <xs:attributeGroup name="xhtml.ol.attlist">
        <xs:attributeGroup ref="xhtml.Common.attrib"/>
    </xs:attributeGroup>
    <xs:group name="xhtml.ol.content">
        <xs:sequence>
            <xs:element name="li" type="xhtml.li.type" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:group>
    <xs:complexType name="xhtml.ol.type">
        <xs:group ref="xhtml.ol.content"/>
        <xs:attributeGroup ref="xhtml.ol.attlist"/>
    </xs:complexType>
    <xs:attributeGroup name="xhtml.ul.attlist">
        <xs:attributeGroup ref="xhtml.Common.attrib"/>
    </xs:attributeGroup>
    <xs:group name="xhtml.ul.content">
        <xs:sequence>
            <xs:element name="li" type="xhtml.li.type" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:group>
    <xs:complexType name="xhtml.ul.type">
        <xs:group ref="xhtml.ul.content"/>
        <xs:attributeGroup ref="xhtml.ul.attlist"/>
    </xs:complexType>
</xs:schema>

C.3.2. Applet

You can download this file from http://www.w3.org/MarkUp/SCHEMA/xhtml-applet-1.xsd.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
 xmlns:xs="http://www.w3.org/2001/XMLSchema"
 elementFormDefault="qualified"
 xmlns:xh11d="http://www.w3.org/1999/xhtml/datatypes/"
>
    <xs:import namespace="http://www.w3.org/1999/xhtml/datatypes/" schemaLocation="xhtml-datatypes-1.xsd" />

  <xs:annotation>
    <xs:documentation>
      Java Applets
      This is the XML Schema module for Java Applets in XHTML
      
        * applet (param)
  
      This module declares the applet element type and its attributes, 
      used to provide support for Java applets. The 'alt' attribute 
      is now required (as it is on images). One of either code or 
      object attributes must be present. In the document, place param 
      elements before the object elements that require their content.
  
      Note that use of this module also instantiates of the 
      Param Element Module.

      $Id: xhtml-applet-1.xsd,v 1.3 2005/09/26 22:54:52 ahby Exp $
    </xs:documentation>
    <xs:documentation source="xhtml-copyright-1.xsd"/>
    <xs:documentation 
       source="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstract_modules.html#s_appletmodule"/>
  </xs:annotation>

  <xs:include schemaLocation="xhtml-param-1.xsd">
    <xs:annotation>
      <xs:documentation>
        Param module
        Include Param Module
      </xs:documentation>
    </xs:annotation>
  </xs:include>  

  <xs:attributeGroup name="xhtml.applet.attlist">
    <xs:attributeGroup ref="xhtml.Core.attrib"/>
    <xs:attribute name="alt" type="xh11d:Text" use="required"/>
    <xs:attribute name="archive" type="xh11d:CDATA"/>
    <xs:attribute name="code" type="xh11d:CDATA"/>
    <xs:attribute name="codebase" type="xh11d:URI"/>
    <xs:attribute name="object" type="xh11d:CDATA"/>
    <xs:attribute name="width" type="xh11d:Length" use="required"/>
    <xs:attribute name="height" type="xh11d:Length" use="required"/>
  </xs:attributeGroup>

  <xs:group name="xhtml.applet.content">
    <xs:sequence>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
         <xs:element ref="param" />
         <xs:group ref="xhtml.Flow.mix"/>
      </xs:choice>
    </xs:sequence>
  </xs:group>

  <xs:complexType name="xhtml.applet.type" mixed="true">
    <xs:group ref="xhtml.applet.content"/>
    <xs:attributeGroup ref="xhtml.applet.attlist"/>
  </xs:complexType>

</xs:schema>

C.3.3. Text Modules

C.3.3.1. Presentation

You can download this file from http://www.w3.org/MarkUp/SCHEMA/xhtml-pres-1.xsd.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
 xmlns:xs="http://www.w3.org/2001/XMLSchema"
 elementFormDefault="qualified"
 xmlns:xh11d="http://www.w3.org/1999/xhtml/datatypes/"
>
    <xs:import namespace="http://www.w3.org/1999/xhtml/datatypes/" 
               schemaLocation="xhtml-datatypes-1.xsd" />
    <xs:annotation>
        <xs:documentation>
      This is the XML Schema Presentation module for XHTML
      This is a REQUIRED module.
      $Id: xhtml-pres-1.xsd,v 1.2 2005/09/26 22:54:53 ahby Exp $
    </xs:documentation>
        <xs:documentation source="xhtml-copyright-1.xsd"/>
    </xs:annotation>
    <xs:annotation>
        <xs:documentation>
      Presentational Elements

      This module defines elements and their attributes for
      simple presentation-related markup.
 
      Elements defined here:

        * hr
        * b, big, i, small, sub, sup, tt
    </xs:documentation>
        <xs:documentation source="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstract_modules.html#s_presentationmodule"/>
    </xs:annotation>
    <xs:include schemaLocation="xhtml-blkpres-1.xsd">
        <xs:annotation>
            <xs:documentation>
        Block Presentational module
        Elements defined here:
 
         * hr
      </xs:documentation>
        </xs:annotation>
    </xs:include>
    <xs:include schemaLocation="xhtml-inlpres-1.xsd">
        <xs:annotation>
            <xs:documentation>
        Inline Presentational module
        Elements defined here:

          * b, big, i, small, sub, sup, tt
    </xs:documentation>
        </xs:annotation>
    </xs:include>
</xs:schema>

C.3.3.2. Edit

You can download this file from http://www.w3.org/MarkUp/SCHEMA/xhtml-edit-1.xsd.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
 xmlns:xs="http://www.w3.org/2001/XMLSchema"
 elementFormDefault="qualified"
 xmlns:xh11d="http://www.w3.org/1999/xhtml/datatypes/"
>
    <xs:import namespace="http://www.w3.org/1999/xhtml/datatypes/" 
               schemaLocation="xhtml-datatypes-1.xsd" />

    <xs:annotation>
        <xs:documentation>
          Editing Elements
          This is the XML Schema Editing Markup module for XHTML

           * ins, del
  
         This module declares element types and attributes used to indicate
         inserted and deleted content while editing a document.

          $Id: xhtml-edit-1.xsd,v 1.2 2005/09/26 22:54:53 ahby Exp $
        </xs:documentation>
        <xs:documentation source="xhtml-copyright-1.xsd"/>
        <xs:documentation source="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstract_modules.html#s_editmodule"/>
    </xs:annotation>
    <xs:attributeGroup name="xhtml.edit.attlist">
        <xs:attributeGroup ref="xhtml.Common.attrib"/>
        <xs:attribute name="cite" type="xh11d:URI"/>
        <xs:attribute name="datetime" type="xh11d:Datetime"/>
    </xs:attributeGroup>
    <xs:group name="xhtml.edit.content">
        <xs:sequence>
            <xs:group ref="xhtml.Flow.mix" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:group>
    <xs:complexType name="xhtml.edit.type" mixed="true">
        <xs:group ref="xhtml.edit.content"/>
        <xs:attributeGroup ref="xhtml.edit.attlist"/>
    </xs:complexType>
</xs:schema>

C.3.3.3. Bi-directional Text

You can download this file from http://www.w3.org/MarkUp/SCHEMA/xhtml-bdo-1.xsd.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
 xmlns:xs="http://www.w3.org/2001/XMLSchema"
 elementFormDefault="qualified"
 xmlns:xh11d="http://www.w3.org/1999/xhtml/datatypes/"
>
    <xs:import namespace="http://www.w3.org/1999/xhtml/datatypes/" 
               schemaLocation="xhtml-datatypes-1.xsd" />
    <xs:annotation>
        <xs:documentation>
          Bidirectional Override (bdo) Element
          This is the XML Schema BDO Element module for XHTML

          This modules declares the element 'bdo' and 'dir' attributes,
          Used to override the  Unicode bidirectional algorithm for selected
          fragments of text.
          Bidirectional text support includes both the bdo element and
          the 'dir' attribute.

          $Id: xhtml-bdo-1.xsd,v 1.5 2005/09/26 23:37:47 ahby Exp $
      </xs:documentation>
        <xs:documentation source="xhtml-copyright-1.xsd"/>
        <xs:documentation source="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstract_modules.html#s_bdomodule"/>
    </xs:annotation>
  <xs:import namespace="http://www.w3.org/XML/1998/namespace"
             schemaLocation="http://www.w3.org/2001/xml.xsd">
        <xs:annotation>
            <xs:documentation>
           This import brings in the XML namespace attributes
           The module itself does not provide the schemaLocation
           and expects the driver schema to provide the
           actual SchemaLocation.
         </xs:documentation>
        </xs:annotation>
    </xs:import>
    <xs:attributeGroup name="xhtml.bdo.attlist">
        <xs:attributeGroup ref="xhtml.Core.attrib"/>
        <xs:attribute name="dir" use="required">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="ltr"/>
                    <xs:enumeration value="rtl"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:attributeGroup>
    <xs:group name="xhtml.bdo.content">
        <xs:sequence>
            <xs:group ref="xhtml.Inline.mix" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:group>
    <xs:complexType name="xhtml.bdo.type" mixed="true">
        <xs:group ref="xhtml.bdo.content"/>
        <xs:attributeGroup ref="xhtml.bdo.attlist"/>
    </xs:complexType>
    <xs:attributeGroup name="xhtml.dir.attrib">
        <xs:attribute name="dir">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="ltr"/>
                    <xs:enumeration value="rtl"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:attributeGroup>
    <!-- Global dir attribute -->
    <xs:attribute name="dir">
        <xs:simpleType>
            <xs:restriction base="xs:NMTOKEN">
                <xs:enumeration value="ltr"/>
                <xs:enumeration value="rtl"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:attribute>
    <xs:attributeGroup name="xhtml.Global.bdo.attrib">
        <xs:attribute ref="dir"/>
    </xs:attributeGroup>
</xs:schema>

C.3.4. Forms

C.3.4.1. Basic Forms

You can download this file from http://www.w3.org/MarkUp/SCHEMA/xhtml-basic-form-1.xsd.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
 xmlns:xs="http://www.w3.org/2001/XMLSchema"
 elementFormDefault="qualified"
 xmlns:xh11d="http://www.w3.org/1999/xhtml/datatypes/"
>
    <xs:import namespace="http://www.w3.org/1999/xhtml/datatypes/" 
               schemaLocation="xhtml-datatypes-1.xsd" />
  <xs:annotation>
    <xs:documentation>
      This is the XML Schema Basic Forms module for XHTML
      $Id: xhtml-basic-form-1.xsd,v 1.2 2005/09/26 22:54:53 ahby Exp $
    </xs:documentation>
    <xs:documentation source="xhtml-copyright-1.xsd"/>
  </xs:annotation>

  <xs:annotation>
    <xs:documentation>    
      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 common attributes.

      Elements defined here:

        * form, label, input, select, option, textarea
    </xs:documentation>
    <xs:documentation source="xhtml-copyright-1.xsd"/>
    <xs:documentation 
         source="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstract_modules.html#s_sformsmodule"/>
  </xs:annotation>

  <xs:attributeGroup name="xhtml.form.attlist">
    <xs:attributeGroup ref="xhtml.Common.attrib"/>
    <xs:attribute name="action" type="xh11d:URI" use="required"/>
    <xs:attribute name="method" use="optional" default="get">
      <xs:simpleType>
        <xs:restriction base="xs:NMTOKEN">
          <xs:enumeration value="get"/>
          <xs:enumeration value="post"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="enctype" type="xh11d:ContentType" default="application/x-www-form-urlencoded"/>
  </xs:attributeGroup>
  
  <xs:group name="xhtml.form.content">
    <xs:sequence>
      <xs:group ref="xhtml.BlkNoForm.mix" minOccurs="1" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:group>

  <xs:complexType name="xhtml.form.type">
    <xs:group ref="xhtml.form.content"/>
    <xs:attributeGroup ref="xhtml.form.attlist"/>
  </xs:complexType>

  <xs:group name="xhtml.label.content">
    <xs:sequence>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element type="xhtml.input.type" name="input"/>
        <xs:element type="xhtml.select.type" name="select"/>
        <xs:element type="xhtml.textarea.type" name="textarea"/>
        <xs:group ref="xhtml.InlStruct.class"/>
        <xs:group ref="xhtml.InlPhras.class"/>
        <xs:group ref="xhtml.I18n.class"/>
        <xs:group ref="xhtml.InlPres.class"/>
        <xs:group ref="xhtml.InlSpecial.class"/>
        <xs:group ref="xhtml.Misc.class"/>
      </xs:choice>
    </xs:sequence>
  </xs:group>

  <xs:attributeGroup name="xhtml.label.attlist">
    <xs:attributeGroup ref="xhtml.Common.attrib"/>
    <xs:attribute name="for" type="xs:IDREF"/>
    <xs:attribute name="accesskey" type="xh11d:Character"/>
  </xs:attributeGroup>

  <xs:complexType name="xhtml.label.type" mixed="true">
    <xs:group ref="xhtml.label.content"/>
    <xs:attributeGroup ref="xhtml.label.attlist"/>
  </xs:complexType>

<!-- 
Basic Forms removes button, 'image' and 'file' input types.
-->
  <xs:simpleType name="xhtml.InputType.class">
      <xs:restriction base="xs:NMTOKEN">
        <xs:enumeration value="text"/>
        <xs:enumeration value="password"/>
        <xs:enumeration value="checkbox"/>
        <xs:enumeration value="radio"/>
        <xs:enumeration value="submit"/>
        <xs:enumeration value="reset"/>
        <xs:enumeration value="hidden"/>
      </xs:restriction>
  </xs:simpleType>

  <xs:attributeGroup name="xhtml.input.attlist">
    <xs:attributeGroup ref="xhtml.Common.attrib"/>
    <xs:attribute name="type" type="xhtml.InputType.class" default="text"/>    
    <xs:attribute name="name" type="xh11d:CDATA"/>
    <xs:attribute name="value" type="xh11d:CDATA"/>
    <xs:attribute name="checked">
      <xs:simpleType>
        <xs:restriction base="xs:NMTOKEN">
          <xs:enumeration value="checked"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="size" type="xh11d:Number"/>
    <xs:attribute name="maxlength" type="xh11d:Number"/>
    <xs:attribute name="src" type="xh11d:URI"/>
    <xs:attribute name="tabindex" type="xh11d:Number"/>    
    <xs:attribute name="accesskey" type="xh11d:Character"/>
  </xs:attributeGroup>
  
  <xs:group name="xhtml.input.content">
     <xs:sequence/>
  </xs:group>    

  <xs:complexType name="xhtml.input.type">
    <xs:group ref="xhtml.input.content"/>
    <xs:attributeGroup ref="xhtml.input.attlist"/>
  </xs:complexType>

  <xs:attributeGroup name="xhtml.select.attlist">
    <xs:attributeGroup ref="xhtml.Common.attrib"/>
    <xs:attribute name="name" type="xh11d:CDATA"/>
    <xs:attribute name="size" type="xh11d:Number"/>
    <xs:attribute name="multiple">
      <xs:simpleType>
        <xs:restriction base="xs:NMTOKEN">
          <xs:enumeration value="multiple"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="tabindex" type="xh11d:Number"/>    
  </xs:attributeGroup>
  
  <xs:group name="xhtml.select.content">
    <xs:sequence>
       <xs:element name="option" type="xhtml.option.type" maxOccurs="unbounded"/>
    </xs:sequence>  
  </xs:group>       

  <xs:complexType name="xhtml.select.type">
    <xs:group ref="xhtml.select.content"/>
    <xs:attributeGroup ref="xhtml.select.attlist"/>
  </xs:complexType>

  <xs:attributeGroup name="xhtml.option.attlist">
    <xs:attributeGroup ref="xhtml.Common.attrib"/>
    <xs:attribute name="selected">
      <xs:simpleType>
        <xs:restriction base="xs:NMTOKEN">
          <xs:enumeration value="selected"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>    
    <xs:attribute name="value" type="xh11d:CDATA"/>
    <xs:attribute name="tabindex" type="xh11d:Number"/>    
  </xs:attributeGroup>
  
  <xs:group name="xhtml.option.content">
     <xs:sequence/>
  </xs:group>  
  
  <xs:complexType name="xhtml.option.type" mixed="true">
    <xs:group ref="xhtml.option.content"/>
    <xs:attributeGroup ref="xhtml.option.attlist"/>
  </xs:complexType>

  <xs:attributeGroup name="xhtml.textarea.attlist">
    <xs:attributeGroup ref="xhtml.Common.attrib"/>
    <xs:attribute name="name" type="xh11d:CDATA"/>
    <xs:attribute name="rows" type="xh11d:Number" use="required"/>
    <xs:attribute name="cols" type="xh11d:Number" use="required"/>
    <xs:attribute name="accesskey" type="xh11d:Character"/>
  </xs:attributeGroup>
  
  <xs:group name="xhtml.textarea.content">
     <xs:sequence/>
  </xs:group>    

  <xs:complexType name="xhtml.textarea.type" mixed="true">
     <xs:group ref="xhtml.textarea.content"/>  
     <xs:attributeGroup ref="xhtml.textarea.attlist"/>
  </xs:complexType>

</xs:schema>

C.3.4.2. Forms

You can download this file from http://www.w3.org/MarkUp/SCHEMA/xhtml-form-1.xsd.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
 xmlns:xs="http://www.w3.org/2001/XMLSchema"
 elementFormDefault="qualified"
 xmlns:xh11d="http://www.w3.org/1999/xhtml/datatypes/"
>
    <xs:import namespace="http://www.w3.org/1999/xhtml/datatypes/" 
               schemaLocation="xhtml-datatypes-1.xsd" />

    <xs:annotation>
        <xs:documentation>
      Forms    
      This is the XML Schema Forms module for XHTML      
  
        * form, label, input, select, optgroup, option,
          textarea, fieldset, legend, button
    
      This module declares markup to provide support for online
      forms, based on the features found in HTML 4.0 forms.
          
    
      $Id: xhtml-form-1.xsd,v 1.3 2005/09/26 22:54:53 ahby Exp $
    </xs:documentation>
        <xs:documentation source="xhtml-copyright-1.xsd"/>
        <xs:documentation source="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstract_modules.html#s_extformsmodule"/>
    </xs:annotation>
    <!-- form: Form Element -->
    <xs:attributeGroup name="xhtml.form.attlist">
        <xs:attributeGroup ref="xhtml.Common.attrib"/>
        <xs:attribute name="action" type="xh11d:URI" use="required"/>
        <xs:attribute name="method" default="get">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="get"/>
                    <xs:enumeration value="post"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="enctype" type="xh11d:ContentType" default="application/x-www-form-urlencoded"/>
        <xs:attribute name="accept-charset" type="xh11d:Charsets"/>
        <xs:attribute name="accept" type="xh11d:ContentTypes"/>
    </xs:attributeGroup>
    <xs:group name="xhtml.form.content">
        <xs:sequence>
            <xs:choice maxOccurs="unbounded">
                <xs:group ref="xhtml.BlkNoForm.mix"/>
                <xs:element name="fieldset" type="xhtml.fieldset.type"/>
            </xs:choice>
        </xs:sequence>
    </xs:group>
    <xs:complexType name="xhtml.form.type">
        <xs:group ref="xhtml.form.content"/>
        <xs:attributeGroup ref="xhtml.form.attlist"/>
    </xs:complexType>
    <!-- 
    label: Form Field Label Text 
    Note: Each label must not contain more than ONE field
-->
    <xs:group name="xhtml.label.content">
        <xs:sequence>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
                <xs:element name="input" type="xhtml.input.type"/>
                <xs:element name="select" type="xhtml.select.type"/>
                <xs:element name="textarea" type="xhtml.textarea.type"/>
                <xs:element name="button" type="xhtml.button.type"/>
                <xs:group ref="xhtml.InlStruct.class"/>
                <xs:group ref="xhtml.InlPhras.class"/>
                <xs:group ref="xhtml.I18n.class"/>
                <xs:group ref="xhtml.InlPres.class"/>
                <xs:group ref="xhtml.InlSpecial.class"/>
                <xs:group ref="xhtml.Inline.extra"/>
                <xs:group ref="xhtml.Misc.class"/>
            </xs:choice>
        </xs:sequence>
    </xs:group>
    <xs:attributeGroup name="xhtml.label.attlist">
        <xs:attributeGroup ref="xhtml.Common.attrib"/>
        <xs:attribute name="for" type="xs:IDREF"/>
        <xs:attribute name="accesskey" type="xh11d:Character"/>
    </xs:attributeGroup>
    <xs:complexType name="xhtml.label.type" mixed="true">
        <xs:group ref="xhtml.label.content"/>
        <xs:attributeGroup ref="xhtml.label.attlist"/>
    </xs:complexType>
    <!-- input: Form Control -->
    <xs:simpleType name="xhtml.InputType.class">
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="text"/>
            <xs:enumeration value="password"/>
            <xs:enumeration value="checkbox"/>
            <xs:enumeration value="radio"/>
            <xs:enumeration value="submit"/>
            <xs:enumeration value="reset"/>
            <xs:enumeration value="hidden"/>
            <xs:enumeration value="image"/>
            <xs:enumeration value="button"/>
            <xs:enumeration value="file"/>
        </xs:restriction>
    </xs:simpleType>
    <!-- 
    attribute 'name' required for all but submit & reset
-->
    <xs:attributeGroup name="xhtml.input.attlist">
        <xs:attributeGroup ref="xhtml.Common.attrib"/>
        <xs:attribute name="type" type="xhtml.InputType.class" default="text"/>
        <xs:attribute name="name" type="xh11d:CDATA"/>
        <xs:attribute name="value" type="xh11d:CDATA"/>
        <xs:attribute name="checked">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="checked"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="disabled">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="disabled"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="readonly">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="readonly"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="size" type="xh11d:Number"/>
        <xs:attribute name="maxlength" type="xh11d:Number"/>
        <xs:attribute name="src" type="xh11d:URI"/>
        <xs:attribute name="alt" type="xh11d:Text"/>
        <xs:attribute name="tabindex" type="xh11d:Number"/>
        <xs:attribute name="accesskey" type="xh11d:Character"/>
        <xs:attribute name="accept" type="xh11d:ContentTypes"/>
    </xs:attributeGroup>
    <xs:group name="xhtml.input.content">
        <xs:sequence/>
    </xs:group>
    <xs:complexType name="xhtml.input.type">
        <xs:group ref="xhtml.input.content"/>
        <xs:attributeGroup ref="xhtml.input.attlist"/>
    </xs:complexType>
    <!-- select: Option Selector  -->
    <xs:attributeGroup name="xhtml.select.attlist">
        <xs:attributeGroup ref="xhtml.Common.attrib"/>
        <xs:attribute name="name" type="xh11d:CDATA"/>
        <xs:attribute name="size" type="xh11d:Number"/>
        <xs:attribute name="multiple">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="multiple"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="disabled">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="disabled"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="tabindex" type="xh11d:Number"/>
    </xs:attributeGroup>
    <xs:group name="xhtml.select.content">
        <xs:sequence>
            <xs:choice maxOccurs="unbounded">
                <xs:element name="optgroup" type="xhtml.optgroup.type"/>
                <xs:element name="option" type="xhtml.option.type"/>
            </xs:choice>
        </xs:sequence>
    </xs:group>
    <xs:complexType name="xhtml.select.type">
        <xs:group ref="xhtml.select.content"/>
        <xs:attributeGroup ref="xhtml.select.attlist"/>
    </xs:complexType>
    <!-- optgroup: Option Group  -->
    <xs:attributeGroup name="xhtml.optgroup.attlist">
        <xs:attributeGroup ref="xhtml.Common.attrib"/>
        <xs:attribute name="disabled">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="disabled"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="label" type="xh11d:Text" use="required"/>
    </xs:attributeGroup>
    <xs:group name="xhtml.optgroup.content">
        <xs:sequence>
            <xs:element name="option" type="xhtml.option.type" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:group>
    <xs:complexType name="xhtml.optgroup.type">
        <xs:group ref="xhtml.optgroup.content"/>
        <xs:attributeGroup ref="xhtml.optgroup.attlist"/>
    </xs:complexType>
    <!-- option: Selectable Choice  -->
    <xs:attributeGroup name="xhtml.option.attlist">
        <xs:attributeGroup ref="xhtml.Common.attrib"/>
        <xs:attribute name="selected">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="selected"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="disabled">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="disabled"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="label" type="xh11d:Text"/>
        <xs:attribute name="value" type="xh11d:CDATA"/>
    </xs:attributeGroup>
    <xs:group name="xhtml.option.content">
        <xs:sequence/>
    </xs:group>
    <xs:complexType name="xhtml.option.type" mixed="true">
        <xs:group ref="xhtml.option.content"/>
        <xs:attributeGroup ref="xhtml.option.attlist"/>
    </xs:complexType>
    <!-- textarea: Multi-Line Text Field  -->
    <xs:attributeGroup name="xhtml.textarea.attlist">
        <xs:attributeGroup ref="xhtml.Common.attrib"/>
        <xs:attribute name="name" type="xh11d:CDATA"/>
        <xs:attribute name="rows" type="xh11d:Number" use="required"/>
        <xs:attribute name="cols" type="xh11d:Number" use="required"/>
        <xs:attribute name="disabled">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="disabled"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="readonly">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="readonly"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="tabindex" type="xh11d:Number"/>
        <xs:attribute name="accesskey" type="xh11d:Character"/>
    </xs:attributeGroup>
    <xs:group name="xhtml.textarea.content">
        <xs:sequence/>
    </xs:group>
    <xs:complexType name="xhtml.textarea.type" mixed="true">
        <xs:group ref="xhtml.textarea.content"/>
        <xs:attributeGroup ref="xhtml.textarea.attlist"/>
    </xs:complexType>
    <!-- fieldset: Form Control Group  -->
    <xs:attributeGroup name="xhtml.fieldset.attlist">
        <xs:attributeGroup ref="xhtml.Common.attrib"/>
    </xs:attributeGroup>
    <xs:group name="xhtml.fieldset.content">
        <xs:sequence>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
                <xs:element name="legend" type="xhtml.legend.type"/>
                <xs:group ref="xhtml.Flow.mix"/>
            </xs:choice>
        </xs:sequence>
    </xs:group>
    <xs:complexType name="xhtml.fieldset.type" mixed="true">
        <xs:group ref="xhtml.fieldset.content"/>
        <xs:attributeGroup ref="xhtml.fieldset.attlist"/>
    </xs:complexType>
    <!-- legend: Fieldset Legend  -->
    <xs:attributeGroup name="xhtml.legend.attlist">
        <xs:attributeGroup ref="xhtml.Common.attrib"/>
        <xs:attribute name="accesskey" type="xh11d:Character"/>
    </xs:attributeGroup>
    <xs:group name="xhtml.legend.content">
        <xs:sequence>
            <xs:group ref="xhtml.Inline.mix" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:group>
    <xs:complexType name="xhtml.legend.type" mixed="true">
        <xs:group ref="xhtml.legend.content"/>
        <xs:attributeGroup ref="xhtml.legend.attlist"/>
    </xs:complexType>
    <!-- button: Push Button  -->
    <xs:attributeGroup name="xhtml.button.attlist">
        <xs:attributeGroup ref="xhtml.Common.attrib"/>
        <xs:attribute name="name" type="xh11d:CDATA"/>
        <xs:attribute name="value" type="xh11d:CDATA"/>
        <xs:attribute name="type" default="submit">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="button"/>
                    <xs:enumeration value="submit"/>
                    <xs:enumeration value="reset"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="disabled">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="disabled"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="tabindex" type="xh11d:Number"/>
        <xs:attribute name="accesskey" type="xh11d:Character"/>
    </xs:attributeGroup>
    <xs:group name="xhtml.button.content">
        <xs:sequence>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
                <xs:group ref="xhtml.BlkNoForm.mix"/>
                <xs:group ref="xhtml.InlStruct.class"/>
                <xs:group ref="xhtml.InlPhras.class"/>
                <xs:group ref="xhtml.InlPres.class"/>
                <xs:group ref="xhtml.I18n.class"/>
                <xs:group ref="xhtml.InlSpecial.class"/>
                <xs:group ref="xhtml.Inline.extra"/>
            </xs:choice>
        </xs:sequence>
    </xs:group>
    <xs:complexType name="xhtml.button.type" mixed="true">
        <xs:group ref="xhtml.button.content"/>
        <xs:attributeGroup ref="xhtml.button.attlist"/>
    </xs:complexType>
</xs:schema>

C.3.5. Tables

C.3.5.1. Basic Tables

You can download this file from http://www.w3.org/MarkUp/SCHEMA/xhtml-basic-table-1.xsd.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
 xmlns:xs="http://www.w3.org/2001/XMLSchema"
 elementFormDefault="qualified"
 xmlns:xh11d="http://www.w3.org/1999/xhtml/datatypes/"
>
    <xs:import namespace="http://www.w3.org/1999/xhtml/datatypes/" 
               schemaLocation="xhtml-datatypes-1.xsd" />
  <xs:annotation>
    <xs:documentation>
      This is the XML Schema Basic Tables module for XHTML
     $Id: xhtml-basic-table-1.xsd,v 1.2 2005/09/26 22:54:53 ahby Exp $
    </xs:documentation>
    <xs:documentation source="xhtml-copyright-1.xsd"/>
  </xs:annotation>

  <xs:annotation>
    <xs:documentation>
      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 common and most of the HTML 4 table attributes.
    </xs:documentation>
    <xs:documentation 
         source="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstract_modules.html#s_simpletablemodule"/>
  </xs:annotation>

  <xs:attributeGroup name="xhtml.CellHAlign.attrib">
    <xs:attribute name="align">
      <xs:simpleType>
        <xs:restriction base="xs:NMTOKEN">
          <xs:enumeration value="left"/>
          <xs:enumeration value="center"/>
          <xs:enumeration value="right"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>

  <xs:attributeGroup name="xhtml.CellVAlign.attrib">
    <xs:attribute name="valign">
      <xs:simpleType>
        <xs:restriction base="xs:NMTOKEN">
          <xs:enumeration value="top"/>
          <xs:enumeration value="middle"/>
          <xs:enumeration value="bottom"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>

  <xs:attributeGroup name="xhtml.scope.attrib">
    <xs:attribute name="scope">
      <xs:simpleType>
        <xs:restriction base="xs:NMTOKEN">
          <xs:enumeration value="row"/>
          <xs:enumeration value="col"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>

  <xs:attributeGroup name="xhtml.table.attlist">
    <xs:attributeGroup ref="xhtml.Common.attrib"/>
    <xs:attribute name="summary" type="xh11d:Text"/>
  </xs:attributeGroup>

  <xs:group name="xhtml.table.content">
    <xs:sequence>
      <xs:element name="caption" type="xhtml.caption.type" 
                  minOccurs="0" maxOccurs="1"/>
      <xs:element name="tr" type="xhtml.tr.type" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:group>

  <xs:complexType name="xhtml.table.type" >
    <xs:group ref="xhtml.table.content"/>
    <xs:attributeGroup ref="xhtml.table.attlist"/>
  </xs:complexType>
  
  <xs:attributeGroup name="xhtml.caption.attlist">
    <xs:attributeGroup ref="xhtml.Common.attrib"/>
  </xs:attributeGroup>
  
  <xs:group name="xhtml.caption.content">
     <xs:sequence>
        <xs:group ref="xhtml.Inline.mix" minOccurs="0" maxOccurs="unbounded"/>
     </xs:sequence>
  </xs:group>  
  

  <xs:complexType name="xhtml.caption.type" mixed="true" >
    <xs:group ref="xhtml.caption.content"/>   
    <xs:attributeGroup ref="xhtml.caption.attlist"/>
  </xs:complexType>

  <xs:attributeGroup name="xhtml.tr.attlist">
    <xs:attributeGroup ref="xhtml.Common.attrib"/>
    <xs:attributeGroup ref="xhtml.CellHAlign.attrib"/>
    <xs:attributeGroup ref="xhtml.CellVAlign.attrib"/>
  </xs:attributeGroup>

  <xs:group name="xhtml.tr.content">
    <xs:sequence>
      <xs:choice maxOccurs="unbounded">
        <xs:element name="th" type="xhtml.th.type"/>
        <xs:element name="td" type="xhtml.td.type"/>
      </xs:choice>
    </xs:sequence>    
  </xs:group>

  <xs:complexType name="xhtml.tr.type">
    <xs:group ref="xhtml.tr.content"/>
    <xs:attributeGroup ref="xhtml.tr.attlist"/>
  </xs:complexType>

  <xs:attributeGroup name="xhtml.th.attlist">
    <xs:attributeGroup ref="xhtml.Common.attrib"/>
    <xs:attribute name="abbr" type="xh11d:Text"/>
    <xs:attribute name="axis" type="xh11d:CDATA"/>
    <xs:attribute name="headers" type="xs:IDREFS"/>
    <xs:attributeGroup ref="xhtml.scope.attrib"/>
    <xs:attribute name="rowspan" type="xh11d:Number" default="1"/>
    <xs:attribute name="colspan" type="xh11d:Number" default="1"/>
    <xs:attributeGroup ref="xhtml.CellHAlign.attrib"/>
    <xs:attributeGroup ref="xhtml.CellVAlign.attrib"/>
  </xs:attributeGroup>
  
  <xs:group name="xhtml.th.content">
     <xs:sequence>
        <xs:group ref="xhtml.FlowNoTable.mix" minOccurs="0" maxOccurs="unbounded"/>
     </xs:sequence>
  </xs:group>    

  <xs:complexType name="xhtml.th.type" mixed="true">
    <xs:group ref="xhtml.th.content"/>   
    <xs:attributeGroup ref="xhtml.th.attlist"/>
  </xs:complexType>

  <xs:attributeGroup name="xhtml.td.attlist">
    <xs:attributeGroup ref="xhtml.Common.attrib"/>
    <xs:attribute name="abbr" type="xh11d:Text"/>
    <xs:attribute name="axis" type="xh11d:CDATA"/>
    <xs:attribute name="headers" type="xs:IDREFS"/>
    <xs:attributeGroup ref="xhtml.scope.attrib"/>
    <xs:attribute name="rowspan" type="xh11d:Number" default="1"/>
    <xs:attribute name="colspan" type="xh11d:Number" default="1"/>
    <xs:attributeGroup ref="xhtml.CellHAlign.attrib"/>
    <xs:attributeGroup ref="xhtml.CellVAlign.attrib"/>
  </xs:attributeGroup>
  
  <xs:group name="xhtml.td.content">
     <xs:sequence>
        <xs:group ref="xhtml.FlowNoTable.mix" minOccurs="0" maxOccurs="unbounded"/>
     </xs:sequence>
  </xs:group>  

  <xs:complexType name="xhtml.td.type" mixed="true">
    <xs:group ref="xhtml.td.content"/>   
    <xs:attributeGroup ref="xhtml.td.attlist"/>
  </xs:complexType>

</xs:schema>

C.3.5.2. Tables

You can download this file from http://www.w3.org/MarkUp/SCHEMA/xhtml-table-1.xsd.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
 xmlns:xs="http://www.w3.org/2001/XMLSchema"
 elementFormDefault="qualified"
 xmlns:xh11d="http://www.w3.org/1999/xhtml/datatypes/"
>
    <xs:import namespace="http://www.w3.org/1999/xhtml/datatypes/" 
               schemaLocation="xhtml-datatypes-1.xsd" />

    <xs:annotation>
        <xs:documentation>
          This is the XML Schema Tables module for XHTML
          $Id: xhtml-table-1.xsd,v 1.3 2005/09/26 22:54:53 ahby Exp $
        </xs:documentation>
        <xs:documentation source="xhtml-copyright-1.xsd"/>
    </xs:annotation>
    <xs:annotation>
        <xs:documentation>
          Tables
      
           * table, caption, thead, tfoot, tbody, colgroup, col, tr, th, td
      
          This module declares element types and attributes used to provide
          table markup similar to HTML 4.0, including features that enable
          better accessibility for non-visual user agents.
        </xs:documentation>
        <xs:documentation source="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstract_modules.html#s_tablemodule"/>
    </xs:annotation>
    <xs:attributeGroup name="xhtml.frame.attrib">
        <xs:attribute name="frame">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="void"/>
                    <xs:enumeration value="above"/>
                    <xs:enumeration value="below"/>
                    <xs:enumeration value="hsides"/>
                    <xs:enumeration value="lhs"/>
                    <xs:enumeration value="rhs"/>
                    <xs:enumeration value="vsides"/>
                    <xs:enumeration value="box"/>
                    <xs:enumeration value="border"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:attributeGroup>
    <xs:attributeGroup name="xhtml.rules.attrib">
        <xs:attribute name="rules">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="none"/>
                    <xs:enumeration value="groups"/>
                    <xs:enumeration value="rows"/>
                    <xs:enumeration value="cols"/>
                    <xs:enumeration value="all"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:attributeGroup>
    <xs:attributeGroup name="xhtml.CellVAlign.attrib">
        <xs:attribute name="valign">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="top"/>
                    <xs:enumeration value="middle"/>
                    <xs:enumeration value="bottom"/>
                    <xs:enumeration value="baseline"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:attributeGroup>
    <xs:attributeGroup name="xhtml.CellHAlign.attrib">
        <xs:attribute name="align">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="left"/>
                    <xs:enumeration value="center"/>
                    <xs:enumeration value="right"/>
                    <xs:enumeration value="justify"/>
                    <xs:enumeration value="char"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="char" type="xh11d:Character"/>
        <xs:attribute name="charoff" type="xh11d:Length"/>
    </xs:attributeGroup>
    <xs:attributeGroup name="xhtml.scope.attrib">
        <xs:attribute name="scope">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="row"/>
                    <xs:enumeration value="col"/>
                    <xs:enumeration value="rowgroup"/>
                    <xs:enumeration value="colgroup"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:attributeGroup>
    <xs:attributeGroup name="xhtml.td.attlist">
        <xs:attributeGroup ref="xhtml.Common.attrib"/>
        <xs:attribute name="abbr" type="xh11d:Text"/>
        <xs:attribute name="axis" type="xh11d:CDATA"/>
        <xs:attribute name="headers" type="xs:IDREFS"/>
        <xs:attributeGroup ref="xhtml.scope.attrib"/>
        <xs:attribute name="rowspan" type="xh11d:Number" default="1"/>
        <xs:attribute name="colspan" type="xh11d:Number" default="1"/>
        <xs:attributeGroup ref="xhtml.CellHAlign.attrib"/>
        <xs:attributeGroup ref="xhtml.CellVAlign.attrib"/>
    </xs:attributeGroup>
    <xs:group name="xhtml.td.content">
        <xs:sequence>
            <xs:group ref="xhtml.Flow.mix" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:group>
    <xs:complexType name="xhtml.td.type" mixed="true">
        <xs:group ref="xhtml.td.content"/>
        <xs:attributeGroup ref="xhtml.td.attlist"/>
    </xs:complexType>
    <xs:attributeGroup name="xhtml.th.attlist">
        <xs:attributeGroup ref="xhtml.Common.attrib"/>
        <xs:attribute name="abbr" type="xh11d:Text"/>
        <xs:attribute name="axis" type="xh11d:CDATA"/>
        <xs:attribute name="headers" type="xs:IDREFS"/>
        <xs:attributeGroup ref="xhtml.scope.attrib"/>
        <xs:attribute name="rowspan" type="xh11d:Number" default="1"/>
        <xs:attribute name="colspan" type="xh11d:Number" default="1"/>
        <xs:attributeGroup ref="xhtml.CellHAlign.attrib"/>
        <xs:attributeGroup ref="xhtml.CellVAlign.attrib"/>
    </xs:attributeGroup>
    <xs:group name="xhtml.th.content">
        <xs:sequence>
            <xs:group ref="xhtml.Flow.mix" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:group>
    <xs:complexType name="xhtml.th.type" mixed="true">
        <xs:group ref="xhtml.th.content"/>
        <xs:attributeGroup ref="xhtml.th.attlist"/>
    </xs:complexType>
    <xs:attributeGroup name="xhtml.tr.attlist">
        <xs:attributeGroup ref="xhtml.Common.attrib"/>
        <xs:attributeGroup ref="xhtml.CellHAlign.attrib"/>
        <xs:attributeGroup ref="xhtml.CellVAlign.attrib"/>
    </xs:attributeGroup>
    <xs:group name="xhtml.tr.content">
        <xs:sequence>
            <xs:choice maxOccurs="unbounded">
                <xs:element name="th" type="xhtml.th.type"/>
                <xs:element name="td" type="xhtml.td.type"/>
            </xs:choice>
        </xs:sequence>
    </xs:group>
    <xs:complexType name="xhtml.tr.type">
        <xs:group ref="xhtml.tr.content"/>
        <xs:attributeGroup ref="xhtml.tr.attlist"/>
    </xs:complexType>
    <xs:attributeGroup name="xhtml.col.attlist">
        <xs:attributeGroup ref="xhtml.Common.attrib"/>
        <xs:attribute name="span" type="xh11d:Number" default="1"/>
        <xs:attribute name="width" type="xh11d:MultiLength"/>
        <xs:attributeGroup ref="xhtml.CellHAlign.attrib"/>
        <xs:attributeGroup ref="xhtml.CellVAlign.attrib"/>
    </xs:attributeGroup>
    <xs:group name="xhtml.col.content">
        <xs:sequence/>
    </xs:group>
    <xs:complexType name="xhtml.col.type">
        <xs:group ref="xhtml.col.content"/>
        <xs:attributeGroup ref="xhtml.col.attlist"/>
    </xs:complexType>
    <xs:attributeGroup name="xhtml.colgroup.attlist">
        <xs:attributeGroup ref="xhtml.Common.attrib"/>
        <xs:attribute name="span" type="xh11d:Number" default="1"/>
        <xs:attribute name="width" type="xh11d:MultiLength"/>
        <xs:attributeGroup ref="xhtml.CellHAlign.attrib"/>
        <xs:attributeGroup ref="xhtml.CellVAlign.attrib"/>
    </xs:attributeGroup>
    <xs:group name="xhtml.colgroup.content">
        <xs:sequence>
            <xs:element name="col" type="xhtml.col.type" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:group>
    <xs:complexType name="xhtml.colgroup.type">
        <xs:group ref="xhtml.colgroup.content"/>
        <xs:attributeGroup ref="xhtml.colgroup.attlist"/>
    </xs:complexType>
    <xs:attributeGroup name="xhtml.tbody.attlist">
        <xs:attributeGroup ref="xhtml.Common.attrib"/>
        <xs:attributeGroup ref="xhtml.CellHAlign.attrib"/>
        <xs:attributeGroup ref="xhtml.CellVAlign.attrib"/>
    </xs:attributeGroup>
    <xs:group name="xhtml.tbody.content">
        <xs:sequence>
            <xs:element name="tr" type="xhtml.tr.type" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:group>
    <xs:complexType name="xhtml.tbody.type">
        <xs:group ref="xhtml.tbody.content"/>
        <xs:attributeGroup ref="xhtml.tbody.attlist"/>
    </xs:complexType>
    <xs:attributeGroup name="xhtml.tfoot.attlist">
        <xs:attributeGroup ref="xhtml.Common.attrib"/>
        <xs:attributeGroup ref="xhtml.CellHAlign.attrib"/>
        <xs:attributeGroup ref="xhtml.CellVAlign.attrib"/>
    </xs:attributeGroup>
    <xs:group name="xhtml.tfoot.content">
        <xs:sequence>
            <xs:element name="tr" type="xhtml.tr.type" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:group>
    <xs:complexType name="xhtml.tfoot.type">
        <xs:group ref="xhtml.tfoot.content"/>
        <xs:attributeGroup ref="xhtml.tfoot.attlist"/>
    </xs:complexType>
    <xs:attributeGroup name="xhtml.thead.attlist">
        <xs:attributeGroup ref="xhtml.Common.attrib"/>
        <xs:attributeGroup ref="xhtml.CellHAlign.attrib"/>
        <xs:attributeGroup ref="xhtml.CellVAlign.attrib"/>
    </xs:attributeGroup>
    <xs:group name="xhtml.thead.content">
        <xs:sequence>
            <xs:element name="tr" type="xhtml.tr.type" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:group>
    <xs:complexType name="xhtml.thead.type">
        <xs:group ref="xhtml.thead.content"/>
        <xs:attributeGroup ref="xhtml.thead.attlist"/>
    </xs:complexType>
    <xs:attributeGroup name="xhtml.caption.attlist">
        <xs:attributeGroup ref="xhtml.Common.attrib"/>
    </xs:attributeGroup>
    <xs:group name="xhtml.caption.content">
        <xs:sequence>
            <xs:group ref="xhtml.Inline.mix" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:group>
    <xs:complexType name="xhtml.caption.type" mixed="true">
        <xs:group ref="xhtml.caption.content"/>
        <xs:attributeGroup ref="xhtml.caption.attlist"/>
    </xs:complexType>
    <xs:attributeGroup name="xhtml.table.attlist">
        <xs:attributeGroup ref="xhtml.Common.attrib"/>
        <xs:attribute name="summary" type="xh11d:Text"/>
        <xs:attribute name="width" type="xh11d:Length"/>
        <xs:attribute name="border" type="xh11d:Pixels"/>
        <xs:attributeGroup ref="xhtml.frame.attrib"/>
        <xs:attributeGroup ref="xhtml.rules.attrib"/>
        <xs:attribute name="cellspacing" type="xh11d:Length"/>
        <xs:attribute name="cellpadding" type="xh11d:Length"/>
    </xs:attributeGroup>
    <xs:group name="xhtml.table.content">
        <xs:sequence>
            <xs:element name="caption" type="xhtml.caption.type" minOccurs="0"/>
            <xs:choice>
                <xs:element name="col" type="xhtml.col.type" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element name="colgroup" type="xhtml.colgroup.type" minOccurs="0" maxOccurs="unbounded"/>
            </xs:choice>
            <xs:choice>
                <xs:sequence>
                    <xs:element name="thead" type="xhtml.thead.type" minOccurs="0"/>
                    <xs:element name="tfoot" type="xhtml.tfoot.type" minOccurs="0"/>
                    <xs:element name="tbody" type="xhtml.tbody.type" maxOccurs="unbounded"/>
                </xs:sequence>
                <xs:choice>
                    <xs:element name="tr" type="xhtml.tr.type" maxOccurs="unbounded"/>
                </xs:choice>
            </xs:choice>
        </xs:sequence>
    </xs:group>
    <xs:complexType name="xhtml.table.type">
        <xs:group ref="xhtml.table.content"/>
        <xs:attributeGroup ref="xhtml.table.attlist"/>
    </xs:complexType>
</xs:schema>

C.3.6. Image

You can download this file from http://www.w3.org/MarkUp/SCHEMA/xhtml-image-1.xsd.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
 xmlns:xs="http://www.w3.org/2001/XMLSchema"
 elementFormDefault="qualified"
 xmlns:xh11d="http://www.w3.org/1999/xhtml/datatypes/"
>
    <xs:import namespace="http://www.w3.org/1999/xhtml/datatypes/" 
               schemaLocation="xhtml-datatypes-1.xsd" />

    <xs:annotation>
        <xs:documentation>
      Images    
      This is the XML Schema Images module for XHTML
    
        * 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.
      
      
      $Id: xhtml-image-1.xsd,v 1.2 2005/09/26 22:54:53 ahby Exp $
    </xs:documentation>
        <xs:documentation source="xhtml-copyright-1.xsd"/>
        <xs:documentation source="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstract_modules.html#s_imagemodule"/>
    </xs:annotation>
    <xs:attributeGroup name="xhtml.img.attlist">
        <xs:attributeGroup ref="xhtml.Common.attrib"/>
        <xs:attribute name="src" type="xh11d:URI" use="required"/>
        <xs:attribute name="alt" type="xh11d:Text" use="required"/>
        <xs:attribute name="longdesc" type="xh11d:URI"/>
        <xs:attribute name="height" type="xh11d:Length"/>
        <xs:attribute name="width" type="xh11d:Length"/>
    </xs:attributeGroup>
    <xs:group name="xhtml.img.content">
        <xs:sequence/>
    </xs:group>
    <xs:complexType name="xhtml.img.type">
        <xs:group ref="xhtml.img.content"/>
        <xs:attributeGroup ref="xhtml.img.attlist"/>
    </xs:complexType>
</xs:schema>

C.3.7. Client-side Image Map

You can download this file from http://www.w3.org/MarkUp/SCHEMA/xhtml-csismap-1.xsd.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
 xmlns:xs="http://www.w3.org/2001/XMLSchema"
 elementFormDefault="qualified"
 xmlns:xh11d="http://www.w3.org/1999/xhtml/datatypes/"
>
    <xs:import namespace="http://www.w3.org/1999/xhtml/datatypes/" 
               schemaLocation="xhtml-datatypes-1.xsd" />

    <xs:annotation>
        <xs:documentation>
      Client-side Image Maps    
      This is the XML Schema Client-side Image Maps module for XHTML

        * area, map      

      This module declares elements and attributes to support client-side
      image maps. 
      
      $Id: xhtml-csismap-1.xsd,v 1.2 2005/09/26 22:54:53 ahby Exp $
    </xs:documentation>
        <xs:documentation source="xhtml-copyright-1.xsd"/>
        <xs:documentation source="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstract_modules.html#s_imapmodule"/>
    </xs:annotation>
    <xs:simpleType name="xhtml.Shape.Datatype">
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="rect"/>
            <xs:enumeration value="circle"/>
            <xs:enumeration value="poly"/>
            <xs:enumeration value="default"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="xhtml.Coords.Datatype">
        <xs:restriction base="xh11d:Text"/>
    </xs:simpleType>
    <!-- modify anchor attribute definition list -->
    <xs:attributeGroup name="xhtml.a.csim.attlist">
        <xs:attribute name="shape" type="xhtml.Shape.Datatype" default="rect"/>
        <xs:attribute name="coords" type="xhtml.Coords.Datatype"/>
    </xs:attributeGroup>
    <!-- modify img attribute definition list -->
    <xs:attributeGroup name="xhtml.img.csim.attlist">
        <xs:attribute name="usemap" type="xs:IDREF"/>
    </xs:attributeGroup>
    <!-- modify form input attribute definition list -->
    <xs:attributeGroup name="xhtml.input.csim.attlist">
        <xs:attribute name="usemap" type="xs:IDREF"/>
    </xs:attributeGroup>
    <!-- modify object attribute definition list -->
    <xs:attributeGroup name="xhtml.object.csim.attlist">
        <xs:attribute name="usemap" type="xs:IDREF"/>
    </xs:attributeGroup>
    <xs:attributeGroup name="xhtml.area.attlist">
        <xs:attributeGroup ref="xhtml.Common.attrib"/>
        <xs:attribute name="href" type="xh11d:URI"/>
        <xs:attribute name="shape" type="xhtml.Shape.Datatype" default="rect"/>
        <xs:attribute name="coords" type="xhtml.Coords.Datatype"/>
        <xs:attribute name="nohref">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="nohref"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="alt" type="xh11d:Text" use="required"/>
        <xs:attribute name="tabindex" type="xh11d:Number"/>
        <xs:attribute name="accesskey" type="xh11d:Character"/>
    </xs:attributeGroup>
    <xs:group name="xhtml.area.content">
        <xs:sequence/>
    </xs:group>
    <xs:complexType name="xhtml.area.type">
        <xs:group ref="xhtml.area.content"/>
        <xs:attributeGroup ref="xhtml.area.attlist"/>
    </xs:complexType>
    <!-- map -->
    <xs:attributeGroup name="xhtml.map.attlist">
        <xs:attribute name="id" type="xs:ID" use="required"/>
        <xs:attributeGroup ref="xhtml.class"/>
        <xs:attributeGroup ref="xhtml.title"/>
        <xs:attributeGroup ref="xhtml.Core.extra.attrib"/>
        <xs:attributeGroup ref="xhtml.I18n.attrib"/>
    </xs:attributeGroup>
    <xs:group name="xhtml.map.content">
        <xs:sequence>
            <xs:choice maxOccurs="unbounded">
                <xs:group ref="xhtml.Block.mix"/>
                <xs:element name="area" type="xhtml.area.type"/>
            </xs:choice>
        </xs:sequence>
    </xs:group>
    <xs:complexType name="xhtml.map.type">
        <xs:group ref="xhtml.map.content"/>
        <xs:attributeGroup ref="xhtml.map.attlist"/>
    </xs:complexType>
</xs:schema>

C.3.8. Server-side Image Map

You can download this file from http://www.w3.org/MarkUp/SCHEMA/xhtml-ssismap-1.xsd.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
 xmlns:xs="http://www.w3.org/2001/XMLSchema"
 elementFormDefault="qualified"
 xmlns:xh11d="http://www.w3.org/1999/xhtml/datatypes/"
>
    <xs:import namespace="http://www.w3.org/1999/xhtml/datatypes/" 
               schemaLocation="xhtml-datatypes-1.xsd" />
    <xs:annotation>
        <xs:documentation>
      This is the XML Schema Server-side Image Maps module for XHTML
      $Id: xhtml-ssismap-1.xsd,v 1.3 2005/09/26 22:54:53 ahby Exp $
    </xs:documentation>
        <xs:documentation source="xhtml-copyright-1.xsd"/>
    </xs:annotation>
    <xs:annotation>
        <xs:documentation>
      Server-side Image Maps
      
      This adds the 'ismap' attribute to the img element to 
      support server-side processing of a user selection.
    </xs:documentation>
        <xs:documentation source="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstract_modules.html#s_servermapmodule"/>
    </xs:annotation>
    <xs:attributeGroup name="xhtml.img.ssimap.attlist">
        <xs:attribute name="ismap">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="ismap"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:attributeGroup>
    <xs:attributeGroup name="xhtml.input.ssimap.attlist">
        <xs:attribute name="ismap">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="ismap"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:attributeGroup>
</xs:schema>

C.3.9. Object

You can download this file from http://www.w3.org/MarkUp/SCHEMA/xhtml-object-1.xsd.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
 xmlns:xs="http://www.w3.org/2001/XMLSchema"
 elementFormDefault="qualified"
 xmlns:xh11d="http://www.w3.org/1999/xhtml/datatypes/"
>
    <xs:import namespace="http://www.w3.org/1999/xhtml/datatypes/" 
               schemaLocation="xhtml-datatypes-1.xsd" />

    <xs:annotation>
        <xs:documentation>
      This is the XML Schema Embedded Object module for XHTML
      $Id: xhtml-object-1.xsd,v 1.2 2005/09/26 22:54:53 ahby Exp $
    </xs:documentation>
        <xs:documentation source="xhtml-copyright-1.xsd"/>
    </xs:annotation>
    <xs:annotation>
        <xs:documentation>
      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.
      
      Elements defined here: 
      
        * object (param)
    </xs:documentation>
        <xs:documentation source="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstract_modules.html#s_objectmodule"/>
    </xs:annotation>
    <xs:include schemaLocation="xhtml-param-1.xsd">
        <xs:annotation>
            <xs:documentation>
        Param module
        
        Elements defined here:
          * param
      </xs:documentation>
        </xs:annotation>
    </xs:include>
    <xs:attributeGroup name="xhtml.object.attlist">
        <xs:attributeGroup ref="xhtml.Common.attrib"/>
        <xs:attribute name="declare">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="declare"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="classid" type="xh11d:URI"/>
        <xs:attribute name="codebase" type="xh11d:URI"/>
        <xs:attribute name="data" type="xh11d:URI"/>
        <xs:attribute name="type" type="xh11d:ContentType"/>
        <xs:attribute name="codetype" type="xh11d:ContentType"/>
        <xs:attribute name="archive" type="xh11d:URIs"/>
        <xs:attribute name="standby" type="xh11d:Text"/>
        <xs:attribute name="height" type="xh11d:Length"/>
        <xs:attribute name="width" type="xh11d:Length"/>
        <xs:attribute name="name" type="xh11d:CDATA"/>
        <xs:attribute name="tabindex" type="xh11d:Number"/>
    </xs:attributeGroup>
    <xs:group name="xhtml.object.content">
        <xs:sequence>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
                <xs:element name="param" type="xhtml.param.type"/>
                <xs:group ref="xhtml.Flow.mix"/>
            </xs:choice>
        </xs:sequence>
    </xs:group>
    <xs:complexType name="xhtml.object.type" mixed="true">
        <xs:group ref="xhtml.object.content"/>
        <xs:attributeGroup ref="xhtml.object.attlist"/>
    </xs:complexType>
</xs:schema>

C.3.10. Frames

You can download this file from http://www.w3.org/MarkUp/SCHEMA/xhtml-frames-1.xsd.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
 xmlns:xs="http://www.w3.org/2001/XMLSchema"
 elementFormDefault="qualified"
 xmlns:xh11d="http://www.w3.org/1999/xhtml/datatypes/"
>
    <xs:import namespace="http://www.w3.org/1999/xhtml/datatypes/" 
               schemaLocation="xhtml-datatypes-1.xsd" />
  <xs:annotation>
    <xs:documentation>
      This is the XML Schema Frames module for XHTML
      $Id: xhtml-frames-1.xsd,v 1.2 2005/09/26 22:54:53 ahby Exp $
    </xs:documentation>
    <xs:documentation source="xhtml-copyright-1.xsd"/>
  </xs:annotation>

  <xs:annotation>
    <xs:documentation>
      Frames 
  
        * frameset, frame, noframes
  
      This module declares frame-related element types and attributes.
    </xs:documentation>
    <xs:documentation 
         source="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstract_modules.html#s_framesmodule"/>    
  </xs:annotation>

  <xs:attributeGroup name="xhtml.frameset.attlist">
    <xs:attributeGroup ref="xhtml.Core.attrib"/>
    <xs:attribute name="rows" type="xh11d:MultiLengths"/>
    <xs:attribute name="cols" type="xh11d:MultiLengths"/>
  </xs:attributeGroup>

  <xs:group name="xhtml.frameset.content">
    <xs:sequence>
      <xs:choice minOccurs="1" maxOccurs="unbounded">
        <xs:element ref="frameset"/>
        <xs:element ref="frame"/>
      </xs:choice>
      <xs:element ref="noframes" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
  </xs:group>

  <xs:complexType name="xhtml.frameset.type" mixed="true">
    <xs:group ref="xhtml.frameset.content"/>
    <xs:attributeGroup ref="xhtml.frameset.attlist"/>
  </xs:complexType>

<!-- 
    reserved frame names start with "_" 
    otherwise starts with letter 
-->
  <xs:attributeGroup name="xhtml.frame.attlist">
    <xs:attributeGroup ref="xhtml.Core.attrib"/>
    <xs:attribute name="longdesc" type="xh11d:URI"/>
    <xs:attribute name="src" type="xh11d:URI"/>
    <xs:attribute name="frameborder" default="1">
      <xs:simpleType>
        <xs:restriction base="xs:nonNegativeInteger">
          <xs:enumeration value="1"/>
          <xs:enumeration value="0"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="marginwidth" type="xh11d:Pixels"/>
    <xs:attribute name="marginheight" type="xh11d:Pixels"/>
    <xs:attribute name="noresize">
       <xs:simpleType>
          <xs:restriction base="xs:NMTOKEN">
             <xs:enumeration value="noresize"/>
          </xs:restriction>
       </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="scrolling" default="auto">
      <xs:simpleType>
        <xs:restriction base="xs:NMTOKEN">
          <xs:enumeration value="yes"/>
          <xs:enumeration value="no"/>
          <xs:enumeration value="auto"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  
  <xs:group name="xhtml.frame.content">
     <xs:sequence/>
  </xs:group>  

  <xs:complexType name="xhtml.frame.type">
    <xs:group ref="xhtml.frame.content"/>
    <xs:attributeGroup ref="xhtml.frame.attlist"/>
  </xs:complexType>

<!-- 
noframes 
-->
  <xs:group name="xhtml.noframes.content">
    <xs:sequence>
      <xs:element ref="body"/>
    </xs:sequence>
  </xs:group>

  <xs:attributeGroup name="xhtml.noframes.attlist">
    <xs:attributeGroup ref="xhtml.Common.attrib"/>
  </xs:attributeGroup>

  <xs:complexType name="xhtml.noframes.type" mixed="true">
    <xs:group ref="xhtml.noframes.content"/>
    <xs:attributeGroup ref="xhtml.noframes.attlist"/>
  </xs:complexType>

</xs:schema>

C.3.11. Target

You can download this file from http://www.w3.org/MarkUp/SCHEMA/xhtml-target-1.xsd.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
 xmlns:xs="http://www.w3.org/2001/XMLSchema"
 elementFormDefault="qualified"
 xmlns:xh11d="http://www.w3.org/1999/xhtml/datatypes/"
>
    <xs:import namespace="http://www.w3.org/1999/xhtml/datatypes/" 
               schemaLocation="xhtml-datatypes-1.xsd" />
  <xs:annotation>
    <xs:documentation>
      This is the XML Schema Target module for XHTML
      $Id: xhtml-target-1.xsd,v 1.3 2007/04/03 18:27:01 ahby Exp $
    </xs:documentation>
    <xs:documentation source="xhtml-copyright-1.xsd"/>
  </xs:annotation>

  <xs:annotation>
    <xs:documentation>
      Target 
      
        * target
      
      This module declares the 'target' attribute used for opening windows
    </xs:documentation>
    <xs:documentation 
         source="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstract_modules.html#s_targetmodule"/>
  </xs:annotation>
  
  <xs:attributeGroup name="xhtml.base.target.attlist">
    <xs:attribute name="target" type="xh11d:FrameTarget"/>
  </xs:attributeGroup>

  <xs:attributeGroup name="xhtml.form.target.attlist">
    <xs:attribute name="target" type="xh11d:FrameTarget"/>
  </xs:attributeGroup>

  <xs:attributeGroup name="xhtml.link.target.attlist">
    <xs:attribute name="target" type="xh11d:FrameTarget"/>
  </xs:attributeGroup>

  <xs:attributeGroup name="xhtml.area.target.attlist">
    <xs:attribute name="target" type="xh11d:FrameTarget"/>
  </xs:attributeGroup>

  <xs:attributeGroup name="xhtml.a.target.attlist">
    <xs:attribute name="target" type="xh11d:FrameTarget"/>
  </xs:attributeGroup>

</xs:schema>

C.3.12. Iframe

You can download this file from http://www.w3.org/MarkUp/SCHEMA/xhtml-iframe-1.xsd.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
 xmlns:xs="http://www.w3.org/2001/XMLSchema"
 elementFormDefault="qualified"
 xmlns:xh11d="http://www.w3.org/1999/xhtml/datatypes/"
>
    <xs:import namespace="http://www.w3.org/1999/xhtml/datatypes/" 
               schemaLocation="xhtml-datatypes-1.xsd" />
  <xs:annotation>
    <xs:documentation>
      This is the XML Schema Inline Frame Element module for XHTML
      $Id: xhtml-iframe-1.xsd,v 1.2 2005/09/26 22:54:53 ahby Exp $
    </xs:documentation>
    <xs:documentation source="xhtml-copyright-1.xsd"/>
  </xs:annotation>

  <xs:annotation>
    <xs:documentation>
      Inline Frames 
      
        * iframe
    
      This module declares the iframe element type and its attributes,
      used to create an inline frame within a document. 
    </xs:documentation>
    <xs:documentation 
         source="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstract_modules.html#s_iframemodule"/>
  </xs:annotation>

  <xs:attributeGroup name="xhtml.iframe.attlist">
    <xs:attributeGroup ref="xhtml.Core.attrib"/>
    <xs:attribute name="longdesc" type="xh11d:URI"/>
    <xs:attribute name="src" type="xh11d:URI"/>
    <xs:attribute name="frameborder" default="1">
      <xs:simpleType>
        <xs:restriction base="xs:nonNegativeInteger">
          <xs:enumeration value="1"/>
          <xs:enumeration value="0"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="marginwidth" type="xh11d:Pixels"/>
    <xs:attribute name="marginheight" type="xh11d:Pixels"/>
    <xs:attribute name="scrolling" default="auto">
      <xs:simpleType>
        <xs:restriction base="xs:NMTOKEN">
          <xs:enumeration value="yes"/>
          <xs:enumeration value="no"/>
          <xs:enumeration value="auto"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="height" type="xh11d:Length"/>
    <xs:attribute name="width" type="xh11d:Length"/>
  </xs:attributeGroup>

  <xs:group name="xhtml.iframe.content">
     <xs:sequence>
        <xs:group ref="xhtml.Flow.mix" minOccurs="0" maxOccurs="unbounded"/>
     </xs:sequence>
  </xs:group>  
  
  <xs:complexType name="xhtml.iframe.type" mixed="true">
    <xs:group ref="xhtml.iframe.content"/>
    <xs:attributeGroup ref="xhtml.iframe.attlist"/>
  </xs:complexType>

</xs:schema>

C.3.13. Intrinsic Events

You can download this file from http://www.w3.org/MarkUp/SCHEMA/xhtml-events-1.xsd.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
 xmlns:xs="http://www.w3.org/2001/XMLSchema"
 elementFormDefault="qualified"
 xmlns:xh11d="http://www.w3.org/1999/xhtml/datatypes/"
>
    <xs:import namespace="http://www.w3.org/1999/xhtml/datatypes/" 
               schemaLocation="xhtml-datatypes-1.xsd" />

    <xs:annotation>
        <xs:documentation>
      This is the XML Schema Intrinsic Events module for XHTML
      $Id: xhtml-events-1.xsd,v 1.4 2005/09/26 22:54:53 ahby Exp $
    </xs:documentation>
        <xs:documentation source="xhtml-copyright-1.xsd"/>
    </xs:annotation>
    <xs:annotation>
        <xs:documentation>
      Intrinsic Event Attributes
      These are the event attributes defined in HTML 4,
      Section 18.2.3 "Intrinsic Events".
    </xs:documentation>
        <xs:documentation source="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstract_modules.html#s_intrinsiceventsmodule"/>
    </xs:annotation>
    <xs:attributeGroup name="xhtml.Events.attrib">
        <xs:attribute name="onclick" type="xh11d:Script"/>
        <xs:attribute name="ondblclick" type="xh11d:Script"/>
        <xs:attribute name="onmousedown" type="xh11d:Script"/>
        <xs:attribute name="onmouseup" type="xh11d:Script"/>
        <xs:attribute name="onmouseover" type="xh11d:Script"/>
        <xs:attribute name="onmousemove" type="xh11d:Script"/>
        <xs:attribute name="onmouseout" type="xh11d:Script"/>
        <xs:attribute name="onkeypress" type="xh11d:Script"/>
        <xs:attribute name="onkeydown" type="xh11d:Script"/>
        <xs:attribute name="onkeyup" type="xh11d:Script"/>
    </xs:attributeGroup>
    <!--
    additional attributes on anchor element
-->
    <xs:attributeGroup name="xhtml.a.events.attlist">
        <xs:attribute name="onfocus" type="xh11d:Script"/>
        <xs:attribute name="onblur" type="xh11d:Script"/>
    </xs:attributeGroup>
    <!--
    additional attributes on form element
-->
    <xs:attributeGroup name="xhtml.form.events.attlist">
        <xs:attribute name="onsubmit" type="xh11d:Script"/>
        <xs:attribute name="onreset" type="xh11d:Script"/>
    </xs:attributeGroup>
    <!--
    additional attributes on label element
-->
    <xs:attributeGroup name="xhtml.label.events.attlist">
        <xs:attribute name="onfocus" type="xh11d:Script"/>
        <xs:attribute name="onblur" type="xh11d:Script"/>
    </xs:attributeGroup>
    <!--
    additional attributes on input element
-->
    <xs:attributeGroup name="xhtml.input.events.attlist">
        <xs:attribute name="onfocus" type="xh11d:Script"/>
        <xs:attribute name="onblur" type="xh11d:Script"/>
        <xs:attribute name="onselect" type="xh11d:Script"/>
        <xs:attribute name="onchange" type="xh11d:Script"/>
    </xs:attributeGroup>
    <!--
    additional attributes on select element
-->
    <xs:attributeGroup name="xhtml.select.events.attlist">
        <xs:attribute name="onfocus" type="xh11d:Script"/>
        <xs:attribute name="onblur" type="xh11d:Script"/>
        <xs:attribute name="onchange" type="xh11d:Script"/>
    </xs:attributeGroup>
    <!--
    additional attributes on textarea element
-->
    <xs:attributeGroup name="xhtml.textarea.events.attlist">
        <xs:attribute name="onfocus" type="xh11d:Script"/>
        <xs:attribute name="onblur" type="xh11d:Script"/>
        <xs:attribute name="onselect" type="xh11d:Script"/>
        <xs:attribute name="onchange" type="xh11d:Script"/>
    </xs:attributeGroup>
    <!--
    additional attributes on button element
-->
    <xs:attributeGroup name="xhtml.button.events.attlist">
        <xs:attribute name="onfocus" type="xh11d:Script"/>
        <xs:attribute name="onblur" type="xh11d:Script"/>
    </xs:attributeGroup>
    <!--
    additional attributes on body element
-->
    <xs:attributeGroup name="xhtml.body.events.attlist">
        <xs:attribute name="onload" type="xh11d:Script"/>
        <xs:attribute name="onunload" type="xh11d:Script"/>
    </xs:attributeGroup>
    <!--
    additional attributes on area element
-->
    <xs:attributeGroup name="xhtml.area.events.attlist">
        <xs:attribute name="onfocus" type="xh11d:Script"/>
        <xs:attribute name="onblur" type="xh11d:Script"/>
    </xs:attributeGroup>
    <!--
   Global Events Attributes
-->
    <xs:attribute name="onclick" type="xh11d:Script"/>
    <xs:attribute name="ondblclick" type="xh11d:Script"/>
    <xs:attribute name="onmousedown" type="xh11d:Script"/>
    <xs:attribute name="onmouseup" type="xh11d:Script"/>
    <xs:attribute name="onmouseover" type="xh11d:Script"/>
    <xs:attribute name="onmousemove" type="xh11d:Script"/>
    <xs:attribute name="onmouseout" type="xh11d:Script"/>
    <xs:attribute name="onkeypress" type="xh11d:Script"/>
    <xs:attribute name="onkeydown" type="xh11d:Script"/>
    <xs:attribute name="onkeyup" type="xh11d:Script"/>
    <xs:attributeGroup name="xhtml.Global.events.attrib">
        <xs:attribute ref="onclick"/>
        <xs:attribute ref="ondblclick"/>
        <xs:attribute ref="onmousedown"/>
        <xs:attribute ref="onmouseup"/>
        <xs:attribute ref="onmouseover"/>
        <xs:attribute ref="onmousemove"/>
        <xs:attribute ref="onmouseout"/>
        <xs:attribute ref="onkeypress"/>
        <xs:attribute ref="onkeydown"/>
        <xs:attribute ref="onkeyup"/>
    </xs:attributeGroup>
</xs:schema>

C.3.14. Metainformation

You can download this file from http://www.w3.org/MarkUp/SCHEMA/xhtml-meta-1.xsd.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
 xmlns:xs="http://www.w3.org/2001/XMLSchema"
 elementFormDefault="qualified"
 xmlns:xh11d="http://www.w3.org/1999/xhtml/datatypes/"
>
    <xs:import name