(57)【要約】      （修正有）【課題】複数の検証条件を複合的に用いた検証を効率的に行うことが可能な情報処理装置及びプログラムを提供する。【解決手段】基本単位となる検証項目を定義した複数の検証ライブラリを管理する管理手段である検証ライブラリクラス２１と、前記検証ライブラリを肯定演算子又は否定演算子と組み合わせた検証アイテムを用いて、検証対象の検証を行う第１検証手段である検証アイテムクラス２３と、同一の検証対象について、検証アイテムクラス２３が検証した複数の前記検証アイテムの検証結果の組を、所定の論理演算子を用いて演算する第２検証手段である検証グループクラス２４と、検証グループクラス２４の演算結果を前記検証対象の検証結果として出力する出力手段である第２インターフェース２５とを備える。【選択図】図２
2012043197.tif 000002
【特許請求の範囲】
【請求項１】
基本単位となる検証項目を定義した複数の検証ライブラリを管理する管理手段と、
前記検証ライブラリを肯定演算子又は否定演算子と組み合わせた検証アイテムを用いて、検証対象の検証を行う第１検証手段と、
同一の検証対象について、前記第１検証手段が検証した複数の前記検証アイテムの検証結果の組を所定の論理演算子を用いて演算する第２検証手段と、
前記第２検証手段の演算結果を前記検証対象の検証結果として出力する出力手段と、
を備えたことを特徴とする情報処理装置。
【請求項２】
前記論理演算子と前記検証アイテムの組とを定義する検証グループと、当該検証アイテムを構成する前記検証ライブラリと前記肯定演算子又は前記否定演算子との組を定義する検証アイテムと、を記述した検証条件式の入力を受け付ける入力手段を更に備え、
前記第１検証手段は、前記検証アイテムで定義された前記検証ライブラリと前記肯定演算子又は前記否定演算子との各組を用いて前記検証対象の検証を行い、
前記第２検証手段は、前記第１検証手段で検証された前記検証アイテムの検証結果の組を、前記検証グループで定義された論理演算子を用いて演算することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第２検証手段は、前記検証条件式に記述された検証グループが他の検証グループを包含する場合に、当該他の検証グループの検証結果を再帰的に用いて、前記検証グループの演算を行うことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記検証条件式は、木構造で記述されていることを特徴とする請求項２又は３に記載の情報処理装置。
【請求項５】
前記出力手段が出力した検証結果に応じて、前記検証対象の正否を判定する判定手段を更に備えたことを特徴とする請求項１〜４の何れか一項に記載の情報処理装置。
【請求項６】
コンピュータを、
基本単位となる検証項目を定義した複数の検証ライブラリを管理する管理手段と、
前記検証ライブラリを肯定演算子又は否定演算子と組み合わせた検証アイテムを用いて、検証対象の検証を行う第１検証手段と、
同一の検証対象について、前記第１検証手段が検証した複数の前記検証アイテムの検証結果の組を所定の論理演算子を用いて演算する第２検証手段と、
前記第２検証手段の演算結果を前記検証対象の検証結果として出力する出力手段と、
して機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施の形態は、情報処理装置及びプログラムに関するものである。
【背景技術】
【０００２】
従来、データ入力値等の検証対象に対し、所定の検証条件を用いて検証することで、そのデータ入力値の正当性判定が行われている。また、複数の検証条件を組み合わせることで、検証対象の検証を複合的に実施しなければならない場面が存在する。この点について、Ｊ２ＥＥ（Java2  Enterprise  Edition；登録商標）のような従来の標準フレームワークでは、単一の検証条件の検証しか対応していないため、複数の検証条件を統合した一のクラスを実装することで対応していた。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかしながら、従来の技術では、複数の検証条件を複合的に用いて検証する場合に、複数の検証条件に応じた一のクラスを検証対象毎に実装する必要があるため、開発コスト及びメンテナンスコストが増大する可能性があった。
【課題を解決するための手段】
【０００４】
実施の形態の情報処理装置は、管理手段と、第１検証手段と、第２検証手段と、出力手段とを備える。管理手段は、基本単位となる検証項目を定義した複数の検証ライブラリを管理する。第１検証手段は、検証ライブラリを肯定演算子又は否定演算子と組み合わせた検証アイテムを用いて、検証対象の検証を行う。第２検証手段は、同一の検証対象について、第１検証手段が検証した複数の検証アイテムの検証結果の組を所定の論理演算子を用いて演算する。出力手段は、第２検証手段の演算結果を検証対象の検証結果として出力する。
【図面の簡単な説明】
【０００５】
【図１】図１は、実施形態に係る情報処理装置の構成を模式的に示すブロック図である。
【図２】図２は、図１に示した情報処理装置のクラス構成を示す図である。
【図３】図３は、データ検証処理の手順の一例を示すフローチャートである。
【図４】図４は、検証対象の一例を示す図である。
【図５】図５は、データ確定処理の手順を示すフローチャートである。
【発明を実施するための形態】
【０００６】
図１は、本実施形態に係る情報処理装置１００の構成を模式的に示すブロック図である。同図に示すように、情報処理装置１００は、ＣＰＵ（Central  Processing  Unit）１１と、ＲＯＭ（Read  Only  Memory）１２と、ＲＡＭ（Random  Access  Memory）１３と、記憶部１４と、操作部１５と、表示部１６とを備えている。
【０００７】
ＣＰＵ１１は、ＲＯＭ１２及び記憶部１４に記憶された所定のプログラムをＲＡＭ１３に展開して実行することで、情報処理装置１００の各部の動作を統括的に制御する。具体的に、ＣＰＵ１１は、記憶部１４に記憶された所定のプログラムを実行することで、データ検証のための後述するクラス構成（図２参照）を実現する。
【０００８】
ＲＯＭ１２は、ＣＰＵ１１が実行する所定のプログラムや設定情報を記憶している。また、ＲＡＭ１３は、情報処理装置１００の主記憶装置として機能し、ＣＰＵ１１のワークスペースとして用いられる。
【０００９】
記憶部１４は、ＨＤＤ（Hard  Disk  Drive）等の記憶装置であって、ＣＰＵ１１が実行する所定のプログラムや当該プログラムに係る各種の設定情報を記憶している。また、記憶部１４は、所定の検証対象に対する検証条件を表した検証条件式を記憶している。なお、検証条件式については後述する。
【００１０】
操作部１５は、キーボードやマウス等の入力デバイスであって、情報処理装置１００の操作者から受け付けた操作内容をＣＰＵ１１に出力する。また、表示部１６は、ＬＣＤ（Liquid  Crystal  Display）等の表示デバイスであって、ＣＰＵ１１の制御に従い文字や画像等を表示する。
【００１１】
次に、図２を参照して、情報処理装置１００のクラス構成について説明する。図２は、情報処理装置１００のデータ検証に係るクラス構成を示す図であって、ＣＰＵ１１と記憶部１４に記憶された所定のプログラムとの協働により実現されるものである。
【００１２】
図２に示すように、情報処理装置１００のクラス構成は、検証ライブラリクラス２１と、第１インタフェース２２と、検証アイテムクラス２３と、検証グループクラス２４と、第２インタフェース２５とを有している。なお、図２に示すクラス構成は、オブジェクト指向のソフトウェア開発における、プログラム設計図の統一表記法である統一モデリング言語ＵＭＬを用いて表記している。
【００１３】
検証ライブラリクラス２１は、管理手段に相当する機能部であって、基本単位となる各種の検証項目をそれぞれ定義した複数の検証ライブラリを管理する。また、検証ライブラリクラス２１、第１インタフェース２２を介して、検証ライブラリを検証アイテムクラス２３に提供する。例えば、検証対象が“ＮＵＬＬである”こと、“整数である”こと、“所定の数値範囲内にある”こと等の検証項目が検証ライブラリとして夫々定義されている。検証ライブラリには、各々を一意に識別することが可能な識別情報（例えば、ファイル名称等）が付与されており、該識別情報に基づいて読み出しが行われる。なお、検証ライブラリに定義する内容は、特に問わず、使用環境に応じて任意に設定することが可能である。
【００１４】
第１インタフェース２２は、後述する検証条件式に示された検証アイテムに基づいて、検証ライブラリクラス２１に格納された検証ライブラリを読み出し、検証アイテムクラス２３に提供するインタフェースである。
【００１５】
検証アイテムクラス２３は、第１検証手段に相当する機能部である。検証アイテムクラス２３は、論理演算子（Ａｆｆｉｒｍａｔｉｏｎ（肯定演算子）、Ｎｅｇａｔｉｏｎ（否定演算子））をサブクラス２３１として有し、この論理演算子と検証ライブラリクラス２１に格納された検証ライブラリとを組み合わせることで、検証対象に対する検証条件（以下、検証アイテムという）を生成する。
【００１６】
また、検証アイテムクラス２３は、検証グループクラス２４からの依頼に応じた検証アイテムを用いて検証対象の真偽判定を行い、その判定の結果を検証結果として検証グループクラス２４及び第２インタフェース２５に出力する。具体的に、検証アイテムクラス２３は、検証グループクラス２４から依頼される検証アイテムに基づき、該検証アイテムに定義された検証ライブラリを、検証ライブラリクラス２１から第１インタフェース２２を介して取得する。また、検証アイテムクラス２３は、取得した検証ライブラリを論理演算子と組み合わせることで、検証グループクラス２４から指示された検証アイテムを生成する。そして、検証アイテムクラス２３は、生成した検証アイテムを用いて検証対象の真偽判定を実行する。
【００１７】
例えば、検証対象が“ＮＵＬＬである”ことを定義する検証ライブラリと、Ａｆｆｉｒｍａｔｉｏｎ（肯定演算子）とを組み合わせた場合、その検証対象がＮＵＬＬの場合には“真”、ＮＵＬＬ以外の場合には“偽”と判定する。また、この検証ライブラリにＮｅｇａｔｉｏｎ（否定演算子）を組み合わせた場合、その検証対象がＮＵＬＬの場合には“偽”、ＮＵＬＬ以外の場合には“真”と判定する。
【００１８】
検証グループクラス２４は、第２検証手段に相当する機能部であって、論理演算子（ＡＮＤ（論理積）、ＮＡＮＤ（否定論理積）、ＯＲ（論理和）、ＮＯＲ（否定論理和）、ＸＯＲ（排他的論理和）、ＸＮＯＲ（排他的論理和の否定））をサブクラス２４１として有している。検証グループクラス２４は、第２インタフェース２５からの依頼に応じ、同一の検証対象について検証アイテムクラス２３が導出した検証結果の組を、サブクラス２４１の論理演算子を用いて演算する。
【００１９】
また、検証グループクラス２４は、自己の検証グループクラス２４で導出した演算結果を再帰的に入力することで、この演算結果と他の検証結果（又は演算結果）との組の論理演算を行うことが可能となっている。以下、検証グループクラス２４が論理演算の対象とする検証アイテムと、当該検証アイテムの検証結果の演算に係る論理演算子との組を「検証グループ」と表記する。
【００２０】
具体的に、検証グループクラス２４は、第２インタフェース２５から検証グループの検証依頼を受け付けると、この検証グループに含まれる検証アイテムや他の検証グループについて、検証アイテムクラス２３に検証を依頼又は自己の検証グループクラス２４で検証を行う。そして、検証グループクラス２４は、検証アイテムクラス２３での検証結果、自己の検証グループクラス２４での検証結果の組を、ルートとなる検証グループに定義された論理演算子を用いて論理演算し、第２インタフェース２５に出力する。
【００２１】
第２インタフェース２５は、入力手段及び出力手段に相当する機能部であって、ＣＰＵ１１とのインタフェースとして機能する。具体的に、第２インタフェース２５は、ＣＰＵ１１から入力される検証条件式を受け付け、この検証条件式に基づいてデータ検証処理の実行を検証グループクラス２４に依頼する。また、第２インタフェース２５は、検証グループクラス２４で導出された検証条件式の演算結果を、検証結果としてＣＰＵ１１に出力する。また、第２インタフェース２５は、検証アイテムクラス２３及び検証グループクラス２４で導出された検証結果を、検証グループクラス２４に出力する。
【００２２】
ところで、本実施形態で用いる検証条件式は、複数の検証条件（検証アイテム）を複合的に適用することを指示するためのものであり、下記式（１）に示すように、検証グループ及び検証アイテムの関係を木構造で表わしたものとなっている。ここで、検証条件式（１）は、検証条件式の一例であって、下記式（２）の論理演算式と同じ結果を要求するものである。
【００２３】
【数１】
2012043197.tif 000003
【００２４】
検証条件式（１）において、“Ｇｒｏｕｐ１（ＡＮＤ）”及び“Ｇｒｏｕｐ２（ＯＲ）”は、検証グループの処理単位をそれぞれ表すものであって、“Ｇｒｏｕｐ２（ＯＲ）”が“Ｇｒｏｕｐ１（ＡＮＤ）”に包含される入れ子構造となっている。なお、各検証グループでの論理演算は、後段の括弧内に示した論理演算子（ＡＮＤ、ＯＲ）に基づいて行われるよう定義されている。
【００２５】
また、検証条件式（１）において、“Ｉｔｅｍ１（Ａｆｆｉｒｍａｔｉｏｎ）”、“Ｉｔｅｍ２（Ｎｅｇａｔｉｏｎ）”及び“Ｉｔｅｍ３（Ａｆｆｉｒｍａｔｉｏｎ）”は、検証アイテムの処理単位をそれぞれ表すものである。ここで、“Ｉｔｅｍ１〜３”は、検証ライブラリの識別情報に対応し、各検証アイテムでの真偽判定を、この検証ライブラリ後段の括弧内に示した論理演算子（Ａｆｆｉｒｍａｔｉｏｎ、Ｎｅｇａｔｉｏｎ）に基づいて行うことが定義されている。
【００２６】
ＣＰＵ１１は、各検証対象に応じた検証条件式を記憶部１４から読み出すと、この検証条件式を図２に示したクラス構成で検証させるデータ検証処理を実行する。なお、各検証条件式は、該検証条件式を用いて検証を行う検証対象の入力項目又は出力項目と関連付けて記憶部１４に予め記憶されているものとする。
【００２７】
以下、図３を参照し、検証条件式（１）を用いた場合でのデータ検証処理の手順について説明する。図３は、データ検証処理の手順の一例を示すフローチャートである。まず、ＣＰＵ１１は、第２インタフェース２５に検証条件式を出力することで、所定の検証対象についての検証を依頼する（ステップＳ１１）。
【００２８】
第２インタフェース２５は、検証条件式の入力を受け付けると、この検証条件式を構成する木構造のルート、即ち検証グループ“Ｇｒｏｕｐ１（ＡＮＤ）”についての検証を検証グループクラス２４に開始させる（ステップＳ１２）。検証グループクラス２４は、検証グループ“Ｇｒｏｕｐ１（ＡＮＤ）”の木構造を解析すると、この検証グループ“Ｇｒｏｕｐ１（ＡＮＤ）”の要素である検証アイテム“Ｉｔｅｍ１（Ａｆｆｉｒｍａｔｉｏｎ）”についての検証（真偽判定）を、検証アイテムクラス２３に依頼する（ステップＳ１３）。
【００２９】
検証アイテムクラス２３では、第１インタフェース２２を介して検証ライブラリクラス２１から検証ライブラリ“Ｉｔｅｍ１”を読み出すと、検証対象に対する検証アイテム“Ｉｔｅｍ１（Ａｆｆｉｒｍａｔｉｏｎ）”の真偽判定を行い、この検証結果を検証グループクラス２４に出力する（ステップＳ１４）。そして、検証グループクラス２４は、検証アイテム“Ｉｔｅｍ１（Ａｆｆｉｒｍａｔｉｏｎ）”の検証結果を受け付けると、この検証結果をＲＡＭ１３に格納する（ステップＳ１５）。
【００３０】
続いて、検証グループクラス２４は、検証グループ“Ｇｒｏｕｐ１（ＡＮＤ）”の次の要素である検証グループ“Ｇｒｏｕｐ２（ＯＲ）”の検証結果の取得を開始する（ステップＳ１６）。ここで、検証グループクラス２４は、検証グループ“Ｇｒｏｕｐ２（ＯＲ）”の木構造を解析し、この検証グループの要素である検証アイテム“Ｉｔｅｍ２（Ｎｅｇａｔｉｏｎ）”についての検証を、検証アイテムクラス２３に依頼する（ステップＳ１７）。
【００３１】
検証アイテムクラス２３では、第１インタフェース２２を介して検証ライブラリクラス２１から検証ライブラリ“Ｉｔｅｍ２”を読み出すと、検証対象に対する検証アイテム“Ｉｔｅｍ２（Ｎｅｇａｔｉｏｎ）”の真偽判定を行い、この検証結果を検証グループクラス２４に出力する（ステップＳ１８）。そして、検証グループクラス２４は、検証アイテム“Ｉｔｅｍ２（Ｎｅｇａｔｉｏｎ）”の検証結果を受け付けると、この検証結果をＲＡＭ１３に格納する（ステップＳ１９）。
【００３２】
また、検証グループクラス２４は、検証グループ“Ｇｒｏｕｐ２（ＯＲ）”の他の要素である“Ｉｔｅｍ３（Ａｆｆｉｒｍａｔｉｏｎ）”の検証（真偽判定）を、検証アイテムクラス２３に依頼する（ステップＳ２０）。
【００３３】
検証アイテムクラス２３では、第１インタフェース２２を介して検証ライブラリクラス２１から検証ライブラリ“Ｉｔｅｍ３”を読み出すと、検証対象に対する検証アイテム“Ｉｔｅｍ３（Ａｆｆｉｒｍａｔｉｏｎ）”の真偽判定を行い、この検証結果を検証グループクラス２４に出力する（ステップＳ２１）。そして、検証グループクラス２４は、検証アイテム“Ｉｔｅｍ３（Ａｆｆｉｒｍａｔｉｏｎ）”の検証結果を受け付けると、この検証結果をＲＡＭ１３に格納する（ステップＳ２２）。
【００３４】
次いで、検証グループクラス２４は、ＲＡＭ１３に格納した検証アイテム“Ｉｔｅｍ２（Ｎｅｇａｔｉｏｎ）”および検証アイテム“Ｉｔｅｍ３（Ａｆｆｉｒｍａｔｉｏｎ）”の検証結果の論理和を演算することで、検証グループ“Ｇｒｏｕｐ２（ＯＲ）”の演算結果を導出する（ステップＳ２３）。そして、検証グループクラス２４は、この演算結果をＲＡＭ１３に格納する（ステップＳ２４）。
【００３５】
続いて、検証グループクラス２４は、ＲＡＭ１３に格納した検証アイテム“Ｉｔｅｍ１（Ａｆｆｉｒｍａｔｉｏｎ）”の検証結果と、検証グループ“Ｇｒｏｕｐ２（ＯＲ）”の演算結果との論理積を演算することで、検証グループ“Ｇｒｏｕｐ１（ＡＮＤ）”の演算結果を導出する（ステップＳ２５）。そして、第２インタフェース２５は、ステップＳ２５で導出された演算結果を、検証対象の検証結果としてＣＰＵ１１に出力する（ステップＳ２６）。
【００３６】
このように、情報処理装置１００のクラス構成では、検証グループに定義された論理演算子を用いて、この検証グループに含まれる検証ライブラリ及び／又は検証グループの検証結果の論理演算を行う。これにより、検証対象に対し複合的な検証条件を容易に実行することが可能となる。また、検証条件式では、検証グループと検証アイテムとの関係を木構造で表わしているため、複数の検証条件の組み合わせからなる複合的な検証条件の作成を、容易に行うことが可能である。
【００３７】
次に、図４及び図５を参照し、所定の入力項目に入力されるデータ（データ入力値）を検証対象とした例について説明する。
【００３８】
図４は、上述したクラス構成による検証対象の一例を示す図であって、ＣＰＵ１１の制御により表示部１６に表示される画面を表している。同図において、入力項目Ａ１は氏名を入力するための領域であり、操作部１５を介して文字列を入力することが可能に構成されている。また、入力項目Ａ２は年齢を入力するための領域であり、操作部１５を介して文字列を入力することが可能に構成されている。また、ボタンＢ１は、入力項目Ａ１及び入力項目Ａ２に入力されたデータ入力値の確定を指示するためのボタンである。なお、ここでは、入力項目Ａ１の入力が必須とされているものとする。
【００３９】
また、図４の例において、検証ライブラリクラス２１に格納された検証ライブラリＩｔｅｍ１１〜Ｉｔｅｍ１４が、以下のように規定されているものとする。
Ｉｔｅｍ１１＝データ入力値がＮｕｌｌであること
Ｉｔｅｍ１２＝データ入力値が数値であること
Ｉｔｅｍ１３＝データ入力値が２バイト文字であること
Ｉｔｅｍ１４＝データ入力値の数値範囲が０〜１００であること
【００４０】
また、図４の例において、入力項目Ａ１と関連付けて下記の検証条件式（３）が記憶部１４に記憶されているものとし、入力項目Ａ２と関連付けて下記の検証条件式（４）が記憶部１４に記憶されているものとする。
【００４１】
【数２】
2012043197.tif 000004
【００４２】
ＣＰＵ１１は、図４のボタンＢ１の押下を受け付けると、図５に示すデータ確定処理を実行することで、入力項目Ａ１及びＡ２の各データ入力値に対し、検証条件式（３）及び（４）によりデータ検証処理をそれぞれ実行する。以下、図５を参照し、データ確定処理について説明する。
【００４３】
まず、ＣＰＵ１１は、検証対象（入力項目）の一つを選択する（ステップＳ３１）。ここで、入力項目Ａ１が選択されたとすると、ＣＰＵ１１は、続くステップＳ３２において、この入力項目Ａ１に関連付けられた検証条件式（３）を記憶部１４から読み出す（ステップＳ３２）。次いで、ＣＰＵ１１は、ステップＳ３２で読み出した検証条件式（３）の検証を検証グループクラス２４の依頼することで、この入力項目Ａ１のデータ入力値に対するデータ検証処理を実行する（ステップＳ３３）。
【００４４】
ＣＰＵ１１から検証条件式（３）を受け付けた検証グループクラス２４では、入力項目Ａ１のデータ入力値に対する該検証条件式（３）の検証結果を、上述した手順と同様に導出する。具体的に、検証アイテムクラス２３は、検証アイテム“Ｉｔｅｍ１１（Ｎｅｇａｔｉｏｎ）”について、入力項目Ａ１のデータ入力値がＮｕｌｌでない場合には“真”、Ｎｕｌｌの場合には“偽”と判定する。また、検証アイテムクラス２３は、検証アイテム“Ｉｔｅｍ１２（Ｎｅｇａｔｉｏｎ）”について、入力項目Ａ１のデータ入力値が数値でない場合には“真”、数値の場合には“偽”と判定する。さらに、検証アイテムクラス２３は、検証アイテム“Ｉｔｅｍ１３（Ａｆｆｉｒｍａｔｉｏｎ）”について、入力項目Ａ１のデータ入力値が２バイト文字の場合には“真”、１バイト文字の場合には“偽”と判定する。
【００４５】
そのため、検証グループクラス２４は、入力項目Ａ１のデータ入力値が、Ｎｕｌｌの場合、数値を含む場合、又は、１バイト文字を含む場合、検証グループ（Ｇｒｏｕｐ１１（ＡＮＤ））の検証結果（論理演算結果）として“偽”を導出する。また、入力項目Ａ１の入力値が、Ｎｕｌｌでなく、数値を含まず、且つ、２バイト文字である場合、検証グループ（Ｇｒｏｕｐ１１（ＡＮＤ））の検証結果として“真”を導出する。つまり、入力項目Ａ１の入力値は、二バイト文字で且つ数字以外の文字列の場合にのみ“真”となる。
【００４６】
ＣＰＵ１１は、ステップＳ３３のデータ検証処理が完了すると、未処理の検証対象が存在するか否かを判定する（ステップＳ３４）。未処理の検証対象が存在すると判定した場合（ステップＳ３４；Ｙｅｓ）、ＣＰＵ１１はステップＳ３１に再び戻り、未処理の検証対象を一つ選択する（ステップＳ３１）。
【００４７】
ここで、入力項目Ａ２が選択されたとすると、ＣＰＵ１１は、続くステップＳ３２において、入力項目Ａ２に関連付けられた検証条件式（４）を記憶部１４から読み出す（ステップＳ３２）。次いで、ＣＰＵ１１は、ステップＳ３２で読み出した検証条件式（４）の検証を検証グループクラス２４の依頼することで、入力項目Ａ２のデータ入力値に対するデータ検証処理を実行する（ステップＳ３３）。
【００４８】
ＣＰＵ１１から検証条件式（４）を受け付けた検証グループクラス２４では、入力項目Ａ２のデータ入力値に対する該検証条件式（４）の検証結果を、上述した手順と同様に導出する。具体的に、検証アイテムクラス２３は、検証アイテム“Ｉｔｅｍ１１（Ａｆｆｉｒｍａｔｉｏｎ）”について、入力項目Ａ２のデータ入力値がＮｕｌｌの場合に“真”、Ｎｕｌｌでない場合に“偽”と判定する。
【００４９】
また、検証アイテムクラス２３は、検証グループ“Ｇｒｏｕｐ２２（ＡＮＤ）”に所属する検証アイテム“Ｉｔｅｍ１２（Ａｆｆｉｒｍａｔｉｏｎ）”について、入力項目Ａ２のデータ入力値が数値の場合には“真”、数値でない場合には“偽”と判定する。また、検証アイテム“Ｉｔｅｍ１３（Ｎｅｇａｔｉｏｎ）”について、入力項目Ａ２のデータ入力値が１バイト文字の場合には“真”、２バイト文字の場合には“偽”と判定する。さらに、検証アイテム“Ｉｔｅｍ１４（Ａｆｆｉｒｍａｔｉｏｎ）”について、入力項目Ａ２のデータ入力値が、０〜１００の数値範囲に含まれる場合には“真”、０〜１００の数値範囲を逸脱する場合には“偽”と判定する。
【００５０】
検証グループクラス２４は、検証グループ（Ｇｒｏｕｐ２２（ＡＮＤ））について上記の検証結果に基づき、入力項目Ａ２のデータ入力値が、数値以外の文字列を含む場合、２バイト文字の場合、又は、０〜１００の数値範囲を逸脱する場合に、その検証結果として“偽”を導出する。また、検証グループ“Ｇｒｏｕｐ２２（ＡＮＤ）”について、入力項目Ａ２のデータ入力値が、数値であり、１バイト文字であり、且つ、０〜１００の数値範囲に含まれる場合に、その検証結果として“真”を導出する。
【００５１】
そして、検証グループクラス２４は、木構造のルートとなる検証グループ“Ｇｒｏｕｐ２１（ＯＲ）”について、検証アイテム“Ｉｔｅｍ１１（Ａｆｆｉｒｍａｔｉｏｎ）”及び検証グループ“Ｇｒｏｕｐ２２（ＡＮＤ）”の検証結果の組が“真−真”、“真−偽”又は“偽−真”の場合に“真”を、“偽−偽”の場合に“偽”を導出する。つまり、入力項目Ａ２の入力値は、空欄（Ｎｕｌｌ）又は０〜１００の数値のみ“真”となる。
【００５２】
ＣＰＵ１１は、ステップＳ３３のデータ検証処理が完了すると、ステップＳ３４において、未処理の検証対象が存在するか否かを判定する。ここで、未処理の検証対象が存在しないと判定した場合（ステップＳ３４；Ｎｏ）、ステップＳ３５に移行する。
【００５３】
続くステップＳ３５において、ＣＰＵ１１は、これまでのデータ検証処理の検証結果が全て“真”であったか否かを判定する（ステップＳ３５）。ここで、全て“真”と判定した場合（ステップＳ３５；Ｙｅｓ）、ＣＰＵ１１は、入力項目Ａ１及びＡ２のデータ入力値を正常に受け付けた旨のメッセージを表示部１６に表示し（ステップＳ３６）、本処理を終了する。また、ステップＳ３５において、検証結果が“偽”のものが存在したと判定すると（ステップＳ３５；Ｎｏ）、ＣＰＵ１１は、検証結果が“偽”となった入力項目のセータ入力値に誤りがある旨のメッセージを表示部１６に表示し（ステップＳ３７）、本処理を終了する。
【００５４】
なお、図５の処理では、最終的な検証結果が“真”の場合を正常動作として処理を進める形態としたが、これに限らず、最終的な検証結果が“偽”の場合を正常動作とする形態としてもよい。
【００５５】
以上のように、情報処理装置１００によれば、複数の検証対象に対する検証条件（検証アイテム）を共通の検証ライブラリを用いて生成し、これら検証アイテムの検証結果の組を検証グループクラス２４の論理演算子を用いて演算する。これにより、検証条件を組み合わせた複合的な検証を効率的に行うことができるため、開発コストやメンテナンスコストに係る負荷を軽減することが可能となる。
【００５６】
以上、本発明の実施形態について説明したが、本発明はこれに限定されるものではなく、本発明の主旨を逸脱しない範囲での種々の変更、置換、追加等が可能である。
【００５７】
例えば、上記実施形態では、所定の入力項目に入力されるデータ入力値を検証対象としたが、検証対象はこの例に限らないものとする。
【００５８】
また、上記実施形態では、情報処理装置１００で実行されるプログラムを記憶部１４に予め組み込んで提供する形態としたが、これに限らず、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Digital  Versatile  Disc）等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。さらに、記録媒体は、コンピュータ或いは組み込みシステムと独立した媒体に限らず、ＬＡＮやインターネット等により伝達されたプログラムをダウンロードして記憶又は一時記憶した記録媒体も含まれる。
【００５９】
また、情報処理装置１００で実行されるプログラムをインターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよく、インターネット等のネットワーク経由で提供又は配布するように構成してもよい。
【符号の説明】
【００６０】
１００  情報処理装置
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
１４  記憶部
１５  操作部
１６  表示部
２１  検証ライブラリクラス
２２  第１インタフェース
２３  検証アイテムクラス
２４  検証グループクラス
２５  第２インタフェース
【先行技術文献】
【特許文献】
【００６１】
【特許文献１】特開２００９−２６５９９６号
【図１】
2012043197.tif 000005
【図２】
2012043197.tif 000006
【図３】
2012043197.tif 000007
【図４】
2012043197.tif 000008
【図５】
2012043197.tif 000009