XHTML 1.1 - Module-based XHTML

# XHTML™ 1.1 - Module-based XHTML

## W3C Recommendation 31 May 2001

This version:
  http://www.w3.org/TR/2001/REC-xhtml11-20010531
  (Single file version, PostScript version, PDF version, ZIP archive, or Gzip'd TAR archive)
Latest version:
  http://www.w3.org/TR/xhtml11
Previous version:
  http://www.w3.org/TR/2001/PR-xhtml11-20010406
Editors:
  Murray Altheim, Sun Microsystems
  Shane McCarron, Applied Testing and Technology

Copyright ©2001 W3C® (MIT, INRIA, Keio), All Rights Reserved. W3C liability, trademark, document use and software licensing rules apply.

## Abstract

This Recommendation defines a new XHTML document type that is based upon the module framework and modules defined in Modularization of XHTML [XHTMLMOD]. The purpose of this document type is to serve as the basis for future extended XHTML 'family' document types, and to provide a consistent, forward-looking document type cleanly separated from the deprecated, legacy functionality of HTML 4 [HTML4] that was brought forward into the XHTML 1.0 [XHTML1] document types. This document type is essentially a reformulation of XHTML 1.0 Strict using XHTML Modules. This means that many facilities available in other XHTML Family document types (e.g., XHTML Frames) are not available in this document type. These other facilities are available through modules defined in Modularization of XHTML, and document authors are free to define document types based upon XHTML 1.1 that use these facilities (see [XHTMLMOD] for information on creating new document types).

## Status of this document

This section describes the status of this document at the time of its publication. Other documents may supersede this document. The latest status of this document series is maintained at the W3C.

This document has been reviewed by W3C Members and other interested parties and has been endorsed by the Director as a W3C Recommendation. It is a stable document and may be used as reference material or cited as a normative reference from another document. W3C's role in making the Recommendation is to draw attention to the specification and to promote its widespread deployment. This enhances the functionality and interoperability of the Web.

This document has been produced by the W3C HTML Working Group (members only) as part of the W3C HTML Activity. The goals of the HTML Working Group are discussed in the HTML Working Group charter. The W3C staff contact for work on HTML is Masayasu Ishikawa.

Public discussion of HTML takes place on www-html@w3.org (archive). To subscribe send an email to www-html-request@w3.org with the word subscribe in the subject line.

Please report errors in this document to www-html-editor@w3.org (archive). The list of known errors in this specification is available at http://www.w3.org/2001/05/REC-xhtml11-20010531-errata.

The English version of this specification is the only normative version. Information about translations of this document is available at http://www.w3.org/MarkUp/translations.

A list of current W3C Recommendations and other technical documents can be found at http://www.w3.org/TR.

# Quick Table of Contents

# Full Table of Contents

# 1. Introduction

This section is normative.

With the introduction of the XHTML family of modules and document types, the W3C has helped move the Internet content-development community from the days of malformed, non-standard markup into the well formed, valid world of XML [XML]. In XHTML 1.0, this move was moderated by a goal of providing for easy migration of existing, HTML 4 (or earlier) based content to XHTML and XML. With the advent of the XHTML modules defined in Modularization of XHTML, the W3C has removed support for deprecated elements and attributes from the XHTML family. These elements and attributes were largely presentation oriented functionality that is better handled via style sheets or client-specific default behavior.

Going forward, XHTML family document types will be based upon this new, more structural functional collection. In this specification, the W3C's HTML Working Group has defined an initial document type based solely upon modules. This document type is designed to be portable to a broad collection of client devices, and applicable to the majority of Internet content. Content developers who base their content upon the functionality expressed in this specification can be confident that it will be consistently portable across XHTML family conforming user agents.

# 2. Conformance Definition

This section is normative.

The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].

## 2.1. Document Conformance

This version of XHTML provides a definition of strictly conforming XHTML documents, which are restricted to elements and attributes from the XHTML namespace.

### 2.1.1. Strictly Conforming Documents

A strictly conforming XHTML 1.1 document is a document that requires only the facilities described as mandatory in this specification. Such a document must meet all the following criteria:

1. The document must conform to the constraints expressed in Appendix C.

2. The root element of the document must be `<html>`.

