Lists Home |
Date Index |
So, there's a proposal for XML "1.1". Why is it 1.1?
Back years ago, I was given a rule of thumb for version numbers on
unix-alike machines, typically for open-source software. It has three
parts: major version, minor version, patch.
patch: for releases that fix bugs, without adding features or changing
anything currently in use (except stuff that's broken because of the
bug, or that works around the bug in a way that the patch breaks).
minor: for addition of features that do not change the semantics of
major: for changes that break existing code.
By this metric, then, we've already had XML 1.0.1 (XML 1.0 +
Namespaces), and XML 1.0.2 (XML 1.0 second edition + Namespaces). Or
perhaps + Namespaces should be regarded as 1.1.
Applied to XML, any change that adds to the set of well-formed
documents is probably a feature addition. Any change that makes
previously well-formed documents ill-formed is breaking existing code,
so it's a major version. The Blueberry proposal, and alternates
suggested here, then, both seem to represent XML 2.0. XML 1.0
well-formed documents may not be well-formed for Blueberry.
I think that's unacceptable, personally. Not that my opinion ought to
carry much weight. But it seems to me that the time is not yet for
2.0 (and when 2.0 is undertaken, then it ought to roll in at least
Namespaces and possibly Infoset, and roll DTD out into a separate
If the goal is to add functionality with minimal impact, such that it
can justifiably be called XML 1.1, then all XML 1.0 well-formed
documents must also be XML 1.1 well-formed. 1.1 must define a true
superset of 1.0.
If it's done that way, too, then the folks that *need* the
functionality of 1.1 can adopt, while other folks carry on with 1.0
parsers and processors (which 1.1 parsers and processors will be able
to read). That allows gradual adoption: first the folks who need the
languages or capabilities, then the folks that need to interoperate
with those folks, then the folks interoperating with the first set of
If "1.1" is actually 2.0, a breaking change, then W3C is likely to
splinter its constituency, just at the moment of greatest adoption of
XML. It makes it dramatically harder for the folks who want to
interoperate, who have to have two sets of tools, because the two
dialects aren't interoperable. It also makes it less likely that the
folks who are satisfied with XML 1.0 semantics will ever upgrade, since
they've got something meeting their needs, and have to pay the cost of
changing newly ill-formed documents if they switch to 1.1.
I do think that XML is going to have to solve the problem of supporting
additional languages and scripts, 'cause the original solution wasn't
robust and can't extend without redefinition.
The problem of newline definition is trickier, and it's possible that
adding *that* feature is such a fundamental change that a version
proposing it ought to be labelled 2.0. On the other hand, claiming
that current line-end semantics allow any text editor to work is
demonstrably false (if you don't believe me, I'll send you files
created on a Mac, Linux, and Windows ... open a Mac file on Linux, and
it's all one line, with ^M where the line-ends should be, while a
Windows file has the line-end plus ^M; open a Linux or Mac file on
Windows, in a simple-minded text editor, and the result is equally
unpleasant; Mac text editors generally handle the situation most
gracefully, but may also show random trash, depending on the editor).
So adding another "common conversion utility" (NEL->whatever platform
semantics you happen to be using) doesn't seem that heavy a burden (and
requires not much more than a Unicode-enabled sed script or perl
But I wonder if W3C uses the same rule of thumb, or if the adoption of
"1.1" as a label is merely supposed to indicate "changes coming!"
without offering a useful metric of the extent of the changes. I think
that if "1.1" makes 1.0 well-formed documents ill-formed, that this
will be a disaster for the W3C and for the XML community.
Amelia A. Lewis email@example.com firstname.lastname@example.org
"Oh, fuck! You did it just like I told you to!" (The manager's lament)