Book publishers have struggled in recent years to find ways to adopt XML-based editorial and production workflows.[1] Complexity, unfamiliarity, and uncertainty about implementation details contribute to a kind of impasse among publishers—particularly small and medium-sized firms that lack the resources to maintain innovative IT departments that might push them into 21st-century processes. While the benefits of XML-based processes are trumpeted widely[2], and the general business case for adopting and investing in XML and related technology has existed for 20 years[3], gathering the energy and resources to move into an XML-based environment has eluded many. Could it be that XML-based workflows are simply too complicated to be readily adopted by smaller publishers? And if that is so, what are the implications as we move into the digital era?

We are not quite ready to give up. At Simon Fraser University’s Master of Publishing program, we have recently prototyped an approach to XML-based editorial and production workflows that employs existing tools and relies on skills and competencies already present within most publishing firms. This is an approach that leverages standard Web tools and techniques to manage content, and uses some simple conversions for integrating this Web-based content with professional print-production tools. It is a proof- of-concept that much of the value of XML-based workflows can be realized with inexpensive and already-existing tools. At the very least, we offer something good enough to critique.

XML Production Workflows

This article is not an argument for why you should have an XML workflow. Those exist, as well as excellent arguments for why you might not want one. One of the points made by Booknet Canada's Michael Tamblyn earlier this year[4] is that XML editorial and production workflows do exist—indeed, as SGML, they have done so since the 1980s—but that they tend to be technically or operationally complex and require a considerable amount of programmer support.

O’Reilly, the world’s leading computer publisher, has been making books using SGML and XML for decades. Their famous colophons, which also provide interesting tidbits about the animals that grace their covers, usually give some detail about the toolchains employed to produce the current volume. Here are two of my favourites:

The inside layout was designed by Mary Jane Walsh. The text was prepared by Jeffrey Friedl in a hybrid markup of his own design, mixing SGML, raw troff, raw PostScript, and his own markup. A home-grown filter translated the latter to the other, lower-level markups, the result of which was processed by a locally-modified version of O’Reilly’s SGML tools (this step requiring upwards of an hour of raw processing time, and over 75 megabytes of process space, just for Chapter 7!). That result was then processed by a locally-modified version of James Clark’s gtroff, producing camera-ready PostScript for O’Reilly. (from Mastering Regular Expressions)

Alicia Cech and David Futato designed the interior layout based on a series design by Nancy Priest. The authors’ text in POD was converted by Lenny Muellner into DocBook 3.1 SGML. The print version of this book was created by translating the SGML source into a set of gtroff macros using a Perl filter developed at O’Reilly & Associates by Norman Walsh. Steve Talbott designed and wrote the underlying macro set on the basis of the GNU gtroff -ms macros; Lenny Muellner adapted them to SGML and implemented the book design. The GNU groff text formatter version 1.11 was used to generate PostScript output. Mike Sierra provided crucial help with the Chinese and Japanese Unicode characters in Chapter 15, Unicode. The text and heading fonts are ITC Garamond Light and Garamond Book. The illustrations that appear in the book were produced by Robert Romano and Rhon Porter using Macromedia FreeHand 8 and Adobe Photoshop 5. (from Programming Perl, 2nd ed.)

The systems described in these colophons are not for the faint of heart! Presumably, a technical publisher like O'Reilly has access to the technical talent to make such toolchains work for them. Big textbook publishers like Wiley and Pearson have XML toolchains that allow them to manage complex, multi-participant workflows too; they don’t typically publish the gory details on the last page, however.

Challenges: Some Ugly Truths

The challenges of building—and living with—an XML workflow are clear enough. The return on investment is a long-term proposition.

Regardless of the benefits XML may provide, the starting reality is that it represents a very different way of doing things than the one we are familiar with. The Word Processing and Desktop Publishing paradigm, based on the promise of onscreen, WYSIWYG layout, is so dominant as to be practically inescapable. It has proven really hard to get from here to there, no matter how attractive XML might be on paper.

A considerable amount of organizational effort and labour must be expended up front in order to realize the benefits. This is why XML is often referred to as an “investment”: you sink a bunch of time and money up front, and realize the benefits—greater flexibility, multiple output options, searching and indexing, and general futureproofing—later, over the long haul. It is not a short-term return proposition.

