| 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>
valuevalueタグは、デシジョン表の条件(例では行に相当)を表します。seqアトリビュートで条件の番号を指定します。 条件は、property、function、op、operandで記述します。decisiondecisionタグは、デシジョン表の結果(例ではデシジョンの列)を表します。デシジョンの成立時にエラーにする場合は、exception、error、infoのアトリビュートで記述します。デシジョンの成立時に項目への代入をする場合は、value、valueFunction、targetで記述します。statusstatusタグは、デシジョンの判定条件を指定します。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タグでは"#"を付けないで指定します。
目次
![]()
|