2009-01-05 68 views
6

Mặc dù tôi đã là một nhà phát triển trong một thời gian nhưng tôi đã đủ may mắn để tránh làm nhiều việc với XML. Vì vậy, bây giờ tôi đã có một dự án mà tôi đã có để tương tác với một số dịch vụ web, và muốn sử dụng một số loại giải pháp lập bản đồ Object-to-XML.Thư viện Java OXM tốt nhất là gì?

Người duy nhất tôi biết là JAXB. Đó có phải là tốt nhất để đi với? Có đề xuất nào khác không?

Một lần nắm bắt - Tôi bị kẹt khi sử dụng Java 1.4, vì vậy tôi không thể làm bất kỳ điều gì với chú thích.

Trả lời

6

Nếu bạn đang gọi một dịch vụ web với WSDL, JAXB hoàn toàn là lựa chọn tốt nhất. Hãy nhìn vào wsimport, và bạn đã sẵn sàng và chạy trong 10 phút.

Tôi không nghĩ rằng JAXB 2.0 có thể thực hiện được trên Java 1.4. Bạn có thể cần phải sử dụng Axis để thay thế:

java -cp axis-1.4.jar;commons-logging-1.1.jar;commons-discovery-0.2.jar;jaxrpc-1.1.jar;saaj-1.1.jar;wsdl4j-1.4.jar;activation-1.1.jar;mail-1.4.jar org.apache.axis.wsdl.WSDL2Java http://someurl?WSDL 

Điều này sẽ tạo ra các nhánh tương tự cho JAXB.

Nếu bạn không có WSDL hoặc XSD, bạn luôn có thể generate one.

3

XStream. Tôi có vẻ nhớ rằng tôi đã sử dụng nó từ lâu rồi, và nó ổn. Không thể nói rằng tôi có đủ kinh nghiệm để giới thiệu nó cho hoặc chống lại, nhưng nó có giá trị kiểm tra ra chỉ là một thay thế.

+0

XStream thật tuyệt vời cho đối tượng Java -> XML. Nó không lý tưởng cho việc đảo ngược. Giả sử bạn có một WSDL hoặc XSD, JAXB là tốt hơn sau này. –

+0

XStream là rất tốt, nhưng nó có vấn đề với không gian tên. – duffymo

+1

Theo kinh nghiệm của tôi, XStream luôn rất hấp dẫn để bắt đầu, vì nó rất dễ dàng, nhưng sau đó nó kết thúc trở nên buggy đến nỗi tôi luôn từ bỏ nó cho JAXB cuối cùng. – skaffman

3

JIBX - được biết đến với hiệu suất

JAXB2 - Dễ sử dụng

Castor - Dễ sử dụng

khác - XMLBean, XStream

10

JAXB là sự lựa chọn tốt nhất:

EclipseLink JAXB (MOXy) là triển khai tốt nhất:

MOXY là một thực hiện JAXB với Extensions

MOXY có một tập tin bên ngoài cấu hình (dựa trên chú thích JAXB với phần mở rộng): lập bản đồ

đã XPath dựa, để ánh xạ sâu:

Được thiết kế để xử lý ORM ánh xạ các đối tượng, bao gồm hỗ trợ cho mối quan hệ hai chiều:

Các vấn đề liên quan