xmlc - XML や HTML ファイルを Java のクラスにコンパイルする。
xmlc [オプション] [オプション.xmlc ...] コンパイル対象の URI 又は ファイル名
XML や HTML のドキュメントからそれをベースに動的に内容を更新して新たなコンテンツを生成するための Java のクラスをコンパイルする。この生成されたクラスのインスタンスは元のドキュメントの内容データを DOM(Document Object Model )と呼ばれる階層的な木構造で持つオブジェクトである。 この DOM でモデル化されたドキュメントは Java のプログラム中で動的に内容を追加したり、 変更することができる。XML/HTML ドキュメントに基づいてアクセスメソッドや識別用のフィールドが生成され、 コンパイル時にユーザーはクラスを介してドキュメントのどの部分にアクセスしているかの一貫性のチェックが可能となる。 そしてこのDOM オブジェクトから動的に生成されたドキュメントの(XML/HTML フォーマットの)テキストデータが作成することができる。 詳細は以下を参照のこと:
コンパイラーの挙動を制御するための様々なオプションはコマンド
ラインからや.xmlc の拡張子を持つ
メタデータファイル、又は
オプションファイルで設定する。
コンパイルされるドキュメントはファイル名か URL で指定される。 ドキュメントの が XML か HTML ファイルは自動的に識別される。 XML ファイルの場合は、内容が XML の初期化の記述子である (<?xml ...?>). で始まらなければ成らない。
xmlc のオプションは以下のとおりである。
-class classname -
生成されるクラスまたインターフェイスの正式な(パッケージまで含めた)名称。
指定した名前で生成されたクラスがおかれるディレクトリは -d オプションで指定される。
-keep -
生成された Java のソースコードを削除せず、残す。
-sourceout sourceout -
生成されたソースコードを保存するルートのディレクトリを指定する。
もし -keep が指定されていた場合, 生成されたソースはここで指定したディレクトリに保存される。
-nocompile -
このオプションが指定されたら、生成された Java のファイルをコンパイ
ルしない。-keepオプションや様々な内部情報取得用のオプションと共に使うと便利である。
-implements interface -
生成するクラスが実装するインターフェイス(interface)
を指定する。このオプションは複数回指定される場合もある。
-urlmapping orgURL newURL -
URL や script などを指定するタグの属性中に現れる URL を設定する。
orgURL で指定されたドキュメントのタグの属性中の URL は全て newURL
で指定したものに置き換わる。このオプションは複数回指定される場合もある。
-urlregexpmapping regexp subst -
URL や script などを指定するタグの属性中に現れる URL を正規表現で設定する。もし
regrxp で指定された正規表現に適合する指定されたドキュメントのタグの属性中の
URL は全て subst で指定したものに置換される。正規表現は
POSIX 拡張された物が用いられる。このオプションを指定した場合
gnu.regexp パッケージが用いられる。このオプションは複数回指定される場合もある。
正規表現とその置換表 現に関する文法の詳細はこのパッケージのドキュメントを参照すること。
-urlsetting id newURL -
タグ id で指定された DOM オブジェクト中の修正する URL を指定する。
id 属性が idのタグ中の URL は newURL
で置き換えられる。
このオプションは複数回指定される場合もある。
-info -
このドキュメントのオブジェクトに関する便利な情報を表示する。例えば
id 属性や URL などである。
-dump -
このドキュメントの DOM オブジェクトの木構造の部分を出力する。
-verbose -
コンパイラでの処理についての有益な情報を生成する。このフラグはそのまま
javac に渡される。
-parseinfo -
ドキュメントの解析(パース)に関する詳細な情報を表示する。
-methods -
生成される各アクセス用メソッドの形式を表示する。ここでは、
Java の識別子としては有効でないために生成に失敗したメソッドや定数の一覧も表示される。
-javac prog -
xmlc コマンドが内部で呼び出す Java コンパイラを指定する。よく使われる
javac のオプション は多分直接指定できるかもしれないが,
他のオプションは-javacflag か
-javacopt オプションを用いて指定する。
-javacflag flag -
javac プログラムに設定する、任意のフラグを指定する。
このオプションは複数回指定される場合もある。この
flagで示された引数は `-' か `+' の文字で始まっていなければならない。
これは値をとらない javac のオプションのために用いられる。
-javacopt opt value -
javac プログラムに設定する、任意のオプション名とその値を指定する。
このオプションは複数回指定される場合もある。この
optで示されたオプション名は `-' か `+' の文字で始まっていなければならない。
-docout file -
Java のソースを生成して、コンパイルする代わりに結果を
file で指定されたファイルに書き込む。中にある
URL を対応する動的なページのものに変える必要があるが、
他に動的に生成する内容が無い場合などにこのオプションは便利である 。
-version -
XMLC のバージョン番号を出力する。もし他の引数を指定しなければ、それで終了する。
対象となるドキュメントを示す引数
docfile はこのオプションが指定されていれば、要求されない。
-parser parser -
ドキュメントファイルをパースする際に用いるパーサーを指定する。以下の値が有効である。
tidy - HTML ドキュメントをパースする際に
Tidy パーサーを用いる。これは HTML ファイルではこのオプション省略時の標準である。
HTML ファイルの構文チェックは常に行われる。
swing - HTML ドキュメントをパースする際に Swing パーサーを用いる。
HTML ファイルの構文チェックは常に行われる。
xerces - XML ドキュメントをパースする際に
Xerces パーサーを用いる。これは唯一の XML パーサーであり、XML ドキュメントの場合のデフォルトである。
構文チェックはこのパーサーの場合はオプションで実行を調整できる。デフォルトは構文チェックを実行する。
-xcatalog catalog -
XML ファイルをパースする際の実体参照を解決するのに用いる
XCatalog ファイルを指定する。このオプションは複数回指定される場合もある。
file: プロトコルの URL ではファイルシステムの絶対パスよりも前に、
CLASSPATHで指定された場所から相対パスで実体参照の位置を解決する事になるであろう。
-validate yes|no|true|false -
パーサーのデフォルトでのドキュメントの構文チェックモードを変更する。
もし設定した値がパーサーによってサポートされていない場合エラーが生成される。
warnings yes|no|true|false -
警告を表示可か不可にするかの設定。Boolean の値で、デフォルトでは可である。
-delete-class classname -
classname で指定された class のタグ要素を全て削除する。ここでのクラスは
HTML で定義されているタグの class 属性のことであり、Java のクラスではない。
ダミーやテスト用などのデータを削除するのに便利である。このオプションは複数回指定される場合もある。
-generate type -
どの種類のクラスを生成するかを指定する。
単独のクラスか又はインターフェイスとその実装クラスの対かを生成できる。
type の値としては、以下の物が有効である。
both -
インターフェイスとその実装クラスを両方生成する。実装クラスの名前は、
-class オプションで指定したクラス/インターフェイス名に
"Impl" という文字列を付加した物がクラス名となる。
interface - インターフェイスのみを生成する。
implementation - インターフェイスを実装したクラスのみを生成し、
インターフェイスは生成しない。
class - インターフェイスに依存しない普通のクラスを生成する。
これはデフォルトの設定である。
-for-recomp - 生成されたクラスへの自動再コンパイルのための設定用ファイルを生成する。
生成されたクラス名.xmlc というファイルが生成、
コンパイルされたクラスと同じディレクトリにできる。
このファイルには、クラスの自動再コンパイルに必要な設定を含んでいる。このオプションは
-generate both オプションの設定を必要とする。
-recomp-source filepath -
自動再コンパイルで用いるソースファイルへのパスをクラスパスからの相対的な形で指定する。もしこのオプションが指定されない場合、ソースファイルへのパスはそのクラスのパッケージ名にソースファイルの拡張子を除いた部分の名前を付け足した形で設定される。
-domfactory classname
DOM 形式でのドキュメントオブジェクトを生成する Java のクラスを指定する。このクラスは必ずインターフェイス
org.enhydra.xml.xmlc.dom.XMLCDomFactory. を実装する必要がある。このオプションは
HTML ファイルの場合はサポートされていない。
DOM 生成クラスは引数なしのコンストラクタを定義しなければならない。このクラスはドキュメントオブジェクトのファクトリー(生成器)として振る舞い、
DTD で定義された DOM オブジェクトを生成するメカニズムを与える。特定の要素(element)に一対一で対応した
Elementクラスも同様に生成できる。このとき対応するクラスには
CLASSPATH が通っている必要がある。
-dom dom -
あらかじめ定義された DOM ファクトリークラスのうち一つを指定する。このオプションは
domfactory の省略形となっている。有効な値は以下のとおりである。
lazydom - Xerces DOM から派生した LazyDOM.
xerces - Xerces DOM.
-domfactory も -dom 指定されない時のデフォルトの設定値は
lazydom.である。
-extends classname -
生成するクラスの基底クラスを指定する。この基底クラスは XML ドキュメントの場合は
XMLObjectImpl クラスを HTML の時は
HTMLObjectImpl からの派生クラスでなければならない。
普通はこのクラスはアブストラクト(仮想)クラスである。このクラスには環境変数で設定された
CLASSPATH が通っている必要がある。
-create-get-tag-methods -
もし、設定されていれば、getTagXXX()
という形式のメソッドが生成される。これらのメソッドは getElementXXX()
というメソッドよりも汎用的な型の戻り値を返す。標準的にはこれらのメソッドは
org.w3c.dom.Element 型の値を返す。
このメソッドは、開発者が複数の XMLC で生成されたクラスで実装されるインターフェイスを構築する際便利である。
getTagXXX() やsetTextXXX()
といったメソッド含んだインターフェイスを持つことで、
このインターフェイスを操作することで共通化したコードを書く事ができる。
-ssi -
入力ドキュメント中にある。
サーバーサイドインクルードディレクティブ
(Server-side include directives)の処理を可能にする
-html:encoding encoding -
HTML ドキュメントを読み込む際の文字のエンコード名を指定する。このエンコード名は
HTML での物であり、Java のそれではない。
-html:addtagset tagsetname -
あらかじめ定義された、独自タグのセットを有効な
HTML のタグのセットに加える タグのセットとしては現在以下のものが定義されている。
cyberstudio - Adobe CyberStudio によって追加されるタグ。
これらのタグは、内部処理用に使われる物でブラウザーには無視される。
tidyパーサーを指定する場合だけ用いられる。
新しいタグセットの定義の寄与があるかもしれない。
-html:addtag tagname flags -
あらかじめ定義されたタグを有効な HTML のタグの一覧に加える。このオプションは
tidy パーサーにこのタグが有効である事を知らせるために用いられる。
tagname は大文字、小文字の区別はない。
flags はカンマで区切られたリストで、
タグの内容のモデルや他のオプションを記述する。以下の値が有効である。(大文字、小文字の区別は無い)
inline - 文字だけを修飾するための要素である.
block - 一群の文章のためのもの例えば paragraphs や lists など
empty - このタグは終了タグを持たない。
opt - 終了タグはオプションである。
inline か block か empty
のうち一つは指定する必要がある。このオプションは
tidy パーサーによってのみ使われる。
-html:addattr attrname -
あらかじめ定義されたタグ属性を有効な HTML のタグ属性の一覧に加える。
この属性は全てのタグにおいて有効となる。このオプションは
tidy パーサーによってのみ使われる。
-html:old-class-constants - 古いバージョンの XMLC は HTML の
class 属性用の定数をすべて大文字に変換して生成していた。(例えば、
CLASS_DELETEROW) このオプションを指定すると古いバージョンの
XMLC と同じ挙動で動作する。
このオプションは既にあるアプリケーションを移行する手助けとするよう意図されたものである。
将来のバージョンではサポートされないかも知れない。
-html:old-name-constants - 古いバージョンの XMLC は HTML の
name 属性用の定数をすべて大文字に変換して生成していた。(例えば、
NAME_INPUT) このオプションを指定すると古いバージョンの
XMLC と同じ挙動で動作する。このオプションは既にあるアプリケーションを移行する手助けとするよう意図された
もので、将来のバージョンではサポートされないかも知れない。
javac に直接渡されるコマンドオプションは以下のとおりである。
-g
-O
-debug
-verbose
-classpath path
-d dir