XML is an open standard for exchanging structured documents and data over the Internet. Introduced by the World Wide Web Consortium (W3C) in November 1996, XML is a simplified version of Standard Generalized Markup Language (SGML). SGML, in turn, was first published by the American National Standards Institute (ANSI) Committee on Information Processing in 1980, though it dates back to the 1960s. SGML has long been used for defining markup languages and for managing large amounts of technical documentation. For instance, IBM, Boeing, and NASA have all utilized SGML for decades. While HTML is an application of SGML that provides a standard way of presenting richly formatted documents in a Web browser, XML is much more general. XML can be used to express literally any structured or semi-structured data and, as a result, has quickly become the lingua franca for data exchange over the Internet. Not surprisingly, given the SGML roots of XML, more and more User Education (UE) teams that produce documentation at Microsoft are switching to XML.
After the introduction of XML in 1996, the W3C subsequently built several core specifications on top of XML, including the following:
In addition, there are other specifications still under development like XML Query, XPointer, XML Encryption, and other XML protocols. (For more information on current and future activities of the W3C with regard to XML-and on XML in general-go to the XML Activity Statement Web site at http://www.w3.org/XML/Activity.)
Microsoft started working in earnest on XML in 1998 when it shipped Microsoft XML Parser (MSXML) in Microsoft Internet Explorer 5. MSXML included support for XML version 1.0, namespaces, the XML DOM, and the precursor to XPath called "XML Query Language" (XQL). XSLT and schema-called "XML-Data Reduced" (XDR)-were also supported.
Since 1998 Microsoft has built XML support into most of its products including Microsoft SQL Server, Microsoft Exchange, Microsoft BizTalk Server, Microsoft Office, the Microsoft .NET Framework, and Microsoft Visual Studio .NET. The .NET Framework includes a complete replacement for MSXML-by offering managed code with full support for XML version 1.0, namespaces, XPath, XSLT, XSD, and XML Signatures.
The demand for internationalization and for a technology that can work across various platforms are the two driving forces behind XML. Having grown out of the Internet, XML is inherently global in nature. But XML has expanded by becoming the "glue" that integrates various programming disciplines. Figure 26-1 shows some high-level areas, the manner in which those areas bridge to XML, and the underlying XML technologies being used to do this. XML can be used in internationalization across all of these areas and more.
Figure 26.1 - Programming disciplines that bridge to XML.
A vivid example of using XML in an internationalization scenario is www.microsoft.com, which reduced approximately 100,000 HTML pages localized in 38 languages down to about 9,000 XML documents. This was accomplished by using Active Server Pages (ASP) code and XSLT stylesheets to generate the HTML pages on the fly, which resulted in a Web site whose production was much easier to manage.
There are some practical limits to using XML that should be mentioned. For example, it is very unlikely that Microsoft will redesign the Microsoft Win32 API to pass XML nodes instead of C Structs, since XML processing is still too CPU-intensive. XML must be used carefully in order to strike the balance between manageability and performance. Tools can also be built in order to post-process XML, which gives a high-performing result. For example, at one point the MSXML XSLT processor was not fast enough, so www.microsoft.com had to post-process their XML and pregenerate all the HTML pages. This situation has changed; live XSLT processing is now possible because computers and the MSXML XSLT process have both gotten a lot faster. Another example of tools to improve performance is in the .NET Framework where XML types can be compiled into C# classes.
Despite the performance limitations just mentioned, XML is having a profound impact upon business practices worldwide for many reasons, among which are its international capabilities (such as its adoption of Unicode as well as other features mentioned in this chapter) and the fact that it is a platform-independent standard. Fortunately, support for processing XML data is also readily available in a wide array of Microsoft products.