It's actually a language, which by its definition and the nature of XML is almost not a format. It is akin to an almost-abstract base class in C++.
There are only about 5 rules in the language:
But it really is important to think of XML derived languages as languages because of how it all fits together. You derive your XML "dialect" from the XML base class and add your own tags and concoct a meaning for them yourself. But since everyone has to follow the few simple rules of the base class, you can add to data and if you see a tag you don't recognize, you skip ahead (to the matching end tag) and continue without even burping.
That's, of course, a minor beauty of the simplicity. The Big Deal is the ability to do transformations from one XML dialect into another. Using another XML language called XSLT (XML Stylesheet Language for Transformations) you can write code that executes on XML data and outputs presentation code for the data, without having to disturb the data.
Have you ever tried to get data out of a web page but found that you had to sift through the source and get rid of all of the HTML tags to get to the meat, or found that the browser doesn't really implement copy-and-paste properly when you select data out of a frame or table or what-not? Or worse yet, have you ever owned a process that relied upon getting data from some website and you had to continually monitor it to see if the bastards changed the format of the webpage, then you have to update your perl scripts or whatever to find where the data went?
That's often because the data is mixed with the presentation code. With XML and XSLT you write the XSLT program to know how to read the XML tags for your data, and you have the XSLT transform them into another XML language, say XHTML (the XML webpage language). So your data is left alone as data, and it's the XSL program that knows about things like tables, pictures, paragraphs, fonts, etc. Another XML language you will be hearing a lot about soon is SVG (Scalable Vector Graphics). It's an XML language that is more graphically powerful than XHTML, and if you want to transform your data into something that has more graphics punch than pure HTML, then you'll want to use this one. Think of it as XML to a PDF almost...
Anyway, sorry to nitpick about the semantics; you are right, it is damn cool. And Star Office (I use OpenOffice, is that the same thing?) promises to do great things with XML.
First, Microsoft was brilliant at realizing that the GUI/OS would make the computer, and the grabbed share. Then, they realized that the browser would make the computer as they integrated a great browser/explorer control into almost every facet of the computing experience, making it easier to use the computer and easier to program for it (in addition to the whole web experience). And they managed to defend their leadership position with that change.
Now with the excitement over XML it appears that data/content is going to make the computer. It looks like Microsoft sees this and is steering its ship towards taking advantage of early adoption here, too.
Let's hope the Linux/OpenOffice folks don't let MS become the de-facto XML goto-guys. Already, though, Internet Explorer supports XML much better than Mozilla or any of the browsers that come with Linux distributions (that I have seen).
I've been messing around with some XML stuff here:
And I can't get anything other than MS IE 6.0 to make it show up correctly.
They are terrified that XML will "let the cat out of the bag" so their Word monopoly and (.doc file) monopoly will make them irrelevant.
XML would make it really easy to pass documents around as well between browser, email, word processor, and spreadsheet, so M$ raison d'etre disappears!
Micro$oft recently stiff armed SUN when the later asked them to get together w/ others to hash out some standards...