JP2003203067A - 構造化文書変換方法およびデータ変換方法 - Google Patents

構造化文書変換方法およびデータ変換方法

Info

Publication number
JP2003203067A
JP2003203067A JP2001401934A JP2001401934A JP2003203067A JP 2003203067 A JP2003203067 A JP 2003203067A JP 2001401934 A JP2001401934 A JP 2001401934A JP 2001401934 A JP2001401934 A JP 2001401934A JP 2003203067 A JP2003203067 A JP 2003203067A
Authority
JP
Japan
Prior art keywords
conversion
document
character string
data
tag
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.)
Granted
Application number
JP2001401934A
Other languages
English (en)
Other versions
JP4163870B2 (ja
Inventor
Shigeru Yoshida
茂 吉田
Hironori Yahagi
裕紀 矢作
Nobuko Itani
宣子 井谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2001401934A priority Critical patent/JP4163870B2/ja
Priority to US10/274,230 priority patent/US20030158854A1/en
Publication of JP2003203067A publication Critical patent/JP2003203067A/ja
Application granted granted Critical
Publication of JP4163870B2 publication Critical patent/JP4163870B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database

Abstract

(57)【要約】 【課題】構造化文書に対する操作に必要となるリソース
を軽減し、構造化文書を処理する際におけるメモリ使用
量削減と処理速度の高速化との両方を実現する。 【解決手段】 変換対象の構造化文書を成す要素をキー
要素と非キー要素とに分け、所定のタグ名および所定の
属性名を付与された新たな要素を作成し非キー要素のタ
グ名を含むタグ名文字列を作成しこのタグ名文字列を新
たな要素において所定の属性名に対応する属性値として
記述するタグ名変換を行ない、非キー要素の内容を含む
内容文字列を作成しこの内容文字列を新たな要素の内容
として記述する内容変換を行ない、キー要素を、変換後
の構造化文書においてそのまま記述する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、XML(eXtensibl
e Markup Language)等の構造化文書を取り扱うシステム
に適用される技術に関し、そのシステムにおいて処理速
度を高速化するとともに使用メモリ量を削減すべく、構
造化文書のデータ構造や、構造化文書を成す文字列を変
換するための技術に関する。
【0002】XML文書は、その特徴によって、次の2
種類に大きく分類される。一つは、伝票,予定表など,
タグ数が多く、要素内容が比較的短い、データ系XML
文書である。また、もう一つは、雑誌,マニュアル,辞
典など、要素内容が比較的長い文章になる文書系XML
文書である。本発明は、前者のデータ系XML文書を処
理対象とする場合に用いて好適の技術で、特に、表形式
で表わされ、データベースのように扱われるXML文書
を処理対象とする場合に用いて好適の技術である。
【0003】
【従来の技術】近年、インターネットを通して、個人,
企業,自治体など、あらゆる種類のシステムが相互に通
信可能に接続されており、これらのシステムが相互に連
携してWebサービスが提供されたりEDI(Electron
ic Data Interchange)やEC(Electronic Commerce)
が行なわれたりしつつある。このため、幅広い情報の交
換が必要になってきている。このような状況下におい
て、XMLは、データを構造化する柔軟な表現能力を有
し、コンピュータによる処理に適しているので、上記の
システム間のデータ交換や各システムでのデータ処理を
行なう際の、共通基盤のフォーマットとして注目されて
いる。
【0004】XMLは、1986年ISO(Internatio
nal Organization for Standardization)で標準化され
たSGML(Standard Generalized Markup Language)を
インターネットで活用し易くするために、1998年2
月にその基本仕様XML1.0としてW3C(World Wide W
eb Consortium)において策定されたものである。Web
ページ作成言語であるHTML(HyperText Markup Lang
uage)は、タグが固定され、表示に特化されたものとな
っており、タグ情報を基にコンピュータで情報を処理し
たいという要件に対応することができないという問題が
あった。これに対し、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)によってキー要素と非キー要素のXM
L文書とを関連付ける。別ファイルで、タグ名「情報」
の要素に非キー要素をまとめておき、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専用の圧縮ソフトX
MLZipにより圧縮する。データベース形式のXML
データでは、レコード毎に圧縮ファイルが作成され、圧
縮されたXMLデータを部分的に復元することができる
ようになっている。XML文書をレコード毎に解凍でき
るようにすることで、メモリの制約を回避することがで
きる。ただし、このような従来技術3では、1レコード
当たりのサイズ(データ量)が大きくない場合には、有
効な圧縮率を得ることができない。
【0017】
【発明が解決しようとする課題】ところで、代表的な構
造化文書であるXML文書に対しては、そのXML文書
を応用ソフトウエア(アプリケーション)によって扱う
ために、DOM(Document Object Model)とSAX(Simp
le API for XML)と呼ばれる、2つの標準的なインター
フェイス(API:Application Programming Interfac
e)が定められている。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】
【課題を解決するための手段】上記目的を達成するため
に、本発明の構造化文書変換方法(請求項1)は、変換
対象の構造化文書を成す要素をキー要素と非キー要素と
に分け、所定のタグ名および所定の属性名を付与された
新たな要素を作成し、該非キー要素のタグ名を含むタグ
名文字列を作成し、該タグ名文字列を、該新たな要素に
おいて前記所定の属性名に対応する属性値として記述す
るタグ名変換を行ない、該非キー要素の内容を含む内容
文字列を作成し、該内容文字列を、該新たな要素の内容
として記述する内容変換を行ない、該キー要素を、変換
後の構造化文書において、そのまま(該キー要素に対し
何の変換も施すことなく)記述することを特徴としてい
る。
【0026】また、本発明の構造化文書変換方法(請求
項2)は、変換対象の構造化文書を成す要素をキー要素
と非キー要素とに分け、所定のタグ名を付与された新た
な要素を作成し、該非キー要素の記述中においてタグ付
けに関連する記号をタグ付けに関連しない文字列に置き
換えた文字列を作成し、該文字列を、該新たな要素の内
容として記述し、該キー要素を、変換後の構造化文書に
おいて、そのまま(該キー要素に対し何の変換も施すこ
となく)記述することを特徴としている。
【0027】さらに、本発明の構造化文書変換方法(請
求項3)は、変換対象の構造化文書を成す要素をキー要
素と非キー要素とに分け、所定のタグ名を付与された新
たな要素を作成し、該非キー要素を成す文字もしくは文
字列に対し出現頻度の高いものほど短い可変長符号を割
り付ける可変長符号化を行ない、該可変長符号化により
得られたバイナリデータを6ビットずつ1バイトの変換
データにパッキングし、各変換データにパッキングされ
た6ビットデータをASCII(American Standard Co
de for Information Interchange)コードに従う文字コ
ードに変換することにより、該非キー要素を、該文字コ
ードからなる圧縮文字列に変換し、該圧縮文字列を、該
新たな要素の内容として記述し、該キー要素を、変換後
の構造化文書において、そのまま(該キー要素に対し何
の変換も施すことなく)記述することを特徴としてい
る。
【0028】一方、本発明のデータ変換方法(請求項
4)は、変換対象の文字もしくは文字列に対し、出現頻
度の高いものほど短い可変長符号を割り付ける可変長符
号化を行ない、該可変長符号化により得られたバイナリ
データを6ビットずつ1バイトの変換データにパッキン
グして出力することを特徴としている。このとき、さら
に、各変換データにパッキングされた6ビットデータを
ASCIIコードに従う文字コードに変換し、該変換デ
ータ毎に得られた該文字コードを、前記変換対象の文字
もしくは文字列の圧縮変換結果として出力してもよい
(請求項5)。
【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実施形
態の構造化文書変換方法を適用して得られた変換後XM
L文書のメモリ展開形式を図1(B)に示す。なお、こ
こで示す展開形式は、応用ソフトウエアが標準API
(DOM)を介して変換後XML文書を操作するとき
の、メモリ上への展開形式である。
【0035】この図1(B)に示す変換後XML文書
は、図3(B)〜図3(D)を参照しながら後述するX
ML文書に対応するもので、この図1(B)では、図3
(B)〜図3(D)に示すXML文書をメモリ上へDO
Mツリーとして展開した例が示されている。図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変換部1
1,XSLT構造変換部12およびXSLT逆変換部1
3(データ構造変換/逆変換機構10)は、実際には、
一つの標準のXSLTプロセッサ(構造化文書変換プロ
セッサ)によって実現される。
【0041】XSLT変換部11は、XML文書によっ
て与えられ、キー要素と非キー要素との区別情報等を記
したデータ構造変換の仕様(例えば図9参照)を読み込
み、そのXML文書と自動変換スタイルシートとによ
り、構造変換用スタイルシート(例えば図10参照)お
よび逆変換用スタイルシート(例えば図11参照)を生
成するものである。
【0042】XSLT構造変換部12は、変換対象のX
ML文書(入力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 Separ
ated 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レコードでは、属性名“ta
gs”の属性値として記述されるタグ名文字列が“A,
C,C”に置き換えられている。
【0056】図3(D)に示す第3具体例では、タグ名
“情報”,第1属性名“tags”および第2属性名“cont
ents”を付与された新たな要素を作成した上で、タグ名
変換により、非キー要素についてのタグ名文字列をCS
V形式で作成し、そのタグ名文字列を、新たな要素にお
いて第1属性名“tags”に対応する第1属性値として記
述している。また、内容変換により、非キー要素につい
ての内容文字列をCSV形式で作成し、この内容文字列
を、新たな要素において第2属性名“contents”に対応
する第2属性値として記述している。なお、この場合、
新たな要素は空要素タグとして記述されることになる。
【0057】つまり、図3(D)に示す変換後XML文
書の第1レコードでは、タグ名“情報”の要素におい
て、内容文字列“A部,A市,123”が第2属性名“con
tents”の第2属性値として記述され、タグ名文字列
“部署,住所,電話”が第1属性名“tags”の第1属性
値として記述されている。また、第2レコードでは、タ
グ名“情報”の要素において、内容文字列“B部,45
6,789”が第2属性名“contents”の第2属性値として
記述され、タグ名文字列“部署,電話,電話”が第1属
性名“tags”の第1属性値として記述されている。この
とき、図3(C)に示した第2具体例と同様、第1属性
値として記述されるタグ名文字列に対して、さらに、上
述と同様のタグ名短縮変換を施してもよい。
【0058】図3(E)に示す第4具体例では、タグ名
変換により、非キー要素についてのタグ名文字列をCS
V形式で作成し、そのタグ名文字列をタグ名として付与
された新たな要素を作成する。そして、内容変換によ
り、非キー要素についての内容文字列を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文書に適用する場合、表形式XM
L文書における各レコードの要素記述が規則性を有して
いるので、表形式でない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具体例では、代表タ
グ名“情報”を付与された新たな要素を作成した上で、
内容変換により、非キー要素についての内容文字列をC
SV形式で作成し、この内容文字列を、新たな要素の内
容として記述している。つまり、図4(B)に示す変換
後XML文書の第1レコードでは、タグ名“情報”の要
素において、内容文字列“A部,A市,123”が要素内
容として記述される。また、第2レコードでは、タグ名
“情報”の要素において、内容文字列“B部,B市,45
6”が要素内容として記述される。なお、図4(B)に
示すXML文書は、図9を参照しながら後述する変換仕
様文書に従って、図4(A)に示すXML文書を変換し
て得られたものである。
【0069】図4(C)に示す第2具体例では、タグ名
“情報”および属性名“contents”を付与された新たな
要素を作成した上で、内容変換により、非キー要素につ
いての内容文字列をCSV形式で作成し、この内容文字
列を、新たな要素において属性名“contents”に対応す
る属性値として記述している。なお、この場合、新たな
要素は空要素タグとして記述されることになる。
【0070】つまり、図4(C)に示す変換後XML文
書の第1レコードでは、タグ名“情報”の要素におい
て、内容文字列“A部,A市,123”が属性名“content
s”の属性値として記述される。また、第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”および属性名“tag
s”を付与された第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”,“Emai
l”の先頭に付加された“1”は階層構造識別情報であ
り、“1”を付されたタグ名の要素が“0”を付されたタ
グ名の要素の下位階層(要素内容に含まれる要素)であ
ることを示すものである。
【0083】この図6に示すXML文書は、図15を参
照しながら後述する変換仕様文書に従って、図5に示す
XML文書を変換して得られたものである。特に、図6
に示すXML文書は、図15に示す変換仕様文書におい
て“情報1”および“情報2”の表形式情報としていず
れも“nontable”(表形式でない旨)を設定して得られ
たものである。つまり、この図6に示す例では、タグ名
“住所”および“連絡先”の要素は、レコード毎の要素
の種類や数が同一であるので、表形式として取り扱うこ
とのできるものであるが、表形式情報として“nontabl
e”を設定することにより、タグ名“住所”および“連
絡先”の要素を、表形式ではないものとして取り扱って
いる。
【0084】図7に示す第2具体例においても、図6に
示した例と同様、レコード毎に、タグ名“勤務先”の要
素内に、タグ名“情報1”および属性名“tags”を付与
された第1の新要素が作成されるとともに、タグ名“名
前”やタグ名“勤務先”の要素と同一階層に、タグ名
“情報2”および属性名“tags”を付与された第2の新
要素が作成される。
【0085】また、第1レコードのタグ名“情報1”の
要素においても、図6に示した例と同様、タグ名文字列
“部署,@担務”が属性名“tags”の属性値として記述
され、内容文字列“A部,主務”が要素内容として記述
されている。ただし、図7に示す第2具体例では、第1
レコードのタグ名“情報2”の要素においては、タグ名
文字列“住所,連絡先/電話,連絡先/Fax,連絡先/Emai
l”が属性名“tags”の属性値として記述され、内容文
字列“A市,123,321,a1-a2@a-sya.co.jp”が要素内
容として記述されている。
【0086】同様に、第2レコードのタグ名“情報1”
の要素においては、タグ名文字列“部署,@担務,部
署,@担務”が属性名“tags”の属性値として記述さ
れ、内容文字列“B-1部,主務,B-2部,兼務”が要素
内容として記述されている。また、第2レコードのタグ
名“情報2”の要素においては、タグ名文字列“住所,
連絡先/電話,連絡先/Fax,連絡先/Email”が属性名“t
ags”の属性値として記述され、内容文字列“B市,45
6,654,b1-b2@b-sya.co.jp”が要素内容として記述さ
れている。
【0087】ここで、“電話”,“Fax”,“Email”の
先頭に付加された文字列“連絡先/”は階層構造識別情
報であり、文字列“連絡先/”を付されたタグ名の要素
が、タグ名“連絡先”の要素の下位階層(要素内容に含
まれる要素)であることを示すものである。この階層位
置の表記法は、XPathとして知られている。
【0088】この図7に示すXML文書は、図17を参
照しながら後述する変換仕様文書に従って、図5に示す
XML文書を変換して得られたものである。特に、図7
に示すXML文書は、図17に示す変換仕様文書におい
て“情報1”および“情報2”の表形式情報としていず
れも“nontable”(表形式でない旨)を設定して得られ
たものである。つまり、この図7に示す例でも、タグ名
“住所”および“連絡先”の要素は表形式として取り扱
うことのできるものであるが、表形式情報として“nont
able”を設定することにより、タグ名“住所”および
“連絡先”の要素を、表形式ではないものとして取り扱
っている。
【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市,45
6,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_tag
s”の要素の内容には、タグ名“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”
を記述する一方、非表形式を指定する場合には“forma
t”属性値として例えば“nontable”を記述する。
【0099】変換仕様文書の“format”属性値として
“table”が記述されていれば、図2に示すXSLT構
造変換部12は、表形式に対応した変換処理(タグ名変
換を省略し内容変換のみ行なう処理)を実行するととも
に、図2に示すXSLT逆変換部13は、表形式に対応
した逆変換を実行する。逆に、変換仕様文書の“forma
t”属性値として“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〕階層構造と属性とをもつX
ML文書のための変換仕様文書 図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で説明したX
ML文書に変換するためのものである。ここでは、葉と
なる要素の階層構造が、属性“path”を用いて記述され
る。また、“path”属性値は、“XPath”で表現され
る。
【0112】このように、図17に示す変換仕様文書で
は、属性“path”を用いて階層構造を記述する点以外
は、図15に示した変換仕様文書と同様であるので、そ
の詳細な説明は省略する。また、図17に示すような変
換仕様文書も、図16にて説明した手順と同様の手順に
よって作成される。
【0113】なお、前述した通り、図6や図7に示した
XML文書は、図15や図17に示す変換仕様文書を用
いて変換されたもので、“format”属性値として“nont
able”を設定し、変換対象のXML文書が表形式データ
であるか否かを区別されることなく(つまり非表形式デ
ータとして)変換されたものである。これに対し、図8
に示したXML文書では、“情報1”の“format”属性
値として“nontable”を設定するとともに“情報2”の
“format”属性値として“table”を設定し、表形式デ
ータの非キー要素に対しては表形式変換が施されるとと
もに、非表形式データの非キー要素に対しては非表形式
変換が施されている。
【0114】〔1−7〕第1実施形態の変換方法による
具体的な変換処理手順 次に、図18〜図21を参照しながら、本発明の第1実
施形態としての構造化文書変換方法による変換処理手順
について説明する。図18および図19は、データ構造
変換/逆変換処理を、Javaソフトウエアにより、DOM
およびXSLTなどを使用して実行する場合の処理手順
を示すものである。なお、Javaは、米国Sun Microsyste
ms社によって開発されたC++類似のオブジェクト指向プ
ログラミング言語である。
【0115】ここで、図18は、変換仕様文書に基づい
て変換対象XML文書に対してデータ構造変換を施す際
の処理手順を説明するためのフローチャート(ステップ
A1〜A16)であり、図19は、変換仕様文書に基づ
いて変換後XML文書(処理済XML文書)に対してデ
ータ構造の逆変換を施す際の処理手順を説明するための
フローチャート(ステップB1〜B15)である。図1
8および図19に示す処理手順は、図2に示すようなデ
ータ構造変換/逆変換機構10を用いることなく、変換
仕様文書に基づいて、変換対象XML文書や変換後XM
L文書に対する処理を実行する際の処理手順である。
【0116】変換対象XML文書に対してデータ構造変
換を施す際には、図18に示すように、最初に、プロセ
ッサは、変換仕様文書を読み込んで、その変換仕様文書
の記述から変換仕様を解析してから(ステップA1)、
変換対象のXML文書を読み込み、データ構造の変換処
理を開始する(ステップA2)。
【0117】まず、変換対象XML文書のルート(roo
t)のタグを変換後XML文書側にコピーしてから(ス
テップA3)、次のレコードデータを一つ変換対象XM
L文書から切り出す(ステップA4)。この後、全ての
レコードに対して処理を行なったか否かを判断し(ステ
ップA5)、まだ全てのレコードに対する処理を完了し
ていない場合(ステップA5のNOルート)、次のレコ
ードのタグを変換後XML文書側にコピーし(ステップ
A6)、現在処理中のレコードから次の要素データを切
り出す(ステップA7)。
【0118】ここで次の要素データが切り出された場合
には、まだ全ての要素に対する処理を完了していないも
のと判断し(ステップA8のNOルート)、切り出され
た要素がキー要素であるか否かを判断する(ステップA
9)。キー要素である場合(ステップA9のYESルー
ト)、切り出された要素をそのまま変換後XML文書側
にコピーしてから(ステップA10)、ステップA7の
処理に戻る。
【0119】切り出された要素がキー要素でない場合
(ステップA9のNOルート)、その要素が非キー要素
であるか否かを判断する(ステップA11)。もし非キ
ー要素でない場合(ステップA11のNOルート)、何
らかのエラー処理を実行する。一方、非キー要素である
場合(ステップA11のYESルート)、変換仕様文書
によって予め指定されたタグ名の新要素を作成する(ス
テップA12)。既に非キー要素に対応する新要素が作
成されている場合には、この作成処理は省略される。
【0120】そして、ステップA12で新要素を作成し
た場合には、その非キー要素のタグ名を新要素の属性に
おいてタグ名文字列(属性値)として記述する。既に非
キー要素に対応する新要素が作成されている場合には、
その非キー要素のタグ名を、新要素の属性におけるタグ
名文字列の後に、CSV形式でつまり区切り記号を介し
て繋げる(ステップA13)。
【0121】また、ステップA12で新要素を作成した
場合には、その非キー要素の内容を新要素の内容におい
て内容文字列として記述する。既に非キー要素に対応す
る新要素が作成されている場合には、その非キー要素の
内容を、新要素の要素における内容文字列の後に、CS
V形式でつまり区切り記号を介して繋げる(ステップA
14)。この後、ステップA7の処理に戻る。なお、ス
テップA14において、非キー要素の内容中に区切り記
号(ここではコンマ“,”)と同じ文字が現われた場
合、前述したように、非キー要素の内容中における文字
(区切り記号)を、他の識別文字列(例えば実体参照記
述等)に置き換える。
【0122】ステップA7で次の要素データが切り出さ
れなかった場合には、全ての要素に対する処理を完了し
たものと判断し(ステップA8のYESルート)、現在
処理中のレコードの終了タグを出力し変換後XML文書
側にコピーしてから(ステップA15)、ステップA4
の処理に戻る。また、全てのレコードに対する処理を完
了した場合(ステップA5のYESルート)、ルートの
終了タグを出力し変換後XML文書側にコピーし(ステ
ップA16)、変換処理を終了する。
【0123】逆に、変換後XML文書に対してデータ構
造の逆変換を施す際には、図19に示すように、最初
に、プロセッサは、変換仕様文書を読み込んで、その変
換仕様文書の記述から変換仕様を解析してから(ステッ
プB1)、逆変換対象XML文書を読み込み、データ構
造の逆変換処理を開始する(ステップB2)。
【0124】まず、逆変換対象XML文書のルート(ro
ot)のタグを復元XML文書側にコピーしてから(ステ
ップB3)、次のレコードデータを一つ逆変換対象XM
L文書から切り出す(ステップB4)。この後、全ての
レコードに対して処理を行なったか否かを判断し(ステ
ップB5)、まだ全てのレコードに対する処理を完了し
ていない場合(ステップB5のNOルート)、そのレコ
ードのタグを復元XML文書側にコピーし(ステップB
6)、現在処理中のレコードから次の要素データを切り
出す(ステップB7)。
【0125】ここで次の要素データが切り出された場合
には、まだ全ての要素に対する処理を完了していないも
のと判断し(ステップB8のNOルート)、切り出され
た要素がキー要素であるか否かを判断する(ステップB
9)。キー要素である場合(ステップ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を用い、変換仕様文書に基づいて、変換対象X
ML文書や変換後XML文書に対する処理を実行する際
の処理手順である。
【0130】ここで、図20(A)および図20(B)
は、それぞれ、第1実施形態における変換用スタイルシ
ートおよび逆変換用スタイルシートの作成手順(XSL
T変換部11での処理)を説明するためのフローチャー
トである。また、図20(C)は、XSLT構造変換部
12が構造変換用スタイルシートに基づいて変換対象X
ML文書に対してデータ構造変換を施す際の処理手順を
説明するためのフローチャートであり、図20(D)
は、XSLT逆変換部13が逆変換用スタイルシートに
基づいて変換後XML文書(処理済XML文書)に対し
てデータ構造の逆変換を施す際の処理手順を説明するた
めのフローチャートである。
【0131】変換対象XML文書に対する処理を施すの
に先立って、まず、図20(A)に示すように、XSL
T変換部11は、XMLで記述された変換仕様文書を読
み込んで、その変換仕様文書の記述から変換仕様を解析
してから(ステップA1)、その変換仕様と自動変換ス
タイルシートとを用いて、データ構造変換用スタイルシ
ートを作成する(ステップA20)。また、同様に、図
20(B)に示すように、XSLT変換部11は、XM
Lで記述された変換仕様文書を読み込んで、その変換仕
様文書の記述から変換仕様を解析してから(ステップB
1)、その変換仕様と自動変換スタイルシートとを用い
て、データ構造逆変換用スタイルシートを作成する(ス
テップ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を通して、XS
LT構造変換部12からの、要素数を削減された変換後
XML文書に対し、タグ検索等の処理を行なうことにな
るので、応用ソフトウエア30による処理速度は大幅に
高速化される。
【0135】応用ソフトウエア30が、変換後XML文
書に対してタグ検索を行なうものである場合、そのタグ
検索によってヒットしたレコードを記述するXML文書
(抽出XML文書)が抽出・出力される。この抽出XM
L文書は、XSLT逆変換部13によって上述のごとく
逆変換され、応用ソフトウエア30が元のXML文書に
対してタグ検索したのと全く同じ、検索結果(XML文
書)が得られることになる。
【0136】このとき、XSLT逆変換部13が逆変換
を施すXML文書は、応用ソフトウエア30によって抽
出された少数のレコードを記述されたXML文書である
ので、XSLT逆変換部13による逆変換のオーバーヘ
ッドは、ほとんど問題にならない。従って、応用ソフト
ウエア30で多数回実行される処理は、本実施形態のデ
ータ構造変換を予め施しておくことによって、大幅に高
速化されるとともに、動作メモリの使用量も大幅に削減
されることになる。
【0137】なお、図21(A)および図21(B)
は、それぞれ、第1実施形態における変換用スタイルシ
ートおよび逆変換用スタイルシートの作成手順(XSL
T変換部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】データが表形式である場合(ステップA2
2のYESルート)、XSLT変換部11は、変換仕様
と自動変換スタイルシートとを用いて、非キー要素のタ
グ名を新要素のタグ名で代表させる構造変換用スタイル
シートを作成する(ステップA20−1)。一方、非表
形式の場合(ステップA22のNOルート)、XSLT
変換部11は、変換仕様と自動変換スタイルシートとを
用いて、区切り記号を介して非キー要素のタグ名(もし
くは短縮タグ名)を繋いだタグ名文字列を変換後XML
文書中に記述させる構造変換用スタイルシートを作成す
る(ステップA20−2)。
【0140】また、図21(B)に示すように、XSL
T変換部11は、XMLで記述された変換仕様文書を読
み込んで、その変換仕様文書の記述から変換仕様を解析
してから(ステップB1)、“format”属性値を参照し
てデータ(変換対象XML文書)が表形式か否かを判断
する(ステップB22)。
【0141】データが表形式である場合(ステップB2
2のYESルート)、XSLT変換部11は、変換仕様
と自動変換スタイルシートとを用いて、新要素のタグ名
から非キー要素のタグ名を割り出せるようにした逆変換
用スタイルシートを作成する(ステップB20−1)。
一方、非表形式の場合(ステップB22のNOルー
ト)、XSLT変換部11は、変換仕様と自動変換スタ
イルシートとを用いて、タグ名文字列から非キー要素の
タグ名を復元させる構造変換用スタイルシートを作成す
る(ステップA20−2)。
【0142】〔1−8〕第1実施形態の効果 このように、本発明の第1実施形態としての構造化文書
変換方法によれば、変換対象のXML文書を成す要素が
キー要素と非キー要素とに分けられ、その変換対象の構
造化文書が、キー要素をそのまま記述する一方で非キー
要素(データ処理の対象とならない項目)を一つのタグ
にまとめて記述したXML文書に変換されるので、変換
後のXML文書では、要素数が大幅に削減されるととも
に、DOMツリーへの展開時や、タグ検索等のデータ処
理時に、非キー要素を一括して扱うことができる。
【0143】特に、データ処理の対象とならない非キー
要素が多いXML文書や、1レコードの要素数が多いX
ML文書での要素数の削減効果は大きく、例えば要素数
が半分になれば、DOMツリーへの展開およびタグ検索
に要する時間は半分に短縮することができる。また、変
換対象のXML文書が表形式データである場合には、そ
のXML文書を図4(B)や図4(C)にて説明したよ
うに変換することで、非キー要素のタグ名を変換後のX
ML文書に記述する必要がなくなるので、変換後のXM
L文書のデータ量を、変換前の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に示すように、コンマ等の区切り記号を介して(C
SV形式で)非キー要素のタグ名や内容を繋ぐことによ
り、タグ名文字列や内容文字列が、タグ付けに関連する
ことのない記号を用いて極めて容易に作成される。この
とき、非キー要素が複数階層を成している場合、図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”属性値の“t
able/nontable”)によって表形式変換を行なうか否かを
指示し、表形式変換や表形式逆変換の実行/非実行を自
動的に切り換えることができる。
【0152】〔2〕第2実施形態の説明 〔2−1〕第2実施形態の構造化文書変換方法の原理 図1(A),図3(A)および図22を参照しながら、
本発明の第2実施形態としての構造化文書変換方法の原
理について説明する。図1(A)および図3(A)によ
り前述したXML文書において、タグ名“名前”,“会
社”の要素をキー要素とするとともにタグ名“部署”,
“住所”,“電話”の要素を非キー要素とし、このXM
L文書に対し、第2実施形態の構造化文書変換方法を適
用して得られた変換後XML文書のメモリ展開形式を図
22に示す。なお、ここで示す展開形式は、応用ソフト
ウエアが標準API(DOM)を介して変換後XML文
書を操作するときの、メモリ上への展開形式である。
【0153】この図22に示すXML文書では、タグ名
“情報”を有する新たな要素が作成され、この新たな要
素の内容として、タグ名“部署”,“住所”,“電話”
の非キー要素が記述されている。ただし、非キー要素を
新たな要素の内容として記述する際に、非キー要素記述
におけるタグ記号“<”および“>”を実体参照記述に置
き換えている。また、タグ名“名前”,“会社”のキー
要素については、元のまま記述されている。なお、図2
2において、新要素“情報”の要素内容は、先頭の一部
のみ記述されている。
【0154】このようにしてレコード毎に非キー要素を
一つの要素にまとめるようにXML文書を変換すること
によって、XML文書中に含まれる要素の数、つまりメ
モリ上に展開されたツリーの子要素の数を大幅に減らす
ことができ、展開時やデータ処理時に非キー要素を一括
して扱うことができる。
【0155】ここで、レコード毎に非キー要素を一つの
要素にまとめる際、第2実施形態では、非キー要素の記
述中においてタグ付けに関連する記号をタグ付けに関連
しない文字列に置き換えた文字列を作成し、この文字列
を、新たな要素の内容(図22や図23参照)もしくは
新たな要素の属性値(図24参照)もしくは親要素の属
性値(図25参照)もしくは親要素の内容(図26参
照)として記述する。なお、第2実施形態の変換方法の
原理を説明するための図22では、上記文字列を新たな
要素の内容として記述した場合の変換後XML文書のD
OMツリーが示されている。
【0156】特に、第2実施形態では、非キー要素にお
けるタグ付けに関連する記号(タグ記号「<」および
「>」)を、「実体参照」と呼ばれる記述手法で、タグ
付けに関連しない他の文字列に置き換えている。実体(e
ntity)とは、ファイルや置換文字列のように、何らかの
形でXML文書の一部となりうるデータを格納している
ものをいう。「実体参照」を行なう場合には、XML実
現値の中で「&実体名;」という記述がなされる。
【0157】通常、文書型定義(DTD:Document Type
Definition)において、実体名と元のファイル名や文字
列との対応関係が宣言される。しかし、下記表1に示
す、タグ付けに関連する5つの実体<,>,&,’,”
は、DTDなしでも使用できるようになっている。例え
ば、要素内容中に実体(置換したい文字)「<」が記述
されていた場合、「<」は実体名「lt」を用いた実体参
照記述による文字列「&lt;」に置き換えられる。同様
に、「>」は「&gt;」に、「&」は「&amp;」に、「'」
は「&apos;」に、「"」は「&quot;」に置き換えられ
る。
【0158】
【表1】
【0159】このような実体参照記述を用いて、要素内
容中のタグを表わす記号「<」および「>」をそれぞれ実
体参照文字列「&lt;」および「&gt;」に置き換えること
により、要素内容中に記述されていたタグ記号は、パー
サー(構文解析ソフトウエア)でタグとして処理されな
くなる。従って、非キー要素を一つの要素にまとめる際
に、タグ記号を実体参照文字列に置換した一連の非キー
要素を、例えば<情報></情報>というタグで囲い、タグ
名“情報”の新要素の内容とすれば、その一連の非キー
要素は、単なる要素内容として扱われることになる。こ
のような変換方法を整理して記述すると、以下のように
なる。
【0160】(1)一連の非鍵要素を抽出する。 第1レコード:<部署>A部</部署><住所>A市</住所><
電話>123</電話> 第2レコード:<部署>B部</部署><電話>456</電話><電
話>789</電話>
【0161】(2)タグ記号を実体参照文字列に置換す
る。 「<」を「&lt;」に、「>」を「&gt;」に置換 第1レコード:&lt;部署&gt;A部&lt;/部署&gt;&lt;住
所&gt;A市&lt;/住所&gt;&lt;電話&gt;123&lt;/電話&g
t; 第2レコード:&lt;部署&gt;B部&lt;/部署&gt;&lt;電
話&gt;456&lt;/電話&gt;&lt;電話&gt;789&lt;/電話&gt;
【0162】(3)レコード毎に、<情報></情報>というタ
グで、実体参照を適用された一連の非キー要素を囲むこ
とにより、一連の非キー要素を1つの要素の内容として
まとめる。 第1レコード:<情報>&lt;部署&gt;A部&lt;/部署&gt;&
lt;住所&gt;A市&lt;/住所&gt;&lt;電話&gt;123&lt;/電
話&gt;</情報> 第2レコード:<情報>&lt;部署&gt;B部&lt;/部署&gt;&
lt;電話&gt;456&lt;/電話&gt;&lt;電話&gt;789&lt;/電
話&gt;</情報>
【0163】〔2−2〕第2実施形態のシステムおよび
変換/逆変換処理の流れ 本発明の第2実施形態としての構造化文書変換方法も、
図2で説明したシステムに適用される。多様な種類のX
ML文書に対して、各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文書を成す要素をキー要素と非キー要素とに分
け、タグ名“情報”を付与された新たな要素を作成し、
非キー要素の記述中においてタグ記号「<」,「>」をそ
れぞれ実体参照記述による文字列「&lt;」,「&gt;」に
置き換えた文字列を作成し、この文字列を新たな要素の
内容として記述する。キー要素については、変換後のX
ML文書においても、何の変換も施すことなくそのまま
記述する。このとき、キー要素と非キー要素とを区別す
るための情報や、新たな要素に関する情報(タグ名“情
報”)は、変換仕様文書に記述されて指定され、この変
換仕様文書に基づいて、変換対象のXML文書に対する
データ構造変換が施されるとともに、その変換を施され
たXML文書に対し、非キー要素の記述を元の状態に戻
す逆変換が施される。
【0169】図24に示す第2具体例では、変換対象の
XML文書を成す要素をキー要素と非キー要素とに分
け、タグ名“情報”および属性名“contents”を付与さ
れた新たな要素(空要素)を作成し、非キー要素の記述
中においてタグ記号「<」,「>」をそれぞれ実体参照記
述による文字列「&lt;」,「&gt;」に置き換えた文字列
を作成し、この文字列を新たな要素の属性名“content
s”に対応する属性値として記述する。キー要素につい
ては、変換後のXML文書においても、何の変換も施す
ことなくそのまま記述する。このとき、キー要素と非キ
ー要素とを区別するための情報や、新たな要素に関する
情報(タグ名“情報”および属性名“contents”)は、
変換仕様文書に記述されて指定され、この変換仕様文書
に基づいて、変換対象のXML文書に対するデータ構造
変換や、変換後XML文書に対する逆変換が施される。
【0170】図25に示す第3具体例では、変換対象の
XML文書を成す要素をキー要素と非キー要素とに分
け、非キー要素の親要素(タグ名“個人”)に新たな属
性名“contents”を付与し、非キー要素の記述中におい
てタグ記号「<」,「>」をそれぞれ実体参照記述による
文字列「&lt;」,「&gt;」に置き換えた文字列を作成
し、この文字列を親要素の属性名“contents”に対応す
る属性値として記述する。キー要素については、変換後
のXML文書においても、何の変換も施すことなくその
まま記述する。このとき、キー要素と非キー要素とを区
別するための情報や、親要素に関する情報(タグ名“個
人”や属性名“contents”)は、変換仕様文書に記述さ
れて指定され、この変換仕様文書に基づいて、変換対象
のXML文書に対するデータ構造変換や、変換後XML
文書に対する逆変換が施される。
【0171】図26に示す第4具体例では、変換対象の
XML文書を成す要素をキー要素と非キー要素とに分
け、非キー要素の記述中においてタグ記号「<」,「>」
をそれぞれ実体参照記述による文字列「&lt;」,「&g
t;」に置き換えた文字列を作成し、この文字列を親要素
(タグ名“個人”)の内容として記述する。キー要素に
ついては、変換後のXML文書においても、何の変換も
施すことなくそのまま記述する。このとき、キー要素と
非キー要素とを区別するための情報や、親要素に関する
情報(タグ名“個人”)は、変換仕様文書に記述されて
指定され、この変換仕様文書に基づいて、変換対象のX
ML文書に対するデータ構造変換や、変換後XML文書
に対する逆変換が施される。
【0172】このように、第2実施形態の変換方法も、
第1実施形態と同様、複数の非キー要素を一つの要素に
まとめ、応用ソフトウエアがデータ処理を実行している
間は非キー要素をデータ処理と無関係な要素として一括
して扱えるようにするものである。変換方法として、図
23〜図26で説明した各種方法のうちのどれを用いる
かは、自動変換スタイルシート等により選択・指定する
ことができるようになっている。このとき、これら各種
方法のうちのどれを用いるかは、XML文書のデータ量
によって、あるいは、データ処理に伴い新たな要素が幾
つ増えるかによって決定されることになるが、非キー要
素をひとまとめにして取り扱うという本発明の本質を考
えれば、どの方法を採用してもよい。
【0173】〔2−4〕第2実施形態の変換仕様文書お
よびスタイルシートの具体例 図27には、図4(A)に示した表形式XML文書を変
換対象とした場合の、具体的な変換仕様文書(XML文
書)が示されている。ここでは、変換対象のXML文書
が表形式データである場合について説明しているが、変
換対象のXML文書が非表形式データであっても、図2
7に示す変換仕様文書を用いて変換/逆変換を行なうこ
とができる。また、図27に示す変換仕様文書は、図2
3で説明した変換方法を実現するためのものである。
【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に示す手順は、レコー
ド内の階層数が任意であり且つ非キー要素が任意の属性
を有する場合の変換仕様の作成手順である。また、図3
0に示す手法で作成される変換仕様文書は、図23で説
明した変換方法を実現するためのものである。
【0178】レコード内の非キー要素が階層構造を成す
とともに属性を有する場合の変換仕様文書を作成する際
には、図30に示すように、まず、ルート(root)およ
びレコードのタグ名を要素“structure”で指定する
(ステップS1)。また、レコード内の要素をキー要素
と非キー要素との二つのグループに分ける(ステップS
2)。そして、キー要素のタグ名をそれぞれ<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,A1
5,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】また、その非キー要素の記述中におけるタ
グ記号「<」,「>」をそれぞれ実体参照記述による文字
列「&lt;」,「&gt;」に置き換える(ステップA3
2)。なお、このステップA32において、非キー要素
の内容中に、タグ付けに関連する記号(表1参照)と同
じ文字が現われた場合、その文字を、実体参照記述によ
る文字列に置き換える。
【0184】そして、ステップA31で新要素を作成し
た場合には、ステップA32での置換結果文字列を新要
素の内容として記述する。既に非キー要素に対応する新
要素が作成されている場合には、ステップA32での置
換結果文字列を、新要素の内容における置換結果文字列
の後に繋げて記述する(ステップA33)。この後、ス
テップA7の処理に戻る。
【0185】一方、図32に示す逆変換処理手順の第1
例では、非キー要素をまとめた新要素(<情報>タグ)が
ステップB7で切り出された場合(ステップB11のY
ESルート)、その新要素の内容の記述中における文字
列「&lt;」,「&gt;」を元のタグ記号「<」,「>」に復
元する(ステップB31)。なお、このステップB31
において、新要素における内容に、実体参照記述による
他の文字列が含まれている場合には、その文字列を、タ
グ付けに関連する元の記号(表1参照)に復元する。そ
して、復元XML文書において、非キー要素をまとめた
要素(<情報>タグ)の記述を削除してから(ステップB
32)、ステップB7の処理に戻る。
【0186】〔2−5−2〕変換/逆変換処理手順の第
2例 図33は、変換仕様文書に基づいて変換対象XML文書
に対してデータ構造変換を施す際の処理手順の第2例を
説明するためのフローチャートであり、図34は、変換
仕様文書に基づいて変換後XML文書(処理済XML文
書)に対してデータ構造の逆変換を施す際の処理手順の
第2例を説明するためのフローチャートである。ここで
説明する第2例は、図24で説明した変換方法に対応す
るものである。
【0187】図33に示す変換処理手順の第2例では、
ステップA7で切り出された要素データが非キー要素で
ある場合(ステップA11のYESルート)、タグ名
“情報”および属性名“contents”を付与された新要素
(<情報>タグ)を作成する(ステップA34)。既に非
キー要素に対応する新要素が作成されている場合には、
この作成処理は省略される。
【0188】また、その非キー要素の記述中におけるタ
グ記号「<」,「>」をそれぞれ実体参照記述による文字
列「&lt;」,「&gt;」に置き換える(ステップA3
5)。なお、このステップA35において、非キー要素
の内容中に、タグ付けに関連する記号(表1参照)と同
じ文字が現われた場合、その文字を、実体参照記述によ
る文字列に置き換える。
【0189】そして、ステップA34で新要素を作成し
た場合には、ステップA35での置換結果文字列を新要
素の“contents”属性値として記述する。既に非キー要
素に対応する新要素が作成されている場合には、ステッ
プA35での置換結果文字列を、新要素の“contents”
属性値における置換結果文字列の後に繋げて記述する
(ステップA36)。この後、ステップA7の処理に戻
る。
【0190】一方、図34に示す逆変換処理手順の第2
例では、非キー要素をまとめた新要素(<情報>タグ)が
ステップB7で切り出された場合(ステップB11のY
ESルート)、その新要素の“contents”属性値の記述
中における文字列「&lt;」,「&gt;」を元のタグ記号
「<」,「>」に復元する(ステップB33)。なお、こ
のステップB33において、新要素における“content
s”属性値に、実体参照記述による他の文字列が含まれ
ている場合には、その文字列を、タグ付けに関連する元
の記号(表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】また、その非キー要素の記述中におけるタ
グ記号「<」,「>」をそれぞれ実体参照記述による文字
列「&lt;」,「&gt;」に置き換える(ステップA3
8)。なお、このステップ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”属性値の記
述中における文字列「&lt;」,「&gt;」を元のタグ記号
「<」,「>」に復元する(ステップB35)。なお、こ
のステップB35において、親要素における“content
s”属性値に、実体参照記述による他の文字列が含まれ
ている場合には、その文字列を、タグ付けに関連する元
の記号(表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ルート)、その非キ
ー要素の記述中におけるタグ記号「<」,「>」をそれぞ
れ実体参照記述による文字列「&lt;」,「&gt;」に置き
換える(ステップA40)。なお、このステップA40
において、非キー要素の内容中に、タグ付けに関連する
記号(表1参照)と同じ文字が現われた場合、その文字
を、実体参照記述による文字列に置き換える。そして、
ステップA40での置換結果文字列を、非キー要素の親
要素(<個人>タグ)の内容として記述する(ステップA
41)。この後、ステップA7の処理に戻る。
【0201】一方、図38に示す逆変換処理手順の第4
例では、前述したステップB9´による処理に代えてス
テップB9″による処理が実行されている。このステッ
プB9″においては、ステップB7で切り出された要素
が、非キー要素を要素内容としてまとめたマージ親要素
であるか否かを判断する。
【0202】マージ親要素でない場合(ステップB9″
のNOルート)、前述したステップB10の処理へ移行
する一方、マージ親要素である場合(ステップB9″の
YESルート)、その親要素の要素内容の記述中におけ
る文字列「&lt;」,「&gt;」を元のタグ記号「<」,
「>」に復元する(ステップ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実施形態における変換用スタイルシ
ートおよび逆変換用スタイルシートの作成手順(XSL
T変換部11での処理)を説明するためのフローチャー
トである。また、図39(C)は、第2実施形態におい
て、XSLT構造変換部12が構造変換用スタイルシー
トに基づいて変換対象XML文書に対してデータ構造変
換を施す際の処理手順(変換処理手順の第5例)を説明
するためのフローチャートであり、図39(D)は、第
2実施形態において、XSLT逆変換部13が逆変換用
スタイルシートに基づいて変換後XML文書(処理済X
ML文書)に対してデータ構造の逆変換を施す際の処理
手順(逆変換処理手順の第5例)を説明するためのフロ
ーチャートである。
【0205】変換対象XML文書に対する処理を施すの
に先立って、まず、図39(A)に示すように、XSL
T変換部11は、XMLで記述された変換仕様文書を読
み込んで、その変換仕様文書の記述から変換仕様を解析
してから(ステップA1)、その変換仕様と自動変換ス
タイルシートとを用いて、データ構造変換用スタイルシ
ートを作成する(ステップA20)。また、同様に、図
39(B)に示すように、XSLT変換部11は、XM
Lで記述された変換仕様文書を読み込んで、その変換仕
様文書の記述から変換仕様を解析してから(ステップB
1)、その変換仕様と自動変換スタイルシートとを用い
て、データ構造逆変換用スタイルシートを作成する(ス
テップ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により
説明した変換方法)から選択された方法に応じて、図3
2,図34,図36もしくは図38のステップB2以降
の処理と同様の処理を実行する。
【0208】このようにして、第2実施形態において
も、図2に示すように、応用ソフトウエア30は、標準
API(DOM)20を通して、XSLT構造変換部1
2からの、要素数を削減された変換後XML文書に対
し、タグ検索等の処理を行なうことになるので、第1実
施形態と同様、応用ソフトウエア30による処理速度は
大幅に高速化される。
【0209】〔2−6〕第2実施形態の効果 このように、本発明の第2実施形態としての構造化文書
変換方法によれば、変換対象のXML文書を成す要素が
キー要素と非キー要素とに分けられ、その変換対象のX
ML文書が、キー要素をそのまま記述する一方で、非キ
ー要素を一つのタグにまとめその非キー要素の記述中の
タグ記号をタグ付けに関連しない文字列に置き換えたX
ML文書に変換されるので、第1実施形態の構造化文書
変換方法と同様の効果ないし利点を得ることができる。
このとき、タグ記号「<」および「>」をそれぞれ実体参
照記述による文字列「&lt;」および「&gt;」に置き換
えることにより、極めて容易にXML文書の変換を行な
うことができる。
【0210】〔3〕第3実施形態の説明 〔3−1〕第3実施形態の構造化文書変換方法の原理 図1(A),図3(A)および図40を参照しながら、
本発明の第3実施形態としての構造化文書変換方法の原
理について説明する。図1(A)および図3(A)によ
り前述したXML文書において、タグ名“名前”,“会
社”の要素をキー要素とするとともにタグ名“部署”,
“住所”,“電話”の要素を非キー要素とし、このXM
L文書に対し、第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コードを用いている。ASC
IIコードは、種々の文字コード系に共通に含まれる文
字コードセットである。従って、圧縮文字列がASCI
Iコードによって記述されていれば、その圧縮文字列を
含む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)に示
すように、まず、圧縮文字列の各文字コードを、LUT
45に基づいて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”)を付与され
た新たな要素を作成した上で、圧縮用静的単語辞書4
1,符号表42およびLUT45を用いて、非キー要素
を成す文字もしくは文字列を図41(A)で説明したデ
ータ圧縮方法により圧縮して圧縮文字列を生成してか
ら、その圧縮文字列を、変換後XML文書において新た
な要素の内容もしくは属性として記述する一方、キー要
素を、変換後XML文書においてそのまま記述する。
【0232】そして、変換されたXML文書に対して
は、標準API20を介して応用ソフトウエアによりデ
ータ処理(例えばタグ検索)が施され、データ処理後の
XML文書が得られる。なお、データ処理としてタグ検
索を行なった場合、検索結果が抽出XML文書の形で得
られる。この抽出XML文書は、データ構造変換/逆変
換機構10Aに読み込まれ、データ構造変換/逆変換機
構10Aは、前記変換仕様文書に基づいて得られた復元
・構造逆ソフトウエアにより、抽出XML文書に対する
逆変換処理を行なって抽出最終結果を出力する。
【0233】つまり、復元・構造逆変換ソフトウエアに
よって動作するデータ構造変換/逆変換機構10Aは、
復元用静的単語辞書43,符号表44およびLUT45
を用いて、所定のタグ名(本実施形態では“compresse
d”)を付与された要素に記述された圧縮文字列を、図
41(B)で説明したデータ復元方法により、非キー要
素についての元の文字列に復元してから、復元された非
キー要素を用いて、元のデータ構造のXML文書を復元
して出力する。これにより、最終的なデータ処理結果と
してのXML文書が得られる。
【0234】このとき、図43に示すように、応用ソフ
トウエア30は、標準API(DOM)20を通して、
データ構造変換/逆変換機構10Aからの、要素数を削
減された変換後XML文書に対し、タグ検索等の処理を
行なうことになるので、第1実施形態や第2実施形態と
同様、応用ソフトウエア30による処理速度は大幅に高
速化される。
【0235】応用ソフトウエア30が、変換後XML文
書に対してタグ検索を行なうものである場合、そのタグ
検索によってヒットしたレコードを記述するXML文書
(抽出XML文書)が抽出・出力される。この抽出XM
L文書は、データ構造変換/逆変換機構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)で説明したデータ圧縮方法により圧縮処理を施し
て圧縮文字列を作成し、その圧縮文字列を新たな要素の
内容として記述する。キー要素については、変換後のX
ML文書においても、何の変換も施すことなくそのまま
記述する。
【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)で説明したデータ
圧縮方法により圧縮処理を施して圧縮文字列を作成し、
その圧縮文字列を、新たな要素において、属性名“inf
o”に対応する属性値として記述する。キー要素につい
ては、変換後の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)で説明した方
法のうちのどちらを用いるかは、変換仕様文書等により
選択・指定することができるようになっている。このと
き、これらの変換方法のうちのどちらを用いるかは、X
ML文書のデータ量によって、あるいは、データ処理に
伴い新たな要素が幾つ増えるかによって決定されること
になるが、非キー要素をひとまとめにして取り扱うとい
う本発明の本質を考えれば、どちらの方法を採用しても
よい。
【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文書が非表形式データであっても、図4
6に示す変換仕様文書を用いて変換/逆変換を行なうこ
とができる。また、図46に示す変換仕様文書は、図4
4(A)で説明した変換方法を実現するためのものであ
る。
【0250】この図46に示す変換仕様文書では、ルー
トのタグ名“名簿”やレコードのタグ名“個人”が記述
されるほか、タグ名“key_tags”の要素の内容としてキ
ー要素のタグ名“名前”および“会社”を記述するとと
もにタグ名“nonkey_tags”の要素の内容として非キー
要素のタグ名“部署”,“住所”および“電話”を記述
することにより、キー要素と非キー要素とを区別するた
めの情報が記述されている。また、タグ名“nonkey_tag
s”の要素の内容には、タグ名“merged_tag”の要素が
含まれており、この要素の内容として、非キー要素を一
つにまとめるための新たな要素のタグ名 “compresse
d”が記述されている。このような変換仕様文書によ
り、XML文書のデータ構造変換実行手順が指示され
る。
【0251】〔3−6〕第3実施形態の変換方法による
具体的な変換処理手順 次に、図47および図48を参照しながら、本発明の第
3実施形態としての構造化文書変換方法による変換処理
手順について説明する。なお、図47および図48にお
いて図18および図19と同じステップ番号を付された
ステップは、図18および図19で説明した処理と同一
もしくはほぼ同一の処理を実行するものであるので、そ
の説明は省略する。つまり、以下の説明では、ステップ
番号A1〜A11,A15,A16およびB1〜B1
1,B14,B15を付されたステップにおける処理の
説明は省略する。
【0252】図47は、変換仕様文書に基づいて変換対
象XML文書に対してデータ構造変換を施す際の処理手
順を説明するためのフローチャートであり、図48は、
変換仕様文書に基づいて変換後XML文書(処理済XM
L文書)に対してデータ構造の逆変換を施す際の処理手
順を説明するためのフローチャートである。なお、第3
実施形態では、データ構造変換/逆変換機構10Aは、
図43で説明した構造変換圧縮ソフトウエアや復元構造
逆変換ソフトウエアを実行することにより、図47もし
くは図48に示すフローチャートに従って、変換仕様文
書を読み込み、符号表41,44や圧縮用/復元用の静
的単語辞書42,43やLUT45を参照しながら変換
/逆変換処理(データ圧縮/復元処理)を実行する。
【0253】図47に示す変換処理手順では、ステップ
A7で切り出された要素データが非キー要素である場合
(ステップA11のYESルート)、その非キー要素
が、一つの要素にまとめるべき非キー要素群のうちの最
初のものであるか否かを判断し(ステップA51)、最
初のものである場合(ステップA51のYESルー
ト)、変換仕様文書によって予め指定されたタグ名“co
mpressed”の開始タグを作成してから(ステップA5
2)、今回切り出された非キー要素を保持しておく(ス
テップA53)。
【0254】一方、非キー要素が最初のものでない場合
(ステップA51のNOルート)、つまり既に非キー要
素に対応する新要素が作成されている場合には、ステッ
プA52による開始タグの作成処理をジャンプし、今回
切り出された非キー要素を、既に切り出されて保持され
ている非キー要素の後に繋いでまとめる(ステップA5
3)。この後、非キー要素が、一つの要素にまとめるべ
き非キー要素群のうちの最後のものであるか否かを判断
し(ステップA54)、最後のものでない場合(ステッ
プA54のNOルート)、ステップA7の処理に戻る。
【0255】一方、最後のものである場合(ステップA
54のYESルート)、ステップA53でまとめられた
非キー要素に、文字コード系の種別を示す識別ビットを
付与した上で、図41(A)で説明したデータ圧縮方法
による圧縮処理を施して圧縮文字列を得る。そして、そ
の圧縮文字列を、タグ名“compressed”の開始タグの次
に、新要素の内容として記述してから、その後に、タグ
名“compressed”の終了タグを作成して付加する(ステ
ップA55)。この後、ステップA7の処理に戻る。
【0256】なお、ここでは、図44(A)で説明した
変換方法に対応した処理を行なった場合について説明し
ているが、図44(B)で説明した変換方法を採用する
場合には、ステップA52で、新要素として、タグ名
“compressed”および属性名“info”をもつ空要素タグ
を作成し、ステップA55で、圧縮文字列を新要素(空
要素)の“info”属性の属性値として記述する。
【0257】一方、図48に示す逆変換処理手順では、
非キー要素をまとめた新要素(<compressed>タグ)がス
テップB7で切り出された場合(ステップB11のYE
Sルート)、新要素の内容(もしくは属性値)として記
述された圧縮文字列を読み出し、その圧縮文字列から、
図41(B)で説明したデータ復元方法により、非キー
要素を成す元の文字列を復元し、非キー要素のタグの記
述を削除し、復元XML文書に、復元された非キー要素
を記述してから(ステップB39)、ステップB7の処
理に戻る。
【0258】〔3−7〕第3実施形態の効果 このように、本発明の第3実施形態としての構造化文書
変換方法によれば、変換対象のXML文書を成す要素が
キー要素と非キー要素とに分けられ、その変換対象のX
ML文書が、キー要素をそのまま記述する一方で、非キ
ー要素を成す文字もしくは文字列を一つのタグにまとめ
図41(A)に示すデータ圧縮方法により圧縮して得ら
れた文字コード列(圧縮文字列)として記述したXML
文書に変換される。従って、上述した第1実施形態や第
2実施形態と同様の効果ないし利点を得ることができる
ほか、変換後のXML文書のデータ量を大幅に削減する
ことができる。
【0259】また、図41(A)で説明したデータ圧縮
方法を用いることにより、XML文書を効率良く圧縮し
ながら、その圧縮結果を文字コードの形で得てXML文
書内に置くことのできる圧縮変換技術が提供されるの
で、XML文書に対する操作に必要となるリソースが大
幅に軽減され、XML文書を処理する際におけるメモリ
使用量削減や処理速度の高速化が実現される。
【0260】このとき、圧縮データを表現する文字コー
ドとして、タグ付けに関連する記号(例えばXML文書
では<,>,&,”,’)を除いたASCIIコードを
用いる。これにより、変換後のXML文書における圧縮
文字列にはタグ付けに関連する記号が存在せず、データ
処理時などに誤処理が発生するのを確実に防止すること
ができる。
【0261】また、ASCIIコードは、種々の文字コ
ード系に共通に含まれる文字コードセットであるため、
変換後のXML文書が文字コード系の変換を施されて
も、ASCIIコードを用いた圧縮文字列を成すビット
列は、文字コード系の変換の影響を受けることなく元の
状態に保たれる。従って、文字コード系を変換されたX
ML文書に含まれる圧縮文字列は、元の非キー要素に正
しく復元される。
【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) 該変換仕様文書において、
前記変換時に前記タグ名短縮変換を行なうか否かのタグ
名短縮変換情報を記述し、前記変換時または前記逆変換
時に、該変換仕様文書における該タグ名短縮変換情報に
基づいて、前記タグ名短縮変換および前記タグ名伸長変
換の実行/非実行を選択することを特徴とする、付記1
0記載の構造化文書変換方法。
【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(eXten
sible Markup Language)文書である場合、前記タグ付け
に関連する記号「<」および「>」をそれぞれ「&l
t;」および「&gt;」に置き換えることを特徴とする、
付記31記載の構造化文書変換方法。
【0291】(付記33) 変換対象の構造化文書を成
す要素を、該構造化文書に対するデータ処理の対象とな
るキー要素と前記データ処理の対象とならない非キー要
素とに分け、所定のタグ名を付与された新たな要素を作
成し、該非キー要素を成す文字もしくは文字列に対し出
現頻度の高いものほど短い可変長符号を割り付ける可変
長符号化を行ない、該可変長符号化により得られたバイ
ナリデータを6ビットずつ1バイトの変換データにパッ
キングし、各変換データにパッキングされた6ビットデ
ータをASCII(American Standard Code for Infor
mation Interchange)コードに従う文字コードに変換す
ることにより、該非キー要素を、該文字コードからなる
圧縮文字列に変換し、該圧縮文字列を、該新たな要素の
内容として記述し、該キー要素を、変換後の構造化文書
においてそのまま記述することを特徴とする、構造化文
書変換方法。
【0292】(付記34) 変換対象の構造化文書を成
す要素を、該構造化文書に対するデータ処理の対象とな
るキー要素と前記データ処理の対象とならない非キー要
素とに分け、所定のタグ名および所定の属性名を付与さ
れた新たな要素を作成し、該非キー要素を成す文字もし
くは文字列に対し出現頻度の高いものほど短い可変長符
号を割り付ける可変長符号化を行ない、該可変長符号化
により得られたバイナリデータを6ビットずつ1バイト
の変換データにパッキングし、各変換データにパッキン
グされた6ビットデータをASCII(American Stand
ard 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 Standar
d Code for Information Interchange)コードに従う文
字コードに変換し、該変換データ毎に得られた該文字コ
ードを、前記変換対象の文字もしくは文字列の圧縮変換
結果として出力することを特徴とする、付記42記載の
データ変換方法。
【0300】(付記44) 前記圧縮変換結果を復元す
る際には、前記圧縮変換結果における各文字コードを、
前記ASCIIコードに従って6ビットデータに変換
し、該文字コード毎に得られた6ビットデータから、前
記変換対象の文字もしくは文字列を復元することを特徴
とする、付記43記載のデータ変換方法。 (付記45) 前記ASCIIコードのセットとして、
構造化文書においてタグ付けに関連する文字コードを除
いたものを用いることを特徴とする、付記43または付
記44に記載のデータ変換方法。
【0301】
【発明の効果】以上詳述したように、本発明の構造化文
書変換方法(請求項1,付記1〜付記20)によれば、
変換対象の構造化文書を成す要素がキー要素と非キー要
素とに分けられ、その変換対象の構造化文書が、キー要
素をそのまま記述する一方で非キー要素を一つのタグに
まとめて記述した構造化文書に変換されるので、変換後
の構造化文書では、要素数が削減されるとともに、展開
時やデータ処理時に非キー要素を一括して扱うことがで
きる。特に、データ処理の対象とならない非キー要素が
多い構造化文書や、1レコードの要素数が多い構造化文
書での要素数の削減効果は大きい。
【0302】また、応用ソフトウエア(アプリケーショ
ン)により構造化文書に対するデータ処理を行なう際に
はキー要素のみが使用されるが、本発明では、キー要素
についてはそのまま記述されているので、通常通り、キ
ー要素のタグ名を用いてキー要素の内容を参照すること
ができ、変換後の構造化文書のトランスペアレント性は
確保される。
【0303】このとき、変換仕様文書を構造化文書とし
て作成し変換実行手順を与えることにより、多様な種類
の構造化文書に対して、スタイルシートを一々作成する
必要がなくなり、手間をかけることなく、本発明による
データ構造の変換/逆変換処理を種々の構造化文書デー
タに施すことができる。さらに、変換仕様文書に基づい
て変換/逆変換を指示する変換/逆変換用スタイルシー
トを生成すれば、構造化文書変換プロセッサ(例えば標
準のXSLTプロセッサ)により変換/逆変換用スタイ
ルシートを用いて変換/逆変換を実行することができ、
つまりは、ほとんどあらゆる種類の構造化文書システム
(XML文書システム)において本発明による変換/逆
変換処理を実行することができる。
【0304】従って、本発明によれば、アプリケーショ
ンに対するトランスペアレント性や変換された構造化文
書のデータ構造の有効性を確保しながら、非キー要素を
一つの要素にまとめるデータ構造変換処理を、種々の構
造化文書データに施すことができるようにした汎用の変
換技術を提供することができ、これにより、構造化文書
に対する操作に必要となるリソースが大幅に軽減され、
構造化文書を処理する際におけるメモリ使用量削減と処
理速度の高速化との両方が実現されることになる。
【0305】タグ名変換や内容変換に際しては、コンマ
等の区切り記号を介して非キー要素のタグ名や内容を繋
ぐことにより、タグ名文字列や内容文字列が、タグ付け
に関連することのない記号を用いて極めて容易に作成さ
れる。このとき、非キー要素が複数階層を成している場
合、タグ名文字列におけるタグ名に、階層構造識別情報
を付加すれば、その階層構造を変換後の構造化文書に保
存することができるので、その階層構造識別情報に従っ
て、元の構造化文書を復元するための逆変換を容易に行
なうことができる。
【0306】また、非キー要素が属性を有する場合、タ
グ名文字列において、属性を有するタグ名の後に、区切
り記号を介して、属性名識別情報を付加した属性の属性
名を記述するとともに、このタグ名文字列におけるタグ
名の並びに対応させて非キー要素の内容を繋いだ内容文
字列を作成することにより、非キー要素の属性を変換後
の構造化文書に保存することができるので、その属性名
識別情報に従って、元の構造化文書を復元するための逆
変換を容易に行なうことができる。
【0307】非キー要素のタグ名を短縮タグ名に置換す
るタグ名短縮変換を行なうことにより、変換後の構造化
文書のデータ量を削減することができる。このとき、変
換仕様文書におけるタグ名短縮変換情報によってタグ名
短縮変換を行なうか否かを指示し、タグ名短縮変換やタ
グ名伸長変換の実行/非実行を自動的に切り換えること
ができる。
【0308】変換対象の構造化文書が表形式で記述され
ている場合、元の構造化文書を復元するための逆変換に
際してタグ名や属性名を容易に割り出すことができるの
で、タグ名変換や属性名変換を省略することができる。
従って、変換後の構造化文書においては、非キー要素の
内容文字列が記述されていればよく、タグ名や属性名に
係る記述を省略することができ、変換後の構造化文書の
データ量を大幅に削減することができる。このとき、変
換仕様文書における表形式情報によって表形式変換を行
なうか否かを指示し、表形式変換や表形式逆変換の実行
/非実行を自動的に切り換えることができる。
【0309】また、本発明の構造化文書変換方法(請求
項2,付記21〜付記32)によれば、変換対象の構造
化文書を成す要素がキー要素と非キー要素とに分けら
れ、その変換対象の構造化文書が、キー要素をそのまま
記述する一方で、非キー要素を一つのタグにまとめその
非キー要素の記述中のタグ付けに関連する記号をタグ付
けに関連しない文字列に置き換えた構造化文書に変換さ
れるので、上述した構造化文書変換方法と同様の効果な
いし利点を得ることができる。このとき、タグ付けに関
連しない文字列として、タグ付けに関連する記号の実体
参照記述用いることにより〔例えば、構造化文書がXM
L文書である場合、タグ記号「<」および「>」をそれぞ
れ実体参照記述による文字列「&lt;」および「&gt;」
に置き換えることにより〕、極めて容易に構造化文書の
変換を行なうことができる。
【0310】さらに、本発明の構造化文書変換方法(請
求項3,付記33〜付記42)によれば、変換対象の構
造化文書を成す要素がキー要素と非キー要素とに分けら
れ、その変換対象の構造化文書が、キー要素をそのまま
記述する一方で、非キー要素を成す文字もしくは文字列
を一つのタグにまとめ下記データ圧縮方法により圧縮し
て得られた文字コード列(圧縮文字列)として記述した
構造化文書に変換されるので、上述した構造化文書変換
方法と同様の効果ないし利点を得ることができるほか、
変換後の構造化文書のデータ量を大幅に削減することが
できる。
【0311】非キー要素を成す文字もしくは文字列を圧
縮する際には、可変長符号化を行なった上で、この可変
長符号化により得られたバイナリデータを6ビットずつ
1バイトの変換データにパッキングし、各変換データに
パッキングされた6ビットデータをASCIIコードに
従う文字コードに変換することにより、文字コードで記
述された圧縮データ(圧縮文字列)を得ることができ
る。これにより、圧縮データを、構造化文書の要素ある
いは属性値として置くことができる。
【0312】上述のような本発明のデータ圧縮方法(請
求項4,請求項5,付記43〜付記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 文字コード変換用ルックアップテーブル(LU
T)
───────────────────────────────────────────────────── フロントページの続き (72)発明者 井谷 宣子 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 Fターム(参考) 5B009 QA06 TA11 5B082 GA02

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 変換対象の構造化文書を成す要素を、該
    構造化文書に対するデータ処理の対象となる使用される
    キー要素と前記データ処理の対象にならない非キー要素
    とに分け、 所定のタグ名および所定の属性名を付与された新たな要
    素を作成し、 該非キー要素のタグ名を含むタグ名文字列を作成し、該
    タグ名文字列を、該新たな要素において、前記所定の属
    性名に対応する属性値として記述するタグ名変換を行な
    い、 該非キー要素の内容を含む内容文字列を作成し、該内容
    文字列を、該新たな要素の内容として記述する内容変換
    を行ない、 該キー要素を、変換後の構造化文書においてそのまま記
    述することを特徴とする、構造化文書変換方法。
  2. 【請求項2】 変換対象の構造化文書を成す要素を、該
    構造化文書に対するデータ処理の対象となるキー要素と
    前記データ処理の対象とならない非キー要素とに分け、 所定のタグ名を付与された新たな要素を作成し、 該非キー要素の記述中においてタグ付けに関連する記号
    をタグ付けに関連しない文字列に置き換えた文字列を作
    成し、 該文字列を、該新たな要素の内容として記述し、 該キー要素を、変換後の構造化文書においてそのまま記
    述することを特徴とする、構造化文書変換方法。
  3. 【請求項3】 変換対象の構造化文書を成す要素を、該
    構造化文書に対するデータ処理の対象となるキー要素と
    前記データ処理の対象とならない非キー要素とに分け、 所定のタグ名を付与された新たな要素を作成し、 該非キー要素を成す文字もしくは文字列に対し出現頻度
    の高いものほど短い可変長符号を割り付ける可変長符号
    化を行ない、該可変長符号化により得られたバイナリデ
    ータを6ビットずつ1バイトの変換データにパッキング
    し、各変換データにパッキングされた6ビットデータを
    ASCII(American Standard Code for Information
    Interchange)コードに従う文字コードに変換すること
    により、該非キー要素を、該文字コードからなる圧縮文
    字列に変換し、 該圧縮文字列を、該新たな要素の内容として記述し、 該キー要素を、変換後の構造化文書においてそのまま記
    述することを特徴とする、構造化文書変換方法。
  4. 【請求項4】 変換対象の文字もしくは文字列に対し、
    出現頻度の高いものほど短い可変長符号を割り付ける可
    変長符号化を行ない、 該可変長符号化により得られたバイナリデータを6ビッ
    トずつ1バイトの変換データにパッキングして出力する
    ことを特徴とする、データ変換方法。
  5. 【請求項5】 各変換データにパッキングされた6ビッ
    トデータをASCII(American Standard Code for I
    nformation Interchange)コードに従う文字コードに変
    換し、 該変換データ毎に得られた該文字コードを、前記変換対
    象の文字もしくは文字列の圧縮変換結果として出力する
    ことを特徴とする、請求項4記載のデータ変換方法。
JP2001401934A 2001-12-28 2001-12-28 構造化文書変換装置 Expired - Fee Related JP4163870B2 (ja)

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 true JP2003203067A (ja) 2003-07-18
JP4163870B2 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)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007087016A (ja) * 2005-09-21 2007-04-05 Fuji Xerox Co Ltd 表示装置及び文字列データベース再定義方法
JPWO2005101210A1 (ja) * 2004-04-09 2008-03-06 シャープ株式会社 データ解析装置およびデータ解析プログラム
JP2008134898A (ja) * 2006-11-29 2008-06-12 Kddi Corp 健診情報システム
JP2008219264A (ja) * 2007-03-01 2008-09-18 Ntt Communications Kk データ圧縮転送装置、データ圧縮転送システム、データ圧縮転送方法、およびデータ圧縮転送プログラム
JP2009054187A (ja) * 2008-11-04 2009-03-12 Fujitsu Ltd 構造化文書の構造変換装置
US7512691B2 (en) 2004-02-17 2009-03-31 International Business Machines Corporation Message request response server and processor
JP2009527853A (ja) * 2006-02-24 2009-07-30 マイクロソフト コーポレーション Ediスキーマを共有するためのスケーラブルなアルゴリズム
JP2009181463A (ja) * 2008-01-31 2009-08-13 Toshiba Corp サーバ、データ転送方法及びプログラム
JP2010287052A (ja) * 2009-06-11 2010-12-24 Fujitsu Ltd 検索システムおよび記憶媒体

