JP4429329B2 - 符号化装置及びその制御方法、復号装置及びその制御方法、プログラム、記憶媒体 - Google Patents

符号化装置及びその制御方法、復号装置及びその制御方法、プログラム、記憶媒体 Download PDF

Info

Publication number
JP4429329B2
JP4429329B2 JP2007036808A JP2007036808A JP4429329B2 JP 4429329 B2 JP4429329 B2 JP 4429329B2 JP 2007036808 A JP2007036808 A JP 2007036808A JP 2007036808 A JP2007036808 A JP 2007036808A JP 4429329 B2 JP4429329 B2 JP 4429329B2
Authority
JP
Japan
Prior art keywords
document
encoding
schema
structured document
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007036808A
Other languages
English (en)
Other versions
JP2008204000A (ja
Inventor
均 内田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2007036808A priority Critical patent/JP4429329B2/ja
Priority to US12/524,665 priority patent/US8250465B2/en
Priority to EP08704534A priority patent/EP2122492A1/en
Priority to CN2008800053410A priority patent/CN101617307B/zh
Priority to PCT/JP2008/052214 priority patent/WO2008099793A1/en
Publication of JP2008204000A publication Critical patent/JP2008204000A/ja
Application granted granted Critical
Publication of JP4429329B2 publication Critical patent/JP4429329B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/149Adaptation of the text data for streaming purposes, e.g. Efficient XML Interchange [EXI] format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]

Landscapes

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

Description

