# 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.

## 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:

    <?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

    <?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

    <?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.7 2008/03/12 15:52:49 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="xsd: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="xsd: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:simpleType>
        <xs:simpleType name="CURIEs">
            <xs:list itemType="xh11d:CURIE"/>
        </xs:simpleType>
        <xs:simpleType name="SafeCURIE">
            <xs:restriction base="xs:string"/>
        </xs:simpleType>
        <xs:simpleType name="SafeCURIEs">
            <xs:list itemType="xh11d:SafeCURIE"/>
        </xs:simpleType>
        <xs:simpleType name="URIorCURIE">
            <xs:restriction base="xs:string"/>
        </xs:simpleType>
    </xs:schema>

### C.2.3. XHTML Common Attribute Definitions

    <?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

    <?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/MarkUp/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/MarkUp/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/MarkUp/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

    <?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

    <?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

    <?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

    <?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

    <?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

    <?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

    <?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

    <?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

    <?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

    <?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

    <?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

    <?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

    <?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

    <?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

    <?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

    <?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

    <?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

    <?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

    <?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

    <?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

    <?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 Metainformation module for XHTML
          $Id: xhtml-meta-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>
          Meta Information

            * meta

          This module declares the meta element type and its attributes,
          used to provide declarative document metainformation.
        </xs:documentation>
            <xs:documentation source="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstract_modules.html#s_metamodule"/>
        </xs:annotation>
        <xs:attributeGroup name="xhtml.meta.attlist">
            <xs:attributeGroup ref="xhtml.I18n.attrib"/>
            <xs:attribute name="http-equiv" type="xs:NMTOKEN"/>
            <xs:attribute name="name" type="xs:NMTOKEN"/>
            <xs:attribute name="content" type="xh11d:CDATA" use="required"/>
            <xs:attribute name="scheme" type="xh11d:CDATA"/>
        </xs:attributeGroup>
        <xs:group name="xhtml.meta.content">
            <xs:sequence/>
        </xs:group>
        <xs:complexType name="xhtml.meta.type">
            <xs:group ref="xhtml.meta.content"/>
            <xs:attributeGroup ref="xhtml.meta.attlist"/>
        </xs:complexType>
    </xs:schema>

### C.3.15. Scripting

    <?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 Scripting module for XHTML
          $Id: xhtml-script-1.xsd,v 1.5 2006/09/11 08:50:41 ahby Exp $
        </xs:documentation>
            <xs:documentation source="xhtml-copyright-1.xsd"/>
        </xs:annotation>
        <xs:annotation>
            <xs:documentation>
          Scripting

            * script, noscript

          This module declares element types and attributes used to provide
          support for executable scripts as well as an alternate content
          container where scripts are not supported.
        </xs:documentation>
            <xs:documentation source="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstract_modules.html#s_scriptmodule"/>
        </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.script.attlist">
            <xs:attributeGroup ref="xhtml.id"/>
            <xs:attribute name="charset" type="xh11d:Charset"/>
            <xs:attribute name="type" type="xh11d:ContentType" use="required"/>
            <xs:attribute name="src" type="xh11d:URI"/>
            <xs:attribute name="defer">
                <xs:simpleType>
                    <xs:restriction base="xs:NMTOKEN">
                        <xs:enumeration value="defer"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
        </xs:attributeGroup>
        <xs:group name="xhtml.script.content">
            <xs:sequence/>
        </xs:group>
        <xs:complexType name="xhtml.script.type" mixed="true">
            <xs:group ref="xhtml.script.content"/>
            <xs:attributeGroup ref="xhtml.script.attlist"/>
        </xs:complexType>
        <xs:attributeGroup name="xhtml.noscript.attlist">
            <xs:attributeGroup ref="xhtml.Common.attrib"/>
        </xs:attributeGroup>
        <xs:group name="xhtml.noscript.content">
            <xs:sequence>
                <xs:group ref="xhtml.Block.mix" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:group>
        <xs:complexType name="xhtml.noscript.type">
            <xs:group ref="xhtml.noscript.content"/>
            <xs:attributeGroup ref="xhtml.noscript.attlist"/>
        </xs:complexType>
    </xs:schema>

### C.3.16. Style Sheet

    <?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 Stylesheets module for XHTML
          $Id: xhtml-style-1.xsd,v 1.5 2006/09/11 10:14:57 ahby Exp $
        </xs:documentation>
            <xs:documentation source="xhtml-copyright-1.xsd"/>
        </xs:annotation>
        <xs:annotation>
            <xs:documentation>
          Stylesheets

            * style

          This module declares the style element type and its attributes,
          used to embed stylesheet information in the document head element.
        </xs:documentation>
            <xs:documentation source="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstract_modules.html#s_stylemodule"/>
        </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.style.attlist">
            <xs:attributeGroup ref="xhtml.id"/>
            <xs:attributeGroup ref="xhtml.title"/>
            <xs:attributeGroup ref="xhtml.I18n.attrib"/>
            <xs:attribute name="type" type="xh11d:ContentType" use="required"/>
            <xs:attribute name="media" type="xh11d:MediaDesc"/>
        </xs:attributeGroup>
        <xs:group name="xhtml.style.content">
            <xs:sequence/>
        </xs:group>
        <xs:complexType name="xhtml.style.type" mixed="true">
            <xs:group ref="xhtml.style.content"/>
            <xs:attributeGroup ref="xhtml.style.attlist"/>
        </xs:complexType>
    </xs:schema>

### C.3.17. Style Attribute

    <?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>
          Inline Style module
          This is the XML Schema Inline Style module for XHTML

             * styloe attribute

          This module declares the 'style' attribute, used to support inline
          style markup.

          $Id: xhtml-inlstyle-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_styleattributemodule"/>
        </xs:annotation>
        <xs:attributeGroup name="xhtml.style.attrib">
            <xs:attribute name="style" type="xh11d:CDATA"/>
        </xs:attributeGroup>
    </xs:schema>

