Сложная проверка XML с пользовательскими сообщениями об ошибках

Я искал технологию, которая позволила бы мне:

  1. проверить сложный (большая структура, множество необязательных подпоследовательностей / элементов, фиксированный порядок и т. д.) XML;
  2. определять пользовательские сообщения об ошибках для каждой проверки / блока проверок / правила (ошибки, подобные процессору XSD, для меня бесполезны);
  3. определить схему / правила валидации эффективно и понятным для человека способом, если это возможно;

Другими словами, что-то вроде Schematron (допускает настраиваемые сообщения об ошибках, доступно для чтения и т. Д.), Но все же элегантно для сложных структурных проверок (XPath отчасти неэффективен для таких вещей, как проверка порядка и тому подобное).

Есть ли подходящая технология, которая бы соответствовала потребностям, которые я описал? Я мог бы жить с Schematron и (устаревшими) инструментами, такими как XSD2SCH, хотя результат использования этих инструментов, кажется, действительно грандиозен.

Спасибо

1 ответ

Вы можете попробовать смесь XSD и Schematron. Воспользуйтесь упорядочением, количеством тегов, функцией типа данных tage в XSD. Затем для другой сложной проверки вы можете использовать Schematron.

Сообщения об ошибках, выдаваемые XSD, немного сложны для человека, но довольно мощны.

Вы можете попытаться увидеть, есть ли библиотеки, которые понимают семантику XSD 1.1. Я не нашел поддержки, когда мы пытались. Поэтому мы прибегли к объединению XSD и Schematron.

Другие вопросы по тегам