Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net SOAP,在标记中使用前缀<;xx:tag>;_.net_Soap_Namespaces - Fatal编程技术网

.net SOAP,在标记中使用前缀<;xx:tag>;

.net SOAP,在标记中使用前缀<;xx:tag>;,.net,soap,namespaces,.net,Soap,Namespaces,我不喜欢肥皂。一个第三方SOAP服务为我提供了用于他们的api的示例代码。他们给出的代码(我精确地复制到了我的解决方案中)没有在所有标记之前吐出所需的前缀 现在,他们给我的代码使我发出的请求/响应对所有标记都没有前缀 <tagName /> 首先,您使用的是WSE,它已经过时了。除非你别无选择,否则不要那样做 当我说“没有其他选择”时,我包括了“不能辞职” 其次,这不是SOAP问题。这是基本的XML。您需要元素位于特定的命名空间中。因为看起来您使用了正确的过时工具来生成客户机,所以

我不喜欢肥皂。一个第三方SOAP服务为我提供了用于他们的api的示例代码。他们给出的代码(我精确地复制到了我的解决方案中)没有在所有标记之前吐出所需的前缀

现在,他们给我的代码使我发出的请求/响应对所有标记都没有前缀

<tagName />

首先,您使用的是WSE,它已经过时了。除非你别无选择,否则不要那样做

当我说“没有其他选择”时,我包括了“不能辞职”

其次,这不是SOAP问题。这是基本的XML。您需要元素位于特定的命名空间中。因为看起来您使用了正确的过时工具来生成客户机,所以您的元素可能已经位于正确的命名空间中

在您看来,这可能是错误的,因为您没有意识到,在XML中,名称空间前缀并不重要——只有前缀只是名称空间的别名,而名称空间才是重要的。具体而言,以下三个示例是相同的:

<a:ElementName xmlns:a="urn:foo"/>

<b:ElementName xmlns:b="urn:foo"/>

<ElementName xmlns="urn:foo"/>


如果您的供应商实际上需要一个特定的前缀(而不是特定的名称空间),那么它们就被严重破坏了,违反了国际标准,应该被公开嘲笑为不称职。如果每个供应商都实现自己版本的XML标准,那么不久它就不再是一个标准了,我们将无法依赖它。由于XML的大部分功能来自于它是一种标准,这将是不幸的。

不幸的是,这个供应商的api有太多问题。我不能简单地“添加服务引用”,因为我会遇到很多错误,例如无法将“type”转换为“type[]”。这些示例代码是我能够以他们能够理解的方式与他们的垃圾进行通信的最接近的代码。这很有趣,因为我现在必须找到一种方法来做到这一点,因为他们的api的一部分需要com前缀。另外,我对这个供应商非常恼火,我会提到他们的名字。这是一家信誉相当好的公司。它是黄化的
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Web.Services.WebServiceBindingAttribute(Name = "catalogHttpBinding", Namespace = "http://com.etilize.spexlive")]
[System.Xml.Serialization.XmlIncludeAttribute(typeof(CategoryCollection))]
public partial class catalog : Microsoft.Web.Services3.WebServicesClientProtocol
<a:ElementName xmlns:a="urn:foo"/>

<b:ElementName xmlns:b="urn:foo"/>

<ElementName xmlns="urn:foo"/>