The samples in most of this document are shown in C# for brevity. This makes sense because an XML tree, other than at the leaf level, is composed of XML elements and your primary goal when working with XML is traversing or manipulating the XML elements that make up the XML tree.
NET Framework languages that implement the LINQ pattern (for example, C#, Visual Basic, and so on.).
This provides a consistent query experience across LINQ enabled APIs and allows you to combine XML queries and transforms with queries from other data sources.
Its public data model is aligned as much as possible with the W3C XML Information Set. In LINQ to XML you create XML elements directly: You do not have to create an XML Document to hold the XML tree.
This section outlines some key concepts that differentiate LINQ to XML from other XML programming APIs, in particular the current predominant XML programming API, the W3C DOM. The LINQ to XML object model does provide an XML document to use if necessary, for example if you have to add a comment or processing instruction at the top of the document.
LINQ to XML is designed to be a lightweight XML programming API. If you want to use an element across multiple documents you must import the nodes across documents.