Re: Prod. [68], VC and WFC: Entity declared

The XML Core WG considered your comments at its recent face-to-face
meeting.

> 1) Prod. [32] VC: Standalone Document Declaration implies that it is a
> VC if standalone="yes" and entity references (other than to amp, lt,
> qt, apos, quot) appear in the document which are defined in the
> external DTD subset, but prod. [68] WFC: Entity Declared implies that
> it is a WFC instead.

The result of this is that such a document has both a validity error
and a well-formedness error.  The fact that it is a validity error
doesn't "cancel out" the well-formedness error.  This is not ideal but
we don't propose to make any changes.

> 2) Prod. [68] VC: Entity Declared starts: "In a document with an
> external subset or external parameter entities ..." The term "external
> parameter entities" is ambiguous, because it can either refer to PE
> references or PE declarations.  Shouldn't it read: "... or references
> to external parameter entities ..."?

You are right that this is not clear and we will change it.  In
addition, we should change it to "references to parameter entities",
because even internal PEs need not be processed by minimal processors.

> 3) The second paragraph of the Prod. [68] WFC: Entity Declared says:
> 
> "Note that non-validating processors are not obligated to read and
> process entity declarations occuring in parameter entities or in the
> external subset; for such documents, the rule that an entity must be
> declared is a well-formedness constraint only if standalone='yes'.
> 
> Does this mean that if standalone="no", a missing declaration is
> always a VC or only if a non-validating processor is used?  If it is
> always a VC the start of the VC: Entity Declared can be changed to "In
> a document with "standalone='no'", the Name ...".  If it depends on
> the type of the processor used, for clearity the words "for such
> documents" should in my opinion be replaced by "when a non-validating
> processor is used on such documents".

What kind of error it is does not depend on the processor used.  The
idea behind the distinction is that in cases where a minimal processor
can't be sure whether a declaration is missing (because it doesn't
read the external subset), then the error is a validity error (and
therefore a minimal processor doesn't have to report it).  

We decided not to make any changes to clarify this because we think
that the whole description of this area needs to be rewritten.  We are
not prepared to to that at present, and we don't want to risk
introducing new ambiguities by making isolated changes to the text.
(I hope I am conveying the view of the Working Group accurately!)

-- Richard

Received on Wednesday, 15 March 2006 15:37:32 UTC