The 12 days of XSD gripes – Gripe 1

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.

Comments (1)
  1. Michael Rys says:

    This is actually not so bad since you can always use xs:import and requires some modularization. The fundamental spec layer is actually based on schema components that can be mixing components from different namespaces. I think concepts such as the SQL Server XML Schema collections and the .Net Framework schema sets extend this nicely to multiple namespaces.

Comments are closed.

Skip to main content