### C.3.18. Link

    <?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 Link Element module for XHTML
          $Id: xhtml-link-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>
          Link element

            * link

          This module declares the link element type and its attributes,
          which could (in principle) be used to define document-level links
          to external resources.
        </xs:documentation>
            <xs:documentation source="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstract_modules.html#s_linkmodule"/>
        </xs:annotation>
        <xs:attributeGroup name="xhtml.link.attlist">
            <xs:attributeGroup ref="xhtml.Common.attrib"/>
            <xs:attribute name="charset" type="xh11d:Charset"/>
            <xs:attribute name="href" type="xh11d:URI"/>
            <xs:attribute name="hreflang" type="xh11d:LanguageCode"/>
            <xs:attribute name="type" type="xh11d:ContentType"/>
            <xs:attribute name="rel" type="xh11d:LinkTypes"/>
            <xs:attribute name="rev" type="xh11d:LinkTypes"/>
            <xs:attribute name="media" type="xh11d:MediaDesc"/>
        </xs:attributeGroup>
        <xs:group name="xhtml.link.content">
            <xs:sequence/>
        </xs:group>
        <xs:complexType name="xhtml.link.type">
            <xs:group ref="xhtml.link.content"/>
            <xs:attributeGroup ref="xhtml.link.attlist"/>
        </xs:complexType>
    </xs:schema>

### C.3.19. Base

    <?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>
            Base element
            This is the XML Schema Base Element module for XHTML

              * base

            This module declares the base element type and its attributes,
            used to define a base URI against which relative URIs in the
            document will be resolved.

            $Id: xhtml-base-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_basemodule"/>
        </xs:annotation>
        <xs:attributeGroup name="xhtml.base.attlist">
            <xs:attribute name="href" type="xh11d:URI" use="required"/>
        </xs:attributeGroup>
        <xs:group name="xhtml.base.content">
            <xs:sequence/>
        </xs:group>
        <xs:complexType name="xhtml.base.type">
            <xs:group ref="xhtml.base.content"/>
            <xs:attributeGroup ref="xhtml.base.attlist"/>
        </xs:complexType>
    </xs:schema>

### C.3.20. Name Identification

    <?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 Name Identifier module for XHTML
          $Id: xhtml-nameident-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>
          Name Identifier

            * 'name' attribute on form, img, a, map, applet, frame, iframe

          This module declares the 'name' attribute on element types when
          it is used as a node identifier for legacy linking and scripting
          support. This does not include those instances when 'name' is used
          as a container for form control, property or metainformation names.

          This module should be instantiated following all modules it modifies.
        </xs:documentation>
        <xs:documentation
            source="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstract_modules.html#s_nameidentmodule"/>
      </xs:annotation>

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

      <xs:attributeGroup name="xhtml.img.name.attlist">
        <xs:attribute name="name" type="xh11d:CDATA"/>
      </xs:attributeGroup>

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

      <xs:attributeGroup name="xhtml.map.name.attlist">
        <xs:attribute name="name" type="xh11d:CDATA"/>
      </xs:attributeGroup>

      <xs:attributeGroup name="xhtml.applet.name.attlist">
        <xs:attribute name="name" type="xh11d:CDATA"/>
      </xs:attributeGroup>

      <xs:attributeGroup name="xhtml.frame.name.attlist">
        <xs:attribute name="name" type="xh11d:CDATA"/>
      </xs:attributeGroup>

      <xs:attributeGroup name="xhtml.iframe.name.attlist">
        <xs:attribute name="name" type="xh11d:CDATA"/>
      </xs:attributeGroup>

    </xs:schema>

### C.3.21. Legacy

    <?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 Module for HTML Legacy Markup

            font, basefont, center, s, strike, u,
            dir, menu, isindex
            (plus additional datatypes and legacy attributes)

           This optional module declares additional markup for simple
           presentation-related markup based on features found in the
           HTML 4 Transitional and Frameset DTDs.

           The legacy module also include frames module, iframe module
           and target module. (Note: This module expects find the schema files
           of that declare these module)

           Elements/Attributes defined in frame, iframe and targer modules are

              * frameset, frame, noframes, att:target, iframe

           $Id: xhtml-legacy-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_legacymodule"/>
        <xs:documentation
            source="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstract_modules.html#s_framesmodule"/>
        <xs:documentation
            source="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstract_modules.html#s_targetmodule"/>
        <xs:documentation
            source="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstract_modules.html#s_iframemodule"/>
      </xs:annotation>

      <xs:include schemaLocation="xhtml-misc-1.xsd">
        <xs:annotation>
          <xs:documentation>
            Miscellaneous module
            Attributes defined here:

              * font, basefont, center, s, strike, u, dir, menu, isindex
                (plus additional datatypes and attributes)

          </xs:documentation>
        </xs:annotation>
      </xs:include>

      <xs:include schemaLocation="xhtml-frames-1.xsd">
        <xs:annotation>
          <xs:documentation>
            Frames module

            Elements defined here:

              * frameset, frame, noframes
          </xs:documentation>
          <xs:documentation
            source="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstract_modules.html#s_framesmodule"/>
        </xs:annotation>
      </xs:include>

      <xs:include schemaLocation="xhtml-target-1.xsd">
        <xs:annotation>
          <xs:documentation>
            Target module

            Attributes defined here:

              * target
          </xs:documentation>
          <xs:documentation
            source="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstract_modules.html#s_targetmodule"/>
        </xs:annotation>
      </xs:include>

      <xs:include schemaLocation="xhtml-iframe-1.xsd">
        <xs:annotation>
          <xs:documentation>
            Iframe module

            Elements defined here:

              * iframe
          </xs:documentation>
          <xs:documentation
            source="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstract_modules.html#s_iframemodule"/>
        </xs:annotation>
      </xs:include>

    </xs:schema>

