Lists Home |
Date Index |
At 23:18 21.4.2004, you wrote:
>Hhmm, I am not sure. From the specs:
>Validity constraint: Proper Declaration/PE Nesting
>Parameter-entity replacement text MUST be properly nested with markup
>declarations. That is to say, if either the first character or the last
>character of a markup declaration (markupdecl above) is contained in
>the replacement text for a parameter-entity reference, both MUST be
>contained in the same replacement text.
>So, this would be a validation error, and Expat should not report it.
>However, there is also this section:
>Well-formedness constraint: PE Between Declarations
>The replacement text of a parameter entity reference in a DeclSep MUST
>match the production extSubsetDecl.
>But it seems it doesn't apply here. So maybe Expat is OK?
Yes. Now I think so too (that Expat is right about this). I reported my RXP
version incorrectly; I have 1.2.5 (old win executable). Not to mention my
Expat version numbers were reported incorrectly too (1.9.8 duh) I guess
this is a bug that's fixed in the
later releases or RXP too. Other parsers seem to catch this. So,
it seems it's not legal to replace DTD declaration tag start i.e. <!ATTLIST
with parameter entity declaration. Why it's possible to use %CLOSE; like
entity in place of closing > is still a mystery...
I was thinking that RXP would be kind of reference implementation for XML
1.0 and others would be wrong but theold version of RXP (1.2.5) accepted
something like this too:
<!ENTITY % COND "<![">
<!ENTITY ent "entvalue">
Others (Xerces-J, MSXML4, Expat 1.95.8) reported this as a syntax error so
now this matter seems a bit clearer.