Module REXML::SAX2Listener
In: temp/sax2listener.rb

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


Methods extending SAX2

WARNING These methods are certainly going to change, until DTDs are fully supported. Be aware of this.



Public Instance methods

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.

Called when <![CDATA[ … ]]> is encountered in a document. @p content "…"

Called when a comment is encountered. @p comment The content of the comment

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"


<!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 "">
 ["open-hatch", "SYSTEM", "\"\""]
 <!ENTITY open-hatch PUBLIC "-//Textuality//TEXT Standard open-hatch boilerplate//EN" "">
 ["open-hatch", "PUBLIC", "\"-//Textuality//TEXT Standard open-hatch boilerplate//EN\"", "\"\""]
 <!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"]


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 @p spaced the declaration is followed by a line break