JP5398213B2 - 生成装置、プログラムおよび生成方法 - Google Patents

生成装置、プログラムおよび生成方法 Download PDF

Info

Publication number
JP5398213B2
JP5398213B2 JP2008245866A JP2008245866A JP5398213B2 JP 5398213 B2 JP5398213 B2 JP 5398213B2 JP 2008245866 A JP2008245866 A JP 2008245866A JP 2008245866 A JP2008245866 A JP 2008245866A JP 5398213 B2 JP5398213 B2 JP 5398213B2
Authority
JP
Japan
Prior art keywords
node
tree structure
mapping
structured document
editing operation
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.)
Expired - Fee Related
Application number
JP2008245866A
Other languages
English (en)
Other versions
JP2010079511A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2008245866A priority Critical patent/JP5398213B2/ja
Priority to US12/565,897 priority patent/US9582291B2/en
Publication of JP2010079511A publication Critical patent/JP2010079511A/ja
Application granted granted Critical
Publication of JP5398213B2 publication Critical patent/JP5398213B2/ja
Priority to US15/423,274 priority patent/US11194595B2/en
Priority to US17/521,209 priority patent/US20220058032A1/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/4493Object persistence
    • 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
    • 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/137Hierarchical processing, e.g. outlines
    • 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]
    • 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

Description

