I took
an initial quick read, and it looks pretty good to me. One nitpicky point: you
frequently say things like "XML is a document", where you should say "XML is a
document syntax" (but it was obvious in context what was
meant).
Two
points I would make:
Pro: XML is easily internationalized: This is
dangerous. I interact with developers all of the time who think XML handles all
of this automatically, but naively write XML to (or read XML from) a stream
using a platform default character encoding. XML is based on Unicode, but
programmers work with XML using programming languages, often without
understanding how to properly deal with character encoding issues in their
programming language. Developers need to understand that if they handle IO
themselves in code, they need to take care to handle character encoding
properly.
Con: XML is a space, processor, and bandwidth
hog: You mention that "there are an emerging set of technologies
that compress the XML into a binary format for transmission across the wire".
The HTTP spec already supports transport-level compression using standard
compression formats (such as gzip). Few people implement it, though. Maybe you
can help enlighten them. :-) In my experience, I've routinely seen compression
rates of about 85-90% using gzip on XML. In some cases, I've seen compression as
high as 95%. I don't see the need to reinvent the wheel on this one, unless they
are looking at other transport protocols that don't support
compression.
|