XMLCチュートリアル: 補足

内容

  1. FramesetsとXMLCの利用法
  2. Interfaceの実装時のXMLCの利用法

FramesetsとXMLCの利用法

XMLCで、HTML framsetをコンパイルしようとすると、驚くかもしれません。 XMLCは例外を発生しexitするでしょう。 問題を修正する方法を教える朗報があります。 framesetのコンパイルをするならば、"-html:frameset"コマンドラインオプションを次の様に使う必要があります。


$ $ENHYDRA/output/bin/xmlc -html:frameset frameset.html
このコマンドラインオプションは、期待された様にframeset.javaと呼ばれるファイルをあなたに与えます。 <FRAME>タグのためにid 属性を与えたならば、そのタグのためのgetElement*メソッドはHTMLFrameElementオブジェクトを返します。 これは、まったく他の例と同様に機能するので、詳細を繰り返す必要はないと思います。

Interfaceの実装時のXMLCの利用法

Mark Diekhans(XMLCの著者)は、コード複製を最小にする為にインタフェースを使用する方法を説明しています:

-implementsオプションの狙いは、標準インターフェースを、模造可能な(cloneable)ものとして、使用するためではありません。   共通のidのセットを共有するXMLCで生成された複数のオブジェクトを操作するユーティリティメソッドの一つが書く事を許可する為にそれは存在します。   ほとんど同じテーブルが2ページあるGolfShopデモは実際にこれをしています。   テーブルにアクセスする事を期待されたメソッドのインタフェースが定義されます。(getElementXXX)。   そして、XMLCの生成するクラスは、このインタフェースを実装します。

golfShop.presentation.xmlc.cart の下:

cart.ContentsTable は、テーブル インターフェース。

cart.ContentsHTML, checkout.ConfirmHTML と checkout.MainHTML
は、すべて実装 ContentsTable 。

cart.ContentsTableFormatter.fillInTable は、これらのクラスのすべてにテーブルを記入します。