須藤です。

From: TAKAHASHI Masayoshi <maki / inac.co.jp>
Subject: [ruby-list:35177] Re: ANNOUNCE: REXML のドキュメントの和訳を公開しました。
Date: Fri, 17 May 2002 12:42:10 +0900
Message-ID: <200205170342.MAA20265 / mx.inac.co.jp>

> XMLのparserでUnicode以外のencodingをサポートする場合の、
> 一般的な問題点を2点ほど挙げてみます。
> 
> * (数値)文字参照の展開
> 
>     XMLでは、「&#x9AD8;」といった文字参照は、Unicodeのコードポイントを
>     指定することになっています。UTF-8に決め打ちであれば特に問題ない
>     のですが、Shift_JISやEUC-JPのような、Unicodeベースではないencoding
>     に変換する場合、
>      * 変換表が必要
>      * そのencodingで表現できない文字が来た場合、悩ましい
>     といった問題が生じます。
> 
>     もちろん文字参照を展開しないことにすればいいんですが、
>     XML的には「文字参照」とその「参照される文字」は等価で、
>     暗黙に変換されることが期待されやすいように思います。
> 
>     REXMLでは、UTF-8では日本語も正しく変換されるようです
>     (DOMっぽいAPIの方では)。
> 
> * 文字クラスのチェック
> 
>    規格に適合するXML処理系は、タグなどに使える文字に制限が
>    かけてあります。その制限は、Unicodeのコードポイントの表で
>    与えられていて、許されていない文字が使用されている場合は
>    処理を中止しなければなりません(must)。厳密にやるのはめんど
>    くさいです。
> 
>    ただし、現状REXMLではこの辺の処理は非常にゆるくなっていて、
>    本来ならエラーにしなければならないものも通します(汗;
>    逆に、正しいものを蹴ることはなさそうですけど(要確認)。

勉強不足で申し訳ありませんが、つまり、一般的に言って(REXMLに限らず)、
パースする時点でUTF-8であれば、どの言語で書かれたXML文書でも問題なく処
理できなければいけないと言うことですか?

そうならば、逆に言えば、Shift_JISであれ、EUC-JPであれ、パースする前に
UTF-8に変換すれば、(きちんとした(規格に適合した)処理形は)日本語も問題
なく処理できる、ということですよね。

<><><><><><><><><><><><>
       須藤 功平
     kou / cneti.net
<><><><><><><><><><><><>