JP4899476B2 - 分割プログラム、連結プログラム、情報処理方法 - Google Patents

分割プログラム、連結プログラム、情報処理方法 Download PDF

Info

Publication number
JP4899476B2
JP4899476B2 JP2005380328A JP2005380328A JP4899476B2 JP 4899476 B2 JP4899476 B2 JP 4899476B2 JP 2005380328 A JP2005380328 A JP 2005380328A JP 2005380328 A JP2005380328 A JP 2005380328A JP 4899476 B2 JP4899476 B2 JP 4899476B2
Authority
JP
Japan
Prior art keywords
tag
identification
description
output file
record
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
JP2005380328A
Other languages
English (en)
Other versions
JP2007179492A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2005380328A priority Critical patent/JP4899476B2/ja
Priority to US11/393,725 priority patent/US8418053B2/en
Publication of JP2007179492A publication Critical patent/JP2007179492A/ja
Application granted granted Critical
Publication of JP4899476B2 publication Critical patent/JP4899476B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/131Fragmentation of text files, e.g. creating reusable text-blocks; Linking to fragments, e.g. using XInclude; Namespaces
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、分割プログラム、連結プログラム、情報処理技術に関し、たとえばXML(eXtensible Markup Language)文書等の構造化文書の処理技術に適用して有効な技術に関する。
近年、インターネットを通して、個人、企業、自治体など、あらゆる種類のシステムが接続され、連携して、WebサービスやEDI(Electronic Data Interchange:電子データ交換)、EC(electronic commerce:電子商取引)が行われつつある。
このために、幅広い情報交換が必要になっており、データ交換、データ処理に、XML(eXtensible Markup Language)が、データを構造化する柔軟な表現能力を持ち、コンピュータ処理に適するため、情報交換のための共通基盤のフォーマットとして注目されている。
XMLは、1986年 ISOで標準化されたSGML(Standard Generalized Markup Language)をインターネットで活用し易くするために、1998年2月にその基本仕様XML1.0がW3C(World Wide Web Consortium)において策定されたものである。Webページ作成言語であるHTML(HyperText Markup Language)は、タグが固定で表示に特化したものとなっており、タグ情報を基にコンピュータで情報を処理したいという要件に対応できない問題があった。XMLは、利用者が自由にタグを定義でき、文書中の文字列に意味付けができる言語構造を持ち、コンピュータで情報処理できる。
XML文書に、検索・更新・削除などの操作を施す場合、標準のAPI(Application Programming Interface)ソフトウェアでツリー構造(Document Object Model)に展開して操作する。しかし、DOMツリーへの展開には元データの5〜10倍の膨大な動作メモリ量を必要とする上、使わない項目も一緒に展開されてしまい、時間もかかる欠点があった。
このようなXMLにおける従来技術の課題を説明する。
(1)XMLについて
ここで、XML規格に基づき、専門用語の呼び方を定めておく。一対の“<”と“>”で囲まれた文字列をタグ、“<文字列>”を開始タグ、“</文字列>”を終了タグ、開始タグから終了タグまでの文字列全体を要素、開始タグと終了タグで挟まれた文字列を要素内容、タグ内に記述される要素の名前を要素名(あるいはタグ名)、要素に対する付加情報を属性と呼ぶ。
構造化文書は、文書自身の中にタグを埋め込む形で、データ構造を記述する。データ構造をタグとして文書に埋め込んだ構成を採ることにより、データ項目の追加削除変更に対して柔軟性と拡張性を持つ。また、タグ名に、人が読んで意味のある名前を付けることにより、データに視認性を持たせることができる。
(2)XML文書を扱う標準的なAPI
代表的な構造化文書であるXML文書では、応用ソフトウェアからXML文書を扱うために、DOM(Document Object Model)と、SAX(Simple API for XML)と呼ばれる二つの標準的なインタフェース(API: Application Programming Interface)規格が定められている。
SAXは、メモリ消費が小さく、一般に高速だが、時系列出力で、参照するだけの簡単な処理に向くという特徴を持つ。
一方、DOMは、一般に低速で、メモリ消費が大きいが、文書の要素を階層的なツリー状に展開するため、複雑な処理内容でもプログラムが組み易いという特徴を持つ。XML文書の更新には主にDOMが使われる。
(3)大容量XML文書の変換
XML文書の形式変換には、XML環境に標準装備されているXSL変換が用いられる。しかし、XSL変換は、ファイルサイズの10倍程度の大量のメモリを消費するため、50MB規模以上の大容量のXML文書をメモリ上で直接形式を変換することが困難であり、従来、下記のような対策(i)〜(iii)の方法が採られた。最も手間が少ない方法は対策(i)だが、複雑な構造を持つ文書には対応が難しかった。
(i)ファイルの分割変換: 大容量XML文書の変換には、ファイルを複数個に分割して、変換した後、変換ファイルを連結する方法が考えられた。しかし、複雑なデータ構造を持つXML文書の分割は、丁度よい分割位置ごとにする必要があり、手作業に頼らねばならなかった。
(ii)ストリーミング処理による変換:(a)標準API SAX(Simople API for XML)向けに変換プログラムを書く。これは個別に新たなプログラミングが必要になる。(b)STX(Steaming Transformations for XML)を用いる(たとえば、非特許文献1参照)。(b)の方法は、非標準であり、標準のスタイルシートを特定仕様に合わせて書き直さねばならない。1パスのストリーム処理であるため、変換のデータ操作が制約を受ける欠点がある。
(iii)RDBの利用:大容量XML文書を一旦、RDB(Relational Data Base)に格納し、RDB上で処理後、変換XML文書として取り出す。この方法は、RDB操作を必要とし、新たにプログラムも作成する必要であり、非常に手間が掛かる。
XMLは、柔軟なデータ表現形式である反面、データ処理時に、大量メモリを消費する欠点がある。
この対策として、特許文献1には、XML文書をDOMで処理する場合において、解析された要素をノードとする部分木をメモリ上に展開するとともに、その過程で、既定の停止条件になったことを契機として不要なノードを削除することで、メモリ不足に陥ることなく、解析処理を継続させようとする技術が開示されている。
しかし、この特許文献1の場合には、DOM自体の動作仕様を変更する必要があるとともに、処理内容によって個別に停止条件を決定する必要があり、汎用性に欠ける。
"Streaming Transformations for XML (STX) Version 1.0"[2005年12月8日検索]、インターネット<http://stx.sourceforge.net/> 特開2005−11183号公報
本発明の目的は、ユーザの介入を必要とすることなく、XML文書等の構造化文書のデータ処理に必要なリソースを軽減することが可能な技術を提供することにある。
本発明の他の目的は、必要以上に大きなメモリ資源を必要とすることなく、複雑なデータ構造を持つ大容量のXML文書等の構造化文書を自動的に変換処理することが可能な技術を提供することにある。
本発明の他の目的は、必要以上に大きなメモリ資源を必要とすることなく、複雑なデータ構造を持つ大容量のXML文書等の構造化文書を、汎用的な変換技術を用いて変換処理することが可能な技術を提供することにある。
本発明の第1の観点は、第1構造化文書に含まれる情報を複数の第2構造化文書に分割する分割プログラムであって、
分割順序に対応した固有名を有する個々の前記第2構造化文書に前記第1構造化文書の前記情報を先頭側から既定量だけ順に複写する第1処理と、
個々の前記第2構造化文書が前記第1構造化文書と同じ階層構造を持つように開始タグおよび/または終了タグを前記ファイルに付加する第2処理と、
をコンピュータに実行させる分割プログラムを提供する。
本発明の第2の観点は、第1の観点に記載の分割プログラムにおいて、
さらに、個々の前記第2構造化文書に付加された前記開始タグおよび/または終了タグを識別するための識別タグを付加する第3処理を前記コンピュータに実行させる分割プログラムを提供する。
本発明の第3の観点は、第1の観点に記載の分割プログラムにおいて、
前記第1および第2構造化文書は、XML(eXtensible Markup Language)で記述されたXML文書である分割プログラムを提供する。
本発明の第4の観点は、共通の階層構造を有する複数の第1構造化文書の各々から、連結順序を示すように個々の当該第1構造化文書に付与された固有名に基づく順序で情報を読み取る第1処理と、
前記情報に含まれる冗長な開始タグおよび/または終了タグを除去して、前記第1構造化文書と同一の階層構造を有する第2構造化文書に併合する第2処理と、
をコンピュータに実行させる連結プログラムを提供する。
本発明の第5の観点は、第4の観点に記載の連結プログラムにおいて、
前記第2処理では、冗長な前記開始タグおよび/または終了タグを識別するために個々の前記第1構造化文書に付加された識別タグに基づいて、当該冗長な前記開始タグおよび/または終了タグを識別して除去する連結プログラムを提供する。
本発明の第6の観点は、第4の観点に記載の連結プログラムにおいて、
前記第1および第2構造化文書はXML(eXtensible Markup Language)で記述されたXML文書である連結プログラムを提供する。
本発明の第7の観点は、構造化文書の書式を変換する情報処理方法であって、
変換前の第1構造化文書の情報を先頭側から既定量だけ順に第1記憶手段に複写する第1ステップと、
前記第1記憶手段に複写された前記情報が完結した一つの第2構造化文書となるように開始タグおよび/または終了タグと、当該開始タグおよび/または終了タグを識別するための識別タグとを付加する第2ステップと、
前記第1記憶手段に構成された前記第2構造化文書を目的の書式に変換して第3構造化文書として第2記憶手段に出力する第3ステップと、
前記第2記憶手段に保持された前記第3構造化文書から、前記第2ステップで付加された前記開始タグおよび/または終了タグと前記識別タグとを除去して、第4構造化文書に併合する第4ステップと、
を含む情報処理方法を提供する。
本発明の第8の観点は、第7の観点に記載の情報処理方法において、
前記第3ステップでは、前記第2構造化文書に含まれる複数の要素を、CSV(Comma Separated Value)形式で羅列して一つに要素にまとめるCSV圧縮変換を行う情報処理方法を提供する。
本発明の第9の観点は、第7の観点に記載の情報処理方法において、
前記構造化文書はXML(eXtensible Markup Language)で記述されたXML文書である情報処理方法を提供する。
本発明では、たとえば、大容量XML文書を分割変換するときに、ストリーム型のAPIによりXMLファイルを読み取って、指定したサイズごとの複数個に分割し、分割したファイルに、併合時に分割順序が分かるように、ファイル名に一連番号を付ける。
そして、各分割ファイルがXML文書になるように、分割処理中に現在の階層を覚えておき、任意の分割位置において、階層の深さに合わせて「開始タグ」と「終了タグ」を付加するとともに、開始・終了タグの付加したことを識別する「識別用タグ」を挿入するようにするものである。
これにより、分割ファイルを変換後、ストリーム型のAPIによりファイル名の順に合併して書き出し、分割の都合で付加された開始タグ、終了タグを削除して、元のXML文書の形式変換文書を再現することができる。分割ファイルは、分割前ファイルと階層位置が同じになるので、XSLTスタイルシートを変更せずに用いることができる。
従来は、大容量XML文書は、主にRDBに格納して処理されるため、大容量XML文書の変換は、上述の対策(iii)の方法が多く採られる。今後の流れとして、メモリが安価になるにつれて、XMLの長所を十分に引き出すため、主記憶上でデータ処理するやり方が増えると予想する。その場合、標準規格に基づいて、大容量XML文書が変換できることが望まれる。
本発明は、入力されるXML文書を分割して変換処理に供するため、標準のXSL変換を用いて、大きさによらず複雑な構造のXML文書の自動変換が行える利点がある。分割時、連結時の大容量のXML文書をストリーム型のAPIを用いて、読み書きするため、大きな主記憶容量を必要としないで実行することができる。
すなわち、本発明によれば、複雑な構造のXML文書に対して、自動的に分割および変換処理を行える。今後、増えると予想される大容量XML文書の主記憶上での変換処理が、標準のXML変換を用いて行える。
XML文書は、その特徴によって、次の2種類の型に大きく分類される。
一つはデータ型XML文書と呼ばれ、伝票、予定表など、タグ数が多く、要素内容の短いものである。
他の一つは文書型XML文書と呼ばれ、雑誌、マニュアル、辞典など、要素内容が長い文章になるものである。
本発明は、たとえば、データ型XML文書を対象にしてAPIの簡単化を図ることができる。
本発明は、たとえば、データ型XML文書を対象にし、特に、レコード形式で表され、データベースのように扱われるXML文書を対象にすることができる。
これによって、主記憶の容量を増大させることなく、たとえば、大容量XML文書におけるレコード単位の変換を、標準のXSLTスタイルシートを用いて変換ができるようになる。
本発明によれば、ユーザの介入を必要とすることなく、XML文書等の構造化文書のデータ処理に必要なリソースを軽減することが可能な技術を提供することにある。
また、必要以上に大きなメモリ資源を必要とすることなく、複雑なデータ構造を持つ大容量のXML文書等の構造化文書を、自動的に変換処理することが可能となる。
また、必要以上に大きなメモリ資源を必要とすることなく、複雑なデータ構造を持つ大容量のXML文書等の構造化文書を、汎用的な変換技術を用いて変換処理することが可能となる。
以下、図面を参照しながら、本発明の実施の形態について詳細に説明する。
図1は、本発明の一実施の形態である分割プログラムおよび連結プログラム、情報処理方法の作用の一例を示す概念図である。
図2は、本発明の一実施の形態である分割プログラムおよび連結プログラム、情報処理方法の作用の一例をより具体的に例示した概念図である。
図3は、本発明の実施の形態の分割プログラムおよび連結プログラム、情報処理方法を実施する情報処理装置の構成の一例を示す概念図である。
まず、図3を参照して、本実施の形態の情報処理装置10の構成例について説明する。
本実施の形態の情報処理装置10は、中央処理装置11、主記憶12、外部記憶装置13、ディスプレイ14、情報入力装置15、ネットワークインタフェース16、を含んでいる。
中央処理装置11は、たとえばマイクロプロセッサ等で構成され、主記憶12に実装されたプログラムを実行することで所望の情報処理を行う。
主記憶12は、たとえば半導体メモリで構成され、中央処理装置11が実行するソフトウェアやデータが格納される。
本実施の形態の場合、主記憶12には、オペレーティングシステム21、ストリーミング型パーサプログラム22、分割プログラム101、XSL変換プロセッサ110、連結プログラム201、等のソフトウェアが実装されている。
中央処理装置11はオペレーティングシステム21を実行することで、情報処理装置10の全体の動作を制御する。
ストリーミング型パーサプログラム22、分割プログラム101、XSL変換プロセッサ110、連結プログラム201は、オペレーティングシステム21の配下で稼働するアプリケーションプログラムである。
外部記憶装置13は、不揮発性の記憶媒体で構成される記憶装置からなる。
本実施の形態の場合、この外部記憶装置13には、システムフォルダ20、大容量XML文書100、併合XML文書200、フォルダ102、フォルダ202、スタイルシート110a、が格納されている。
システムフォルダ20には、上述のオペレーティングシステム21、ストリーミング型パーサプログラム22、分割プログラム101、XSL変換プロセッサ110、連結プログラム201、逐次分割変換プログラム400等のソフトウェアが格納されており、必要に応じて主記憶12に読み込まれて実行される。
ストリーミング型パーサプログラム22は、たとえば、SAX(Simple API for XML)等のイベント駆動型のXMLパーサである。
分割プログラム101は、ストリーミング型パーサプログラム22を介して構造解析を行いつつ大容量XML文書100を読み込んで複数の小容量XML文書102aに分割する処理を行う。
分割プログラム101は、入力される大容量XML文書100のタグ情報を、先入れ(pushdown)/後出し(pop−up)方式で一時的に記憶するためのスタック領域101aを有する。
XSL変換プロセッサ110は、個々の小容量XML文書102aに対して、XSLT(Extensible Stylesheet Language Transformations)で記述されたスタイルシート110aに定義された変換処理を行い、変換結果を、対応した複数の小容量XML文書202aの各々に出力する。
連結プログラム201は、複数の小容量XML文書202aを併合して併合XML文書200を生成する処理を行う。
ディスプレイ14は、情報の可視化表示を行う。
情報入力装置15は、たとえばキーボードやマウス等の情報入力機器からなり、ユーザと情報処理装置10との間の情報入力インタフェースを提供する。本実施の形態の場合には、後述の分割制御情報103の入力に用いられる。
ネットワークインタフェース16は、情報処理装置10と外部との間における情報通信を行うための通信インタフェースを提供する。
外部記憶装置13に格納されている上述の情報は、ネットワークインタフェース16を介して外部の図示しないサーバ装置や記憶装置に配置して情報処理装置10からアクセスしてもよい。
図1に、大容量XML文書を分割して変換する本実施の形態の情報処理方法の全体のプロセスを示す。
図1に示すように、大容量XML文書100を入力し、分割プログラム101を用いて、小容量XML文書102aに分割する。分割した複数の小容量XML文書102aには連番のファイル名を付して、フォルダ102に格納する。
次に、このフォルダ102内の小容量XML文書102aを1個づつ取り出して、XSLT(Extensible Stylesheet Language Transformation)スタイルシート110aを用いてXSL変換プロセッサ110でXSL変換を行う。変換した複数の小容量XML文書202aは、変換前の対応する小容量XML文書102aと同じ連番のファイル名で、フォルダ202に格納する。
次に、このフォルダ202内のXML文書を1個づつ取り出して、連結プログラム201を用いて、連結し、結果の併合XML文書200を得る。
図2に、簡単な1階層の大容量XML文書の場合の分割変換の例を示す。
この図2の処理対象の大容量XML文書100(list.xml)は社員名簿であり、ルート要素「社員名簿」の下に、レコード100aとして、各社員のレコード要素「社員」が並んでおり、簡単なデータ構造をしている。
分割プログラム101には、レコード名と、1ファイルごとのレコード数を指定して、小容量XML文書102aへの分割を行う。この場合、分割は、レコード要素を、分割制御情報103にてユーザから指定された個数だけ取り出して、小容量XML文書102aにルート要素「社員名簿」の追加開始タグ51、追加終了タグ52を付ければよい。
すなわち、最初の小容量XML文書102aには、ルート要素「社員名簿」の追加終了タグ52のみが末尾に付加される。
最後の小容量XML文書102aは、ルート要素「社員名簿」の追加開始タグ51のみが文書の先頭に付加される。
中間の小容量XML文書102aでは、文書の最初と最後に、ルート要素「社員名簿」の追加開始タグ51および追加終了タグ52がそれぞれ付加される。
なお、連結プログラム201では、上述と逆の方法で、分割制御情報103にて指定されたレコード100aの数に基づいて、個々の小容量XML文書202a内の冗長な追加開始タグ51、追加終了タグ52を除去することで、一つの併合XML文書200に併合できる。
これにより、個々の小容量XML文書102aは、完結した一つのXML文書となり、XSL変換プロセッサ110で処理することができる。
XSL変換プロセッサ110では、入力される小容量XML文書102aの全体を主記憶12の作業領域に展開するが、小容量XML文書102a自体が小容量であるため、作業領域のメモリ容量は小さくて済むので、主記憶12を必要以上に大きくする必要がない。
図2のXSL変換プロセッサ110による変換例では、CSV圧縮(compaction)変換を実行する例が示されている。すなわち、要素「社員」の階層内に含まれる「内線」、「Fax」、「Mail」の各要素のデータを、カンマ“,”を区切りとして羅列し、新たに設けられた要素「連絡先」に集約することで、各要素の開始/終了タグの省略によってデータ量を削減している。
次に、本実施の形態の変形例として、より複雑な階層構造を持つXML文書に適用する場合を説明する。なお、変換処理は特に図示しないが、たとえば、個々のレコード100aとしてのレコード要素「得意先」「商品」「件」の一部に対してCSV圧縮処理を行うものとする。
図4は、階層と複数のレコード要素を持つXML文書に対して、本実施の形態の分割変換技術を適用した例を示す概念図である。
図5は、本実施の形態における大容量XML文書の分割処理の一例を示すフローチャートである。
図6は、本実施の形態における分割された小容量XML文書の連結処理の一例を示すフローチャートである。
図4において対象とする大容量XML文書100(list2.xml)は売上実績のデータである。ルート要素「売上実績」の下に「マスタ」と「売上」要素を持ち、「マスタ」の下にはさらに「得意先マスタ」と「商品マスタ」の階層を持つ。
そして、レコード要素として、「得意先マスタ」中の「得意先」、「商品マスタ」中の「商品」、「売上」中の「件」の3種類と、分割する単位のレコード数が分割制御情報103として外部から指定される。
実際には、大容量XML文書100は、数万〜数十万件のレコード100aを持ち、小容量の文書は百〜千レコード単位に分割される。図4の右側に示した小容量XML文書102aでは、見易くするため、レコード100aを2個ごとに分割した場合を示した。
分割プログラム101に対しては、分割制御情報103により、レコード名として「得意先」「商品」「件」を与え、1ファイルごとのレコード数として「2」を指定して、小容量のXML文書への分割を行う。
最初の小容量XML文書102a(001.xml)は、大容量文書を先頭から見ていって指定したレコード100aが2個出てくる処までコピーする。そして、その後に、そこまでの階層の、本来の開始タグ41(<売上実績>、<マスタ>、<得意先マスタ>)に対応した追加終了タグ52(</得意先マスタ>、</マスタ>、</売上実績>)を付加するとともに、それら追加終了タグ52の先頭に識別用エンド・タグ62(<Added_end−tag/>)を付加して、元の大容量XML文書100と同一の階層構造を有する、完結した一つのXML文書とする。
2番目の小容量XML文書102a(2.xml)は、先のXML文書の階層のタグを開始タグ(追加開始タグ51)として付加し、その後で、それら追加開始タグ51に識別用スタート・タグ61(<Added_start−tag/>)を付加する。
次に、大容量XML文書100の中断した部分から、指定したレコード数のところまでコピーする。そして、1番目のファイルと同様に、識別用エンド・タグ62と、そこまでの階層の終了タグ(追加終了タグ52)を付加して、完結したXML文書とする。
3番目の小容量XML文書102aから最終の小容量XML文書102aの手前までは、この2番目と文書と同様の操作を繰り返す。
最終の小容量XML文書102aでは、2番目の小容量XML文書102aの開始と同様に、階層の開始タグ(追加開始タグ51)と識別用スタート・タグ61を付加して作成処理を開始し、指定したレコード数未満をコピーすることになるので、階層の終了タグ(終了タグ42)もそのままコピーして終了する。
上述の分割操作によって、個々の小容量XML文書102aは、元の大容量XML文書100と同じ階層を持ち、指定した数のレコード100aを持つように分割される。これによって、個々の小容量XML文書102aは、XSLTのスタイルシート110aを何ら変更せずに変換することができる。
連結操作は、分割した文書(この場合、変換後の小容量XML文書202a)から、識別用スタート・タグ61、識別用エンド・タグ62を探しながらコピーし、識別用エンド・タグ62があれば、それ以降の文書の末尾までの階層の追加終了タグ52を捨てる。この場合、連結処理に際して、分割制御情報103の指定は不要である。
次の文書は先頭から識別用スタート・タグ61までの階層の追加開始タグ51を捨てて、次から識別用エンド・タグ62(<Added_end−tag>)の手前までをコピーするという操作を繰り返す。これによって、分割時に付加された冗長なタグ(追加開始タグ51、追加終了タグ52)は全て削除され、元の大容量XML文書100の階層が復元される。
図5のフローチャートを参照して、本実施の形態の分割プログラム101による分割処理をより詳細に説明する。
まず、ステップS610で、分割制御情報103として、対象とするレコード100aの要素名と、ファイル分割単位のレコード数を情報入力装置15やファイルから入力する。
次に、ステップS611で、入力XMLファイル(大容量XML文書100)をオープンするとともに、分割する連番のファイル名の最初の出力ファイル(小容量XML文書102a)をオープンする。
そして、ステップS611aで、入力される大容量XML文書100のルートタグを読み取り、ルート要素名を記憶する。
ステップS612で、大容量XML文書100の内容を1行づつ読み取る。
ステップS613、ステップS618で、読み取った内容が開始タグで、かつ対象とするレコード100aでないならば、ステップS620で、タグ名をStack(スタック領域101a)にpushdownして蓄えた後、その開始タグを小容量XML文書102aにコピーした後、ステップS612に戻る。
ステップS613、ステップS618で、読み取った内容が開始タグで、かつ対象とするレコード100aならば、ステップS621でレコード要素とレコード内の要素を全てコピーする。
そして、ステップS622でレコード数を計数して、ステップS623で、計数値が、分割制御情報103として入力したレコード数に達していると判定されれば、ステップS624で識別用の識別用エンド・タグ62(<Added_end−tag/>)を付加した後、Stackしてある階層のタグをルート要素まで終了タグ42として書き出して、出力ファイルである小容量XML文書102aをクローズする。
次に、ステップS625で新たな連番のファイル名で出力ファイル(小容量XML文書102a)をオープンし、ルート要素からStackしてある現在の階層のタグまでを開始タグ(追加開始タグ51)として書き出した後、識別用スタート・タグ61(<Added_start−tag/>を付加する。そして、ステップS612へと戻る。もし、ステップS623で計数しているレコード数が、入力したレコード数に達していない場合は、そのままステップS612に戻る。
ステップS613で開始タグでないと判定され、ステップS614で終了タグを検出した場合は、ステップS615でタグ名をStackした階層タグからpop−upして一つ除いた後、その終了タグを出力ファイルにコピーする。
次に、ステップS616で、その終了タグがルートタグであった場合は、ステップS617で、出力ファイルをクローズして処理を終了する。もし、その終了タグがルートタグでない場合は、ステップS612に戻る。
ステップS614で、読取った内容が開始タグでも終了タグでもなく、要素内容の場合は、ステップS619で、その内容を単に出力ファイルにコピーした後、ステップS612に戻る。
こうして分割された複数の小容量XML文書102aは、元の大容量XML文書100と同一の階層構造を有するので、たとえば、スタイルシート110aを用いたXSL変換プロセッサ110によるCSV圧縮等の変換処理において、大容量XML文書100の階層構造に基づいて記述されたスタイルシート110aになんら変更を加えることなく、変換処理を実行することが可能である。
なお、この変換処理においては、変換の前後で、識別用スタート・タグ61、識別用エンド・タグ62は、小容量XML文書102aから変換後の小容量XML文書202aにそのまま承継されている。
図6は、本実施の形態の連結プログラム201の作用の一例を示すフローチャートである。なお、この図6の場合、識別用スタート・タグ61、識別用エンド・タグ62を用いて冗長な追加開始タグ51、追加終了タグ52を認識するので、分割制御情報103の指定は不要である。
まず、ステップS630で、最も若い連番のファイル名の分割ファイル(変換後の小容量XML文書202a)からオープンするとともに、連結出力先の出力ファイル(併合XML文書200)をオープンする。
ステップS631で、入力ファイル(小容量XML文書202a)の内容を一つ読取る。ステップS632で、もし、最初の入力ファイルの場合、ステップS634に飛び、識別用エンド・タグ62が現れるまで、ステップS635で、読取った内容を出力ファイルにコピーする。
ステップS634で、識別用エンド・タグ62が現れた場合、ステップS639で入力ファイルをクローズし、ステップS641で、次の入力ファイルをオープンしてステップS631に戻る。
次に、2番目以降の入力ファイルの場合は、ステップS633で、識別用スタート・タグ61が既に現れているかを調べる。識別用スタート・タグ61が現れていない場合は、ステップS637で、読取った内容が識別用スタート・タグ61かを調べ、もしそうならば、ステップS636で識別用スタート・タグ61が現れたことを記憶し、ステップS631に戻る。
もし、ステップS633で、まだ識別用スタート・タグ61が現れておらず、ステップS637で、読取った内容が識別用スタート・タグ61でもなければ、ステップS638で、読取った内容を読み飛ばし、ステップS631に戻る。
ステップS633で、識別用スタート・タグ61が既に現れていて、ステップS634で、読取った内容が識別用スタート・タグ61でなければ、ステップS635で、読取った内容を出力ファイルにコピーした後、ステップS640で、入力ファイルのファイルエンドを検出したか判定する。
ステップS640で、入力ファイルのファイルエンドを検出しない場合、ステップS631に戻る。
ステップS640で、入力ファイルのファイルエンドを検出した場合、ステップS642で、入力ファイルをクローズして終了する。
ステップS634で識別用スタート・タグ61を検出した場合は、一番目のファイルのときと同様である。
このように、図4、図5、図6に例示した変形例では、大容量XML文書100を複数の小容量XML文書102aに分割する際に、分割位置の前後にタグ階層の深さに合わせて追加開始タグ51および/または追加終了タグ52を付加する。このため、比較的複雑な構造を持つ大容量XML文書100の場合にも、的確かつ自動的に小容量XML文書102aへの分割を行うことができる。
また、複数の小容量XML文書102aを変換処理して得られた小容量XML文書202aから、併合XML文書200への併合に際しては、識別用スタート・タグ61および/または識別用エンド・タグ62を目印にして、冗長な追加開始タグ51および/または追加終了タグ52を除去することで、正確に完結した併合XML文書200を構成することができる。
また、複数の小容量XML文書102aに変換処理を施して小容量XML文書202aを生成する際にXSL変換プロセッサ110が消費する主記憶12の記憶資源は、個々の小容量XML文書102aに応じた小容量で済む。このため、大容量XML文書100に合わせて主記憶12の容量を大きくする必要はない。
すなわち、任意のサイズの大容量XML文書100に対して、主記憶12の容量不足を懸念することなく、自動的に確実に変換処理を行うことができる。
今まで述べてきた実施の形態は、大容量XML文書100を一括して複数の小容量XML文書102aに分割し、一括して変換して複数の小容量XML文書202aの各々に出力し、小容量XML文書202aを、一括して併合XML文書200に出力するものであった。これは一括分割変換となる。
これに対して図7のように逐次分割変換も、また同様にして行うことができる。この逐次分割変換の場合は、大容量XML文書100から所定のレコード数の小容量文書(逐次分割XML文書401a)を主記憶12上の分割バッファ411上に切り出して、その分割文書を変換して逐次変換XML文書403aに出力する。この変換結果を併合XML文書200に継ぎ足す。
この操作を大容量XML文書100の先頭から最後まで逐次行えば、複数の小容量XML文書102a、小容量XML文書202aの格納記憶領域を外部記憶装置13に設けることなく、小容量XML文書102aの一つ分の分割文書と、変換後の小容量XML文書202aの各々の一つ分の変換分割文書の記憶領域(分割バッファ411、連結バッファ431)を、主記憶12上に確保するだけで、変換済みの複数の小容量XML文書202aが合併した状態の併合XML文書200を作り出すことができる。
このような逐次分割変換を行う逐次分割変換プログラム400は、分割部410、XSL変換部420、連結部430、分割バッファ411、連結バッファ431を含む。
分割部410は、上述の分割プログラム101と同様の処理を行うが、出力部分が若干異なる。
すなわち、分割部410の場合には、一つの逐次分割XML文書401aが分割バッファ411に構築された時点で、XSL変換部420に対して変換開始を指示する機能と、XSL変換部420からの変換終了の通知を契機として、次の逐次分割XML文書401aを分割バッファ411上に構築する機能を備えている。
連結部430も、入力側の機能が連結プログラム201と若干異なる。すなわち、XSL変換部420からの変換完了通知を契機として、連結バッファ431上の逐次変換XML文書403aを入力して併合XML文書200に追加出力する機能を有する。
XSL変換部420は、XSLT(Extensible Stylesheet Language Transformations)で記述されたスタイルシート402にて定義された変換処理を、分割バッファ411から読み出される逐次分割XML文書401aに対して実行し、連結バッファ431上に、逐次変換XML文書403aとして出力する。このスタイルシート402による変換処理としては、一例としてCSV圧縮が考えられる。
なお、上述の分割プログラム101、XSL変換プロセッサ110、連結プログラム201が標準入出力機能を有し、オペレーティングシステム21がマルチタスクオペレーティングシステムの場合には、逐次分割変換プログラム400をシェルスクリプトで実現することもできる。
すなわち、分割プログラム101(分割部410)の標準入力として、ストリーミング型パーサプログラム22を介して大容量XML文書100を割り当て、標準出力を、次段のXSL変換プロセッサ110(XSL変換部420)の標準入力に接続する。また、XSL変換プロセッサ110の標準出力を次段の連結プログラム201(連結部430)の標準入力に接続し、連結プログラム201の標準出力を、ストリーミング型パーサプログラム22を介して併合XML文書200に割り当てる。
この場合には、分割バッファ411、連結バッファ431は、入力したレコード数に応じたサイズを割り当てる。
以下、上述の逐次分割変換の作用について説明する。図8は、本実施の形態の逐次分割変換の作用一例を示すフローチャートである。
まず、ステップS700で、分割制御情報103として、対象とするレコード100aの要素名と、ファイル分割単位のレコード数を、情報入力装置15やファイルから入力する。
次に、ステップS701で、入力XMLファイル(大容量XML文書100)をオープンするとともに、分割する連番のファイル名の最初の出力ファイル(併合XML文書200)をオープンする。
そして、ステップS702で、逐次分割XML文書401aの格納領域を分割バッファ411に確保するとともに、入力される大容量XML文書100のルートタグを読み取り、ルート要素名を記憶する。
ステップS703で、大容量XML文書100の内容を1行づつ読み取る。
ステップS704、ステップS709で、読み取った内容が開始タグで対象とするレコード100aならば、ステップS712でレコード要素とレコード内の要素を全てコピーする。
そして、ステップS713でレコード数を計数して、ステップS714で、計数値が、分割制御情報103として入力したレコード数に達していると判定されれば、ステップS715で識別用の識別用エンド・タグ62(<Added_end−tag/>)を付加した後、Stackしてある階層のタグをルート要素まで終了タグ42として書き出して、出力ファイルである逐次分割XML文書401aをクローズする。
次に、ステップS720で、作成された逐次分割XML文書401aをXSL変換部420にて変換し、連結バッファ431上に逐次変換XML文書403aを生成する。
もし、ステップS714で計数しているレコード数が、入力したレコード数に達していない場合は、そのままステップS703に戻る。
上述のステップS709で、読み取った内容が開始タグで対象とするレコード100aでないならば、ステップS711で、タグ名をStackにpushdownして蓄えた後、その開始タグを逐次分割XML文書401aにコピーした後、ステップS703に戻る。
ステップS704で開始タグでないと判定され、ステップS705で終了タグを検出した場合は、ステップS706で、タグ名をStackした階層タグからpop−upして一つ除いた後、その終了タグを出力ファイルにコピーする。
次に、ステップS707で、その終了タグがルートタグであった場合は、ステップS708で、入力ファイル(大容量XML文書100)および逐次分割XML文書401aをクローズしてステップS720を実行する。もし、その終了タグがルートタグでない場合は、ステップS703に戻る。
ステップS704、ステップS705で、読取った内容が開始タグでも終了タグでもなく、要素内容の場合は、ステップS710で、その内容を単に出力ファイルにコピーした後、ステップS703に戻る。
上述のステップS720の後、ステップS730で、入力ファイル(逐次変換XML文書403a)の内容を一つ読取る。ステップS731で、もし、最初の入力ファイルの場合、ステップS733に飛び、識別用エンド・タグ62が現れるまで、ステップS734で読取った内容を出力ファイルにコピーする。
ステップS733で、識別用エンド・タグ62が現れた場合、ステップS738で、逐次分割XML文書401a、逐次変換XML文書403aを削除し、ステップS739で、入力ファイル(大容量XML文書100)がクローズならば、ステップS750で併合XML文書200をクローズして終了する。
ステップS739で、入力ファイル(大容量XML文書100)がクローズでないと判定された場合には、ステップS740で、新たな逐次変換XML文書403aをオープンし、ルート要素からStackしてある現在の階層のタグまでを追加開始タグ51として書き出した後、識別用の識別用スタート・タグ61(<Added_start−tag/>を付加する。そして、ステップS703へと戻る。
次に、上述のステップS731で2番目(1番目でない)以降の逐次変換XML文書403aと判定された場合は、ステップS732で、識別用スタート・タグ61が既に現れているかを調べる。識別用スタート・タグ61が現れていない場合は、ステップS736で、読取った内容が識別用スタート・タグ61かを調べ、もしそうならば、ステップS735で、識別用スタート・タグ61が現れたことを記憶し、ステップS730に戻る。
もし、ステップS732で、まだ識別用スタート・タグ61が現れておらず、ステップS736で、読取った内容が識別用スタート・タグ61でもないと判定された場合には、ステップS737で、読取った内容を読み飛ばし、ステップS730に戻る。
ステップS732で、識別用スタート・タグ61が既に現れていて、ステップS733で、読取った内容が識別用スタート・タグ61でなければ、ステップS734で、読取った内容を出力ファイルにコピーした後、ステップS730に戻る。
このように、逐次分割変換プログラム400を用いた逐次分割変換の場合には、逐次分割XML文書401aや逐次変換XML文書403aを外部記憶装置13にファイルとして必ずしも出力する必要はなく、主記憶12上でデータ処理ができるので、逐次分割変換プログラム400の構造は比較的複雑になるものの、大容量XML文書100に対して高速な分割変換を行うことができる。
すなわち、逐次分割変換の場合には、外部記憶装置13や主記憶12の記憶容量を意識することなく、大容量XML文書100を高速に変換処理して併合XML文書200に出力することが可能となる。
以上説明した一括分割変換と逐次分割変換の長所を比較すると次の通りである。
一括分割変換は、分割プログラム101、フォルダ102等のソフトウェアの構造がシンプルになる。
小容量XML文書102a、小容量XML文書202a等の分割ファイルを一旦、フォルダ102、フォルダ202に溜めるので、このフォルダ102、フォルダ202上で、更新・追加・削除等の処理を行うことができる。
小容量XML文書102a、小容量XML文書202a等の各分割ファイルが小容量なので、データ更新処理がやり易い。
レコード100aを単位とするソート処理では、大容量XML文書100上で行うことが必要になるが、この場合は本願発明者によって別に出願済みの発明である「XML CSV圧縮」(特開2003−203067号公報、特開2005−267531号公報、参照)と、本実施の形態の分割変換を組合せれば、省リソースでソート処理を行うことが可能となる。
一方、逐次分割変換の場合には、上述のように、分割文書や変換文書を外部記憶装置13のファイルとして必ずしも出力する必要はなく、外部記憶装置13上でデータ処理ができるので、逐次分割変換プログラム400の構造は比較的複雑になるものの、大容量XML文書100の高速な分割変換が可能となる。
本発明の実施の形態の変形例を以下に述べる。
上述の実施の形態の例では、変換処理としてCSV圧縮を行う場合、小容量XML文書202aの「社員」のレコード100a内における要素「連絡先」に例示されるように、レコード内で1個のCSV要素を持つ場合について説明した。これは、CSV要素を複数個にした場合も、CSV圧縮文書(併合XML文書200)のヘッダにおいて、その複数個のCSV要素に格納されている要素名を記述しておき、上述と同様に読み取って2つのデータ用連想配列を用いて、API上で管理することができる。
なお、本発明は、上述の実施の形態に例示した構成に限らず、その趣旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
(付記1)
第1構造化文書に含まれる情報を複数の第2構造化文書に分割する分割プログラムであって、
分割順序に対応した固有名を有する個々の前記第2構造化文書に前記第1構造化文書の前記情報を先頭側から既定量だけ順に複写する第1処理と、
個々の前記第2構造化文書が前記第1構造化文書と同じ階層構造を持つように開始タグおよび/または終了タグを前記ファイルに付加する第2処理と、
をコンピュータに実行させることを特徴とする分割プログラム。
(付記2)
付記1記載の分割プログラムにおいて、
さらに、個々の前記第2構造化文書に付加された前記開始タグおよび/または終了タグを識別するための識別タグを付加する第3処理を前記コンピュータに実行させることを特徴とする分割プログラム。
(付記3)
付記1記載の分割プログラムにおいて、
前記第1および第2構造化文書は、XML(eXtensible Markup Language)で記述されたXML文書であることを特徴とする分割プログラム。
(付記4)
共通の階層構造を有する複数の第1構造化文書の各々から、連結順序を示すように個々の当該第1構造化文書に付与された固有名に基づく順序で情報を読み取る第1処理と、
前記情報に含まれる冗長な開始タグおよび/または終了タグを除去して、前記第1構造化文書と同一の階層構造を有する第2構造化文書に併合する第2処理と、
をコンピュータに実行させることを特徴とする連結プログラム。
(付記5)
付記4記載の連結プログラムにおいて、
前記第2処理では、冗長な前記開始タグおよび/または終了タグを識別するために個々の前記第1構造化文書に付加された識別タグに基づいて、当該冗長な前記開始タグおよび/または終了タグを識別して除去することを特徴とする連結プログラム。
(付記6)
付記4記載の連結プログラムにおいて、
前記第1および第2構造化文書はXML(eXtensible Markup Language)で記述されたXML文書であることを特徴とする連結プログラム。
(付記7)
構造化文書の書式を変換する情報処理方法であって、
変換前の第1構造化文書の情報を先頭側から既定量だけ順に第1記憶手段に複写する第1ステップと、
前記第1記憶手段に複写された前記情報が完結した一つの第2構造化文書となるように開始タグおよび/または終了タグと、当該開始タグおよび/または終了タグを識別するための識別タグとを付加する第2ステップと、
前記第1記憶手段に構成された前記第2構造化文書を目的の書式に変換して第3構造化文書として第2記憶手段に出力する第3ステップと、
前記第2記憶手段に保持された前記第3構造化文書から、前記第2ステップで付加された前記開始タグおよび/または終了タグと前記識別タグとを除去して、第4構造化文書に併合する第4ステップと、
を含むことを特徴とする情報処理方法。
(付記8)
付記7記載の情報処理方法において、
前記第3ステップでは、前記第2構造化文書に含まれる複数の要素を、CSV(Comma Separated Value)形式で羅列して一つに要素にまとめるCSV圧縮変換を行うことを特徴とする情報処理方法。
(付記9)
付記7記載の情報処理方法において、
前記構造化文書はXML(eXtensible Markup Language)で記述されたXML文書であることを特徴とする情報処理方法。
本発明の一実施の形態である分割プログラムおよび連結プログラム、情報処理方法の作用の一例を示す概念図である。 本発明の一実施の形態である分割プログラムおよび連結プログラム、情報処理方法の作用の一例をより具体的に例示した概念図である。 本発明の実施の形態の分割プログラムおよび連結プログラム、情報処理方法を実施する情報処理装置の構成の一例を示す概念図である。 本発明の一実施の形態である分割変換技術を、階層と複数のレコード要素を持つXML文書に対して適用した例を示す概念図である。 本発明の実施の形態における大容量XML文書の分割処理の一例を示すフローチャートである。 本発明の実施の形態における分割された小容量XML文書の連結処理の一例を示すフローチャートである。 本発明の一実施の形態の変形例である逐次分割変換処理の一例を示す概念図である。 本発明の一実施の形態の変形例である逐次分割変換の作用一例を示すフローチャートである。
符号の説明
10 情報処理装置
11 中央処理装置
12 主記憶
13 外部記憶装置
14 ディスプレイ
15 情報入力装置
16 ネットワークインタフェース
20 システムフォルダ
21 オペレーティングシステム
22 ストリーミング型パーサプログラム
41 開始タグ
42 終了タグ
51 追加開始タグ
52 追加終了タグ
61 識別用スタート・タグ
62 識別用エンド・タグ
100 大容量XML文書
100a レコード
101 分割プログラム
101a スタック領域
102 フォルダ
103 分割制御情報
102a 小容量XML文書
110 XSL変換プロセッサ
110a スタイルシート
200 併合XML文書
201 連結プログラム
202 フォルダ
202a 小容量XML文書
400 逐次分割変換プログラム
401a 逐次分割XML文書
402 スタイルシート
403a 逐次変換XML文書
410 分割部
411 分割バッファ
420 XSL変換部
430 連結部
431 連結バッファ

Claims (3)

  1. XML形式のファイルである第1構造化文書に含まれる情報を複数の第2構造化文書に分割する分割プログラムであって、
    前記第1構造化文書の記述を先頭から順に一行ずつ取得し、
    取得した記述に開始タグがあり、該開始タグと対応する終了タグとの間にレコード要素がない場合、前記開始タグのタグ名をスタックにプッシュダウンして格納し、取得した前記レコードの前記開始タグを前記第1構造化文書と別の第1の出力ファイルにコピーし、
    取得したレコードの開始タグがあり、該開始タグと対応する終了タグとの間にレコードがある場合、該レコードに関する要素を示す記述を前記第1の出力ファイルの記述の後にコピーし、
    該レコードのレコード数が分割位置を決める閾値と一致する位置に分割位置を示す識別用終了タグを追加し、前記スタックに格納されている開始タグを用いて、前記第1の出力ファイルの開始タグに対応する追加終了タグを生成し、前記第1の出力ファイルの前記識別用終了タグの後に追加し、
    前記第1の出力ファイルを生成した後、前記スタックに格納されている開始タグを用いて、第2の出力ファイルに前記追加終了タグに対応する追加開始タグを生成し、前記第1の出力ファイルの前記識別用終了タグに対応する識別用開始タグを追加し、
    前記第1構造化文書から取得した記述が該レコードに関する要素を示す記述である場合、前記第2の出力ファイルに該レコードに関する要素を示す記述をコピーし、
    前記第1構造化文書から取得した記述に終了タグがある場合、前記スタックに格納されている前記開始タグのタグ名をポップアップし、取得した該終了タグを前記第2の出力ファイルの記述の後にコピーし、
    前記第1構造化文書のルートタグが終了タグと一致した場合、分割処理を終了し、前記複数の第2構造化文書を生成する、
    ことをコンピュータに実行させることを特徴とする分割プログラム。
  2. 分割された順に前記第2構造化文書の記述を先頭から順に一行ずつ取得し、
    取得した記述を前記第2構造化文書と別の第3の出力ファイルにコピーし、
    取得した記述に前記識別用終了タグを検出後、前記識別用終了タグの後に終了タグがある場合、該終了タグを前記追加終了タグと特定し、前記識別用終了タグと前記追加終了タグを、前記第3の出力ファイルにコピーせず、
    取得した記述に前記識別用開始タグを検出後、前記識別用開始タグの後に開始タグがある場合は該開始タグを前記追加開始タグと特定し、前記識別用開始タグと前記追加開始タグを、前記第3の出力ファイルにコピーしない、
    連結プログラムを有し、前記連結プログラムを、
    コンピュータに実行させることを特徴とする請求項1に記載の分割プログラム。
  3. XML形式のファイルである第1構造化文書に含まれる情報を複数の第2構造化文書に分割する情報処理方法であって、
    前記第1構造化文書の記述を先頭から順に一行ずつ取得し、
    取得した記述に開始タグがあり、該開始タグと対応する終了タグとの間にレコード要素がない場合、前記開始タグのタグ名をスタックにプッシュダウンして格納し、取得した前記レコードの前記開始タグを前記第1構造化文書と別の第1の出力ファイルにコピーし、
    取得したレコードの開始タグがあり、該開始タグと対応する終了タグとの間にレコードがある場合、該レコードに関する要素を示す記述を前記第1の出力ファイルの記述の後にコピーし、
    該レコードのレコード数が分割位置を決める閾値と一致する位置に分割位置を示す識別用終了タグを追加し、前記スタックに格納されている開始タグを用いて、前記第1の出力ファイルの開始タグに対応する終了タグを生成し、前記第1の出力ファイルの前記識別用終了タグの後に追加し、
    前記第1の出力ファイルを生成した後、前記スタックに格納されている開始タグを用いて、第2の出力ファイルに開始タグを生成し、前記第1の出力ファイルの前記識別用終了タグに対応する識別用開始タグを追加し、
    前記第1構造化文書から取得した記述が該レコードに関する要素を示す記述である場合、前記第2の出力ファイルに該レコードに関する要素を示す記述をコピーし、
    前記第1構造化文書から取得した記述に終了タグがある場合、前記スタックに格納されている前記開始タグのタグ名をポップアップし、取得した該終了タグを前記第2の出力ファイルの記述の後にコピーし、
    前記第1構造化文書のルートタグが終了タグと一致した場合、分割処理を終了し、前記複数の第2構造化文書を生成する、分割処理と、
    分割された順に前記第2構造化文書の記述を先頭から順に一行ずつ取得し、
    取得した記述を前記第2構造化文書と別の第3の出力ファイルにコピーし、
    取得した記述に前記識別用終了タグを検出後、前記識別用終了タグの後に終了タグがある場合、該終了タグを前記追加終了タグと特定し、前記識別用終了タグと前記追加終了タグを、前記第3の出力ファイルにコピーせず、
    取得した記述に前記識別用開始タグを検出後、前記識別用開始タグの後に開始タグがある場合は該開始タグを前記追加開始タグと特定し、前記識別用開始タグと前記追加開始タグを、前記第3の出力ファイルにコピーしない、連結処理と、
    をコンピュータが実行することを特徴とする情報処理方法。
JP2005380328A 2005-12-28 2005-12-28 分割プログラム、連結プログラム、情報処理方法 Expired - Fee Related JP4899476B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005380328A JP4899476B2 (ja) 2005-12-28 2005-12-28 分割プログラム、連結プログラム、情報処理方法
US11/393,725 US8418053B2 (en) 2005-12-28 2006-03-31 Division program, combination program and information processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005380328A JP4899476B2 (ja) 2005-12-28 2005-12-28 分割プログラム、連結プログラム、情報処理方法

Publications (2)

Publication Number Publication Date
JP2007179492A JP2007179492A (ja) 2007-07-12
JP4899476B2 true JP4899476B2 (ja) 2012-03-21

Family

ID=38195347

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005380328A Expired - Fee Related JP4899476B2 (ja) 2005-12-28 2005-12-28 分割プログラム、連結プログラム、情報処理方法

Country Status (2)

Country Link
US (1) US8418053B2 (ja)
JP (1) JP4899476B2 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8356053B2 (en) * 2005-10-20 2013-01-15 Oracle International Corporation Managing relationships between resources stored within a repository
US7770107B2 (en) * 2006-03-01 2010-08-03 Oracle International Corporation Methods and systems for extracting and processing translatable and transformable data from XSL files
US9495356B2 (en) * 2006-03-30 2016-11-15 International Business Machines Corporation Automated interactive visual mapping utility and method for validation and storage of XML data
US9183321B2 (en) 2006-10-16 2015-11-10 Oracle International Corporation Managing compound XML documents in a repository
US7827177B2 (en) * 2006-10-16 2010-11-02 Oracle International Corporation Managing compound XML documents in a repository
US9880980B2 (en) * 2007-03-05 2018-01-30 International Business Machines Corporation Document transformation performance via incremental fragment transformations
US20090007115A1 (en) * 2007-06-26 2009-01-01 Yuanhao Sun Method and apparatus for parallel XSL transformation with low contention and load balancing
EP2187312B1 (en) 2007-09-07 2016-12-21 Humming Heads Inc. Information search system, information search method, and program
US8739022B2 (en) * 2007-09-27 2014-05-27 The Research Foundation For The State University Of New York Parallel approach to XML parsing
US20090094606A1 (en) * 2007-10-04 2009-04-09 National Chung Cheng University Method for fast XSL transformation on multithreaded environment
JP5337411B2 (ja) * 2008-06-13 2013-11-06 京セラドキュメントソリューションズ株式会社 情報秘匿化方法および情報秘匿化装置
US8782514B1 (en) * 2008-12-12 2014-07-15 The Research Foundation For The State University Of New York Parallel XML parsing using meta-DFAs
US20100162142A1 (en) * 2008-12-22 2010-06-24 Lockheed Martin Corporation Common style sheets for compiled and scripting language applications
JP5321113B2 (ja) * 2009-02-13 2013-10-23 ソニー株式会社 情報処理装置、および情報処理方法、並びにプログラム
US9477651B2 (en) * 2010-09-29 2016-10-25 International Business Machines Corporation Finding partition boundaries for parallel processing of markup language documents
US9626368B2 (en) * 2012-01-27 2017-04-18 International Business Machines Corporation Document merge based on knowledge of document schema
EP2657851A1 (en) * 2012-04-26 2013-10-30 Sap Ag Partition based structured document transformation
CN103377175A (zh) * 2012-04-26 2013-10-30 Sap股份公司 基于分割的结构化文档转换
US9442700B2 (en) * 2013-09-30 2016-09-13 MuleSoft, Inc. API notebook tool
CN103544260A (zh) * 2013-10-16 2014-01-29 银江股份有限公司 一种大型xml文档转换方法
US20150186371A1 (en) * 2013-12-27 2015-07-02 A4 Data, Inc. System and method for transferring files through differential compression
JP6796376B2 (ja) * 2014-11-28 2020-12-09 日本放送協会 分割装置および解析装置、ならびにプログラム
US10204095B1 (en) * 2015-02-10 2019-02-12 West Corporation Processing and delivery of private electronic documents
AU2016345990A1 (en) * 2015-10-30 2018-05-17 Kim Seng Kee A system and method for processing big data using electronic document and electronic file-based system that operates on RDBMS
JP7000709B2 (ja) 2017-06-09 2022-01-19 富士フイルムビジネスイノベーション株式会社 情報処理装置及びプログラム
US10984184B2 (en) * 2018-12-11 2021-04-20 Change Healthcare Holdings, Llc Maintenance of a metafile using spreadsheet software
US20210200717A1 (en) * 2019-12-26 2021-07-01 Oath Inc. Generating full metadata from partial distributed metadata
CN117391066A (zh) * 2023-09-06 2024-01-12 苏州数设科技有限公司 面向工业数据的解析方法、装置、电子设备及存储介质

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10143498A (ja) * 1996-11-08 1998-05-29 Nippon Telegr & Teleph Corp <Ntt> リンク付与機能を持つページ分割通信中継装置
US6901403B1 (en) * 2000-03-02 2005-05-31 Quovadx, Inc. XML presentation of general-purpose data sources
CA2350735A1 (en) * 2001-03-14 2002-09-14 Ibm Canada Limited-Ibm Canada Limitee A method for providing open access to application profiling data
US20030023584A1 (en) * 2001-04-27 2003-01-30 Brandin Christopher Lockton Universal information base system
JP3692054B2 (ja) * 2001-05-21 2005-09-07 株式会社東芝 文書構造変換方法および文書構造変換装置およびプログラム
JP2003015869A (ja) * 2001-06-27 2003-01-17 Toshiba Corp 開発支援プログラム及び開発支援方法並びに開発支援システム
US7281206B2 (en) * 2001-11-16 2007-10-09 Timebase Pty Limited Maintenance of a markup language document in a database
US7146564B2 (en) * 2001-12-21 2006-12-05 Xmlcities, Inc. Extensible stylesheet designs using meta-tag and/or associated meta-tag information
US7210097B1 (en) * 2002-05-22 2007-04-24 Pitney Bowes Inc. Method for loading large XML documents on demand
JP2004062600A (ja) * 2002-07-30 2004-02-26 Fujitsu Ltd 構造型文書の変換方法、復元方法、変換及び復元方法及びプログラム
US7225425B2 (en) * 2002-08-29 2007-05-29 Sap Aktiengesellschaft Rapid application integration
US7237225B2 (en) * 2002-08-29 2007-06-26 Sap Aktiengesellschaft Rapid application integration using reusable patterns
US7257818B2 (en) * 2002-08-29 2007-08-14 Sap Aktiengesellschaft Rapid application integration using functional atoms
US7596523B2 (en) * 2002-09-09 2009-09-29 Barra, Inc. Method and apparatus for network-based portfolio management and risk-analysis
US20040098246A1 (en) * 2002-11-19 2004-05-20 Welch Donald J. System and method for displaying documents in a language specified by a user
US7203928B2 (en) * 2002-12-31 2007-04-10 Sun Microsystems, Inc. Method and system for generating and maintaining uniform test results
WO2004068320A2 (en) * 2003-01-27 2004-08-12 Vincent Wen-Jeng Lue Method and apparatus for adapting web contents to different display area dimensions
JP3905851B2 (ja) * 2003-03-24 2007-04-18 株式会社東芝 構造化文書の分割方法及びプログラム
WO2004104857A1 (ja) 2003-05-22 2004-12-02 Sharp Kabushiki Kaisha データ処理装置、データ処理方法、データ処理プログラム、およびデータ処理プログラムを記録したコンピュータ読取可能な記録媒体
JP4184155B2 (ja) * 2003-05-22 2008-11-19 シャープ株式会社 データ処理装置、データ処理方法、データ処理プログラム、およびデータ処理プログラムを記録したコンピュータ読取可能な記録媒体
EP1480377B1 (en) * 2003-05-23 2005-09-07 Alcatel Method and system for creating a protocol-independent meta-model in a Network Management System of a telecommunication network
JP2005011183A (ja) 2003-06-20 2005-01-13 Fuji Xerox Co Ltd 情報処理装置、情報処理方法、及びプログラム
US7209925B2 (en) * 2003-08-25 2007-04-24 International Business Machines Corporation Method, system, and article of manufacture for parallel processing and serial loading of hierarchical data
US7437374B2 (en) * 2004-02-10 2008-10-14 International Business Machines Corporation Efficient XML schema validation of XML fragments using annotated automaton encoding
US20050177578A1 (en) * 2004-02-10 2005-08-11 Chen Yao-Ching S. Efficient type annontation of XML schema-validated XML documents without schema validation
US7392243B2 (en) * 2004-10-20 2008-06-24 Microsoft Corporation Using permanent identifiers in documents for change management
US7899834B2 (en) * 2004-12-23 2011-03-01 Sap Ag Method and apparatus for storing and maintaining structured documents
JP2006238147A (ja) * 2005-02-25 2006-09-07 Toshiba Corp コンテンツ再生装置、字幕再生方法及びプログラム
US7665016B2 (en) * 2005-11-14 2010-02-16 Sun Microsystems, Inc. Method and apparatus for virtualized XML parsing
US7665015B2 (en) * 2005-11-14 2010-02-16 Sun Microsystems, Inc. Hardware unit for parsing an XML document
US7596745B2 (en) * 2005-11-14 2009-09-29 Sun Microsystems, Inc. Programmable hardware finite state machine for facilitating tokenization of an XML document
CN101329665A (zh) * 2007-06-18 2008-12-24 国际商业机器公司 解析标记语言文档的方法和解析器
US8739022B2 (en) * 2007-09-27 2014-05-27 The Research Foundation For The State University Of New York Parallel approach to XML parsing

Also Published As

Publication number Publication date
US20070150809A1 (en) 2007-06-28
JP2007179492A (ja) 2007-07-12
US8418053B2 (en) 2013-04-09

Similar Documents

Publication Publication Date Title
JP4899476B2 (ja) 分割プログラム、連結プログラム、情報処理方法
CN111400408B (zh) 数据同步方法、装置、设备及存储介质
JP4997749B2 (ja) 文書処理方法、プログラム及びシステム
US6092091A (en) Device and method for filtering information, device and method for monitoring updated document information and information storage medium used in same devices
US7519903B2 (en) Converting a structured document using a hash value, and generating a new text element for a tree structure
US20020049731A1 (en) Information processing method and apparatus
JP4769005B2 (ja) 情報処理支援システム及び情報処理支援プログラム
JP2002099428A (ja) ハッシュコンパクトxmlパーサ
JP2006178946A (ja) ワークブックを表現するためのファイルフォーマット、方法およびコンピュータプログラム製品
CN112667720A (zh) 接口数据模型的转化方法、装置、设备及存储介质
JP4185175B2 (ja) 構造化文書の表示方法
US20110107198A1 (en) Information processing apparatus, storage medium, and information processing method
JP4393404B2 (ja) データベース管理装置およびデータベース管理方法
CA2281346A1 (en) Method and apparatus for amplifying design information into software products
US7873902B2 (en) Transformation of versions of reports
JP5690472B2 (ja) データ抽出システム
JP4887726B2 (ja) 構造化文書のデータ処理方法、データ処理プログラム、およびデータ処理装置
JP2006171800A (ja) データ集計装置、その方法、及びプログラム
JP4480109B2 (ja) 画像管理装置および画像管理方法
JP4951407B2 (ja) コンテンツ部品検索方法及び装置
CN112988668B (zh) 基于PostgreSQL的流式文档处理方法、装置以及装置的应用方法
US20110185274A1 (en) Mark-up language engine
JP3448922B2 (ja) 電子文書記憶装置
JPH09293085A (ja) 設計支援装置
CN113822014B (zh) 一种代码物料的存储方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080416

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101007

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101012

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101213

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110621

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110921

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20111004

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111219

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

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees