Working with ADO.NET 2.0 XMLDataSource Control

Introduction

 
XML Data Source (XmlDataSource) control is a new control added to ADO.NET data source controls available in ASP.NET 2.0. In this article, I will discuss how to create and use XmlDataSource control in your Web applications.
 

XmlDataSource Control Members

 
The following table describes some of the properties of XmlDataSource control.
 
Member Description
Data Block of data that the data source control binds to.
DataFile XML data file the data source control binds to.
Schema Block of schema that the data source control binds to.
SchemaFile XML Schema file (.xsd) that describes how the XML data should be represented.
Transform Block of Extensible Stylesheet Language (XSL) that defines an XSLT transformation to be performed on the XML data that is contained by the Data property or by the XML file indicated by the DataFile property.
TransformFile Extensible Stylesheet Language (XSL) filename (.xsl) that defines an XSLT transformation to be performed on the XML data that is contained by the Data property or by the XML file indicated by the DataFile property.
XPath XPath query to be applied to the XML data contained by the Data property or by the XML file indicated by the DataFile property.
 

Adding Data Source Controls using Visual Studio 2005

 
Like other ASP.NET controls, you can add the control to a page by using Visual Studio designer or writing code by hand. First I create XmlDataSource control and a TreeView control to Visual Studio by dragging these two controls from Toolbox to the page. See Figure 1.
 
XmlDataSourceImg1.jpg
 
Figure 1. XmlDataSource in Toolbox
 
When you drop XmlDataSource to a page, you will see the Configure Data Source dialog. In this dialog, you can select the XML data file. You can also specify the schema, transform files, and XPath expression. See Figure 2.
 
xmldatasource2.jpg
 
Figure 2. Configure XML Data Source
 
When you browse for a data file, the dialog also allows you to select XML files, and save to a folder. The default project folder is Data.  See Figure 3.
 
XmlDataSourceImg3.jpg
 
Figure 3. Selecting an XML data file.
 
Now we have our XmlDataSource ready.
 
The next step is to bind XmlDataSource to TreeView control. Right-click on TreeView and select XmlDataSource1 from the "Choose Data Source" drop-down list. See Figure 4.
 
XmlDataSourceImg4.jpg

 
Figure 4. Binding TreeView with XmlDataSource.
 
Now next step would be to bind the TreeView nodes with the XML nodes. We use the "Edit TreeNode DataBinding" link in Figure 4, which launches TreeView DataBindings Editor, which allows us to bind a TreeView node with the XML tags in the XML. I bind Book node with Author XML tag. See Figure 5.
 
XmlDataSourceImg5.jpg
 
Figure 5. TreeView Node and XML tag binding.
 
As soon you click OK, you will see the TreeView loads authors from the XML data file. See Figure 6.
 
XmlDataSourceImg6.jpg

 
Figure 6. TreeView with Authors
 

Adding XmlDataSource Programmatically

 
You can also create and bind TreeView with XmlDataSource manually by writing the following code by hand in your HTML editor:
 
XmlDataSourceImg7.gif

 
As you can see from this code, first we create asp:XmlDataSource control, which sets DataFile attribute to Authors.xml file. After that, we set DataSourceId of asp:TreeView to XmlDataSource1. The DataBinding tag of asp:TreeView sets TreeNodeBinding, where we set DataMember Book with TextField Author.
 

Summary

 
When it comes to simplicity and ease of use, ASP.NET 2.0 Data Source controls definitely is a great tool for developers to have. In this article, I discussed XML data source control and how to create it in Visual Studio 2005. I also discussed how XML data source control works together with data-bound controls such as TreeView.