Ok… before, I get started – a little background. I am basically now on my second dance with XSD. Back a couple of years ago I was working with it extensively as part of the SqlXml effort – particularly around the mapping technologies at that time. Then it was new – so it was cool. I knew it had some issues, but we were still in the courting period of our relationship.
Then I took a couple of years off from actively working with XSD to concentrate on the O/R stuff.
Now I’m back working closely with XSD again, and honestly I can’t believe how much I had forgotten. Unfortunately, I had to give myself a short crash course to get back any sort of decent working knowledge. And that crash course has reminded me of all the things I hated originally about XSD – so hence, my 12 days of XSD gripes. (Originally, I wanted to get this out before the holidays)
Legal disclaimer – I actually have a love/ hate relationship with XSD… and yes, I am aware of RELAX NG. Also, I’m no Xml purist – so I really have a programmer’s point of view on the topic.
Gripe 1 – Why only one namespace per schema?
To me, this seems completely artificial and I have not found any satisfactory answer to the reason for the restriction. I here everyone say – “Well, the XSD designers intended for a given schema to be a vocabulary of type definitions belonging to one particular namespace”. Well, that seems cool – but with the power of namespace support – there seems to be no technical reason why I couldn’t have a vocabulary of type definitions from several namespaces. I understand that it wouldn’t be as elegant – but I want the power to make that decision on my own.