因此,我使用Axis 2从WSDL文件(使用XMLBeans)生成存根类,并且还从其XSD文件生成实体。
问题是:生成的envolope是这样的:
<?xml version='1.0' encoding='utf-8'?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
<soapenv:Header>
<nfeCabecMsg soapenv:mustUnderstand="false" xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NfeAutorizacao">
<versaoDados>3.10</versaoDados>
<cUF>51</cUF>
</nfeCabecMsg>
</soapenv:Header>
<soapenv:Body>
<nfeDadosMsg xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NfeAutorizacao">
<enviNFe versao="3.10" xmlns="http://www.portalfiscal.inf.br/nfe">
<idLote>1</idLote>
<indSinc>0</indSinc>
<NFe>
<!-- supressed -->
</NFe>
</enviNFe>
</nfeDadosMsg>
</soapenv:Body>
</soapenv:Envelope>
更具体地说,问题在于:
<enviNFe versao="3.10" xmlns="http://www.portalfiscal.inf.br/nfe">
<idLote>1</idLote>
<indSinc>0</indSinc>
<NFe>
<!-- supressed -->
</NFe>
</enviNFe>
但是,由于某些随机原因,他们希望它是这样的:
<enviNFe versao="3.10" xmlns="http://www.portalfiscal.inf.br/nfe">
<idLote>1</idLote>
<indSinc>0</indSinc>
<NFe xmlns="http://www.portalfiscal.inf.br/nfe">
<!-- supressed -->
</NFe>
</enviNFe>
是的,复制这一个孩子中父母的xmlns
,我知道这是没有意义的,但我无法控制它。
为了防止其他疯狂,我已经在生成的存根类中替换了代码,更确切地说,我添加了setUseDefaultNamespace
选项。
我尝试了一些假设来解决这个问题,但都无法解决。我怎么能这样做?
答案 0 :(得分:0)
我最终更改了生成的.java
文件。
问题似乎是提供的wsdl