XML форматирование тегов - PullRequest
0 голосов
/ 05 марта 2020

Я пытаюсь распечатать карту и напечатать XML в обмен на верблюдах. Но я получаю дополнительный тег xml для каждого класса, который объявлен как список. Вот классы Pojo, которые я создал.

Student:

public class Student {

  @XmlElement
  private List<StudentRecord> studentRecord;


}

Student Record

public class StudentRecord {

  @XmlElement
  private String name;


  @XmlElement
  private int age;


  @XmlElement
  private String department;


}

В моем классе процессора я устанавливаю значения как

Student student = new Student();
List<StudentRecord> studentlist = new ArrayList<StudentRecord>();
StudentRecord srd = new StudentRecord();
srd.setName(studentname);
srd.setAge(studentage);
srd.setDepartment(studentDepartment);
studentlist.add(srd);
student.setStudentRecord(studentlist);

Я использую XML маппер, чтобы преобразовать в xml формат и отправить его, используя

exchange.getIN().setBody(xmlMapper.writeValueAsString(student));

Я получил ниже вывод.

<Student>
  <StudentRecord>
    <StudentRecord>
        <Name>John</Name>
        <age>22</age>
        <Department>Computer Science</Department>
    </StudentRecord>
   </StudentRecord>
</Student>

Фактический вывод мне нужен :

<Student>
    <StudentRecord>
        <Name>John</Name>
        <age>22</age>
        <Department>Computer Science</Department>
    </StudentRecord>
</Student>

Я не могу найти, где я иду не так. Должен ли я изменить pojo или мой код, где я устанавливаю значения. Любая помощь приветствуется.

1 Ответ

0 голосов
/ 06 марта 2020

Вы назвали свой элемент списка studentRecord. Поэтому у вас есть два вложенных элемента с одинаковым именем . Внешний - это элемент списка, внутренний - контейнерный элемент класса StudentRecord.

Если XML будет таким, как вы хотите, вы бы сделали список невидимым . Пример вывода с одним учеником может быть списком с 1 элементом. Но это также может быть класс ученика, который содержит одного ученика.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...