Re: Non-Validating XML Parsers: Requirements

John Cowan (cowan@locke.ccil.org)
Tue, 04 Aug 1998 14:33:13 -0400


Chris Hubick wrote:

> I thought this document was well formed, I read "PEs in Internal
> Subset" to mean that you can't have stuff like:
>
> <!ELEMENT dictionary-body (%div.mix; | %dict.mix;)*>
>
> but you can have:
>
> <!DOCTYPE test [
> <!ENTITY % xx '<!--example-->'>
> %xx;
> ]>
>
> but looking at the EntityValue production:
>
> [9] EntityValue ::= '"' ([^%&"] | PEReference | Reference)* '"'
> | "'" ([^%&'] | PEReference | Reference)* "'"
>
> It allows a PEReference in an entity value, and thus I thought it was well
> formed.

Good point. I think there is a genuine conflict here. But I read
clause 4.5 (allowing PE references in entity values) in conjunction
with the WF constraint "PEs in Internal Subset", and I believe
that internal entity declarations within the internal subset may
not contain PEs in the entity value.

Can we get a more authoritative or more knowledgeable commentator?

> [T]he supplied grammer was for the internal subset, and knew I didn't have
> to worry about the external in the first round because I didn't want to
> validate.

The supplied DTD grammar is actually for either subset *after* PE
references have been expanded and conditional sections removed
appropriately.

-- 
John Cowan	http://www.ccil.org/~cowan		cowan@ccil.org
	You tollerday donsk?  N.  You tolkatiff scowegian?  Nn.
	You spigotty anglease?  Nnn.  You phonio saxo?  Nnnn.
		Clear all so!  'Tis a Jute.... (Finnegans Wake 16.5)