[Seasar-user:13717] Re: [Teeda] DynamicPropertyのid

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2008年 4月 14日 (月) 03:30:22 JST


小林 (koichik) です.

Date:    Mon, 14 Apr 2008 01:25:46 +0900
From:    "Masao NADAI" <[E-MAIL ADDRESS DELETED]>
To:      [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:13715] Re: [Teeda] DynamicPropertyのid

> thisに2つの意味が含まれていることが問題なのですね。

いいえ.

> > そして現状必要なのは,xxxMessage という
> > プロパティを表示したい場合など,
> >
> > ・プロパティを
> >
> > の方ですよね?
(略)
> > それに対して this というキーワードは
> > 不適切で応用が利かないということです.

ということです.

> > property: はその右がプロパティであることを示す意味で
> > 書いたもので,これ自体はプロパティ名ではありません.
> > よって,Java のキーワードと重なっても問題は微塵も
> > ありません.
> > # とはいってもこの案もたぶん採用しませんが.
> 
> XML的にダメだからですか?

te 名前空間のグローバル属性を使う方がよりよいと
考えているからです.
既存の表記法に加えて新しい記法を 1 つ追加するのは
ともかく,2 つも追加するつもりはないので,結果として
id 値の中でスキーム (?) を指定する案はボツに
なります.

> > <script type="text/javascript" te:if="xxx" te.out="script">
> > </script>
> >
> > のように書けるようにしたいと考えています.
> 
> もはや、デザイナーの理解できる範疇を超えているような。

デザイナさんが書くとしたらせいぜい

<script type="text/javascript">
</script>

だけで,そこに te:〜 属性を追加するのは
プログラマの仕事になるでしょう.
デザイナさんには te:〜 は消さないでね,と
お願いしておけばいいみたいな.

> <script id="isXxx" type="text/javascript">
>   script
> </script>
> では、ダメですか?

<script> の内容を動的に出すという例のつもりなので,
それではだめですね.

public class XxxPage {
  public String script;
  public boolean xxx;
}

とあって,xxx が true の場合に script プロパティの
値を <script> の内容に出すにはどう指定するか,
という話です.

> オレオレDTOとは、思っていません。
> 立派にTeedaが提供しているDTDです。
> プロジェクトの方針として、Teedaを採用したならば、
> そのTeedaが提供するDTDに意味はあります。
> 成果物の品質はTeedaに保証されているのです。

よく分かりませんが,Teeda としては valid な
XHTML だけでなく,well formed な XHTML も
サポートしています.
つまり,validation はしていません.
ですから,Teeda が DTD を提供しても,それで
valid であることが保証されることもありません.

> > 何のために valid を目指すのか考え直した方が
> > いいのでは?
> 
> 何のために?と言われれば、成果物の品質を一定基準に保つ
> ためと答えます。

であるなら,前も書いたように te 名前空間の
要素や属性を削除して validation すれば十分では
ないでしょうか.
それは「現実的ではない」とのことでしたが,自分には
それが現実的でない理由が分かりません.
validation をバッチ的に処理しているにせよ,手作業で
やっているにせよ,ちょっとした工夫でそういう
validation をすることは可能だと思いますよ.

そんなわけで (どんなわけで?),簡単なものを
Teeda HTML Example でやってみました.
W3C Markup Validation Service の Validate by Direct Input
の Proxy みたいな画面です.

添付の Page クラスと HTML を Teeda HTML Example に
置いて,WEB-INF/lib に commons httpclient & codec の
Jar を置くと使えます.

http://localhost:8080/teeda-html-example/view/htmlvalidator/htmlValidator.html

にアクセスしてテキストエリアに te:〜 を含んだ
XHTML のソースを貼ってサブミットすると,Page
クラスで拡張属性を取り除いて W3C Markup Validation 
Service にアクセスし,その結果を表示します.

拡張属性は単に取り除くのではなく,同じ長さの
空白に置換しているので,行番号やカラム位置は
そのまま参照できます.

画像やスタイルシートを考慮していないし,
オプションの指定やエラーの扱いがずさんですが,
ヒントにはなるのではないかと.

> ちょっとグチっぽくなりましたが、ご検討ください。

もう答えは出たかと思いますがどうでしょうか.


-- 
<component name="koichik">
    <property name="fullName">"Koichi Kobayashi"</property>
    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: HtmlValidatorPage.java
型:         application/octet-stream
サイズ:     2804 バイト
説明:       無し
URL:        http://ml.seasar.org/archives/seasar-user/attachments/20080414/63d818d0/attachment-0001.obj 
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: http://ml.seasar.org/archives/seasar-user/attachments/20080414/63d818d0/attachment-0001.html 


Seasar-user メーリングリストの案内