Class: XSD::XMLParser::LibXMLParser
- Inherits:
-
Parser
show all
- Includes:
- LibXML::XML::SaxParser::Callbacks
- Defined in:
- lib/xsd/xmlparser/libxmlparser.rb
Constant Summary
collapse
- ENTITY_REF_MAP =
{
'lt' => '<',
'gt' => '>',
'amp' => '&',
'quot' => '"',
'apos' => '\''
}
Instance Attribute Summary
Attributes inherited from Parser
#charset
Instance Method Summary
collapse
Methods inherited from Parser
add_factory, create_parser, factory, #initialize, #parse
Instance Method Details
#do_parse(string_or_readable) ⇒ Object
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/xsd/xmlparser/libxmlparser.rb', line 27
def do_parse(string_or_readable)
$stderr.puts "XSD::XMLParser::LibXMLParser.do_parse" if $DEBUG
@charset = 'utf-8'
string = StringIO.new(string_or_readable)
parser = LibXML::XML::SaxParser.io(string)
parser.callbacks = self
parser.parse
end
|
#on_cdata_block(cdata) ⇒ Object
123
124
125
|
# File 'lib/xsd/xmlparser/libxmlparser.rb', line 123
def on_cdata_block(cdata)
characters(cdata)
end
|
#on_characters(chars) ⇒ Object
99
100
101
|
# File 'lib/xsd/xmlparser/libxmlparser.rb', line 99
def on_characters(chars)
characters(chars)
end
|
#on_end_element(name) ⇒ Object
91
92
93
|
# File 'lib/xsd/xmlparser/libxmlparser.rb', line 91
def on_end_element(name)
end
|
#on_end_element_ns(name, prefix, uri) ⇒ Object
79
80
81
82
83
84
85
|
# File 'lib/xsd/xmlparser/libxmlparser.rb', line 79
def on_end_element_ns (name, prefix, uri)
if prefix.nil?
end_element(name)
else
end_element("#{prefix}:#{name}")
end
end
|
#on_external_subset(name, external_id, system_id) ⇒ Object
127
128
129
|
# File 'lib/xsd/xmlparser/libxmlparser.rb', line 127
def on_external_subset(name, external_id, system_id)
nil
end
|
#on_parser_error(msg) ⇒ Object
115
116
117
|
# File 'lib/xsd/xmlparser/libxmlparser.rb', line 115
def on_parser_error(msg)
raise ParseError.new(msg)
end
|
#on_parser_fatal_error(msg) ⇒ Object
119
120
121
|
# File 'lib/xsd/xmlparser/libxmlparser.rb', line 119
def on_parser_fatal_error(msg)
raise ParseError.new(msg)
end
|
#on_parser_warning(msg) ⇒ Object
def on_comment(msg)
nil
end
111
112
113
|
# File 'lib/xsd/xmlparser/libxmlparser.rb', line 111
def on_parser_warning(msg)
warn(msg)
end
|
#on_reference(name) ⇒ Object
95
96
97
|
# File 'lib/xsd/xmlparser/libxmlparser.rb', line 95
def on_reference(name)
characters(ENTITY_REF_MAP[name])
end
|
#on_start_element(name, attr_hash) ⇒ Object
87
88
89
|
# File 'lib/xsd/xmlparser/libxmlparser.rb', line 87
def on_start_element (name, attr_hash)
end
|
#on_start_element_ns(name, attr_hash, prefix, uri, namespaces) ⇒ Object
def on_end_document()
nil
end
70
71
72
73
74
75
76
77
|
# File 'lib/xsd/xmlparser/libxmlparser.rb', line 70
def on_start_element_ns (name, attr_hash, prefix, uri, namespaces)
prefixed_ns = attr_hash.merge(Hash[namespaces.map{|k,v| ["xmlns:#{k}",v]}])
if prefix.nil?
start_element(name, prefixed_ns)
else
start_element("#{prefix}:#{name}", prefixed_ns)
end
end
|