Sha256: 5396fb370233098ae9ec40c8f7e5809855d2e2bf76f485cd6cb254d456e44679

Contents?: true

Size: 1.13 KB

Versions: 2

Compression:

Stored size: 1.13 KB

Contents

module CqmValidators
	module Schematron
	NAMESPACE = {"svrl" => "http://purl.oclc.org/dsdl/svrl"}
	DIR = File.expand_path("../../", __FILE__)
	ISO_SCHEMATRON = File.join(DIR, 'lib/schematron/iso-schematron-xslt1/iso_svrl_for_xslt1.xsl')

	  class Validator
	    include BaseValidator

	    if RUBY_PLATFORM != "java"
	      require_relative "schematron/c_processor"
	      include Schematron::CProcessor
	    else
	      require_relative 'schematron/java_processor'
	      include Schematron::JavaProcessor
	    end

	    def initialize(name,schematron_file)
	      @name = name
	      @schematron_file = schematron_file
	    end

	    def validate(document,data = {})
	      file_errors = document.errors.select { |e| e.fatal? || e.error? }
	      if file_errors
	        file_errors.each do |error|
	          build_error(error, '/', data[:file_name])
	        end
	      end
	      errors = get_errors(document).root.xpath("//svrl:failed-assert",NAMESPACE).map do |el|
	        build_error(el.xpath('svrl:text',NAMESPACE).text, el['location'], data[:file_name])
	      end
	      errors.uniq{|e| "#{e.location}#{e.message}"}
	    end

	  end
	end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
cqm-validators-0.1.1 lib/schematron_validator.rb
cqm-validators-0.1.0 lib/schematron_validator.rb