What is XHTML Modularization, and Why is it Useful?

Steven Pemberton

Why XHTML Modularization?

The HTML WG was chartered to produce a modularized version of HTML.

Modules help in managing profiles.

It is recursive in the sense that once you have built a language out of modules, that language may become a module for use in building multi-markup languages.

It is a method of describing languages with bigger building blocks than just elements and attributes.

It documents language item dependencies.

Actually independent of XHTML.

A review

XHTML Modularization may be one of the most important new technologies [of the year]

Rick Jelliffe, xml.com

What is XHTML Modularization

It is essentially a methodology for building markups.

It consists of:

Think of it as analogous to a programming-language library in programming, or maybe as an API, since it is schema language independent.

Modules

A module is a parameterized definition of some markup.

It may:

Drivers

A driver combines a number of modules into a markup language, providing the parameter values to modules as necessary

XHTML-Print consists of the following XHTML modules: ...

A markup language itself may also be defined as a module to be used as a building-block for compound documents. For instance XHTML+SVG+MathML.

xhtml+svg+math

Implementations

There are currently three schema languages with defined mappings for Modularization

Modularization doesn't use any new features, it just describes how you use these schema languages to define modules. Therefore it works out-of-the-box with any compliant implementation of any of these schema languages.

In use

For defining languages, such as XHTML 1.1, XHTML Basic, XHTML Print, XHTML+SVG+MathML, xoxo microformat, Jabber, RDDL

For defining editors, such as in Eclipse, oXygen and XFormation.

For use in browsers, such as the validating Sidewinder browser.

Conclusion

XHTML Modularization in hindsight should have been called XML Modularization.

It helps manage profiles of languages

It helps in creating language additions

It helps document language dependencies

It helps in combining languages

The spec