Cảm ơn bạn, cảm ơn bạn, cảm ơn bạn. Tôi đã đấu tranh với vấn đề này một thời gian và nó không thực sự rõ ràng như thế nào để xác định lược đồ mặc dù các mẫu XML thực tế là khá thẳng về phía trước. Vấn đề lớn nhất của tôi là làm thế nào để cấu trúc một lớp JAXB để xử lý việc này. Chỉ đến khi tôi thấy định nghĩa lược đồ của bạn và chạy nó qua xjc, tôi đã có thể thấy cách thiết lập nó trong JAXB. Các lớp Java JAXB là IMHO khá trực quan và tôi sẽ không bao giờ đoán làm thế nào để thiết lập nó. Tôi đã thử nhiều cách khác nhau để làm việc này mà không thành công.
Dưới đây là mẫu của lớp Java JAXB được tạo từ lược đồ đã đăng của bạn. Điều quan trọng là sử dụng các chú thích @XmlValue trên sân (bạn cũng có thể sử dụng nó trên getter của lĩnh vực này nhưng loại bỏ các chú thích XmlAccessorType:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = { "value" })
@XmlRootElement(name = "tagname")
public class Tagname {
@XmlValue
protected boolean value;
@XmlAttribute(name = "description", required = true)
protected String description;
public boolean isValue() {
return value;
}
public void setValue(boolean value) {
this.value = value;
}
get and set for description omitted.
Đây là marshalled JAXB tài liệu XML từ lớp đưa ra:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<tagname description="The Description">true</tagname>
Tôi hy vọng phần bổ sung này sẽ giúp những người khác đang gặp khó khăn với cùng vấn đề không rõ ràng.
Nguồn
2013-12-03 18:41:56