Sha256: 045f04507391fdbd61483ef03c3232eb61fe303e439f0c31b806e33a0a6856d2

Contents?: true

Size: 776 Bytes

Versions: 2

Compression:

Stored size: 776 Bytes

Contents

# frozen_string_literal: true

module Saml
  module Kit
    # This module is responsible for validating
    # xml documents against the SAML XSD's
    module XsdValidatable
      PROTOCOL_XSD = File.expand_path(
        '../xsd/saml-schema-protocol-2.0.xsd', File.dirname(__FILE__)
      ).freeze

      METADATA_XSD = File.expand_path(
        '../xsd/saml-schema-metadata-2.0.xsd', File.dirname(__FILE__)
      ).freeze

      # @!visibility private
      def matches_xsd?(xsd)
        return unless to_nokogiri.present?

        Dir.chdir(File.dirname(xsd)) do
          xsd = Nokogiri::XML::Schema(IO.read(xsd))
          xsd.validate(to_nokogiri.document).each do |error|
            errors.add(:base, error.message)
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
saml-kit-1.3.0 lib/saml/kit/concerns/xsd_validatable.rb
saml-kit-1.2.0 lib/saml/kit/concerns/xsd_validatable.rb