powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Строгий валидатор
4 сообщений из 4, страница 1 из 1
Строгий валидатор
    #39347408
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, возможна ли в яве строгая валидация документов. Такая, чтобы понимала констрейнты, schematron и прочее
сейчас используется такой незамысловатый код
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
try {
	SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); 
	Schema schema = sf.newSchema(this.getClass().getResource("/MySchema.xsd")); 

	File f = new File(fileName);
	Validator validator = schema.newValidator();
	validator.validate(new StreamSource(f));
	log.info("OK");
} catch (Exception e) {
	log.error(e.getMessage(), e);
}

который с легкостью пропускает все косяки в констрейнтах. На другом конце вебсервис на .net успешно заворачивает их назад. К сожалению, сообщения от него часто невразумительные и приходится проявлять чудеса дедукции и телепатии. Хотелось бы без этого героизма понимать ошибки в документах еще до их отправки.
...
Рейтинг: 0 / 0
Строгий валидатор
    #39347425
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ivanra,

Можно попробовать подключить XML парсер посвежее, если вдруг встроеный не понимает всех фич XSD. О каких конкретно констрейтах речь?
...
Рейтинг: 0 / 0
Строгий валидатор
    #39347449
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И о каком парсере ?
...
Рейтинг: 0 / 0
Строгий валидатор
    #39347468
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С констрейнтами я наверно погорячился, их более менее понимает. Выяснилось, что дело в подключенной разметке (schematron):
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sch="http://www.ascc.net/xml/schematron">
...
	<xsd:complexType name="partnerRef">
		<xsd:annotation>
			<xsd:appinfo>
				<sch:report test="not(@pid)=not(@inn) or not(@inn)!=not(@kpp)">
          Ссылка на партнера должна содержать либо атрибут 'pid', либо атрибуты 'inn' и 'kpp'. 
			        </sch:report>
			</xsd:appinfo>
		</xsd:annotation>
		<xsd:attribute name="pid" type="pid"/>
		<xsd:attribute name="inn" type="inn"/>
		<xsd:attribute name="kpp" type="kpp"/>
	</xsd:complexType>
</xsd:schema>


Буду смотреть реализации, тут вроде что-то есть http://www.schematron.com/validators.html
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Строгий валидатор
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]