main
1# frozen_string_literal: true
2
3module Saml
4 module Kit
5 # This module is responsible for validating
6 # xml documents against the SAML XSD's
7 module XsdValidatable
8 PROTOCOL_XSD = File.expand_path(
9 '../xsd/saml-schema-protocol-2.0.xsd', File.dirname(__FILE__)
10 ).freeze
11
12 METADATA_XSD = File.expand_path(
13 '../xsd/saml-schema-metadata-2.0.xsd', File.dirname(__FILE__)
14 ).freeze
15
16 # @!visibility private
17 def matches_xsd?(xsd)
18 return unless to_nokogiri.present?
19
20 Dir.chdir(File.dirname(xsd)) do
21 xsd = Nokogiri::XML::Schema(IO.read(xsd))
22 xsd.validate(to_nokogiri.document).each do |error|
23 errors.add(:base, error.message)
24 end
25 end
26 end
27 end
28 end
29end