If a document is validated can it still cause a DOM program to crash?
The problem is that IMHO the DOM only offers one safe method
to select elements: getElementsByTagName. This will always behave
properly in a DWIM way. All the navigation functions, such
as getFirstChid, getLastChild, getPreviousSibling and
getNextSibling return a node. Now what if that node
is a comment? How many of the DOM scripts out there check
every time they use one of those methods that the result is
really what they expected, usually an element? Remember
that even if the DTD says that a dt is always
followed by a dd there can be any number of comments
and processing instructions in between. Who codes that
defensively and systematically writes this?
my $dd= $dt;
$dd= $dt->getNextSibling until( $dd->getNodeName eq 'Element');
Hence my guess that a well placed comment can probably wreak havoc
in most of the DOM code around (and certainly in most of
my own tries at taming the DOM). Practically I suspect people
code for a subset of XML, one that excludes comments and
processing instructions. This is dangerous for the exact
same reasons I described in On XML parsing.