3. The root element of the document must designate the XHTML namespace using the `xmlns` attribute [XMLNAMES]. The namespace designator for XHTML is "`http://www.w3.org/1999/xhtml`".

4. There must be a DOCTYPE declaration in the document prior to the root element. If present, the public identifier included in the DOCTYPE declaration must reference the DTD found in Appendix C using its Formal Public Identifier. The system identifier may be modified appropriately.

       <!DOCTYPE
        html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
        "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

Here is an example of an XHTML 1.1 document.

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
        "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
      <head>
        <title>Virtual Library</title>
      </head>
      <body>
        <p>Moved to <a href="http://vlib.org/">vlib.org</a>.</p>
      </body>
    </html>

Note that in this example, the XML declaration is included. An XML declaration like the one above is not required in all XML documents. XHTML document authors are strongly encouraged to use XML declarations in all their documents. Such a declaration is required when the character encoding of the document is other than the default UTF-8 or UTF-16.

## 2.2. User Agent Conformance

A conforming user agent must meet all user agent conformance requirements defined in [XHTMLMOD].

# 3. The XHTML 1.1 Document Type

This section is normative.

The XHTML 1.1 document type is a fully functional document type with rich semantics. It is not, however, as varied in functionality as the XHTML 1.0 Transitional or Frameset document types. These document types defined many presentational components that are better handled through style sheets or other similar mechanisms. Moreover, since the XHTML 1.1 document type is based exclusively upon the facilities defined in the XHTML modules [XHTMLMOD], it does not contain any of the deprecated functionality of XHTML 1.0 nor of HTML 4. Despite these exceptions, or perhaps because of them, the XHTML 1.1 document type is a solid basis for future document types that are targeted at varied user agent environments.

The XHTML 1.1 document type is made up of the following XHTML modules. The elements, attributes, and minimal content models associated with these modules are defined in "Modularization of XHTML" [XHTMLMOD]). The elements are listed here for information purposes, but the definitions in "Modularization of XHTML" should be considered definitive. In the on-line version of this document, the module names in the list below link into the definitions of the modules within the current version of "Modularization of XHTML".

Structure Module*
  `body, head, html, title`
Text Module*
  `abbr, acronym, address, blockquote, br, cite, code, dfn, div, em, h1, h2, h3, h4, h5, h6, kbd, p, pre, q, samp, span, strong, var`
Hypertext Module*
  `a`
List Module*
  `dl, dt, dd, ol, ul, li`
Object Module
  `object, param`
Presentation Module
  `b, big, hr, i, small, sub, sup, tt`
Edit Module
  `del, ins`
Bidirectional Text Module
  `bdo`
Forms Module
  `button, fieldset, form, input, label, legend, select, optgroup, option, textarea`
Table Module
  `caption, col, colgroup, table, tbody, td, tfoot, th, thead, tr`
Image Module
  `img`
Client-side Image Map Module
  `area, map`
Server-side Image Map Module
  Attribute `ismap` on `img`
Intrinsic Events Module
  Events attributes
Metainformation Module
  `meta`
Scripting Module
  `noscript, script`
Stylesheet Module
  `style` element
Style Attribute Module Deprecated
  `style` attribute
Link Module
  `link`
Base Module
  `base`

XHTML also uses the Ruby Annotation module as defined in [RUBY]:

Ruby Annotation Module
  `ruby, rbc, rtc, rb, rt, rp`

There are no additional definitions required by this document type. An implementation of this document type as an XML DTD is defined in Appendix C.

# A. Changes from XHTML 1.0 Strict

This appendix is informative.

This Appendix describes the differences between XHTML 1.1 and XHTML 1.0 Strict. XHTML 1.1 represents a departure from both HTML 4 and XHTML 1.0. Most significant is the removal of features that were deprecated. In general, the strategy is to define a markup language that is rich in structural functionality, but that relies upon style sheets for presentation.

The differences can be summarized as follows:

1. On every element, the `lang` attribute has been removed in favor of the `xml:lang` attribute (as defined in [XHTMLMOD]).
2. On the `a` and `map` elements, the `name` attribute has been removed in favor of the `id` attribute (as defined in [XHTMLMOD]).
3. The "`ruby`" collection of elements has been added (as defined in [RUBY]).

# B. References

This appendix is normative.

## B.1. Normative References

