HTML ページのコンパイル

XMLC を実行させるには、xmlc コマンドを使います。コマンド オプションの詳細はすべて XMLC コマンド リファレンスに説明してあります。xmlc は HTML ページを構文解析して 通常は 元の HTML の構造を DOM で表現してある Java のクラスを作ります。

XMLC コンパイルの基礎。

XMLC のコンパイル処理は1方向の処理で、通常はパラメータとしてクラス名 と、出力ディレクトリと元になる HTML ファイルを指定するだけです。 例を上げますと

    xmlc -d ../../classes -class app.presentation.user.UserTable ../html/usertable.html
というコマンド入力は app.presentation.user.UserTable という XMLC のクラスを ../html/usertable.html という HTML ファイルから生成して、 それを ディレクトリ ../../classes へ出力します。

Enhydra make ルールの利用

もし、アプリケーションの開発をを標準的な Enhydra の make の設定 で行っている場合、XMLC でのコンパイルは非常に容易である。規則に よって foo.html という形式の HTML ファイルは fooHTML という名前で makefile において関連付けられたパッケージのクラスに コンパイルされる。 以下の変数は stdrules.mk で定義されており、HTML ファイルから XMLC でコンパイルされる際に用いられる。

以下に上げるのは、四つの HTML オブジェクトをコンパイルするための Enhydra makefile の例である。よりたくさんの場合の例も見つかるかも知れない。

    ROOT = ../../../..

    PACKAGEDIR = golfShop/presentation/xmlc/login

    HTML_DIR = ../../html/login
    HTML_XMLC_OPTS_FILE = login.xmlc

    HTML_CLASSES = LoginHTML \
                   LogoutHTML \
                   CheckVersionHTML \
                   NewAccountHTML

    include $(ROOT)/config.mk

In certain cases, it maybe necessary to have specific rules defined for HTML objects that need options that don't apply to all HTML files. The following variables maybe used in construction new rules: 場合によっては、全ての HTML ファイルには適用しない、独自のオプションを必要とする HTML ファイルのために明記されたルールを定義させる必要もある。 以下の変数は新しい規則を構築するのに用いられるかもしれない。

パーサー(構文解析プログラム)の選択。

デフォルトの HTML パーサーは HTML Tidy であるが、初期の XMLC のバージョンでは Swing HTML パーサーが用いられていた。間違った HTML を扱うやり方の差により、結果として生成される DOM ツリーは同じではないかもしれない。もし これらの一貫性の不備をそのままにしておきたくないのなら 既に利用しているドキュメントには Swing Parser を用いることを提案する。これは -parser swing によって指定される。Enhydra の Make の規則を用いる時は、パーサーは以下のように記述する事で設定できる。

    XMLC_HTML_OPTS = -parser swing

不適合な HTML について

デフォルトの XMLC の HTML パーサーは HTML Tidy プログラムの Java への移植版として作られている。このパーサーは、HTML の中にある多くのエラーを突き止め、しばし修正をかける。 修正出来ない問題点は、ページがコンパイルされる前に是正されなければならない。 HTML Tidy プログラム は、正確な HTML ファイルを作成するのに役立つかもしれない。

HTML Tidy パーサーは理解できない独自仕様のタグをはじき出すであろう。

問題点の診断

幾つかのオプションは XMLC の結果を理解する上で有用である。 -verbose オプションは XMLC の実行内容の全てのトレースを提供する。 (ただし、パーサー実行内容の詳細は、-parseinfo で取得する。) -info オプションはコンパイルするページの情報の出力結果を提供する。 その情報は現状ページ内で見つかった、id 属性と URL からなる。 -methods オプションにより、 コンパイルして作成されたクラスの生成された全てのアクセスメソッドの一覧を提供する。 HTML パーサーの実行内容の全てのトレースする -parseinfo オプションは パーサーのエラーメッセージからは明確にならない、ページの問題点をデバッグするに非常に役に立つ。 生成される DOM ツリーを見るには、-dump を用いる。以上に上げたオプションは -nocompile オプションと一緒に用いれば、クラスを生成することなく状態だけを得ることができる。

XMLC を用いて修正された HTML ページを作成する

たまに、テンプレートと成る HTML ページと実際のアプリケーションのページの差が URL のみという事もある。 こうした事はフレームセットの場合にしばしある。XMLC は -urlmapping オプションを URL の 更新に、そして -docout オプションを更新された URL のまま、クラスファイルを生成する代わりに新しい HTML ファイルへ書き出すために用いることで解決する。