Schema Secrets

With Noah Mendelsohn's permission, I am posting his slides from this week's devcon.  He wishes it to be noted that the opinions and analysis are his alone, and not necessarily IBM's, and that the contents are copyright 2002 IBM Corporation.


Wow. Thanks a lot, Sam. I looked at the slides a few times and now have a few questions/comments.

1.) It seems my familiarity with XSD prevents me from seeing things from a fresh perspective but I was wondering what about the presentation made you state that validation is less deterministic than you thought?

2.) One of his slides seems to mix current and potential future namespaces for XSD. I can't tell this was an example of potential usage of XSD [Aaaarrghh, canOfWorms.open()] or some example about how namespaces work. I really hope it's the latter.

3.) Did anyone really believe that inheritance in XSD models inheritance in programming environments? I assume he glossed over this since it was a bullet point among many others and if no language lawyers were in the audience he may have gotten away with saying that.

PS: It's interesting that the opinions are simultaneously not those of IBM and (c) IBM Corporation. :)

Posted by Dare Obasanjo at


1) deterministic was probably an inappropriate word. I was not previously aware of all the facilities provided which allow for redefinition. Come to think about it, this point was made by Don not Noah.

2) Noah was not advocating its usage in this manner, merely explaining what presumably is a FAQ: why location is optional.

3) Not much time was spent on inheritance.

Posted by Sam Ruby at

I'm off to the airport...not much time. So. quick answers to Dare:

1) I did not discuss determinism...I think that was indeed Don Box. We ran out of time, but the point on inheritance was to show that inheritance of data (XML) is different in some ways than inheritance of methods. Restriction vs. extension is in some respects an attempt to provide a useful framework for data inheritance

2) Potential namespaces: nothing is planned. This was to illustrate that namespaces in an XSD document have many potential uses, and that <import> exists primarily to disambiguate the ones there for use in the document (including in appinfo, for example) from those that extend the vocabulary being defined. Without import, your processor wouldn't know the namespaces comprosing the vocab. being defined until it started to encounter constructs like ref=, well into the file.

3) Some folks seem to believe that the refinement mechanisms are indeed sometimes useful to map the data inheritance in some programming systems. My point in the talk is that it's at best 80/20, probably not that. Interestingly, Don seemed to make the case that it works quite well for .Net, but I assume you and he know that better than I. My point is that each language system is a bit different, and schema is not exactly any of them, but still sometimes useful for the purpose.

Re: intellectual property. No conflict. I wrote this talk to reflect my personal opinions, which in most cases probably line up with IBM's, but not necessarily always. Regarding the copyright, that's just a statement of fact. Work I do on their time and at least the majority of technical work I do in the computer field is owned by them. If you want permission to publish the slides, it would be nice if you ask me, but legally the ultimate decision lies with them I expect. The only reason for mentioning the copyright at all is that it's probably approriate for someone to check before taking the material and publishing it in a book, for example. So in short: they own it, but they don't have to agree with it :-).

Finally: if you want to persue this, please move it to schema dev. I'm unlikely to follow the thread here on a regular basis. Thanks.

Posted by Noah Mendelsohn at

Add your comment












Nav Bar