XSD::XMLParser::XMLScanner (Class)

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

Constants

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

Included Modules

XMLScan::Visitor

Public Instance methods

[Source]

# 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

[Source]

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

[Source]

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

[Source]

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

[Source]

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

[Source]

# File xsd/xmlparser/xmlscanner.rb, line 111
  def on_attribute(name)
    @attrs[name] = @curattr = ''
  end

def on_pi(target, pi); end

[Source]

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

[Source]

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

[Source]

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

[Source]

# File xsd/xmlparser/xmlscanner.rb, line 91
  def on_entityref(ref)
    characters(ENTITY_REF_MAP[ref])
  end

def on_cdata(str); end

[Source]

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

def on_end_document; end

[Source]

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

[Source]

# File xsd/xmlparser/xmlscanner.rb, line 138
  def on_stag_end(name)
    start_element(name, @attrs)
  end

def on_attribute_end(name); end

[Source]

# File xsd/xmlparser/xmlscanner.rb, line 133
  def on_stag_end_empty(name)
    on_stag_end(name)
    on_etag(name)
  end

[Source]

# File xsd/xmlparser/xmlscanner.rb, line 63
  def on_xmldecl_encoding(str)
    self.scanner_kcode = str
  end

def on_xmldecl; end

[Source]

# File xsd/xmlparser/xmlscanner.rb, line 59
  def on_xmldecl_version(str)
    # 1.0 expected.

  end

[Source]

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

[Source]

# 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

[Source]

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

[Source]

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

[Source]

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

[Validate]