I have seen a lot of job postings for ASP.NET and server engineer positions, and they always seem to list XML and XSLT as one of the skills that is valuable to them. I am wondering what role XML plays in modern systems. How are people using XSLT with XML in nTier systems?
XML plays two roles in .NET systems: configuration and data-transfer.
By data-transfer I mean that XML is used as a structured form in which data may be placed that needs to be sent from one layer of the application to another (or even between one application and another application altogether). This is usually achieved by means of XML serialization.
XML is used extensively for SOA communication, particularly when going through firewalls to heterogeneous systems.
WCF and CSLA and all major interop systems always provide XML as one of their cornerstones of communication. You can use binary or other formats in a subset of cases, but XML will always work
Andrew has very succinctly stated the primary roles of XML based data in .NET systems - Providing a templated method for configuration of applications and interoperable transfer of data between disparate platforms.
XSLT being the primary mode of transformation for XML data into XML/XHTML is extensively used because of the same reasons. An XML often needs to be converted to another XML with different structure, or one may want to render an XML datasource directly as HTML output. XSLT is almost indispensable in such cases, even though the transformation could be done manually by writing a lot of DOM traversal code.
Using similar logic, XPath is also used because it provides the most basic and powerful way of traversing the XML hierarchy to query data based on its location in the XML.