Families Citing this family (56)

* Cited by examiner, † Cited by third party
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 構造化文書の構造変換装置、構造変換方法、記録媒体
CN1802642A (zh) * 2003-07-08 2006-07-12 艾利森电话股份有限公司 通过利用较短字代替长字来压缩标记语言文件的方法
JP4348151B2 (ja) * 2003-09-19 2009-10-21 株式会社リコー 情報処理装置及び情報処理方法
US20080140705A1 (en) * 2003-10-01 2008-06-12 Wenqiang Luo 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
JP4525115B2 (ja) * 2004-03-11 2010-08-18 日本電気株式会社 構造化文書処理装置、構造化文書処理方法、および構造化文書処理プログラム
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
US7650353B2 (en) * 2005-12-16 2010-01-19 Microsoft Corporation XML specification for electronic data interchange (EDI)
US7647500B2 (en) * 2005-12-16 2010-01-12 Microsoft Corporation Synchronous validation and acknowledgment of electronic data interchange (EDI)
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
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
CA2641592A1 (en) * 2006-02-06 2007-08-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
US8156148B2 (en) * 2006-02-24 2012-04-10 Microsoft Corporation Scalable algorithm for sharing EDI schemas
US7542982B2 (en) * 2006-09-05 2009-06-02 International Business Machines Corporation Message validation model
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
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 株式会社日立製作所 構造化文書の構文解析方法及び装置
US7574446B2 (en) * 2006-12-06 2009-08-11 Catalyst Repository Systems, Inc. Converting arbitrary strings into numeric representations to facilitate complex comparisons
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
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
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
WO2009043033A2 (en) * 2007-09-28 2009-04-02 Xcerion Aktiebolag Network operating system
US20110119284A1 (en) * 2008-01-18 2011-05-19 Krishnamurthy Viswanathan Generation of a representative data string
US20100235806A1 (en) * 2009-03-13 2010-09-16 Microsoft Corporation Rich Web Site Authoring And Design
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
WO2019046752A1 (en) * 2017-08-31 2019-03-07 Schneider Electric Software, Llc DATA NETWORK FOR INDEXING OBJECTS
US11017078B2 (en) 2018-04-24 2021-05-25 Microsoft Technology Licensing, Llc Environmentally-trained time dilation
US10785017B2 (en) * 2018-04-24 2020-09-22 Microsoft Technology Licensing, Llc Mitigating timing attacks via dynamically scaled 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)

