带有特定标签但没有命名空间的 SOAP 请求

标签 soap namespaces xml-namespaces

根据标准,以下 SOAP 请求是否有效?

<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Body>
        <ns2:ServiceReq xmlns:ns2="http://www.tibco.com/service" xmlns:ns1="http://www.tibco.com/framework">
            <ns1:HeaderIn>
                <ns1:countryISO>FR</ns1:countryISO>
                <ns1:callerDateTime>2021-11-26T15:50:08.742Z</ns1:callerDateTime>
            </ns1:HeaderIn>
            <ns2:request>
                <entete>
                    <profile>Default</profile>
                </entete>
                <input>
                    <type>W</type>
                    <codeRegion>X</codeRegion>
                </input>
            </ns2:request>
        </ns2:ServiceReq>
    </soapenv:Body>
</soapenv:Envelope> 
我不确定,因为某些标签没有命名空间

最佳答案

这里有多个级别的有效:

  • 根据 SOAP 标准,它是有效的 SOAP 消息吗?是的。 SOAP 信封和正文标记似乎有效。
  • 它是有效的 XML 格式吗?是的,它是一个格式良好的 XML 文件。
  • 那些没有命名空间前缀的元素是否有效?是的。元素可以位于默认命名空间中,也可以根本没有命名空间。
  • 正文的实际内容是有效消息吗?您只能判断是否根据 Web 服务的 WSDL 文件中定义的预期消息验证了您发布的消息。

  • SOAP 消息正文中的所有元素都应该属于特定的命名空间,但有时开发人员会忘记在元素上添加命名空间注释,或者从其他地方复制粘贴某些内容,或者其他任何内容,最终会出现奇怪的外观像这样的 XML。该服务有效并且消息被正确解析,但它看起来很有趣。

    关于带有特定标签但没有命名空间的 SOAP 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70128020/

    相关文章:

    python - 使用 Zeep 向 SOAP 服务发送原始 XML 请求(尝试复制参数)

    c# - WS 调用中空参数和省略参数之间的区别?

    xml - 将 XML 命名空间属性添加到第 3 方 xml?

    ruby-on-rails - Rails 路由上的命名空间和资源

    sql - 使用带有命名空间的 SQL Server 2008 从 XML 中选择值

    java - 为什么我收到此错误 "Unbound XML namespace prefix"

    java - 使用线程上下文ClassLoader从类路径读取WSDL

    java - 使用java和web服务获取soap请求

    c# - 如何正确解析具有任意 namespace 的 XML 文档

    java - JAXB - 将动态生成的 namespace 移动到文档根目录