And, of course, the returns you are able to realize from your XML investment are commensurate with what you put in up front: fine-grained, semantically rich tagging is going to give you more potential for searchability and recombination than a looser, more general-purpose approach, but it sure costs more. For instance, the Text Encoding Initiative (TEI) is the grand example of pouring enormous amounts of energy into the up-front tagging, with a very open-ended set of possibilities down the line. TEI helpfully defines a level to which most of us do not have to aspire.[5]

But understanding this on a theoretical level is only part of the challenge. There are many practical issues that must be addressed. Software and labour are two of the most critical. How do you get the content into XML in the first place? Unfortunately, despite two decades of people doing SGML and XML, this remains an ugly question.

Practical Challenges

In 2009, there is still no truly likeable—let alone standard—editing and authoring software for XML. For many (myself included), the high-water mark here was Adobe’s FrameMaker, substantially developed by the late 1990s. With no substantial market for it, it is relegated today mostly to the tech writing industry, unavailable for the Mac, and just far enough afield from the kinds of tools we use today that its adoption represents a significant hurdle. And FrameMaker was the best of the breed; most of the other software in decent circulation are programmers’ tools—the sort of things that, as Michael Tamblyn pointed out, encourage editors to drink at their desks.

The labour question represents a stumbling block as well. The skill-sets and mind-sets that effective XML editors need have limited overlap with those needed by literary and more traditional production editors. The need to think of documents as machine-readable databases is not something that comes naturally to folks steeped in literary culture. In combination with the sheer time and effort that rich tagging requires, many publishers simply outsource the tagging to India, drawing a division of labour that spans oceans, to put it mildly.

Once you have XML content, then what do you do with it? How do you produce books from it? Presumably, you need to be able to produce print output as well as digital formats. But while the latter are new enough to be generally XML-friendly (e-book formats being largely XML based, for instance), there aren’t any straightforward, standard ways of moving XML content into the kind of print production environments we are used to seeing. This isn’t to say that there aren’t ways of getting print—even very high-quality print—output from XML, just that most of them involve replacing your prepress staff with Java programmers.

Why does this have to be so hard?

It’s not that XML is new, or immature, or untested. Remember that the basics have been around, and in production, since the early 1980s at least. But we have to take account of a substantial and long-running cultural disconnect between traditional editorial and production processes (the ones most of us know intimately) and the ways computing people have approached things.

Interestingly, this cultural divide looked rather different in the 1970s, when publishers were looking at how to move to digital typesetting. Back then, printers and software developers could speak the same language. But that was before the ascendancy of the Desktop Publishing paradigm, which computerized the publishing industry while at the same time isolating it culturally. Those of us who learned how to do things the Quark way or the Adobe way had little in common with people who programmed databases or document-management systems. Desktop publishing technology isolated us in a smooth, self-contained universe of toolbars, grid lines, and laser proofs.

So, now that the reasons to get with this program, XML, loom large, how can we bridge this long-standing divide?

Using the Web as a Production Platform

The answer, I think, is right in front of you. The bridge is the Web, a technology and platform that is fundamentally based on XML, and which many publishers are by now comfortably familiar with. Perhaps not entirely comfortably, but at least most publishers are already working with the Web; they already either know or have on staff people who understand it and can work with it.

The foundation of our argument is this: rather than looking at jumping to XML in its full, industrial complexity, which seems to be what the O'Reilly-backed StartWithXML initiative[6] is suggesting, publishers instead leverage existing tools and technologies—starting with the Web—as a means of getting XML workflows in place. This means making small investments and working with known tools rather than spending tens of thousands of dollars on XML software and rarefied consultants. It means re-thinking how the existing pieces of the production toolchain fit together; re-thinking the existing roles of software components already in use. It means, fundamentally, taking the Web seriously as a content platform, rather than thinking of it as something you need to get content out to, somehow. If nothing else, the Web represents an opportunity to think about editorial and production from outside the shrink-wrapped Desktop Publishing paradigm.

Is the Web made of Real XML?

At this point some predictable objections can be heard: wait a moment, the Web isn’t really made out of XML; the HTML that makes up most of the Web is at best the bastard child of SGML, and it is far too flaky/unstructured/underpowered to be taken seriously.

