From: "kou (Kouhei Sutou)" Date: 2013-08-10T12:53:58+09:00 Subject: [ruby-dev:47606] [ruby-trunk - Bug #8701] REXML bug in parsing notation declarations Issue #8701 has been updated by kou (Kouhei Sutou). ありがとうございます! 既存のテストを整理してから取り込んだので遅くなってしまいました。 DOCTYPEの中のやつは全部\Aを意図していそうだったのでそうしました。DOCTYPEの外のやつはパッと見だと判断がつかなかったのでまだそのままにしてあります。 ---------------------------------------- Bug #8701: REXML bug in parsing notation declarations https://bugs.ruby-lang.org/issues/8701#change-41056 Author: ohai (Ippei Obayashi) Status: Closed Priority: Normal Assignee: kou (Kouhei Sutou) Category: lib Target version: ruby -v: ruby 2.1.0dev (2013-07-28 trunk 42214) [x86_64-linux] Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN 添付したコード(test_notationdecl.rb)を実行すると、["x", "y", "z"] が表示することが期待されますが、["y", "z"] と表示されます。 パースに使っている正規表現の問題で, 添付したパッチ(rexml-dtd-notationdecl-fix.patch)で直ると思います。 テストも添付しています。 このパーサではあちこちで ^ で始まる正規表現が使われていますが、おそらくすべて \A のつもりであろうと思われます。添付したパッチでは関係のある部分だけ修正していますが、他の正規表現も修正したほうが良いかもしれません。 -- http://bugs.ruby-lang.org/