### C.3.22. Ruby

    <?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 Ruby module for XHTML
          $Id: xhtml-ruby-1.xsd,v 1.6 2005/09/26 22:54:53 ahby Exp $
        </xs:documentation>
        <xs:documentation source="xhtml-copyright-1.xsd"/>
      </xs:annotation>

      <xs:annotation>
        <xs:documentation>
          "Ruby" are short runs of text alongside the base text, typically
          used in East Asian documents to indicate pronunciation or to
          provide a short annotation. The full specification for Ruby is here:

            http://www.w3.org/TR/2001/REC-ruby-20010531/

          This module defines "Ruby " or "complex Ruby" as described
          in the specification:

            http://www.w3.org/TR/2001/REC-ruby-20010531/#complex

          Simple or Basic Ruby are defined in a separate module.

          This module declares the elements and their attributes used to
          support complex ruby annotation markup. Elements defined here
                * ruby, rbc, rtc, rb, rt, rp

          This module expects the document model to define the
          following content models
            + InlNoRuby.mix
        </xs:documentation>
        <xs:documentation
             source="http://www.w3.org/TR/2001/REC-ruby-20010531/"/>
      </xs:annotation>

      <xs:group name="xhtml.ruby.content.simple">
        <xs:sequence>
          <xs:element ref="rb"/>
          <xs:choice>
            <xs:element ref="rt"/>
            <xs:sequence>
              <xs:element ref="rp"/>
              <xs:element ref="rt"/>
              <xs:element ref="rp"/>
            </xs:sequence>
          </xs:choice>
        </xs:sequence>
      </xs:group>

      <xs:group name="xhtml.ruby.content.complex">
        <xs:sequence>
          <xs:element ref="rbc"/>
          <xs:element ref="rtc" maxOccurs="2"/>
        </xs:sequence>
      </xs:group>

      <!--
       add to this group any common attributes for all Ruby elements
      -->
      <xs:attributeGroup name="xhtml.ruby.common.attrib"/>

      <xs:group name="xhtml.ruby.content">
        <xs:choice>
          <xs:group ref="xhtml.ruby.content.simple"/>
          <xs:group ref="xhtml.ruby.content.complex"/>
        </xs:choice>
      </xs:group>

      <xs:complexType name="xhtml.ruby.type">
        <xs:group ref="xhtml.ruby.content"/>
        <xs:attributeGroup ref="xhtml.ruby.common.attrib"/>
      </xs:complexType>

      <!--
       rbc (ruby base component) element
      -->
      <xs:attributeGroup name="xhtml.rbc.attlist">
        <xs:attributeGroup ref="xhtml.ruby.common.attrib"/>
      </xs:attributeGroup>

      <xs:group name="xhtml.rbc.content">
        <xs:sequence>
          <xs:element ref="rb"/>
        </xs:sequence>
      </xs:group>

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

      <!--
       rtc (ruby text component) element
      -->
      <xs:attributeGroup name="xhtml.rtc.attlist">
        <xs:attributeGroup ref="xhtml.ruby.common.attrib"/>
      </xs:attributeGroup>

      <xs:group name="xhtml.rtc.content">
        <xs:sequence>
          <xs:element ref="rt" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:group>

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

      <!--
       rb (ruby base) element
      -->
      <xs:attributeGroup name="xhtml.rb.attlist">
        <xs:attributeGroup ref="xhtml.ruby.common.attrib"/>
      </xs:attributeGroup>

      <xs:group name="xhtml.rb.content">
        <xs:sequence>
           <xs:group ref="xhtml.InlNoRuby.mix" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:group>

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

      <!--
       rt (ruby text) element
      -->
      <xs:attributeGroup name="xhtml.rt.attlist">
        <xs:attributeGroup ref="xhtml.ruby.common.attrib"/>
        <xs:attribute name="rbspan" type="xh11d:Number" default="1"/>
      </xs:attributeGroup>

      <xs:group name="xhtml.rt.content">
        <xs:sequence>
           <xs:group ref="xhtml.InlNoRuby.mix" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:group>

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

      <!-- rp (ruby parenthesis) element  -->
      <xs:attributeGroup name="xhtml.rp.attlist">
        <xs:attributeGroup ref="xhtml.ruby.common.attrib"/>
      </xs:attributeGroup>

      <xs:group name="xhtml.rp.content">
        <xs:sequence/>
      </xs:group>

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

    </xs:schema>

## C.4. XHTML Schema Support Modules

The modules in this section are elements of the XHTML Schema implementation that, while hidden from casual users, are important to understand when creating derivative markup languages using the Modularization architecture.

