2010-03-05 3 views
2

Речь идет о проверке XML-файла (например: marshalledfile.xml) в отношении схемы XML (например: schemafile.xsd). мы используем jaxb для превращения java-объектов в xml-файл.проверить файл xml на xml-схему

  1. Каков наилучший способ для этого?

  2. Может кто-нибудь дать простой пример того, как это сделать?

Цените свою помощь.

Спасибо, Alo

ответ

5

Вы можете установить схему непосредственно в ИАС. Во-первых, необходимо создать экземпляр схемы (javax.xml.validation пакет):

SchemaFactory factory = SchemaFactory.newInstance(
      XMLConstants.W3C_XML_SCHEMA_NS_URI); 
Schema schema = factory.newSchema(new StreamSource(new File("schema1.xsd"))); 

Теперь, когда у вас есть схемы, просто установите свойство в ИАС для проверки сгенерированного XML:

MovieLibrary library = ...; // <-- your JAXB-annotated tree 

JAXBContext ctx = JAXBContext.newInstance(MovieLibrary.class); 
Marshaller marshaller = ctx.createMarshaller(); 
marshaller.setSchema(schema); 
marshaller.marshal(new JAXBElement<MovieLibrary>(new QName("movieLibrary"), 
                MovieLibrary.class, library), 
        new FileOutputStream("/tmp/library.xml")); 

См. Также «Как проверить ввод данных по схеме XML?» в Jarfiller JAXB Guide.

Смежные вопросы