Я думаю, что у JDrago правильная идея, что вам нужно избегать основанных на libxml2 инструментов для проверки ГСЧ, по крайней мере, на данный момент. Я обнаружил это и в моем проекте. Недавно я зарегистрировал две ошибки в libxml2, касающиеся проверки ГСЧ.
Я рекомендую Цзин . Он был написан Джеймсом Кларком, создателем Relax NG и одним из ведущих разработчиков в мире XML. Он также является автором транга, который вы уже используете. Разработка этого кода (и Trang) недавно возобновилась на сайте Google Code, на который я ссылаюсь выше.
Jing доказал свою корректность в отношении нашего контента и схемы и дал гораздо лучшие сообщения об ошибках, чем libxml2, хотя в этом отношении еще многое можно улучшить.
Единственный недостаток jing в отношении libxml2 / xmllint заключается в том, что в настоящее время он не использует XML-каталоги OASIS для разрешения общедоступных и системных идентификаторов и URI, указывающих на схемы. Это может быть проблемой в случае, если вы включили схемы, на которые ссылается URI «http» - они всегда будут выбираться по сети.