We counter by arguing that although HTML on the Web exists in a staggering array of different incarnations, and that the majority of it is indeed an unstructured mess, this does not undermine the general principle that basic, ubiquitous Web technologies can make a solid platform for content management, editorial process, and production workflow.

With the advent of a published XML standard in the late 1990s came the W3C’s adoption of XHTML: the realization of the Web’s native content markup as a proper XML document type. Today, its acceptance is almost ubiquitous, even while the majority of actual content out there may not be strictly conforming. The more important point is that most contemporary Web software, from browsers to authoring tools to content management systems (from blogs to enterprise systems), are capable of working with clean, valid XHTML. Or, to put the argument the other way around, clean, valid XHTML content plays absolutely seamlessly with everything else on the Web.[7]

The objection which follows, then, will be that even if we grant that XHTML is a real XML document type, that it is underpowered for “serious” content because it is almost entirely presentation (formatting) oriented; it lacks any semantic depth. In XHTML, a paragraph is a paragraph is a paragraph, as opposed to a section or an epigraph or a summary. In contrast, more “serious” XML document types like DocBook[8] or DITA-derived schemas[9] are capable of making semantic distinctions about content chunks at a fine level of granularity and with a high degree of specificity.

This may be true, but this is precisely where we should be questioning the cost-benefit relationship of XML more generally. More semantic richness is of course a good thing—much like more apple pie is a good thing—but in order to achieve it you must make that much more of an investment up front. XHTML, though simple, is a mature and fairly comprehensive system for representing the basic building blocks of prose. So there is an argument for recalling the 80:20 rule here. If XHTML can provide 80% of the value with just 20% of the investment, then what exactly is the business case for spending the other 80% to achieve that last 20% of value? We suspect the ratio is actually quite a bit steeper than 80:20 for most publishers.

Furthermore, just to get technical for a moment, XHTML is extensible in a fairly straightforward way, through the common “class” attribute on each element. Web developers have long leveraged this kind of extensibility in the elaboration of “microformats” for semantic-web applications.[10] There is no reason why publishers shouldn’t think to use XHTML’s simple extensibility in a similar way for their own ends.

Finally, the best reason of all to take XHTML seriously is its unparalleled ubiquity. My quick glance at Wikipedia shows more than 180 different XML markup languages,[11] about 175 of which most of us have never heard of—and neither has the software we use daily. XHTML, on the other hand, is supported by a vast array of quotidian software, starting with the ubiquitous Web browser. For this very reason, XHTML is in fact employed as a component part of several more specialized document types (ONIX and ePub among them). Why re-invent a general-purpose prose representation when XHTML already does the job?

It is worth pausing for a moment to consider the role of XHTML in the ePub standard for ebook content. An ePub file is, anatomically, a simply disguised zip archive. Inside the zip archive are a few standard component parts: there are specialized files that declare metadata about the book, and about the format of the book. And then there is the book’s content, represented in XHTML. An ePub book is a Web page in a wrapper. This simple fact needs to be recognized, if only for the sake of demystification; this is not rocket science.

To sum up the general argument: the Web as it already exists presents incredible value to publishers, as a platform for doing XML content management with existing (and often free) tools, and without having to go blindly into the unknown. At this point, we can offer a few design guidelines:

  • prefer existing and/or ubiquitous tools over specialized ones wherever possible;
  • prefer free software over proprietary systems where possible;
  • prefer simple tools controlled and coordinated by human beings over fully automated (and therefore complex) systems;
  • play to our strengths: use Web software for storing and managing content, use layout software for layout, and keep editors and production people in charge of their own domains.

Putting the Pieces Together: A Prototype

At the SFU Master of Publishing Program, we have been chipping away at this general line of thinking for a few years. Over that time, Web content management systems have been getting more and more sophisticated, all the while getting more streamlined and easier to use. (NB: if you have a blog, you have a Web content management system.) The Web is beginning to be recognized as a writing and editing environment used by millions of people. And the ways in which content is represented, stored, and exchanged online have become increasingly robust and standardized.

The missing piece of the puzzle has been print production: how can we move content from its malleable, fluid form on line into the kind of high-quality print production environments we’ve come to expect after two decades of Desktop Publishing? Anyone who has tried to print Web content knows that the existing methods leave much to be desired (hyphenation and justification, for starters). In the absence of decent tools for this, most publishers quite naturally think of producing the print content first, and then think about how to get material onto the Web for various purposes. So we tend to export from Word, or from Adobe, as something of an afterthought.

