Grek, thanks for your work on this. I figured out the missing pieces.
First, I did not know that DOM is slightly different than the theory of XML.
On 27.12.2007 12:46 Uhr, Grzegorz Kossakowski wrote:
Grzegorz Kossakowski pisze:
3. My gut feeling is that we are affected by XALANJ-2091[2] bug. I'll try to
verify my feelings
tomorrow.
I have checked if update to Xalan 2.7.1 helps and it's not. Anyway, after
taking closer look at our
code it's not a surprise because we don't use DOMBuilder from Xalan but our own
class.
Second, that's not quite correct. Xalan 2.7.1 fixes the issue. Our
DOMBuilder is only a wrapper. It does not replace the Xalan DOMBuilder
at all.
Third, there is a missing piece though to make it work: The fix for
XALANJ-2091 is triggered by startPrefixMapping(). With
FlowJXPathSelectionList.generateSaxFragment() as in the test case
without the actual CForms framework code startPrefixMapping() is never
called. After I added startPrefixMapping() at the very beginning of
FlowJXPathSelectionList.generateSaxFragment() and endPrefixMapping() at
the end of it (though there is still an issue with the missing
implementation of the latter [1]) the test passed without the explicit
removal of the namespace attribute.
The question is if we really want to change all places where this
applies and add start/endPrefixMapping(). In theory that's the correct
way to do it. Another possibility to fix the tests would be to serialize
the XML from the actual test run and reparse it in the same way as the
documents we compare to.
Joerg