JP4163870B2 - 構造化文書変換装置 - Google Patents
構造化文書変換装置 Download PDFInfo
- Publication number
- JP4163870B2 JP4163870B2 JP2001401934A JP2001401934A JP4163870B2 JP 4163870 B2 JP4163870 B2 JP 4163870B2 JP 2001401934 A JP2001401934 A JP 2001401934A JP 2001401934 A JP2001401934 A JP 2001401934A JP 4163870 B2 JP4163870 B2 JP 4163870B2
- Authority
- JP
- Japan
- Prior art keywords
- conversion
- document
- xml document
- tag
- data
- 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
Links
- 238000006243 chemical reaction Methods 0.000 claims description 1021
- 238000012545 processing Methods 0.000 claims description 255
- 230000003068 static effect Effects 0.000 claims description 20
- 238000012856 packing Methods 0.000 claims description 5
- 238000000034 method Methods 0.000 description 374
- 230000008569 process Effects 0.000 description 57
- 230000006835 compression Effects 0.000 description 42
- 238000007906 compression Methods 0.000 description 38
- 238000010586 diagram Methods 0.000 description 37
- 230000007246 mechanism Effects 0.000 description 23
- 238000004904 shortening Methods 0.000 description 23
- 238000013144 data compression Methods 0.000 description 20
- 230000009466 transformation Effects 0.000 description 13
- 230000000694 effects Effects 0.000 description 12
- 230000006837 decompression Effects 0.000 description 11
- 238000011161 development Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000009467 reduction Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 1
- 238000013497 data interchange Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000011038 discontinuous diafiltration by volume reduction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000011423 initialization method Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
Description
【発明の属する技術分野】
本発明は、XML(eXtensible Markup Language)等の構造化文書を取り扱うシステムに適用される技術に関し、そのシステムにおいて処理速度を高速化するとともに使用メモリ量を削減すべく、構造化文書のデータ構造や、構造化文書を成す文字列を変換するための技術に関する。
【0002】
XML文書は、その特徴によって、次の2種類に大きく分類される。一つは、伝票,予定表など,タグ数が多く、要素内容が比較的短い、データ系XML文書である。また、もう一つは、雑誌,マニュアル,辞典など、要素内容が比較的長い文章になる文書系XML文書である。本発明は、前者のデータ系XML文書を処理対象とする場合に用いて好適の技術で、特に、表形式で表わされ、データベースのように扱われるXML文書を処理対象とする場合に用いて好適の技術である。
【0003】
【従来の技術】
近年、インターネットを通して、個人,企業,自治体など、あらゆる種類のシステムが相互に通信可能に接続されており、これらのシステムが相互に連携してWebサービスが提供されたりEDI(Electronic Data Interchange)やEC(Electronic Commerce)が行なわれたりしつつある。このため、幅広い情報の交換が必要になってきている。このような状況下において、XMLは、データを構造化する柔軟な表現能力を有し、コンピュータによる処理に適しているので、上記のシステム間のデータ交換や各システムでのデータ処理を行なう際の、共通基盤のフォーマットとして注目されている。
【0004】
XMLは、1986年ISO(International Organization for Standardization)で標準化されたSGML(Standard Generalized Markup Language)をインターネットで活用し易くするために、1998年2月にその基本仕様XML1.0としてW3C(World Wide Web Consortium)において策定されたものである。Webページ作成言語であるHTML(HyperText Markup Language)は、タグが固定され、表示に特化されたものとなっており、タグ情報を基にコンピュータで情報を処理したいという要件に対応することができないという問題があった。これに対し、XMLは、利用者によって自由にタグを定義され、文書中の文字列に対し意味付けを行なえる言語構造を有している。このようなXMLで文書を記述した場合、その文書を、タグ情報に基づいてコンピュータで処理することが可能になる。
【0005】
ここで、以下の説明で使用される用語について、XML規格に基づき説明しておく。一対の“<”と“>”とで囲まれた文字列を「タグ」、“<文字列>”を「開始タグ」、“</文字列>”を「終了タグ」、“<文字列/>”を「空要素タグ」、開始タグから終了タグまでの文字列全体を「要素」、開始タグと終了タグとで挟まれた文字列を「要素内容(単に内容と呼ぶ場合もある)」、タグ内に記述される要素の名前を「要素名(あるいはタグ名)」、要素に対する付加情報を「属性」と呼ぶ。
【0006】
構造化文書では、その文書中にタグを埋め込む形でデータ構造が記述される。このようにデータ構造をタグとして文書に埋め込んだ構成を採ることにより、データ項目の追加削除変更に対して柔軟性や拡張性が得られるほか、タグ名に、ユーザが読んで意味のある名前を付けることにより、その構造化文書データに視認性を持たせることもできる。
【0007】
ところで、XML文書に対する処理の高速化やメモリ使用量の削減等をはかってXML文書に対する処理性能を向上させる際には、一般に、基盤ソフトウエアの実装の高性能化をはかることが主流になっている。しかし、このような手法のほかに、XML文書自体に予め加工を施しておくことによっても、XML文書に対する処理性能を向上させることが可能である。本発明は、後者の手法(XML文書を加工して処理性能の向上をはかる手法)に関連するものであり、ここで、後者の手法に係る従来技術について説明する。
【0008】
〔a1〕従来技術1
日経コンピュータ誌2001.3.12号の記事「見えてきた万能幻想の真実XMLの“常識”を覆す」に、XML導入時に処理速度が遅くなる問題が発生し、データ構造を変更することにより、問題に対処する事例が開示されている。住友電工システムズの例(同誌のp.64-65参照)では、同種のデータを、CSV(Comma Separated Value)形式でまとめて記述し、まとめられたデータを、XMLデータ中の一つのタグ中に埋め込む。例えば、XMLデータの定義情報を変更し、1カ月分のXMLデータを日付順にコンマで区切ってまとめている。
【0009】
具体的には、
<KOUSU day="01">8.0</KOUSU><KOUSU day="02">5.5</KOUSU>…
…<KOUSU day="31">12.8</KOUSU>
というように、別々のタグに記述されていた毎日の実績に関するデータを、
<KOUSU day="01,02,…,31" data="8.0,5.5,…,12.8"></KOUSU>
といった形式で、月単位にまとめるように、元の文書を書き換えている。
【0010】
このような変更により、1ヶ月分のデータを参照する際には、データベース・サーバへの照会は1回で済むようになり、XMLの定義情報の送信も1回だけで済むほか、データ容量も10分の1に減ったとしている。このような従来技術1による手法は、データ処理に用いられる同種のデータを一つのタグにまとめるものであって、同種のデータを持つ特定のデータに適用される技術であり、改善の効果はデータに依存する。
【0011】
〔a2〕従来技術2
XML文書のレコード項目(フィールド)が、データ処理の対象となるキー要素(鍵要素)と、そのデータ処理の対象とならない要素(非キー要素,非鍵要素)とに分けられる場合、下記項目〔a2−1〕,〔a2−2〕に示すように、キー要素を残し、非キー要素をまとめて別ファイルにすることができる。このとき、非キー要素は、キー要素から、属性としての識別情報(id)を用いて引用される。このような従来技術2では、キー要素だけでデータ処理する場合には、キー要素のみに負荷を限定することができるが、検索の用途などで対象レコードを抽出し、キー要素と非キー要素とを一緒に表示したい場合には、非キー要素を別ファイルから読み出してキー要素と一緒にする必要があり、非常に手間がかかる。
【0012】
〔a2−1〕原XML文書の具体例
<名簿>
<個人><名前>Aさん</名前><会社>A社</会社><部署>A部</部署><住所>A市</住所><電話>123</電話></個人>
<個人><名前>Bさん</名前><会社>B社</会社><部署>B部</部署><住所>B市</住所><電話>456</電話></個人>
</名簿>
【0013】
〔a2−2〕2つのファイルへの分割例
上記原XML文書のうち、キー要素(名前,会社)と非キー要素(部署,住所,電話)とを別々のファイル、つまりキー要素のXML文書と非キー要素のXML文書とに分け、キー要素のXML文書では、新たにタグ名「情報」の空要素タグを作成するとともに、その空要素タグにおける属性(id)によってキー要素と非キー要素のXML文書とを関連付ける。別ファイルで、タグ名「情報」の要素に非キー要素をまとめておき、id属性と対応する属性(ref)を用いて非キー要素を参照する。
【0014】
・キー要素のXML文書
<名簿>
<個人><名前>Aさん</名前><会社>A社</会社><情報 id="1"/></個人>
<個人><名前>Bさん</名前><会社>B社</会社><情報 id="2"/></個人>
</名簿>
【0015】
・非キー要素のXML文書
<名簿>
<情報 ref="1"><部署>A部</部署><住所>A市</住所><電話>123</電話></情報>
<情報 ref="2"><部署>B部</部署><住所>B市</住所><電話>456</電話></情報>
</名簿>
【0016】
〔a3〕従来技術3
従来技術3では、XMLデータの階層を指定して、それ以下の階層におけるデータをXML専用の圧縮ソフトXMLZipにより圧縮する。データベース形式のXMLデータでは、レコード毎に圧縮ファイルが作成され、圧縮されたXMLデータを部分的に復元することができるようになっている。XML文書をレコード毎に解凍できるようにすることで、メモリの制約を回避することができる。ただし、このような従来技術3では、1レコード当たりのサイズ(データ量)が大きくない場合には、有効な圧縮率を得ることができない。
【0017】
【発明が解決しようとする課題】
ところで、代表的な構造化文書であるXML文書に対しては、そのXML文書を応用ソフトウエア(アプリケーション)によって扱うために、DOM(Document Object Model)とSAX(Simple API for XML)と呼ばれる、2つの標準的なインターフェイス(API:Application Programming Interface)が定められている。SAXは、一般に処理速度が高速で、処理時のメモリ使用量が小さいが、時系列出力を行なうものであり、データを参照するだけの簡単な処理に向くという特徴を有している。これに対し、DOMは、一般に処理速度が低速で、処理時のメモリ使用量が大きいが、XML文書の要素を階層的なツリー(DOMツリー)に展開するため、複雑な処理内容に対してもプログラムを組みやすいという特徴を有している。
【0018】
一般に、XML文書に対して検索・更新・削除などの操作を施す場合、操作対象のXML文書を標準API(DOM)でDOMツリーに展開してから、その操作を施すことになる。しかし、XML文書をDOMツリーに展開する際には、元のデータ量の6倍もの膨大な動作メモリ容量が必要となる上、使用されない項目(操作対象外の項目)も一緒に展開されてしまうため、展開処理に多大な時間を要している。
【0019】
つまり、標準API(DOM)によるメモリ使用量が大きく処理速度が遅くなるのは、XML文書を取り扱うアプリケーションにおいて、データ処理の対象とならない要素も含む全ての要素がメモリ上に展開されるからである。従って、処理速度やメモリ使用量は、構造化文書の要素数に比例して増加することになる。そこで、XML文書自体に予め加工を施して、XML文書に対する処理性能を向上させるべく、上述のような従来技術1,2も提案されている。
【0020】
しかし、上述した従来技術1による手法では、データ処理に用いられる同種のデータが一つのタグにまとめられているが、この手法は、同種のデータを持つ特定のデータに適用され、メモリ使用量削減や処理速度の高速化についての改善効果はデータに依存することになる。
また、上述した従来技術2では、データ処理の対象となるキー要素と、使用されない要素とを別々のファイルに分けているが、キー要素と非キー要素とを一緒に表示したい場合、非キー要素を別ファイルから読み出してキー要素と一緒にしなければならず、非常に手間がかかることになる。
【0021】
従って、XMLデータの構造を事前に変換する場合には、その変換手法を種々のXMLデータに適用することができるように汎用のデータ構造変換法を考える必要がある。また、変換後のXMLデータも有効なデータ構造を有するように変換を行なう必要があるほか、応用ソフトウエアに対してのトランスペアレント性(透過性)を確保する必要もある。ここで、トランスペアレント性は、応用ソフトウエアが、処理対象の変換後XML文書に対して、修正を行なうことなく、もしくは、わすかな修正を行なうだけで、変換後XML文書をそのまま使えることを意味する。このトランスペアレント性は、変換後のXML文書を、既存の応用ソフトウエアで実行する際に重要な性質である。
【0022】
一方、上述した従来技術3では、XMLデータのレコード毎に圧縮ファイルを作成しているが、その圧縮ファイルは、通常、バイナリデータであるため、文字コードのみからなるXML文書内に置くことができず、別ファイルとして保存されることになる。従って、XML文書内の所定レコードを参照する必要がある場合には、そのレコードを別ファイルから読み出して解凍しなければならず、非常に手間がかかることになる。このため、XML文書を効率良く圧縮しながら、その圧縮結果をXML文書内に置くことができるようにした(つまり圧縮結果を文字コードの形で得られるようにした)圧縮方法の開発が望まれている。
【0023】
本発明は、このような課題に鑑み創案されたもので、アプリケーションに対するトランスペアレント性や変換された構造化文書のデータ構造の有効性を確保しながら、非キー要素を一つの要素にまとめるデータ構造変換処理を、種々の構造化文書データに施すことができるようにした汎用の変換技術を提供することにより、構造化文書に対する操作に必要となるリソースを軽減し、構造化文書を処理する際におけるメモリ使用量削減と処理速度の高速化との両方を実現することを目的とする。
【0024】
また、本発明は、構造化文書を効率良く圧縮しながら、その圧縮結果を文字コードの形で得て構造化文書内に置くことができるようにした圧縮変換技術を提供することにより、構造化文書に対する操作に必要となるリソースを軽減し、構造化文書を処理する際におけるメモリ使用量削減と処理速度の高速化との両方を実現することを目的とする。
【0025】
【課題を解決するための手段】
上記目的を達成するために、本発明の関連技術としての構造化文書変換装置は、構造化文書を変換するものであって、変換対象の構造化文書を成す要素につき、構造化文書に対するデータ処理の対象となるキー要素と前記データ処理の対象にならない非キー要素とに分けた区別情報を読み込むXSLT変換部と、所定のタグ名および所定の属性名を付与された、該区別情報における該非キー要素のための新たな要素を作成し、該非キー要素のタグ名を含むタグ名文字列を作成し、該タグ名文字列を、該新たな要素において前記所定の属性名に対応する属性値として記述するタグ名変換を行ない、該非キー要素の内容を含む内容文字列を作成し、該内容文字列を、該新たな要素の内容として記述する内容変換を行ない、該区別情報における該キー要素を、変換後の構造化文書においてそのまま(該キー要素に対し何の変換も施すことなく)記述するXSLT構造変換部とをそなえて構成されていることを特徴としている。
なお、該XSLT構造変換部が、該所定の属性名として、所定の第1属性名および所定の第2属性名を付与された該新たな要素を作成し、該タグ名文字列を、該新たな要素において、前記第1属性名に対応する第1属性値として記述するタグ名変換を行ない、該内容文字列を、該新たな要素において、前記第2属性名に対応する第2属性値として記述する内容変換を行なうことが好ましい。
さらに、該XSLT構造変換部が、該タグ名文字列を、区切り記号を介して該非キー要素のタグ名を繋いで作成することが好ましく、このとき、該XSLT構造変換部が、該非キー要素が複数階層を成している場合、該タグ名文字列において、該複数階層を成す非キー要素のタグ名に、階層構造識別情報を付加することが好ましい。
また、該XSLT構造変換部が、該内容文字列を、区切り記号を介して該非キー要素の内容を繋いで作成することが好ましい。
なお、該XSLT変換部が、該キー要素と該非キー要素とを区別するための情報を記述するとともに該新たな要素に関する情報を記述した変換仕様文書を読み込み、該XSLT構造変換部が、該変換仕様文書に基づいて、該変換対象の構造化文書に対し、該非キー要素の記述についての変換を施すことが好ましい。
【0026】
また、本発明の関連技術としての構造化文書変換装置は、構造化文書を変換するものであって、変換対象の構造化文書を成す要素につき、構造化文書に対するデータ処理の対象となるキー要素と前記データ処理の対象にならない非キー要素とに分けた区別情報を読み込むXSLT変換部と、所定のタグ名を付与された、該区別情報における該非キー要素のための新たな要素を作成し、該非キー要素の記述中においてタグ付けに関連する記号をタグ付けに関連しない文字列に置き換えた文字列を作成し、該文字列を、該新たな要素の内容として記述し、該区別情報における該キー要素を、変換後の構造化文書においてそのまま(該キー要素に対し何の変換も施すことなく)記述するXSLT構造変換部とをそなえて構成されていることを特徴としている。
【0027】
さらに、本発明の構造化文書変換装置(請求項1)は、構造化文書を変換する処理部を有するものであって、該処理部が、変換対象の構造化文書を成す要素を、該構造化文書に対するデータ処理の対象となるキー要素と前記データ処理の対象とならない非キー要素とに区別するための区別情報を読み込み、所定のタグ名を付与された、該区別情報における該非キー要素のための新たな要素を作成し、該区別情報に基づいて区別した、該非キー要素を成す文字もしくは文字列を、出現頻度に応じて予め作成された静的辞書を用いて置き換えた固定長ビットの辞書番号に対し、出現頻度に従って割り当てた可変長の符号語を収めた符号表を用いて、出現頻度の高いものほど短い可変長符号を割り付ける可変長符号化を行ない、該可変長符号化により得られたバイナリデータを6ビットずつ1バイトの変換データにパッキングし、各変換データにパッキングされた6ビットデータをASCII(American Standard Code for Information Interchange)コードに従う文字コードに変換することにより、該非キー要素を、該文字コードからなる圧縮文字列に変換し、該圧縮文字列を、該新たな要素の内容として記述し、該区分情報における該キー要素を、変換後の構造化文書においてそのまま(該キー要素に対し何の変換も施すことなく)記述することを特徴としている。
【0028】
一方、本発明の関連技術としてのデータ変換方法は、変換対象の文字もしくは文字列に対し、出現頻度の高いものほど短い可変長符号を割り付ける可変長符号化を行ない、該可変長符号化により得られたバイナリデータを6ビットずつ1バイトの変換データにパッキングして出力することを特徴としている。このとき、さらに、各変換データにパッキングされた6ビットデータをASCIIコードに従う文字コードに変換し、該変換データ毎に得られた該文字コードを、前記変換対象の文字もしくは文字列の圧縮変換結果として出力してもよい。
【0029】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。
標準APIとしてDOMを採用し構造化文書をメモリ上へDOMツリーとして展開する場合、一般に、構造化文書中の要素数が多いほど、その展開処理に時間がかかり、タグ検索にも時間がかかることになる。
【0030】
構造化文書中には、通常、その構造化文書に対するデータ処理の対象となるキー要素と前記データ処理の対象とならない非キー要素とが含まれており、構造化文書を成す要素は、キー要素と非キー要素とに分けることができる。つまり、応用ソフトウエア(アプリケーション)により構造化文書に対するデータ処理を行なう際には、キー要素のみが処理の対象とされ、タグ名でキー要素の検索を行ない、検索されたキー要素の内容が参照される。
【0031】
そこで、本発明(第1〜第3実施形態)では、変換対象の構造化文書を、1レコード中で、キー要素については何の変換も施すことなくそのまま記述するとともに、非キー要素を一つのタグにまとめて記述した構造化文書に変換している。以下、本実施形態では、構造化文書がXML文書である場合について説明する。
【0032】
〔1〕第1実施形態の説明
本発明の第1実施形態では、説明を簡単にするため、まず、各レコードの要素が1階層であるXML文書の変換方法について説明した後、要素が2以上の階層を成しているレコードや、属性を有する要素を含むレコードが含まれるXML文書の変換方法について説明する。
【0033】
〔1−1〕第1実施形態の構造化文書変換方法の原理
ここで、図1(A),図1(B)および図3(A)を参照しながら、本発明の第1実施形態としての構造化文書変換方法の原理について説明する。
図3(A)に示す変換対象のXML文書は2つのレコード(タグ名“個人”)を有している。一方のレコードは、タグ名“名前”,“会社”,“部署”,“住所”,“電話”の要素を一つずつ有している。また、もう一方のレコードは、タグ名“名前”,“会社”,“部署”の要素を一つずつ有するとともに、タグ名“電話”の要素を二つ有している。これら二つのレコードにおいては、要素の種類や数が異なっているため、図3(A)に示すXML文書は表形式ではない。図3(A)に示すXML文書のメモリ展開形式を図1(A)に示す。この図1(A)では、図3(A)に示すXML文書をメモリ上へDOMツリーとして展開した例が示されている。
【0034】
上述のような要素を有するXML文書において、タグ名“名前”,“会社”の要素をキー要素とするとともにタグ名“部署”,“住所”,“電話”の要素を非キー要素とし、このXML文書に対し、第1実施形態の構造化文書変換方法を適用して得られた変換後XML文書のメモリ展開形式を図1(B)に示す。なお、ここで示す展開形式は、応用ソフトウエアが標準API(DOM)を介して変換後XML文書を操作するときの、メモリ上への展開形式である。
【0035】
この図1(B)に示す変換後XML文書は、図3(B)〜図3(D)を参照しながら後述するXML文書に対応するもので、この図1(B)では、図3(B)〜図3(D)に示すXML文書をメモリ上へDOMツリーとして展開した例が示されている。図1(B)に示すXML文書では、タグ名“情報”を有する新たな要素が作成され、この新たな要素の内容として、タグ名“部署”,“住所”,“電話”の非キー要素の内容がまとめて記述されている。
【0036】
つまり、一方のレコードでは、タグ名“情報”の要素の内容として“A部,A市,123”が記述され、もう一方のレコードでは、タグ名“情報”の要素の内容として“B部,456,789”が記述されている。また、タグ名“名前”,“会社”のキー要素については、元のまま記述されている。
このようにして非キー要素を一つの要素にまとめるようにXML文書を変換することによって、XML文書中に含まれる要素の数、つまりメモリ上に展開されたツリーの子要素の数を大幅に減らすことができ、展開時やデータ処理時に非キー要素を一括して扱うことができる。
【0037】
〔1−2〕第1実施形態のシステムおよび変換/逆変換処理の流れ
図2は、本発明の第1実施形態としての構造化文書変換方法を適用されるシステムおよびそのシステムにおける変換/逆変換処理の流れを説明するための図である。
多様な種類のXML文書に対して、各XML文書に応じたスタイルシート〔XSL(XML Style Language)シート〕を一々作成するのは極めて面倒で手間がかかる。
【0038】
そこで、その手間を省くため、第1実施形態では、図9,図12〜図15および図17を参照しながら後述するごとく、XML文書のデータ構造を変換するための仕様(レコード名,キータグ名,非キータグ名等)をXML文書(変換仕様文書)によって作成して変換実行手順を与え、図18および図19を参照しながら後述するごとく、その変換仕様文書に基づいてXML文書の変換/逆変換を実行する。
【0039】
さらに、第1実施形態では、図20(A)〜図20(D)を参照しながら後述するごとく、与えられた変換仕様文書に基づいて、変換実行手順を指示する変換用スタイルシートや、逆変換実行手順を指示する逆変換用スタイルシートを自動的に生成し、このスタイルシートを用いて、構造化文書変換プロセッサ〔XSLT(XML Style Language Translator)プロセッサ〕に、XML文書に対するデータ構造変換/逆変換を実行させている。このように変換/逆変換の実行手順をスタイルシートで与えるようにすれば、標準のXSLTプロセッサで変換/逆変換を実行することができるので、ほとんどあらゆる種類のXML文書システムにおいて第1実施形態による変換/逆変換処理を実行することができる。
【0040】
図2に示すシステムでは、XSLT変換部11,XSLT構造変換部12およびXSLT逆変換部13からなるデータ構造変換/逆変換機構10がそなえられるとともに、標準API20および応用ソフトウエア30がそなえられている。なお、XSLT変換部11,XSLT構造変換部12およびXSLT逆変換部13(データ構造変換/逆変換機構10)は、実際には、一つの標準のXSLTプロセッサ(構造化文書変換プロセッサ)によって実現される。
【0041】
XSLT変換部11は、XML文書によって与えられ、キー要素と非キー要素との区別情報等を記したデータ構造変換の仕様(例えば図9参照)を読み込み、そのXML文書と自動変換スタイルシートとにより、構造変換用スタイルシート(例えば図10参照)および逆変換用スタイルシート(例えば図11参照)を生成するものである。
【0042】
XSLT構造変換部12は、変換対象のXML文書(入力XML文書)を読み込み、XSLT変換部11により生成された構造変換用スタイルシートに基づいて、入力XML文書に対し、レコード毎に非キー要素を一つの要素にまとめるデータ構造変換を施すものである。
【0043】
標準API20および応用ソフトウエア(アプリケーション)30は、いずれも、プロセッサによって実行され、XSLT構造変換部12からの変換後XML文書に対して所定のデータ処理を施すためのものである。そのプロセッサとしては、データ構造変換/逆変換機構10を実現するためのXSLTプロセッサを用いてもよいし、このXSLTプロセッサとは別のプロセッサを用いてもよい。
【0044】
XSLT逆変換部13は、応用ソフトウエア30により処理されたXML文書(抽出XML文書,変換後XML文書)を読み込み、XSLT変換部11により生成された逆変換用スタイルシートに基づいて、抽出XML文書を元の形式のXML文書(非キー要素を元の状態に戻したXML文書)に復元するための逆変換を実行し、復元結果を抽出最終結果として出力するものである。
【0045】
上述のごとく構成されたシステムにおいて、データ構造変換/逆変換機構(XSLTプロセッサ)10は、XML文書による変換仕様文書を読み込むとともに、処理対象の入力XML文書を読み込み、変換仕様(実際には構造変換用スタイルシート)に基づいて入力XML文書を変換し、所定のデータ構造変換を施したXML文書を出力する。そして、変換されたXML文書に対しては、標準API20を介して応用ソフトウエアによりデータ処理(例えばタグ検索)が施され、データ処理後のXML文書が得られる。なお、データ処理としてタグ検索を行なった場合、検索結果が抽出XML文書の形で得られる。この抽出XML文書は、データ構造変換/逆変換機構10に読み込まれ、変換仕様(実際には逆変換用スタイルシート)に基づいて元のデータ構造のXML文書に逆変換され、最終的なデータ処理結果としてのXML文書が得られる。
【0046】
なお、第1実施形態において、XSLT変換部11に読み込まれるデータ構造変換用の仕様XML文書については、図9,図12〜図15および図17を参照しながら後述する。また、XSLT変換部11によって生成される構造変換用スタイルシートおよび逆変換用スタイルシートについては、それぞれ図10および図11を参照しながら後述する。
【0047】
〔1−3〕第1実施形態における、非表形式XML文書の変換方法および具体的な変換例
第1実施形態の変換方法を表形式でないXML文書(非表形式XML文書)に適用した場合、非キー要素のタグ名を含むタグ名文字列、および、非キー要素の内容を含む内容文字列が作成され、これらの文字列が、新たに作成された要素において要素内容,タグ名もしくは属性値として記述される。
【0048】
このとき、タグ名文字列は、区切り記号を介して複数の非キー要素のタグ名を繋いで作成されるとともに、内容文字列も、同様に、区切り記号を介して複数の非キー要素の内容を繋いで作成される。第1実施形態では、区切り記号としてコンマ“,”を用いる。
ここで、タグ名や内容の繋ぎ方としてはCSV(Comma Separated Value)形式を用いる。CSVは、本来、コンマを介して数値や文字列を繋ぐ方法であり、区切り記号をコンマに限っているが、本発明では、区切り記号をコンマに限る必要はない。
【0049】
区切り記号としてコンマを用いた場合、要素内容が金額であると、千の位を表わすコンマと混同するおそれがあるため、コンマよりも“@”(アットマーク)や“_”(アンダーバー)を用いる。また、区切り記号を介して文字列を繋ぐ際にその文字列中に区切り記号が文字として含まれている場合には、その文字を実体参照の形に置き換えてもよい。例えばコンマを区切り記号とした場合に文字列中のコンマについては、実体参照記述である“&CMM;”に置き換える。従って、できれば、区切り記号としては、通常の文字列に、滅多に現われない文字を用いることが望ましい。本実施形態では、コンマに限らず、区切り記号を介して、数値や文字列を繋ぐ方法を、便宜上、CSVと呼ぶことにする。
【0050】
図3(B)〜図3(F)においては、それぞれ、図3(A)で前述した表形式でないXML文書に、第1実施形態の構造化文書変換方法を適用して得られた変換結果の第1〜第5具体例が示されている。ここでも、タグ名“名前”,“会社”の要素をキー要素とし、タグ名“部署”,“住所”,“電話”の要素を非キー要素とする。
【0051】
第1実施形態の変換方法では、基本的に、変換対象のXML文書を成す要素をそのXML文書に対してデータ処理の対象となるキー要素とそのデータ処理の対象とならない非キー要素とに分け、新たな要素を作成し、非キー要素に対してはタグ名変換および内容変換を施す一方、キー要素については、変換後のXML文書においても、何の変換も施すことなくそのまま記述する。
【0052】
図3(B)に示す第1具体例では、タグ名“情報”および属性名“tags”を付与された新たな要素を作成した上で、タグ名変換により、非キー要素についてのタグ名文字列をCSV形式で作成し、そのタグ名文字列を、新たな要素において属性名“tags”に対応する属性値として記述している。また、内容変換により、非キー要素についての内容文字列をCSV形式で作成し、この内容文字列を、新たな要素の内容として記述している。
【0053】
つまり、図3(B)に示す変換後XML文書の第1レコードでは、タグ名“情報”の要素において、内容文字列“A部,A市,123”が要素内容として記述され、タグ名文字列“部署,住所,電話”が属性名“tags”の属性値として記述されている。また、第2レコードでは、タグ名“情報”の要素において、内容文字列“B部,456,789”が要素内容として記述され、タグ名文字列“部署,電話,電話”が属性名“tags”の属性値として記述されている。
【0054】
このとき、図12や図14を参照しながら後述するごとく、変換仕様文書において、非キー要素のタグ名とこのタグ名よりも短く且つこのタグ名を特定しうる短縮タグ名とを対応付けて記述しておき、上記タグ名変換時に、変換仕様文書に基づいて、非キー要素のタグ名を短縮タグ名に置換するタグ名短縮変換を行なってもよい。このようなタグ名短縮変換を施されたXML文書を元の状態に復元する際(逆変換時)には、変換仕様文書に基づいて、短縮タグ名を非キー要素のタグ名に置換するタグ名伸長変換を行なう。
【0055】
図3(C)に示す第2具体例では、図3(B)に示すXML文書に対して、さらに上述のようなタグ名短縮変換を施した結果のXML文書が示されている。つまり、変換仕様文書においてタグ名“部署”,“住所”,“電話”をそれぞれ短縮タグ名“A”,“B”,“C”に対応付けておくことにより(図12や図14参照)、第1レコードでは、属性名“tags”の属性値として記述されるタグ名文字列が“A,B,C”に置き換えられ、同様に、第2レコードでは、属性名“tags”の属性値として記述されるタグ名文字列が“A,C,C”に置き換えられている。
【0056】
図3(D)に示す第3具体例では、タグ名“情報”,第1属性名“tags”および第2属性名“contents”を付与された新たな要素を作成した上で、タグ名変換により、非キー要素についてのタグ名文字列をCSV形式で作成し、そのタグ名文字列を、新たな要素において第1属性名“tags”に対応する第1属性値として記述している。また、内容変換により、非キー要素についての内容文字列をCSV形式で作成し、この内容文字列を、新たな要素において第2属性名“contents”に対応する第2属性値として記述している。なお、この場合、新たな要素は空要素タグとして記述されることになる。
【0057】
つまり、図3(D)に示す変換後XML文書の第1レコードでは、タグ名“情報”の要素において、内容文字列“A部,A市,123”が第2属性名“contents”の第2属性値として記述され、タグ名文字列“部署,住所,電話”が第1属性名“tags”の第1属性値として記述されている。また、第2レコードでは、タグ名“情報”の要素において、内容文字列“B部,456,789”が第2属性名“contents”の第2属性値として記述され、タグ名文字列“部署,電話,電話”が第1属性名“tags”の第1属性値として記述されている。このとき、図3(C)に示した第2具体例と同様、第1属性値として記述されるタグ名文字列に対して、さらに、上述と同様のタグ名短縮変換を施してもよい。
【0058】
図3(E)に示す第4具体例では、タグ名変換により、非キー要素についてのタグ名文字列をCSV形式で作成し、そのタグ名文字列をタグ名として付与された新たな要素を作成する。そして、内容変換により、非キー要素についての内容文字列をCSV形式で作成し、この内容文字列を、新たな要素の内容として記述している。
【0059】
つまり、図3(E)に示す変換後XML文書の第1レコードでは、タグ名“部署,住所,電話”の要素において、内容文字列“A部,A市,123”が要素内容として記述されている。また、第2レコードでは、タグ名“部署,電話,電話”の要素において、内容文字列“B部,456,789”が要素内容として記述されている。
【0060】
図3(F)に示す第5具体例では、図3(E)に示すXML文書に対して、さらに上述のようなタグ名短縮変換を施した結果のXML文書が示されている。つまり、変換仕様文書においてタグ名“部署”,“住所”,“電話”をそれぞれ短縮タグ名“A”,“B”,“C”に対応付けておくことにより(図12や図14参照)、第1レコードでは、新たな要素のタグ名として記述されるタグ名文字列が“A,B,C”に置き換えられ、同様に、第2レコードでは、新たな要素のタグ名として記述されるタグ名文字列が“A,C,C”に置き換えられている。
【0061】
なお、図3(B)に示すようにCSV形式のタグ名文字列を属性値として新要素の開始タグに入れる方法を用いた場合は、図3(E)に示すようにCSV形式のタグ名文字列をタグ名として新要素の開始タグに持たせる方法を用いた場合に比べ、終了タグが短くなる分だけデータ量が減ることになる。その代わり、前者の方法を用いた場合、CSV形式のタグ名文字列を記述する属性が一つ増えることになる。図3(B)や図3(E)に示すXML文書は、それぞれ図3(C)や図3(F)に示すごとく、前述したタグ名短縮変換を行なうことで、データ量を削減することができる。
【0062】
このように、第1実施形態の変換方法は、複数の非キー要素を一つの要素にまとめ、応用ソフトウエアがデータ処理を実行している間は非キー要素をデータ処理と無関係な要素として一括して扱えるようにするものである。非キー要素のタグ名をCSV形式に繋いで作成したタグ名文字列を、新たな要素のタグ名として記述するか、新たな要素の属性値として記述するかは、変換仕様文書等により選択・指定することができるようになっている。また、非キー要素の要素内容をCSV形式に繋いで作成した内容文字列を、新たな要素の属性値として記述するか、新たな要素の内容として記述するかも、変換仕様文書等により選択・指定することができるようになっている。変換方法として、図3(B)〜図3(F)で説明した各種方法のうちのどれを用いるかは、XML文書のデータ量によって、あるいは、データ処理に伴い新たな要素が幾つ増えるかによって決定されることになるが、非キー要素をひとまとめにして取り扱うという本発明の本質を考えれば、どの方法を採用してもよい。
【0063】
〔1−4〕第1実施形態における、表形式XML文書の変換方法および具体的な変換例
第1実施形態の変換方法を表形式XML文書に適用した場合、非キー要素の内容を含む内容文字列が作成され、この内容文字列が、新たに作成された要素において要素内容もしくは属性値として記述される。つまり、第1実施形態の変換方法を表形式XML文書に適用する場合、表形式XML文書における各レコードの要素記述が規則性を有しているので、表形式でないXML文書で行なっていたタグ名変換(あるいは後述する属性名変換)を省略することができる。
【0064】
ただし、その場合、図9を参照しながら後述するごとく、変換仕様文書においては、キー要素と非キー要素とを区別するための情報が記述されるとともに、非キー要素のタグ名(属性を有する場合には、その属性名も含む;項目〔1−5〕参照)とそのタグ名や属性名を代表する代表タグ名(新要素のタグ名)とが対応付けて記述される。このような変換仕様文書に基づいて、データ構造変換時には、変換対象のXML文書に対し、上述したタグ名変換を省略し上述した内容変換のみを行なう表形式変換を施す。一方、逆変換時には、この変換仕様文書に基づいて、代表タグ名(新要素のタグ名)から非キー要素のタグ名および属性名を割り出し、前記表形式変換を施されたXML文書(データ処理後のXML文書)に対し、非キー要素の記述を元の状態に戻す表形式逆変換を施す。
【0065】
ここで、図4(A)〜図4(C)を参照しながら表形式XML文書の具体的な変換結果について説明する。
図4(A)に示す変換対象のXML文書は2つのレコード(タグ名“個人”)を有しており、これらのレコードは、いずれも、タグ名“名前”,“会社”,“部署”,“住所”,“電話”の要素を一つずつ有している。つまり、これら二つのレコードにおいては、要素の種類や数が同じであり、図4(A)に示すXML文書は表形式である。
【0066】
図4(B)および図4(C)においては、それぞれ、図4(A)で前述した表形式XML文書に、第1実施形態の構造化文書変換方法を適用して得られた変換結果の第1および第2具体例が示されている。ここでも、タグ名“名前”,“会社”の要素をキー要素とし、タグ名“部署”,“住所”,“電話”の要素を非キー要素とする。
【0067】
第1実施形態の変換方法を表形式XML文書に適用する場合、上述のごとく変換仕様文書において代表タグ名(新要素のタグ名)“情報”と非キー要素のタグ名“部署”,“住所”,“電話”とを対応付けた上で、変換対象のXML文書を成す要素をそのXML文書に対するデータ処理の対象となるキー要素とそのデータ処理の対象とならない非キー要素とに分け、新たな要素を作成し、非キー要素に対しては内容変換を施す一方、キー要素については、変換後のXML文書においても、何の変換も施すことなくそのまま記述する。
【0068】
図4(B)に示す第1具体例では、代表タグ名“情報”を付与された新たな要素を作成した上で、内容変換により、非キー要素についての内容文字列をCSV形式で作成し、この内容文字列を、新たな要素の内容として記述している。
つまり、図4(B)に示す変換後XML文書の第1レコードでは、タグ名“情報”の要素において、内容文字列“A部,A市,123”が要素内容として記述される。また、第2レコードでは、タグ名“情報”の要素において、内容文字列“B部,B市,456”が要素内容として記述される。なお、図4(B)に示すXML文書は、図9を参照しながら後述する変換仕様文書に従って、図4(A)に示すXML文書を変換して得られたものである。
【0069】
図4(C)に示す第2具体例では、タグ名“情報”および属性名“contents”を付与された新たな要素を作成した上で、内容変換により、非キー要素についての内容文字列をCSV形式で作成し、この内容文字列を、新たな要素において属性名“contents”に対応する属性値として記述している。なお、この場合、新たな要素は空要素タグとして記述されることになる。
【0070】
つまり、図4(C)に示す変換後XML文書の第1レコードでは、タグ名“情報”の要素において、内容文字列“A部,A市,123”が属性名“contents”の属性値として記述される。また、第2レコードでは、タグ名“情報”の要素において、内容文字列“B部,B市,456”が属性名“contents”の属性値として記述される。
【0071】
このように、変換対象のXML文書が表形式で記述されている場合、元のXML文書を復元するための逆変換に際してタグ名(属性を有する場合には、その属性名も含む)を容易に割り出すことができるので、タグ名変換や属性名変換(この属性名変換については、図5〜図8を参照しながら後述する)を省略することができる。従って、表形式XML文書を変換した場合、その変換後XML文書には、非キー要素の内容文字列が記述されていればよく、タグ名や属性名に係る記述を省略することができる。
【0072】
〔1−5〕第1実施形態における、階層構造および属性を有するXML文書の変換方法および具体的な変換例
ここまで、各レコードにおける非キー要素が、単一階層であり且つ属性をもたない場合について説明してきたが、第1実施形態の変換方法は、非キー要素が複数階層を成す場合(階層が深くなった場合)や属性を有する場合にも、上述した原理を拡張することによって適用される。
【0073】
非キー要素が複数階層を成している場合、第1実施形態の変換方法では、上記タグ名変換によって得られるタグ名文字列において、複数階層を成す非キー要素のタグ名に、その非キー要素が複数階層を成している旨を示す階層構造識別情報(記号もしくは文字列;図6〜図8参照)を付加する。
【0074】
また、非キー要素が属性を有する場合、第1実施形態の変換方法では、その属性名の文字列に、この文字列が属性名であることを示す属性名識別情報(記号;例えば“@”;図6〜図8参照)を付加する。そして、上記タグ名変換によって得られるタグ名文字列において、属性を有する非キー要素のタグ名の後に、区切り記号(例えばコンマ)を介して、上述のごとく属性名識別情報を付加した属性名を記述する。また、上記内容変換によって得られる内容文字列において、属性を有する非キー要素の内容の後に、区切り記号(例えばコンマ)を介して、その属性の属性値を記述する。
【0075】
これにより、属性値は、内容文字列において、タグ名文字列中における属性名の記述位置に対応する位置に記述される。つまり、非キー要素のタグ名および属性名と非キー要素の要素内容および属性内容(属性値)とを、一対一の対応関係を保持しながら、それぞれCSV形式で繋いだタグ名文字列および内容文字列が作成され、XML文書中に記述される。
【0076】
なお、レコード毎の要素の種類や数が同じである表形式XML文書であって非キー要素が属性を有している場合には、非キー要素のタグ名および属性名とそのタグ名および属性名を代表する代表タグ名(新要素のタグ名)とを対応付けた変換仕様文書が作成される。そして、変換後のXML文書における新要素内の内容文字列では、要素内容および属性内容(属性値)が、その変換仕様文書におけるタグ名および属性名の記述順序と対応した順序で記述される。
【0077】
ここで、図5〜図8を参照しながら、階層構造および属性を有するXML文書の具体的な変換結果について説明する。
図5に示す変換対象のXMLは2つのレコード(タグ名“個人”)を有しており、これらのレコードは、いずれも、タグ名“名前”,“勤務先”,“住所”,“連絡先”の要素を一つずつ有している。そして、タグ名“勤務先”の要素は、タグ名“会社”,“部署”の要素を有して階層構造となっており、さらにタグ名“部署”の要素は、属性名“担務”の属性を有している。なお、第1レコードは、タグ名“部署”の要素を一つだけ有しているのに対し、第2レコードは、タグ名“部署”の要素を二つ有している。また、タグ名“連絡先”の要素は、タグ名“電話”,“Fax”,“Email”の要素を有して階層構造となっている。
【0078】
図6〜図8においては、それぞれ、図5で前述したXML文書に第1実施形態の構造化文書変換方法を適用して得れた変換結果の第1〜第3具体例が示されている。ここでも、タグ名“名前”,“会社”の要素をキー要素とし、それ以外の要素を非キー要素とする。ただし、ここでは、タグ名“勤務先”の要素が、タグ名“会社”の要素を含む階層構造となっているので、タグ名“勤務先”の要素はキー要素として取り扱われることになる。
【0079】
図6に示す第1具体例では、レコード毎に、タグ名“勤務先”の要素内に、タグ名“情報1”および属性名“tags”を付与された第1の新要素が作成されるとともに、タグ名“名前”やタグ名“勤務先”の要素と同一階層に、タグ名“情報2”および属性名“tags”を付与された第2の新要素が作成される。
【0080】
そして、第1レコードのタグ名“情報1”の要素においては、タグ名文字列“部署,@担務”が属性名“tags”の属性値として記述され、内容文字列“A部,主務”が要素内容として記述されている。また、第1レコードのタグ名“情報2”の要素においては、タグ名文字列“住所,0連絡先,1電話,1Fax,1Email”が属性名“tags”の属性値として記述され、内容文字列“A市,123,321,a1-a2@a-sya.co.jp”が要素内容として記述されている。
【0081】
同様に、第2レコードのタグ名“情報1”の要素においては、タグ名文字列“部署,@担務,部署,@担務”が属性名“tags”の属性値として記述され、内容文字列“B-1部,主務,B-2部,兼務”が要素内容として記述されている。また、第2レコードのタグ名“情報2”の要素においては、タグ名文字列“住所,0連絡先,1電話,1Fax,1Email”が属性名“tags”の属性値として記述され、内容文字列“B市,456,654,b1-b2@b-sya.co.jp”が要素内容として記述されている。
【0082】
ここで、“担務”の先頭に付加された“@”は、属性名識別情報であり、この“担務”が属性名であることを示す情報である。また、“連絡先”の先頭に付加された“0”や、“電話”,“Fax”,“Email”の先頭に付加された“1”は階層構造識別情報であり、“1”を付されたタグ名の要素が“0”を付されたタグ名の要素の下位階層(要素内容に含まれる要素)であることを示すものである。
【0083】
この図6に示すXML文書は、図15を参照しながら後述する変換仕様文書に従って、図5に示すXML文書を変換して得られたものである。特に、図6に示すXML文書は、図15に示す変換仕様文書において“情報1”および“情報2”の表形式情報としていずれも“nontable”(表形式でない旨)を設定して得られたものである。つまり、この図6に示す例では、タグ名“住所”および“連絡先”の要素は、レコード毎の要素の種類や数が同一であるので、表形式として取り扱うことのできるものであるが、表形式情報として“nontable”を設定することにより、タグ名“住所”および“連絡先”の要素を、表形式ではないものとして取り扱っている。
【0084】
図7に示す第2具体例においても、図6に示した例と同様、レコード毎に、タグ名“勤務先”の要素内に、タグ名“情報1”および属性名“tags”を付与された第1の新要素が作成されるとともに、タグ名“名前”やタグ名“勤務先”の要素と同一階層に、タグ名“情報2”および属性名“tags”を付与された第2の新要素が作成される。
【0085】
また、第1レコードのタグ名“情報1”の要素においても、図6に示した例と同様、タグ名文字列“部署,@担務”が属性名“tags”の属性値として記述され、内容文字列“A部,主務”が要素内容として記述されている。ただし、図7に示す第2具体例では、第1レコードのタグ名“情報2”の要素においては、タグ名文字列“住所,連絡先/電話,連絡先/Fax,連絡先/Email”が属性名“tags”の属性値として記述され、内容文字列“A市,123,321,a1-a2@a-sya.co.jp”が要素内容として記述されている。
【0086】
同様に、第2レコードのタグ名“情報1”の要素においては、タグ名文字列“部署,@担務,部署,@担務”が属性名“tags”の属性値として記述され、内容文字列“B-1部,主務,B-2部,兼務”が要素内容として記述されている。また、第2レコードのタグ名“情報2”の要素においては、タグ名文字列“住所,連絡先/電話,連絡先/Fax,連絡先/Email”が属性名“tags”の属性値として記述され、内容文字列“B市,456,654,b1-b2@b-sya.co.jp”が要素内容として記述されている。
【0087】
ここで、“電話”,“Fax”,“Email”の先頭に付加された文字列“連絡先/”は階層構造識別情報であり、文字列“連絡先/”を付されたタグ名の要素が、タグ名“連絡先”の要素の下位階層(要素内容に含まれる要素)であることを示すものである。この階層位置の表記法は、XPathとして知られている。
【0088】
この図7に示すXML文書は、図17を参照しながら後述する変換仕様文書に従って、図5に示すXML文書を変換して得られたものである。特に、図7に示すXML文書は、図17に示す変換仕様文書において“情報1”および“情報2”の表形式情報としていずれも“nontable”(表形式でない旨)を設定して得られたものである。つまり、この図7に示す例でも、タグ名“住所”および“連絡先”の要素は表形式として取り扱うことのできるものであるが、表形式情報として“nontable”を設定することにより、タグ名“住所”および“連絡先”の要素を、表形式ではないものとして取り扱っている。
【0089】
図8に示す第3具体例においては、レコード毎に、タグ名“勤務先”の要素内に、タグ名“情報1”および属性名“tags”を付与された第1の新要素が作成されるとともに、タグ名“名前”やタグ名“勤務先”の要素と同一階層に、タグ名“情報2”を付与された第2の新要素が作成される。
【0090】
そして、第1レコードのタグ名“情報1”の要素においては、タグ名文字列“部署,@担務”が属性名“tags”の属性値として記述され、内容文字列“A部,主務”が要素内容として記述されている。また、タグ名“住所”および“連絡先”の要素を表形式として取り扱うことにより、第1レコードのタグ名“情報2”の要素においては、内容文字列“A市,123,321,a1-a2@a-sya.co.jp”が要素内容として記述されている。
【0091】
同様に、第2レコードのタグ名“情報1”の要素においては、タグ名文字列“部署,@担務,部署,@担務”が属性名“tags”の属性値として記述され、内容文字列“B-1部,主務,B-2部,兼務”が要素内容として記述されている。また、第2レコードのタグ名“情報2”の要素においては、内容文字列“B市,456,654,b1-b2@b-sya.co.jp”が要素内容として記述されている。
【0092】
この図8に示すXML文書は、図15もしくは図17を参照しながら後述する変換仕様文書に従って、図5に示すXML文書を変換して得られたものである。特に、図8に示すXML文書は、図15もしくは図17に示す変換仕様文書において“情報1”の表形式情報として “nontable”(表形式でない旨)を設定するとともに“情報2”の表形式情報として“table”(表形式である旨)を設定して得られたものである。
なお、図6〜図8のいずれのXML文書においても、当然、キー要素については、何の変換も施すことなくそのまま記述されている。
【0093】
〔1−6〕第1実施形態の変換仕様文書およびスタイルシートの具体例
〔1−6−1〕表形式データのための変換仕様文書およびスタイルシート図9には、図4(A)に示した表形式XML文書を変換対象とした場合の、具体的な変換仕様文書(XML文書)が示されている。
【0094】
この図9に示す変換仕様文書では、ルートのタグ名“名簿”やレコードのタグ名“個人”が記述されるほか、タグ名“key_tags”の要素の内容としてキー要素のタグ名“名前”および“会社”を記述するとともにタグ名“nonkey_tags”の要素の内容として非キー要素のタグ名“部署”,“住所”および“電話”を記述することにより、キー要素と非キー要素とを区別するための情報が記述されている。また、タグ名“nonkey_tags”の要素の内容には、タグ名“merged_tag”の要素が含まれており、この要素の内容として、非キー要素を一つにまとめるための新たな要素のタグ名(代表タグ名)“情報”が記述されている。このような変換仕様文書により、XML文書のデータ構造変換実行手順が指示される。
【0095】
そして、図2に示すXSLT変換部11が、図9に示す変換仕様文書を読み込み、その変換仕様文書と自動変換スタイルシート(自動変換XSLシート;図示省略)とにより、図10に示す構造変換用スタイルシート(XSLシート)と図11に示す逆変換用スタイルシート(XSLシート)とを生成する。図10に示す構造変換用スタイルシートは、XSLT構造変換部12によって読み込まれ、変換対象のXML文書(入力XML文書)に対しデータ構造変換を施すために用いられる。また、図11に示す逆変換用スタイルシートは、XSLT逆変換部13によって読み込まれ、応用ソフトウエア30により処理されたXML文書(抽出XML文書,変換後XML文書)を元の形式のXML文書(非キー要素を元の状態に戻したXML文書)に復元するために用いられる。
【0096】
上述のように変換対象のXML文書が表形式データである場合、非キー要素のタグ名は、変換/逆変換用スタイルシートによって新要素のタグ名(代表タグ名)と対応付けられるので、変換後のXML文書には現われない。これにより、変換後のXML文書のデータ量を大幅に削減することができる。つまり、変換仕様文書と自動変換スタイルシートとの両方を用意しておくか、もしくは、構造変換/逆変換用スタイルシートを用意しておけば、非キー要素のタグ名は変換後XML文書では基本的に不要になる。上述のようなスタイルシートの用意がない場合は、表形式のXML文書であっても、非表形式として取り扱えば、要素の並びの規則性に基づいて、元のXML文書を復元することは可能である。
【0097】
〔1−6−2〕タグ名短縮変換を行なうための変換仕様文書
図12には、第1実施形態における、タグ名短縮変換を行なうための具体的な変換仕様文書(XML文書)が示されている。この図12に示す変換仕様文書においては、変換対象のXML文書における非キー要素のタグ名“部署”,“住所”,“電話”を変換後のXML文書において例えば図3(C)に示すようにそれぞれ短縮タグ名“A”,“B”,“C”に置き換えるタグ名短縮変換を行なうべく、タグ名“部署”,“住所”,“電話”と短縮タグ名“A”,“B”,“C”との対応付けが記述されている。このとき、図12に示す変換仕様文書においても、図9に示した変換仕様文書と同様の記述がなされているが、図12に示す変換仕様文書では、短縮タグ名が、タグ名“nonkey_tags”の各キー要素のタグ名において“abbr”属性によって対応付けられて記述されている。
【0098】
〔1−6−3〕表形式/非表形式を指定するための変換仕様文書
図13には、第1実施形態における、データ形式(表形式であるか否か)を指定する機能を有する変換仕様文書(XML文書)の具体例が示されている。この図13に示す変換仕様文書においては、変換対象のXML文書(非キー要素)が表形式で記述されているか否かの表形式情報が記述されている。つまり、図13に示す変換仕様文書においても、図9に示した変換仕様文書と同様の記述がなされているが、図13に示す変換仕様文書では、表形式情報が、タグ名“merged_tag”の要素における“format”属性として付加されている。表形式を指定する場合には“format”属性値として例えば“table”を記述する一方、非表形式を指定する場合には“format”属性値として例えば“nontable”を記述する。
【0099】
変換仕様文書の“format”属性値として“table”が記述されていれば、図2に示すXSLT構造変換部12は、表形式に対応した変換処理(タグ名変換を省略し内容変換のみ行なう処理)を実行するとともに、図2に示すXSLT逆変換部13は、表形式に対応した逆変換を実行する。逆に、変換仕様文書の“format”属性値として“nontable”が記述されていれば、図2に示すXSLT構造変換部12は、非表形式に対応した変換処理(タグ名変換および内容変換の両方を行なう処理)を実行するとともに、図2に示すXSLT逆変換部13は、非表形式に対応した逆変換を実行する。
【0100】
従って、エンドユーザは、XMLで記述された変換仕様文書において、“format”属性を用いて変換対象のXML文書が表形式か否かを指定することができ、この“format”属性により、表形式変換を行なうか否か、つまり、表形式変換と非表形式変換とのどちらを行なうかが指示され、表形式変換や表形式逆変換の実行/非実行の自動切換え、つまり、表形式変換/逆変換と非表形式変換/逆変換との自動切換えを行なうことができる。
【0101】
なお、上述のような表形式情報としての“format”属性は、図21(A)および図21(B)を参照しながら後述するごとく、図2に示すXSLT変換部11において表形式データに対応する構造変換/逆変換用スタイルシートと非表形式データに対応する構造変換/逆変換用スタイルシートとのどちらを作成するかを判断する際に参照される。
【0102】
また、一つの変換対象のXML文書に表形式の部分と非表形式の部分とが混在する場合には、例えば図15や図17に示すごとく、タグ名“merged_tag”の各要素における“format”属性によって表形式情報を指定することで、例えば図8に示すごとく、表形式の部分に対しては表形式変換を施すとともに、非表形式の部分に対しては非表形式変換を施すようにすることもできる。
【0103】
〔1−6−4〕短縮変換の実行/非実行を指定するための変換仕様文書
図14には、第1実施形態における、データ形式(タグ名短縮変換を行なうか否か)を指定する機能を有する変換仕様文書(XML文書)の具体例が示されている。この図14に示す変換仕様文書においては、変換時にタグ名短縮変換を行なうか否かのタグ名短縮変換情報が記述されている。つまり、図14に示す変換仕様文書においては、図12に示した変換仕様文書とほぼ同様の記述がなされているが、図14に示す変換仕様文書では、タグ名短縮変換情報が、タグ名“merged_tag”の要素における“format”属性として付加されている。タグ名短縮変換を実行する場合には“format”属性値として例えば“abbr”を記述する。
【0104】
変換仕様文書においてタグ名と短縮タグ名との対応付けがなされるとともに “format”属性値として“abbr”が記述されていれば、図2に示すXSLT構造変換部12は、タグ名短縮変換処理を実行するとともに、図2に示すXSLT逆変換部13は、タグ名伸長変換処理を実行する。
従って、エンドユーザは、XMLで記述された変換仕様文書において、“format”属性を用いてタグ名短縮変換を行なうか否かを指定することができ、この“format”属性により、タグ名短縮変換やタグ名伸長変換の実行/非実行の自動切換えを行なうことができる。
【0105】
〔1−6−5〕階層構造と属性とをもつXML文書のための変換仕様文書図15には、第1実施形態における、レコード内の非キー要素が階層構造を成すとともに属性を有する場合の変換仕様文書(XML文書)の第1具体例が示されている。特に、この図15に示す変換仕様文書は、図5に示したXML文書を変換対象とし、図5に示したXML文書を、図6または図8で説明したXML文書に変換するためのものである。ここでは、要素の階層構造が、属性“depth”を用いて記述されるほか、子を有する親のタグにも属性“depth”を付しておく。
【0106】
この図15に示すような変換仕様文書の作成手順を、図16に示すフローチャート(ステップS1〜S4)に従って説明する。ただし、図16に示す手順は、レコード内の階層数が任意であり且つ非キー要素が任意の属性を有する場合の変換仕様の作成手順である。
まず、ルート(root)およびレコードのタグ名を要素“structure”で指定する(ステップS1)。例えば図5に示すXML文書を変換対象とする場合、ルートのタグ名として“名簿”が指定され、レコードのタグ名として“個人”が指定される。
【0107】
また、レコード内の要素をキー要素と非キー要素との二つのグループに分ける(ステップS2)。図5および図16に示す例では、タグ名“名前”,“姓”,“名”,“勤務先”および“会社”の要素をキー要素とし、タグ名“部署”,“住所”,“連絡先”,“電話”,“Fax”および“Email”の要素を非キー要素としている。
【0108】
そして、キー要素のタグ名をそれぞれ<key_tags>内の<tag>の箇所で指定するとともに(ステップS3)、非キー要素のタグ名をそれぞれ<nonkey_tags>内の<tag>の箇所で指定する(ステップS4)。
ステップS4においては、非キー要素に関する情報が、以下の手順(1)〜(4)に従って変換仕様文書として記述される。
【0109】
手順(1):一つにまとめられた非キー要素を記述する新たな要素のタグ名を<merged_tag>で指定する(図15の“情報1”や“情報2”参照)。
手順(2):一つにまとめるべき非キー要素が表形式データであるか否かを“format”属性で指定する。表形式データの場合、“format”属性値として“table”を記述する一方、非表形式データの場合、“format”属性値として“nontable”を記述する。また、非表形式データの場合であって、タグ名を短縮タグ名に置き換えるタグ名短縮変換を行なう場合も、その旨を“format”属性で指定する。タグ名短縮変換を行なう場合、“format”属性値として“abbr”を記述する。
【0110】
手順(3):タグ名,要素内容,属性,属性内容(属性値)を所定の順序で順に書き出し、CSV形式で繋げる。
手順(4):2階層以上の要素(階層構造を成す要素)は、“depth”属性で深さを指定する(図15の「depth=“0”」や「depth=“1”」参照)。
以上のような手順によって、変換仕様文書が、図15に示すごとく、XMLによって記述されることになる。
【0111】
一方、図17には、第1実施形態における、レコード内の非キー要素が階層構造を成すとともに属性を有する場合の変換仕様文書(XML文書)の第2具体例が示されている。特に、この図17に示す変換仕様文書は、図5に示したXML文書を変換対象とし、図5に示したXML文書を、図7または図8で説明したXML文書に変換するためのものである。ここでは、葉となる要素の階層構造が、属性“path”を用いて記述される。また、“path”属性値は、“XPath”で表現される。
【0112】
このように、図17に示す変換仕様文書では、属性“path”を用いて階層構造を記述する点以外は、図15に示した変換仕様文書と同様であるので、その詳細な説明は省略する。また、図17に示すような変換仕様文書も、図16にて説明した手順と同様の手順によって作成される。
【0113】
なお、前述した通り、図6や図7に示したXML文書は、図15や図17に示す変換仕様文書を用いて変換されたもので、“format”属性値として“nontable”を設定し、変換対象のXML文書が表形式データであるか否かを区別されることなく(つまり非表形式データとして)変換されたものである。これに対し、図8に示したXML文書では、“情報1”の“format”属性値として“nontable”を設定するとともに“情報2”の“format”属性値として“table”を設定し、表形式データの非キー要素に対しては表形式変換が施されるとともに、非表形式データの非キー要素に対しては非表形式変換が施されている。
【0114】
〔1−7〕第1実施形態の変換方法による具体的な変換処理手順
次に、図18〜図21を参照しながら、本発明の第1実施形態としての構造化文書変換方法による変換処理手順について説明する。
図18および図19は、データ構造変換/逆変換処理を、Javaソフトウエアにより、DOMおよびXSLTなどを使用して実行する場合の処理手順を示すものである。なお、Javaは、米国Sun Microsystems社によって開発されたC++類似のオブジェクト指向プログラミング言語である。
【0115】
ここで、図18は、変換仕様文書に基づいて変換対象XML文書に対してデータ構造変換を施す際の処理手順を説明するためのフローチャート(ステップA1〜A16)であり、図19は、変換仕様文書に基づいて変換後XML文書(処理済XML文書)に対してデータ構造の逆変換を施す際の処理手順を説明するためのフローチャート(ステップB1〜B15)である。図18および図19に示す処理手順は、図2に示すようなデータ構造変換/逆変換機構10を用いることなく、変換仕様文書に基づいて、変換対象XML文書や変換後XML文書に対する処理を実行する際の処理手順である。
【0116】
変換対象XML文書に対してデータ構造変換を施す際には、図18に示すように、最初に、プロセッサは、変換仕様文書を読み込んで、その変換仕様文書の記述から変換仕様を解析してから(ステップA1)、変換対象のXML文書を読み込み、データ構造の変換処理を開始する(ステップA2)。
【0117】
まず、変換対象XML文書のルート(root)のタグを変換後XML文書側にコピーしてから(ステップA3)、次のレコードデータを一つ変換対象XML文書から切り出す(ステップA4)。この後、全てのレコードに対して処理を行なったか否かを判断し(ステップA5)、まだ全てのレコードに対する処理を完了していない場合(ステップA5のNOルート)、次のレコードのタグを変換後XML文書側にコピーし(ステップA6)、現在処理中のレコードから次の要素データを切り出す(ステップA7)。
【0118】
ここで次の要素データが切り出された場合には、まだ全ての要素に対する処理を完了していないものと判断し(ステップA8のNOルート)、切り出された要素がキー要素であるか否かを判断する(ステップA9)。キー要素である場合(ステップA9のYESルート)、切り出された要素をそのまま変換後XML文書側にコピーしてから(ステップA10)、ステップA7の処理に戻る。
【0119】
切り出された要素がキー要素でない場合(ステップA9のNOルート)、その要素が非キー要素であるか否かを判断する(ステップA11)。もし非キー要素でない場合(ステップA11のNOルート)、何らかのエラー処理を実行する。一方、非キー要素である場合(ステップA11のYESルート)、変換仕様文書によって予め指定されたタグ名の新要素を作成する(ステップA12)。既に非キー要素に対応する新要素が作成されている場合には、この作成処理は省略される。
【0120】
そして、ステップA12で新要素を作成した場合には、その非キー要素のタグ名を新要素の属性においてタグ名文字列(属性値)として記述する。既に非キー要素に対応する新要素が作成されている場合には、その非キー要素のタグ名を、新要素の属性におけるタグ名文字列の後に、CSV形式でつまり区切り記号を介して繋げる(ステップA13)。
【0121】
また、ステップA12で新要素を作成した場合には、その非キー要素の内容を新要素の内容において内容文字列として記述する。既に非キー要素に対応する新要素が作成されている場合には、その非キー要素の内容を、新要素の要素における内容文字列の後に、CSV形式でつまり区切り記号を介して繋げる(ステップA14)。この後、ステップA7の処理に戻る。なお、ステップA14において、非キー要素の内容中に区切り記号(ここではコンマ“,”)と同じ文字が現われた場合、前述したように、非キー要素の内容中における文字(区切り記号)を、他の識別文字列(例えば実体参照記述等)に置き換える。
【0122】
ステップA7で次の要素データが切り出されなかった場合には、全ての要素に対する処理を完了したものと判断し(ステップA8のYESルート)、現在処理中のレコードの終了タグを出力し変換後XML文書側にコピーしてから(ステップA15)、ステップA4の処理に戻る。また、全てのレコードに対する処理を完了した場合(ステップA5のYESルート)、ルートの終了タグを出力し変換後XML文書側にコピーし(ステップA16)、変換処理を終了する。
【0123】
逆に、変換後XML文書に対してデータ構造の逆変換を施す際には、図19に示すように、最初に、プロセッサは、変換仕様文書を読み込んで、その変換仕様文書の記述から変換仕様を解析してから(ステップB1)、逆変換対象XML文書を読み込み、データ構造の逆変換処理を開始する(ステップB2)。
【0124】
まず、逆変換対象XML文書のルート(root)のタグを復元XML文書側にコピーしてから(ステップB3)、次のレコードデータを一つ逆変換対象XML文書から切り出す(ステップB4)。この後、全てのレコードに対して処理を行なったか否かを判断し(ステップB5)、まだ全てのレコードに対する処理を完了していない場合(ステップB5のNOルート)、そのレコードのタグを復元XML文書側にコピーし(ステップB6)、現在処理中のレコードから次の要素データを切り出す(ステップB7)。
【0125】
ここで次の要素データが切り出された場合には、まだ全ての要素に対する処理を完了していないものと判断し(ステップB8のNOルート)、切り出された要素がキー要素であるか否かを判断する(ステップB9)。キー要素である場合(ステップB9のYESルート)、切り出された要素をそのまま復元XML文書側にコピーしてから(ステップB10)、ステップB7の処理に戻る。
【0126】
切り出された要素がキー要素でない場合(ステップB9のNOルート)、その要素が、非キー要素をまとめた(マージした)ものであるか否かを判断する(ステップB11)。もし非キー要素をまとめたものでない場合(ステップB11のNOルート)、何らかのエラー処理を実行する。
一方、非キー要素をまとめた前記新要素が切り出された場合(ステップB11のYESルート)、その新要素のタグにおいて属性値として記述されたタグ文字列(非キー要素のタグ名をCSV形式で繋いだもの)から、非キー要素のタグ名を順次切り出す(ステップB12)。
【0127】
また、その新要素の内容に記述された内容文字列(非キー要素の内容をCSV形式で繋いだもの)から、非キー要素の内容を順次切り出し、切り出された内容とステップB12で切り出されたタグ名とから、非キー要素を復元してから(ステップB13)、ステップB7の処理に戻る。なお、ステップB13において、新要素における内容文字列から、区切り記号についての識別文字列を含む内容が切り出された場合には、その識別文字列を元の区切り記号に戻す。
【0128】
ステップB7で次の要素データが切り出されなかった場合には、全ての要素に対する処理を完了したものと判断し(ステップB8のYESルート)、現在処理中のレコードの終了タグを出力し復元XML文書側にコピーしてから(ステップB14)、ステップB4の処理に戻る。また、全てのレコードに対する処理を完了した場合(ステップB5のYESルート)、ルートの終了タグを出力し復元XML文書側にコピーし(ステップB15)、逆変換処理を終了する。
【0129】
ところで、図20(A)〜図20(D)は、第1実施形態によるデータ構造変換/逆変換処理をXSLTプロセッサのみで実行する場合の処理手順を示すものである。つまり、図20(A)〜図20(D)に示す処理手順は、図2に示したデータ構造変換/逆変換機構10を用い、変換仕様文書に基づいて、変換対象XML文書や変換後XML文書に対する処理を実行する際の処理手順である。
【0130】
ここで、図20(A)および図20(B)は、それぞれ、第1実施形態における変換用スタイルシートおよび逆変換用スタイルシートの作成手順(XSLT変換部11での処理)を説明するためのフローチャートである。
また、図20(C)は、XSLT構造変換部12が構造変換用スタイルシートに基づいて変換対象XML文書に対してデータ構造変換を施す際の処理手順を説明するためのフローチャートであり、図20(D)は、XSLT逆変換部13が逆変換用スタイルシートに基づいて変換後XML文書(処理済XML文書)に対してデータ構造の逆変換を施す際の処理手順を説明するためのフローチャートである。
【0131】
変換対象XML文書に対する処理を施すのに先立って、まず、図20(A)に示すように、XSLT変換部11は、XMLで記述された変換仕様文書を読み込んで、その変換仕様文書の記述から変換仕様を解析してから(ステップA1)、その変換仕様と自動変換スタイルシートとを用いて、データ構造変換用スタイルシートを作成する(ステップA20)。また、同様に、図20(B)に示すように、XSLT変換部11は、XMLで記述された変換仕様文書を読み込んで、その変換仕様文書の記述から変換仕様を解析してから(ステップB1)、その変換仕様と自動変換スタイルシートとを用いて、データ構造逆変換用スタイルシートを作成する(ステップB20)。
【0132】
そして、変換対象XML文書に対してデータ構造変換を施す際には、図20(C)に示すように、XSLT構造変換部12は、その変換対象XML文書と構造変換用スタイルシートとを指定して、変換処理を開始する(ステップA21)。その後、XSLT構造変換部12は、図18のステップA2〜A16と同様の処理を実行する。
【0133】
逆に、変換後XML文書に対してデータ構造の逆変換を施す際には、図20(D)に示すように、XSLT逆変換部13は、逆変換対象XML文書と逆変換用スタイルシートとを指定して、逆変換処理を開始する(ステップB21)。その後、XSLT逆変換部13は、図19のステップB2〜B15と同様の処理を実行する。
【0134】
ここで、図2に示すように、応用ソフトウエア30は、標準API(DOM)20を通して、XSLT構造変換部12からの、要素数を削減された変換後XML文書に対し、タグ検索等の処理を行なうことになるので、応用ソフトウエア30による処理速度は大幅に高速化される。
【0135】
応用ソフトウエア30が、変換後XML文書に対してタグ検索を行なうものである場合、そのタグ検索によってヒットしたレコードを記述するXML文書(抽出XML文書)が抽出・出力される。この抽出XML文書は、XSLT逆変換部13によって上述のごとく逆変換され、応用ソフトウエア30が元のXML文書に対してタグ検索したのと全く同じ、検索結果(XML文書)が得られることになる。
【0136】
このとき、XSLT逆変換部13が逆変換を施すXML文書は、応用ソフトウエア30によって抽出された少数のレコードを記述されたXML文書であるので、XSLT逆変換部13による逆変換のオーバーヘッドは、ほとんど問題にならない。従って、応用ソフトウエア30で多数回実行される処理は、本実施形態のデータ構造変換を予め施しておくことによって、大幅に高速化されるとともに、動作メモリの使用量も大幅に削減されることになる。
【0137】
なお、図21(A)および図21(B)は、それぞれ、第1実施形態における変換用スタイルシートおよび逆変換用スタイルシートの作成手順(XSLT変換部11での処理)の変形例を説明するためのフローチャートである。これらの図21(A)および図21(B)に示す処理手順は、図13,図15や図17に示す変換仕様文書において“format”属性値(表形式情報)により表形式/非表形式が指定されている場合に、図20(A)や図20(B)で前述した処理手順に代えて、XSLT変換部11において実行されるものである。
【0138】
つまり、変換対象XML文書に対する処理を施すのに先立って、まず、図21(A)に示すように、XSLT変換部11は、XMLで記述された変換仕様文書を読み込んで、その変換仕様文書の記述から変換仕様を解析してから(ステップA1)、“format”属性値を参照してデータ(変換対象XML文書)が表形式か否かを判断する(ステップA22)。
【0139】
データが表形式である場合(ステップA22のYESルート)、XSLT変換部11は、変換仕様と自動変換スタイルシートとを用いて、非キー要素のタグ名を新要素のタグ名で代表させる構造変換用スタイルシートを作成する(ステップA20−1)。一方、非表形式の場合(ステップA22のNOルート)、XSLT変換部11は、変換仕様と自動変換スタイルシートとを用いて、区切り記号を介して非キー要素のタグ名(もしくは短縮タグ名)を繋いだタグ名文字列を変換後XML文書中に記述させる構造変換用スタイルシートを作成する(ステップA20−2)。
【0140】
また、図21(B)に示すように、XSLT変換部11は、XMLで記述された変換仕様文書を読み込んで、その変換仕様文書の記述から変換仕様を解析してから(ステップB1)、“format”属性値を参照してデータ(変換対象XML文書)が表形式か否かを判断する(ステップB22)。
【0141】
データが表形式である場合(ステップB22のYESルート)、XSLT変換部11は、変換仕様と自動変換スタイルシートとを用いて、新要素のタグ名から非キー要素のタグ名を割り出せるようにした逆変換用スタイルシートを作成する(ステップB20−1)。一方、非表形式の場合(ステップB22のNOルート)、XSLT変換部11は、変換仕様と自動変換スタイルシートとを用いて、タグ名文字列から非キー要素のタグ名を復元させる構造変換用スタイルシートを作成する(ステップA20−2)。
【0142】
〔1−8〕第1実施形態の効果
このように、本発明の第1実施形態としての構造化文書変換方法によれば、変換対象のXML文書を成す要素がキー要素と非キー要素とに分けられ、その変換対象の構造化文書が、キー要素をそのまま記述する一方で非キー要素(データ処理の対象とならない項目)を一つのタグにまとめて記述したXML文書に変換されるので、変換後のXML文書では、要素数が大幅に削減されるとともに、DOMツリーへの展開時や、タグ検索等のデータ処理時に、非キー要素を一括して扱うことができる。
【0143】
特に、データ処理の対象とならない非キー要素が多いXML文書や、1レコードの要素数が多いXML文書での要素数の削減効果は大きく、例えば要素数が半分になれば、DOMツリーへの展開およびタグ検索に要する時間は半分に短縮することができる。また、変換対象のXML文書が表形式データである場合には、そのXML文書を図4(B)や図4(C)にて説明したように変換することで、非キー要素のタグ名を変換後のXML文書に記述する必要がなくなるので、変換後のXML文書のデータ量を、変換前のXML文書のデータ量の約3分の1まで削減することができる場合がある。
【0144】
また、応用ソフトウエア(アプリケーション)30によりXML文書に対するデータ処理を行なう際にはキー要素のみが使用されるが、第1実施形態では、キー要素についてはそのまま記述されているので、通常通り、キー要素のタグ名を用いてキー要素の内容を参照することができ、変換後のEML文書のトランスペアレント性は確保される。
【0145】
このとき、変換仕様文書をXML文書として作成し変換実行手順を与えることにより、多様な種類のXML文書に対して、スタイルシートを一々作成する必要がなくなり、手間をかけることなく、第1実施形態によるデータ構造の変換/逆変換処理を種々のXML文書データに施すことができる。さらに、変換仕様文書に基づいて変換/逆変換を指示する変換/逆変換用スタイルシートを生成すれば、標準のXSLTプロセッサにより変換/逆変換用スタイルシートを用いて変換/逆変換を実行することができ、つまりは、ほとんどあらゆる種類のXMLシステムにおいて第1実施形態による変換/逆変換処理を実行することができる。
【0146】
従って、第1実施形態の変換方法によれば、アプリケーションに対するトランスペアレント性や変換されたXML文書のデータ構造の有効性を確保しながら、非キー要素を一つの要素にまとめるデータ構造変換処理を、種々のXML文書データに施すことができるようにした汎用の変換技術を提供することができ、これにより、XML文書に対する操作に必要となるリソースが大幅に軽減され、XML文書を処理する際におけるメモリ使用量削減と処理速度の高速化との両方が実現されることになる。
【0147】
また、EDIのデータにおいては1レコード当たり数百〜千の項目(要素)があり、項目数が多過ぎるため、DOMツリーへの展開に向かない。また、文書要素を切り出して時系列的に流すだけの標準API(SAX: Simple API for XML)が用いられているため、複雑な文書操作が難しくなっている。しかし、項目数の多いデータであっても、データ処理の対象となる項目(キー要素)の数は必ずしも多くないので、第1実施形態の変換方法によりXML文書を変換することは極めて効果的である。
【0148】
タグ名変換や内容変換に際しては、図3〜図8に示すように、コンマ等の区切り記号を介して(CSV形式で)非キー要素のタグ名や内容を繋ぐことにより、タグ名文字列や内容文字列が、タグ付けに関連することのない記号を用いて極めて容易に作成される。
このとき、非キー要素が複数階層を成している場合、図6や図7に示すように、タグ名文字列におけるタグ名に、階層構造識別情報を付加すれば、その階層構造を変換後のXML文書に保存することができるので、その階層構造識別情報に従って、元のXML文書を復元するための逆変換を容易に行なうことができる。
【0149】
また、非キー要素が属性を有する場合、図6〜図8に示すように、タグ名文字列において、属性を有するタグ名の後に、区切り記号を介して、属性名識別情報(図6〜図8では“@”)を付加した属性の属性名を記述するとともに、このタグ名文字列におけるタグ名の並びに対応させて非キー要素の内容を繋いだ内容文字列を作成することにより、非キー要素の属性を変換後のXML文書に保存することができるので、その属性名識別情報に従って、元のXML文書を復元するための逆変換を容易に行なうことができる。
【0150】
さらに、図3(C)や図3(F)に示すように、非キー要素のタグ名を短縮タグ名に置換するタグ名短縮変換を行なうことにより、変換後の構造化文書のデータ量を削減することができる。このとき、図14に示すように変換仕様文書におけるタグ名短縮変換情報(“format”属性値の“abbr”)によってタグ名短縮変換を行なうか否かを指示し、タグ名短縮変換やタグ名伸長変換の実行/非実行を自動的に切り換えることができる。
【0151】
変換対象のXML文書が表形式で記述されている場合、前述した通り、元のXML文書を復元するための逆変換に際してタグ名や属性名を容易に割り出すことができるので、タグ名変換や属性名変換を省略することができる。従って、変換後のXML文書においては、非キー要素の内容文字列が記述されていればよく、タグ名や属性名に係る記述を省略することができ、変換後のXML文書のデータ量を大幅に削減することができる。このとき、図13,図15や図17に示すように変換仕様文書における表形式情報(“format”属性値の“table/nontable”)によって表形式変換を行なうか否かを指示し、表形式変換や表形式逆変換の実行/非実行を自動的に切り換えることができる。
【0152】
〔2〕第2実施形態の説明
〔2−1〕第2実施形態の構造化文書変換方法の原理
図1(A),図3(A)および図22を参照しながら、本発明の第2実施形態としての構造化文書変換方法の原理について説明する。
図1(A)および図3(A)により前述したXML文書において、タグ名“名前”,“会社”の要素をキー要素とするとともにタグ名“部署”,“住所”,“電話”の要素を非キー要素とし、このXML文書に対し、第2実施形態の構造化文書変換方法を適用して得られた変換後XML文書のメモリ展開形式を図22に示す。なお、ここで示す展開形式は、応用ソフトウエアが標準API(DOM)を介して変換後XML文書を操作するときの、メモリ上への展開形式である。
【0153】
この図22に示すXML文書では、タグ名“情報”を有する新たな要素が作成され、この新たな要素の内容として、タグ名“部署”,“住所”,“電話”の非キー要素が記述されている。ただし、非キー要素を新たな要素の内容として記述する際に、非キー要素記述におけるタグ記号“<”および“>”を実体参照記述に置き換えている。また、タグ名“名前”,“会社”のキー要素については、元のまま記述されている。なお、図22において、新要素“情報”の要素内容は、先頭の一部のみ記述されている。
【0154】
このようにしてレコード毎に非キー要素を一つの要素にまとめるようにXML文書を変換することによって、XML文書中に含まれる要素の数、つまりメモリ上に展開されたツリーの子要素の数を大幅に減らすことができ、展開時やデータ処理時に非キー要素を一括して扱うことができる。
【0155】
ここで、レコード毎に非キー要素を一つの要素にまとめる際、第2実施形態では、非キー要素の記述中においてタグ付けに関連する記号をタグ付けに関連しない文字列に置き換えた文字列を作成し、この文字列を、新たな要素の内容(図22や図23参照)もしくは新たな要素の属性値(図24参照)もしくは親要素の属性値(図25参照)もしくは親要素の内容(図26参照)として記述する。なお、第2実施形態の変換方法の原理を説明するための図22では、上記文字列を新たな要素の内容として記述した場合の変換後XML文書のDOMツリーが示されている。
【0156】
特に、第2実施形態では、非キー要素におけるタグ付けに関連する記号(タグ記号「<」および「>」)を、「実体参照」と呼ばれる記述手法で、タグ付けに関連しない他の文字列に置き換えている。
実体(entity)とは、ファイルや置換文字列のように、何らかの形でXML文書の一部となりうるデータを格納しているものをいう。「実体参照」を行なう場合には、XML実現値の中で「&実体名;」という記述がなされる。
【0157】
通常、文書型定義(DTD:Document Type Definition)において、実体名と元のファイル名や文字列との対応関係が宣言される。しかし、下記表1に示す、タグ付けに関連する5つの実体<,>,&,’,”は、DTDなしでも使用できるようになっている。例えば、要素内容中に実体(置換したい文字)「<」が記述されていた場合、「<」は実体名「lt」を用いた実体参照記述による文字列「<」に置き換えられる。同様に、「>」は「>」に、「&」は「&」に、「'」は「'」に、「"」は「"」に置き換えられる。
【0158】
【表1】
【0159】
このような実体参照記述を用いて、要素内容中のタグを表わす記号「<」および「>」をそれぞれ実体参照文字列「<」および「>」に置き換えることにより、要素内容中に記述されていたタグ記号は、パーサー(構文解析ソフトウエア)でタグとして処理されなくなる。従って、非キー要素を一つの要素にまとめる際に、タグ記号を実体参照文字列に置換した一連の非キー要素を、例えば<情報></情報>というタグで囲い、タグ名“情報”の新要素の内容とすれば、その一連の非キー要素は、単なる要素内容として扱われることになる。このような変換方法を整理して記述すると、以下のようになる。
【0160】
(1)一連の非鍵要素を抽出する。
第1レコード:<部署>A部</部署><住所>A市</住所><電話>123</電話>
第2レコード:<部署>B部</部署><電話>456</電話><電話>789</電話>
【0161】
(2)タグ記号を実体参照文字列に置換する。
「<」を「<」に、「>」を「>」に置換
第1レコード:<部署>A部</部署><住所>A市</住所><電話>123</電話>
第2レコード:<部署>B部</部署><電話>456</電話><電話>789</電話>
【0162】
(3)レコード毎に、<情報></情報>というタグで、実体参照を適用された一連の非キー要素を囲むことにより、一連の非キー要素を1つの要素の内容としてまとめる。
第1レコード:<情報><部署>A部</部署><住所>A市</住所><電話>123</電話></情報>
第2レコード:<情報><部署>B部</部署><電話>456</電話><電話>789</電話></情報>
【0163】
〔2−2〕第2実施形態のシステムおよび変換/逆変換処理の流れ
本発明の第2実施形態としての構造化文書変換方法も、図2で説明したシステムに適用される。
多様な種類のXML文書に対して、各XML文書に応じたスタイルシート(XSLシート)を一々作成するのは極めて面倒で手間がかかる。そこで、その手間を省くため、第2実施形態でも、図27を参照しながら後述するごとく、XML文書のデータ構造を変換するための仕様(レコード名,キータグ名,非キータグ名等)をXML文書(変換仕様文書)によって作成して変換実行手順を与え、図31〜図38を参照しながら後述するごとく、その変換仕様文書に基づいてXML文書の変換/逆変換を実行する。
【0164】
さらに、第2実施形態でも、図39(A)〜図39(D)を参照しながら後述するごとく、与えられた変換仕様文書に基づいて、変換実行手順を指示する変換用スタイルシートや、逆変換実行手順を指示する逆変換用スタイルシートを自動的に生成し、このスタイルシートを用いて、構造化文書変換プロセッサ(XSLTプロセッサ)に、XML文書に対するデータ構造変換/逆変換を実行させている。このように変換/逆変換の実行手順をスタイルシートで与えるようにすれば、標準のXSLTプロセッサで変換/逆変換を実行することができるので、ほとんどあらゆる種類のXML文書システムにおいて第2実施形態による変換/逆変換処理を実行することができる。
【0165】
図2に示すシステムに第2実施形態の変換方法を適用した場合も、データ構造変換/逆変換機構(XSLTプロセッサ)10は、XML文書による変換仕様文書を読み込むとともに、処理対象の入力XML文書を読み込み、変換仕様(実際には構造変換用スタイルシート)に基づいて入力XML文書を変換し、所定のデータ構造変換を施したXML文書を出力する。そして、変換されたXML文書に対しては、標準API20を介して応用ソフトウエアによりデータ処理(例えばタグ検索)が施され、データ処理後のXML文書が得られる。なお、データ処理としてタグ検索を行なった場合、検索結果が抽出XML文書の形で得られる。この抽出XML文書は、データ構造変換/逆変換機構10に読み込まれ、変換仕様(実際には逆変換用スタイルシート)に基づいて元のデータ構造のXML文書に逆変換され、最終的なデータ処理結果としてのXML文書が得られる。
【0166】
なお、第2実施形態において、XSLT変換部11に読み込まれるデータ構造変換用の仕様XML文書については、図27を参照しながら後述する。また、XSLT変換部11によって生成される構造変換用スタイルシートおよび逆変換用スタイルシートについては、それぞれ図28および図29を参照しながら後述する。
【0167】
〔2−3〕第2実施形態におけるXML文書の変換方法および具体的な変換例
図23〜図26においては、それぞれ、図4(A)に示した表形式XML文書に、第2実施形態の構造化文書変換方法を適用して得られた変換結果の第1〜第4具体例が示されている。ここでも、タグ名“名前”,“会社”の要素をキー要素とし、タグ名“部署”,“住所”,“電話”の要素を非キー要素とする。
【0168】
図23に示す第1具体例では、変換対象のXML文書を成す要素をキー要素と非キー要素とに分け、タグ名“情報”を付与された新たな要素を作成し、非キー要素の記述中においてタグ記号「<」,「>」をそれぞれ実体参照記述による文字列「<」,「>」に置き換えた文字列を作成し、この文字列を新たな要素の内容として記述する。キー要素については、変換後のXML文書においても、何の変換も施すことなくそのまま記述する。このとき、キー要素と非キー要素とを区別するための情報や、新たな要素に関する情報(タグ名“情報”)は、変換仕様文書に記述されて指定され、この変換仕様文書に基づいて、変換対象のXML文書に対するデータ構造変換が施されるとともに、その変換を施されたXML文書に対し、非キー要素の記述を元の状態に戻す逆変換が施される。
【0169】
図24に示す第2具体例では、変換対象のXML文書を成す要素をキー要素と非キー要素とに分け、タグ名“情報”および属性名“contents”を付与された新たな要素(空要素)を作成し、非キー要素の記述中においてタグ記号「<」,「>」をそれぞれ実体参照記述による文字列「<」,「>」に置き換えた文字列を作成し、この文字列を新たな要素の属性名“contents”に対応する属性値として記述する。キー要素については、変換後のXML文書においても、何の変換も施すことなくそのまま記述する。このとき、キー要素と非キー要素とを区別するための情報や、新たな要素に関する情報(タグ名“情報”および属性名“contents”)は、変換仕様文書に記述されて指定され、この変換仕様文書に基づいて、変換対象のXML文書に対するデータ構造変換や、変換後XML文書に対する逆変換が施される。
【0170】
図25に示す第3具体例では、変換対象のXML文書を成す要素をキー要素と非キー要素とに分け、非キー要素の親要素(タグ名“個人”)に新たな属性名“contents”を付与し、非キー要素の記述中においてタグ記号「<」,「>」をそれぞれ実体参照記述による文字列「<」,「>」に置き換えた文字列を作成し、この文字列を親要素の属性名“contents”に対応する属性値として記述する。キー要素については、変換後のXML文書においても、何の変換も施すことなくそのまま記述する。このとき、キー要素と非キー要素とを区別するための情報や、親要素に関する情報(タグ名“個人”や属性名“contents”)は、変換仕様文書に記述されて指定され、この変換仕様文書に基づいて、変換対象のXML文書に対するデータ構造変換や、変換後XML文書に対する逆変換が施される。
【0171】
図26に示す第4具体例では、変換対象のXML文書を成す要素をキー要素と非キー要素とに分け、非キー要素の記述中においてタグ記号「<」,「>」をそれぞれ実体参照記述による文字列「<」,「>」に置き換えた文字列を作成し、この文字列を親要素(タグ名“個人”)の内容として記述する。キー要素については、変換後のXML文書においても、何の変換も施すことなくそのまま記述する。このとき、キー要素と非キー要素とを区別するための情報や、親要素に関する情報(タグ名“個人”)は、変換仕様文書に記述されて指定され、この変換仕様文書に基づいて、変換対象のXML文書に対するデータ構造変換や、変換後XML文書に対する逆変換が施される。
【0172】
このように、第2実施形態の変換方法も、第1実施形態と同様、複数の非キー要素を一つの要素にまとめ、応用ソフトウエアがデータ処理を実行している間は非キー要素をデータ処理と無関係な要素として一括して扱えるようにするものである。変換方法として、図23〜図26で説明した各種方法のうちのどれを用いるかは、自動変換スタイルシート等により選択・指定することができるようになっている。このとき、これら各種方法のうちのどれを用いるかは、XML文書のデータ量によって、あるいは、データ処理に伴い新たな要素が幾つ増えるかによって決定されることになるが、非キー要素をひとまとめにして取り扱うという本発明の本質を考えれば、どの方法を採用してもよい。
【0173】
〔2−4〕第2実施形態の変換仕様文書およびスタイルシートの具体例
図27には、図4(A)に示した表形式XML文書を変換対象とした場合の、具体的な変換仕様文書(XML文書)が示されている。ここでは、変換対象のXML文書が表形式データである場合について説明しているが、変換対象のXML文書が非表形式データであっても、図27に示す変換仕様文書を用いて変換/逆変換を行なうことができる。また、図27に示す変換仕様文書は、図23で説明した変換方法を実現するためのものである。
【0174】
この図27に示す変換仕様文書では、ルートのタグ名“名簿”やレコードのタグ名“個人”が記述されるほか、タグ名“key”の要素の内容としてキー要素のタグ名“名前”および“会社”を記述するとともにタグ名“nonkey”の要素の内容として非キー要素のタグ名“部署”,“住所”および“電話”を記述することによりキー要素と非キー要素とを区別するための情報が記述されている。また、タグ名“nonkey”の要素の内容には、タグ名“merged_item”の要素が含まれており、この要素の内容として、非キー要素を一つにまとめるための新たな要素のタグ名 “情報”が記述されている。このような変換仕様文書により、XML文書のデータ構造変換実行手順が指示される。
【0175】
そして、図2に示すXSLT変換部11が、図27に示す変換仕様文書を読み込み、その変換仕様文書と自動変換スタイルシート(自動変換XSLシート;図示省略)とにより、図28に示す構造変換用スタイルシート(XSLシート)と図29に示す逆変換用スタイルシート(XSLシート)とを生成する。図28に示す構造変換用スタイルシートは、XSLT構造変換部12によって読み込まれ、変換対象のXML文書(入力XML文書)に対しデータ構造変換を施すために用いられる。また、図29に示す逆変換用スタイルシートは、XSLT逆変換部13によって読み込まれ、応用ソフトウエア30により処理されたXML文書(抽出XML文書,変換後XML文書)を元の形式のXML文書(非キー要素を元の状態に戻したXML文書)に復元するために用いられる。
【0176】
ここまで、各レコードにおける非キー要素が、単一階層であり且つ属性をもたない場合について説明してきたが、第2実施形態の変換方法も、非キー要素が複数階層を成す場合(階層が深くなった場合)や属性を有する場合にも、上述した原理を拡張することによって適用される。つまり、階層毎に、非キー要素のタグに関わる記号を実体参照記述による文字列に置き換え、その置換結果を要素内容とする新しい要素を同じ階層に設けるか、その置換結果を属性値とする新しい要素を同じ階層に設けるか、その置換結果を親要素の要素内容もしくは新しい属性の属性値として記述すればい。
【0177】
なお、図30は、第2実施形態において、レコード内の非キー要素が階層構造を成すとともに属性を有する場合の変換仕様文書を作成する手順を説明するためのフローチャート(ステップS1,S2,S5およびS6)である。ただし、図30に示す手順は、レコード内の階層数が任意であり且つ非キー要素が任意の属性を有する場合の変換仕様の作成手順である。また、図30に示す手法で作成される変換仕様文書は、図23で説明した変換方法を実現するためのものである。
【0178】
レコード内の非キー要素が階層構造を成すとともに属性を有する場合の変換仕様文書を作成する際には、図30に示すように、まず、ルート(root)およびレコードのタグ名を要素“structure”で指定する(ステップS1)。また、レコード内の要素をキー要素と非キー要素との二つのグループに分ける(ステップS2)。そして、キー要素のタグ名をそれぞれ<key>内の<item>の箇所で指定するとともに(ステップS5)、非キー要素のタグ名をそれぞれ<nonkey>内の<item>の箇所で指定する(ステップS6)。
【0179】
ステップS6においては、非キー要素に関する情報が、以下の手順(1),(2)に従って変換仕様文書として記述される。
手順(1):一つにまとめられた非キー要素を記述する新たな要素のタグ名を<merged_item>で指定する。
手順(2):非キー要素のタグ名を<item>の後に記述する。
【0180】
〔2−5〕第2実施形態の変換方法による具体的な変換処理手順
次に、図31〜図39を参照しながら、本発明の第2実施形態としての構造化文書変換方法による変換処理手順について説明する。
図31〜図38は、図18や図19により説明した手順と同様、データ構造変換/逆変換処理を、Javaソフトウエアにより、DOMおよびXSLTなどを使用して実行する場合の処理手順を示すものである。なお、図31〜図38において図18および図19と同じステップ番号を付されたステップは、図18および図19で説明した処理と同一もしくはほぼ同一の処理を実行するものであるので、その説明は省略する。つまり、以下の説明では、ステップ番号A1〜A11,A15,A16およびB1〜B11,B14,B15を付されたステップにおける処理の説明は省略する。また、図31〜図38に示す処理手順は、図2に示すようなデータ構造変換/逆変換機構10を用いることなく、変換仕様文書に基づいて、変換対象XML文書や変換後XML文書に対する処理を実行する際の処理手順である。
【0181】
〔2−5−1〕変換/逆変換処理手順の第1例
図31は、変換仕様文書に基づいて変換対象XML文書に対してデータ構造変換を施す際の処理手順の第1例を説明するためのフローチャートであり、図32は、変換仕様文書に基づいて変換後XML文書(処理済XML文書)に対してデータ構造の逆変換を施す際の処理手順の第1例を説明するためのフローチャートである。ここで説明する第1例は、図23で説明した変換方法に対応するものである。
【0182】
図31に示す変換処理手順の第1例では、ステップA7で切り出された要素データが非キー要素である場合(ステップA11のYESルート)、変換仕様文書によって予め指定されたタグ名“情報”の新要素(<情報>タグ)を作成する(ステップA31)。既に非キー要素に対応する新要素が作成されている場合には、この作成処理は省略される。
【0183】
また、その非キー要素の記述中におけるタグ記号「<」,「>」をそれぞれ実体参照記述による文字列「<」,「>」に置き換える(ステップA32)。なお、このステップA32において、非キー要素の内容中に、タグ付けに関連する記号(表1参照)と同じ文字が現われた場合、その文字を、実体参照記述による文字列に置き換える。
【0184】
そして、ステップA31で新要素を作成した場合には、ステップA32での置換結果文字列を新要素の内容として記述する。既に非キー要素に対応する新要素が作成されている場合には、ステップA32での置換結果文字列を、新要素の内容における置換結果文字列の後に繋げて記述する(ステップA33)。この後、ステップA7の処理に戻る。
【0185】
一方、図32に示す逆変換処理手順の第1例では、非キー要素をまとめた新要素(<情報>タグ)がステップB7で切り出された場合(ステップB11のYESルート)、その新要素の内容の記述中における文字列「<」,「>」を元のタグ記号「<」,「>」に復元する(ステップB31)。なお、このステップB31において、新要素における内容に、実体参照記述による他の文字列が含まれている場合には、その文字列を、タグ付けに関連する元の記号(表1参照)に復元する。そして、復元XML文書において、非キー要素をまとめた要素(<情報>タグ)の記述を削除してから(ステップB32)、ステップB7の処理に戻る。
【0186】
〔2−5−2〕変換/逆変換処理手順の第2例
図33は、変換仕様文書に基づいて変換対象XML文書に対してデータ構造変換を施す際の処理手順の第2例を説明するためのフローチャートであり、図34は、変換仕様文書に基づいて変換後XML文書(処理済XML文書)に対してデータ構造の逆変換を施す際の処理手順の第2例を説明するためのフローチャートである。ここで説明する第2例は、図24で説明した変換方法に対応するものである。
【0187】
図33に示す変換処理手順の第2例では、ステップA7で切り出された要素データが非キー要素である場合(ステップA11のYESルート)、タグ名“情報”および属性名“contents”を付与された新要素(<情報>タグ)を作成する(ステップA34)。既に非キー要素に対応する新要素が作成されている場合には、この作成処理は省略される。
【0188】
また、その非キー要素の記述中におけるタグ記号「<」,「>」をそれぞれ実体参照記述による文字列「<」,「>」に置き換える(ステップA35)。なお、このステップA35において、非キー要素の内容中に、タグ付けに関連する記号(表1参照)と同じ文字が現われた場合、その文字を、実体参照記述による文字列に置き換える。
【0189】
そして、ステップA34で新要素を作成した場合には、ステップA35での置換結果文字列を新要素の“contents”属性値として記述する。既に非キー要素に対応する新要素が作成されている場合には、ステップA35での置換結果文字列を、新要素の“contents”属性値における置換結果文字列の後に繋げて記述する(ステップA36)。この後、ステップA7の処理に戻る。
【0190】
一方、図34に示す逆変換処理手順の第2例では、非キー要素をまとめた新要素(<情報>タグ)がステップB7で切り出された場合(ステップB11のYESルート)、その新要素の“contents”属性値の記述中における文字列「<」,「>」を元のタグ記号「<」,「>」に復元する(ステップB33)。なお、このステップB33において、新要素における“contents”属性値に、実体参照記述による他の文字列が含まれている場合には、その文字列を、タグ付けに関連する元の記号(表1参照)に復元する。
【0191】
そして、復元XML文書において、非キー要素をまとめた要素(<情報>タグ)の記述を削除するとともに、この要素(<情報>タグ)の“contents”属性値(ステップB33で復元された結果)を、キー要素の隣に要素内容として挿入する(ステップB34)。この後、ステップB7の処理に戻る。
【0192】
〔2−5−3〕変換/逆変換処理手順の第3例
図35は、変換仕様文書に基づいて変換対象XML文書に対してデータ構造変換を施す際の処理手順の第3例を説明するためのフローチャートであり、図36は、変換仕様文書に基づいて変換後XML文書(処理済XML文書)に対してデータ構造の逆変換を施す際の処理手順の第3例を説明するためのフローチャートである。ここで説明する第3例は、図25で説明した変換方法に対応するものである。
【0193】
図35に示す変換処理手順の第3例では、ステップA7で切り出された要素データが非キー要素である場合(ステップA11のYESルート)、親要素(<個人>タグ)に属性名“contents”の新たな属性を設定する(ステップA37)。既に新属性が設定されている場合には、この作成処理は省略される。
【0194】
また、その非キー要素の記述中におけるタグ記号「<」,「>」をそれぞれ実体参照記述による文字列「<」,「>」に置き換える(ステップA38)。なお、このステップA38において、非キー要素の内容中に、タグ付けに関連する記号(表1参照)と同じ文字が現われた場合、その文字を、実体参照記述による文字列に置き換える。
【0195】
そして、ステップA37で新属性を設定した場合には、ステップA38での置換結果文字列を親要素の“contents”属性値として記述する。既に非キー要素に対応する新属性が設定されている場合には、ステップA37での置換結果文字列を、親要素の“contents”属性値における置換結果文字列の後に繋げて記述する(ステップA39)。この後、ステップA7の処理に戻る。
【0196】
一方、図36に示す逆変換処理手順の第3例では、前述したステップB9およびB11による処理に代えてステップB9´による処理が実行されている。このステップB9´においては、ステップB7で切り出された要素が、非キー要素を“contents”属性値としてまとめたマージ親要素(ここでは“contents”属性値を有する<個人>タグ)であるか否かを判断する。
【0197】
マージ親要素でない場合(ステップB9´のNOルート)、前述したステップB10の処理へ移行する一方、マージ親要素である場合(ステップB9´のYESルート)、その親要素の“contents”属性値の記述中における文字列「<」,「>」を元のタグ記号「<」,「>」に復元する(ステップB35)。なお、このステップB35において、親要素における“contents”属性値に、実体参照記述による他の文字列が含まれている場合には、その文字列を、タグ付けに関連する元の記号(表1参照)に復元する。
【0198】
そして、復元XML文書において、親要素において非キー要素向けに設定された属性の記述を削除するとともに、その属性の“contents”属性値(ステップS35で復元された結果)を、元々の子要素の記述の隣に要素内容として挿入する(ステップB36)。この後、ステップB7の処理に戻る。
【0199】
〔2−5−4〕変換/逆変換処理手順の第4例
図37は、変換仕様文書に基づいて変換対象XML文書に対してデータ構造変換を施す際の処理手順の第4例を説明するためのフローチャートであり、図38は、変換仕様文書に基づいて変換後XML文書(処理済XML文書)に対してデータ構造の逆変換を施す際の処理手順の第4例を説明するためのフローチャートである。ここで説明する第4例は、図26で説明した変換方法に対応するものである。
【0200】
図37に示す変換処理手順の第4例では、ステップA7で切り出された要素データが非キー要素である場合(ステップA11のYESルート)、その非キー要素の記述中におけるタグ記号「<」,「>」をそれぞれ実体参照記述による文字列「<」,「>」に置き換える(ステップA40)。なお、このステップA40において、非キー要素の内容中に、タグ付けに関連する記号(表1参照)と同じ文字が現われた場合、その文字を、実体参照記述による文字列に置き換える。そして、ステップA40での置換結果文字列を、非キー要素の親要素(<個人>タグ)の内容として記述する(ステップA41)。この後、ステップA7の処理に戻る。
【0201】
一方、図38に示す逆変換処理手順の第4例では、前述したステップB9´による処理に代えてステップB9″による処理が実行されている。このステップB9″においては、ステップB7で切り出された要素が、非キー要素を要素内容としてまとめたマージ親要素であるか否かを判断する。
【0202】
マージ親要素でない場合(ステップB9″のNOルート)、前述したステップB10の処理へ移行する一方、マージ親要素である場合(ステップB9″のYESルート)、その親要素の要素内容の記述中における文字列「<」,「>」を元のタグ記号「<」,「>」に復元する(ステップB37)。なお、このステップB37において、親要素における要素内容に、実体参照記述による他の文字列が含まれている場合には、その文字列を、タグ付けに関連する元の記号(表1参照)に復元する。そして、復元XML文書において、ステップB37で復元された結果を、元々の子要素の記述の隣に要素内容として挿入してから(ステップB38)、ステップB7の処理に戻る。
【0203】
〔2−5−5〕変換/逆変換処理手順の第5例
ところで、図39(A)〜図39(D)は、第2実施形態によるデータ構造変換/逆変換処理をXSLTプロセッサのみで実行する場合の処理手順を示すものである。つまり、図39(A)〜図39(D)に示す処理手順は、図2に示したデータ構造変換/逆変換機構10を用い、変換仕様文書に基づいて、変換対象XML文書や変換後XML文書に対する処理を実行する際の処理手順である。
【0204】
ここで、図39(A)および図39(B)は、それぞれ、第2実施形態における変換用スタイルシートおよび逆変換用スタイルシートの作成手順(XSLT変換部11での処理)を説明するためのフローチャートである。
また、図39(C)は、第2実施形態において、XSLT構造変換部12が構造変換用スタイルシートに基づいて変換対象XML文書に対してデータ構造変換を施す際の処理手順(変換処理手順の第5例)を説明するためのフローチャートであり、図39(D)は、第2実施形態において、XSLT逆変換部13が逆変換用スタイルシートに基づいて変換後XML文書(処理済XML文書)に対してデータ構造の逆変換を施す際の処理手順(逆変換処理手順の第5例)を説明するためのフローチャートである。
【0205】
変換対象XML文書に対する処理を施すのに先立って、まず、図39(A)に示すように、XSLT変換部11は、XMLで記述された変換仕様文書を読み込んで、その変換仕様文書の記述から変換仕様を解析してから(ステップA1)、その変換仕様と自動変換スタイルシートとを用いて、データ構造変換用スタイルシートを作成する(ステップA20)。また、同様に、図39(B)に示すように、XSLT変換部11は、XMLで記述された変換仕様文書を読み込んで、その変換仕様文書の記述から変換仕様を解析してから(ステップB1)、その変換仕様と自動変換スタイルシートとを用いて、データ構造逆変換用スタイルシートを作成する(ステップB20)。なお、図39(A)および図39(B)により説明した処理手順は、第1実施形態において図20(A)および図20(B)により説明した処理手順と同様である。
【0206】
そして、変換対象XML文書に対してデータ構造変換を施す際には、図39(C)に示すように、XSLT構造変換部12は、その変換対象XML文書と構造変換用スタイルシートとを指定して、変換処理を開始する(ステップA21)。その後、XSLT構造変換部12は、4種類の変換方法(それぞれ図23〜図26により説明した変換方法)から選択された方法に応じて、図31,図33,図35もしくは図37のステップA2以降の処理と同様の処理を実行する。
【0207】
逆に、変換後XML文書に対してデータ構造の逆変換を施す際には、図39(D)に示すように、XSLT逆変換部13は、逆変換対象XML文書と逆変換用スタイルシートとを指定して、逆変換処理を開始する(ステップB21)。その後、XSLT逆変換部13は、4種類の変換方法(それぞれ図23〜図26により説明した変換方法)から選択された方法に応じて、図32,図34,図36もしくは図38のステップB2以降の処理と同様の処理を実行する。
【0208】
このようにして、第2実施形態においても、図2に示すように、応用ソフトウエア30は、標準API(DOM)20を通して、XSLT構造変換部12からの、要素数を削減された変換後XML文書に対し、タグ検索等の処理を行なうことになるので、第1実施形態と同様、応用ソフトウエア30による処理速度は大幅に高速化される。
【0209】
〔2−6〕第2実施形態の効果
このように、本発明の第2実施形態としての構造化文書変換方法によれば、変換対象のXML文書を成す要素がキー要素と非キー要素とに分けられ、その変換対象のXML文書が、キー要素をそのまま記述する一方で、非キー要素を一つのタグにまとめその非キー要素の記述中のタグ記号をタグ付けに関連しない文字列に置き換えたXML文書に変換されるので、第1実施形態の構造化文書変換方法と同様の効果ないし利点を得ることができる。このとき、タグ記号「<」および「>」をそれぞれ実体参照記述による文字列「<;」および「>;」に置き換えることにより、極めて容易にXML文書の変換を行なうことができる。
【0210】
〔3〕第3実施形態の説明
〔3−1〕第3実施形態の構造化文書変換方法の原理
図1(A),図3(A)および図40を参照しながら、本発明の第3実施形態としての構造化文書変換方法の原理について説明する。
図1(A)および図3(A)により前述したXML文書において、タグ名“名前”,“会社”の要素をキー要素とするとともにタグ名“部署”,“住所”,“電話”の要素を非キー要素とし、このXML文書に対し、第3実施形態の構造化文書変換方法を適用して得られた変換後XML文書のメモリ展開形式を図40に示す。なお、ここで示す展開形式は、応用ソフトウエアが標準API(DOM)を介して変換後XML文書を操作するときの、メモリ上への展開形式である。
【0211】
この図40に示すXML文書では、タグ名"compressed"を付与された新たな要素が作成され、この新たな要素の内容として、タグ名"部署","住所","電話"の非キー要素をひとまとめにした文字列を圧縮して得られた圧縮文字列が記述されている。この圧縮文字列は、非キー要素をひとまとめにした文字列を、図41(A)を参照しながら後述する本発明の関連技術としてのデータ変換方法により圧縮して得られたものである。また、タグ名"名前","会社"のキー要素については、元のまま記述されている。
【0212】
このように、変換後XML文書において、レコード毎に一つの要素にまとめられた非キー要素を、所定のデータ変換方法により圧縮文字列に変換して記述することにより、XML文書中に含まれる要素の数、つまりメモリ上に展開されたツリーの子要素の数を大幅に減らすことができ、展開時やデータ処理時に非キー要素を一括して扱うことができる。
【0213】
ここで、圧縮文字列は、変換後XML文書において、新たな要素の内容として記述されてもよいし〔図40や図44(A)参照〕、新たな要素の属性値として記述されてもよい〔図44(B)参照〕。なお、第3実施形態の変換方法の原理を説明するための図40では、上記圧縮文字列を新たな要素の内容として記述した場合の変換後XML文書のDOMツリーが示されている。
【0214】
〔3−2〕第3実施形態におけるデータ変換方法(データ圧縮/復元方法)
ところで、従来技術3において前述した通り、通常、圧縮ファイルは、バイナリデータであるため、文字コードのみからなるXML文書内に置くことができない。
そこで、本発明の関連技術としてのデータ変換方法のごとくバイナリの圧縮データを文字コードに変換すれば、その圧縮データ(圧縮文字列)をXML文書の要素内容または属性値として記述することができる。
【0215】
ただし、その際、圧縮文字列に用いる文字コードのセット中に、構造化文書内で特別の意味をもつ文字コードが含まれないようにすることに注意する必要がある。XML文書の場合、上記特別の意味をもつ文字コードは、表1に示した、タグ付けに関連する記号<,>,&,",'である。
【0216】
さらに、XML文書は種々の文字コード系(UTF−8,UTF−16,Shift_JIS,EUC等)を取り得るため、圧縮データをただ単に文字コードで表すだけでは、XML文書の文字コード系が変換されたときに、圧縮データを表した圧縮文字列も自動的に変換されることになり、その圧縮データを元の状態に復元ができなくなるという不具合が生じるおそれがある。
【0217】
上述のような注意点や不具合を考慮し、本発明の関連技術としてのデータ変換方法では、圧縮データ(圧縮文字列)を表現する文字コードとして、タグ付けに関連する文字コードを除いたASCIIコードを用いている。ASCIIコードは、種々の文字コード系に共通に含まれる文字コードセットである。従って、圧縮文字列がASCIIコードによって記述されていれば、その圧縮文字列を含むXML文書に対して文字コード系の変換が施されても、圧縮文字列を成すビット列は、変換されることなくそのままの状態に保持される。
【0218】
なお、図45を参照しながら後述するごとく、圧縮文字列に圧縮時点の文字コード系の種別を示す情報を付与しておくことにより、圧縮文字列から復元されたデータの文字コード系の種別を認識することができ、その文字コード系を、XML文書の現在の文字コード系に合わせることにより、XML文書全体の文字コード系の整合性を保つことができる。
【0219】
ここで、図41(A),図41(B)および図42を参照しながら、第3実施形態で用いられるデータ変換方法(データ圧縮/復元方法)について、より具体的に説明する。ここで、図41(A)はデータ変換処理(圧縮処理)の流れを説明するための図、図41(B)はデータ逆変換処理(伸長処理)の流れを説明するための図、図42は第3実施形態における文字コード変換用ルックアップテーブル(LUT)の具体例を示す図である。
【0220】
入力文字列(本実施形態では非キー要素を成す文字列)を圧縮して文字コードへのパッキングを行なう際には、図41(A)に示すように、まず、入力文字列を、圧縮用静的単語辞書(静的辞書)41に登録されている単語(文字列)と照合し、その単語辞書41中の単語と最長一致する単語を入力文字列から順次切り出し、切り出された単語を、その単語に対応する辞書番号に置き換える(ステップS11)。
【0221】
なお、静的単語辞書41によるデータ圧縮手法は、予め作成された辞書を用いる公知技術で、例えば特開平3−247167号公報(辞書登録方法及びデータ圧縮方法)や特開平4−80813号公報(辞書初期化方式)や特開平6−222903号公報(文字データを圧縮し圧縮済みデータを展開するための静的辞書構造を提供する方法および手段)などに開示されている。第3実施形態における静的単語辞書41や44は、サンプルの出現頻度を調べて予め作成されたものである。
【0222】
次に、出現頻度に従って割り当てた可変長の符号語を収めた符号表42を参照し、固定長ビットの辞書番号に対応する可変長符号を取り出して辞書番号を可変長符号に置換した後、その可変長符号が、バイトごとのデータになるように、ビット詰め処理を行なう。このとき、各バイトのデータについて、可変長符号化により得られたバイナリデータを6ビット分だけ詰めるバイト・パッキングを行なう(ステップS12)。つまり、ステップS12では、変換対象の文字もしくは文字列(本実施形態では辞書番号)に対し、出現頻度の高いものほど短い可変長符号を割り付ける可変長符号化(統計的なデータ圧縮)を行ない、この可変長符号化により得られたバイナリデータを6ビットずつ1バイトの変換データにパッキングして出力する。
【0223】
この後、例えば図42に示すような文字コード変換用ルックアップテーブル(LUT)45を用いて、1バイトの各変換データ(6ビット詰めされた1バイトのデータ)を文字コードの符号に変換し、その変換結果を圧縮文字列として出力する(ステップS13)。
【0224】
ここで、LUT45は、上述のように6ビットパッキング時の文字コード変換(BASE64符号化)に用いられるもので、6ビットで表わされる値0〜63と、これらの値0〜63にそれぞれ対応する文字コードの符号との対応関係を設定している。特に、図42に示すLUT45は、6ビット値0〜63を、それぞれ、A〜Z(0x41〜0x5A),a〜z(0x61〜0x7A),0〜9(0x30〜0x39),+(0x2B),/(0x2F)の文字コードに対応させるように作成されている。
【0225】
このとき、LUT45におけるASCIIコードのセットにはタグ記号“<”,“>”が含まれていない。つまり、LUT45には、XML文書においてタグ付けに関する文字コードを除いたASCIIコードのセットが登録されている。従って、ステップS13でのLUT変換処理に際して、タグ記号をタグ付けに関連しない他の文字列に変換するといった、特別なエスケープ処理を行なう必要はない。
【0226】
このようなLUT45を用いて、各変換データにパッキングされた6ビットデータが、ASCIIコードに従う文字コード(ASCIIコードの印字可能文字に対応する符号)に変換され、変換データ毎に得られた文字コードが、圧縮変換結果つまり圧縮文字列として出力される。
【0227】
一方、上述のようにして圧縮された圧縮文字列を元の文字列に復元する際には、図41(B)に示すように、まず、圧縮文字列の各文字コードを、LUT45に基づいて0〜63の数値(6ビット値)に変換するLUT逆変換を行なう(ステップS21)。
この後、6ビット詰めを解く処理、即ち、1バイトの各変換データから6ビットデータを取り出すデパッキング(アンパッキング)を行ない、取り出されたバイナリデータを、符号表43に基づいて固定長ビットの辞書番号に復元する(ステップS22)。
【0228】
そして、ステップS22で復元された各辞書番号を復元用静的単語辞書(静的辞書)44の辞書番号と照合して各辞書番号に対応する単語(文字列)を読み出し、各辞書番号を、読み出された単語(文字列)に置き換えることにより、元の文字列に復元する(ステップS23)。
以下に、上述したデータ圧縮/復元方法を用いて行なわれる、構造化文書の代表であるXML文書に対する変換/逆変換処理について説明する。
【0229】
〔3−3〕第3実施形態のシステムおよび変換/逆変換処理の流れ
図43は、本発明の第3実施形態としての構造化文書変換方法を適用されるシステムおよびそのシステムにおける変換/逆変換処理の流れを説明するための図である。
多様な種類のXML文書に対して、各XML文書に応じたスタイルシート(XSLシート)を一々作成するのは極めて面倒で手間がかかる。そこで、その手間を省くため、第3実施形態でも、図46を参照しながら後述するごとく、XML文書のデータ構造を変換するための仕様(レコード名,キータグ名,非キータグ名等)をXML文書(変換仕様文書)によって作成して変換実行手順を与え、図47および図48を参照しながら後述するごとく、その変換仕様文書に基づいてXML文書の変換/逆変換を実行する。
【0230】
図43に示すシステムでは、データ構造変換/逆変換機構(プロセッサ)10A,標準API20および応用ソフトウエア30がそなえられている。データ構造変換/逆変換機構10Aは、キー要素と非キー要素とを区別するための情報を記述するとともに新たな要素(圧縮文字列を記述する要素)に関する情報を記述した変換仕様文書(XML文書)を読み込み、この変換仕様文書に基づいて得られた構造変換圧縮ソフトウエアにより入力XML文書に対する変換処理を行なって変換後XML文書を出力する。
【0231】
つまり、構造変換圧縮ソフトウエアによって動作するデータ構造変換/逆変換機構10Aは、所定のタグ名(本実施形態では“compressed”)を付与された新たな要素を作成した上で、圧縮用静的単語辞書41,符号表42およびLUT45を用いて、非キー要素を成す文字もしくは文字列を図41(A)で説明したデータ圧縮方法により圧縮して圧縮文字列を生成してから、その圧縮文字列を、変換後XML文書において新たな要素の内容もしくは属性として記述する一方、キー要素を、変換後XML文書においてそのまま記述する。
【0232】
そして、変換されたXML文書に対しては、標準API20を介して応用ソフトウエアによりデータ処理(例えばタグ検索)が施され、データ処理後のXML文書が得られる。なお、データ処理としてタグ検索を行なった場合、検索結果が抽出XML文書の形で得られる。この抽出XML文書は、データ構造変換/逆変換機構10Aに読み込まれ、データ構造変換/逆変換機構10Aは、前記変換仕様文書に基づいて得られた復元・構造逆ソフトウエアにより、抽出XML文書に対する逆変換処理を行なって抽出最終結果を出力する。
【0233】
つまり、復元・構造逆変換ソフトウエアによって動作するデータ構造変換/逆変換機構10Aは、復元用静的単語辞書43,符号表44およびLUT45を用いて、所定のタグ名(本実施形態では“compressed”)を付与された要素に記述された圧縮文字列を、図41(B)で説明したデータ復元方法により、非キー要素についての元の文字列に復元してから、復元された非キー要素を用いて、元のデータ構造のXML文書を復元して出力する。これにより、最終的なデータ処理結果としてのXML文書が得られる。
【0234】
このとき、図43に示すように、応用ソフトウエア30は、標準API(DOM)20を通して、データ構造変換/逆変換機構10Aからの、要素数を削減された変換後XML文書に対し、タグ検索等の処理を行なうことになるので、第1実施形態や第2実施形態と同様、応用ソフトウエア30による処理速度は大幅に高速化される。
【0235】
応用ソフトウエア30が、変換後XML文書に対してタグ検索を行なうものである場合、そのタグ検索によってヒットしたレコードを記述するXML文書(抽出XML文書)が抽出・出力される。この抽出XML文書は、データ構造変換/逆変換機構10Aによって上述のごとく逆変換され、応用ソフトウエア30が元のXML文書に対してタグ検索したのと全く同じ、検索結果(XML文書)が得られることになる。
【0236】
また、データ構造変換/逆変換機構10Aが逆変換を施すXML文書は、応用ソフトウエア30によって抽出された少数のレコードを記述されたXML文書であるので、データ構造変換/逆変換機構10Aによる逆変換のオーバーヘッドはほとんど問題にならない。従って、応用ソフトウエア30で多数回実行される処理は、本実施形態のデータ構造変換を予め施しておくことによって、大幅に高速化されるとともに、動作メモリの使用量も大幅に削減されることになる。
【0237】
〔3−4〕第3実施形態におけるXML文書の変換方法および具体的な変換例
図44(A)および図44(B)においては、それぞれ、図4(A)に示す表形式XML文書に、第3実施形態の構造化文書変換方法を適用して得られた変換結果の第1および第2具体例が示されている。ここでも、タグ名“名前”,“会社”の要素をキー要素とし、タグ名“部署”,“住所”,“電話”の要素を非キー要素とする。なお、図44(A)および図44(B)中において、波線下線を付した部分は、図41(A)で説明したデータ圧縮方法により圧縮処理を施される部分(文字列)である。
【0238】
図44(A)に示す第1具体例では、変換対象のXML文書を成す要素をキー要素と非キー要素とに分け、タグ名“compressd”を付与された新たな要素を作成し、非キー要素をひとまとめにしてから図41(A)で説明したデータ圧縮方法により圧縮処理を施して圧縮文字列を作成し、その圧縮文字列を新たな要素の内容として記述する。キー要素については、変換後のXML文書においても、何の変換も施すことなくそのまま記述する。
【0239】
つまり、図44(A)に示す変換後XML文書の第1レコードでは、タグ名“compressd”の要素において、一連の非キー要素<部署>A部</部署><住所>A市</住所><電話>123</電話>を図41(A)で説明したデータ圧縮方法によって圧縮して得られた圧縮文字列が要素内容として記述される。また、第2レコードでは、タグ名“compressd”の要素において、一連の非キー要素<部署>B部</部署><住所>B市</住所><電話>456</電話>を図41(A)で説明したデータ圧縮方法によって圧縮して得られた圧縮文字列が要素内容として記述される。
【0240】
図44(B)に示す第2具体例では、変換対象のXML文書を成す要素をキー要素と非キー要素とに分け、タグ名“compressd”および属性名“info”を付与された新たな要素(空要素)を作成し、非キー要素をひとまとめにしてから図41(A)で説明したデータ圧縮方法により圧縮処理を施して圧縮文字列を作成し、その圧縮文字列を、新たな要素において、属性名“info”に対応する属性値として記述する。キー要素については、変換後のXML文書においても、何の変換も施すことなくそのまま記述する。
【0241】
つまり、図44(B)に示す変換後XML文書の第1レコードでは、タグ名“compressd”の要素において、一連の非キー要素<部署>A部</部署><住所>A市</住所><電話>123</電話>を図41(A)で説明したデータ圧縮方法によって圧縮して得られた圧縮文字列が属性名“info”の属性値として記述されている。また、第2レコードでは、タグ名“compressd”の要素において、一連の非キー要素<部署>B部</部署><住所>B市</住所><電話>456</電話>を図41(A)で説明したデータ圧縮方法によって圧縮して得られた圧縮文字列が属性名“info”の属性値として記述される。
【0242】
XML文書には、文字コードしか含ませることができないが、上述した圧縮方法で得られた圧縮データ(圧縮文字列)は文字コードによって記述されるので、そのままXML文書に記述することができる。ただし、XML文書では,タグ記号“<”,“>”が特別な意味を持つが、上述したように圧縮データの文字コードは、タグ記号以外の、ASCIIコードの印字可能文字であるため、圧縮データを要素内容あるいは属性値に記述しても、全体がテキストと見なされる。
【0243】
また、第3実施形態の変換方法も、第1実施形態や第2実施形態と同様、複数の非キー要素を一つの要素にまとめ、応用ソフトウエアがデータ処理を実行している間は非キー要素をデータ処理と無関係な要素として一括して扱えるようにするものである。変換方法として、図44(A)もしくは図44(B)で説明した方法のうちのどちらを用いるかは、変換仕様文書等により選択・指定することができるようになっている。このとき、これらの変換方法のうちのどちらを用いるかは、XML文書のデータ量によって、あるいは、データ処理に伴い新たな要素が幾つ増えるかによって決定されることになるが、非キー要素をひとまとめにして取り扱うという本発明の本質を考えれば、どちらの方法を採用してもよい。
【0244】
なお、図45に示すように、第3実施形態において、変換後XML文書中に記述された圧縮文字列(圧縮データ)の先頭には、圧縮時点におけるXML文書の文字コード系の種別を示す情報としての識別ビット(ここでは2ビット)が付与されている。
【0245】
XML文書の文字コード系が例えばUTF−8に固定されていて、文字コード系の変換が全く起こらない場合には、何ら問題は生じないが、XML文書は、UTF−8のほか、UTF−16,Shift_JIS,EUC等の文字コード系を取り得るので、文字コード系が変更になる場合の、本発明の対応について以下に説明する。
【0246】
圧縮文字列の文字コード系として特定のものを選んでおくと、XML文書の文字コード系が圧縮時点と変わった場合に、圧縮文字列も文字コード系が自動的に変換されてしまうので、通常、ビット並びが変わってしまい、圧縮文字列を元の状態に復元することができなくなるおそれがある。
これに対し、本発明では、前述したように、圧縮文字列が、全ての文字コード系に共通に含まれるASCIIコードによって記述されるため、元のXML文書の文字コード系が変換されても、圧縮文字列のビット並びは変わらず、圧縮文字列を正常に復元することができる。
【0247】
XML文書の文字コード系が圧縮時点から任意の文字コードに変換されているときには、圧縮文字列を復元して圧縮時点の文字コード系の種別を認識し、その文字コード系を現在(逆変換時)のXML文書の文字コード系に合わせる必要がある。このため、第3実施形態では、図45に示すように、圧縮データのヘッダに、圧縮時点の文字コード系の種別を識別するための識別ビットを付加する。
【0248】
識別すべき文字コード系の種別がUTF−8,UTF−16,Shift_JIS,EUCの4つであれば、識別ビットを2ビット設ける。この場合、例えば、“00”がUTF−8を、“01”がUTF−16を、“10”がShift_JISを、“11”がEUCを示すものと定義しておく。なお、この識別ビットは、圧縮すべき一連の非キー要素に添付され、非キー要素とともに、図41(A)で説明したデータ圧縮方法により圧縮文字列に変換されるものとする。
【0249】
〔3−5〕第3実施形態における変換仕様文書の具体例
図46には、図4(A)に示した表形式XML文書を変換対象とした場合の、具体的な変換仕様文書(XML文書)が示されている。ここでは、変換対象のXML文書が表形式データである場合について説明しているが、変換対象のXML文書が非表形式データであっても、図46に示す変換仕様文書を用いて変換/逆変換を行なうことができる。また、図46に示す変換仕様文書は、図44(A)で説明した変換方法を実現するためのものである。
【0250】
この図46に示す変換仕様文書では、ルートのタグ名“名簿”やレコードのタグ名“個人”が記述されるほか、タグ名“key_tags”の要素の内容としてキー要素のタグ名“名前”および“会社”を記述するとともにタグ名“nonkey_tags”の要素の内容として非キー要素のタグ名“部署”,“住所”および“電話”を記述することにより、キー要素と非キー要素とを区別するための情報が記述されている。また、タグ名“nonkey_tags”の要素の内容には、タグ名“merged_tag”の要素が含まれており、この要素の内容として、非キー要素を一つにまとめるための新たな要素のタグ名 “compressed”が記述されている。このような変換仕様文書により、XML文書のデータ構造変換実行手順が指示される。
【0251】
〔3−6〕第3実施形態の変換方法による具体的な変換処理手順
次に、図47および図48を参照しながら、本発明の第3実施形態としての構造化文書変換方法による変換処理手順について説明する。なお、図47および図48において図18および図19と同じステップ番号を付されたステップは、図18および図19で説明した処理と同一もしくはほぼ同一の処理を実行するものであるので、その説明は省略する。つまり、以下の説明では、ステップ番号A1〜A11,A15,A16およびB1〜B11,B14,B15を付されたステップにおける処理の説明は省略する。
【0252】
図47は、変換仕様文書に基づいて変換対象XML文書に対してデータ構造変換を施す際の処理手順を説明するためのフローチャートであり、図48は、変換仕様文書に基づいて変換後XML文書(処理済XML文書)に対してデータ構造の逆変換を施す際の処理手順を説明するためのフローチャートである。
なお、第3実施形態では、データ構造変換/逆変換機構10Aは、図43で説明した構造変換圧縮ソフトウエアや復元構造逆変換ソフトウエアを実行することにより、図47もしくは図48に示すフローチャートに従って、変換仕様文書を読み込み、符号表41,44や圧縮用/復元用の静的単語辞書42,43やLUT45を参照しながら変換/逆変換処理(データ圧縮/復元処理)を実行する。
【0253】
図47に示す変換処理手順では、ステップA7で切り出された要素データが非キー要素である場合(ステップA11のYESルート)、その非キー要素が、一つの要素にまとめるべき非キー要素群のうちの最初のものであるか否かを判断し(ステップA51)、最初のものである場合(ステップA51のYESルート)、変換仕様文書によって予め指定されたタグ名“compressed”の開始タグを作成してから(ステップA52)、今回切り出された非キー要素を保持しておく(ステップA53)。
【0254】
一方、非キー要素が最初のものでない場合(ステップA51のNOルート)、つまり既に非キー要素に対応する新要素が作成されている場合には、ステップA52による開始タグの作成処理をジャンプし、今回切り出された非キー要素を、既に切り出されて保持されている非キー要素の後に繋いでまとめる(ステップA53)。
この後、非キー要素が、一つの要素にまとめるべき非キー要素群のうちの最後のものであるか否かを判断し(ステップA54)、最後のものでない場合(ステップA54のNOルート)、ステップA7の処理に戻る。
【0255】
一方、最後のものである場合(ステップA54のYESルート)、ステップA53でまとめられた非キー要素に、文字コード系の種別を示す識別ビットを付与した上で、図41(A)で説明したデータ圧縮方法による圧縮処理を施して圧縮文字列を得る。そして、その圧縮文字列を、タグ名“compressed”の開始タグの次に、新要素の内容として記述してから、その後に、タグ名“compressed”の終了タグを作成して付加する(ステップA55)。この後、ステップA7の処理に戻る。
【0256】
なお、ここでは、図44(A)で説明した変換方法に対応した処理を行なった場合について説明しているが、図44(B)で説明した変換方法を採用する場合には、ステップA52で、新要素として、タグ名“compressed”および属性名“info”をもつ空要素タグを作成し、ステップA55で、圧縮文字列を新要素(空要素)の“info”属性の属性値として記述する。
【0257】
一方、図48に示す逆変換処理手順では、非キー要素をまとめた新要素(<compressed>タグ)がステップB7で切り出された場合(ステップB11のYESルート)、新要素の内容(もしくは属性値)として記述された圧縮文字列を読み出し、その圧縮文字列から、図41(B)で説明したデータ復元方法により、非キー要素を成す元の文字列を復元し、非キー要素のタグの記述を削除し、復元XML文書に、復元された非キー要素を記述してから(ステップB39)、ステップB7の処理に戻る。
【0258】
〔3−7〕第3実施形態の効果
このように、本発明の第3実施形態としての構造化文書変換方法によれば、変換対象のXML文書を成す要素がキー要素と非キー要素とに分けられ、その変換対象のXML文書が、キー要素をそのまま記述する一方で、非キー要素を成す文字もしくは文字列を一つのタグにまとめ図41(A)に示すデータ圧縮方法により圧縮して得られた文字コード列(圧縮文字列)として記述したXML文書に変換される。従って、上述した第1実施形態や第2実施形態と同様の効果ないし利点を得ることができるほか、変換後のXML文書のデータ量を大幅に削減することができる。
【0259】
また、図41(A)で説明したデータ圧縮方法を用いることにより、XML文書を効率良く圧縮しながら、その圧縮結果を文字コードの形で得てXML文書内に置くことのできる圧縮変換技術が提供されるので、XML文書に対する操作に必要となるリソースが大幅に軽減され、XML文書を処理する際におけるメモリ使用量削減や処理速度の高速化が実現される。
【0260】
このとき、圧縮データを表現する文字コードとして、タグ付けに関連する記号(例えばXML文書では<,>,&,”,’)を除いたASCIIコードを用いる。これにより、変換後のXML文書における圧縮文字列にはタグ付けに関連する記号が存在せず、データ処理時などに誤処理が発生するのを確実に防止することができる。
【0261】
また、ASCIIコードは、種々の文字コード系に共通に含まれる文字コードセットであるため、変換後のXML文書が文字コード系の変換を施されても、ASCIIコードを用いた圧縮文字列を成すビット列は、文字コード系の変換の影響を受けることなく元の状態に保たれる。従って、文字コード系を変換されたXML文書に含まれる圧縮文字列は、元の非キー要素に正しく復元される。
【0262】
さらに、図45に示すように、圧縮文字列に圧縮時点の文字コード系の種別を示す識別ビットを付与しておくことにより、圧縮文字列から復元されたデータの文字コード系の種別を認識することができ、その文字コード系を、XML文書の現在の文字コード系に合わせることにより、XML文書全体の文字コード系の整合性を保つことができる。
【0263】
また、非キー要素を圧縮文字列に変換するに先立ち、非キー要素を成す文字列を、予め作成された静的単語辞書41を用いて辞書番号に置き換えておくことにより、可変長符号化の対象となる文字列をより短縮できるので、圧縮効率をさらに高めることができ、変換後のXML文書のデータ量をより削減することができる。
【0264】
〔4〕その他
なお、本発明は上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、上述した実施形態では、構造化文書がXML文書である場合について説明したが、本発明は、これに限定されるものではなく、他の種々の構造化文書にも上述した実施形態と同様に適用され、上述した実施形態と同様の作用効果を得ることができる。
【0265】
〔5〕付記
(付記1) 変換対象の構造化文書を成す要素を、該構造化文書に対するデータ処理の対象となるキー要素と前記データ処理の対象とならない非キー要素とに分け、
所定のタグ名および所定の属性名を付与された新たな要素を作成し、
該非キー要素のタグ名を含むタグ名文字列を作成し、該タグ名文字列を、該新たな要素において、前記所定の属性名に対応する属性値として記述するタグ名変換を行ない、
該非キー要素の内容を含む内容文字列を作成し、該内容文字列を、該新たな要素の内容として記述する内容変換を行ない、
該キー要素を、変換後の構造化文書においてそのまま記述することを特徴とする、構造化文書変換方法。
【0266】
(付記2) 変換対象の構造化文書を成す要素を、該構造化文書に対するデータ処理の対象となるキー要素と前記データ処理の対象とならない非キー要素とに分け、
所定のタグ名,所定の第1属性名および所定の第2属性名を付与された新たな要素を作成し、
該非キー要素のタグ名を含むタグ名文字列を作成し、該タグ名文字列を、該新たな要素において、前記第1属性名に対応する第1属性値として記述するタグ名変換を行ない、
該非キー要素の内容を含む内容文字列を作成し、該内容文字列を、該新たな要素において、前記第2属性名に対応する第2属性値として記述する内容変換を行ない、
該キー要素を、変換後の構造化文書においてそのまま記述することを特徴とする、構造化文書変換方法。
【0267】
(付記3) 変換対象の構造化文書を成す要素を、該構造化文書に対するデータ処理の対象となるキー要素と前記データ処理の対象とならない非キー要素とに分け、
該非キー要素のタグ名を含むタグ名文字列を、所定のタグ名として付与された新たな要素を作成するタグ名変換を行ない、
該非キー要素の内容を含む内容文字列を作成し、該内容文字列を、該新たな要素の内容として記述する内容変換を行ない、
該キー要素を、変換後の構造化文書においてそのまま記述することを特徴とする、構造化文書変換方法。
【0268】
(付記4) 該タグ名文字列を、区切り記号を介して該非キー要素のタグ名を繋いで作成することを特徴とする、付記1〜付記3のいずれか一つに記載の構造化文書変換方法。
(付記5) 該非キー要素が複数階層を成している場合、該タグ名文字列において、該複数階層を成す非キー要素のタグ名に、階層構造識別情報を付加することを特徴とする、付記4記載の構造化文書変換方法。
【0269】
(付記6) 該非キー要素が属性を有する場合、該タグ名文字列において、該属性を有する非キー要素のタグ名の後に、該区切り記号を介して、属性名識別情報を付加した該属性の属性名を記述し、
該内容文字列を、区切り記号を介して該非キー要素の内容を繋いで作成するとともに、該内容文字列において、該属性を有する該非キー要素の内容の後に、該区切り記号を介して、該属性の属性値を記述することを特徴とする、付記4または付記5に記載の構造化文書変換方法。
【0270】
(付記7) 該内容文字列を、区切り記号を介して該非キー要素の内容を繋いで作成することを特徴とする、付記1〜付記5のいずれか一つに記載の構造化文書変換方法。
(付記8) 該キー要素と該非キー要素とを区別するための情報を記述するとともに該新たな要素に関する情報を記述した変換仕様文書を作成し、
該変換仕様文書に基づいて、該変換対象の構造化文書に対し、該非キー要素の記述についての変換を施すことを特徴とする、付記1〜付記7のいずれか一つに記載の構造化文書変換方法。
【0271】
(付記9) 該変換仕様文書に基づいて、前記変換を施された構造化文書に対し、該非キー要素の記述を元の状態に戻す逆変換を施すことを特徴とする、付記8記載の構造化文書変換方法。
(付記10) 該変換仕様文書において、該非キー要素のタグ名と該タグ名よりも短く且つ該タグ名を特定しうる短縮タグ名とを対応付けて記述し、
前記変換時に、該変換仕様文書に基づいて、該非キー要素のタグ名を該短縮タグ名に置換するタグ名短縮変換を行なう一方、
前記逆変換時に、該変換仕様文書に基づいて、該短縮タグ名を該非キー要素のタグ名に置換するタグ名伸長変換を行なうことを特徴とする、付記9記載の構造化文書変換方法。
【0272】
(付記11) 該変換仕様文書において、前記変換時に前記タグ名短縮変換を行なうか否かのタグ名短縮変換情報を記述し、
前記変換時または前記逆変換時に、該変換仕様文書における該タグ名短縮変換情報に基づいて、前記タグ名短縮変換および前記タグ名伸長変換の実行/非実行を選択することを特徴とする、付記10記載の構造化文書変換方法。
【0273】
(付記12) 該変換対象の構造化文書が、レコード毎の要素の種類および数が同じである表形式で記述されている場合、該キー要素と該非キー要素とを区別するための情報を記述するとともに、該非キー要素のタグ名と該タグ名を代表する前記所定のタグ名としての代表タグ名とを対応付けて記述した変換仕様文書を作成し、
該変換仕様文書に基づいて、該変換対象の構造化文書に対し、前記タグ名変換を省略し前記内容変換のみを行なう表形式変換を施すことを特徴とする、付記1〜付記11のいずれか一つに記載の構造化文書変換方法。
【0274】
(付記13) 該変換仕様文書に基づいて、前記代表タグ名から該非キー要素のタグ名を割り出し、前記表形式変換を施された構造化文書に対し、該非キー要素の記述を元の状態に戻す表形式逆変換を施すことを特徴とする、付記12記載の構造化文書変換方法。
【0275】
(付記14) 該変換対象の構造化文書が、レコード毎の要素の種類および数が同じである表形式で記述されている場合、該キー要素と該非キー要素とを区別するための情報を記述するとともに、該非キー要素のタグ名および属性名と該タグ名および該属性名を代表する前記所定のタグ名としての代表タグ名とを対応付けて記述した変換仕様文書を作成し、
該変換仕様文書に基づいて、該変換対象の構造化文書に対し、前記タグ名変換を省略し前記内容変換のみを行なう表形式変換を施すことを特徴とする、付記1〜付記11のいずれか一つに記載の構造化文書変換方法。
【0276】
(付記15) 該変換仕様文書に基づいて、前記代表タグ名から該非キー要素のタグ名および属性名を割り出し、前記表形式変換を施された構造化文書に対し、該非キー要素の記述を元の状態に戻す表形式逆変換を施すことを特徴とする、付記14記載の構造化文書変換方法。
【0277】
(付記16) 該変換仕様文書において、該変換対象の構造化文書が表形式で記述されているか否かの表形式情報を記述し、
該変換仕様文書における該表形式情報に基づいて、前記表形式変換および前記表形式逆変換の実行/非実行を選択することを特徴とする、付記13または付記15に記載の構造化文書変換方法。
【0278】
(付記17) 該変換対象の構造化文書が表形式ではない旨が該表形式情報として記述されている場合に、前記タグ名変換を実行することを特徴とする、付記16記載の構造化文書変換方法。
(付記18) 該変換仕様文書を構造化文書として作成し変換実行手順を与えることを特徴とする、付記8〜付記17のいずれか一つに記載の構造化文書変換方法。
【0279】
(付記19) 該変換仕様文書に基づいて、前記の変換を指示する変換用スタイルシートを生成し、
構造化文書変換プロセッサに、該変換用スタイルシートを用いて前記の変換を実行させることを特徴とする、付記8〜付記18のいずれか一つに記載の構造化文書変換方法。
【0280】
(付記20) 該変換仕様文書に基づいて、前記の逆変換を指示する逆変換用スタイルシートを生成し、
構造化文書変換プロセッサに、該逆変換用スタイルシートを用いて前記の逆変換を実行させることを特徴とする、付記8〜付記19のいずれか一つに記載の構造化文書変換方法。
【0281】
(付記21) 変換対象の構造化文書を成す要素を、該構造化文書に対するデータ処理の対象となるキー要素と前記データ処理の対象とならない非キー要素とに分け、
所定のタグ名を付与された新たな要素を作成し、
該非キー要素の記述中においてタグ付けに関連する記号をタグ付けに関連しない文字列に置き換えた文字列を作成し、
該文字列を、該新たな要素の内容として記述し、
該キー要素を、変換後の構造化文書においてそのまま記述することを特徴とする、構造化文書変換方法。
【0282】
(付記22) 変換対象の構造化文書を成す要素を、該構造化文書に対するデータ処理の対象となるキー要素と前記データ処理の対象とならない非キー要素とに分け、
所定のタグ名および所定の属性名を付与された新たな要素を作成し、
該非キー要素の記述中においてタグ付けに関連する記号をタグ付けに関連しない文字列に置き換えた文字列を作成し、
該文字列を、該新たな要素において、前記所定の属性名に対応する属性値として記述し、
該キー要素を、変換後の構造化文書においてそのまま記述することを特徴とする、構造化文書変換方法。
【0283】
(付記23) 変換対象の構造化文書を成す要素を、該構造化文書に対するデータ処理の対象となるキー要素と前記データ処理の対象とならない非キー要素とに分け、
該非キー要素の親要素に新たな属性名を付与し、
該非キー要素の記述中においてタグ付けに関連する記号をタグ付けに関連しない文字列に置き換えた文字列を作成し、
該文字列を、該親要素において、前記新たな属性名に対応する属性値として記述し、
該キー要素を、変換後の構造化文書においてそのまま記述することを特徴とする、構造化文書変換方法。
【0284】
(付記24) 変換対象の構造化文書を成す要素を、該構造化文書に対するデータ処理の対象となるキー要素と前記データ処理の対象とならない非キー要素とに分け、
該非キー要素の記述中においてタグ付けに関連する記号をタグ付けに関連しない文字列に置き換えた文字列を作成し、
該文字列を、該非キー要素の親要素の内容として記述し、
該キー要素を、変換後の構造化文書においてそのまま記述することを特徴とする、構造化文書変換方法。
【0285】
(付記25) 該キー要素と該非キー要素とを区別するための情報を記述するとともに該新たな要素に関する情報を記述した変換仕様文書を作成し、
該変換仕様文書に基づいて、該変換対象の構造化文書に対し、該非キー要素の記述についての変換を施すことを特徴とする、付記21または付記22に記載の構造化文書変換方法。
【0286】
(付記26) 該キー要素と該非キー要素とを区別するための情報を記述するとともに該親要素に関する情報を記述した変換仕様文書を作成し、
該変換仕様文書に基づいて、該変換対象の構造化文書に対し、該非キー要素の記述についての変換を施すことを特徴とする、付記23または付記24に記載の構造化文書変換方法。
【0287】
(付記27) 該変換仕様文書に基づいて、前記変換を施された構造化文書に対し、該非キー要素の記述を元の状態に戻す逆変換を施すことを特徴とする、付記25または付記26に記載の構造化文書変換方法。
(付記28) 該変換仕様文書を構造化文書として作成し変換実行手順を与えることを特徴とする、付記25〜付記27のいずれか一つに記載の構造化文書変換方法。
【0288】
(付記29) 該変換仕様文書に基づいて、前記変換を指示する変換用スタイルシートを生成し、
構造化文書変換プロセッサに、該変換用スタイルシートを用いて前記変換を実行させることを特徴とする、付記25〜付記28のいずれか一つに記載の構造化文書変換方法。
【0289】
(付記30) 該変換仕様文書に基づいて、前記逆変換を指示する逆変換用スタイルシートを生成し、
構造化文書変換プロセッサに、該逆変換用スタイルシートを用いて前記の逆変換を実行させることを特徴とする、付記25〜付記29のいずれか一つに記載の構造化文書変換方法。
【0290】
(付記31) 前記タグ付けに関連しない文字列として、前記タグ付けに関連する記号の実体参照記述を用いることを特徴とする、付記21〜付記30のいずれか一つに記載の構造化文書変換方法。
(付記32) 該変換対象の構造化文書がXML(eXtensible Markup Language)文書である場合、前記タグ付けに関連する記号「<」および「>」をそれぞれ「<;」および「>;」に置き換えることを特徴とする、付記31記載の構造化文書変換方法。
【0291】
(付記33) 変換対象の構造化文書を成す要素を、該構造化文書に対するデータ処理の対象となるキー要素と前記データ処理の対象とならない非キー要素とに分け、
所定のタグ名を付与された新たな要素を作成し、
該非キー要素を成す文字もしくは文字列に対し出現頻度の高いものほど短い可変長符号を割り付ける可変長符号化を行ない、該可変長符号化により得られたバイナリデータを6ビットずつ1バイトの変換データにパッキングし、各変換データにパッキングされた6ビットデータをASCII(American Standard Code for Information Interchange)コードに従う文字コードに変換することにより、該非キー要素を、該文字コードからなる圧縮文字列に変換し、
該圧縮文字列を、該新たな要素の内容として記述し、
該キー要素を、変換後の構造化文書においてそのまま記述することを特徴とする、構造化文書変換方法。
【0292】
(付記34) 変換対象の構造化文書を成す要素を、該構造化文書に対するデータ処理の対象となるキー要素と前記データ処理の対象とならない非キー要素とに分け、
所定のタグ名および所定の属性名を付与された新たな要素を作成し、
該非キー要素を成す文字もしくは文字列に対し出現頻度の高いものほど短い可変長符号を割り付ける可変長符号化を行ない、該可変長符号化により得られたバイナリデータを6ビットずつ1バイトの変換データにパッキングし、各変換データにパッキングされた6ビットデータをASCII(American Standard Code for Information Interchange)コードに従う文字コードに変換することにより、該非キー要素を、該文字コードからなる圧縮文字列に変換し、
該圧縮文字列を、該新たな要素において、前記所定の属性名に対応する属性値として記述し、
該キー要素を、変換後の構造化文書においてそのまま記述することを特徴とする、構造化文書変換方法。
【0293】
(付記35) 該非キー要素を該圧縮文字列に変換するに先立ち、該非キー要素を成す文字列を、予め作成された静的辞書を用いて辞書番号に置き換え、該辞書番号を含む文字列を、該圧縮文字列に変換することを特徴とする、付記33または付記34に記載の構造化文書変換方法。
【0294】
(付記36) 該変換後の構造化文書を逆変換する際には、該圧縮文字列を該変換後の構造化文書から取り出し、
前記圧縮文字列における各文字コードを、前記ASCIIコードに従って6ビットデータに変換し、
該文字コード毎に得られた6ビットデータから、該非キー要素を成す文字もしくは文字列を復元し、
復元された該非キー要素を用いて、元の構造化文書を復元することを特徴とする、付記33または付記34に記載の構造化文書変換方法。
【0295】
(付記37) 該キー要素と該非キー要素とを区別するための情報を記述するとともに該新たな要素に関する情報を記述した変換仕様文書を作成し、
該変換仕様文書に基づいて、該変換対象の構造化文書に対し、該非キー要素の記述についての変換を施すことを特徴とする、付記33〜付記36のいずれか一つに記載の構造化文書変換方法。
【0296】
(付記38) 該変換仕様文書に基づいて、前記変換を施された構造化文書に対し、該非キー要素の記述を元の状態に戻す逆変換を施すことを特徴とする、付記37記載の構造化文書変換方法。
(付記39) 該変換仕様文書を構造化文書として作成し変換実行手順を与えることを特徴とする、付記37または付記38に記載の構造化文書変換方法。
【0297】
(付記40) 該圧縮文字列に、圧縮時点の文字コード系の種別を示す情報を付与し、
該変換後の構造化文書を逆変換する際には、該情報を参照して該圧縮時点での文字コード系の種別を認識し、
認識された種別の文字コード系を該逆変換時の文字コード系に合わせるように該圧縮文字列を復元することを特徴とする、付記33〜付記39のいずれか一つに記載の構造化文書変換方法。
【0298】
(付記41) 前記ASCIIコードのセットとして、構造化文書においてタグ付けに関連する文字コードを除いたものを用いることを特徴とする、付記33〜付記40のいずれか一つに記載の構造化文書変換方法。
(付記42) 変換対象の文字もしくは文字列に対し、出現頻度の高いものほど短い可変長符号を割り付ける可変長符号化を行ない、
該可変長符号化により得られたバイナリデータを6ビットずつ1バイトの変換データにパッキングして出力することを特徴とする、データ変換方法。
【0299】
(付記43) 各変換データにパッキングされた6ビットデータをASCII(American Standard Code for Information Interchange)コードに従う文字コードに変換し、
該変換データ毎に得られた該文字コードを、前記変換対象の文字もしくは文字列の圧縮変換結果として出力することを特徴とする、付記42記載のデータ変換方法。
【0300】
(付記44) 前記圧縮変換結果を復元する際には、前記圧縮変換結果における各文字コードを、前記ASCIIコードに従って6ビットデータに変換し、該文字コード毎に得られた6ビットデータから、前記変換対象の文字もしくは文字列を復元することを特徴とする、付記43記載のデータ変換方法。
(付記45) 前記ASCIIコードのセットとして、構造化文書においてタグ付けに関連する文字コードを除いたものを用いることを特徴とする、付記43または付記44に記載のデータ変換方法。
【0301】
【発明の効果】
以上詳述したように、本発明の関連技術としての構造化文書変換装置(付記1〜付記20)によれば、XSLT変換部によって、変換対象の構造化文書を成す要素につき、キー要素と非キー要素とに分けた区別情報が読み込まれ、その変換対象の構造化文書が、XSLT構造変換部によって、キー要素をそのまま記述する一方で非キー要素を一つのタグにまとめて記述した構造化文書に変換されるので、変換後の構造化文書では、要素数が削減されるとともに、展開時やデータ処理時に非キー要素を一括して扱うことができる。特に、データ処理の対象とならない非キー要素が多い構造化文書や、1レコードの要素数が多い構造化文書での要素数の削減効果は大きい。
【0302】
また、応用ソフトウエア(アプリケーション)により構造化文書に対するデータ処理を行なう際にはキー要素のみが使用されるが、本発明では、キー要素についてはそのまま記述されているので、通常通り、キー要素のタグ名を用いてキー要素の内容を参照することができ、変換後の構造化文書のトランスペアレント性は確保される。
【0303】
このとき、変換仕様文書を構造化文書として作成し変換実行手順を与えることにより、多様な種類の構造化文書に対して、スタイルシートを一々作成する必要がなくなり、手間をかけることなく、本発明によるデータ構造の変換/逆変換処理を種々の構造化文書データに施すことができる。さらに、変換仕様文書に基づいて変換/逆変換を指示する変換/逆変換用スタイルシートを生成すれば、構造化文書変換プロセッサ(例えば標準のXSLTプロセッサ)により変換/逆変換用スタイルシートを用いて変換/逆変換を実行することができ、つまりは、ほとんどあらゆる種類の構造化文書システム(XML文書システム)において本発明による変換/逆変換処理を実行することができる。
【0304】
従って、本発明によれば、アプリケーションに対するトランスペアレント性や変換された構造化文書のデータ構造の有効性を確保しながら、非キー要素を一つの要素にまとめるデータ構造変換処理を、種々の構造化文書データに施すことができるようにした汎用の変換技術を提供することができ、これにより、構造化文書に対する操作に必要となるリソースが大幅に軽減され、構造化文書を処理する際におけるメモリ使用量削減と処理速度の高速化との両方が実現されることになる。
【0305】
タグ名変換や内容変換に際しては、コンマ等の区切り記号を介して非キー要素のタグ名や内容を繋ぐことにより、タグ名文字列や内容文字列が、タグ付けに関連することのない記号を用いて極めて容易に作成される。
このとき、非キー要素が複数階層を成している場合、タグ名文字列におけるタグ名に、階層構造識別情報を付加すれば、その階層構造を変換後の構造化文書に保存することができるので、その階層構造識別情報に従って、元の構造化文書を復元するための逆変換を容易に行なうことができる。
【0306】
また、非キー要素が属性を有する場合、タグ名文字列において、属性を有するタグ名の後に、区切り記号を介して、属性名識別情報を付加した属性の属性名を記述するとともに、このタグ名文字列におけるタグ名の並びに対応させて非キー要素の内容を繋いだ内容文字列を作成することにより、非キー要素の属性を変換後の構造化文書に保存することができるので、その属性名識別情報に従って、元の構造化文書を復元するための逆変換を容易に行なうことができる。
【0307】
非キー要素のタグ名を短縮タグ名に置換するタグ名短縮変換を行なうことにより、変換後の構造化文書のデータ量を削減することができる。このとき、変換仕様文書におけるタグ名短縮変換情報によってタグ名短縮変換を行なうか否かを指示し、タグ名短縮変換やタグ名伸長変換の実行/非実行を自動的に切り換えることができる。
【0308】
変換対象の構造化文書が表形式で記述されている場合、元の構造化文書を復元するための逆変換に際してタグ名や属性名を容易に割り出すことができるので、タグ名変換や属性名変換を省略することができる。従って、変換後の構造化文書においては、非キー要素の内容文字列が記述されていればよく、タグ名や属性名に係る記述を省略することができ、変換後の構造化文書のデータ量を大幅に削減することができる。このとき、変換仕様文書における表形式情報によって表形式変換を行なうか否かを指示し、表形式変換や表形式逆変換の実行/非実行を自動的に切り換えることができる。
【0309】
また、本発明の関連技術としての構造化文書変換装置(付記21〜付記32)によれば、XSLT変換部によって、変換対象の構造化文書を成す要素につき、キー要素と非キー要素とに分けた区別情報が読み込まれ、その変換対象の構造化文書が、XSLT構造変換部によって、キー要素をそのまま記述する一方で、非キー要素を一つのタグにまとめその非キー要素の記述中のタグ付けに関連する記号をタグ付けに関連しない文字列に置き換えた構造化文書に変換されるので、上述した構造化文書変換方法と同様の効果ないし利点を得ることができる。このとき、タグ付けに関連しない文字列として、タグ付けに関連する記号の実体参照記述用いることにより〔例えば、構造化文書がXML文書である場合、タグ記号「<」および「>」をそれぞれ実体参照記述による文字列「<;」および「>;」に置き換えることにより〕、極めて容易に構造化文書の変換を行なうことができる。
【0310】
さらに、本発明の構造化文書変換装置(請求項1,付記33〜付記41)によれば、処理部によって、変換対象の構造化文書を成す要素をキー要素と非キー要素とに区別するための区別情報を読み込まれ、その変換対象の構造化文書が、キー要素をそのまま記述する一方で、非キー要素を成す文字もしくは文字列を一つのタグにまとめ下記データ圧縮方法により圧縮して得られた文字コード列(圧縮文字列)として記述した構造化文書に変換されるので、上述した構造化文書変換方法と同様の効果ないし利点を得ることができるほか、変換後の構造化文書のデータ量を大幅に削減することができる。
【0311】
非キー要素を成す文字もしくは文字列を圧縮する際には、区別情報に基づいて区別した、非キー要素を成す文字もしくは文字列を、出現頻度に応じて予め作成された静的辞書を用いて置き換えた固定長ビットの辞書番号に対し、出現頻度に従って割り当てた可変長の符号語を収めた符号表を用いて、出現頻度の高いものほど短い可変長符号を割り付ける可変長符号化を行なった上で、この可変長符号化により得られたバイナリデータを6ビットずつ1バイトの変換データにパッキングし、各変換データにパッキングされた6ビットデータをASCIIコードに従う文字コードに変換することにより、文字コードで記述された圧縮データ(圧縮文字列)を得ることができる。これにより、圧縮データを、構造化文書の要素あるいは属性値として置くことができる。
【0312】
上述のような本発明の関連技術としてのデータ変換方法(付記42〜付記45)を用いることにより、構造化文書を効率良く圧縮しながら、その圧縮結果を文字コードの形で得て構造化文書内に置くことのできる圧縮変換技術が提供されるので、構造化文書に対する操作に必要となるリソースが大幅に軽減され、構造化文書を処理する際におけるメモリ使用量削減や処理速度の高速化が実現される。
【0313】
このとき、圧縮データを表現する文字コードとして、タグ付けに関連する記号(例えばXML文書では<,>,&,”,’)を除いたASCIIコードを用いる。これにより、変換後の構造化文書における圧縮文字列にはタグ付けに関連する記号が存在せず、データ処理時などに誤処理が発生するのを確実に防止することができる。
【0314】
また、ASCIIコードは、種々の文字コード系に共通に含まれる文字コードセットであるため、変換後の構造化文書が文字コード系の変換を施されても、ASCIIコードを用いた圧縮文字列を成すビット列は、文字コード系の変換の影響を受けることなく元の状態に保たれる。従って、文字コード系を変換された構造化文書に含まれる圧縮文字列は、元の非キー要素に正しく復元される。
【0315】
さらに、圧縮文字列に圧縮時点の文字コード系の種別を示す情報を付与しておくことにより、圧縮文字列から復元されたデータの文字コード系の種別を認識することができ、その文字コード系を、構造化文書の現在の文字コード系に合わせることにより、構造化文書全体の文字コード系の整合性を保つことができる。
【0316】
また、非キー要素を圧縮文字列に変換するに先立ち、非キー要素を成す文字列を、予め作成された静的辞書を用いて辞書番号に置き換えておくことにより、可変長符号化の対象となる文字列を短縮できるので、より圧縮効率を高めることができ、変換後の構造化文書のデータ量をより削減することができる。
【図面の簡単な説明】
【図1】本発明の第1実施形態としての構造化文書変換方法の原理について説明するためのもので、(A)は変換対象のXML文書のメモリ展開形式を示す図、(B)は(A)に示すXML文書に第1実施形態の構造化文書変換方法を適用して得られたXML文書のメモリ展開形式を示す図である。
【図2】本発明の第1実施形態としての構造化文書変換方法を適用されるシステムおよびそのシステムにおける変換/逆変換処理の流れを説明するための図である。
【図3】(A)は変換対象のXML文書の具体例を示す図、(B)〜(F)は、それぞれ、(A)に示すXML文書に第1実施形態の構造化文書変換方法を適用して得られた変換結果の第1〜第5具体例を示す図である。
【図4】(A)は変換対象のXML文書(表形式)の具体例を示す図、(B)および(C)は、それぞれ、(A)に示すXML文書が表形式である場合に第1実施形態の構造化文書変換方法を適用して得られた変換結果の第1および第2具体例を示す図である。
【図5】変換対象のXML文書の具体例を示す図である。
【図6】図5に示すXML文書に第1実施形態の構造化文書変換方法を適用して得られた変換結果の第1具体例を示す図である。
【図7】図5に示すXML文書に第1実施形態の構造化文書変換方法を適用して得られた変換結果の第2具体例を示す図である。
【図8】図5に示すXML文書に第1実施形態の構造化文書変換方法を適用して得られた変換結果の第3具体例を示す図である。
【図9】第1実施形態における変換仕様文書の具体例を示す図である。
【図10】第1実施形態において、図9に示す変換仕様文書により作成された変換用スタイルシートの具体例を示す図である。
【図11】第1実施形態において、図9に示す変換仕様文書により作成された逆変換用スタイルシートの具体例を示す図である。
【図12】第1実施形態における、タグ名短縮を行なうための変換仕様文書の具体例を示す図である。
【図13】第1実施形態における、データ形式(表形式であるか否か)を指定する機能を有する変換仕様文書の具体例を示す図である。
【図14】第1実施形態における、データ形式(タグ名短縮変換を行なうか否か)を指定する機能を有する変換仕様文書の具体例を示す図である。
【図15】第1実施形態における、レコード内の非キー要素が階層構造を成すとともに属性を有する場合の変換仕様文書の第1具体例を示す図である。
【図16】第1実施形態において、レコード内の非キー要素が階層構造を成すとともに属性を有する場合の変換仕様文書を作成する手順を説明するためのフローチャートである。
【図17】第1実施形態における、レコード内の非キー要素が階層構造を成すとともに属性を有する場合の変換仕様文書の第2具体例を示す図である。
【図18】本発明の第1実施形態としての構造化文書変換方法による変換処理手順を説明するためのフローチャートである。
【図19】本発明の第1実施形態としての構造化文書変換方法による逆変換処理手順を説明するためのフローチャートである。
【図20】(A)および(B)は、それぞれ、第1実施形態における変換用スタイルシートおよび逆変換用スタイルシートの作成手順を説明するためのフローチャート、(C)および(D)は、それぞれ、本発明の第1実施形態としての構造化文書変換方法による変換処理手順および逆変換処理手順の変形例を説明するためのフローチャートである。
【図21】(A)および(B)は、それぞれ、第1実施形態における変換用スタイルシートおよび逆変換用スタイルシートの作成手順の変形例を説明するためのフローチャートである。
【図22】本発明の第2実施形態としての構造化文書変換方法の原理を説明すべく、図1(A)に示すXML文書に第2実施形態の構造化文書変換方法を適用して得られたXML文書のメモリ展開形式を示す図である。
【図23】図4(A)に示すXML文書に第2実施形態の構造化文書変換方法を適用して得られた変換結果の第1具体例を示す図である。
【図24】図4(A)に示すXML文書に第2実施形態の構造化文書変換方法を適用して得られた変換結果の第2具体例を示す図である。
【図25】図4(A)に示すXML文書に第2実施形態の構造化文書変換方法を適用して得られた変換結果の第3具体例を示す図である。
【図26】図4(A)に示すXML文書に第2実施形態の構造化文書変換方法を適用して得られた変換結果の第4具体例を示す図である。
【図27】第2実施形態における変換仕様文書の具体例を示す図である。
【図28】第2実施形態において、図27に示す変換仕様文書により作成された変換用スタイルシートの具体例を示す図である。
【図29】第2実施形態において、図27に示す変換仕様文書により作成された逆変換用スタイルシートの具体例を示す図である。
【図30】第2実施形態において、レコード内の非キー要素が階層構造を成すとともに属性を有する場合の変換仕様文書を作成する手順を説明するためのフローチャートである。
【図31】本発明の第2実施形態としての構造化文書変換方法による変換処理手順の第1例を説明するためのフローチャートである。
【図32】本発明の第2実施形態としての構造化文書変換方法による逆変換処理手順の第1例を説明するためのフローチャートである。
【図33】本発明の第2実施形態としての構造化文書変換方法による変換処理手順の第2例を説明するためのフローチャートである。
【図34】本発明の第2実施形態としての構造化文書変換方法による逆変換処理手順の第2例を説明するためのフローチャートである。
【図35】本発明の第2実施形態としての構造化文書変換方法による変換処理手順の第3例を説明するためのフローチャートである。
【図36】本発明の第2実施形態としての構造化文書変換方法による逆変換処理手順の第3例を説明するためのフローチャートである。
【図37】本発明の第2実施形態としての構造化文書変換方法による変換処理手順の第4例を説明するためのフローチャートである。
【図38】本発明の第2実施形態としての構造化文書変換方法による逆変換処理手順の第4例を説明するためのフローチャートである。
【図39】(A)および(B)は、それぞれ、第2実施形態における変換用スタイルシートおよび逆変換用スタイルシートの作成手順を説明するためのフローチャート、(C)および(D)は、それぞれ、本発明の第2実施形態としての構造化文書変換方法による変換処理手順および逆変換処理手順の第5例を説明するためのフローチャートである。
【図40】本発明の第3実施形態としての構造化文書変換方法の原理を説明すべく、図1(A)に示すXML文書に第3実施形態の構造化文書変換方法を適用して得られたXML文書のメモリ展開形式を示す図である。
【図41】第3実施形態で用いられるデータ変換方法を説明するためのもので、(A)はデータ変換処理(圧縮処理)の流れを説明するための図、(B)はデータ逆変換処理(伸長処理)の流れを説明するための図である。
【図42】第3実施形態における文字コード変換用ルックアップテーブルの具体例を示す図である。
【図43】本発明の第3実施形態としての構造化文書変換方法を適用されるシステムおよびそのシステムにおける変換/逆変換処理の流れを説明するための図である。
【図44】(A)および(B)は、それぞれ、図4(A)に示すXML文書に第3実施形態の構造化文書変換方法を適用して得られた変換結果の第1および第2具体例を示す図である。
【図45】第3実施形態において、文字コード系の種別を示す情報を付与された圧縮文字列の具体例を示す図である。
【図46】第3実施形態における変換仕様文書の具体例を示す図である。
【図47】本発明の第3実施形態としての構造化文書変換方法による変換処理手順を説明するためのフローチャートである。
【図48】本発明の第3実施形態としての構造化文書変換方法による逆変換処理手順を説明するためのフローチャートである。
【符号の説明】
10 データ構造変換/逆変換機構(構造化文書変換プロセッサ)
10A データ構造変換/逆変換機構
11 XSLT変換部(構造化文書変換プロセッサ)
12 XSLT構造変換部(構造化文書変換プロセッサ)
13 XSLT逆変換部(構造化文書変換プロセッサ)
20 標準API
30 応用ソフトウエア(アプリケーション)
41 圧縮用静的単語辞書(静的辞書)
42,43 符号表
44 復元用静的単語辞書(静的辞書)
45 文字コード変換用ルックアップテーブル(LUT)
Claims (1)
- 構造化文書を変換する処理部を有する構造化文書変換装置であって、
該処理部が、
変換対象の構造化文書を成す要素を、該構造化文書に対するデータ処理の対象となるキー要素と前記データ処理の対象とならない非キー要素とに区別するための区別情報を読み込み、
所定のタグ名を付与された、該区別情報における該非キー要素のための新たな要素を作成し、
該区別情報に基づいて区別した、該非キー要素を成す文字もしくは文字列を、出現頻度に応じて予め作成された静的辞書を用いて置き換えた固定長ビットの辞書番号に対し、出現頻度に従って割り当てた可変長の符号語を収めた符号表を用いて、出現頻度の高いものほど短い可変長符号を割り付ける可変長符号化を行ない、該可変長符号化により得られたバイナリデータを6ビットずつ1バイトの変換データにパッキングし、各変換データにパッキングされた6ビットデータをASCII(American Standard Code for Information Interchange)コードに従う文字コードに変換することにより、該非キー要素を、該文字コードからなる圧縮文字列に変換し、
該圧縮文字列を、該新たな要素の内容として記述し、
該区分情報における該キー要素を、変換後の構造化文書においてそのまま記述することを特徴とする、構造化文書変換装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001401934A JP4163870B2 (ja) | 2001-12-28 | 2001-12-28 | 構造化文書変換装置 |
US10/274,230 US20030158854A1 (en) | 2001-12-28 | 2002-10-21 | Structured document converting method and data converting method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001401934A JP4163870B2 (ja) | 2001-12-28 | 2001-12-28 | 構造化文書変換装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008095971A Division JP4571991B2 (ja) | 2008-04-02 | 2008-04-02 | 構造化文書変換装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003203067A JP2003203067A (ja) | 2003-07-18 |
JP4163870B2 true JP4163870B2 (ja) | 2008-10-08 |
Family
ID=27640344
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001401934A Expired - Fee Related JP4163870B2 (ja) | 2001-12-28 | 2001-12-28 | 構造化文書変換装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20030158854A1 (ja) |
JP (1) | JP4163870B2 (ja) |
Families Citing this family (65)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7058931B2 (en) * | 2002-10-08 | 2006-06-06 | Sun Microsystems, Inc. | Dynamically configurable unit conversion mechanism |
WO2004061713A1 (ja) * | 2002-12-27 | 2004-07-22 | Fujitsu Limited | 構造化文書の構造変換装置、構造変換方法、記録媒体 |
WO2005003996A1 (en) * | 2003-07-08 | 2005-01-13 | Telefonaktiebolaget Lm Ericsson (Publ) | Method for compressing markup languages files, by replacing a long word with a shorter word |
JP4348151B2 (ja) * | 2003-09-19 | 2009-10-21 | 株式会社リコー | 情報処理装置及び情報処理方法 |
AU2003273203A1 (en) * | 2003-10-01 | 2005-04-14 | Vibrasoft Pte. Ltd. | A method of updating a data source from transformed data |
US7526491B2 (en) * | 2003-10-15 | 2009-04-28 | Oracle International Corporation | System and method for creating and using temporary data storage in an Xforms application |
KR100803285B1 (ko) * | 2003-10-21 | 2008-02-13 | 한국과학기술원 | 역 산술 부호화와 타입 추론 엔진을 이용한 질의 가능 엑스-엠-엘 압축 방법 |
US20050198567A1 (en) * | 2004-01-29 | 2005-09-08 | Vermeulen Bert M. | Web navigation method and system |
JP4114873B2 (ja) | 2004-02-17 | 2008-07-09 | インターナショナル・ビジネス・マシーンズ・コーポレーション | サーバ装置、サービス方法、プログラム及び記録媒体 |
JP4525115B2 (ja) * | 2004-03-11 | 2010-08-18 | 日本電気株式会社 | 構造化文書処理装置、構造化文書処理方法、および構造化文書処理プログラム |
JPWO2005101210A1 (ja) * | 2004-04-09 | 2008-03-06 | シャープ株式会社 | データ解析装置およびデータ解析プログラム |
US7827205B2 (en) | 2004-05-27 | 2010-11-02 | International Business Machines Corporation | Bi-directional data mapping tool |
US7584422B2 (en) * | 2004-07-12 | 2009-09-01 | Informatica Corporation | System and method for data format transformation |
US7290206B2 (en) * | 2004-07-21 | 2007-10-30 | International Business Machines Corporation | Converting documents using a global property indicating whether event logging is performed on conversion filters |
US8769401B2 (en) * | 2004-08-05 | 2014-07-01 | Digi International Inc. | Method for compressing XML documents into valid XML documents |
US7801923B2 (en) * | 2004-10-29 | 2010-09-21 | Robert T. and Virginia T. Jenkins as Trustees of the Jenkins Family Trust | Method and/or system for tagging trees |
US7444345B2 (en) * | 2005-02-15 | 2008-10-28 | International Business Machines Corporation | Hierarchical inherited XML DOM |
US20060206808A1 (en) * | 2005-03-08 | 2006-09-14 | Ugs Corp. | System, method, and computer program product for transformation of markup-language objects |
US7630997B2 (en) * | 2005-03-23 | 2009-12-08 | Microsoft Corporation | Systems and methods for efficiently compressing and decompressing markup language |
JP4735155B2 (ja) * | 2005-09-21 | 2011-07-27 | 富士ゼロックス株式会社 | 表示装置及び文字列データベース再定義方法 |
US7599944B2 (en) * | 2005-12-16 | 2009-10-06 | Microsoft Corporation | Electronic data interchange (EDI) schema simplification interface |
US7447707B2 (en) * | 2005-12-16 | 2008-11-04 | Microsoft Corporation | Automatic schema discovery for electronic data interchange (EDI) at runtime |
US7647500B2 (en) * | 2005-12-16 | 2010-01-12 | Microsoft Corporation | Synchronous validation and acknowledgment of electronic data interchange (EDI) |
US7650353B2 (en) * | 2005-12-16 | 2010-01-19 | Microsoft Corporation | XML specification for electronic data interchange (EDI) |
US7593949B2 (en) * | 2006-01-09 | 2009-09-22 | Microsoft Corporation | Compression of structured documents |
US7676455B2 (en) * | 2006-02-03 | 2010-03-09 | Bloomberg Finance L.P. | Identifying and/or extracting data in connection with creating or updating a record in a database |
AU2007212055B2 (en) * | 2006-02-06 | 2010-12-16 | Informatica Corporation | Creating and managing XML schema version transformations |
US7685208B2 (en) * | 2006-02-24 | 2010-03-23 | Microsoft Corporation | XML payload specification for modeling EDI schemas |
US7984373B2 (en) * | 2006-02-24 | 2011-07-19 | Microsoft Corporation | EDI instance based transaction set definition |
US7703099B2 (en) * | 2006-02-24 | 2010-04-20 | Microsoft Corporation | Scalable transformation and configuration of EDI interchanges |
US7620645B2 (en) * | 2006-02-24 | 2009-11-17 | Microsoft Corporation | Scalable algorithm for sharing EDI schemas |
US8156148B2 (en) * | 2006-02-24 | 2012-04-10 | Microsoft Corporation | Scalable algorithm for sharing EDI schemas |
US20080059577A1 (en) * | 2006-09-05 | 2008-03-06 | Suman Kumar Kalia | Scalable logical model for edi and system and method for creating, mapping and parsing edi messages |
US20080059506A1 (en) * | 2006-09-05 | 2008-03-06 | Suman Kumar Kalia | Method, system and schema for building a hierarchical model schema definition from a flat model definition |
US7542982B2 (en) * | 2006-09-05 | 2009-06-02 | International Business Machines Corporation | Message validation model |
US20080126386A1 (en) * | 2006-09-20 | 2008-05-29 | Microsoft Corporation | Translation of electronic data interchange messages to extensible markup language representation(s) |
JP4982154B2 (ja) * | 2006-11-08 | 2012-07-25 | 株式会社日立製作所 | 構造化文書の構文解析方法及び装置 |
JP2008134898A (ja) * | 2006-11-29 | 2008-06-12 | Kddi Corp | 健診情報システム |
US8381093B2 (en) * | 2006-12-06 | 2013-02-19 | Microsoft Corporation | Editing web pages via a web browser |
US8020094B2 (en) * | 2006-12-06 | 2011-09-13 | Microsoft Corporation | Editing web pages via a web browser |
US7574446B2 (en) * | 2006-12-06 | 2009-08-11 | Catalyst Repository Systems, Inc. | Converting arbitrary strings into numeric representations to facilitate complex comparisons |
US7836396B2 (en) * | 2007-01-05 | 2010-11-16 | International Business Machines Corporation | Automatically collecting and compressing style attributes within a web document |
US20080168081A1 (en) * | 2007-01-09 | 2008-07-10 | Microsoft Corporation | Extensible schemas and party configurations for edi document generation or validation |
JP4756003B2 (ja) * | 2007-03-01 | 2011-08-24 | エヌ・ティ・ティ・コミュニケーションズ株式会社 | データ圧縮転送装置、データ圧縮転送システム、データ圧縮転送方法、およびデータ圧縮転送プログラム |
US20080244442A1 (en) * | 2007-03-30 | 2008-10-02 | Microsoft Corporation | Techniques to share information between application programs |
GB0712935D0 (en) * | 2007-07-04 | 2007-08-15 | Deltamxl Ltd | Representation of multiple markup language files in one file for the productionof new new markup language files |
KR20100080822A (ko) * | 2007-09-28 | 2010-07-12 | 엑세리온 악티에볼라그 | 네트워크 오퍼레이팅 시스템 |
WO2009091411A1 (en) * | 2008-01-18 | 2009-07-23 | Hewlett-Packard Development Company, L.P. | Generation of a representative data string |
JP5134989B2 (ja) * | 2008-01-31 | 2013-01-30 | 株式会社東芝 | サーバ、データ転送方法及びプログラム |
JP4786695B2 (ja) * | 2008-11-04 | 2011-10-05 | 富士通株式会社 | 構造化文書の構造変換装置 |
US20100235806A1 (en) * | 2009-03-13 | 2010-09-16 | Microsoft Corporation | Rich Web Site Authoring And Design |
JP2010287052A (ja) * | 2009-06-11 | 2010-12-24 | Fujitsu Ltd | 検索システムおよび記憶媒体 |
US8713426B2 (en) | 2009-06-25 | 2014-04-29 | Oracle International Corporation | Technique for skipping irrelevant portions of documents during streaming XPath evaluation |
US8832676B2 (en) * | 2009-09-30 | 2014-09-09 | Zynga Inc. | Apparatuses, methods and systems for a social networking application updater |
US9165086B2 (en) | 2010-01-20 | 2015-10-20 | Oracle International Corporation | Hybrid binary XML storage model for efficient XML processing |
US8566343B2 (en) | 2010-06-02 | 2013-10-22 | Oracle International Corporation | Searching backward to speed up query |
US8447785B2 (en) | 2010-06-02 | 2013-05-21 | Oracle International Corporation | Providing context aware search adaptively |
US9626184B2 (en) * | 2013-06-28 | 2017-04-18 | Intel Corporation | Processors, methods, systems, and instructions to transcode variable length code points of unicode characters |
US9940351B2 (en) * | 2015-03-11 | 2018-04-10 | International Business Machines Corporation | Creating XML data from a database |
US9990343B2 (en) * | 2016-06-27 | 2018-06-05 | Synergy Platform Pty Ltd | System and method for in-browser editing |
CN111295646A (zh) * | 2017-08-31 | 2020-06-16 | 阿维瓦软件有限公司 | 从数据字符串自动映射和生成标签 |
US10785017B2 (en) * | 2018-04-24 | 2020-09-22 | Microsoft Technology Licensing, Llc | Mitigating timing attacks via dynamically scaled time dilation |
US11017078B2 (en) | 2018-04-24 | 2021-05-25 | Microsoft Technology Licensing, Llc | Environmentally-trained time dilation |
US10965444B2 (en) | 2018-04-24 | 2021-03-30 | Microsoft Technology Licensing, Llc | Mitigating timing attacks via dynamically triggered time dilation |
KR102177489B1 (ko) * | 2018-08-17 | 2020-11-11 | 주식회사 마크베이스 | 센서 태그 데이터를 위한 색인 검색 방법 및 장치 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6009436A (en) * | 1997-12-23 | 1999-12-28 | Ricoh Company, Ltd. | Method and apparatus for mapping structured information to different structured information |
US6963875B2 (en) * | 2000-03-23 | 2005-11-08 | General Atomics | Persistent archives |
JP3230677B1 (ja) * | 2000-06-01 | 2001-11-19 | 日本インターシステムズ株式会社 | 自動集計方法、自動集計装置および記録媒体 |
US6804677B2 (en) * | 2001-02-26 | 2004-10-12 | Ori Software Development Ltd. | Encoding semi-structured data for efficient search and browsing |
-
2001
- 2001-12-28 JP JP2001401934A patent/JP4163870B2/ja not_active Expired - Fee Related
-
2002
- 2002-10-21 US US10/274,230 patent/US20030158854A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20030158854A1 (en) | 2003-08-21 |
JP2003203067A (ja) | 2003-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4163870B2 (ja) | 構造化文書変換装置 | |
US5812999A (en) | Apparatus and method for searching through compressed, structured documents | |
US8484552B2 (en) | Extensible stylesheet designs using meta-tag information | |
US8954841B2 (en) | RTF template and XSL/FO conversion: a new way to create computer reports | |
JP4373721B2 (ja) | マークアップ言語文書を符号化するための方法およびシステム | |
JP4091726B2 (ja) | 構造化文書の表示規則の生成方法、システムおよびプログラムが記録された媒体ならびに構造化文書およびその文書型定義の変更方法、システムおよびプログラムが記録された媒体 | |
JP4977128B2 (ja) | データベースからxml文書を動的に生成する方法 | |
US8631041B2 (en) | Secondary lazy-accessible serialization of electronic content | |
US7114123B2 (en) | User controllable data grouping in structural document translation | |
US8037199B2 (en) | Localization of resources used by applications in hand-held electronic devices and methods thereof | |
US20010047365A1 (en) | System and method of packaging and unpackaging files into a markup language record for network search and archive services | |
US20020059345A1 (en) | Method for generating transform rules for web-based markup languages | |
US7509574B2 (en) | Method and system for reducing delimiters | |
JP4388929B2 (ja) | 構造化文書の構造変換装置、構造変換方法、記録媒体 | |
US8397157B2 (en) | Context-free grammar | |
JP2007179492A (ja) | 分割プログラム、連結プログラム、情報処理方法 | |
JP4246186B2 (ja) | 構造化文書のデータ展開方法、データ処理方法及び処理システム | |
US20090235164A1 (en) | Text file interface support in an object oriented application | |
CN103631604B (zh) | 一种基于celts-41规范的标准化数字学习资源管理方法 | |
US8024353B2 (en) | Method and system for sequentially accessing compiled schema | |
US20020002566A1 (en) | Transfromation of marked up documents using a base architecture | |
US7500184B2 (en) | Determining an acceptance status during document parsing | |
US20060184547A1 (en) | Method and system for fast encoding of data documents | |
US7735001B2 (en) | Method and system for decoding encoded documents | |
JP4571991B2 (ja) | 構造化文書変換装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041202 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20061020 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070612 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070808 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070911 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071112 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080304 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080402 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20080515 |
|
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: 20080715 |
|
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: 20080725 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110801 Year of fee payment: 3 |
|
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: 20120801 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120801 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130801 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |