module PROIEL::PROIELXML::Schema
Functionality concerned with PROIEL
XML schema loading and versioning. Functionality for validation using a PROIEL
XML schema is found in {PROIEL::PROIELXML::Validator}.
@api private
Public Class Methods
check_schema_version_of_xml_file(filename)
click to toggle source
Opens a PROIEL
XML schema file and peek at the schema version number that the file claims it conforms to.
@return [String] schema version number
@raise InvalidSchemaVersion
# File lib/proiel/proiel_xml/schema.rb, line 35 def self.check_schema_version_of_xml_file(filename) doc = Nokogiri::XML(File.read(filename)) if doc and doc.root and doc.root.name == 'proiel' case doc.root.attr('schema-version') when '2.0' '2.0' when '2.1' '2.1' when '3.0' '3.0' when NilClass '1.0' else raise InvalidSchemaVersion, 'invalid schema version number' end else raise InvalidSchemaVersion, 'top-level XML element not found' end end
current_proiel_xml_schema_version()
click to toggle source
Returns the current version of the PROIEL
XML schema.
@return [String] schema version number
# File lib/proiel/proiel_xml/schema.rb, line 18 def self.current_proiel_xml_schema_version '3.0' end
load_proiel_xml_schema(schema_version)
click to toggle source
Loads a PROIEL
XML schema.
@return [Nokogiri::XML::Schema] schema version number
@raise RuntimeError
# File lib/proiel/proiel_xml/schema.rb, line 62 def self.load_proiel_xml_schema(schema_version) filename = proiel_xml_schema_filename(schema_version) Nokogiri::XML::Schema(File.open(filename).read) end
proiel_xml_schema_filename(schema_version)
click to toggle source
Determines the filename of a specific version of the PROIEL
XML schema.
@return [String] filename
@raise ArgumentError
# File lib/proiel/proiel_xml/schema.rb, line 74 def self.proiel_xml_schema_filename(schema_version) if schema_version == '1.0' or schema_version == '2.0' or schema_version == '2.1' or schema_version == '3.0' File.join(File.dirname(__FILE__), "proiel-#{schema_version}", "proiel-#{schema_version}.xsd") else raise ArgumentError, 'invalid schema version' end end