If you've been developing Java applications and now you are going to be working in the .NET Framework, you need to know everything, right away. Well, help is at hand. Here's a tip, excerpted from InformIT, which talks about the relationship between .Net and the XML extensible markup language.
Because of its extensible nature, XML can be used for a variety of purposes. Modern applications use XML as a messaging protocol, as a transport protocol, and even for backend data storage. The .NET platform uses XML as its key technology in ASP.NET, Web services, and so on. The .NET Framework XML classes are also tightly coupled with Managed Data Access (ADO.NET). Traditionally, there have always been different programming models for working with relational versus hierarchical data. The .NET platform, however, allows for transparent translation of relational data to XML and vice versa. This makes it possible to retrieve a relational ADO.NET dataset and walk it using the DOM, query or navigate it using XPath 1.0, and transform it using XSLT 1.0.
As mentioned earlier, the primary language-neutral APIs for parsing XML documents are the DOM and the SAX API. The DOM API stores the XML document in a tree data structure, thereby allowing complete navigation of all the elements (in no particular order). Users can modify the DOM tree. This API is very convenient, but it can consume a lot of memory when you're working with large documents.
The SAX API was developed to counter the defects of the DOM API. The SAX API uses an event-driven model in which parsing every character of the XML document is handled through event listeners. The parser parses the document in only one direction. The SAX API puts the onus of handling the state of the document parsing on the end user, and therefore it is inherently difficult and awkward to use.
The .NET XML classes support both DOM and SAX-like APIs. The SAX-like API in .NET is an improvement over the traditional SAX model, in the sense that it gives a lot more control to the end user during the parsing process. The so-called pull model used by .NET's version of SAX allows programmers to skip sections of the document, process only certain elements of the document, and interact a lot more with the document. You can say that .NET's SAX sits between DOM and pure SAX. It mixes the convenience of DOM with the power of the pure SAX API.
To read the entire article from which this tip comes, click over to InformIT.
This was first published in July 2003