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

From: Rick Jelliffe [mailto:ricko@allette.com.au]
> 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.  

Rick is right. Here is the link that he quotes below:
http://www.w3.org/TR/2000/REC-xml-20001006#sec-predefined-ent

So it is clear what XML 1.0 says. I understand that:
<!ENTITY lt "&#60;"> is correct (single escaping)
<!ENTITY lt "&#38;#60;"> is correct (double escaping)

XHTML 1.0 defines these "special entities" correctly, as per XML 1.0.
But XHTML Modularisation modifies them:
http://www.w3.org/TR/xhtml-modularization/dtd_module_defs.html#a_module_XHTM
L_Special_Characters

In fact, <!ENTITY lt "&#38;&#60;"> is correct as well, but is not what is
intended by &lt;
It is replaced by &< in a document.
Am I wrong to say that this shouldn't generate a validation error? After
all, it is the same as "&amp;&lt;" in a XHTML 1.0 document, for instance.

I quote the comment from xhtml-special.ent:
"Revisions:
2000-10-28: added &apos; and altered XML Predefined Entities for
compatibility"

Many parsers don't like this revision, as I reported earlier.


Benoit


> 
> "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
> 
> 
> -----------------------------------------------------------------
> The xml-dev list is sponsored by XML.org <http://www.xml.org>, an
> initiative of OASIS <http://www.oasis-open.org>
> 
> The list archives are at http://lists.xml.org/archives/xml-dev/
> 
> To subscribe or unsubscribe from this list use the subscription
> manager: <http://lists.xml.org/ob/adm.pl>
> 

Received on Saturday, 29 June 2002 09:08:38 UTC