Class | XSD::XMLParser::XMLScanner |
In: |
lib/xsd/xmlparser/xmlscanner.rb
|
Parent: | XSD::XMLParser::Parser |
ENTITY_REF_MAP | = | { 'lt' => '<', 'gt' => '>', 'amp' => '&', 'quot' => '"', 'apos' => '\'' |
# File lib/xsd/xmlparser/xmlscanner.rb, line 20 20: def do_parse(string_or_readable) 21: @attrs = {} 22: @curattr = nil 23: @scanner = XMLScan::XMLScanner.new(self) 24: @scanner.kcode = XSD::Charset.charset_str(charset) if charset 25: @scanner.parse(string_or_readable) 26: end
# File lib/xsd/xmlparser/xmlscanner.rb, line 123 123: def on_attr_charref(code) 124: @curattr << [code].pack('U') 125: end
# File lib/xsd/xmlparser/xmlscanner.rb, line 127 127: def on_attr_charref_hex(code) 128: on_attr_charref(code) 129: end
# File lib/xsd/xmlparser/xmlscanner.rb, line 119 119: def on_attr_entityref(ref) 120: @curattr << ENTITY_REF_MAP[ref] 121: end
# File lib/xsd/xmlparser/xmlscanner.rb, line 115 115: def on_attr_value(str) 116: @curattr << str 117: end
# File lib/xsd/xmlparser/xmlscanner.rb, line 111 111: def on_attribute(name) 112: @attrs[name] = @curattr = '' 113: end
def on_pi(target, pi); end
# File lib/xsd/xmlparser/xmlscanner.rb, line 81 81: def on_chardata(str) 82: characters(str) 83: end
# File lib/xsd/xmlparser/xmlscanner.rb, line 95 95: def on_charref(code) 96: characters([code].pack('U')) 97: end
# File lib/xsd/xmlparser/xmlscanner.rb, line 99 99: def on_charref_hex(code) 100: on_charref(code) 101: end
# File lib/xsd/xmlparser/xmlscanner.rb, line 91 91: def on_entityref(ref) 92: characters(ENTITY_REF_MAP[ref]) 93: end
def on_cdata(str); end
# File lib/xsd/xmlparser/xmlscanner.rb, line 87 87: def on_etag(name) 88: end_element(name) 89: end
def on_end_document; end
# File lib/xsd/xmlparser/xmlscanner.rb, line 107 107: def on_stag(name) 108: @attrs = {} 109: end
# File lib/xsd/xmlparser/xmlscanner.rb, line 138 138: def on_stag_end(name) 139: start_element(name, @attrs) 140: end
def on_attribute_end(name); end
# File lib/xsd/xmlparser/xmlscanner.rb, line 133 133: def on_stag_end_empty(name) 134: on_stag_end(name) 135: on_etag(name) 136: end
# File lib/xsd/xmlparser/xmlscanner.rb, line 63 63: def on_xmldecl_encoding(str) 64: self.scanner_kcode = str 65: end
def on_xmldecl; end
# File lib/xsd/xmlparser/xmlscanner.rb, line 59 59: def on_xmldecl_version(str) 60: # 1.0 expected. 61: end
# File lib/xsd/xmlparser/xmlscanner.rb, line 41 41: def parse_error(msg) 42: raise ParseError.new(msg) 43: end
# File lib/xsd/xmlparser/xmlscanner.rb, line 28 28: def scanner_kcode=(charset) 29: @scanner.kcode = XSD::Charset.charset_str(charset) if charset 30: self.xmldecl_encoding = charset 31: end
# File lib/xsd/xmlparser/xmlscanner.rb, line 49 49: def valid_error(msg) 50: raise NotValidError.new(msg) 51: end