### C.4.1. Block Phrasal

    <?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:include schemaLocation="xhtml-attribs-1.xsd" />

        <xs:annotation>
            <xs:documentation>
              This is the XML Schema Block Phrasal support module for XHTML
              $Id: xhtml-blkphras-1.xsd,v 1.6 2006/09/11 10:27:50 ahby Exp $
           </xs:documentation>
            <xs:documentation source="xhtml-copyright-1.xsd"/>
        </xs:annotation>
        <xs:annotation>
            <xs:documentation>
               Block Phrasal
               This module declares the elements and their attributes used to
               support block-level phrasal markup.
               This is the XML Schema block phrasal elements module for XHTML

                * address, blockquote, pre, h1, h2, h3, h4, h5, h6
          </xs:documentation>
            <xs:documentation source="http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_textmodule"/>
        </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>
        <!-- address -->
        <xs:attributeGroup name="xhtml.address.attlist">
            <xs:attributeGroup ref="xhtml.Common.attrib"/>
        </xs:attributeGroup>
        <xs:group name="xhtml.address.content">
            <xs:sequence>
                <xs:group ref="xhtml.Inline.mix" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:group>
        <xs:complexType name="xhtml.address.type" mixed="true">
            <xs:group ref="xhtml.address.content"/>
            <xs:attributeGroup ref="xhtml.address.attlist"/>
        </xs:complexType>
        <!-- blockquote -->
        <xs:attributeGroup name="xhtml.blockquote.attlist">
            <xs:attributeGroup ref="xhtml.Common.attrib"/>
            <xs:attribute name="cite" type="xh11d:URI"/>
        </xs:attributeGroup>
        <xs:group name="xhtml.blockquote.content">
            <xs:sequence>
                <xs:group ref="xhtml.Block.mix" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:group>
        <xs:complexType name="xhtml.blockquote.type">
            <xs:group ref="xhtml.blockquote.content"/>
            <xs:attributeGroup ref="xhtml.blockquote.attlist"/>
        </xs:complexType>
        <!-- pre -->
        <xs:attributeGroup name="xhtml.pre.attlist">
            <xs:attribute ref="xml:space"/>
            <xs:attributeGroup ref="xhtml.Common.attrib"/>
        </xs:attributeGroup>
        <xs:group name="xhtml.pre.content">
            <xs:sequence>
                <xs:group ref="xhtml.InlinePre.mix" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:group>
        <xs:complexType name="xhtml.pre.type" mixed="true">
            <xs:group ref="xhtml.pre.content"/>
            <xs:attributeGroup ref="xhtml.pre.attlist"/>
        </xs:complexType>
        <!-- Heading Elements  -->
        <xs:attributeGroup name="xhtml.heading.attlist">
            <xs:attributeGroup ref="xhtml.Common.attrib"/>
        </xs:attributeGroup>
        <xs:complexType name="xhtml.heading.type" mixed="true">
            <xs:group ref="xhtml.Inline.mix" minOccurs="0" maxOccurs="unbounded"/>
            <xs:attributeGroup ref="xhtml.heading.attlist"/>
        </xs:complexType>
        <xs:attributeGroup name="xhtml.h1.attlist">
            <xs:attributeGroup ref="xhtml.Common.attrib"/>
        </xs:attributeGroup>
        <xs:group name="xhtml.h1.content">
            <xs:sequence>
                <xs:group ref="xhtml.Inline.mix" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:group>
        <xs:complexType name="xhtml.h1.type" mixed="true">
            <xs:group ref="xhtml.h1.content"/>
            <xs:attributeGroup ref="xhtml.h1.attlist"/>
        </xs:complexType>
        <xs:attributeGroup name="xhtml.h2.attlist">
            <xs:attributeGroup ref="xhtml.Common.attrib"/>
        </xs:attributeGroup>
        <xs:group name="xhtml.h2.content">
            <xs:sequence>
                <xs:group ref="xhtml.Inline.mix" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:group>
        <xs:complexType name="xhtml.h2.type" mixed="true">
            <xs:group ref="xhtml.h2.content"/>
            <xs:attributeGroup ref="xhtml.h2.attlist"/>
        </xs:complexType>
        <xs:attributeGroup name="xhtml.h3.attlist">
            <xs:attributeGroup ref="xhtml.Common.attrib"/>
        </xs:attributeGroup>
        <xs:group name="xhtml.h3.content">
            <xs:sequence>
                <xs:group ref="xhtml.Inline.mix" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:group>
        <xs:complexType name="xhtml.h3.type" mixed="true">
            <xs:group ref="xhtml.h3.content"/>
            <xs:attributeGroup ref="xhtml.h3.attlist"/>
        </xs:complexType>
        <xs:attributeGroup name="xhtml.h4.attlist">
            <xs:attributeGroup ref="xhtml.Common.attrib"/>
        </xs:attributeGroup>
        <xs:group name="xhtml.h4.content">
            <xs:sequence>
                <xs:group ref="xhtml.Inline.mix" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:group>
        <xs:complexType name="xhtml.h4.type" mixed="true">
            <xs:group ref="xhtml.h4.content"/>
            <xs:attributeGroup ref="xhtml.h4.attlist"/>
        </xs:complexType>
        <xs:attributeGroup name="xhtml.h5.attlist">
            <xs:attributeGroup ref="xhtml.Common.attrib"/>
        </xs:attributeGroup>
        <xs:group name="xhtml.h5.content">
            <xs:sequence>
                <xs:group ref="xhtml.Inline.mix" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:group>
        <xs:complexType name="xhtml.h5.type" mixed="true">
            <xs:group ref="xhtml.h5.content"/>
            <xs:attributeGroup ref="xhtml.h5.attlist"/>
        </xs:complexType>
        <xs:attributeGroup name="xhtml.h6.attlist">
            <xs:attributeGroup ref="xhtml.Common.attrib"/>
        </xs:attributeGroup>
        <xs:group name="xhtml.h6.content">
            <xs:sequence>
                <xs:group ref="xhtml.Inline.mix" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:group>
        <xs:complexType name="xhtml.h6.type" mixed="true">
            <xs:group ref="xhtml.h6.content"/>
            <xs:attributeGroup ref="xhtml.h6.attlist"/>
        </xs:complexType>
    </xs:schema>

### C.4.2. Block Presentational

    <?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 SchemaBlock presentation element module for XHTML
          $Id: xhtml-blkpres-1.xsd,v 1.2 2005/09/26 22:54:53 ahby Exp $
        </xs:documentation>
        </xs:annotation>
        <xs:annotation>
            <xs:documentation>
          Block Presentational Elements

            * hr

          This module declares the elements and their attributes used to
          support block-level presentational markup.
        </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_presentationmodule"/>
        </xs:annotation>
        <xs:attributeGroup name="xhtml.hr.attlist">
            <xs:attributeGroup ref="xhtml.Common.attrib"/>
        </xs:attributeGroup>
        <xs:group name="xhtml.hr.content">
            <xs:sequence/>
        </xs:group>
        <xs:complexType name="xhtml.hr.type">
            <xs:group ref="xhtml.hr.content"/>
            <xs:attributeGroup ref="xhtml.hr.attlist"/>
        </xs:complexType>
    </xs:schema>

