The XML and ADO+ frameworks object model provides two implementations of an XML document store:
XmlDocument is a base class that stores unstructured XML as nodes.
XmlDataDocument is a derived class that uses an associated DataSet to optimize storage of structured XML and support relational access to the mapped XML. Because it is a derived class, the XmlDataDocument can be used anywhere the XmlDocument is used.
In either case, XML data is read with an XmlTextReader object into the XML document (the XmlDocument base class, or the derived XmlDataDocument which optimizes storage and access to structured XML).
Applications accessing the data in an XML Document with XML semantics (such as XPath and XslTransform) use either the methods, properties, and events of an XmlNavigator (the DocumentNavigator in the case of the XmlDocument or the DataDocumentNavigator in the case of the XmlDataDocument). Alternatively, the application may access the data using the the XmlDocument (or XmlDataDocument) itself.
An XmlTextWriter object is used to output data in XML format. This object offers precise control over how the data is output, and convenience features to simplify the process.