2012-04-04 14 views
8

tôi muốn biết tại sao chúng ta cần phải xác định @XmlAccessorType Chú khi làm việc với JAXB.JAXB: Liệu sản phẩm @XmlAccessorType chú thích chỉ cho serialization và không có gì để làm với Binding dữ liệu?

Khi tôi googled cho điều này tôi phát hiện ra mô tả này từ một trang web nêu rõ điều này @XmlAccessorType đặt khả năng nối tiếp trường và thuộc tính mặc định. Theo mặc định, JAXB tuần tự hóa các trường và thuộc tính công khai. Bằng cách đặt @XmlAccessorType, bean có thể chọn chỉ cho phép các trường được chú thích được tuần tự hóa.

Ở đây tác giả đề cập rằng với chú thích này nó mang lại quyền kiểm soát trên serialization.

Câu hỏi của tôi là, vì vậy @XmlAccessorType không liên quan gì đến tính năng Ràng buộc và Ràng buộc JAXB từ XML sang java và java thành XML, và tất cả chỉ là về Chuỗi số hóa.

Trả lời

13

@XmlAccessorType chú thích JAXB của chỉ được sử dụng bởi JAXB (JSR-222) triển khai để xác định làm thế nào để sắp xếp một tập tin đến/từ XML:

Thông thường các quyết định chính phải được thực hiện là giữa FIELD & PROPERTY/PUBLIC. FIELD đặc biệt hữu ích khi bạn có logic trong get phương pháp/thiết lập của bạn mà bạn không muốn kích hoạt trong marshalling/unmarshalling. Để xem một cách lựa chọn này ảnh hưởng đến Xem Ánh xạ siêu dữ liệu:

NONE là một lựa chọn hữu ích khi bạn có nhiều tài sản unmapped và bạn muốn nói với thực hiện JAXB của bạn để chỉ bản đồ các lĩnh vực/thuộc tính bạn đã chú thích. Điều này có thể dễ dàng hơn rất nhiều so với việc thêm rất nhiều chú thích @XmlTransient vào mô hình của bạn.

Fore thêm thông tin

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