Project

General

Profile

Bug #8731

Problems when parsing notation decl and entity decl with REXML::Parsers::SAX2Parser

Added by ohai (Ippei Obayashi) over 6 years ago. Updated over 6 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
-
ruby -v:
ruby 2.1.0dev (2013-08-04 trunk 42372) [x86_64-linux]
[ruby-dev:47582]

Description

以下のコード(sax2parser_decl_error.rb)を実行すると例外が発生します。
require 'rexml/parsers/sax2parser'
require 'rexml/sax2listener'

xml = <
<!NOTATION x SYSTEM "URIx">
]>

EOS

class Listener
include REXML::SAX2Listener
end

parser = REXML::Parsers::SAX2Parser.new(xml)
parser.listen(Listener.new)
parser.parse
# > test_sax2parser.rb:21:in `entitydecl': wrong number of arguments (3 for 1) (ArgumentError)
これは SAX2Parser#handle から SAX2Listener#entitydecl, notationdecl に渡す引数の個数が違っているのが問題です。

添付した rexml-sax2parser-fix.patch で修正されます。ユニットテストは rexml-sax2parser-unittest.patch です。
さらに、rexml-sax2listener-doc.patch でドキュメントの修正をしています。


Files

sax2parser_decl_error.rb (302 Bytes) sax2parser_decl_error.rb ohai (Ippei Obayashi), 08/04/2013 06:01 PM
rexml-sax2parser-fix.patch (1.34 KB) rexml-sax2parser-fix.patch ohai (Ippei Obayashi), 08/04/2013 06:01 PM
rexml-sax2listener-doc.patch (1.6 KB) rexml-sax2listener-doc.patch ohai (Ippei Obayashi), 08/04/2013 06:01 PM
rexml-sax2parser-unittest.patch (606 Bytes) rexml-sax2parser-unittest.patch ohai (Ippei Obayashi), 08/04/2013 06:01 PM

Also available in: Atom PDF