While this sort of works, it isn’t elegant, and it completely ignores the considerable advantages of Web-based content management. Content managed online is stored in one central location, accessible simultaneously to everyone in your firm, available anywhere you have an Internet connection, and usually exists in a much more fluid format than Word files. If only we could manage the editorial flow online, and then go to print formats at the end, instead of the other way around. At SFU, we made several attempts to make this work by way of the supposed “XML import” capabilities of various Desktop Publishing tools, without much success.[12]

In the winter of 2009, Adobe solved this part of the problem for us with the introduction of its Creative Suite 4. What CS4 offers is the option of a complete XML representation of an InDesign document: what Adobe calls IDML (InDesign Markup Language).[13] It is available as both an export and an import in the CS4 version of InDesign. This means that content can be worked on in InDesign and/or in the XML-aware tools of your choice and moved seamlessly back and forth.[14] The IDML file format is—like ePub—a simply disguised zip archive that, when unpacked, reveals a cluster of XML files that represent all the different facets of an InDesign document: layout spreads, master pages, defined styles, colours, and of course, the content. IDML is a well thought-out XML standard that achieves two very different goals simultaneously: it preserves all of the information that InDesign needs to do what it does; and it is broken up in a way that makes it possible for mere mortals (or at least our Master of Publishing students) to work with it.

What this represented to us in concrete terms was the ability to take Web-based content and move it into InDesign in a straightforward way, thus bridging Web and print production environments using existing tools and skillsets, with a little added help from free software. We would take clean XHTML content, transform it to IDML-marked content, and merge that with nicely designed templates in InDesign. The result is an almost push-button publication workflow, which results in a nice, familiar InDesign document that fits straight into the way publishers actually do production.

The Simon Fraser’s Toggle Systems[15] project group (the people listed at the beginning of this paper) worked to demonstrate a proof of concept, using a real book as fodder: the CCSP’s anthology of our graduate student research, Book Publishing 1. [16] This book was produced in the normal way back in 2005, laid out using InDesign CS2. The book designer, Carol Aitken (another of our alumni), did us the favour of consistently applying a stylesheet throughout, so the formatting of the original was nice and consistent.

Tracing the steps

To begin with, we worked backwards, moving the book content back to clean XHTML. The simplest method for this conversion—and if you want to create Web content, this is an excellent route—was to use Adobe’s “Export to Digital Editions” option, which creates an ePub file. Recall that ePub is just XHTML in a wrapper, so within the ePub file was a relatively clean XHTML document. It was somewhat cleaner (that is, the XHTML tagging was simpler and less cluttered) than InDesign’s other Web-oriented exports, possibly because Digital Editions is a well understood target, compared with somebody’s website.

In order to achieve our target of clean XHTML, we needed to do some editing; the XHTML produced by InDesign’s “Digital Editions” export was presentation-oriented. For instance, bulleted list items were tagged as paragraphs, with a class attribute identifying them as list items. Using the search-and-replace function, we converted such structures to proper XHTML list and list-item elements. Our guiding principle was to make the XHTML as straightforward as possible, not dependent on any particular software to interpret it.

We broke the book’s content into individual chapter files; each chapter could then carry its own basic metadata, and the pages conveniently fit our Web content management system (which is actually just a wiki). We assembled a dynamically generated table of contents for the 12 chapters, and created a cover page. Essentially, the book was entirely Web-based at this point.

When the book chapters are viewed online, they are formatted via a CSS2 stylesheet that defines a main column for content as well as dedicating screen real estate for navigational elements. We then created a second template to render the content for exporting; this was essentially a bare-bones version of the book with no navigation and minimal styling. Pages (or even the entire book) can be exported (via the “Save As...” function in a Web browser) for use in either print production or ebook conversion. At this point, we required no skills beyond those of any decent Web designer.

Integrating with CS4 for Print

Adobe’s IDML language defines elements specific to InDesign; there is nothing in the language that looks remotely like XHTML. So a mechanical transformation step is needed to convert the XHTML content into something InDesign can use. This is not as hard as it might seem. Both XHTML and IDML are composed of straightforward, well-documented structures, and so transformation from one to the other is, as they say, “trivial.” We chose to use XSLT (Extensible Stylesheet Language Transforms) to do the work. XSLT is part of the overall XML specification, and thus is very well supported in a wide variety of tools. Our prototype used a scripting engine called xsltproc, a nearly ubiquitous piece of software that we found already installed as part of Mac OS X (contemporary Linux distributions also have this as a standard tool), though any XSLT processor would work.

