Как добавить объявление 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.