274 ESSENTIAL ADO.NET There are ways to approximate each different data typewith the possible exception of semistructured databy using a variation of a relational concept. Sometimes,  however,  you  need  to  present  the  data  in  an  alternative,  nonrela- tional format. For example, suppose youre managing an electronic student reg- istration form that contains data that affects the value of 15 different normalized relational  tables.  In  addition,  the  form  may  contain  information,  such  as  a  re- quest  for  low-fat,  vegetarian  meals,  that  has  no  correlation  in  the  relational schema. You may want to store the information in the request into multiple ta- bles and reproduce the original request on demand. This might require that you retain  additional  information  or  even  the  entire  request  in  its  original  form.  It might also be nice if the information could be transmitted in a platform-independent, universally recognized format. Enter XML. 7.2 XML and ADO.NET One of the most useful features of ADO.NET is its integration with portions of the managed XML data stack. Traditional data access and XML data access have the following integration points: " The DataSet class integrates with the XML stack in schema, data, and serialization features. " The  XML  schema  compiler  lets  you  generate  typed DataSet sub- classes. " You can mix nonrelational XML data and the relational DataSet through the XmlDataDocument class and do XPath queries on this data using DataDocumentXPathNavigator class. " ADO.NET supports SQL Server 2000 XML integration features, both in the SqlClient data provider and in an add-on product called SQLXML. The latter product features a series of SqlXml managed data classes and lets you update SQL Server via updategram or DiffGram format. These features, although unrelated in some aspects, work to complete the picture of support of nonrelational as well as relational data in ADO.NET, and di- rect support of XML for marshaling and interoperability. Lets look first at integra- tion in the System.Data.DataSet class and its support for XML. 5132_ch07  Page 274  Thursday, April 25, 2002  3:09 PM