Commit
fbe14d69c8ca70edd1c0930981a75bc02b00bf1b
by John-Mark Bellxmlparser/libxml: remove reliance on internals
This has necessitated reworking almost the entire binding. The previous
approach had two goals:
1. Produce a DOM tree reflecting the libxml2 tree as closely as
possible
2. Use the libxml2 DTD handling support as a crutch in the
absence of any such thing in libdom.
The first of these is no longer a requirement as it is now expected that
downstream clients of libdom have long coped with various forms of DOM
tree, given both expat and hubbub will produce different forms,
depending on their input (and the libxml binding has not been the
default XML parser binding for many years now).
The second, however, remains, but this does not require fiddling around
inside libxml's structures -- instead, the minimal set of SAX2 events
continue to be forwarded to the default implementation so that DTD
handling during parse is dealt with appropriately. Removing this crutch
requires either libdom itself to grow full fat DTD support or, for this
binding to do so. Neither is entirely straightforward (and the latter is
made more complicated by the deprecation of the libxml APIs that allow
programmatic population of xmlDtd objects).