本発明は、プログラム中のオブジェクトに含まれる各プロパティと構造化文書の各要素とのマッピングを生成する生成装置、プログラムおよび生成方法に関する。
従来より、XML(Extensible Markup Language)文書を、プログラムにより取り扱われるオブジェクトに変換する方法が知られている。非特許文献1には、XML文書にプログラムがアクセスするためのAPIであるDOM(Documet Object Model)の仕様が記載されている。非特許文献2には、XML文書からJava(登録商標)のオブジェクトへの変換およびJavaのオブジェクトからXML文書への変換をするAPIであるJAXB(Java Architecture for XML Binding)の仕様が記載されている。
また、従来より、プログラム中のオブジェクトをXML文書に変換する方法も知られている。例えば、非特許文献1に記載されたDOMは、変換後のXML文書のそれぞれの要素を予め反映したオブジェクトから、XML文書を生成することができる。また、非特許文献2に記載されたJAXBは、JavaのオブジェクトのクラスからXMLスキーマを自動生成し、自動生成したXMLスキーマに基づきJavaのオブジェクトからXML文書を生成することができる。
また、非特許文献3および非特許文献4には、XML文書とオブジェクトとの間のマッピングを行うデータバインディングツールが記載されている。このようなツールまたはライブラリ、または、PHP(Hypertext Preprocessor)のSOAP機能は、任意のオブジェクトをXML文書に変換することができる。
また、特許文献1には、XML文書をオブジェクト以外のデータモデルへ変換させる方法が記載されている。非特許文献5には、木編集問題、すなわち、第1の木構造に編集操作を加えることにより第2の木構造と同型の木構造を得るための編集コストおよび手順を算出する問題の解法について記載がされている。
特開2003−256455号公報 "Document Object Model (DOM) Level 3 Core Specification"、2004年4月7日、W3C、[平成20年9月10日検索]、インターネット<URL:http://www.w3.org/TR/DOM-Level-3-Core/> "JSR 222: Java Architecture for XML Binding (JAXB) 2.0"、Java Community Process、[平成20年9月10日検索]、インターネット<URL:http://jcp.org/en/jsr/detail?id=222> "Castor XML Mapping"、ExoLab Group,Intalio Inc.、[平成20年9月10日検索]、インターネット<URL:http://www.castor.org/xml-mapping.html> "JiBX: Binding XML to Java Code"、Sosnoski Software Solutions Inc.、[平成20年9月10日検索]、インターネット<URL:http://jibx.sourceforge.net/> Philip Bille、"A survey on tree edit distance and related problems"、2005年6月、[平成20年9月10日検索]、インターネット<URL:http://portal.acm.org/citation.cfm?id=1085283>
ところで、以上のようなプログラム中のオブジェクトをXML文書に変換する各処理は、いずれも煩雑であった。例えば、非特許文献1に記載されたDOMは、XML文書の要素を正確に反映したオブジェクトがプログラムにより予め生成されていなければ、変換ができなかった。また、非特許文献2に記載されたJAXBは、XMLスキーマを生成したクラスを利用していないオブジェクトをXML文書に変換することができなかった。
また、非特許文献3および非特許文献4に記載されたツールまたはライブラリ、または、PHPのSOAP機能は、クラスのオブジェクトの各プロパティとXML文書の各要素との対応関係を予め記述しなければならかった。さらに、これらの記述を、全てのオブジェクトのクラスおよびXML文書の要素について行わなければならなかった。
そこで本発明は、上記の課題を解決することのできる生成装置、プログラムおよび生成方法を提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
上記課題を解決するために、本発明の第1の態様においては、プログラム中のオブジェクトに含まれる各プロパティと構造化文書の各要素とのマッピングを生成する生成装置であって、前記オブジェクトに含まれる各プロパティを木構造のノードとして割り当てて、前記オブジェクトの階層構造を示す木構造を生成するオブジェクト木生成部と、前記オブジェクトに含まれる各プロパティおよび前記構造化文書の各要素を対応付けるマッピングのうち、前記オブジェクトの木構造を前記構造化文書の各要素をノードとする木構造に変換する変換コストを最小化するマッピングを選択する選択部と、を備える生成装置、コンピュータを当該生成装置として機能させるプログラムおよび生成方法を提供する。なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、本実施形態に係る情報処理装置10の機能構成を示す。情報処理装置10は、プログラムを実行したコンピュータにより実現される。そして、情報処理装置10は、当該プログラムにより提供される情報処理を実行する。
また、情報処理装置10は、例えばネットワーク上の他のコンピュータにより提供されるWebサービスを利用することができる。より詳しくは、情報処理装置10は、XML文書を含んだSOAPメッセージをWebサービスに送信する。そして、情報処理装置10は、処理結果を表わすXML文書を含んだSOAPメッセージを当該Webサービスから受信し、当該処理結果を用いた情報処理を実行する。
情報処理装置10は、プログラム処理部12と、スキーマ記憶部14と、ライブラリ処理部16とを備える。プログラム処理部12は、コンピュータがプログラムを実行することにより実現される。スキーマ記憶部14は、当該情報処理装置10が利用するWebサービスとの間でやり取りされるSOAPメッセージに含まれるXML文書を定義するスキーマを記憶する。スキーマ記憶部14は、コンピュータ内の記憶装置または当該コンピュータとネットワークを接続された記憶装置により実現される。
ライブラリ処理部16は、所定のWebサービスとの間でXML文書を含んだSOAPメッセージをやり取りする。ライブラリ処理部16は、プログラム処理部12が関数呼び出し処理を実行することに応じて呼び出されるライブラリ内のプログラムを、コンピュータが実行することにより実現される。
より詳しくは、ライブラリ処理部16は、プログラム処理部12からオブジェクトを引数として含んだ関数呼び出しを受信する。続いて、ライブラリ処理部16は、当該オブジェクトをスキーマ記憶部14に記憶されたXMLスキーマに従ったXML文書に変換する。続いて、ライブラリ処理部16は、生成したXML文書を含むSOAPメッセージをWebサービスに対して送信する。続いて、ライブラリ処理部16は、XML文書により表わされた処理結果を含むSOAPメッセージを当該Webサービスから受信する。そして、ライブラリ処理部16は、XML文書により表わされた処理結果をプログラム処理部12により取り扱われるデータ形式のオブジェクトに変換して、戻り値としてプログラム処理部12に送る。
図2は、本実施形態に係る生成装置20の機能構成を示す。生成装置20は、ライブラリ処理部16の機能の一部として実現され、プログラム中のオブジェクトを、スキーマに従った構造化文書に変換する。より詳しくは、生成装置20は、プログラム中のオブジェクトに含まれる各プロパティと、スキーマに基づき生成される構造化文書の各要素との対応関係を表わすマッピングを生成する。そして、生成装置20は、生成したマッピングに基づいて、オブジェクトに含まれる各プロパティの値を当該プロパティに対応する要素の値として含んだ、スキーマに従った構造化文書を生成して出力する。
ここで、オブジェクトとは、オブジェクト指向プログラムにおいて取り扱うオブジェクト、配列データ、および、PHPにより記述されたプログラム等で利用される連続配列データ等を意味する。また、スキーマとは、構造化文書の階層構造を定義する情報を意味する。本実施形態においては、スキーマは、構造化文書の一例であるXML文書の階層構造を定義する。また、生成装置20は、1つのオブジェクトを1つの構造間文書に変換してもよいし、複数のオブジェクトを1つの構造化文書に変換してもよい。また、生成装置20は、オブジェクトを、XML文書以外の構造化文書(例えばHTML(Hypertext Markup Language)文書)に変換する構成であってもよい。
生成装置20は、受取部32と、オブジェクト木生成部34と、文書木生成部36と、選択部42と、変換部44と、送信部46とを備える。受取部32は、プログラムの実行中において、オブジェクトを引数として、当該オブジェクトをXML文書に変換して送信することを指示する関数呼び出しをプログラム処理部12から受け取る。
オブジェクト木生成部34は、受取部32が受け取った関数呼び出し内のオブジェクトに含まれる各プロパティを木構造のノードとして割り当てて、オブジェクトの階層構造を示す木構造を生成する。文書木生成部36は、スキーマ記憶部14に記憶されたXML文書の階層構造を記述したスキーマから、当該XML文書の各要素をノードとする木構造を生成する。例えば、文書木生成部36は、スキーマに記述されたXML文書の各要素名の規定をノードとし、スキーマに記述されたXML文書の子要素の数の規定をエッジとする木構造を生成する。
選択部42は、オブジェクトに含まれる各プロパティおよびXML文書の各要素を対応付けるマッピングのうち、オブジェクトの木構造を文書木生成部36が生成したXML文書の木構造に変換する変換コストを最小化するマッピングを選択する。選択部42は、一例として、マッピング生成部52と、算出部54と、マッピング選択部56とを有する。
マッピング生成部52は、受取部32が受け取ったオブジェクトに含まれる各プロパティをXML文書の各要素に対応付けるマッピングを、複数生成する。算出部54は、マッピング生成部52により生成された複数のマッピングのそれぞれについて、当該マッピングに従って受取部32が受け取ったオブジェクトの木構造を文書木生成部36が生成したXML文書の木構造に変換する変換コストを算出する。マッピング選択部56は、マッピング生成部52により生成された複数のマッピングのうち、算出部54が算出した変換コストが最小のマッピングを選択する。
変換部44は、選択部42が選択したマッピングに基づいて、オブジェクトの各プロパティの値を対応する各要素の値として含むXML文書に変換する。送信部46は、変換部44が出力したXML文書を送信する。
図3は、生成装置20の処理フローを示す。まず、受取部32は、当該プログラム中のオブジェクトをXML文書に変換して送信することを指示する関数呼び出しを、プログラム処理部12から受け取る(S101)。
続いて、オブジェクト木生成部34は、受け取った関数呼び出しに引数として含まれるオブジェクトを取り出す。そして、オブジェクト木生成部34は、取り出したオブジェクトに含まれる各プロパティを木構造のノードとして割り当てて、オブジェクトの階層構造を示す木構造を生成する(ステップS102)。
続いて、文書木生成部36は、受け取った関数呼び出しに応じて出力すべきXML文書の階層構造を記述したスキーマを、スキーマ記憶部14から取得する。そして、文書木生成部36は、取得したスキーマから、当該スキーマにより従って送信されるべきXML文書の構造を規定する木構造を生成する(ステップS103)。
続いて、選択部42は、オブジェクトに含まれる各プロパティおよびXML文書の各要素を対応付けるマッピングのうち、オブジェクトの木構造を当該スキーマにより定義されたXML文書の木構造に当該マッピングに従って変換する変換コストを最小化するマッピングを選択する(ステップS104)。ここで、オブジェクトの木構造をXML文書の木構造にマッピングに従って変換する変換コストとは、当該オブジェクトの各プロパティに対応するノードが、当該マッピングにより当該プロパティに対応付けられた要素に対応するノードとなるように、オブジェクトの木構造をXML文書の木構造に変換するコストをいう。選択部42は、複数のマッピングのうちから、変換コストが最小のマッピングを見つけ出す。例えば、選択部42は、オブジェクトの木構造をXML文書の木構造に変換する変換コストが最小となるマッピングを、例えば非特許文献5に示されるような木編集問題を解いて見つけ出す。
続いて、変換部44は、選択部42が選択したマッピングに基づいて、受け取った関数呼び出しに引数として含まれるオブジェクトの各プロパティの値を対応する各要素の値として含む、スキーマにより定義されたXML文書に変換する(ステップS105)。続いて、送信部46は、変換部44が出力したXML文書を含むSOAPメッセージを、Webサービスに対して送信する(ステップS106)。
以上のように生成装置20によれば、プログラム中のオブジェクトに含まれる各プロパティと、スキーマにより定義された構造化文書(例えばXML文書)とのマッピングを自動的に生成することができる。なお、生成装置20は、選択部42により選択されたマッピングを外部に出力する構成であってもよい。このような生成装置20は、生成したマッピングを、オブジェクトをXML文書に変換する従来のツールに使用させたり、オブジェクトのプロパティとXML文書の要素との対応付けの解析の参考とさせたりすることができる。
図4は、図3のステップS104において行われる処理の一例を示す。例えば、選択部42は、図3のステップS104において、ステップS111〜ステップS113の処理を行ってよい。
まず、マッピング生成部52は、オブジェクトに含まれる各プロパティをXML文書の各要素に対応付ける複数のマッピングを生成する(ステップS111)。続いて、算出部54は、生成した複数のマッピングのそれぞれについて、オブジェクトの木構造を当該マッピングに従ってXML文書の木構造に変換するための最小編集コストを算出する(ステップS112)。そして、算出部54は、算出した最小編集コストを、当該マッピングにおける変換コストとする。
ここで、ある木構造(第1の木構造)を他の木構造(第2の木構造)と同一の階層構造とするための編集操作としては、例えば、ノードの名称変更、ノードの順序変更およびノードの追加等がある。このような編集操作を組み合わせることにより、第1の木構造を第2の木構造と同一の構造に変換することができる。また、それぞれの編集操作には編集操作コストが割り当てられている。第1の木構造を第2の木構造と同一の構造に変換する編集操作の手順は多数存在し、それぞれの手順で用いられる各編集操作の編集操作コストの合計は、手順毎に異なる。
従って、算出部54は、一例として、オブジェクトの木構造に対して、ノード(プロパティ)の名称変更、共通の親ノードに属する複数の子ノードの順序変更、および少なくとも1つのノードに対する親ノードの追加を含む編集操作を少なくとも1回適用する編集処理を行ってXML文書の木構造に変換した場合において、各編集操作に対応付けられた編集操作コストの合計を編集処理による編集コストとして算出してよい。そして、算出部54は、オブジェクトの木構造をXML文書の木構造に変換する少なくとも1つの編集処理のうち、編集コストが最小であると判断した編集処理における編集コストを最小編集コストとしてよい。
なお、オブジェクト内の全てのプロパティを含んだXML文書を生成すべきであるので、算出部54は、ノードの削除操作を含む編集処理については、編集コストを算出しなくてよい。また、算出部54は、編集コストが最小とならないと推定される編集処理、即ち、編集コストが予め定められた値より大きいと予め推定される編集処理については、編集コストを算出しなくてよい。これにより算出部54は、演算量を少なくすることができる。
続いて、マッピング選択部56は、マッピング生成部52が生成した複数のマッピングのうち、算出部54が算出した変換コストが最小のマッピングを選択する(ステップS113)。このように選択部42は、オブジェクトの木構造をXML文書の木構造に変換する変換コストが最小となるマッピングを見つけ出すことができる。なお、マッピング生成部52は、一部のマッピングについては処理を省略して、マッピングの選択を高速に完了させる構成であってよい。
図5は、PHPにより記述されたプログラムの一例を示す。図5に記述されたプログラムにおいて、"new AgileSoapClient("employee.wsdl")"は、"employee.wsdl"により定義されたWebサービスへのSOAPメッセージの送信を準備するプログラムを、ライブラリから呼ぶ出す関数呼び出しである。
また、図5に記述されたプログラムにおいて、"publishEmployee($person)"は、上記のプログラムにより準備された関数呼び出しおよび引数として含まれるオブジェクトの一例である。当該オブジェクトは、変数$personから参照され、プロパティとして、'name'、'firstname'および'age'を含む。また、各プロパティの値として、'name'='Tatsubori'、'firstname'='Michiaki'および'age'='33'が格納される。
図5のPHPプログラムをコンピュータが実行することにより、プログラム処理部12は、SOAPメッセージの送信を準備するプログラムを呼び出す関数呼び出し("new AgileSoapClient("employee.wsdl")")を、ライブラリ処理部16に与えることができる。そして、このような関数呼び出しが与えられたライブラリ処理部16は、別途呼び出された関数呼び出しおよび当該関数呼び出しに引数として含まれるオブジェクト("publishEmployee($person)")をXML文書に変換してSOAPメッセージに含めることができる。
図6および図7は、木構造に変換された後の、図5のプログラム中のオブジェクトのプロパティおよび値の一例を示す。図6は、XMLで記述した一例を示す。図7は、模式的に記述した一例を示す。オブジェクト木生成部34は、図5のプログラム中のオブジェクトが与えられた場合、図6および図7に示されるような、親ノード(anonymous)の直下に、3個の子ノード('name'='Tatsubori'、'firstname'='Michiaki'および'age'='33')を含む木構造を生成する。
図8は、Webサービスを定義するWSDLの一例を示す。図8のWSDLは、"PublishEmployeeServiceRequest"というWebサービスを定義する。ライブラリ処理部16は、図5のプログラム中の関数呼び出しにより呼び出されたことに応じて、図8のWSDLの定義に従ったSOAPメッセージを送信する。
図9は、XMLにより記述されたスキーマ(XMLスキーマ)の一例を示す。図10は、図9のスキーマにより定義されるXML文書の木構造を示す。
図9に示されるスキーマは、図8のWSDLにより定義されるWebサービスへ送信するSOAPメッセージに含めるXML文書の階層構造を定義する。図9のスキーマに従ったXML文書は、名称が、"Employee"、"person"、"name"、"age"、"first−name"、"middle−name"および"last−name"と定義された要素を含む。文書木生成部36は、図9のスキーマが与えられた場合、図10に示されるような木構造を生成する。
図9のスキーマにより定義されるXML文書の"Employee"要素は、図10に示されるように木構造におけるルートノードに配置される。"person"要素は、"Employee"要素の子ノードとして配置される。なお、"person"要素は、XML文書内に0個からn個(nは、1以上の任意の整数)まで設けることができる繰り返しノードである。
図9のスキーマにより定義されるXML文書の"name"要素および"age"要素は、図10に示されるように"person"要素の子ノードとして配置される。なお、"name"要素および"age"要素は、XML文書内に1個設けなければならない必須ノードである。また、"age"要素には、整数値が値として格納される。
図9のスキーマにより定義されるXML文書の"first−name"要素、"middle−name"要素および"last−name"要素は、図10に示されるように"name"要素の子ノードとして配置され、文字列が値として格納される。なお、"first−name"要素および"last−name"要素は、XML文書内に1個設けなければならない必須ノードである。また、"middle−name"要素は、XML文書内に設けることが任意なオプションノードである。
図11は、図7に示されたオブジェクトの木構造を、図10に示されたXML文書の木構造に変換するための編集の一例を示す。図11は、オブジェクトの'name'プロパティがXML文書の"last−name"要素に、オブジェクトの'firstname'プロパティがXML文書の"first−name"要素に、オブジェクトの'age'プロパティがXML文書の"age"要素に、マッピングによりそれぞれ対応付けられている例を示す。
本例において、算出部54は、オブジェクトの木構造における"anonymous"ノードの親ノードとして、"Employee"ノードを追加する編集操作を行ってよい。また、算出部54は、オブジェクトの木構造における"anonymous"ノードを、"person"ノードに名称変更する編集操作を行ってよい。
また、算出部54は、オブジェクトの木構造における"name"ノードおよび"firstname"ノードの親ノードとして、"neme"ノードを追加する編集操作を行ってよい。また、算出部54は、オブジェクトの木構造における"name"ノードを、"last−name"ノードに名称変更する編集操作を行ってよい。また、算出部54は、オブジェクトの木構造における"firstname"ノードを、"first−name"ノードに名称変更する編集操作を行ってよい。
算出部54は、オブジェクトの木構造に対して、このようなノードの名称変更および親ノードの追加等の編集操作を含む編集処理を行ってXML文書の木構造に変換した場合において、各編集操作に対応付けられた編集操作コストの合計を編集処理による編集コストとして算出する。そして、算出部54は、オブジェクトの木構造をXML文書の木構造に変換する少なくとも1つの編集処理のうち、編集コストが最小であると判断した編集処理における編集コストを最小編集コストとして算出する。
図12は、必須ノード、オプションノードおよび繰り返しノードの記述の一例を示す。算出部54は、オブジェクトの木構造の各ノードに、必須ノード、オプションノードおよび繰り返しノード等のノード種別を指定する種類情報(例えば、図12の"1"、"0..1"、"0..*")を付加する編集操作をしてよい。算出部54は、例えば、このような編集操作における編集操作コストを、ノードを追加する編集操作と比較して低い編集操作コストとしてよい。例えば、ノードを追加する編集操作の編集操作コストを1とした場合、種類情報を付加する編集操作の編集操作コストを0としてよい。
また、算出部54は、ノードの名称変更をする場合には、変更前のノードの名称(即ち、オブジェクトのプロパティの名称)と変更後のノードの名称(即ち、スキーマにより定義された要素)との文字列の距離(例えば、Levenshtein距離)を、当該編集操作に対応付けられた編集操作コストとしてよい。また、この場合において、算出部54は、プリフィックスのような名称の先頭に設けられる予め定められた部分の編集操作については、他の部分の編集操作と比較して編集操作コストを低くしてよい。
また、算出部54は、同一の親ノードを有する子ノード同士の入れ替えの編集操作については、他のノードとの入れ替えの編集操作と比較して編集操作コストを低くしてよい。算出部54は、一例として、同一の親ノードの子ノード同士の入れ替えの編集操作については、編集操作コストを0としてもよい。また、算出部54は、同レベルの複数のノードをまとめて新たなノードを生成する編集操作については、新たなノードを追加する編集操作と比較して編集コストを低くしてよい。
また、マッピング選択部56は、複数のオブジェクトのそれぞれのマッピングを生成する場合において、それぞれのオブジェクトについて選択したマッピングを記憶部に記憶してよい。そして、マッピング選択部56は、ある一のオブジェクトについて編集コストが同一の複数のマッピングが存在する場合、これら編集コストが同一の複数のマッピングのうち、記憶部に記憶されたマッピング(即ち、過去に選択されたマッピング)と同一または近似するマッピングを選択してよい。
図13は、選択部42により選択されたマッピングに基づいて、図5に示されるオブジェクトから変換されたXML文書の一例を示す。以上のように、選択部42は、オブジェクトに含まれる各プロパティおよびXML文書の各要素を対応付けるマッピングのうち、オブジェクトの木構造を、文書木生成部36が生成したXML文書の木構造に変換する変換コストを最小化するマッピングを選択する。
本例において、選択部42は、オブジェクトの'name'プロパティをXML文書の"last−name"要素に、オブジェクトの'firstname'プロパティをXML文書の"first−name"要素に、オブジェクトの'age'プロパティをXML文書の"age"要素に対応付けたマッピングを選択する。この結果、変換部44は、図5に示されるオブジェクトが与えられたことに応じて、図13に示されるようなXML文書を出力することができる。このように変換部44によれば、与えられたオブジェクトを、スキーマに従ったXML文書に変換することができる。
図14は、配列を含んだオブジェクトの木構造の一例を示す。図15は、繰り返し要素を含んだXML文書の木構造の一例を示す。
図14において、"memberList"ノードは、配列の各要素を子ノードとする配列ノードを示す。また、図15において、"member"ノードは、繰り返しが指定された繰り返し要素に対応する繰り返しノードを示す。
プログラムから与えられたオブジェクトが配列を含む場合、オブジェクト木生成部34は、図14に示されるような、オブジェクトに含まれる配列の各要素を子ノードとする配列ノードを含むオブジェクトの木構造を生成してよい。また、スキーマにより定義されたXML文書が繰り返し要素を含む場合、文書木生成部36は、図15に示されるような、XML文書において繰り返しが指定された繰り返し要素を繰り返しノードとして含むXML文書の木構造を生成してよい。
そして、プログラムから与えられたオブジェクトが配列を含み、スキーマにより定義されたXML文書が繰り返し要素を含む場合、マッピング生成部52は、オブジェクトに含まれる配列のプロパティを、XML文書において繰り返しが指定された繰り返し要素に対応付けたマッピングを生成してよい。すなわち、マッピング生成部52は、オブジェクトの木構造中における配列ノードを、XML文書の木構造中における繰り返しノードに対応付けるマッピングを生成する。これにより、マッピング生成部52は、オブジェクトに含まれる配列のプロパティを、XML文書において繰り返しが指定された繰り返し要素に対応付けたマッピングを生成することができる。
図16Aは、図14のオブジェクトの木構造から、配列ノードの子ノードを除いた木構造の一例を示す。図16Bは、図15のXML文書の木構造から、繰り返しノードの子ノードを除いた木構造の一例を示す。図17Aは、図14のオブジェクトの木構造のうち、配列ノードの1つの子ノードから末端側の木構造の一例を示す。図17Aは、図15のXML文書の木構造のうち、繰り返しノードの1つの子ノードから末端側の木構造の一例を示す。
プログラムから与えられたオブジェクトが配列を含み、スキーマにより定義されたXML文書が繰り返し要素を含む場合、マッピング生成部52は、図16Aに示されるようなオブジェクトの木構造から配列ノードの子ノードを除いた木構造と、図16Bに示されるようなXML文書の木構造から繰り返しノードの子ノードを除いた木構造との間で、ノード同士の対応付けを生成してよい。
また、この場合、マッピング生成部52は、オブジェクトの木構造中における配列ノードとXML文書の木構造中における繰り返しノードとが対応付けられたことに応じて、配列ノードおよび繰り返しノードの子ノード同士の対応付けを生成してよい。即ち、マッピング生成部52は、図17Aに示されるような配列ノードの1つの子ノードから末端側の木構造と、図17Bに示されるような繰り返しノードの1つの子ノードから末端側の木構造との対応付けを生成してよい。これにより、マッピング生成部52は、オブジェクトに含まれる配列の各要素のプロパティを、XML文書において繰り返しが指定された繰り返し要素の末端側の各要素に対応付けたマッピングを生成することができる。
また、文書木生成部36は、XML文書において、オプションであることが指定されたオプション要素をオプションノードとして含み、かつ必須であることが指定された必須要素を必須ノードとして含むXML文書の木構造を生成してよい。そして、オブジェクトの木構造中における子ノードを有するオブジェクト側親ノードを、XML文書の木構造中におけるオプションノードおよび必須ノードを有する文書側親ノードに対応付ける場合において、マッピング生成部52は、オブジェクトの木構造中における子ノードを、必須ノードに優先して対応付してよい。これにより、マッピング生成部52によれば、XML文書中の必須ノードに値が格納されず、スキーマに従ったXML文書が生成できなくなることを回避することができる。
また、複数のオブジェクトのそれぞれのマッピングを生成する場合において、マッピング生成部52は、プログラム中の一の部分の記述に基づいて一の子ノードを必須ノードに対応付けたことに応じて、当該対応付けを履歴記憶部に格納してよい。そして、マッピング生成部52は、プログラム中の他の部分の記述に基づいて、一の子ノードと必須ノードとの対応付けが履歴記憶部に格納されていることに応じて一の子ノードを必須ノードに対応付け、他の子ノードをオプションノードに対応付けてよい。これにより、マッピング生成部52は、プログラム中の複数のオブジェクトのそれぞれについて、一貫性のあるマッピングを実現することができる。
図18は、本実施形態に係るコンピュータ1900のハードウェア構成の一例を示す。本実施形態に係るコンピュータ1900は、ホスト・コントローラ2082により相互に接続されるCPU2000、RAM2020、グラフィック・コントローラ2075、及び表示装置2080を有するCPU周辺部と、入出力コントローラ2084によりホスト・コントローラ2082に接続される通信インターフェイス2030、ハードディスクドライブ2040、及びCD−ROMドライブ2060を有する入出力部と、入出力コントローラ2084に接続されるROM2010、フレキシブルディスク・ドライブ2050、及び入出力チップ2070を有するレガシー入出力部とを備える。
ホスト・コントローラ2082は、RAM2020と、高い転送レートでRAM2020をアクセスするCPU2000及びグラフィック・コントローラ2075とを接続する。CPU2000は、ROM2010及びRAM2020に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ2075は、CPU2000等がRAM2020内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置2080上に表示させる。これに代えて、グラフィック・コントローラ2075は、CPU2000等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
入出力コントローラ2084は、ホスト・コントローラ2082と、比較的高速な入出力装置である通信インターフェイス2030、ハードディスクドライブ2040、CD−ROMドライブ2060を接続する。通信インターフェイス2030は、ネットワークを介して他の装置と通信する。ハードディスクドライブ2040は、コンピュータ1900内のCPU2000が使用するプログラム及びデータを格納する。CD−ROMドライブ2060は、CD−ROM2095からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。
また、入出力コントローラ2084には、ROM2010と、フレキシブルディスク・ドライブ2050、及び入出力チップ2070の比較的低速な入出力装置とが接続される。ROM2010は、コンピュータ1900が起動時に実行するブート・プログラム、及び/又は、コンピュータ1900のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ2050は、フレキシブルディスク2090からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。入出力チップ2070は、フレキシブルディスク・ドライブ2050を入出力コントローラ2084へと接続すると共に、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ2084へと接続する。
RAM2020を介してハードディスクドライブ2040に提供されるプログラムは、フレキシブルディスク2090、CD−ROM2095、又はICカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、RAM2020を介してコンピュータ1900内のハードディスクドライブ2040にインストールされ、CPU2000において実行される。
コンピュータ1900にインストールされ、コンピュータ1900を生成装置20として機能させるプログラムは、受取モジュールと、オブジェクト木生成モジュールと、文書木生成モジュールと、選択モジュールと、変換モジュールと、送信モジュールとを備える。これらのプログラム又はモジュールは、CPU2000等に働きかけて、コンピュータ1900を、受取部32、オブジェクト木生成部34、文書木生成部36、選択部42、変換部44および送信部46としてそれぞれ機能させる。
これらのプログラムに記述された情報処理は、コンピュータ1900に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段である受取部32、オブジェクト木生成部34、文書木生成部36、選択部42、変換部44および送信部46として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ1900の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有の生成装置20が構築される。
一例として、コンピュータ1900と外部の装置等との間で通信を行う場合には、CPU2000は、RAM2020上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス2030に対して通信処理を指示する。通信インターフェイス2030は、CPU2000の制御を受けて、RAM2020、ハードディスクドライブ2040、フレキシブルディスク2090、又はCD−ROM2095等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス2030は、DMA(ダイレクト・メモリ・アクセス)方式により記憶装置との間で送受信データを転送してもよく、これに代えて、CPU2000が転送元の記憶装置又は通信インターフェイス2030からデータを読み出し、転送先の通信インターフェイス2030又は記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
また、CPU2000は、ハードディスクドライブ2040、CD−ROMドライブ2060(CD−ROM2095)、フレキシブルディスク・ドライブ2050(フレキシブルディスク2090)等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をDMA転送等によりRAM2020へと読み込ませ、RAM2020上のデータに対して各種の処理を行う。そして、CPU2000は、処理を終えたデータを、DMA転送等により外部記憶装置へと書き戻す。このような処理において、RAM2020は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはRAM2020および外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、CPU2000は、RAM2020の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはRAM2020の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもRAM2020、メモリ、及び/又は記憶装置に含まれるものとする。
また、CPU2000は、RAM2020から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、RAM2020へと書き戻す。例えば、CPU2000は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすかどうかを判断し、条件が成立した場合(又は不成立であった場合)に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
また、CPU2000は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第1属性の属性値に対し第2属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、CPU2000は、記憶装置に格納されている複数のエントリの中から第1属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第2属性の属性値を読み出すことにより、所定の条件を満たす第1属性に対応付けられた第2属性の属性値を得ることができる。
以上に示したプログラム又はモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、フレキシブルディスク2090、CD−ROM2095の他に、DVD又はCD等の光学記録媒体、MO等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワーク又はインターネットに接続されたサーバシステムに設けたハードディスク又はRAM等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ1900に提供してもよい。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
図1は、本発明の実施形態に係る情報処理装置10の機能構成を示す。 図2は、本発明の実施形態に係る生成装置20の機能構成を示す。 図3は、生成装置20の処理フローを示す。 図4は、図3のステップS104において行われる処理の一例を示す。 図5は、PHPにより記述されたプログラムの一例を示す。 図6は、XMLで記述された、木構造に変換された後の、図5のプログラム中のオブジェクトのプロパティおよび値の一例を示す。 図7は、模式的に記述された、木構造に変換された後の、図5のプログラム中のオブジェクトのプロパティおよび値の一例を示す。 図8は、Webサービスを定義するWSDLの一例を示す。 図9は、XMLにより記述されたスキーマ(XMLスキーマ)の一例を示す。図10は、図9のスキーマにより定義されるXML文書の木構造を示す。 図10は、図9のスキーマにより定義されるXML文書の木構造を示す。 図11は、図7に示されたオブジェクトの木構造を、図10に示されたXML文書の木構造に変換するための編集の一例を示す。 図12は、必須ノード、オプションノードおよび繰り返しノードの記述の一例を示す。 図13は、選択部42により選択されたマッピングに基づいて、図5に示されるオブジェクトから変換されたXML文書の一例を示す。 図14は、配列を含んだオブジェクトの木構造の一例を示す。 図15は、繰り返し要素を含んだXML文書の木構造の一例を示す。 図16Aは、図14のオブジェクトの木構造から、配列ノードの子ノードを除いた木構造の一例を示す。 図16Bは、図15のXML文書の木構造から、繰り返しノードの子ノードを除いた木構造の一例を示す。 図17Aは、図14のオブジェクトの木構造のうち、配列ノードの1つの子ノードから末端側の木構造の一例を示す。 図17Aは、図15のXML文書の木構造のうち、繰り返しノードの1つの子ノードから末端側の木構造の一例を示す。 本発明の実施形態に係るコンピュータ1900のハードウェア構成の一例を示す。
符号の説明
10 情報処理装置
12 プログラム処理部
14 スキーマ記憶部
16 ライブラリ処理部
20 生成装置
32 受取部
34 オブジェクト木生成部
36 文書木生成部
42 選択部
44 変換部
46 送信部
52 マッピング生成部
54 算出部
56 マッピング選択部
1900 コンピュータ
2000 CPU
2010 ROM
2020 RAM
2030 通信インターフェイス
2040 ハードディスクドライブ
2050 フレキシブルディスク・ドライブ
2060 CD−ROMドライブ
2070 入出力チップ
2075 グラフィック・コントローラ
2080 表示装置
2082 ホスト・コントローラ
2084 入出力コントローラ
2090 フレキシブルディスク
2095 CD−ROM

