- XML Gets Down to Business
- XHTML: The Future of HTML
The World Wide Web Consortium (W3C) released its proposal for the eXtensible Markup Language (XML) back in 1996. Almost immediately, XML received an extraordinary amount of attention. Much of this attention didn't actually stem from XML's immediate contributions but from its potential for future contributions. In this article, we'll look at how XML is being used today and how it's positioned for future growth.
The Move to Dynamic Content
Although yesterday's data-exchange needs were met by such arcane approaches as comma-delimited files, the growth of real-time data exchange venues, such as those used for e-commerce, has increased the need for a standard data-exchange format. Portals, for example, display real-time, dynamic content acquired from news services, weather centers, and so forth.
Early site integrators acquired partner site information in HTML and painstakingly wrote extraction routines to format and display partner data in their own Web sites. They found this approach tedious and error-prone, because small formatting changes, such as added white space, broke data extraction routines that relied on information being in a certain location on a Web page. Because XML tags describe the data itself rather than just its presentation, this is no longer a problem. For example, instead of a couple of HTML tags that simply instruct the browser to display some text in a new paragraph in boldface, 179.99, an XML tag might say
For this reason, many content providers are moving to XML for exchanging dynamic Web content. The push for XML-based content exchange has focused primarily on two areas: The first deals with acquiring existing (or legacy) content for use on the Internet. The second focuses on distributing dynamic content to subscribers.
When migrating to new technology, you're often forced to bring along legacy data. For early Web site developers this wasn't a major concern, because they dealt with static data content. For example, let's say Acme Shoes published a Web page containing the phone number and address of each corporate office. This information wasn't likely to change very often, so a manual, one-time conversion of the spreadsheet containing the contact information was probably sufficient to create a Web page.
Although static content had its place in early Web sites, today's e-commerce sites deal with dynamic, real-time data. For example, if you're interested in booking an airline flight, you'll want real-time information showing the airline's latest prices, flight schedules, and so on. E-commerce sites must rely on dynamic data-extraction methods to retrieve this type of data, because it is constantly changing.
Most Internet start-ups generally won't have issues with such real-time data extraction, because they'll most likely build their Web sites using modern, Internet-aware tools. Traditional brick-and-mortar companies, on the other hand, have faced significant challenges attempting to interface their Web sites with legacy systems.
Going back to the Acme Shoes example, suppose the company's goal is to let users purchase shoes online and check the availability of shoe styles, colors, and sizes before placing an order. Unfortunately, this type of information is housed in a database on Acme's 15-year-old mainframe that's oblivious to the Internet. Acme's challenge is to retrieve dynamic information, without redesigning its existing legacy system. Ideally, the company would like to extract information from its mainframe system and publish this information in a format usable by each new system under development.
At its most fundamental level, this process breaks down to two basic tasks: collecting the information, and distributing it. The Internet community has adopted two words to describe these tasks: content aggregation and content syndication. When you apply XML's information-exchange prowess to both of these tasks, the result is a cross-platform solution that's hard to beat.
Aggregation and Syndication
Aggregation is the process of collecting, organizing, and combining data from disparate sources. This concept is often associated with large Internet portals, such as Excite and Yahoo! In reality, many different types of sites deal with content aggregation. In fact, the demand for tools that simplify aggregation and syndication has increased so much that several products have surfaced that specialize in handling one or both of these tasks.
One such product is Software AG's Tamino (www.softwareagusa.com), an XML-based information server that provides integrated access to existing legacy data, such as relational databases or Office files. Because Tamino is based on XML, unexpected changes in the format of a data stream can be processed based on embedded metadataor data about data.
Another is Metaphoria, from Information Architects (where I work), which primarily supports aggregation and also handles some syndication. Metaphoria, written in server-based Java, organizes references to data rather than the actual data itself. To accomplish this, Metaphoria includes tools that collect and build a repository of metadata links. This repository is then used to access and publish data as needed. Metaphoria's aggregation agents gather input from a variety of sources, including databases, XML documents, and HTML documents.
Syndication is the process of disseminating data. On the Internet, syndication is often seen in the form of content that Web sites buy from third parties. For example, many Web portals incorporate news headlines as part of their home pages. This news content is generally syndicated from a news provider. In this scenario, the news service is the syndicator and the Web portal is the subscriber.
There are several products on the market that help simplify syndication, but Vignette's StoryServer (www.vignette.com) is most often chosen for this task. StoryServer provides tools to define, extract, and publish syndicated content. It makes content available to subscribers through the Information and Content Exchange (ICE) protocol.
ICE is an XML-based protocol, developed by Vignette in conjunction with several other software vendors. It is used to describe the structure and content of syndicated data. StoryServer accomplishes syndication by using two complementary components. The first component lets syndicators define the information that the subscriber wishes to receive. The second component reads this definition and performs the actual extraction and distribution of the data.
The Resource Description Framework
ICE has garnered strong support in the Internet software community, but the W3C's current proposal, the Resource Description Framework (RDF), takes syndication a step farther. RDF is an XML-based protocol that provides tags for describing syndicated content, as well as metadata resources for things like site maps, content ratings, search engine data collections (Web crawling), digital library collections, and distributed authoring tasks.
Going back to our Acme Shoe example, suppose that Acme Shoe's database has a table with an entry for each shoe. Each of these entries contains the shoe's description, size, color, and price. Because shoe descriptions aren't necessarily unique (for example, running shoe), Acme's database needed another way to uniquely identify each shoe (in the database world, this is known as a primary key). Acme chose to use a shoe's model number as the primary key, as each shoe style has a unique model number.
Although shoe model numbers worked well to distinguish Acme's database entries, customers using Acme's Web site purchase shoes based on their descriptions, colors, sizes, and prices, not their model numbers. This presents a problem for Acme's ordering system, because it needs to associate the customer's selection with a particular style of shoe in inventory. This is where the shoe's model number comes into the picture. You can think of the shoe's model number as metadata about the shoe. In other words, it can be used to help locate a particular shoe without requiring all of the shoe's description data. So all Acme needs to solve its ordering system problem is to associate the customer's selection with a shoe model number.
Metadata references in RDF are described by two pieces of information: a resource and a property. In the Acme example, the resource is the database table that holds the shoe's information. The property is the shoe model number. The combination of these two pieces of information, in what RDF terms a statement, uniquely identifies a particular item. Once the resources and properties are defined, Acme can use third-party tools to read an RDF document and extract shoe information from the database.
The State of XML
Although XML remains at its initial 1.0 release version, there have been a number of significant extensions over the past couple of years. For example, the W3C's eXtensible Linking Language (XLL) proposal extends XML by adding XLinks and XPointers, which work in tandem to describe links to particular sections of documents. They also allow links to nondocument resources, such as database tables. You can think of XLinks and XPointers as improved versions of HTML links that far surpass their HTML counterparts.
Another recent addition to XML is the proposal for XML Schemas. The XML Schema language provides an alternative to XML's DTD (Document Type Definition) language. XML Schemas offer greater extensibility and ease of use than DTDs, because they are actually implemented in XML rather than the fixed tag language employed by DTDs.
If you want to learn more about these or any of the other pending XML proposals, refer to the W3C's Web site (www.w3c.org/xml). This site contains a wealth of information about XML, along with many of the latest draft proposals for expanding XML's capabilities.
XML's acceptance has been slow in coming, but the standard is continuing to gain momentum as more companies move to business activitieslike e-commercethat require dynamic content. XML is well suited to this task: It provides a platform-independent way to exchange data across a single company's product lines, and even among companies. More important, it provides a level of extensibility that should make it useful far into the future.
Steven E. Sipe is a developer with Information Architects in Charlotte, North Carolina, and a frequent contributor to PC Magazine.