2
這是針對XML模式(例如:schemafile.xsd)驗證XML文件(例如:marshalledfile.xml)。我們使用jaxb將java對象編組成一個xml文件。根據xml模式驗證xml文件
什麼是最好的辦法呢?
有人可以給一個簡單的例子,說明如何做到這一點?
感謝您的幫助。
感謝, ALO
這是針對XML模式(例如:schemafile.xsd)驗證XML文件(例如:marshalledfile.xml)。我們使用jaxb將java對象編組成一個xml文件。根據xml模式驗證xml文件
什麼是最好的辦法呢?
有人可以給一個簡單的例子,說明如何做到這一點?
感謝您的幫助。
感謝, ALO
可以在現Marshaller直接設置模式。首先,你需要創建一個架構實例(javax.xml.validation包):
SchemaFactory factory = SchemaFactory.newInstance(
XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = factory.newSchema(new StreamSource(new File("schema1.xsd")));
現在您有了架構,只需在現Marshaller屬性設置爲 驗證生成的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。