Summary
This chapter began with a discussion of XML and how it suits Web Services well as a wire protocol. For example, XML is loosely coupled and lends itself to a high degree of interoperability.
We then moved into some of the XML technologies that are necessary to help you work with Web Services and, more specifically, the SOAP protocol, if you have to dip into the SOAP packets to adjust their contents. For example, we looked at how XPath helps you dig out information from within the XML document. You establish a location step and hand that to the XPath processor, which returns to you a nodeset if any of the XML elements match your query. We looked at how the XPath axes and intrinsic functions add power to your searching capability.
We then moved to XLink, which enables you to link XML elements that don't have natural hierarchical relationships. Two attributes, href and id, enable you to link the XLink elements. The href attribute "points" to the element with a matching id attribute.
The final general XML technology considered was XSL, which you can use to transform XML from one form to another. This might be necessary to transform SOAP from one version to another; the latest SOAP specification (1.2) was released just as this book was written. The main programmable feature that XSL presents is the template, in which an XPath query extracts a nodeset that is then transformed according to the contents of the template.
We finally turned to .NET and .NET's handling of XML. You learned about all the .NET XML classes necessary to deal with the XML technologies discussed in the first half of the chapter. XmlReader and XmlWriter, for example, read and write XML to and from streams. XPathDocument and the related XPathNavigator enable you to traverse the XML content using either XPath queries or pull-model methods such as MoveToFirstAttribute().
This chapter also provided several useful .NET applications that not only help you learn how the .NET XML classes are used but also serve as useful utilities by themselves. Hopefully you might find XPathExerciser and XSLExerciser are useful beyond the covers of this book.
Now it's time to move beyond simple XML and see how it's used in conjunction with the SOAP protocol. Chapter 4 discusses the SOAP protocol and tells how information is converted from memory into XML to be transmitted over the network