Apcoordinator ユーザーズガイド |
目次 |
第2部 Apcoordinatorコアの機能 | > 第10章 XMLデータ仕様記述 | > 10.3 XMLデータ仕様記述の実行 |
XMLデータ仕様記述コンパイラは、XMLデータ仕様記述のXMLからJavaソースを生成します。XMLデータ仕様記述コンパイラは、com.fujitsu.uji.xscript.compiler.ESpecCompiler
クラスで提供されています。XMLデータ仕様記述コンパイラは、以下のコマンドで実行します。
実際の指定例
java com.fujitsu.uji.xscript.compiler.ESpecCompiler XMLデータ仕様記述ファイル名 生成Javaクラス名 [-p パッケージ名] [-comment:none] [-s 生成Javaクラスの基底クラス名]
java com.fujitsu.uji.xscript.compiler.ESpecCompiler carrent.xml Carrentc -p carrent
- ESpecCompiler
- 実行クラスをこの通り指定します。
- XMLデータ仕様記述ファイル名
- コンパイル対象のXMLデータ仕様記述のXMLファイルを指定します。
- 生成Javaクラス名
- コンパイル結果のJavaクラス名です。パッケージは含めません。
- パッケージ名
- コンパイル結果のJavaクラスのパッケージ名です。省略するとパッケージなしになります。
-comment:none
- コンパイル結果のJavaソースにコメントを出力したくない場合に指定します。省略するとJavaソースにコメントを出力します。
- 生成Javaクラスの基底クラス名
- 継承形式の利用者定義メソッドを利用する場合に、
ESpecValidator
クラスを継承して利用者定義メソッドを実装したクラスを指定します。省略すると、ESpecValidator
クラスから直接継承します。
CLASSPATH
に設定する必要があります。
uji.jar
(Apcoordinatorインストールフォルダのlib
)
ujiespec.jar
(Apcoordinatorインストールフォルダのlib
)
Apcoordinator開発環境をインストールしたフォルダの、bin
フォルダの中に、ujiespec.bat
があります。バッチファイルを作成する場合には参考にしてください。
ESpecValidator
のgetInstance
メソッドで、パッケージ名、クラス名を指定します。
import com.fujitsu.uji.DispatchContext; import com.fujitsu.uji.xscript.ESpecValidator; import com.fujitsu.uji.xscript.ESpecResultException; import com.fujitsu.uji.xscript.ESpecException; .... public void processOrder(DispatchContext context, OrderBean bean) throws java.lang.Exception { ESpecValidator validator = //ESpecValidator.getInstance(getClass().getClassLoader()); インタプリタ用 ESpecValidator.getInstance(getClass().getClassLoader(), "mypackage.CheckPrice"); validator.setInfLoader(context.getApplicationProfile().getInfLoader()); try { validator.setXml("checkPrice.xml"); validator.validate("checkValue", bean); } catch(ESpecResultException e) { ... } catch(Exception e) { throw e; } ... }
getInstance
- 引数に、"パッケージ名.クラス名"を指定する文字列を追加します。例では
getInstance
メソッドの復帰値がmypackage.CheckPrice
クラスのインスタンスとなります。
setInfLoader
やsetXml
などのXML関連のメソッドは何も処理をしません。常にコンパイルしたクラスを利用する場合は、これらのメソッドを呼ぶ必要はありません。
validator.validate("checkValue", bean)
というコードは、((CheckPrice)validator).ujiCheckValue(bean, bean)
というコードに書き換えることができます。この場合はデータBeanを2つ指定(targetBean
を指定)する形式になり、targetBean
がない場合は両方に同じデータBeanを指定する必要があります。
目次 |