【问题标题】:XML SOAP namespace uses only first 3 charsXML SOAP 命名空间仅使用前 3 个字符
【发布时间】:2020-10-16 07:49:19
【问题描述】:

假设我有以下 xsd:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="abcd" elementFormDefault="qualified" xmlns:ebppif1="abcd">
    <xs:element name="Test">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="someValue" type="xs:long"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

我跟随 this tutorial 创建了 SOAP Web 服务,它运行良好。

但问题是命名空间被缩短为“abc”(在 SoapIU 上)

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:abc="abcd">
   <soapenv:Header/>
   <soapenv:Body>
      <abc:Test>
         <abc:someValue>123</abc:someValue>
      </abc:Test>
   </soapenv:Body>
</soapenv:Envelope>

如何禁用或更改命名空间长度缩短以实现请求中的完整命名空间?

【问题讨论】:

    标签: web-services soap xsd wsdl soapui


    【解决方案1】:

    您对 XML 命名空间的理解不正确。命名空间前缀不是命名空间。

    SoapUI 生成的 XML 文档是正确的。如果您检查 SoapUI 文档,命名空间前缀“abc”正确映射到命名空间“abcd”。

    我强烈建议您学习有关 XML 命名空间的 W3Schools 教程。这可能看起来很困难,但实际上非常简单。如果您花一些时间学习基础知识,它会有所回报。

    【讨论】:

    • 谢谢,我知道,这是我的一次性任务。即使 'abc' 映射到 'abcd',将请求(前缀)中的 abc 更改为 abcd 也不起作用(Spring 无法识别/解析对象)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多