Rather than create an entire IDML document, which specifies every facet of an InDesign file (spreads, masters, styles, etc.), we opted for a somewhat simpler route. InCopy, Adobe’s distributed editing extension for InDesign, allows a number of editors to feed stories into a single InDesign layout simultaneously (think of a newspaper production workflow, with different editors working on copy right up to the press deadline).[17] Prior to the release of CS4, working this way would require purchasing separate licences for the InCopy client software. But CS4 allows the creation of InCopy files as XML—in fact, InCopy CS4’s native file format is a subset of IDML called ICML, including only a story’s basic content and stylesheet components. In other words, we don’t need to buy InCopy, because we just replaced it with the Web. Our wiki is now plugged directly into our InDesign layout. It even automatically updates the InDesign document when the content changes. Credit is due at this point to Adobe: this integration is possible because of the open file format in the Creative Suite 4.

We wrote an XSLT transformation script[18] that converted the XHTML content from the Web into an InCopy ICML file. The script itself is less than 500 lines long, and was written and debugged over a period of about a week by amateurs (again, the people named at the start of this article). The script runs in a couple of seconds, and the resulting .icml file can then be “placed” directly into an InDesign template. The ICML file references an InDesign stylesheet, so the template file can be set up with a house-styled layout, master pages, and stylesheet definitions for paragraphs and character ranges.

The result is very simple and easy to use. Our demonstration requires that a production editor run the XSLT transformation script manually, but there is no reason why this couldn’t be built directly into the Web content management system so that exporting the content to print ran the transformation automatically. The resulting file would then be “placed” in InDesign and proofed.

Our project aimed to be a proof of concept, but is robust enough to handle embedded images and reasonably complex tables; in short, we were able to essentially duplicate the production of the entire Book Publishing 1 volume.

It should be noted that the Book Publishing 1 proof-of-concept was artificially complex; we began with a book laid out in InDesign and ended up with a look-alike book laid out in InDesign. But next time—for instance, when we publish Book Publishing 2—we can begin the process with the content on the Web, and keep it there throughout the editorial process. The book’s content could potentially be written and edited entirely online, as Web content, and then automatically poured into an InDesign template at proof time. “Just in time,” as they say.

This represents an entirely new way of thinking of book production. With a Web-first orientation, it makes little sense to think of the book as “in print” or “out of print”—the book is simply available, in the first place online; in the second place in derivative digital formats; and third, but really not much more difficult, in print-ready format, via the usual InDesign CS print production system publishers are already familiar with.

Creating Ebook Files

Creating electronic versions from XHTML source is vastly simpler than trying to generate these out of the existing print process. The ePub version is extremely easy to generate; so is online marketing copy or excerpts for the Web, since the content begins life Web-native.

Since an ePub file is essentially XHTML content in a special wrapper, all that is required is that we properly “wrap” our XHTML content. Ideally, the content in an ePub file is broken into chapters (as ours was) and a table of contents file is generated in order to allow easy navigation within an ebook reader. We used Julian Smart’s free tool eCub[19] to simply and automatically generate the ePub wrapper and the table of contents. The only custom development we did was to create a CSS stylesheet for the ebook so that headings and paragraph indents looked the way we wanted. Starting with XHTML content, creating ePub is almost too easy.

Possibilities and Implications

Interestingly, this production workflow is essentially the same as the one developed at Coach House Press in the late 1980s by Kate Hamilton and Nelson Adams.[20] Then, content was developed in SGML (the Coach House Press had early involvement in SGML editing software); a set of custom transformation scripts converted the content into a format usable directly by the QuarkXPress of the day. Hamilton and Adams remarked that their goal was to keep as much of the editorial process in the SGML format as possible, rather than making changes in the resulting Quark documents; this ensured that the source files, rather than the layout files, were the final, archival versions.