### C.4.3. Block Structural

    <?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>
          Block Structural

            * div, p

          This module declares the elements and their attributes used to
          support block-level structural markup.

          This is the XML Schema Block Structural module for XHTML
          $Id: xhtml-blkstruct-1.xsd,v 1.3 2005/09/26 22:54:53 ahby Exp $
        </xs:documentation>
            <xs:documentation source="xhtml-copyright-1.xsd"/>
        </xs:annotation>
        <!-- div -->
        <xs:attributeGroup name="xhtml.div.attlist">
            <xs:attributeGroup ref="xhtml.Common.attrib"/>
        </xs:attributeGroup>
        <xs:group name="xhtml.div.content">
            <xs:sequence>
                <xs:group ref="xhtml.Flow.mix" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:group>
        <xs:complexType name="xhtml.div.type" mixed="true">
            <xs:group ref="xhtml.div.content"/>
            <xs:attributeGroup ref="xhtml.div.attlist"/>
        </xs:complexType>
        <!-- p -->
        <xs:attributeGroup name="xhtml.p.attlist">
            <xs:attributeGroup ref="xhtml.Common.attrib"/>
        </xs:attributeGroup>
        <xs:group name="xhtml.p.content">
            <xs:sequence>
                <xs:group ref="xhtml.Inline.mix" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:group>
        <xs:complexType name="xhtml.p.type" mixed="true">
            <xs:group ref="xhtml.p.content"/>
            <xs:attributeGroup ref="xhtml.p.attlist"/>
        </xs:complexType>
    </xs:schema>

### C.4.4. Inline Phrasal

    <?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 Phrasal support module for XHTML
             $Id: xhtml-inlphras-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>
          Inline Phrasal.
          This module declares the elements and their attributes used to
          support inline-level phrasal markup.
          This is the XML Schema Inline Phrasal module for XHTML

            * abbr, acronym, cite, code, dfn, em, kbd, q, samp, strong, var

          $Id: xhtml-inlphras-1.xsd,v 1.4 2005/09/26 22:54:53 ahby Exp $
        </xs:documentation>
            <xs:documentation source="http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_textmodule"/>
        </xs:annotation>
        <xs:attributeGroup name="xhtml.abbr.attlist">
            <xs:attributeGroup ref="xhtml.Common.attrib"/>
        </xs:attributeGroup>
        <xs:group name="xhtml.abbr.content">
            <xs:sequence>
                <xs:group ref="xhtml.Inline.mix" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:group>
        <xs:complexType name="xhtml.abbr.type" mixed="true">
            <xs:group ref="xhtml.abbr.content"/>
            <xs:attributeGroup ref="xhtml.abbr.attlist"/>
        </xs:complexType>
        <xs:attributeGroup name="xhtml.acronym.attlist">
            <xs:attributeGroup ref="xhtml.Common.attrib"/>
        </xs:attributeGroup>
        <xs:group name="xhtml.acronym.content">
            <xs:sequence>
                <xs:group ref="xhtml.Inline.mix" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:group>
        <xs:complexType name="xhtml.acronym.type" mixed="true">
            <xs:group ref="xhtml.acronym.content"/>
            <xs:attributeGroup ref="xhtml.acronym.attlist"/>
        </xs:complexType>
        <xs:attributeGroup name="xhtml.cite.attlist">
            <xs:attributeGroup ref="xhtml.Common.attrib"/>
        </xs:attributeGroup>
        <xs:group name="xhtml.cite.content">
            <xs:sequence>
                <xs:group ref="xhtml.Inline.mix" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:group>
        <xs:complexType name="xhtml.cite.type" mixed="true">
            <xs:group ref="xhtml.cite.content"/>
            <xs:attributeGroup ref="xhtml.cite.attlist"/>
        </xs:complexType>
        <xs:attributeGroup name="xhtml.code.attlist">
            <xs:attributeGroup ref="xhtml.Common.attrib"/>
        </xs:attributeGroup>
        <xs:group name="xhtml.code.content">
            <xs:sequence>
                <xs:group ref="xhtml.Inline.mix" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:group>
        <xs:complexType name="xhtml.code.type" mixed="true">
            <xs:group ref="xhtml.code.content"/>
            <xs:attributeGroup ref="xhtml.code.attlist"/>
        </xs:complexType>
        <xs:attributeGroup name="xhtml.dfn.attlist">
            <xs:attributeGroup ref="xhtml.Common.attrib"/>
        </xs:attributeGroup>
        <xs:group name="xhtml.dfn.content">
            <xs:sequence>
                <xs:group ref="xhtml.Inline.mix" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:group>
        <xs:complexType name="xhtml.dfn.type" mixed="true">
            <xs:group ref="xhtml.dfn.content"/>
            <xs:attributeGroup ref="xhtml.dfn.attlist"/>
        </xs:complexType>
        <xs:attributeGroup name="xhtml.em.attlist">
            <xs:attributeGroup ref="xhtml.Common.attrib"/>
        </xs:attributeGroup>
        <xs:group name="xhtml.em.content">
            <xs:sequence>
                <xs:group ref="xhtml.Inline.mix" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:group>
        <xs:complexType name="xhtml.em.type" mixed="true">
            <xs:group ref="xhtml.em.content"/>
            <xs:attributeGroup ref="xhtml.em.attlist"/>
        </xs:complexType>
        <xs:attributeGroup name="xhtml.kbd.attlist">
            <xs:attributeGroup ref="xhtml.Common.attrib"/>
        </xs:attributeGroup>
        <xs:group name="xhtml.kbd.content">
            <xs:sequence>
                <xs:group ref="xhtml.Inline.mix" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:group>
        <xs:complexType name="xhtml.kbd.type" mixed="true">
            <xs:group ref="xhtml.kbd.content"/>
            <xs:attributeGroup ref="xhtml.kbd.attlist"/>
        </xs:complexType>
        <xs:attributeGroup name="xhtml.samp.attlist">
            <xs:attributeGroup ref="xhtml.Common.attrib"/>
        </xs:attributeGroup>
        <xs:group name="xhtml.samp.content">
            <xs:sequence>
                <xs:group ref="xhtml.Inline.mix" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:group>
        <xs:complexType name="xhtml.samp.type" mixed="true">
            <xs:group ref="xhtml.samp.content"/>
            <xs:attributeGroup ref="xhtml.samp.attlist"/>
        </xs:complexType>
        <xs:attributeGroup name="xhtml.strong.attlist">
            <xs:attributeGroup ref="xhtml.Common.attrib"/>
        </xs:attributeGroup>
        <xs:group name="xhtml.strong.content">
            <xs:sequence>
                <xs:group ref="xhtml.Inline.mix" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:group>
        <xs:complexType name="xhtml.strong.type" mixed="true">
            <xs:group ref="xhtml.strong.content"/>
            <xs:attributeGroup ref="xhtml.strong.attlist"/>
        </xs:complexType>
        <xs:attributeGroup name="xhtml.var.attlist">
            <xs:attributeGroup ref="xhtml.Common.attrib"/>
        </xs:attributeGroup>
        <xs:group name="xhtml.var.content">
            <xs:sequence>
                <xs:group ref="xhtml.Inline.mix" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:group>
        <xs:complexType name="xhtml.var.type" mixed="true">
            <xs:group ref="xhtml.var.content"/>
            <xs:attributeGroup ref="xhtml.var.attlist"/>
        </xs:complexType>
        <xs:attributeGroup name="xhtml.q.attlist">
            <xs:attributeGroup ref="xhtml.Common.attrib"/>
            <xs:attribute name="cite" type="xh11d:URI"/>
        </xs:attributeGroup>
        <xs:group name="xhtml.q.content">
            <xs:sequence>
                <xs:group ref="xhtml.Inline.mix" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:group>
        <xs:complexType name="xhtml.q.type" mixed="true">
            <xs:group ref="xhtml.q.content"/>
            <xs:attributeGroup ref="xhtml.q.attlist"/>
        </xs:complexType>
    </xs:schema>