本発明はXMLデータを符号化・復号するための情報処理技術に関する。
XML文書、HTML文書等の構造化文書はテキスト形式のデータであるため、これらの構造化文書を解析する処理装置は、構造化文書の読み書きや保存などを主にテキスト形式で行ってきた。しかし、構造化文書は冗長なデータを含むため、コンピュータがテキスト形式のデータとして構造化文書を読み書きするのには、時間がかかってしまう。このため、構造化文書をバイナリデータの形式で表現・処理することで、データサイズを小さくする、いわゆるバイナリXMLという技術が近年開発されている。なお、XMLはeXtensible Markup Languageの略称であり、HTMLはHyperText Markup Languageの略称である。
例えば、Sun MicrosystemsのFast Infosetでは、XMLデータ中に含まれる要素名や属性名などの各ボキャブラリをXMLデータ内の出現順に番号を振って符号化する。これにより、XMLデータのサイズを小さくすることが可能である。符号と各ボキャブラリの対応を示す表は符号化テーブルと呼ばれる。なお、Fast Infosetの技術詳細は、例えば、次のリンク先に記載されている。
http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=41327&scopelist=PROGRAMME
また、KDDIのXEUSは、属性値や要素内容に、カンマやスペースなどのセパレータで区切られた数値の配列がある場合において、そのデータ全体を文字列として符号化するのではなく、セパレータで区切って各数値を符号化する。これにより、XMLデータを効率的に圧縮することが可能である。なお、XEUSは、"XML document Encoding with Uniformed Sheet"の略称である。
また、MPEGのBiMや、特許文献1に開示された構成では、構造化文書の文法(文書構造)を定義したXHTMLやSVGのスキーマに含まれるデータの型情報を解析して、各属性値や要素内容のデータ型に対して最適な符号化を行う。これにより、XMLデータを効率的に圧縮することが可能であった。なお、MPEGは、Moving Picture Expert Groupの略称である。BiMは、Binary Format for MPEG-7の略称であり、以下のリンク先から技術情報を取得できる。
http://www.iso.ch/iso/en/prods-services/popstds/mpeg.html
SVGは、Scalable Vector Graphicsの略称である。XHTMLは、Extensible HyperText Markup Languageの略称である。
特開2005−215951号公報
しかし、従来技術で用いているXHTMLやSVGなどのスキーマは、構造化文書の一般的な文法(文書構造)を定義するものである。よって、ある特定のアプリケーションにおいて、同じ文書構造のXMLデータが繰り返し出現する場合でも、従来技術は、構造化文書の一般的な文法を定義したスキーマの情報を用いるので、アプリケーション固有の文書構造に対して符号化を行っていなかった。
例えば、図1のようなSVG(Scalable Vector Graphics)で記述された構造化文書があるとする。図1は、同じ文書構造が繰り返し出現する構造化文書を例示する図である。図1において、9101〜9103は、属性値、文字列等の変数値は異なるが、それぞれ同じ文書構造を有している。この構造化文書において、circleという名前の空要素はcx,cy,r,fill,stroke,stroke-widthといった複数の属性値を有している。そのcircle要素の次にはtext要素が出現している。そのtext要素はx,y,font-sizeといった複数の属性値を持ち、要素内容として文字列を有している。そして、その構造化文書に含まれるcircle要素とtext要素は、図1の9104のように、各ボタンを表現しているとする。
従来のバイナリXML技術では、SVGのスキーマを用いて、circle要素の各属性値のデータ型を解析して、そのデータ型に符号化を行うことで、図2のような符号化テーブルを生成し、図3、図4に示すような構造化文書を符号化していた。しかし、図1のボタンオブジェクトのように、アプリケーション固有の繰り返し出現する文書構造そのものに対して、符号を割り振ることはしておらず、データサイズを小さくすることに限界があった。
図2は、従来のバイナリXML技術により生成された符号化テーブルを例示する図である。図3、図4は、従来のバイナリXML技術により符号化された符号化文書を例示する図である。図1のように、符号化対象の構造化文書では同じ文書構造が繰り返し用いられているにも関わらず、図2〜4のように、従来の構成では、要素名や属性名毎に符号が割り当てられていた。このため、従来の符号化手法により生成された符号化文書のデータサイズは、更に小さくできる余地があった。
本発明は上記課題に鑑みなされたものであり、構造化文書を更に小さいデータサイズで符号化することを可能にする技術を提供することを目的とする。
上記目的を達成するため、本発明による符号化装置は以下の構成を備える。即ち、
構造化文書を符号化して符号化文書を生成する符号化装置であって、
前記構造化文書の文書構造を定義するスキーマ中の所定の要素で規定される一部のスキーマをボキャブラリとして、第1符号と対応付けて符号化テーブルに格納する格納手段と、
前記造化文書の一部が、前記符号化テーブル中の前記一部のスキーマで定義される文書構造と一致するか否かを検証する証手段と、
前記構造化文書に対して、前記文書構造と一致すると検証された前記構造化文書の一部に前記第1符号を割り当てるとともに、前記文書構造と一致すると検証された前記構造化文書の一部の変数値に対応する第2符号を割り当てることにより、前記構造化文書を符号化する符号化手段と、
を備え
前記スキーマ中の前記所定の要素で規定される一部のスキーマは、複数の前記変数値のデータ型を定義する
本発明によれば、構造化文書を更に小さいデータサイズで符号化することを可能にする技術を提供することができる。
以下、添付図面を参照して本実施形態に係る符号化装置及び復号装置の構成例を説明する。本実施形態では、説明の簡略化のため、符号化装置及び復号装置を同一の情報処理装置で実現した場合を例示的に想定して説明するが、それぞれを別の装置で実現してもよい。また、この実施の形態に記載されている構成要素はあくまでも例示であり、本発明の範囲をそれらのみに限定する趣旨のものではない。
(情報処理装置の構成)
図5は本実施形態に係る情報処理装置を備えるシステムの概要を示した構成図である。同図において、本実施形態に係る情報処理装置としてのPC(パーソナルコンピュータ)101は、LAN102に接続されている。LAN102には、デジタルカメラ103、プリンタ104、ファイルサーバ105が接続されている。
図6は、本実施形態に係る情報処理装置としてのPC101の構成を示すブロック図である。同図において、CPU201はシステム制御部であり、装置全体を制御する。ROM202は、CPUの制御プログラムや各種固定データを格納する記憶装置である。RAM203は、SRAM、DRAMなどで構成され、プログラム制御変数などを格納するための記憶装置である。また、各種設定パラメータ、各種ワーク用バッファもRAM203に格納される。記憶部204はハードディスクなどで構成され、文書データや画像データなどを各種データファイルを格納するための記憶装置である。操作部205はキーボードやマウス、タッチパネルなどで構成され、オペレータが各種入力操作を行うための指示入力装置である。表示部206は、画像を表示するテレビジョン等のディスプレイ装置である。LANi/f207は、LAN回線208に接続するためのインターフェースである。USBi/f209は、USB回線210に接続するためのインターフェースである。
なお、本実施形態では、本実施形態に係る情報処理装置をパーソナルコンピュータ(PC)で実現した場合を想定して説明するが、これに限られない。例えば、ワークステーション(WS)、携帯情報端末(PDA)等で実現してもよい。
また、本実施形態では、説明の便宜のため、本実施形態に係る情報処理装置を1つの装置で実現した構成について述べるが、複数の装置にリソースを分散した構成によって実現してもよい。例えば、記憶や演算のリソースを複数の装置に分散した形に構成してもよい。或いは、情報処理装置上で仮想的に実現される構成要素毎にリソースを分散し、並列処理を行うようにしてもよい。
以下、図1のボタンオブジェクト9101〜9103のように、繰り返し同じ文書構造が出現する構造化文書について、その文書構造自体を符号化することによって、データサイズを小さくする手法について説明していく。なお、本実施形態では構造化文書の一例としてXMLデータに対して処理を行う場合を想定するが、これに限られるわけではない。
(スキーマ)
図7は、図1に例示した、繰り返し同じ文書構造が出現するXMLデータについて、RELAX NGで記述したスキーマを示す図である。このスキーマは、符号化処理を行う前に、構造化文書の文書構造を基に事前に作成しておく必要がある。本実施形態に係る情報処理装置(PC101)は、このスキーマを基に、繰り返し出現する文書構造を含む構造化文書を符号化する。
図7に例示したスキーマは、RELAX NGにおけるdefine要素を用いて、1つのボタンオブジェクトを構成するcircle要素とtext要素のスキーマを、それぞれ701、702において定義している。そのcircle要素とtext要素は、RELAX NGにおけるelement要素を用いて定義されている(703、704)。また、circle要素とtext要素の各属性は、RELAX NGにおけるattribute要素を用いて定義されている。ここでは、circle要素に含まれる属性cx,cy,r,stroke-widthの属性値のデータ型がdouble型と定義され(705〜708)、同様に、属性fill,strokeについてはstring型と定義されている(709、710)。このデータの型名は、W3C XML Schema Part2:datatypes(http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/datatypes.html)で定義されている。また、text要素に含まれる属性x,y,font-sizeの属性値のデータ型は、double型と定義されている(711〜713)。なお、本実施形態では、属性値、要素内容等のデータを総称して変数値と呼ぶ。
circle要素、text要素から成るボタンオブジェクトの他に、オブジェクトが存在するならば、その各オブジェクトのスキーマを、別のdefine要素の子要素として定義する。図8は、上述のボタンオブジェクトの他に、ユーザのテキスト入力を受け付けるテキストフィールドのオブジェクトをさらに追加して定義した例である。図8において、801は、テキストフィールドのオブジェクト定義を示している。図8のように、define要素をいくつも並べることによって、繰り返し出現するオブジェクトの文書構造を複数定義することができる。
ここで、本実施形態では、スキーマ言語としてRELAX NGを例に説明しているが、例えば、DTDやXML Schema(W3C XML Schema)等の他のスキーマ言語を用いてもよい。或いは、スキーマの短縮記法(http://www.oasis-open.org/committees/relax-ng/compact-20021121.htm)を用いてもよい。
(文書構造の符号化処理)
次に、繰り返し同じ文書構造が出現する構造化文書において、その文書構造自体をPC101が符号化する手順について、図9を参照して説明する。図9は、文書構造の符号化処理の手順を示すフローチャートである。以下の処理は、本実施形態に係る情報処理装置としてのPC101が備える、CPU201の制御に基づいて実行される。
ステップS101で処理を開始すると、まず、図7に例示したような処理対象のスキーマを記憶部204等から読み出し、解析して内部メモリに格納する(ステップS102)。
次に、内部メモリに格納されたスキーマのデータを用いて、繰り返し出現する内容モデルを符号化する(ステップS103)。ステップS103における詳細について、図10を参照して説明する。図10は、ステップS103において実行する処理の詳細な手順を示すフローチャートである。
ステップS201において(ステップS103の)処理を開始すると、まず、内部メモリに格納されているスキーマについて、繰り返し出現する内容モデルを定義した、各define要素以下のスキーマを解析する(ステップS202)。次に、そのdefine要素以下のスキーマを符号化テーブルにおけるボキャブラリとして、内部メモリに格納する(ステップS203)。図11は、図7に例示したボタンオブジェクトのスキーマを基に生成されたボキャブラリを示す図である。図11に示すように、ボタンオブジェクトを定義したdefine要素以下のスキーマの内容がボキャブラリに該当する。
次に、ステップS203において生成したボキャブラリを符号化テーブルに追加する(ステップS204)。つまりステップS202〜S204では、構造化文書の文書構造を示すスキーマ情報を解析し、当該文書構造に符号を割り当て、当該文書構造と当該符号との対応関係に基づき符号化テーブルを更新している。スキーマに含まれる各部分文書構造(本実施形態では、<define>で始まり</define>で終わる部分文書構造)にそれぞれ符号が付与される。なお、ステップS204では、繰り返し出現する内容モデルの開始フラグと、終了フラグを符号化テーブルに追加する。この開始フラグは、繰り返し出現する文書構造のボキャブラリの開始を示すものであり、終了フラグは、繰り返し出現する文書構造の終了を示すものである。つまり、開始フラグと終了フラグは、予め定義された文書構造に照らして妥当である範囲を符号化するための第3符号として機能する。この開始フラグと終了フラグは、繰り返し出現する他の文書構造に対しても、開始と終了を示す符号として用いられる。
以上の手順を、内部メモリに格納したスキーマの各define要素について行う。即ち、ステップS204の処理が終了すると、ステップS205において、全てのdefine要素についてステップS202〜S204の処理が処理済みであるか否かを判定する。処理済みの場合(ステップS205でYES)はステップS103を終了する。処理済みでない場合(ステップS205でNO)はステップS202へ戻り、まだ処理を行っていないdefine要素について、ステップS202〜S204の処理を実行する。
図12は、ステップS103を終了した後の符号化テーブルを例示する図である。符号0x05には、繰り返し出現する内容モデルの開始フラグをボキャブラリとして格納しており(1201)、符号0x06には、繰り返し出現する内容モデルの終了フラグをボキャブラリとして格納している(1202)。また、符号0x07には、図11のボキャブラリを格納している(1203)。もし、他にも繰り返し出現する内容モデルがある場合には、この後の符号0x08以降にその内容モデルのスキーマをボキャブラリとして追加していく。図12のように、符号化テーブルは、構造化文書の文書構造と当該文書構造を符号化するための第1符号とを含む対応情報としての役割を有している。なお、上記の符号化テーブルは予め作成しておき、記憶手段としての記憶部204等に記憶しておいて、必要なときに情報処理装置の機能により実現される読出手段が記憶部204から読み出して使用するようにしてもよい。。
図9の説明に戻る。ステップS103の処理が終了すると、次に、解析したスキーマの情報を基に、DOMツリーを生成して、そのDOMツリーの構造を単純なツリー構造に変換して内部メモリに保存する(ステップS104)。ツリー構造の単純化処理は、RELAX NG仕様書の単純化の処理手順(http://www.relaxng.org/spec-20011203.html#simplification)に基づいて行う。そして、スキーマのDOMツリーの各ノードには、XMLデータに対して検証したかどうかを示すフラグを持ち、その各フラグをXMLデータに対して未検証状態として初期化する。
次に、ステップS105以降の処理において、ステップS103で生成した図12の符号化テーブルを用いて、XMLデータを解析して符号化していく。符号化して内部メモリに格納した構造化文書を、ここでは符号化文書と呼ぶことにする。符号化文書の最初の状態は、符号を1つも格納していない状態とする。まず、ステップS105において、まだ解析していないXMLデータの解析を行う。
次に、構造化文書の全てのXMLデータを解析したかどうか判断する(ステップS106)。全てのXMLデータが解析済みであると判断した場合(ステップS106でYES)は、処理を終了する。もし全てのXMLデータを解析していないと判断した場合(ステップS106でNO)は、ステップS107へ進む。
ステップS107では、符号化テーブルに格納しているボキャブラリのスキーマを基に、繰り返し出現するXMLデータかどうか検証する。例えば、図1のXMLデータのパース中に、各要素を読み込んで内部メモリに保存した後、そのボタンオブジェクトのボキャブラリであるスキーマと検証する。
このステップS107において実行する、図11の符号0x07に割り当てられているボキャブラリであるスキーマと、XMLデータの検証手順の詳細について図13を用いて説明する。図13は、XMLデータが繰り返し出現する内容モデルであるかどうかを検証する処理の手順を示すフローチャートである。
まず、ステップS104において内部メモリに格納したスキーマのDOMツリーにおける各ノードについて、XMLデータと検証済みであるかどうかのフラグを調べることによって全てのノードに対して検証済みかどうかを判断する(ステップS302)。もし、全てのノードが検証済みではないと判断した場合(ステップS302でNO)は、XMLデータに係るDOMツリーの未検証ノードに対して検証を行う(ステップS303)。このときに、要素名、要素の名前空間、持つことのできる属性の数、属性名、属性の名前空間、要素内容のデータ型、属性値のデータ型について検証する。
次に、ステップS304において、XMLデータが未検証ノードに対して妥当かどうか判断する。即ち、ステップS304では、符号化テーブルにより示される文書構造に基づいて、処理対象のXMLデータに含まれる部分の文法が妥当であるか否かを検証する妥当性検証を行う。もし妥当と判断した場合(ステップS304でYES)は、ステップS305へ進む。ステップS305では、検証する際に参照したDOMツリーのノードに対して、検証済みのフラグを立てて、ステップS302へ戻る。同様にして、その後に続くXMLデータに対して、同様に全てのノードに対して検証を繰り返し、妥当と判断したならば検証済みのフラグを立てていく。この際に、検証済みのXMLデータを内部メモリから解放しないで、このスキーマに対する検証が終了するまで、引き続き内部メモリに保存しておく。
このようにしてステップS303〜S305の処理を繰り返した後に、ステップS302において、スキーマのDOMツリーの全てのノードに対して検証済みと判断した場合(ステップS302でYES)は、ステップS306へ進む。ステップS306では、それまでに検証したXMLの部分データが妥当であると判断し、ステップS107を終了する。ステップS306を経由することはステップS107でYESであることに相当する。従って、ステップS107の処理を終了すると、ステップS108〜ステップS111の繰り返し出現する内容モデルの符号化処理を行う。なお、内容モデルの符号は第1符号として機能する。
一方で、ステップS304の検証中に、XMLデータが非妥当と判断した場合(ステップS304でNO)は、ステップS307において、DOMツリーの検証済みのフラグを全て未検証状態に初期化する。次に、ステップS308において、非妥当と判断し、ステップS107の処理を終了する。ステップS306を経由することはステップS107でYESであることに相当する。従って、ステップS107の処理を終了すると、それまでに内部メモリに保存した検証済みのXMLデータを用いて、ステップS112〜ステップS118の従来技術のような符号化処理を行う。
例えば、図1の構造化文書については、最初にsvg要素が出現するので、これはステップS304において非妥当と判断される(ステップS304でNO)。このため、ステップS112〜ステップS118の処理を行う。そして、ステップS105に戻り、ステップS106を経由して(ステップS106でNO)ステップS107へ進む。ステップS107では、svg要素の次のcircle要素については、ステップS303で検証の結果ステップS304で妥当と判断される(ステップS304でYES)。このため、ステップS305において、text要素の検証時に参照したDOMツリーのノードに対して検証済みのフラグを立てる。そして、ステップS302において次のtext要素を読み込んだときは、DOMツリーの全てのノードに対して検証済みとは判断されない(ステップS302でNO)。このため、ステップS303において未検証ノードに対してtext要素を検証する。検証の結果、妥当と判断され、検証時に参照したノードに対して同様に検証済みのフラグを立てる。
続けてステップS302の処理を実行すると、DOMツリーの全てのノードに対して検証済みと判断される(ステップS302でYES)ため、circle要素とtext要素はボタンオブジェクトの構成要素として妥当と判断される(ステップS306)。このためステップS107ではYESとなり、ステップS108へ進んで、その繰り返し出現する内容モデルの開始を示す符号として、図11の符号化テーブルにおける符号0x05を符号化文書に格納する。そして、先ほど検証に使用したスキーマであるボキャブラリに対応する符号を、符号化文書に追加する(ステップS109)。本実施形態では、その繰り返し出現する内容モデルの符号は0x07なので、符号0x07を符号化文書に追加することになる。次に、その繰り返し出現する内容モデルに含まれる属性値と要素内容を解析して符号化テーブルに追加し、同様にその符号を順番に符号化文書に追加する(ステップS110)。そして、繰り返し出現する内容モデルの符号化を終えた後、その終了を示す符号として0x06を符号化文書に追加する(ステップS111)。ここで、先ほど内部メモリに格納したcircle要素とtext要素に関するXMLデータを解放する。そして、ステップS105において、全てのXMLデータを解析し、ステップS106において全てのXMLデータに対して符号化を終えたかどうか判断する。
ステップS107において、符号化テーブルのボキャブラリであるスキーマに対して、繰り返し出現する内容モデルと判断できない場合(ステップS107でNO)は、ステップS112へ進む。ステップS112からステップS118では、一時的に内部メモリに格納してあるXMLデータの各要素について符号化処理を行う。例えば、先ほどのcircle要素とtext要素について、ステップS304においてcircle要素は妥当と判断されたが、その次のtext要素については非妥当と判断される場合を考える。この場合、妥当と判断した際に内部メモリに格納されたcircle要素と、非妥当と判断した次のtext要素それぞれに対して符号化処理を行う。
まず、先頭のデータが開始タグかどうか判断し(ステップS112)、もし、開始タグであると判断した場合(ステップS112でYES)は、開始タグとして符号化を行う(ステップS113)。ステップS112において、もし開始タグと判断できない場合(ステップS112でNO)は、属性かどうか判断する(ステップS114)。もし、属性と判断した場合(ステップS114でYES)は、属性として符号を行う(ステップS115)。ステップS114において、属性と判断できない場合(ステップS114でNO)は、要素内容かどうか判断する(ステップS116)。もし、要素内容であると判断した場合(ステップS116でYES)は、要素内容として符号化する(ステップS117)。ステップS116において、もし要素内容であると判断しない場合(ステップS116でNO)は、終了タグとして符号化を行う(ステップS118)。符号化処理を終えた後は、一時的に内部メモリに保存したXMLデータを解放する。
図14は、一連の符号化処理を行った後の符号化テーブルを例示する図である。また、図15〜図17は一連の符号化を行った後の、内部メモリに格納されている符号化文書を例示する図である。繰り返し出現する内容モデルの開始を示す符号0x05の次には、その繰り返し出現する内容モデルの符号が格納されている。そして、その内容モデルの符号の次には、その内容モデルの持つ属性値、要素内容の符号が格納されている。そして、その内容モデルの属性値、要素内容の符号の集合の次には、その内容モデルの終了を示す符号が格納されている。以上、図1の構造化文書は、図14に示す符号化テーブルの符号を用いて、図15〜図17の符号化文書に示すように符号化される。図3、図4と、図15〜図17を比較すると、本実施形態に係る構成による符号化文書の方がデータサイズが小さく、構造化文書を更に小さいデータサイズで符号化することが可能となっていることが明らかである。これは、本実施形態では、繰り返し使用される内容モデル、即ち、構造化文書の文書構造そのものに対して符号(第1符号)を割り当て、当該符号を使用して符号化を行っているためである。
次に、生成した符号化文書を元の構造化文書に復号する処理について、図18を用いて説明する。図18は、本実施形態に係る手法により符号化された符号化文書を復号する処理の手順を示すフローチャートである。
処理を開始すると(ステップS401)、まず、符号化文書に含まれる符号化テーブルを解析して内部メモリに格納する(ステップS402)。次に、ステップS403において、その符号化テーブルに含まれる、繰り返し出現する内容モデルのスキーマを基に、DOMツリーを生成し、内部メモリに保存する。つまり、符号化テーブルにより示される文書構造に基づいてDOMツリーを生成し、当該DOMツリーをメモリ装置に記憶制御する。次に、符号化テーブルを用いて、符号化文書を先頭から読み込んで解析し、復号していく。
次に、符号化文書を全て解析したかどうか判断し(ステップS404)、全て解析していないと判断した場合(ステップS404でNO)は、解析途中の符号が、繰り返し出現する内容モデルの開始符号であるかどうか判断する(ステップS405)。もし、符号化文書を全て解析したと判断した場合(ステップS404でYES)は、復号処理を終了する(ステップS410)。
ステップS405において繰り返し出現する内容モデルの開始符号と判断した場合(ステップS405でYES)、ステップS407へ進む。ステップS407では、繰り返し出現する内容モデルの終了符号であるか否かを判断し、終了符号ではない場合(ステップS407でNO)はステップS408へ進む。ステップS408では、DOMのノードに値を割り当てる処理を行う。このようにして、ステップS407、ステップS408において、終了符号が出現するまで、内容モデルのDOMにおける、属性値、要素内容の各ノードに対して、順番に各符号が参照している値を割り当てて、内部メモリに格納する。
そして、ステップS407において終了符号が出現したと判断した場合(ステップS407でYES)はステップS409へ進む。ステップS409では、ステップS407〜ステップS408において内部メモリに格納したDOMツリーに基づいて、XMLデータを生成する。XMLデータは、DOMツリーのルートのノードから、その子ノードを順番に辿っていき、要素名や属性名、要素内容や属性値を解析することによって行う。生成したXMLデータは、内部メモリに格納する。そして、ステップS404へ戻る。
なお、ステップS405において、繰り返し出現する内容モデルの開始符号と判断しない場合(ステップS405でNO)には、ステップS406において、その符号を用いて符号化テーブルのボキャブラリを参照することによって復号していく。そして、ステップS404へ戻る。
ステップS404において、符号化文書を全て解析したかどうか判断した場合(ステップS404でYES)は処理を終了する。
以上のように、本実施形態に係る構成においては、テキストデータである構造化文書について、繰り返し同じ内容モデルのXMLデータが出現する場合には、その内容モデルの文書構造自体をスキーマを用いて符号化する。そして、その内容モデルに含まれる属性値、要素内容をその符号の後に追加する。これにより、符号化後のXMLデータのデータサイズを小さくすることが可能になる。
(その他の実施形態)
以上、本発明の実施形態例について詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様を取ることが可能である。具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
尚、本発明は、前述した実施形態の機能を実現するプログラムを、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明の技術的範囲に含まれる。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含む。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であってもよい。
プログラムを供給するための記録媒体としては、例えば、次のものが含まれる。即ち、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)等が含まれる。
その他、プログラムの供給形態としては、次のようなものも考えられる。即ち、クライアント装置のブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明に係るコンピュータプログラム、或いは、圧縮され自動インストール機能を含むファイルをHD等の記録媒体にダウンロードする形態も考えられる。また、本発明に係るプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、次のような供給形態も考えられる。即ち、まず、本発明に係るプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布する。そして、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報の使用により暗号化されたプログラムを実行してコンピュータにインストールさせて本発明に係る構成を実現する。このような供給形態も可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、次のような実現形態も想定される。即ち、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づいても前述した実施形態の機能が実現される。即ち、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
同じ文書構造が繰り返し出現する構造化文書を例示する図である。 従来のバイナリXML技術により生成された符号化テーブルを例示する図である。 従来のバイナリXML技術により符号化された符号化文書を例示する図である。 情報処理装置を備えるシステムの概要を示した構成図である。 PCの構成を示すブロック図である。 繰り返し同じ文書構造が出現するXMLデータについて、RELAX NGで記述したスキーマを示す図である。 ボタンオブジェクトの他に、ユーザのテキスト入力を受け付けるテキストフィールドのオブジェクトを定義した例である。 文書構造の符号化処理の手順を示すフローチャートである。 ステップS103において実行する処理の詳細な手順を示すフローチャートである。 ボタンオブジェクトのスキーマを基に生成されたボキャブラリを示す図である。 符号化テーブルを例示する図である。 XMLデータが繰り返し出現する内容モデルであるかどうかを検証する処理の手順を示すフローチャートである。 一連の符号化処理を行った後の符号化テーブルを例示する図である。 一連の符号化を行った後の、内部メモリに格納されている符号化文書を例示する図である。 符号化された符号化文書を復号する処理の手順を示すフローチャートである。

Claims (12)

  1. 構造化文書を符号化して符号化文書を生成する符号化装置であって、
    前記構造化文書の文書構造を定義するスキーマ中の所定の要素で規定される一部のスキーマをボキャブラリとして、第1符号と対応付けて符号化テーブルに格納する格納手段と、
    前記造化文書の一部が、前記符号化テーブル中の前記一部のスキーマで定義される文書構造と一致するか否かを検証する証手段と、
    前記構造化文書に対して、前記文書構造と一致すると検証された前記構造化文書の一部に前記第1符号を割り当てるとともに、前記文書構造と一致すると検証された前記構造化文書の一部の変数値に対応する第2符号を割り当てることにより、前記構造化文書を符号化する符号化手段と、
    を備え
    前記スキーマ中の前記所定の要素で規定される一部のスキーマは、複数の前記変数値のデータ型を定義する
    ことを特徴とする符号化装置。
  2. 前記検証手段において、前記文書構造と一致する検証された前記構造化文書の一部に含まれる変数値を、前記第2符号と対応付けて前記符号化テーブルに追加する追加手段を更に備えることを特徴とする請求項1に記載の符号化装置。
  3. 前記格納手段は、前記構造化文書の文書構造を定義するスキーマ中の前記所定の要素で規定される一部のスキーマが、前記構造化文書で繰り返し出現するか否かを判断し、繰り返し出現すると判断された当該一部のスキーマをボキャブラリとして、前記第1符号と対応付けて符号化テーブルに格納することを特徴とする請求項1又は2に記載の符号化装置。
  4. 前記検証手段は、
    前記一部のスキーマに基づいてDOMツリーを生成し、
    前記DOMツリーの各ノードが、前記構造化文書に含まれる一部の文書構造と一致するか否かを順に検証する
    ことを特徴とする請求項1乃至3のいずれか1項に記載の符号化装置。
  5. 前記符号化手段は、
    前記構造化文書に対して、前記文書構造と一致すると検証された前記構造化文書の一部に前記第1符号を割り当て、前記文書構造と一致すると検証された前記構造化文書の一部に含まれる変数値に対応する前記第2符号を割り当て、前記文書構造と一致すると検証された前記構造化文書の一部の開始を示す第3符号を割り当て、前記文書構造と一致すると検証された前記構造化文書の一部の終了を示す第4符号を割り当てる
    ことを特徴とする請求項1乃至4のいずれか1項に記載の符号化装置。
  6. 前記スキーマが定義する文書構造は階層構造で表現されることを特徴とする請求項1乃至5のいずれか1項に記載の符号化装置。
  7. 前記スキーは、DTD、XML Schema、又は、RELAX NGに基づいて記述される
    ことを特徴とする請求項1乃至6のいずれか1項に記載の符号化装置。
  8. 請求項に記載の符号化装置により符号化された符号化文書を、前記符号化テーブルに基づき復号して構造化文書を生成すことを特徴とする復号装置。
  9. 構造化文書を符号化して符号化文書を生成する符号化装置の制御方法であって、
    格納手段が、前記構造化文書の文書構造を定義するスキーマ中の所定の要素で規定される一部のスキーマをボキャブラリとして、第1符号と対応付けて符号化テーブルに格納する格納工程と、
    証手段が、前記造化文書の一部が、前記符号化テーブル中の前記一部のスキーマで定義される文書構造と一致するか否かを検証する証工程と、
    符号化手段が、前記構造化文書に対して、前記文書構造と一致すると検証された前記構造化文書の一部に前記第1符号を割り当てるとともに、前記文書構造と一致すると検証された前記構造化文書の一部の変数値に対応する第2符号を割り当てることにより、前記構造化文書を符号化する符号化工程と、
    を備え
    前記スキーマ中の前記所定の要素で規定される一部のスキーマは、複数の前記変数値のデータ型を定義する
    ことを特徴とする符号化装置の制御方法。
  10. 請求項に記載の符号化装置の制御方法により符号化された符号化文書を、前記符号化テーブルに基づき復号して構造化文書を生成すことを特徴とする復号装置の制御方法。
  11. コンピュータを、請求項1乃至のいずれか1項に記載の符号化装置、又は、請求項に記載の復号装置として機能させるためのプログラム。
  12. 請求項11に記載のプログラムを格納したコンピュータで読み取り可能な記憶媒体。
JP2007036808A 2007-02-16 2007-02-16 符号化装置及びその制御方法、復号装置及びその制御方法、プログラム、記憶媒体 Expired - Fee Related JP4429329B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2007036808A JP4429329B2 (ja) 2007-02-16 2007-02-16 符号化装置及びその制御方法、復号装置及びその制御方法、プログラム、記憶媒体
US12/524,665 US8250465B2 (en) 2007-02-16 2008-02-05 Encoding/decoding apparatus, method and computer program
EP08704534A EP2122492A1 (en) 2007-02-16 2008-02-05 Encoding/decoding apparatus, method and computer program
CN2008800053410A CN101617307B (zh) 2007-02-16 2008-02-05 编解码设备和方法
PCT/JP2008/052214 WO2008099793A1 (en) 2007-02-16 2008-02-05 Encoding/decoding apparatus, method and computer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007036808A JP4429329B2 (ja) 2007-02-16 2007-02-16 符号化装置及びその制御方法、復号装置及びその制御方法、プログラム、記憶媒体

Publications (2)

Publication Number Publication Date
JP2008204000A JP2008204000A (ja) 2008-09-04
JP4429329B2 true JP4429329B2 (ja) 2010-03-10

Family

ID=39690025

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007036808A Expired - Fee Related JP4429329B2 (ja) 2007-02-16 2007-02-16 符号化装置及びその制御方法、復号装置及びその制御方法、プログラム、記憶媒体

Country Status (5)

Country Link
US (1) US8250465B2 (ja)
EP (1) EP2122492A1 (ja)
JP (1) JP4429329B2 (ja)
CN (1) CN101617307B (ja)
WO (1) WO2008099793A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2936623B1 (fr) * 2008-09-30 2011-03-04 Canon Kk Procede de codage d'un document structure et de decodage, dispositifs correspondants
US9128912B2 (en) * 2012-07-20 2015-09-08 Fujitsu Limited Efficient XML interchange schema document encoding
JP2014086048A (ja) * 2012-10-26 2014-05-12 Toshiba Corp 検証装置、検査方法およびプログラム
US10311137B2 (en) * 2015-03-05 2019-06-04 Fujitsu Limited Grammar generation for augmented datatypes for efficient extensible markup language interchange
US10282400B2 (en) * 2015-03-05 2019-05-07 Fujitsu Limited Grammar generation for simple datatypes

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3368883B2 (ja) * 2000-02-04 2003-01-20 インターナショナル・ビジネス・マシーンズ・コーポレーション データ圧縮装置、データベースシステム、データ通信システム、データ圧縮方法、記憶媒体及びプログラム伝送装置
FR2820563B1 (fr) * 2001-02-02 2003-05-16 Expway Procede de compression/decompression d'un document structure
US7493603B2 (en) * 2002-10-15 2009-02-17 International Business Machines Corporation Annotated automaton encoding of XML schema for high performance schema validation
JP2005018672A (ja) * 2003-06-30 2005-01-20 Hitachi Ltd 構造化文書の圧縮方法
JP4168946B2 (ja) 2004-01-29 2008-10-22 Kddi株式会社 文書データの符号化又は復号化方法及びそのプログラム
US7437374B2 (en) * 2004-02-10 2008-10-14 International Business Machines Corporation Efficient XML schema validation of XML fragments using annotated automaton encoding
US7292160B1 (en) * 2006-04-19 2007-11-06 Microsoft Corporation Context sensitive encoding and decoding
US7933933B2 (en) * 2007-07-30 2011-04-26 Oracle International Corporation Fast path loading of XML data
US8145608B2 (en) * 2008-04-28 2012-03-27 Infosys Technologies Limited Method and system for rapidly processing and transporting large XML files
US8149148B1 (en) * 2010-10-08 2012-04-03 Microsoft Corporation Local binary XML string compression

Also Published As

Publication number Publication date
CN101617307A (zh) 2009-12-30
US8250465B2 (en) 2012-08-21
CN101617307B (zh) 2011-05-25
US20100107052A1 (en) 2010-04-29
WO2008099793A1 (en) 2008-08-21
EP2122492A1 (en) 2009-11-25
JP2008204000A (ja) 2008-09-04

Similar Documents

Publication Publication Date Title
US8954457B2 (en) Method for processing a structured document to render, and corresponding processor
CA2831588C (en) Cross-compiling swf to html using an intermediate format
JP5325920B2 (ja) エンコーダコンパイラ、プログラムおよび通信機器
JP2008508643A (ja) マークアップ言語で記述された文書内にタグまたは属性を作成するための文書処理及び文書管理の手段と方法
US7827481B1 (en) Defining style values as objects
JP4429329B2 (ja) 符号化装置及びその制御方法、復号装置及びその制御方法、プログラム、記憶媒体
DK2972827T3 (en) COLLABORATIVE EDITING
US8849726B2 (en) Information processing apparatus and control method for the same
US7996364B2 (en) Information processing apparatus and control method thereof, and document verification apparatus and control method thereof
JPWO2006051960A1 (ja) 文書処理装置及び文書処理方法
JPWO2006051954A1 (ja) 文書処理装置及び文書処理方法
JPWO2006051959A1 (ja) 文書処理装置及び文書処理方法
JPWO2006051955A1 (ja) サーバ装置及び名前空間発行方法
JP2010267092A (ja) 情報処理装置、情報処理方法
US20070143666A1 (en) Architecture for arbitrary extensible markup language processing engine
JPWO2006051956A1 (ja) サーバ装置及び検索方法
Holman What is XSLT
JP5201808B2 (ja) 電子文書処理装置及び電子文書処理方法
JP2018514843A (ja) スタイルのための宣言型カスケード再順序付け
JP5206675B2 (ja) 構造化文書変換装置
US20090222447A1 (en) Data processing apparatus and data processing method
JP2007532987A (ja) マークアップ言語を用いたデータ及び文書の処理
JPWO2006051957A1 (ja) 文書処理装置及び文書処理方法
JP4018528B2 (ja) 文書処理装置、文書処理方法およびプログラム
JP2008536423A (ja) ツリーデータ構造を処理する方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090519

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20090519

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20090807

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090814

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091013

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

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

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121225

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4429329

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131225

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees