Re: A17: keep or drop entities?

My feelings on this have been going back and forth like a ping-pong ball.

If we take the actual constellation of *usage* of SDATA & CDATA internal entities, I don't see why we need them in XML.  Charles says that the way they are used is not exactly congruent with the way they were designed, but nonetheless I don't see that the value they add makes up for the extra complexity in specification.

External NDATA entities, it seems, cost very little.  James points out correctly that what SGML does with NOTATIONS, the web does with mime-types - still, one of the grievous shortcomings of the web is that the browser can't tell what kind of an object it is until it follows the link.  Having a typed external reference seems like a plus, and almost no extra work for the parser.  Obviously, HTML is not going to abandon <IMG SRC="literal-path-to-image">, but that's an application semantic, not an XML-level issue.  Or, you could say that "the problem that NDATA is trying to solve is really one of linkage semantics, thus let's defer it".

Internal text entities would be *awfully* hard to live without.  I think these would be a big selling point for people who are hitting some of the HTML walls, in particular for big complicated forms, table markup, and the like.  They complicate the parser - but not nearly as much as external text entities.  And they're not really outside the scope of a perl script [do a 2-script pipeline, one of which stupidly switches in local entities, the second perls away in blissful ignorance].

External text entities are much more expensive to parser writers, but gosh, they're useful.  It's really good to have a facility whereby you can tell management - "a compliant XML processor will never display this paragraph without this embedded cover-management's-ass warning that's replicated 389 times throughout the document".  You can't do that with cat. But if we try to support external text entities in a general way, we can kiss the perl-script implementations goodbye.

<clutch><straw n=1>could we distinguish between an XML processor and an XML  external entity manager?</straw>
<straw n=2>could we distinguish between client-side and server-side XML?</straw>
<straw n=3>could we think of some middle road along the lines of transclude-but-not-necessarily-validate?</straw>

I'm going to have trouble voting on this.  And it's *way* more important than the syntax of markup declarations.

Cheers, Tim Bray
tbray@textuality.com http://www.textuality.com/ +1-604-488-1167