Как добавить объявление xml к выводу intellij xml

Терпите меня... я понятия не имею о кодировании, и я пытаюсь добавить несколько вещей в существующий код. В коде нет ошибок, однако в выводе пропущено объявление xml.

Я получаю сообщение: " Этот XML-файл не имеет никакой информации о стиле, связанной с ним". Дерево документа показано ниже.

Токовый выход

- <List xmlns="">
- <item>
  <Project_name>just like that</Project_name> 
  </item>
...

Ожидаемый результат

- <?xml version="1.0" encoding="UTF-8"?>
- <item>
  <Project_name>just like that</Project_name> 
  </item>
...

Я использую Intellij, Java.

Линия, которая производит выходной ток здесь

> @RequestMapping(value = "/testproject",method = RequestMethod.GET produces = MediaType.APPLICATION_XML_VALUE) // to get xml output

Я знаю, что это очень мало информации, но для конфиденциальности я не могу добавить больше кода

С уважением

1 ответ

Чтобы преобразовать ваш ответ в формат XML, должна существовать соответствующая схема. Обычно это можно сделать с помощью аннотации JAXB в классах, которые вы хотите отправить в своем xml-ответе. Простой пример приведен ниже:

@Controller
public class MyController {

    @RequestMapping(path = "/", method = RequestMethod.GET, produces = 
        MediaType.APPLICATION_XML_VALUE)
    public @ResponseBody MyList get(){
        MyList list = new MyList(new ArrayList<Integer>(){{
            add(2);
            add(3);
            add(4);
        }});

        return list;
    }
}

@XmlRootElement(name = "MyList")
class MyList{
    List<Integer> list;

    public MyList() {
    }

    public MyList(List<Integer> list) {
        this.list = list;
    }

    public List<Integer> getList() {
        return list;
    }

    @XmlElement
    public void setList(List<Integer> list) {
        this.list = list;
    }
}

Это произведет следующее

 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
        <MyList>
            <list>2</list>
            <list>3</list>
            <list>4</list>
        </MyList>

Вам нужно добавить @XmlRootElement а также @XmlElement аннотация к классу, который вы хотите отправить в формате XML.

Другие вопросы по тегам