Tôi có một mô hình dữ liệu hiện có. Tôi muốn thể hiện mô hình dữ liệu này về XML.JAXB - Chuyển sang XSD hoặc XSD sang đậu?
Dường như tôi có hai lựa chọn nếu tôi sử dụng JAXB:
- Tạo một XSD phản ánh mô hình dữ liệu của tôi, và sử dụng XJC để tạo các đối tượng ràng buộc. Marshalling và unmarshalling sẽ liên quan đến việc tạo ra một lớp "ánh xạ" sẽ lấy các đối tượng dữ liệu hiện có của tôi và ánh xạ chúng tới các đối tượng mà xjc tạo ra. Ví dụ, trong mô hình dữ liệu của tôi, tôi có một lớp Doc và JAXB sẽ tạo một lớp Doc khác với các trường chính xác giống nhau, và tôi sẽ phải ánh xạ từ lớp Doc của tôi tới lớp Doc của xjc.
- Chú thích mô hình dữ liệu hiện có của tôi bằng chú thích JAXB và sử dụng schemagen để tạo XSD từ các lớp được chú thích của tôi.
Tôi có thể thấy các ưu và nhược điểm của cả hai cách tiếp cận. Dường như hầu hết mọi người sử dụng JAXB đều bắt đầu với tệp XSD. Nó có ý nghĩa rằng XSD phải là sự thật tiêu chuẩn vàng, vì nó thể hiện mô hình dữ liệu theo cách thực sự đa nền tảng.
Tôi có khuynh hướng bắt đầu với XSD trước, nhưng có vẻ như tôi phải viết và duy trì một lớp bản đồ riêng biệt để chuyển dữ liệu giữa thế giới của tôi và thế giới JAXB.
Bất kỳ đề xuất nào?
JAXB 2 được thiết kế với kịch bản này trong tâm trí. Nếu bạn muốn thể hiện ánh xạ của mình mà không có chú thích, bạn có thể sử dụng các triển khai JAXB như EclipseLink MOXy. –