Module: REXML::SAX2Listener

Module REXML::SAX2Listener |
In: | rexml/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

     ignorable_whitespace

### Methods extending SAX2

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

     doctype
     elementdecl
     attlistdecl
     entitydecl
     notationdecl
     cdata
     xmldecl
     comment

Methods

attlistdecl cdata characters comment doctype elementdecl end_document end_element end_prefix_mapping entitydecl notationdecl processing_instruction start_document start_element start_prefix_mapping xmldecl

Public Instance methods

start_document()

end_document()

start_prefix_mapping(prefix, uri)

end_prefix_mapping(prefix)

start_element(uri, localname, qname, attributes)

end_element(uri, localname, qname)

characters(text)

processing_instruction(target, data)

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"

attlistdecl(content)

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.

elementdecl(content)

<!ELEMENT ...>

entitydecl(content)

<!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 ...>

cdata(content)

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

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

comment(comment)

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