Create an {@link XMLStreamReader} on top of a DOM tree.
Since various libraries as well as users often create "incorrect" DOM node, this class spends a lot of efforts making sure that broken DOM trees are nevertheless interpreted correctly.
For example, if a DOM level 1 tree is passed, each method will attempt to return the correct value by using {@link Node#getNodeName()}.
Similarly, if DOM is missing explicit namespace declarations, this class attempts to emulate necessary declarations.
@author Santiago.PericasGeertsen@sun.com
@author Kohsuke Kawaguchi