Module

REXML::SAX2Listener

Inheritance

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

Methods

Instance

Visibility Signature
public attlistdecl (element, pairs, contents)
public cdata (content)
public characters (text)
public comment (comment)
public doctype (name, pub_sys, long_name, uri)
public elementdecl (content)
public end_document ()
public end_element (uri, localname, qname)
public end_prefix_mapping (prefix)
public entitydecl (name, decl)
public notationdecl (content)
public processing_instruction (target, data)
public progress (position)
public start_document ()
public start_element (uri, localname, qname, attributes)
public start_prefix_mapping (prefix, uri)
public xmldecl (version, encoding, standalone)

Instance Method Detail

attlistdecl(element, pairs, contents)

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.

cdata(content)

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

characters(text)

comment(comment)

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

doctype(name, pub_sys, long_name, uri)

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"

elementdecl(content)

<!ELEMENT …>

end_document()

end_element(uri, localname, qname)

end_prefix_mapping(prefix)

entitydecl(name, decl)

<!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"]

notationdecl(content)

<!NOTATION …>

processing_instruction(target, data)

progress(position)

start_document()

start_element(uri, localname, qname, attributes)

start_prefix_mapping(prefix, uri)

xmldecl(version, encoding, standalone)

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