错误:未声明的名称空间前缀x:

时间:2016-09-12 22:11:59

标签: xml soap xml-namespaces

我是一名SOAP新手,并且正在努力解决此错误消息,

  

{:error,“500”,“未声明的名称空间前缀\”x \“\ n在[row,col]   {unknown-source}]:[1,168]“}

以下SOAP信封。由于我试图访问的主机系统的条款和条件,我已用“xxx”替换了识别URL和凭证信息,并删除了大多数对象。

<x:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
            xmlns:read="urn://xxx/sdk/ReadObject" 
            xmlns:obj="http://xxx/object">
    <x:Header>
        <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
                       xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
            <wsse:UsernameToken>
                <wsse:Username>xxx</wsse:Username>
                <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">xxx</wsse:Password>
            </wsse:UsernameToken>
        </wsse:Security>
    </x:Header>
    <x:Body>
      <read:readEstimate>
        <read:estimate>
        <obj:id>38945</obj:id>
        </read:estimate>
      </read:readEstimate>
    </x:Body>
</x:Envelope>

1 个答案:

答案 0 :(得分:8)

要修复未声明的命名空间前缀(x:)的问题,请执行以下任何一个

  1. x:替换为SOAP信封元素名称中的soapenv:

  2. 更改xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"xmlns:x="http://schemas.xmlsoap.org/soap/envelope/"

  3. 通过更改xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"来使用默认命名空间 到xmlns="http://schemas.xmlsoap.org/soap/envelope/"并删除SOAP信封元素名称中的x: