[XSD, XSLT] Валидация XMLки
Также рассматривается возможность чтобы из XSD генерились более кошерные классы чтобы они сами могли валидировать информацию, которая по ним распихивается. Или более придирчивый маршаллер, который будет обращать внимание на атрибуты, которые вставляет в генеримые классы JAXB.
Нашёл такую штуку как javax.xml.validation.Validator но он выдаёт только первую ошибку и в неудобном формате с недостаточными данными для дальнейшего выведения лога.Ну что только первую, это можно побороть.
validator.setErrorHandler(new ErrorHandler{.../* из реализаций методов ничего не бросать! */})
cvc-complex-type.2.4.a: Invalid content was found starting with element 'rbs'. One of '{"http://******.ru/types/1":ogrn}' is expected.Откуда узнать где там это произошло - невозможно.
cvc-complex-type.2.4.b: The content of element 'okato' is not complete. One of '{"http://******.ru/types/1":code}' is expected.
Так что пока что вижу несколько способов решения:
1) написать самому парсер схемы на яве, который будет проверять XML.
2) то же самое но на XSLT
3) найти валидатор с открытым исходным кодом и допилить его.
Подскажите пожалуйста есть ли отрытая реализация javax.xml.validation.Validator? Если нет, то где почитать про алгоритм по которому там валидация происходит (чтобы велосипед не придумывать).
Подскажите пожалуйста есть ли отрытая реализация javax.xml.validation.Validator? Если нет, то где почитать про алгоритм по которому там валидация происходит (чтобы велосипед не придумывать).т.е. ты даже по jdk поискать не удосужился?
www.forumlocal.ru/negative
http://docs.oracle.com/javase/1.5.0/docs/api/javax/xml/valid...
Абзаца с "Direct Known Subclasses" как видишь нет.
Сейчас пользую валидатор от апача: org.apache.xerces.jaxp.validation.ValidatorImpl.
Он в бинарниках.
http://docs.oracle.com/javase/1.5.0/docs/api/javax/xml/valid...
Абзаца с "Direct Known Subclasses" как видишь нет.
Сейчас пользую валидатор от апача: org.apache.xerces.jaxp.validation.ValidatorImpl.
Он в бинарниках.
дебилушка, напишу ещё раз - поищи по jdk.
что ты этим вырвиглазием хотел сказать?
Сейчас пользую валидатор от апача: org.apache.xerces.jaxp.validation.ValidatorImpl.кстати неумение или нежелание находить исходники открытой библиотеки тебя тоже характерно классифицирует.
Он в бинарниках.
Оставить комментарий
kill-still
есть XSD-схема, по ней сгенерены через JAXB ворох классов, по которым распиханы данные и через JAXB машаллер сгенерена XML-ка. Надо вывести список несоответствий этой XML-ки схеме в человекочитабельном формате.например:
"Некорректно заполнено поле «Адрес электронной почты». Поле необходимо заполнить по маске *@*.* Оно не должно быть короче 1 символа и длиннее 200 символов."
или
"Некорректно заполнено поле «ИНН». Поле должно содержать 13 цифр."
Для каких-то полей возможно придётся прописать отдельные предустановленные сообщения.
Нашёл такую штуку как javax.xml.validation.Validator но он выдаёт только первую ошибку и в неудобном формате с недостаточными данными для дальнейшего выведения лога.
Я так понимаю, это можно как-то сделать через XSLT?
В общем посоветуйте пожалуйста в какую сторону копать.