2010-09-16 22 views
5

Tôi có một lược đồ được đọc bởi một vài ứng dụng khác nhau để tạo biểu mẫu; một trong số họ sử dụng JAXB/XJC để biên dịch cấu trúc lớp của nó. Giản đồ chứa thông tin về thông tin ứng dụng cho các tên trường thân thiện, ví dụ:JAXB - XJC có thể biên dịch ứng dụng thành cấu trúc lớp không?

<xs:element name="HomeAddress" type="xs:string"> 
    <xs:annotation> 
    <xs:appinfo>Home address</xs:appinfo> 
    </xs:annotation> 
</xs:element> 

Có cách nào để XJC biên dịch thông tin này không?

+0

Bằng cách nào? Kết quả mong muốn của bạn trong ví dụ của bạn là gì? – musiKk

+0

Nó không thực sự quan trọng, miễn là tôi có thể truy cập nó tại thời gian chạy từ Java. Theo chú thích (mà tôi có thể lấy với sự phản chiếu) hoặc bởi thành viên tĩnh có vẻ dễ nhất. –

Trả lời

5

Bạn có thể sử dụng Annotate plugin để thêm tùy ý các chú thích Java vào các lớp giản đồ có nguồn gốc từ bạn. Với plugin này, bạn có thể quản lý một cú pháp như sau:

<xs:element name="HomeAddress" type="xs:string"> 
    <xs:annotation> 
    <xs:appinfo> 
     <ann:annotate xmlns:ann="http://annox.dev.java.net/com.acme.foo"> 
     <my:Label value="Home address"/> 
     </ann:annotate> 
    </xs:appinfo> 
    </xs:annotation> 
</xs:element> 

Một bạn sẽ nhận được một cái gì đó như:

@Label("Home address") // FQCN is com.acme.foo.Label 
public String getHomeAddress(...) {} 
+0

Tuyệt vời, cảm ơn! –

+0

@lexicore: và nếu bạn KHÔNG thể sửa đổi lược đồ vì nó được cung cấp bởi bên thứ 3? –

+0

@Artem Oboturov: Bạn có thể làm điều tương tự với các tệp ràng buộc ('* .xjb') mà không sửa đổi lược đồ. – lexicore

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