Class: Validator

Inherits:
Object
  • Object
show all
Defined in:
lib/modsulator/validator.rb

Overview

Validates XML against the MODSulator schema.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(schema_file = nil) ⇒ Validator

Creates a new Validator, using either a provided XML Schema file or the built-in one.



10
11
12
13
14
# File 'lib/modsulator/validator.rb', line 10

def initialize(schema_file = nil)
  schema_file ||= File.expand_path('../modsulator.xsd', __FILE__)

  @schema = Nokogiri::XML::Schema(File.open(schema_file))
end

Instance Attribute Details

#schemaObject (readonly)

The Nokogiri::XML::Schema instance used for validation.



6
7
8
# File 'lib/modsulator/validator.rb', line 6

def schema
  @schema
end

Instance Method Details

#validate_xml_doc(doc) ⇒ Object

Validates an XML document.



31
32
33
34
# File 'lib/modsulator/validator.rb', line 31

def validate_xml_doc(doc)
  return doc.errors if(doc.errors.length > 0)
  return @schema.validate(doc)
end

#validate_xml_string(xml) ⇒ Object

Validates an XML string.



21
22
23
24
# File 'lib/modsulator/validator.rb', line 21

def validate_xml_string(xml)
  xml_doc = Nokogiri::XML(xml)
  return validate_xml_doc(xml_doc)
end