YahooWidgetsのソースコードと比較する(2006/07/06)
シンクライアント系のテクノロジーを触ることが多いが、その中でも Yahoo!Widgets 用の開発言語はXMLベースの言語で、UJMLに極めて良く似ている。今回は試しに比較してみる。
※Yahoo!Widgetsはデスクトップ上にWidgetsと呼ばれる小型アプリケーションを使えるようにするプラットフォームのこと。
Yahoo! Widgets
http://widgets.yahoo.com/
画像を表示するためのタグ<image>はUJML,YahooWidgetsのどちらにもあり、簡単な例として適当だ。今回は<image>タグで比較。
UJMLの例:
<image>
<url><image-url>hoge</image-url></url>
<x>0</x>
<y>0</y>
<width>65</width>
<height>48</height>
</image>
YahooWidgetsの例:
<image>
<name>mBox</name>
<width>50</width>
<height>50</height>
<src>hoge.gif</src>
<visible>true</visible>
</image>
まず、画像ファイルの指定方法が違う。
UJMLは拡張子をはずした形で指定する。デバイスにより表示できる画像フォーマットが異なるので、提供側でbmp,png,gif,jpg等のファイルフォーマットを用意しておくのが望ましい。UIEngineが表示できる画像フォーマットを判断し、gifが表示できるなら hoge.gif を探しに行くという仕様だ。
YahooWidgetsはデスクトップ環境が前提なので、標準的に表示可能なはずの画像を直接指定する。
UJMLの例:
<image>
<url><image-url>hoge</image-url></url>
<x>0</x>
<y>0</y>
<width>65</width>
<height>48</height>
</image>
YahooWidgetsの例:
<image>
<name>mBox</name>
<width>50</width>
<height>50</height>
<src>hoge.gif</src>
<visible>true</visible>
</image>
表示/非表示の指定が違う。
UJMLは表示/非表示をステート変数で処理するため、<image>タグ内の要素として表示/非表示に関するものは無い。むしろ、<image>タグの親要素(何段階か上だが)で表示/非表示の処理を指定する。
YahooWidgetsは直接指定する。
UJMLの例:
<image>
<url><image-url>hoge</image-url></url>
<x>0</x>
<y>0</y>
<width>65</width>
<height>48</height>
</image>
YahooWidgetsの例:
<image>
<name>mBox</name>
<width>50</width>
<height>50</height>
<src>hoge.gif</src>
<visible>true</visible>
</image>
オブジェクトへの名前付けの仕様が違う。
UJMLではオブジェクトへの名前付けはできない。任意のスクリプトから特定のオブジェクト(例えば画像)を名前指定していじることができない。例えば、mBox.height=50 として、画像の高さを変更することはできない。
YahooWidgetsは任意のスクリプトからオブジェクトを操作できるように、オブジェクトへの名前付けができる。これにより、mBox.visible=true として表示を切り替えたり、mBox.height=50 として画像の高さを変更することができる。
コメント