Real World Computing
Player power
Moreover, as a general-purpose markup language, XML isn't limited to text-based output. Using the W3C's XML-based SVG (Scalable Vector Graphics) markup language, for example, you could take an XML representation of CERN's data on particle collisions and graph the results for web display. No wonder Berners-Lee is excited by XML and the Semantic Web - it's the fulfilment of his original HTML vision: the perfect universal, internet-based information-handling medium.
The potential of XML-based handling of web graphics is certainly exciting - no more binary GIFs - but what of the web page itself? Naturally, XML data can be converted to XHTML ready for CSS styling, or the XML can be linked directly to a CSS stylesheet for presentation, but, as with XHTML, CSS should only be seen as a holding operation. To begin with, CSS isn't written in XML and it allows undesirable features such as local inline styles. More to the point, CSS handling is at present every bit as driven by differing browser interpretations and implementations as HTML once was. Worst of all, CSS in its original form, a cascade of interacting rules from author, browser and end user, can never provide a rigorous design platform. A system of "presentation hints" isn't good enough. Browser-interpreted CSS isn't just a mess in practice but also in principle.
Moreover, with its focus on text, CSS could only ever provide a partial solution. To effect a complete separation of content and presentation, you really need a total solution that handles all non-semantic tasks. Take a look at the XHTML 1.1 tag list and you'll see a lot of "page furniture" still remaining, starting off with the element for adding graphics,
XML to the rescue
The good news is that at least two such languages are on the way. Adobe - whose Flash SWF format currently provides the state-of-the-art when it comes to web handling of graphics, media and interactivity - has MXML (Macromedia XML), which is effectively an XML markup language designed to produce Flash-based interfaces. As such, MXML currently needs to be pre-processed to convert it into binary SWF format for delivery via the Flash player (which can be handled live on dedicated servers). The other format is Microsoft's XAML (eXtensible Application Markup Language), which delivers its XML-based description directly to the associated Silverlight player. Currently, Silverlight 1 is restricted to media playback controls, but version 2 is due shortly and will extend this to provide a much more general user interface.
From these short descriptions, it should be clear that, while MXML and XAML are XML-based and so inherently open, neither is a truly vendor-neutral, W3C-endorsed standard, and both depend heavily on their proprietary players rather than on open browser support. Despite W3C's sterling work, I'd have to say that, even after years of struggling with multiple browser interpretations of HTML and now of CSS, I now see this as an advantage. Just as HTML needed the rigour of XML to reach its full potential, web design needs a robust and reliable platform that only carefully controlled, cross-platform/cross-browser players can provide. For rich and reliable web design, it's absolutely necessary to shift from browser-based interpretation to more precise, player-based rendering - with both Flash and Silverlight you know actually what your results will look like.
