class XSD::XMLParser::XMLScanner

Constants

ENTITY_REF_MAP

Public Instance Methods

do_parse(string_or_readable) click to toggle source
# File lib/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
on_attr_charref(code) click to toggle source
# File lib/xsd/xmlparser/xmlscanner.rb, line 125
def on_attr_charref(code)
  @curattr << [code].pack('U')
end
on_attr_charref_hex(code) click to toggle source
# File lib/xsd/xmlparser/xmlscanner.rb, line 129
def on_attr_charref_hex(code)
  on_attr_charref(code)
end
on_attr_entityref(ref) click to toggle source
# File lib/xsd/xmlparser/xmlscanner.rb, line 121
def on_attr_entityref(ref)
  @curattr << ENTITY_REF_MAP[ref]
end
on_attr_value(str) click to toggle source
# File lib/xsd/xmlparser/xmlscanner.rb, line 117
def on_attr_value(str)
  @curattr << str
end
on_attribute(name) click to toggle source
# File lib/xsd/xmlparser/xmlscanner.rb, line 113
def on_attribute(name)
  @attrs[name] = @curattr = ''
end
on_cdata(str) click to toggle source
# File lib/xsd/xmlparser/xmlscanner.rb, line 85
def on_cdata(str)
  characters(str)
end
on_chardata(str) click to toggle source

def on_pi(target, pi); end

# File lib/xsd/xmlparser/xmlscanner.rb, line 81
def on_chardata(str)
  characters(str)
end
on_charref(code) click to toggle source
# File lib/xsd/xmlparser/xmlscanner.rb, line 97
def on_charref(code)
  characters([code].pack('U'))
end
on_charref_hex(code) click to toggle source
# File lib/xsd/xmlparser/xmlscanner.rb, line 101
def on_charref_hex(code)
  on_charref(code)
end
on_entityref(ref) click to toggle source
# File lib/xsd/xmlparser/xmlscanner.rb, line 93
def on_entityref(ref)
  characters(ENTITY_REF_MAP[ref])
end
on_etag(name) click to toggle source
# File lib/xsd/xmlparser/xmlscanner.rb, line 89
def on_etag(name)
  end_element(name)
end
on_stag(name) click to toggle source

def on_end_document; end

# File lib/xsd/xmlparser/xmlscanner.rb, line 109
def on_stag(name)
  @attrs = {}
end
on_stag_end(name) click to toggle source
# File lib/xsd/xmlparser/xmlscanner.rb, line 140
def on_stag_end(name)
  start_element(name, @attrs)
end
on_stag_end_empty(name) click to toggle source

def on_attribute_end(name); end

# File lib/xsd/xmlparser/xmlscanner.rb, line 135
def on_stag_end_empty(name)
  on_stag_end(name)
  on_etag(name)
end
on_xmldecl_encoding(str) click to toggle source
# File lib/xsd/xmlparser/xmlscanner.rb, line 63
def on_xmldecl_encoding(str)
  self.scanner_kcode = str
end
on_xmldecl_version(str) click to toggle source

def on_xmldecl; end

# File lib/xsd/xmlparser/xmlscanner.rb, line 59
def on_xmldecl_version(str)
  # 1.0 expected.
end
parse_error(msg) click to toggle source
# File lib/xsd/xmlparser/xmlscanner.rb, line 41
def parse_error(msg)
  raise ParseError.new(msg)
end
scanner_kcode=(charset) click to toggle source
# File lib/xsd/xmlparser/xmlscanner.rb, line 28
def scanner_kcode=(charset)
  @scanner.kcode = XSD::Charset.charset_str(charset) if charset
  self.xmldecl_encoding = charset
end
valid_error(msg) click to toggle source
# File lib/xsd/xmlparser/xmlscanner.rb, line 49
def valid_error(msg)
  raise NotValidError.new(msg)
end
warning(msg) click to toggle source
# File lib/xsd/xmlparser/xmlscanner.rb, line 53
def warning(msg)
  warn(msg)
end
wellformed_error(msg) click to toggle source
# File lib/xsd/xmlparser/xmlscanner.rb, line 45
def wellformed_error(msg)
  raise NotWellFormedError.new(msg)
end