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 Add
XXX
, Remove
XXX
, and
Replace
XXX
methods. Unlike XElement
, however,
an XDocument
can accept only
limited content:
A single
XElement
object (the “root”)A single
XDeclaration
objectA single
XDocumentType
object (to reference a DTD)Any number of
XProcessingInstruction
objectsAny number of
XComment
objects
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", ...
Get LINQ Pocket Reference now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.