2012-11-01 20 views
22

Tôi đang sử dụng JAXB và XJC lần đầu tiên.JAXB, XJC -> tạo nhiều tệp lớp

Tôi muốn tạo các lớp Java từ tệp XML để tôi sử dụng this online helper để tạo lược đồ từ tệp XML.

Sau đó tôi chỉ sử dụng dòng lệnh này để tạo các lớp Java:

xjc myschema.xsd 

đó là công việc nhưng tôi chỉ nhận được một file Java và nhiều lớp tĩnh bên trong nó. Điều này có thể tạo ra nhiều tệp java chỉ chứa một classe cho mỗi tệp không?

Cảm ơn bạn

Trả lời

37

Theo mặc định JAXB (JSR-222) sẽ tạo ra các lớp bên trong tĩnh với nhiều loại phức tạp lồng nhau để ngăn chặn xung đột tên lớp. Bạn có thể sử dụng tệp ràng buộc bên ngoài để tắt hành vi này.

binding.xml

Một tập tin liên kết cho phép bạn tùy chỉnh cách các lớp Java được tạo ra từ một lược đồ XML.

<jaxb:bindings 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" 
    version="2.1"> 
    <jaxb:globalBindings localScoping="toplevel"/> 
</jaxb:bindings> 

XJC Gọi

Tùy chọn -b được sử dụng với lệnh XJC để xác định một tập tin ràng buộc.

xjc -b binding.xml myschema.xsd 

Để biết thêm thông tin

+1

Rất cám ơn, tôi sẽ kiểm tra nó càng sớm càng tốt –