当前位置:编程学习 > C#/ASP.NET >>

c#调用JAVA写的WebService 传输XML <>被转义了如何处理?

用svcutil工具将对方发来的wsdl文件生成代理文件
调用代理函数发送一个XML文档
对对方收到的或者我用第三方工具监测到的XML中的<>被转义成<>

如下全文如下
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
   <receiveDataSync xmlns="http://service.transport.nsc.org">
   <receiveDataSync i:type="a:string" xmlns:a="http://www.w3.org/2001/XMLSchema" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
    <NRSML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0">
    <ExchangeHeader facility="AutoMonitoringStation" level="state" scheme="RealTimeData" type="add" uid="20121113-082525781">
    <Time />
    </ExchangeHeader>
    <DataContent>
    <RealTimeData />
    </DataContent>
    </NRSML>
    </receiveDataSync>
   </receiveDataSync>
    </s:Body>
   </s:Envelope>
红色部分 应该是调用webservice自动加的  <>就正常
蓝色部分是我要发送的XML   我自己发送的就被转义了
怎么才能 不被转义?
--------------------编程问答-------------------- 把xml放到CData中试试
<![CDATA[

]]> --------------------编程问答-------------------- 试过了 我在网上看的 说是CData中的数据解析器不管
但我放进去后
也同样被改成转义字符了
郁闷啊  --------------------编程问答-------------------- 代理类如下

//------------------------------------------------------------------------------
// <auto-generated>
//     此代码由工具生成。
//     运行库版本:2.0.50727.3634
//
//     对此文件的更改可能会导致不正确的行为,并且如果
//     重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------



