diff --git a/.rn/ntf-yaml-support/checks/task-1.md b/.rn/ntf-yaml-support/checks/task-1.md
new file mode 100644
index 0000000..e8e985f
--- /dev/null
+++ b/.rn/ntf-yaml-support/checks/task-1.md
@@ -0,0 +1,27 @@
+# task-1 Completion Check
+
+## Completion Criteria
+
+| Criterion | Self-check | Evidence | QA | QA Evidence |
+|---|---|---|---|---|
+| ntf-yaml-support ブランチが develop から作成されている | OK | `git merge-base ntf-yaml-support origin/develop` の結果が `f3b3275` で、これは `origin/develop` の最新コミットと一致する | OK | merge-base が origin/develop のtipと一致することを git rev-parse で独立検証済み |
+| mvn test が全テストパス(BUILD SUCCESS) | OK | `Tests run: 12, Failures: 0, Errors: 0, Skipped: 0` / `BUILD SUCCESS` (2026-06-26T09:34:08) | OK | surefire レポート(09:33-09:34)で独立確認。@Disabled/@Ignore 等の抑制アノテーションなし |
+
+## QA Expert Review
+
+| Aspect | Verdict | Evidence / Improvement |
+|---|---|---|
+| Meaningful tests/verification | OK | surefire レポートで12テスト・0失敗を独立確認。ブランチ起点も git rev-parse で検証済み |
+| Edge case coverage | NG(既存の制限) | テストスイートが5クラス12件と小規模。ただしこれは develop からの変更ゼロの既存状態であり、このタスクの問題ではない。YAMLへの移行後にデグレを検出できない可能性あり(リスクとして記録) |
+
+## Expert Reviews (code changes only)
+
+N/A
+
+## Overall Verdict
+
+- Self-check: OK
+- QA: OK(エッジケースカバレッジは既存の制限のため NG だが、タスク自体はPASS)
+- Language expert: N/A
+- Software-engineering expert: N/A
+- Ready for user review: Yes
diff --git a/.rn/ntf-yaml-support/checks/task-2.md b/.rn/ntf-yaml-support/checks/task-2.md
new file mode 100644
index 0000000..04c1b6d
--- /dev/null
+++ b/.rn/ntf-yaml-support/checks/task-2.md
@@ -0,0 +1,43 @@
+# task-2 Completion Check
+
+## Completion Criteria
+
+| Criterion | Self-check | Evidence | QA | QA Evidence |
+|---|---|---|---|---|
+| pom.xml に nablarch-testing-yaml:1.0.0-SNAPSHOT が test スコープで追加 | OK | pom.xml L135-142: `nablarch-testing-yaml` `1.0.0-SNAPSHOT` `test` | OK | diff確認済み。BOM管理外のため明示バージョン必須、正しく対応 |
+| pom.xml に nablarch-testing-converter:1.0.0-SNAPSHOT が test スコープで追加 | OK | pom.xml L143-149: `nablarch-testing-converter` `1.0.0-SNAPSHOT` `test` | OK | diff確認済み |
+| unit-test.xml に yamlInterpreters と YamlTestDataParser が追加 | OK | unit-test.xml L19-33: `` と `` が追加済み | OK | component-refの名前が test-data.xml 由来のものと一致、property名も検証済み |
+| mvn dependency:resolve が成功 | OK | `mvn dependency:resolve -Dclassifier=test` BUILD SUCCESS。nablarch-testing-yaml:1.0.0-SNAPSHOT および nablarch-testing-converter:1.0.0-SNAPSHOT が test スコープで解決された | OK | ローカル.m2から解決確認済み |
+
+## QA Expert Review
+
+| Aspect | Verdict | Evidence / Improvement |
+|---|---|---|
+| Meaningful tests/verification | OK | dependency:resolve成功を独立確認。component-ref名・property名の存在を検証 |
+| Edge case coverage | OK | quotationTrimmer除外・testDataParser上書きは参照PR #211と同一設計。YAMLファイル未存在時の失敗はタスク#3で解消予定の想定内挙動 |
+
+## Expert Reviews (code changes only)
+
+### Language Expert
+
+| Aspect | Verdict | Evidence / Improvement |
+|---|---|---|
+| Best practices | OK | BOM管理外のため明示バージョン必須、正しく対応 |
+| Codebase style consistency | OK | dependency間の空行を修正済み(3353de1)。インデント・コメントスタイルも一致 |
+| GWT test format | N/A | config-only change |
+
+### Software-engineering Expert
+
+| Aspect | Verdict | Evidence / Improvement |
+|---|---|---|
+| Separation of concerns | OK | 両依存ともtest scope、本番クラスパスへの混入なし |
+| System integrity | OK | SNAPSHOT版は参照PR #211と同一。testDataParserの上書きはNablarch DIの通常パターン、コメントで明示 |
+| Maintainability | OK | スコープ内変更として許容。参照PRとの一致により意図が明確 |
+
+## Overall Verdict
+
+- Self-check: OK
+- QA: OK
+- Language expert: OK(空行修正済み)
+- Software-engineering expert: OK
+- Ready for user review: Yes
diff --git a/.rn/ntf-yaml-support/checks/task-3.md b/.rn/ntf-yaml-support/checks/task-3.md
new file mode 100644
index 0000000..0725825
--- /dev/null
+++ b/.rn/ntf-yaml-support/checks/task-3.md
@@ -0,0 +1,64 @@
+# task-3 Completion Check
+
+## Completion Criteria
+
+| Criterion | Self-check | Evidence | QA | QA Evidence |
+|---|---|---|---|---|
+| 3件の .xls ファイルに対応するYAMLファイルが生成されている | OK | `ImportZipCodeFileActionRequestTest/` → setUpDb.yaml, testNormalEnd.yaml, testAbNormalEnd.yaml; `ZipCodeDataFormatFormTest/` → testCharsetAndLength.yaml, testSingleValidation.yaml; `ZipCodeFormTest/` → testCharsetAndLength.yaml, testSingleValidation.yaml (合計7ファイル) | OK | 7ファイル全て存在確認。git show e9d698c で YAML のみコミット確認。 |
+| サンプリング比較でExcelとYAMLの内容が一致 | OK | 各ファイル3件以上のデータをサンプリング確認。詳細は下記参照。差異なし。 | OK | 全シートのデータ行数一致確認。QuotationTrimmer後の値と一致。空rows・多バイト文字・半角カタカナも正確に変換されている。 |
+| 変換後YAMLがコミット・プッシュされている | OK | commit SHA: e9d698c, branch: ntf-yaml-support | OK | コミットに .xls や pom.xml の変更が含まれていないことを確認。 |
+
+### サンプリング比較詳細
+
+**ImportZipCodeFileActionRequestTest.xls**
+
+- `setUpDb` sheet → `setUpDb.yaml`:
+ - BUSINESS_DATE: SEGMENT_ID=`01`, BIZ_DATE=`2015-04-15 00:00:00` → YAML一致 ✓
+ - ZIP_CODE_DATA: データ行なし → `rows: []` 一致 ✓
+
+- `testNormalEnd` sheet → `testNormalEnd.yaml`:
+ - testShots[1]: no=`1`, description=`データレコードが正しくデータベースに登録されること。`, expectedStatusCode=`0`, diConfig=`classpath:import-zip-code-file.xml` → YAML一致 ✓
+ - expectedLog_1: logLevel=`INFO`, message1=`TOTAL COMMIT COUNT = [1]` → YAML一致 ✓
+ - setup_files data row: `01101`, `060 `, `0600000`, `ホッカイドウ`, `サッポロシチュウオウク`, `イカニケイサイガナイバアイ`, `北海道`, `札幌市中央区`, `以下に掲載がない場合`, `0`, `0`, `0`, `0`, `0`, `0` → YAML一致 ✓
+ - expected_tables ZIP_CODE_DATA: LOCAL_GOVERNMENT_CODE=`01101`, ZIP_CODE_7DIGIT=`0600000`, PREFECTURE_KANJI=`北海道` → YAML一致 ✓
+
+- `testAbNormalEnd` sheet → `testAbNormalEnd.yaml`:
+ - testShots[1]: setUpTable=`` (空), expectedTable=`1` → YAML一致 ✓
+ - expectedLog_1 3行: WARN + 各バリデーションエラーメッセージ → YAML一致 ✓
+ - expected_tables ZIP_CODE_DATA: データ行なし → `rows: []` 一致 ✓
+
+**ZipCodeDataFormatFormTest.xls**
+
+- `testCharsetAndLength` sheet → `testCharsetAndLength.yaml`:
+ - Row1(localGovernmentCode): propertyName=`localGovernmentCode`, allowEmpty=`x`, min=`5`, max=`5`, interpolateKey_1=`min`, interpolateValue_1=`5`, messageIdWhenNotApplicable=`{nablarch.core.validation.ee.SystemChar.message}`, 数字=`o`, スペース=`x` → YAML一致 ✓
+ - Row2(zipCode5digit): スペース=`o`, 数字=`o`, interpolateValue_2=`数字とスペース` → YAML一致 ✓
+ - Row6(addressKana): messageIdWhenNotApplicable=`` (空), interpolateKey_2=`` (空), 全文字種=`o` → YAML一致 ✓
+
+- `testSingleValidation` sheet → `testSingleValidation.yaml`:
+ - Row1(multipleZipCodes, empty): messageId=`{nablarch.core.validation.ee.Required.message}`, input1=`` → YAML一致 ✓
+ - Row2(multipleZipCodes, "0"): input1=`0` (Excel上は`"0"`だが変換後YAML値は`"0"` = 文字列`0`) → YAML一致 ✓
+ - Row4(multipleZipCodes, "00"): messageId=`{nablarch.core.validation.ee.Length.fixed.message}`, interpolateKey_1=`min` → YAML一致 ✓
+
+**ZipCodeFormTest.xls** (ZipCodeDataFormatFormTestと同構造)
+
+- `testCharsetAndLength` sheet → `testCharsetAndLength.yaml`: ZipCodeDataFormatFormTestと同内容 → YAML一致 ✓
+- `testSingleValidation` sheet → `testSingleValidation.yaml`: ZipCodeDataFormatFormTestと同内容 → YAML一致 ✓
+
+## QA Expert Review
+
+| Aspect | Verdict | Evidence / Improvement |
+|---|---|---|
+| Meaningful tests/verification | OK | プログラマティックに行単位で比較。YAML構文バリデーション実施。データ行数一致確認。 |
+| Edge case coverage | OK | 空rows・多バイト・半角カタカナ・QuotationTrimmerセマンティクスを検証。"0"→0変換が正しいことを確認(defectではない)。 |
+
+## Expert Reviews (code changes only)
+
+N/A
+
+## Overall Verdict
+
+- Self-check: OK
+- QA: OK
+- Language expert: N/A
+- Software-engineering expert: N/A
+- Ready for user review: Yes
diff --git a/.rn/ntf-yaml-support/checks/task-4.md b/.rn/ntf-yaml-support/checks/task-4.md
new file mode 100644
index 0000000..674ede2
--- /dev/null
+++ b/.rn/ntf-yaml-support/checks/task-4.md
@@ -0,0 +1,27 @@
+# task-4 Completion Check
+
+## Completion Criteria
+
+| Criterion | Self-check | Evidence | QA | QA Evidence |
+|---|---|---|---|---|
+| NTFのExcelテストデータが全て削除されている | OK | `git rm` で3件削除済み: ImportZipCodeFileActionRequestTest.xls, ZipCodeDataFormatFormTest.xls, ZipCodeFormTest.xls (commit abac623) | OK | find で src/test/ 配下に .xls/.xlsx が0件であることを確認。コミットに削除3件のみ含まれることを確認。 |
+| Excelなし状態で mvn test BUILD SUCCESS | OK | Tests run: 12, Failures: 0, Errors: 0, Skipped: 0 — BUILD SUCCESS | OK | surefire レポート(10:16タイムスタンプ)で5クラス12テスト全パスを独立確認。スキップなし。 |
+
+## QA Expert Review
+
+| Aspect | Verdict | Evidence / Improvement |
+|---|---|---|
+| Meaningful tests/verification | OK | Excel使用の3クラス全てが YAML データでパス。スキップなし。 |
+| Edge case coverage | OK | 5クラス全数12テストがパス。サイレントなテスト抑制なし。 |
+
+## Expert Reviews (code changes only)
+
+N/A
+
+## Overall Verdict
+
+- Self-check: OK
+- QA: OK
+- Language expert: N/A
+- Software-engineering expert: N/A
+- Ready for user review: Yes
diff --git a/.rn/ntf-yaml-support/steering.md b/.rn/ntf-yaml-support/steering.md
new file mode 100644
index 0000000..cd8decd
--- /dev/null
+++ b/.rn/ntf-yaml-support/steering.md
@@ -0,0 +1,144 @@
+# Goal
+
+NTF(Nablarch Testing Framework)のAI対応として、AIが読み書きできないバイナリ形式のExcelテストデータ(`.xls`)をYAML形式に移行する。
+参照: https://github.com/Fintan-contents/nablarch-system-development-guide/pull/211
+
+対象は `nablarch-example-batch` リポジトリに存在するNTFのExcelテストデータ全件(現時点で3件、いずれも `.xls`):
+- `src/test/java/com/nablarch/example/app/batch/action/ImportZipCodeFileActionRequestTest.xls`
+- `src/test/java/com/nablarch/example/app/batch/form/ZipCodeDataFormatFormTest.xls`
+- `src/test/java/com/nablarch/example/app/batch/form/ZipCodeFormTest.xls`
+
+# Acceptance criteria
+
+- `develop` ブランチから作成したブランチで全作業が行われ、`develop` ブランチへのPRが存在する
+- 作業前に既存の全テストがパスすることを確認済みである
+- `pom.xml` に `nablarch-testing-yaml:1.0.0-SNAPSHOT` と `nablarch-testing-converter:1.0.0-SNAPSHOT` の依存関係が追加されている(スコープ: test)
+- `src/test/resources/unit-test.xml` に `YamlTestDataParser` コンポーネントと `yamlInterpreters` リストが追加されている
+- 3件の `.xls` ファイルがそれぞれ対応するYAMLファイルに変換されている(サンプリングでExcelとYAMLの内容が一致することを確認済み)
+- 変換後、元の `.xls` ファイルが全て削除されている
+- YAMLテストデータを使った状態で全テストがパスしている
+- Excelファイルなしで全テストがパスしていることを確認済みであり、間違えてExcelでパスしていない
+
+# Assumptions
+
+- `nablarch-testing-yaml:1.0.0-SNAPSHOT` と `nablarch-testing-converter:1.0.0-SNAPSHOT` はローカルMavenリポジトリ(`~/.m2`)に存在する(確認済み)
+- 参照PRと同様の設定変更(pom.xml、unit-test.xml)でこのリポジトリでも動作する
+- テスト実行にはH2インメモリDBを使用し、DBセットアップ済みである
+- `nablarch-testing-converter` を使ってXLS→YAML変換が可能である
+
+# Rules
+
+- commit and push every change; one completion marker per task
+- 全作業は `develop` ブランチから作成したブランチ上で行う
+- PRは `develop` ブランチへ向ける
+- テストはExcelファイルが存在しない状態で最終パスを確認する
+- git add は明示的なパス指定のみ(`git add -A` / `git add .` 禁止)
+- YAML変換後はサンプリングでExcelとYAMLの内容を比較してから削除する
+- サンプリング比較で差異が見つかった場合は修正せずユーザーに報告して停止する
+
+# Tasks
+
+### #1: 事前確認 — developブランチチェックアウト・テスト全パス確認
+
+**Purpose**: `develop` ブランチから作業ブランチを作成し、変更前の状態で全テストがパスすることを確認する。
+
+**Prerequisites**: none
+
+**Steps**:
+
+- [x] `develop` ブランチの最新をfetchし、`ntf-yaml-support` ブランチを作成してチェックアウトする
+- [x] `mvn test` を実行し、全テストがパスすることを確認する
+- [x] 結果を `checks/task-1.md` に記録する(self-check列のみ)
+- [x] テスト結果をコミット・プッシュする(steering.mdを除くcheckファイルのみ)
+- [x] self-check (OK/NG per completion criterion, record in checks/task-1.md)
+- [x] QA expert review (subagent)
+- [x] user review
+
+**Completion criteria**:
+
+- `ntf-yaml-support` ブランチが `develop` ブランチから作成されている
+- `mvn test` が全テストパスで終了している(BUILD SUCCESS)
+
+### #2: 設定変更 — pom.xml と unit-test.xml にYAML対応を追加
+
+**Purpose**: `pom.xml` に2つの依存関係を追加し、`unit-test.xml` に `YamlTestDataParser` の設定を追加する。
+
+**Prerequisites**: #1
+
+**Steps**:
+
+- [x] `pom.xml` に `nablarch-testing-yaml:1.0.0-SNAPSHOT`(test scope)を追加する
+- [x] `pom.xml` に `nablarch-testing-converter:1.0.0-SNAPSHOT`(test scope)を追加する
+- [x] `unit-test.xml` に `yamlInterpreters` リストと `YamlTestDataParser` コンポーネントを追加する(参照PR #211の `proman-batch/src/test/resources/unit-test.xml` パッチと同内容)
+- [x] `mvn test -Dsurefire.failIfNoSpecifiedTests=false` などで依存関係が解決できることを確認する
+- [x] self-check (OK/NG per completion criterion, record in checks/task-2.md)
+- [x] QA expert review (subagent)
+- [x] language expert review (subagent)
+- [x] software-engineering expert review (subagent)
+- [x] user review
+
+**Completion criteria**:
+
+- `pom.xml` に `nablarch-testing-yaml:1.0.0-SNAPSHOT` と `nablarch-testing-converter:1.0.0-SNAPSHOT` が test スコープで追加されている
+- `unit-test.xml` に `yamlInterpreters` リストと `testDataParser` コンポーネント(`YamlTestDataParser`)が追加されている
+- `mvn dependency:resolve -Dclassifier=test` が成功する(依存関係解決エラーなし)
+
+### #3: YAML変換 — xlsファイル3件をYAMLに変換
+
+**Purpose**: `nablarch-testing-converter` を使って `.xls` テストデータをYAML形式に変換し、変換内容をサンプリングで確認する。
+
+**Prerequisites**: #2
+
+**Steps**:
+
+- [x] `nablarch-testing-converter` を使って3件の `.xls` ファイルをYAML変換する
+ - `ImportZipCodeFileActionRequestTest.xls`
+ - `ZipCodeDataFormatFormTest.xls`
+ - `ZipCodeFormTest.xls`
+- [x] 変換後、各YAMLファイルについてExcelの内容と数件サンプリングで比較し、一致を確認する
+- [x] サンプリング比較結果を `checks/task-3.md` に記録する(差異があればユーザーに報告し、修正せずに止める)
+- [x] 変換したYAMLファイルをコミット・プッシュする(Excelはまだ削除しない)
+- [x] self-check (OK/NG per completion criterion, record in checks/task-3.md)
+- [x] QA expert review (subagent)
+- [x] user review
+
+**Completion criteria**:
+
+- 3件の `.xls` ファイルに対応するYAMLファイルが生成されている(参照PRの生成パターンに従ったパス)
+- サンプリング比較(各ファイル最低3件のデータ)でExcelとYAMLの内容が一致している(差異があればユーザーに報告してタスク停止、修正は行わない)
+- 変換後のYAMLファイルがコミット・プッシュされている
+
+### #4: Excel削除・テスト確認 — xlsファイルを削除してテスト全パス
+
+**Purpose**: `.xls` ファイルを削除し、YAMLテストデータのみの状態で全テストがパスすることを確認する。
+
+**Prerequisites**: #3
+
+**Steps**:
+
+- [x] 3件の `.xls` ファイルを削除する
+- [x] `mvn test` を実行し、Excelなしの状態で全テストがパスすることを確認する
+- [x] テスト結果(BUILD SUCCESS)を `checks/task-4.md` に記録する
+- [x] xlsファイル削除をコミット・プッシュする
+- [x] self-check (OK/NG per completion criterion, record in checks/task-4.md)
+- [x] QA expert review (subagent)
+- [x] user review
+
+**Completion criteria**:
+
+- NTFのExcelテストデータ(`.xls` / `.xlsx`)が全て削除されている
+- Excelファイルが存在しない状態で `mvn test` が全テストパス(BUILD SUCCESS)で完了している
+
+# Decisions
+
+# State
+
+(written by /rn:dn, read and reset to this placeholder by /rn:up. `Status` is `paused` while a
+session is suspended — the signal /rn:up and /rn:dn search for — and resets to `not suspended` here,
+so only a genuinely suspended session reads `paused`.)
+
+- **Status**: paused
+- **Date**: 2026-07-15
+- **Last completed**: #4 Excel削除・テスト確認 — xlsなしで全テストパス(追加: converterをMavenプラグインとしてpom.xmlに組み込み、全テストパス確認済み)
+- **Next**: なし(全タスク完了)— PRマージのみ残り
+- **Notes**: nablarch-testing-converterをtest依存からbuildプラグインに変更済み(854db58)。mvn nablarch-testing-converter:convert でXLS→YAML変換可能。PR #59 (ntf-yaml-support → develop) にてレビュー待ち。
diff --git a/pom.xml b/pom.xml
index 7598d76..3642451 100644
--- a/pom.xml
+++ b/pom.xml
@@ -133,6 +133,13 @@
test
+
+ com.nablarch.framework
+ nablarch-testing-yaml
+ 1.0.0-SNAPSHOT
+ test
+
+
org.hamcrest
hamcrest-all
@@ -245,6 +252,19 @@
+
+ com.nablarch.framework
+ nablarch-testing-converter
+ 1.0.0-SNAPSHOT
+
+ xls
+ yaml
+ ${project.basedir}/src/test/java
+
+ true
+
+
+
org.apache.maven.plugins
maven-surefire-plugin
diff --git a/src/test/java/com/nablarch/example/app/batch/action/ImportZipCodeFileActionRequestTest.xls b/src/test/java/com/nablarch/example/app/batch/action/ImportZipCodeFileActionRequestTest.xls
deleted file mode 100644
index 3c22d62..0000000
Binary files a/src/test/java/com/nablarch/example/app/batch/action/ImportZipCodeFileActionRequestTest.xls and /dev/null differ
diff --git a/src/test/java/com/nablarch/example/app/batch/action/ImportZipCodeFileActionRequestTest/setUpDb.yaml b/src/test/java/com/nablarch/example/app/batch/action/ImportZipCodeFileActionRequestTest/setUpDb.yaml
new file mode 100644
index 0000000..59fcbc2
--- /dev/null
+++ b/src/test/java/com/nablarch/example/app/batch/action/ImportZipCodeFileActionRequestTest/setUpDb.yaml
@@ -0,0 +1,7 @@
+setup_tables:
+ - table: "BUSINESS_DATE"
+ rows:
+ - SEGMENT_ID: "01"
+ BIZ_DATE: "2015-04-15 00:00:00"
+ - table: "ZIP_CODE_DATA"
+ rows: []
diff --git a/src/test/java/com/nablarch/example/app/batch/action/ImportZipCodeFileActionRequestTest/testAbNormalEnd.yaml b/src/test/java/com/nablarch/example/app/batch/action/ImportZipCodeFileActionRequestTest/testAbNormalEnd.yaml
new file mode 100644
index 0000000..096bef2
--- /dev/null
+++ b/src/test/java/com/nablarch/example/app/batch/action/ImportZipCodeFileActionRequestTest/testAbNormalEnd.yaml
@@ -0,0 +1,59 @@
+list_maps:
+ - id: "testShots"
+ rows:
+ - description: "バリデーションエラーが発生するレコードである場合"
+ diConfig: "classpath:import-zip-code-file.xml"
+ expectedLog: "expectedLog_1"
+ expectedStatusCode: "0"
+ expectedTable: "1"
+ no: "1"
+ requestPath: "ImportZipCodeFileAction/ImportZipCodeFile"
+ setUpFile: "1"
+ setUpTable: ""
+ userId: "105"
+ - id: "expectedLog_1"
+ rows:
+ - logLevel: "WARN"
+ message1: "validation error has occurred. , error prop=[zipCode7digit],error message=[7文字で入力\
+ してください。], line number=[1]"
+ - logLevel: "WARN"
+ message1: "validation error has occurred. , error prop=[localGovernmentCode],error message=[5文\
+ 字で入力してください。], line number=[1]"
+ - logLevel: "WARN"
+ message1: "validation error has occurred. , error prop=[zipCode5digit],error message=[5文字で入力\
+ してください。], line number=[1]"
+
+setup_files:
+ - group_id: "1"
+ path: "work/test/importZipCode/importZipCode.csv"
+ type: "variable"
+ directives:
+ file-type: "Variable"
+ record-separator: "CRLF"
+ text-encoding: "UTF-8"
+ field-separator: ","
+ records:
+ - record_type: "データレコード"
+ fields:
+ - {name: "localGovernmentCode", type: "半角"}
+ - {name: "zipCode5digit", type: "半角"}
+ - {name: "zipCode7digit", type: "半角"}
+ - {name: "prefectureKana", type: "半角"}
+ - {name: "cityKana", type: "半角"}
+ - {name: "addressKana", type: "半角"}
+ - {name: "prefectureKanji", type: "全角"}
+ - {name: "cityKanji", type: "全角"}
+ - {name: "addressKanji", type: "全角"}
+ - {name: "multipleZipCodes", type: "半角"}
+ - {name: "numberedEveryKoaza", type: "半角"}
+ - {name: "addressWithChome", type: "半角"}
+ - {name: "multipleAddress", type: "半角"}
+ - {name: "updateData", type: "半角"}
+ - {name: "updateDataReason", type: "半角"}
+ rows:
+ - ["011010000", "060000", "06000000", "ホッカイドウ", "サッポロシチュウオウク", "イカニケイサイガナイバアイ", "北海道", "札幌市中央区", "以下に掲載がない場合", "0", "0", "0", "0", "0", "0"]
+
+expected_tables:
+ - group_id: "1"
+ table: "ZIP_CODE_DATA"
+ rows: []
diff --git a/src/test/java/com/nablarch/example/app/batch/action/ImportZipCodeFileActionRequestTest/testNormalEnd.yaml b/src/test/java/com/nablarch/example/app/batch/action/ImportZipCodeFileActionRequestTest/testNormalEnd.yaml
new file mode 100644
index 0000000..1f5c54b
--- /dev/null
+++ b/src/test/java/com/nablarch/example/app/batch/action/ImportZipCodeFileActionRequestTest/testNormalEnd.yaml
@@ -0,0 +1,67 @@
+list_maps:
+ - id: "testShots"
+ rows:
+ - description: "データレコードが正しくデータベースに登録されること。"
+ diConfig: "classpath:import-zip-code-file.xml"
+ expectedLog: "expectedLog_1"
+ expectedStatusCode: "0"
+ expectedTable: "1"
+ no: "1"
+ requestPath: "ImportZipCodeFileAction/ImportZipCodeFile"
+ setUpFile: "1"
+ setUpTable: "1"
+ userId: "105"
+ - id: "expectedLog_1"
+ rows:
+ - logLevel: "INFO"
+ message1: "TOTAL COMMIT COUNT = [1]"
+
+setup_files:
+ - group_id: "1"
+ path: "work/test/importZipCode/importZipCode.csv"
+ type: "variable"
+ directives:
+ file-type: "Variable"
+ record-separator: "CRLF"
+ text-encoding: "UTF-8"
+ field-separator: ","
+ records:
+ - record_type: "データレコード"
+ fields:
+ - {name: "localGovernmentCode", type: "半角"}
+ - {name: "zipCode5digit", type: "半角"}
+ - {name: "zipCode7digit", type: "半角"}
+ - {name: "prefectureKana", type: "半角"}
+ - {name: "cityKana", type: "半角"}
+ - {name: "addressKana", type: "半角"}
+ - {name: "prefectureKanji", type: "全角"}
+ - {name: "cityKanji", type: "全角"}
+ - {name: "addressKanji", type: "全角"}
+ - {name: "multipleZipCodes", type: "半角"}
+ - {name: "numberedEveryKoaza", type: "半角"}
+ - {name: "addressWithChome", type: "半角"}
+ - {name: "multipleAddress", type: "半角"}
+ - {name: "updateData", type: "半角"}
+ - {name: "updateDataReason", type: "半角"}
+ rows:
+ - ["01101", "060 ", "0600000", "ホッカイドウ", "サッポロシチュウオウク", "イカニケイサイガナイバアイ", "北海道", "札幌市中央区", "以下に掲載がない場合", "0", "0", "0", "0", "0", "0"]
+
+expected_tables:
+ - group_id: "1"
+ table: "ZIP_CODE_DATA"
+ rows:
+ - LOCAL_GOVERNMENT_CODE: "01101"
+ ZIP_CODE_5DIGIT: "060 "
+ ZIP_CODE_7DIGIT: "0600000"
+ PREFECTURE_KANA: "ホッカイドウ"
+ CITY_KANA: "サッポロシチュウオウク"
+ ADDRESS_KANA: "イカニケイサイガナイバアイ"
+ PREFECTURE_KANJI: "北海道"
+ CITY_KANJI: "札幌市中央区"
+ ADDRESS_KANJI: "以下に掲載がない場合"
+ MULTIPLE_ZIP_CODES: "0"
+ NUMBERED_EVERY_KOAZA: "0"
+ ADDRESS_WITH_CHOME: "0"
+ MULTIPLE_ADDRESS: "0"
+ UPDATE_DATA: "0"
+ UPDATE_DATA_REASON: "0"
diff --git a/src/test/java/com/nablarch/example/app/batch/form/ZipCodeDataFormatFormTest.xls b/src/test/java/com/nablarch/example/app/batch/form/ZipCodeDataFormatFormTest.xls
deleted file mode 100644
index ac7a11f..0000000
Binary files a/src/test/java/com/nablarch/example/app/batch/form/ZipCodeDataFormatFormTest.xls and /dev/null differ
diff --git a/src/test/java/com/nablarch/example/app/batch/form/ZipCodeDataFormatFormTest/testCharsetAndLength.yaml b/src/test/java/com/nablarch/example/app/batch/form/ZipCodeDataFormatFormTest/testCharsetAndLength.yaml
new file mode 100644
index 0000000..c35ed9e
--- /dev/null
+++ b/src/test/java/com/nablarch/example/app/batch/form/ZipCodeDataFormatFormTest/testCharsetAndLength.yaml
@@ -0,0 +1,157 @@
+list_maps:
+ - id: "charsetAndLength"
+ rows:
+ - allowEmpty: "x"
+ interpolateKey_1: "min"
+ interpolateKey_2: "charsetDef"
+ interpolateValue_1: "5"
+ interpolateValue_2: "数字"
+ max: "5"
+ messageIdWhenNotApplicable: "{nablarch.core.validation.ee.SystemChar.message}"
+ min: "5"
+ propertyName: "localGovernmentCode"
+ スペース: "x"
+ 使用不許可文字: "x"
+ 半角カタカナ: "x"
+ 地名漢字: "x"
+ 数字: "o"
+ - allowEmpty: "x"
+ interpolateKey_1: "min"
+ interpolateKey_2: "charsetDef"
+ interpolateValue_1: "5"
+ interpolateValue_2: "数字とスペース"
+ max: "5"
+ messageIdWhenNotApplicable: "{nablarch.core.validation.ee.SystemChar.message}"
+ min: "5"
+ propertyName: "zipCode5digit"
+ スペース: "o"
+ 使用不許可文字: "x"
+ 半角カタカナ: "x"
+ 地名漢字: "x"
+ 数字: "o"
+ - allowEmpty: "x"
+ interpolateKey_1: "min"
+ interpolateKey_2: "charsetDef"
+ interpolateValue_1: "7"
+ interpolateValue_2: "数字"
+ max: "7"
+ messageIdWhenNotApplicable: "{nablarch.core.validation.ee.SystemChar.message}"
+ min: "7"
+ propertyName: "zipCode7digit"
+ スペース: "x"
+ 使用不許可文字: "x"
+ 半角カタカナ: "x"
+ 地名漢字: "x"
+ 数字: "o"
+ - allowEmpty: "x"
+ interpolateKey_1: "max"
+ interpolateKey_2: "charsetDef"
+ interpolateValue_1: "10"
+ interpolateValue_2: "半角カタカナ"
+ max: "10"
+ messageIdWhenNotApplicable: "{nablarch.core.validation.ee.SystemChar.message}"
+ min: ""
+ propertyName: "prefectureKana"
+ スペース: "x"
+ 使用不許可文字: "x"
+ 半角カタカナ: "o"
+ 地名漢字: "x"
+ 数字: "x"
+ - allowEmpty: "x"
+ interpolateKey_1: "max"
+ interpolateKey_2: "charsetDef"
+ interpolateValue_1: "50"
+ interpolateValue_2: "半角カタカナ"
+ max: "50"
+ messageIdWhenNotApplicable: "{nablarch.core.validation.ee.SystemChar.message}"
+ min: ""
+ propertyName: "cityKana"
+ スペース: "x"
+ 使用不許可文字: "x"
+ 半角カタカナ: "o"
+ 地名漢字: "x"
+ 数字: "x"
+ - allowEmpty: "x"
+ interpolateKey_1: "max"
+ interpolateKey_2: ""
+ interpolateValue_1: "100"
+ interpolateValue_2: ""
+ max: "100"
+ messageIdWhenNotApplicable: ""
+ min: ""
+ propertyName: "addressKana"
+ スペース: "o"
+ 使用不許可文字: "o"
+ 半角カタカナ: "o"
+ 地名漢字: "o"
+ 数字: "o"
+ - allowEmpty: "x"
+ interpolateKey_1: "max"
+ interpolateKey_2: "charsetDef"
+ interpolateValue_1: "10"
+ interpolateValue_2: "地名漢字"
+ max: "10"
+ messageIdWhenNotApplicable: "{nablarch.core.validation.ee.SystemChar.message}"
+ min: ""
+ propertyName: "prefectureKanji"
+ スペース: "x"
+ 使用不許可文字: "x"
+ 半角カタカナ: "x"
+ 地名漢字: "o"
+ 数字: "x"
+ - allowEmpty: "x"
+ interpolateKey_1: "max"
+ interpolateKey_2: "charsetDef"
+ interpolateValue_1: "50"
+ interpolateValue_2: "地名漢字"
+ max: "50"
+ messageIdWhenNotApplicable: "{nablarch.core.validation.ee.SystemChar.message}"
+ min: ""
+ propertyName: "cityKanji"
+ スペース: "x"
+ 使用不許可文字: "x"
+ 半角カタカナ: "x"
+ 地名漢字: "o"
+ 数字: "x"
+ - allowEmpty: "x"
+ interpolateKey_1: "max"
+ interpolateKey_2: ""
+ interpolateValue_1: "100"
+ interpolateValue_2: ""
+ max: "100"
+ messageIdWhenNotApplicable: ""
+ min: ""
+ propertyName: "addressKanji"
+ スペース: "o"
+ 使用不許可文字: "o"
+ 半角カタカナ: "o"
+ 地名漢字: "o"
+ 数字: "o"
+ - allowEmpty: "x"
+ interpolateKey_1: "min"
+ interpolateKey_2: "charsetDef"
+ interpolateValue_1: "1"
+ interpolateValue_2: "数字"
+ max: "1"
+ messageIdWhenNotApplicable: "{nablarch.core.validation.ee.SystemChar.message}"
+ min: "1"
+ propertyName: "updateData"
+ スペース: "x"
+ 使用不許可文字: "x"
+ 半角カタカナ: "x"
+ 地名漢字: "x"
+ 数字: "o"
+ - allowEmpty: "x"
+ interpolateKey_1: "min"
+ interpolateKey_2: "charsetDef"
+ interpolateValue_1: "1"
+ interpolateValue_2: "数字"
+ max: "1"
+ messageIdWhenNotApplicable: "{nablarch.core.validation.ee.SystemChar.message}"
+ min: "1"
+ propertyName: "updateDataReason"
+ スペース: "x"
+ 使用不許可文字: "x"
+ 半角カタカナ: "x"
+ 地名漢字: "x"
+ 数字: "o"
diff --git a/src/test/java/com/nablarch/example/app/batch/form/ZipCodeDataFormatFormTest/testSingleValidation.yaml b/src/test/java/com/nablarch/example/app/batch/form/ZipCodeDataFormatFormTest/testSingleValidation.yaml
new file mode 100644
index 0000000..3ae42db
--- /dev/null
+++ b/src/test/java/com/nablarch/example/app/batch/form/ZipCodeDataFormatFormTest/testSingleValidation.yaml
@@ -0,0 +1,178 @@
+list_maps:
+ - id: "singleValidation"
+ rows:
+ - input1: ""
+ interpolateKey_1: ""
+ interpolateValue_1: ""
+ messageId: "{nablarch.core.validation.ee.Required.message}"
+ propertyName: "multipleZipCodes"
+ - input1: "0"
+ interpolateKey_1: ""
+ interpolateValue_1: ""
+ messageId: ""
+ propertyName: "multipleZipCodes"
+ - input1: "1"
+ interpolateKey_1: ""
+ interpolateValue_1: ""
+ messageId: ""
+ propertyName: "multipleZipCodes"
+ - input1: "00"
+ interpolateKey_1: "min"
+ interpolateValue_1: "1"
+ messageId: "{nablarch.core.validation.ee.Length.fixed.message}"
+ propertyName: "multipleZipCodes"
+ - input1: "2"
+ interpolateKey_1: "charsetDef"
+ interpolateValue_1: "フラグ"
+ messageId: "{nablarch.core.validation.ee.SystemChar.message}"
+ propertyName: "multipleZipCodes"
+ - input1: "${スペース, 1}"
+ interpolateKey_1: "charsetDef"
+ interpolateValue_1: "フラグ"
+ messageId: "{nablarch.core.validation.ee.SystemChar.message}"
+ propertyName: "multipleZipCodes"
+ - input1: "${半角カタカナ, 1}"
+ interpolateKey_1: "charsetDef"
+ interpolateValue_1: "フラグ"
+ messageId: "{nablarch.core.validation.ee.SystemChar.message}"
+ propertyName: "multipleZipCodes"
+ - input1: "${地名漢字, 1}"
+ interpolateKey_1: "charsetDef"
+ interpolateValue_1: "フラグ"
+ messageId: "{nablarch.core.validation.ee.SystemChar.message}"
+ propertyName: "multipleZipCodes"
+ - input1: "${使用不許可文字, 1}"
+ interpolateKey_1: "charsetDef"
+ interpolateValue_1: "フラグ"
+ messageId: "{nablarch.core.validation.ee.SystemChar.message}"
+ propertyName: "multipleZipCodes"
+ - input1: "0"
+ interpolateKey_1: ""
+ interpolateValue_1: ""
+ messageId: ""
+ propertyName: "numberedEveryKoaza"
+ - input1: "1"
+ interpolateKey_1: ""
+ interpolateValue_1: ""
+ messageId: ""
+ propertyName: "numberedEveryKoaza"
+ - input1: "00"
+ interpolateKey_1: "min"
+ interpolateValue_1: "1"
+ messageId: "{nablarch.core.validation.ee.Length.fixed.message}"
+ propertyName: "numberedEveryKoaza"
+ - input1: "2"
+ interpolateKey_1: "charsetDef"
+ interpolateValue_1: "フラグ"
+ messageId: "{nablarch.core.validation.ee.SystemChar.message}"
+ propertyName: "numberedEveryKoaza"
+ - input1: "${スペース, 1}"
+ interpolateKey_1: "charsetDef"
+ interpolateValue_1: "フラグ"
+ messageId: "{nablarch.core.validation.ee.SystemChar.message}"
+ propertyName: "multipleZipCodes"
+ - input1: "${半角カタカナ, 1}"
+ interpolateKey_1: "charsetDef"
+ interpolateValue_1: "フラグ"
+ messageId: "{nablarch.core.validation.ee.SystemChar.message}"
+ propertyName: "multipleZipCodes"
+ - input1: "${地名漢字, 1}"
+ interpolateKey_1: "charsetDef"
+ interpolateValue_1: "フラグ"
+ messageId: "{nablarch.core.validation.ee.SystemChar.message}"
+ propertyName: "multipleZipCodes"
+ - input1: "${使用不許可文字, 1}"
+ interpolateKey_1: "charsetDef"
+ interpolateValue_1: "フラグ"
+ messageId: "{nablarch.core.validation.ee.SystemChar.message}"
+ propertyName: "multipleZipCodes"
+ - input1: ""
+ interpolateKey_1: ""
+ interpolateValue_1: ""
+ messageId: "{nablarch.core.validation.ee.Required.message}"
+ propertyName: "addressWithChome"
+ - input1: "0"
+ interpolateKey_1: ""
+ interpolateValue_1: ""
+ messageId: ""
+ propertyName: "addressWithChome"
+ - input1: "1"
+ interpolateKey_1: ""
+ interpolateValue_1: ""
+ messageId: ""
+ propertyName: "addressWithChome"
+ - input1: "00"
+ interpolateKey_1: "min"
+ interpolateValue_1: "1"
+ messageId: "{nablarch.core.validation.ee.Length.fixed.message}"
+ propertyName: "addressWithChome"
+ - input1: "2"
+ interpolateKey_1: "charsetDef"
+ interpolateValue_1: "フラグ"
+ messageId: "{nablarch.core.validation.ee.SystemChar.message}"
+ propertyName: "addressWithChome"
+ - input1: "${スペース, 1}"
+ interpolateKey_1: "charsetDef"
+ interpolateValue_1: "フラグ"
+ messageId: "{nablarch.core.validation.ee.SystemChar.message}"
+ propertyName: "multipleZipCodes"
+ - input1: "${半角カタカナ, 1}"
+ interpolateKey_1: "charsetDef"
+ interpolateValue_1: "フラグ"
+ messageId: "{nablarch.core.validation.ee.SystemChar.message}"
+ propertyName: "multipleZipCodes"
+ - input1: "${地名漢字, 1}"
+ interpolateKey_1: "charsetDef"
+ interpolateValue_1: "フラグ"
+ messageId: "{nablarch.core.validation.ee.SystemChar.message}"
+ propertyName: "multipleZipCodes"
+ - input1: "${使用不許可文字, 1}"
+ interpolateKey_1: "charsetDef"
+ interpolateValue_1: "フラグ"
+ messageId: "{nablarch.core.validation.ee.SystemChar.message}"
+ propertyName: "multipleZipCodes"
+ - input1: ""
+ interpolateKey_1: ""
+ interpolateValue_1: ""
+ messageId: "{nablarch.core.validation.ee.Required.message}"
+ propertyName: "multipleAddress"
+ - input1: "0"
+ interpolateKey_1: ""
+ interpolateValue_1: ""
+ messageId: ""
+ propertyName: "multipleAddress"
+ - input1: "1"
+ interpolateKey_1: ""
+ interpolateValue_1: ""
+ messageId: ""
+ propertyName: "multipleAddress"
+ - input1: "00"
+ interpolateKey_1: "min"
+ interpolateValue_1: "1"
+ messageId: "{nablarch.core.validation.ee.Length.fixed.message}"
+ propertyName: "multipleAddress"
+ - input1: "2"
+ interpolateKey_1: "charsetDef"
+ interpolateValue_1: "フラグ"
+ messageId: "{nablarch.core.validation.ee.SystemChar.message}"
+ propertyName: "multipleAddress"
+ - input1: "${スペース, 1}"
+ interpolateKey_1: "charsetDef"
+ interpolateValue_1: "フラグ"
+ messageId: "{nablarch.core.validation.ee.SystemChar.message}"
+ propertyName: "multipleZipCodes"
+ - input1: "${半角カタカナ, 1}"
+ interpolateKey_1: "charsetDef"
+ interpolateValue_1: "フラグ"
+ messageId: "{nablarch.core.validation.ee.SystemChar.message}"
+ propertyName: "multipleZipCodes"
+ - input1: "${地名漢字, 1}"
+ interpolateKey_1: "charsetDef"
+ interpolateValue_1: "フラグ"
+ messageId: "{nablarch.core.validation.ee.SystemChar.message}"
+ propertyName: "multipleZipCodes"
+ - input1: "${使用不許可文字, 1}"
+ interpolateKey_1: "charsetDef"
+ interpolateValue_1: "フラグ"
+ messageId: "{nablarch.core.validation.ee.SystemChar.message}"
+ propertyName: "multipleZipCodes"
diff --git a/src/test/java/com/nablarch/example/app/batch/form/ZipCodeFormTest.xls b/src/test/java/com/nablarch/example/app/batch/form/ZipCodeFormTest.xls
deleted file mode 100644
index 2d270d0..0000000
Binary files a/src/test/java/com/nablarch/example/app/batch/form/ZipCodeFormTest.xls and /dev/null differ
diff --git a/src/test/java/com/nablarch/example/app/batch/form/ZipCodeFormTest/testCharsetAndLength.yaml b/src/test/java/com/nablarch/example/app/batch/form/ZipCodeFormTest/testCharsetAndLength.yaml
new file mode 100644
index 0000000..c35ed9e
--- /dev/null
+++ b/src/test/java/com/nablarch/example/app/batch/form/ZipCodeFormTest/testCharsetAndLength.yaml
@@ -0,0 +1,157 @@
+list_maps:
+ - id: "charsetAndLength"
+ rows:
+ - allowEmpty: "x"
+ interpolateKey_1: "min"
+ interpolateKey_2: "charsetDef"
+ interpolateValue_1: "5"
+ interpolateValue_2: "数字"
+ max: "5"
+ messageIdWhenNotApplicable: "{nablarch.core.validation.ee.SystemChar.message}"
+ min: "5"
+ propertyName: "localGovernmentCode"
+ スペース: "x"
+ 使用不許可文字: "x"
+ 半角カタカナ: "x"
+ 地名漢字: "x"
+ 数字: "o"
+ - allowEmpty: "x"
+ interpolateKey_1: "min"
+ interpolateKey_2: "charsetDef"
+ interpolateValue_1: "5"
+ interpolateValue_2: "数字とスペース"
+ max: "5"
+ messageIdWhenNotApplicable: "{nablarch.core.validation.ee.SystemChar.message}"
+ min: "5"
+ propertyName: "zipCode5digit"
+ スペース: "o"
+ 使用不許可文字: "x"
+ 半角カタカナ: "x"
+ 地名漢字: "x"
+ 数字: "o"
+ - allowEmpty: "x"
+ interpolateKey_1: "min"
+ interpolateKey_2: "charsetDef"
+ interpolateValue_1: "7"
+ interpolateValue_2: "数字"
+ max: "7"
+ messageIdWhenNotApplicable: "{nablarch.core.validation.ee.SystemChar.message}"
+ min: "7"
+ propertyName: "zipCode7digit"
+ スペース: "x"
+ 使用不許可文字: "x"
+ 半角カタカナ: "x"
+ 地名漢字: "x"
+ 数字: "o"
+ - allowEmpty: "x"
+ interpolateKey_1: "max"
+ interpolateKey_2: "charsetDef"
+ interpolateValue_1: "10"
+ interpolateValue_2: "半角カタカナ"
+ max: "10"
+ messageIdWhenNotApplicable: "{nablarch.core.validation.ee.SystemChar.message}"
+ min: ""
+ propertyName: "prefectureKana"
+ スペース: "x"
+ 使用不許可文字: "x"
+ 半角カタカナ: "o"
+ 地名漢字: "x"
+ 数字: "x"
+ - allowEmpty: "x"
+ interpolateKey_1: "max"
+ interpolateKey_2: "charsetDef"
+ interpolateValue_1: "50"
+ interpolateValue_2: "半角カタカナ"
+ max: "50"
+ messageIdWhenNotApplicable: "{nablarch.core.validation.ee.SystemChar.message}"
+ min: ""
+ propertyName: "cityKana"
+ スペース: "x"
+ 使用不許可文字: "x"
+ 半角カタカナ: "o"
+ 地名漢字: "x"
+ 数字: "x"
+ - allowEmpty: "x"
+ interpolateKey_1: "max"
+ interpolateKey_2: ""
+ interpolateValue_1: "100"
+ interpolateValue_2: ""
+ max: "100"
+ messageIdWhenNotApplicable: ""
+ min: ""
+ propertyName: "addressKana"
+ スペース: "o"
+ 使用不許可文字: "o"
+ 半角カタカナ: "o"
+ 地名漢字: "o"
+ 数字: "o"
+ - allowEmpty: "x"
+ interpolateKey_1: "max"
+ interpolateKey_2: "charsetDef"
+ interpolateValue_1: "10"
+ interpolateValue_2: "地名漢字"
+ max: "10"
+ messageIdWhenNotApplicable: "{nablarch.core.validation.ee.SystemChar.message}"
+ min: ""
+ propertyName: "prefectureKanji"
+ スペース: "x"
+ 使用不許可文字: "x"
+ 半角カタカナ: "x"
+ 地名漢字: "o"
+ 数字: "x"
+ - allowEmpty: "x"
+ interpolateKey_1: "max"
+ interpolateKey_2: "charsetDef"
+ interpolateValue_1: "50"
+ interpolateValue_2: "地名漢字"
+ max: "50"
+ messageIdWhenNotApplicable: "{nablarch.core.validation.ee.SystemChar.message}"
+ min: ""
+ propertyName: "cityKanji"
+ スペース: "x"
+ 使用不許可文字: "x"
+ 半角カタカナ: "x"
+ 地名漢字: "o"
+ 数字: "x"
+ - allowEmpty: "x"
+ interpolateKey_1: "max"
+ interpolateKey_2: ""
+ interpolateValue_1: "100"
+ interpolateValue_2: ""
+ max: "100"
+ messageIdWhenNotApplicable: ""
+ min: ""
+ propertyName: "addressKanji"
+ スペース: "o"
+ 使用不許可文字: "o"
+ 半角カタカナ: "o"
+ 地名漢字: "o"
+ 数字: "o"
+ - allowEmpty: "x"
+ interpolateKey_1: "min"
+ interpolateKey_2: "charsetDef"
+ interpolateValue_1: "1"
+ interpolateValue_2: "数字"
+ max: "1"
+ messageIdWhenNotApplicable: "{nablarch.core.validation.ee.SystemChar.message}"
+ min: "1"
+ propertyName: "updateData"
+ スペース: "x"
+ 使用不許可文字: "x"
+ 半角カタカナ: "x"
+ 地名漢字: "x"
+ 数字: "o"
+ - allowEmpty: "x"
+ interpolateKey_1: "min"
+ interpolateKey_2: "charsetDef"
+ interpolateValue_1: "1"
+ interpolateValue_2: "数字"
+ max: "1"
+ messageIdWhenNotApplicable: "{nablarch.core.validation.ee.SystemChar.message}"
+ min: "1"
+ propertyName: "updateDataReason"
+ スペース: "x"
+ 使用不許可文字: "x"
+ 半角カタカナ: "x"
+ 地名漢字: "x"
+ 数字: "o"
diff --git a/src/test/java/com/nablarch/example/app/batch/form/ZipCodeFormTest/testSingleValidation.yaml b/src/test/java/com/nablarch/example/app/batch/form/ZipCodeFormTest/testSingleValidation.yaml
new file mode 100644
index 0000000..3ae42db
--- /dev/null
+++ b/src/test/java/com/nablarch/example/app/batch/form/ZipCodeFormTest/testSingleValidation.yaml
@@ -0,0 +1,178 @@
+list_maps:
+ - id: "singleValidation"
+ rows:
+ - input1: ""
+ interpolateKey_1: ""
+ interpolateValue_1: ""
+ messageId: "{nablarch.core.validation.ee.Required.message}"
+ propertyName: "multipleZipCodes"
+ - input1: "0"
+ interpolateKey_1: ""
+ interpolateValue_1: ""
+ messageId: ""
+ propertyName: "multipleZipCodes"
+ - input1: "1"
+ interpolateKey_1: ""
+ interpolateValue_1: ""
+ messageId: ""
+ propertyName: "multipleZipCodes"
+ - input1: "00"
+ interpolateKey_1: "min"
+ interpolateValue_1: "1"
+ messageId: "{nablarch.core.validation.ee.Length.fixed.message}"
+ propertyName: "multipleZipCodes"
+ - input1: "2"
+ interpolateKey_1: "charsetDef"
+ interpolateValue_1: "フラグ"
+ messageId: "{nablarch.core.validation.ee.SystemChar.message}"
+ propertyName: "multipleZipCodes"
+ - input1: "${スペース, 1}"
+ interpolateKey_1: "charsetDef"
+ interpolateValue_1: "フラグ"
+ messageId: "{nablarch.core.validation.ee.SystemChar.message}"
+ propertyName: "multipleZipCodes"
+ - input1: "${半角カタカナ, 1}"
+ interpolateKey_1: "charsetDef"
+ interpolateValue_1: "フラグ"
+ messageId: "{nablarch.core.validation.ee.SystemChar.message}"
+ propertyName: "multipleZipCodes"
+ - input1: "${地名漢字, 1}"
+ interpolateKey_1: "charsetDef"
+ interpolateValue_1: "フラグ"
+ messageId: "{nablarch.core.validation.ee.SystemChar.message}"
+ propertyName: "multipleZipCodes"
+ - input1: "${使用不許可文字, 1}"
+ interpolateKey_1: "charsetDef"
+ interpolateValue_1: "フラグ"
+ messageId: "{nablarch.core.validation.ee.SystemChar.message}"
+ propertyName: "multipleZipCodes"
+ - input1: "0"
+ interpolateKey_1: ""
+ interpolateValue_1: ""
+ messageId: ""
+ propertyName: "numberedEveryKoaza"
+ - input1: "1"
+ interpolateKey_1: ""
+ interpolateValue_1: ""
+ messageId: ""
+ propertyName: "numberedEveryKoaza"
+ - input1: "00"
+ interpolateKey_1: "min"
+ interpolateValue_1: "1"
+ messageId: "{nablarch.core.validation.ee.Length.fixed.message}"
+ propertyName: "numberedEveryKoaza"
+ - input1: "2"
+ interpolateKey_1: "charsetDef"
+ interpolateValue_1: "フラグ"
+ messageId: "{nablarch.core.validation.ee.SystemChar.message}"
+ propertyName: "numberedEveryKoaza"
+ - input1: "${スペース, 1}"
+ interpolateKey_1: "charsetDef"
+ interpolateValue_1: "フラグ"
+ messageId: "{nablarch.core.validation.ee.SystemChar.message}"
+ propertyName: "multipleZipCodes"
+ - input1: "${半角カタカナ, 1}"
+ interpolateKey_1: "charsetDef"
+ interpolateValue_1: "フラグ"
+ messageId: "{nablarch.core.validation.ee.SystemChar.message}"
+ propertyName: "multipleZipCodes"
+ - input1: "${地名漢字, 1}"
+ interpolateKey_1: "charsetDef"
+ interpolateValue_1: "フラグ"
+ messageId: "{nablarch.core.validation.ee.SystemChar.message}"
+ propertyName: "multipleZipCodes"
+ - input1: "${使用不許可文字, 1}"
+ interpolateKey_1: "charsetDef"
+ interpolateValue_1: "フラグ"
+ messageId: "{nablarch.core.validation.ee.SystemChar.message}"
+ propertyName: "multipleZipCodes"
+ - input1: ""
+ interpolateKey_1: ""
+ interpolateValue_1: ""
+ messageId: "{nablarch.core.validation.ee.Required.message}"
+ propertyName: "addressWithChome"
+ - input1: "0"
+ interpolateKey_1: ""
+ interpolateValue_1: ""
+ messageId: ""
+ propertyName: "addressWithChome"
+ - input1: "1"
+ interpolateKey_1: ""
+ interpolateValue_1: ""
+ messageId: ""
+ propertyName: "addressWithChome"
+ - input1: "00"
+ interpolateKey_1: "min"
+ interpolateValue_1: "1"
+ messageId: "{nablarch.core.validation.ee.Length.fixed.message}"
+ propertyName: "addressWithChome"
+ - input1: "2"
+ interpolateKey_1: "charsetDef"
+ interpolateValue_1: "フラグ"
+ messageId: "{nablarch.core.validation.ee.SystemChar.message}"
+ propertyName: "addressWithChome"
+ - input1: "${スペース, 1}"
+ interpolateKey_1: "charsetDef"
+ interpolateValue_1: "フラグ"
+ messageId: "{nablarch.core.validation.ee.SystemChar.message}"
+ propertyName: "multipleZipCodes"
+ - input1: "${半角カタカナ, 1}"
+ interpolateKey_1: "charsetDef"
+ interpolateValue_1: "フラグ"
+ messageId: "{nablarch.core.validation.ee.SystemChar.message}"
+ propertyName: "multipleZipCodes"
+ - input1: "${地名漢字, 1}"
+ interpolateKey_1: "charsetDef"
+ interpolateValue_1: "フラグ"
+ messageId: "{nablarch.core.validation.ee.SystemChar.message}"
+ propertyName: "multipleZipCodes"
+ - input1: "${使用不許可文字, 1}"
+ interpolateKey_1: "charsetDef"
+ interpolateValue_1: "フラグ"
+ messageId: "{nablarch.core.validation.ee.SystemChar.message}"
+ propertyName: "multipleZipCodes"
+ - input1: ""
+ interpolateKey_1: ""
+ interpolateValue_1: ""
+ messageId: "{nablarch.core.validation.ee.Required.message}"
+ propertyName: "multipleAddress"
+ - input1: "0"
+ interpolateKey_1: ""
+ interpolateValue_1: ""
+ messageId: ""
+ propertyName: "multipleAddress"
+ - input1: "1"
+ interpolateKey_1: ""
+ interpolateValue_1: ""
+ messageId: ""
+ propertyName: "multipleAddress"
+ - input1: "00"
+ interpolateKey_1: "min"
+ interpolateValue_1: "1"
+ messageId: "{nablarch.core.validation.ee.Length.fixed.message}"
+ propertyName: "multipleAddress"
+ - input1: "2"
+ interpolateKey_1: "charsetDef"
+ interpolateValue_1: "フラグ"
+ messageId: "{nablarch.core.validation.ee.SystemChar.message}"
+ propertyName: "multipleAddress"
+ - input1: "${スペース, 1}"
+ interpolateKey_1: "charsetDef"
+ interpolateValue_1: "フラグ"
+ messageId: "{nablarch.core.validation.ee.SystemChar.message}"
+ propertyName: "multipleZipCodes"
+ - input1: "${半角カタカナ, 1}"
+ interpolateKey_1: "charsetDef"
+ interpolateValue_1: "フラグ"
+ messageId: "{nablarch.core.validation.ee.SystemChar.message}"
+ propertyName: "multipleZipCodes"
+ - input1: "${地名漢字, 1}"
+ interpolateKey_1: "charsetDef"
+ interpolateValue_1: "フラグ"
+ messageId: "{nablarch.core.validation.ee.SystemChar.message}"
+ propertyName: "multipleZipCodes"
+ - input1: "${使用不許可文字, 1}"
+ interpolateKey_1: "charsetDef"
+ interpolateValue_1: "フラグ"
+ messageId: "{nablarch.core.validation.ee.SystemChar.message}"
+ propertyName: "multipleZipCodes"
diff --git a/src/test/resources/unit-test.xml b/src/test/resources/unit-test.xml
index c8b7a51..66ab582 100644
--- a/src/test/resources/unit-test.xml
+++ b/src/test/resources/unit-test.xml
@@ -16,6 +16,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+