Claims (13)

  1. プログラム中のオブジェクトに含まれる各プロパティと構造化文書の各要素とのマッピングを生成する生成装置であって、
    前記オブジェクトに含まれる各プロパティを木構造のノードとして割り当てて、前記オブジェクトの階層構造を示す木構造を生成するオブジェクト木生成部と、
    前記オブジェクトに含まれる各プロパティおよび前記構造化文書の各要素を対応付けるマッピングのうち、前記オブジェクトの木構造を前記構造化文書の各要素をノードとする木構造に変換する変換コストを最小化するマッピングを選択する選択部と、
    を備え、
    前記選択部は、
    前記オブジェクトの木構造を前記構造化文書の木構造に変換するための最小編集コストを、編集操作に対応付けられた編集操作コストの合計から算出して、前記マッピングにおける変換コストとする算出部と、
    前記算出部が算出した変換コストが最小のマッピングを選択するマッピング選択部とを有し、
    前記算出部は、前記オブジェクトの木構造の各ノードに、必須ノード、オプションノードおよび繰り返しノードを含むノード種別を指定する種類情報を付加する編集操作を行い、
    前記種類情報を付加する編集操作における編集操作コストを、ノードを追加する編集操作と比較して低い編集操作コストとする生成装置。
  2. 前記構造化文書の階層構造を記述したスキーマから前記構造化文書の木構造を生成する文書木生成部を更に備え、
    前記選択部は、前記オブジェクトに含まれる各プロパティおよび前記構造化文書の各要素を対応付けるマッピングのうち、前記オブジェクトの木構造を、前記文書木生成部が生成した前記構造化文書の木構造に変換する変換コストを最小化するマッピングを選択する
    請求項に記載の生成装置。
  3. 前記選択部が選択したマッピングに基づいて、前記オブジェクトの各プロパティの値を対応する各要素の値として含む前記構造化文書に変換する変換部をさらに備える請求項1またはに記載の生成装置。
  4. 前記プログラムの実行中において、前記オブジェクトを引数として、前記オブジェクトを前記構造化文書に変換して送信することを指示する関数呼び出しを受け取る受取部と、
    前記変換部が出力した前記構造化文書を送信する送信部と、
    を更に備える請求項に記載の生成装置。
  5. 前記オブジェクトに含まれる配列のプロパティを、前記構造化文書において繰り返しが指定された繰り返し要素に対応付けたマッピングを生成するマッピング生成部を更に備える請求項1からのいずれか1項に記載の生成装置。
  6. 前記オブジェクト木生成部は、前記オブジェクトに含まれる配列の各要素を子ノードとする配列ノードを含む前記オブジェクトの木構造を生成し、
    前記文書木生成部は、前記構造化文書において繰り返しが指定された繰り返し要素を繰り返しノードとして含む前記構造化文書の木構造を生成し、
    前記オブジェクトの木構造中における前記配列ノードを、前記構造化文書の木構造中における前記繰り返しノードに対応付けるマッピングを生成するマッピング生成部を更に備える
    請求項に記載の生成装置。
  7. 前記マッピング生成部は、
    前記オブジェクトの木構造から前記配列ノードの子ノードを除いた木構造と、前記構造化文書の木構造から前記繰り返しノードの子ノードを除いた木構造との間で、ノード同士の対応付けを生成し、
    前記オブジェクトの木構造中における前記配列ノードと前記構造化文書の木構造中における前記繰り返しノードとが対応付けられたことに応じて、前記配列ノードおよび前記繰り返しノードの子ノード同士の対応付けを生成する
    請求項に記載の生成装置。
  8. 前記文書木生成部は、前記構造化文書において、オプションであることが指定されたオプション要素をオプションノードとして含み、かつ必須であることが指定された必須要素を必須ノードとして含む前記構造化文書の木構造を生成し、
    前記オブジェクトの木構造中における子ノードを有するオブジェクト側親ノードを、前記構造化文書の木構造中における前記オプションノードおよび前記必須ノードを有する文書側親ノードに対応付ける場合において、前記オブジェクトの木構造中における前記子ノードを、前記必須ノードに優先して対応付けるマッピング生成部を更に備える
    請求項に記載の生成装置。
  9. それぞれのマッピングを生成する場合において、前記マッピング生成部は、
    前記プログラム中の一の部分の記述に基づいて一の前記子ノードを前記必須ノードに対応付けたことに応じて、当該対応付けを履歴記憶部に格納し、
    前記プログラム中の他の部分の記述に基づいて、前記一の子ノードと前記必須ノードとの対応付けが前記履歴記憶部に格納されていることに応じて前記一の子ノードを前記必須ノードに対応付け、他の子ノードを前記オプションノードに対応付ける
    請求項に記載の生成装置。
  10. 前記算出部は、
    前記オブジェクトの木構造に対して、前記プロパティの名称変更、共通の親ノードに属する複数の子ノードの順序変更、および少なくとも1つのノードに対する親ノードの追加を含む編集操作を少なくとも1回適用する編集処理を行って前記構造化文書の木構造に変換した場合において、各編集操作に対応付けられた編集操作コストの合計を前記編集処理による編集コストとして算出し、
    前記オブジェクトの木構造を前記構造化文書の木構造に変換する少なくとも1つの前記編集処理のうち、前記編集コストが最小であると判断した編集処理における前記編集コストを前記最小編集コストとする
    請求項1から9のいずれか1項に記載の生成装置。
  11. プログラム中のオブジェクトに含まれる各プロパティと構造化文書の各要素とのマッピングを生成する生成装置であって、
    前記プログラムの実行中において、前記オブジェクトを引数として、前記オブジェクトを前記構造化文書に変換して送信することを指示する関数呼び出しを受け取る受取部と、
    前記オブジェクトに含まれる各プロパティを木構造のノードとして割り当て、前記オブジェクトに含まれる配列については当該配列の各要素を子ノードとする配列ノードを含めて、前記オブジェクトの階層構造を示し、前記構造化文書において繰り返しが指定された繰り返し要素を繰り返しノードとして含む前記構造化文書の木構造を生成するオブジェクト木生成部と、
    前記構造化文書の階層構造を記述したスキーマから前記構造化文書の木構造を生成する文書木生成部と、
    前記オブジェクトの木構造中における前記配列ノードを、前記構造化文書の木構造中における前記繰り返しノードに対応付けるマッピングを生成するマッピング生成部と、
    前記オブジェクトに含まれる各プロパティおよび前記構造化文書の各要素を対応付けるマッピングのうち、前記オブジェクトの木構造を、前記文書木生成部が生成した前記構造化文書の木構造に変換する変換コストを最小化するマッピングを選択する選択部と、
    前記選択部が選択したマッピングに基づいて、前記オブジェクトの各プロパティの値を対応する各要素の値として含む前記構造化文書に変換する変換部と、
    前記変換部が出力した前記構造化文書を送信する送信部と、
    を備え、
    前記マッピング生成部は、
    前記オブジェクトの木構造から前記配列ノードの子ノードを除いた木構造と、前記構造化文書の木構造から前記繰り返しノードの子ノードを除いた木構造との間で、ノード同士の対応付けを生成し、
    前記オブジェクトの木構造中における前記配列ノードと前記構造化文書の木構造中における前記繰り返しノードとが対応付けられたことに応じて、前記配列ノードおよび前記繰り返しノードの子ノード同士の対応付けを生成し、
    前記選択部は、
    前記オブジェクトの木構造を前記構造化文書の木構造に変換するための最小編集コストを、編集操作に対応付けられた編集操作コストの合計から算出して、前記マッピングにおける変換コストとする算出部と、
    前記算出部が算出した変換コストが最小のマッピングを選択するマッピング選択部とを有し、
    前記算出部は、前記オブジェクトの木構造の各ノードに、必須ノード、オプションノードおよび繰り返しノードを含むノード種別を指定する種類情報を付加する編集操作を行い、
    前記種類情報を付加する編集操作における編集操作コストを、ノードを追加する編集操作と比較して低い編集操作コストとする生成装置。
  12. プログラム中のオブジェクトに含まれる各プロパティと構造化文書の各要素とのマッピングを生成する生成装置として、コンピュータを機能させるプログラムであって、
    前記コンピュータを、
    前記オブジェクトに含まれる各プロパティを木構造のノードとして割り当てて、前記オブジェクトの階層構造を示す木構造を生成するオブジェクト木生成部と、
    前記オブジェクトに含まれる各プロパティおよび前記構造化文書の各要素を対応付けるマッピングのうち、前記オブジェクトの木構造を前記構造化文書の各要素をノードとする木構造に変換する変換コストを最小化するマッピングを選択する選択部と、
    して機能させ、
    前記選択部を、
    前記オブジェクトの木構造を前記構造化文書の木構造に変換するための最小編集コストを、編集操作に対応付けられた編集操作コストの合計から算出して、前記マッピングにおける変換コストとする算出部と、
    前記算出部が算出した変換コストが最小のマッピングを選択するマッピング選択部と、
    して機能させ、
    前記算出部を、前記オブジェクトの木構造の各ノードに、必須ノード、オプションノードおよび繰り返しノードを含むノード種別を指定する種類情報を付加する編集操作を行い、
    前記種類情報を付加する編集操作における編集操作コストを、ノードを追加する編集操作と比較して低い編集操作コストとするように機能させるプログラム。
  13. コンピュータの処理により、プログラム中のオブジェクトに含まれる各プロパティと構造化文書の各要素とのマッピングを生成する生成方法であって、
    前記オブジェクトに含まれる各プロパティを木構造のノードとして割り当てて、前記オブジェクトの階層構造を示す木構造を生成するオブジェクト木生成ステップと、
    前記オブジェクトに含まれる各プロパティおよび前記構造化文書の各要素を対応付けるマッピングのうち、前記オブジェクトの木構造を前記構造化文書の各要素をノードとする
    木構造に変換する変換コストを最小化するマッピングを選択する選択ステップと、
    を備え、
    前記選択ステップは、
    前記オブジェクトの木構造を前記構造化文書の木構造に変換するための最小編集コストを、編集操作に対応付けられた編集操作コストの合計から算出して、前記マッピングにおける変換コストとする算出ステップと、
    前記算出ステップで算出した変換コストが最小のマッピングを選択するマッピング選択ステップとを有し、
    前記算出ステップにおいて、前記オブジェクトの木構造の各ノードに、必須ノード、オプションノードおよび繰り返しノードを含むノード種別を指定する種類情報を付加する編集操作を行い、
    前記種類情報を付加する編集操作における編集操作コストを、ノードを追加する編集操作と比較して低い編集操作コストとする生成方法。
