When we invented the idea of the "XML Processor", it was essentially a theoretical construct; some aspects of the language are easier to explain in terms of the actions of a program than with purely syntactic techniques. In particular, it's hard to see how to define error-handling behavior without having a system to describe the behavior of.
By the time the first draft of the spec was out, it was starting to look like an XML processor might be useful in real-life, not just in theory. So I sat down and wrote one, and so did lots of other people, and it has turned out that the use of a real XML processor is essential for the serious XML developer.
If you use a conforming XML processor, the things you won't have to worry about include:
Another nice thing about XML processors is that they are free, and pretty easy to use, so there's really no good reason not to use one.
Back-link to specCopyright © 1998, Tim Bray. All rights reserved.