DOM is a recommendation by the World Wide Web Consortium (W3C). Designed to be a language-neutral interface to an in-memory representation of an XML document, versions of DOM are available in Java, ECMAscript, Perl, and other languages.
While SAX defines an interface of handler methods, the DOM specification calls for a number of classes, each with an interface of methods that affect a particular type of XML markup. Thus, every object instance manages a portion of the document tree, providing accessor methods to add, remove, or modify nodes and data. These objects are typically created by a factory object, making it a little easier for programmers who only have to initialize the factory object themselves.
In DOM, every piece of XML (the element, text, comment, etc.) is a
node represented by a node object. The
Node class is extended by more specific
classes that represent the types of XML markup, including
Document. These classes are the building
blocks of every XML tree in DOM.
The standard also calls for a couple of classes that serve as
containers for nodes, convenient for shuttling XML fragments from place
to place. These classes are
an ordered list of nodes, like all the children of an element; and
NamedNodeMap, an unordered set of nodes. These objects are frequently required as arguments or given as return values from methods. Note that these objects are all ...