XML, the eXtensible Markup Language

XML has been attracting a lot of attention recently. This article provides a five-minute overview of XML and explains why it matters to you.
Why Does XML Matter?

XML will most likely become very common over the next few years. Many new web-related data formats are being drafted as XML DTDs; three examples are MathML for specifying mathematical equations, RDF (Resource Description Format) for classifying and describing information resources, and SMIL for synchronized multimedia. There are also individual efforts to define DTDs for all sorts of applications including genealogical data, electronic data interchange and vector graphics; the list is growing all the time.

XML isn't primarily a competitor to HTML. The World Wide Web Consortium is planning to base the next generation of HTML on XML, but HTML as it currently stands isn't going to disappear anytime soon. Many people have already learned HTML and are happily using it; they don't particularly want or need the ability to create new markups. There are millions of existing HTML documents now on the web, and converting them to XML would take a long time; many documents may never be converted.

XML is going to be very significant, and XML support will be very common. The next versions of the Mozilla and Internet Explorer browsers will each support XML and will use it internally in various ways. More and more new data formats are written as XML DTDs. The argument driving this is simple laziness: if XML is available on every platform, and if its capabilities are suited to the task, then using XML will save time with little effort, which is always a persuasive argument.

In addition, XML will be easily accessible to programmers. James Clark's Expat parser (see Resources) is high-quality code and is freely available under the terms of the Mozilla Public License. I wouldn't be surprised to see future Linux distributions coming with Expat as part of the base system. Interfaces to Expat for scripting languages such as Python, Perl and Tcl are already in development and will probably have been finished by the time you read this. Soon, adding XML parsing to a program will be as easy as adding from xml import parsers or use XML::Parser to your code.

Andrew Kuchling works as a web site developer for Magnet Interactive in Washington, D.C. One of his past projects was a sizable commercial site that was implemented using Python on top of an Illustra database. He can be reached via e-mail at akuchling@acm.org.