如何使用XSD从XML响应中删除名称空间前缀?

时间:2015-03-09 17:57:13

标签: java xml xsd xml-namespaces

我已经从XSD生成了Java类,在我的XML响应中,我得到了一个我不需要的ns2:前缀。

例如,我收到了这个回复:

<ns2:location xmlns:ns2="http://www.example.com/">
  <ns2:response/>
</ns2:location>

但我期待的回应如下:

<location>
  <response/>
</location>

1 个答案:

答案 0 :(得分:2)

您的示例不仅显示名称空间前缀ns2)声明,还显示http://www.example.com/的实际名称空间location和{和response元素)并不是理想的。

如果您完全控制XSD,则可以删除

targetNamespace="http://www.example.com/"
来自XSD中xs:schema元素的

属性。符合此XSD的XML文档元素将不再位于任何名称空间中,生成的Java类将反映此新设置。

但请注意,删除(或更改)targetNamespace会有效地更改XSD中定义的组件的名称。如果XSD由另一方定义或已被他人使用,请三思而后行。