Christian Graus wrote: Yes, that's basically what I thought. I'm asking from the perspective of writing a wrapper for XML in C#, and an editor for XML/XSL and XSD's, and I just wondered how useful they are in the 'real' world. Just to follow up on your question about use in the real world, I was working on a project recently that used web services to communicate with a database. The project had a thin oo wrapping around what I required of the xml, and this wrapping layer of classes required certain values from the xml it was given. Rather than doing all the validation within the wrapping classes (and therefore making them more cumbersome), a schema (XSD) was created to validate the xml before it was passed to the wrapper. This way we got good feedback in the form of exceptions when the xml didn't conform to the requirements of the wrapping environment. Also, I did at one point have plans to automatically generate the wrapper classes from the schema itself, and so solve the maintainance time of keeping a schema up to date. The other side issue that arose was that the schema ment that (as another poster has already noted) we had a common interface for parallel development - much like an Interface would do for a Class with pre and post conditions, we used the XSD for the XML. Hope this helps Ben