使用Ruby中的多个XSD验证XML

我正在生成大量的XMPP节,并希望根据我的单元测试中可用的规格来验证它们.

目前我正在使用Nokogiri来实现这一目标

xml    = Nokogiri::XML( xmpp_stanza)
schema = Nokogiri::XML::Schema( xmpp_schema )

assert schema.valid?( xml )

在这个工作正常,除了它被报告为无效,因为每个模式只覆盖一个命名空间,而我的XMPP节有多个命名空间.例如:

Invalid XML: Element '{http://jabber.org/protocol/pubsub}pubsub': No matching global element declaration available,but demanded by the strict wildcard.

我是如何处理多个模式来验证单个节的?我是不是首先将它拆分为命名空间并单独验证每一个

解决方法

我能够通过 importing一个模式实现到另一个模式中.

例如

<xs:import namespace="http://base.google.com/ns/1.0" schemaLocation="public/xsd/google_base.xsd"/>

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...