[ BlogX has been playing up and this is the second time I've written this :-( ]

I went along to Don, Gudge and Tims session on Sunday,  I done a lot of work in the XML and Web Services space expecting to pick up a few nuggets of information.

Sure enough the speak was quit basic and slow paced - but then again that was the plan.  I picked up two interesting bits just before the lunch break which I'm going to need to think about a bit more.

The first one was about restricting types in Schemes so they can't be derivied from, subsititued, etc. The reason for this seems to be because if your Web Service is expecting a Type FOO which you then validate against the schema, this works fine.  However if soembody derives a new Type from your Type, Substitutes, etc. it will also pass Validation.

So restricting this will "protect" your Web Service a bit more, but I would also argue that making the code more robust with regard to parsing the document would be vital as well.  Perhaps there are some other angles where this "blocking" helps.

The attribute (schema level) is blockdefault

But you can also apply the block attribute to all of your elements individually if you require using the block attribute

The other point was moving all element definitions out of Complex Types where they are local, to make them global and then just refer to them inside of the Complex Type. 

The only benefit I can see to this is that if you have many complex types using the same elements then this cuts down on duplicity, other that that I can't see the benefit - yet :)