Even more comments on XML 1.0

0) Does E26 in the second errata list overshadow E18 in that list?

1) E10, an error or fatal error?

In E10 in the second errata list, 

	It is an error if an attribute refers to an entity when there 
	is a declaration for that entity which the processor has not
	read. This can happen only when a non-validating processor is
	being used.

Why it this an error rather than a *fatal* error?  In other words, why
do you allow processors to do anything?

2) 10646/2

Now that ISO/IEC 10646-2:2001 has been published, XML 1.0 should
reference to it.

3) Attribute value normalization.

In 3.3.3, we have:

	"This contrasts with the
	case where the unnormalized value contains a white space
	character (not a reference), which is replaced with a space
	character (#x20) in the normalized value..."

I think that this is misleading.  People will think that EACH
whitespace character is replaced with a SINGLE space character.
However, (1) CR + LF in the input becomes a single SP, and (2) LF + SP
+ LF in non-CDATA values lalso becomes a single SP.

A similar observation applies to the rest of this paragraph.  It might
be a good idea to simply omit this paragraph.

4) The XML source of the recommendation

Should 

	<termref def="NT-Char">Char</termref>

and 

	<termref def="NT-Nmtokens">Nmtokens</termref> 

in the XML source of the XML recommendation read

	<nt def="NT-Char">Char</nt>

and 
	<nt def="NT-Nmtokens">Nmtokens</nt>

?

5) Proper Conditional Section/PE Nesting

I think that this should be a well-formedness contraint rather than 
a validity one.  

Consider a document as below

<!DOCTYPE test SYSTEM "test.dtd">
<test/>

where test.dtd is:

<!ELEMENT test EMPTY>
<!ENTITY % CondSectBegin "&lt;![IGNORE[">
<!ENTITY % CondSectEnd "]]&gt;">
%CondSectBegin;
%CondSectEnd;

Since "Proper Conditional Section/PE Nesting" is a validity
constraint, the above document is well-formed.  However, consider a
non-validating XML processor which examines external DTD subsets and
parameter entities.  I think that the next-to-last para of 3.4 makes
such an XML processor fail.

     The contents of an ignored conditional section are parsed by
     ignoring all characters after the "[" following the keyword,
     except conditional section starts "<![" and ends "]]>", until the
     matching conditional section end is found. Parameter entity
     references are not recognized in this process.

If we make this contraint a well-formedness constraint, validating
processors will not be affected.  They anyway examine this constraint,
report an error, and (typically) halt.  Those non-validating
processors which does NOT read external DTD subsets will not be
affected either.  They will never encounter CDATA sections.  Only
those non-validating processors which do read external DTD subsets
will be affected.  They will be required to examine this constraint 
and halt (properly).


Cheers,

Makoto

Received on Monday, 28 January 2002 22:48:18 UTC