スケルトン生成ツール

java paraselene.mockup.Make 引数

で実行します。

実行した時に、例外のスタックトレースが出た場合は、何らかの障害が発生し、処理が完了していません。
モックアップに問題がある場合と、ツール側に不具合がある場合のどちらかです。

スケルトン生成ツールは引数なし、または ––help(ハイフンは2つ重ねる) を付けて実行するとヘルプを表示します(Jar のバージョン番号の確認にも使えます)。詳しくはそちらを参照して下さい。

引数一覧

以下は、各引数の簡単な説明です。

No 引数 意味 必須 複数指定 デフォルト値
1-htmlモックアップが存在するディレクトリ。
2-nekoパーサーに CyberNeko HTML Parser を使用する。
これを指定すると、 HTML,XHTML どちらも CyberNeko HTML Parser でパースします。
false
3-out全体の出力先ディレクトリ。
4-out_sourceスケルトンソース出力先ディレクトリ。 src
5-packageパッケージ名。
6-other静的コンテンツのルートパス。 /
7-class_pathタグの独自派生クラスや URI の事前検証クラスを検索するクラスパス。
8-uri_preprocessURI の事前検証クラス登録。
詳しくは、-uri_preprocess について を参照して下さい。
場合により、-class_path を併用して下さい。
9-clear再作成の指定。 false
10-no_clear_dir-clear 指定されても、指定ディレクトリは削除しません。
11-dtdDTD キャッシュディレクトリ。 ※不定
12-agentHTTP 使用(www.w3.org からの DTD 取得)時の User-Agent 。 ※不定
13-html_encodeモックアップの文字コード。 UTF-8
14-output_encode実行時の文字コード。 UTF-8
15-source_encodeスケルトンソースの文字コード。 ※不定
16-source_lineスケルトンソースの改行コード。 ※不定
17-source_headスケルトンソースのヘッダ用テキストファイル。
18-ignore_tag_accessername があっても、get/setアクセッサを生成しないタグの指定。
meta や param 等が指定できます。
19-uri_param_name<PARAM>タグで URI を示す name の指定。
詳しくは、-uri_param_name についてを参照して下さい。
20-grant_tag_providerタグの独自派生クラス登録。
詳しくは、タグの派生クラスで解説しています。
場合により、-class_path を併用して下さい。
21-jsonJson クラス(非同期通信クラス)生成の指定。
true で生成された Json.java が不要であれば、手動で削除して下さい。
false
22-includeクラス化するファイル。 *.htm,*.html,*.xht,*.xhtml
23-excludeクラス化しないファイル。
24-ignore_dir指定したディレクトリ下のファイルを全て無視します。

パラメータファイル

テキストファイルに上記パラメータを記述しておき、

java paraselene.mockup.Make @ファイル名

として実行する事が可能です。カレントディレクトリに paraselene.cfg という名前でファイルを作成しておけば、引数なしで実行しても

java paraselene.mockup.Make @paraselene.cfg

として実行されます。
また逆に、カレントディレクトリに paraselene.cfg がある状態では引数なしで実行してもヘルプが表示されません。
その時は、––help を指定して下さい。

パラメータファイルは、スペースまたは改行を区切りとして処理しますので、

-html html_dir -out out_dir
-package
tool

のように記載する事が可能です。パラメータ値にスペースを含む場合は、" または ' で括って下さい。

-html "html dir"
-agent 'Mozilla/5.0 (\'test agent\') "paraselene"'

' で括った中に ' を書く場合は \' を、" で括った中に " を書く場合は \" を指定して下さい。

ファイルと、直接指定が混在しても構いません。

java paraselene.mockup.Make -package hoge @xxx.cfg -clear true

xxx.cfgに

-package tool
-clear false

と書かれていれば、最終的に、

java paraselene.mockup.Make -package tool -clear true

と指定したのと同じになります。後に登場する記述で上書きされます。
paraselene.cfg があり、

java paraselene.mockup.Make -clear true

と実行すると、

java paraselene.mockup.Make @paraselene.cfg -clear true

と同じ意味になります。

クラスの生成

モックアップは、ファイル名の拡張子により生成するクラスを決定します。

