In my main.xsd, it includes contact.xsd <include schemaLocation="http://www.example.com/schemas/contact.xsd"/> In contact.xsd, it includes address.xsd <include schemaLocation="http://www.example.com/schemas/address.xsd"/> Xerces failed to load address.xsd, the validation failed. When I moved everything in address.xsd -> contact.xsd (remove include element), it worked.
Sorry, I just realized that the version came with Xalan is Xerces 1.4. So the version I refered should be Xerces 1 then.
I'm doing the same thing with included schemas deeper than 2 levels, and it works fine for me. Xerces-J 1.4.4 fixed a bug with the way base URIs for included schemas were resolved (bug id 4459), perhaps this is the problem you're running into.