这是 SOAP 请求的标准或通用编码吗?

发布于 2024-08-09 10:02:35 字数 1316 浏览 4 评论 0原文

我正在使用一个 Web 服务,其中 WSDL 在每个请求和响应中描述单个字符串元素。

<s:element name="SERVICE">
  <s:complexType>
    <s:sequence>
      <s:element minOccurs="0" maxOccurs="1" name="SERVICERequest" type="s:string" />
    </s:sequence>
  </s:complexType>
</s:element>

该字符串中嵌入了许多带有转义标签的纯 XML 元素。

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope 
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Body>
      <SERVICE xmlns="https://services.transcard.com/">
        &lt;SERVICERequest&gt;
          &lt;SERVICE_REQ&gt;
            &lt;PARAM_1&gt;
              Value1
            &lt;/PARAM_1&gt;
            &lt;PARAM_2&gt;
              Value2
            &lt;/PARAM_2&gt;
            &lt;PARAM_3&gt;
              Value3
            &lt;/PARAM_3&gt;
          &lt;/SERVICE_REQ&gt;
        &lt;/SERVICERequest&gt;
      </SERVICE>
    </soap:Body>
</soap:Envelope>

这是服务响应的格式,也是传入请求的预期格式。

这在 SOAP 接口中常见吗?实际上,它会导致我正在使用的 SOAP 库无法访问内部参数。 (soap4r) 感谢 SOAP 资深人士的任何反馈。

I'm using a web service where the WSDL describes a single string element in each request and response.

<s:element name="SERVICE">
  <s:complexType>
    <s:sequence>
      <s:element minOccurs="0" maxOccurs="1" name="SERVICERequest" type="s:string" />
    </s:sequence>
  </s:complexType>
</s:element>

Embedded in that string are a number of plain XML elements that have escaped tags.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope 
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Body>
      <SERVICE xmlns="https://services.transcard.com/">
        <SERVICERequest>
          <SERVICE_REQ>
            <PARAM_1>
              Value1
            </PARAM_1>
            <PARAM_2>
              Value2
            </PARAM_2>
            <PARAM_3>
              Value3
            </PARAM_3>
          </SERVICE_REQ>
        </SERVICERequest>
      </SERVICE>
    </soap:Body>
</soap:Envelope>

This is the format of responses from the service, and is the format expected for incoming requests.

Is this common in SOAP interfaces? In practice, it causes the inner parameters to be inaccessible to the SOAP library I'm using. (soap4r) Any feedback from SOAP veterans is appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

美煞众生 2024-08-16 10:02:35

不,这并不常见。

这完全忽略了使用实际的模式(它定义了返回的数据类型),并将其替换为一个巨大的字符串,一旦收到响应,您就必须解析该字符串。

...糟糕的。

No. That's not common.

That completely disregards using an actual schema (which defines the data type being returend) and replaces it with a giant string that you're going to have to parse once you get the response.

...Terrible.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文