Apcoordinator ユーザーズガイド |
目次
![]() ![]() |
第2部 Apcoordinatorコアの機能 | > 第11章 XMLデータ仕様記述 | > 11.2 XMLデータ仕様記述の作成 |
条件ブロックを利用すると、if文のような制御をすることができます。
次の例では、"sampleProp"
の値が1の場合に、チェックを行います。
<block property="sampleProp" op="EQ" operand="#1" > <verify property="sampleNumber" op="GE" operand="#0" exception="#ERR01" info="#0以上" /> <verify property="sampleNumber" op="LE" operand="#10" exception="#ERR01" info="#10以下" /> </block>
- 条件の記述
- 前項のタグと同様に、
property
、function
、op
、operand
の記述で条件を表します。関係演算の結果が真の場合に、ブロック内の処理が実行されます。
block
タグには、elseに相当する機能はありません。逆の条件のblock
タグを記述してください。
XMLデータ仕様記述では、デシジョン表形式の項目関連チェックを記述することができます。
デシジョン表の例
番号 項目名 値 デシジョン 1 便名 101便 × 2 便名 103便 × 3 便名 105便 × 4 便名 107便 × 5 予約タイプ 一般 × 6 予約タイプ スーパーシート × 7 予約タイプ 特別割引 × × エラー条件 全席
割引設定特別割引
設定なしスーパー
シート
設定なし特別割引
設定なし
- デシジョン表の見方
- 表の左半分には、条件が並んでいます。デシジョン部分では、それぞれの列にある
"×"
でマークした条件が同時に成立する場合に、最下段に記述したエラーとします。
XMLデータ仕様記述では、以下のように記述します。
<value seq="1" property="flight" op="EQ" operand="#101" /> <value seq="2" property="flight" op="EQ" operand="#103" /> <value seq="3" property="flight" op="EQ" operand="#105" /> <value seq="4" property="flight" op="EQ" operand="#107" /> <value seq="5" property="reservation" op="EQ" operand="#regular" /> <value seq="6" property="reservation" op="EQ" operand="#super" /> <value seq="7" property="reservation" op="EQ" operand="#discount" /> <decision exception="#ERR01" info="#全席割引" > <status seq="1" require="true" /> <status seq="5" require="true" /> </decision> <decision exception="#ERR02" info="#特割なし" > <status seq="2" require="true" /> <status seq="7" require="true" /> </decision> <decision exception="#ERR03" info="#スーパーなし" > <status seq="3" require="true" /> <status seq="6" require="true" /> </decision> <decision exception="#ERR02" info="#特割なし" > <status seq="4" require="true" /> <status seq="7" require="true" /> </decision>
value
value
タグは、デシジョン表の条件(例では行に相当)を表します。seq
アトリビュートで条件の番号を指定します。 条件は、property
、function
、op
、operand
で記述します。decision
decision
タグは、デシジョン表の結果(例ではデシジョンの列)を表します。デシジョンの成立時にエラーにする場合は、exception
、error
、info
のアトリビュートで記述します。デシジョンの成立時に項目への代入をする場合は、value
、valueFunction
、target
で記述します。status
status
タグは、デシジョンの判定条件を指定します。seq
アトリビュートは、value
タグで指定したseq
に対応します。require
アトリビュートはtrue
、false
で、その条件の真偽を指定します。
value
タグを順に評価し、例えばflight
(便名)が"101"
の場合に、seq"1"
の条件が真となります。reservation
(予約タイプ)が"regular"
(一般)の場合に、seq"5"
の条件が真となります。decision
タグは、status
タグの指定により、seq"1"
が真かつseq"5"
が真の場合に実行されます。この場合は、exception
アトリビュートが指定されているため、例外ESpecResultException
となります。
status
タグのrequire
アトリビュートでは、"true"
、"false"
をそのまま指定します。operand
アトリビュートの定数指定では"#true"
と指定しますが、status
タグでは"#"
を付けないで指定します。
目次
![]() ![]() |