Class XSD::XMLParser::XMLScanner
In: lib/xsd/xmlparser/xmlscanner.rb
Parent: XSD::XMLParser::Parser

Methods

Included Modules

XMLScan::Visitor

Constants

ENTITY_REF_MAP = { 'lt' => '<', 'gt' => '>', 'amp' => '&', 'quot' => '"', 'apos' => '\''

Public Instance methods

[Source]

    # 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

[Source]

     # File lib/xsd/xmlparser/xmlscanner.rb, line 123
123:   def on_attr_charref(code)
124:     @curattr << [code].pack('U')
125:   end

[Source]

     # File lib/xsd/xmlparser/xmlscanner.rb, line 127
127:   def on_attr_charref_hex(code)
128:     on_attr_charref(code)
129:   end

[Source]

     # File lib/xsd/xmlparser/xmlscanner.rb, line 119
119:   def on_attr_entityref(ref)
120:     @curattr << ENTITY_REF_MAP[ref]
121:   end

[Source]

     # File lib/xsd/xmlparser/xmlscanner.rb, line 115
115:   def on_attr_value(str)
116:     @curattr << str
117:   end

[Source]

     # 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

[Source]

    # File lib/xsd/xmlparser/xmlscanner.rb, line 81
81:   def on_chardata(str)
82:     characters(str)
83:   end

[Source]

    # File lib/xsd/xmlparser/xmlscanner.rb, line 95
95:   def on_charref(code)
96:     characters([code].pack('U'))
97:   end

[Source]

     # File lib/xsd/xmlparser/xmlscanner.rb, line 99
 99:   def on_charref_hex(code)
100:     on_charref(code)
101:   end

[Source]

    # 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

[Source]

    # File lib/xsd/xmlparser/xmlscanner.rb, line 87
87:   def on_etag(name)
88:     end_element(name)
89:   end

def on_end_document; end

[Source]

     # File lib/xsd/xmlparser/xmlscanner.rb, line 107
107:   def on_stag(name)
108:     @attrs = {}
109:   end

[Source]

     # 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

[Source]

     # 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

[Source]

    # 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

[Source]

    # File lib/xsd/xmlparser/xmlscanner.rb, line 59
59:   def on_xmldecl_version(str)
60:     # 1.0 expected.
61:   end

[Source]

    # File lib/xsd/xmlparser/xmlscanner.rb, line 41
41:   def parse_error(msg)
42:     raise ParseError.new(msg)
43:   end

[Source]

    # 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

[Source]

    # File lib/xsd/xmlparser/xmlscanner.rb, line 49
49:   def valid_error(msg)
50:     raise NotValidError.new(msg)
51:   end

[Source]

    # File lib/xsd/xmlparser/xmlscanner.rb, line 53
53:   def warning(msg)
54:     p msg if $DEBUG
55:   end

[Source]

    # File lib/xsd/xmlparser/xmlscanner.rb, line 45
45:   def wellformed_error(msg)
46:     raise NotWellFormedError.new(msg)
47:   end

[Validate]