What is XML?
XML stands for the Extensible Markup Language. XML has been designed to address a number of deficiencies in HTML.
Which deficiencies in particular?
HTML is not extensible. Submitting proposals for extensions to HTML can be a very lengthy process. Browser software vendors can short-circuit the standardisation process by introducing their own extensions, but this has caused problems, as we have seen with controversial extensions such as Netscape's and Microsoft's <MARQUEE> elements. In addition the browser vendors have shown little interest in supporting specific communities such as the mathematical and scientific communities who would like to make mathematical formulae, chemical symbols, etc. available on the web, without having to resort to the use of images.
How does XML help?
XML is designed to be extensible. If you wish to design an office application you can markup a memo thus:
<CONTENT> Thanks for the information about XML. It was very useful. </CONTENT>
Notice that the structural elements of the document are described, not the appearance. This will enable the information to be used in a variety of ways. For example a collection of memos could be viewed using the TO or FROM fields (as you can do in many email programs), structured searching can be carried out or a browser for the visually impaired could communicate the information in a meaningful way.
But how is the appearance of the memo defined?
Using XSL, the XML Style Sheet Language. Just as HTML can be used to define a (very limited) set of structural objects (paragraphs, headings, etc.) leaving CSS to describe the appearance of these objects, XML defines the structure leaving XSL to describe the appearance.
Do browsers support XML?
Microsoft's Internet Explorer 4.0 provides partial support for XML. It supports an XML application called CDF, the Channel Definition Format which is used to "push" information to users. Microsoft have said that Internet Explorer version 5 will provide more complete support for XML. Netscape have also announced support for XML in version 5 of their browser, as illustrated below.
Figure 1 Rendering an XML Document in Mozilla
The example shown in Figure 1 is taken from <URL: http://www.mintert.com/xml/mozilla/> The source code of the document is illustrated below:
... <album> <artist>Jackson Browne</artist> <title>Running on empty</title> <tracklist> <track>Running on empty</track> <track>The Road</track> ... <track>Stay</track> </tracklist> <label>Asylum Records</label> <year>1977</year> </album>
The definition of the layout is given is a linked style sheet file.
In this example we can envisage applications which search for the artist, title or tracks, count the number of tracks, etc. In an XML-aware browser it could be possible to click on a record title to display the tracks. All of these applications would, of course, be very difficult to implement in HTML.
But I'll have to wait until such browsers become widely used before providing my information in XML format?
Not necessarily. Figure 2 shows a screen image of an XML document which has been rendered in Internet Explorer.
Figure 2 Rendering an XML Document in A Web Browser
In this document, which is based on one available at <URL: http://www.hypermedic.com/style/tips/tipindex.htm> the resource contains an XML document which is illustrated below:
<document> <to>To: John Smith</to> <from>From: Jane Brown</from> <greeting>Hello John</greeting>Thank you for your message. <insult>Your suggestion is <emphasis>very<extraem> very</extraem></emphasis> useful!</insult> Let's talk. <!--a comment--> </document>
You've described how structured documents can be stored in XML format. What other applications are available?
As an example the Math(s) Markup Language (MML)  is an XML application which became a W3C Recommendation recently. Although most browsers do not yet support MML, a number of Java and ActiveX applications have been developed which can display MML documents, as can be seen in Figure 3.
Figure 3 Use of MML to Represent A Mathematical Formula
The use of Java and ActiveX to render XML applications is another way of deploying XML with the current generation of browsers. A paper  at the WWW 7 conference suggested Java applets known as displets as a way of rendering XML documents. An example is illustrated below.
Figure 4 Using Java applets known as Displets to render XML elements
You can download the Java application yourself, together with some example applications from <URL: http://www.cs.unibo.it/~fabio/displet/>.
What other applications are available?
A number of XML applications have already been developed including:
What should I be doing to prepare for XML?
If you are an information provider on the Web you should follow the following tips:
You can expect to see a variety of tools which will correct errors in HTM documents and convert them to XML format. Dave Raggett, of the W3C, has written a utility called Tidy  which may be useful. However it is probably advisable to try to ensure that your documents are created correctly in the first place - you cannot guarantee, for example, that the owner of a badly-formed document will be available to make corrections.
If you're developing software you should ensure that your software follows these guidelines.
What else do I need to know?
This article has given a brief introduction to XML. Further information on XML is given below. However as well as XML there are a number of related protocols which you need to be aware of.
XSL , the XML Style Sheet Language, will describe the appearance of XML resources. XLink  will provide a rich hyperlinking mechanism. XPointer  will provide access to components of XML resources. Further information on XSL, XLink and XPointer will be given in a future "What Is?" column.
How do I find out more?
Further information on XML is available at the following locations: