W3C home > Mailing lists > Public > xml-editor@w3.org > April to June 2002

Re: Standalone document VC and WFC inconsistency

From: Karl Waclawek <karl@waclawek.net>
Date: Tue, 18 Jun 2002 10:18:34 -0400
Message-ID: <002a01c216d3$07cde600$9e539696@citkwaclaww2k>
To: "Rob Lugt" <roblugt@elcel.com>
Cc: <public-xml-testsuite@w3.org>, <xml-editor@w3.org>, <rolf@pointsman.de>

> Recent changes to the XML Conformance Tests have highlighted an
> inconsistency in the XML rec regarding standalone documents and external
> entity declarations.
> The conformance test changes have re-classified 3 test files from validity
> error to not-wf.  These files contain a standalone="yes" declaration, yet
> reference entities which are declared in the external DTD subset.
> Karl Waclawek has pointed out that this condition represents a
> well-formedness error because it falls foul of WFC: Entity Declared.
> I agree with Karl's interpretation, but the rec also makes this a validity
> error.  The second item in the bullet list in VC: Standalone Document
> Declaration states that a document should not reference an
> externally-declared entity from within a standalone document.
> I presume that the WFC should take precedence over the VC and, for clarity,
> the VC should therefore be removed.  Do you agree?

Maybe there is a slight difference.

First, a quote from the VC: Standalone Document Declaration

The standalone document declaration must have the value "no" if any external markup declarations
contain declarations of:
  a.. entities (other than amp, lt, gt, apos, quot), if references to those entities appear in the
document, or

Now a re-written version of the WFC: Entity Declared, which also takes the erratum
into account. (I rewrote it for my own understanding - so this reflects my personal
understanding of it, which could be wrong, of course). 

First, I split the problem into two questions:

1) *When* should one check if a reference matches an entity declaration
    in the right location?
This is different depending on whether the reference is in the DTD
or the document content,
  The reference is in the internal subset, and:
  a) If standalone = "yes": the reference is outside of any PE
  b) If standalone = "no" oder undefined: So far no PE has been read
     (which implies the reference is outside of any PE)
Document content:
  A) The document has no DTD
  B) The document has only an internal subset, and this subset contains no PE references
  C) standalone = "yes"

2) What should one check then?
DTD *and* document content:
  An entity declaration with matching name was read, which is in the internal subset,
  but outside of any PE (which is automatically given in case 1)-DTD-b)).
  GE references in default attribute values must come after the matching GE declaration

It seems, that in the WFC, if standalone="yes", but the reference is
inside a PE in the internal subset, then there is no requirement for
a matching entity declaration at all. I.e. it says nothing about
such references pointing to an external declaration.

I would say then that the VC: Standalone Document Declaration adds
some extra constraint and is not totally redundant.

But that is my personal interpretation.

Received on Tuesday, 18 June 2002 10:18:37 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 20:37:41 UTC