JP4484791B2 - 検証データ生成装置および検証データ生成プログラム、検証データ生成方法 - Google Patents

検証データ生成装置および検証データ生成プログラム、検証データ生成方法 Download PDF

Info

Publication number
JP4484791B2
JP4484791B2 JP2005245948A JP2005245948A JP4484791B2 JP 4484791 B2 JP4484791 B2 JP 4484791B2 JP 2005245948 A JP2005245948 A JP 2005245948A JP 2005245948 A JP2005245948 A JP 2005245948A JP 4484791 B2 JP4484791 B2 JP 4484791B2
Authority
JP
Japan
Prior art keywords
data
verification
statement
description document
document
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2005245948A
Other languages
English (en)
Other versions
JP2007058750A (ja
Inventor
敏之 島添
好之 畑
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kyosan Electric Manufacturing Co Ltd
Original Assignee
Kyosan Electric Manufacturing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kyosan Electric Manufacturing Co Ltd filed Critical Kyosan Electric Manufacturing Co Ltd
Priority to JP2005245948A priority Critical patent/JP4484791B2/ja
Publication of JP2007058750A publication Critical patent/JP2007058750A/ja
Application granted granted Critical
Publication of JP4484791B2 publication Critical patent/JP4484791B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、データベースに属する各データ要素に誤りがないことを検証するための技術に関する。
近年、鉄道信号システムなどの安全性・信頼性が強く要求されるシステムにおいてもコンピュータ制御が多く導入されている。このような制御システムのソフトウェアは、一般に、CPUが実行する処理手順を表したプログラムと、該プログラムに基づく処理内容を個別の環境に適用させるためのアプリケーションデータとから構成される。
したがって、プログラムに誤りなきことが検証された後は、システムが正常に動作するか否かはアプリケーションデータが正しいか否かに依存する。アプリケーションデータは、異なるシステムで共通利用可能なプログラムとは異なり、システム毎の個別対応を要するので、システムの大型化・複雑化に伴ってアプリケーションデータを効率よく検証する技術が重要になっている。
そこで、アプリケーションデータをXML(eXtensible Markup Language)文書で記述し、XMLスキーマやXパス(Xml path Language)、XSLT(Xml Stylesheet Language Transformations)を利用して、アプリケーションデータをコンピュータ処理によって検証する技術が提案されている(たとえば、特許文献1参照。)。
ここで、XMLは、「タグ」と呼ばれる特定の文字列でテキストの前後を囲むことで、そのタグで囲われたテキストに特定の意味を付与したり、文書を構造化したりできるマークアップ言語の1つであり、特に、独自の意味内容をもつタグをユーザが設定できることから「メタ言語」とも言われている。XMLスキーマは、XML文書で用いるタグの構造やデータの型を規定した文書であり、XMLはXMLスキーマと組み合わされて独自のマークアップ言語として機能する。XパスはXML文書内の特定部分を位置指定してアクセスする手段を提供する。XSLTは、XML文書の構造を別の形式に変換するためのルールを記述するスクリプト言語である。
XML文書をアプリケーションデータの記述に使用する利用は多くある。まず、アプリケーションデータを構成している各データ要素が分かり易く分類・整理されていることが検証の信頼性・容易性にも繋がるので、データ要素相互の関係を木構造で階層的に表現できるXML文書はアプリケーションデータの記述に適している。
特に、鉄道信号システムの制御対象は、たとえば、電子連動システムの場合、転てつ器や信号機、軌道回路などの設備であり、これらは地上に配置されて位置関係が固定的に定まっている。このため各設備をデータ要素の単位としてアプリケーションデータを作成する場合には、各データ要素(設備)の位置関係を木構造で表現できるXML文書が適している。
また、一般の文書を表現する場合と異なり、制御システムのアプリケーションデータを記述するには、該システムに対する独自の仕様を表現する必要があるので、XMLスキーマとの組み合わせによりタグの構造を任意に規定できるXMLは好適である。
さらに、XMLスキーマに記述されたデータ構造やデータ型などがXML文書中で誤りなく使用されているか否かの検証を行なうプロセッサ(XMLプロセッサ、あるいはXMLパーサという。)や、XSLTスクリプトに従ってXML文書を変換するプロセッサ(XSLTプロセッサという。)が汎用品として用意されており、独自に開発する必要がないという利点もある。
図8は、このような利点を有するXML文書で記述された鉄道信号システム用のアプリケーションデータの一例である。同図に示すように、テキスト形式で記述されたデータを開始タグ(“<”,“要素名”,“>”の順で記述)と終了タグ(“</”,“要素名”,“>”の順で記述)で囲み、そのタグ内に記述した「要素名」によって「データの意味」を与えつつ、タグの囲み方によってデータを構造化している。この構造化により、親子兄弟の関係(入れ子関係)を表したツリー構造(木構造)のデータ表現を可能としている。なお図中の破線は、開始タグと終了タグの対応関係の一例を示している。
図9は、XML文書で記述されたアプリケーションデータの検証システム300を示している。未検証データベース301には、XML文書で記述された未検証のアプリケーションデータが保存されている。このXML文書に対してXMLプロセッサ302でXMLスキーマ303に基づく検証を実行することで、データ構造やデータ型など構文(シンタックス)レベルの検証が行なわれる。
XMLスキーマ303によるデータ検証は、上記のように構文レベルの検証に留まり、データの意味内容に係わる検証まで期待できない。そこで、XMLスキーマ303による検証をパスしたデータ(検証済みデータベース304内の妥当なXML文書50)に対してXSLTを用いた第2のデータ検証が行なわれる。XSLTスクリプトは、通常、XML文書の構造の変換に利用されるが、繰り返し動作を制御するアルゴリズム機能や真偽を判定する機能、演算実行機能などを備えているので、Xパスによる文書の一部を特定する機能と組み合わせることで、XMLスキーマでは実現できない複雑な検証処理ができ、XSLTスクリプトの内容次第ではアプリケーションデータの意味内容に係わる検証が可能になる。すなわち、XSLTスクリプトは、データ内容を検証するためにコンピュータが実行すべき作業手順を表した検証手順データとして機能する。
たとえば、XML文書に記述するアプリケーションデータは、図8に示すように、軌道回路の場合、「軌道回路名」(たとえば、図8の行a)、自軌道の「軌道回路長」(たとえば、行b)、「前方隣接軌道回路名」(たとえば、図8の行c)、「前方境界キロ程」(たとえば、図8の行d)、「後方隣接軌道回路名」(たとえば、図8の行e)、「後方境界キロ程」(たとえば、図8の行f)などで構成される。また木構造で表現されることから自軌道の前方や後方にどの軌道回路が存在するかもXML文書に記述されている。そこで、「前方境界キロ程」と「後方境界キロ程」との差が自軌道の「軌道回路長」と一致するか否かや、自軌道に登録された「前方境界キロ程」が自軌道の前方に隣接する軌道回路の「後方境界キロ程」に一致するか否かなどをXSLTで検証すれば、データ内容の検証が可能になる。
図6は、上記のような検証を行なうためのXSLTスクリプト(検証用XSLTスクリプト)40の一例である。このXSLTスクリプト40は、「各軌道回路の転てつ開通方向別ごとに、自軌道に登録された‘前方境界キロ程’の値が、後方隣接軌道として自軌道が登録されている軌道(前方隣接軌道)に登録されている‘後方境界キロ程’の値と一致していることを検証し、一致する場合は‘OK’という文字列を、不一致の場合は‘NG’という文字列を、それぞれ検証処理結果出力用のXML文書中に出力する」という検証手順を記述している。
このような検証用XSLTスクリプト40による検証処理を、XMLスキーマ303によるデータ検証をパスした妥当なXML文書50に対してXSLTプロセッサ305で実行すると、検証結果を「OK」、「NG」で表したXML文書306が出力される。該検証結果のXML文書306を「検証結果は‘OK’である」と定義した第2のXMLスキーマ307で構文チェックすることにより、XSLTによる検証結果がすべて「OK」の場合にだけ、検証結果のXML文書が妥当な文書であると判定される。この判定によりアプリケーションデータ50の内容が正常であることを確認できるので、検証作業がほぼ自動化される。
特開2004−334253号公報
図6に示すように、検証用XSLTスクリプト(検証手順データ)40は、どの要素を対象に検証を実行するのかを「for-each select」で指定し、どのデータを検証するのかを「if test」で指定することで全体の骨組みが出来上がる。しかし、骨組み以外の部分、つまりXSLTの言語仕様に従うための記述部分なども多くある。このため、検証用XSLTスクリプトの作成作業が煩雑になると共に、作成した検証用XSLTスクリプト自体の検証性も良くない。
また、一般に、制御システムのアプリケーションデータを構成している各データ要素の仕様は、データ要素毎の単独仕様として規定されるので、データ要素相互間の整合性を検証するためには、そのデータの性質を熟知した者が検証用のアルゴリズムを別途案出しなければならず、この検証用アルゴリズムの良し悪しにデータ検証の信頼性が左右されていた。
本発明は、上記の問題を解決しようとするものであり、制御システムのアプリケーションデータが正しいことをコンピュータで検証するための検証手順データを容易に生成することのできる検証データ生成装置および検証データ生成プログラム、検証データ生成方法を提供することを目的としている。
上記の目的は以下の各項に示す発明により達成される。
(1)予め定めた複数種類のステートメントを組み合わせて記述される文書であって相互に関連する複数のデータ要素を含むデータベースに属する前記データ要素の仕様をそのデータ要素が他のデータ要素との関連で満たすべき条件とその検証手順によって記述したデータ仕様記述文書を元にして、前記データベースに属するデータ要素が前記データ仕様記述文書に記述された条件を満たすか否かをコンピュータで検証するための検証手順データを生成する検証データ生成装置であって、
前記ステートメントの書式が登録された定義テーブルと、種類毎の各ステートメントに対応する検証手順データの雛形とを予め記憶しておき、
前記データ仕様記述文書が正しいステートメントで記述されているか否かを前記定義テーブルと対比して判断し、正しいステートメントで記述されている場合はそのステートメントに対応する前記雛形に基づいてそのステートメントに対応する検証手順データを生成する
ことを特徴とする検証データ生成装置。
上記発明によれば、データベースに属する各データ要素がデータ仕様記述文書に記述された条件を満たすか否かをコンピュータで検証するための検証手順データが前記データ仕様記述文書を元にして生成される。データ仕様記述文書を検証手順データに比べて人が記述や理解のし易い書式にしておけば、記述の容易なデータ仕様記述文書からコンピュータが理解する検証手順データを生成することができる。また、検証手順データ自体の検証をデータ仕様記述文書の段階で行なうことができる。
(2)前記データ仕様記述文書の作成を支援する作成支援部をさらに有し、
前記作成支援部は、検証対象の前記データベースを解析してその構造図を生成して表示すると共に、この構造図上でのデータ要素の指定と、作成中のデータ仕様記述文書に含まれているステートメント中のデータ要素の埋め込み位置の指定とを受け付けると、前記指定されたデータ要素から前記構造図を辿ってそのデータ要素を特定するパス情報を導出し、該パス情報を前記ステートメント中の前記指定された埋め込み位置に記述する機能を有する
ことを特徴とする(1)に記載の検証データ生成装置。
上記発明によれば、データベースの構造図が表示され、該構造図上でデータ要素を指定し、かつデータ仕様記述文書内の埋め込み位置を指定するだけで、該データ要素をデータベース内で特定する情報(たとえば、パス情報)が先の埋め込み位置に記述される。
(3)前記データベースは、XML文書で作成されたデータファイルで構成され、
前記検証手順データは、XSLTスクリプトである
ことを特徴とする(1)または(2)に記載の検証データ生成装置。
上記発明では、データベースは、データ要素を記述したXML文書ファイルで構成され、このXML文書中の各データ要素がデータ仕様記述文書に記述された条件を満たすか否かをコンピュータが検証するための手順を記述した検証手順データはXSLTスクリプトとして作成される。すなわち、データ仕様記述文書は、XSLTスクリプトを簡易に記述するための言語(高水準言語)で記載された文書である。検証データ生成装置が作成したこのXSLTスクリプトに従ってXML文書をXSLTプロセッサで処理することで、データ仕様記述文書に記述された仕様をXML文書内の各データ要素が満たしているか否かが検証される。
(4)前記データベースは、鉄道信号システムの制御用データであり、
前記データ要素は、前記鉄道信号システムを構成する設備毎の諸情報を示す
ことを特徴とする(1)、(2)または(3)に記載の検証データ生成装置。
上記発明において、鉄道信号システムは、駅構内などに配置された転てつ器、信号機などを制御して進路の安全を確保する電子連動装置のほか、ATC(Automatic Train Control)装置やATS(Automatic Train Stop)装置など列車保安制御、運行管理制御に関連するものも含まれる。データ要素は、たとえば、軌道回路、転てつ器、信号機、踏切などが該当する。
(5)予め定めた複数種類のステートメントを組み合わせて記述される文書であって相互に関連する複数のデータ要素を含むデータベースに属する前記データ要素の仕様をそのデータ要素が他のデータ要素との関連で満たすべき条件とその検証手順によって記述したデータ仕様記述文書を元にして、前記データベースに属するデータ要素が前記データ仕様記述文書に記述された条件を満たすか否かをコンピュータが検証するための検証手順データを生成する機能を、コンピュータに実行させるための検証データ生成プログラムであって、
前記ステートメントの書式が登録された定義テーブルと、種類毎の各ステートメントに対応する検証手順データの雛形とを予め記憶したデータ部を有し、
前記データ仕様記述文書が正しいステートメントで記述されているか否かを前記定義テーブルと対比して判断し、正しいステートメントで記述されている場合はそのステートメントに対応する前記雛形に基づいてそのステートメントに対応する検証手順データを生成するように前記コンピュータを動作させる
ことを特徴とする検証データ生成プログラム。
(6)前記データ仕様記述文書の作成を支援する機能であって、検証対象の前記データベースを解析してその構造図を生成して表示すると共にこの構造図上でのデータ要素の指定と、作成中のデータ仕様記述文書に含まれているステートメント中のデータ要素の埋め込み位置の指定とを受け付けると、前記指定されたデータ要素から前記構造図を辿ってそのデータ要素を特定するパス情報を導出し、該パス情報を前記ステートメント中の前記指定された埋め込み位置に記述する機能を、コンピュータに実行させるためのプログラムをさらに含む
ことを特徴とする(5)に記載の検証データ生成プログラム。
(7)前記データベースは、XML文書で作成されたデータファイルで構成され、
前記検証手順データは、XSLTスクリプトである
ことを特徴とする(5)または(6)に記載の検証データ生成プログラム。
(8)前記データベースは、鉄道信号システムの制御用データであり、
前記データ要素は、前記鉄道信号システムを構成する設備毎の諸情報を示す
ことを特徴とする(5)、(6)または(7)に記載の検証データ生成プログラム。
(9)コンピュータが、
予め定めた複数種類のステートメントを組み合わせて記述される文書であって相互に関連する複数のデータ要素を含むデータベースに属する前記データ要素の仕様をそのデータ要素が他のデータ要素との関連で満たすべき条件とその検証手順によって記述したデータ仕様記述文書を元にして、前記データベースに属するデータ要素が前記データ仕様記述文書に記述された条件を満たすか否かをコンピュータが検証するための検証手順データを生成する検証データ生成方法であって、
前記ステートメントの書式が登録された定義テーブルと、種類毎の各ステートメントに対応する検証手順データの雛形とを予め記憶しておき、
前記データ仕様記述文書が正しいステートメントで記述されているか否かを前記定義テーブルと対比して判断し、正しいステートメントで記述されている場合はそのステートメントに対応する前記雛形に基づいてそのステートメントに対応する検証手順データを生成する
ことを特徴とする検証データ生成方法。
(10)前記データ仕様記述文書の作成を支援する工程をさらに有し、
前記工程では、コンピュータが、検証対象の前記データベースを解析してその構造図を生成して表示し、この構造図上でのデータ要素の指定と、作成中のデータ仕様記述文書に含まれているステートメント中のデータ要素の埋め込み位置の指定とを受け付け、前記指定されたデータ要素から前記構造図を辿ってそのデータ要素を特定するパス情報を導出し、該パス情報を前記ステートメント中の前記指定された埋め込み位置に記述する
ことを特徴とする(9)に記載の検証データ生成方法。
(11)前記データベースは、XML文書で作成されたデータファイルで構成され、
前記検証手順データは、XSLTスクリプトである
ことを特徴とする(9)または(10)に記載の検証データ生成方法。
(12)前記データベースは、鉄道信号システムの制御用データであり、
前記データ要素は、前記鉄道信号システムを構成する設備毎の諸情報を示す
ことを特徴とする(9)、(10)または(11)に記載の検証データ生成方法。
発明に係わる検証データ生成装置、検証データ生成プログラム、検証データ生成方法では、データ仕様記述文書を元にして、該データ仕様記述文書に記述された条件を各データ要素が満たすか否かをコンピュータで検証するための検証手順データを生成するので、検証手順データを人が直接作成する場合に比べてその作成作業が容易になると共に、作成した検証手順データ自体の検証をデータ仕様記述文書の段階でチェックすればよいので、その検証性が向上する。
以下、図面に基づき本発明の実施の形態を説明する。
図1は、本発明の実施の形態に係わる検証データ生成装置10の構成を示している。検証データ生成装置10は、相互に関連する複数のデータ要素を含むデータベースに属する各データ要素の仕様を、そのデータ要素が他のデータ要素との関連で満たすべき条件または条件の検証手順によって記述したデータ仕様記述文書を元にして、該データベースに属するデータ要素がそのデータ仕様記述文書に記述された条件を満たすか否かをコンピュータで検証するための検証手順データを生成する機能を果たす装置である。
検証対象のデータベースは、1または2以上のデータファイルで構成され、各データファイルは、たとえば、木構造でデータ要素を記述したものである。データ要素は、意味を持つ単位データであり、木構造の元では、いずれかの階層のノードをデータ要素とすることができる。たとえば、最下位層のノードを1つのデータ要素と捉えてもよいし、任意の階層のノードをその下位層を含めてデータ要素と捉えてもよい。どの単位をデータ要素とするかは処理内容に応じて適宜に定めればよい。
以下本実施の形態では、図8に示すようなXML文書で記述されたアプリケーションデータ50を検証対象のデータベースとし、図9の検証システムがXSLTによるデータ検証で使用する図6のような検証用XSLTスクリプト40を、後述するデータ仕様記述文書30から検証データ生成装置10によって生成する場合を例に説明する。
図1に示すように、検証データ生成装置10は、CPU(中央処理装置)11と、ROM(リード・オンリ・メモリ)12と、RAM(ランダム・アクセス・メモリ)13と、表示部14と、操作部15と、入出力部16と、データ記憶部17とを主要部として構成されている。
ROM12には、CPU11が実行する処理手順を示した各種のプログラムや固定データが記憶されている。具体的には、後述するデータ仕様記述文書30の入力を支援する機能をCPU11に実行させるデータ仕様記述文書作成支援プログラム21と、データ仕様記述文書30から検証手順データとしての検証用XSLTスクリプト40を生成する機能をCPU11に実行させる検証データ作成プログラム22と、検証データ作成プログラム22を実行する際に参照される定義テーブル23などを記憶している。
RAM13は、CPU11がROM12に格納されたプログラムを実行する際にデータを一時的に格納するワークメモリなどとして使用される。表示部14は、各種画面を表示するディスプレイ装置であり、操作部15は、キーボードのほかマウスなどのポインティングデバイスで構成される。入出力部16は、外部装置とデータを入出力する機能を果たす。たとえば、生成した検証用XSLTスクリプト40を図9の検証システム300に対して出力するほか、図9の検証済データベース304からXMLスキーマ303によるデータ検証にパスした妥当なXML文書50を取り込む機能などを果たす。
データ記憶部17は、データ仕様記述文書30や上記妥当なXML文書である検証対象データ50、該検証データ生成装置10で生成した検証用XSLTスクリプトである検証手順データ40、データベース用XMLスキーマ303などを記憶する機能を果たす。データ記憶部17には、たとえば、ハードディスク装置などの記憶装置を利用できる。なお、検証データ生成装置10は、汎用のコンピュータ装置とデータ仕様記述文書作成支援プログラム21、検証データ作成プログラム22、定義テーブル23とで構成することもできる。
図2は、データ仕様記述文書30の一例を示している。データ仕様記述文書30は、予め用意された複数種類のステートメントを組み合わせて記述された文書である。ステートメントは、基本的にXSLTスクリプトを記述する際に使用されるタグに対応している。たとえば、繰り返し動作を記述するための「for-each」ステートメントや、真偽を判定する「if」ステートメントなどを用意してある。
各ステートメントは、XSLTスクリプトで使用するタグに比べて簡易な書式で表現できるようになっている。すなわち、XSLTスクリプトとして表記するための定型的な部分は省略されている。たとえば、XSLTスクリプトでは開始タグとして「<Xsl:for-each select= ○○ >」のように記述するところを(図6の行41参照)、データ仕様記述文書30では「for-each(○○)」と記述すればよい(図2の行31参照)ようになっている。
すなわち、各ステートメントは、「for-each」や「if」などのステートメント名とこれに続く括弧内に記述する1または複数の属性値とで構成される。属性値同士の間は、カンマや“|”などの記号で区切り、属性値の登録順は別途定義されている。属性値を省略する場合は、カンマや“|”などの記号を連続して登録する。ただし、ある属性値以降をすべて省略する場合は、それ以後のカンマや“|”などの記号は登録しなくてもよいように記述ルールを定めてある。
このようなステートメントを用いることで、XSLTスクリプトで表現すべき検証条件や検証手順(アルゴリズム)を簡易な表記で記述することができ、これらのステートメント群は、いわば、XSLTスクリプトに対する高水準言語であり、データ仕様記述文書は該高水準言語で記述された文書であるとも言える。
図2のデータ仕様記述文書30は、「各軌道回路の転てつ開通方向別ごとに、自軌道に登録された‘前方境界キロ程’の値が、後方隣接軌道として自軌道が登録されている軌道(前方隣接軌道)に登録されている‘後方境界キロ程’の値と一致していることを検証し、一致する場合は‘OK’という文字列を、不一致の場合は‘NG’という文字列を、それぞれ変換後のXML文書中に出力する」という内容を記述している。
これは、データ要素としての軌道回路に対する要求仕様を表わしているとも言える。すなわち、データ仕様記述文書30は、相互に関連する複数のデータ要素を含むデータベース(検証対象のXML文書50)に属する各データ要素(軌道回路単位のデータ)の仕様を、そのデータ要素(上記の例では自軌道)が他のデータ要素(上記の例では前方隣接軌道)との関連で満たすべき条件(自軌道の「前方境界キロ程」=前方隣接軌道の「後方境界キロ程」)とその条件の検査手順(「for-each」など)とで記述した文書である。
なお、ある軌道回路に関する「軌道回路長」、「前方境界キロ程」、「後方境界キロ程」などのデータをそれぞれデータ要素と見れば、「前方境界キロ程」と「後方境界キロ程」との差が自軌道の「軌道回路長」と一致するか否かということなども、あるデータ要素が他のデータ要素との関係で満たすべき条件とすることもできる。つまり、データ要素をどの階層で捉えるかによって、様々な条件をデータ要素の仕様として記述することができる。
図3は、図2のデータ仕様記述文書30が対象にしているXML文書50のデータ構造を参考に示したものである。
図4は、検証データ作成プログラム22が参照する定義テーブル23の一例を示している。定義テーブル23には、ステートメント名毎に、そのステートメントで記述する属性値の登録順序と属性値の種別とが登録されている。たとえば、「対象文書部分」は、Xパスによって特定される文書部分が属性値となることを示している。「検査式」は、検査の論理式が属性値となることを示している。
図5は、検証データ生成装置10が検証データ作成プログラム22に従ってデータ仕様記述文書30から検証手順データとしての検証用XSLTスクリプト40を作成する際の処理の流れを示している。データ仕様記述文書30は、既に作成されてデータ記憶部17に記憶されているものとする。まず、検証用XSLTスクリプト40のうち定型的なヘッダ部分を作成する(ステップS101)。たとえば、図6の1行目から3行目までのように書誌的・定型的な部分を自動作成する。
次に、データ仕様記述文書30の先頭から順に1行分の文字列を取得し(ステップS102)。該文字列がステートメントとして構文上正しいか否かを検査する(ステップS103、S104)。ここでは、定義テーブル23に登録されているいずれかのステートメントに合致するかと、その合致したステートメントの属性値が正しく記述されているかを定義テーブル23と対比して判断する。
構文上のエラーがある場合は(ステップS104;N)、エラー箇所およびその内容を表示部14に表示して(ステップS105)処理を終了する(エンド)。
構文上のエラーがない場合は(ステップS104;Y)、そのステートメントに対応するXSLTスクリプトを生成する(ステップS106)。たとえば、図2の上から7行目に相当する行31のステートメントに基づいて、図6の行41に記述したXSLTスクリプトが生成される。ここでは、ステートメントの種類に応じたXSLTスクリプト1行分の雛形が記憶してあり、該雛型の変数部分にステートメント中の属性値を代入することでXSLTスクリプトを生成している。
上記の処理をデータ仕様記述文書30の最終行まで繰り返し実行し(ステップS107;N)、最終行まで生成処理が完了すると(ステップS107;Y)、これまでに生成したXSLTスクリプトをファイルとしてデータ記憶部17に記憶して(ステップS108)処理を終了する(エンド)。図2のデータ仕様記述文書30に対して検証データ作成プログラム22を実行することにより図6のXSLTスクリプト40が検証手順データとして生成される。
このようにして検証データ生成装置10が生成したXSLTスクリプトに従って、図9に示す検証システム300で該データ仕様記述文書30が対象としているXML文書50をXSLTプロセッサ305で処理することにより、データ仕様記述文書30に記述された仕様をXML文書50内の各データ要素が満たしているか否かが検証される。すなわち、XML文書50に記述されたデータ要素の内容的な検証が行なわれる。
このように、人が記述や理解のし易い書式のデータ仕様記述文書30を作成すれば、該データ仕様記述文書を元にして、コンピュータが理解可能なXSLTスクリプト40を検証データ生成装置が自動生成するので、検証用のXSLTスクリプトを人が直接作成する場合に比べて容易に作成することができると共に、誤りも生じ難い。また、XSLTスクリプト40自体の検証をデータ仕様記述文書30の段階でチェックすればよいので、その検証性が向上し、引いてはアプリケーションデータであるXML文書に対する検証の信頼性も向上する。
また、データ仕様記述文書30は、各データ要素の仕様を、そのデータ要素が他のデータ要素との関連で満たすべき条件または該条件の検証手順によって記述しているので、データ要素相互間の整合性を含めた厳密な意味でデータ要素の仕様を記述できる。したがって、データ仕様記述文書30に記述された条件を満たすか否かをコンピュータで検証するためのXSLTスクリプト40を該データ仕様記述文書30に基づいて検証データ生成装置10で生成し、該XSLTスクリプト40に基づく検証を行なえば、データ要素相互間の整合性を含めた厳密な意味でのデータ検証が可能となり、データ仕様記述文書30に基づいて一律かつ適切なデータ検証が可能になる。
次に、検証データ生成装置10によるデータ仕様記述文書30の作成支援動作について説明する。
データ仕様記述文書30は、汎用のエディタを用いて作成してもよいが、データ仕様記述文書作成支援プログラム21を利用することでデータ仕様記述文書30を効率よく作成することができる。図7は、データ仕様記述文書作成支援プログラム21を実行した際に検証データ生成装置10の表示部14に表示される入力画面200の一例を示している。なお、データ仕様記述文書作成支援プログラム21の実行前に予め図9の検証システムから検証対象データ50またはデータベース用XMLスキーマ303を入手してデータ記憶部17に記憶しておく。
データ仕様記述文書作成支援プログラム21は、検証対象データ50またはデータベース用XMLスキーマ303の木構造(データ構造)を解析し、入力画面200の上部のツリーウィンドウ201に検証対象データ50またはデータベース用XMLスキーマ303に記述されたデータ要素の構造図を表示する。入力画面200の下部にはデータ仕様記述文書30を編集するための編集ウィンドウ202が表示される。また入力画面200の左部には、ステートメントを一覧表示したステートメントウィンドウ203が表示される。
作業者は、キーボードから文字を直接入力して編集ウィンドウ202にデータ仕様記述文書30を作成できる。また、ステートメントウィンドウ203でステートメントを選択し、これを編集ウィンドウ202の該当箇所にまでドラッグしてドロップすれば、その箇所にそのステートメントの文字列が記述される。また、編集ウィンドウ202に表示されたステートメントの括弧内にカーソルを合わせた状態で、ツリーウィンドウ201に表示されている構造図上でいずれかのデータ要素を選択すれば、そのデータ要素を検証対象データであるXML文書50内で特定する情報(パス情報など)がカーソル位置に記述される。たとえば、図中の「copy-of( )」の括弧211にカーソルを設定した状態で、データ要素としてツリーウィンドウ201内の「軌道回路名」212を選択すると、該括弧211内に、「転てつ開通方向共通/軌道回路名」の文字列が入力される。
ここでは、構造図上でいずれかのデータ要素が選択されると、そのデータ要素からルートに向かって木構造を順に辿ることで、選択されたデータ要素のパス情報を取得するようになっている。
なお、ツリーウィンドウ201内での表示箇所や編集ウィンドウ202内での表示箇所は、垂直スクロールバー204、205や、水平スクロールバー206、207によって任意に変更できる。ステートメントウィンドウ203についても、ツリーウィンドウ201や編集ウィンドウ202と同様の方法で表示箇所を任意に変更可能に構成してもよい。
このほか、入力中に定義テーブル23に基づく構文エラーチェックをリアルタイムで実行し、作業者が入力した属性値などに誤りがあれば、即座に警告を表示する機能や、入力中に次の属性値の種類を示唆する案内表示を表示したりする機能をデータ仕様記述文書作成支援プログラム21に設けてもよい。
このように、データ仕様記述文書作成支援プログラム21を利用することで、データ仕様記述文書30自体の作成作業も容易になると共に誤記述などのミスも低減する。
以上、本発明の実施の形態を図面によって説明してきたが、具体的な構成は実施の形態に示したものに限られるものではなく、本発明の要旨を逸脱しない範囲における変更や追加があっても本発明に含まれる。
たとえば、データ仕様記述文書30の記述方法は、例示したものに限定されず、データ要素が満たすべき条件やその条件の検証方法をXSLTスクリプトそのものに比べて人が記述や理解の容易な言語で記述されたものであればよい。また、実施の形態では、条件とその検証手順とをデータ仕様記述文書30に記述したが、条件のみを記述してもよい。
この場合、検証データ生成装置10がその条件から該条件を検証するための手順を自動的に決定するようにしておけばよい。たとえば、データ仕様記述文書30で登場し得る条件の種類を決定しておき、各条件についての検証手順を検証データ作成プログラム22に予め登録しておく。そして、データ仕様記述文書30から検証手順データ40を作成する際に、該データ仕様記述文書30に記述されている条件の種類を同定し、この同定した条件の種類に対応する検証手順を前記登録を検索して取得し、該検証手順に沿って検証手順データ40を生成するように構成するとよい。
また、図2のデータ仕様記述文書30では、「for-each」ステートメントなどを使用して、検証手順のアルゴリズムでデータ要素の仕様を表現したが、より一層高水準化を図り、たとえば、「各軌道回路の転てつ開通方向別ごとに、自軌道に登録された‘前方境界キロ程’の値が、後方隣接軌道として自軌道が登録されている軌道(前方隣接軌道)に登録されている‘後方境界キロ程’の値と一致していることを検証し、一致する場合は‘OK’という文字列を、不一致の場合は‘NG’という文字列を、それぞれ変換後のXML文書中に出力する」という自然言語的な表現でデータ仕様記述文書を作成し、この文書を検証データ作成プログラム22で解析して検証手順データ40を生成する構成にしてもよい。
実施の形態では、検証手順データとしてXSLTスクリプトを作成したが、コンピュータが検証手順を実行できるデータ形式であればよく、たとえば、C言語などのプログラムとして記述されてもよい。
本発明の実施の形態に係わる検証データ生成装置の構成を示すブロック図である。 本発明の実施の形態に係わるデータ仕様記述文書の一例を示す説明図である。 図2のデータ仕様記述文書に対応するXML文書のデータ構造を示す説明図である。 定義テーブルの一例を示す説明図である。 本発明の実施の形態に係わる検証データ生成装置が検証データ作成プログラムに従って行なう動作を示す流れ図である。 本発明の実施の形態に係わる検証データ生成装置が生成した検証対象データの一例を示す説明図である。 本発明の実施の形態に係わる検証データ生成装置が表示する入力画面の一例を示す説明図である。 XML文書で記述された鉄道信号システム用のアプリケーションデータの一例を示す説明図である。 XML文書で記述されたアプリケーションデータの検証システムを示す説明図である。
符号の説明
10…検証データ生成装置
11…CPU
12…ROM
13…RAM
14…表示部
15…操作部
16…入出力部
17…データ記憶部
21…データ仕様記述文書作成支援プログラム
22…検証データ作成プログラム
23…定義テーブル
30…データ仕様記述文書
40…検証手順データ(XSLTスクリプト)
50…検証対象データ(データ仕様記述文書が対象とするXML文書)
200…入力画面
201…ツリーウィンドウ
202…編集ウィンドウ
203…ステートメントウィンドウ
204、205…垂直スクロールバー
206、207…水平スクロールバー
300…検証システム
301…未検証データベース
302…XMLプロセッサ
303…XMLスキーマ(データベース用XMLスキーマ)
304…XMLスキーマによる検証済みデータベース
305…XSLTプロセッサ
306…XSLTによる検証結果のXML文書
307…XSLTによる検証結果のXML文書に対するXMLスキーマ

Claims (12)

  1. 予め定めた複数種類のステートメントを組み合わせて記述される文書であって相互に関連する複数のデータ要素を含むデータベースに属する前記データ要素の仕様をそのデータ要素が他のデータ要素との関連で満たすべき条件とその検証手順によって記述したデータ仕様記述文書を元にして、前記データベースに属するデータ要素が前記データ仕様記述文書に記述された条件を満たすか否かをコンピュータで検証するための検証手順データを生成する検証データ生成装置であって、
    前記ステートメントの書式が登録された定義テーブルと、種類毎の各ステートメントに対応する検証手順データの雛形とを予め記憶しておき、
    前記データ仕様記述文書が正しいステートメントで記述されているか否かを前記定義テーブルと対比して判断し、正しいステートメントで記述されている場合はそのステートメントに対応する前記雛形に基づいてそのステートメントに対応する検証手順データを生成する
    ことを特徴とする検証データ生成装置。
  2. 前記データ仕様記述文書の作成を支援する作成支援部をさらに有し、
    前記作成支援部は、検証対象の前記データベースを解析してその構造図を生成して表示すると共に、この構造図上でのデータ要素の指定と、作成中のデータ仕様記述文書に含まれているステートメント中のデータ要素の埋め込み位置の指定とを受け付けると、前記指定されたデータ要素から前記構造図を辿ってそのデータ要素を特定するパス情報を導出し、該パス情報を前記ステートメント中の前記指定された埋め込み位置に記述する機能を有する
    ことを特徴とする請求項に記載の検証データ生成装置。
  3. 前記データベースは、XML文書で作成されたデータファイルで構成され、
    前記検証手順データは、XSLTスクリプトである
    ことを特徴とする請求項1または2に記載の検証データ生成装置。
  4. 前記データベースは、鉄道信号システムの制御用データであり、
    前記データ要素は、前記鉄道信号システムを構成する設備毎の諸情報を示す
    ことを特徴とする請求項1、2または3に記載の検証データ生成装置。
  5. 予め定めた複数種類のステートメントを組み合わせて記述される文書であって相互に関連する複数のデータ要素を含むデータベースに属する前記データ要素の仕様をそのデータ要素が他のデータ要素との関連で満たすべき条件とその検証手順によって記述したデータ仕様記述文書を元にして、前記データベースに属するデータ要素が前記データ仕様記述文書に記述された条件を満たすか否かをコンピュータが検証するための検証手順データを生成する機能を、コンピュータに実行させるための検証データ生成プログラムであって、
    前記ステートメントの書式が登録された定義テーブルと、種類毎の各ステートメントに対応する検証手順データの雛形とを予め記憶したデータ部を有し、
    前記データ仕様記述文書が正しいステートメントで記述されているか否かを前記定義テーブルと対比して判断し、正しいステートメントで記述されている場合はそのステートメントに対応する前記雛形に基づいてそのステートメントに対応する検証手順データを生成するように前記コンピュータを動作させる
    ことを特徴とする検証データ生成プログラム。
  6. 前記データ仕様記述文書の作成を支援する機能であって、検証対象の前記データベースを解析してその構造図を生成して表示すると共にこの構造図上でのデータ要素の指定と、作成中のデータ仕様記述文書に含まれているステートメント中のデータ要素の埋め込み位置の指定とを受け付けると、前記指定されたデータ要素から前記構造図を辿ってそのデータ要素を特定するパス情報を導出し、該パス情報を前記ステートメント中の前記指定された埋め込み位置に記述する機能を、コンピュータに実行させるためのプログラムをさらに含む
    ことを特徴とする請求項5に記載の検証データ生成プログラム。
  7. 前記データベースは、XML文書で作成されたデータファイルで構成され、
    前記検証手順データは、XSLTスクリプトである
    ことを特徴とする請求項5または6に記載の検証データ生成プログラム。
  8. 前記データベースは、鉄道信号システムの制御用データであり、
    前記データ要素は、前記鉄道信号システムを構成する設備毎の諸情報を示す
    ことを特徴とする請求項5、6または7に記載の検証データ生成プログラム。
  9. コンピュータが、
    予め定めた複数種類のステートメントを組み合わせて記述される文書であって相互に関連する複数のデータ要素を含むデータベースに属する前記データ要素の仕様をそのデータ要素が他のデータ要素との関連で満たすべき条件とその検証手順によって記述したデータ仕様記述文書を元にして、前記データベースに属するデータ要素が前記データ仕様記述文書に記述された条件を満たすか否かをコンピュータが検証するための検証手順データを生成する検証データ生成方法であって、
    前記ステートメントの書式が登録された定義テーブルと、種類毎の各ステートメントに対応する検証手順データの雛形とを予め記憶しておき、
    前記データ仕様記述文書が正しいステートメントで記述されているか否かを前記定義テーブルと対比して判断し、正しいステートメントで記述されている場合はそのステートメントに対応する前記雛形に基づいてそのステートメントに対応する検証手順データを生成する
    ことを特徴とする検証データ生成方法。
  10. 前記データ仕様記述文書の作成を支援する工程をさらに有し、
    前記工程では、コンピュータが、検証対象の前記データベースを解析してその構造図を生成して表示し、この構造図上でのデータ要素の指定と、作成中のデータ仕様記述文書に含まれているステートメント中のデータ要素の埋め込み位置の指定とを受け付け、前記指定されたデータ要素から前記構造図を辿ってそのデータ要素を特定するパス情報を導出し、該パス情報を前記ステートメント中の前記指定された埋め込み位置に記述する
    ことを特徴とする請求項9に記載の検証データ生成方法。
  11. 前記データベースは、XML文書で作成されたデータファイルで構成され、
    前記検証手順データは、XSLTスクリプトである
    ことを特徴とする請求項9または10に記載の検証データ生成方法。
  12. 前記データベースは、鉄道信号システムの制御用データであり、
    前記データ要素は、前記鉄道信号システムを構成する設備毎の諸情報を示す
    ことを特徴とする請求項9、10または11に記載の検証データ生成方法。
JP2005245948A 2005-08-26 2005-08-26 検証データ生成装置および検証データ生成プログラム、検証データ生成方法 Active JP4484791B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005245948A JP4484791B2 (ja) 2005-08-26 2005-08-26 検証データ生成装置および検証データ生成プログラム、検証データ生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005245948A JP4484791B2 (ja) 2005-08-26 2005-08-26 検証データ生成装置および検証データ生成プログラム、検証データ生成方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2010017765A Division JP5123337B2 (ja) 2010-01-29 2010-01-29 検証データ生成装置、検証データ生成プログラム及び検証データ生成方法

Publications (2)

Publication Number Publication Date
JP2007058750A JP2007058750A (ja) 2007-03-08
JP4484791B2 true JP4484791B2 (ja) 2010-06-16

Family

ID=37922161

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005245948A Active JP4484791B2 (ja) 2005-08-26 2005-08-26 検証データ生成装置および検証データ生成プログラム、検証データ生成方法

Country Status (1)

Country Link
JP (1) JP4484791B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5076700B2 (ja) * 2007-07-23 2012-11-21 富士通株式会社 データベース検証方法及び装置
JP2009069905A (ja) * 2007-09-10 2009-04-02 Delta Electronics Inc プログラマーロジックコントローラ(plc)プログラムの編集方法
JP5818630B2 (ja) 2011-10-25 2015-11-18 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 仕様検証方法、プログラム及びシステム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004145578A (ja) * 2002-10-23 2004-05-20 Fujitsu Ltd データ処理方法、言語展開装置、データ更新装置、及びプログラム
JP2004334253A (ja) * 2003-01-15 2004-11-25 Kyosan Electric Mfg Co Ltd データ作成装置、データ検証方法及びデータ検証プログラム
JP2005044215A (ja) * 2003-07-24 2005-02-17 Kyosan Electric Mfg Co Ltd データ処理装置、データ処理方法及びプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004145578A (ja) * 2002-10-23 2004-05-20 Fujitsu Ltd データ処理方法、言語展開装置、データ更新装置、及びプログラム
JP2004334253A (ja) * 2003-01-15 2004-11-25 Kyosan Electric Mfg Co Ltd データ作成装置、データ検証方法及びデータ検証プログラム
JP2005044215A (ja) * 2003-07-24 2005-02-17 Kyosan Electric Mfg Co Ltd データ処理装置、データ処理方法及びプログラム

Also Published As

Publication number Publication date
JP2007058750A (ja) 2007-03-08

Similar Documents

Publication Publication Date Title
US8768651B2 (en) System and method for automatic standardization and verification of system design requirements
US20070214173A1 (en) Program, method, and apparatus for supporting creation of business process model diagram
KR101892206B1 (ko) 양방향 텍스트 검사기
US20080262833A1 (en) Document Processing Device and Document Processing Method
US9229920B1 (en) Compound undo/redo manager for mixed model edits
EP3443460B1 (en) Method, apparatus, and computer-readable medium for performing functional testing of software
US20070258100A1 (en) Document Processing Device and Document Processing Method
US20080010588A1 (en) Document Processing Device and Document Processing Method
US20090077462A1 (en) Document processing device and document processing method
US20090083300A1 (en) Document processing device and document processing method
US20070208995A1 (en) Document Processing Device and Document Processing Method
US20070198915A1 (en) Document Processing Device And Document Processing Method
JP4484791B2 (ja) 検証データ生成装置および検証データ生成プログラム、検証データ生成方法
US20080250311A1 (en) Document Processing Device, and Document Processing Method
US20080141112A1 (en) Document Processing Device and Document Processing Method
JP5123337B2 (ja) 検証データ生成装置、検証データ生成プログラム及び検証データ生成方法
US20080282143A1 (en) Document Processing Device and Document Processing Method
US20080005662A1 (en) Server Device and Name Space Issuing Method
US20080256437A1 (en) Document Processing Apparatus and Document Processing Method
US20090235156A1 (en) Document processing device and document processing method
US20090287994A1 (en) Document processing device and document processing method
CN1973285A (zh) 文档处理方法及其装置
EP1837776A1 (en) Document processing device and document processing method
US7620937B2 (en) System and method for debugging programs
CN1973284A (zh) 文档处理方法及其装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070315

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100201

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100323

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100323

R150 Certificate of patent or registration of utility model

Ref document number: 4484791

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130402

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130402

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140402

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250