Extended maintenance of Ruby 1.9.3 ended on February 23, 2015. Read more
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.
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.
# File rexml/streamlistener.rb, line 50 def attlistdecl element_name, attributes, raw_content end
Called when <![CDATA[ … ]]> is encountered in a document. @p content “…”
# File rexml/streamlistener.rb, line 82 def cdata content end
Handles a doctype declaration. Any attributes of the doctype which are not supplied will be nil. # EG, <!DOCTYPE me PUBLIC “foo” “bar”> @p name the name of the doctype; EG, “me” @p pub_sys “PUBLIC”, “SYSTEM”, or nil. EG, “PUBLIC” @p long_name the supplied long name, or nil. EG, “foo” @p uri the uri of the doctype, or nil. EG, “bar”
# File rexml/streamlistener.rb, line 40 def doctype name, pub_sys, long_name, uri end
Called when the doctype is done
# File rexml/streamlistener.rb, line 43 def doctype_end end
<!ELEMENT …>
# File rexml/streamlistener.rb, line 53 def elementdecl content end
Called when %foo; is encountered in a doctype declaration. @p content “foo”
# File rexml/streamlistener.rb, line 78 def entity content end
<!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'", "s"] <!ENTITY WhatHeSaid "He said %YN;"> ["WhatHeSaid", "\"He said %YN;\"", "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\"", "\"http://www.textuality.com/boilerplate/OpenHatch.xml\""] <!ENTITY hatch-pic SYSTEM "../grafix/OpenHatch.gif" NDATA gif> ["hatch-pic", "SYSTEM", "\"../grafix/OpenHatch.gif\"", "\n\t\t\t\t\t\t\tNDATA gif", "gif"]
# File rexml/streamlistener.rb, line 71 def entitydecl content end
Called when an instruction is encountered. EG: <?xsl sheet=‘foo’?> @p name the instruction name; in the example, “xsl” @p instruction the rest of the instruction. In the example, “sheet=‘foo’”
# File rexml/streamlistener.rb, line 28 def instruction name, instruction end
<!NOTATION …>
# File rexml/streamlistener.rb, line 74 def notationdecl content end
Called when the end tag is reached. In the case of <tag/>, #tag_end will be called immidiately after #tag_start @p the name of the tag
# File rexml/streamlistener.rb, line 18 def tag_end name end
Called when a tag is encountered. @p name the tag name @p attrs an array of arrays of attribute/value pairs, suitable for use with assoc or rassoc. IE, <tag attr1=“value1” attr2=“value2”> will result in #tag_start( “tag”, # [[“attr1”,“value1”],])
# File rexml/streamlistener.rb, line 13 def tag_start name, attrs end
Called when text is encountered in the document @p text the text content.
# File rexml/streamlistener.rb, line 22 def text text end
Called when an XML PI is encountered in the document. EG: <?xml version=“1.0” encoding=“utf”?> @p version the version attribute value. EG, “1.0” @p encoding the encoding attribute value, or nil. EG, “utf” @p standalone the standalone attribute value, or nil. EG, nil
# File rexml/streamlistener.rb, line 89 def xmldecl version, encoding, standalone end
Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.
If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.
If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.
If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.
Called when a comment is encountered. @p comment The content of the comment