JP2002244894A - Xmlデータの符号化方法、符号化されたxmlデータの復号化方法、xmlデータの符号化システム、符号化されたxmlデータの復号化システム、プログラムおよび記録媒体 - Google Patents
Xmlデータの符号化方法、符号化されたxmlデータの復号化方法、xmlデータの符号化システム、符号化されたxmlデータの復号化システム、プログラムおよび記録媒体Info
- Publication number
- JP2002244894A JP2002244894A JP2001027462A JP2001027462A JP2002244894A JP 2002244894 A JP2002244894 A JP 2002244894A JP 2001027462 A JP2001027462 A JP 2001027462A JP 2001027462 A JP2001027462 A JP 2001027462A JP 2002244894 A JP2002244894 A JP 2002244894A
- Authority
- JP
- Japan
- Prior art keywords
- xml data
- attribute
- asn
- type
- operator
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
- G06F40/143—Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Document Processing Apparatus (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
る。 【解決手段】 構文(型)生成装置2−1を用いてDT
DをASN.1抽象構文(型)に変換し、分離装置2−
2を用いて前記DTDに従うXMLデータからテキスト
を分離する。その後、構文(値)生成装置2−3を用い
てテキストが分離された後のXMLデータ(要素の構
文)を、前記ASN.1抽象構文(型)に従うASN.
1抽象構文(値)に変換する。その後、転送構文生成装
置2−4を用いてASN.1抽象構文(値)をASN.
1転送構文に変換する。一方、圧縮装置2−5を用いて
分離されたテキストを圧縮する。さらに、併合装置2−
6を用いてASN.1転送構文と圧縮テキストを併合し
符号化XMLデータを生成する。
Description
よび復号化技術に関し、特にXML(extensiblemarkup
language)データの符号化における圧縮率の向上に適用
して有効な技術に関する。
の手段としてXMLが注目されている。XMLは拡張可
能なメタ言語であり、ユーザが独自に文法を規定するこ
とができる。また、各要素に論理的な意味を持たせるこ
とが可能であり、HTML(hypertext markup languag
e)に比較してデータ処理が大幅に容易になる。このた
め、電子商取引等インターネットで交換される構造化文
書の標準的な表現方式として期待されている。なお、X
MLについては、「W3C. Extensible Markup Language
(XML) 1.0, 1998. http://www.w3.org/TR/REC-xml」に
詳細が記述されている。
性が高い利点がある。その反面、冗長性も高いという難
点がある。すなわち要素の意味は主に開始タグ内に記述
され、その意味内容は文字で記述されている内容を参照
すれば容易に把握できる。しかし、全てが文字で記述さ
れるため、全体の文字数が増加し、XMLデータ全体の
情報量(文字数)が多くなる。文字数が多ければ、たと
えばストレージに格納したり、あるいはネットワークで
転送する際に、記録容量あるいは転送量が多くなり物理
的、時間的コストの上昇を来たす。そこで、XMLデー
タを短い符号に符号化(または圧縮)できれば都合がよ
い。
いる。たとえば、ランレングス符号、Huffman符
号、算術符号、LZ77等である。これら符号化の手法
については、たとえば、「Huffman, D.A. “A method f
or the construction of minimum-redundancy codes”
Proc. of the IRE September,1952」、「Mark Nelsonan
d Jean Loup Gailly “The Data Compression Book”,
Second Edition. M&TBooks 1996」、「Jacob Ziv and A
braham Lempel. “A universal algorithm for sequent
ial data compression” IEEE Transactions on Inform
ation TheoryMay, 1977」に詳しい。
特化されたものではなく、XMLデータに適用した場合
に必ずしも圧縮効率が高いものではない。XMLデータ
に特化した圧縮手法には、たとえば「D. Suciu and H.
Liefke. XMill: an Efficient Compressor for XML Da
ta, 1999. http://www.researc
h.att.com/sw/tools/xmill
/」に記載のXMill、「XML Solutions Corp. XML
Zip, 1999. http://www.xmls.com
/products/xmlzip/xmlzip.h
tml」に記載のXMLZip、あるいは「井川甲作
著、東京工業大学工学部情報工学科卒業論文「DTDを
用いたXML文書圧縮アルゴリズムに関する研究」、平
成12年2月」に記載のXCompなどがある。
のコンテンツ(テキスト)部分を抽出する。この抽出さ
れた部分をコンテナと呼ぶ。そして構造部分を数字で符
号化し、テキスト部分はコンテナごとに LZ77など
の方法で圧縮する。基本的にはパラメータ等の情報を必
要とせず、アプリケーションのみで圧縮が可能である。
必要であればパラメータ等を指定してコンテナごとの圧
縮方法を指定し、圧縮効率を高めることが可能である。
また、Cで実装されるため圧縮速度が速いという特徴を
もつ。
指定し、指定部分をドキュメント要素から分割し、残り
をZIPで圧縮する。ルート要素部分は符号化されず直
接操作することが可能になる。使用しない部分を圧縮す
ることで文書へのアクセスを迅速に行える。ただし、圧
縮効率はXMillに比較して低い。
うち、DTD(Document Type Definition)から一意に決
定される部分は符号化せず、一意に決定できない部分に
ついての構造部分のみを圧縮する。テキスト部分はXM
ill と同じ方法で圧縮する。すなわち、以下の手順
で圧縮を行う。(1)構造とコンテンツを分離する。
(2)DTDからプッシュダウンオートマトン(PD
A)を生成する。(3)生成されたPDAを用いて構造
部分を符号化する符号化トランスデューサを生成する。
(4)符号化トランスデューサの各ノードに割り振られ
た数字をオートマトンを連鎖的に遷移することにより出
力し、構造を符号化する。(5)得られた構造符号と要
素ごとのコンテンツをLZ77等で圧縮し、圧縮された
XML文書を出力する。
ち、XCompは構造部分の一部を符号化しないので、
かなりよい圧縮効率を達成する。
pはXML文書の圧縮手法として相対的に優れる。しか
し、本発明者の検討によればXCompにおいても、X
MLデータがある特定の構造をしている場合に圧縮効率
が悪くなるという課題がある。すなわち、要素に「?」
オペレータや「*」オペレータ(「+」オペレータを含
む)が適用された場合である。
0回もしくは1回出現する場合に、要素の宣言文におい
て子要素に付されるオペレータである。XCompにお
いて「?」オペレータが出現した場合、「?」オペレー
タは、ある状態から別の状態に遷移する複数の選択肢で
表現される。選択肢にはインデクスが付与される。XC
ompの実行時には、選択された選択肢に付与されたイ
ンデクスが出力される。選択肢の数は、「?」オペレー
タの後に「?」オペレータなどがいくつ連続するかによ
る。例えば、「?」オペレータがn個連続する場合に、
最初の「?」オペレータに対する選択肢はn+1個とな
る。従って、インデクスはn+1種類必要であり、その
1つを表現するにはO(log n)ビット必要であ
る。「?」オペレータが適用された要素がすべて存在す
ると、インデクスが複数羅列される。その1つを表現す
るのにO(log n)ビット必要であるから、それ全
体を表現するにはO(nlog n)ビット必要であ
る。
0回以上出現する場合に、要素の宣言文において子要素
に付されるオペレータであり、「+」オペレータは、あ
る要素の子要素が1回以上出現する場合に、要素の宣言
文において子要素に付されるオペレータである。XCo
mpにおいて「*」オペレータ(または「+」オペレー
タ)が出現した場合、「*(または+)」オペレータ
は、同じ状態か別の状態に遷移する2つの選択肢で表現
される。選択肢には、インデクスが付与される。XCo
mpの実行時には、選択された選択肢に付与されたイン
デクスが出力される。「*」オペレータが適用された要
素が複数存在すると、同じインデクスが複数羅列され
る。インデクスの数は、存在する要素の数に比例する。
従って、インデクス全体を表現するのに、要素の数をn
とすると、O(n)ビット必要である。
的に決まらない構造のうち特定のものについて、それら
を表現する符号のビット数が大きくなって、必ずしも十
分な圧縮効率を達成できない問題がある。
Lデータ(XML文書)の符号化方式を提案し、それを
実現する方法およびシステムを提供することにある。
圧縮効率を達成するために、本発明では、「ITU-T. X.6
80 - Abstract Syntax Notation One (ASN.1): Specifi
cation of basic notation, 1997. http://www.itu.int
/itudoc/itu-t/rec/x/x500up/x680.html」に記載のAS
N.1を利用する。すなわち、符号化対象のXMLデー
タを構造とコンテンツ(テキスト)に分離する。一方、
符号化対象のXMLデータの文法をASN.1抽象構文
(型)に変換する。分離したコンテンツは要素ごとある
いはまとめてXMillと同様に圧縮する。また、分離
した構造(要素)をASN.1抽象構文(型)に従うA
SN.1抽象構文(値)に変換する。次に、ASN.1
抽象構文(値)をASN.1で規定されている符号化規
則を用いてASN.1転送構文に変換する。ASN.1
で規定される符号化規則には、BER、DER、PER
等があるが、特に符号化効率の観点からPERを用いる
ことが好ましい。そして符号化された要素(構文)であ
るASN.1転送構文と圧縮されたコンテンツ(テキス
ト)を併合し、符号化されたXMLデータを生成する。
なお、PERについては、「ITU-T. X.691-ASN.1 encod
ing rules: Specification of PackedEncoding Rules
(PER)、 1997. http://www.itu.int/itudoc/itu-t/rec/x
/x500up/x691.html」に詳しく記載されている。
り、XCompに比較して圧縮効率の高い符号化が行え
る。たとえば「?」オペレータがn個連続して出現した
場合の構造の符号化では、本発明を用いることによりO
(n)ビットでそれを表現できる。また、「*」オペレ
ータが出現した場合の構造の符号化では、本発明を用い
ることによりオーダとしてはXCompと同じである
が、実質的には少ないビット数でそれを表現できる。そ
して符号化(圧縮)されたXMLデータを通信あるいは
ストレージに用いることにより通信負荷を低減し、また
ストレージの容量を節約できる。
は、前記と逆の処理を行うことにより実現できる。ま
た、本発明の符号化あるいは復号化の方法は、システム
として把握することも可能であり、さらに、前記方法に
よって実現される機能をコンピュータに実現させるため
のプログラムとして把握することも可能である。
を用いて詳細に説明する。ただし、本発明は多くの異な
る態様で実施することが可能であり、本実施の形態の記
載内容に限定して解釈すべきではない。なお、実施の形
態の全体を通して同じ要素には同じ番号を付するものと
する。
ステムについて説明するが、当業者であれば明らかなと
おり、本発明はコンピュータで使用可能なプログラムと
しても実施できる。したがって、本発明は、ハードウェ
アとしての実施形態、ソフトウェアとしての実施形態ま
たはソフトウェアとハードウェアとの組合せの実施形態
をとることができる。プログラムは、ハードディスク、
CD−ROM、光記憶装置または磁気記憶装置等の任意
のコンピュータ可読媒体に記録できる。
ピュータシステムを用いることができる。実施の形態で
用いることができるコンピュータシステムは、中央演算
処理装置(CPU)、主記憶装置(メインメモリ:RA
M)、不揮発性記憶装置(ROM)、コプロセッサ、画
像アクセラレータ、キャッシュメモリ、入出力制御装置
(I/O)等、一般的にコンピュータシステムに備えら
れるハードウェア資源を備える。また、ハードディスク
装置等の外部記憶装置、インターネット等のネットワー
クに接続可能な通信手段を備えることができる。コンピ
ュータシステムには、パーソナルコンピュータ、ワーク
ステーション、メインフレームコンピュータ等各種のコ
ンピュータが含まれる。
る前提となる条件を述べる。 (1)XMLデータは、文法で構造が定義される。ま
た、文法は、XMLデータを符号化する側と復号化する
側で共有される。たとえば文法定義ファイルを外部デー
タとして所定のIPアドレスに記録し、符号化あるいは
復号化する際にIPアドレスを用いてこの外部ファイル
を参照できる。なお、本実施の形態では文法定義として
DTDを用いるが、これに限られない。例えば、XML
SchemaやRELAXなどを用いることができ
る。 (2)XMLデータは、要素とテキストだけから構成さ
れる。その他のもの(例えば、属性や処理命令)は、別
の方法で管理される。例えば、属性や処理命令を特別な
要素として表現し、XMLデータの中に埋め込むことが
できる。この際、文法も変更する必要がある。また、X
MLデータから分離して、XPointerなどと共に
別に格納することも考えられる。 (3)テキストは、XMillなどの方法で圧縮され
る。このような前提条件の下に本実施の形態のXMLデ
ータの符号化および復号化が行われることを説明する。
について示したブロック図である。本実施の形態の符号
化システムは、構文(型)生成装置2−1、分離装置2
−2、構文(値)生成装置2−3、転送構文生成装置2
−4、圧縮装置2−5、併合装置2−6を有する。
ASN.1抽象構文(型)を生成し、分離装置2−2
は、XMLデータから要素の内容(テキスト)と構造
(要素名および構造)を分離する。構文(値)生成装置
2−3は、要素の構造からASN.1抽象構文(値)を
生成し、転送構文生成装置2−4は、ASN.1転送構
文を生成する。圧縮装置2−5は分離したテキストを圧
縮し、併合装置2−6は圧縮テキストとASN.1転送
構文を併合して符号化されたXMLデータを生成する。
の形態の符号化方法の手順の概要は以下のとおりであ
る。 (ステップ2−1) 構文(型)生成装置2−1を用い
てDTDをASN.1抽象構文(型)に変換する。 (ステップ2−2) 分離装置2−2を用いてステップ
2−1のDTDに従うXMLデータからテキストを分離
する。なお、ステップ2−2は、ステップ2−1と並行
に行われても良く、ステップ2−1よりも先に行われて
も良い。 (ステップ2−3) 構文(値)生成装置2−3を用い
てステップ2−2でテキストが分離された後のXMLデ
ータ(要素の構文)を、ステップ2−1のASN.1抽
象構文(型)に従うASN.1抽象構文(値)に変換す
る。 (ステップ2−4) 転送構文生成装置2−4を用いて
ステップ2−3のASN.1抽象構文(値)をASN.
1転送構文に変換する。 (ステップ2−5) 圧縮装置2−5を用いてステップ
2−2で分離されたテキストを圧縮する。なお、ステッ
プ2−5はステップ2−3〜ステップ2−4と並行に行
われる。 (ステップ2−6) 併合装置2−6を用いてステップ
2−4で生成されたASN.1転送構文とステップ2−
5で生成された圧縮テキストを併合し、符号化XMLデ
ータを生成する。
N.1転送構文に変換するには、ASN.1で規定され
ている符号化規則に従う。そのような規則には、BER
やDER、PERなどがある。特に、PERは、AS
N.1抽象構文(型)から一意に決定される型やその値
などを符号化しないため、符号化効率がよい。
(型)に変換する。以下では、内容モデルのパターンご
とに、その方法を説明する。
で構成される。通常要素名は文字列で表される。オペレ
ータは要素内容における子要素の出現順と出現回数を指
定するための演算子である。周知のとおりXMLでは、
「,」、「|」、「?」、「*」、「+」の各オペレー
タが許可される。原則として、要素名はASN.1抽象
構文では識別子として、オペレータは同じくASN.1
抽象構文では型として表現する。ただし、識別子はBE
Rなどでは符号化されないため、要素名を識別子とする
必然性はない。以下では、オペレータごとに、それをど
のような型で表現するかを説明する。
ence型で表現する。例えば、DTDとして、 <!ELEMENT a (b、c)> <!ELEMENT b (#PCDATA)> <!ELEMENT c (#PCDATA)> が与えられるとき、ASN.1抽象構文(型)は、 となる。ここで、A、B、Cは、便宜上導入した型参照
である。型参照は、衝突さえしなければどのようなもの
でもよい。また、テキストはステップ2−2で分離され
るため、BやCはnull型とする。
ce型で表現する。例えば、DTDとして、 <!ELEMENT a (b|c)> <!ELEMENT b (#PCDATA)> <!ELEMENT c(#PCDATA)> が与えられているとき、ASN.1抽象構文(型)は、 となる。
ence型とキーワード「OPTIONAL」の組み合
わせで表現する。例えば、DTDとして、 <!ELEMENT a (b?)> <!ELEMENT b (#PCDATA)> が与えらるとき、ASN.1抽象構文(型)は、 となる。
ence−of型で表現する。例えば、DTDとして、 <!ELEMENT a (b*)> <!ELEMENT b (#PCDATA)> が与えられるとき、ASN.1抽象構文(型)は、 A ::= SEQUENCE OF B B ::= NULL となる。
制限されたsequence−of型で表現する。ただ
し、サイズ制限は符号化には影響しないため、「+」オ
ペレータに対する符号は「*」オペレータに対するそれ
と同じものになる。例えば、DTDとして、 <!ELEMENT a (b+)> <!ELEMENT b (#PCDATA)> が与えられるとき、ASN.1抽象構文(型)は、 A ::= SEQUENCE SIZE (1 .. MAX) OF B B ::= NULL となる。
1つだけ指定されることもある。そのような要素名は、
ASN.1抽象構文ではdefined型で表現する。
例えば、DTDとして、 <!ELEMENT a (b)> <!ELEMENT b (#PCDATA)> が与えられるとき、ASN.1抽象構文(型)は、 A ::= B B ::= NULLとなる。
の要素名を「|」オペレータで結合した後、「*」オペ
レータを適用したものである。そこで、ASN.1抽象
構文ではchoice型とsequence−of型の
組み合わせで表現する。例えば、DTDとして、 <!ELEMENT a (#PCDATA|b)*> <!ELEMENT b (#PCDATA)> が与ええられるとき、ASN.1抽象構文(型)は、 となる。ここで、txtは便宜上導入した識別子であ
り、混在内容に含まれるテキストに対応する。
る。例えば、DTDが、 <!ELEMENT a EMPTY> の場合はASN.1抽象構文(型)は、 A ::= NULL となる。
宣言されたすべての要素名から構成される混在内容と等
価である。従って、任意要素のASN.1抽象構文にお
ける表現は、混在内容のそれに帰着される。
MLデータからテキストを分離する。例えば、XMLデ
ータが、 の場合、要素bから「10」が、要素cから「20」が
分離される。その結果、XMLデータ(要素名および構
造)は次のようになる。
えば、XMillなどのように、要素ごとにまとめた
後、圧縮することができる。なお、その他の圧縮方法を
適用してももちろん良い。
を、ステップ2−1のASN.1抽象構文(型)に従う
ASN.1抽象構文(値)に変換する。例えば、AS
N.1抽象構文(型)が、 の場合、以下のXMLデータ(要素名および構造)、 をASN.1抽象構文(値)に変換すると、 となる。
化規則に従って、ステップ2−3のASN.1抽象構文
(値)をASN.1転送構文に変換する。そのような規
則にはBERやDER、PER(ALIGNED/UN
ALIGNED)などがある。しかしながら、符号化効
率を向上する観点からPER(UNALIGNED)を
利用することが好ましい。尤も、BER、DER、PE
R(ALIGNED)を利用してもよいことは勿論であ
る。
的方法については、周知のLZ77等を用いる。その
他、従来技術の項で説明した公知技術を用いることがで
きる。圧縮は、要素ごとに行われても良く、また、各要
素をまとめて圧縮しても良い。
トを併合する。両データを単に結合することも可能であ
るが、復号時の分離を考慮したセパレータをデータ間に
挿入し、あるいはデータビット数情報を持つヘッダ等を
付加しても良い。
について示したブロック図である。本実施の形態の復号
化システムは、構文(型)生成装置3−1、転送構文復
号装置3−2、抽象構文復号装置3−3、併合装置3−
4、分離装置3−5、解凍装置3−6を有する。
文(型)生成装置2−1と同様に、DTDをASN.1
抽象構文(型)に変換する。分離装置3−5は、符号化
されたXMLデータからASN.1転送構文と圧縮テキ
ストを分離し、転送構文復号装置3−2は、ASN.1
転送構文をASN.1抽象構文(型)に従うASN.1
抽象構文(値)に変換する。抽象構文復号装置3−3
は、ASN.1抽象構文(値)をDTDに従うXMLデ
ータ(要素名と構造)に変換する。併合装置3−4は復
号化されたテキスト(要素の内容)とXMLデータ(要
素名と構造)を併合し、XMLデータを生成する。解凍
装置3−6は、圧縮テキストを解凍する。
の形態の復号化方法の手順は、前記符号化の手順をほぼ
逆に行う。その概要は以下のとおりである。 (ステップ3−1) DTDをASN.1抽象構文
(型)に変換する。 (ステップ3−2) 符号化XMLデータを圧縮テキス
トとASN.1転送構文に分離する。なお、ステップ3
−2は、ステップ3−1と並行に行われても良く、ステ
ップ3−1よりも先に行われても良い。 (ステップ3−3) ASN.1転送構文を、ステップ
3−1のASN.1抽象構文(型)に従うASN.1抽
象構文(値)に変換する。 (ステップ3−4) ステップ3−3のASN.1抽象
構文(値)を、ステップ3−1のDTDに従うXMLデ
ータ(要素名と構造)に変換する。 (ステップ3−5) ステップ3−2で分離した圧縮テ
キストを解凍する。 (ステップ3−6) ステップ3−4のXMLデータ
(要素名と構造)にステップ3−5で解凍したテキスト
を結合する。
6における復号化の各処理は、それに相当する符号化の
場合の逆であって自明である。よって、その詳細な説明
を省略する。以下、DTDの変換およびそのDTDに従
うXMLデータのPERによる符号化の具体例を示す。
うXMLデータを例にとる。以下のDTD、 <!ELEMENT a (b、c)> <!ELEMENT b (#PCDATA)> <!ELEMENT c (#PCDATA)> が与えられている場合、前記ステップ2−1で生成され
るASN.1抽象構文(型)は、 となる。このようなDTDに従う符号化対象のXMLデ
ータとして、 を例示すれば、前記ステップ2−2で分離される要素
(XMLデータの要素名と構造)は、 となる。この要素から前記ステップ2−3で生成される
ASN.1抽象構文(値)は、 となる。
原則としてその構成要素の値がその順番で符号化され
る。しかし、ここではbやcの値はnullであり、n
ullは空ビット列に符号化されるため、aの値は空ビ
ット列となる。その場合に、符号は例外的に、 00000000(2) のようになる。このようにして、ASN.1転送構文が
生成される。なお、このようなASN.1転送構文の生
成は前記ステップ2−4で行われる。また、下付き文字
の“(2)”は2進数であることを示す。
れた圧縮テキストとASN.1転送構文(ここでは「00
000000(2)」)が前記ステップ2−6で併合され、符号
化XMLデータが生成される。
は、「|」オペレータを含むDTDと、それに従うXM
Lデータを例にとる。以下のDTD、 <!ELEMENT a (b|c)> <!ELEMENT b (#PCDATA)> <!ELEMENT c(#PCDATA)> が与えられている場合、前記ステップ2−1で生成され
るASN.1抽象構文(型)は、 となる。このようなDTDに従う符号化対象のXMLデ
ータとして、 を例示すれば、前記ステップ2−2で分離される要素
(XMLデータの要素名と構造)は、 となる。この要素から前記ステップ2−3で生成される
ASN.1抽象構文(値)は、 a A ::= b:NULL となる。
選択された構成要素のインデクス(0ベース)が符号化
され、次にその構成要素の値が符号化される。ここでは
bが選択されているため、インデクスは0である。ま
た、bの値はnull である。従って、aの値は、 0XXXXXXX(2) のようになる。ここで、Xは、8ビットの倍数にするた
めに付加されたパディング・ビットを表わす。このよう
にして、ASN.1転送構文が生成される。なお、圧縮
テキストの生成および圧縮テキストとASN.1転送構
文の併合は前記“4.「,」オペレータを含む場合”と
同様である。
うXMLデータを例にとる。以下のDTD、 <!ELEMENT a (b?、c)> <!ELEMENT b (#PCDATA)> <!ELEMENT c (#PCDATA)> が与えられている場合、前記ステップ2−1で生成され
るASN.1抽象構文(型)は、 となる。このようなDTDに従う符号化対象のXMLデ
ータとして、 を例示すれば、前記ステップ2−2で分離される要素
(XMLデータの要素名と構造)は、 となる。この要素から前記ステップ2−3で生成される
ASN.1抽象構文(値)は、 となる。
素が少なくとも1つ「OPTIONAL」と指定されて
いる場合に、各構成要素の値が符号化される前に、どの
構成要素が存在しているかを表わすビット列が付加され
る。ビットは、構成要素が存在する場合に1、存在しな
い場合に0となる。ここではbだけが「OPTIONA
L」と指定されており、それが存在しているため、まず
ビット列1 が付加される。次にbとcの値が符号化さ
れるが、それらは共にnullであるため、aの値は、 1XXXXXXX(2) のようになる。このようにして、ASN.1転送構文が
生成される。なお、圧縮テキストの生成および圧縮テキ
ストとASN.1転送構文の併合は前記“4.「,」オ
ペレータを含む場”と同様である。
うXMLデータを例にとる。以下のDTD、 <!ELEMENT a (b*)> <!ELEMENT b (#PCDATA)> が与えられている場合、前記ステップ2−1で生成され
るASN.1抽象構文(型)は、 A ::= SEQUENCE OF B B ::= NULL となる。このようなDTDに従う符号化対象のXMLデ
ータとして、 を例示すれば、前記ステップ2−2で分離される要素
(XMLデータの要素名と構造)は、 となる。この要素から前記ステップ2−3で生成される
ASN.1抽象構文(値)は、 となる。
値は、まずその構成要素の数が符号化され、次に各構成
要素の値がその順番で符号化される。ここでは構成要素
の数は2であり、まずその値が符号化される。次に各構
成要素の値が符号化されるが、それらはすべてnull
であるため、aの値は、00000010(2) のようになる。こ
のようにして、ASN.1転送構文が生成される。な
お、圧縮テキストの生成および圧縮テキストとASN.
1転送構文の併合は前記“4.「,」オペレータを含む
場合”と同様である。
データを例にとる。以下のDTD、 <!ELEMENT a (#PCDATA|b)*> <!ELEMENT b (#PCDATA)> が与えられている場合、前記ステップ2−1で生成され
るASN.1抽象構文(型)は、 となる。このようなDTDに従う符号化対象のXMLデ
ータとして、 を例示すれば、前記ステップ2−2で分離される要素
(XMLデータの要素名と構造)は、 となる。
の内容を示し、「txt」は要素がテキストであること
を示す。この要素から前記ステップ2−3で生成される
ASN.1抽象構文(値)は、 となる。
ce型の値をPERで符号化する方法は、前述の通りで
ある。ここでは、構成要素の数は3である。また、構成
要素としてtxt、b、bがその順番で選択されている
ため、インデクスは0、 1、1となる。それらの値は
すべてnullであるため、aの値は、 00000011(2) 011XXXXX(2) のようになる。このようにして、ASN.1転送構文が
生成される。なお、圧縮テキストの生成および圧縮テキ
ストとASN.1転送構文の併合は前記“4.「,」オ
ペレータを含む場合”と同様である。
XMLデータは要素とテキストだけから構成され、その
他のもの(例えば、属性や処理命令)は別の方法で管理
されると仮定して説明を行った。本実施の形態では、属
性や処理命令等が含まれる場合の処理の一例を説明す
る。すなわち、それら属性等を特別な要素で表現し、X
MLデータの中に埋め込む方法を例示する。この場合、
文法も変更する必要がある。なお、本実施の形態の例に
関わらず、属性等をXMLデータから分離して、XPo
interなどと共に別に格納する方法を採用すること
も可能である。このような属性等を特別な要素としてX
MLデータに埋め込む方策は、前記実施の形態1の処理
の前処理および後処理として把握することが可能であ
る。これにより広い範囲のXMLデータを扱えるように
なる。以下では、そのような前処理の例として、DTD
で定義される項目をXMLデータの中に埋め込む方法を
説明する。
能について示したブロック図である。本実施の形態の前
処理システムは、DTD変換装置9−1、XMLデータ
変換装置9−2、符号化装置9−3を有する。
要素以外の項目についても考慮したDTD’に変換す
る。XMLデータ変換装置9−2は、一般のDTDに従
うXMLデータをDTD’に従うXMLデータ’に変換
する。符号化装置9−3は、実施の形態1の符号化シス
テムである。
によるDTDの変換および装置9−2によるXMLデー
タの変換の各ステップを有する。各々変換後、実施の形
態1の符号化処理を行うことにより符号化XMLデータ
が生成される。
ィティ宣言、記法宣言の3つの宣言が含まれうる。
ィには、パース対象エンティティ、パース対象外エンテ
ィティ、パラメータ・エンティティがある。パース対象
エンティティは、テキストや属性値など、あらゆる場所
で参照されうる。このエンティティは、単純に展開す
る。また、パース対象外エンティティは、属性値でしか
参照されえない。従って、属性を処理できれば十分であ
る。一方、パラメータ・エンティティは、DTDの中で
しか参照されえない。従って、パラメータ・エンティテ
ィは本実施の形態では考慮しない。
か参照されえない。従って、属性を処理できれば十分で
ある。
は、要素型宣言と属性リスト宣言に対するそれに帰着さ
れる。
る属性と、その属性の取りうる値が定義される。また、
必要であれば、デフォルト値も定義される。属性は、
「REQUIRED」であるか、「IMPLIED」で
あるか、デフォルト値が定義されているか、それは「F
IXED」であるかで、要素に対する付与のされ方が変
わる。従って、属性は原則として要素で表現することに
するが、その定義に従って表現を多少変えることが好ま
しい。
する規則は、以下のとおりである。 (1)属性は、要素(以下、属性要素)で表現する。要
素名は、属性名から一意に決定できるようにする。例え
ば、“親の要素名”+“_”+“属性名”のようにす
る。ただし、要素名がすでに使用されていないことに注
意する。以下では、この命名規則に従うことにする。 (2)属性値はすべて「CDATA」として扱い、属性
要素に含める。 (3)属性要素は、親要素の子要素の先頭に挿入する。 (4)「REQUIRED」属性は、要素で表現する。 (5)「IMPLIED」属性は、「?」オペレータが
適用された要素で表現する。 (6)デフォルト値が定義されている属性は、「?」オ
ペレータが適用された要素で表現する。 (7)「FIXED」デフォルト値が定義されている属
性は、無視する。
て、 が与えられたとき、DTD’は、 <!ELEMENT a (a_w、a_x?、a_y?、b、c)> <!ELEMENT a_w (#PCDATA)> <!ELEMENT a_x (#PCDATA)> <!ELEMENT a_y (#PCDATA)> となる。
D’に従うXMLデータ’に変換する。基本的には、要
素に付与されている属性を属性要素に変換し、その属性
要素をその要素の子要素の先頭に挿入すればよい。ただ
し、属性にデフォルト値が定義されており、属性値がそ
れと一致するのであれば、属性要素には変換しない。
Lデータとして、 を例示すれば、XMLデータ’は、 に変換される。ここで、a要素にはx属性が付与されて
いないため、a_x要素は現れていない。また、y属性
の値はデフォルト値と一致するため、a_y要素も現れ
ていない。さらに、z属性は「FIXED」デフォルト
値が定義されているため、削除されている。
能について示したブロック図である。本実施の形態の後
処理システムは、DTD変換装置9−4、復号化装置9
−5、XMLデータ変換装置9−6を有する。
−1と同様である。復号化装置9−5は、実施の形態1
の復号化システムである。XMLデータ変換装置9−6
は、DTD’に従うXMLデータ’からDTDに従うX
MLデータに変換する。
によるDTDの変換および装置9−6によるXMLデー
タの変換の各ステップを有する。実施の形態1の復号化
処理の後、これらステップを実行する。装置9−4によ
るDTDの変換は9.2と同様であり、装置9−6によ
るXMLデータの変換は9.3の変換を逆に行うことに
より実行できる。よって、詳細な説明は省略する。な
お、図中破線矢印は、必要があればDTDを参照するこ
とを意味する。属性要素を識別でき、かつその要素名か
ら属性名を一意に決定できるのであれば、DTDを参照
する必要はない。また、後処理は前処理がいかに行われ
たかに依存するので、前記前処理が異なる場合に本実施
の形態の後処理もそれに併せて変更されることは勿論で
ある。
MLデータを効率良く圧縮することが可能である。以
下、XCompとの比較において、本実施の形態の効果
を説明する。
から一意に決定される情報は符号化しないという点で、
本手法とXCompは同じである。しかし、XComp
は、XMLデータがある特定の構造をしている場合に、
圧縮効率が悪くなる。具体的には、要素に「?」オペレ
ータや「*」オペレータ(「+」オペレータを含む)が
適用された場合である。
列で表現するのに対して、XCompは存在する要素
(選択肢)に付与されたインデクスを羅列する。この差
は、「?」オペレータが適用された要素がいくつか連続
し、それらがすべて存在する場合に顕著に現れる。
に存在している。このXMLデータは、本手法では11
(2)に符号化される。ただし、簡単のため、パディン
グ・ビットは付加していない。
このインデクス列を0ベースに変換し、必要最小限のビ
ット数で符号化すると、符号000(2)が得られる。
本手法による符号とXCompによるそれを比較する
と、本手法のほうが1ビットだけ短く符号化できること
が分かる。
素がいくつか連続し、それらがすべて存在する場合に、
それらを符号化するのに必要なビット数を、本手法とX
Compで比較したものを示す。表1から、本手法はX
Compと同じか、それよりも効率よく符号化できるこ
とが分かる。一般には、「?」オペレータが適用された
要素がn個連続する場合に、XCompはO(nlog
n)ビットを必要とするのに対して、本手法はO
(n)ビットで十分である。
に対して、XCompは存在する要素(選択肢)に付与
されたインデクスを羅列する。この差は、「*」オペレ
ータが適用された要素がいくつも存在する場合に顕著に
現れる。
このXMLデータは、本手法では00001000
(2)に符号化される。
2が得られる。このインデクス列を0ベースに変換し、
必要最小限のビット数で符号化すると、符号00000
0001(2)が得られる。本手法による符号とXCo
mpによるそれとを比較すると、本手法のほうが1ビッ
トだけ短く符号化できることが分かる。
素がいくつも存在する場合に、それらを符号化するのに
必要なビット数を、本手法とXCompで比較したもの
を示す。同図から、要素が8つ以上存在する場合に、本
手法はXCompよりも効率よく符号化できることが分
かる。本手法は、一般にはXCompと同じオーダのビ
ット数を必要とするが、実質的にはそれよりも少ないビ
ット数で十分である。
明の実施の形態に基づき具体的に説明したが、本発明は
前記実施の形態に限定されるものではなく、その要旨を
逸脱しない範囲で種々変更可能である。
ータを組み合わせて適用しても良い。内容モデルで使用
されうるオペレータには、「,」、「|」、「?」、
「*」(「+」 を含む)の4つがある。従って、適用
順序を考慮に入れると、それらの組み合わせは16通り
ある。各組み合わせに対して、前記実施の形態と同様に
XMLデータをASN.1抽象構文に変換することがで
きる。よって、本発明を利用してあらゆるオペレータの
組合せを含むXMLデータを符号化できる。
イントの1つは、文法やそれに従うXMLデータのAS
N.1抽象構文における表現を定義したことである。し
かし、それとは別の表現も考えられる。
の形態ではsequence型とキーワード「OPTI
ONAL」の組み合わせで表現した。具体的には、DT
D: <!ELEMENT a (b?、c)> は、ASN.1抽象構文: に変換される。
文: に変換されてもよい。このように変換されるほうが、B
ERやDERで符号化する場合に符号が短くなるため都
合がよい。
うに表現するほうが妥当である。
何からの型で表現される。例えば、「,」オペレータは
sequence型で表現され、「|」オペレータはc
hoice型で表現される。一方、オペレータの適用を
プロダクションと見なし、すべてsequence型で
表現するという方法も採れる。その場合に、seque
nce 型で表現されていない「|」オペレータ、
「*」オペレータ(「+」オペレータを含む)およびオ
ペレータなしは、次のように表現できる。
一的に表現することで、見た目には分かりやすくなる。
また、オペレータをsequence型でラップするこ
とに相当するので、複数のオペレータを組み合わせても
うまく機能することが分かる。ただし、BERやDER
では常に型が符号化されるため、型を挿入すればするほ
ど符号は長くなる。従って、必要以上の型を挿入するべ
きではなく、その理由から前記実施の形態の手法で表現
するほうが妥当である。
ものによって得られる効果は、以下の通りである。すな
わち、XMLデータの符号化(圧縮)効率を高めること
が可能になり、また、属性等要素以外の記述を含めたX
MLデータの符号化(圧縮)が可能になる。これによ
り、XMLデータの転送による通信負荷を軽減し、ま
た、XMLデータのストレージ容量を少なくできる。
一例をその機能について示したブロック図である。
一例をその機能について示したブロック図である。
一例をその機能について示したブロック図である。
一例をその機能について示したブロック図である。
mpとの比較において示した図である。
3…構文(値)生成装置、2−4…転送構文生成装置、
2−5…圧縮装置、2−6…併合装置、3−1…構文
(型)生成装置、3−2…転送構文復号装置、3−3…
抽象構文復号装置、3−4…併合装置、3−5…分離装
置、3−6…解凍装置、9−1…DTD変換装置、9−
2…XMLデータ変換装置、9−3…符号化装置、9−
4…DTD変換装置、9−5…復号化装置、9−6…X
MLデータ変換装置。
Claims (23)
- 【請求項1】 XMLデータの文法を定義する文法定義
をASN.1抽象構文(型)に変換するステップと、 前記XMLデータを、要素の内容(テキスト)と構造
(構造を含む要素名)とに分離するステップと、 前記構造を、前記ASN.1抽象構文(型)に従うAS
N.1抽象構文(値)に変換するステップと、 前記ASN.1抽象構文(値)をASN.1転送構文に変
換するステップと、 前記要素の内容を圧縮するステップと、 圧縮された前記要素の内容と前記ASN.1転送構文と
を併合するステップと、 を含むXMLデータの符号化方法。 - 【請求項2】 前記文法定義に属性、処理命令その他前
記要素以外の文法定義項目を有し、 前記要素以外の文法定義項目を特別要素として前記要素
に含めるように前記文法定義を他の文法定義に変換する
ステップと、 前記他の文法定義に従うように、前記XMLデータを他
のXMLデータに変換するステップと、 をさらに有する請求項1記載のXMLデータの符号化方
法。 - 【請求項3】 前記文法定義はDTDであり、 前記DTDの要素内容には、「,」、「|」、「?」、
「*」または「+」から選択される単一または複数のオ
ペレータが含まれ、または前記オペレータを含まず、 前記ASN.1抽象構文(型)において、 前記「,」オペレータは、sequence型で表現
し、 前記「|」オペレータは、choice型で表現し、 前記「?」オペレータは、sequence型とキーワ
ード「OPTIONAL」の組み合わせで表現し、 前記「*」オペレータは、sequence−of型で
表現し、 前記「+」オペレータは、サイズが制限されたsequ
ence−of型で表現し、 前記オペレータが無いときには、defined型で表
現する、 請求項1または2記載のXMLデータの符号化方法。 - 【請求項4】 前記文法定義を他の文法定義に変換する
ステップにおいて、 前記文法定義に含まれる属性を、一意に決定できる属性
要素として表現し、前記属性の親要素の子要素として扱
い、 前記属性の属性値は、「CDATA」として前記属性要
素の子要素として扱い、 前記属性が「REQUIRED」属性の場合、前記属性
要素を要素で表現し、 前記属性が「IMPLIED」属性の場合、または、前
記属性にデフォルト値が定義されている場合、前記属性
要素を「?」オペレータが適用された要素で表現し、 前記XMLデータを他のXMLデータに変換するステッ
プにおいて、 前記XMLデータの要素に含まれる属性を、一意に決定
できる属性要素として表現し、前記属性の親要素の子要
素として扱う(ただし前記属性にデフォルト値が定義さ
れ、かつ前記属性の属性値が前記デフォルト値と一致す
る場合を除く)、 請求項3記載のXMLデータの符号化方法。 - 【請求項5】 前記ASN.1抽象構文(値)を前記A
SN.1転送構文に変換するステップにおいて、PER
規則を用いる請求項1または2記載のXMLデータの符
号化方法。 - 【請求項6】 XMLデータの文法を定義する文法定義
をASN.1抽象構文(型)に変換するステップと、 符号化されたXMLデータを、ASN.1転送構文と圧
縮された要素の内容(テキスト)とに分離するステップ
と、 前記ASN.1転送構文を、前記ASN.1抽象構文
(型)に従うASN.1抽象構文(値)に変換するステ
ップと、 前記ASN.1抽象構文(値)を、前記文法定義に従う
XMLデータの構造(構造を含む要素名)に変換するス
テップと、 前記圧縮された要素の内容を解凍するステップと、 前記解凍された要素の内容と前記XMLデータの構造と
を併合するステップと、 を含む符号化されたXMLデータの復号化方法。 - 【請求項7】 前記文法定義に属性、処理命令その他前
記要素以外の文法定義項目を有し、 前記要素以外の文法定義項目を特別要素として前記要素
に含めるように前記文法定義を他の文法定義に変換する
ステップと、 前記文法定義に従うように、前記復号化されたXMLデ
ータを他のXMLデータに変換するステップと、 をさらに有する請求項6記載の符号化されたXMLデー
タの復号化方法。 - 【請求項8】 前記文法定義はDTDであり、 前記DTDの要素内容には、「,」、「|」、「?」、
「*」または「+」から選択される単一または複数のオ
ペレータが含まれ、または前記オペレータを含まず、 前記ASN.1抽象構文(型)において、 前記「,」オペレータは、sequence型で表現
し、 前記「|」オペレータは、choice型で表現し、 前記「?」オペレータは、sequence型とキーワ
ード「OPTIONAL」の組み合わせで表現し、 前記「*」オペレータは、sequence−of型で
表現し、 前記「+」オペレータは、サイズが制限されたsequ
ence−of型で表現し、 前記オペレータが無いときには、defined型で表
現する、 請求項6または7記載の符号化されたXMLデータの復
号化方法。 - 【請求項9】 前記文法定義を他の文法定義に変換する
ステップにおいて、 前記文法定義に含まれる属性を、一意に決定できる属性
要素として表現し前記属性の親要素の子要素として扱
い、 前記属性の属性値は、「CDATA」として前記属性要
素の子要素として扱い、 前記属性が「REQUIRED」属性の場合、前記属性
要素を要素で表現し、 前記属性が「IMPLIED」属性の場合、または、前
記属性にデフォルト値が定義されている場合、前記属性
要素を「?」オペレータが適用された要素で表現し、 前記復号化されたXMLデータを他のXMLデータに変
換するステップにおいて、 前記復号化されたXMLデータの要素に子要素として含
まれる前記属性要素を、前記要素の属性またはその属性
値に変換する、 請求項8記載の符号化されたXMLデータの復号化方
法。 - 【請求項10】 前記ASN.1転送構文を前記AS
N.1抽象構文(値)に変換するステップにおいて、P
ER規則を用いる請求項6または7記載の符号化された
XMLデータの復号化方法。 - 【請求項11】 XMLデータの文法を定義する文法定
義をASN.1抽象構文(型)に変換する手段と、 前記XMLデータを、要素の内容(テキスト)と構造
(構造を含む要素名)とに分離する手段と、 前記構造を、前記ASN.1抽象構文(型)に従うAS
N.1抽象構文(値)に変換する手段と、 前記ASN.1抽象構文(値)をASN.1転送構文に変
換する手段と、 前記要素の内容を圧縮する手段と、 圧縮された前記要素の内容と前記ASN.1転送構文と
を併合する手段と、 を含むXMLデータの符号化システム。 - 【請求項12】 前記文法定義に属性、処理命令その他
前記要素以外の文法定義項目を有し、 前記要素以外の文法定義項目を特別要素として前記要素
に含めるように前記文法定義を他の文法定義に変換する
手段と、 前記他の文法定義に従うように、前記XMLデータを他
のXMLデータに変換する手段と、 をさらに有する請求項11記載のXMLデータの符号化
システム。 - 【請求項13】 前記文法定義はDTDであり、 前記DTDの要素内容には、「,」、「|」、「?」、
「*」または「+」から選択される単一または複数のオ
ペレータが含まれ、または前記オペレータを含まず、 前記ASN.1抽象構文(型)において、 前記「,」オペレータは、sequence型で表現
し、 前記「|」オペレータは、choice型で表現し、 前記「?」オペレータは、sequence型とキーワ
ード「OPTIONAL」の組み合わせで表現し、 前記「*」オペレータは、sequence−of型で
表現し、 前記「+」オペレータは、サイズが制限されたsequ
ence−of型で表現し、 前記オペレータが無いときには、defined型で表
現する、 請求項11または12記載のXMLデータの符号化シス
テム。 - 【請求項14】 前記文法定義を他の文法定義に変換す
る手段において、 前記文法定義に含まれる属性を、一意に決定できる属性
要素として表現し、前記属性の親要素の子要素として扱
い、 前記属性の属性値は、「CDATA」として前記属性要
素の子要素として扱い、 前記属性が「REQUIRED」属性の場合、前記属性
要素を要素で表現し、 前記属性が「IMPLIED」属性の場合、または、前
記属性にデフォルト値が定義されている場合、前記属性
要素を「?」オペレータが適用された要素で表現し、 前記XMLデータを他のXMLデータに変換する手段に
おいて、 前記XMLデータの要素に含まれる属性を、一意に決定
できる属性要素として表現し、前記属性の親要素の子要
素として扱う(ただし前記属性にデフォルト値が定義さ
れ、かつ前記属性の属性値が前記デフォルト値と一致す
る場合を除く)、 請求項13記載のXMLデータの符号化システム。 - 【請求項15】 前記ASN.1抽象構文(値)を前記
ASN.1転送構文に変換する手段において、PER規
則を用いる請求項11または12記載のXMLデータの
符号化システム。 - 【請求項16】 XMLデータの文法を定義する文法定
義をASN.1抽象構文(型)に変換する手段と、 符号化されたXMLデータを、ASN.1転送構文と圧
縮された要素の内容(テキスト)とに分離する手段と、 前記ASN.1転送構文を、前記ASN.1抽象構文
(型)に従うASN.1抽象構文(値)に変換する手段
と、 前記ASN.1抽象構文(値)を、前記文法定義に従う
XMLデータの構造(構造を含む要素名)に変換する手
段と、 前記圧縮された要素の内容を解凍する手段と、 前記解凍された要素の内容と前記XMLデータの構造と
を併合する手段と、 を含む符号化されたXMLデータの復号化システム。 - 【請求項17】 前記文法定義に属性、処理命令その他
前記要素以外の文法定義項目を有し、 前記要素以外の文法定義項目を特別要素として前記要素
に含めるように前記文法定義を他の文法定義に変換する
手段と、 前記文法定義に従うように、前記復号化されたXMLデ
ータを他のXMLデータに変換する手段と、 をさらに有する請求項16記載の符号化されたXMLデ
ータの復号化システム。 - 【請求項18】 前記文法定義はDTDであり、 前記DTDの要素内容には、「,」、「|」、「?」、
「*」または「+」から選択される単一または複数のオ
ペレータが含まれ、または前記オペレータを含まず、 前記ASN.1抽象構文(型)において、 前記「,」オペレータは、sequence型で表現
し、 前記「|」オペレータは、choice型で表現し、 前記「?」オペレータは、sequence型とキーワ
ード「OPTIONAL」の組み合わせで表現し、 前記「*」オペレータは、sequence−of型で
表現し、 前記「+」オペレータは、サイズが制限されたsequ
ence−of型で表現し、 前記オペレータが無いときには、defined型で表
現する、 請求項16または17記載の符号化されたXMLデータ
の復号化システム。 - 【請求項19】 前記文法定義を他の文法定義に変換す
る手段において、 前記文法定義に含まれる属性を、一意に決定できる属性
要素として表現し、前記属性の親要素の子要素として扱
い、 前記属性の属性値は、「CDATA」として前記属性要
素の子要素として扱い、 前記属性が「REQUIRED」属性の場合、前記属性
要素を要素で表現し、 前記属性が「IMPLIED」属性の場合、または、前
記属性にデフォルト値が定義されている場合、前記属性
要素を「?」オペレータが適用された要素で表現し、 前記復号化されたXMLデータを他のXMLデータに変
換する手段において、 前記復号化されたXMLデータの要素に子要素として含
まれる前記属性要素を、前記要素の属性またはその属性
値に変換する、 請求項18記載の符号化されたXMLデータの復号化シ
ステム。 - 【請求項20】 前記ASN.1転送構文を前記AS
N.1抽象構文(値)に変換する手段において、PER
規則を用いる請求項16または17記載の符号化された
XMLデータの復号化システム。 - 【請求項21】 コンピュータが実行可能なプログラム
であって、コンピュータに、 XMLデータの文法を定義する文法定義をASN.1抽
象構文(型)に変換する機能と、 前記XMLデータを、要素の内容(テキスト)と構造
(構造を含む要素名)とに分離する機能と、 前記構造を、前記ASN.1抽象構文(型)に従うAS
N.1抽象構文(値)に変換する機能と、 前記ASN.1抽象構文(値)をASN.1転送構文に変
換する機能と、 前記要素の内容を圧縮する機能と、 圧縮された前記要素の内容と前記ASN.1転送構文と
を併合する機能と、 を実現させるためのプログラム。 - 【請求項22】 コンピュータが実行可能なプログラム
であって、コンピュータに、 XMLデータの文法を定義する文法定義をASN.1抽
象構文(型)に変換する機能と、 符号化されたXMLデータを、ASN.1転送構文と圧
縮された要素の内容(テキスト)とに分離する機能と、 前記ASN.1転送構文を、前記ASN.1抽象構文
(型)に従うASN.1抽象構文(値)に変換する機能
と、 前記ASN.1抽象構文(値)を、前記文法定義に従う
XMLデータの構造(構造を含む要素名)に変換する機
能と、 前記圧縮された要素の内容を解凍する機能と、 前記解凍された要素の内容と前記XMLデータの構造と
を併合する機能と、 を実現させるためのプログラム。 - 【請求項23】 コンピュータ読取可能な記録媒体であ
って、 コンピュータに、XMLデータの文法を定義する文法定
義をASN.1抽象構文(型)に変換する機能と、前記
XMLデータを、要素の内容(テキスト)と構造(構造
を含む要素名)とに分離する機能と、前記構造を、前記
ASN.1抽象構文(型)に従うASN.1抽象構文
(値)に変換する機能と、前記ASN.1抽象構文
(値)をASN.1転送構文に変換する機能と、前記要
素の内容を圧縮する機能と、圧縮された前記要素の内容
と前記ASN.1転送構文とを併合する機能と、を実現
させるための第1プログラム、または、 コンピュータに、XMLデータの文法を定義する文法定
義をASN.1抽象構文(型)に変換する機能と、符号
化されたXMLデータを、ASN.1転送構文と圧縮さ
れた要素の内容(テキスト)とに分離する機能と、前記
ASN.1転送構文を、前記ASN.1抽象構文(型)
に従うASN.1抽象構文(値)に変換する機能と、前
記ASN.1抽象構文(値)を、前記文法定義に従うX
MLデータの構造(構造を含む要素名)に変換する機能
と、前記圧縮された要素の内容を解凍する機能と、前記
解凍された要素の内容と前記XMLデータの構造とを併
合する機能と、を実現させるための第2プログラム、 の何れかのプログラムが記録された記録媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001027462A JP3894280B2 (ja) | 2001-02-02 | 2001-02-02 | Xmlデータの符号化方法、符号化されたxmlデータの復号化方法、xmlデータの符号化システム、符号化されたxmlデータの復号化システム、プログラムおよび記録媒体 |
US10/047,958 US7143397B2 (en) | 2001-02-02 | 2002-01-15 | XML data encoding and decoding |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001027462A JP3894280B2 (ja) | 2001-02-02 | 2001-02-02 | Xmlデータの符号化方法、符号化されたxmlデータの復号化方法、xmlデータの符号化システム、符号化されたxmlデータの復号化システム、プログラムおよび記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002244894A true JP2002244894A (ja) | 2002-08-30 |
JP3894280B2 JP3894280B2 (ja) | 2007-03-14 |
Family
ID=18892112
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001027462A Expired - Fee Related JP3894280B2 (ja) | 2001-02-02 | 2001-02-02 | Xmlデータの符号化方法、符号化されたxmlデータの復号化方法、xmlデータの符号化システム、符号化されたxmlデータの復号化システム、プログラムおよび記録媒体 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7143397B2 (ja) |
JP (1) | JP3894280B2 (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005018672A (ja) * | 2003-06-30 | 2005-01-20 | Hitachi Ltd | 構造化文書の圧縮方法 |
US7231591B2 (en) | 2003-03-31 | 2007-06-12 | Nec Corporation | Computer system suitable for communications of structured documents |
JP2008123122A (ja) * | 2006-11-09 | 2008-05-29 | Mitsubishi Electric Corp | Sipメッセージ圧縮解凍モジュール生成装置、通信装置およびsipメッセージ圧縮解凍方法 |
US7668860B2 (en) * | 2007-04-02 | 2010-02-23 | Business Objects Software Ltd. | Apparatus and method for constructing and using a semantic abstraction for querying hierarchical data |
KR100950026B1 (ko) | 2007-08-31 | 2010-03-29 | (주)지슨 | 에이에스엔.1 을 이용하여 데이터를 연동하는 시스템과데이터 연동 장치, 에이에스엔.1을 이용하여 이종시스템으로 송출할 데이터를 인코딩하는 방법 및 이종시스템과의 데이터 연동 방법 |
JP2012502337A (ja) * | 2008-09-08 | 2012-01-26 | トムソン ライセンシング | 要素の符号化方法と装置 |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8751391B2 (en) * | 2002-03-29 | 2014-06-10 | Jpmorgan Chase Bank, N.A. | System and process for performing purchase transactions using tokens |
US7669120B2 (en) * | 2002-06-21 | 2010-02-23 | Microsoft Corporation | Method and system for encoding a mark-up language document |
EP1609285B1 (en) * | 2003-02-14 | 2007-11-07 | Research In Motion Limited | System and method of compact messaging in network communications |
ATE405032T1 (de) * | 2003-02-14 | 2008-08-15 | Research In Motion Ltd | System und verfahren zum komprimieren von strukturierter definition-sprache |
US7720794B2 (en) * | 2003-08-05 | 2010-05-18 | International Business Machines Corporation | Identifying resource and data instances in management systems |
GB2412978A (en) * | 2004-04-07 | 2005-10-12 | Hewlett Packard Development Co | Method and system for compressing and decompressing hierarchical data structures |
AU2004318284B2 (en) * | 2004-04-09 | 2008-10-30 | Huawei Technologies Co., Ltd. | ASN.1 protocol processor and method for ASN.1 protocol processing |
US7885980B2 (en) | 2004-07-02 | 2011-02-08 | Oracle International Corporation | Mechanism for improving performance on XML over XML data using path subsetting |
US8769401B2 (en) * | 2004-08-05 | 2014-07-01 | Digi International Inc. | Method for compressing XML documents into valid XML documents |
US20060075391A1 (en) * | 2004-10-05 | 2006-04-06 | Esmonde Laurence G Jr | Distributed scenario generation |
US8346737B2 (en) * | 2005-03-21 | 2013-01-01 | Oracle International Corporation | Encoding of hierarchically organized data for efficient storage and processing |
US7461335B2 (en) | 2005-05-31 | 2008-12-02 | Sap Ag | Dynamic conversion of data into markup language format |
US7933928B2 (en) | 2005-12-22 | 2011-04-26 | Oracle International Corporation | Method and mechanism for loading XML documents into memory |
US8024427B2 (en) * | 2006-01-09 | 2011-09-20 | Microsoft Corporation | Dynamic storage of documents |
US7593949B2 (en) * | 2006-01-09 | 2009-09-22 | Microsoft Corporation | Compression of structured documents |
US7565339B2 (en) * | 2006-03-31 | 2009-07-21 | Agiledelta, Inc. | Knowledge based encoding of data |
US9460064B2 (en) * | 2006-05-18 | 2016-10-04 | Oracle International Corporation | Efficient piece-wise updates of binary encoded XML data |
US7405677B2 (en) * | 2006-08-08 | 2008-07-29 | International Business Machines Corporation | Apparatus, system, and method for incremental encoding conversion of XML data using Java |
US20080077606A1 (en) * | 2006-09-26 | 2008-03-27 | Motorola, Inc. | Method and apparatus for facilitating efficient processing of extensible markup language documents |
US7739251B2 (en) * | 2006-10-20 | 2010-06-15 | Oracle International Corporation | Incremental maintenance of an XML index on binary XML data |
US8010889B2 (en) * | 2006-10-20 | 2011-08-30 | Oracle International Corporation | Techniques for efficient loading of binary XML data |
US7627566B2 (en) * | 2006-10-20 | 2009-12-01 | Oracle International Corporation | Encoding insignificant whitespace of XML data |
US9953103B2 (en) * | 2006-11-16 | 2018-04-24 | Oracle International Corporation | Client processing for binary XML in a database system |
US7836396B2 (en) * | 2007-01-05 | 2010-11-16 | International Business Machines Corporation | Automatically collecting and compressing style attributes within a web document |
US7747558B2 (en) * | 2007-06-07 | 2010-06-29 | Motorola, Inc. | Method and apparatus to bind media with metadata using standard metadata headers |
US7831540B2 (en) * | 2007-10-25 | 2010-11-09 | Oracle International Corporation | Efficient update of binary XML content in a database system |
US7991768B2 (en) | 2007-11-08 | 2011-08-02 | Oracle International Corporation | Global query normalization to improve XML index based rewrites for path subsetted index |
US8543898B2 (en) | 2007-11-09 | 2013-09-24 | Oracle International Corporation | Techniques for more efficient generation of XML events from XML data sources |
US8250062B2 (en) | 2007-11-09 | 2012-08-21 | Oracle International Corporation | Optimized streaming evaluation of XML queries |
US9842090B2 (en) | 2007-12-05 | 2017-12-12 | Oracle International Corporation | Efficient streaming evaluation of XPaths on binary-encoded XML schema-based documents |
US8145794B2 (en) * | 2008-03-14 | 2012-03-27 | Microsoft Corporation | Encoding/decoding while allowing varying message formats per message |
KR101419885B1 (ko) | 2008-04-10 | 2014-07-16 | (주)휴맥스 | 적응적 복호화 장치 및 방법 |
US8429196B2 (en) | 2008-06-06 | 2013-04-23 | Oracle International Corporation | Fast extraction of scalar values from binary encoded XML |
FR2943441A1 (fr) | 2009-03-18 | 2010-09-24 | Canon Kk | Procede de codage ou decodage d'un document structure a l'aide d'un schema xml, dispositif et structure de donnees associes |
US8997207B2 (en) * | 2009-09-24 | 2015-03-31 | Sap Ag | Modular secure data transfer |
US20110107201A1 (en) * | 2009-10-29 | 2011-05-05 | Microsoft Corporation | Representing complex document structure via simpler structure through isomorphism |
US8255372B2 (en) | 2010-01-18 | 2012-08-28 | Oracle International Corporation | Efficient validation of binary XML data |
EP2570921A1 (de) * | 2011-06-14 | 2013-03-20 | Siemens Aktiengesellschaft | Verfahren und Vorrichtungen zum Austausch von Daten |
US10756759B2 (en) | 2011-09-02 | 2020-08-25 | Oracle International Corporation | Column domain dictionary compression |
US8812523B2 (en) | 2012-09-28 | 2014-08-19 | Oracle International Corporation | Predicate result cache |
KR102126018B1 (ko) | 2013-11-06 | 2020-06-23 | 삼성전자주식회사 | 필드의 위치 정보를 포함하는 패킷을 처리하는 송, 수신 노드의 동작 방법 및 필드의 위치 정보를 포함하는 패킷 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3305191B2 (ja) | 1996-03-19 | 2002-07-22 | 富士通株式会社 | 文書管理装置及びデータ圧縮方法及びデータ復元方法 |
KR19980033054A (ko) * | 1996-10-23 | 1998-07-25 | 윌리엄비.켐플러 | 프로그램 가능 메모리 액세스 |
JP2925084B1 (ja) * | 1998-07-10 | 1999-07-26 | トーヨーテクノ株式会社 | 開口レーザーラインマーカー |
JP4003854B2 (ja) * | 1998-09-28 | 2007-11-07 | 富士通株式会社 | データ圧縮装置及び復元装置並びにその方法 |
JP2000357568A (ja) * | 1999-06-14 | 2000-12-26 | Harness Syst Tech Res Ltd | 放電式ランプのソケット |
US6772413B2 (en) * | 1999-12-21 | 2004-08-03 | Datapower Technology, Inc. | Method and apparatus of data exchange using runtime code generator and translator |
US7024413B2 (en) * | 2000-07-26 | 2006-04-04 | International Business Machines Corporation | Method of externalizing legacy database in ASN.1-formatted data into XML format |
-
2001
- 2001-02-02 JP JP2001027462A patent/JP3894280B2/ja not_active Expired - Fee Related
-
2002
- 2002-01-15 US US10/047,958 patent/US7143397B2/en not_active Expired - Fee Related
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7231591B2 (en) | 2003-03-31 | 2007-06-12 | Nec Corporation | Computer system suitable for communications of structured documents |
JP2005018672A (ja) * | 2003-06-30 | 2005-01-20 | Hitachi Ltd | 構造化文書の圧縮方法 |
JP2008123122A (ja) * | 2006-11-09 | 2008-05-29 | Mitsubishi Electric Corp | Sipメッセージ圧縮解凍モジュール生成装置、通信装置およびsipメッセージ圧縮解凍方法 |
US7668860B2 (en) * | 2007-04-02 | 2010-02-23 | Business Objects Software Ltd. | Apparatus and method for constructing and using a semantic abstraction for querying hierarchical data |
KR100950026B1 (ko) | 2007-08-31 | 2010-03-29 | (주)지슨 | 에이에스엔.1 을 이용하여 데이터를 연동하는 시스템과데이터 연동 장치, 에이에스엔.1을 이용하여 이종시스템으로 송출할 데이터를 인코딩하는 방법 및 이종시스템과의 데이터 연동 방법 |
JP2012502337A (ja) * | 2008-09-08 | 2012-01-26 | トムソン ライセンシング | 要素の符号化方法と装置 |
Also Published As
Publication number | Publication date |
---|---|
JP3894280B2 (ja) | 2007-03-14 |
US7143397B2 (en) | 2006-11-28 |
US20030018466A1 (en) | 2003-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3894280B2 (ja) | Xmlデータの符号化方法、符号化されたxmlデータの復号化方法、xmlデータの符号化システム、符号化されたxmlデータの復号化システム、プログラムおよび記録媒体 | |
Girardot et al. | Millau: an encoding format for efficient representation and exchange of XML over the Web | |
US6883137B1 (en) | System and method for schema-driven compression of extensible mark-up language (XML) documents | |
US8819287B2 (en) | System and method for compressing URL request parameters | |
JP3368883B2 (ja) | データ圧縮装置、データベースシステム、データ通信システム、データ圧縮方法、記憶媒体及びプログラム伝送装置 | |
EP0813167B1 (en) | Method and apparatus for font compression and decompression | |
US20020029229A1 (en) | Systems and methods for data compression | |
Sundaresan et al. | Algorithms and programming models for efficient representation of XML for Internet applications | |
EP1803225A1 (en) | Adaptive compression scheme | |
JP2004514966A (ja) | Mpeg−7インスタンス用の二進フォーマット | |
JP2004535034A (ja) | 階層化ツリーを圧縮する方法及び圧縮されたマルチメディア信号をデコーディングする方法 | |
US6304676B1 (en) | Apparatus and method for successively refined competitive compression with redundant decompression | |
KR20020069229A (ko) | 텍스트 도큐먼트들을 압축하기 위한 방법 및 장치 | |
US7676742B2 (en) | System and method for processing of markup language information | |
WO2014029081A1 (zh) | 压缩方法及设备 | |
KR100653189B1 (ko) | 엑스엠엘 문서 변환 장치 및 그 방법 | |
Al-Shammary et al. | SOAP web services compression using variable and fixed length coding | |
US10762281B1 (en) | Prefix compression for keyed values | |
JP2001136075A (ja) | データ圧縮/復元装置及びデータ圧縮/復元プログラムを記録した記憶媒体 | |
Hoang et al. | Dictionary selection using partial matching | |
JP4093193B2 (ja) | データ圧縮方法及びプログラムならびにデータ復元方法及び装置 | |
Alakuijala et al. | RFC 7932: Brotli Compressed Data Format | |
Yokoo | An improvement of dynamic Huffman coding with a simple repetition finder | |
JP2005284903A (ja) | 文書符号化装置、文書復号化装置、文書符号化方法及び文書復号化方法 | |
Yokoo et al. | Data compression by context sorting |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051107 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20060207 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20060210 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060508 |
|
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: 20061114 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20061117 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061205 |
|
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: 20091222 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101222 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101222 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111222 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111222 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121222 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121222 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131222 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |