Microsoft's responce to article

David Brownell david-b at
Fri Jan 14 18:34:30 GMT 2000

"Simon St.Laurent" wrote:
> I'd love to see another round of comment on the comments, however.  It
> seems like there are enough people around with a deep understanding of the
> conformance tests (i.e., the people who built them) to report on the four
> 'hotly contested differences' listed.

I don't know about "hotly".  The first two objections have meat
to them, the second two don't (IMHO):

* Is <![CDATA[ ]> the same as ignorable whitespace? We say no.

In this area, as in some others, the XML specification errata need to
get updated.  This is test that I called attention to in the review.
(It came from some XML-Dev discussions, where Microsoft was silent.)

In the absence of W3C errata ruling out this handling, I can't see a
compelling reason for the NIST/OASIS suite to change.  (Tim, I'm sorry
to say that your posted opinion doesn't count as much with me as W3C
errata would ... particularly since I can trace paths through the XML
spec justifying the contrary opinion!  ;-)

*  Is <!ENTITY lt "<"> valid ? We say no because it can't be
   legally expanded.

I find it odd to claim that this might be expanded, since "lt" must
be built in.  Under what circumstances might it be expanded?

Curiously, I think that refers to line 21 of the XML source for
the XML specification itself.  It's clearly incorrect, though
the question is "well formed" rather than "valid".  It got into
the NIST/OASIS test suite via the Japanese translation.

In that source, there are three declarations of note:  the one
that takes effect (built in to the XML processor), the bogus one
in the DTD internal subset, and a correct redeclaration in the
external subset.

Still, the document does violate the word of the specification,
and that's not a good thing.  Even if the document in question is
the XML specification itself!  (And I just noticed now that this
was the root cause of those failures; I think I misdiagnosed them
in the article, seeing the external subset declaration not the
internal subset one.)

*  Is <![ %e; <!ATTLIST doc a1 CDATA "v1"> ]]> valid? We say no
   because %e; should not contain the opening square bracket, '[',
   which belongs to the conditional section syntax.

And I repeat my original challenge to Chris Lovett to point me
to a place in the XML spec that defines such a constraint.  It's
neither a grammar rule, nor a validity constraint, nor a WFC, nor
even a specification erratum ... it seems like a "Microsoft XML
extension" to me.

(Though within up to six months after the XML spec came out, I
might have supported changing that spec to call this an error.
After two years, that would count as an "incompatible change".) 

*  Do you always pad parameter entities with whitespace or only
  when they are not inside literals? We say yes.

As Simon said, "yes to what?"  :-)

Presumably, "yes to breaking the spec the way MSXML.DLL does".
The spec is quite clear about PE expansions within literals,
and MSXML doesn't follow it (4.4.5).

- Dave

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at
Archived as: or CD-ROM/ISBN 981-02-3594-1
Please note: New list subscriptions now closed in preparation for transfer to OASIS.

More information about the Xml-dev mailing list