(57)【要約】【課題】制御システム用のアプリケーションデータ（ＸＭＬ文書）が正しいことをコンピュータで検証するための検証手順データ（ＸＳＬＴスクリプト）を容易に生成できる検証データ生成装置を提供する。【解決手段】アプリケーションデータを記述したＸＭＬ文書５０に含まれる各データ要素の仕様を、各データ要素が他のデータ要素との関連で満たすべき条件または該条件の検証手順を人が記述や理解のし易い言語で記述したデータ仕様記述文書３０を作成する。検証データ生成装置１０は、データ仕様記述文書３０を元にして、対象のＸＭＬ文書５０に含まれる各データ要素がこのデータ仕様記述文書３０に記述された条件を満たすか否かをコンピュータで検証するための検証手順データ（ＸＳＬＴスクリプト）４０を生成する。【選択図】図１
2010152905.tif 000002
【特許請求の範囲】
【請求項１】
相互に関連する複数のデータ要素を含むデータベースに属する前記データ要素の仕様を、そのデータ要素が他のデータ要素との関連で満たすべき条件または該条件の検証手順によって記述したことを特徴とするデータ仕様記述文書。
【請求項２】
相互に関連する複数のデータ要素を含むデータベースに属する前記データ要素の仕様を、そのデータ要素が他のデータ要素との関連で満たすべき条件または該条件の検証手順によって記述することを特徴とするデータ仕様の記述方法。
【請求項３】
相互に関連する複数のデータ要素を含むデータベースに属する前記データ要素の仕様をそのデータ要素が他のデータ要素との関連で満たすべき条件または該条件の検証手順によって記述したデータ仕様記述文書を元にして、前記データベースに属するデータ要素が前記データ仕様記述文書に記述された条件を満たすか否かをコンピュータで検証するための検証手順データを生成する
ことを特徴とする検証データ生成装置。
【請求項４】
前記データ仕様記述文書の作成を支援する作成支援部をさらに有し、
前記作成支援部は、前記データベースの構造図を表示すると共に、この構造図上でのデータ要素の指定と前記データ仕様記述文書内での埋め込み位置の指定とを受け付けると、前記指定されたデータ要素を前記データベース内で特定する情報を前記データ仕様記述文書の前記指定された埋め込み位置に記述する
ことを特徴とする請求項３に記載の検証データ生成装置。
【請求項５】
前記データベースは、ＸＭＬ文書で作成されたデータファイルで構成され、
前記検証手順データは、ＸＳＬＴスクリプトである
ことを特徴とする請求項３または４に記載の検証データ生成装置。
【請求項６】
前記データベースは、鉄道信号システムの制御用データであり、
前記データ要素は、前記鉄道信号システムを構成する設備毎の諸情報を示す
ことを特徴とする請求項３、４または５に記載の検証データ生成装置。
【請求項７】
相互に関連する複数のデータ要素を含むデータベースに属する前記データ要素の仕様をそのデータ要素が他のデータ要素との関連で満たすべき条件または該条件の検証手順によって記述したデータ仕様記述文書を元にして、前記データベースに属するデータ要素が前記データ仕様記述文書に記述された条件を満たすか否かをコンピュータが検証するための検証手順データを生成する機能を、コンピュータに実行させるための検証データ生成プログラム。
【請求項８】
前記データベースの構造図を表示すると共にこの構造図上でのデータ要素の指定と、該データ要素の前記データ仕様記述文書内での埋め込み位置の指定とを受け付け、前記指定されたデータ要素を前記データベース内で特定する情報を取得し、これを前記データ仕様記述文書の前記指定された埋め込み位置に記述する機能を、コンピュータに実行させるためのプログラムをさらに含む
ことを特徴とする請求項７に記載の検証データ生成プログラム。
【請求項９】
前記データベースは、ＸＭＬ文書で作成されたデータファイルで構成され、
前記検証手順データは、ＸＳＬＴスクリプトである
ことを特徴とする請求項７または８に記載の検証データ生成プログラム。
【請求項１０】
前記データベースは、鉄道信号システムの制御用データであり、
前記データ要素は、前記鉄道信号システムを構成する設備毎の諸情報を示す
ことを特徴とする請求項７、８または９に記載の検証データ生成プログラム。
【請求項１１】
相互に関連する複数のデータ要素を含むデータベースに属する前記データ要素の仕様をそのデータ要素が他のデータ要素との関連で満たすべき条件または該条件の検証手順によって記述したデータ仕様記述文書を作成するステップと、
前記データ仕様記述文書を元にして、前記データベースに属するデータ要素が前記データ仕様記述文書に記述された条件を満たすか否かをコンピュータが検証するための検証手順データを生成するステップと
を有する
ことを特徴とする検証データ生成方法。
【請求項１２】
前記データ仕様記述文書を作成するステップにおいて、前記データベースの構造図を表示すると共にこの構造図上でのデータ要素の指定と、該データ要素の前記データ仕様記述文書内での埋め込み位置の指定とを受け付け、前記指定されたデータ要素を前記データベース内で特定する情報を取得し、これを前記データ仕様記述文書の前記指定された埋め込み位置に記述する
ことを特徴とする請求項１１に記載の検証データ生成方法。
【請求項１３】
前記データベースは、ＸＭＬ文書で作成されたデータファイルで構成され、
前記検証手順データは、ＸＳＬＴスクリプトである
ことを特徴とする請求項１１または１２に記載の検証データ生成方法。
【請求項１４】
前記データベースは、鉄道信号システムの制御用データであり、
前記データ要素は、前記鉄道信号システムを構成する設備毎の諸情報を示す
ことを特徴とする請求項１１、１２または１３に記載の検証データ生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースに属する各データ要素に誤りがないことを検証するための技術に関する。
【背景技術】
【０００２】
近年、鉄道信号システムなどの安全性・信頼性が強く要求されるシステムにおいてもコンピュータ制御が多く導入されている。このような制御システムのソフトウェアは、一般に、ＣＰＵが実行する処理手順を表したプログラムと、該プログラムに基づく処理内容を個別の環境に適用させるためのアプリケーションデータとから構成される。
【０００３】
したがって、プログラムに誤りなきことが検証された後は、システムが正常に動作するか否かはアプリケーションデータが正しいか否かに依存する。アプリケーションデータは、異なるシステムで共通利用可能なプログラムとは異なり、システム毎の個別対応を要するので、システムの大型化・複雑化に伴ってアプリケーションデータを効率よく検証する技術が重要になっている。
【０００４】
そこで、アプリケーションデータをＸＭＬ（eXtensible Markup Language）文書で記述し、ＸＭＬスキーマやＸパス（Xml path Language）、ＸＳＬＴ（Xml Stylesheet Language Transformations）を利用して、アプリケーションデータをコンピュータ処理によって検証する技術が提案されている（たとえば、特許文献１参照。）。
【０００５】
ここで、ＸＭＬは、「タグ」と呼ばれる特定の文字列でテキストの前後を囲むことで、そのタグで囲われたテキストに特定の意味を付与したり、文書を構造化したりできるマークアップ言語の１つであり、特に、独自の意味内容をもつタグをユーザが設定できることから「メタ言語」とも言われている。ＸＭＬスキーマは、ＸＭＬ文書で用いるタグの構造やデータの型を規定した文書であり、ＸＭＬはＸＭＬスキーマと組み合わされて独自のマークアップ言語として機能する。ＸパスはＸＭＬ文書内の特定部分を位置指定してアクセスする手段を提供する。ＸＳＬＴは、ＸＭＬ文書の構造を別の形式に変換するためのルールを記述するスクリプト言語である。
【０００６】
ＸＭＬ文書をアプリケーションデータの記述に使用する利用は多くある。まず、アプリケーションデータを構成している各データ要素が分かり易く分類・整理されていることが検証の信頼性・容易性にも繋がるので、データ要素相互の関係を木構造で階層的に表現できるＸＭＬ文書はアプリケーションデータの記述に適している。
【０００７】
特に、鉄道信号システムの制御対象は、たとえば、電子連動システムの場合、転てつ器や信号機、軌道回路などの設備であり、これらは地上に配置されて位置関係が固定的に定まっている。このため各設備をデータ要素の単位としてアプリケーションデータを作成する場合には、各データ要素（設備）の位置関係を木構造で表現できるＸＭＬ文書が適している。
【０００８】
また、一般の文書を表現する場合と異なり、制御システムのアプリケーションデータを記述するには、該システムに対する独自の仕様を表現する必要があるので、ＸＭＬスキーマとの組み合わせによりタグの構造を任意に規定できるＸＭＬは好適である。
【０００９】
さらに、ＸＭＬスキーマに記述されたデータ構造やデータ型などがＸＭＬ文書中で誤りなく使用されているか否かの検証を行なうプロセッサ（ＸＭＬプロセッサ、あるいはＸＭＬパーサという。）や、ＸＳＬＴスクリプトに従ってＸＭＬ文書を変換するプロセッサ（ＸＳＬＴプロセッサという。）が汎用品として用意されており、独自に開発する必要がないという利点もある。
【００１０】
図８は、このような利点を有するＸＭＬ文書で記述された鉄道信号システム用のアプリケーションデータの一例である。同図に示すように、テキスト形式で記述されたデータを開始タグ（“<”，“要素名”，“>”の順で記述）と終了タグ（“</”，“要素名”，“>”の順で記述）で囲み、そのタグ内に記述した「要素名」によって「データの意味」を与えつつ、タグの囲み方によってデータを構造化している。この構造化により、親子兄弟の関係（入れ子関係）を表したツリー構造（木構造）のデータ表現を可能としている。なお図中の破線は、開始タグと終了タグの対応関係の一例を示している。
【００１１】
図９は、ＸＭＬ文書で記述されたアプリケーションデータの検証システム３００を示している。未検証データベース３０１には、ＸＭＬ文書で記述された未検証のアプリケーションデータが保存されている。このＸＭＬ文書に対してＸＭＬプロセッサ３０２でＸＭＬスキーマ３０３に基づく検証を実行することで、データ構造やデータ型など構文（シンタックス）レベルの検証が行なわれる。
【００１２】
ＸＭＬスキーマ３０３によるデータ検証は、上記のように構文レベルの検証に留まり、データの意味内容に係わる検証まで期待できない。そこで、ＸＭＬスキーマ３０３による検証をパスしたデータ（検証済みデータベース３０４内の妥当なＸＭＬ文書５０）に対してＸＳＬＴを用いた第２のデータ検証が行なわれる。ＸＳＬＴスクリプトは、通常、ＸＭＬ文書の構造の変換に利用されるが、繰り返し動作を制御するアルゴリズム機能や真偽を判定する機能、演算実行機能などを備えているので、Ｘパスによる文書の一部を特定する機能と組み合わせることで、ＸＭＬスキーマでは実現できない複雑な検証処理ができ、ＸＳＬＴスクリプトの内容次第ではアプリケーションデータの意味内容に係わる検証が可能になる。すなわち、ＸＳＬＴスクリプトは、データ内容を検証するためにコンピュータが実行すべき作業手順を表した検証手順データとして機能する。
【００１３】
たとえば、ＸＭＬ文書に記述するアプリケーションデータは、図８に示すように、軌道回路の場合、「軌道回路名」（たとえば、図８の行ａ）、自軌道の「軌道回路長」（たとえば、行ｂ）、「前方隣接軌道回路名」（たとえば、図８の行ｃ）、「前方境界キロ程」（たとえば、図８の行ｄ）、「後方隣接軌道回路名」（たとえば、図８の行ｅ）、「後方境界キロ程」（たとえば、図８の行ｆ）などで構成される。また木構造で表現されることから自軌道の前方や後方にどの軌道回路が存在するかもＸＭＬ文書に記述されている。そこで、「前方境界キロ程」と「後方境界キロ程」との差が自軌道の「軌道回路長」と一致するか否かや、自軌道に登録された「前方境界キロ程」が自軌道の前方に隣接する軌道回路の「後方境界キロ程」に一致するか否かなどをＸＳＬＴで検証すれば、データ内容の検証が可能になる。
【００１４】
図６は、上記のような検証を行なうためのＸＳＬＴスクリプト（検証用ＸＳＬＴスクリプト）４０の一例である。このＸＳＬＴスクリプト４０は、「各軌道回路の転てつ開通方向別ごとに、自軌道に登録された‘前方境界キロ程’の値が、後方隣接軌道として自軌道が登録されている軌道（前方隣接軌道）に登録されている‘後方境界キロ程’の値と一致していることを検証し、一致する場合は‘ＯＫ’という文字列を、不一致の場合は‘ＮＧ’という文字列を、それぞれ検証処理結果出力用のＸＭＬ文書中に出力する」という検証手順を記述している。
【００１５】
このような検証用ＸＳＬＴスクリプト４０による検証処理を、ＸＭＬスキーマ３０３によるデータ検証をパスした妥当なＸＭＬ文書５０に対してＸＳＬＴプロセッサ３０５で実行すると、検証結果を「ＯＫ」、「ＮＧ」で表したＸＭＬ文書３０６が出力される。該検証結果のＸＭＬ文書３０６を「検証結果は‘ＯＫ’である」と定義した第２のＸＭＬスキーマ３０７で構文チェックすることにより、ＸＳＬＴによる検証結果がすべて「ＯＫ」の場合にだけ、検証結果のＸＭＬ文書が妥当な文書であると判定される。この判定によりアプリケーションデータ５０の内容が正常であることを確認できるので、検証作業がほぼ自動化される。
【先行技術文献】
【特許文献】
【００１６】
【特許文献１】特開２００４−３３４２５３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１７】
図６に示すように、検証用ＸＳＬＴスクリプト（検証手順データ）４０は、どの要素を対象に検証を実行するのかを「for-each select」で指定し、どのデータを検証するのかを「if test」で指定することで全体の骨組みが出来上がる。しかし、骨組み以外の部分、つまりＸＳＬＴの言語仕様に従うための記述部分なども多くある。このため、検証用ＸＳＬＴスクリプトの作成作業が煩雑になると共に、作成した検証用ＸＳＬＴスクリプト自体の検証性も良くない。
【００１８】
また、一般に、制御システムのアプリケーションデータを構成している各データ要素の仕様は、データ要素毎の単独仕様として規定されるので、データ要素相互間の整合性を検証するためには、そのデータの性質を熟知した者が検証用のアルゴリズムを別途案出しなければならず、この検証用アルゴリズムの良し悪しにデータ検証の信頼性が左右されていた。
【００１９】
本発明は、上記の問題を解決しようとするものであり、制御システムのアプリケーションデータが正しいことをコンピュータで検証するための検証手順データを容易に生成することのできる検証データ生成装置および検証データ生成プログラム、検証データ生成方法を提供することを目的としている。
【００２０】
また、データ要素相互間の整合性を含めてデータ要素の仕様を厳密に表現することのできるデータ仕様記述文書およびデータ仕様の記述方法を提供することを目的としている。
【課題を解決するための手段】
【００２１】
上記の目的は以下の各項に示す発明により達成される。
【００２２】
（１）相互に関連する複数のデータ要素を含むデータベースに属する前記データ要素の仕様を、そのデータ要素が他のデータ要素との関連で満たすべき条件または該条件の検証手順によって記述したことを特徴とするデータ仕様記述文書。
【００２３】
（２）相互に関連する複数のデータ要素を含むデータベースに属する前記データ要素の仕様を、そのデータ要素が他のデータ要素との関連で満たすべき条件または該条件の検証手順によって記述することを特徴とするデータ仕様の記述方法。
【００２４】
上記（１）、（２）に記載の発明によれば、あるデータ要素が他のデータ要素との間で満足すべき条件または該条件の検証手順をそのデータ要素の仕様として記述するので、データ要素相互間の整合性を含めた厳密な意味でデータ要素の仕様が規定される。したがって、データ仕様記述文書に記述された条件を満たすか否かを検証すれば、データ要素相互間の整合性を含めた厳密な意味でのデータ検証が可能となり、データ仕様記述文書に基づいて一律かつ適切なデータ検証が可能になる。データ仕様記述文書は、人が理解し易い書式であることが好ましい。データ仕様記述文書は、コンピュータ上では、たとえば、文書ファイルやデータファイルとして作成される。
【００２５】
（３）相互に関連する複数のデータ要素を含むデータベースに属する前記データ要素の仕様をそのデータ要素が他のデータ要素との関連で満たすべき条件または該条件の検証手順によって記述したデータ仕様記述文書を元にして、前記データベースに属するデータ要素が前記データ仕様記述文書に記述された条件を満たすか否かをコンピュータで検証するための検証手順データを生成する
ことを特徴とする検証データ生成装置。
【００２６】
上記発明によれば、データベースに属する各データ要素がデータ仕様記述文書に記述された条件を満たすか否かをコンピュータで検証するための検証手順データが前記データ仕様記述文書を元にして生成される。データ仕様記述文書を検証手順データに比べて人が記述や理解のし易い書式にしておけば、記述の容易なデータ仕様記述文書からコンピュータが理解する検証手順データを生成することができる。また、検証手順データ自体の検証をデータ仕様記述文書の段階で行なうことができる。
【００２７】
（４）前記データ仕様記述文書の作成を支援する作成支援部をさらに有し、
前記作成支援部は、前記データベースの構造図を表示すると共に、この構造図上でのデータ要素の指定と前記データ仕様記述文書内での埋め込み位置の指定とを受け付けると、前記指定されたデータ要素を前記データベース内で特定する情報を前記データ仕様記述文書の前記指定された埋め込み位置に記述する
ことを特徴とする（３）に記載の検証データ生成装置。
【００２８】
上記発明によれば、データベースの構造図が表示され、該構造図上でデータ要素を指定し、かつデータ仕様記述文書内の埋め込み位置を指定するだけで、該データ要素をデータベース内で特定する情報（たとえば、パス情報）が先の埋め込み位置に記述される。
【００２９】
（５）前記データベースは、ＸＭＬ文書で作成されたデータファイルで構成され、
前記検証手順データは、ＸＳＬＴスクリプトである
ことを特徴とする（３）または（４）に記載の検証データ生成装置。
【００３０】
上記発明では、データベースは、データ要素を記述したＸＭＬ文書ファイルで構成され、このＸＭＬ文書中の各データ要素がデータ仕様記述文書に記述された条件を満たすか否かをコンピュータが検証するための手順を記述した検証手順データはＸＳＬＴスクリプトとして作成される。すなわち、データ仕様記述文書は、ＸＳＬＴスクリプトを簡易に記述するための言語（高水準言語）で記載された文書である。検証データ生成装置が作成したこのＸＳＬＴスクリプトに従ってＸＭＬ文書をＸＳＬＴプロセッサで処理することで、データ仕様記述文書に記述された仕様をＸＭＬ文書内の各データ要素が満たしているか否かが検証される。
【００３１】
（６）前記データベースは、鉄道信号システムの制御用データであり、
前記データ要素は、前記鉄道信号システムを構成する設備毎の諸情報を示す
ことを特徴とする（３）、（４）または（５）に記載の検証データ生成装置。
【００３２】
上記発明において、鉄道信号システムは、駅構内などに配置された転てつ器、信号機などを制御して進路の安全を確保する電子連動装置のほか、ＡＴＣ（Automatic Train Control）装置やＡＴＳ（Automatic Train Stop）装置など列車保安制御、運行管理制御に関連するものも含まれる。データ要素は、たとえば、軌道回路、転てつ器、信号機、踏切などが該当する。
【００３３】
（７）相互に関連する複数のデータ要素を含むデータベースに属する前記データ要素の仕様をそのデータ要素が他のデータ要素との関連で満たすべき条件または該条件の検証手順によって記述したデータ仕様記述文書を元にして、前記データベースに属するデータ要素が前記データ仕様記述文書に記述された条件を満たすか否かをコンピュータが検証するための検証手順データを生成する機能を、コンピュータに実行させるための検証データ生成プログラム。
【００３４】
（８）前記データベースの構造図を表示すると共にこの構造図上でのデータ要素の指定と、該データ要素の前記データ仕様記述文書内での埋め込み位置の指定とを受け付け、前記指定されたデータ要素を前記データベース内で特定する情報を取得し、これを前記データ仕様記述文書の前記指定された埋め込み位置に記述する機能を、コンピュータに実行させるためのプログラムをさらに含む
ことを特徴とする（７）に記載の検証データ生成プログラム。
【００３５】
（９）前記データベースは、ＸＭＬ文書で作成されたデータファイルで構成され、
前記検証手順データは、ＸＳＬＴスクリプトである
ことを特徴とする（７）または（８）に記載の検証データ生成プログラム。
【００３６】
（１０）前記データベースは、鉄道信号システムの制御用データであり、
前記データ要素は、前記鉄道信号システムを構成する設備毎の諸情報を示す
ことを特徴とする（７）、（８）または（９）に記載の検証データ生成プログラム。
【００３７】
（１１）相互に関連する複数のデータ要素を含むデータベースに属する前記データ要素の仕様をそのデータ要素が他のデータ要素との関連で満たすべき条件または該条件の検証手順によって記述したデータ仕様記述文書を作成するステップと、
前記データ仕様記述文書を元にして、前記データベースに属するデータ要素が前記データ仕様記述文書に記述された条件を満たすか否かをコンピュータが検証するための検証手順データを生成するステップと
を有する
ことを特徴とする検証データ生成方法。
【００３８】
（１２）前記データ仕様記述文書を作成するステップにおいて、前記データベースの構造図を表示すると共にこの構造図上でのデータ要素の指定と、該データ要素の前記データ仕様記述文書内での埋め込み位置の指定とを受け付け、前記指定されたデータ要素を前記データベース内で特定する情報を取得し、これを前記データ仕様記述文書の前記指定された埋め込み位置に記述する
ことを特徴とする（１１）に記載の検証データ生成方法。
【００３９】
（１３）前記データベースは、ＸＭＬ文書で作成されたデータファイルで構成され、
前記検証手順データは、ＸＳＬＴスクリプトである
ことを特徴とする（１１）または（１２）に記載の検証データ生成方法。
【００４０】
（１４）前記データベースは、鉄道信号システムの制御用データであり、
前記データ要素は、前記鉄道信号システムを構成する設備毎の諸情報を示す
ことを特徴とする（１１）、（１２）または（１３）に記載の検証データ生成方法。
【００４１】
本発明に係わるデータ仕様記述文書、データ仕様の記述方法によれば、相互に関連する複数のデータ要素を含むデータベースに属するデータ要素の仕様を、そのデータ要素が他のデータ要素との関連で満たすべき条件または該条件の検証手順によって記述したので、データ要素相互間の整合性を含めた厳密な意味でデータ要素の仕様を記述することができる。
【００４２】
また本発明に係わる検証データ生成装置、検証データ生成プログラム、検証データ生成方法では、データ仕様記述文書を元にして、該データ仕様記述文書に記述された条件を各データ要素が満たすか否かをコンピュータで検証するための検証手順データを生成するので、検証手順データを人が直接作成する場合に比べてその作成作業が容易になると共に、作成した検証手順データ自体の検証をデータ仕様記述文書の段階でチェックすればよいので、その検証性が向上する。
【図面の簡単な説明】
【００４３】
【図１】本発明の実施の形態に係わる検証データ生成装置の構成を示すブロック図である。
【図２】本発明の実施の形態に係わるデータ仕様記述文書の一例を示す説明図である。
【図３】図２のデータ仕様記述文書に対応するＸＭＬ文書のデータ構造を示す説明図である。
【図４】定義テーブルの一例を示す説明図である。
【図５】本発明の実施の形態に係わる検証データ生成装置が検証データ作成プログラムに従って行なう動作を示す流れ図である。
【図６】本発明の実施の形態に係わる検証データ生成装置が生成した検証対象データの一例を示す説明図である。
【図７】本発明の実施の形態に係わる検証データ生成装置が表示する入力画面の一例を示す説明図である。
【図８】ＸＭＬ文書で記述された鉄道信号システム用のアプリケーションデータの一例を示す説明図である。
【図９】ＸＭＬ文書で記述されたアプリケーションデータの検証システムを示す説明図である。
【発明を実施するための形態】
【００４４】
以下、図面に基づき本発明の実施の形態を説明する。
【００４５】
図１は、本発明の実施の形態に係わる検証データ生成装置１０の構成を示している。検証データ生成装置１０は、相互に関連する複数のデータ要素を含むデータベースに属する各データ要素の仕様を、そのデータ要素が他のデータ要素との関連で満たすべき条件または条件の検証手順によって記述したデータ仕様記述文書を元にして、該データベースに属するデータ要素がそのデータ仕様記述文書に記述された条件を満たすか否かをコンピュータで検証するための検証手順データを生成する機能を果たす装置である。
【００４６】
検証対象のデータベースは、１または２以上のデータファイルで構成され、各データファイルは、たとえば、木構造でデータ要素を記述したものである。データ要素は、意味を持つ単位データであり、木構造の元では、いずれかの階層のノードをデータ要素とすることができる。たとえば、最下位層のノードを１つのデータ要素と捉えてもよいし、任意の階層のノードをその下位層を含めてデータ要素と捉えてもよい。どの単位をデータ要素とするかは処理内容に応じて適宜に定めればよい。
【００４７】
以下本実施の形態では、図８に示すようなＸＭＬ文書で記述されたアプリケーションデータ５０を検証対象のデータベースとし、図９の検証システムがＸＳＬＴによるデータ検証で使用する図６のような検証用ＸＳＬＴスクリプト４０を、後述するデータ仕様記述文書３０から検証データ生成装置１０によって生成する場合を例に説明する。
【００４８】
図１に示すように、検証データ生成装置１０は、ＣＰＵ（中央処理装置）１１と、ＲＯＭ（リード・オンリ・メモリ）１２と、ＲＡＭ（ランダム・アクセス・メモリ）１３と、表示部１４と、操作部１５と、入出力部１６と、データ記憶部１７とを主要部として構成されている。
【００４９】
ＲＯＭ１２には、ＣＰＵ１１が実行する処理手順を示した各種のプログラムや固定データが記憶されている。具体的には、後述するデータ仕様記述文書３０の入力を支援する機能をＣＰＵ１１に実行させるデータ仕様記述文書作成支援プログラム２１と、データ仕様記述文書３０から検証手順データとしての検証用ＸＳＬＴスクリプト４０を生成する機能をＣＰＵ１１に実行させる検証データ作成プログラム２２と、検証データ作成プログラム２２を実行する際に参照される定義テーブル２３などを記憶している。
【００５０】
ＲＡＭ１３は、ＣＰＵ１１がＲＯＭ１２に格納されたプログラムを実行する際にデータを一時的に格納するワークメモリなどとして使用される。表示部１４は、各種画面を表示するディスプレイ装置であり、操作部１５は、キーボードのほかマウスなどのポインティングデバイスで構成される。入出力部１６は、外部装置とデータを入出力する機能を果たす。たとえば、生成した検証用ＸＳＬＴスクリプト４０を図９の検証システム３００に対して出力するほか、図９の検証済データベース３０４からＸＭＬスキーマ３０３によるデータ検証にパスした妥当なＸＭＬ文書５０を取り込む機能などを果たす。
【００５１】
データ記憶部１７は、データ仕様記述文書３０や上記妥当なＸＭＬ文書である検証対象データ５０、該検証データ生成装置１０で生成した検証用ＸＳＬＴスクリプトである検証手順データ４０、データベース用ＸＭＬスキーマ３０３などを記憶する機能を果たす。データ記憶部１７には、たとえば、ハードディスク装置などの記憶装置を利用できる。なお、検証データ生成装置１０は、汎用のコンピュータ装置とデータ仕様記述文書作成支援プログラム２１、検証データ作成プログラム２２、定義テーブル２３とで構成することもできる。
【００５２】
図２は、データ仕様記述文書３０の一例を示している。データ仕様記述文書３０は、予め用意された複数種類のステートメントを組み合わせて記述された文書である。ステートメントは、基本的にＸＳＬＴスクリプトを記述する際に使用されるタグに対応している。たとえば、繰り返し動作を記述するための「for-each」ステートメントや、真偽を判定する「if」ステートメントなどを用意してある。
【００５３】
各ステートメントは、ＸＳＬＴスクリプトで使用するタグに比べて簡易な書式で表現できるようになっている。すなわち、ＸＳＬＴスクリプトとして表記するための定型的な部分は省略されている。たとえば、ＸＳＬＴスクリプトでは開始タグとして「<Xsl:for-each select= ○○ >」のように記述するところを（図６の行４１参照）、データ仕様記述文書３０では「for-each（○○）」と記述すればよい（図２の行３１参照）ようになっている。
【００５４】
すなわち、各ステートメントは、「for-each」や「if」などのステートメント名とこれに続く括弧内に記述する１または複数の属性値とで構成される。属性値同士の間は、カンマや“｜”などの記号で区切り、属性値の登録順は別途定義されている。属性値を省略する場合は、カンマや“｜”などの記号を連続して登録する。ただし、ある属性値以降をすべて省略する場合は、それ以後のカンマや“｜”などの記号は登録しなくてもよいように記述ルールを定めてある。
【００５５】
このようなステートメントを用いることで、ＸＳＬＴスクリプトで表現すべき検証条件や検証手順（アルゴリズム）を簡易な表記で記述することができ、これらのステートメント群は、いわば、ＸＳＬＴスクリプトに対する高水準言語であり、データ仕様記述文書は該高水準言語で記述された文書であるとも言える。
【００５６】
図２のデータ仕様記述文書３０は、「各軌道回路の転てつ開通方向別ごとに、自軌道に登録された‘前方境界キロ程’の値が、後方隣接軌道として自軌道が登録されている軌道（前方隣接軌道）に登録されている‘後方境界キロ程’の値と一致していることを検証し、一致する場合は‘ＯＫ’という文字列を、不一致の場合は‘ＮＧ’という文字列を、それぞれ変換後のＸＭＬ文書中に出力する」という内容を記述している。
【００５７】
これは、データ要素としての軌道回路に対する要求仕様を表わしているとも言える。すなわち、データ仕様記述文書３０は、相互に関連する複数のデータ要素を含むデータベース（検証対象のＸＭＬ文書５０）に属する各データ要素（軌道回路単位のデータ）の仕様を、そのデータ要素（上記の例では自軌道）が他のデータ要素（上記の例では前方隣接軌道）との関連で満たすべき条件（自軌道の「前方境界キロ程」＝前方隣接軌道の「後方境界キロ程」）とその条件の検査手順（「for-each」など）とで記述した文書である。
【００５８】
なお、ある軌道回路に関する「軌道回路長」、「前方境界キロ程」、「後方境界キロ程」などのデータをそれぞれデータ要素と見れば、「前方境界キロ程」と「後方境界キロ程」との差が自軌道の「軌道回路長」と一致するか否かということなども、あるデータ要素が他のデータ要素との関係で満たすべき条件とすることもできる。つまり、データ要素をどの階層で捉えるかによって、様々な条件をデータ要素の仕様として記述することができる。
【００５９】
図３は、図２のデータ仕様記述文書３０が対象にしているＸＭＬ文書５０のデータ構造を参考に示したものである。
【００６０】
図４は、検証データ作成プログラム２２が参照する定義テーブル２３の一例を示している。定義テーブル２３には、ステートメント名毎に、そのステートメントで記述する属性値の登録順序と属性値の種別とが登録されている。たとえば、「対象文書部分」は、Ｘパスによって特定される文書部分が属性値となることを示している。「検査式」は、検査の論理式が属性値となることを示している。
【００６１】
図５は、検証データ生成装置１０が検証データ作成プログラム２２に従ってデータ仕様記述文書３０から検証手順データとしての検証用ＸＳＬＴスクリプト４０を作成する際の処理の流れを示している。データ仕様記述文書３０は、既に作成されてデータ記憶部１７に記憶されているものとする。まず、検証用ＸＳＬＴスクリプト４０のうち定型的なヘッダ部分を作成する（ステップＳ１０１）。たとえば、図６の１行目から３行目までのように書誌的・定型的な部分を自動作成する。
【００６２】
次に、データ仕様記述文書３０の先頭から順に１行分の文字列を取得し（ステップＳ１０２）。該文字列がステートメントとして構文上正しいか否かを検査する（ステップＳ１０３、Ｓ１０４）。ここでは、定義テーブル２３に登録されているいずれかのステートメントに合致するかと、その合致したステートメントの属性値が正しく記述されているかを定義テーブル２３と対比して判断する。
【００６３】
構文上のエラーがある場合は（ステップＳ１０４；Ｎ）、エラー箇所およびその内容を表示部１４に表示して（ステップＳ１０５）処理を終了する（エンド）。
【００６４】
構文上のエラーがない場合は（ステップＳ１０４；Ｙ）、そのステートメントに対応するＸＳＬＴスクリプトを生成する（ステップＳ１０６）。たとえば、図２の上から７行目に相当する行３１のステートメントに基づいて、図６の行４１に記述したＸＳＬＴスクリプトが生成される。ここでは、ステートメントの種類に応じたＸＳＬＴスクリプト１行分の雛形が記憶してあり、該雛型の変数部分にステートメント中の属性値を代入することでＸＳＬＴスクリプトを生成している。
【００６５】
上記の処理をデータ仕様記述文書３０の最終行まで繰り返し実行し（ステップＳ１０７；Ｎ）、最終行まで生成処理が完了すると（ステップＳ１０７；Ｙ）、これまでに生成したＸＳＬＴスクリプトをファイルとしてデータ記憶部１７に記憶して（ステップＳ１０８）処理を終了する（エンド）。図２のデータ仕様記述文書３０に対して検証データ作成プログラム２２を実行することにより図６のＸＳＬＴスクリプト４０が検証手順データとして生成される。
【００６６】
このようにして検証データ生成装置１０が生成したＸＳＬＴスクリプトに従って、図９に示す検証システム３００で該データ仕様記述文書３０が対象としているＸＭＬ文書５０をＸＳＬＴプロセッサ３０５で処理することにより、データ仕様記述文書３０に記述された仕様をＸＭＬ文書５０内の各データ要素が満たしているか否かが検証される。すなわち、ＸＭＬ文書５０に記述されたデータ要素の内容的な検証が行なわれる。
【００６７】
このように、人が記述や理解のし易い書式のデータ仕様記述文書３０を作成すれば、該データ仕様記述文書を元にして、コンピュータが理解可能なＸＳＬＴスクリプト４０を検証データ生成装置が自動生成するので、検証用のＸＳＬＴスクリプトを人が直接作成する場合に比べて容易に作成することができると共に、誤りも生じ難い。また、ＸＳＬＴスクリプト４０自体の検証をデータ仕様記述文書３０の段階でチェックすればよいので、その検証性が向上し、引いてはアプリケーションデータであるＸＭＬ文書に対する検証の信頼性も向上する。
【００６８】
また、データ仕様記述文書３０は、各データ要素の仕様を、そのデータ要素が他のデータ要素との関連で満たすべき条件または該条件の検証手順によって記述しているので、データ要素相互間の整合性を含めた厳密な意味でデータ要素の仕様を記述できる。したがって、データ仕様記述文書３０に記述された条件を満たすか否かをコンピュータで検証するためのＸＳＬＴスクリプト４０を該データ仕様記述文書３０に基づいて検証データ生成装置１０で生成し、該ＸＳＬＴスクリプト４０に基づく検証を行なえば、データ要素相互間の整合性を含めた厳密な意味でのデータ検証が可能となり、データ仕様記述文書３０に基づいて一律かつ適切なデータ検証が可能になる。
【００６９】
次に、検証データ生成装置１０によるデータ仕様記述文書３０の作成支援動作について説明する。
【００７０】
データ仕様記述文書３０は、汎用のエディタを用いて作成してもよいが、データ仕様記述文書作成支援プログラム２１を利用することでデータ仕様記述文書３０を効率よく作成することができる。図７は、データ仕様記述文書作成支援プログラム２１を実行した際に検証データ生成装置１０の表示部１４に表示される入力画面２００の一例を示している。なお、データ仕様記述文書作成支援プログラム２１の実行前に予め図９の検証システムから検証対象データ５０またはデータベース用ＸＭＬスキーマ３０３を入手してデータ記憶部１７に記憶しておく。
【００７１】
データ仕様記述文書作成支援プログラム２１は、検証対象データ５０またはデータベース用ＸＭＬスキーマ３０３の木構造（データ構造）を解析し、入力画面２００の上部のツリーウィンドウ２０１に検証対象データ５０またはデータベース用ＸＭＬスキーマ３０３に記述されたデータ要素の構造図を表示する。入力画面２００の下部にはデータ仕様記述文書３０を編集するための編集ウィンドウ２０２が表示される。また入力画面２００の左部には、ステートメントを一覧表示したステートメントウィンドウ２０３が表示される。
【００７２】
作業者は、キーボードから文字を直接入力して編集ウィンドウ２０２にデータ仕様記述文書３０を作成できる。また、ステートメントウィンドウ２０３でステートメントを選択し、これを編集ウィンドウ２０２の該当箇所にまでドラッグしてドロップすれば、その箇所にそのステートメントの文字列が記述される。また、編集ウィンドウ２０２に表示されたステートメントの括弧内にカーソルを合わせた状態で、ツリーウィンドウ２０１に表示されている構造図上でいずれかのデータ要素を選択すれば、そのデータ要素を検証対象データであるＸＭＬ文書５０内で特定する情報（パス情報など）がカーソル位置に記述される。たとえば、図中の「copy-of( )」の括弧２１１にカーソルを設定した状態で、データ要素としてツリーウィンドウ２０１内の「軌道回路名」２１２を選択すると、該括弧２１１内に、「転てつ開通方向共通／軌道回路名」の文字列が入力される。
【００７３】
ここでは、構造図上でいずれかのデータ要素が選択されると、そのデータ要素からルートに向かって木構造を順に辿ることで、選択されたデータ要素のパス情報を取得するようになっている。
【００７４】
なお、ツリーウィンドウ２０１内での表示箇所や編集ウィンドウ２０２内での表示箇所は、垂直スクロールバー２０４、２０５や、水平スクロールバー２０６、２０７によって任意に変更できる。ステートメントウィンドウ２０３についても、ツリーウィンドウ２０１や編集ウィンドウ２０２と同様の方法で表示箇所を任意に変更可能に構成してもよい。
【００７５】
このほか、入力中に定義テーブル２３に基づく構文エラーチェックをリアルタイムで実行し、作業者が入力した属性値などに誤りがあれば、即座に警告を表示する機能や、入力中に次の属性値の種類を示唆する案内表示を表示したりする機能をデータ仕様記述文書作成支援プログラム２１に設けてもよい。
【００７６】
このように、データ仕様記述文書作成支援プログラム２１を利用することで、データ仕様記述文書３０自体の作成作業も容易になると共に誤記述などのミスも低減する。
【００７７】
以上、本発明の実施の形態を図面によって説明してきたが、具体的な構成は実施の形態に示したものに限られるものではなく、本発明の要旨を逸脱しない範囲における変更や追加があっても本発明に含まれる。
【００７８】
たとえば、データ仕様記述文書３０の記述方法は、例示したものに限定されず、データ要素が満たすべき条件やその条件の検証方法をＸＳＬＴスクリプトそのものに比べて人が記述や理解の容易な言語で記述されたものであればよい。また、実施の形態では、条件とその検証手順とをデータ仕様記述文書３０に記述したが、条件のみを記述してもよい。
【００７９】
この場合、検証データ生成装置１０がその条件から該条件を検証するための手順を自動的に決定するようにしておけばよい。たとえば、データ仕様記述文書３０で登場し得る条件の種類を決定しておき、各条件についての検証手順を検証データ作成プログラム２２に予め登録しておく。そして、データ仕様記述文書３０から検証手順データ４０を作成する際に、該データ仕様記述文書３０に記述されている条件の種類を同定し、この同定した条件の種類に対応する検証手順を前記登録を検索して取得し、該検証手順に沿って検証手順データ４０を生成するように構成するとよい。
【００８０】
また、図２のデータ仕様記述文書３０では、「for-each」ステートメントなどを使用して、検証手順のアルゴリズムでデータ要素の仕様を表現したが、より一層高水準化を図り、たとえば、「各軌道回路の転てつ開通方向別ごとに、自軌道に登録された‘前方境界キロ程’の値が、後方隣接軌道として自軌道が登録されている軌道（前方隣接軌道）に登録されている‘後方境界キロ程’の値と一致していることを検証し、一致する場合は‘ＯＫ’という文字列を、不一致の場合は‘ＮＧ’という文字列を、それぞれ変換後のＸＭＬ文書中に出力する」という自然言語的な表現でデータ仕様記述文書を作成し、この文書を検証データ作成プログラム２２で解析して検証手順データ４０を生成する構成にしてもよい。
【００８１】
実施の形態では、検証手順データとしてＸＳＬＴスクリプトを作成したが、コンピュータが検証手順を実行できるデータ形式であればよく、たとえば、Ｃ言語などのプログラムとして記述されてもよい。
【符号の説明】
【００８２】
１０…検証データ生成装置
１１…ＣＰＵ
１２…ＲＯＭ
１３…ＲＡＭ
１４…表示部
１５…操作部
１６…入出力部
１７…データ記憶部
２１…データ仕様記述文書作成支援プログラム
２２…検証データ作成プログラム
２３…定義テーブル
３０…データ仕様記述文書
４０…検証手順データ（ＸＳＬＴスクリプト）
５０…検証対象データ（データ仕様記述文書が対象とするＸＭＬ文書）
２００…入力画面
２０１…ツリーウィンドウ
２０２…編集ウィンドウ
２０３…ステートメントウィンドウ
２０４、２０５…垂直スクロールバー
２０６、２０７…水平スクロールバー
３００…検証システム
３０１…未検証データベース
３０２…ＸＭＬプロセッサ
３０３…ＸＭＬスキーマ（データベース用ＸＭＬスキーマ）
３０４…ＸＭＬスキーマによる検証済みデータベース
３０５…ＸＳＬＴプロセッサ
３０６…ＸＳＬＴによる検証結果のＸＭＬ文書
３０７…ＸＳＬＴによる検証結果のＸＭＬ文書に対するＸＭＬスキーマ
【図１】
2010152905.tif 000003
【図２】
2010152905.tif 000004
【図３】
2010152905.tif 000005
【図４】
2010152905.tif 000006
【図５】
2010152905.tif 000007
【図６】
2010152905.tif 000008
【図７】
2010152905.tif 000009
【図８】
2010152905.tif 000010
【図９】
2010152905.tif 000011