Documents and Declarations
XDocument
An XDocument wraps a root
XElement and allows you to add an
XDeclaration, processing
instructions, a document type, and root-level comments. An XDocument is optional and can be ignored or
omitted: unlike with the W3C DOM, it does not serve as glue to keep
everything together.
An XDocument provides the
same functional constructors as XElement. And as it’s based on XContainer, it also supports the AddXXX, RemoveXXX, and
ReplaceXXX
methods. Unlike XElement, however,
an XDocument can accept only
limited content:
A single
XElementobject (the “root”)A single
XDeclarationobjectA single
XDocumentTypeobject (to reference a DTD)Any number of
XProcessingInstructionobjectsAny number of
XCommentobjects
Note
Of these, only the root XElement is mandatory to have a valid XDocument. The XDeclaration is optional—if omitted,
default settings are applied during serialization.
The simplest valid XDocument
has just a root element:
var doc = new XDocument (
new XElement ("test", "data")
);Notice that we didn’t include an XDeclaration object. The file generated by
calling doc.Save would still
contain an XML declaration, however, because one is generated by
default.
The next example produces a simple but correct XHTML file,
illustrating all the constructs that an XDocument can accept:
var styleInstruction = new XProcessingInstruction (
"xml-stylesheet", "href='styles.css' type='text/css'");
var docType = new XDocumentType ("html", "-//W3C//DTD XHTML 1.0 Strict//EN", "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd", ...Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access