提问人:Roberto Villavicencio 提问时间:9/26/2023 最后编辑:marc_sRoberto Villavicencio 更新时间:9/26/2023 访问量:28
在 C 中更改 SOAP 服务条目 xml 的默认命名空间#
Change the default namespace of a SOAP service entry xml in C#
问:
我遇到的问题是,在提供程序提供的xml中,命名空间如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<pgim:Document xmlns:pgim="urn:iso:std:iso:20022:tech:xsd:pacs.008.001.06.031"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pacs.008.001.06.031 pacs.008.031.xsd ">
而我在运行服务时看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
我有一个 soap 服务,我使用 VS 终端的 XSD 工具生成了 soap 服务,我没有完整包含代码的初始部分,因为它很长:
using System.Xml.Serialization;
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:pacs.008.001.08.031")]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:pacs.008.001.08.031", IsNullable = false)]
public partial class Document : System.Web.Services.Protocols.SoapHeader
{
private HeaderData headerField;
private FIToFICustomerCreditTransferV06 fIToFICstmrCdtTrfField;
/// <remarks/>
public HeaderData Header {
get {
return this.headerField;
}
set {
this.headerField = value;
}
}
/// <remarks/>
public FIToFICustomerCreditTransferV06 FIToFICstmrCdtTrf {
get {
return this.fIToFICstmrCdtTrfField;
}
set {
this.fIToFICstmrCdtTrfField = value;
}
}
}
然后我将其用作创建的 asmx 服务中的输入数据,如下所示:
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// Para permitir que se llame a este servicio web desde un script, usando ASP.NET AJAX, quite la marca de comentario de la línea siguiente.
// [System.Web.Script.Services.ScriptService]
public class Transfer: System.Web.Services.WebService
{
public ModelTransfer.Document entry = new ModelTransfer.Document();
[WebMethod]
[SoapHeader("entry")]
public ModelTransfer.Output Consulta()
{
ModelTransfer.Output output = new ModelTransfer.Output();
return output;
}
}
答: 暂无答案
评论