1. Introduction


This section is informative.

1.1. Purpose of this document

The purpose of this document is to describe a modularization framework for languages within the XHTML Namespace using XML Schema [XMLSCHEMA]. There are currently several public language variants in the XHTML namespace, including XHTML 1.0 [XHTML10] (which includes variants corresponding to the definitions of "strict", "transitional", and "frameset") and XHTML Basic [XHTMLBASIC]. The development of DTD-based modularization for XHTML made it possible to refashion XHTML 1.0 in a modularized way [XHTMLMOD], resulting in XHTML 1.1 [XHTML11]. (Here and throughout this document, the term "XHTML-MOD" is used to refer to [XHTMLMOD].)

This document provides a complete set of XML Schema modules for XHTML. In addition to the schema modules themselves, the framework presented here describes a means of further extending and modifying XHTML.

To the largest extent possible, the modularization framework presented here attempts to duplicate the modularization concepts used in XHTML-MOD. Data structures in the modularized DTDs are in many cases mapped directly onto data structures in XML Schema. This method does not yet however, make extensive use of XML Schema-specific features.

This document is based on an approach to modular schemas originally suggested by Rick Jelliffe and members of the XML Schema Working Group at W3C. [APPROACH]

1.2. Why Modularize?

In the development of any type of complex application, it is important to follow a clear conceptual standard for organizing the development. The modular approach to design reduces the application's functionality into some number of "building blocks" or "modules". These modules are then combined according to specific rules to form the entire application. This approach offers numerous advantages:

Conceptual clarity allows developers to share ideas and code

Reduces complexity by decomposition of the application's functionality

Supports object-oriented design principles by encouraging encapsulation and information hiding

Encourages reuse by creating well-defined modules that perform a particular task

Decreases debugging time by localizing errors due to design changes

Increases flexibility and maintainability because single modules can be upgraded or replaced independently of others

Eases development, testing, and maintenance by providing a logical, easy to understand, and consistent organization

Allows the creation of generic rules, methods, and procedures to aid in consistent development practices

Creates configurable objects that the end user can tailor for different purposes

Supports a variety of end user interface and deployment environments by allowing standardized subsets and supersets.

1.3. Design Goals

These are the design goals for this modularization framework for XHTML:

1.4. Requirements

This document describes a modularization framework that attempts to reuse the conceptual ideas in XHTML-MOD, but does not attempt to literally duplicate them in all aspects.

The DTD modularization framework described in XHTML-MOD is subject to a detailed and explicit list of requirements [XHTMLMOD]. The scope of the schema-based framework described here is also constrained by this set of requirements, and is believed to have fulfilled them in their entirety.