ArrayList для повторения XML с помощью betwixt - PullRequest
0 голосов
/ 19 октября 2011

Я использую 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 Ответ

0 голосов
/ 13 августа 2012

Я не думаю, что конкретный формат возможен, то есть вы не можете гарантировать, что 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, а затем записать их попарно.

...