JP2008245866A 2008-09-25 2008-09-25 生成装置、プログラムおよび生成方法 Expired - Fee Related JP5398213B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2008245866A JP5398213B2 (ja) 2008-09-25 2008-09-25 生成装置、プログラムおよび生成方法
US12/565,897 US9582291B2 (en) 2008-09-25 2009-09-24 Selecting a mapping that minimizes conversion costs
US15/423,274 US11194595B2 (en) 2008-09-25 2017-02-02 Generation apparatus, program, and generation method
US17/521,209 US20220058032A1 (en) 2008-09-25 2021-11-08 Generation apparatus, program, and generation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008245866A JP5398213B2 (ja) 2008-09-25 2008-09-25 生成装置、プログラムおよび生成方法

Publications (2)

Publication Number Publication Date
JP2010079511A JP2010079511A (ja) 2010-04-08
JP5398213B2 true JP5398213B2 (ja) 2014-01-29

Family

ID=42118694

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008245866A Expired - Fee Related JP5398213B2 (ja) 2008-09-25 2008-09-25 生成装置、プログラムおよび生成方法

Country Status (2)

Country Link
US (3) US9582291B2 (ja)
JP (1) JP5398213B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8725759B2 (en) * 2011-01-04 2014-05-13 Bank Of America Corporation Exposing data through simple object access protocol messages
AU2012282688B2 (en) 2011-07-11 2017-08-17 Paper Software LLC System and method for processing document
EP2732381A4 (en) 2011-07-11 2015-10-21 Paper Software LLC METHOD AND SYSTEM TO SEARCH FOR A DOCUMENT
AU2012281166B2 (en) * 2011-07-11 2017-08-24 Paper Software LLC System and method for processing document
US10572578B2 (en) 2011-07-11 2020-02-25 Paper Software LLC System and method for processing document
GB201300255D0 (en) * 2013-01-08 2013-02-20 Ibm Object naming
CN111159099B (zh) * 2019-11-15 2023-08-22 杭州数梦工场科技有限公司 在线数据生成方法、装置、电子设备和存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5963966A (en) * 1995-11-08 1999-10-05 Cybernet Systems Corporation Automated capture of technical documents for electronic review and distribution
JP4099948B2 (ja) * 2001-01-18 2008-06-11 株式会社日立製作所 構造化文書をプログラム言語の構造体データへマッピングするシステム及び方法及びプログラム
US6732095B1 (en) * 2001-04-13 2004-05-04 Siebel Systems, Inc. Method and apparatus for mapping between XML and relational representations
US20040168124A1 (en) * 2001-06-07 2004-08-26 Michael Beisiegel System and method of mapping between software objects & structured language element-based documents
US7089533B2 (en) * 2001-08-01 2006-08-08 Oic Acquisition I Corp Method and system for mapping between markup language document and an object model
JP4207438B2 (ja) 2002-03-06 2009-01-14 日本電気株式会社 Xml文書格納/検索装置及びそれに用いるxml文書格納/検索方法並びにそのプログラム
EP2439904B1 (en) * 2008-06-07 2014-01-15 Coherent Logix Incorporated Transmitting and receiving control information for use with multimedia streams

