JP4208194B2 - Xml処理装置、xml処理方法、xml処理プログラム、および、記録媒体 - Google Patents

Xml処理装置、xml処理方法、xml処理プログラム、および、記録媒体 Download PDF

Info

Publication number
JP4208194B2
JP4208194B2 JP2004059753A JP2004059753A JP4208194B2 JP 4208194 B2 JP4208194 B2 JP 4208194B2 JP 2004059753 A JP2004059753 A JP 2004059753A JP 2004059753 A JP2004059753 A JP 2004059753A JP 4208194 B2 JP4208194 B2 JP 4208194B2
Authority
JP
Japan
Prior art keywords
tree
xml
conversion
node
management unit
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
JP2004059753A
Other languages
English (en)
Other versions
JP2005250805A (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2004059753A priority Critical patent/JP4208194B2/ja
Publication of JP2005250805A publication Critical patent/JP2005250805A/ja
Application granted granted Critical
Publication of JP4208194B2 publication Critical patent/JP4208194B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Document Processing Apparatus (AREA)

Description

本発明は、XML処理装置、XML処理方法、XML処理プログラム、および、記録媒体に関する。
XML(eXtensible Markup Language)は、データ表現形式の標準として、情報技術業界に認められており、様々な用途への利用が広まりつつある(非特許文献1など)。それに伴い、ある形式のXMLデータから他の形式のXMLデータへの変換が必要とされる場面も増えてきている。スタイルシートであるXSLT(XML Stylesheet Language Transformation)は、そのようなXML変換の標準として開発された技術であり、XSLT処理系は、既に広く普及している(非特許文献2など)。
The World Wide Web Consortium (W3C) 、"Extensible Markup Language (XML) 1.0 (Third Edition)"、[online]、[平成16年3月2日検索]、インターネット<URL:http://www.w3.org/TR/REC-xml> The World Wide Web Consortium (W3C) 、"XSL Transformations (XSLT) Version 1.0"、[online]、[平成16年3月2日検索]、インターネット<URL:http://www.w3.org/TR/xslt>
XSLT変換では、変換するXMLデータが大きくなるほど、また複雑な変換になるほど、変換時間が長くなる。従来のXSLT処理系では、入力XMLデータの一部のみが変更された場合でも、変更部分だけでなく入力XMLデータの全体に対して、再度XSLTによるデータの変換処理を行う。
そのため、従来のXSLT処理系では、即応性が要求される、またはデータ更新が頻繁である用途には、性能上問題があった。なお、そのような用途の一例としては、空港の発着情報や株価情報などの動的なウェブコンテンツの生成が挙げられる。
そこで、本発明は、前記した問題を解決し、スタイルシートによるXMLデータの変換処理の時間を短縮することを主な目的とする。
前記課題を解決するため、請求項1に記載のXML処理装置は、XMLツリーをスタイルシートの変換規則に従って変換するXML処理装置であって、
前記XML処理装置は、記憶手段と、XMLデータ管理部と、スタイルシート管理部と、変換木管理部と、XML追加命令管理部と、変換木生成部と、変換木更新部と、変換木出力部と、を有し、
前記XMLデータ管理部は、各XML木ノードをツリー構造として接続することにより構成される前記XMLツリーを前記記憶手段に格納し、
前記スタイルシート管理部は、変換規則が適用される前記XML木ノードを指定するためのマッチ属性と、セレクト属性で指定されるセレクトパターンを含むアプライテンプレート命令と、を対応づける前記変換規則が記述される前記スタイルシートを前記記憶手段に格納し、
前記変換木管理部は、各変換木ノードをツリー構造として接続することにより構成される変換木を前記記憶手段に格納し、
前記XML追加命令管理部は、前記XMLツリーにおけるXML部分木の追加場所を指定するためのルートノードから前記XML部分木のルートノードまでのノード列と、前記XMLツリーへの追加対象である前記XML部分木と、を特定するXML追加命令を前記記憶手段に格納し、
前記変換木生成部は、
前記記憶手段から読み込んだ前記XML木ノードと、そのXML木ノードに前記マッチ属性が一致する前記変換規則と、そのXML木ノードに対して前記変換規則を適用して得られる変換結果と、を対応づけて前記各変換木ノードを生成し、
前記変換木更新部は、
生成された前記各変換木ノードに対応づけられる前記変換規則の前記セレクトパターンから、前記記憶手段から読み込んだ前記XML追加命令の前記ノード列と一致する前記セレクトパターンを検索する更新対象ノード検索処理について、
各前記セレクトパターンのロケーションステップと前記ノード列に相当するXパスのロケーションステップとを一致する限り順次照合し、前記Xパスの末尾のロケーションステップに一致するロケーションステップを含むセレクトパターンを特定することで、一致する前記セレクトパターンを持つ前記変換規則に対応づけられる前記変換木ノードを検索し、
検索された前記変換木ノードの前記変換規則のアプライテンプレート命令を前記XML追加命令の前記XML部分木に対して実行することで、前記XML部分木を前記変換結果に変換し、
検索された前記変換木ノードの子ノードに、新たに前記変換木ノードを追加するとともに、追加した前記変換木ノードに前記変換結果を対応づけ
前記変換木出力部は、
前記変換木更新部により更新された前記変換木ノードについて、前記各変換木ノードに対応づけられる前記変換結果を抽出し、前記変換木ノードのツリー構造と同じツリー構造になるように接続して出力することを特徴とする。
これにより、更新されたXMLデータ部位の影響を受ける箇所のみ、スタイルシートによる変換処理を行うことができるので、XMLデータの変換処理にかかる時間を減らすことが可能となる。
これにより、変換結果の木構造について、変換規則で整列させるか否かを入力する際に指定することが可能となる。
請求項2に記載のXML処理方法は、XMLツリーをスタイルシートの変換規則に従って変換するXML処理装置によるXML処理方法であって、
前記XML処理装置は、記憶手段と、XMLデータ管理部と、スタイルシート管理部と、変換木管理部と、XML追加命令管理部と、変換木生成部と、変換木更新部と、変換木出力部と、を有し、
前記XMLデータ管理部は、各XML木ノードをツリー構造として接続することにより構成される前記XMLツリーを前記記憶手段に格納し、
前記スタイルシート管理部は、変換規則が適用される前記XML木ノードを指定するためのマッチ属性と、セレクト属性で指定されるセレクトパターンを含むアプライテンプレート命令と、を対応づける前記変換規則が記述される前記スタイルシートを前記記憶手段に格納し、
前記変換木管理部は、各変換木ノードをツリー構造として接続することにより構成される変換木を前記記憶手段に格納し、
前記XML追加命令管理部は、前記XMLツリーにおけるXML部分木の追加場所を指定するためのルートノードから前記XML部分木のルートノードまでのノード列と、前記XMLツリーへの追加対象である前記XML部分木と、を特定するXML追加命令を前記記憶手段に格納し、
前記変換木生成部は、
前記記憶手段から読み込んだ前記XML木ノードと、そのXML木ノードに前記マッチ属性が一致する前記変換規則と、そのXML木ノードに対して前記変換規則を適用して得られる変換結果と、を対応づけて前記各変換木ノードを生成し、
前記変換木更新部は、
生成された前記各変換木ノードに対応づけられる前記変換規則の前記セレクトパターンから、前記記憶手段から読み込んだ前記XML追加命令の前記ノード列と一致する前記セレクトパターンを検索する更新対象ノード検索処理について、
各前記セレクトパターンのロケーションステップと前記ノード列に相当するXパスのロケーションステップとを一致する限り順次照合し、前記Xパスの末尾のロケーションステップに一致するロケーションステップを含むセレクトパターンを特定することで、一致する前記セレクトパターンを持つ前記変換規則に対応づけられる前記変換木ノードを検索し、
検索された前記変換木ノードの前記変換規則のアプライテンプレート命令を前記XML追加命令の前記XML部分木に対して実行することで、前記XML部分木を前記変換結果に変換し、
検索された前記変換木ノードの子ノードに、新たに前記変換木ノードを追加するとともに、追加した前記変換木ノードに前記変換結果を対応づけ
前記変換木出力部は、
前記変換木更新部により更新された前記変換木ノードについて、前記各変換木ノードに対応づけられる前記変換結果を抽出し、前記変換木ノードのツリー構造と同じツリー構造になるように接続して出力することを特徴とする。
これにより、更新されたXMLデータ部位の影響を受ける箇所のみ、スタイルシートによる変換処理を行うことができるので、XMLデータの変換処理にかかる時間を減らすことが可能となる。
これにより、変換結果の木構造について、変換規則で整列させるか否かを入力する際に指定することが可能となる。
本発明は、更新されたXMLデータ部位の影響を受ける箇所のみ、スタイルシートによる変換処理を行うことを特徴とする。これにより、従来のXMLデータのXSLT変換において、処理時間増加の原因となる原因となっていた全XMLデータの変換処理を減らすことが可能となるので、変換時間の短縮が可能になった。
以下に、本発明が適用されるXML処理装置の一実施形態について、図面を参照して詳細に説明する。まず、本実施形態のXML処理装置の構成について、図1から図5を参照して説明する。
図1は、XML処理装置の構成図である。図1に示すXML処理装置1は、XMLツリーをスタイルシートの変換規則に従って変換する。そのため、XML処理装置1は、XMLデータから生成されるXMLツリーを格納するXMLデータ管理部100と、変換規則を規定するスタイルシートを格納するスタイルシート管理部101と、XMLツリーにスタイルシートの変換規則を適用して変換木を生成する変換木生成部102と、XMLツリーへの追加命令を格納するXML追加命令管理部103と、XMLツリーを元に生成された変換木を管理する変換木管理部104と、追加命令を元に変換木を更新する変換木更新部105と、更新された変換木から変換規則に従った変換結果を抽出して出力する変換木出力部106と、変換木出力部106の変換結果を管理する変換結果管理部107と、を含めて構成される。
図2は、XML追加命令管理部の構成図である。XML追加命令は、XMLツリーを検索するためのXパスXと、XML木への追加命令から生成されるXML部分木DTAと、を含めて構成され、XMLデータへの処理内容も、含まれている。
図3は、変換木を構成するノードの説明図である。XMLツリーにスタイルシートの変換規則を適用した変換木は、変換木を構成する変換木ノードTNの集合として構成され、各変換木ノードTNは、親子関係のリンクによって、接続されている。なお、変換木ノードTNは、XML木を構成するXML木ノードDNと、XMLデータの変換結果DTBと、変換規則の属性情報によってXML木ノードDNに対応付けられる変換規則ST、XML木ノードDNへの変換規則STの適用結果である変換結果DTBとを対応付けて管理する変換ノードTNT、整列可否情報を有さない設定ノードTNS、整列可否情報を有する整列設定ノードTNI、に分類される。
なお、以下の説明において、ノードの符号をTNまたはDNとする。これは、そのノードが、変換木のノード(符号としてTNを使用)か、XML木のノード(符号としてDNを使用)か、を示すためである。さらに、説明上、ノードを修飾する情報として、ノードのツリーにおける位置(例えば、ルートノード)や、現在の処理対象となるノード(カレントノード)のように、ノードの前に修飾する用語を付加する場合もある。よって、例えば、“ルートノードTN”は、変換木のノードのうち、ルート(根)に位置するノードを示す。
図4は、変換木および変換木から抽出される変換結果を示す図である。変換木Tの各変換木ノードTNに対応付けられている変換結果DTBを抽出し、変換木Tの親子関係に従って変換結果DTBを接続することにより、XMLデータの変換結果が、得られる。
図5は、変換木の更新処理の概要を示す図である。XML処理装置1は、XML追加命令から抽出されたXパスXを基に、変換木Tの各変換木ノードTNを検索する。そして、XML処理装置1は、検索された変換木ノードTNの変換規則STに従って、XML追加命令から抽出されたXML部分木DTAを変換結果DTBに変換し、検索された変換木ノードTNの変換規則STに従って、変換結果DTBを変換木Tに反映する。なお、図5は、変換結果DTBを変換木Tに追加するために、新たに変換木ノードTNを生成する一例を示しているが、既存の変換木ノードTNに変換結果DTBを追加するケースや、変換結果DTBに従って既存の変換木ノードTNを削除するケースもある。
以上、XML処理装置の構成について、説明した。次に、本実施形態のXML処理装置の動作のうち、変換木の作成処理について、図1から図5を参照しつつ、図6から図8に沿って説明する。
なお、本実施形態において、フローチャートは、相互に関連を持つ。まず、各図に示されるフローチャートの処理全体は、下2桁が“00”となるステップとして表記される。そして、所定のフローチャートの処理が、別のフローチャートを関数呼び出しを行うこともある。例えば、図6に示すフローチャート(S100)は、処理過程において、図7に示すフローチャート(S200)を呼び出している。なお、所定のフローチャート(例えば、図10に示すS500)が、同一のフローチャート(S500)を呼び出す場合は、再帰的な関数呼び出しとなる。
図6は、変換木の作成処理(メイン処理)を示すフローチャートである。まず、XML処理装置1は、XMLデータ管理部100からXMLデータを、XML木Dとして読み込む(S101)。次に、XML処理装置1は、スタイルシート管理部101からスタイルシートSを読み込み、その変換規則STをテーブルとして保持する。テーブルは、変換規則STのマッチ属性STMのパターンをキー値とし、変換規則STの変換生成命令STiを値とする対応表となる(S102)。そして、XML処理装置1は、集合A1を空集合で初期化する(S103)。さらに、XML処理装置1は、変換木Tのルートノードを生成し、集合A1に追加する(S104)。そして、XML処理装置1は、XML木Dのルートノードを、カレントノードDNとする(S105)。
さらに、XML処理装置1は、変換ノード作成処理のプログラム(S200)を呼び出す。そして、XML処理装置1は、変換木Tのルートノードから生成された変換木ノードの集合を、変換木Tのルートノードの子として変換木Tに追加する(S107)。さらに、XML処理装置1は、変換木Tを出力する(S108)。
図7は、変換木の作成処理(変換ノード作成処理)を示すフローチャートである。まず、変換木生成部102は、XML木DのカレントノードDNと、各変換規則のマッチ属性STMのパターン部とを照合し、マッチする変換規則を特定し、変換規則STとする(S201)。
次に、変換木生成部102は、カレントノードDNと、変換規則STが含むアプライテンプレートのセレクト属性で指定されるセレクトパターンを用いて、処理対象となるXML木ノードを特定し、変換木Tのノードを作成し、変換木TのカレントノードTNとする(S202)。
そして、変換木生成部102は、変換規則STの変換生成命令それぞれについて、変換生成命令STiとして以下を繰り返す(S203)。ここで、変換木生成部102は、変換生成命令STiはアプライテンプレート(apply-template)命令かを確認する(S204)。まず、アプライテンプレート命令の場合(S204、Y)、変換木生成部102は、アプライテンプレート命令処理のプログラム(S300)を呼び出す。一方、アプライテンプレート命令ではない場合(S204、N)、変換木生成部102は、カレントノードDNに変換生成命令STiを適用し、その変換結果を変換木TのカレントノードTNに追加する(S206)。
図8は、変換木の作成処理(アプライテンプレート命令処理)を示すフローチャートである。ここで、変換木生成部102は、変換生成命令STiはソート条件を指定されているかを確認する(S301)。まず、ソート条件が指定されている場合(S301、Y)、変換木生成部102は、整列設定ノードTNIを生成し、変換木TのカレントノードTNの子ノードとする(S302)。一方、ソート条件が指定されていない場合(S301、Y)、変換木生成部102は、設定ノードTNSを生成し、変換木TのカレントノードTNの子ノードとする(S303)。
そして、変換木生成部102は、カレントノードDNを基に、変換生成命令STiのセレクトパターンSTS−PにマッチするXML木ノードDNの集合を探す(S304)。さらに、変換木生成部102は、XML木ノードDNの集合の要素それぞれについて、以下を繰り返す(S305)。まず、変換木生成部102は、変換ノード作成処理のプログラム(S200)を呼び出す。そして、変換木生成部102は、作成された変換ノードTNTを、設定ノードTNSまたは整列設定ノードTNIの子とする(S307)。ここで、変換木生成部102は、変換生成命令STiのセレクト属性値は「/」で始まっているかを確認する(S308)。そして、セレクト属性値が「/」で始まっている場合(S308、Y)、変換木生成部102は、集合A1に、設定ノードTNSまたは整列設定ノードTNIを追加する(S309)。
以上、変換木の作成処理について、説明した。次に、本実施形態のXML処理装置の動作のうち、変換木の更新処理について、図1から図8を参照しつつ、図9から図12に沿って説明する。
図9は、変換木の更新処理(メイン処理)を示すフローチャートである。まず、XML処理装置1は、集合A2を空集合で初期化する(S401)。次に、XML処理装置1は、XML追加命令管理部103からXML追加命令を読み込み、それに基づいてXパスXと、XML部分木DTAを作成する(S402)。そして、XML処理装置1は、XML部分木DTAのルートノードを、カレントノードDNとする(S403)。さらに、XML処理装置1は、変換木管理部104から変換木Tを読み込む(S404)。
そして、XML処理装置1は、集合A1に含まれる変換木ノードを順にカレントノードTNとして、以下を繰り返す(S405)。まず、XML処理装置1は、カレントノードTNの変換規則を、変換規則STとする(S406)。次に、XML処理装置1は、変数xiを1に初期化し、変数xmaxにXパスXのロケーションステップ数X−LNを代入する(S407)。そして、XML処理装置1は、更新対象ノード検索処理のプログラム(S500)を呼び出す。さらに、XML処理装置1は、集合A2に含まれる組をそれぞれ順に変数Pに代入し、ノード更新処理のプログラム(S700)を呼び出す(S409)。
図10は、変換木の更新処理(更新対象ノード検索処理)を示すフローチャートである。まず、変換木更新部105は、変数Tiを値1に初期化し、変数Tmaxに変換規則STのロケーションステップ数STS−LNを代入する(S501)。次に、変換木更新部105は、Ti<=Tmax、かつ、xi<=xmaxが真である間、以下を実行する(S502)。ここで、変換木更新部105は、変換規則STのセレクトパターンSTS−Pは「//」で始まっているかを確認する(S503)。もし、「//」で始まっている場合(S503、Y)、変換木更新部105は、更新対象ノード検索処理のプログラム(S500)を呼び出す。
ここで、変換木更新部105は、セレクトパターンSTS−PのTi番目のロケーションステップSTS−Lと、XパスXのxi番目のロケーションステップX−Lが、マッチするかを確認する(S505)。もし、マッチしない場合(S505、N)は、関数呼び出しをリターンする。一方、マッチする場合(S505、Y)は、変換木更新部105は、Tiに1を追加し、Xiに1を追加する(S506)。ここで、変換木更新部105は、xi>xmaxかを確認する(S507)。まず、xi>xmaxの場合(S507、Y)、変換木更新部105は、更新データ加工処理のプログラム(S600)を呼び出す。一方、xi>xmaxではない場合(S507、N)、変換木更新部105は、カレントノードTNの子ノードそれぞれについて、更新対象ノード検索処理のプログラム(S500)を呼び出す(S509)。
図11は、変換木の更新処理(更新データ加工処理)を示すフローチャートである。ここで、変換木更新部105は、Ti>Tmaxかを確認する(S601)。まず、Ti>Tmaxの場合(S601、Y)、変換木更新部105は、カレントノードTNとカレントノードDNの組を、集合A2に追加して(S602)、関数呼び出しをリターンする。一方、Ti>Tmaxでない場合(S601、N)、変換木更新部105は、ロケーションステップSTS−Lと、カレントノードDNとが、マッチするかを確認し(S603)、マッチしない場合(S603、N)に関数呼び出しをリターンする。そして、変換木更新部105は、Tiに1を追加する(S604)。さらに、変換木更新部105は、カレントノードDNの子ノードそれぞれについて、更新データ加工処理のプログラム(S600)を呼び出す(S605)。
図12は、変換木の更新処理(ノード更新処理)を示すフローチャートである。まず、変換木更新部105は、組Pの変換木Tのノードを親ノードTNP(カレントノードTN)とし、組PのXML木ノードをカレントノードDNとする(S701)。次に、変換木更新部105は、変換ノード作成処理のプログラム(S200)を呼び出す。そして、変換木更新部105は、生成された変換木Tのノードを、子ノードTNCとする(S703)。
ここで、変換木更新部105は、親ノードTNPは整列設定ノードTNIかを確認する(S704)。まず、整列設定ノードTNIである場合(S704、Y)、変換木更新部105は、親ノードTNPの子ノードとして、ソート順序を満たすように子ノードTNCを追加する(S705)。一方、整列設定ノードTNIでない場合(S704、N)、変換木更新部105は、親ノードTNPの子ノードとして、子ノードTNCを追加する(S706)。
以上、変換木の更新処理について、説明した。次に、本実施形態のXML処理装置の動作のうち、変換結果の出力処理について、図1から図12を参照しつつ、図13および図14に沿って説明する。
図13は、変換結果の出力処理(メイン処理)を示すフローチャートである。まず、XML処理装置1は、変換木管理部104から変換木Tを読み込む(S801)。次に、XML処理装置1は、変換木TのルートノードをカレントノードTNとする(S802)。そして、XML処理装置1は、変換結果部分木出力処理のプログラム(S900)を呼び出す。
図14は、変換結果の出力処理(変換結果部分木出力処理)を示すフローチャートである。まず、変換木出力部106は、変換結果管理部107にカレントノードTNの変換結果を出力する(S901)。次に、変換木出力部106は、カレントノードTNの子ノードそれぞれについて、変換結果部分木出力処理のプログラム(S900)を呼び出す(S902)。
以上説明したXML処理装置1によって、実際に40000件のデータに対して1件のデータ追加を行った場合、従来手法(全変換)での変換時間は11000[msec]であったが、本発明の手法(部分変換)では300[msec]となり、変換時間が1/36に短縮されたことを確認した。
以上説明した本発明は、以下のように発明の趣旨を逸脱しない範囲で広く変形実施することができる。
例えば、XML処理装置1は、処理対象となるXMLツリーについて、様々な形式で入力を受け付けてもよい。例えば、XMLツリーの木構造のデータ構造をそのまま入力させてもよいし、構造化テキストの形式で入力されてもよい。なお、XML処理装置1は、構造化テキストの形式で入力されたXMLデータを、DOM(Document Object Model)などにより走査して、木構造に変換する。
本発明の一実施形態に関するXML処理装置の構成図である。 本発明の一実施形態に関するXML追加命令管理部の構成図である。 本発明の一実施形態に関する変換木を構成するノードの説明図である。 本発明の一実施形態に関する変換木および変換木から抽出される変換結果を示す図である。 本発明の一実施形態に関する変換木の更新処理の概要を示す図である。 本発明の一実施形態に関する変換木の作成処理(メイン処理)を示すフローチャートである。 本発明の一実施形態に関する変換木の作成処理(変換ノード作成処理)を示すフローチャートである。 本発明の一実施形態に関する変換木の作成処理(アプライテンプレート命令処理)を示すフローチャートである。 本発明の一実施形態に関する変換木の更新処理(メイン処理)を示すフローチャートである。 本発明の一実施形態に関する変換木の更新処理(更新対象ノード検索処理)を示すフローチャートである。 本発明の一実施形態に関する変換木の更新処理(更新データ加工処理)を示すフローチャートである。 本発明の一実施形態に関する変換木の更新処理(ノード更新処理)を示すフローチャートである。 本発明の一実施形態に関する変換結果の出力処理(メイン処理)を示すフローチャートである。 本発明の一実施形態に関する変換結果の出力処理(変換結果部分木出力処理)を示すフローチャートである。
符号の説明
1 XML処理装置
100 XMLデータ管理部
101 スタイルシート管理部
102 変換木生成部
103 XML追加命令管理部
104 変換木管理部
105 変換木更新部
106 変換木出力部
107 変換結果管理部
T 変換木
TN 変換木ノード
TNT 変換ノード
TNI 整列設定ノード
S スタイルシート
ST 変換規則

Claims (4)

  1. XMLツリーをスタイルシートの変換規則に従って変換するXML処理装置であって、
    前記XML処理装置は、記憶手段と、XMLデータ管理部と、スタイルシート管理部と、変換木管理部と、XML追加命令管理部と、変換木生成部と、変換木更新部と、変換木出力部と、を有し、
    前記XMLデータ管理部は、各XML木ノードをツリー構造として接続することにより構成される前記XMLツリーを前記記憶手段に格納し、
    前記スタイルシート管理部は、変換規則が適用される前記XML木ノードを指定するためのマッチ属性と、セレクト属性で指定されるセレクトパターンを含むアプライテンプレート命令と、を対応づける前記変換規則が記述される前記スタイルシートを前記記憶手段に格納し、
    前記変換木管理部は、各変換木ノードをツリー構造として接続することにより構成される変換木を前記記憶手段に格納し、
    前記XML追加命令管理部は、前記XMLツリーにおけるXML部分木の追加場所を指定するためのルートノードから前記XML部分木のルートノードまでのノード列と、前記XMLツリーへの追加対象である前記XML部分木と、を特定するXML追加命令を前記記憶手段に格納し、
    前記変換木生成部は、
    前記記憶手段から読み込んだ前記XML木ノードと、そのXML木ノードに前記マッチ属性が一致する前記変換規則と、そのXML木ノードに対して前記変換規則を適用して得られる変換結果と、を対応づけて前記各変換木ノードを生成し、
    前記変換木更新部は、
    生成された前記各変換木ノードに対応づけられる前記変換規則の前記セレクトパターンから、前記記憶手段から読み込んだ前記XML追加命令の前記ノード列と一致する前記セレクトパターンを検索する更新対象ノード検索処理について、
    各前記セレクトパターンのロケーションステップと前記ノード列に相当するXパスのロケーションステップとを一致する限り順次照合し、前記Xパスの末尾のロケーションステップに一致するロケーションステップを含むセレクトパターンを特定することで、一致する前記セレクトパターンを持つ前記変換規則に対応づけられる前記変換木ノードを検索し、
    検索された前記変換木ノードの前記変換規則のアプライテンプレート命令を前記XML追加命令の前記XML部分木に対して実行することで、前記XML部分木を前記変換結果に変換し、
    検索された前記変換木ノードの子ノードに、新たに前記変換木ノードを追加するとともに、追加した前記変換木ノードに前記変換結果を対応づけ
    前記変換木出力部は、
    前記変換木更新部により更新された前記変換木ノードについて、前記各変換木ノードに対応づけられる前記変換結果を抽出し、前記変換木ノードのツリー構造と同じツリー構造になるように接続して出力することを特徴とするXML処理装置。
  2. XMLツリーをスタイルシートの変換規則に従って変換するXML処理装置によるXML処理方法であって、
    前記XML処理装置は、記憶手段と、XMLデータ管理部と、スタイルシート管理部と、変換木管理部と、XML追加命令管理部と、変換木生成部と、変換木更新部と、変換木出力部と、を有し、
    前記XMLデータ管理部は、各XML木ノードをツリー構造として接続することにより構成される前記XMLツリーを前記記憶手段に格納し、
    前記スタイルシート管理部は、変換規則が適用される前記XML木ノードを指定するためのマッチ属性と、セレクト属性で指定されるセレクトパターンを含むアプライテンプレート命令と、を対応づける前記変換規則が記述される前記スタイルシートを前記記憶手段に格納し、
    前記変換木管理部は、各変換木ノードをツリー構造として接続することにより構成される変換木を前記記憶手段に格納し、
    前記XML追加命令管理部は、前記XMLツリーにおけるXML部分木の追加場所を指定するためのルートノードから前記XML部分木のルートノードまでのノード列と、前記XMLツリーへの追加対象である前記XML部分木と、を特定するXML追加命令を前記記憶手段に格納し、
    前記変換木生成部は、
    前記記憶手段から読み込んだ前記XML木ノードと、そのXML木ノードに前記マッチ属性が一致する前記変換規則と、そのXML木ノードに対して前記変換規則を適用して得られる変換結果と、を対応づけて前記各変換木ノードを生成し、
    前記変換木更新部は、
    生成された前記各変換木ノードに対応づけられる前記変換規則の前記セレクトパターンから、前記記憶手段から読み込んだ前記XML追加命令の前記ノード列と一致する前記セレクトパターンを検索する更新対象ノード検索処理について、
    各前記セレクトパターンのロケーションステップと前記ノード列に相当するXパスのロケーションステップとを一致する限り順次照合し、前記Xパスの末尾のロケーションステップに一致するロケーションステップを含むセレクトパターンを特定することで、一致する前記セレクトパターンを持つ前記変換規則に対応づけられる前記変換木ノードを検索し、
    検索された前記変換木ノードの前記変換規則のアプライテンプレート命令を前記XML追加命令の前記XML部分木に対して実行することで、前記XML部分木を前記変換結果に変換し、
    検索された前記変換木ノードの子ノードに、新たに前記変換木ノードを追加するとともに、追加した前記変換木ノードに前記変換結果を対応づけ
    前記変換木出力部は、
    前記変換木更新部により更新された前記変換木ノードについて、前記各変換木ノードに対応づけられる前記変換結果を抽出し、前記変換木ノードのツリー構造と同じツリー構造になるように接続して出力することを特徴とするXML処理方法。
  3. 請求項2に記載のXML処理方法を、コンピュータに実行させるためのXML処理プログラム。
  4. 請求項2に記載のXML処理方法を、コンピュータに実行させるためのXML処理プログラムを格納した、コンピュータが読み取り可能な記録媒体。
JP2004059753A 2004-03-03 2004-03-03 Xml処理装置、xml処理方法、xml処理プログラム、および、記録媒体 Expired - Fee Related JP4208194B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004059753A JP4208194B2 (ja) 2004-03-03 2004-03-03 Xml処理装置、xml処理方法、xml処理プログラム、および、記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004059753A JP4208194B2 (ja) 2004-03-03 2004-03-03 Xml処理装置、xml処理方法、xml処理プログラム、および、記録媒体

Publications (2)

Publication Number Publication Date
JP2005250805A JP2005250805A (ja) 2005-09-15
JP4208194B2 true JP4208194B2 (ja) 2009-01-14

Family

ID=35031235

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004059753A Expired - Fee Related JP4208194B2 (ja) 2004-03-03 2004-03-03 Xml処理装置、xml処理方法、xml処理プログラム、および、記録媒体

Country Status (1)

Country Link
JP (1) JP4208194B2 (ja)

Also Published As

Publication number Publication date
JP2005250805A (ja) 2005-09-15

Similar Documents

Publication Publication Date Title
US7197510B2 (en) Method, system and program for generating structure pattern candidates
JP4445509B2 (ja) 構造化文書検索システム及びプログラム
JP5121146B2 (ja) 構造化文書管理装置、構造化文書管理プログラムおよび構造化文書管理方法
US7765464B2 (en) Method and system for dynamically assembling presentations of web pages
JP2003150586A (ja) 文書変換システム、文書変換方法及び文書変換プログラムを記録したコンピュータ読み取り可能な記録媒体
JPWO2006046523A1 (ja) 文書解析システム、及び文書適応システム
JP2002183116A (ja) 文書合成方法および文書合成装置
JP2008052662A (ja) 構造化文書管理システム及びプログラム
JPH0830620A (ja) 構造検索装置
JP2008090500A (ja) データ構造変換システム、プログラム及びデータ構造
JPWO2008093569A1 (ja) 情報抽出規則作成支援システム、情報抽出規則作成支援方法及び情報抽出規則作成支援プログラム
WO1998008168A1 (fr) Dispositif pour generer un texte original et son support de memoire programme
JP2020030740A (ja) ドキュメント作成支援システム
JP2002215519A (ja) ウェブページ生成方法およびシステム、ウェブページ生成プログラム、記録媒体
JP4208194B2 (ja) Xml処理装置、xml処理方法、xml処理プログラム、および、記録媒体
JP2006127235A (ja) 構造化文書管理システム、構造化文書管理方法及びプログラム
JP2004348341A (ja) 構造化文書処理システム、構造化文書処理方法及びプログラム
JP3632643B2 (ja) 構造化文書管理装置
JP6638053B1 (ja) ドキュメント作成支援システム
JP2003140960A (ja) Xmlデータのデータ変換方法及びプログラム
JP2013218627A (ja) 構造化文書からの情報抽出方法、装置、及びプログラム
JP5206675B2 (ja) 構造化文書変換装置
JP2021039579A (ja) ドキュメント作成支援システム
JP2020030792A (ja) ドキュメント作成支援システム
JP6589317B2 (ja) 書換装置、処理方法とそのプログラム、および、情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060404

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080108

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080527

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20080701

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080728

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20080704

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080826

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080926

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7426

Effective date: 20081017

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081017

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20111031

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20111031

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121031

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121031

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20131031

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees