The home page of a site I'm working on consists of menu block controls. (Screenshot in earlier post here.) All menu items are derived from a single XML file; the menu block headers from another.
I had the opportunity to expand the functionality of the home page and menu block control by providing an overflow page for links determined by site admins. On the overflow page I wanted to go with a DataList Control for all menu block categories. (Its layout is below, with menu items intentionally blurred.) To use the DataList, of course, I had to create a DataRelation in the two DataTables and then on the DataList OnItemDataBound method spit out the child menu items. Pretty standard stuff, but I never did it from XML files, only SQL, so it had a new twist for me. But it was SO SEAMLESS using XML instead of SQL as the source, once the XML data was read into a ADO.NET DataSet and the proper schema was in place. I was so impressed by how easily I was able to do this with XML, so I had to write about it in praise of .NET.