Tôi có một dự án khởi động mùa xuân. Tôi có một vài xsds trong dự án của tôi. Tôi đã tạo ra các lớp bằng cách sử dụng maven-jaxb2-plugin. Tôi đã sử dụng hướng dẫn this để tải xuống ứng dụng khởi động mẫu.Làm thế nào để sử dụng mùa xuân để marshal và unmarshal xml?
import org.kaushik.xsds.XOBJECT;
@SpringBootApplication
public class JaxbExample2Application {
public static void main(String[] args) {
//SpringApplication.run(JaxbExample2Application.class, args);
XOBJECT xObject = new XOBJECT('a',1,2);
try {
JAXBContext jc = JAXBContext.newInstance(User.class);
Marshaller marshaller = jc.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.marshal(xObject, System.out);
} catch (PropertyException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JAXBException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Nhưng quan tâm của tôi là tôi cần phải có tất cả các lớp jaxb của lược đồ được ánh xạ. Cũng có một cái gì đó trong mùa xuân mà tôi có thể sử dụng để làm cho nhiệm vụ của tôi dễ dàng hơn. Tôi đã xem dự án Spring OXM nhưng nó có bối cảnh ứng dụng được cấu hình trong xml. Có khởi động mùa xuân có bất cứ điều gì mà tôi có thể sử dụng ra khỏi hộp. Bất kỳ ví dụ nào cũng sẽ hữu ích.
Sửa
tôi đã cố gắng xerx593's answer và tôi chạy một thử nghiệm đơn giản sử dụng phương pháp chính
JaxbHelper jaxbHelper = new JaxbHelper();
Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
marshaller.setClassesToBeBound(XOBJECT.class);
jaxbHelper.setMarshaller(marshaller);
XOBJECT xOBJECT= (PurchaseOrder)jaxbHelper.load(new StreamSource(new FileInputStream("src/main/resources/PurchaseOrder.xml")));
System.out.println(xOBJECT.getShipTo().getName());
Nó chạy hoàn toàn tốt đẹp. Bây giờ tôi chỉ cần cắm nó bằng cách sử dụng khởi động mùa xuân.
Làm thế nào bạn cấu hình người vẽ bản đồ không quan trọng. XML chỉ là một phương tiện để kết thúc. Chỉ cần tạo một 'Jaxb2Marshaller' và sử dụng nó. –
@M.Tất cả các ví dụ hiển thị cấu hình xml của jaxb2Marshaller, tôi đang tìm một ví dụ cấu hình Java. –
Điều gì là khó khăn như vậy về 'new Jaxb2Marshaller() '? –