# File xsd/xmlparser/xmlparser.rb, line 27
def do_parse(string_or_readable)
# XMLParser passes a String in utf-8.
@charset = 'utf-8'
@parser = Listener.new
@parser.parse(string_or_readable) do |type, name, data|
case type
when XML::Parser::START_ELEM
start_element(name, data)
when XML::Parser::END_ELEM
end_element(name)
when XML::Parser::CDATA
characters(data)
else
raise FormatDecodeError.new("Unexpected XML: #{ type }/#{ name }/#{ data }.")
end
end
end