Key Concepts
Before you can learn to work with XML in the .NET Framework, I have to introduce some of the key types you’ll be using.
When using the DOM, as shown in
Chapter 5, each node in an XML document is
represented by an appropriately named class, starting with the
abstract base class, XmlNode. Derived from
XmlNode are XmlAttribute,
XmlDocument,
XmlDocumentFragment, XmlEntity,
XmlLinkedNode, and XmlNotation.
In turn, XmlLinkedNode has a number of subclasses
that serve specific purposes (XmlCharacterData,
XmlDeclaration,
XmlDocumentType, XmlElement,
XmlEntityReference, and
XmlProcessingInstruction). Several of these key
types also have further subclasses. In each case, the final subclass
of each inheritance branch has a name that is meaningful to one
familiar with XML.
Figure 1-3 shows
the XmlNode inheritance hierarchy.

Each of the concrete
XmlNode subclasses are also represented by the
members of the XmlNodeType enumeration:
Element, Attribute,
Text, CDATA,
EntityReference, Entity,
ProcessingInstruction, Comment,
Document, DocumentType,
DocumentFragment, Notation,
Whitespace, and
SignificantWhitespace, plus the special
pseudo-node types, None,
EndElement, EndEntity, and
XmlDeclaration. Each XmlNode
instance has a NodeType property, which returns an
XmlNodeType that represents the type of the
instance. An XmlNodeType value ...