In the late 1980s and early 1990s, when Novell and Microsoft were duking it out for network dominance, Novell's then-marketing VP Craig Burton said "the great thing about [networking] standards is that there are so many to choose from." Though it was meant half-jokingly, Novell's tardiness in adopting TCP/IP at NetWare's core is certainly one of the factors that contributed to its loss of market dominance to Windows Server implementations that did make that switch.
The field of XML may seem likewise littered with standards and indeed there are too many to choose from anymore for anyone to know them all. That said, XML is unlikely to lose its commanding position in the area of application services, data representation and exchange, or the development of application – or information domain-specific markup languages – perhaps because there's really no competing set of standards likely to knock off its current perch at the top of the standards heap.
At the end of January 2006, another XML standard reached proposed recommendation status (nearly complete in other words, but awaiting final review and grant of recommendation status). It's called XHTML-Print and belongs to the collection of XHTML languages covered by the more general Modularization of XHTML [XHTMLMOD], itself a recommendation since 2001. Essentially what XHTML-Print does is to define a simple XHTML based data stream that's suitable for printing and display, especially on devices that don't have large displays or large amounts of buffer space into and out of which print files may be spooled.
In particular, XHTML-Print targets low-cost output devices and printers that may not even have a buffer large enough to accommodate a single page of text and that print output from left-to-right and top-to-bottom strictly in portrait orientation on the page (think of the thermal printers the car return staff use at major national rent-a-car operations and you're right on target). Thus XHTML-Print isn't suitable for output that requires strict layout controls or that seeks to create identical output from different printers. It's supposed to be a simple, straightforward page description format that seeks to preserve and reproduce content without necessarily providing formatting or layout bells and whistles. In fact, XHTML-Print doesn't even support bi-direction printer communications to inquire about capabilities or requirements, or to report on status.
The markup language works with simple style sheet constructs developed for CSS 2.1 and part of the CSS3 Paged Media and CSS Print Profile draft specifications. This is intended to enable a relatively broad set of printing results without requiring detailed device-level information about the printers being used. Thus, style sheets provide an important mechanism for XHTML-Print to use in controlling page presentation for various printer categories.
Within this context XHTML-Print works with the following modules in the XHTMLMOD set (modules not mentioned do not work with XHTML-Print:
- XHTML Core Modules are always required: Structure, Text, Hypertext, and List modules are thus part of XHTML-Print by definition. Also, Image, Object, Style Sheet, Link, and Base Modules are included as well.
- The Presentation Module provides simple controls over basic font variants and rules.
- Basic XHTML Forms are supported, but device characteristics of small mobile devices suggest that designers shouldn't try to handle too much input within them (think about text messaging on a mobile phone).
- Basic XHTML Tables are supported, but can overtax small, limited devices when output (nesting tables is not supported in this module, either).
- Attributes are both limited and discretionary (that is, printers are not required to support them) so developers should tread carefully if and when they use XHTML style attributes.
In addition the W3C Character Model for the World Wide Web 1.0 [CHARMOD] provides recommended character representations in XHTML-Print. That said, designers are advised to stick to simple character sets (such as normalized UTF-8 encodings) to ensure that documents will print as quickly as target devices can handle output (more complex encodings may tax target devices or output may not be as legible).
Within its limitations (all of which are both calculated and deliberate) XHTML-Print offers simple, basic page output capabilities. Designers who seek to enable output from small, limited output devices and displays should find this a blessing.
About the author
Ed Tittel is a full-time writer and trainer whose interests include XML and development topics, along with IT Certification and information security topics. E-mail Ed with comments, questions, or suggested topics or tools for review.