Кто-то из списка рассылки JavaCC указал мне правильное направление, упомянув Schematron .Это привело меня к Probatron , который, кажется, является лучшей доступной реализацией Java.
Сайт Schematron утверждает, что язык поддерживает «переход между ссылками и между документами XML для проверки ограничений», но кажется,Пробатрон не позволяет этого.Я могу не настраивать его или не находить хитрость для этого (например, создание временного XML-документа, содержащего все мои исходные документы).Кроме того, похоже, что «Пробатрон» - подходящая мне библиотека.