如何从Jaxb2生成的xml中删除名称空间

时间:2019-01-25 18:16:46

标签: java spring jaxb

我有一个问题,与Jaxb2编组的XML中的名称空间有关。当我打印出xml文件时,我在xml标签上得到了“额外”注释。有什么方法可以摆脱多余的名称空间注释?

这里是一个例子:

<?xml version="1.0" encoding="UTF-8" standalone="yes">
<root xmlns:ns2="http://www.something.com/something">
<ns2:food>steak</ns2:food>
<ns2:beverage>water</ns2:beverage>
</root>

我想摆脱ns2:命名空间。

我尝试过:

 <bean id="glsJaxb2Marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
    <property name="contextPath" value="${gls.jaxb2.contextpath}"/>
    <property name="marshallerProperties">
        <map>

            <entry key="com.sun.xml.bind.namespacePrefixMapper">
                <bean class="es.fs.fswarehousing.gls.ws.EmptyNamespacePrefixMapper"/>
            </entry> 
   </map>
    </property>

</bean>

但是我得到了:

 ERROR [TaskExecutor-master-555-ProcessTask [8796749431734]] 
[ActionNode] Error executing
 org.springframework.oxm.UncategorizedMappingException: Unknown JAXB 
exception; nested exception is javax.xml.bind.PropertyException: name: 
com.sun.xml.bind.namespacePrefixMapper value: 
es.fs.fswarehousing.gls.ws.EmptyNamespacePrefixMapper@17f6a8fe

有人可以给我任何提示吗:)?

0 个答案:

没有答案