【问题标题】:How to validate a SOAP request against a WSDL (yes, WSDL, not XSD), in ruby如何在 ruby​​ 中针对 WSDL(是的,WSDL,不是 XSD)验证 SOAP 请求
【发布时间】:2017-07-07 16:05:21
【问题描述】:

在 SOAP 请求的上下文中,

  • 一个 WSDL
  • 一堆 XSD,由 WSDL 引用
  • SOAP 请求示例

我想验证 SOAP 请求是否适合 WSDL 和所有 XSD。

我正在专门寻找一种使用现有 gem 的简单(如代码行)方式。原则上,我知道如何通过从 WSDL 中提取所有 XSD 并自己针对 XSD 验证 XML(例如,使用nokogiri)来自己做这件事,但是在这个问题的上下文中,我特别在寻找一些东西就这么简单

require 'wonderful_validator'
WonderfulValidator.validate(xml, wsdl)

验证器应该能够,因为它当然可以以正确的方式找到所有文件,所以它应该能够做所有需要的事情来确定 XML 是否适合 WSDL 和所有 XSD。包括 SOAP 标头/正文消息结构。

类似于 Java. Validate SOAP message against a WSDLhttp://www.soapui.org/apidocs/com/eviware/soapui/impl/wsdl/support/wsdl/WsdlValidator.htmlhttps://www.codeproject.com/Articles/182406/Validating-SOAP-Message-against-WSDL ,只是在 ruby​​ 中。

【问题讨论】:

  • 虽然这是一个资源请求,它可能会被关闭。但是Savon 会自动完成所有这些工作。
  • 巧合的是,我在一些项目中使用了 Savon,但到目前为止,我将它视为 SOAP 客户端,并不知道它可以验证现有的 XML 请求。或者您的意思是它能够解析 WDSL 以生成请求的功能?
  • @MarkThomas,嗯,类似的。另一个问题仅限于 Savon,我对一切都持开放态度。但似乎还没有真正好的解决方案。
  • 我认为 Savon 自动验证了针对 WSDL 的请求。不过,不确定该功能对于点菜使用的公开程度。

标签: ruby validation wsdl


【解决方案1】:

有一个名为 wsdl_validatorgem 几乎尝试在发送之前针对 WSDL 验证 SOAP 请求。但是在我的情况下,它无法识别 WSDL 中定义的多个模式。

在这里回复其他人:不,Savon 不会自动验证。

【讨论】:

  • 在您的答案中更具体,因此可以在不知道问题细节的情况下将其解读为解决方案(我将do it 编辑为validate the SOAP request against WSDL)。我还添加了链接,因为您的 gem 似乎是一个很好的跟进解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-01
  • 2017-01-17
  • 1970-01-01
  • 1970-01-01
  • 2014-05-22
  • 1970-01-01
相关资源
最近更新 更多