JP2008041082A - 処理装置及びプログラム - Google Patents

処理装置及びプログラム Download PDF

Info

Publication number
JP2008041082A
JP2008041082A JP2007159657A JP2007159657A JP2008041082A JP 2008041082 A JP2008041082 A JP 2008041082A JP 2007159657 A JP2007159657 A JP 2007159657A JP 2007159657 A JP2007159657 A JP 2007159657A JP 2008041082 A JP2008041082 A JP 2008041082A
Authority
JP
Japan
Prior art keywords
data
structured data
position information
item
information
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.)
Pending
Application number
JP2007159657A
Other languages
English (en)
Inventor
Hideki Takano
英樹 高野
Kojiro Nakayama
弘二郎 中山
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2007159657A priority Critical patent/JP2008041082A/ja
Priority to US11/774,788 priority patent/US20080016094A1/en
Publication of JP2008041082A publication Critical patent/JP2008041082A/ja
Priority to US12/899,865 priority patent/US20110035410A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • G06F40/154Tree transformation for tree-structured or markup documents, e.g. XSLT, XSL-FO or stylesheets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/131Fragmentation of text files, e.g. creating reusable text-blocks; Linking to fragments, e.g. using XInclude; Namespaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】表現形式の異なる構造化データを処理する際に、処理負担を軽減すること。
【解決手段】第一の構造化データの項目の位置を特定するための第一の位置情報、および、当該第一の構造化データとは異なる表現形式を有する第二の構造化データの項目であって、当該第一の位置情報により特定される項目に対応する第二の構造化データの項目の位置を特定するための第二の位置情報、を対応付けたパス対応関係テーブルをパス対応関係テーブル記憶領域112に記憶し、第一の位置情報を指定して、第二の構造化データにおける項目に関連する情報を取得する要求を受けた場合には、パス変換部121において、パス対応関係テーブルを用いて、第一の位置情報を第二の位置情報に変換して、構造化データ記憶領域111に記憶されている第二の構造化データから項目に関連する情報を取得する。
【選択図】図1

Description