* Cited by examiner, † Cited by third party
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

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7512691B2 (en) 2004-02-17 2009-03-31 International Business Machines Corporation Message request response server and processor
JPWO2005101210A1 (ja) * 2004-04-09 2008-03-06 シャープ株式会社 データ解析装置およびデータ解析プログラム
JP2007087016A (ja) * 2005-09-21 2007-04-05 Fuji Xerox Co Ltd 表示装置及び文字列データベース再定義方法
JP4735155B2 (ja) * 2005-09-21 2011-07-27 富士ゼロックス株式会社 表示装置及び文字列データベース再定義方法
JP2009527853A (ja) * 2006-02-24 2009-07-30 マイクロソフト コーポレーション Ediスキーマを共有するためのスケーラブルなアルゴリズム
JP2008134898A (ja) * 2006-11-29 2008-06-12 Kddi Corp 健診情報システム
JP2008219264A (ja) * 2007-03-01 2008-09-18 Ntt Communications Kk データ圧縮転送装置、データ圧縮転送システム、データ圧縮転送方法、およびデータ圧縮転送プログラム
JP2009181463A (ja) * 2008-01-31 2009-08-13 Toshiba Corp サーバ、データ転送方法及びプログラム
JP2009054187A (ja) * 2008-11-04 2009-03-12 Fujitsu Ltd 構造化文書の構造変換装置
JP2010287052A (ja) * 2009-06-11 2010-12-24 Fujitsu Ltd 検索システムおよび記憶媒体

