我正在使用 SpringWS 和 JAXB 注释类来生成 XML 作为 Web 服务客户端的有效负载。我创建了 package-info.java 来生成前缀:
@javax.xml.bind.annotation.XmlSchema(xmlns =
{
@javax.xml.bind.annotation.XmlNs(prefix = "pay",
namespaceURI = "http://www.paymentexpress.com"),
@javax.xml.bind.annotation.XmlNs(prefix = "xsd",
namespaceURI = "http://www.w3.org/2001/XMLSchema")
},
namespace = "http://www.paymentexpress.com",
elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED,
attributeFormDefault = javax.xml.bind.annotation.XmlNsForm.UNQUALIFIED)
package com.mycompany;
这会产生:
<pay:GetTransactionId
xmlns:pay="http://www.paymentexpress.com"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<pay:tranDetail>
...
Web 服务客户端测试失败。问题是使用soapUI 发送这个XML 我得到与测试相同的错误,当我删除xmlns:pay 声明时,它在soapUI 中有效。
有什么方法可以生成前缀并且不使用 JAXB 在生成的 XML 中包含 xmlns 声明?