[HTML4]
  HTML 4.01 Specification, W3C Recommendation, Dave Raggett, Arnaud Le Hors, Ian Jacobs, 24 December 1999.
  See: http://www.w3.org/TR/1999/REC-html401-19991224
[XHTML1]
  XHTML 1.0: The Extensible HyperText Markup Language, W3C Recommendation, Steven Pemberton, et al., 26 January 2000.
  See: http://www.w3.org/TR/2000/REC-xhtml1-20000126
[XHTMLMOD]
  Modularization of XHTML, W3C Recommendation, Murray Altheim, et al., 10 April 2001
  See: http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410
[XML]
  Extensible Markup Language (XML) 1.0 (Second Edition), W3C Recommendation, Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, Eve Maler, 6 October 2000.
  See: http://www.w3.org/TR/2000/REC-xml-20001006
[RUBY]
  Ruby Annotation, W3C Recommendation, Marcin Sawicki, et al., 31 May 2001.
  See: http://www.w3.org/TR/2001/REC-ruby-20010531

## B.2. Informative References

[CATALOG]
  Entity Management: OASIS Technical Resolution 9401:1997 (Amendment 2 to TR 9401), Paul Grosso, Chair, Entity Management Subcommittee, SGML Open, 10 September 1997.
  See: http://www.oasis-open.org/html/a401.htm
[RFC2119]
  "Key words for use in RFCs to indicate requirement levels", RFC 2119, S. Bradner, March 1997.
  Available at: http://www.ietf.org/rfc/rfc2119.txt
[XMLNAMES]
  "Namespaces in XML", W3C Recommendation, Tim Bray, Dave Hollander, Andrew Layman, 14 January 1999.
  Available at: http://www.w3.org/TR/1999/REC-xml-names-19990114

# C. XHTML 1.1 Document Type Definition

This appendix is normative.

## C.1. SGML Open Catalog Entry for XHTML 1.1