Also Published As

Publication number Publication date
JP4163870B2 (ja) 2008-10-08
US20030158854A1 (en) 2003-08-21

Similar Documents

Publication Publication Date Title
JP2003203067A (ja) 構造化文書変換方法およびデータ変換方法
JP4907936B2 (ja) ウェブベースのデータフォーム
JP4977128B2 (ja) データベースからxml文書を動的に生成する方法
US7178100B2 (en) Methods and apparatus for storing and manipulating variable length and fixed length data elements as a sequence of fixed length integers
JP4256416B2 (ja) データ構造変換システム及びプログラム
US8484552B2 (en) Extensible stylesheet designs using meta-tag information
US8631041B2 (en) Secondary lazy-accessible serialization of electronic content
JP4246186B2 (ja) 構造化文書のデータ展開方法、データ処理方法及び処理システム
US20020002566A1 (en) Transfromation of marked up documents using a base architecture
JP4388929B2 (ja) 構造化文書の構造変換装置、構造変換方法、記録媒体
JP4571991B2 (ja) 構造化文書変換装置
JP2001125855A (ja) 動的Webページ生成プログラム
WO2018038065A1 (ja) 情報管理装置並びにファイル管理方法
CN103713864B (zh) 帐票输出装置和帐票输出方法
CN103377175A (zh) 基于分割的结构化文档转换
KR101905675B1 (ko) 모듈의 구조 해석을 지원하는 장치 및 프로그램
JPWO2005101210A1 (ja) データ解析装置およびデータ解析プログラム
CN110196965A (zh) XML文件转换Word文件的方法及装置
EP2148276A1 (en) Mark-up language engine
JP4410005B2 (ja) 構造化文書の構造変換装置、プログラム
JP4606862B2 (ja) データ変換装置
JP5674974B2 (ja) 圧縮データ処理プログラム、圧縮データ編集プログラム
JP3156613B2 (ja) 文書編集方式
JP4786695B2 (ja) 構造化文書の構造変換装置
RU2379748C2 (ru) Способ управления данными в сформированном компьютерном документе и машиночитаемый носитель с записанной на нем программой

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