### C.4.5. Inline Presentational

    <?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 Presentation element module for XHTML
          $Id: xhtml-inlpres-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 Presentational Elements

            * b, big, i, small, sub, sup, tt

          This module declares the elements and their attributes used to
          support inline-level presentational markup.
        </xs:documentation>
            <xs:documentation source="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstract_modules.html#s_presentationmodule"/>
        </xs:annotation>
        <xs:attributeGroup name="xhtml.InlPres.attlist">
            <xs:attributeGroup ref="xhtml.Common.attrib"/>
        </xs:attributeGroup>
        <xs:group name="xhtml.InlPres.content">
            <xs:sequence>
                <xs:group ref="xhtml.Inline.mix" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:group>
        <xs:complexType name="xhtml.InlPres.type" mixed="true">
            <xs:group ref="xhtml.InlPres.content"/>
            <xs:attributeGroup ref="xhtml.InlPres.attlist"/>
        </xs:complexType>
    </xs:schema>

### C.4.6. Inline Structural

    <?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 Structural support module for XHTML
             $Id: xhtml-inlstruct-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>
          Inline Structural.
          This module declares the elements and their attributes
          used to support inline-level structural markup.
          This is the XML Schema Inline Structural element module for XHTML

            * br, span

        </xs:documentation>
            <xs:documentation source="http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_textmodule"/>
        </xs:annotation>
        <xs:attributeGroup name="xhtml.br.attlist">
            <xs:attributeGroup ref="xhtml.Core.attrib"/>
        </xs:attributeGroup>
        <xs:group name="xhtml.br.content">
            <xs:sequence/>
        </xs:group>
        <xs:complexType name="xhtml.br.type">
            <xs:group ref="xhtml.br.content"/>
            <xs:attributeGroup ref="xhtml.br.attlist"/>
        </xs:complexType>
        <xs:attributeGroup name="xhtml.span.attlist">
            <xs:attributeGroup ref="xhtml.Common.attrib"/>
        </xs:attributeGroup>
        <xs:group name="xhtml.span.content">
            <xs:sequence>
                <xs:group ref="xhtml.Inline.mix" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:group>
        <xs:complexType name="xhtml.span.type" mixed="true">
            <xs:group ref="xhtml.span.content"/>
            <xs:attributeGroup ref="xhtml.span.attlist"/>
        </xs:complexType>
    </xs:schema>

### C.4.7. Param

    <?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 Param Element module for XHTML
          $Id: xhtml-param-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>
          Parameters for Java Applets and Embedded Objects

            * param

          This module provides declarations for the param element,
          used to provide named property values for the applet
          and object elements.
        </xs:documentation>
            <xs:documentation source="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstract_modules.html#s_objectmodule"/>
            <xs:documentation source="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstract_modules.html#s_appletmodule"/>
        </xs:annotation>
        <xs:attributeGroup name="xhtml.param.attlist">
            <xs:attributeGroup ref="xhtml.id"/>
            <xs:attribute name="name" type="xh11d:CDATA" use="required"/>
            <xs:attribute name="value" type="xh11d:CDATA"/>
            <xs:attribute name="valuetype" default="data">
                <xs:simpleType>
                    <xs:restriction base="xs:NMTOKEN">
                        <xs:enumeration value="data"/>
                        <xs:enumeration value="ref"/>
                        <xs:enumeration value="object"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="type" type="xh11d:ContentType"/>
        </xs:attributeGroup>
        <xs:group name="xhtml.param.content">
            <xs:sequence/>
        </xs:group>
        <xs:complexType name="xhtml.param.type">
            <xs:group ref="xhtml.param.content"/>
            <xs:attributeGroup ref="xhtml.param.attlist"/>
        </xs:complexType>
    </xs:schema>

