Xml WCF SOAP-从子节点删除命名空间
我正在构建一个服务,并且有一个客户机,它需要一种特定格式的xml,我正试图在soap服务中接收这种xml。我遇到的问题是,当我需要名称空间前缀仅位于根节点上时,它将应用于子节点。下面是为soapui中的请求生成的soap信封:Xml WCF SOAP-从子节点删除命名空间,xml,wcf,soap,Xml,Wcf,Soap,我正在构建一个服务,并且有一个客户机,它需要一种特定格式的xml,我正试图在soap服务中接收这种xml。我遇到的问题是,当我需要名称空间前缀仅位于根节点上时,它将应用于子节点。下面是为soapui中的请求生成的soap信封: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:contact.com"> <soapenv:Header/>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:contact.com">
<soapenv:Header/>
<soapenv:Body>
<urn:ContactNotification>
<!--Optional:-->
<urn:Identifier>
<!--Optional:-->
<ID>122</ID>
</urn:Identifier>
<!--Optional:-->
<urn:Details>
<!--Optional:-->
<ContactPerson>c</ContactPerson>
</urn:Details>
</urn:ContactNotification>
</soapenv:Body>
</soapenv:Envelope>
已经四处寻找,但找不到解决方案。您是否曾设法找到解决方案?
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:contact.com">
<soapenv:Header/>
<soapenv:Body>
<urn:ContactNotification>
<!--Optional:-->
<Identifier>
<!--Optional:-->
<ID>122</ID>
</Identifier>
<!--Optional:-->
<Details>
<!--Optional:-->
<ContactPerson>c</ContactPerson>
</Details>
</urn:ContactNotification>
</soapenv:Body>
</soapenv:Envelope>
using System.ServiceModel;
[System.Xml.Serialization.XmlTypeAttribute (Namespace="")]
public partial class Identifier
{
private string idField;
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Namespace="")]
public string ID
{
get
{
return this.idField;
}
set
{
this.idField = value;
}
}
}
using System.ServiceModel;
[System.Xml.Serialization.XmlType(Namespace ="")]
public partial class Details
{
private string contactPersonField;
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Namespace="")]
public string ContactPerson
{
get
{
return this.contactPersonField;
}
set
{
this.contactPersonField = value;
}
}
}
using System.Web.Configuration;
using System.Xml.Serialization;
namespace ContactService
{
[ServiceContract(Namespace = "urn:contact.com")]
[XmlSerializerFormat]
public interface IContactService
{
[OperationContract]
[XmlSerializerFormat]
void ContactNotification( Identifier Identifier, Details Details);
}
}
using System.ServiceModel;
using System.Web.Configuration;
using System.Xml;
using System.Xml.Serialization;
namespace ContactService
{
[ServiceBehavior(Namespace= "urn:contact.com")]
[XmlSerializerFormat]
public class ContactService : IContactService
{
[OperationBehavior]
public void ContactNotification(Identifier Identifer, Details Details)
{
}
}