Back in 1997 or 1998, I flicked a URL to a friend and former coworker of mine by email.
That link was to a new
World Wide Web Consortium standard called XML.
I did not think much of it at the time. I remember I just thought it was interesting as a better way to represent data files than tab-separated values and a lot better than the crufty comma separated value (CSV) file format.
I also remember thinking that it was rather verbose, and not all that inspired really - to simply take the HTML format, and essentially say,
There, you can make up your own tag names now, and use it for data!
.
I mean that was okay as ideas went, but hardly revolutionary.
I was wrong.
My friend went silent for days after I sent that URL. And I think days turned into a couple weeks.
I thought he was mad at me over some slight I was unaware of but nevertheless responsible for, so I did not bother him. I figured if he wanted to get back to me, he would.
It turns out he was not mad at me at all. He was very, very deeply absorbed in learning everything he could about how XML was
used.
That was something I had not bothered to do. I saw it as a data file format, and that was that.
Two weeks after I sent him my message, my friend broke the utter silence that had suddenly opened up between us.
He informed me that there was rapid progress being made in XML parsers, which was being spurred by the fact that there was a standardized parser API called
SAX
. So applications were written to use parsers via that API, and parsers basically functioned as
plugins
to them.
He went on to tell me that there was work underway on a new standard formatting tool called XSLT. He detailed some of the arguments between one of its inventors and a community that wanted it to be not merely something to style documents with - but a programming language for manipulating them as data.
He told me about the
API wars
being waged over the choice of functions that would be available in a standard programming library for manipulating XML documents from applications.
He and I subsequently did a presentation about XML to a company in Beltsville, Maryland in mid-1998. He and I introduced XML technology to an R&D office of a blue chip company in the suburbs of Washington D.C.
In late 1998 or early 1999, right around the turn of the year, I wrote my first Java code to generate XML. It was fun and it was easy. It generated a dump of the in-memory data model of an application I was debugging.
In 2000, I wrote some Java code that exported the definitions of the tapes in a tape library system for which I was one of the developers. I also wrote the Java code that would read that same document, verify that it was well-formed, and import the data if it was.
That pair of commands proved a very handy way to allow our system operators to do some basic maintenance of the system - without our team having to write a whole data enter/edit module for those entities.
After that, I got into using XML for documents. Generating web pages, word processor files, spreadsheets, PDF reports - that sort of stuff. I did a lot of that, and I enjoyed it.
If anything was particularly tedious about that, I would have to say it was the incompletely support for certain things in the standards.
While support for reading/writing XML itself has never really been lacking, what has been kind of incomplete is the software support for the most complex XML-related (or XML-compatible) technologies. In my experience, these things include:
- CSS
- XSL-FO
The things that generally did
not seem to fall short of implementing the standards were: XML parsers, DTD validators, and XSLT transformers. Those things worked pretty well. If you wrote your programs for them based on what the spec said, your programs would generally work.
Things have gotten more complicated but the tools someone can bring to bear when working with data in XML format are awesome today.
That is why I named this blog
Extremely XML
. That, and because XML is not just a data file format. It is all the processing that can be brought to bear on information when it is stored in that format. That is the whole point of using the XML format to house it.