Modularization of XHTML in XML Schema (original) (raw)
1. Introduction
Contents
- 1.1. Purpose of this document
- 1.2. Why Modularize?
- 1.3. Design Goals
- 1.4. Requirements
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:
- To create coherent sets of semantically related modules within the XHTML namespace using XML Schema
- To support the creation of subsets and supersets of XHTML for specific purposes such as handheld devices and special-purpose appliances
- To facilitate future development by allowing modules to be upgraded or replaced independently of other modules
- To encourage and facilitate the reuse of common modules by developers.
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.