JP2002334001A - 木構造データの操作方法及び、それを実現する装置及びプログラム - Google Patents
木構造データの操作方法及び、それを実現する装置及びプログラムInfo
- Publication number
- JP2002334001A JP2002334001A JP2001130549A JP2001130549A JP2002334001A JP 2002334001 A JP2002334001 A JP 2002334001A JP 2001130549 A JP2001130549 A JP 2001130549A JP 2001130549 A JP2001130549 A JP 2001130549A JP 2002334001 A JP2002334001 A JP 2002334001A
- Authority
- JP
- Japan
- Prior art keywords
- tree structure
- data
- node
- structure data
- tree
- 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
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】
【課題】XMLのような木構造データにおいて、所望の
ノードを1まとめにした部分木構造の部位を対象とする
指定を可能にし、このようなノードを1つづつ操作する
のでなく、ノードのかたまりを一括して操作する処理を
提供する。また、従来必要であった処理後の木構造の整
合性確認を不要にする。 【解決手段】木構造データのスキーマを直接に操作する
オブジェクトを定義する。このオブジェクトは、自分自
身のデータであるオブジェクト・データと操作を定義す
る操作機能(メソッド)とを有する。そして、このオブ
ジェクトと、操作されるべきスキーマを有する木構造デ
ータの部位とを対応させ連係させる技術を提供する。
ノードを1まとめにした部分木構造の部位を対象とする
指定を可能にし、このようなノードを1つづつ操作する
のでなく、ノードのかたまりを一括して操作する処理を
提供する。また、従来必要であった処理後の木構造の整
合性確認を不要にする。 【解決手段】木構造データのスキーマを直接に操作する
オブジェクトを定義する。このオブジェクトは、自分自
身のデータであるオブジェクト・データと操作を定義す
る操作機能(メソッド)とを有する。そして、このオブ
ジェクトと、操作されるべきスキーマを有する木構造デ
ータの部位とを対応させ連係させる技術を提供する。
Description
【0001】
【発明の属する技術分野】本発明は、木構造データの操
作に関し、特にXMLのような木構造のデータを操作す
る方法と、それを実現する装置及びプログラムに関す
る。
作に関し、特にXMLのような木構造のデータを操作す
る方法と、それを実現する装置及びプログラムに関す
る。
【0002】
【従来の技術】最近インターネットの商業的な利用の普
及に伴い、データ交換フォーマットとしてXML(eX
tensible Markup Language)
文書の利用が本格化してきている。XMLは、SGML
(Standard Generalized Mar
kup Language)とHTML(HyperT
ext Markup Language)の双方の長
所を取り入れてW3C(World Wide Web
Consortium)によって標準化されたもの
で、文字情報を用いてデータの内容と構造を規定する構
造化文書を定義できるデータ表現形式である。
及に伴い、データ交換フォーマットとしてXML(eX
tensible Markup Language)
文書の利用が本格化してきている。XMLは、SGML
(Standard Generalized Mar
kup Language)とHTML(HyperT
ext Markup Language)の双方の長
所を取り入れてW3C(World Wide Web
Consortium)によって標準化されたもの
で、文字情報を用いてデータの内容と構造を規定する構
造化文書を定義できるデータ表現形式である。
【0003】XMLは種々の応用が可能であるが、特に
WWW(World Wide Web)を用いてコン
ピュータ同士が相互にデータをやり取りすることを可能
にする。その際、それぞれのコンピュータで動作するア
プリケーション・プログラムは、XML文書をそのアプ
リケーションで用いるデータ形式に変換することを必要
とする。これはDOM(Document Objec
t Model)を用いてXML文書をオブジェクト化
することで実現されている。このオブジェクトは本質的
に木構造のデータであって、そのデータをそれぞれのア
プリケーション・プログラムに取り入れて処理すること
が出来る。
WWW(World Wide Web)を用いてコン
ピュータ同士が相互にデータをやり取りすることを可能
にする。その際、それぞれのコンピュータで動作するア
プリケーション・プログラムは、XML文書をそのアプ
リケーションで用いるデータ形式に変換することを必要
とする。これはDOM(Document Objec
t Model)を用いてXML文書をオブジェクト化
することで実現されている。このオブジェクトは本質的
に木構造のデータであって、そのデータをそれぞれのア
プリケーション・プログラムに取り入れて処理すること
が出来る。
【0004】
【発明が解決しようとする課題】従来、上述のXMLの
ような木構造データの操作は、例えばパーサを使ってD
OMのオブジェクトにオブジェクト化して操作する場
合、ノード単体、または木構造データ全体を単位とする
操作を規定するのみで、木構造全体の中の特定の部分木
構造に当るノードの集まりが意味を持っている場合で
も、その部位をひとかたまりの操作対象の単位として扱
うことはできなかった。
ような木構造データの操作は、例えばパーサを使ってD
OMのオブジェクトにオブジェクト化して操作する場
合、ノード単体、または木構造データ全体を単位とする
操作を規定するのみで、木構造全体の中の特定の部分木
構造に当るノードの集まりが意味を持っている場合で
も、その部位をひとかたまりの操作対象の単位として扱
うことはできなかった。
【0005】例えば、木構造データがドキュメントデー
タを表し、その中に表データを部分として持つとき、こ
の表データをグラフで見たいことがある。その場合、表
データ部分を変換してグラフデータにして、グラフデー
タを表示するソフトウエアを対応付けなければならない
が、そのような操作をするためには、そのたびに表デー
タ部分を検索して対応付けする必要があり、不便である
と共に、データの一貫性を保証することが困難であっ
た。
タを表し、その中に表データを部分として持つとき、こ
の表データをグラフで見たいことがある。その場合、表
データ部分を変換してグラフデータにして、グラフデー
タを表示するソフトウエアを対応付けなければならない
が、そのような操作をするためには、そのたびに表デー
タ部分を検索して対応付けする必要があり、不便である
と共に、データの一貫性を保証することが困難であっ
た。
【0006】具体的には、部分木構造の例として、次の
ような日付を意味するひとかたまりのノードの部位があ
るとする。 <ELEMENT> ・・・・ <DATE> <MONTH>4月</MONTH> <DAY>10日</DAY> </DATE> ・・・・ </ELEMENT> 従来のシステムでは、ノード単位を対象とした操作の機
能しかなかったので、日付ノードの部位を認識するため
には「親がDATEで子ノードにMONTH、DAYが
ある」というパターンで木構造全体をパターンマッチ検
索し、検索結果として得られた複数の単位ノードを使用
するしかなかった。そのため、日付ノードの部位をまと
めて直接操作の対象として指定することはできず、3つ
のノードを別々に移動、削除などしていたので、操作後
に木構造の整合性を確認する必要があり、処理効率が悪
かった。
ような日付を意味するひとかたまりのノードの部位があ
るとする。 <ELEMENT> ・・・・ <DATE> <MONTH>4月</MONTH> <DAY>10日</DAY> </DATE> ・・・・ </ELEMENT> 従来のシステムでは、ノード単位を対象とした操作の機
能しかなかったので、日付ノードの部位を認識するため
には「親がDATEで子ノードにMONTH、DAYが
ある」というパターンで木構造全体をパターンマッチ検
索し、検索結果として得られた複数の単位ノードを使用
するしかなかった。そのため、日付ノードの部位をまと
めて直接操作の対象として指定することはできず、3つ
のノードを別々に移動、削除などしていたので、操作後
に木構造の整合性を確認する必要があり、処理効率が悪
かった。
【0007】また、XMLのデータ形式を扱う従来のシ
ステムでは、スキーマ(構造定義)とそれを理解する機
能とソフトウエアが組になっているため、特定のスキー
マに対して作られたソフトウエアは、スキーマが異なる
XMLデータを読むことができない。そのため、スキー
マの一部が変更になった場合でも、ソフトウエア全体の
変更が必要であった。従って、ユーザにとって、スキー
マの変更要求は頻繁であるのに対して、ソフトウエアの
対応が追いつかないという問題点があった。
ステムでは、スキーマ(構造定義)とそれを理解する機
能とソフトウエアが組になっているため、特定のスキー
マに対して作られたソフトウエアは、スキーマが異なる
XMLデータを読むことができない。そのため、スキー
マの一部が変更になった場合でも、ソフトウエア全体の
変更が必要であった。従って、ユーザにとって、スキー
マの変更要求は頻繁であるのに対して、ソフトウエアの
対応が追いつかないという問題点があった。
【0008】そこで、本発明は、木構造データ全体の中
の、意味を持ったかたまりとしての部分木構造の部位を
対象とする指定を可能にし、そのような部分木構造の部
位を指定して一括して操作する処理を提供することによ
って、従来必要であった処理後の木構造の整合性確認を
不要にし、処理効率を向上すること、そして木構造デー
タのスキーマを変更しても部分的な対応でソフトウエア
の変更を可能にする事を目的とする。
の、意味を持ったかたまりとしての部分木構造の部位を
対象とする指定を可能にし、そのような部分木構造の部
位を指定して一括して操作する処理を提供することによ
って、従来必要であった処理後の木構造の整合性確認を
不要にし、処理効率を向上すること、そして木構造デー
タのスキーマを変更しても部分的な対応でソフトウエア
の変更を可能にする事を目的とする。
【0009】
【課題を解決するための手段】上記課題を解決するため
に、本発明においては、部分木構造の部位を構成するデ
ータをまとめて指定し操作対象とするオブジェクトを定
義する。このオブジェクトは、自分自身のデータである
オブジェクト・データと操作を定義する操作機能(メソ
ッド)とを有する。そして、このオブジェクトと、操作
されるべき部分木構造の部位とを対応させ連係させる技
術を提供する。ユーザは、オブジェクトを指定してメッ
セージを発行して操作を命令することによって、そのオ
ブジェクトに対応する部分木構造の部位のデータを操作
することができる。
に、本発明においては、部分木構造の部位を構成するデ
ータをまとめて指定し操作対象とするオブジェクトを定
義する。このオブジェクトは、自分自身のデータである
オブジェクト・データと操作を定義する操作機能(メソ
ッド)とを有する。そして、このオブジェクトと、操作
されるべき部分木構造の部位とを対応させ連係させる技
術を提供する。ユーザは、オブジェクトを指定してメッ
セージを発行して操作を命令することによって、そのオ
ブジェクトに対応する部分木構造の部位のデータを操作
することができる。
【0010】本発明の第1の特徴においては、木構造デ
ータの所望の部位を、あるノード以下を部位とすること
を示すユニット・マーカと、そのノードまでが部位の範
囲であることを示すターミナル・マーカの2種類のマー
カをそれらのノードに設定することによって指定する。
ここで、部位内のノードが下位のノード(子孫ノード)
をもたない場合、そのノードはターミナル・マーカを持
つものとして扱うことが出来る。
ータの所望の部位を、あるノード以下を部位とすること
を示すユニット・マーカと、そのノードまでが部位の範
囲であることを示すターミナル・マーカの2種類のマー
カをそれらのノードに設定することによって指定する。
ここで、部位内のノードが下位のノード(子孫ノード)
をもたない場合、そのノードはターミナル・マーカを持
つものとして扱うことが出来る。
【0011】本発明の第2の特徴においては、木構造デ
ータの所望の部位のユニット・マーカを有するノードを
指示するノード・リンカをオブジェクトに設定すること
によって、木構造データの所望の部位と、オブジェクト
との対応を付ける。前述のようにノードにターミナル・
マーカを設定することによって、オブジェクトと木構造
の部位の範囲を対応付ける。従って、所望の部位の範囲
に属するノードは、ユニット・マーカを有するノードか
らターミナル・マーカを有するノードまでをトラバース
検索することで抽出することができる。このトラバース
検索は、例えばXMLにおいてはXPath言語を使っ
て実現することができる。このようにマーカを付けたノ
ードをオブジェクトが参照することによって、オブジェ
クトの操作が木構造データの特定の部位内のノードにの
み反映することを保証する。
ータの所望の部位のユニット・マーカを有するノードを
指示するノード・リンカをオブジェクトに設定すること
によって、木構造データの所望の部位と、オブジェクト
との対応を付ける。前述のようにノードにターミナル・
マーカを設定することによって、オブジェクトと木構造
の部位の範囲を対応付ける。従って、所望の部位の範囲
に属するノードは、ユニット・マーカを有するノードか
らターミナル・マーカを有するノードまでをトラバース
検索することで抽出することができる。このトラバース
検索は、例えばXMLにおいてはXPath言語を使っ
て実現することができる。このようにマーカを付けたノ
ードをオブジェクトが参照することによって、オブジェ
クトの操作が木構造データの特定の部位内のノードにの
み反映することを保証する。
【0012】本発明の第3の特徴においては、木構造デ
ータの所望の部位が複数のオブジェクトから参照されて
いる場合に、その部位に対する任意のオブジェクトの操
作が、その部位を参照中の他のオブジェクトへ影響する
のを避けるため、部位に設定されたユニット・マーカ
に、その部位を参照中のオブジェクトを夫々指示する1
つ以上のオブジェクト・リンカを設定する。これによ
り、木構造の所定の部位に対するオブジェクトの操作の
結果において、参照している他の複数のオブジェクトと
の整合性を保つことができる。
ータの所望の部位が複数のオブジェクトから参照されて
いる場合に、その部位に対する任意のオブジェクトの操
作が、その部位を参照中の他のオブジェクトへ影響する
のを避けるため、部位に設定されたユニット・マーカ
に、その部位を参照中のオブジェクトを夫々指示する1
つ以上のオブジェクト・リンカを設定する。これによ
り、木構造の所定の部位に対するオブジェクトの操作の
結果において、参照している他の複数のオブジェクトと
の整合性を保つことができる。
【0013】本発明の第4の特徴においては、木構造デ
ータの所望の部位の子孫にある他の部位を特定するため
に、対象部位に設定されたターミナル・マーカに、その
ターミナル・マーカの子孫のオブジェクトを夫々指示す
る1つ以上のオブジェクト・リンカを設定する。即ち、
これらのオブジェクト・リンカは、当該ノードの子孫ノ
ードの内のユニット・マーカを有するノードを参照する
オブジェクトを指示するように設定される。これによ
り、対象部位のターミナル・マーカを有するノードの子
孫ノードの内、どのノードから他のオブジェクトの部位
になるかを知ることが出来る。
ータの所望の部位の子孫にある他の部位を特定するため
に、対象部位に設定されたターミナル・マーカに、その
ターミナル・マーカの子孫のオブジェクトを夫々指示す
る1つ以上のオブジェクト・リンカを設定する。即ち、
これらのオブジェクト・リンカは、当該ノードの子孫ノ
ードの内のユニット・マーカを有するノードを参照する
オブジェクトを指示するように設定される。これによ
り、対象部位のターミナル・マーカを有するノードの子
孫ノードの内、どのノードから他のオブジェクトの部位
になるかを知ることが出来る。
【0014】
【実施例】以下図面を参照して本発明の実施例を説明す
る。図1は、本発明のシステムの構成を示す図である。
る。図1は、本発明のシステムの構成を示す図である。
【0015】図1において、木構造データ管理システム
100、オブジェクト管理システム101及び木構造デ
ータ操作システム102は、いずれも本発明による方法
を実現する装置であって、コンピュータをして以下に説
明する機能を実現させるように構成されているプログラ
ムであってもよい。
100、オブジェクト管理システム101及び木構造デ
ータ操作システム102は、いずれも本発明による方法
を実現する装置であって、コンピュータをして以下に説
明する機能を実現させるように構成されているプログラ
ムであってもよい。
【0016】木構造データ管理システム100は、複数
の木構造データ103を管理する。木構造データ管理シ
ステム100は、外部のXMLファイルからXML文書
データを読み込み、木構造データ管理システム100内
のメモリに木構造データ103として格納するもので具
体的には従来のDOMパーサなどが利用できる。
の木構造データ103を管理する。木構造データ管理シ
ステム100は、外部のXMLファイルからXML文書
データを読み込み、木構造データ管理システム100内
のメモリに木構造データ103として格納するもので具
体的には従来のDOMパーサなどが利用できる。
【0017】この木構造データ管理システム100内の
木構造データ103の操作を後述のオブジェクト管理シ
ステム101と連係して行うのが、木構造データ操作シ
ステム102である。このシステム102は、木構造デ
ータ内のノードの内容記述、ノードの移動、複写、親子
兄弟ノードのトラバースなどの種々の操作をおこなうた
めの関数群であって、具体的にはDOMの操作関数、即
ちXTK(XML Tool Kit)を用いて実現す
ることが出来る。
木構造データ103の操作を後述のオブジェクト管理シ
ステム101と連係して行うのが、木構造データ操作シ
ステム102である。このシステム102は、木構造デ
ータ内のノードの内容記述、ノードの移動、複写、親子
兄弟ノードのトラバースなどの種々の操作をおこなうた
めの関数群であって、具体的にはDOMの操作関数、即
ちXTK(XML Tool Kit)を用いて実現す
ることが出来る。
【0018】オブジェクト管理システム101は、複数
のオブジェクト104を管理する。オブジェクト104
は、オブジェクト自身のデータを保持するオブジェクト
・データ105と、オブジェクトの操作を定義するオブ
ジェクト操作機能(メソッド)106をもつ。オブジェ
クトは、基本的なオブジェクト操作を定義する基本オブ
ジェクトから操作機能などを継承して作ることが出来
る。基本的なオブジェクト操作には、例えばノードにマ
ーカを埋め込む操作、ノードの部位を判別する操作、オ
ブジェクトとノードのデータを連携し木構造を維持する
操作などがある。
のオブジェクト104を管理する。オブジェクト104
は、オブジェクト自身のデータを保持するオブジェクト
・データ105と、オブジェクトの操作を定義するオブ
ジェクト操作機能(メソッド)106をもつ。オブジェ
クトは、基本的なオブジェクト操作を定義する基本オブ
ジェクトから操作機能などを継承して作ることが出来
る。基本的なオブジェクト操作には、例えばノードにマ
ーカを埋め込む操作、ノードの部位を判別する操作、オ
ブジェクトとノードのデータを連携し木構造を維持する
操作などがある。
【0019】各オブジェクトは、図2を参照して後述す
るデータのリンク機能を用いて前記木構造データの部位
と関連付けられる。オブジェクト104は、生成時にオ
ブジェクト管理システム101により、継承する操作機
能などを割り当てられる。オブジェクト操作機能106
は、木構造データ操作システム102を通じて木構造デ
ータ103の特定された部位の操作を行い、関連付けら
れた木構造データの部位との整合性を保つ。
るデータのリンク機能を用いて前記木構造データの部位
と関連付けられる。オブジェクト104は、生成時にオ
ブジェクト管理システム101により、継承する操作機
能などを割り当てられる。オブジェクト操作機能106
は、木構造データ操作システム102を通じて木構造デ
ータ103の特定された部位の操作を行い、関連付けら
れた木構造データの部位との整合性を保つ。
【0020】図2は、本発明によるオブジェクトと木構
造データの部位との関連付けを示す図である。200
は、木構造データの概念を図形的に表わしたものであ
る。図において夫々の円形はノードを表わし、特に20
1はルート・ノード、202などのような子孫を持たな
いノードはリーフ・ノードを表わすことは通常のとおり
である。
造データの部位との関連付けを示す図である。200
は、木構造データの概念を図形的に表わしたものであ
る。図において夫々の円形はノードを表わし、特に20
1はルート・ノード、202などのような子孫を持たな
いノードはリーフ・ノードを表わすことは通常のとおり
である。
【0021】203は、本発明の目的である、特定の操
作の対象のまとまった部分木構造を例示する。この部分
木は図示の例においては3角形で囲まれた3つのノード
からなり、この部位をオブジェクト204と関連付け
る。
作の対象のまとまった部分木構造を例示する。この部分
木は図示の例においては3角形で囲まれた3つのノード
からなり、この部位をオブジェクト204と関連付け
る。
【0022】200内の夫々の円形で表わされたノード
は具体的には図の右側に木構造データとして示されるよ
うな構造のデータとして表わされ、例えばノード205
及び206は夫々木構造データ207及び208と対応
するものとして示されている。
は具体的には図の右側に木構造データとして示されるよ
うな構造のデータとして表わされ、例えばノード205
及び206は夫々木構造データ207及び208と対応
するものとして示されている。
【0023】木構造データは通常、各ノード固有の識別
子(Node)とノード・データ(Node Dat
a)を有し、ノード・データは1つ以上の内容値及び/
又は属性値(Attribute)を持つことが出来
る。各木構造データは、夫々の間の親子関係を示すリン
クあるいはポインタを有することは言うまでもない。
子(Node)とノード・データ(Node Dat
a)を有し、ノード・データは1つ以上の内容値及び/
又は属性値(Attribute)を持つことが出来
る。各木構造データは、夫々の間の親子関係を示すリン
クあるいはポインタを有することは言うまでもない。
【0024】本発明においては、前述の部分木のルート
に当るノード205の木構造データ207のノード・デ
ータにユニット・マーカ(Unit Marker)2
09を設ける。そして同じ部分木のリーフに当る複数の
ノード206の木構造データ208のノード・データに
ターミナル・マーカ(Terminal Marke
r)210を設ける。前述のように、もしノード206
が子孫を持たないなら、特にターミナル・マーカを設け
なくても、そのノードはターミナル・マーカを有するも
のとして扱う。図示の203内のもう1つのノードにつ
いてはノード206と同様であるので説明を省略する。
に当るノード205の木構造データ207のノード・デ
ータにユニット・マーカ(Unit Marker)2
09を設ける。そして同じ部分木のリーフに当る複数の
ノード206の木構造データ208のノード・データに
ターミナル・マーカ(Terminal Marke
r)210を設ける。前述のように、もしノード206
が子孫を持たないなら、特にターミナル・マーカを設け
なくても、そのノードはターミナル・マーカを有するも
のとして扱う。図示の203内のもう1つのノードにつ
いてはノード206と同様であるので説明を省略する。
【0025】更にユニット・マーカ209にはその部分
木を参照している全てのオブジェクトを夫々指示するた
めの1つ以上のオブジェクト・リンカ(Object
Linker)211を設けることが出来る。即ち、前
述のように1つのユニット・マーカは、複数のオブジェ
クトから参照出来る(1:nの参照関係)ので、その内
の1つのオブジェクトによる操作の副作用を防止するた
めに、その操作の影響する範囲を特定するため、複数の
オブジェクトリンカをもつことが出来る。
木を参照している全てのオブジェクトを夫々指示するた
めの1つ以上のオブジェクト・リンカ(Object
Linker)211を設けることが出来る。即ち、前
述のように1つのユニット・マーカは、複数のオブジェ
クトから参照出来る(1:nの参照関係)ので、その内
の1つのオブジェクトによる操作の副作用を防止するた
めに、その操作の影響する範囲を特定するため、複数の
オブジェクトリンカをもつことが出来る。
【0026】また前述のように、ターミナル・マーカ2
10は、そのターミナル・マーカを有するノードの子孫
ノードの内、どのノードから他のオブジェクトの部位に
なるかを知るための、1つ以上のオブジェクトリンカ2
12をもつことが出来る。このオブジェクト・リンカ
は、子孫ノードの内のユニット・マーカを有するノード
を参照するオブジェクトを指示するように設定される。
10は、そのターミナル・マーカを有するノードの子孫
ノードの内、どのノードから他のオブジェクトの部位に
なるかを知るための、1つ以上のオブジェクトリンカ2
12をもつことが出来る。このオブジェクト・リンカ
は、子孫ノードの内のユニット・マーカを有するノード
を参照するオブジェクトを指示するように設定される。
【0027】オブジェクト(Object)204は、
オブジェクト・データ(Object Data)21
3と操作関数(図示せず)とを有し、オブジェクトデー
タ213は、オブジェクトの種類を表すタイプ(Typ
e)214と、対応する木構造データの部分木のルート
に当るノード207を指示するノード・リンカ(Nod
e Linker)215をもつ。
オブジェクト・データ(Object Data)21
3と操作関数(図示せず)とを有し、オブジェクトデー
タ213は、オブジェクトの種類を表すタイプ(Typ
e)214と、対応する木構造データの部分木のルート
に当るノード207を指示するノード・リンカ(Nod
e Linker)215をもつ。
【0028】ノード・リンカ215と前記ユニット・マ
ーカ209のオブジェクト・リンカ211は相互参照を
行なう関係である。次に上述のようなオブジェクトと木
構造データとの関連付けと、それらの連係において、図
1のオブジェクト104のオブジェクト操作機能106
を操作して木構造データ操作システム102を介して、
木構造データ103を処理する動作をフローチャートを
用いて説明する。
ーカ209のオブジェクト・リンカ211は相互参照を
行なう関係である。次に上述のようなオブジェクトと木
構造データとの関連付けと、それらの連係において、図
1のオブジェクト104のオブジェクト操作機能106
を操作して木構造データ操作システム102を介して、
木構造データ103を処理する動作をフローチャートを
用いて説明する。
【0029】図3は本発明によるオブジェクトの操作の
概略フローチャートである。図1の木構造データ管理シ
ステム100は、図3において外部ファイルからXML
文書を読み込み(300)、木構造データ管理システム
内のメモリに木構造データ103を生成する(30
1)。
概略フローチャートである。図1の木構造データ管理シ
ステム100は、図3において外部ファイルからXML
文書を読み込み(300)、木構造データ管理システム
内のメモリに木構造データ103を生成する(30
1)。
【0030】図1のオブジェクト管理システム101は
オブジェクト操作の要求の有無を常に監視しており(3
02)、操作要求があればその内容に応じてオブジェク
トを操作する機能を実行する。
オブジェクト操作の要求の有無を常に監視しており(3
02)、操作要求があればその内容に応じてオブジェク
トを操作する機能を実行する。
【0031】操作要求の内容は、例えばオブジェクト生
成(303)、オブジェクト削除(304)、オブジェ
クト移動(305)があり、夫々、オブジェクト生成機
能(306)、オブジェクト削除機能(307)、オブ
ジェクト移動機能(308)を実行する。
成(303)、オブジェクト削除(304)、オブジェ
クト移動(305)があり、夫々、オブジェクト生成機
能(306)、オブジェクト削除機能(307)、オブ
ジェクト移動機能(308)を実行する。
【0032】次に夫々の操作内容に応じた機能の詳細を
図4乃至図6を参照して説明する。この実施例において
は、XMLデータの木構造を扱うことを前提とするの
で、その性質上複数のオブジェクトの間の関係は完全な
入れ子関係をなすものであり、複数のオブジェクトが部
分的に重なり合うことはない。また、親子関係を有する
複数のオブジェクトは必ず連続し、それらの間に独立し
たノードがはさまれることはないものとする。そして、
オブジェクトの操作においては、まず木構造全体を含む
オブジェクト(木構造全体のルート・ノードにユニット
・マーカを持ち全体をオブジェクトの範囲とする)を生
成し、その中に必要とする部分木構造の部位を指示する
オブジェクトを生成して扱うこととする。
図4乃至図6を参照して説明する。この実施例において
は、XMLデータの木構造を扱うことを前提とするの
で、その性質上複数のオブジェクトの間の関係は完全な
入れ子関係をなすものであり、複数のオブジェクトが部
分的に重なり合うことはない。また、親子関係を有する
複数のオブジェクトは必ず連続し、それらの間に独立し
たノードがはさまれることはないものとする。そして、
オブジェクトの操作においては、まず木構造全体を含む
オブジェクト(木構造全体のルート・ノードにユニット
・マーカを持ち全体をオブジェクトの範囲とする)を生
成し、その中に必要とする部分木構造の部位を指示する
オブジェクトを生成して扱うこととする。
【0033】図4は、図3におけるオブジェクトの生成
機能(306)をより詳細に示すフローチャートであ
る。図4において、まず前述のように、機能の承継など
を用いて基本オブジェクトから所望のタイプのオブジェ
クトを生成する(400)。
機能(306)をより詳細に示すフローチャートであ
る。図4において、まず前述のように、機能の承継など
を用いて基本オブジェクトから所望のタイプのオブジェ
クトを生成する(400)。
【0034】次に、生成されたオブジェクトに対応する
木構造データ内の部位を決定する(401)。これは、
木構造データ内の部位のルートに当るノードと、1つ以
上のリーフに当るノードを特定することである。
木構造データ内の部位を決定する(401)。これは、
木構造データ内の部位のルートに当るノードと、1つ以
上のリーフに当るノードを特定することである。
【0035】次に、生成したオブジェクト204のオブ
ジェクト・データ内に前記決定された部位のルートに当
るノードを指示するノード・リンカを設定する(40
2)。次に、前記決定された部位のルートに当るノード
に、既にユニット・マーカがあれば、前記生成したオブ
ジェクトを指示するオブジェクト・リンカを追加する
(404)。もし、まだユニット・マーカがないノード
であれば、ユニット・マーカをノード・データに作成
し、前記生成したオブジェクトを指示するオブジェクト
・リンカを追加する(405)。
ジェクト・データ内に前記決定された部位のルートに当
るノードを指示するノード・リンカを設定する(40
2)。次に、前記決定された部位のルートに当るノード
に、既にユニット・マーカがあれば、前記生成したオブ
ジェクトを指示するオブジェクト・リンカを追加する
(404)。もし、まだユニット・マーカがないノード
であれば、ユニット・マーカをノード・データに作成
し、前記生成したオブジェクトを指示するオブジェクト
・リンカを追加する(405)。
【0036】次に、前記決定された部位のルートに当た
るノードに対して、その親ノードがあるか否かを決定す
る(406)。もし親ノードがなければ終了し、あれ
ば、その親ノードがターミナル・マーカを有するか否か
を決定する(407)。
るノードに対して、その親ノードがあるか否かを決定す
る(406)。もし親ノードがなければ終了し、あれ
ば、その親ノードがターミナル・マーカを有するか否か
を決定する(407)。
【0037】もしターミナル・マーカを持っていれば、
前記生成したオブジェクトのオブジェクト・リンカを追
加する(408)。もし、ターミナル・マーカがないノ
ードであれば、ターミナル・マーカをノード・データに
作成し、前記生成したオブジェクトのオブジェクト・リ
ンカを追加する(409)。
前記生成したオブジェクトのオブジェクト・リンカを追
加する(408)。もし、ターミナル・マーカがないノ
ードであれば、ターミナル・マーカをノード・データに
作成し、前記生成したオブジェクトのオブジェクト・リ
ンカを追加する(409)。
【0038】以上でオブジェクトの生成を終了する。図
5は、図3におけるオブジェクトの削除(307)をよ
り詳細に示すフローチャートである。
5は、図3におけるオブジェクトの削除(307)をよ
り詳細に示すフローチャートである。
【0039】図5において、まず削除したいオブジェク
トのノード・リンカを用いてそのオブジェクトの指示す
る木構造データの部位のルートに当るノードを検索する
(500)。
トのノード・リンカを用いてそのオブジェクトの指示す
る木構造データの部位のルートに当るノードを検索する
(500)。
【0040】次に、検索されたノードのユニット・マー
カから、削除したいオブジェクトを指示するオブジェク
ト・リンカを削除する(502)。もし、そのユニット
・マーカ内にオブジェクト・リンカが一つしか設定され
ていないときは、ユニット・マーカそのものを削除する
(503)。
カから、削除したいオブジェクトを指示するオブジェク
ト・リンカを削除する(502)。もし、そのユニット
・マーカ内にオブジェクト・リンカが一つしか設定され
ていないときは、ユニット・マーカそのものを削除する
(503)。
【0041】次に、前記ルートに当るノードの親ノード
を検索する(504)。もし、親ノードがなければ、オ
ブジェクトを削除して終了する(509)。もし、親ノ
ードがあれば、検索された親ノードのターミナル・マー
カ中の削除したいオブジェクトを指示するオブジェクト
・リンカを削除する(507)。
を検索する(504)。もし、親ノードがなければ、オ
ブジェクトを削除して終了する(509)。もし、親ノ
ードがあれば、検索された親ノードのターミナル・マー
カ中の削除したいオブジェクトを指示するオブジェクト
・リンカを削除する(507)。
【0042】もし、そのターミナル・マーカ内にオブジ
ェクト・リンカが一つしか設定されていないときは、タ
ーミナル・マーカそのものを削除する(508)。最後
に削除したいオブジェクトを削除する(509)。
ェクト・リンカが一つしか設定されていないときは、タ
ーミナル・マーカそのものを削除する(508)。最後
に削除したいオブジェクトを削除する(509)。
【0043】以上でオブジェクトの削除を終了する。図
6は、図3におけるオブジェクトの移動(308)をよ
り詳細に示すフローチャートである。
6は、図3におけるオブジェクトの移動(308)をよ
り詳細に示すフローチャートである。
【0044】図6において、まず移動したいオブジェク
トのノード・リンカを用いてそのオブジェクトの指示す
る木構造データの部位のルートに当るノードを検索する
(600)。
トのノード・リンカを用いてそのオブジェクトの指示す
る木構造データの部位のルートに当るノードを検索する
(600)。
【0045】次に検索されたルートに当るノードの親ノ
ードを検索する(601)。検索された親ノードのター
ミナル・マーカに含まれるオブジェクト・リンカの内、
移動したいオブジェクトを指示するオブジェクト・リン
カを削除する(602)。
ードを検索する(601)。検索された親ノードのター
ミナル・マーカに含まれるオブジェクト・リンカの内、
移動したいオブジェクトを指示するオブジェクト・リン
カを削除する(602)。
【0046】前記ルートに当たるノードと検索された親
ノードとの間のリンクを切断する(603)。移動先オ
ブジェクトのユニット・マーカのあるノードに、前記ル
ートに当るノードを接続する。移動先オブジェクトのユ
ニット・マーカのあるノードにターミナル・マーカが有
れば、移動するオブジェクトを指すオブジェクト・リン
カを設定し、なければターミナル・マーカを作り同様の
設定をする(604)。
ノードとの間のリンクを切断する(603)。移動先オ
ブジェクトのユニット・マーカのあるノードに、前記ル
ートに当るノードを接続する。移動先オブジェクトのユ
ニット・マーカのあるノードにターミナル・マーカが有
れば、移動するオブジェクトを指すオブジェクト・リン
カを設定し、なければターミナル・マーカを作り同様の
設定をする(604)。
【0047】前記(600)で検索されたルートに当る
ノードの子孫ノードから、ユニット・マーカをもつノー
ドを検索する(605)。検索されたユニット・マーカ
を持つノードの親ノードから、ターミナル・マーカを削
除する(606)。
ノードの子孫ノードから、ユニット・マーカをもつノー
ドを検索する(605)。検索されたユニット・マーカ
を持つノードの親ノードから、ターミナル・マーカを削
除する(606)。
【0048】前記(605)で検索されたユニット・マ
ーカをもつノードを前記(601)で検索された親ノー
ドに接続する(607)最後に、前記(601)で検索
された親ノードのターミナル・マーカに、前記(60
5)で検索されたユニット・マーカをもつノードのユニ
ット・マーカ内の任意(例えば1番目)のオブジェクト
リンカを追加する(608)。
ーカをもつノードを前記(601)で検索された親ノー
ドに接続する(607)最後に、前記(601)で検索
された親ノードのターミナル・マーカに、前記(60
5)で検索されたユニット・マーカをもつノードのユニ
ット・マーカ内の任意(例えば1番目)のオブジェクト
リンカを追加する(608)。
【0049】以上でオブジェクトの移動を終了する。こ
のようなオブジェクトの移動操作において、複数のオブ
ジェクトが木構造上の親子関係上にある場合には、その
オブジェクト間の親子関係を変更しても、その操作は、
単にユニット・マーカのついたノードをターミナル・マ
ーカのついたノードの下に接続する操作なので、夫々の
オブジェクトに対応する部位内のノードの間の関係には
影響しないことが保証される。
のようなオブジェクトの移動操作において、複数のオブ
ジェクトが木構造上の親子関係上にある場合には、その
オブジェクト間の親子関係を変更しても、その操作は、
単にユニット・マーカのついたノードをターミナル・マ
ーカのついたノードの下に接続する操作なので、夫々の
オブジェクトに対応する部位内のノードの間の関係には
影響しないことが保証される。
【0050】
【発明の効果】本発明によって、XMLのような木構造
のデータを扱う場合に、その木構造の部分木に当る所望
のノードのかたまりとオブジェクトとを対応させて、そ
のオブジェクトの操作を指定することによって部分木の
操作を連係させるので、部分木の操作がオブジェクトの
操作として一括して直接操作出来るようになり、扱いが
直感的でわかりよくなったと同時に、処理前後に木構造
の整合性を改めて確認する必要がなくなったので、処理
の効率が増した。
のデータを扱う場合に、その木構造の部分木に当る所望
のノードのかたまりとオブジェクトとを対応させて、そ
のオブジェクトの操作を指定することによって部分木の
操作を連係させるので、部分木の操作がオブジェクトの
操作として一括して直接操作出来るようになり、扱いが
直感的でわかりよくなったと同時に、処理前後に木構造
の整合性を改めて確認する必要がなくなったので、処理
の効率が増した。
【0051】更に、前記オブジェクトは、基本オブジェ
クトの操作機能を継承して生成され、これらのオブジェ
クトと、前記木構造データのノードとの対応付けを行う
ので、木構造データのスキーマの変更要求に容易に対応
出来、更にオブジェクトのタイプに対応した機能をもつ
オブジェクト操作システムを追加することで、スキーマ
の変更要求に対応するためのシステム自体の機能拡張を
容易におこなうことが出来るようになった。
クトの操作機能を継承して生成され、これらのオブジェ
クトと、前記木構造データのノードとの対応付けを行う
ので、木構造データのスキーマの変更要求に容易に対応
出来、更にオブジェクトのタイプに対応した機能をもつ
オブジェクト操作システムを追加することで、スキーマ
の変更要求に対応するためのシステム自体の機能拡張を
容易におこなうことが出来るようになった。
【図1】 本発明のシステムの構成を示す図。
【図2】 本発明による木構造データとオブジェクトと
の関連を示す図。
の関連を示す図。
【図3】 本発明によるオブジェクトの操作の概略フロ
ーチャート。
ーチャート。
【図4】 図3におけるオブジェクトの生成306をよ
り詳細に示すフローチャート。
り詳細に示すフローチャート。
【図5】 図3におけるオブジェクトの削除307をよ
り詳細に示すフローチャート。
り詳細に示すフローチャート。
【図6】 図3におけるオブジェクトの移動308をよ
り詳細に示すフローチャート。
り詳細に示すフローチャート。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 中島 和英 神奈川県横浜市磯子区久木町3−28 Fターム(参考) 5B075 ND35 NK44 QT03 5B082 BA05 GA07
Claims (7)
- 【請求項1】 木構造データのスキーマを直接に操作す
る操作機能を有するオブジェクトを生成するステップ
と、操作されるべきスキーマを有する木構造データの部
位を指定するステップと、前記生成されたオブジェクト
と、前記指定された木構造データの部位とを対応させる
ステップとからなる、木構造データの操作方法。 - 【請求項2】 請求項1に記載の方法において、前記木
構造データの部位を指定するステップが、部位の先頭を
示すユニット・マーカと、部位の末尾を示すターミナル
・マーカの2種類のマーカをノードに設定するステップ
を含むことを特徴とする、木構造データの操作方法。 - 【請求項3】 請求項2に記載の方法において、前記オ
ブジェクトと部位とを対応させるステップが、前記部位
のユニット・マーカを有するノードを指示するノード・
リンカをオブジェクトに設定するステップを含むことを
特徴とする、木構造データの操作方法。 - 【請求項4】 請求項2又は請求項3に記載の方法にお
いて、更に、前記部位のマーカに、参照中のオブジェク
トを指示するオブジェクト・リンカを設定するステップ
を有することを特徴とする、木構造データの操作方法。 - 【請求項5】 木構造データのスキーマを直接に操作す
る操作機能を有するオブジェクトを生成する装置と、操
作されるべきスキーマを有する木構造データの部位を指
定する装置と、前記生成されたオブジェクトと、前記指
定された木構造データの部位とを対応させる装置とから
なる、木構造データの操作装置。 - 【請求項6】 コンピュータに、木構造データのスキー
マを直接に操作する操作機能を有するオブジェクトを生
成するステップと、操作されるべきスキーマを有する木
構造データの部位を指定するステップと、前記生成され
たオブジェクトと、前記指定された木構造データの部位
とを対応させるステップとを実行させるためのプログラ
ム。 - 【請求項7】 コンピュータに、木構造データのスキー
マを直接に操作する操作機能を有するオブジェクトを生
成するステップと、操作されるべきスキーマを有する木
構造データの部位を指定するステップと、前記生成され
たオブジェクトと、前記指定された木構造データの部位
とを対応させるステップとを実行させるプログラムを記
録したコンピュータ読取可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001130549A JP2002334001A (ja) | 2001-04-27 | 2001-04-27 | 木構造データの操作方法及び、それを実現する装置及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001130549A JP2002334001A (ja) | 2001-04-27 | 2001-04-27 | 木構造データの操作方法及び、それを実現する装置及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2002334001A true JP2002334001A (ja) | 2002-11-22 |
Family
ID=18978896
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001130549A Pending JP2002334001A (ja) | 2001-04-27 | 2001-04-27 | 木構造データの操作方法及び、それを実現する装置及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2002334001A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005174340A (ja) * | 2003-12-09 | 2005-06-30 | Microsoft Corp | ソフトウェアアプリケーションにおけるネーム空間あるいはスキーマライブラリ支援のためのプログラム可能なオブジェクトモデル |
WO2006038498A1 (ja) * | 2004-10-01 | 2006-04-13 | Turbo Data Laboratories Inc. | 配列の生成方法、及び、配列生成プログラム |
JP2006164270A (ja) * | 2004-12-02 | 2006-06-22 | Microsoft Corp | コラボレーションアイテムをWebサイトに公開するシステムおよび方法 |
WO2007034858A1 (ja) * | 2005-09-22 | 2007-03-29 | Justsystems Corporation | データ管理装置、データ編集装置、データ閲覧装置、データ管理方法、データ編集方法およびデータ閲覧方法 |
-
2001
- 2001-04-27 JP JP2001130549A patent/JP2002334001A/ja active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005174340A (ja) * | 2003-12-09 | 2005-06-30 | Microsoft Corp | ソフトウェアアプリケーションにおけるネーム空間あるいはスキーマライブラリ支援のためのプログラム可能なオブジェクトモデル |
WO2006038498A1 (ja) * | 2004-10-01 | 2006-04-13 | Turbo Data Laboratories Inc. | 配列の生成方法、及び、配列生成プログラム |
JP4712718B2 (ja) * | 2004-10-01 | 2011-06-29 | 株式会社ターボデータラボラトリー | 配列の生成方法、及び、配列生成プログラム |
KR101254544B1 (ko) * | 2004-10-01 | 2013-04-19 | 가부시키가이샤 터보 데이터 라보라토리 | 배열의 생성방법 및 이를 실행하는 컴퓨터 프로그램을 수록한 기록 매체 |
JP2006164270A (ja) * | 2004-12-02 | 2006-06-22 | Microsoft Corp | コラボレーションアイテムをWebサイトに公開するシステムおよび方法 |
WO2007034858A1 (ja) * | 2005-09-22 | 2007-03-29 | Justsystems Corporation | データ管理装置、データ編集装置、データ閲覧装置、データ管理方法、データ編集方法およびデータ閲覧方法 |
JPWO2007034858A1 (ja) * | 2005-09-22 | 2009-03-26 | 株式会社ジャストシステム | データ管理装置、データ編集装置、データ閲覧装置、データ管理方法、データ編集方法およびデータ閲覧方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2371759C2 (ru) | Программируемая объектная модель для поддержки библиотеки пространств имен или схем в программном приложении | |
US7386567B2 (en) | Techniques for changing XML content in a relational database | |
US6973460B1 (en) | Framework for applying operations to nodes of an object model | |
JP4382326B2 (ja) | ウェブ・ドキュメントを再編集して再配布する方法及び装置 | |
KR101331532B1 (ko) | 데이터베이스로부터 xml 문서를 동적으로 생성하는 방법 | |
JP4516566B2 (ja) | Xml文書とリレーショナルデータと間のマッピングにおける階層情報の保持 | |
JP4625464B2 (ja) | 文書処理装置 | |
JP5882829B2 (ja) | データをバインドするためのプログラマビリティ | |
JP5699381B2 (ja) | バイナリにエンコードされたxmlデータの効率的な区分的アップデート | |
US20090210780A1 (en) | Document processing and management approach to creating a new document in a mark up language environment using new fragment and new scheme | |
US20040143792A1 (en) | Redline extensible markup language (XML) schema | |
US20020147748A1 (en) | Extensible stylesheet designs using meta-tag information | |
KR20030048423A (ko) | Xml 퀴어리 처리 방법 및 장치 | |
US20080134019A1 (en) | Processing Data And Documents That Use A Markup Language | |
JPWO2006051715A1 (ja) | 文書処理装置及び文書処理方法 | |
Herman et al. | GraphXML—an XML-based graph description format | |
JPWO2006051713A1 (ja) | 文書処理装置及び文書処理方法 | |
JP2005234837A (ja) | 構造化文書処理方法、構造化文書処理システム及びそのプログラム | |
WO2006137562A1 (ja) | 文書処理装置及び文書処理方法 | |
US20040268230A1 (en) | Systems and methods for differential document delivery based on delta description specifications | |
JP2009544102A (ja) | Xml文書の、意味論を意識した処理 | |
JPWO2006051716A1 (ja) | 文書処理装置及び文書処理方法 | |
JPWO2006051712A1 (ja) | 文書処理装置及び文書処理方法 | |
JPWO2005098661A1 (ja) | 文書処理装置及び文書処理方法 | |
US7404195B1 (en) | Programmable object model for extensible markup language markup in an application |