(57)【特許請求の範囲】
【請求項１】
ＸＭＬツリーをスタイルシートの変換規則に従って変換するＸＭＬ処理装置であって、
前記ＸＭＬ処理装置は、記憶手段と、ＸＭＬデータ管理部と、スタイルシート管理部と、変換木管理部と、ＸＭＬ追加命令管理部と、変換木生成部と、変換木更新部と、変換木出力部と、を有し、
前記ＸＭＬデータ管理部は、各ＸＭＬ木ノードをツリー構造として接続することにより構成される前記ＸＭＬツリーを前記記憶手段に格納し、
前記スタイルシート管理部は、変換規則が適用される前記ＸＭＬ木ノードを指定するためのマッチ属性と、セレクト属性で指定されるセレクトパターンを含むアプライテンプレート命令と、を対応づける前記変換規則が記述される前記スタイルシートを前記記憶手段に格納し、
前記変換木管理部は、各変換木ノードをツリー構造として接続することにより構成される変換木を前記記憶手段に格納し、
前記ＸＭＬ追加命令管理部は、前記ＸＭＬツリーにおけるＸＭＬ部分木の追加場所を指定するためのルートノードから前記ＸＭＬ部分木のルートノードまでのノード列と、前記ＸＭＬツリーへの追加対象である前記ＸＭＬ部分木と、を特定するＸＭＬ追加命令を前記記憶手段に格納し、
前記変換木生成部は、
前記記憶手段から読み込んだ前記ＸＭＬ木ノードと、そのＸＭＬ木ノードに前記マッチ属性が一致する前記変換規則と、そのＸＭＬ木ノードに対して前記変換規則を適用して得られる変換結果と、を対応づけて前記各変換木ノードを生成し、
前記変換木更新部は、
生成された前記各変換木ノードに対応づけられる前記変換規則の前記セレクトパターンから、前記記憶手段から読み込んだ前記ＸＭＬ追加命令の前記ノード列と一致する前記セレクトパターンを検索する更新対象ノード検索処理について、
各前記セレクトパターンのロケーションステップと前記ノード列に相当するＸパスのロケーションステップとを一致する限り順次照合し、前記Ｘパスの末尾のロケーションステップに一致するロケーションステップを含むセレクトパターンを特定することで、一致する前記セレクトパターンを持つ前記変換規則に対応づけられる前記変換木ノードを検索し、
検索された前記変換木ノードの前記変換規則のアプライテンプレート命令を前記ＸＭＬ追加命令の前記ＸＭＬ部分木に対して実行することで、前記ＸＭＬ部分木を前記変換結果に変換し、
検索された前記変換木ノードの子ノードに、新たに前記変換木ノードを追加するとともに、追加した前記変換木ノードに前記変換結果を対応づけ
前記変換木出力部は、
前記変換木更新部により更新された前記変換木ノードについて、前記各変換木ノードに対応づけられる前記変換結果を抽出し、前記変換木ノードのツリー構造と同じツリー構造になるように接続して出力することを特徴とするＸＭＬ処理装置。
【請求項２】
ＸＭＬツリーをスタイルシートの変換規則に従って変換するＸＭＬ処理装置によるＸＭＬ処理方法であって、
前記ＸＭＬ処理装置は、記憶手段と、ＸＭＬデータ管理部と、スタイルシート管理部と、変換木管理部と、ＸＭＬ追加命令管理部と、変換木生成部と、変換木更新部と、変換木出力部と、を有し、
前記ＸＭＬデータ管理部は、各ＸＭＬ木ノードをツリー構造として接続することにより構成される前記ＸＭＬツリーを前記記憶手段に格納し、
前記スタイルシート管理部は、変換規則が適用される前記ＸＭＬ木ノードを指定するためのマッチ属性と、セレクト属性で指定されるセレクトパターンを含むアプライテンプレート命令と、を対応づける前記変換規則が記述される前記スタイルシートを前記記憶手段に格納し、
前記変換木管理部は、各変換木ノードをツリー構造として接続することにより構成される変換木を前記記憶手段に格納し、
前記ＸＭＬ追加命令管理部は、前記ＸＭＬツリーにおけるＸＭＬ部分木の追加場所を指定するためのルートノードから前記ＸＭＬ部分木のルートノードまでのノード列と、前記ＸＭＬツリーへの追加対象である前記ＸＭＬ部分木と、を特定するＸＭＬ追加命令を前記記憶手段に格納し、
前記変換木生成部は、
前記記憶手段から読み込んだ前記ＸＭＬ木ノードと、そのＸＭＬ木ノードに前記マッチ属性が一致する前記変換規則と、そのＸＭＬ木ノードに対して前記変換規則を適用して得られる変換結果と、を対応づけて前記各変換木ノードを生成し、
前記変換木更新部は、
生成された前記各変換木ノードに対応づけられる前記変換規則の前記セレクトパターンから、前記記憶手段から読み込んだ前記ＸＭＬ追加命令の前記ノード列と一致する前記セレクトパターンを検索する更新対象ノード検索処理について、
各前記セレクトパターンのロケーションステップと前記ノード列に相当するＸパスのロケーションステップとを一致する限り順次照合し、前記Ｘパスの末尾のロケーションステップに一致するロケーションステップを含むセレクトパターンを特定することで、一致する前記セレクトパターンを持つ前記変換規則に対応づけられる前記変換木ノードを検索し、
検索された前記変換木ノードの前記変換規則のアプライテンプレート命令を前記ＸＭＬ追加命令の前記ＸＭＬ部分木に対して実行することで、前記ＸＭＬ部分木を前記変換結果に変換し、
検索された前記変換木ノードの子ノードに、新たに前記変換木ノードを追加するとともに、追加した前記変換木ノードに前記変換結果を対応づけ
前記変換木出力部は、
前記変換木更新部により更新された前記変換木ノードについて、前記各変換木ノードに対応づけられる前記変換結果を抽出し、前記変換木ノードのツリー構造と同じツリー構造になるように接続して出力することを特徴とするＸＭＬ処理方法。
【請求項３】
請求項２に記載のＸＭＬ処理方法を、コンピュータに実行させるためのＸＭＬ処理プログラム。
【請求項４】
請求項２に記載のＸＭＬ処理方法を、コンピュータに実行させるためのＸＭＬ処理プログラムを格納した、コンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＸＭＬ処理装置、ＸＭＬ処理方法、ＸＭＬ処理プログラム、および、記録媒体に関する。
【背景技術】
【０００２】
ＸＭＬ（eXtensible Markup Language）は、データ表現形式の標準として、情報技術業界に認められており、様々な用途への利用が広まりつつある（非特許文献１など）。それに伴い、ある形式のＸＭＬデータから他の形式のＸＭＬデータへの変換が必要とされる場面も増えてきている。スタイルシートであるＸＳＬＴ（XML Stylesheet Language Transformation）は、そのようなＸＭＬ変換の標準として開発された技術であり、ＸＳＬＴ処理系は、既に広く普及している（非特許文献２など）。
【非特許文献１】The World Wide Web Consortium (W3C) 、“Extensible Markup Language (XML) 1.0 (Third Edition)”、[online]、［平成１６年３月２日検索］、インターネット＜ＵＲＬ：http://www.w3.org/TR/REC-xml＞
【非特許文献２】The World Wide Web Consortium (W3C) 、“XSL Transformations (XSLT) Version 1.0”、[online]、［平成１６年３月２日検索］、インターネット＜ＵＲＬ：http://www.w3.org/TR/xslt＞
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ＸＳＬＴ変換では、変換するＸＭＬデータが大きくなるほど、また複雑な変換になるほど、変換時間が長くなる。従来のＸＳＬＴ処理系では、入力ＸＭＬデータの一部のみが変更された場合でも、変更部分だけでなく入力ＸＭＬデータの全体に対して、再度ＸＳＬＴによるデータの変換処理を行う。
【０００４】
そのため、従来のＸＳＬＴ処理系では、即応性が要求される、またはデータ更新が頻繁である用途には、性能上問題があった。なお、そのような用途の一例としては、空港の発着情報や株価情報などの動的なウェブコンテンツの生成が挙げられる。
【０００５】
そこで、本発明は、前記した問題を解決し、スタイルシートによるＸＭＬデータの変換処理の時間を短縮することを主な目的とする。
【課題を解決するための手段】
【０００６】
前記課題を解決するため、請求項１に記載のＸＭＬ処理装置は、ＸＭＬツリーをスタイルシートの変換規則に従って変換するＸＭＬ処理装置であって、
前記ＸＭＬ処理装置は、記憶手段と、ＸＭＬデータ管理部と、スタイルシート管理部と、変換木管理部と、ＸＭＬ追加命令管理部と、変換木生成部と、変換木更新部と、変換木出力部と、を有し、
前記ＸＭＬデータ管理部は、各ＸＭＬ木ノードをツリー構造として接続することにより構成される前記ＸＭＬツリーを前記記憶手段に格納し、
前記スタイルシート管理部は、変換規則が適用される前記ＸＭＬ木ノードを指定するためのマッチ属性と、セレクト属性で指定されるセレクトパターンを含むアプライテンプレート命令と、を対応づける前記変換規則が記述される前記スタイルシートを前記記憶手段に格納し、
前記変換木管理部は、各変換木ノードをツリー構造として接続することにより構成される変換木を前記記憶手段に格納し、
前記ＸＭＬ追加命令管理部は、前記ＸＭＬツリーにおけるＸＭＬ部分木の追加場所を指定するためのルートノードから前記ＸＭＬ部分木のルートノードまでのノード列と、前記ＸＭＬツリーへの追加対象である前記ＸＭＬ部分木と、を特定するＸＭＬ追加命令を前記記憶手段に格納し、
前記変換木生成部は、
前記記憶手段から読み込んだ前記ＸＭＬ木ノードと、そのＸＭＬ木ノードに前記マッチ属性が一致する前記変換規則と、そのＸＭＬ木ノードに対して前記変換規則を適用して得られる変換結果と、を対応づけて前記各変換木ノードを生成し、
前記変換木更新部は、
生成された前記各変換木ノードに対応づけられる前記変換規則の前記セレクトパターンから、前記記憶手段から読み込んだ前記ＸＭＬ追加命令の前記ノード列と一致する前記セレクトパターンを検索する更新対象ノード検索処理について、
各前記セレクトパターンのロケーションステップと前記ノード列に相当するＸパスのロケーションステップとを一致する限り順次照合し、前記Ｘパスの末尾のロケーションステップに一致するロケーションステップを含むセレクトパターンを特定することで、一致する前記セレクトパターンを持つ前記変換規則に対応づけられる前記変換木ノードを検索し、
検索された前記変換木ノードの前記変換規則のアプライテンプレート命令を前記ＸＭＬ追加命令の前記ＸＭＬ部分木に対して実行することで、前記ＸＭＬ部分木を前記変換結果に変換し、
検索された前記変換木ノードの子ノードに、新たに前記変換木ノードを追加するとともに、追加した前記変換木ノードに前記変換結果を対応づけ
前記変換木出力部は、
前記変換木更新部により更新された前記変換木ノードについて、前記各変換木ノードに対応づけられる前記変換結果を抽出し、前記変換木ノードのツリー構造と同じツリー構造になるように接続して出力することを特徴とする。
【０００７】
これにより、更新されたＸＭＬデータ部位の影響を受ける箇所のみ、スタイルシートによる変換処理を行うことができるので、ＸＭＬデータの変換処理にかかる時間を減らすことが可能となる。
【０００９】
これにより、変換結果の木構造について、変換規則で整列させるか否かを入力する際に指定することが可能となる。
【００１０】
請求項２に記載のＸＭＬ処理方法は、ＸＭＬツリーをスタイルシートの変換規則に従って変換するＸＭＬ処理装置によるＸＭＬ処理方法であって、
前記ＸＭＬ処理装置は、記憶手段と、ＸＭＬデータ管理部と、スタイルシート管理部と、変換木管理部と、ＸＭＬ追加命令管理部と、変換木生成部と、変換木更新部と、変換木出力部と、を有し、
前記ＸＭＬデータ管理部は、各ＸＭＬ木ノードをツリー構造として接続することにより構成される前記ＸＭＬツリーを前記記憶手段に格納し、
前記スタイルシート管理部は、変換規則が適用される前記ＸＭＬ木ノードを指定するためのマッチ属性と、セレクト属性で指定されるセレクトパターンを含むアプライテンプレート命令と、を対応づける前記変換規則が記述される前記スタイルシートを前記記憶手段に格納し、
前記変換木管理部は、各変換木ノードをツリー構造として接続することにより構成される変換木を前記記憶手段に格納し、
前記ＸＭＬ追加命令管理部は、前記ＸＭＬツリーにおけるＸＭＬ部分木の追加場所を指定するためのルートノードから前記ＸＭＬ部分木のルートノードまでのノード列と、前記ＸＭＬツリーへの追加対象である前記ＸＭＬ部分木と、を特定するＸＭＬ追加命令を前記記憶手段に格納し、
前記変換木生成部は、
前記記憶手段から読み込んだ前記ＸＭＬ木ノードと、そのＸＭＬ木ノードに前記マッチ属性が一致する前記変換規則と、そのＸＭＬ木ノードに対して前記変換規則を適用して得られる変換結果と、を対応づけて前記各変換木ノードを生成し、
前記変換木更新部は、
生成された前記各変換木ノードに対応づけられる前記変換規則の前記セレクトパターンから、前記記憶手段から読み込んだ前記ＸＭＬ追加命令の前記ノード列と一致する前記セレクトパターンを検索する更新対象ノード検索処理について、
各前記セレクトパターンのロケーションステップと前記ノード列に相当するＸパスのロケーションステップとを一致する限り順次照合し、前記Ｘパスの末尾のロケーションステップに一致するロケーションステップを含むセレクトパターンを特定することで、一致する前記セレクトパターンを持つ前記変換規則に対応づけられる前記変換木ノードを検索し、
検索された前記変換木ノードの前記変換規則のアプライテンプレート命令を前記ＸＭＬ追加命令の前記ＸＭＬ部分木に対して実行することで、前記ＸＭＬ部分木を前記変換結果に変換し、
検索された前記変換木ノードの子ノードに、新たに前記変換木ノードを追加するとともに、追加した前記変換木ノードに前記変換結果を対応づけ
前記変換木出力部は、
前記変換木更新部により更新された前記変換木ノードについて、前記各変換木ノードに対応づけられる前記変換結果を抽出し、前記変換木ノードのツリー構造と同じツリー構造になるように接続して出力することを特徴とする。
【００１１】
これにより、更新されたＸＭＬデータ部位の影響を受ける箇所のみ、スタイルシートによる変換処理を行うことができるので、ＸＭＬデータの変換処理にかかる時間を減らすことが可能となる。
【００１３】
これにより、変換結果の木構造について、変換規則で整列させるか否かを入力する際に指定することが可能となる。
【発明の効果】
【００１４】
本発明は、更新されたＸＭＬデータ部位の影響を受ける箇所のみ、スタイルシートによる変換処理を行うことを特徴とする。これにより、従来のＸＭＬデータのＸＳＬＴ変換において、処理時間増加の原因となる原因となっていた全ＸＭＬデータの変換処理を減らすことが可能となるので、変換時間の短縮が可能になった。
【発明を実施するための最良の形態】
【００１５】
以下に、本発明が適用されるＸＭＬ処理装置の一実施形態について、図面を参照して詳細に説明する。まず、本実施形態のＸＭＬ処理装置の構成について、図１から図５を参照して説明する。
【００１６】
図１は、ＸＭＬ処理装置の構成図である。図１に示すＸＭＬ処理装置１は、ＸＭＬツリーをスタイルシートの変換規則に従って変換する。そのため、ＸＭＬ処理装置１は、ＸＭＬデータから生成されるＸＭＬツリーを格納するＸＭＬデータ管理部１００と、変換規則を規定するスタイルシートを格納するスタイルシート管理部１０１と、ＸＭＬツリーにスタイルシートの変換規則を適用して変換木を生成する変換木生成部１０２と、ＸＭＬツリーへの追加命令を格納するＸＭＬ追加命令管理部１０３と、ＸＭＬツリーを元に生成された変換木を管理する変換木管理部１０４と、追加命令を元に変換木を更新する変換木更新部１０５と、更新された変換木から変換規則に従った変換結果を抽出して出力する変換木出力部１０６と、変換木出力部１０６の変換結果を管理する変換結果管理部１０７と、を含めて構成される。
【００１７】
図２は、ＸＭＬ追加命令管理部の構成図である。ＸＭＬ追加命令は、ＸＭＬツリーを検索するためのＸパスＸと、ＸＭＬ木への追加命令から生成されるＸＭＬ部分木ＤＴＡと、を含めて構成され、ＸＭＬデータへの処理内容も、含まれている。
【００１８】
図３は、変換木を構成するノードの説明図である。ＸＭＬツリーにスタイルシートの変換規則を適用した変換木は、変換木を構成する変換木ノードＴＮの集合として構成され、各変換木ノードＴＮは、親子関係のリンクによって、接続されている。なお、変換木ノードＴＮは、ＸＭＬ木を構成するＸＭＬ木ノードＤＮと、ＸＭＬデータの変換結果ＤＴＢと、変換規則の属性情報によってＸＭＬ木ノードＤＮに対応付けられる変換規則ＳＴ、ＸＭＬ木ノードＤＮへの変換規則ＳＴの適用結果である変換結果ＤＴＢとを対応付けて管理する変換ノードＴＮＴ、整列可否情報を有さない設定ノードＴＮＳ、整列可否情報を有する整列設定ノードＴＮＩ、に分類される。
【００１９】
なお、以下の説明において、ノードの符号をＴＮまたはＤＮとする。これは、そのノードが、変換木のノード（符号としてＴＮを使用）か、ＸＭＬ木のノード（符号としてＤＮを使用）か、を示すためである。さらに、説明上、ノードを修飾する情報として、ノードのツリーにおける位置（例えば、ルートノード）や、現在の処理対象となるノード（カレントノード）のように、ノードの前に修飾する用語を付加する場合もある。よって、例えば、“ルートノードＴＮ”は、変換木のノードのうち、ルート（根）に位置するノードを示す。
【００２０】
図４は、変換木および変換木から抽出される変換結果を示す図である。変換木Ｔの各変換木ノードＴＮに対応付けられている変換結果ＤＴＢを抽出し、変換木Ｔの親子関係に従って変換結果ＤＴＢを接続することにより、ＸＭＬデータの変換結果が、得られる。
【００２１】
図５は、変換木の更新処理の概要を示す図である。ＸＭＬ処理装置１は、ＸＭＬ追加命令から抽出されたＸパスＸを基に、変換木Ｔの各変換木ノードＴＮを検索する。そして、ＸＭＬ処理装置１は、検索された変換木ノードＴＮの変換規則ＳＴに従って、ＸＭＬ追加命令から抽出されたＸＭＬ部分木ＤＴＡを変換結果ＤＴＢに変換し、検索された変換木ノードＴＮの変換規則ＳＴに従って、変換結果ＤＴＢを変換木Ｔに反映する。なお、図５は、変換結果ＤＴＢを変換木Ｔに追加するために、新たに変換木ノードＴＮを生成する一例を示しているが、既存の変換木ノードＴＮに変換結果ＤＴＢを追加するケースや、変換結果ＤＴＢに従って既存の変換木ノードＴＮを削除するケースもある。
【００２２】
以上、ＸＭＬ処理装置の構成について、説明した。次に、本実施形態のＸＭＬ処理装置の動作のうち、変換木の作成処理について、図１から図５を参照しつつ、図６から図８に沿って説明する。
【００２３】
なお、本実施形態において、フローチャートは、相互に関連を持つ。まず、各図に示されるフローチャートの処理全体は、下２桁が“００”となるステップとして表記される。そして、所定のフローチャートの処理が、別のフローチャートを関数呼び出しを行うこともある。例えば、図６に示すフローチャート（Ｓ１００）は、処理過程において、図７に示すフローチャート（Ｓ２００）を呼び出している。なお、所定のフローチャート（例えば、図１０に示すＳ５００）が、同一のフローチャート（Ｓ５００）を呼び出す場合は、再帰的な関数呼び出しとなる。
【００２４】
図６は、変換木の作成処理（メイン処理）を示すフローチャートである。まず、ＸＭＬ処理装置１は、ＸＭＬデータ管理部１００からＸＭＬデータを、ＸＭＬ木Ｄとして読み込む（Ｓ１０１）。次に、ＸＭＬ処理装置１は、スタイルシート管理部１０１からスタイルシートＳを読み込み、その変換規則ＳＴをテーブルとして保持する。テーブルは、変換規則ＳＴのマッチ属性ＳＴＭのパターンをキー値とし、変換規則ＳＴの変換生成命令ＳＴｉを値とする対応表となる（Ｓ１０２）。そして、ＸＭＬ処理装置１は、集合Ａ１を空集合で初期化する（Ｓ１０３）。さらに、ＸＭＬ処理装置１は、変換木Ｔのルートノードを生成し、集合Ａ１に追加する（Ｓ１０４）。そして、ＸＭＬ処理装置１は、ＸＭＬ木Ｄのルートノードを、カレントノードＤＮとする（Ｓ１０５）。
【００２５】
さらに、ＸＭＬ処理装置１は、変換ノード作成処理のプログラム（Ｓ２００）を呼び出す。そして、ＸＭＬ処理装置１は、変換木Ｔのルートノードから生成された変換木ノードの集合を、変換木Ｔのルートノードの子として変換木Ｔに追加する（Ｓ１０７）。さらに、ＸＭＬ処理装置１は、変換木Ｔを出力する（Ｓ１０８）。
【００２６】
図７は、変換木の作成処理（変換ノード作成処理）を示すフローチャートである。まず、変換木生成部１０２は、ＸＭＬ木ＤのカレントノードＤＮと、各変換規則のマッチ属性ＳＴＭのパターン部とを照合し、マッチする変換規則を特定し、変換規則ＳＴとする（Ｓ２０１）。
次に、変換木生成部１０２は、カレントノードＤＮと、変換規則ＳＴが含むアプライテンプレートのセレクト属性で指定されるセレクトパターンを用いて、処理対象となるＸＭＬ木ノードを特定し、変換木Ｔのノードを作成し、変換木ＴのカレントノードＴＮとする（Ｓ２０２）。
【００２７】
そして、変換木生成部１０２は、変換規則ＳＴの変換生成命令それぞれについて、変換生成命令ＳＴｉとして以下を繰り返す（Ｓ２０３）。ここで、変換木生成部１０２は、変換生成命令ＳＴｉはアプライテンプレート（apply-template）命令かを確認する（Ｓ２０４）。まず、アプライテンプレート命令の場合（Ｓ２０４、Ｙ）、変換木生成部１０２は、アプライテンプレート命令処理のプログラム（Ｓ３００）を呼び出す。一方、アプライテンプレート命令ではない場合（Ｓ２０４、Ｎ）、変換木生成部１０２は、カレントノードＤＮに変換生成命令ＳＴｉを適用し、その変換結果を変換木ＴのカレントノードＴＮに追加する（Ｓ２０６）。
【００２８】
図８は、変換木の作成処理（アプライテンプレート命令処理）を示すフローチャートである。ここで、変換木生成部１０２は、変換生成命令ＳＴｉはソート条件を指定されているかを確認する（Ｓ３０１）。まず、ソート条件が指定されている場合（Ｓ３０１、Ｙ）、変換木生成部１０２は、整列設定ノードＴＮＩを生成し、変換木ＴのカレントノードＴＮの子ノードとする（Ｓ３０２）。一方、ソート条件が指定されていない場合（Ｓ３０１、Ｙ）、変換木生成部１０２は、設定ノードＴＮＳを生成し、変換木ＴのカレントノードＴＮの子ノードとする（Ｓ３０３）。
【００２９】
そして、変換木生成部１０２は、カレントノードＤＮを基に、変換生成命令ＳＴｉのセレクトパターンＳＴＳ−ＰにマッチするＸＭＬ木ノードＤＮの集合を探す（Ｓ３０４）。さらに、変換木生成部１０２は、ＸＭＬ木ノードＤＮの集合の要素それぞれについて、以下を繰り返す（Ｓ３０５）。まず、変換木生成部１０２は、変換ノード作成処理のプログラム（Ｓ２００）を呼び出す。そして、変換木生成部１０２は、作成された変換ノードＴＮＴを、設定ノードＴＮＳまたは整列設定ノードＴＮＩの子とする（Ｓ３０７）。ここで、変換木生成部１０２は、変換生成命令ＳＴｉのセレクト属性値は「／」で始まっているかを確認する（Ｓ３０８）。そして、セレクト属性値が「／」で始まっている場合（Ｓ３０８、Ｙ）、変換木生成部１０２は、集合Ａ１に、設定ノードＴＮＳまたは整列設定ノードＴＮＩを追加する（Ｓ３０９）。
【００３０】
以上、変換木の作成処理について、説明した。次に、本実施形態のＸＭＬ処理装置の動作のうち、変換木の更新処理について、図１から図８を参照しつつ、図９から図１２に沿って説明する。
【００３１】
図９は、変換木の更新処理（メイン処理）を示すフローチャートである。まず、ＸＭＬ処理装置１は、集合Ａ２を空集合で初期化する（Ｓ４０１）。次に、ＸＭＬ処理装置１は、ＸＭＬ追加命令管理部１０３からＸＭＬ追加命令を読み込み、それに基づいてＸパスＸと、ＸＭＬ部分木ＤＴＡを作成する（Ｓ４０２）。そして、ＸＭＬ処理装置１は、ＸＭＬ部分木ＤＴＡのルートノードを、カレントノードＤＮとする（Ｓ４０３）。さらに、ＸＭＬ処理装置１は、変換木管理部１０４から変換木Ｔを読み込む（Ｓ４０４）。
【００３２】
そして、ＸＭＬ処理装置１は、集合Ａ１に含まれる変換木ノードを順にカレントノードＴＮとして、以下を繰り返す（Ｓ４０５）。まず、ＸＭＬ処理装置１は、カレントノードＴＮの変換規則を、変換規則ＳＴとする（Ｓ４０６）。次に、ＸＭＬ処理装置１は、変数ｘｉを１に初期化し、変数ｘｍａｘにＸパスＸのロケーションステップ数Ｘ−ＬＮを代入する（Ｓ４０７）。そして、ＸＭＬ処理装置１は、更新対象ノード検索処理のプログラム（Ｓ５００）を呼び出す。さらに、ＸＭＬ処理装置１は、集合Ａ２に含まれる組をそれぞれ順に変数Ｐに代入し、ノード更新処理のプログラム（Ｓ７００）を呼び出す（Ｓ４０９）。
【００３３】
図１０は、変換木の更新処理（更新対象ノード検索処理）を示すフローチャートである。まず、変換木更新部１０５は、変数Ｔｉを値１に初期化し、変数Ｔｍａｘに変換規則ＳＴのロケーションステップ数ＳＴＳ−ＬＮを代入する（Ｓ５０１）。次に、変換木更新部１０５は、Ｔｉ＜＝Ｔｍａｘ、かつ、ｘｉ＜＝ｘｍａｘが真である間、以下を実行する（Ｓ５０２）。ここで、変換木更新部１０５は、変換規則ＳＴのセレクトパターンＳＴＳ−Ｐは「／／」で始まっているかを確認する（Ｓ５０３）。もし、「／／」で始まっている場合（Ｓ５０３、Ｙ）、変換木更新部１０５は、更新対象ノード検索処理のプログラム（Ｓ５００）を呼び出す。
【００３４】
ここで、変換木更新部１０５は、セレクトパターンＳＴＳ−ＰのＴｉ番目のロケーションステップＳＴＳ−Ｌと、ＸパスＸのｘｉ番目のロケーションステップＸ−Ｌが、マッチするかを確認する（Ｓ５０５）。もし、マッチしない場合（Ｓ５０５、Ｎ）は、関数呼び出しをリターンする。一方、マッチする場合（Ｓ５０５、Ｙ）は、変換木更新部１０５は、Ｔｉに１を追加し、Ｘｉに１を追加する（Ｓ５０６）。ここで、変換木更新部１０５は、ｘｉ＞ｘｍａｘかを確認する（Ｓ５０７）。まず、ｘｉ＞ｘｍａｘの場合（Ｓ５０７、Ｙ）、変換木更新部１０５は、更新データ加工処理のプログラム（Ｓ６００）を呼び出す。一方、ｘｉ＞ｘｍａｘではない場合（Ｓ５０７、Ｎ）、変換木更新部１０５は、カレントノードＴＮの子ノードそれぞれについて、更新対象ノード検索処理のプログラム（Ｓ５００）を呼び出す（Ｓ５０９）。
【００３５】
図１１は、変換木の更新処理（更新データ加工処理）を示すフローチャートである。ここで、変換木更新部１０５は、Ｔｉ＞Ｔｍａｘかを確認する（Ｓ６０１）。まず、Ｔｉ＞Ｔｍａｘの場合（Ｓ６０１、Ｙ）、変換木更新部１０５は、カレントノードＴＮとカレントノードＤＮの組を、集合Ａ２に追加して（Ｓ６０２）、関数呼び出しをリターンする。一方、Ｔｉ＞Ｔｍａｘでない場合（Ｓ６０１、Ｎ）、変換木更新部１０５は、ロケーションステップＳＴＳ−Ｌと、カレントノードＤＮとが、マッチするかを確認し（Ｓ６０３）、マッチしない場合（Ｓ６０３、Ｎ）に関数呼び出しをリターンする。そして、変換木更新部１０５は、Ｔｉに１を追加する（Ｓ６０４）。さらに、変換木更新部１０５は、カレントノードＤＮの子ノードそれぞれについて、更新データ加工処理のプログラム（Ｓ６００）を呼び出す（Ｓ６０５）。
【００３６】
図１２は、変換木の更新処理（ノード更新処理）を示すフローチャートである。まず、変換木更新部１０５は、組Ｐの変換木Ｔのノードを親ノードＴＮＰ（カレントノードＴＮ）とし、組ＰのＸＭＬ木ノードをカレントノードＤＮとする（Ｓ７０１）。次に、変換木更新部１０５は、変換ノード作成処理のプログラム（Ｓ２００）を呼び出す。そして、変換木更新部１０５は、生成された変換木Ｔのノードを、子ノードＴＮＣとする（Ｓ７０３）。
【００３７】
ここで、変換木更新部１０５は、親ノードＴＮＰは整列設定ノードＴＮＩかを確認する（Ｓ７０４）。まず、整列設定ノードＴＮＩである場合（Ｓ７０４、Ｙ）、変換木更新部１０５は、親ノードＴＮＰの子ノードとして、ソート順序を満たすように子ノードＴＮＣを追加する（Ｓ７０５）。一方、整列設定ノードＴＮＩでない場合（Ｓ７０４、Ｎ）、変換木更新部１０５は、親ノードＴＮＰの子ノードとして、子ノードＴＮＣを追加する（Ｓ７０６）。
【００３８】
以上、変換木の更新処理について、説明した。次に、本実施形態のＸＭＬ処理装置の動作のうち、変換結果の出力処理について、図１から図１２を参照しつつ、図１３および図１４に沿って説明する。
【００３９】
図１３は、変換結果の出力処理（メイン処理）を示すフローチャートである。まず、ＸＭＬ処理装置１は、変換木管理部１０４から変換木Ｔを読み込む（Ｓ８０１）。次に、ＸＭＬ処理装置１は、変換木ＴのルートノードをカレントノードＴＮとする（Ｓ８０２）。そして、ＸＭＬ処理装置１は、変換結果部分木出力処理のプログラム（Ｓ９００）を呼び出す。
【００４０】
図１４は、変換結果の出力処理（変換結果部分木出力処理）を示すフローチャートである。まず、変換木出力部１０６は、変換結果管理部１０７にカレントノードＴＮの変換結果を出力する（Ｓ９０１）。次に、変換木出力部１０６は、カレントノードＴＮの子ノードそれぞれについて、変換結果部分木出力処理のプログラム（Ｓ９００）を呼び出す（Ｓ９０２）。
【００４１】
以上説明したＸＭＬ処理装置１によって、実際に４００００件のデータに対して１件のデータ追加を行った場合、従来手法（全変換）での変換時間は１１０００［ｍｓｅｃ］であったが、本発明の手法（部分変換）では３００［ｍｓｅｃ］となり、変換時間が１／３６に短縮されたことを確認した。
【００４２】
以上説明した本発明は、以下のように発明の趣旨を逸脱しない範囲で広く変形実施することができる。
【００４３】
例えば、ＸＭＬ処理装置１は、処理対象となるＸＭＬツリーについて、様々な形式で入力を受け付けてもよい。例えば、ＸＭＬツリーの木構造のデータ構造をそのまま入力させてもよいし、構造化テキストの形式で入力されてもよい。なお、ＸＭＬ処理装置１は、構造化テキストの形式で入力されたＸＭＬデータを、ＤＯＭ（Document Object Model）などにより走査して、木構造に変換する。
【図面の簡単な説明】
【００４４】
【図１】本発明の一実施形態に関するＸＭＬ処理装置の構成図である。
【図２】本発明の一実施形態に関するＸＭＬ追加命令管理部の構成図である。
【図３】本発明の一実施形態に関する変換木を構成するノードの説明図である。
【図４】本発明の一実施形態に関する変換木および変換木から抽出される変換結果を示す図である。
【図５】本発明の一実施形態に関する変換木の更新処理の概要を示す図である。
【図６】本発明の一実施形態に関する変換木の作成処理（メイン処理）を示すフローチャートである。
【図７】本発明の一実施形態に関する変換木の作成処理（変換ノード作成処理）を示すフローチャートである。
【図８】本発明の一実施形態に関する変換木の作成処理（アプライテンプレート命令処理）を示すフローチャートである。
【図９】本発明の一実施形態に関する変換木の更新処理（メイン処理）を示すフローチャートである。
【図１０】本発明の一実施形態に関する変換木の更新処理（更新対象ノード検索処理）を示すフローチャートである。
【図１１】本発明の一実施形態に関する変換木の更新処理（更新データ加工処理）を示すフローチャートである。
【図１２】本発明の一実施形態に関する変換木の更新処理（ノード更新処理）を示すフローチャートである。
【図１３】本発明の一実施形態に関する変換結果の出力処理（メイン処理）を示すフローチャートである。
【図１４】本発明の一実施形態に関する変換結果の出力処理（変換結果部分木出力処理）を示すフローチャートである。
【符号の説明】
【００４５】
１      ＸＭＬ処理装置
１００  ＸＭＬデータ管理部
１０１  スタイルシート管理部
１０２  変換木生成部
１０３  ＸＭＬ追加命令管理部
１０４  変換木管理部
１０５  変換木更新部
１０６  変換木出力部
１０７  変換結果管理部
Ｔ      変換木
ＴＮ    変換木ノード
ＴＮＴ  変換ノード
ＴＮＩ  整列設定ノード
Ｓ      スタイルシート
ＳＴ    変換規則
【図１】
0004208194.tif 000002
【図２】
0004208194.tif 000003
【図３】
0004208194.tif 000004
【図４】
0004208194.tif 000005
【図５】
0004208194.tif 000006
【図６】
0004208194.tif 000007
【図７】
0004208194.tif 000008
【図８】
0004208194.tif 000009
【図９】
0004208194.tif 000010
【図１０】
0004208194.tif 000011
【図１１】
0004208194.tif 000012
【図１２】
0004208194.tif 000013
【図１３】
0004208194.tif 000014
【図１４】
0004208194.tif 000015