通常の Page クラスの元となるファイルは、 HTML 形式と XHTML 形式の2つに対応しています。
両者で少し振る舞いが違います。

  • 先頭に <?xml> が存在するか否かで、 HTML であるか XHTML であるかを決定しています。
  • -html_encodeの指定は、 HTML に対してのみ効果があります。
    XHTML では -html_encode 指定は無視され、 <?xml> 中の encoding 指定を使用します。
  • HTML は、文法がルーズであっても、極力解析しようとします。
    XHTML は、 XML として文法を厳密に解釈します。
  • XHTML の解析には少し時間がかかる場合があります。 DTD 宣言があった場合、 DTDHTTP 通信にて参照するためです。
    ただし別の XHTML が同じ DTD を参照した場合、取得した DTD はメモリ上にキャッシュされているため、 HTTP 通信は行わずキャッシュを使用します。
    -dtd オプションによりメモリ上のキャッシュをローカルディスクに書き出す事ができます(デフォルトでは OS 指定の一時ディレクトリが指定されています)。
    次回起動時はローカルディスクを参照し、 HTTP 通信を行いません。
    paraselene.head と paraselene.body がキャッシュファイルです。最新の DTD を Web 上から得たい場合は、この2つのファイルを手動で削除して下さい。
  • HTML は <!– ~ –> をスケルトンソースに取り込みますので実行時にも出力されます。
    XHTML では <!– ~ –> は削除されます。 XML 解釈ではコメントは存在しない、とみなす規定であるためです。
    ブラウザでも同様に処理されます。詳しくはXHTMLのコメントについてを参照。
  • モックアップが HTML であれば HTML 形式が、モックアップが XHTML であれば XHTML 形式が、実行時には出力されます。
    また、モックアップに DOCTYPE 宣言があれば、実行時にもそれが出力されます。
    ※プログラム中で出力形式(HTML or XHTML)や DOCTYPE 宣言を変更する事も可能です。
  • 使用している HTML パーサーは <script> タグの直後に、1文字誤認してテキストがあるかのように振る舞うようです。
    Paraselene ではこれを破棄します。破棄動作が発生すると、 Readme.html の特記欄に「scriptタグ直後のテキストから"<"を除外しました。」のように出力されます。
    もしこれが、破棄してはならない文字列であった場合、プログラム側で出力するようにして下さい。
    この現象は、XHTMLでは発生しません。また、-neko true 指定時でも発生しません。

XHTMLのコメントについて

これは、次のような記述で問題になります。

1:
2:
3:
4:
5:
6:
<script language="text/javascript" type="text/JavaScript">
<!--
  function test(){
  }
//-->
</script>

Java スクリプトやスタイルシートは、古いブラウザ(スクリプトやスタイルシートを処理できないもの)に対応するため、コメントに囲って記述する事が推奨されてきました。
XHTML で同様の事を行うと、コメントは完全に無視されてしまいます。
XHTML 中に上記のような記述を埋め込む手法はいくつかありますが、極力外部ファイルで持つ方が安全です。

Readme.html

スケルトンソースと共に生成される Readme.html には、作成された Page クラスの一覧があります。 その上部に、


例えばここに、http://localhost:8080/test/ と予め入力しておき、logicクラス一覧の on.5n67l1.na のリンクをクリックすると
http://loclhost:8080/test/on.5n67l1.na が開きます。
という部分があります。
ここにパスの先頭部分を記載し、各ページのリンクをクリックすればそのページが開きます。
開発初期のデバッグに利用して下さい。

スケルトン生成ツールのフロントエンド

スケルトン生成ツールのフロントエンドが欲しいという要望があったので、少し実験を兼ねて web ベースの GUI を作りました。

paraselene.war( モックアップ HTML とソース )

この GUI は、「モックアップやソースファイルが localhost に存在し、 localhost で tomcat が動かせる」ような環境を想定しています。
使い方ですが、paraselene.war を、tomcat の webapps フォルダに置いて下さい。tomcat のポートが 8080 なら、
http://localhost:8080/paraselene/index.na
でアクセスできます。あとは画面を見れば、分かるかと思います。
※tomcat が動作するリモートのサーバー上にソース類を置いて運用する事も可能です。Linux の場合等、tomcat 実行ユーザーが書き込み可能なディレクトリにソースを置く必要があります。

最終更新: 2009/10/18
特に明示されていない限り、本Wikiの内容は次のライセンスに従います:CC Attribution 3.0 Unported
文書の先頭へ
SourceForge.JP
2009 © Akira Terasaki.  
Driven by DokuWiki The Apache Software Foundation