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.