Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Jackson XmlMapper()指定命名空间_Jackson_Xml Namespaces_Woodstox - Fatal编程技术网

如何使用Jackson XmlMapper()指定命名空间

如何使用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

我有一个需要解析为XML的POJO。我用的是杰克逊2.10

我传递我的对象并进行如下解析:

    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本身允许绑定名称空间的定义(尽管不能使用前缀)。