This page was written in 1999.
XML (eXtended Markup Language) is a relatively new subset of SGML (Standard Generalized Markup Language). Its purpose is to give a general grid in which people can define a markup language for their own requirements.
Here is a simple example of an XML file: an entry in a product database:
<product> <name>Flying Suit</name> <number>19883-F.3B</number> <price>Euro 1333.=</price> <description>Using our Interactive Flying Suit, you can now fly over 6 kilometers at an altitude of 2 km!</description> </product>
This is all very clear. In simple cases like this even people who have only little knowledge of computers will be able to make a slight change in the data. Changing, say, a product number is not a very complicated task.
However, XML is only a method of structuring data. The example above tells us that a certain product has a certain name, product number and price, but it does not tell us (or a computer) what to do with this information.
So let us suppose we have a Perl program and a website with a link "XML Product Database". When the user clicks the link, the Perl program starts up and reads out the XML file. It then throws away the XML tags (<product> and so on) and rearranges the data a bit to produce HTML, which is sent to the browser of the user. For instance:
|Flying Suit||19883-F.3B||Euro 1333.=||Using our Interactive Flying Suit, you can now fly over 6 kilometers at an altitude of 2 km!|
It is important to remember that the user receives an HTML page with, among other things, the table above. He does not receive the XML file itself.
So with server side XML the XML is interpreted by the server, who sends the resultant data (usually an HTML page) to the clients (the browsers of the users).
Now let's suppose the same XML file and the same link "XML Products Database". What happens with a client side solution?
When the user clicks the link, the entire XML file is sent to the browser. The first problem is there: the browser must recognize that this file is in fact XML. The only two browsers that can currently do this are Internet Explorer 5 and the experimental Gecko browser that will form the core of Netscape 5.
XSL (eXtended Stylesheet Language) is a language specially designed for presenting XML data. This sounds very good, except for two things: