# File xsd/xmlparser/xmlscanner.rb, line 20
def do_parse(string_or_readable)
@attrs = {}
@curattr = nil
@scanner = XMLScan::XMLScanner.new(self)
@scanner.kcode = XSD::Charset.charset_str(charset) if charset
@scanner.parse(string_or_readable)
end
# File xsd/xmlparser/xmlscanner.rb, line 123
def on_attr_charref(code)
@curattr << [code].pack('U')
end
# File xsd/xmlparser/xmlscanner.rb, line 127
def on_attr_charref_hex(code)
on_attr_charref(code)
end
# File xsd/xmlparser/xmlscanner.rb, line 119
def on_attr_entityref(ref)
@curattr << ENTITY_REF_MAP[ref]
end
# File xsd/xmlparser/xmlscanner.rb, line 115
def on_attr_value(str)
@curattr << str
end
# File xsd/xmlparser/xmlscanner.rb, line 111
def on_attribute(name)
@attrs[name] = @curattr = ''
end
def on_pi(target, pi); end
# File xsd/xmlparser/xmlscanner.rb, line 81
def on_chardata(str)
characters(str)
end
# File xsd/xmlparser/xmlscanner.rb, line 95
def on_charref(code)
characters([code].pack('U'))
end
# File xsd/xmlparser/xmlscanner.rb, line 99
def on_charref_hex(code)
on_charref(code)
end
# File xsd/xmlparser/xmlscanner.rb, line 91
def on_entityref(ref)
characters(ENTITY_REF_MAP[ref])
end
def on_cdata(str); end
# File xsd/xmlparser/xmlscanner.rb, line 87
def on_etag(name)
end_element(name)
end
def on_end_document; end
# File xsd/xmlparser/xmlscanner.rb, line 107
def on_stag(name)
@attrs = {}
end
# File xsd/xmlparser/xmlscanner.rb, line 138
def on_stag_end(name)
start_element(name, @attrs)
end
def on_attribute_end(name); end
# File xsd/xmlparser/xmlscanner.rb, line 133
def on_stag_end_empty(name)
on_stag_end(name)
on_etag(name)
end
# File xsd/xmlparser/xmlscanner.rb, line 63
def on_xmldecl_encoding(str)
self.scanner_kcode = str
end
def on_xmldecl; end
# File xsd/xmlparser/xmlscanner.rb, line 59
def on_xmldecl_version(str)
# 1.0 expected.
end
# File xsd/xmlparser/xmlscanner.rb, line 41
def parse_error(msg)
raise ParseError.new(msg)
end
# File xsd/xmlparser/xmlscanner.rb, line 28
def scanner_kcode=(charset)
@scanner.kcode = XSD::Charset.charset_str(charset) if charset
self.xmldecl_encoding = charset
end
# File xsd/xmlparser/xmlscanner.rb, line 49
def valid_error(msg)
raise NotValidError.new(msg)
end
Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.
If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.
If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.
If you want to help improve the Ruby documentation, please see Improve the docs, or visit Documenting-ruby.org.