Class: Mappum::XmlSupport

Inherits:
Object show all
Defined in:
lib/mappum/xml_transform.rb

Class Method Summary collapse

Class Method Details

.get_target_ns(xsd_file) ⇒ Object

Get target namespace from given xsd file



394
395
396
397
# File 'lib/mappum/xml_transform.rb', line 394

def self.get_target_ns(xsd_file)
  return get_target_ns_libxml(xsd_file) if @@parser == :libxml
  return get_target_ns_rexml(xsd_file)
end

.get_target_ns_libxml(xsd_file) ⇒ Object



409
410
411
412
413
414
415
416
# File 'lib/mappum/xml_transform.rb', line 409

def self.get_target_ns_libxml(xsd_file)
  reader = LibXML::XML::Reader.file(xsd_file)
  reader.read
  reader.move_to_attribute("targetNamespace")
  namespace = reader.value
  reader.close
  return namespace 
end

.get_target_ns_rexml(xsd_file) ⇒ Object



398
399
400
401
402
403
404
405
406
407
408
# File 'lib/mappum/xml_transform.rb', line 398

def self.get_target_ns_rexml(xsd_file)
  reader = REXML::Parsers::SAX2Parser.new(File.new(xsd_file))
  namespace = nil
  #FIXME: quit after root
  reader.listen(:start_element) do |uri, localname, qname, attributes|
    namespace ||= attributes["targetNamespace"]
  end

  reader.parse
  return namespace
end