The basic components of the process are the same, but there is one profound difference: today, we are able to put the process together using nothing but standard, relatively ubiquitous Web tools: the Web itself as an editing and content management environment, standard Web scripting tools for the conversion process, and the well-documented IDML file format to integrate the layout tool. Hamilton and Adams were out on a limb, in comparison, building it entirely themselves, and having little or no support from the outside world. Still, they were able to make this work then; how much simpler and easier it is to accomplish today!

More generally, and more importantly, what this project means is that some large portion of what has traditionally been possible only with large investments in specialized technology and training is possible today using free and familiar tools and techniques. Our project demonstrates that Web technologies are indeed good enough to use in an XML-oriented workflow; more specialized and expensive options are not necessarily required. For massive-scale enterprise publishing, this approach may not offer enough flexibility, and the challenge of adding and extracting extra semantic richness may prove more trouble than it's worth. But for smaller firms who are looking at the straightforward benefits of XML-based processes—single source publishing, online content and workflow management, open and accessible archive formats, greater online discoverability—here is a way forward.

Our use of Web-based tools means that the skillsets required to make this work are probably already extant for many publishers—certainly if they have made investments in developing their Web presence to any degree. The system described here uses those same tools, but in a different orientation. Rather than a public-facing website, our system relies on the Web as a content management platform—of course a public face could easily be added. The final piece of our puzzle, the ability to integrate print production, was made possible by Adobe's release of InDesign with an open XML file format. Since the Web's XHTML is also XML, is can be easily and confidently transformed to the InDesign format.

Such a workflow—beginning with the Web and exporting to print—is surely more in line with the way we will do business in the 21st century, where the Web is the default platform for reaching audiences, developing content, and putting the pieces together. It is time, we suggest, for publishers to re-orient their operations and start with the Web.


    1. Michael Tamblyn, “Six Projects That Could Change Publishing for the Better,” Booknet Canada Tech Forum. March 19, 2009. See to text

    2. See to text

    3. Charles Goldfarb. 1990 The SGML Handbook. Oxford: Clarendon Press.return to text

    4. Tamblyn, "Six Projects"return to text

    5. Text Encoding Initiative. See An example document is at or to text

    6. See to text

    7. XHTML is a “reformulation of HTML 4 in XML 1.0.” See to text

    8. DocBook is an XML schema and document type for technical manuals, though it is often used for a much wider variety of publications. See to text

    9. DITA is the “Darwin Information Typing Architecture, ... an XML-based, end-to-end architecture for authoring, producing, and delivering technical information.” See to text

    10. Microformats “are a set of simple, open data formats built upon existing and widely adopted standards.” Microformats are based on existing Web technologies. See to text

    11. Wikipedia’s “List of Markup Languages” page: to text

    12. In 2006, the Master of Publishing project group “Beehive” prototyped a system for semi-automatically producing publishers’ catalogues directly from ONIX metadata. The system transformed ONIX to a much simpler data set, then used the rudimentary XML import in Adobe InDesign CS2 to flow the content into templated catalogue pages. See In 2007, the “FunnelWeb” project group prototyped a system to import XHTML Web content into InDesign CS2. Both projects were limited by the constraints imposed by InDesign’s XML import feature; the catalogue production idea seems to have been a better fit with what Adobe had in mind here. See to text

    13. For a gentle introduction to CS4’s IDML language, see “Tim Cole’s InDesign BackChannel.” October 14, 2008. See to text

    14. A more open-ended discussion of the programmability of the CS4 suite is provided by Adobe’s Gary Cosimini in a presentation titled “Dynamic Publishing Solutions” from the Booknet Canada Tech Forum. March 2009. See to text

    15. The “Toggle Systems” project culminated April 3, 2009. Project documentation can be found at to text

    16. Rowland Lorimer, John W. Maxwell, and Gillian Shoichet, eds. 2005. Book Publishing 1. Vancouver: CCSP Press. See and, for the XHTML versions, to text

    17. For more information about Adobe’s InCopy software, see to text

    18. The XHTML-to-IDML script can be found at It will run in any standard xslt processor. Note that the script has not been extensively tested with content from different sources. Nevertheless, it is a working prototype that can serve as a first step toward developing production-ready systems.return to text

    19. Julian Smart’s eCub software is available here: to text

    20. The Hamilton & Adams workflow at Coach House Press is described in Liora Alschuler. 1995. ABCD...SGML. A Users’ Guide to Structured Information. Boston: International Thomson Computer Press.return to text