Module: REXML::SAX2Listener
- Defined in:
- lib/rexml/sax2listener.rb
Overview
A template for stream parser listeners. Note that the declarations (attlistdecl, elementdecl, etc) are trivially processed; REXML doesn’t yet handle doctype entity declarations, so you have to parse them out yourself.
Missing methods from SAX2
ignorable_whitespace
Methods extending SAX2
WARNING
These methods are certainly going to change, until DTDs are fully supported. Be aware of this.
start_document
end_document
doctype
elementdecl
attlistdecl
entitydecl
notationdecl
cdata
xmldecl
comment
Instance Method Summary collapse
-
#attlistdecl(element, pairs, contents) ⇒ Object
If a doctype includes an ATTLIST declaration, it will cause this method to be called.
-
#cdata(content) ⇒ Object
Called when <![CDATA[ … ]]> is encountered in a document.
- #characters(text) ⇒ Object
-
#comment(comment) ⇒ Object
Called when a comment is encountered.
-
#doctype(name, pub_sys, long_name, uri) ⇒ Object
Handles a doctype declaration.
-
#elementdecl(content) ⇒ Object
<!ELEMENT …>.
- #end_document ⇒ Object
- #end_element(uri, localname, qname) ⇒ Object
- #end_prefix_mapping(prefix) ⇒ Object
-
#entitydecl(declaration) ⇒ Object
<!ENTITY …> The argument passed to this method is an array of the entity declaration.
-
#notationdecl(name, public_or_system, public_id, system_id) ⇒ Object
<!NOTATION …>.
- #processing_instruction(target, data) ⇒ Object
- #progress(position) ⇒ Object
- #start_document ⇒ Object
- #start_element(uri, localname, qname, attributes) ⇒ Object
- #start_prefix_mapping(prefix, uri) ⇒ Object
-
#xmldecl(version, encoding, standalone) ⇒ Object
Called when an XML PI is encountered in the document.
Instance Method Details
#attlistdecl(element, pairs, contents) ⇒ Object
If a doctype includes an ATTLIST declaration, it will cause this method to be called. The content is the declaration itself, unparsed. EG, <!ATTLIST el attr CDATA #REQUIRED> will come to this method as “el attr CDATA #REQUIRED”. This is the same for all of the .*decl methods.
52 53 |
# File 'lib/rexml/sax2listener.rb', line 52 def attlistdecl(element, pairs, contents) end |
#cdata(content) ⇒ Object
Called when <![CDATA[ … ]]> is encountered in a document.
80 81 |
# File 'lib/rexml/sax2listener.rb', line 80 def cdata content end |
#characters(text) ⇒ Object
35 36 |
# File 'lib/rexml/sax2listener.rb', line 35 def characters text end |
#comment(comment) ⇒ Object
Called when a comment is encountered.
92 93 |
# File 'lib/rexml/sax2listener.rb', line 92 def comment comment end |
#doctype(name, pub_sys, long_name, uri) ⇒ Object
Handles a doctype declaration. Any attributes of the doctype which are not supplied will be nil. # EG, <!DOCTYPE me PUBLIC “foo” “bar”>
45 46 |
# File 'lib/rexml/sax2listener.rb', line 45 def doctype name, pub_sys, long_name, uri end |
#elementdecl(content) ⇒ Object
<!ELEMENT …>
55 56 |
# File 'lib/rexml/sax2listener.rb', line 55 def elementdecl content end |
#end_document ⇒ Object
25 26 |
# File 'lib/rexml/sax2listener.rb', line 25 def end_document end |
#end_element(uri, localname, qname) ⇒ Object
33 34 |
# File 'lib/rexml/sax2listener.rb', line 33 def end_element uri, localname, qname end |
#end_prefix_mapping(prefix) ⇒ Object
29 30 |
# File 'lib/rexml/sax2listener.rb', line 29 def end_prefix_mapping prefix end |
#entitydecl(declaration) ⇒ Object
<!ENTITY …> The argument passed to this method is an array of the entity declaration. It can be in a number of formats, but in general it returns (example, result):
<!ENTITY % YN '"Yes"'>
["%", "YN", "\"Yes\""]
<!ENTITY % YN 'Yes'>
["%", "YN", "Yes"]
<!ENTITY WhatHeSaid "He said %YN;">
["WhatHeSaid", "He said %YN;"]
<!ENTITY open-hatch SYSTEM "http://www.textuality.com/boilerplate/OpenHatch.xml">
["open-hatch", "SYSTEM", "http://www.textuality.com/boilerplate/OpenHatch.xml"]
<!ENTITY open-hatch PUBLIC "-//Textuality//TEXT Standard open-hatch boilerplate//EN" "http://www.textuality.com/boilerplate/OpenHatch.xml">
- “open-hatch”, “PUBLIC”, “-//Textuality//TEXT Standard open-hatch boilerplate//EN”, “www.textuality.com/boilerplate/OpenHatch.xml”
-
<!ENTITY hatch-pic SYSTEM “../grafix/OpenHatch.gif” NDATA gif>
- “hatch-pic”, “SYSTEM”, “../grafix/OpenHatch.gif”, “NDATA”, “gif”
73 74 |
# File 'lib/rexml/sax2listener.rb', line 73 def entitydecl declaration end |
#notationdecl(name, public_or_system, public_id, system_id) ⇒ Object
<!NOTATION …>
76 77 |
# File 'lib/rexml/sax2listener.rb', line 76 def notationdecl name, public_or_system, public_id, system_id end |
#processing_instruction(target, data) ⇒ Object
37 38 |
# File 'lib/rexml/sax2listener.rb', line 37 def processing_instruction target, data end |
#progress(position) ⇒ Object
94 95 |
# File 'lib/rexml/sax2listener.rb', line 94 def progress position end |
#start_document ⇒ Object
23 24 |
# File 'lib/rexml/sax2listener.rb', line 23 def start_document end |
#start_element(uri, localname, qname, attributes) ⇒ Object
31 32 |
# File 'lib/rexml/sax2listener.rb', line 31 def start_element uri, localname, qname, attributes end |
#start_prefix_mapping(prefix, uri) ⇒ Object
27 28 |
# File 'lib/rexml/sax2listener.rb', line 27 def start_prefix_mapping prefix, uri end |
#xmldecl(version, encoding, standalone) ⇒ Object
Called when an XML PI is encountered in the document. EG: <?xml version=“1.0” encoding=“utf”?>
88 89 |
# File 'lib/rexml/sax2listener.rb', line 88 def xmldecl version, encoding, standalone end |