That's an hard one. Explaining all the case sensitivity rules would be huge, although they are simple as long as you use a library to take care of the schema stuff (like jing.jar).  So delegating to the spec, that nobody will read anyway, seems the sensible thing to do.  Now the question becomes, does these defines correctly the cases stuff, and the answer is, I am not sure.  But we can blame the W3C/OASIS specs anyway, as only builtin datatypes are used.