You might use either of two techniques to process your XML file named offline processing and online processing. Offline means that you don't have to be connected to your XML source file directly, as a substitute you need to load your document, in advance into memory as a DOM tree.
This can be regarded as being the best method for processing your xml file in the event the xml is to be processed repeatedly because; whilst you lose memory you gain speed, which is all important when it comes to processing.
Online processing suggests you have to be connected to your XML source file to be able to process it, consequently this could be really slow, but you do use less memory. This process is more suited if the processing is extremely uncomplicated or maybe if you're primarily planning to process only parts of the file.
Regardless of what method you implement to process your XML file, C# is flexible enough to support either method via its .NET library classes.
The basis for the online processing is the XmlReader/XmlWriter abstract classes whilst the System.Xml.XmlDocument class is the basis for offline processing.
To produce your XML document you use an XmlDocument constructor, this can form an empty XML document in memory. Within this XML document you need to use nodes to build-up an XML tree to just about any intricacy as well as degree you require, detail by detail.
After constructing (or loading) an XML tree, you are able to navigate over it and shape it with XmlDocument's properties.
To conclude, there are a number of alternatives for processing XML files in C#, such as browsers, or you might use an XML C# tool such as Liquid XML C# tool (
http://www.liquid-technologies.com/XmlDataBinding/Xml-Schema-To-Cs.aspx), which saves you time in producing thousands of lines of error free code, straight away from the xml or schema file.