by Nate Zelnick Some Real Meat for Developers? The forthcoming browsers from Microsoft and Netscape are the first indications of what's going to come in the next year or so to transform XML from today's hyped technology into the basic structural basis for data in the future. Last time we looked at the most general level of XML support in Navigator 4.5 and Internet Explorer 5.0. This time we're going to take a look at a pair of interesting proposals to bring a new level of abstraction to the developer process. The set of technologies emerging from the World Wide Web Consortium (W3C) imply a development methodology that is core to understanding why XML is important. That methodology depends on keeping a document's structure separate from its presentation and both of these separate from any programmatic tricks used to manipulate how the document will behave in response to user interaction. The advantages to this approach are clear and emerge precisely out of the environment in which the W3C was formed. By keeping all of these things separate, a document can be displayed somehow, regardless of the capabilities of the device or application being used at the client. It also means that documents do not have to be rewritten when a new kind of application or device emerges which means that data can live forever. This is fairly easy to understand when talking about how a document is going to look, since we already have to deal with the problem of display incompatibilities between different versions of IE and Navigator and even different capabilities with the same browser running on different operating systems. But the problem of programmatic abstraction is a little harder to grasp than assigning presentation attributes to document elements via CSS. The current approach to this has been to punt to the Document Object Model (DOM), which means that while manipulation of the document is hand-coded for each different application based on a standard set of document interfaces, at least the document itself remains the same. This is a good start, but it doesn't really answer the needs of teams of developers building complicated applications that change frequently.