XML brings so much power and flexibility to Web-based applications that it provides a number of compelling benefits to developers and users:
Data can be uniquely tagged with XML, allowing a customer to specify books by, rather than about, Winston Churchill, for example. By contrast, searches using present methods would probably yield both types of books mixed together. Without XML, it is necessary for the searching application to understand the schema of each database, which describes how it is built. This is virtually impossible because every database describes its data differently. With XML, however, books could be easily categorized in a standard way by author, title, ISBN number, or other criteria. Agents could then search these identified bookstore sites in a consistent way for books about Winston Churchill, for example.
Once data has been found, XML can be delivered to other applications, objects, or middle-tier servers for further processing. Or it can be delivered to the desktop for viewing in a browser. XML, together with HTML for display, scripting for logic, and a common object model for interacting with the data and display, provides the technologies needed for flexible three-tier Web application development.
The ability to search multiple, incompatible databases is virtually impossible today. XML enables structured data from different sources to be easily combined. Software agents can be used to integrate data on a middle-tier server from back-end databases and other applications. This data can then be delivered to clients or other servers for further aggregation, processing, and distribution.
The extensibility and flexibility of XML allow it to describe data contained in a wide variety of heterogeneous applications, from describing collections of Web pages to data records. Again, since XML-based data is self-describing, data can be exchanged and processed without having a built-in description of the incoming data.
After being delivered to the client, data in XML format can be parsed and locally edited and manipulated, with computations performed by client applications. Users can manipulate data in various ways, rather than merely presenting it. The XML Document Object Model (DOM) also allows data to be manipulated with scripting or other programming languages. Data computations can be performed without additional return trips to the server. Separating the user interface that views data from the data itself allows powerful applications, formerly found only on high-end databases, to be created naturally for the Web using a simple, flexible, open format.
Once data has been delivered to the desktop, it can be viewed in different ways. By describing structured data in a simple, open, robust, and extensible manner, XML complements HTML, which is widely used to describe user interfaces. Again, while HTML describes the appearance of data, XML describes data itself. Since display is now separate from data, having this data defined in XML allows different views to be specified, resulting in data being presented appropriately. Local data can be presented dynamically in a manner determined by client configuration, user preference, or other criteria. CSS and XSL provide declarative mechanisms for describing a particular view of the data.
Data can be granularly updated with XML, eliminating the need to resend an entire structured data set each time a portion of the data changes. Only the changed element must be sent from the server to the client, and the changed data can be displayed without refreshing the entire user interface. Presently, an entire page must be rebuilt if even one item of data changes, even when the view remains constant. This severely limits server scalability.
Also, XML allows other data to be added, such as predicted high and low temperatures, expected precipitation, and probability (in percent). This additional information can stream into the user's existing view, without the browser having to send a new view. If additional information such as barometric pressure is requested, it can be sent without rebuilding.
Because XML is an open text-based format, it can be delivered using HTTP in the same way that HTML can today without any changes to existing networks.
Because XML completely separates the notion of markup from its intended display, authors can embed in structured data procedural descriptions of how to produce different data views. This is an incredibly powerful mechanism for offloading as much user interaction as possible to the client computer, while reducing server traffic and browser response times. In addition, XML lets individual pieces of data be altered with only an update notice, greatly enhancing server scalability as a result of a far lower workload.
XML compresses extremely well due to the repetitive nature of the tags used to describe data structure. The need to compress XML data will be application-dependent and largely a function of the amount of data being moved between server and client. XML can use the compression standard in HTTP 1.1 servers and clients.
XML is based on proven standards-based technology optimized for the Web. Microsoft is working along with other leading companies and various working groups at the W3C to help ensure interoperability and support for developers, authors, and users on multiple systems and browsers, and to evolve the XML standard.
The XML initiative consists of a set of related standards:
XML Structural Schemas such as those described by XML-Data Note and Document Content Description for XML (DCD) are subjects of the W3C XML-Data Working Group as well.
Microsoft Internet Explorer 4.0 supported a generalized XML parser, an XML Object Model, and an XML Data Source Object. Internet Explorer 5 and Office 2000 support a number of additional XML features and technologies, as described in Browser Support.
As an industry standard for expressing structured data, XML offers many advantages to organizations, software developers, Web sites, and end users. The opportunities will expand further as more vertical market data formats are created for key markets such as advanced database searching, online banking, medical, legal, electronic commerce, and other fields. And when sites dispense data rather than just views on data, extraordinary opportunities result.
Customer services are now migrating to Web sites from call centers and physical locations and will therefore benefit from the robust functionality of XML. And, because most of these business applications involve manipulation or transfer of data and database records, such as purchase orders, invoices, customer information, appointments, maps, and so on, XML will revolutionize end-user possibilities on the Internet by allowing a rich array of business applications to be implemented. In addition, information already on Web sites, whether stored in documents or databases, can be marked up using XML-based, intranet-oriented vocabularies. These vocabularies also help small and medium-sized corporations that need to exchange information between customers and suppliers.
A vital untapped market is development tools that make it easy for end users to build their own collaborative Web sites, including tools for generating XML data from legacy database information and from existing user interfaces. In addition, standard schemas could be developed for describing portfolios or other data, for example, which could use the layout, graphs, and other functions of Excel or other existing spreadsheets. Declarative and visual tools for describing XML generated from legacy databases are a powerful opportunity. Custom tools for viewing XML data can be written in the Visual Basic® development system, Java, and C++.
XML will require powerful new tools for presenting rich, complex XML data within a document; this is done by mapping a user-friendly display layer on top of a complex set of hierarchical data that can change dynamically. Possible layouts to use for XML data include collapsing outlines, PivotTable dynamic views, and a simple sheet for each portfolio.
Web sites can offer stock quotes, news articles, or real-time traffic data, which can be obtained by filtering from Web broadcasts or by intelligent polling of a tree of servers replicating these sites. Information overload can be avoided with XML by writing custom rules for the aging of information, for example, as is done with e-mail. XML-based tools for users to construct these rules and server and client software to execute them are a huge opportunity. A Standard Object Model could enable these functions, typically written in script, to filter incoming messages, examine stored messages, create outgoing messages, access databases, and so on. These agents can be written to run anywhere automatically.