如何将xml声明添加到intellij xml输出中

时间:2017-04-27 13:45:52

标签: java xml intellij-idea

忍受我......我不知道编码,我试图在现有代码中添加一些东西。代码没有错误,但输出错过了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 个答案:

答案 0 :(得分:0)

为了将您的响应编组为XML格式,必须存在相应的模式。通常,这可以在要在xml响应中发送的类中使用JAXB annotation来完成。一个简单的例子如下:

@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格式发送的类中。