From: TAKAHASHI Masayoshi Date: 2002-05-17T12:42:10+09:00 Subject: [ruby-list:35177] Re: ANNOUNCE: REXML のドキュメントの和訳を公開しました。 高橋征義です。 matz@ruby-lang.org (Yukihiro Matsumoto)さん: > In message "[ruby-list:35163] Re: ANNOUNCE: REXML のドキュメントの和訳を公開しました。" > on 02/05/16, Kouhei Sutou (須藤功平) writes: > > |> * REXMLは日本語処理に問題がある > |> Uconv,Iconvを必要とすること以上に? XMLのparserでUnicode以外のencodingをサポートする場合の、 一般的な問題点を2点ほど挙げてみます。 * (数値)文字参照の展開 XMLでは、「高」といった文字参照は、Unicodeのコードポイントを 指定することになっています。UTF-8に決め打ちであれば特に問題ない のですが、Shift_JISやEUC-JPのような、Unicodeベースではないencoding に変換する場合、 * 変換表が必要 * そのencodingで表現できない文字が来た場合、悩ましい といった問題が生じます。 もちろん文字参照を展開しないことにすればいいんですが、 XML的には「文字参照」とその「参照される文字」は等価で、 暗黙に変換されることが期待されやすいように思います。 REXMLでは、UTF-8では日本語も正しく変換されるようです (DOMっぽいAPIの方では)。 * 文字クラスのチェック 規格に適合するXML処理系は、タグなどに使える文字に制限が かけてあります。その制限は、Unicodeのコードポイントの表で 与えられていて、許されていない文字が使用されている場合は 処理を中止しなければなりません(must)。厳密にやるのはめんど くさいです。 ただし、現状REXMLではこの辺の処理は非常にゆるくなっていて、 本来ならエラーにしなければならないものも通します(汗; 逆に、正しいものを蹴ることはなさそうですけど(要確認)。 > |私は、Uconv or Iconvを使えば日本語処理は問題ないと思います。 > > なるほど。でも、個人的には「変換せずに済むものは変換したくな > い」というポリシーを持っているので、ほんとは変換が必須なのは > 嫌なんですけどね。 XMLはUnicodeべったりなので仕方ないんじゃないでしょうか。なんせ 文法の規定の中にUnicodeのコードポイントがへーきで書かれている ような規格ですから。 高橋征義 (TAKAHASHI Masayoshi) Email:maki@inac.co.jp