JP6011790B2 - ファイル管理装置およびコンピュータプログラム - Google Patents

ファイル管理装置およびコンピュータプログラム Download PDF

Info

Publication number
JP6011790B2
JP6011790B2 JP2012230990A JP2012230990A JP6011790B2 JP 6011790 B2 JP6011790 B2 JP 6011790B2 JP 2012230990 A JP2012230990 A JP 2012230990A JP 2012230990 A JP2012230990 A JP 2012230990A JP 6011790 B2 JP6011790 B2 JP 6011790B2
Authority
JP
Japan
Prior art keywords
document
difference
xpath
basic
procedure
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
JP2012230990A
Other languages
English (en)
Other versions
JP2014081886A (ja
Inventor
貴史 鈴木
貴史 鈴木
Original Assignee
バーチャレクス・コンサルティング株式会社
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 バーチャレクス・コンサルティング株式会社 filed Critical バーチャレクス・コンサルティング株式会社
Priority to JP2012230990A priority Critical patent/JP6011790B2/ja
Publication of JP2014081886A publication Critical patent/JP2014081886A/ja
Application granted granted Critical
Publication of JP6011790B2 publication Critical patent/JP6011790B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、論理的な構造が同一の複数の文書が存在する場合に、その文書を統合して単一の統合済文書を作成する文書処理技術に関する。
インターネット上の言語としては、ブラウザでの表示において簡便な「HTML」が普及したが、ファイル内の文字情報をデータとして利用する場合の利便性などから「XML」が普及した。
XMLには、タグの定義を自由設定でき、データ構造を表現でき、標準化が国際レベルで進められている、といったメリットがある。
一般に、業務改善を望む組織に対して外部のソフトウェアを導入する場合、業務改善のためのソフトウェア提供者(外部のソフトウェア業者)が、業務改善を望む組織に対するカスタマイズをする。すなわち、ソフトウェア提供者は、自らが提供する基本ソフトウェアをカスタマイズし、業務改善を望む組織へ提供する。
さて、ソフトウェア提供者が前記の基本ソフトウェアをバージョンアップしたとする。すると、前バージョンを提供した組織に対して、カスタマイズした内容を反映させてバージョンアップしなければならない。
より具体的には、「パッケージ基本部分」ファイルをもとにして「個別カスタマイズ部分」の内容を反映した「統合ファイル」を手作業で作成する必要がある。すなわち、後から「パッケージ基本部分」を改訂しようとしたとき、「統合ファイル」のどの箇所が基本部分で、どの箇所が個別カスタマイズ部分なのか判別不能となってしまい、改訂を入れることは著しく困難である。困難を承知で作業する場合には、注意と十分な検証を要する作業となってしまう。
前記のソフトウェアがXML言語で記述されている場合、以下のような問題が起きる。
すなわち、比較すべき複数のXML文書(たとえば、バージョンアップ前後のソフトウェアとバージョンアップ前にカスタマイズしたソフトウェア)にどのような差分が存在しているかを比較することは、簡単ではない。 たとえば、要素の照合、属性値の相違、子ノードの有無、といった差分までを抽出したり、比較したりすることは、簡単ではなかった。
更に具体的に説明する。
XML文書における任意の要素(属性含む)は、XPath(XML Path Language ;ソースツリー内のノードを正確に特定するための言語)を用いることで、その位置を一意に定めることができる。
しかし、XML文書における任意の要素を指し示したとしても、当該要素を一意に特定するXPathを生成することは容易ではない。「要素を一意に特定する」とは、当該要素が属する親要素、その親要素が属する祖先要素もまた一意に特定されねばならないことである。すなわち、「何を以ってその要素あるいは親要素あるいはルート要素に遡るまでに存在する祖先要素それぞれを、それぞれの階層中で一意であるかということを特定することが必要である」ということである。 したがって、任意の要素を指し示したとしても、当該要素を一意に特定するXPathを生成することは困難なのである。
同一の論理構造を備えたXML文書αとXML文書βとが既に存在していたとする。XML文書αの内容に対して、XML文書βの内容を上書きしたいとする。 つまり、XML文書αには存在しない要素であれば追加し、XML文書αにおいて既に存在する要素であれば書き換える、という作業をしようとしたとする。 このとき、XML文書βにおける任意の要素アが、XML文書α内に存在するのかしないかを、一意に特定する条件としてのXPath表現を生成することが、そもそも困難である。
本出願人は、先行する技術を検索したところ、以下のような技術を抽出した。
(NRIサイバーパテント社の「サイバーパテントデスク2・概念検索」を用いて「複数のXML文書のマージ、併合を簡単に行う」などを検索文書として入力した)
特許文献1に開示された技術は、XML文書の構造を、画像にて比較的に表現する、という技術である。
特許文献2に開示された技術は、システム形態に依存しない汎用的な形でのXML文書の処理を可能にするための技術である。
特開2008−210252号公報 特開2004−110650号公報
調査した先行技術のほか、前述した問題を解決する手法として、以下のような手法が提案されている。
まず、XML文書中におけるマージ(merge;統合/併合)する対象となる要素の全てに対して、一意性を特定するためのid属性を付与する。そして、比較すべき複数のXML文書の間において、そのid属性を比較し、既存有無をチェックする。 チェックの結果、統合を要する場合には、位置特定のためのXPath を生成するのである。
前述した手法を採用して運用するには、要素を特定するためのid属性を、異なるXML文書間で統一されたルールに従って付与する必要がある。つまり、新規id属性値は正しく発行し、または既存要素の場合にあっては既に決定されたid属性値を再利用しなければならない。 換言すれば、XMLの編集主体を単一のプログラムのみに制約し、かつ同プログラムは編集対象の関連およびその内容を常に把握・斟酌しながら編集を行わなければならない。
現場においては、複数のXML文書を異なる人物が作成編集することが前提である。 前述した業務改善のソフトウェア提供者にあてはめれば、基本ソフトウェアを作成する作成者と、提供先に対してカスタマイズ作業をする作業者とは異なるのが普通である。
そうした現場では、お互いの重複可能性を知り得ないという制約があり、上述の手法の運用が現実的ではないことは明白である。
そもそもXMLという言語は、極めて自由度が高いことを特徴としている。したがって前述の手法は、そのXMLの表現力を毀損してしまうという矛盾点を抱えている。
また、特許文献1および特許文献2に開示された技術は、前述してきた問題を一部解決している。 しかし、XML文書αの内容に対してXML文書βの内容を上書きすることによって複数のXML文書をマージするという作業に対しては、合理的に機能しない面がある。
以上、XML文書を例に挙げて説明してきたが、XMLに限らず、XHTML、HTMLなど、マークアップ言語を用いた構造化文書においては共通する課題である。
発明が解決しようとする課題は、極めて自由度が高いというマークアップ言語の特性に対する制限を最小限に抑えつつ、同一の論理構造を備えた複数の構造化文書を統合するという作業を合理化する技術を提供することにある。
課題を解決するための手段として、本願発明を提供する。
本発明は、第一の発明としてファイル管理装置、第二の発明としてコンピュータプログラムを提供する。
なお、以下、[特許請求の範囲]の記載と[発明を実施するための最良の形態]との対応関係を明らかにするため、[発明を実施するための形態]にて使用する番号・符号を、括弧書きにて付加する。しかし、その括弧書きの番号・符号は、[特許請求の範囲]に記載する発明の技術的範囲の解釈に用いられることは意図していない。
(第一の発明)
第一の発明は、同一の論理構造を持つ複数の構造化文書(たとえばXML文書10,20)のうち、一方の構造化文書(10)を基礎として他方の構造化文書(20)を統合して統合済み構造化文書(たとえば統合済みXML文書50)を作成するためのファイル管理装置に係る。
そのファイル管理装置は、 基礎となる構造化文書である基本文書(10)を蓄積する基本文書蓄積手段(19)と、 前記の基本文書(10)に対する差分となる差分文書(差分XML文書20)を入力する対象文書入力手段(29)と、 その対象文書入力手段(29)が入力した差分文書(20)を蓄積する差分文書蓄積手段(28)と、 差分統合を要する構造化文書の定義ファイルをマージルール記述ファイル(30)として蓄積する定義ファイル蓄積手段(39)と、 前記の定義ファイル蓄積手段(39)におけるマージルール記述ファイル(30)を用いて前記の差分文書(20)を走査する走査手段(69)と、 その走査手段(69)によって抽出された差分を差分要素(41)として、該抽出時点におけるXPath検索条件をXPathコンテキスト(40)として蓄積する走査過程蓄積手段(49)と、 その走査過程蓄積手段(49)に蓄積されたXPathコンテキスト(40)および差分要素(41) 、前記の基本文書(10)、および前記の差分文書(20)を用いて統合済み文書(50)を作成する差分反映手段(59)と、 を備える。
前記の差分反映手段(59)は、前記のXPathコンテキスト(40)を用いて差分要素が基本文書(10)に既存であるか否かを検索し、既存であれば上書きするとともに、存在していなければ追加することによって統合済み構造化文書を作成することとしたファイル管理装置である。
前記の「構造化文書」とは、XML、XHTML、HTMLなど、マークアップ言語を用いた構造化文書を指すものとする。
「XPath蓄積手段」、「XPath検索条件」、「XPathコンテキスト」などに用いる「XPath」という用語は、[特許請求の範囲]の解釈においてXML文書に限られない。XHTML、HTMLなど、マークアップ言語を用いた文書に適用する。
(作用)
基礎となる構造化文書である基本文書(10)を基本文書蓄積手段(19)が蓄積している。 一方、基本文書(10)に対する差分となる差分書(20)を、対象文書入力手段(29)が入力し、入力された差分文書(20)は、差分文書蓄積手段(28)に蓄積される。 更に、差分統合を要する文書の定義ファイルを、マージルール記述ファイル(30)として定義ファイル蓄積手段(39)が蓄積する。
前記の差分文書(20)に対して、定義ファイル蓄積手段(39)におけるマージルール記述ファイル(30)を用いて、走査手段(69)が走査する。その走査手段(69)によって抽出された差分は、差分要素(41)として、また該抽出時点におけるXPath検索条件はXPathコンテキスト(40)として走査過程蓄積手段(49)に蓄積される。
XPath蓄積手段(49)に蓄積されたXPathコンテキスト(40)、前記の基本文書(10)、および前記の差分文書(20)を用いて、差分反映手段(59)が統合済み文書(50)を作成する。すなわち、差分反映手段(59)は、前記のXPathコンテキスト(40) を用いて差分要素が基本文書(10)に既存であるか否かを検索する。そして、既存であれば上書きするとともに、存在していなければ追加することによって統合済み文書を作成する。
第一の発明は、構造化文書の構造、特にルート要素から連なるそれぞれの階層における任意の要素と、その要素を一意に特定する条件を記述した定義ファイル(「マージルール記述ファイル」という)を用いる。 そして、基本文書を基準としてではなく定義ファイルを基準として構造化文書を走査する。 構造定義と実際の要素を援用して構造化文書中から検証要素を一意に特定するXPathを動的に生成する。そこで生成したXPathを、位置特定手段として用いる。このことで、マークアップ言語を用いた構造化文書が備える本来の柔軟な表現力を保ったまま、複数の構造化文書を統合することができる。
(第一の発明のバリエーション1)
第一の発明は、以下のように形成してもよい。
すなわち、 前記の走査手段(69)が走査して前記の走査過程蓄積手段(49)に蓄積した前記のXPathコンテキスト(40)の全要素を結合することで差分検索XPath を生成して保持する差分検索XPath保持手段(58)と、 前記の差分検索XPathを用いて前記の差分文書(20)を検索してヒットした要素を結合して既存検査XPath を生成して保持する既存検査XPath保持手段(57)と、を備える。
そして、前記の差分反映手段(59)は、前記の既存検査XPath保持手段(57)に保持された既存検査XPathを用いて基本文書(10)を検索し、既存要素が存在するときには差分文書(20)の属性値を反映し、既存要素が存在しないときには差分文書(20)の要素を新規要素として追加することとしてもよい。
(作用)
前記の走査手段(69)は、前記の走査過程蓄積手段(49)に蓄積した前記のXPathコンテキスト(40)を走査し、全要素を結合することで差分検索XPath を生成し、差分検索XPath保持手段(58)にて保持する。 また、前記の差分検索XPathを用いて前記の差分文書(20)を検索してヒットした要素を結合して既存検査XPath を生成し、既存検査XPath保持手段(57)へ保持する。
前記の差分反映手段(59)は、前記の既存検査XPath保持手段(57)に保持された既存検査XPathを用いて基本文書(10)を検索する。そして、既存要素が存在するときには差分文書(20)の属性値を反映し、既存要素が存在しないときには差分文書(20)の要素を新規要素として追加、最終的に基本文書(10)に差分文書(20)の内容を反映した統合済み文書(50)を作成する。
なお、「保持」は、ランダムアクセスメモリのように、一時的な記憶でもよいし、不揮発性メモリへ保存する記憶でもよい。
(第一の発明のバリエーション2)
第一の発明は、前記のマージルール記述ファイル(30)において、子孫ルールが存在する場合に、前記の走査手段(69)が、その子孫ルールを用いて前記の差分文書(20)を走査することとしてもよい。
ここで、「子孫ルール」とは、ひとつのルールに対して、階層化された一つ下のルールを「子ルール」、その「子ルール」の更に下へ階層化されたルールを「孫ルール」という。 説明の便宜上、「ひとつのルール」(第一階層)、「子ルール」(第二階層)、「孫ルール」(第三階層)までの表現にとどめるが、子孫ルールとして適用可能な階層の深さについての制約は、特にない。
(第二の発明)
第二の発明は、同一の論理構造を持つ複数の構造化文書のうち、一方の構造化文書を基礎として他方の構造化文書を統合して統合済みの構造化文書を作成するためのコンピュータプログラムに係る。
そのプログラムは、 基礎となる構造化文書である基本文書を蓄積する基本文書蓄積手順と、 前記の基本文書に対する差分となる構造化文書である差分文書を入力する対象文書入力手順と、 その対象文書入力手段が入力した差分文書を蓄積する差分蓄積手順と、 差分統合を要する構造化文書の定義ファイルをマージルール記述ファイルとして蓄積する定義ファイル蓄積手順と、 前記の定義ファイル蓄積手段におけるマージルール記述ファイルを用いて前記の差分文書を走査する走査手順と、 その走査手順にて抽出された差分をXPathコンテキストとして蓄積するXPath蓄積手順と、 そのXPath蓄積手順に蓄積されたXPathコンテキスト、前記の基本文書、および前記の差分文書を用いて統合済み文書を作成する差分反映手順と、 をコンピュータに実行させるものである。
前記の差分反映手順は、前記のXPathコンテキストを用いて差分要素が基本文書に既存であるか検索し、既存であれば上書きするとともに、存在していなければ追加することによって統合済み文書を作成する。
(第二の発明のバリエーション1)
第二の発明は、以下のように形成してもよい。
すなわち、 前記の走査手順にて走査して前記の走査過程蓄積手段(49)に蓄積した前記のXPathコンテキストの全要素を結合することで差分検索XPath を生成して保持する差分検索XPath保持手順と、 前記の差分検索XPathを用いて前記の差分文書を検索してヒットした要素を結合して既存検査XPath を生成して保持する既存検査XPath保持手順と、 を更にコンピュータに実行させることとする。
そして、前記の差分反映手順は、前記の既存検査XPath保持手段に保持された既存検査XPathを用いて基本文書(10)を検索し、既存要素が存在するとき差分文書(10)の属性値を反映し、既存要素が存在しないとき差分文書(20)の要素を新規要素として追加、最終的に基本文書(10)に差分文書(20)の内容を反映した統合済み文書を作成することとする。
(第二の発明のバリエーション2)
第二の発明は、前記のマージルール記述ファイルにおいて、子孫ルールが存在する場合には、前記の走査手順および前記の差分反映手順を、子孫ルールについて、および/または該子孫ルールの子孫たる子孫ルールについて、再帰的にコンピュータに実行させることとしてもよい。
(第二の発明の提供形態)
第二の発明は、CD−R、DVD−Rなどの記録媒体に記憶させて提供することもできるし、通信回線を介してインストールすることで提供することもできる。
本願発明によれば、極めて自由度が高いというマークアップ言語の特性に対する制限を最小限に抑えつつ、同一の論理構造を備えた複数の構造化文書を統合するという作業を合理化する技術を提供することができた。
第一の実施形態を示すブロック図である。 第二の実施形態を示すブロック図である。 統合する手順を示す概念図である。 統合する手順を示す概念図である。 統合する手順を示す概念図である。 統合する手順を示す概念図である。 統合する手順を示す概念図である。 統合する手順を示す概念図である。 統合する手順を示す概念図である。
以下、図面を用いて、本発明を実施した場合の形態について説明する。ここで使用する図面は、図1から図9である。
図1および図2を用いて二つの実施形態の概要を説明し、続いて図3以降で本実施形態に用いる情報処理の手順を詳細に説明する。
なお、下記の実施形態では、マークアップ言語としてXML文書を採用したが、本願発明は、XML文書に限られるものではない。
(図1)
図1では、M社、N社という2つの組織に対して、アプリケーション提供者がXML文書ファイルにてアプリケーションを提供した、という実施形態である。
ここで、アプリケーション提供者は、M社に対してもN社に対しても、それら組織に対応したカスタマイズを施している。あるいは、M社、N社における組織内の担当者が組織に対応したカスタマイズを施している場合であってもよい。
この場合、アプリケーション提供者がM社、N社に対して提供することとなったアプリケーションのカスタマイズ前の文書は、基本XML文書10であり、基本文書蓄積手段19に蓄積されている。
一方、M社、N社においてカスタマイズされたXML文書をそれぞれ、M社差分XML文書21、N社差分XML文書22とする。それら差分XML文書20を、基本XML文書10に統合するため、まず、対象文書入力手段29へ入力する。対象文書入力手段29とは、一般的には、M社差分XML文書21、N社差分XML文書22が格納されたコンピュータから送信され、統合作業を実行するコンピュータにおける受信手段である。ただし、記録媒体に格納したM社差分XML文書21、N社差分XML文書22をインストールする場合には、その記録媒体の読み取り装置が対象文書入力手段29となる。
一方、差分統合を要するXML文書の定義ファイルを、マージルール記述ファイル30として定義ファイル蓄積手段39に蓄積しておく。
前記の差分XML文書20に対し、定義ファイル蓄積手段39におけるマージルール記述ファイル30を用いて、走査手段69が走査する。この走査手段69によって抽出された差分は、XPathコンテキスト40として走査過程蓄積手段49に蓄積される。
走査過程蓄積手段49に蓄積されたXPathコンテキスト40、前記の基本XML文書10、および前記の差分XML文書20を用いて、差分反映手段59が統合済みXML文書50を作成する。すなわち、差分反映手段59は、前記のXPathコンテキスト40を用い差分要素が基本XML文書10に既存であるかを検索する。そして、既存であれば上書きするとともに、存在していなければ追加することによって統合済みXML文書を作成する。
(図2)
図2に示す第二の実施形態は、基本文書蓄積手段10に、基本XML文書のバージョン1(図中では「ver1」と略記)とバージョン2(図中では「ver2」と略記)が存在する場合において、M社特有のXML文書21を統合して、統合済み文書のバージョン1,2をそれぞれ自動作成する場合である。
図1に示した実施形態と異なる点は、以下の点である。すなわち、基本文書蓄積手段10に2つのバージョンの文書11,12が蓄積されており、対象文書入力手段29にはM社差分XML文書21が入力され、統合文書筑西手段56には、M社統合済み文書のバージョン1(53)と、バージョン2(54)とが最終的には蓄積されることとなる。
図3以後、走査手段69および差分反映手段59が、どのような情報処理を実行しているかを、図中の「[ ]」にて囲まれた数字を示しながら順次説明する。
(図3)
最初に、マージルール記述ファイル30の中から、ルールを1件読み出す[1]。
図中では、ルート要素「merge-rule」という記載箇所がルール要素を示しているので、その直下に位置する「cond path="/codedef"」の行が、読み出すべきルールとなる。
このルールの階層をたどり、「/codedef」を抽出し、XPathコンテキスト40として追加する[2]。そして、XPathコンテキストの全要素を結合し、差分検索XPathを作成し[3]、差分検索XPath保持手段58へ一時的に格納する(実際には、ランダムアクセスメモリへ「/codedef」を記憶させる)。
更に、この差分検索XPathを用いて、差分XML文書20の該当箇所を検索する[4]。
(図4)
差分XML文書20の該当箇所として、差分検索XPathを検索し、該当する要素を発見する[5]。 しかし、「/codedef」のルールにはkey属性が定義されていないので、XPathコンテキストに、XPath述語は追加しない[6]。
続いて、XPathコンテキストの全要素を結合し、既存検査XPathを生成し、既存検査XPath保持手段57へ一時的に格納する(実際には、ランダムアクセスメモリへ「/codedef」を記憶させる)[7]。
その既存検査XPathを用いて、基本XML文書10の既存要素を検索する[8]。 既存検査XPathを用いて基本XML文書10を検索したとき、検索ヒットする要素が存在したら、同要素の属性値を差分XML文書の要素が持つ属性値で置き換え、存在しなかったら差分要素を新規追加する[9]。
(図5)
続いて、マージルール記述ファイル30の中から、先ほどのルールの下階層となるルール(子ルール)を1件読み出す[10]。 そして、その子ルールである「/code」をXPathコンテキスト40へ追加する[11]。
全要素を結合し、差分検索XPathを作成し[12]、差分検索XPath保持手段58へ一時的に格納する。すなわち、ランダムアクセスメモリへ「/codedef/code」を記憶させる。
更に、この差分検索XPathを用いて、差分XML文書20の該当箇所を検索する[13]。該当箇所は、「code id="type" name="電話種類」である。
(図6)
差分XML文書20の該当箇所として、差分検索XPathを検索し、該当する要素を発見する[14]。 「code id="type" name="電話種類」には、key属性が定義されているので、XPathコンテキストに、XPath述語を追加する[15]。すなわち、XPathコンテキストとして、「@id=“type“」を追加する。
続いて、全要素を結合し、既存検査XPathを生成し、既存検査XPath保持手段57へ一時的に格納する[16]。すなわち、ランダムアクセスメモリへ「/codedef/code[@id=“type”]」を記憶させる。
その既存検査XPathを用いて、基本XML文書10の既存要素を検索する[17]。 既存検査XPathを用いて基本XML文書10を検索したとき、検索ヒットする要素が存在したら、同要素の属性値を差分XML文書の要素が持つ属性値で置き換え、または存在しなかったら差分要素を新規追加する[18]。
(図7)
続いて、マージルール記述ファイル30の中から、先ほどの子ルールの下階層となるルール(孫ルール)を1件読み出す[19]。 そして、その孫ルールである「/value」をXPathコンテキスト40へ追加する[20]。
全要素を結合し、差分検索XPathを作成し、差分検索XPath保持手段58へ一時的に格納する[21]。すなわち、ランダムアクセスメモリへ「/codedef/code[@id=“type”]/value」」を記憶させる
更に、この差分検索XPathを用いて、差分XML文書20の該当箇所を検索する[22]。該当箇所は、「value code="1" name="自動車電話(廃止済)" /」である。
(図8)
差分検索XPathを用いて、差分XML文書20より検索ヒットした要素である「value code="1" name="自動車電話(廃止済)"」(検索ヒット要素[1]という)および「value code="2" name="携帯電話"」(検索ヒット要素[2]という)を発見する[23]。
検索ヒット要素[1]および[2]については、それぞれ以下の処理を実行する。
まず、ルールに定義されたkey属性にしたがい、差分XML文書20における検索ヒット要素の属性値にて、XPath述語をXPathコンテキスト40へ追加する[24] 。すなわち、XPathコンテキストとして、[@code=“1”]を追加する。
続いて、全要素を結合し、既存検査XPathを生成し、既存検査XPath保持手段57へ一時的に格納する[25]。すなわち、ランダムアクセスメモリへ「/codedef/code[@id=“type”]/value[@code=“]」を記憶させる。
その既存検査XPathを用いて、基本XML文書10の既存要素を検索する[17]。 既存検査XPathを用いて基本XML文書10を検索したとき、検索ヒットする要素が存在したら、同要素の属性値を差分XML文書の要素が持つ属性値で置き換え、または存在しなかったら差分要素を新規追加する[27]。
ここでは差分要素は基本XML文書10に既存であるので、基本XML文書10の既存要素の属性値「name=“自動車電話”」を差分要素「name=“自動車電話(廃止済み)”」で置き換えることとなる。
(図9)
つづいて、ルールに定義されたkey属性にしたがい、差分XML文書20における検索ヒット要素[2]の属性値にて、XPath述語をXPathコンテキスト40へ追加する[28] 。すなわち、XPathコンテキストとして、[@code=“2”]を追加する。
続いて、全要素を結合し、既存検査XPathを生成し、既存検査XPath保持手段57へ一時的に格納する[29]。すなわち、ランダムアクセスメモリへ「/codedef/code[@id=“type”]/value[@code=“2”]」を記憶させる。
その既存検査XPathを用いて、基本XML文書10の既存要素を検索する[30]。 既存検査XPathを用いて基本XML文書10を検索したとき、検索ヒットする要素が存在したら、同要素の属性値を差分XML文書の要素が持つ属性値で置き換え、または存在しなかったら差分要素を新規追加する [31]。ここでは差分要素は基本XML文書10に存在しないので、差分要素「value code=“2” name=“携帯電話”」を基本XML文書10に新規で追加することとなる。
前述した二つの実施形態を採用すれば、XML文書による基本ファイルについて、「個別カスタマイズ部分」ファイルの記述内容を最小限の差分のみとすることができる。そして、マージルール記述ファイル30を階層化して処理することで、統合済みXML文書を自動的に生成できる。
たとえば、M社に対して基本XML文書10をカスタマイズして提供していたとすると、そのM社差分XML文書21を用いて、M社統合済みXML文書51を提供することができる(図1参照)。 N社に対する基本XML文書10をカスタマイズして提供した場合も、同様である。
また、M社に対して基本XML文書10をカスタマイズして提供した後、基本XML文書10がバージョンアップした(11から12へ)とする。
この場合、M社差分XML文書21に基づいて、バージョンアップした統合済み文書53を自動的に生成することができる。
本実施形態を用いない場合には、「パッケージ基本部分」ファイルをもとにして「個別カスタマイズ部分」の内容を反映した「統合ファイル」を手作業で作成する必要がある。この場合には、後から「パッケージ基本部分」を改訂したとき、「統合ファイル」のどの箇所が基本部分で、どの箇所が個別カスタマイズ部分なのか判別不能となってしまう。 したがって、改訂する行為は、注意と十分な検証を要する作業となってしまうため、事実上は、極めて困難な作業となっていた。
本願発明は、インターネット接続サービス業、インターネットを介した情報サービス業、ASP事業、ソフトウェア開発業、サーバなどの情報機器の製造業などにおいて、利用可能性を有する。
10;基本XML文書 19;基本文書蓄積手段
20;差分XML文書 21;M社差分XML文書
22;N社差分XML文書 29;対象文書入力手段
30;マージルール記述ファイル 39;定義ファイル蓄積手段
40;XPathコンテキスト 41;差分要素
49;走査過程蓄積手段 50;統合済みXML文書
51;M社統合済みXML文書 52;N社統合済みXML文書
56;統合文書蓄積手段 57;既存検査XPath保持縦断
58;差分検索XPath保持手段 59;差分反映手段
69;走査手段

Claims (6)

  1. 同一の論理構造を持つ複数の構造化文書のうち、一方の構造化文書を基礎として他方の構造化文書を統合して統合済み文書を作成するためのファイル管理装置であって、
    そのファイル管理装置は、基礎となる構造化文書である基本文書を蓄積する基本文書蓄積手段と、
    前記の基本文書に対する差分となる差分文書を入力する対象文書入力手段と、
    その対象文書入力手段が入力した差分文書を蓄積する差分文書蓄積手段と、
    差分統合を要する構造化文書の定義ファイルをマージルール記述ファイルとして蓄積する定義ファイル蓄積手段と、
    前記の定義ファイル蓄積手段におけるマージルール記述ファイルを用いて前記の差分文書を走査する走査手段と、
    その走査手段によって抽出された差分要素を差分要素として蓄積し、該抽出時点におけるXPathをXPathコンテキストとして蓄積する走査過程蓄積手段と、
    その走査過程蓄積手段に蓄積されたXPathコンテキストおよび差分要素、前記の基本文書、および前記の差分文書を用いて統合済み文書を作成する差分反映手段と、 を備え、
    前記の差分反映手段は、前記のXPathコンテキストを用いて差分要素が基本文書に既存であるか否かを検索し、既存であれば上書きするとともに、存在していなければ追加することによって統合済み文書を作成することとしたファイル管理装置。
  2. 前記の走査手段が走査して前記の走査過程蓄積手段に蓄積した前記のXPathコンテキストの全要素を結合することで差分検索XPath を生成して保持する差分検索XPath保持手段と、
    前記の差分検索XPathを用いて前記の差分文書を検索してヒットした要素を結合して既存検査XPath を生成して保持する既存検査XPath保持手段と、 を備え、
    前記の差分反映手段は、前記の既存検査XPath保持手段に保持された既存検査XPathに該当する要素が基本文書に既存であるか否かを検索することとした請求項1に記載のファイル管理装置。
  3. 前記の走査手段は、前記のマージルール記述ファイルにおいて、子孫ルールが存在する場合には、その子孫ルールを用いて前記の差分文書を走査することとした請求項1または請求項2のいずれかに記載のファイル管理装置。
  4. 同一の論理構造を持つ複数の構造化文書のうち、一方の構造化文書を基礎として他方の構造化文書を統合して統合済み文書を作成するためのコンピュータプログラムであって、
    そのプログラムは、 基礎となる構造化文書である基本文書を蓄積する基本文書蓄積手順と、
    前記の基本文書に対する差分となる差分文書を入力する対象文書入力手順と、
    その対象文書入力手段が入力した差分文書を蓄積する差分蓄積手順と、
    差分統合を要する構造化文書の定義ファイルをマージルール記述ファイルとして蓄積する定義ファイル蓄積手順と、
    前記の定義ファイル蓄積手段におけるマージルール記述ファイルを用いて前記の差分文書を走査する走査手順と、
    その走査手順にて抽出された差分をXPathコンテキストとして蓄積するXPath蓄積手順と、
    そのXPath蓄積手順に蓄積されたXPathコンテキスト、前記の基本文書、および前記の差分XML文書を用いて統合済み文書を作成する差分反映手順と、 をコンピュータに実行させるものであり、
    前記の差分反映手順は、前記のXPathコンテキストを用い差分要素が基本文書に既存であるか否かを検索し、既存であれば上書きするとともに、存在していなければ追加することによって統合済み文書を作成することとしたコンピュータプログラム。
  5. 前記の走査手順にて走査して前記の走査過程蓄積手段に蓄積した前記のXPathコンテキストの全要素を結合することで差分検索XPath を生成して保持する差分検索XPath保持手順と、
    前記の差分検索XPathを用いて前記の差分文書を検索してヒットした要素を結合して既存検査XPath を生成して保持する既存検査XPath保持手順と、 を更にコンピュータに実行させることとし、
    前記の差分反映手順は、前記の既存検査XPath保持手段へ保持された既存検査XPathに該当する要素が基本文書に既存であるか否かを検索することとした請求項4に記載のコンピュータプログラム。
  6. 前記のマージルール記述ファイルにおいて、子孫ルールが存在する場合には、前記の走査手順および前記の差分反映手順を、子孫ルールについて、および/または該子孫ルールの子孫たる子孫ルールについて、再帰的にコンピュータに実行させることとした請求項4または請求項5のいずれかに記載のコンピュータプログラム。
JP2012230990A 2012-10-18 2012-10-18 ファイル管理装置およびコンピュータプログラム Active JP6011790B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012230990A JP6011790B2 (ja) 2012-10-18 2012-10-18 ファイル管理装置およびコンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012230990A JP6011790B2 (ja) 2012-10-18 2012-10-18 ファイル管理装置およびコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2014081886A JP2014081886A (ja) 2014-05-08
JP6011790B2 true JP6011790B2 (ja) 2016-10-19

Family

ID=50785998

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012230990A Active JP6011790B2 (ja) 2012-10-18 2012-10-18 ファイル管理装置およびコンピュータプログラム

Country Status (1)

Country Link
JP (1) JP6011790B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016056236A1 (ja) 2014-10-08 2016-04-14 日本電気株式会社 情報処理装置、情報処理方法、及び、記録媒体
KR102530163B1 (ko) * 2020-12-14 2023-05-09 대구가톨릭대학교산학협력단 특정 서식을 갖는 엑셀 파일 내 자료 도출 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3566457B2 (ja) * 1996-05-31 2004-09-15 株式会社日立製作所 構造化文書の版管理方法および装置
JP2006185366A (ja) * 2004-12-28 2006-07-13 Hitachi Ltd 構造化文書管理方法およびプログラム
JP4399017B2 (ja) * 2008-06-06 2010-01-13 株式会社エヌ・ティ・ティ・ドコモ 構造化文書データ更新方法及び情報提供サーバ

Also Published As

Publication number Publication date
JP2014081886A (ja) 2014-05-08

Similar Documents

Publication Publication Date Title
CN109508191B (zh) 一种代码生成方法及系统
Altmanninger et al. A survey on model versioning approaches
Nentwich et al. Flexible consistency checking
JP2863805B2 (ja) 版数管理方式
US7735062B2 (en) Software development system and method
US7487174B2 (en) Method for storing text annotations with associated type information in a structured data store
US9384301B2 (en) Accessing objects in a service registry and repository
US20040216084A1 (en) System and method of managing web content
US20060168577A1 (en) Software development system and method
US20060277452A1 (en) Structuring data for presentation documents
US20140013297A1 (en) Query-Based Software System Design Representation
US20060168555A1 (en) Software development system and method
JP5072845B2 (ja) 文書用のxmlデータストアのためのプログラム可能性
Westfechtel Merging of EMF models: Formal foundations
CN108762743B (zh) 一种数据表操作代码生成方法及装置
CN101300577A (zh) 部分xml确认
Zekri et al. τ OWL: A systematic approach to temporal versioning of semantic web ontologies
US20060101036A1 (en) Storage medium storing directory editing support program, directory editing support method, and directory editing support apparatus
TW201124867A (en) Service registry policy editing user interface
Kim et al. Evaluating pattern conformance of UML models: a divide-and-conquer approach and case studies
EP1684170A2 (en) Software development system and method
Ba et al. Uncertain version control in open collaborative editing of tree-structured documents
JP6011790B2 (ja) ファイル管理装置およびコンピュータプログラム
JP3914081B2 (ja) アクセス権限設定方法および構造化文書管理システム
US20040064788A1 (en) System and method for generating source code for an XML application

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151019

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151218

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160205

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160805

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160906

R150 Certificate of patent or registration of utility model

Ref document number: 6011790

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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