Class XSD::XMLParser::Parser
In: lib/xsd/xmlparser/parser.rb
Parent: Object

Methods

Classes and Modules

Class XSD::XMLParser::Parser::ElementConstraintError
Class XSD::XMLParser::Parser::FormatDecodeError
Class XSD::XMLParser::Parser::ParseError
Class XSD::XMLParser::Parser::UnexpectedElementError
Class XSD::XMLParser::Parser::UnknownAttributeError
Class XSD::XMLParser::Parser::UnknownElementError

Attributes

charset  [RW] 

Public Class methods

[Source]

    # File lib/xsd/xmlparser/parser.rb, line 36
36:   def self.add_factory(factory)
37:     if $DEBUG
38:       puts "Set #{ factory } as XML processor."
39:     end
40:     @@parser_factory = factory
41:   end

[Source]

    # File lib/xsd/xmlparser/parser.rb, line 32
32:   def self.create_parser(host, opt = {})
33:     @@parser_factory.new(host, opt)
34:   end

[Source]

    # File lib/xsd/xmlparser/parser.rb, line 28
28:   def self.factory
29:     @@parser_factory
30:   end

[Source]

    # File lib/xsd/xmlparser/parser.rb, line 47
47:   def initialize(host, opt = {})
48:     @host = host
49:     @charset = opt[:charset] || nil
50:   end

Public Instance methods

[Source]

    # File lib/xsd/xmlparser/parser.rb, line 52
52:   def parse(string_or_readable)
53:     @textbuf = ''
54:     prologue
55:     do_parse(string_or_readable)
56:     epilogue
57:   end

Private Instance methods

[Source]

    # File lib/xsd/xmlparser/parser.rb, line 70
70:   def characters(text)
71:     @host.characters(text)
72:   end

[Source]

    # File lib/xsd/xmlparser/parser.rb, line 61
61:   def do_parse(string_or_readable)
62:     raise NotImplementError.new(
63:       'Method do_parse must be defined in derived class.')
64:   end

[Source]

    # File lib/xsd/xmlparser/parser.rb, line 74
74:   def end_element(name)
75:     @host.end_element(name)
76:   end

[Source]

    # File lib/xsd/xmlparser/parser.rb, line 81
81:   def epilogue
82:   end

[Source]

    # File lib/xsd/xmlparser/parser.rb, line 78
78:   def prologue
79:   end

[Source]

    # File lib/xsd/xmlparser/parser.rb, line 66
66:   def start_element(name, attrs)
67:     @host.start_element(name, attrs)
68:   end

[Source]

    # File lib/xsd/xmlparser/parser.rb, line 84
84:   def xmldecl_encoding=(charset)
85:     if @charset.nil?
86:       @charset = charset
87:     else
88:       # Definition in a stream (like HTTP) has a priority.
89:       p "encoding definition: #{ charset } is ignored." if $DEBUG
90:     end
91:   end

[Validate]