| 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