I use Apache's Xerces-J to validate XML files, however it's not necessarily the easiest application to setup and use, and I do have to admit that Xerces does need a little "fettling" to work as expected.
I've put to gether a little HowTo on getting it working and validating XML files.