Я всегда считал валидацию против схемы неоценимой опекой против thinkos и хотел бы включить проверки проверки как часть проекта, где мне часто приходится вручную записывать XML файлы длиной в несколько сотен строк. У моего текстового редактора есть довольно приятная функция интеграции с CLI, поэтому я ищу валидатор командной строки.
Когда я не нашел никаких явных победителей через Google, я ткнул сюда и нашел аналогичный вопрос, но ни один из предложенных там инструментов не соответствовал моим потребностям
- libxml (через cygwin) - не сообщает номера строк; Я не знаю, где мои ошибки!
- msxml - невозможно запустить из командной строки?
- xerces-c - требуется копия Visual C?
- xerces2-j - невозможно запустить из командной строки?
- xmlstarlet - недостаточная поддержка XSD *
(* Схема, которую я проверяю против групп подстановок использования, - неадекватно, но она внешняя по отношению к проекту, поэтому я не могу ее изменить, что приводит к тому, что xmlstarlet
задыхается даже в действительных файлах.)
Обычно это решение проблемы, при которой я бы отказался от поиска существующего решения и дошел до Python-hammer, но поддержка Python XML известна... ну... на самом деле, позвольте просто оставить ее на "пресловутый".
Итак, я вернусь к поиску уже существующего инструмента. Мои требования довольно просты:
- работает на Win32 (Windows XP SP3, в частности)
- командной строки; мой редактор может работать с любой комбинацией stdin/-out/-err, аргументов, временных файлов и т.д.
- достаточно полная поддержка XSD (в частности, пространства имен и группы замещения)
- сообщает номер строки, в которой произошла ошибка!
Существует ли такой инструмент? Я бы предпочел не устанавливать Visual Studio и друзей (слишком раздутый, IMO), но у меня уже установлены оба Cygwin и Python.