Modularization of XHTML

W3C Working Draft 06 April 1999

This version:
(Single HTML file, Postscript version, PDF version, ZIP archive, or Gzip'd TAR archive)
Latest version:
Previous version:
Murray Altheim, Sun Microsystems
Daniel Austin, CNET: The Computer Network
Frank Boumphrey, HTML Writers Guild
Sam Dooley, IBM
Shane McCarron, The Open Group
Ted Wugofski, Gateway


This working draft specifies a modularization of XHTML 1.0. There are two aspects to the proposed modularization: modularization into semantic modules, and implementation of these semantic modules through a document type definition (DTD). Semantic modules provide a means for subsetting and extending XHTML, a feature desired for extending XHTML's reach onto emerging platforms. Modularization at the DTD level improves the ability to create new complete DTDs from XHTML and other DTD modules.

Status of this document

This document is a working draft of the W3C's HTML Working Group. This working draft may be updated, replaced or rendered obsolete by other W3C documents at any time. It is inappropriate to use W3C Working Drafts as reference material or to cite them as other than "work in progress". This document is work in progress and does not imply endorsement by the W3C membership.

This document has been produced as part of the W3C HTML Activity. The goals of the HTML Working Group (members only) are discussed in the HTML Working Group charter (members only).

Please send detailed comments on this document to www-html-editor@w3.org. We cannot guarantee a personal response, but we will try when it is appropriate. Public discussion on HTML features takes place on the mailing list www-html@w3.org.

Quick Table of Contents

1.  Introduction
2.  Terms and Definitions
3.  XHTML Semantic Modules
4.  XHTML DTD Modules
5.  Specifying XHTML Profiles
6.  Developing DTDs with defined and extended modules
7.  Extending XHTML with Compound Documents
A.  References
B.  Design Goals
C.  XHTML Document Type Definitions

Full Table of Contents

1.  Introduction
    1.1.  What is XHTML?
    1.2.  Modularization Framework
    1.3.  Modularization of XHTML
        1.3.1.  Semantic modules
        1.3.2.  DTD modules
        1.3.3.  Compound document types
        1.3.4.  Validation
        1.3.5.  Conformance

2.  Terms and Definitions

3.  XHTML Semantic Modules
    3.1.  Applet Module
    3.2.  Block Modules
        3.2.1.  Block Phrasal Module
        3.2.2.  Block Presentational Module
        3.2.3.  Block Structural Module
    3.3.  Inline modules
        3.3.1.  Inline Phrasal Module
        3.3.2.  Inline Presentational Module
        3.3.3.  Inline Structural Module
    3.4.  Linking Module
    3.5.  List Module
    3.6.  HTML 3.2 Forms Module
    3.7.  HTML 4.0 Forms Module
    3.8.  HTML 3.2 Table Module
    3.9.  HTML 4.0 Table Module
    3.10.  Image Module
    3.11.  Image Map Module
    3.12.  Object Module
    3.13.  Frames Module
    3.14.  Intrinsic Events
    3.15.  Metainformation Module
    3.16.  Scripting Module
    3.17.  Stylesheet Module
    3.18.  Structure Module

4.  XHTML DTD Modules
    4.1.  Implementing Document Model Modules in the DTD
        4.1.1.  Parameterization
        4.1.2.  Modularization
    4.2.  Common Declarations
        4.2.1.  Names (XHTML1-names.mod)
        4.2.2.  Attributes (XHTML1-attribs.mod)
        4.2.3.  Transitional Attributes (XHTML1-attribs-t.mod)
        4.2.4.  Strict Document Model (XHTML1-model.mod)
        4.2.5.  Transitional Document Model (XHTML1-model-t.mod)
        4.2.6.  Intrinsic Event Attributes (XHTML1-events.mod)
        4.2.7.  Character Entities (XHTML1-charent.mod)
    4.3.  Document Structure Element Types
        4.3.1.  Normal Document Structure (XHTML1-struct.mod)
        4.3.2.  Frames (XHTML1-frames.mod)
        4.3.3.  Lists (XHTML1-list.mod)
    4.4.  Block Element Types
        4.4.1.  Block Structural (XHTML1-blkstruct.mod)
        4.4.2.  Block Phrasal (XHTML1-blkphras.mod)
        4.4.3.  Block Presentational (XHTML1-blkpres.mod)
    4.5.  Inline Element Types
        4.5.1.  Inline Structural (XHTML1-inlstruct.mod)
        4.5.2.  Inline Phrasal (XHTML1-inlphras.mod)
        4.5.3.  Inline Presentational (XHTML1-inlpres.mod)
    4.6.  Special Case (or Feature) Element Types
        4.6.1.  Meta Information (XHTML1-meta.mod)
        4.6.2.  Linking (XHTML1-linking.mod)
        4.6.3.  Images (XHTML1-image.mod)
        4.6.4.  Client-side Image Maps (XHTML1-csismap.mod)
        4.6.5.  Objects (XHTML1-object.mod)
        4.6.6.  Applets (XHTML1-applet.mod)
        4.6.7.  Scripting (XHTML1-script.mod)
        4.6.8.  Stylesheets (XHTML1-style.mod)
        4.6.9.  HTML 3.2 Tables (XHTML1-table32.mod)
        4.6.10.  HTML 4.0 Tables (XHTML1-table.mod)
        4.6.11.  HTML 3.2 Forms (XHTML1-form32.mod)
        4.6.12.  HTML 4.0 Forms (XHTML1-form.mod)

5.  Specifying XHTML Profiles
    5.1.  Framework for Content Negotiation
    5.2.  Expressing Profiles
    5.3.  Syntax for Representing XHTML Modules

6.  Developing DTDs with defined and extended modules
    6.1.  Defining additional attributes
    6.2.  Defining additional elements
    6.3.  Defining a new module
    6.4.  Defining the content model for a collection of modules
        6.4.1.  Integrating a stand-alone module into XHTML
        6.4.2.  Mixing a new module throughout the modules in XHTML
    6.5.  Creating a new DTD
        6.5.1.  Creating a simple DTD
        6.5.2.  Creating a DTD by extending XHTML
        6.5.3.  Creating a DTD by removing and replacing XHTML modules
    6.6.  Using the new DTD

7.  Extending XHTML with Compound Documents
    7.1.  What is a compound document?
    7.2.  The need for compound documents
    7.3.  Why are compound documents important?
    7.4.  Document life-cycle management
    7.5.  Expected benefits of compound documents
    7.6.  Creating and Using Compound Documents
        7.6.1.  The XML family tree
        7.6.2.  XHTML as a parent document type
        7.6.3.  Using multiple namespaces
        7.6.4.  Validity v. well-formedness
        7.6.5.  Fragment validation
        7.6.6.  Nesting depth of namespaces
    7.7.  Current support status
        7.7.1.  Browser support
        7.7.2.  Editor/Tool support
        7.7.3.  Simple examples
        7.7.4.  Using XHTML as an XML component grammar
    7.8.  Future Work
    7.9.  Acknowledgements

A.  References
    A.1.  Normative References
    A.2.  Informative References

B.  Design Goals
    B.1.  Requirements
        B.1.1.  Granularity
        B.1.2.  Composibility
        B.1.3.  Ease of Use
        B.1.4.  Compatibility
        B.1.5.  Conformance

C.  XHTML Document Type Definitions
    C.1.  SGML Open Catalog for XHTML
    C.2.  SGML Declaration for XHTML
    C.3.  XHTML Character Entities
        C.3.1.  XHTML Latin 1 Character Entities
        C.3.2.  XHTML Special Characters
        C.3.3.  XHTML Mathematical, Greek, and Symbolic Characters
    C.4.  Common Declaration
        C.4.1.  XHTML Common Names
        C.4.2.  XHTML Common Attribute Definitions
        C.4.3.  XHTML Transitional Attribute Definitions
        C.4.4.  XHTML Strict Content Model
        C.4.5.  XHTML Transitional Content Model
        C.4.6.  Intrinsic Events
        C.4.7.  XHTML Character Entities
    C.5.  XHTML Document Structure Modules
        C.5.1.  Structure
        C.5.2.  Frameset
        C.5.3.  Lists
    C.6.  XHTML Block Element Modules
        C.6.1.  Block Structural
        C.6.2.  Block Phrasal
        C.6.3.  Block Presentational
    C.7.  XHTML Inline Element Modules
        C.7.1.  Inline Structural
        C.7.2.  Inline Phrasal
        C.7.3.  Inline Presentational
    C.8.  XHTML Special Case Modules
        C.8.1.  Meta
        C.8.2.  Linking
        C.8.3.  Image
        C.8.4.  Client-side Image Map
        C.8.5.  Object
        C.8.6.  Applet
        C.8.7.  Scripting
        C.8.8.  Stylesheets
        C.8.9.  HTML 3.2 Tables
        C.8.10.  HTML 4.0 Tables
        C.8.11.  HTML 3.2 Forms
        C.8.12.  HTML 4.0 Forms
    C.9.  Reformulated XHTML 1.0 DTDs
        C.9.1.  XHTML 1.0 Strict
        C.9.2.  XHTML 1.0 Transitional
        C.9.3.  XHTML 1.0 Frameset