如果我在根元素上声明命名空间,如下所示:
@JacksonXmlRootElement(namespace = "urn:stackify:jacksonxml", localName = "PersonData")
public class Person {
private String id;
private String name;
private String note;
}
它产生:
<PersonData xmlns="urn:stackify:jacksonxml">
<id xmlns="">12345</id>
<name xmlns="">Graham</name>
<note xmlns="">Hello</note>
</PersonData>
但我只想在根元素上使用命名空间。 xmlns 属性不应出现在子元素上。
我该如何存档?
最佳答案
我发现有一个更优雅的解决方法。
你可以像这样为你的命名空间定义常量:
@JacksonXmlRootElement(localName = "PersonData")
public class Person {
@JacksonXmlProperty(isAttribute = true)
private final String xmlns = "urn:stackify:jacksonxml";
private String id;
private String name;
private String note;
}
关于java - jackson Xml : How to add namespace only on root?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51947347/