Apcoordinator ユーザーズガイド
目次 前ページ次ページ

第2部 Apcoordinatorコアの機能> 第10章 XMLデータ仕様記述> 10.3 XMLデータ仕様記述の実行

10.3.1 インタプリタ形式での実行

■ビジネスクラスからの実行

XMLデータ仕様記述をインタプリタ形式で実行する場合は、標準的には以下のように記述します。


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());            // (1)
        validator.setInfLoader(context.getApplicationProfile().getInfLoader()); // (2)
        try {
            validator.setXml("checkPrice.xml");                                 // (3)
            validator.validate("checkValue", bean);                             // (4)
        } catch(ESpecResultException e) {
            ...                                                                 // (5)
        } catch(Exception e) {
            throw e;                                                            // (6)
        }
        ...
    }

(1) ESpecValidatorクラスのインスタンスを作成します。利用者定義メソッド呼び出しのために、ClassLoaderを引数にします。
(2) InfLoaderを指定することで、XMLファイルの読み込み場所を設定ファイルフォルダにします。設定ファイルフォルダは、コマンドマップ、リモートマップなどApcoordinatorの定義ファイルを置くフォルダです。例えば、Webアプリケーションの場合はWEB-INFフォルダです。
(3) setXmlメソッドは、XMLデータ仕様記述のXMLファイルを読み込みます。
(4) validateメソッドによって、XMLデータ仕様記述を実行します。代入先に別のデータBeanを利用する場合には、データBeanを2個指定する形式のメソッドを利用します。
(5) 項目チェックでエラーになった場合は、ESpecResultExceptionとなります。一般的には、画面にエラー情報を出して再入力の処理になります。
(6) その他の例外の場合は、XMLデータ仕様の記述や実行環境を確認してください。

■コマンドスクリプティングからの実行

コマンドスクリプティングからXMLデータ仕様記述を呼び出すことができます。


<?xml version="1.0" encoding="iso-2022-jp"?>
<commandMap
    xmlns="http://interstage.fujitsu.com/schemas/uji/commandMap"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://interstage.fujitsu.com/schemas/uji/commandMap
                        http://interstage.fujitsu.com/schemas/uji/commandmap.xsd">
  ...
  <entry bean="sample.OrderBean" verb="process">
    <specValidate file="checkPrice.xml" name="checkValue" />
    <specSection>
      <term property="val1" op="ADD" operand="val2" target="result"/>
    </specSection>
    ...
    <catch exception="ESpecResultException">
      ...
    </catch>
  </entry>
</commandMap>

コマンドスクリプティングの概要についてはコマンドスクリプティング、詳細についてはコマンドスクリプティングリファレンスを参照してください。


目次 前ページ次ページ

All Rights Reserved, Copyright © 富士通株式会社 2000-2005