У меня есть файл xml, созданный с помощью jaxb. Мне нужно проверить его на соответствие документу xsd. Можно ли просто выполнить проверку без декомпозиции. Затем мне нужно распечатать ошибки в файле xml.
Проверить xml, созданный с помощью jaxb, на файл xsd
comment
Одним из основных преимуществ создания кода привязки из xsd и последующего использования кода для создания экземпляра XML является вывод действительного и правильно сформированного XML. Я не уверен, почему вы хотите подтвердить это снова?
- person Aravind Yarram   schedule 08.06.2012
comment
Вы можете установить Schema и ValidationEventHandler на самом упаковщике. Он будет проверяться по схеме во время сортировки. См. docs.oracle.com/javase/6/docs/api/javax/xml/bind/
- person Ritesh   schedule 10.06.2012
Ответы (1)
Да, вы можете использовать валидатор, найденный в java от 1.5. вот ссылка документ
Помимо этого, вы можете использовать API на основе dom или потока для проверки вашего XML-документа на соответствие файлу xsd. Если вы хотите использовать SAX API для своей задачи, послушайте пример:
try {
String schemaLang = "http://www.w3.org/2001/XMLSchema";
SchemaFactory factory = SchemaFactory.newInstance(schemaLang);
Schema schema = factory.newSchema(new StreamSource("sample.xsd"));
Validator validator = schema.newValidator();
validator.validate(new StreamSource("test.xml"));
} catch (SAXException e) {
System.out.println(" sax exception :" + e.getMessage());
} catch (Exception ex) {
System.out.println("excep :" + ex.getMessage());
}
В противном случае вы можете использовать DOM, DOM4J или XOM API. Дополнительные сведения см. здесь а>.
Существует связанный ответ также в stackoverflow.
person
Forhad
schedule
08.06.2012
Вы также можете проверить перед сортировкой: JAXBSource source = new JAXBSource(jaxbContext, objectBeingMarshalled); валидатор.валидате(источник);
- person Ritesh; 10.06.2012
я получаю это исключение exeception sax: соответствие цели инструкции обработки [xX][mM][lL] не разрешено.
- person AutoMEta; 14.02.2013
это означает, что в начале вашего XML есть пробел, удалите пробел или что-то еще в начале вашего XML, перейдите по ссылке: gonithethinker.blogspot.com/2012/06/ @AutoMeta
- person Forhad; 19.02.2013