Java 如何删除名称空间xmlns:xsi=";http://www.w3.org/2001/XMLSchema-instance"

Java 如何删除名称空间xmlns:xsi=";http://www.w3.org/2001/XMLSchema-instance",java,axis2,wsdl2java,Java,Axis2,Wsdl2java,我请求soapenv提供以下信息: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 我想删除xmlns:xsi=”http://www.w3.org/2001/XMLSchema

我请求soapenv提供以下信息:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

我想删除xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance“

我可以从我的服务存根上完成吗?
也许可以用一些属性设置org.apache.axis.client.Call对象。。。我不知道。

如果您的问题在根目录中有xsi名称空间,那么扩展
SoapSerializationEnvelope
,然后重写方法:
write
,比如:

@Override
    public void write(XmlSerializer writer) throws IOException {
//        writer.setPrefix("i", this.xsi);
        writer.setPrefix("d", this.xsd);
        writer.setPrefix("c", this.enc);
        writer.setPrefix("v", this.env);
        writer.startTag(this.env, "Envelope");
        writer.startTag(this.env, "Header");
        this.writeHeader(writer);
        writer.endTag(this.env, "Header");
        writer.startTag(this.env, "Body");
        this.writeBody(writer);
        writer.endTag(this.env, "Body");
        writer.endTag(this.env, "Envelope");
    }

为什么要删除名称空间?我真的不知道。开发该Web服务的程序员告诉我,该名称空间是错误的。如果
xsi
前缀没有在任何地方使用,那么该声明在那里不会有任何区别,但是如果XML中的任何元素使用
xsi
前缀(例如在
xsi:type
属性中),删除该命名空间声明将使其无效。我同意你的看法。该前缀未在xml中使用。但是,ws-programmer告诉我是否可以从请求xml中删除它。