The current maintenance update to XHTML Modularization is in response to the inevitable bug reports and clarifications that come from actual use. Since there have recently been some misconceptions expressed about the purpose of the spec, I’d thought I’d take the opportunity to try and clear them up.
XHTML Modularization is a tool for people who design markup languages. It has been used by the people designing the format for Jabber (xmpp), for the open eBook standard (epub), for the microformats specification for outlines (xoxo), and the Resource Directory Description Language (RDDL), among many others, as well as those at W3C such as XHTML 1.1, and RDFa.
Although Rick Jelliffe asserted that XHTML Modularization “…may be one of the most important new technologies of 2001,” most people will not be familiar with it. That is because XHTML Modularization is not for designing Web pages, nor is it implemented in browsers: a lot of people create Web pages; not many create new markup languages.
XHTML Modularization helps people design and manage markup language schemas and DTDs; it tells you how to write schemas that will plug together. Modules can be reused and recombined across different languages, which helps keep related languages in sync.
The modularization approach in the spec applies to XML as well. We could have called it “XML Modularization” but the main reason that XHTML appears in the title is that the spec also contains modules for XHTML using the methodology. It is with these modules that XHTML 1.1, XHTML Print, and XHTML Basic (and the others mentioned above) are defined.
Modularization is in some ways an unusual specification for W3C, because you don’t have to write any software for it. In a sense, the ‘processor’ for Modularization is a human who is writing a schema. “Write it following these rules, and it will plug in seamlessly with other modules written in the same way.” You could compare it to accessibility guidelines, which just tell you how to construct web pages that are accessible; Modularization just tells you how to write schemas that will plug together. Because it is not a specification to be implemented, it doesn’t require the testing that normally ensures the implementability of W3C specifications.