Re: [xml-dev] Error in XHTML Modularisation Recommendation? (was: RE: [xml-dev] XHTML modularisation causes strange error with MSXML)

From: "MAISONNY Benoit" <Benoit.MAISONNY@eurocontrol.int>

> So: that post explains the situation for the entity "lt", which seems to be
> bogus indeed in the XHTML Modularisation Specification (I would like to know
> the HTML gurus' opinion on this one). My (very similar) problem was in fact
> with the "amp" entity, but of course the lt one popped up right after.

> Solution: I simply redeclared lt and amp in my "driver" file like this:
> <!ENTITY lt "&#38;#60;">
> <!ENTITY amp "&#38;#38;">
> That was enough for MSXML to accept my modularised DTD.

Those definitions are the ones recommended  in the XML spec.  

"If the entities gt, apos, or quot are declared, they must be declared as internal entities whose replacement text is the single character being escaped (or a character reference to that character; the double escaping here is unnecessary but harmless)."

> I did further tests with the "bogus" DTD and the other parsers. I think it
> can be interesting to report that here. I simply added "&lt;" somewhere in
> my sample XML instance and tried to validate it.

The XML spec in s .4.6 says
"All XML processors must recognize these entities whether they are declared or not. "
about lt, gt, amp, apos, and quot.  

So I believe it is an error for a parser to complain that there is no definition.

Cheers
Rick Jelliffe

Received on Saturday, 29 June 2002 08:06:33 UTC