Web services in the cold

Cold. Then again, it could just be broken… You see, it’s seven degrees celcius outside, and eighteen degrees in the house, and I’m cold. I suspect that’s because of the high thirties we had during summer. Seven isn’t all that cold compared with what we’ll get in winter. We’ll probably manage minus seven at some point.

Some jokers are already running their wood fireplaces. They sure look nice, but fill the valley I live in with smog in the mornings, which has been known to set off asthma attacks in some people. Also, is it really cold enough to turn the heating on yet? I think not.

Working from home today. There’s too much work on for me to take leave to look after Catherine after her operation, so this is the best compromise that we could come up with.

If you’re going to care about Web Services, then you need to care about the W3C’s XML schema specification. I don’t know enough about XML schemas, so I spent some time today reading up on them. In the past I’ve found W3 Schools to have quite good summaries of things I’m interested in (for example, there are some SQL statements that I use so infrequently that I can never remember the syntax until I check on the web).

That site has probably the best summary of what XML actually is, which is nice. It’s not that I don’t know what it is, but you meet a lot of people who think that XML is goiong to solve world hunger, or proclaim themselves to be “XML programmers”. People need to keep some perspective here — XML is just a format for the interchange and transport of data. It doesn’t care about presentation, which is why DocBook is so very cool — I author all of my personal documents in DocBook, and it’s really liberating because I no longer care about what the document looks like… That’s all handled by the build scripts.

Let’s go off on that tangent for a second — this is kinda like saying that whilst Assembly programming is good, C programming makes the developer a lot more efficient. I should note that that argument can be taken too far — for example Visual Basic programming separates the programmer so much from the underlying machine that the programmer ends up not really understanding what is happening. With my DocBook writings, I no longer care if I’m producing an article for IBM DeveloperWorks, or a letter to granny, or my resume, because all I care about is the data. I can built the data into any format I want later.

Anyways, back to the main topic here — XML is about data interchange. XML itself doesn’t really solve this problem though, it’s still possible for me to have a schema or DTD which results in the data being incomprehensible to others. I wouldn’t be surprised if this ends up being the case with most commercial word processing packages for instance. The only reason that XML works for data interchange is that for once a bunch of important people have all drunk the right koolaid, and agreed to agree on something. They could have just as easily agreed to produce all their data as CSV files, or something binary, the agreement is what is important, not the data format.