Be liberal in what you accept, and conservative in what you send.

Postel’s Law (aka “Robustness Principle”), as phrased in IETF RFC 1122.

Once a fatal error is detected, however, the processor MUST NOT continue normal processing (i.e., it MUST NOT continue to pass character data and information about the document’s logical structure to the application in the normal way).

XML Recommendation, World Wide Web Consortium (W3C)

The first is a respected axiom of programming and messaging design. Web browsers have always adhered to this principle. While the tolerance of Web browsers has infuriated HTML purists and frustrated Web developers, that same tolerance has been directly responsible for the astonishing popularity of the World Wide Web.

The second is an intentional design decision by the W3C committee that created XML back in 1998. Known colloquially as “draconian error handling,” an application that parses XML (including, for example, a Web browser that validates XHTML markup), is required to cease processing when encountering an error condition in the XML markup. Abort. Full stop. Don’t even try to display the broken Web page.

If Tim Berners-Lee had specified the draconian error handling of XML when he first created the HTML language, the World Wide Web would not exist as we know it today. You would be aware of it, you would probably know people who use it; you would perhaps likely use it yourself. But it would not be the global resource with billions of pages of content, globally accessible on a variety of devices, and forming a major component of our daily lives.

The W3C has acknowledged that XML may not be appropriate as a distribution format. The W3C has ceased the activities of the XHTML Working Group, and has focused its efforts on HTML5.

Does this mean anything more generally for XML? I hope so. I believe there has become a general awareness in the XML community that draconian error handling may not be appropriate in many circumstances. XML processing applications, by definition, ignore the staid “robustness principle.” And it shows. XML processing applications with which I’ve worked are anything but robust. Quite brittle, in fact. And this is an ongoing problem for any organization that attempts to deploy XML-based publishing.