Apcoordinator ユーザーズガイド
|
目次
|
10.1 概要
■XMLデータ仕様記述の概要
ビジネスアプリケーションでは、データ項目に対して値の範囲や形式について仕様を決めて、実行時に仕様を満たしているかどうかのチェックを行います。また、データ項目へのデフォルト値の設定や、データ項目間で値の転記、変換などの処理を行います。このようなデータ項目に対する処理は、ビジネスアプリケーションの中でかなりの部分を占めています。
XMLデータ仕様記述は、データ項目の仕様をXML形式で記述して、その記述をそのままの形で実行する機能です。データ項目の処理をJavaプログラムで記述する代わりに、XMLデータ仕様記述のXMLを作成します。
XMLデータ仕様記述は、データBeanの項目(プロパティ)のチェックや、項目間の転記の仕様として作成します。通常のデータBeanの他、XMLデータBean(com.fujitsu.uji.xml.XmlDataBean)やHashMap(java.util.HashMap)に対しても利用可能です。
XMLデータ仕様記述を利用することによって、次のような効果があります。
- データのチェック処理を、プログラムするのではなく、データ仕様を定義するような方法で作成できます。プログラムで記述するのに比べて明解で、作成時の誤りを軽減し、保守時の見直しを容易にします。
- XMLデータ仕様記述を外付けのファイルからインタプリタ形式で実行することによって、データ項目の仕様変更が発生した時に、プログラムを変更することなくXMLデータ仕様記述を入れ替えるだけで対応できます。
- 利用者定義メソッドを作成することにより、機能のカスタマイズが容易にできます。
- 記述形式がXMLであるため、ツール等との連携が容易です。例えば、EXCELシートからXMLデータ仕様記述を作成することができます。
- XMLデータ仕様記述をJavaソースに変換するコンパイラを利用できます。
XMLデータ仕様記述の概要図
- 1) XMLデータ仕様記述
- 各データ項目について、データの範囲、文字列パターンのマッチングなどのデータ仕様をXML形式で記述します。このXMLファイルを「XMLデータ仕様記述」と呼びます。
XMLデータ仕様記述は、インタープリタ機能を使用してそのまま実行するか、または、コンパイラ機能を使用してJavaソースに変換して実行します。
- 2) XMLデータ仕様記述コンパイラ
- XMLデータ仕様記述コンパイラは、XMLデータ仕様記述をJavaのクラスに変換します。XMLデータ仕様記述コンパイラを利用すると、アプリケーション実行時にXMLを解析する必要がなくなるため、XMLデータ仕様記述をそのままインタープリタで実行するよりも実行性能を向上することができます。
- 3) XMLデータ仕様記述実行系
- 作成したXMLデータ仕様記述を実行します。データBeanなどに対して、XMLデータ仕様記述に書かれた項目チェックや項目間転記の操作を行います。
■XMLデータ仕様記述の使用例
以下では、インタプリタを利用した単純な範囲チェックの例を説明します。記述方法の詳細やエラー処理の方法は次節以降で説明します。
XMLデータ仕様記述
<?xml version="1.0" encoding="iso-2022-jp" ?>
<eSpec
xmlns="http://interstage.fujitsu.com/schemas/uji/eSpec"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://interstage.fujitsu.com/schemas/uji/eSpec
http://interstage.fujitsu.com/schemas/uji/espec.xsd">
<config>
<version>6.0</version>
</config>
<specification name="sampleCheck" >
<section name="sect1" >
<!-- プロパティsampleNumberが0以上10以下であることをチェックします -->
<verify property="sampleNumber" op="GE" operand="#0" exception="#ERR01" info="#0以上" />
<verify property="sampleNumber" op="LE" operand="#10" exception="#ERR01" info="#10以下" />
</section>
</specification>
</eSpec>
|
eSpec
- このXMLがXMLデータ仕様記述であることを表します。
config
- XMLデータ仕様記述の情報を表します。
version
- XMLデータ仕様記述のバージョンです。
"6.0"
と指定します。
specification
- 一組のデータ仕様を表します。データ仕様はいくつかのセクションで表現されます。ここでは、データ仕様の名前を
"sampleCheck"
としています。
- section
- データ仕様のセクションを表します。セクション内に個々のデータ仕様を記述します。
- verify
- チェックのデータ仕様です。この例では、データBeanのプロパティ
sampleNumber
が0以上、10以下であることを確認し、範囲外の場合は例外とします。
ビジネスクラスの記述
import com.fujitsu.uji.xscript.ESpecValidator;
import com.fujitsu.uji.xscript.ESpecResultException;
import com.fujitsu.uji.xscript.ESpecRuntimeException;
...
public void someMethod(DispatchContext context, SomeBean bean) throws java.lang.Exception {
ESpecValidator validator = new ESpecValidator("c:\\espec\\sampleCheck.xml");
String errMsg = null;
try {
validator.validate("sampleCheck", bean);
} catch(ESpecResultException e) {
errMsg = "チェックエラー:" + e.getInfo();
} catch(Exception e) {
throw e;
}
...
}
|
import
- XMLデータ仕様記述関連のクラスは、
com.fujitsu.uji.xscript
パッケージで提供されます。
ESpecValidator
ESpecValidator
は実行機能のクラスです。XMLデータ仕様記述のファイル名を指定して作成します。
validate
ESpecValidator
のvalidate
メソッドを呼ぶことで、XMLデータ仕様記述が実行されます。
引数はデータ仕様の名前と、チェック対象のデータBeanです。
ESpecResultException
- チェックの結果エラーとなった場合は、
ESpecResultException
が発生します。
- その他のException
- プロパティオブジェクトが見つからない等の問題が発生した場合は、
ESpecRuntimeException
が発生します。また、XMLデータ仕様記述自体の記述誤りなどの場合は、ESpecException
となります。このような場合は、XMLデータ仕様記述を見直してください。
All Rights Reserved, Copyright © 富士通株式会社 2000-2005