本発明は、異なる表現形式で作成された構造化文書を処理する技術に関する。
従来、表現形式の異なる構造化データを処理する場合、様々な表現形式の構造化データを共通の表現形式の構造化データに変換してから、必要なデータを参照又は更新するようにしている(例えば、特許文献1参照)。
特開2002−259654号公報
従来のように、表現形式の異なる構造化データを共通の表現形式の構造化データに変換してから処理していたのでは、例えば、構造化データの一部のデータのみを必要とする場合にも、構造化データの全体を変換しなければならず、処理負担が大きかった。
また、従来の技術では、表現形式の異なる構造化データを変換するために、変換を行う各々の表現形式毎に変換定義を生成しなければならず、不便であった。
そこで、本発明の第一の目的は、表現形式の異なる構造化データを処理する際に、処理負担を軽減することである。
また、本発明の第二の目的は、表現形式毎の変換定義を作成する負担を軽減することにある。
以上の課題を解決するため、本願の第一の発明は、構造化データにおける項目の位置を特定するための情報を変換することで、表現形式の異なる構造化データから必要な項目に関連する情報を取り出して処理することができるようにする。
例えば、少なくとも一つ以上の項目を有する第一の構造化データを記憶する記憶部と、前記第一の構造化データから前記項目に関する情報を取得する取得部と、を備える処理装置であって、前記第一の構造化データとは異なる表現形式を有する第二の構造化データの項目の位置を特定するための第二の位置情報を、前記第一の構造化データの項目の位置を特定するための第一の位置情報に変換する変換部を備え、前記取得部は、前記変換部により変換された前記第一の位置情報を用いて前記第一の構造化データから前記項目に関する情報を取得すること、を特徴とする。
また、本願の第二の発明は、構造化データの項目の位置を特定して所定の変換を行う変換定義において、項目の位置を特定するための情報を、異なる構造化データにおける項目の位置を特定するための情報に変換することで、異なる構造化データの変換定義を生成する。
例えば、少なくとも一つ以上の項目を有する第二の構造化データを、前記第二の構造化データとは異なり、少なくとも一つ以上の項目を有する第三の構造化データに変換する第一のデータ変換定義から、前記第二の構造化データ及び前記第三の構造化データとは異なり、少なくとも一つ以上の項目を有する第一の構造化データを、前記第三の構造化データに変換する第二のデータ変換定義を生成する生成部を備える処理装置であって、前記第一のデータ変換定義は、前記第二の構造化データから情報を取り出す項目の位置を特定する第三の位置情報、および、該第三の位置情報で特定される位置の項目から取り出した情報を前記第三の構造化データに取り込む項目の位置を特定する第四の位置情報、を備えるものであって、前記生成部は、前記第一のデータ変換定義の前記第三の位置情報を、前記第三の位置情報により特定される項目に対応する前記第一の構造化データの項目の位置を特定するための第一の位置情報に置き換えることで、前記第二のデータ変換定義を生成すること、を特徴とする。
以上のように、本願の第一の発明によれば、構造化データにおける要素を特定するための情報を変換することで、構造化データから必要な要素を特定して処理することができ、構造化データ全体を変換する必要がなくなり、高速に処理することができるようになる。
また、本発明の第二の発明によれば、変換定義における要素を特定するための情報を変換することで、異なる構造化データの変換定義を生成することができるため、この異なる構造化データの変換定義を作成する負担を軽減することができるとともに、構造化データの変換を効率的に行うことができるようになる。
図1は、本発明の第一の実施形態である処理装置100の概略図である。
図示するように、処理装置100は、記憶部110と、制御部120と、入力部130と、出力部140と、を備えている。
記憶部110は、構造化データ記憶領域111と、パス対応関係テーブル記憶領域112と、を有している。
構造化データ記憶領域111には、少なくとも一つ以上の項目を有する構造化データが記憶される。
本実施形態においては、図2に示されているような第一種別の構造化データ160と、図3に示されているような第二種別の構造化データ161と、が記憶されているものとする。なお、これらの構造化データについては、記憶部110に記憶されている必要はなく、処理を行う段階で、外部から入力されるようになっていてもよい。
ここで、第一種別の構造化データ160と、第二種別の構造化データ161とは、ともに少なくとも一つ以上の項目によりデータを特定しているが、表現形式が異なるものとなっている。
例えば、第一種別の構造化データ160と、第二種別の構造化データ161とは、ともに、会社に所属する社員を管理するためのデータを特定しており、ここでは、XML(eXtensible Markup Language)を用いて、各々の社員毎に、氏名、会社名、部署名、地位、電話番号及び電子メールアドレスという項目を特定しているが、その表現形式が異なっている。
即ち、第一種別の構造化データ160では、「userlist」をルート要素として、その子要素として社員毎に「userinfo」にID番号を付したタグを設けて、「name」のタグにより氏名を特定し、「company」のタグにより会社名を特定し、「department」のタグにより部署を特定し、「post」のタグにより地位を特定し、「tel」のタグにより電話番号を特定し、「email」のタグにより電子メールアドレスを特定している。
一方、第二種別の構造化データ161では、「employees」をルート要素として、その子要素として社員毎に「employee」にID番号を付したタグを設けて、「company」のタグにより会社名を特定し、「dept」のタグにより部署を特定し、「position」のタグにより地位を特定し、「name」のタグにより氏名を特定し、「tel-internal」のタグにより内線番号を特定し、「tel-external」のタグにより外線番号(第一の種別の構造化データ160における電話番号に相当)を特定し、「email」のタグにより電子メールアドレスを特定している。
パス対応関係テーブル記憶領域112には、構造化データ記憶領域111に記憶された一の構造化データの項目の位置を特定するための位置情報と、他の構造化データにおいて、一の構造化データの項目に対応する項目の位置を特定するための位置情報と、を対応させたテーブル情報が記憶される。
例えば、本実施形態においては、図4に示されているようなパス対応関係テーブル162が記憶されている。
パス対応関係テーブル162は、第一のデータ種別欄162aと、変換元パス欄162bと、第二のデータ種別欄162cと、変換先パス欄162dと、を備えている。
第一のデータ種別欄162aには、後述する変換元パス欄162bに格納するXPathにより項目の位置を特定する構造化データの表現形式であるデータ種別を特定するための情報が格納される。
変換元パス欄162bには、第一のデータ種別欄162aで特定された表現形式で作成された構造化データにおいて特定の項目の位置を特定する位置情報が格納される。
ここで、本実施形態においては、構造化データをXMLにより記述しているため、位置情報としてXPath(XML Path Language)が格納されている。
第二のデータ種別欄162cには、後述する変換先パス欄162dに格納するXPathにより項目の位置を特定する構造化データの表現形式であるデータ種別を特定するための情報が格納される。
変換先パス欄162dには、第二のデータ種別欄162cで特定された表現形式で作成された構造化データにおいて、変換元パス欄162bに格納されたXPathで指定されたノードに対応するノードを指定するためのXPathが格納される。
例えば、パス対応関係テーブル162の第一の行162eでは、第一種別の構造化データ160において、「userinfo1」で特定される社員の「email」を指定するためのXPathである「/userlist/userinfo1/email」が変換元パス162bに格納されており、第二の種別の構造化データ161において、この社員の「email」を指定するためのXPathである「/employees/employee1/email」が変換先パス162dに格納される。
制御部120は、パス変換部121と、値取得部122と、値更新部123と、を備えている。
パス変換部121は、後述する入力部130を介して、XPath、変換元のデータ種別及び変換先のデータ種別の入力を受け付け、入力された変換元のデータ種別と変換先のデータ種別とが異なっている場合には、入力された変換元のデータ種別が第一のデータ種別欄162aに格納され、入力されたXPathが変換元パス欄162bに格納され、さらに、入力された変換先のデータ種別が第二のデータ種別欄162cに格納されているパス対応換関係テーブル162の行を特定し、特定した行の変換先パス欄162dに格納されているXPathを抽出し、抽出されたXPath及び入力された変換先のデータ種別を後述する値取得部122に送る。
一方、パス変換部121は、入力された変換元のデータ種別と変換先のデータ種別とが等しい場合には、入力されたXPath及び入力された変換先のデータ種別を後述する値取得部122に送る。
値取得部122は、パス変換部121から送られてきたデータ種別に対応する構造化データを構造化データ記憶領域111から特定し、パス変換部121に送られてきたXPathに対応するノードに格納されているデータを特定された構造化データから取得し、後述する出力部140に出力する。
値更新部123は、値取得部122で取得されたデータに対して加筆、修正等の更新を行う指示が、後述する入力部130を介してなされた場合に、取得されたデータに対応するデータ種別とXPathとを値取得部122から取得し、取得したデータ種別に対応する構造化データを構造化データ記憶領域111から特定して、取得したXPathに対応するノード位置に更新されたデータを格納する処理を行う。
入力部130は、構造化データ記憶領域111に記憶する構造化データや、パス対応関係テーブル記憶領域112に記憶するパス対応関係テーブル等の入力を受け付けるとともに、構造化データ記憶領域111に記憶されている構造化データからデータを取得するための変換元データ種別、変換先データ種別及びXPathの入力を受け付ける。
また、入力部130は、更新する情報及び更新する指示の入力を受け付け、値更新部123に送る。
出力部140は、値取得部122で取得されたデータを所定の形式で表示、印刷等の出力を行う。
以上に記載した処理装置100については、コンピュータにより実現可能である。例えば、記憶部110については、メモリやハードディスク等の外部記憶装置により構成可能であり、制御部120については、CPU(Central Processing Unit)で外部記憶装置等に記憶されている所定のプログラムを実行することにより実現可能である。また、入力部130については、マウスやキーボードといった入力装置や情報を入力することのできる入力インターフェースにより実現可能であり、出力部140については、ディスプレイ装置や情報を出力することのできる出力インターフェースにより実現可能である。
以上のように構成される処理装置100において、構造化データから所定のデータを取得する処理を図5に示すフローチャートを用いて説明する。
まず、処理装置100では、入力部130を介して、変換元のデータ種別、変換先のデータ種別及びXPathの入力を受け付けることにより(S170)、処理を開始する。
入力部130を介して、入力された変換元のデータ種別と、変換先のデータ種別は、パス変換部121に送られ、パス変換部121においてこれらのデータ種別が等しいものか否かが判断される(S171)。
そして、これらのデータ種別が等しいものである場合には(S171)、パス変換部121は、入力された変換先データ種別及び入力されたXPathを値取得部122に送り、値取得部122は、変換先データ種別に対応する構造化データを構造化データ記憶領域111から特定し、特定した構造化データにおいて、XPathに対応するノードに対応するデータを取得する(S172)。
一方、パス変換部122は、入力された変換元のデータ種別と変換先のデータ種別とが異なるものである場合には(S171)、パス対応関係テーブル記憶領域112に記憶されているパス対応関係テーブル162を検索して、入力された変換元のデータ種別が第一のデータ種別欄162aに格納され、入力されたXPathが変換元パス欄162bに格納され、さらに、入力された変換先のデータ種別が第二のデータ種別欄162cに格納されているパス対応換関係テーブル162の行を特定し、特定した行の変換先パス欄162dに格納されているXPathを抽出し、抽出されたXPath及び入力された変換先のデータ種別を値取得部122に送り(S173)、値取得部122は、変換先データ種別に対応する構造化データを構造化データ記憶領域111から特定し、特定した構造化データにおいて、XPathに対応するノードに対応するデータを取得する(S174)。
図6は、本発明の第二の実施形態である処理装置200の概略図である。
ここで、第一の実施形態においては、表現形式の異なる構造化データのデータ種別が第一種別と第二種別の二種類を用いて説明したが、本実施形態では、このようなデータ種別として、data_aからdata_zの26種類の構造化データと、data_commonの構造化データと、があるものとして説明する。
図示するように、処理装置200は、記憶部210と、制御部220と、入力部230と、出力部240と、を備えている。
記憶部210は、構造化データ記憶領域211と、パス対応関係テーブル記憶領域212と、データ変換定義記憶領域213と、を有している。
構造化データ記憶領域211には、第一の実施形態と同様に、少なくとも一つ以上の項目を有する構造化データが記憶される。なお、この構造化データについても、記憶部210に記憶されている必要はなく、処理を行う段階で、外部から入力されるようになっていてもよい。
パス対応関係テーブル記憶領域212には、第一の実施形態と同様に、構造化データ記憶領域211に記憶された一の構造化データの項目の位置を特定するための位置情報と、他の構造化データにおいて、一の構造化データの項目に対応する項目の位置を特定するための位置情報と、を対応させたテーブル情報が記憶される。
例えば、本実施形態においても、図7に示されているような、第一のデータ種別欄262aと、変換元パス欄262bと、第二のデータ種別欄262cと、変換先パス欄262dと、を備えるパス対応関係テーブル262が記憶される。
データ変換定義記憶領域213には、変換元のデータ種別を特定する情報と、変換先のデータ種別を特定する情報と、変換元のデータ種別から変換先のデータ種別に変換する変換定義と、が記憶されている。
例えば、データ変換定義記憶領域213には、図8に示されているような変換テーブル263が記憶されている。
変換テーブル263は、ID欄263aと、変換元データ種別欄263bと、変換先データ種別欄263cと、データ変換定義欄263dと、自動生成欄263eと、を有する。
ID欄263aには、データ変換定義欄263dに格納されるデータ変換定義を一意に識別するための識別情報が格納される。
変換元データ種別欄263bには、データ変換定義欄263dに格納されるデータ変換定義によって変換される変換前の構造化データ(変換元の構造化データ)の表現形式を特定するデータ種別が格納される。
変換先データ種別欄263cには、データ変換定義欄263dに格納されるデータ変換定義によって変換される変換後の構造化データ(変換先の構造化データ)の表現形式を特定するデータ種別が格納される。
データ変換定義欄263dには、変換元データ種別欄263bに格納されるデータ種別により特定される変換元の構造化データを、変換先データ種別欄263cに格納されるデータ種別により特定される変換先の構造化データに変換するためのデータ変換定義が格納される。
ここで、本実施形態においては、変換を施す構造化データをXMLで作成しており、データ変換定義として、XSLT(XSL Transformations)スタイルシートを用いている。
自動生成欄263eには、データ変換定義欄263dに格納されるデータ変換定義が、後述のように処理装置200において自動的に生成されたものであるか否かを特定するための情報が格納される。
ここで、本実施形態においては、データ変換定義欄263dに格納されるデータ変換定義が、処理装置200において自動的に生成されたものである場合には、本欄に「○」の記号を格納し、処理装置200において自動的に生成されたものではない場合には、本欄に「×」の記号が格納される。
制御部220は、パス変換部121と、値取得部122と、値更新部123と、データ変換定義生成部224と、データ変換部225と、を備えている。
ここで、パス変換部121、値取得部122及び値更新部123で行う処理については、第一の実施形態と同様であるため説明を省略する。
データ変換定義生成部224は、後述する入力部230を介して、変換元データ種別及び変換先データ種別を特定したデータ変換定義が入力されると、既にデータ変換定義がデータ変換定義記憶領域213に記憶されているデータ種別と新たに入力されたデータ種別との間のデータ変換定義を作成する。
具体的には、データ変換定義生成部224は、まず、入力された変換元データ種別が変換テーブル263の変換先データ種別欄263cに格納されている場合には、同じ行に格納されている(同じIDで識別される)変換元データ種別欄263bに格納されているデータ種別を抽出して、合成リストを生成する。
そして、生成した合成リストに登録されているデータ種別を一つずつ抽出して、抽出したデータ種別が第一のデータ種別欄262aに格納され、入力された変換元データ種別が第二のデータ種別欄262cに格納されている行をパス対応関係テーブル262から特定し、特定した行の変換先パス欄262dに格納されているXPathに該当するXPathが入力されたデータ変換定義に含まれている場合には、データ変換定義に含まれているそのXPathを変換元パス欄262bに格納されているXPathと置き換えることにより、抽出したデータ種別から入力されたデータ種別に表現形式を変換するためのデータ変換定義を生成する。
以上の処理を繰り返すことにより、データ変換定義生成部224は、既にデータ変換定義が生成されているデータ種別から、新たなデータ種別に表現形式を変換するためのデータ変換定義を生成する。
次に、データ変換定義生成部224は、入力された変換先データ種別が変換テーブル263の変換元データ種別欄263bに格納されている場合には、同じ行に格納されている(同じIDで識別される)変換先データ種別欄263cに格納されているデータ種別を抽出して、合成リストを生成する。
そして、生成した合成リストに登録されているデータ種別を一つずつ抽出して、抽出したデータ種別が第二のデータ種別欄262cに格納され、入力された変換先データ種別が第一のデータ種別欄262aに格納されている行をパス対応関係テーブル262から特定し、特定した行の変換元パス欄262bに格納されているXPathに該当するXPathが入力されたデータ変換定義に含まれている場合には、データ変換定義に含まれているそのXPathを変換先パス欄262dに格納されているXPathと置き換えることにより、入力されたデータ種別から抽出されたデータ種別に表現形式を変換するためのデータ変換定義を生成する。
以上の処理を繰り返すことにより、データ変換定義生成部224は、新たなデータ種別から、既にデータ変換定義が生成されているデータ種別に表現形式を変換するデータ変換定義を生成する。
データ変換部225は、入力部230を介して入力された構造化データ又は構造化データ記憶領域211に記憶されている構造化データの表現形式を、データ変換定義記憶領域213に記憶されているデータ変換定義を用いて変換する。なお、この処理については従来から行われているものであるため、説明を省略する。
入力部230は、第一の実施形態と同様の情報の入力を受け付けるほか、本実施形態においては、データ変換定義生成部224でデータ変換定義の生成を行うために、既にデータ変換定義がデータ変換定義記憶領域213に記憶されているデータ種別を、変換先又は変換元のデータ種別の表現形式に変換するデータ変換定義の入力を受け付ける。
出力部240は、第一の実施形態と同様の情報の出力を行うほか、データ変換部225でデータ変換を行った構造化データを所定の形式で出力する。
以上に記載した処理装置200についても、第一の実施形態と同様にコンピュータにより実現可能である。例えば、記憶部210については、メモリやハードディスク等の外部記憶装置により構成可能であり、制御部220については、CPU(Central Processing Unit)で外部記憶装置等に記憶されている所定のプログラムを実行することにより実現
可能である。また、入力部230については、マウスやキーボードといった入力装置や情報を入力することのできる入力インターフェースにより実現可能であり、出力部240については、ディスプレイ装置や情報を出力することのできる出力インターフェースにより実現可能である。
以上のように構成される処理装置200においてデータ変換定義を生成する処理を図9に示すフローチャートを用いて説明する。
まず、入力部230を介して、変換元データ種別、変換先データ種別及びデータ変換定義を受け付けることで処理が開始される(S280)。
そして、データ変換定義生成部224は、入力された変換元データ種別、変換先データ種別及びデータ変換定義をデータ変換定義記憶領域213の変換テーブル263の該当する欄に格納する(S281)。このとき、他のデータ変換定義と重ならないようにIDを付与してID欄263aに格納し、自動生成欄263eには、「×」の記号を格納する。
次に、データ変換定義生成部224は、データ変換テーブル263において、入力された変換元データ種別が変換先データ種別欄263cのデータ種別と一致する行の変換元データ種別を取得し、合成リストに格納する(S282)。
次に、データ変換定義生成部224は、合成リストから、まだ処理していないデータ種別を抽出し(S283)、パス対応関係テーブル262において、抽出されたデータ種別が第二のデータ種別欄262aに一致し、入力された変換元データ種別が第一のデータ種別欄262cに一致する行を特定し、特定した行から変換元パス欄262bに格納されているXPathと、変換先パス欄262dに格納されているXPathと、を抽出する(S284)。
そして、データ変換定義生成部224は、入力されたデータ変換定義の変換元パスにおいて、抽出した変換元のXPathが入力されている位置に、同じ行から抽出した変換先のXPathを置き換える処理を抽出した変換元のXPath毎に繰り返すことにより、データ変換定義を生成する(S285)。
このようにして生成されたデータ変換定義を変換テーブル263のデータ変換定義欄263dに格納する(S286)。このとき、他のデータ変換定義と重複しないようにIDを付与してID欄263aに格納し、合成リストから抽出したデータ種別を変換元データ種別欄263bに格納し、入力された変換先データ種別を変換先データ種別欄263cに格納し、自動生成欄263eには、「○」の記号を格納する。
そして、合成リストにまだ処理されていないデータ種別がある場合には(S287)、S284〜S286の処理を繰り返す。
また、データ変換定義生成部224は、データ変換テーブル263において、入力された変換先データ種別が変換元データ種別欄263bのデータ種別と一致する行の変換先データ種別を取得し、合成リストに格納する(S288)。
次に、データ変換定義生成部224は、合成リストから、まだ処理していないデータ種別を抽出し(S289)、パス対応関係テーブル262において、抽出されたデータ種別が第二のデータ種別欄262cに一致し、入力された変換元データ種別が第一のデータ種別欄262aに一致する行を特定し、特定した行から変換元パス欄262bに格納されているXPathと、変換先パス欄262dに格納されているXPathと、を抽出する(S290)。
そして、データ変換定義生成部224は、入力されたデータ変換定義の変換先パスにおいて、抽出した変換元のXPathが入力されている位置に、同じ行から抽出した変換先のXPathを置き換える処理を抽出した変換元のXPath毎に繰り返すことにより、データ変換定義を生成する(S291)。
このようにして生成されたデータ変換定義を変換テーブル263のデータ変換定義欄263dに格納する(S292)。このとき、他のデータ変換定義と重複しないようにIDを付与してID欄263aに格納し、入力された変換元データ種別を変換元データ種別欄263bに格納し、合成リストから抽出したデータ種別を変換先データ種別欄263cに格納し、自動生成欄263eには、「○」の記号を格納する。
そして、合成リストにまだ処理されていないデータ種別がある場合には(S293)、S289〜S292の処理を繰り返す。
なお、図9に示したフローチャートでは、入力部230を介して入力されたデータ変換定義の変換元のデータ種別を異なるデータ種別に変更して新たなデータ変換定義を生成し、その後で、入力されたデータ変換定義の変換先のデータ種別を異なるデータ種別に変更して新たなデータ変換定義を生成するようにしているが、このような態様に限定されずに、これらの順番を入れ替えたり、これらのいずれか一方のみを生成するようにしてもよい。
以上のような処理を行うことにより、例えば、図10に示されているようなdata_commonからdata_gへのデータ変換定義264が入力部230を介して入力されたような場合に、図11に示されているようなdata_commonとdata_aとの間のXPathの対応関係がパス対応関係テーブル262に格納されていれば、data_commonからdata_gへのデータ変換定義264において、data_commonに対応するXPathが入力されている要素264a、264b、264c、264dを、data_aに対応するXPath(図11参照)で置き換えることにより、data_aからdata_gへのデータ変換定義265(図12参照)を生成することができる。
ここで、データ変換定義265では、要素265a、265b、265c、265dに入力されているXPathがdata_aに対応したものに置き換えられている。
なお、本実施形態では、図10に示されているデータ変換定義264において、タグ名がユニークであり、かつ、タグ名が1対1に対応することを前提とするため、図11に示すようにパス対応関係テーブル262において、親子関係を特定するXPathは格納されていないが、タグ名がユニークでない場合や1つのタグを複数の階層に渡るタグに変換する必要がある場合には、親子関係を特定するXPathやルートノード「/」からの絶対ロケーションパスを、パス対応関係テーブル262に格納しておくことで対応する必要がある。
以上に記載した実施形態において、パス対応関係格納テーブル162、262については、パス対応関係テーブル記憶領域112、212に予め記憶されていることが前提となっている。
この点、例えば、処理装置100、200のオペレータがパス対応関係格納テーブル162、262を作成して、パス対応関係テーブル記憶領域112、212に記憶しておけばよい。
処理装置100、200のオペレータがパス対応関係テーブル162、262を作成する際には、例えば、図13に示すようなパス入力ダイアログ画面166を出力部140、240に表示して、処理装置100、200のオペレータに対応するパスの入力を求めることで、容易にパス対応関係テーブル162、262を作成することができ、また、必要な対応関係を段階的に拡充することが可能となる。
また、本実施形態で使用しているXSLTスタイルシートでは、データの変換を行うノードの位置、即ち、データの変換を行う変換元のノード位置をXPathで指定するようになっており、変換先のノード位置をXPathとしても利用可能なタグ名で指定するようになっているため、このようなXSLTスタイルシートから同じノード位置を示すXPathの対応関係を容易に把握することができるため、例えば、以下に示すように処理装置100、200においてパス対応関係テーブル162、262を自動的に生成することも可能である。
例えば、図14に示されているようなdata_aからdata_commonへのデータ変換定義167を例にして説明すると、親要素が「<xsl:template match=”□□□” >」の場合、「<xsl:template match=”□□□”>」の行167aの「□□□」の部分が変換元パスとなり、タグ「<xsl:template>」で囲まれた子要素の「<xsl:element name=”△△△”>」の行167bの「△△△」の部分が変換先パスとなる。
また、子要素が「<xsl:value-of select=”□□□□”/>」の場合、「<xsl:value-of select=”□□□□”/>」の行167d、167f、167hの「□□□□」の部分が変換元のパスとなり、その行167d、167f、167hと同じ「<xsl:template>」の要素となっている「<xsl:element name=”△△△△”>」の「△△△△」の部分が変換先のパスとなる。
以上のようにして、データ変換定義からパス対応関係テーブルを生成することができる。なお、ここでは、データ変換定義の読み取り元パス、書き込み先パスを各々単体で取得しているが、データ変換定義を解析するときに、ルートからのパスも同時に構築し、書き込み先パス、読み取り元パスを取得した後、ルートからのフルパスに加工して、パス対応関係テーブルの該当する欄に格納するようにしてもよい。
このようにデータ変換定義からパス対応関係を抽出することで、パス対応関係格納テーブルの作成の手間を削減することができる。
また、以上に記載した実施形態において、XPathを用いて取得した値を加工する場合には、パス対応関係テーブル162、262に格納するXPathに関数を用いればよい。
例えば、図15(a)に示されているように、名と姓とが同じ要素内容168a、168bとなっている構造化データ168と、名の要素内容169a、169cと、姓の要素内容169b、169dと、を有する構造化データ169と、の間の対応関係については、図16に示されているような関数を用いたXPathを格納したパス対応関係テーブル362を用いればよい。
例えば、パス対応関係テーブル362の変換先パス欄362dに格納されているXPath「concat(/employees/employee/lastname, /employees/employee/firstname)」で使用されているconcat関数は、引数で渡された文字列を連結する関数であり、ここでは「/userlist/userinfo/name」が、「/employees/employee/lastname」で示される文字列と、「 スペース)」、「/employees/employee/firstname」を連結した文字列に対応することを表している。
また、パス対応関係テーブル362の変換先パス欄362dに格納されているXPath「substr-before(/userlist/userinfo/name, 」で使用されているsubstr-before関数は、ある文字列の前に記述された文字列を取得する関数であり、ここでは、「/employees/employee/lastname」が「/userlist/userinfo/name」の中の「 スペース)」よりも前の文字列に対応することを表している。
さらに、パス対応関係テーブル362の変換先パス欄362dに格納されているXPath「substr-after(/userlist/userinfo/name, 」で使用されているsubstr-after関数は、ある文字列の後に記述された文字列を取得する関数であり、ここでは、「/employees/employee/firstname」は、「/userlist/userinfo/name」の中の「 スペース)」よりも後の文字列に対応することを表している。
このように関数を用いたXPathの対応関係を、パス対応関係テーブル362に格納することで、より柔軟な対応関係を記述することが可能となる。
また、以上に記載した実施形態において、XPathに変数を埋め込むことにより、外部的な要因で決定する値をXPathの条件に記述することも可能となる。
例えば、図17に示されているようなパス対応関係テーブル462では、変換元パス欄462b及び変換先パス欄462dに格納されるXPathに変数が埋め込まれている。なお、図17では、「$1」が変数を示している。
例えば、変換元パス欄462bに「/userlist/userinfo[email=suzume@a.com']/tel」のように格納することにより、「emailアドレス」が「suzume@a.com」である社員の電話番号を取得することができる。
そして、「emailアドレス」が外部の要因で決定する場合(例えばシステムのユーザが入力することで決定する場合)がある。この場合、「/userlist/userinfo[email=$1']/tel」で示すようにパス内に外部の要因で変更する可能性のある個所を変数として埋め込む。
このようにしておくことで、パス変換手段101を用いてdata_xの構造化データにおけるXPath「/userlist/userinfo[email=$1']/tel」から、data_yの構造化データにおけるXPath「/employees/employee[email=$1']/tel」を得ることができ、取得したパスの「$1」の個所を「suzume@a.com」に置き換えることで、data_yの構造化データに対してもdata_xの構造化データに対してと同様の検索をすることが可能となる。
このように、パスに変数を埋め込んだ形でパス対応関係テーブルを構築することにより、外部の要因に応じた柔軟な検索が可能となる。
また、以上に記載した第一の実施形態において、パス変換部121が取得したXPathが変換元パス欄162bに格納されているか否かを確認し、格納されていなければ、対応するXPathを取得することができないので、他のデータ種別に変換してからパス対応関係テーブル162に格納されているXPathを用いて特定の値を取得するようにしてもよい。
説明は前後するが、図6の実施形態により得られる効果の一例について説明する。
図18の左側に示すようにデータ種別A501〜D504をデータ変換部225により、データ種別E505〜H508に変換したいとする。
これを実現するためには、データ変換定義を4×4の16個用意する必要がある。この16個のデータ変換定義を作成する手間を削減するために、従来は図18の右側に示すように、共通データ種別509を用いて、データ種別A501〜D504を共通データ種別509にまずは変換し、共通データ種別509をデータ種別E505〜H508に変換する手法を用いていた。この手法により、16個必要であった変換定義が4+4の8個で済むが、二回データ変換を実施するため、性能が悪くなる。第二の実施形態によれば、予めデータ種別A501〜D504と共通データ種別509のパス対応関係テーブルと、共通データ種別509からデータ種別E505〜H508のデータ変換定義を用意する手間で、事前に16個のデータ変換定義を自動生成することができる。また、これを用いれば一回のデータ変換で済むため性能が悪化することはない。
本発明の第三の実施形態について説明する。図6の実施形態では、データ変換定義内に記述された変換元のパスを変換して新しいデータ変換定義を予め作成していた。
第三の実施形態ではデータ変換定義を新規に作成せずデータ変換の実行時にパス変換部、値取得部を利用して変換元のパスを変換する。そして、そのパスを用いてデータ変換定義が期待していない変換元の構造化データから直接必要な値を取得する。処理装置の概略図は図6からデータ変換定義生成部224を削除したものと同等である。
図6の実施形態と同様に、図10に示すdata_commonからdata_gへのデータ変換定義264と図11に示すdata_commonとdata_aのパス対応関係テーブルを予め用意する。data_aの変換元データからdata_gへの変換の実行時に、図10のデータ変換定義264に含まれるdata_commonのパスを図11のパス対応関係テーブルに従ってdata_aのパスに変換しながらデータ変換処理を行う。
データ変換実行時にパス変換を行う処理フローの一例を図19に示す。説明を分かり易くするために図10のデータ変換定義264に限定した処理について記述する。図10はデータ変換定義としてXSLTスタイルシートを用いた例である。実際にXSLTスタイルシートで表現できる全てのバリエーションに対応するためにはより多くの処理を追加する必要があるがここでは省略する。
まず、変換元データ種別、変換先データ種別、データ変換定義、変換元データの入力を受け付ける(S600)。次にデータ変換定義の内容を順に取得(S601)する。取得した内容が、「<xsl:value-of select=”パス”/>」である場合(S602)、変換元データ種別、変換先データ種別、取得した内容に含まれるパスを引数にして図5に示す構造化データから所定のデータを取得する処理(S603)を実施し、取得したデータを、データ変換定義に従って変換先の構造化データとして出力(S604)する。
取得した内容が、「<xsl:template match=”パス”>」である場合(S606)、変換元データ種別、変換先データ種別、取得した内容に含まれるパスを引数にして図5に示す構造化データから所定のデータを取得する処理(S607)を実施する。ここでは、データとして値ではなくノードを取得する。そして、取得したノードをカレントノードに設定(S608)する。カレントノードとは変換元データ内の現在処理中のノードを指す。データ変換ではカレントノードを移動しながら処理を進める。
取得した内容が、それ以外の場合、従来のデータ変換の処理(S609)を行う。
いずれかの処理を実施した結果、データ変換定義の最後に至っているかどうかを確認する(S605)。データ変換定義の最後に至っていなかったらS601から処理を繰り返し、最後まで処理したら終了する。
図20は、本発明の第四の実施形態である処理装置の概略図である。
本実施形態ではサービスと呼ぶ処理装置上で実行するソフトウェア機能を連携することでシステムを構築する。サービスの連携は、仲介処理装置700を用いて行うことにより、サービス間の関係を疎にする。これにより、システム変更時には仲介処理装置700にのみ変更を加えれば良く、変更のコストが少なくて済むという効果がある。
仲介処理装置700は第一の実施形態の処理装置100にネットワークインターフェース部750とサービス呼出制御部721とサービス呼出制御定義テーブル記憶領域713を新たに追加したものである。ここで、ネットワークインターフェース部750は、第一の実施形態の処理装置100では入力部130及び出力部140の一部として記載していたが、説明を容易にするため、入力部730及び出力部740とは別に記載している。ネットワーク770を介してクライアント1稼動処理装置761、クライアント2稼動処理装置762、サービスA稼動処理装置763、サービスB稼動処理装置764を接続する。クライアント1稼動処理装置761はシステムに対して処理を要求するリクエストデータ1を発信し、その結果を受け取る処理装置であり、クライアント2稼動処理装置762はリクエストデータ1と異なる形式のリクエストデータ2を発信して結果を受け取る処理装置である。サービスA稼動処理装置763、サービスB稼動処理装置764はリクエストに応じて各々特定の処理を実行し、結果を返すソフトウェア機能が稼動している処理装置である。
クライアント1稼動処理装置761、クライアント2稼動処理装置762は、ネットワーク770を介してリクエストデータを仲介処理装置700に発信する。仲介処理装置700では、ネットワークインターフェース部750を利用してリクエストデータを受け取り構造化データ記憶領域711に配する。サービス呼出制御部721ではリクエストデータの内容に応じてサービス呼び出しの制御を行う。
サービス呼び出し制御の仕方は、サービス呼出制御定義として実現する。これは、リクエストデータの処理の方法や、サービスの呼び出しの順序やサービスの返り値を処理する方法などを定義したもので、一種のプログラムである。サービス呼出制御定義は、サービス呼出制御定義テーブル記憶領域713に格納する。サービス呼出制御定義テーブル780の例を図21に示す。サービス呼出制御定義テーブル780は、呼出先URI781とサービス呼出制御定義782から構成される。呼出先URI781にはクライアントが処理要求時にリクエストデータを送信する宛先のURIを格納する。ここでは、”http://sample_uris.com/service_a_b”を呼出先URIとし、クライアント1稼働処理装置761及びクライアント2稼働処理装置762は、このURIに向けてリクエストデータを送出する。データ送受信のプロトコルはHTTPを利用することとする。サービス呼出制御定義782にはサービス呼出制御定義の内容を格納する。
サービス呼出制御部721はサービス呼出制御定義テーブル780から呼出先URI781に対応するサービス呼出制御定義の内容を取得して処理する。この処理の中でリクエストデータなどの構造化データを操作するときにパス変換部、値取得部、値更新部を適宜利用する。
図22にリクエストデータ1(801)とリクエストデータ2(802)の一例を示す。リクエストデータ1(801)は、rootをルート要素とし、itemをその子要素に持つ。itemはidという属性を持つ。この例ではidの値は「0」である。さらにitemはdataという子要素を持つ。この例の場合、dataの値は「データ」である。リクエストデータ2(802)は、recordsをルート要素とし、recordをその子要素に持つ。recordはさらに子要素としてnumberとinfoを持つ。この例の場合、numberの値は「0」であり、dataの値は「データ」である。
リクエストデータ1(801)とリクエストデータ2(802)のパス対応関係を図23に示す。リクエストデータ1(801)の/root/item/@idは、リクエストデータ2(802)の/records/record/numberに対応し、リクエストデータ1(801)の/root/item/dataは、リクエストデータ2(802)の/records/record/infoに対応する。
サービス呼出制御部721で実行するサービス呼出制御定義の処理フローの例を図24に示す。この例におけるサービス呼出制御定義は、データ種別としてリクエストデータ1(801)を期待している。つまり、処理フローの中に記述されたパスはリクエストデータ1(801)のパスであるとする。
引数としてリクエストデータ及びリクエストデータ種別の入力を受け付ける(S820)。次に構造化データから所定のデータを取得する処理(S821)を実行する。この処理は図5で示す処理であり、変換元のデータ種別としてリクエストデータ種別、変換先のデータ種別としてリクエストデータ1(801)、XPathとして”/root/item/@id”を与える。この処理の結果、取得した値が”0”の場合(S822)、サービスAを呼び(S823)、取得した値が”0”でない場合(S822)、サービスBを呼ぶ(S824)。何れかのサービスを呼び出した結果を呼び出し元のクライアントに返して処理を終了する。本例では、サービスAはサービスA稼動処理装置763で稼動し、サービスBはサービスB稼動処理装置764で稼動しており、呼び出しはネットワーク770を介して行う。
サービス呼出制御部721で実行するサービス呼出制御定義はサービス呼出制御定義テーブル記憶領域713に格納せず、サービス呼出制御部721が同等の定義を内包していても良い。
本例では、リクエストデータから値を取得する場合にのみ適用したが、サービスを呼び出した結果得られるレスポンスデータが構造化データであり、このレスポンスデータが複数種類存在する場合に、特定の構造化データ向けのパスのみをサービス呼出制御定義に記述しておき、その特定の構造化データとそれ以外の各レスポンスデータのパス対応関係テーブルを用意しておくことで複数のレスポンスデータに対応する方式も考えられる。
本例では、値取得のみを実施しているが、例えばサービスA又はサービスBの呼出時に利用するリクエストデータが構造化データであり、呼び出すサービス毎にリクエストデータの形式が異なる場合、その構造化データの、パスで特定できる一部の値を更新してリクエストデータを作成する場合や、クライアント1、クライアント2毎に期待するレスポンスデータの形式が違う場合、レスポンスデータの、パスで特定できる一部の値を更新してレスポンスデータを作成する場合にパス変換部121及び値更新部123を利用することも考えられる。この処理は、図5における変換元のデータ種別、変換先のデータ種別、XPathの入力を受け付けるステップS170を、変換元のデータ種別、変換先のデータ種別、XPath、更新値を受け付けるステップに変更し、さらに、入力されたXPathを用いてデータを取得するステップS172及びS174を、入力されたXPathを用いてデータを更新するステップに置き換えることにより実現できる。
従来、サービス呼出制御部721が期待していない形式のリクエストデータが到達した場合、事前に期待する形式にデータ変換してからサービス呼出制御部721に渡していたが、第四の実施形態を用いると、データ変換を実施する必要がなくなる。代わりにパス変換を実行する必要があるが、構造化データ内の全ての要素を変換しなければならないデータ変換に比べて、一部の値を参照するために用いるパス変換は非常に高速であるため、データ変換による性能劣化を防ぐことができる。
第四の実施形態では実行時にパス変換を実施しており、データ変換程ではないと思われるがパス変換による性能の劣化が懸念される。そこで、パス変換の性能の劣化を防ぐための第五の実施形態について説明する。
この実施形態の構成は、図20の制御部720にサービス呼出制御定義生成部を追加したものである。また、サービス呼出制御定義テーブルの構成も変更する。
図25にサービス呼出制御テーブル830の例を示す。呼出先URI831、リクエストデータ種別832、サービス呼出制御定義833から構成する。呼出先URI831にはクライアントが処理要求時にリクエストデータを送信する宛先のURIを格納する。リクエストデータ種別832にはサービス呼出制御部721に到達するリクエストデータの種別を格納する。サービス呼出制御定義833にはサービス呼出制御定義の内容を格納する。
サービス呼出制御部721では、呼出先URI831と到達したリクエストデータ種別832に応じてサービス呼出制御定義テーブル830からサービス呼出制御定義833を取得して実行する。
サービス呼出制御定義生成部では、サービス呼出制御定義を作成し、サービス呼出制御定義テーブル830に格納する。
図26に処理フローを示す。事前にリクエストデータ1向けのサービス呼出制御定義(図24の「構造化データから所定のデータを取得S821」処理を「入力されたXPathを用いてデータを取得S172」処理に変更した処理フローに相当)と、図23に示すパス対応関係テーブル810が用意されているものとする。まず、変換元のサービス呼出制御定義、適用するデータ種別の入力を受け付ける(S840)。この例では変換元のサービス呼出制御定義はリクエストデータ1向けのサービス呼出制御定義であり、適用するデータ種別はリクエストデータ2である。次に、変換元のサービス呼出制御定義内に含まれるパスを順に取得(S841)する。パス対応関係テーブルから、第一のデータ種別がリクエストデータ1、変換元パスが取得したパス、第二のデータ種別が適用するデータ種別である変換先パスを取得(S842)する。取得した変換先パスを、変換元のサービス呼出制御定義内の取得したパスと置き換える(S843)。変換元のサービス呼出制御定義内の全てのパスを置き換えていない(S844)ならばS841の処理から繰り返し、全てのパスを置き換えていた(S844)ならば、適用するデータ種別とパスを置き換えたサービス呼出制御定義をサービス呼出制御定義テーブルに格納(S845)して処理を終了する。
この実施形態では説明を容易にするためにリクエストデータに適用する例で説明したが、リクエストデータに限らず、サービス呼出制御定義内で利用するその他の構造化データに適用しても良い。
以上のように事前に扱う構造化データの種類に応じてサービス呼出制御定義を作成しておくことで、実行時にパス変換を行う必要がなくなり、第四の実施形態よりも性能の良い仲介処理装置700を実現することができる。
処理装置100の概略図。 第一種別の構造化データ160の概略図。 第二種別の構造化データ161の概略図。 パス対応関係テーブル162の概略図。 構造化データから所定のデータを取得する処理を示すフローチャート。 処理装置200の概略図。 パス対応関係テーブル262の概略図。 変換テーブル263の概略図。 データ変換定義を生成する処理を示すフローチャート。 データ変換定義264の概略図。 パス対応関係テーブル262の概略図。 データ変換定義265の概略図。 パス入力ダイアログ画面166の概略図。 データ変換定義167の概略図。 構造化データ168及び構造化データ169の概略図。 パス対応関係テーブル362の概略図。 パス対応関係テーブル462の概略図。 第2の実施形態の有効性を表す図。 データ変換実行時にパス変換を行う処理を示すフローチャート。 サービス呼び出しの仲介を行うシステムの概略図。 サービス呼出制御定義テーブル780の概略図。 リクエストデータの概略図。 パス対応関係テーブル810の概略図。 サービス呼出制御定義の処理を示すフローチャート。 サービス呼出制御定義テーブル830の概略図。 サービス呼出制御定義を作成する処理を示すフローチャート。
符号の説明
100、200 処理装置
110、210 記憶部
111、211 構造化データ記憶領域
112、212 パス対応関係テーブル記憶領域
213 データ変換定義記憶領域
120、220 制御部
121 パス変換部
122 値取得部
123 値更新部
224 データ変換定義生成部
225 データ変換部
130、230 入力部
140、240 出力部

Claims (21)

  1. 少なくとも一つ以上の項目を有する第一の構造化データを記憶する記憶部と、
    前記第一の構造化データから前記項目に関する情報を取得する取得部と、
    を備える処理装置であって、
    前記第一の構造化データとは異なる表現形式を有する第二の構造化データの項目の位置を特定するための第二の位置情報を、前記第一の構造化データの項目の位置を特定するための第一の位置情報に変換する変換部を備え、
    前記取得部は、前記変換部により変換された前記第一の位置情報を用いて前記第一の構造化データから前記項目に関する情報を取得すること、
    を特徴とする処理装置。
  2. 請求項1に記載の処理装置であって、
    前記記憶部には、前記第一の構造化データの項目の位置を特定するための第一の位置情報、および、前記第一の構造化データとは異なる表現形式を有する第二の構造化データの項目であって、前記第一の位置情報により特定される項目に対応する前記第二の構造化データの項目の位置を特定するための第二の位置情報、を対応付けた対応関係情報を記憶しており、
    前記変換部は、第二の位置情報に対応する第一の位置情報を前記対応関係情報から取得して、前記第一の構造化データから前記項目に関する情報を取得するものであること、
    を特徴とする処理装置。
  3. 請求項1又は2に記載の処理装置であって、
    前記第一の構造化データ及び前記第二の構造化データは、XMLで記述されたものであり、前記第一の位置情報及び前記第二の位置情報は、XPathであること、
    を特徴とする処理装置。
  4. 請求項1又は2に記載の処理装置であって、
    前記第二の位置情報は、入力部を介して入力されたものであること、
    を特徴とする処理装置。
  5. コンピュータを、
    少なくとも一つ以上の項目を有する第一の構造化データを記憶する記憶手段、
    前記第一の構造化データから前記項目に関する情報を取得する処理を行う制御手段、
    として機能させるプログラムであって、
    前記制御手段に、
    前記第一の構造化データとは異なる表現形式を有する第二の構造化データの項目の位置を特定するための第二の位置情報を、前記第一の構造化データの項目を検索するための第一の位置情報に変換する変換処理と、
    前記変換処理により変換された前記第一の位置情報を用いて前記第一の構造化データから前記項目に関する情報を取得する取得処理と、
    を行わせることを特徴とするプログラム。
  6. 請求項5に記載のプログラムであって、
    前記記憶手段には、前記第一の構造化データの項目の位置を特定するための第一の位置情報、および、前記第一の構造化データとは異なる表現形式を有する第二の構造化データの項目であって、前記第一の位置情報により特定される項目に対応する前記第二の構造化データの項目の位置を特定するための第二の位置情報、を対応付けた対応関係情報が記憶されており、
    前記制御手段が行う前記変換処理は、第二の位置情報に対応する第一の位置情報を前記対応関係情報から取得して、前記第一の構造化データから前記項目に関する情報を取得するものであること、
    を特徴とするプログラム。
  7. 請求項5又は6に記載のプログラムであって、
    前記第一の構造化データ及び前記第二の構造化データは、XMLで記述されたものであり、前記第一の位置情報及び前記第二の位置情報は、XPathであること、
    を特徴とするプログラム。
  8. 請求項5又は6に記載のプログラムであって、
    コンピュータを、前記第二の位置情報を入力する入力手段として機能させること、
    を特徴とするプログラム。
  9. 少なくとも一つ以上の項目を有する第二の構造化データを、前記第二の構造化データとは異なり、少なくとも一つ以上の項目を有する第三の構造化データに変換する第一のデータ変換定義から、前記第二の構造化データ及び前記第三の構造化データとは異なり、少なくとも一つ以上の項目を有する第一の構造化データを、前記第三の構造化データに変換する第二のデータ変換定義を生成する生成部を備える処理装置であって、
    前記第一のデータ変換定義は、前記第二の構造化データから情報を取り出す項目の位置を特定する第三の位置情報、および、該第三の位置情報で特定される位置の項目から取り出した情報を前記第三の構造化データに取り込む項目の位置を特定する第四の位置情報、を備えるものであって、
    前記生成部は、前記第一のデータ変換定義の前記第三の位置情報を、前記第三の位置情報により特定される項目に対応する前記第一の構造化データの項目の位置を特定するための第一の位置情報に置き換えることで、前記第二のデータ変換定義を生成すること、
    を特徴とする処理装置。
  10. 請求項9に記載の処理装置であって、
    少なくとも一つ以上の項目を有する第一の構造化データの項目の位置を特定するための第一の位置情報、および、前記第一の構造化データとは異なる表現形式を有する第二の構造化データの項目であって、前記第一の位置情報により特定される項目に対応する前記第二の構造化データの項目の位置を特定するための第二の位置情報、を対応付けた対応関係情報を記憶する記憶部を備え、
    前記生成部は、第三の位置情報に一致する第二の位置情報に対応する第一の位置情報を前記対応関係情報から取得して、前記第一のデータ変換定義の第三の位置情報を、取得した第一の位置情報に置き換えることで、前記第二のデータ変換定義を生成するものであること、
    を特徴とする処理装置。
  11. 少なくとも一つ以上の項目を有する第三の構造化データを、前記第三の構造化データとは異なり、少なくとも一つ以上の項目を有する第二の構造化データに変換する第三のデータ変換定義から、前記第三の構造化データを、前記第二の構造化データ及び前記第三の構造化データとは異なり、少なくとも一つ以上の項目を有する第一の構造化データに変換する第四のデータ変換定義を生成する生成部を備える処理装置であって、
    前記第三のデータ変換定義は、前記第三の構造化データから情報を取り出す項目の位置を特定する第五の位置情報、および、該第五の位置情報で特定される位置の項目から取り出した情報を前記第二の構造化データに取り込む項目の位置を特定する第六の位置情報、を備えるものであって、
    前記生成部は、前記第三のデータ変換定義の前記第六の位置情報を、前記第六の位置情報により特定される項目に対応する前記第一の構造化データの項目の位置を特定するための第一の位置情報に置き換えることで、前記第四のデータ変換定義を生成すること、
    を特徴とする処理装置。
  12. 請求項11に記載の処理装置であって、
    少なくとも一つ以上の項目を有する第一の構造化データの項目の位置を特定するための第一の位置情報、および、前記第一の構造化データとは異なる表現形式を有する第二の構造化データの項目であって、前記第一の位置情報により特定される項目に対応する前記第二の構造化データの項目の位置を特定するための第二の位置情報、を対応付けた対応関係情報を記憶する記憶部を備え、
    前記生成部は、第六の位置情報に一致する第二の位置情報に対応する第一の位置情報を前記対応関係情報から取得して、前記第三のデータ変換定義の前記第六の位置情報を、取得した第一の位置情報に置き換えることで、前記第四のデータ変換定義を生成するものであること、
    を特徴とする処理装置。
  13. 請求項9乃至12の何れか一項に記載の処理装置であって、
    前記第一の構造化データ、前記第二の構造化データ及び前記第三の構造化データは、XMLで記述されたものであり、前記第一の位置情報、前記第二の位置情報、前記第三の位置情報、前記第四の位置情報及び前記第五の位置情報は、XPathであり、
    前記第一のデータ変換定義、前記第二のデータ変換定義、前記第三のデータ変換定義及び前記第四のデータ変換定義は、XSLTスタイルシートであること、
    を特徴とする処理装置。
  14. コンピュータを、
    少なくとも一つ以上の項目を有する第二の構造化データを、前記第二の構造化データとは異なり、少なくとも一つ以上の項目を有する第三の構造化データに変換する第一のデータ変換定義から、前記第二の構造化データ及び前記第三の構造化データとは異なり、少なくとも一つ以上の項目を有する第一の構造化データを、前記第三の構造化データに変換する第二のデータ変換定義を生成する処理を行う制御手段として機能させるプログラムであって、
    前記第一のデータ変換定義は、前記第二の構造化データから情報を取り出す項目の位置を特定する第三の位置情報、および、該第三の位置情報で特定される位置の項目から取り出した情報を前記第三の構造化データに取り込む項目の位置を特定する第四の位置情報、を備えるものであって、
    前記制御手段は、前記第一のデータ変換定義の前記第三の位置情報を、前記第三の位置情報により特定される項目に対応する前記第一の構造化データの項目の位置を特定するための第一の位置情報に置き換えることで、前記第二のデータ変換定義を生成する処理を行うものであること、
    を特徴とするプログラム。
  15. 請求項14に記載のプログラムであって、
    コンピュータを、
    少なくとも一つ以上の項目を有する第一の構造化データの項目の位置を特定するための第一の位置情報、および、前記第一の構造化データとは異なる表現形式を有する第二の構造化データの項目であって、前記第一の位置情報により特定される項目に対応する前記第二の構造化データの項目の位置を特定するための第二の位置情報、を対応付けた対応関係情報を記憶する記憶手段として機能させ、
    前記制御手段は、第三の位置情報に一致する第二の位置情報に対応する第一の位置情報を前記対応関係情報から取得して、前記第一のデータ変換定義の第三の位置情報を、取得した第一の位置情報に置き換えることで、前記第二のデータ変換定義を生成する処理を行うものであること、
    を特徴とするプログラム。
  16. コンピュータを、
    少なくとも一つ以上の項目を有する第三の構造化データを、前記第三の構造化データとは異なり、少なくとも一つ以上の項目を有する第二の構造化データに変換する第三のデータ変換定義から、前記第三の構造化データを、前記第二の構造化データ及び前記第三の構造化データとは異なり、少なくとも一つ以上の項目を有する第一の構造化データに変換する第四のデータ変換定義を生成する処理を行う制御手段として機能させるプログラムであって、
    前記第三のデータ変換定義は、前記第三の構造化データから情報を取り出す項目の位置を特定する第五の位置情報、および、該第五の位置情報で特定される位置の項目から取り出した情報を前記第二の構造化データに取り込む項目の位置を特定する第六の位置情報、を備えるものであって、
    前記制御手段は、前記第三のデータ変換定義の前記第六の位置情報を、前記第六の位置情報により特定される項目に対応する前記第一の構造化データの項目の位置を特定するための第一の位置情報に置き換えることで、前記第四のデータ変換定義を生成する処理を行うこと、
    を特徴とするプログラム。
  17. 請求項16に記載のプログラムであって、
    コンピュータを、
    少なくとも一つ以上の項目を有する第一の構造化データの項目の位置を特定するための第一の位置情報、および、前記第一の構造化データとは異なる表現形式を有する第二の構造化データの項目であって、前記第一の位置情報により特定される項目に対応する前記第二の構造化データの項目の位置を特定するための第二の位置情報、を対応付けた対応関係情報を記憶する記憶手段として機能させ、
    前記制御手段は、第六の位置情報に一致する第二の位置情報に対応する第一の位置情報を前記対応関係情報から取得して、前記第三のデータ変換定義の前記第六の位置情報を、取得した第一の位置情報に置き換えることで、前記第四のデータ変換定義を生成する処理を行うものであること、
    を特徴とするプログラム。
  18. 請求項14乃至17の何れか一項に記載のプログラムであって、
    前記第一の構造化データ、前記第二の構造化データ及び前記第三の構造化データは、XMLで記述されたものであり、前記第一の位置情報、前記第二の位置情報、前記第三の位置情報、前記第四の位置情報及び前記第五の位置情報は、XPathであり、
    前記第一のデータ変換定義、前記第二のデータ変換定義、前記第三のデータ変換定義及び前記第四のデータ変換定義は、XSLTスタイルシートであること、
    を特徴とするプログラム。
  19. 少なくとも1つ以上の項目を有する構造化データであるリクエストデータを送付するクライアント処理装置と、前記クライアント処理装置からのリクエストデータを受け取りそのリクエストデータに基づいてサービス処理装置の呼び出し制御を行う処理装置と、当該処理装置から呼び出され特定の処理を実施するサービス処理装置から構成されるシステムに用いられる処理装置において、
    前記処理装置は、サービス呼出制御定義に基づいてサービスの呼び出しを制御するサービス呼出制御部、パス変換部、値取得部及び値更新部を有し、
    前記処理装置に受け取られ得るリクエストデータとして、第一の構造化データである第一のリクエストデータと、第一のリクエストデータと表現形式が異なる第二の構造化データである第二のリクエストデータが存在する場合に、
    前記第二のリクエストデータの項目の位置を特定する第二の位置情報、及び、前記第一の構造化データに含まれる項目であって、前記第二の位置情報により特定される項目に対応する前記第一の構造化データの項目の位置を特定する第一の位置情報、を対応付けた対応関係情報を記憶部に記憶しており、
    前記サービス呼出制御定義には、前記処理装置に入力された特定の表現形式の構造化データを位置情報に基づいて操作する方法が定義可能であり、
    前記サービス呼出制御定義には前記第一のリクエストデータの中から位置情報に基づいて値を取得又は更新する処理が定義されており、
    前記サービス呼出制御部が、前記第二のリクエストデータを受け取った場合、前記対応関係情報から、前記第一の位置情報に対応する第二の位置情報を取得して、前記第二の構造化データである第二のリクエストデータから前記第二の位置情報で特定される項目に関する情報を取得又は更新し、
    当該取得した情報又は更新した構造化データを用いてサービスの呼び出しを制御することを特徴とする処理装置。
  20. 少なくとも1つ以上の項目を有する第一の構造化データと、第一の構造化データとは表現形式が異なる第三の構造化データにデータ変換する処理装置であって、
    前記第一の構造化データ及び前記第三の構造化データと表現形式が異なる第二の構造化データを第三の構造化データに変換する方法を記述したデータ変換定義と、
    前記第二の構造化データの項目の位置を特定する第二の位置情報、及び、前記第一の構造化データに含まれる項目であって、前記第二の位置情報により特定される項目に対応する前記第一の構造化データの項目の位置を特定する第一の位置情報、を対応付けた対応関係情報と、を記憶部に記憶しており、
    前記データ変換定義に従って、データ変換の実施中に実施される、前記データ変換定義に定義された第二の構造化データ内の特定の項目を示す第二の位置情報が示す項目の情報を取得する前に、前記対応関係情報から、前記第二の位置情報に対応する第一の位置情報を取得して、前記第一の構造化データから前記第一の位置情報で特定される項目に関する情報を取得し、その取得した情報を、第三の構造化データの一部として埋め込む処理を、
    第二の位置情報が示す項目の情報を取得する前毎に実施することで第一の構造化データから第三の構造化データにデータ変換することを特徴とする処理装置。
  21. 請求項19記載のサービス呼出制御定義を変換する処理装置であって、
    サービス呼出制御定義に従ってサービスの呼び出し制御を行うサービス呼出制御部で利用される構造化データとして、第一の構造化データと、その第一の構造化データとは表現形式の異なる第二の構造化データが存在する場合であり、かつ、
    前記第一の構造化データの項目の位置を特定する第一の位置情報の記述を含む第一のサービス呼出制御定義が存在する場合であり、かつ、
    記憶部には、前記第二の構造化データの項目の位置を特定する第二の位置情報、及び、前記第一の構造化データに含まれる項目であって、前記第二の位置情報により特定される項目に対応する前記第一の構造化データの項目の位置を特定する第一の位置情報、を対応付けた対応関係情報を記憶している場合、
    前記第一のサービス呼出制御定義内に含まれる第一の構造化データの項目を特定する第一の位置情報を、前記対応関係情報から、前記第一の位置情報に対応する第二の位置情報に変換し、その第二の位置情報を、前記第一のサービス呼出制御定義内の第一の構造化データの第一の位置情報が記述されていた位置に書き込む処理を、前記第一のサービス呼出制御定義に含まれる第一の構造化データの項目を特定する全ての位置情報の記述に対して実施することにより、第二の構造化データ向けの第二のサービス呼出制御定義を作成することを特徴とする処理装置。
JP2007159657A 2006-07-12 2007-06-18 処理装置及びプログラム Pending JP2008041082A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2007159657A JP2008041082A (ja) 2006-07-12 2007-06-18 処理装置及びプログラム
US11/774,788 US20080016094A1 (en) 2006-07-12 2007-07-09 Processing apparatus and program
US12/899,865 US20110035410A1 (en) 2006-07-12 2010-10-07 Processing apparatus and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006191097 2006-07-12
JP2007159657A JP2008041082A (ja) 2006-07-12 2007-06-18 処理装置及びプログラム

Publications (1)

Publication Number Publication Date
JP2008041082A true JP2008041082A (ja) 2008-02-21

Family

ID=38950476

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007159657A Pending JP2008041082A (ja) 2006-07-12 2007-06-18 処理装置及びプログラム

Country Status (2)

Country Link
US (2) US20080016094A1 (ja)
JP (1) JP2008041082A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019133622A (ja) * 2018-02-02 2019-08-08 富士通株式会社 Apiパラメータのマッピング

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5142773B2 (ja) * 2008-03-13 2013-02-13 キヤノン株式会社 メッセージ生成処理方法及びメッセージ生成処理装置
EP2570936A4 (en) * 2010-05-14 2015-08-19 Nec Corp INFORMATION RECOVERING DEVICE, INFORMATION RECOVERING METHOD, COMPUTER PROGRAM, AND DATA STRUCTURE
US9529829B1 (en) * 2011-11-18 2016-12-27 Veritas Technologies Llc System and method to facilitate the use of processed data from a storage system to perform tasks
US9607072B2 (en) * 2013-12-19 2017-03-28 Stretchr, Inc. System and method for implementing nested relationships within a schemaless database
CN104090850B (zh) * 2014-06-24 2017-07-14 上海铀尼信息科技有限公司 在线表格系统及其数据管理方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005208757A (ja) * 2004-01-20 2005-08-04 Fujitsu Ltd データベース統合参照装置、データベース統合参照方法およびデータベース統合参照プログラム
JP2006018449A (ja) * 2004-06-30 2006-01-19 Toshiba Corp 構造化データ変換装置及び方法
JP2006053724A (ja) * 2004-08-11 2006-02-23 Hitachi Ltd Xmlデータ管理方法
JP2006119888A (ja) * 2004-10-21 2006-05-11 Toshiba Corp 帳票データ変換装置、および帳票データ変換プログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1117049A1 (en) * 2000-01-14 2001-07-18 Sun Microsystems, Inc. Dynamic conversion of data
US7054881B2 (en) * 2002-12-17 2006-05-30 Sun Microsystems, Inc. Method and system for reporting standardized and verified data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005208757A (ja) * 2004-01-20 2005-08-04 Fujitsu Ltd データベース統合参照装置、データベース統合参照方法およびデータベース統合参照プログラム
JP2006018449A (ja) * 2004-06-30 2006-01-19 Toshiba Corp 構造化データ変換装置及び方法
JP2006053724A (ja) * 2004-08-11 2006-02-23 Hitachi Ltd Xmlデータ管理方法
JP2006119888A (ja) * 2004-10-21 2006-05-11 Toshiba Corp 帳票データ変換装置、および帳票データ変換プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019133622A (ja) * 2018-02-02 2019-08-08 富士通株式会社 Apiパラメータのマッピング
JP7206687B2 (ja) 2018-02-02 2023-01-18 富士通株式会社 Apiパラメータのマッピング

Also Published As

Publication number Publication date
US20110035410A1 (en) 2011-02-10
US20080016094A1 (en) 2008-01-17

Similar Documents

Publication Publication Date Title
JP4010516B2 (ja) 変換規則導出システム
JP2008041082A (ja) 処理装置及びプログラム
JP4875668B2 (ja) 複数の編集アプリケーションにより編集する画像データに関する情報を共有する方法及びシステム
JP5157690B2 (ja) 画像形成装置、情報処理方法、及び、画像形成システム
CN101271390A (zh) 修改xml数据结构的软件、系统和方法
JP5267732B2 (ja) Webページの制御方法、計算機システム及びプログラム
JP2016177553A (ja) 情報処理装置、情報処理システム、情報処理方法、及びプログラム
JP2007257315A (ja) プログラムの設定変更に伴う影響判別装置及びその方法
US20020038368A1 (en) User interface integration method
CN116384295A (zh) 一种顶层文件生成方法、装置、计算机设备及存储介质
JP2007128166A (ja) ネットワークシステム、サーバ、クライアント、プログラム、Webブラウジング機能実現方法
JP5473250B2 (ja) 検索装置の制御方法、検索装置
CN107491466A (zh) 客户端设备、信息处理系统、以及信息处理方法
JP3907463B2 (ja) Cadデータを管理するためのプログラムを記録したコンピュータ読み取り可能な記録媒体およびプログラム
JP2011014138A (ja) 情報処理装置、情報処理装置の制御方法、情報処理装置の制御プログラム、および記録媒体
JP4714463B2 (ja) ユーザ端末装置及びWebアプリケーション間でデータを継承する方法
JP4903278B2 (ja) 動作検証装置、動作検証方法および動作検証プログラム
JP2002244896A (ja) トランスレーションプログラム,トランスレーション方法,及びトランスレーションシステム
JP2006079277A (ja) 構造化文書データ変換装置及び方法
JP2008165661A (ja) 帳票出力装置、および、業務処理装置
JP2007265420A (ja) 構造化文書のハイパーリンク方法及びハイパーリンク装置
JP2011090452A (ja) 情報処理装置および情報処理システムおよび情報処理プログラム
JP2006039597A (ja) データ連携システム
JP2008033647A (ja) ドキュメントセット作成装置及びドキュメントセット作成方法
JP2017199979A (ja) 簡易OpS装置、制御方法および制御プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090727

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111129

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120605