Norman Walsh pointed out XInclude inconsistence against grammar definition languages. Unlike xml:id I pointed out nearly a few months ago, I believe XInclude, the new spec, is wrong here.
Why xml:* attributes should be specified in schemas you use? Because sometimes we want to restrict the value of those attributes e.g. limit "en" and "ja" in my local Japanese application. Similarly we might want to reject xml:base so that our simple stylesheet don't copy those attributes into results blindly, or processor don't read files from unexpected location. It is applications' matter.
Am disappointed at the fact that there are so many .NET developers saying that the processor should be able to accept xml:* attributes blindly. Do they want schema documents inconsistent between the processors?
I don't believe we should make XML Schema sucks just to save XInclude which is anyways borking against other schema languages.