Class: VCDOM::XMLLS::XMLContentHandler

Inherits:
Object
  • Object
show all
Defined in:
lib/vcdom/xml_ls/xml_parser.rb

Overview

:nodoc:

Instance Method Summary collapse

Constructor Details

#initialize(document_class) ⇒ XMLContentHandler

Returns a new instance of XMLContentHandler.



17
18
19
20
# File 'lib/vcdom/xml_ls/xml_parser.rb', line 17

def initialize( document_class )
  @document_class = document_class
  @ns_stack = Array.new()
end

Instance Method Details

#end_documentObject



28
29
30
# File 'lib/vcdom/xml_ls/xml_parser.rb', line 28

def end_document
  return @doc
end

#ns_stackObject



21
22
23
# File 'lib/vcdom/xml_ls/xml_parser.rb', line 21

def ns_stack
  @ns_stack
end

#on_begin_attr(name, ns_uri) ⇒ Object



46
47
48
49
50
# File 'lib/vcdom/xml_ls/xml_parser.rb', line 46

def on_begin_attr( name, ns_uri )
  attr = @doc.create_attribute_ns( ns_uri, name )
  @cur.set_attribute_node_ns( attr )
  @cur = attr
end

#on_chardata(char_data) ⇒ Object



54
55
56
57
58
59
60
61
62
# File 'lib/vcdom/xml_ls/xml_parser.rb', line 54

def on_chardata( char_data )
  if @cur.node_type == VCDOM::Node::DOCUMENT_NODE then
    if char_data !~ /\A[\x20\x09\x0D\x0A]*\Z/ then
      raise "ERROR : " + char_data.inspect
    end
  else
    @cur.append_child( @doc.create_text_node( char_data ) )
  end
end

#on_eetag(name, ns_uri) ⇒ Object



40
41
42
# File 'lib/vcdom/xml_ls/xml_parser.rb', line 40

def on_eetag( name, ns_uri )
  @cur = @cur.append_child( @doc.create_element_ns( ns_uri, name ) )
end

#on_end_attrObject



51
52
53
# File 'lib/vcdom/xml_ls/xml_parser.rb', line 51

def on_end_attr()
  @cur = @cur.owner_element
end

#on_end_eetagObject



43
44
45
# File 'lib/vcdom/xml_ls/xml_parser.rb', line 43

def on_end_eetag()
  @cur = @cur.parent_node
end

#on_etag(name) ⇒ Object



34
35
36
37
38
39
# File 'lib/vcdom/xml_ls/xml_parser.rb', line 34

def on_etag( name )
  if @cur.node_name != name then
    raise "[ERROR] @cur.node_name : #{@cur.node_name}, name : #{name}"
  end
  @cur = @cur.parent_node
end

#on_stag(name, ns_uri) ⇒ Object



31
32
33
# File 'lib/vcdom/xml_ls/xml_parser.rb', line 31

def on_stag( name, ns_uri )
  @cur = @cur.append_child( @doc.create_element_ns( ns_uri, name ) )
end

#start_documentObject



24
25
26
27
# File 'lib/vcdom/xml_ls/xml_parser.rb', line 24

def start_document
  @doc = @document_class._new()
  @cur = @doc
end