Did you know Microsoft released an addition to LINQ to XML called LINQ to XSD , allowing to write queries against typed XML trees by means of a generated object model? It's available as a preview from http://www.microsoft.com/downloads/details.aspx?familyid=E9C23715-9E71-47A7-B4DB-363C2A68FAB4&displaylang...