Also Published As

Publication number Publication date
JP2010079511A (ja) 2010-04-08
US11194595B2 (en) 2021-12-07
US20220058032A1 (en) 2022-02-24
US20170147539A1 (en) 2017-05-25
US20100107059A1 (en) 2010-04-29
US9582291B2 (en) 2017-02-28

Similar Documents

Publication Publication Date Title
CN108628661B (zh) 云制造服务的自动建置方法、云制造系统
US20220058032A1 (en) Generation apparatus, program, and generation method
JP4412674B2 (ja) モデル駆動型開発を支援する装置及び方法
JP3824298B2 (ja) サーバ、ウェブコンテンツ編集装置、コンピュータを用いてこれらを実現するプログラム、及びそのウェブコンテンツ編集方法並びに提供方法
KR101314949B1 (ko) 통합 환경 생성기
US7596546B2 (en) Method and apparatus for organizing, visualizing and using measured or modeled system statistics
US7111286B2 (en) Method, system and computer product for parsing binary data
US9424003B1 (en) Schema-less system output object parser and code generator
US7831919B1 (en) Generic web service frontend
US20030034989A1 (en) Application editing apparatus and data processing method and program
US7908598B2 (en) Automated creation of model and view code
CN108369591B (zh) 用于缓存和参数化ir的系统和方法
CN104156313A (zh) 一种Web服务测试用例自动生成方法
JP5480034B2 (ja) 構造化文書の木構造を分割するための方法、プログラムおよびシステム
CN112379917B (zh) 浏览器兼容性提升方法、装置、设备及存储介质
WO2021068692A1 (zh) 工作流迁移方法、装置、设备及计算机可读存储介质
CN112579679A (zh) 设计异构数据模型映射策略和自动转换方法及装置
Uyanik et al. A template-based code generator for web applications
JP3914081B2 (ja) アクセス権限設定方法および構造化文書管理システム
JP4388714B2 (ja) 連携プログラム
WO2004051470A1 (ja) プログラム自動変換方法およびプログラム自動変換装置
JP5703165B2 (ja) プログラム生成装置、その方法及びプログラム
JP4529766B2 (ja) 情報提供システム、情報提供方法、サーバ及び情報提供プログラム
JP2006209650A (ja) 利用権発行方法および利用権発行装置
US20040205591A1 (en) Method and program for XML data conversion

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110816

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130305

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130528

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130625

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20130626

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130826

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: 20131001

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131022

R150 Certificate of patent or registration of utility model

Ref document number: 5398213

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees