当前位置: 首页 > 知识库问答 >
问题:

为什么SOAP消息不使用标准的XML验证工具进行验证?

罗伟兆
2023-03-14

我有一个非常简单的SOAP XML,从基于WSDL的web服务接收,作为对SOAP请求的响应:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <PingResponse xmlns="http://somevalidnamespacedomain.org/xyz">
         <PingResult>Pinging Back</PingResult>
      </PingResponse>
   </soap:Body>
</soap:Envelope>

此SOAP XML在soapUI(用于接收此消息的工具)中完美验证。也就是说,如果我右键单击soapUI中的消息窗格并从上下文菜单中选择“验证”,它会显示“验证确定”。

但如果我复制

使用XML架构验证当前文件:

错误:元素'{http://schemas.xmlsoap.org/soap/envelope/}信封“:验证根没有匹配的全局声明可用。

为什么会发生这种情况?

我需要用什么来包装(或修改)它以使其在soapUI之外进行验证?

共有2个答案

东博瀚
2023-03-14

尝试在根元素中定义soap信封架构位置。有些是这样的:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xsi:schemaLocation="http://schemas.xmlsoap.org/soap/envelope/ http://schemas.xmlsoap.org/soap/envelope/">
宗政德宇
2023-03-14

我猜在验证时,您将验证器指向具有soap主体定义但没有soap信封结构定义的模式文档。因此,您的验证已经在根元素上失败。

请注意(尤其是)如果您告诉验证器使用某些模式文件,它不知道,甚至对XML文档的用途不感兴趣。它只检查语法并尝试验证整个文档(除非模式文档告诉跳过某些元素的内容)。

 类似资料:
  • 问题内容: 大家好 这是我的要求信息: 我尝试验证与body标签相关的。有像和这样的标签,这对我来说真的很混乱。我的问题是如何验证身体部位?首先,我应该获得什么标签来开始验证 要不就 ??? 我必须执行哪些操作(规范化/转换/加密)??? 任何帮助表示赞赏。提前致谢。 问题答案: 解决方案是: 哪里 并向X509KeySelector提供验证签名所需的公钥。

  • 问题内容: 我需要针对验证SOAP消息。(以可以根据模式验证文件的方式)。 我没有打电话给任何网络服务;我只有一条消息和一个,并且我需要验证该消息是正确的。而无需调用网络服务或之后的任何服务。 我需要在Java程序中对此进行验证。您知道一个小的Java库可以做到这一点吗? ps:我知道当您调用Web服务时,有几个库可以验证请求/响应。但是,我没有调用任何Web服务。我有一个简单的消息,还有一个,并

  • 我正在使用Delphi10.2更新3。我按照这些说明验证生成的xml文档。 属性noNamespaceSchema位置对XML解析有什么影响? 使用Windows DOM和TXMLDocument验证XML:在某些计算机上不起作用 delphi中msxml的模式验证 但我有一个错误。“DTD/架构中未定义元素‘jegyzek\u adatok’上的属性‘noNamespaceSchemaLocat

  • 我对JSF2.2、Omnifaces 2.6.3和PrimeFaces 6.1的客户端验证有一个问题,这导致来自Bean验证的验证消息显示两次。 如果在我使用的某个按钮中 验证有效,但每次验证都会产生两条消息: 我将问题追溯到类javax.faces.validator.BeanValidator,它正在与Omnifaces org.omnifaces.taghandler.ValidateBea

  • 使用https://www.freeformatter.com/xml-validator-xsd.html 如果我将soapenf完全从这里的响应和模式的混合中去掉,它工作得很好,但我希望两者都能做到。 (仅供参考,我想指出这个wsdl和xsd没有在endpoint上公开,CISCO提供了wsdl和xsd文件的zip文件)然后您可以根据wsdl/xsd向服务器发送请求,它会工作。但是wsdl和x

  • 我有一个肥皂信封 肥皂xsd只是的本地版本http://schemas.xmlsoap.org/soap/envelope/保存到soap。xsd 当我尝试验证这一点时,它表示根据targetAction,架构目标不正确 所有试验和错误都指向xmlns: xsi标记给出错误 我想知道这是否与SOAP 1.0和1.1有关 (我已经能够用完全相同的方法验证soap中的xml)我很确定这可以在一个元素中