MURATA Makoto wrote:
Chris Lilley wrote:
MURATA Makoto wrote:
In order to allow such an XML document, we have to use text/xml or
application/xml
for external parsed entities.
No, that doesn't follow. You are driving a non-commutative relationship
backwards. Just because a well formed XML document can be used as an
external parsed entity (and can be labelled as text/xml or
application/xml), it does not follow that a non-well-formed thing can
also be so labelled. It should be labelled something else, like
application/xml-epe or whatever.
True. The fact that some XML documents are also external parsed entities
only implies that we cannot always use application/xml-epe for external
parsed entities.
Yes, agreed.
We have two choices. One is to use text/xml or application/xml even for
external parsed entities. The other is to use application/xml-epe
only for those external parsed entities which are not XML documents. I think
that the latter is a complicated rule.
The former also has complications, sinc eit means that application/xml
is "sometimes but nnot allways, well-formed xml". Since the terms valid
xml and well-formed xml are defined, but there is no defined term for
"stuf that is not wellformed", this is a problem. I think that this is
significant complication.
Wheras for the latter option, it is simple. Is the epe itself a
well-formed document (this is easy to check mechanically). if yes, label
it as applicatio/xml. If no,label it as application/xml-epe (or whatever
term is chosen). This seems a simple, readily understod, and
machine-processable rule.
However, since few external parsed
entities are also XML documents, one could argue that the latter is more
realistic.
"few" is not sufficient for a algorithm.
However, I have assumed that this issue is not very important since
we should anyway avoid external parsed entities at all in the Internet.
(Out of curioisity - why? In the context of HTTp/1.1 keep alive - its
not very expensive to fetch an epe once. If the epe is shared between
two or more documents, ther eis a net win even with HTTP/1.0)
If external parsed entities are used, different parses emit different
results. (See "5. Conformance" of the XML recommendation
http://www.w3.org/TR/REC-xml#sec-conformance)
For maximum reliability in interoperating between different XML processors,
applications which use non-validating processors should not rely on any
behaviors not required of such processors.
Well, there is a move to define a category of "full infoset" parsers -
non validating, but which fetch epe's and external DTD subsets - which
deals with this problem.
Regardless, it is legal now to use epes, and thus, a rule needs tobe
established for labellingthem; and the rule needs to cover all legal
cases, not just some frequently occurring ones.
--
Chris