This section contains the SGML Open Catalog-format definition [CATALOG] of the XHTML 1.1 FPI.

    -- .......................................................................... --
    -- File catalog  ............................................................ --

    --  XHTML 1.1 Catalog Data File

        Revision:  @(#)xhtml11.cat 1.9 2001/04/04 SMI

        See "Entity Management", SGML Open Technical Resolution 9401 for detailed
        information on supplying and using catalog data. This document is available
        from OASIS at URL:

            <http://www.oasis-open.org/html/tr9401.html>
    --

    -- .......................................................................... --
    -- SGML declaration associated with XHTML  .................................. --

    OVERRIDE YES

    SGMLDECL "xml1.dcl"

    -- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: --

    -- XHTML 1.1 DTD modular driver file  ....................................... --
    -- note that this uses the local, flattened version of the DTD. If you want
       your catalog to use the master version of the XHTML Modules, change the
       entry to reference xhtml11.dtd instead of xhtml11-flat.dtd
    --

    PUBLIC "-//W3C//DTD XHTML 1.1//EN"                                "xhtml11-flat.dtd"

    -- XHTML 1.1 framework modules .............................................. --

    PUBLIC "-//W3C//ENTITIES XHTML 1.1 Document Model 1.0//EN"        "xhtml11-model-1.mod"

    -- End of catalog data  ..................................................... --
    -- .......................................................................... --

## C.2. XHTML 1.1 Driver

This section contains the driver for the XHTML 1.1 document type implementation as an XML DTD. It relies upon XHTML module implementations defined in [XHTMLMOD] and in [RUBY].

    <!-- ....................................................................... -->
    <!-- XHTML 1.1 DTD  ........................................................ -->
    <!-- file: xhtml11.dtd
    -->

    <!-- XHTML 1.1 DTD

         This is XHTML, a reformulation of HTML as a modular XML application.

         The Extensible HyperText Markup Language (XHTML)
         Copyright 1998-2001 World Wide Web Consortium
            (Massachusetts Institute of Technology, Institut National de
             Recherche en Informatique et en Automatique, Keio University).
             All Rights Reserved.

         Permission to use, copy, modify and distribute the XHTML DTD and its
         accompanying documentation for any purpose and without fee is hereby
         granted in perpetuity, provided that the above copyright notice and
         this paragraph appear in all copies.  The copyright holders make no
         representation about the suitability of the DTD for any purpose.

         It is provided "as is" without expressed or implied warranty.

            Author:     Murray M. Altheim <altheim@eng.sun.com>
            Revision:   $Id: xhtml11.dtd,v 1.21 2001/05/29 16:37:01 ahby Exp $

    -->
    <!-- This is the driver file for version 1.1 of the XHTML DTD.

         Please use this formal public identifier to identify it:

             "-//W3C//DTD XHTML 1.1//EN"
    -->
    <!ENTITY % XHTML.version  "-//W3C//DTD XHTML 1.1//EN" >

    <!-- Use this URI to identify the default namespace:

             "http://www.w3.org/1999/xhtml"

         See the Qualified Names module for information
         on the use of namespace prefixes in the DTD.
    -->
    <!ENTITY % NS.prefixed "IGNORE" >
    <!ENTITY % XHTML.prefix "" >

    <!-- Reserved for use with the XLink namespace:
    -->
    <!ENTITY % XLINK.xmlns "" >
    <!ENTITY % XLINK.xmlns.attrib "" >

    <!-- For example, if you are using XHTML 1.1 directly, use the FPI
         in the DOCTYPE declaration, with the xmlns attribute on the
         document element to identify the default namespace:

           <?xml version="1.0"?>
           <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "xhtml11.dtd">
           <html xmlns="http://www.w3.org/1999/xhtml"
                 xml:lang="en">
           ...
           </html>

         Revisions:
         (none)
    -->

    <!-- reserved for future use with document profiles -->
    <!ENTITY % XHTML.profile  "" >

    <!-- Bidirectional Text features
         This feature-test entity is used to declare elements
         and attributes used for bidirectional text support.
    -->
    <!ENTITY % XHTML.bidi  "INCLUDE" >

    <?doc type="doctype" role="title" { XHTML 1.1 } ?>

    <!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->

    <!-- Pre-Framework Redeclaration placeholder  .................... -->
    <!-- this serves as a location to insert markup declarations
         into the DTD prior to the framework declarations.
    -->
    <!ENTITY % xhtml-prefw-redecl.module "IGNORE" >
    <![%xhtml-prefw-redecl.module;[
    %xhtml-prefw-redecl.mod;
    <!-- end of xhtml-prefw-redecl.module -->]]>

    <!ENTITY % xhtml-events.module "INCLUDE" >

    <!-- Inline Style Module  ........................................ -->
    <!ENTITY % xhtml-inlstyle.module "INCLUDE" >
    <![%xhtml-inlstyle.module;[
    <!ENTITY % xhtml-inlstyle.mod
         PUBLIC "-//W3C//ELEMENTS XHTML Inline Style 1.0//EN"
                "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-inlstyle-1.mod" >
    %xhtml-inlstyle.mod;]]>

    <!-- declare Document Model module instantiated in framework
    -->
    <!ENTITY % xhtml-model.mod
         PUBLIC "-//W3C//ENTITIES XHTML 1.1 Document Model 1.0//EN"
                "xhtml11-model-1.mod" >

    <!-- Modular Framework Module (required) ......................... -->
    <!ENTITY % xhtml-framework.module "INCLUDE" >
    <![%xhtml-framework.module;[
    <!ENTITY % xhtml-framework.mod
         PUBLIC "-//W3C//ENTITIES XHTML Modular Framework 1.0//EN"
                "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-framework-1.mod" >
    %xhtml-framework.mod;]]>

    <!-- Post-Framework Redeclaration placeholder  ................... -->
    <!-- this serves as a location to insert markup declarations
         into the DTD following the framework declarations.
    -->
    <!ENTITY % xhtml-postfw-redecl.module "IGNORE" >
    <![%xhtml-postfw-redecl.module;[
    %xhtml-postfw-redecl.mod;
    <!-- end of xhtml-postfw-redecl.module -->]]>

    <!-- Text Module (Required)  ..................................... -->
    <!ENTITY % xhtml-text.module "INCLUDE" >
    <![%xhtml-text.module;[
    <!ENTITY % xhtml-text.mod
         PUBLIC "-//W3C//ELEMENTS XHTML Text 1.0//EN"
                "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-text-1.mod" >
    %xhtml-text.mod;]]>

    <!-- Hypertext Module (required) ................................. -->
    <!ENTITY % xhtml-hypertext.module "INCLUDE" >
    <![%xhtml-hypertext.module;[
    <!ENTITY % xhtml-hypertext.mod
         PUBLIC "-//W3C//ELEMENTS XHTML Hypertext 1.0//EN"
                "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-hypertext-1.mod" >
    %xhtml-hypertext.mod;]]>

    <!-- Lists Module (required)  .................................... -->
    <!ENTITY % xhtml-list.module "INCLUDE" >
    <![%xhtml-list.module;[
    <!ENTITY % xhtml-list.mod
         PUBLIC "-//W3C//ELEMENTS XHTML Lists 1.0//EN"
                "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-list-1.mod" >
    %xhtml-list.mod;]]>

    <!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->

    <!-- Edit Module  ................................................ -->
    <!ENTITY % xhtml-edit.module "INCLUDE" >
    <![%xhtml-edit.module;[
    <!ENTITY % xhtml-edit.mod
         PUBLIC "-//W3C//ELEMENTS XHTML Editing Elements 1.0//EN"
                "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-edit-1.mod" >
    %xhtml-edit.mod;]]>

    <!-- BIDI Override Module  ....................................... -->
    <!ENTITY % xhtml-bdo.module "%XHTML.bidi;" >
    <![%xhtml-bdo.module;[
    <!ENTITY % xhtml-bdo.mod
         PUBLIC "-//W3C//ELEMENTS XHTML BIDI Override Element 1.0//EN"
                "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-bdo-1.mod" >
    %xhtml-bdo.mod;]]>

    <!-- Ruby Module  ................................................ -->
    <!ENTITY % Ruby.common.attlists "INCLUDE" >
    <!ENTITY % Ruby.common.attrib "%Common.attrib;" >
    <!ENTITY % xhtml-ruby.module "INCLUDE" >
    <![%xhtml-ruby.module;[
    <!ENTITY % xhtml-ruby.mod
         PUBLIC "-//W3C//ELEMENTS XHTML Ruby 1.0//EN"
                "http://www.w3.org/TR/ruby/xhtml-ruby-1.mod" >
    %xhtml-ruby.mod;]]>

    <!-- Presentation Module  ........................................ -->
    <!ENTITY % xhtml-pres.module "INCLUDE" >
    <![%xhtml-pres.module;[
    <!ENTITY % xhtml-pres.mod
         PUBLIC "-//W3C//ELEMENTS XHTML Presentation 1.0//EN"
                "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-pres-1.mod" >
    %xhtml-pres.mod;]]>

    <!-- Link Element Module  ........................................ -->
    <!ENTITY % xhtml-link.module "INCLUDE" >
    <![%xhtml-link.module;[
    <!ENTITY % xhtml-link.mod
         PUBLIC "-//W3C//ELEMENTS XHTML Link Element 1.0//EN"
                "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-link-1.mod" >
    %xhtml-link.mod;]]>

    <!-- Document Metainformation Module  ............................ -->
    <!ENTITY % xhtml-meta.module "INCLUDE" >
    <![%xhtml-meta.module;[
    <!ENTITY % xhtml-meta.mod
         PUBLIC "-//W3C//ELEMENTS XHTML Metainformation 1.0//EN"
                "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-meta-1.mod" >
    %xhtml-meta.mod;]]>

    <!-- Base Element Module  ........................................ -->
    <!ENTITY % xhtml-base.module "INCLUDE" >
    <![%xhtml-base.module;[
    <!ENTITY % xhtml-base.mod
         PUBLIC "-//W3C//ELEMENTS XHTML Base Element 1.0//EN"
                "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-base-1.mod" >
    %xhtml-base.mod;]]>

    <!-- Scripting Module  ........................................... -->
    <!ENTITY % xhtml-script.module "INCLUDE" >
    <![%xhtml-script.module;[
    <!ENTITY % xhtml-script.mod
         PUBLIC "-//W3C//ELEMENTS XHTML Scripting 1.0//EN"
                "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-script-1.mod" >
    %xhtml-script.mod;]]>

    <!-- Style Sheets Module  ......................................... -->
    <!ENTITY % xhtml-style.module "INCLUDE" >
    <![%xhtml-style.module;[
    <!ENTITY % xhtml-style.mod
         PUBLIC "-//W3C//ELEMENTS XHTML Style Sheets 1.0//EN"
                "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-style-1.mod" >
    %xhtml-style.mod;]]>

    <!-- Image Module  ............................................... -->
    <!ENTITY % xhtml-image.module "INCLUDE" >
    <![%xhtml-image.module;[
    <!ENTITY % xhtml-image.mod
         PUBLIC "-//W3C//ELEMENTS XHTML Images 1.0//EN"
                "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-image-1.mod" >
    %xhtml-image.mod;]]>

    <!-- Client-side Image Map Module  ............................... -->
    <!ENTITY % xhtml-csismap.module "INCLUDE" >
    <![%xhtml-csismap.module;[
    <!ENTITY % xhtml-csismap.mod
         PUBLIC "-//W3C//ELEMENTS XHTML Client-side Image Maps 1.0//EN"
                "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-csismap-1.mod" >
    %xhtml-csismap.mod;]]>

    <!-- Server-side Image Map Module  ............................... -->
    <!ENTITY % xhtml-ssismap.module "INCLUDE" >
    <![%xhtml-ssismap.module;[
    <!ENTITY % xhtml-ssismap.mod
         PUBLIC "-//W3C//ELEMENTS XHTML Server-side Image Maps 1.0//EN"
                "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-ssismap-1.mod" >
    %xhtml-ssismap.mod;]]>

    <!-- Param Element Module  ....................................... -->
    <!ENTITY % xhtml-param.module "INCLUDE" >
    <![%xhtml-param.module;[
    <!ENTITY % xhtml-param.mod
         PUBLIC "-//W3C//ELEMENTS XHTML Param Element 1.0//EN"
                "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-param-1.mod" >
    %xhtml-param.mod;]]>

    <!-- Embedded Object Module  ..................................... -->
    <!ENTITY % xhtml-object.module "INCLUDE" >
    <![%xhtml-object.module;[
    <!ENTITY % xhtml-object.mod
         PUBLIC "-//W3C//ELEMENTS XHTML Embedded Object 1.0//EN"
                "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-object-1.mod" >
    %xhtml-object.mod;]]>

    <!-- Tables Module ............................................... -->
    <!ENTITY % xhtml-table.module "INCLUDE" >
    <![%xhtml-table.module;[
    <!ENTITY % xhtml-table.mod
         PUBLIC "-//W3C//ELEMENTS XHTML Tables 1.0//EN"
                "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-table-1.mod" >
    %xhtml-table.mod;]]>

    <!-- Forms Module  ............................................... -->
    <!ENTITY % xhtml-form.module "INCLUDE" >
    <![%xhtml-form.module;[
    <!ENTITY % xhtml-form.mod
         PUBLIC "-//W3C//ELEMENTS XHTML Forms 1.0//EN"
                "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-form-1.mod" >
    %xhtml-form.mod;]]>

    <!-- Legacy Markup ............................................... -->
    <!ENTITY % xhtml-legacy.module "IGNORE" >
    <![%xhtml-legacy.module;[
    <!ENTITY % xhtml-legacy.mod
         PUBLIC "-//W3C//ELEMENTS XHTML Legacy Markup 1.0//EN"
                "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-legacy-1.mod" >
    %xhtml-legacy.mod;]]>

    <!-- Document Structure Module (required)  ....................... -->
    <!ENTITY % xhtml-struct.module "INCLUDE" >
    <![%xhtml-struct.module;[
    <!ENTITY % xhtml-struct.mod
         PUBLIC "-//W3C//ELEMENTS XHTML Document Structure 1.0//EN"
                "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-struct-1.mod" >
    %xhtml-struct.mod;]]>

    <!-- end of XHTML 1.1 DTD  ................................................. -->
    <!-- ....................................................................... -->

## C.3. XHTML 1.1 Customizations

An XHTML Family Document Type (such as XHTML 1.1) must define the content model that it uses. This is done through a separate content model module that is instantiated by the XHTML Modular Framework. The content model module and the XHTML 1.1 Driver (above) work together to customize the module implementations to the document type's specific requirements. The content model module for XHTML 1.1 is defined below:

    <!-- ....................................................................... -->
    <!-- XHTML 1.1 Document Model Module  ...................................... -->
    <!-- file: xhtml11-model-1.mod

         This is XHTML 1.1, a reformulation of HTML as a modular XML application.
         Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved.
         Revision: $Id: xhtml11-model-1.mod,v 1.13 2001/05/29 16:37:01 ahby Exp $ SMI

         This DTD module is identified by the PUBLIC and SYSTEM identifiers:

           PUBLIC "-//W3C//ENTITIES XHTML 1.1 Document Model 1.0//EN"
           SYSTEM "http://www.w3.org/TR/xhtml11/DTD/xhtml11-model-1.mod"

         Revisions:
         (none)
         ....................................................................... -->

    <!-- XHTML 1.1 Document Model

         This module describes the groupings of elements that make up
         common content models for XHTML elements.

         XHTML has three basic content models:

             %Inline.mix;  character-level elements
             %Block.mix;   block-like elements, eg., paragraphs and lists
             %Flow.mix;    any block or inline elements

         Any parameter entities declared in this module may be used
         to create element content models, but the above three are
         considered 'global' (insofar as that term applies here).

         The reserved word '#PCDATA' (indicating a text string) is now
         included explicitly with each element declaration that is
         declared as mixed content, as XML requires that this token
         occur first in a content model specification.
    -->
    <!-- Extending the Model

         While in some cases this module may need to be rewritten to
         accommodate changes to the document model, minor extensions
         may be accomplished by redeclaring any of the three *.extra;
         parameter entities to contain extension element types as follows:

             %Misc.extra;    whose parent may be any block or
                             inline element.

             %Inline.extra;  whose parent may be any inline element.

             %Block.extra;   whose parent may be any block element.

         If used, these parameter entities must be an OR-separated
         list beginning with an OR separator ("|"), eg., "| a | b | c"

         All block and inline *.class parameter entities not part
         of the *struct.class classes begin with "| " to allow for
         exclusion from mixes.
    -->

    <!-- ..............  Optional Elements in head  .................. -->

    <!ENTITY % HeadOpts.mix
         "( %script.qname; | %style.qname; | %meta.qname;
          | %link.qname; | %object.qname; )*"
    >

    <!-- .................  Miscellaneous Elements  .................. -->

    <!-- ins and del are used to denote editing changes
    -->
    <!ENTITY % Edit.class "| %ins.qname; | %del.qname;" >

    <!-- script and noscript are used to contain scripts
         and alternative content
    -->
    <!ENTITY % Script.class "| %script.qname; | %noscript.qname;" >

    <!ENTITY % Misc.extra "" >

    <!-- These elements are neither block nor inline, and can
         essentially be used anywhere in the document body.
    -->
    <!ENTITY % Misc.class
         "%Edit.class;
          %Script.class;
          %Misc.extra;"
    >

    <!-- ....................  Inline Elements  ...................... -->

    <!ENTITY % InlStruct.class "%br.qname; | %span.qname;" >

    <!ENTITY % InlPhras.class
         "| %em.qname; | %strong.qname; | %dfn.qname; | %code.qname;
          | %samp.qname; | %kbd.qname; | %var.qname; | %cite.qname;
          | %abbr.qname; | %acronym.qname; | %q.qname;" >

    <!ENTITY % InlPres.class
         "| %tt.qname; | %i.qname; | %b.qname; | %big.qname;
          | %small.qname; | %sub.qname; | %sup.qname;" >

    <!ENTITY % I18n.class "| %bdo.qname;" >

    <!ENTITY % Anchor.class "| %a.qname;" >

    <!ENTITY % InlSpecial.class
         "| %img.qname; | %map.qname;
          | %object.qname;" >

    <!ENTITY % InlForm.class
         "| %input.qname; | %select.qname; | %textarea.qname;
          | %label.qname; | %button.qname;" >

    <!ENTITY % Inline.extra "" >

    <!ENTITY % Ruby.class "| %ruby.qname;" >

    <!-- %Inline.class; includes all inline elements,
         used as a component in mixes
    -->
    <!ENTITY % Inline.class
         "%InlStruct.class;
          %InlPhras.class;
          %InlPres.class;
          %I18n.class;
          %Anchor.class;
          %InlSpecial.class;
          %InlForm.class;
          %Ruby.class;
          %Inline.extra;"
    >

    <!-- %InlNoRuby.class; includes all inline elements
         except ruby, used as a component in mixes
    -->
    <!ENTITY % InlNoRuby.class
         "%InlStruct.class;
          %InlPhras.class;
          %InlPres.class;
          %I18n.class;
          %Anchor.class;
          %InlSpecial.class;
          %InlForm.class;
          %Inline.extra;"
    >

    <!-- %NoRuby.content; includes all inlines except ruby
    -->
    <!ENTITY % NoRuby.content
         "( #PCDATA
          | %InlNoRuby.class;
          %Misc.class; )*"
    >

    <!-- %InlNoAnchor.class; includes all non-anchor inlines,
         used as a component in mixes
    -->
    <!ENTITY % InlNoAnchor.class
         "%InlStruct.class;
          %InlPhras.class;
          %InlPres.class;
          %I18n.class;
          %InlSpecial.class;
          %InlForm.class;
          %Ruby.class;
          %Inline.extra;"
    >

    <!-- %InlNoAnchor.mix; includes all non-anchor inlines
    -->
    <!ENTITY % InlNoAnchor.mix
         "%InlNoAnchor.class;
          %Misc.class;"
    >

    <!-- %Inline.mix; includes all inline elements, including %Misc.class;
    -->
    <!ENTITY % Inline.mix
         "%Inline.class;
          %Misc.class;"
    >

    <!-- .....................  Block Elements  ...................... -->

    <!-- In the HTML 4.0 DTD, heading and list elements were included
         in the %block; parameter entity. The %Heading.class; and
         %List.class; parameter entities must now be included explicitly
         on element declarations where desired.
    -->

    <!ENTITY % Heading.class
         "%h1.qname; | %h2.qname; | %h3.qname;
          | %h4.qname; | %h5.qname; | %h6.qname;" >

    <!ENTITY % List.class "%ul.qname; | %ol.qname; | %dl.qname;" >

    <!ENTITY % Table.class "| %table.qname;" >

    <!ENTITY % Form.class  "| %form.qname;" >

    <!ENTITY % Fieldset.class  "| %fieldset.qname;" >

    <!ENTITY % BlkStruct.class "%p.qname; | %div.qname;" >

    <!ENTITY % BlkPhras.class
         "| %pre.qname; | %blockquote.qname; | %address.qname;" >

    <!ENTITY % BlkPres.class "| %hr.qname;" >

    <!ENTITY % BlkSpecial.class
         "%Table.class;
          %Form.class;
          %Fieldset.class;"
    >

    <!ENTITY % Block.extra "" >

    <!-- %Block.class; includes all block elements,
         used as an component in mixes
    -->
    <!ENTITY % Block.class
         "%BlkStruct.class;
          %BlkPhras.class;
          %BlkPres.class;
          %BlkSpecial.class;
          %Block.extra;"
    >

    <!-- %Block.mix; includes all block elements plus %Misc.class;
    -->
    <!ENTITY % Block.mix
         "%Heading.class;
          | %List.class;
          | %Block.class;
          %Misc.class;"
    >

    <!-- ................  All Content Elements  .................. -->

    <!-- %Flow.mix; includes all text content, block and inline
    -->
    <!ENTITY % Flow.mix
         "%Heading.class;
          | %List.class;
          | %Block.class;
          | %Inline.class;
          %Misc.class;"
    >

    <!-- end of xhtml11-model-1.mod -->

# D. Acknowledgements

This appendix is informative.

This specification was prepared by the W3C HTML Working Group. The members at the time of publication were:

- Steven Pemberton, CWI (HTML Working Group Chair)
- Murray Altheim, Sun Microsystems
- Daniel Austin, Mozquito Technologies
- Jonny Axelsson, Opera Software
- Mark Baker, Sun Microsystems
- Tantek Çelik, Microsoft
- Doug Dominiak, Openwave Systems
- Herman Elenbaas, Philips Electronics
- Beth Epperson, Netscape/AOL
- Masayasu Ishikawa, W3C (HTML Activity Lead)
- Shin'ichi Matsui, Panasonic
- Shane McCarron, Applied Testing and Technology
- Ann Navarro, WebGeek, Inc.
- Peter Stark, Ericsson
- Michel Suignard, Microsoft
- Jeremy Wadsworth, Quark Inc.
- Malte Wedel, Mozquito Technologies
- Ted Wugofski, Openwave Systems