[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
[System.ServiceModel.ServiceContractAttribute(Namespace="http://www.chinansc.cn/nrsml/esb/cachenode", ConfigurationName="DataCacheServicePortType")]
public interface DataCacheServicePortType
{
    
    // CODEGEN: 操作 receiveDataAsync 以后生成的消息协定不是 RPC,也不是换行文档。
    [System.ServiceModel.OperationContractAttribute(Action="urn:receiveDataAsync", ReplyAction="urn:receiveDataAsyncResponse")]
    receiveDataAsyncResponse receiveDataAsync(receiveDataAsyncRequest request);
    
    // CODEGEN: 消息 feedbackRequest 的包装命名空间(http://service.transport.nsc.org)以后生成的消息协定与默认值(http://www.chinansc.cn/nrsml/esb/cachenode)不匹配
    [System.ServiceModel.OperationContractAttribute(Action="urn:feedback", ReplyAction="urn:feedbackResponse")]
    feedbackResponse feedback(feedbackRequest request);
    
    // CODEGEN: 消息 receiveDataSyncRequest 的包装命名空间(http://service.transport.nsc.org)以后生成的消息协定与默认值(http://www.chinansc.cn/nrsml/esb/cachenode)不匹配
    [System.ServiceModel.OperationContractAttribute(Action="urn:receiveDataSync", ReplyAction="urn:receiveDataSyncResponse")]
    receiveDataSyncResponse receiveDataSync(receiveDataSyncRequest request);
}

[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
[System.ServiceModel.MessageContractAttribute(WrapperName="receiveDataAsync", WrapperNamespace="http://service.transport.nsc.org", IsWrapped=true)]
public partial class receiveDataAsyncRequest
{
    
    [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://service.transport.nsc.org", Order=0)]
    public object receiveDataAsync;
    
    public receiveDataAsyncRequest()
    {
    }
    
    public receiveDataAsyncRequest(object receiveDataAsync)
    {
        this.receiveDataAsync = receiveDataAsync;
    }
}

[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
[System.ServiceModel.MessageContractAttribute(IsWrapped=false)]
public partial class receiveDataAsyncResponse
{
    
    public receiveDataAsyncResponse()
    {
    }
}

[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
[System.ServiceModel.MessageContractAttribute(WrapperName="feedback", WrapperNamespace="http://service.transport.nsc.org", IsWrapped=true)]
public partial class feedbackRequest
{
    
    [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://service.transport.nsc.org", Order=0)]
    public object feedback;
    
    public feedbackRequest()
    {
    }
    
    public feedbackRequest(object feedback)
    {
        this.feedback = feedback;
    }
}

[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
[System.ServiceModel.MessageContractAttribute(WrapperName="feedbackResponse", WrapperNamespace="http://service.transport.nsc.org", IsWrapped=true)]
public partial class feedbackResponse
{
    
    [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://service.transport.nsc.org", Order=0)]
    public object @return;
    
    public feedbackResponse()
    {
    }
    
    public feedbackResponse(object @return)
    {
        this.@return = @return;
    }
}

[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
[System.ServiceModel.MessageContractAttribute(WrapperName="receiveDataSync", WrapperNamespace="http://service.transport.nsc.org", IsWrapped=true)]
public partial class receiveDataSyncRequest
{
    
    [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://service.transport.nsc.org", Order=0)]
    public object receiveDataSync;
    
    public receiveDataSyncRequest()
    {
    }
    
    public receiveDataSyncRequest(object receiveDataSync)
    {
        this.receiveDataSync = receiveDataSync;
    }
}

[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
[System.ServiceModel.MessageContractAttribute(WrapperName="receiveDataSyncResponse", WrapperNamespace="http://service.transport.nsc.org", IsWrapped=true)]
public partial class receiveDataSyncResponse
{
    
    [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://service.transport.nsc.org", Order=0)]
    public object @return;
    
    public receiveDataSyncResponse()
    {
    }
    
    public receiveDataSyncResponse(object @return)
    {
        this.@return = @return;
    }
}

[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
public interface DataCacheServicePortTypeChannel : DataCacheServicePortType, System.ServiceModel.IClientChannel
{
}

[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
public partial class DataCacheServicePortTypeClient : System.ServiceModel.ClientBase<DataCacheServicePortType>, DataCacheServicePortType
{
    
    public DataCacheServicePortTypeClient()
    {
    }
    
    public DataCacheServicePortTypeClient(string endpointConfigurationName) : 
            base(endpointConfigurationName)
    {
    }
    
    public DataCacheServicePortTypeClient(string endpointConfigurationName, string remoteAddress) : 
            base(endpointConfigurationName, remoteAddress)
    {
    }
    
    public DataCacheServicePortTypeClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : 
            base(endpointConfigurationName, remoteAddress)
    {
    }
    
    public DataCacheServicePortTypeClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : 
            base(binding, remoteAddress)
    {
    }
    
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    receiveDataAsyncResponse DataCacheServicePortType.receiveDataAsync(receiveDataAsyncRequest request)
    {
        return base.Channel.receiveDataAsync(request);
    }
    
    public void receiveDataAsync(object receiveDataAsync1)
    {
        receiveDataAsyncRequest inValue = new receiveDataAsyncRequest();
        inValue.receiveDataAsync = receiveDataAsync1;
        receiveDataAsyncResponse retVal = ((DataCacheServicePortType)(this)).receiveDataAsync(inValue);
    }
    
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    feedbackResponse DataCacheServicePortType.feedback(feedbackRequest request)
    {
        return base.Channel.feedback(request);
    }
    
    public object feedback(object feedback1)
    {
        feedbackRequest inValue = new feedbackRequest();
        inValue.feedback = feedback1;
        feedbackResponse retVal = ((DataCacheServicePortType)(this)).feedback(inValue);
        return retVal.@return;
    }
    
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    receiveDataSyncResponse DataCacheServicePortType.receiveDataSync(receiveDataSyncRequest request)
    {
        return base.Channel.receiveDataSync(request);
    }
    
    public object receiveDataSync(object receiveDataSync1)
    {
        receiveDataSyncRequest inValue = new receiveDataSyncRequest();
        inValue.receiveDataSync = receiveDataSync1;
        receiveDataSyncResponse retVal = ((DataCacheServicePortType)(this)).receiveDataSync(inValue);
        return retVal.@return;
    }
}
--------------------编程问答-------------------- 自己顶一下吧
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,