如何使用Jackson XmlMapper()指定命名空间
我有一个需要解析为XML的POJO。我用的是杰克逊2.10 我传递我的对象并进行如下解析:如何使用Jackson XmlMapper()指定命名空间,jackson,xml-namespaces,woodstox,Jackson,Xml Namespaces,Woodstox,我有一个需要解析为XML的POJO。我用的是杰克逊2.10 我传递我的对象并进行如下解析: ObjectMapper mapper = new XmlMapper(); mapper.enable(SerializationFeature.INDENT_OUTPUT); byte[] val = mapper.writeValueAsBytes(infoToPost); System.out.println(mapper.writerWithDe
ObjectMapper mapper = new XmlMapper();
mapper.enable(SerializationFeature.INDENT_OUTPUT);
byte[] val = mapper.writeValueAsBytes(infoToPost);
System.out.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(infoToPost));
我的输出有xmlns:wstxnsl。我希望它是xmlns:xsi,后跟xsi:type“”
我相信这是因为woodstox被用作默认值。我需要改变它
我需要做什么才能让杰克逊做到这一点
期望输出:
<network_object xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="subnetNetworkObjectDTO">
实际产量
<wstxns1:network_objects xmlns:wstxns1="http://www.w3.org/2001/XMLSchema-instance">
看看这个问题。它展示了如何为内部类配置名称空间前缀。你能展示你的带有所有注解的POJO
模型吗?如果没有模型,很难猜测您通常期望什么。您是否可以创建所有类的简单用法,以及预期的用途?什么是network\u object
和什么是subnetNetworkObjectDTO
?最初的问题表明对XML名称空间有一些误解,因为期望输出和实际输出具有不同的实际绑定名称空间(然后是逻辑内容),它们并不等价。Jackson本身允许绑定名称空间的定义(尽管不允许使用前缀)。它展示了如何为内部类配置名称空间前缀。你能展示你的带有所有注解的POJO
模型吗?如果没有模型,很难猜测您通常期望什么。您是否可以创建所有类的简单用法,以及预期的用途?什么是network\u object
和什么是subnetNetworkObjectDTO
?最初的问题表明对XML名称空间有一些误解,因为期望输出和实际输出具有不同的实际绑定名称空间(然后是逻辑内容),它们并不等价。Jackson本身允许绑定名称空间的定义(尽管不能使用前缀)。