Вводящая в заблуждение проверка Java XML

Я проверяю XML на XSD. Но мое сообщение об ошибке проверки Java отличается от сообщения об ошибке проверки XMLSpy. Здесь XMLSpy является правильным, а сообщение проверки Java вводит в заблуждение. Я использую следующий код для проверки XML:

SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setValidating(true);
factory.setNamespaceAware(true);
SAXParser saxParser = factory.newSAXParser();
saxParser.setProperty(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA);

saxParser.setProperty(JAXP_SCHEMA_SOURCE,new File("TXLife2.26.00.xsd"));
MySAXHandler dh = new MySAXHandler();
saxParser.parse(new File("test.xml"), dh);

Сообщение проверки Java говорит:

cvc-complex-type.2.4.a: Обнаружено недопустимое содержимое, начиная с элемента ''.

Но XMLSpy говорит:

Элемент не разрешен в этом месте под элементом

1 ответ

Решение

Полученное сообщение об ошибке зависит от используемого вами валидатора. Оба сообщают об одной и той же ошибке. Если вам нужен валидатор Java XSD с улучшенными сообщениями об ошибках, попробуйте Saxon: вы можете предпочесть его. Но сообщение об ошибках - неточное искусство: при разработке сообщений об ошибках разработчик работает с ограниченной информацией о (а) том, что хотел пользователь, и (б) о том, что пользователь понимает в технологии.

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