私は多くの XMPP スタンザを生成しており、単体テストでここで利用可能な仕様に対してそれらを検証したいと考えています。
現時点では、ノコギリを使用してこれを達成しています
xml = Nokogiri::XML( xmpp_stanza)
schema = Nokogiri::XML::Schema( xmpp_schema )
assert schema.valid?( xml )
各スキーマは 1 つの名前空間のみをカバーし、私の XMPP スタンザには複数の名前空間があるため、無効として報告されることを除いて、これは正常に機能します。例えば:
Invalid XML: Element '{http://jabber.org/protocol/pubsub}pubsub': No matching global element declaration available, but demanded by the strict wildcard.
複数のスキーマを処理して単一のスタンザを検証するにはどうすればよいですか? 最初に名前空間で分割し、それぞれを個別に検証するつもりですか?