我是一名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>
答案 0 :(得分:8)
要修复未声明的命名空间前缀(x:
)的问题,请执行以下任何一个:
将x:
替换为SOAP信封元素名称中的soapenv:
。
更改xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
到xmlns:x="http://schemas.xmlsoap.org/soap/envelope/"
。
通过更改xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
来使用默认命名空间
到xmlns="http://schemas.xmlsoap.org/soap/envelope/"
并删除SOAP信封元素名称中的x:
。