在JacksonPOJO中设置命名空间前缀

0mkxixxg  于 2023-04-30  发布在  其他
关注(0)|答案(1)|浏览(112)

在一个 Sping Boot 2.7.7 application using *jackson-databind,jackson-dataformat-xml and jackson-datatype-jsr 310 * 我想生成这个带有命名空间的XML,更重要的是,前缀n1(必须是这个):

<?xml version="1.0" encoding="ASCII" ?>
<n1:EventMessage
      xmlns:n1="http://we.com/2016/path/Types">
   <n1:Header>
      <n1:EventID>eventid</n1:EventID>
      <n1:EventTime>eventTime</n1:EventTime>
   </n1:Header>
</n1:EventMessage>

为此,我有两个POJO:

@JacksonXmlRootElement(localName = "EventMessage", namespace = "http://we.com/2016/path/Types")
public class EventMessage {
    @XmlElement(name = "Header")
    private Header header;
}
public class Header {

    @XmlElement(name = "EventID")
    private String eventId;

    @XmlElement(name = "EventTime")
    private String eventTime;

并尝试生成:

XmlMapper mapper = new XmlMapper();
mapper.writeValueAsString(eventMessage);

我得到的是

<?xml version="1.0" encoding="ASCII" ?>
<EventMessage
      xmlns="http://we.com/2016/path/Types">
   <Header>
      <EventID>eventid</EventID>
      <EventTime>eventTime</EventTime>
   </Header>
</EventMessage>

如何添加 n1: 前缀并将 :n1 添加到xmlns?

qzlgjiam

qzlgjiam1#

我不认为你可以用namespace属性来描述它。它需要是自定义元素xmlns:n1,而不是命名空间

相关问题