> A plea for sanity here: my own personal belief is that the correct behavior > of code when receiving invalid input is undefined. So, let me turn the > question around: why is the current behavior which produces not well formed > output preferred over one that does?
My opinion only: Because it forces the offending programmer to understand his/her mistake and do the right thing. As James has pointed out even some "tutorials" out there have the incorrect instructions on DOM and namespace handling. Its no doubt complicated and painful (ask Matt, he'll tell you), but it does work correctly. So IMO we're not doing anyone a favor by letting them believe that they're doing the right thing when they're not. So we can fix Apache SOAP (in a nightly build). But next time around these offending programmers are going to say some other DOM application is wrong. So that's the rationale for the principle. Given all that, I can still live with committing this change *iff* its pretty clear that it won't break other stuff. The current version still won't do that, I believe. Sanjiva.