Still managed not to include by response to Simon's assertion that XSD is 'harmful'. But here it is anyway (better late than never) :-
Simon, I'm sure based on your other comments that this is a somewhat
rhetorical question (at least I would very much hope so).
There are lots of reason why a specification of the data contract can
be considered to be a useful artefact at any/all stages of a
development life cycle.
There are lots of reasons why that is insufficient to fully explain
the semantic, behavioural and even the complete set of data
constraints that might apply.
The balance of course is in using XSDs for the things that they are
good at and other things for areas where they are not. Dismissing them
out of hand, seems foolhardy ?
I certainly find some utility for them (and I think the data/document
distinction *does * play a part) and I agree with an earlier poster
(Timothy Cook) that XSD 1.1 has expanded the range of useful use cases
(albeit all of those things were already possible using schematron or
such like).
Let's be careful not to fall into the narrow arguments of the past
around XSD and at least accept that those professional developers
among us who do find some use aren't completely deluded.
Regards
Fraser