William Eliot Kimber created XERCESJ-1643:
---------------------------------------------
Summary: Undeclared Parameter Entity Expanded in Overridden
Parameter Entity Declaration
Key: XERCESJ-1643
URL: https://issues.apache.org/jira/browse/XERCESJ-1643
Project: Xerces2-J
Issue Type: Bug
Affects Versions: 2.11.0
Environment: Java 7
Reporter: William Eliot Kimber
Given this DTD:
<!-- Test of parameter entity expansion -->
<!ENTITY % a "a" >
<!--<!ENTITY % b "b" >-->
<!ENTITY % base-pe "(%a;)" >
<!ENTITY % base-pe "(%a; | %b;)" >
<!ELEMENT pe-test (%base-pe;) >
<!ELEMENT a EMPTY >
<!ELEMENT b EMPTY >
<!-- End of test -->
The reference to parameter entity %b is flagged as a reference to an undeclared
entity.
However, the preceding declaration of %base-pe overrides the second one,
meaning that the second one can never be effective and should be ignored.
Therefore the reference to undeclared parameter entity %b should not be
reported as an error.
>From this behavior, I'm inferring that Xerces scans all declarations and
>expands all parameter entity references before determining which declarations
>are actually effective. I think this behavior is incorrect, or at least in
>this case the lack of declaration for %b should be reported as a warning
>rather than an error, since it is not in fact an error (the reference will
>never be effective). The code can certainly know that the second declaration
>of %base-pe is the second one and therefore know that anything in it will not
>be used for actual validation.
--
This message was sent by Atlassian JIRA
(v6.2#6252)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]