Tôi đang phân tích một tài liệu XML có các nút như sau:Sử dụng JAXB để unmarshall yếu tố khác nhau với/tên động
<objects>
<dog>
<data1>...</data1>
<data2>...</data2>
<data3>...</data3>
</dog>
<cat>
<data1>...</data1>
<data2>...</data2>
<data3>...</data3>
</cat>
</objects>
Các yếu tố data1, data2, data3 luôn nhất quán. Chỉ có thẻ cha thay đổi. Trong mô hình đối tượng của tôi, tôi có một đối tượng đại diện cho tất cả các trường hợp này. Làm thế nào tôi có thể nhận được JAXB để xử lý trường hợp này mà không biết trước tên của phần tử?
@XMLAnyElement khớp với tất cả các đối tượng nhưng không tạo đối tượng thuộc loại thích hợp; Tôi nhận được một danh sách các đối tượng Nút thay vì đối tượng của tôi. đối tượng của tôi hiện trông giống như sau:
public class MyObject {
protected String otherData;
@XmlAnyElement
@XmlElementWrapper(name = "objects")
protected List<MyChildObject> childObjects;
}
public class MyChildObject {
protected String data1;
protected String data2;
protected String data3;
}
Bất kỳ ý tưởng làm thế nào để xử lý trường hợp này ngắn của việc thay đổi định dạng XML đến sử dụng <object type="dog">
yếu tố?
Cảm ơn, điều đó có ý nghĩa. Chúng ta sẽ tiếp tục và thay đổi lược đồ vì chúng ta có khả năng đó trong lúc này. – chetan