1 | module REXML
|
---|
2 | # A template for stream parser listeners.
|
---|
3 | # Note that the declarations (attlistdecl, elementdecl, etc) are trivially
|
---|
4 | # processed; REXML doesn't yet handle doctype entity declarations, so you
|
---|
5 | # have to parse them out yourself.
|
---|
6 | # === Missing methods from SAX2
|
---|
7 | # ignorable_whitespace
|
---|
8 | # === Methods extending SAX2
|
---|
9 | # +WARNING+
|
---|
10 | # These methods are certainly going to change, until DTDs are fully
|
---|
11 | # supported. Be aware of this.
|
---|
12 | # start_document
|
---|
13 | # end_document
|
---|
14 | # doctype
|
---|
15 | # elementdecl
|
---|
16 | # attlistdecl
|
---|
17 | # entitydecl
|
---|
18 | # notationdecl
|
---|
19 | # cdata
|
---|
20 | # xmldecl
|
---|
21 | # comment
|
---|
22 | module SAX2Listener
|
---|
23 | def start_document
|
---|
24 | end
|
---|
25 | def end_document
|
---|
26 | end
|
---|
27 | def start_prefix_mapping prefix, uri
|
---|
28 | end
|
---|
29 | def end_prefix_mapping prefix
|
---|
30 | end
|
---|
31 | def start_element uri, localname, qname, attributes
|
---|
32 | end
|
---|
33 | def end_element uri, localname, qname
|
---|
34 | end
|
---|
35 | def characters text
|
---|
36 | end
|
---|
37 | def processing_instruction target, data
|
---|
38 | end
|
---|
39 | # Handles a doctype declaration. Any attributes of the doctype which are
|
---|
40 | # not supplied will be nil. # EG, <!DOCTYPE me PUBLIC "foo" "bar">
|
---|
41 | # @p name the name of the doctype; EG, "me"
|
---|
42 | # @p pub_sys "PUBLIC", "SYSTEM", or nil. EG, "PUBLIC"
|
---|
43 | # @p long_name the supplied long name, or nil. EG, "foo"
|
---|
44 | # @p uri the uri of the doctype, or nil. EG, "bar"
|
---|
45 | def doctype name, pub_sys, long_name, uri
|
---|
46 | end
|
---|
47 | # If a doctype includes an ATTLIST declaration, it will cause this
|
---|
48 | # method to be called. The content is the declaration itself, unparsed.
|
---|
49 | # EG, <!ATTLIST el attr CDATA #REQUIRED> will come to this method as "el
|
---|
50 | # attr CDATA #REQUIRED". This is the same for all of the .*decl
|
---|
51 | # methods.
|
---|
52 | def attlistdecl(element, pairs, contents)
|
---|
53 | end
|
---|
54 | # <!ELEMENT ...>
|
---|
55 | def elementdecl content
|
---|
56 | end
|
---|
57 | # <!ENTITY ...>
|
---|
58 | # The argument passed to this method is an array of the entity
|
---|
59 | # declaration. It can be in a number of formats, but in general it
|
---|
60 | # returns (example, result):
|
---|
61 | # <!ENTITY % YN '"Yes"'>
|
---|
62 | # ["%", "YN", "'\"Yes\"'", "\""]
|
---|
63 | # <!ENTITY % YN 'Yes'>
|
---|
64 | # ["%", "YN", "'Yes'", "s"]
|
---|
65 | # <!ENTITY WhatHeSaid "He said %YN;">
|
---|
66 | # ["WhatHeSaid", "\"He said %YN;\"", "YN"]
|
---|
67 | # <!ENTITY open-hatch SYSTEM "http://www.textuality.com/boilerplate/OpenHatch.xml">
|
---|
68 | # ["open-hatch", "SYSTEM", "\"http://www.textuality.com/boilerplate/OpenHatch.xml\""]
|
---|
69 | # <!ENTITY open-hatch PUBLIC "-//Textuality//TEXT Standard open-hatch boilerplate//EN" "http://www.textuality.com/boilerplate/OpenHatch.xml">
|
---|
70 | # ["open-hatch", "PUBLIC", "\"-//Textuality//TEXT Standard open-hatch boilerplate//EN\"", "\"http://www.textuality.com/boilerplate/OpenHatch.xml\""]
|
---|
71 | # <!ENTITY hatch-pic SYSTEM "../grafix/OpenHatch.gif" NDATA gif>
|
---|
72 | # ["hatch-pic", "SYSTEM", "\"../grafix/OpenHatch.gif\"", "\n\t\t\t\t\t\t\tNDATA gif", "gif"]
|
---|
73 | def entitydecl name, decl
|
---|
74 | end
|
---|
75 | # <!NOTATION ...>
|
---|
76 | def notationdecl content
|
---|
77 | end
|
---|
78 | # Called when <![CDATA[ ... ]]> is encountered in a document.
|
---|
79 | # @p content "..."
|
---|
80 | def cdata content
|
---|
81 | end
|
---|
82 | # Called when an XML PI is encountered in the document.
|
---|
83 | # EG: <?xml version="1.0" encoding="utf"?>
|
---|
84 | # @p version the version attribute value. EG, "1.0"
|
---|
85 | # @p encoding the encoding attribute value, or nil. EG, "utf"
|
---|
86 | # @p standalone the standalone attribute value, or nil. EG, nil
|
---|
87 | # @p spaced the declaration is followed by a line break
|
---|
88 | def xmldecl version, encoding, standalone
|
---|
89 | end
|
---|
90 | # Called when a comment is encountered.
|
---|
91 | # @p comment The content of the comment
|
---|
92 | def comment comment
|
---|
93 | end
|
---|
94 | def progress position
|
---|
95 | end
|
---|
96 | end
|
---|
97 | end
|
---|