Xerces и валидация по xsd

Aug 29, 2012 09:28

Вчера потратил кучу времени, чтобы сделать валидацию XML по XSD. Внятной информации нету (или не осилил нарыть), кроме этого примера, но он почему-то не работал. Точнее, работал, но не ругался на открывающий и закрывающий тег, не указанный в схеме
В общем, почти все в указанном выше примере для меня было гуд, но пришлось изменить пару методов для парсера:

оригинал:

domParser.setErrorHandler(&parserErrorHandler); domParser.setValidationScheme(XercesDOMParser::Val_Auto); domParser.setDoNamespaces(true); domParser.setDoSchema(true); domParser.setValidationConstraintFatal(true);

то, что получилось у меня:

parser.setDoNamespaces(true); parser.setDoSchema(true); parser.setExternalNoNamespaceSchemaLocation(schema_file.c_str()); parser.setErrorHandler(&parserErrorHandler); parser.setDoValidation(true); parser.setValidationScheme(XercesDOMParser::Val_Auto); parser.setValidationSchemaFullChecking(true);

Ключевым моментов для меня была опция parser.setValidationSchemaFullChecking(true), которую я нашел тупо просмотрев методы класса )...
Возможно, еще пригодится когда-нибудь.

типс анд трипс

Previous post Next post
Up