You are currently offline, waiting for your internet to reconnect

How to use LINQ to XML to create and to query an XML document

This article has been archived. It is offered "as is" and will no longer be updated.
This article describes an All-In-One Code Framework sample that is available for downloading. This sample includes a step-by-step guide about how to create and to query an XML document whose data is from LINQ to Objects (in-memory objects) and from LINQ to SQL (SQL Server databases). The Visual Basic.NET version also uses the XML literals feature, which is introduced in Visual Basic.NET 2008.

Difficulty level

Download information

To download this code sample, click the following link:


Technical overview

LINQ to XML provides an in-memory XML programming interface that leverages the Microsoft .NET Language Integrated Query (LINQ) Framework. LINQ to XML uses the latest .NET Framework language capabilities and is comparable to an updated, redesigned Document Object Model (DOM) XML programming interface.

The most important advantage of LINQ to XML is its integration with LINQ. This integration lets you write queries on the in-memory XML document to retrieve collections of elements and of attributes. The query capability of LINQ to XML is comparable in functionality (although not in syntax) to XPath and to XQuery. The integration of LINQ into Visual C# 2008 provides better support for typing, compile-time checking, and debugging.

Another advantage of LINQ to XML is the ability to use query results as parameters for XElement and XAttribute object constructors. This ability enables a powerful approach to creating XML trees. This approach is called functional construction and enables developers to easily transform XML trees from on shape to another.

In Visual Basic.NET, another advantage of LINQ to XML is the XML literals feature, which allows you to incorporate XML directly into Visual Basic code. The XML literal syntax represents LINQ to XML objects and is similar to XML 1.0 syntax. This similarity makes XML elements and documents easier to create programmatically because this similarity would give your code the same structure as the final XML.

Note For more information about how to create and then deploy the sample application, see the Readme.txt file that is included in the download package.

Technology category

  • LINQ to XML


This code sample contains the following programming languages.
LanguageProject Name
Visual C#CSLinqToXml
Visual Basic .NETVBLinqToXml


  • You must first deploy the SQLServer2005DB database that is generated by the SQLServer2005DB database project. Deploy the SQLServer2005DB database to your SQL Server instance, and then modify the connection string in the App.config file according to your database instance and login account.
  • This sample application was created by using Visual Studio 2008 with Service Pack 1 installed.


  • LINQ to XML, XML literals

What is All-In-One Code Framework?

All-In-One Code Framework uses code samples in different programming languages to illustrate most Microsoft development techniques. Each code sample is carefully selected, composed, and documented to show common code scenarios. For more information about All-In-One Code Framework, visit the following All-In-One Code Framework Web site:

How to find more All-In-One Code Framework samples

To find more All-In-One Code Framework samples, search for "kbcodefx" together with related keywords on the Microsoft support Web site. Or, visit the following Microsoft Web site:
Rapid publishing disclaimer
Microsoft corporation and/or its respective suppliers make no representations about the suitability, reliability, or accuracy of the information and related graphics contained herein. All such information and related graphics are provided "as is" without warranty of any kind. Microsoft and/or its respective suppliers hereby disclaim all warranties and conditions with regard to this information and related graphics, including all implied warranties and conditions of merchantability, fitness for a particular purpose, workmanlike effort, title and non-infringement. You specifically agree that in no event shall Microsoft and/or its suppliers be liable for any direct, indirect, punitive, incidental, special, consequential damages or any damages whatsoever including, without limitation, damages for loss of use, data or profits, arising out of or in any way connected with the use of or inability to use the information and related graphics contained herein, whether based on contract, tort, negligence, strict liability or otherwise, even if Microsoft or any of its suppliers has been advised of the possibility of damages.

Article ID: 981419 - Last Review: 12/12/2015 03:44:40 - Revision: 1.1

Microsoft Visual Studio 2008 Service Pack 1, Microsoft Visual Studio 2008 Standard Edition, Microsoft Visual Studio 2008 Professional Edition, Microsoft Visual Studio 2008 Academic Edition, Microsoft Visual Studio Team System 2008 Database Edition, Microsoft Visual Studio Team System 2008 Architecture Edition, Microsoft Visual Studio Team System 2008 Development Edition, Microsoft Visual Studio Team System 2008 Test Edition, Microsoft Visual Studio Team System 2008 Team Suite

  • kbnosurvey kbarchive kbexpertiseadvanced kbsurveynew kbinfo kbnomt kbrapidpub kbcodefx atdownload KB981419