Because
the .NET Framework provides a complete Level 2 Core implementation,
the standard node inheritance tree is available. As
you’ll recall from Chapter 1,
each node in an XML document is represented by an appropriately named
class, starting with the abstract base class,
XmlNode
. Look at Figure 5-2 and
compare the XmlNode
inheritance hierarchy to the
DOM Node
inheritance hierarchy in Figure 5-1. You should see that every DOM type maps to
exactly one .NET XmlNode
subclass, although some
XmlNode
subclasses do not have an equivalent DOM
type.
You can also see in Figure 5-2 that the .NET Framework inserts some
additional levels of inheritance in the DOM hierarchy. These
additional types provide a place for groupings of common
functionality (XmlLinkedNode
) as well as adding
some functionality that is not required by the DOM specification
(XmlWhitespace
,
XmlSignificantWhitespace
).
The .NET DOM implementation provides intuitive names, similar enough to the relevant DOM interface to understand without further comment. In most cases, there is a one-to-one relationship between a DOM interface and the .NET implementation; however, Table 5-1 lists the exceptions to that rule.
DOM interface |
.NET implementation |
Notes |
DOMString |
String |
The DOM recommendation specifies that a language binding may use any
type to represent a |
DOMTimeStamp |
None |
The DOM recommendation specifies that a language binding may use any
type to represent a |
DOMException |
XmlException |
A |
ExceptionCode |
None |
The |
DOMImplementation |
XmlImplementation |
.NET includes the |
Document |
XmlDocument |
.NET adds the |
Node |
XmlNode |
The DOM Level 2 methods |
NodeType |
XmlNodeType |
The DOM |
NodeList |
XmlNodeList |
|
NamedNodeMap |
XmlNamedNodeMap |
|
IEnumerable
and IEnumerator
are
.NET interfaces that define methods that are used to move through a
collection of objects. They are not DOM interfaces, although they are
used in .NET DOM processing.
Another general exception is that when
the DOM interface has a method named xxxNS( )
, the
corresponding .NET Xxx( )
method is simply
overloaded to include the namespace URI parameter. The DOM interfaces
are specified this way because IDL does not support overloaded
methods.
3.143.235.23