#java #xml #betwixt
#java #xml #betwixt
Вопрос:
Я использую Betwixt для вывода XML из класса Java, используя файлы .betwixt для настройки сопоставления.
Мне необходимо вывести некоторый XML, подобный этому (я должен соответствовать стороннему DTD:
<data>
<Status>Active</Status>
<StatusCount>3</StatusCount>
<Status>InActive</Status>
<StatusCount>5</StatusCount>
<Status>Banned</Status>
<StatusCount>1</StatusCount>
</data>
В моем классе есть метод, который возвращает список объектов StatusCount
List<StatusCount> getStatusCounts() {
Мой объект StatusCount имеет:
String getStatusName() { ... }
String getStatusCount() { ... }
Я не могу обработать конфигурацию betwixt, чтобы получить желаемый результат. Я получаю дополнительный элемент, обертывающий каждую пару узлов Status / StatusCount, которые мне не нужны.
Возможно ли не иметь этого элемента? Спасибо за любую помощь!
Ответ №1:
Я не думаю, что возможен такой конкретный формат, т. Е. Вы не можете гарантировать, что Status
и StatusCount
будут появляться один за другим.
Однако вы можете создать класс, который связывает представление XML и ваш StatusCount
объект, где у него есть два списка String
подобных:
public class StatusCountProxy {
private List<String> statusName = new ArrayList<String>();
private List<String> statusCount = new ArrayList<String>();
}
Из этих строк вы можете создавать свои пары. Это должно позволить десериализовать данный XML с помощью betwixt. Для сериализации в том же формате вам нужно немного взломать, где вы должны создать Status
объект и StatusCount
object, а затем записать их парами.