### C.4.8. Legacy - Miscellaneous

    <?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 Miscellaneous Legacy
          Markup module for XHTML
          $Id: xhtml-misc-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>
          XHTML Miscellaneous Legacy Markup
            font, basefont, center, s, strike, u,
            dir, menu, isindex

          This is to allow XHTML documents to be transformed for
          display on HTML browsers where CSS support is inconsistent
          or unavailable.

          The module also declares legacy attributes for elements
          in other module. Note: This module only declares the
          attribute list, and it is up to the document type to
          redefine the model of affected modules.
        </xs:documentation>
        <xs:documentation
             source="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstract_modules.html#s_legacymodule"/>
      </xs:annotation>

      <xs:attributeGroup name="xhtml.font.attlist">
        <xs:attributeGroup ref="xhtml.Core.attrib"/>
        <xs:attributeGroup ref="xhtml.I18n.attrib"/>
        <xs:attribute name="size" type="xh11d:CDATA"/>
        <xs:attribute name="color" type="xh11d:Color"/>
        <xs:attribute name="face" type="xh11d:CDATA"/>
      </xs:attributeGroup>

      <xs:group name="xhtml.font.content">
         <xs:sequence>
           <xs:group ref="xhtml.Inline.mix" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
      </xs:group>

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

      <xs:attributeGroup name="xhtml.basefont.attlist">
        <xs:attributeGroup ref="xhtml.id"/>
        <xs:attribute name="size" type="xh11d:CDATA" use="required"/>
        <xs:attribute name="color" type="xh11d:Color"/>
        <xs:attribute name="face" type="xh11d:CDATA"/>
      </xs:attributeGroup>

      <xs:group name="xhtml.basefont.content">
         <xs:sequence/>
      </xs:group>

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

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

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

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

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

      <xs:group name="xhtml.s.content">
         <xs:sequence>
           <xs:group ref="xhtml.Inline.mix" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
      </xs:group>

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

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

      <xs:group name="xhtml.strike.content">
         <xs:sequence>
           <xs:group ref="xhtml.Inline.mix" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
      </xs:group>

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

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

      <xs:group name="xhtml.u.content">
         <xs:sequence>
           <xs:group ref="xhtml.Inline.mix" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
      </xs:group>

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

      <xs:attributeGroup name="xhtml.dir.attlist">
        <xs:attributeGroup ref="xhtml.Common.attrib"/>
        <xs:attribute name="compact">
           <xs:simpleType>
             <xs:restriction base="xs:NMTOKEN">
               <xs:enumeration value="compact"/>
             </xs:restriction>
           </xs:simpleType>
        </xs:attribute>
      </xs:attributeGroup>

      <xs:group name="xhtml.dir.content">
        <xs:sequence>
          <xs:element ref="li" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:group>

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

      <xs:attributeGroup name="xhtml.menu.attlist">
        <xs:attributeGroup ref="xhtml.Common.attrib"/>
        <xs:attribute name="compact">
           <xs:simpleType>
             <xs:restriction base="xs:NMTOKEN">
               <xs:enumeration value="compact"/>
             </xs:restriction>
           </xs:simpleType>
        </xs:attribute>
      </xs:attributeGroup>

      <xs:group name="xhtml.menu.content">
        <xs:sequence>
          <xs:element ref="li" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:group>

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

      <xs:attributeGroup name="xhtml.isindex.attlist">
        <xs:attributeGroup ref="xhtml.Core.attrib"/>
        <xs:attributeGroup ref="xhtml.I18n.attrib"/>
        <xs:attribute name="prompt" type="xh11d:Text"/>
      </xs:attributeGroup>

      <xs:group name="xhtml.isindex.content">
        <xs:sequence/>
      </xs:group>

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

      <xs:annotation>
        <xs:documentation>
          Attribute redefinitions
        </xs:documentation>
      </xs:annotation>

      <xs:attributeGroup name="xhtml.align.legacy.attlist">
        <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:restriction>
          </xs:simpleType>
        </xs:attribute>
      </xs:attributeGroup>

      <!-- add 'target' attribute to 'a' element -->
      <xs:attributeGroup name="xhtml.a.legacy.attlist">
        <xs:attribute name="target" type="xh11d:FrameTarget"/>
      </xs:attributeGroup>

      <xs:attributeGroup name="xhtml.applet.legacy.attlist">
        <xs:attribute name="align">
          <xs:simpleType>
            <xs:restriction base="xs:NMTOKEN">
              <xs:enumeration value="top"/>
              <xs:enumeration value="middle"/>
              <xs:enumeration value="bottom"/>
              <xs:enumeration value="left"/>
              <xs:enumeration value="right"/>
            </xs:restriction>
          </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="hspace" type="xh11d:Pixels"/>
        <xs:attribute name="vspace" type="xh11d:Pixels"/>
      </xs:attributeGroup>

      <xs:attributeGroup name="xhtml.body.legacy.attlist">
        <xs:attribute name="background" type="xh11d:URI"/>
        <xs:attribute name="bgcolor" type="xh11d:Color"/>
        <xs:attribute name="text" type="xh11d:Color"/>
        <xs:attribute name="link" type="xh11d:Color"/>
        <xs:attribute name="vlinke" type="xh11d:Color"/>
        <xs:attribute name="alink" type="xh11d:Color"/>
      </xs:attributeGroup>

      <xs:attributeGroup name="xhtml.br.legacy.attlist">
        <xs:attribute name="clear" default="none">
          <xs:simpleType>
            <xs:restriction base="xs:NMTOKEN">
              <xs:enumeration value="left"/>
              <xs:enumeration value="all"/>
              <xs:enumeration value="right"/>
              <xs:enumeration value="none"/>
            </xs:restriction>
          </xs:simpleType>
        </xs:attribute>
      </xs:attributeGroup>

      <xs:attributeGroup name="xhtml.caption.legacy.attlist">
        <xs:attributeGroup ref="xhtml.align.legacy.attlist"/>
      </xs:attributeGroup>

      <xs:attributeGroup name="xhtml.hr.legacy.attlist">
        <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:attribute name="noshade">
          <xs:simpleType>
            <xs:restriction base="xs:NMTOKEN">
              <xs:enumeration value="noshade"/>
            </xs:restriction>
          </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="size" type="xh11d:Pixels"/>
        <xs:attribute name="width" type="xh11d:Length"/>
      </xs:attributeGroup>

      <xs:attributeGroup name="xhtml.img.legacy.attlist">
        <xs:attribute name="align">
          <xs:simpleType>
            <xs:restriction base="xs:NMTOKEN">
              <xs:enumeration value="top"/>
              <xs:enumeration value="middle"/>
              <xs:enumeration value="bottom"/>
              <xs:enumeration value="left"/>
              <xs:enumeration value="right"/>
            </xs:restriction>
          </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="border" type="xh11d:Pixels"/>
        <xs:attribute name="hspace" type="xh11d:Pixels"/>
        <xs:attribute name="vspace" type="xh11d:Pixels"/>
      </xs:attributeGroup>

      <xs:attributeGroup name="xhtml.input.legacy.attlist">
        <xs:attribute name="align">
          <xs:simpleType>
            <xs:restriction base="xs:NMTOKEN">
              <xs:enumeration value="top"/>
              <xs:enumeration value="middle"/>
              <xs:enumeration value="bottom"/>
              <xs:enumeration value="left"/>
              <xs:enumeration value="right"/>
            </xs:restriction>
          </xs:simpleType>
        </xs:attribute>
      </xs:attributeGroup>

      <xs:attributeGroup name="xhtml.legend.legacy.attlist">
        <xs:attribute name="align">
          <xs:simpleType>
            <xs:restriction base="xs:NMTOKEN">
              <xs:enumeration value="top"/>
              <xs:enumeration value="bottom"/>
              <xs:enumeration value="left"/>
              <xs:enumeration value="right"/>
            </xs:restriction>
          </xs:simpleType>
        </xs:attribute>
      </xs:attributeGroup>

      <xs:attributeGroup name="xhtml.li.legacy.attlist">
        <xs:attribute name="type" type="xh11d:CDATA"/>
        <xs:attribute name="value" type="xh11d:Number"/>
      </xs:attributeGroup>

      <xs:attributeGroup name="xhtml.object.legacy.attlist">
        <xs:attribute name="align">
          <xs:simpleType>
            <xs:restriction base="xs:NMTOKEN">
              <xs:enumeration value="top"/>
              <xs:enumeration value="middle"/>
              <xs:enumeration value="bottom"/>
              <xs:enumeration value="left"/>
              <xs:enumeration value="right"/>
            </xs:restriction>
          </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="border" type="xh11d:Pixels"/>
        <xs:attribute name="hspace" type="xh11d:Pixels"/>
        <xs:attribute name="vspace" type="xh11d:Pixels"/>
      </xs:attributeGroup>

      <xs:attributeGroup name="xhtml.ol.legacy.attlist">
        <xs:attribute name="type" type="xh11d:Text"/>
        <xs:attribute name="compact">
          <xs:simpleType>
            <xs:restriction base="xs:NMTOKEN">
              <xs:enumeration value="compact"/>
            </xs:restriction>
          </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="start" type="xh11d:Number"/>
      </xs:attributeGroup>

      <xs:attributeGroup name="xhtml.dl.legacy.attlist">
          <xs:attribute name="compact">
            <xs:simpleType>
               <xs:restriction base="xs:NMTOKEN">
                  <xs:enumeration value="compact"/>
               </xs:restriction>
            </xs:simpleType>
          </xs:attribute>
      </xs:attributeGroup>

      <xs:attributeGroup name="xhtml.div.legacy.attlist">
        <xs:attributeGroup ref="xhtml.align.legacy.attlist"/>
      </xs:attributeGroup>

      <xs:attributeGroup name="xhtml.heading.legacy.attlist">
        <xs:attributeGroup ref="xhtml.align.legacy.attlist"/>
      </xs:attributeGroup>

      <xs:attributeGroup name="xhtml.p.legacy.attlist">
        <xs:attributeGroup ref="xhtml.align.legacy.attlist"/>
      </xs:attributeGroup>

      <xs:attributeGroup name="xhtml.pre.legacy.attlist">
        <xs:attribute name="width" type="xh11d:Length"/>
      </xs:attributeGroup>

      <xs:attributeGroup name="xhtml.script.legacy.attlist">
        <xs:attribute name="language" type="xh11d:ContentType"/>
      </xs:attributeGroup>

      <xs:attributeGroup name="xhtml.table.legacy.attlist">
        <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:attribute name="bgcolor" type="xh11d:Color"/>
      </xs:attributeGroup>

      <xs:attributeGroup name="xhtml.tr.legacy.attlist">
        <xs:attribute name="bgcolor" type="xh11d:Color"/>
      </xs:attributeGroup>

      <xs:attributeGroup name="xhtml.th.legacy.attlist">
        <xs:attribute name="nowrap">
          <xs:simpleType>
            <xs:restriction base="xs:NMTOKEN">
              <xs:enumeration value="nowrap"/>
            </xs:restriction>
          </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="bgcolor" type="xh11d:Color"/>
        <xs:attribute name="width" type="xh11d:Length"/>
        <xs:attribute name="height" type="xh11d:Length"/>
      </xs:attributeGroup>

      <xs:attributeGroup name="xhtml.td.legacy.attlist">
        <xs:attribute name="nowrap">
          <xs:simpleType>
            <xs:restriction base="xs:NMTOKEN">
              <xs:enumeration value="nowrap"/>
            </xs:restriction>
          </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="bgcolor" type="xh11d:Color"/>
        <xs:attribute name="width" type="xh11d:Length"/>
        <xs:attribute name="height" type="xh11d:Length"/>
      </xs:attributeGroup>

      <xs:attributeGroup name="xhtml.ul.legacy.attlist">
        <xs:attribute name="type" type="xh11d:CDATA"/>
        <xs:attribute name="compact">
          <xs:simpleType>
            <xs:restriction base="xs:NMTOKEN">
              <xs:enumeration value="compact"/>
            </xs:restriction>
          </xs:simpleType>
        </xs:attribute>
      </xs:attributeGroup>

    </xs:schema>