class XSD::XMLParser::LibXMLParser

Constants

ENTITY_REF_MAP

Public Instance Methods

do_parse(string_or_readable) click to toggle source
# File lib/xsd/xmlparser/libxmlparser.rb, line 27
def do_parse(string_or_readable)
  $stderr.puts "XSD::XMLParser::LibXMLParser.do_parse" if $DEBUG    
  # string = string_or_readable.respond_to?(:read) ? string_or_readable.read : string_or_readable

  @charset = 'utf-8'
  string = StringIO.new(string_or_readable)
  parser = LibXML::XML::SaxParser.io(string)
  parser.callbacks = self
  parser.parse
end
on_cdata_block(cdata) click to toggle source
# File lib/xsd/xmlparser/libxmlparser.rb, line 123
def on_cdata_block(cdata)
  characters(cdata)
end
on_characters(chars) click to toggle source
# File lib/xsd/xmlparser/libxmlparser.rb, line 99
def on_characters(chars)
  characters(chars)
end
on_end_element(name) click to toggle source
# File lib/xsd/xmlparser/libxmlparser.rb, line 91
def on_end_element(name)
  # end_element(name)
end
on_end_element_ns(name, prefix, uri) click to toggle source
# File lib/xsd/xmlparser/libxmlparser.rb, line 79
def on_end_element_ns (name, prefix, uri)
  if prefix.nil?
    end_element(name)
  else
    end_element("#{prefix}:#{name}")
  end
end
on_external_subset(name, external_id, system_id) click to toggle source
# File lib/xsd/xmlparser/libxmlparser.rb, line 127
def on_external_subset(name, external_id, system_id)
  nil
end
on_parser_error(msg) click to toggle source
# File lib/xsd/xmlparser/libxmlparser.rb, line 115
def on_parser_error(msg)
  raise ParseError.new(msg)
end
on_parser_fatal_error(msg) click to toggle source
# File lib/xsd/xmlparser/libxmlparser.rb, line 119
def on_parser_fatal_error(msg)
  raise ParseError.new(msg)
end
on_parser_warning(msg) click to toggle source

def on_comment(msg)

nil

end

# File lib/xsd/xmlparser/libxmlparser.rb, line 111
def on_parser_warning(msg)
  warn(msg)
end
on_reference(name) click to toggle source
# File lib/xsd/xmlparser/libxmlparser.rb, line 95
def on_reference(name)
  characters(ENTITY_REF_MAP[name])
end
on_start_element(name, attr_hash) click to toggle source
# File lib/xsd/xmlparser/libxmlparser.rb, line 87
def on_start_element (name, attr_hash)
  # start_element(name, attr_hash)
end
on_start_element_ns(name, attr_hash, prefix, uri, namespaces) click to toggle source

def on_end_document()

nil

end

# File lib/xsd/xmlparser/libxmlparser.rb, line 70
def on_start_element_ns (name, attr_hash, prefix, uri, namespaces)
  prefixed_ns = attr_hash.merge(Hash[namespaces.map{|k,v| ["xmlns:#{k}",v]}])
  if prefix.nil?
    start_element(name, prefixed_ns)
  else
    start_element("#{prefix}:#{name}", prefixed_ns)
  end
end