[mayaa-dev:25] Re: 【提案】 attributeプロセッサにescapeXML属性を追加

suga ko.suga @ gmail.com
2006年 12月 29日 (金) 11:00:03 JST


suga です。

いえ、属性の中身をエスケープしないということは基本的に考えなくて
良いと思います。
ただシングルクォーテーションのエスケープに関しては不要かもしれない
ということで、そもそもの全体的なエスケープ対象から外せば、
duran さんの意図にも適うでしょう。

というわけで、テンプレートの属性値をシングルクォーテーションで
囲んでみたときにちゃんとダブルクォーテーションになってレンダリング
されるかどうかの検証、問題ないなら変更してコミットをお願いします。

escapeXml の処理自体は
org.seasar.mayaa.impl.util.StringUtil#escapeXml(String)
です。

JIRA に登録して duran さんに割り当てておきますね。

# ついでに JIRA の良いところ悪いところを見るということで。

-- 
suga ( ko.suga @ gmail.com )


On 12/29/06, duran <duran.seasar @ gmail.com> wrote:
> duranです。
>
> 下記件、納得しました。
> 言われてみればその通りですね。
>
> でも、レンダリング結果(Mayaa)を見たときに
> 分かりやすいという意味であってもいいかなぁとも思ってみたりします。
>
> > suga です。
> >
> > ちょっと順序を入れ換えています。
> >
> > On 12/29/06, duran <duran.seasar @ gmail.com> wrote:
> >> # そもそもJavascriptの仕様として「&#39;」はOKなのでしょうか。
> >> # どう調べていいのか分かりませんでした・・・
> >
> > JavaScript の仕様は関係なく、HTML のレンダリングで考えてください。
> > レンダリングされたものが JavaScript として解釈されるので、
> > 極端な話、タグのボディや属性値の全部が &#xxxx; で書かれていても
> > 問題ありません。
> > # CDATA は除外しますが
> >
> >
> >> 現状のattributeプロセッサでは上記のように記述すると、
> >> 「'」が「&#39;」とエスケープされます。
> >>
> >> エスケープされても動作しているのですが、
> >> このままでは気持ち悪いのでescapeXML属性を追加してはどうでしょうか?
> >
> > シングルクォーテーションのエスケープは、元々は属性を name='aaa' の
> > ようにシングルクォーテーションで囲む書き方に対応することを考えての処理です。
> > が、Mayaa の場合は出力の組み立てに元の文字列を使わず、必ず
> > ダブルクォーテーションを使うようにしていますので、そもそもエスケープ
> > 自体が不要です。
> >
> > ですので、escapeXml を追加するよりも、そもそも全体的にシングル
> > クォーテーションをエスケープしないように変更する方が良いかもしれません。
> >
> > escapeXml だと、内部で < や > を使いたいときに自前でエスケープしないと
> > いけませんしね。
> >
> >
> > # 以前 user-ML で触れられたときは「動作しない」ということだったので
> > # 「動作します」と答えて終わりでしたけど。
> >


mayaa-dev メーリングリストの案内