JP4574114B2 - 文書の送受信方法、xml符号化方法及びその装置、並びにxml復号方法 - Google Patents
文書の送受信方法、xml符号化方法及びその装置、並びにxml復号方法 Download PDFInfo
- Publication number
- JP4574114B2 JP4574114B2 JP2002533104A JP2002533104A JP4574114B2 JP 4574114 B2 JP4574114 B2 JP 4574114B2 JP 2002533104 A JP2002533104 A JP 2002533104A JP 2002533104 A JP2002533104 A JP 2002533104A JP 4574114 B2 JP4574114 B2 JP 4574114B2
- Authority
- JP
- Japan
- Prior art keywords
- packet
- xml
- text
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8543—Content authoring using a description language, e.g. Multimedia and Hypermedia information coding Expert Group [MHEG], eXtensible Markup Language [XML]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/235—Processing of additional data, e.g. scrambling of additional data or processing content descriptors
- H04N21/2353—Processing of additional data, e.g. scrambling of additional data or processing content descriptors specifically adapted to content descriptors, e.g. coding, compressing or processing of metadata
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/70—Media network packetisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/54—Presence management, e.g. monitoring or registration for receipt of user log-on information, or the connection status of the users
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/20—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
- H04N19/25—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding with scene description coding, e.g. binary format for scenes [BIFS] compression
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1101—Session protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Library & Information Science (AREA)
- Document Processing Apparatus (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Medicines Containing Material From Animals Or Micro-Organisms (AREA)
- Lubrication Of Internal Combustion Engines (AREA)
- Reduction Or Emphasis Of Bandwidth Of Signals (AREA)
- Information Transfer Between Computers (AREA)
Description
【発明の属する技術分野】
本発明は、XML(Extensible Markup Language)文書の符号化に関し、特に、XML文書の圧縮、ストリーミング、探索、及び動的構築のうちの少なくとも1つに関する。
【0002】
【背景】
MPEG−7記述のストリーミング、ダウンロード、及び格納をより効率的にするために、記述を符号化・圧縮することができる。MPEG−7記述の配信に関する多くの問題の分析は、2進符号化に使用される形式の考察を伴うものであった。WAP(the Wireless Application Protocol Forum)からのWBXML提案、Millauアルゴリズム、及びXMillアルゴリズムなどのXMLに対する既存の符号化方式がそれぞれ考慮されてきた。
【0003】
WBXMLに関して説明すると、頻繁に使用されるXMLタグ、属性、及び値には大域コード空間からの固定のコード集合が割り当てられる。文書インスタンスを通して繰り返されるアプリケーション固有のタグ名、属性名、及び一部の属性値には一部の局所コード空間からのコードが割り当てられる。WBXMLはXML文書の構造を維持する。内容のみならず文書型定義(DTD)で定義されていない属性値もインライン方式で格納、あるいは、ストリングテーブルに格納することが可能である。文書のコード空間のテーブルは特定の種類のアプリケーションにとって既知であるか、あるいは、文書と共に送信されることが期待されている。
【0004】
WBXMLがタグ及び属性をトークン化する間、テキスト内容は圧縮されない。WAPで使用されるために提案されたものであり且つWBXMLの設計の対象である無線用マーク付け言語(WML)文書の場合、通常、テキスト内容が制限されているので圧縮がなくても十分であろうが、WBXMLは通常のテキスト記載のXML文書にとってあまり効率の良い符号化形式とは考えられていない。Millauアプローチは、従来のテキスト圧縮アルゴリズムを使用してテキストを圧縮することによってWBXML符号化形式を拡張する。また、Millauはスキーマ及びデータ型を利用することで基本データ型の属性値の圧縮の改善を可能にする。
【0005】
Xmillアルゴリズムの作者は更に複雑な符号化方式を提示しているが、これはWBXMLに基づいていない。組込みデータ型の値を符号化するためのDTD及びスキーマにおける型情報を符号化・使用する構造とテキストとを分離することの他に、この方式は:
(i)同じ型又は関連する型の要素を複数のコンテナへとグループ分けし(冗長度を高めるため)、
(ii)異なる圧縮プログラムを使用して各コンテナを別々に圧縮し、
(iii)原始的な圧縮プログラムをより複雑な圧縮プログラムへと結合できるようにし、
(iv)非常に専門的なデータ型に対して新規の専門の圧縮プログラムを使用できるようにした。
【0006】
しかし、既存の符号化方式は圧縮のみを目的として設計されている。XML文書のストリーミングには対応していない。また、依然としてXPath/XPointerアドレッシング方式を使用して要素を効率的に配置することができず、文書の構築中に、これを徐々に符号化することもできない。
【0007】
【課題を解決するための手段】
上記課題を解決するため、本発明に係る方法は、データを管理する構造化文書の少なくとも一部を送受信する方法であって、
構造及びテキスト内容を有する階層表現により記述された前記構造化文書を保持手段に保持する保持制御ステップと、
前記保持手段に保持された前記構造化文書の前記階層表現に対し、前記構造とテキスト内容との階層を解析する解析ステップと、
前記解析された前記構造とテキスト内容とをそれぞれ別のストリームで送受信される複数パケットにパケット化するパケット化ステップと、
少なくとも1つの前記構造のパケットと前記階層表現において該構造の下位階層として含まれる少なくとも1つの前記テキスト内容のパケットとの間に別のストリームで送受信されるパケットを関連付ける少なくとも1つのリンクを作成することを含む作成ステップと、
前記パケットを、1つ以上の前記構造のパケットにより構成され前記リンクを含むストリーム及び前記テキスト内容のパケットにより構成されるストリームへと変形する変形ステップと、
を備えることを特徴とする
【0008】
上記課題を解決するため、本発明に係る装置は、データを管理する構造化文書の少なくとも一部を送受信する装置であって、
構造及びテキスト内容を有する階層表現により記述された前記構造化文書を保持する保持手段と、
前記保持手段に保持された前記構造化文書の前記階層表現に対し、前記構造とテキスト内容との階層を解析する解析手段と、
前記解析された前記構造とテキスト内容とをそれぞれ別のストリームで送受信される複数パケットにパケット化するパケット化手段と、
少なくとも1つの前記構造のパケットと前記階層表現において該構造の下位階層として含まれる少なくとも1つの前記テキスト内容のパケットとの間に別のストリームで送受信されるパケットを関連付ける少なくとも1つのリンクを作成することを含む作成手段と、
前記パケットを、1つ以上の前記構造のパケットにより構成され前記リンクを含むストリーム及び前記テキスト内容のパケットにより構成されるストリームへと変形する変形手段と、
を含むことを特徴とする。
【0011】
【詳細な説明】
図1から図7、図9、及び図10を参照して説明するXML文書を符号化/復号化する方法は、図8に示すような汎用コンピュータシステム800を使用して実施されるのが好ましい。図1から図7のプロセスは、コンピュータシステム800内で実行されるアプリケーションプログラムなどのソフトウェアとして実現されても良い。特に、この方法の各ステップは、コンピュータにより実行されるソフトウェア中の命令により実施される。ソフトウェアは、復号化/復号化方法を実行する1つの部分と、この符号化/復号化方法とユーザとの間のユーザインタフェースを管理する別の部分との2つの別々の部分に分割されても良い。ソフトウェアは、例えば、以下に記述するような記憶装置を含むコンピュータ可読な媒体に格納されても良い。ソフトウェアは、コンピュータ可読な媒体からコンピュータへとロードされ、コンピュータにより実行される。このようなソフトウェア又はコンピュータプログラムを記録したコンピュータ可読な媒体は、コンピュータプログラム製品である。コンピュータにおいてコンピュータプログラム製品を使用することにより、XML文書を符号化/復号化するための有利な装置を実現するのが好ましい。
【0012】
コンピュータシステム800は、コンピュータモジュール801、キーボード802及びマウス803などの入力装置、並びにプリンタ815及び表示装置814を含む出力装置を含む。変復調(モデム)送受信装置816は、コンピュータモジュール801が、例えば、電話回線821又はその他の機能媒体を介して接続可能な通信ネットワーク820と通信を行なうのに使用される。モデム816は、インターネット及び構内通信網(LAN)又は広域通信網(WAN)などのその他のネットワークシステムへのアクセス権を取得するのに使用することができる。図示するように、サーバコンピュータシステム850はネットワーク820へと接続し、コンピュータシステム800と通信を行なうことができる。サーバコンピュータシステム850は、通常、コンピュータシステム800と同様の構造を有し、及び/又は、コンピュータシステム800と同様にあるいはこれに対して相補的に動作可能である。例えば、コンピュータシステム800がXML符号化関数を実行し、サーバコンピュータ850が相補的なXML復号化関数を実行しても良い。また、その逆であっても良い。
【0013】
コンピュータモジュール801は、通常、少なくとも1つのプロセッサユニット805、例えば、半導体ランダムアクセスメモリ(RAM)及び読出し専用メモリ(ROM)から形成されるメモリユニット806、ビデオインタフェース807とキーボード802、マウス803、及びオプションとしてのジョイスティック(不図示)用のI/Oインタフェース813とを含む入出力(I/O)インタフェース、並びにモデム816用のインタフェース808を含む。記憶装置809が設けられるが、この記憶装置809は、通常、ハードディスクドライブ810及びフロッピーディスクドライブ811を含む。磁気テープドライブ(不図示)を使用しても良い。CD−ROMドライブ812は、通常、不揮発性のデータソースとして設けられる。コンピュータモジュール801の構成要素805から813は、通常、相互接続バス804を介して、コンピュータシステム800の動作モードが、当業者には既知の従来の動作モードになるように通信を行なう。上述の構成を実施可能なコンピュータの例としては、IBM−PC及びその互換機、Sun Sparcstation、又はそれを進化させた同様のコンピュータシステムがある。
【0014】
通常、アプリケーションプログラムはハードディスクドライブ810に常駐し、プロセッサ805による実行の際に読み出されて制御される。プログラムとコンピュータネットワーク820から取り込まれるデータとの中間記憶装置は、半導体メモリ806を使用し、場合によってはハードディスクドライブ810と協働させるように使用して達成されても良い。アプリケーションプログラムは、CD−ROM又はフロッピーディスク上に符号化された形でユーザに供給され、対応するドライブ812又は811を介して読み取られる場合もあれば、ネットワーク820からモデム装置816を介してユーザが読み取る場合もある。更に、このソフトウェアは、磁気テープ、ROM又は集積回路、光磁気ディスク、コンピュータモジュール801と別の装置との間の無線又は赤外線の伝送チャネル、PCMCIAカードなどのコンピュータ可読なカード、並びに電子メール送受信及びウェブサイトなどに記録された情報などを含むインターネット又はイントラネットを含む他のコンピュータ可読な媒体からコンピュータシステム800へとロードすることもできる。以上の例は、関連するコンピュータ可読な媒体の単なる例示であり、その他のコンピュータ可読な媒体を代わりに使用しても良い。
【0015】
動作中、状況に応じて、XML文書符号化/復号化関数がサーバコンピュータ850及びコンピュータシステム800のうちの一方で実行され、それにより形成されたパケット化ビットストリームがそれぞれコンピュータシステム800又はサーバコンピュータ850により受信・復号化されるように通信ネットワーク820を介して伝送される。このように、受信の際に最初に文書全体を受信することなく、受信側が最適な時間で高速に文書を復号化できるようにしながら、XML文書を2つの地点間で便利且つ効率的に送受信しても良い。
【0016】
符号化/復号化の方法は、符号化及び/又は復号化の関数又は下位関数を実行する1つ以上の集積回路などの専用のハードウェアでその一部又は全部が実現されても良い。このような専用のハードウェアは、グラフィックプロセッサ、デジタル信号プロセッサ、又は1つ以上のマイクロプロセッサ及び関連メモリを含んでも良い。
【0017】
<XMLの符号化及び圧縮>
(構造とテキストとの分離)
従来より、XML文書は生のテキスト形式で格納・伝送されることが多い。一部のアプリケーションでは、XML文書は、格納又は伝送のための従来のテキスト圧縮アルゴリズムを使用して圧縮され、構文解析・処理を受ける前にXMLへと復元される。
【0018】
本開示によると、XML文書を符号化する別の方法は、文書のツリー階層(文書のDOM表現など)を符号化することである。符号化は幅優先方式又は深さ優先方式で実行されても良い。圧縮及び復号化をより効率的に行なうために、XML文書内のタグにより示されるXML構造をXML文書のテキストから分離し、これを符号化することができる。符号化された文書を伝送するとき、構造及びテキストを別々のストリームで送信することも、あるいは、単一のストリームへと連結することもできる。
【0019】
図1に示すように本実施形態によると、通常、メモリから利用可能であるXML文書104のツリー表現102は、複数のノード116を含み、深さ優先方式で符号化される。文書104及びその中に含まれるテキストの構造は、図1に示すように2つの別個のストリーム106及び108として符号化することも、あるいは、単一のストリームへと連結することもできる。構造ストリーム106の先頭にはコードテーブル110及び114がある。ツリー102の復号化されたノード118は、ノードのサイズを示すと共に子孫ノードの合計サイズを含むサイズフィールド(不図示)をそれぞれ有する。復号化された葉ノード118の一部は、これらの葉ノードをテキストストリーム108中の対応する内容へとリンクするリンク112を含む。テキストストリーム108中の各符号化されたストリングの先頭には、ストリングのサイズを示すサイズフィールド(不図示)がある。単一のストリームへと連結される場合、リンク112のルートを含むパケットが、リンク112により指し示されるテキストを含むパケットよりも先行すべきである。これにより、デコーダは対応するテキスト(内容)コンポーネントより前に文書104の構造コンポーネントを確実に受信することができる。
【0020】
図1に示すアプローチは、コンピュータシステム800上で実行されるソフトウェアプログラムとして実現されても良い符号化方法900のフローチャートとして図9にも示される。方法900は、階層表現により記述される文書の構造の少なくとも一部を送受信し、ステップ902からスタートする。最初にステップ904において、方法900は文書104の階層表現(ツリー構造など)を識別する。識別は上述のようにXMLタグを使用して実行されるのが好ましい。ステップ906において、表現は複数のデータパケットへとパケット化される。ステップ908において、パケットのうちの1対にまたがる少なくとも1本のリンクが作成される。このリンクは、表現の対応するコンポーネント(構造及び内容など)間の相互接続を表すように機能する。ステップ910において、パケットから送受信用のストリームが形成される。リンクはパケット内の階層表現を維持する。方法900はステップ912において終了する。
【0021】
一般的に、構造情報のボリュームはテキスト内容よりも格段に小さい。通常、構造はネストされ、文書インスタンス内で繰り返される。テキストから構造を分離することにより、反復パターンは圧縮アルゴリズムにより容易に識別されるようになる。圧縮アルゴリズムは、通常、固定サイズのウィンドウを介して入力ストリームを検査する。加えて、構造ストリームとテキストストリームとはかなり異なる特徴を有する。このため、構造及びテキストの各々に対しては、異なるより効率的な符号化方法が適用されても良い。
【0022】
テキストを解釈するための文脈を提供する上で構造は重要である。エンコーダにおいて構造とテキストとを分離することにより、対応するデコーダは文書の構造をより迅速に解析することができるので、知らない又は必要でない要素(及び子孫)は無視されると共に関連する要素のみが処理される。デコーダは、更に、無関係の要素と関連付けられたテキストをバッファリングしないことを選択しても良い。デコーダが符号化された文書を元のXMLへと変換するか否かは、実行される特定のアプリケーション(アプリケーションプログラムインタフェース−APIについての以下の記述を参照)によって決まる。
【0023】
(コードテーブル)
文書記述の要素及びその属性はDTD又はスキーマにおいて定義される。通常、要素の集合及びその関連する属性は文書インスタンスにおいて繰り返し使用される。要素名並びに属性名及び属性値には、符号化に必要なバイト数を削減するためにコードが割り当てられる。
【0024】
通常、各アプリケーションドメインは、複数のスキーマ及び/又はDTD中で定義される別々の要素/型の集合を使用する。加えて、各スキーマ又はDTDは別々の名前空間に対する定義を有しても良い。一部の要素/型が複数の種類のアプリケーションに共通な場合でも、これらの要素/型は、通常、異なるパターンにおいて使用される。具体的には、ドメインA及びBの双方に共通の要素Xは、ドメインAでは頻繁に使用されるが、ドメインBでは稀にしか使用されないかもしれない。加えて、常時、既存のスキーマが更新されると共に新規のスキーマが作成される。このため、コード割当てをドメインにおける相互運用性を監視する機構に委ねるのが最も好ましい。例えば、MPEG−7記述はXML文書である。MPEGは、それ自体の記述子及び記述スキーマに対するコード空間に加えて、外部の要素及びそれが使用する型を定義しても良い。また、MPEGはコード空間を生成する方法を定義しても良い。理想的には、この方法は、エントロピーベースである−すなわち、記述又は記述のクラスにおける記述子及び記述スキーマの出現回数に基づくべきである(コード空間の生成の節を参照)。
【0025】
(要素と属性との分離)
XMLタグは、通常、要素名及び属性名/属性値対の集合を含む。場合によっては、要素インスタンスを使用して大きな属性の集合を指定することができる。このため、要素名を各属性から分離することにより、文書ツリーを構文解析すると共に要素をより迅速に配置することができるようになる。加えて、一部の属性又は属性名/属性値対は他のものよりも格段に高い頻度で使用される傾向がある。属性名、属性値、及び属性名/属性値対を別々のセクションへとグループ化することにより、通常、圧縮は改善される結果となる。
【0026】
(組込みデータ型及び特殊型の値の符号化)
エンコーダは組込み(又はデフォルト)データ型の属性及び要素の値を各型に従ったより効率的な表現へと符号化するように動作する。型情報を含むスキーマが利用可能でない場合、値はストリングとして扱われる。加えて、値(例えば、1桁の整数)がストリングとしてより効率的に表される場合、エンコーダはこの整数を符号化するのではなく、ストリングとして扱うことを選択しても良い。デフォルトでは、ストリングはマルチバイト文字のストリングを符号化する標準の効率的な方法を提供するUniversal Text Format(UTF−8)ストリングとして符号化される。また、UTFストリングは長さ情報を含むので、適切な区切り記号を探すという問題を回避できると共に、ストリングの終わりまで容易にスキップすることができる。
【0027】
特殊型エンコーダは特殊なデータ型に使用することができる。これらの特殊型エンコーダは後述のエンコーダAPIのsetTypeEncoder()インタフェースを使用して指定することができる。特殊型エンコーダについての情報は、構造セグメントのヘッダに格納されるのが好ましく、型エンコーダ識別子のテーブルとして格納されるのが有利である。更に、同じメカニズムを使用してデフォルト型エンコーダ(組込みデータ型用)を無効にすることができる。一部の組込みデータ型は本来デフォルトエンコーダを使用して符号化されるが、特殊エンコーダを代わりに使用しても良い。ビットストリーム内での識別が必要とされるため、XML文書の正確な再現のためには代替の復号化プロセスが必要になるであろう。各符号化された値の前には、その値を符号化するのに使用された型エンコーダの識別子がある。
【0028】
このように、本開示により実現されるXML文書エンコーダは、XML文書内の様々な型の構造及びテキスト用に複数の符号化形式を含んでも良い。符号化形式は組込みであっても、あるいは、デフォルトであっても良く、周知のデータ型又は頻出するデータ型のために使用される。特殊型エンコーダは任意の特殊なデータ型に対して使用されても良い。このとき、符号化プロセスで使用される特定の型エンコーダの識別がパケットのヘッダに組み込まれても良い。組み込まれることで、デコーダは符号化された文書中の符号化された型に対して使用されるべき復号化プロセスを識別することができる。必要に応じて、特定の型のエンコーダはUniform Resource Indicator(URI)を介してコンピュータネットワークからアクセスされても良い。デコーダが符号化された文書中のパケット内に出現する符号化された型に対応する復号化プロセスをアクセス又は実現できない場合、デフォルトの応答は符号化されたデータを無視し、空のデータ(空白表示など)を再現する結果となる可能性がある。別の例として、デコーダは、例えば、符号化されたデータを伴うURIを使用して接続されたネットワークから特殊型デコーダを取り出すように動作することができる。エンコーダ/デコーダ形式のURIは上述のテーブルへと組み込まれても良く、それにより、ビットストリームに含まれても良い(付録参照)。
【0029】
このアプローチを更に拡張すると、単一のデータ型に対して複数の符号化形式を使用しても良い。例えば、テキストストリングはストリングの長さに基づいて各様に符号化されても良いが、これは、復号化プロセスの実行に要する時間と得られる圧縮のレベルとの間の妥協を表す。例えば、0から9までの文字を有するテキストストリングは符号化されず、10から99までの文字及び100から999までの文字を有するストリングはそれぞれの(異なる)符号化形式を用いて符号化されるものとする。更に、これらの符号化形式のうちの1つ以上は特殊なデータ型に対するものであるとする。この例においてテキストストリングを符号化する際に、エンコーダは、0から9の文字に対しては符号化を行なわず、10から99の文字ストリングに対してはデフォルトエンコーダ、101以上のテキスト文字を有するストリングに対しては特殊エンコーダを使用するかもしれない。
【0030】
図10はXML文書を符号化する方法1000の一例を示し、この方法はステップ1002からスタートする。まず、ステップ1004において、方法1000はXML文書104を検査し、XML文書104の一部を形成する各データ型を識別する。ステップ1006において、方法1000は対応する特殊符号化形式が利用可能であるデータ型の第1の集合を識別するように動作する。特殊データ型を識別すると、ステップ1008は対応する特殊符号化形式を用いて第1の集合中にデータ型を有するXML文書の各部分を符号化する。次に、ステップ1010において、方法1000は残りの部分のデータ型に対応するデフォルト符号化形式を用いてXML文書の残りの部分の各々を符号化する。ステップ1012において、対応する特殊符号化形式を用いて少なくとも第1の集合中の各データ型を参照する情報から表現が形成される。ステップ1014において、表現はXML文書104の符号化された形態として符号化された部分と関連付けられる。こうして、方法1000はステップ1016で終了する。
【0031】
(構造セグメント(又は構造ストリーム))
図2は構造セグメント(又はストリーム)106の種々のセクションを示す。構造セグメントはヘッダ202で開始され、その本体は複数のセクション204へと分割される。ヘッダ202はXMLのバージョン及び符号化形式のバージョンを識別する。
【0032】
本体中の各セクション204はセクションの種別を示す固有のシグネチャで開始される。このため、種々のセクションは特定の順序で配置される必要がない。しかし、以下の説明では、セクションは図2に示す順序で配置されるものと想定する。セクションシグネチャの後にはセクションのサイズを示すサイズフィールドが続く。
【0033】
IDテーブルセクション206により、IDを伴う要素を文書階層セクション208に迅速に配置することができる。文書がIDを伴う要素を有する場合でも、符号化された文書にIDテーブル206が存在しない可能性がある。これは、ID定義を含むDTD又はスキーマが符号化の時点で利用可能でないためであろう。
【0034】
セクション210は、文書型宣言及び内部(DTD)部分集合のために確保されるのが好ましい。MPEG−7記述などのXMLスキーマベース文書に関しては、このセクション210は存在しないであろう。
【0035】
名前空間212、要素名214、属性名216、及び属性値218に対しては、コードテーブル用のセクションが存在する。エンコーダ及びデコーダの双方のために事前に定義され、ビットストリームにおいて搬送されない他のコードテーブルと区別するために、以降、これらのコードテーブルは局所コードテーブルと呼ばれる。例えば、MPEG−7又はXMLスキーマに対しては事前に定義されたコードテーブルが存在しても良い。
【0036】
局所コードテーブルの後には、通常、局所コードテーブル及び任意の事前に定義されたコードテーブルにおいて定義されたコードを利用する属性名/属性値対220のテーブルを含むセクションが続く。
【0037】
文書階層セクション208は、局所コードテーブル及び事前に定義されたコードテーブルからのコードを使用するXML文書の符号化ツリー構造である。
【0038】
符号化のためにコードテーブル及び型エンコーダを使用する以外に、エンコーダは圧縮プログラムを使用して各セクションを圧縮することが多い。構造セグメント106の本体の各セクションを独立して圧縮する代わりに、構造セグメントの本体を一体として圧縮することができる。これにより、オーバーヘッドが減少し、データ量が増加するので、実際、圧縮率が向上するであろう。しかし、このような圧縮は、文書が特定の要素を含むか否かを見極めるために構造本体全体を復元させる必要がある。双方のアプローチを検査して、実際にどちらの方が良いのかを判定しても良い。しかし、セクションが小さい場合、圧縮は効果的ではない可能性があり、エンコーダはこのセクションを圧縮しないことを選択しても良い。各セクションは圧縮が適用されたか否かを知らせるための圧縮フラグを有する。圧縮が適用された場合、各セクションの始めのサイズフィールドはバイト単位でのセクションの圧縮されたサイズ(圧縮前のサイズではない)を示す。
【0039】
場合によっては、各セクション中のデータの特徴を考慮に入れて、別々の圧縮プログラムを各セクションに対して使用することができる。使用される圧縮プログラムについての情報はヘッダ中で提供される。デフォルトでは、構造セグメント及びテキストセグメント中の全てのセクションを圧縮するのにZLIBを使用する。ZLIBアルゴリズムはヘッダ及びチェックサムを生成し、これにより、圧縮されたデータの整合性をデコーダ側で検証することができる。
【0040】
(テキストセグメント(又はテキストストリーム))
テキストセグメント108はテキストセグメントシグネチャで開始され、この後には符号化されたテキストのサイズを示すサイズフィールドが続く。テキストセグメントは要素のテキストであるUTF−8ストリングのシーケンスを含む。
【0041】
<エンコーダモデル及びデコーダモデル>
(エンコーダモデル)
図3は、XML文書104を格納又は伝送のためにビットストリーム306へと符号化するためのエンコーダ302を組み込むXMLエンコーダモデル300を示す。エンコーダモデル300はコンピュータモデル801内で動作するソフトウェアプログラム又はサブプログラムとして実現されても良い。プログラムは、通常、HDD810に格納され、プロセッサ805による実行時に読み出され制御される。ビットストリーム306は、作成されるとI/Oインタフェース808及びネットワーク820を介して伝送され、サーバコンピュータ850により相補的復号化・再現が行なわれても良い。また、ビットストリーム306は、後で再現するためにHDD810に格納されても、あるいは、ドライブ812内のCD−ROMとして格納されても良い。エンコーダ302は、文書ツリー102を作成中に符号化できるように、アプリケーションプログラムインタフェース(API)308(DOM APIなど)をサポートしても良い。コードテーブル312、組込みデータ型用エンコーダ314、及び符号化プロセスで使用されるであろうデフォルト圧縮プログラム316を提供するために、標準ライブラリ310(XML用)が使用される。種々のドメインに対してドメイン固有ライブラリ318が定義されても良い。各ドメイン固有ライブラリ318は、特定のドメイン用のコードテーブル320及び幾つかのデータ型用のエンコーダ322を含んでも良い。また、アプリケーションは上述のような特殊なデータ型用のアプリケーション固有エンコーダ326及び対応する圧縮プログラム328を含む固有モジュール324を提供することもできる。しかし、これらの型エンコーダ326及び圧縮プログラム328は、ダウンロード可能であるか、プラットフォーム独立型であるか、あるいは、デコーダ側に予め組み込まれているかのいずれかでなければならない。アプリケーションは、エンコーダ326に定義済のコードテーブル330を使用するように指示することもできる。コードテーブル330は、ビットストリーム306へと組み込むことも、あるいは、デコーダ側に予め組み込むこともできる。図3に示すエンコーダ及び圧縮プログラムの各々は、ソフトウェア(サブ)プログラムにより実現されても良く、場合によっては、専用のハードウェア(迅速な符号化用など)により実現されても良い。
【0042】
(デコーダモデル)
図4は、XMLビットストリーム306を復号化してXML文書104を出力するためのデコーダ402を含む相補XMLデコーダモデル400を示す。デコーダは、アプリケーションが文書ツリー102の独自の内部モデルを構築できるようにするAPI408(例えば、SAX(「simple API for XML」)又はDOM API)をサポートしても良い。これにより、デコーダ402はXML文書を出力する必要がなくなり、アプリケーションは再現されたXML文書104を再度構文解析する必要がなくなる。いずれにしても、XMLビットストリーム306を復号化する際に、デコーダ402は標準ライブラリ410、任意のドメイン固有ライブラリ418、及び任意の予め組み込まれた又はダウンロードされたアプリケーション固有モジュール424(エンコーダにより使用)を使用する。図4において、デコーダモデル400の要素は図3と同様にナンバリングされており、ナンバリングの数値には100の差があるが、各要素は対応する同様の関数を有する。デコーダモデル400は、例えば、コンピュータモデル801内で実現され、サーバコンピュータ850からネットワーク820を介して受信されたビットストリーム306を復号化しても良い。また、デコーダモデル400は、例えば、CD−ROMから得られたビットストリームを復号化するように動作しても良い。エンコーダ302と同様に、デコーダ402内でソフトウェア及びハードウェアの復号化プロセスが使用されても良い。
【0043】
多くの場合、クライアント側のデコーダ402はDTD又はスキーマに対して図4のXML文書104を検証する必要がない。クライアント側の検証は費用がかかり非効率的である上に重複する可能性が高い。デコーダ104は、DTD又はスキーマに対してサーバ側でXML文書が検証されることを想定しても良い。同様に、下層のトランスポート及びバイナリ形式に組み込まれるチェックサムなどの任意の誤り検出メカニズムは、あらゆる伝送エラーを検出できなければならない。
【0044】
<要素の配置>
XML要素は、ID又はXPath/XPointerフラグメントを使用して参照・配置することができる。先に説明したように、構造セグメント106のIDテーブル206により、IDを伴う要素を文書階層セクション208に迅速に配置することができる。要素と関連付けられるあらゆるテキスト及び属性は、符号化された要素中のロケータを使用することで効率的に配置することができる。
【0045】
以下に示すのは、Uniform Resource Indicator(URI)へと付加することが可能なXPathフラグメントの例である。
・/doc/chapter[2]/section[3]
これは、docの第2章の第3節を選択する。
・chapter[contains(string(title),"Overview")]
これはテキスト「Overview」を含む1つ以上のタイトル子を有するコンテキストノードの章子を選択する。
・child::*[self::chapter or self::appendix][position()=last()]
これはコンテキストノードの最終章又は付録子を選択する。
・para[@type="warning"]
これは値「warning」を伴う型属性を有するコンテキストノードの全ての段落子を選択する。
・para[@id]
これはID属性を有するコンテキストノードの全ての段落子を選択する。
【0046】
XPath/XPointerフラグメントは、XML文書内の所要の要素の絶対位置又は相対位置を表す位置ステップのリストから成る。通常、フラグメントは要素名のリストを含む。上述の例のように、配列内の要素の索引、属性の存在、一致属性値、及び一致テキスト内容などの追加の選択基準を指定するのに述語又は関数が使用されても良い。
【0047】
符号化された文書階層は簡潔であるので、完全なオブジェクトツリー表現へと展開することなく構文解析(及びインスタンス生成)を行なうことができる。まず、フラグメントアドレスが符号化された形態へと変換される。このような変換プロセスの結果の1つとして、所要の要素が実際に文書中で出現したか否かを即座に判定できるようになる。符号化されたフラグメントアドレスのコンポーネントの突き合わせは、サブストリングの突き合わせよりも格段に効率的である。設計により、単純なXPath/XPointerフラグメント(最も一般的に使用される)は迅速に評価できるようになる。また、最初に文書階層を探索することにより、より複雑なフラグメントアドレスの場合、後続の評価ステップの範囲は大幅に狭められる。
【0048】
<ストリーミングのためのビットストリームのパケット化>
(XMLのストリーミング)
従来より、XML文書は生のテキスト形式で格納・伝送されることが多い。一部のアプリケーションでは、XML文書は、格納又は伝送のための従来のテキスト圧縮アルゴリズムを使用して圧縮され、構文解析・処理を受ける前にXMLへと復元される。圧縮によりXML文書のサイズは大幅に減少するかもしれないが、アプリケーションは依然として構文解析・処理を実行する前にXML文書全体を受信しなければならない。
【0049】
XML文書のストリーミングは、XML文書の一部が十分な長さだけ受信され次第、構文解析・処理が開始されることを意味する。この機能は、低帯域幅の通信リンク及び/又は非常に制限されたリソースを伴うデバイスの場合に非常に有用である。
【0050】
通常のXMLパーサはXML文書の整合が取れている(すなわち、一致し且つ重複しない開始タグ/終了タグ対を有する)ことを期待する。このため、パーサはXML文書ツリーを深さ優先方式でのみ構文解析し、XML文書の内容がこの方式に対応するように再構成されない限り文書の一部をスキップすることができない。
【0051】
(ビットストリームのパケット化)
前述のようにXML文書を完全な構造セグメント106及び完全なテキストセグメント108へと符号化することによって、データのサイズが大幅に減少すると同時に、伝送エラーの検出が可能になるであろう。しかし、デコーダ402は依然として処理する前に大量の符号化されたデータを受信しなければならない。例えば、デコーダ402は文書階層の構文解析を開始する前にコードテーブル110の受信を完了しているであろう。同時に、デコーダ402はノードと関連付けられたテキストを取得するのにテキストセグメント108の特定のセグメントの到着を待たなければならない。デコーダ側で可能な限り早く処理を開始するには、図5に示すように、XML文書104を徐々に符号化し、符号化されたデータ500の小さいパケット502を随時デコーダ402へと送信できるようにしなければならない。図5において、網掛けされているパケット504は、構造パケットを示し、斜線入りのパケット506はテキストパケットを示す。これらのパケットの前にはヘッダパケット508があり、後にはトレーラパケット510が続く。好適な構成では、各データパケット502は完全な構造セグメント106又は完全なテキストセグメント108と同じ構造を有する。また、各パケット502はその前に送信されたパケット502に従属することもあり、実現例によっては、後に送信される所定数のパケットに従属することもある。この所定数は動的に判定されても良い。
【0052】
配信を受けながら文書を処理する必要性とは別に、エンコーダ/デコーダは、通常、固定サイズの出力/入力バッファを有する。このため、非常に短い文書を除き、エンコーダ302はXML文書を複数のパケットへと徐々に符号化する必要がある。パケット502の各々(504、506、508、及び510を含む)の前にはパケットヘッダがある。パケットヘッダはパケットIDとして使用されるだけでなく、パケットに順序付けしてその欠落を検出するためのパケット番号を含む。また、パケットヘッダは、パケット502のサイズをバイト単位で示すサイズフィールドと、パケットが構造パケット504、テキストパケット506、ヘッダパケット508、トレーラパケット510、及び図5には示されていないが後述するコマンドパケットという名前の更なる型のパケット502のうちのどれであるかを示す型フィールドとを含む。
【0053】
各構造パケット504に関して、組み込まれるIDテーブルはパケットに含まれる要素のIDのみを含む。そのコードテーブルは伝送されていない新規のコードのみを含む。伝送済のコードは再度割り当てられることも、再度マップされることもない。デフォルトの実現例では、新規の値をテーブルに付加し、エントリの索引(テーブルの基本索引により拡張される)をコードとして使用するだけである。これよりも若干複雑な(しかし、コード効率が高い)方法は、パケットが出力される直前に値の出現回数をカウントし、より頻繁に出現する値をより短いコードに再度マップすることである。定義済のコードテーブルが使用されるか、あるいは、再マッピングが出現回数に基づいていない場合、圧縮前に値をソートすると圧縮率が向上する可能性がある。また、コード割当てのための別のアルゴリズムを実現することもできる。しかし、一度出力されるとコードは固定されるので、他の値に再度割り当てしたり、後続のパケットに再度マップしたりすることはできない。また、定義済のコードテーブルは、本明細書で後述するエンコーダインタフェースのUseCodeTable()メソッドを使用することで指定することもできる。更に、このメソッドにより定義済のコードテーブルをデータと共にビットストリームへと符号化すべきか否かを指定することができる。XML(又はMPEG−7のようなアプリケーションドメイン)に欠かせない複数の名前空間のコードテーブルは全てのXML(MPEG−7)エンコーダ/デコーダにハードワイヤードされていることが予想されるので、ビットストリームへと符号化される必要がない。
【0054】
ID、要素名、属性名、又は属性値が定義済の長さよりも長い場合はテキストパケット中に符号化され、実際のストリングではなくストリングロケータがテーブル中に出現することになる。
【0055】
構造パケットの文書階層セクションはノードのシーケンスを含む。各ノードはノードの(符号化された)サイズをバイト単位で示すと共にパケット中に符号化されている子孫ノードの合計サイズを含むサイズフィールドをそれぞれ有する。ノードは要素ノード、コメントノード、テキストノード、及びノードロケータのいずれかとなる。各ノードはその型を示すノード型フィールドを有する。
【0056】
文書階層は以下に示す項目を含んでも良い。
(i)完全な文書ツリー:これは非常に短い文書の場合のみ可能である。
(ii)完全なサブツリー:サブツリーは前のパケット中に符号化される別のノードの子である。
(iii)不完全なサブツリー:時間的及び/又はサイズ的な制約のためにサブツリー全体を1つのパケットへと符号化できないため、サブツリーは不完全である。
【0057】
不完全なサブツリー602及び604を有するツリー構造622に対して、欠落しているノード及び不完全なサブツリーの子孫を配置するために、ノードロケータが図6Aに示すように使用される。この点に関して、前述の例を参照して説明すると、符号化が行なわれるときには文書104の階層ツリー表現102は公表されているが、送受信されるパケットの復号化のときには、通常、ツリー表現102の一部のみが利用可能になる。更にパケットが受信されると共に、ツリーが再現されるであろう。例えば、図6Bに示すデータストリームにおいて、パケット620(この例では、データストリーム中のパケット#2)は文書のツリー構造622の一部を含み、この構造はノードA、B1、B2、及びB3を含む。しかし、この例では、パケット620のサイズはツリー構造622全体を記述し、B4及びD1のような他のノードを収容するには不十分である。このため、ノードロケータ608及び606は、対応する親ノード(B4及びB2のそれぞれ)の記述へと組み込まれ、欠落したノードのシーケンス及びそのサブツリーを含む構造パケットのパケット番号610及び612を含む。このため、図6Bに示すパケットのシーケンスを受信するとき、パケット(#2)620の受信のときにはツリー622の一部を再現し、パケット(#7)610の受信のときにはノードD1を含む枝を再現し、パケット(#20)612の受信のときにはツリーの平衡を再現することができる。
【0058】
各要素ノードは、名前空間コード及び要素(名)コードを含むのが好ましく、要素が属性を有する場合には、属性名/属性値対テーブル中の第1の属性のバイトオフセット及び属性の数を有するのが好ましい。
【0059】
各テキストノード又はコメントノードは、通常、実際のテキストではなく、テキストロケータを有する。テキストロケータはテキストパケットのパケット番号とテキストパケットへのバイトオフセットを指定する。
【0060】
場合によっては、ストリングはパケットの最大サイズを越える可能性がある。このような場合、ストリングは図7に示すように、複数のテキストパケットにまたがるフラグメントとして格納される。各テキストパケット702は、UTF−8符号化ストリングのリスト、ストリングロケータ、及びストリングフラグメントのうちのどれを含むかを示すフラグ704を有する。ストリングフラグメントの場合、次のフラグメントのパケット番号も含まれる。テキストパケットがストリングの最終(又は唯一)のフラグメントを含む場合、次のフラグメントに対するパケット番号は図7に示すように0に設定される。
【0061】
(文書ツリーを構築するためのコマンド)
XML文書は、符号化又は生成(定義済のDTD又はスキーマに従って)中に受信側へのストリーミングのためにパケット化される。この場合、XML文書は、通常、DOM APIなどのAPIを使用してリアルタイムで構築される。XMLファイルを構文解析する代わりに、エンコーダ302は、メモリ表現から直接ビットストリーム306を構築する。APIを使用して挿入・付加されるノード及びサブツリーはデコーダ側のメモリ表現を変更するための(バイナリ)コマンドパケットとして符号化される。パケット番号によりコマンドパケットは確実に正しいシーケンスで実行されるようになる。
【0062】
伝送されるノードは同じ文書(定義済のDTD又はスキーマに従う)の一部であり、文書は常時エンコーダ302とデコーダ402との間でオンライン状態であり同期しているので、ノードの内容に関して整合性の問題があってはならない。幾つかの提示では、ある情報は時間的な関連性しか有しない。具体的には、一部の情報は提示中のある一定の期間内でのみ関連性を有する。提示の2つの異なる時間インスタンスと関連する情報ユニット(例えば、フットボールの試合のスコア)は、それ自体が整合性に欠ける可能性がある。提示記述方式は、提示のタイミング/同期モデルを確立するのに望ましい。XMLデータを含む媒体オブジェクトのタイミングは、開始時間及び持続時間により示すことができる。このような提示エンコーダ/デコーダ対は、通常、内部に配置された上述のようなXMLエンコーダ/デコーダを含むであろう。XMLデコーダではなく、提示デコーダが、開始時間属性及び持続時間属性を解釈するように動作する。提示エンコーダは、既に関連していないXMLサブツリーをメモリから除去すべきか否かを決定する。XMLエンコーダ/デコーダに関する限り、整合性の問題は生じない。生成装置が常に有効な文書(フラグメント)を生成する必要がある場合、(整合性に欠ける又は無効である可能性のある)ノード又はサブツリーを除去するコマンドは必要でない。すなわち、挿入コマンド及び付加コマンドのみが必要とされる。
【0063】
コマンドパケットは、付加又は挿入するサブツリーの(ルートの)パスとそのサブツリーを含む構造パケットのパケット番号とを含む。例えば、図6Bに戻って説明すると、ノードB4に対するロケータ608をパケット620に収容できない場合、パケット#2とパケット#20との間にノードB4をノードAへと有効に取り付けるコマンドパケットを挿入しなければならない。コマンドパケットはノードB4により定義される構造を含むパケット612を指し示すロケータを含むであろう。
【0064】
(ビットストリームの定義)
ビットストリーム306は付録により定義されるようにExtended Backus-Naur Form(ENBF)で定義されるのが好ましい。文字は一重引用符で括られ、ストリングは二重引用符で括られる。別途記載のない限り、UTF−8符号化におけるUCS文字及びUTFストリング(長さ情報を含む)が想定される。
【0065】
<API>
(文書及びスキーマ用のAPI)
デコーダ402は常に符号化された文書を変換してXMLに戻す必要はない。上述のように、デコーダ402はSAX API、DOM API、又はその他の著作権のあるAPIなどのAPIをサポートし、アプリケーションが復号化された内容に直接アクセスできるようにしても良い。これにより、デコーダ402はXML文書を再現・出力する必要がなくなり、アプリケーションは再現されたXML文書を再度構文解析する必要がなくなる。
【0066】
また、アプリケーションは、スキーマに格納された情報にアクセスしなければならない。スキーマもXML文書であるので、同様に符号化することができる。スキーマ定義をアクセス・解釈するために既存のSAX API又はDOM APIを使用すると非常に時間がかかる。Wan E., Anderson M., Lennon A., Description Object Model (DesOM). Doc. ISO/IEC JTC1/SC29/WG11 MPEG00/M5817, Noordwijkerhout, March 2000に定義されるようなスキーマAPIをサポートするパーサによりスキーマの定義へのアクセスがかなり容易になるであろう。
【0067】
組込みデータ型及び特殊型の値を効率的に符号化するためには、エンコーダはスキーマから型情報を取得可能でなければならない。このため、スキーマAPIはエンコーダ302にとっても極めて重要である。
【0068】
<エンコーダ用API>
以下に提案するバイナリ形式は、種々の機能及び複雑度のエンコーダの実現を考慮に入れている。この節で説明するインタフェースにより基本エンコーダを構築することができる。この基本エンコーダは、符号化方式によりサポートされるより複雑な特徴を提供するように拡張することが可能である。
【0069】
(エンコーダインタフェース)
void SetMaxPacketSize(in unsigned long maxPacketSize)
・最大パケットサイズをバイト単位で設定する。
void SetMaxPrivateDataSize(in unsigned long maxPrivateDataSize)
・専用データの最大サイズをバイト単位で設定する。尚、パケットに含むことができる専用データの量はパケットの最大サイズにより制限される。ビットストリームのサイズを削減する目的に反するので大量の専用データは予期されていない。
void SetHeaderUserData(in ByteArray headerData)
・ユーザデータをヘッダパケットに書き込む。既存のデータは上書きされることになる。
void UseCodeTable(in CodeTable codeTable,in Boolean encode It)
・エンコーダに定義済のコードテーブル及びコードテーブルをデータと共に符号化すべきか否かを通知する。
void SetCompressor(in Section section,in Inflater compressor)
・エンコーダに特定セクションに対して特定の圧縮プログラムを使用するように指示する。Sectionは以下の値に関する一覧である。STRUCT_BODY=1, TEXT_BODY=2, ID_TABLE=3, NS_SECT=4, ELEMENT_SECT=5, ATTR_NAME_SECT=6, ATTR_VALUE_SECT=7, ATTR_PAIR_SECT=8, DOC_HIERARCHY_SECT=9。Inflaterはjava.util.zipパッケージのInflaterと同じインタフェースを有する。
void Flush()
・出力ストリームへのバッファ中のパケットをフラッシュする。
void OnOutput()
・バッファ中のパケットの集合が出力される前に通知を受信し、アプリケーションがアプリケーション固有データをパケットへと挿入できるようにする。
void SetPacketUserData(in ByteArray userData)
・バッファ中のヘッダパケットを除く各パケットにユーザデータを書き込む。既存のユーザデータは上書きされることになる。
【0070】
(コードテーブルインタフェース)
unsigned short GetSize()
・コードテーブル中のエントリの数を取得する。
wstring GetNamespace(in unsigned short i)
・コードテーブルのエントリと関連付けられた値の名前空間を取得する。
wstring GetValue(in unsigned short i)
・コードテーブルのi番目のエントリと関連付けられた値を取得する。
wstring GetType(in unsigned short i)
・コードテーブルのi番目のエントリと関連付けられた型を取得する。
ByteArray GetCode(in unsigned short i)
・コードテーブルのi番目のエントリと関連付けられたコードを取得する。
unsigned short GetIndexByCode(in ByteArray code)
・コードと関連付けられた値を取得する。
unsigned short GetIndexByValue(in wstring value)
・コードと関連付けられた値を取得する。
unsigned short GetMaxCodeValue()
・コードテーブルにより確保された最大コード値を取得する。エンコーダは上述の最大コード値を自由に使用することができる。アプリケーションにより、エンコーダは定義済のコードテーブルにより残された孔を使用するように実現されても良い。
【0071】
(型エンコーダインタフェース)
ByteArray Encode(in wstring text)
・テキスト表現が与えられると、値をバイト配列へと符号化する。
wstring Decode(in ByteArray encodedText)
・符号化された値を値のテキスト表現へと復号化する。
【0072】
<XMLデータ、特に、提示のMPEG−7記述の符号化>
MPEG−7記述(音声映像(AV)内容を記述するのに使用されるXMLデータ)を含むXMLデータ(のフラグメント)がストリーミングされ、AV内容と共に提示される場合、媒体オブジェクト(XMLデータを含む)のタイミング及び媒体オブジェクト間の同期が指定されなければならない。XMLと同様に、DDL(XMLの記述定義言語)は媒体オブジェクトを提示するためのタイミング/同期モデルを定義しない。上述のように、SMILのようなMPEG−7記述方式(ここでは提示記述方式と呼ぶ)は、マルチメディア提示を作成するためのタイミング/同期モデルを提供することが望ましい。
【0073】
MPEG−7記述をAVオブジェクトと同様に扱えるようにすることが提案されている。これは、AVオブジェクトのような提示で使用される各MPEG−7記述フラグメントが、開始時間及びその時間範囲を定義する持続時間を用いてタグ付けされることを意味する。これにより、MPEG−7フラグメント及びAVオブジェクトの双方を提示記述方式の媒体オブジェクト要素のクラスにマップし、同じタイミング/同期モデルに従わせることができる。特に、SMILベースの提示記述方式の場合、<mpeg7>タグのような新規の媒体オブジェクトを定義することができる。また、MPEG−7記述はテキストの特定の型として扱うこともできる。
【0074】
異なる型のMPEG−7記述を単一のストリーム又は別々のストリームで送信することが可能である。また、異なる時間範囲のサブフラグメントを有するMPEG−7記述フラグメントを単一のデータストリーム又は別々のストリームで送信することも可能である。これが提示エンコーダの役割であり、前述のXMLエンコーダ300とは対照的である。
【0075】
提示エンコーダは、パケットの内容が必要になる又は関連しているのがいつか、どの程度の期間かを知らせる開始時間及び持続時間を伴うXMLパケットをラップする。パケットは以下の項目を含んでも良い。
(i)相互に連結されて高い圧縮率を達成すると共にオーバーヘッドを最小限にする複数の短い記述フラグメント(各々が独自の時間範囲を伴う)
(ii)単一の記述フラグメント
(iii)長い記述フラグメントの一部
パケットが複数の記述フラグメントを含む場合、パケットの開始時間は各フラグメントの開始時間のうちの最も早い時間であり、パケットの持続時間は各フラグメントの終了時間(フラグメントの開始時間に持続時間を加えることにより計算される)のうちの最も遅い時間とパケットの開始時間との差である。
【0076】
アプリケーションを同報通信する際に、ユーザがいつでも提示を受信できるようにするために、関連する素材が定間隔で繰り返されなければならない。XMLパケットの場合、以前に送信したパケットの一部は既に関連していない可能性があるので一部だけを再送信すれば良いが、ヘッダパケットは繰り返す必要がある。これは、アプリケーションを同報通信する場合、構造パケット、テキストパケット、及びコマンドパケットの間にヘッダパケットが散在し、伝送を既知の状態へとリセットする可能性があることを意味する。
【0077】
(産業上の利用可能性)
上述の構成はコンピュータ産業及びデータ処理産業に適用可能であると共に、部分的に受信された情報を処理する能力を持ちつつ関連する通信リソースを効率的に使用する際にも適用可能であることが以上の説明から明らかである。
【0078】
以上の説明は、本発明の1つ以上の実施形態を述べたにすぎず、本発明の趣旨から逸脱することなく、修正及び/又は変更を加えることができる。本実施形態は例示のためのものであり、制限するためのものではない。例えば、XML文書に対する説明が行なわれているが、ここで開示される手順は文書のツリー表現などの任意の階層表現に適用可能である。
【0079】
(付録)
<ビットストリームの定義>
ビットストリームはExtended Backus-Naur Form(ENBF)で定義されるであろう。文字は一重引用符及び二重引用符で括られる。別途記載のない限り、UTF−8符号化におけるUCSストリング及びUTFストリング(長さ情報を含む)が想定される。
xmlbitStream ::= xml_packet+
注: 符号化されたXML文書のビットストリームはパケットのシーケンスから成る。シーケンスはヘッダパケットで開始され、トレーラパケットで終了する。
【0080】
<パケット>
xml_packet ::= packet_header packet_body
packet_header ::= packet_signature packet_number
packet_size packet_type packet_private_data
packet_number ::= variable_length_natural_number
注: packet_numberは0より大きくなければならない。
packet_type ::= header_packet | structure_packet |
text_packet | trailer_packet | command_packet
packet_signature ::= 'x' 'm' 'l' 'b' 'i' 'n' 'p' 'k'
packet_size ::= unsigned_short
注: unsigned_shortに関して、0〜65535の範囲の符号無し整数が2バイトを使用して表される。第1バイトはこの整数の上位バイトである。
packet_private_data ::= byte_array
packet_body ::= header_body | trailer_body | structure_body
| text_body | command_body
header_packet ::= 'h'
structure_packet ::= 's'
text_packet ::= 't'
trailer_packet ::= 'e'
command_packet ::= 'c'
byte_array ::= size_in_byte byte*
size_in_byte ::= variable_length_natural_number
注: variable_length_natural_numberに関して、0〜1,073,741,823の範囲の自然数が4バイトで表される。第1バイトはこの数の上位バイトである。上位バイトの2つの最上位ビットは、実際、この数を表すために使用される追加のバイト数を示すのに使用される。例えば、「01」は1つの追加のバイト又は2バイト表現を意味し、「11」は3つの追加のバイト又は4バイト表現を意味する。
Byte ::= [#x00 #xFF]
【0081】
<ヘッダ>
header_body ::= enoding_version xml_version xml_params
max_packet_size max_decompressed_packet_size
max_packet_number section_compressor_list
type_encoder_list
xml_params ::= count xml_encoding xml_standalone
encoding_version ::= "1.0"
xml_version ::= "1.0"
count ::= variable_length_natural_number
xml_encoding ::= UTF8_string
注: UTF8_Stringに関して、最初の2バイトは符号無しショートUTF lengthであり、読み込む追加のバイト数を指定する。追加のバイトはストリングのUTF−8符号化を含む。
xml_standalone ::= 'y' | 'n'
max_packet_size ::= variable_length_natural_number
注: 0の値は最大パケットサイズが未知であることを意味する。
max_packet_number ::= variable_length_natural_number
注: 0の値は最大パケット数が未知であることを意味する。
section_compressor_list ::= count (section_ID compressor_URI)*
type_encoder_list ::= count (type_ID type_encoder_URI)*
compressor_URI ::= URI
type_encoder_URI ::= URI
URI ::= UTF8_string
section_ID ::= struct_body_ID | text_body_ID | id_table_ID
| ns_section_ID | element_sect_ID |
attribute_name_sect_ID | attribute_value_sect_ID
| attribute_pair_sect_ID | doc_hierarchy_sect_ID
struct_body_ID ::= 's'
text_body_ID ::= 't'
id_table_ID ::= 'i'
ns_section_ID ::= 'n'
element_sect_ID ::= 'e'
attribute_name_sect_ID ::= 'a'
attricute_value_sect_ID ::= 'v'
attribute_pair_sect_ID ::= 'p'
doc_hierarchy_sect_ID ::= 'd'
type_ID ::= [#x00 #xFF]
other_type_ID ::= #x00
string_ID ::= #x01
string_locator_ID := #x02
boolean_ID ::= #x03
byte_ID ::= #x04
unsigned_short_ID ::= #x05
short_ID ::= #x06
unsigned_long_ID ::= #x07
long_ID ::= #x08
float_ID ::= #x09
double_ID ::= #x0A
date_ID ::= #x0B
time_ID ::= #x0C
注: 組込みデータ型に対する上述のリストは完全ではない。型00〜0Fが組込みデータ型用である。XMLエンコーダは型10〜FFをアプリケーション固有型に割り当てることができる。アプリケーションは任意のアプリケーション固有型に対して(Java)型エンコーダ/デコーダを提供する役割がある。これらの型エンコーダ/デコーダは必要になる前に予め組み込まれるか、あるいは、ダウンロードされなければならない。型情報が利用できないときは、XMLテキスト及び属性値はストリングとして扱われることになる。
【0082】
<トレーラ>
trailer_body ::=
注: 現時点では、トレーラパケットはXML文書の終わりを知らせるためにだけ使用される。トレーラパケットの本体は空である。
【0083】
<構造パケット>
structure_body ::= [ID_table_section]
[internal_subset_section]
[ns_table_section] [element_name_codetable_section]
[attribute_name_codetable_section]
[attribute_value_codetable_section]
[attribute_name_value_pair_section]
[document_hierarchy_section]
注: 上述のEBNF規則は構造パケットの本体の種々のセクションを特定の順序で並べられるように定義するが、各セクションは固有のシグネチャにより識別されるので実際は任意の順序で並べることができる。
【0084】
<IDテーブルセクション>
ID_table_section ::= ID_table_section_signature
section_size compressed entry_count (ID_table |
compressed_ID_table)
section_size ::= size_in_byte
注: section_sizeはシグネチャを除くセクションのサイズを格納する。
compressed ::= boolean
注: 圧縮フラグはテーブルが圧縮されているか否かを示す。
注: booleanに関して、1のバイト値は真を表し、0のバイト値は偽を表す。
entry_count ::= variable_length_natural_number
size_of_compressed_ID_table ::= variable_length_natural_number
ID_table ::= (ID_string offset_to_the_document_hierarchy)*
注: ID_tableは圧縮されていないIDテーブルの構造を定義する。IDテーブルは同じパケットの文書階層中に出現するノード(ノードロケータにより参照されるノードは含まない)のIDのみを収集する。符号化中、型情報が利用可能でない場合、エンコーダがIDを識別する方法が存在しないので、IDが文書中に存在してもIDテーブルへと収集されない。
ID_string ::= UTF8_string
offset_to_the_document_hierarchy ::= byte_offset
注: offset_to_the_document_hierarchyは(圧縮されていない)document_hierarhy_sectionへのバイトオフセットではなく、(圧縮されていない)document_hierarchy_ section 中のdocument_hierarchyへのバイトオフセットである。
byte_offset ::= variable_length_natural_number
ID_table_section_signature ::= #xFF01
【0085】
[内部部分集合セクション]
Internal_subset_section ::= internal_subset_section_signature
section_size compressed [byte]*
注: 内部部分集合セクションの詳細は未定である。
NS_table_section_signature ::= #xFF02
【0086】
[名前空間テーブルセクション]
NS_table_section ::= NS_table_section_signature
section_size compressed
entry_count index_base (NS_table |
compressed_NS_table)
index_base ::= variable_length_natural_number
注: NS_tableへの索引が名前空間コードとして使用される。この索引のベースはフィールドindex_base中で指定される。名前空間コード0は空の名前空間のために確保されているので、名前空間テーブルのindex_baseは0にならない。
NS_table ::= (NS_URI)*
注: NS_tableは圧縮されていないNSテーブルの構造を定義する。テーブルへの索引が名前空間コードとして使用される。この索引のベースはフィールドindex_base中で指定される。名前空間コード0は空の名前空間のために確保されているので、名前空間テーブルのindex_baseは0にならない。
NS_URI ::= URI
NS_table_section_signature ::= #xFF03
【0087】
<コードテーブルセクション>
element_name_codetable_section ::=
element_name_codetable_section_signature
section_size compressed entry_count index_base
(element_name_codetable |
compressed_element_name_codetable)
attribute_name_codetable_section ::=
attribute_name_codetable_section_signature
section_size compressed entry_count index_base
(attribute_name_codetable |
compressed_attribute_name_codetable)
attribute_value_codetable_section ::=
attribute_value_codetable_section_signature
section_size compressed entry_count index_base
has_predefined_code (attribute_value_codetable |
compressed_attribute_value_codetable)
注: 定義済のコードがない限り、各コードテーブルへの索引がコードとして使用される。コードテーブルにより符号化に使用されるコードと実際の値との間のマッピングが可能になる。テーブルごとの索引のベースはテーブルのフィールドindex _base中で指定される。正のコードのみが許容されるので、index_baseは0の値をもたない。
element_name_codetable_section_signature ::= #xFF04
attribute_name_codetable_section_signature ::= #xFF05
attribute_value_codetable_section_signature ::= #xFF06
has_predefined_code ::= boolean
注: has_predefined_codeフラグはコードテーブルがpredefined_code列を有するか否かを指定する。
【0088】
[要素名コードテーブル]
element_name_codetable ::= element_name_code_table_entry*
注: element_name_codetableは圧縮されていない要素名コードテーブルの構造を定義する。定義済のコードがない限り、テーブルへの索引が要素名コードとして使用される。索引のベースはフィールドindex_base中で指定される。コード0は確保されているので、コードテーブルのindex_baseは0にならない。
element_name_codetable_entry ::= ns_code element_name
type_ID [predefined_code]
注: エンコーダに知られている組込みデータ型及び特殊型を除く他の全ての型のテキスト内容はストリングとして符号化されることになる。
predefined_code ::= byte_array
注: 空のpredefined_codeはエントリに対して定義済のコードが存在しないことを意味するが、このような状況は発生すべきでない。定義済コードテーブルから値が欠落している場合、エンコーダはその値に対するコードを生成し、predefined_ codeフィールドに格納しなければならない。
element_name ::= non_empty_UTF8_string | (#x0000 string_locator)
注: 要素名は、通常、テーブル中に直線状に格納される。しかし、要素名が長すぎる場合、別々のテキストパケットに格納することができる。テーブル中ではストリングロケータが代わりに使用される。
string_locator ::= text_packet_number byte_offset
注: byte_offsetは、ストリングを見つけることができるテキストパケットの本体へのオフセットを指定する。
non_empty_UTF8_string ::= UTF8_string-""
【0089】
[属性名コードテーブル]
attribute_name_codetable ::= attribute_name_code_table_entry*
注: attribute_name_codetableは圧縮されていない属性名コードテーブルの構造を定義する。定義済のコードがない限り、テーブルへの索引が属性名コードとして使用される。索引のベースはフィールドindex_base中で指定される。コード0は確保されているので、コードテーブルのindex_baseは0にならない。
attribute_name_codetable_entry ::= ns_code attribute_name
type_ID [predefined_code]
注: エンコーダに知られている組込みデータ型及び特殊型を除く他の全ての型のテキスト内容はストリングとして符号化されることになる。
attribute_name ::= non_empty_UTF8_string|(#x0000 string_locator)
注: 属性名は、通常、テーブル中に直線状に格納される。しかし、属性名が長すぎる場合、別々のテキストパケットに格納することができる。テーブル中ではストリングロケータが代わりに使用される。
【0090】
[属性値コードテーブル]
attribute_value_codetable::=attribute_value_code_table_entry*
注: attribute_value_codetableは圧縮されていない属性値コードテーブルの構造を定義する。定義済のコードがない限り、テーブルへの索引が属性値コードとして使用される。索引のベースはフィールドindex_base中で指定される。コード0は確保されているので、コードテーブルのindex_ baseは0にならない。
attribute_value_codetable_entry::= ns_code attribute_value type_ID
[predefined_code]
注: エンコーダに知られている組込みデータ型及び特殊型を除く他の全ての型のテキスト内容はストリングとして符号化されることになる。
attribute_value ::= encoded_value
注: 属性値は、通常、テーブル中に直線状に格納される。
encoded_value ::= encoded_value_of_non_string_type |
non_empty_UTF8_string | (""#x00) |
(#x0000 string_locator)
注: 値は型に従って符号化される。エンコーダに知られている組込みデータ型及び特殊型を除き、値はストリングとして符号化される。
注: 有効なストリングロケータと区別するために空のUTF8−ストリングの後には#x00が続かなければならない。属性名が長すぎる場合、別々のテキストパケットに格納することができる。テーブル中ではストリングロケータが代わりに使用される。
【0091】
<属性名/属性値対セクション>
attribute_name_value_pair_section ::=
attribute_name_value_pair_section_signature
section_size compressed entry_count index_base
(attribute_name_value_pair_table |
compressed_attribute_name_value_pair_table)
attribute_name_value_pair_table ::=
attribute_name_value_pair_entry*
注: attribute_name_value_pair_tableは圧縮されていない属性名/属性値対テーブルの構造を定義する。索引のベース(>0)はフィールドindex_base中で指定される。
attribute_name_value_pair_entry ::=
attribute_name_code attribute_value_code
attribute_name_value_pair_section_signature ::= #xFF07
【0092】
<文書階層セクション>
document_hierarchy_section ::=
document_hierarchy_section_signature
section_size compressed (subtree |
compressed_subtree)
subtree ::= node
注: subtreeは圧縮されていないXMLサブツリーの構造を定義する。
node ::= node_size node_type (element_node |
text_node | comment_node | node_locator)
注: node_sizeはノード及び同じパケット中に符号化されている子孫ノードのサイズを含む。
node_type ::= (element_node_signature element_flag) |
((text_node_signature | comment_node_signature |
locator_node_signature) #x0)
element_node_signature ::= #x3
text_node_signature ::= #x5
comment_node_signature ::= #x9
locatore_node_signature ::= #xC
element_flag ::= has_attributes | has_children |
has_attributes_and_children
has_attributes ::= 0x1
has_children ::= 0x2
has_attributes_and_children ::= 0x3
element_node ::= element_name_code [attributes][child_node*]
child_nodes ::= node
attributes ::= index_of_starting_attribute_name_value_pair
number of attributesnumber_of_attributes ::= variable_length_natural_number
text_locator ::= string_locator
comment_node ::= text_locator
node_locator ::= packet_number
【0093】
<テキストパケット>
text_body ::= compressed (encoded_text |
compressed_encoded_text)
encoded_text ::= (0x00 encoded_value*) |
(next_packet_number UTF8_string)
注: next_packet_numberが0の場合、テキストパケットの第1のストリングは長いストリングの最終フラグメントである可能性がある。next_packet_numberが0以外の場合、テキストパケット全体はストリングの単一のフラグメントを含む。
next_packet_number ::= variable_length_natural_number
【0094】
<コマンドパケット>
command_body ::= command path packet_number_of_subtree
注: 追加するsubtreeは特定のパケット番号と共に構造パケット中で定義される。
command ::= insert_command | append_command
insert_command ::= #x01
append_command ::= #x02
path ::= URI_reference
URI-reference ::= UTF8_string
【図面の簡単な説明】
【図1】 符号化XML文書を概略的に示す図である。
【図2】 構造セグメントの構成を示す図である。
【図3】 エンコーダモデルを概略的に示す図である。
【図4】 デコーダモデルを概略的に示す図である。
【図5】 XML文書を複数のパケットへと徐々に符号化するエンコーダを概略的に示す図である。
【図6A】 ノードロケータを使用してノードを他の構造パケット中のサブツリーへとリンクする様子を概略的に示す図である。
【図6B】 各ノードロケータがサブツリーのパケットのパケット番号を含む様子を示す図である。
【図7】 各々のパケットが次のフラグメントを含むテキストパケットを指し示す複数のテキストパケット中のストリングフラグメントとして長いストリングが格納される様子を概略的に示す図である。
【図8】 上述の構成が実施されるであろうコンピュータシステムを表す概略ブロック図である。
【図9】 XML文書符号化操作を示すフローチャートである。
【図10】 符号化操作において様々なデータ型を扱うことができる様子を示すフローチャートである。
Claims (5)
- データを管理する構造化文書の少なくとも一部を送受信する方法であって、
構造及びテキスト内容を有する階層表現により記述された前記構造化文書を保持手段に保持する保持制御ステップと、
前記保持手段に保持された前記構造化文書の前記階層表現に対し、前記構造とテキスト内容との階層を解析する解析ステップと、
前記解析された前記構造とテキスト内容とをそれぞれ別のストリームで送受信される複数パケットにパケット化するパケット化ステップと、
少なくとも1つの前記構造のパケットと前記階層表現において該構造の下位階層として含まれる少なくとも1つの前記テキスト内容のパケットとの間に別のストリームで送受信されるパケットを関連付ける少なくとも1つのリンクを作成することを含む作成ステップと、
前記パケットを、1つ以上の前記構造のパケットにより構成され前記リンクを含むストリーム及び前記テキスト内容のパケットにより構成されるストリームへと変形する変形ステップと、
を備えることを特徴とする方法。 - 前記ストリームを受信するステップと、
前記ストリームから前記パケットを復号化して前記リンクを識別するステップと、
前記ストリームの1つのパケットにパケット化されていない前記階層表現の部分に関して、前記リンクを使用して前記階層表現を再現するステップを更に含むことを特徴とする請求項1に記載の方法。 - 前記階層表現はツリー表現であることを特徴とする請求項1または2のいずれか1項に記載の方法。
- 前記構造化文書はXML文書であることを特徴とする請求項1、2または3に記載の方法。
- データを管理する構造化文書の少なくとも一部を送受信する装置であって、
構造及びテキスト内容を有する階層表現により記述された前記構造化文書を保持する保持手段と、
前記保持手段に保持された前記構造化文書の前記階層表現に対し、前記構造とテキスト内容との階層を解析する解析手段と、
前記解析された前記構造とテキスト内容とをそれぞれ別のストリームで送受信される複数パケットにパケット化するパケット化手段と、
少なくとも1つの前記構造のパケットと前記階層表現において該構造の下位階層として含まれる少なくとも1つの前記テキスト内容のパケットとの間に別のストリームで送受信されるパケットを関連付ける少なくとも1つのリンクを作成することを含む作成手段と、
前記パケットを、1つ以上の前記構造のパケットにより構成され前記リンクを含むストリーム及び前記テキスト内容のパケットにより構成されるストリームへと変形する変形手段と、
を含むことを特徴とする装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AUPR0634A AUPR063400A0 (en) | 2000-10-06 | 2000-10-06 | Xml encoding scheme |
PCT/AU2001/001257 WO2002029602A1 (en) | 2000-10-06 | 2001-10-05 | Xml encoding scheme |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2004510279A JP2004510279A (ja) | 2004-04-02 |
JP2004510279A5 JP2004510279A5 (ja) | 2005-04-07 |
JP4574114B2 true JP4574114B2 (ja) | 2010-11-04 |
Family
ID=3824692
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002533104A Expired - Fee Related JP4574114B2 (ja) | 2000-10-06 | 2001-10-05 | 文書の送受信方法、xml符号化方法及びその装置、並びにxml復号方法 |
Country Status (9)
Country | Link |
---|---|
US (1) | US7647552B2 (ja) |
EP (1) | EP1323064B1 (ja) |
JP (1) | JP4574114B2 (ja) |
KR (1) | KR100566019B1 (ja) |
CN (1) | CN1244062C (ja) |
AT (1) | ATE366441T1 (ja) |
AU (1) | AUPR063400A0 (ja) |
DE (1) | DE60129232T2 (ja) |
WO (1) | WO2002029602A1 (ja) |
Families Citing this family (110)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8312429B2 (en) * | 2000-11-10 | 2012-11-13 | Oracle International Corporation | Cell based data processing |
CA2430019A1 (en) * | 2000-11-27 | 2002-05-30 | Intellocity Usa, Inc. | System and method for providing an omnimedia package |
EP1343327B1 (fr) * | 2001-12-28 | 2011-06-15 | Koninklijke Philips Electronics N.V. | Procédé pour effectuer un traitement sur un contenu multimedia |
KR20030095048A (ko) | 2002-06-11 | 2003-12-18 | 엘지전자 주식회사 | 멀티미디어 재생 방법 및 장치 |
CN100377155C (zh) * | 2002-07-23 | 2008-03-26 | 三星电子株式会社 | 使用元数据索引的元数据搜索方法及设备 |
CN100525386C (zh) * | 2002-09-24 | 2009-08-05 | 佳能株式会社 | 图像摄取装置 |
KR100449742B1 (ko) | 2002-10-01 | 2004-09-22 | 삼성전자주식회사 | 멀티미디어 방송 송수신 장치 및 방법 |
DE10339971A1 (de) * | 2002-12-03 | 2004-07-01 | Siemens Ag | Verfahren zur Codierung eines XML-basierten Dokuments |
US20040111396A1 (en) * | 2002-12-06 | 2004-06-10 | Eldar Musayev | Querying against a hierarchical structure such as an extensible markup language document |
GB0305828D0 (en) | 2003-03-14 | 2003-04-16 | Ibm | Real time xml data update identification |
JP3815567B2 (ja) * | 2003-03-31 | 2006-08-30 | 日本電気株式会社 | コンピュータシステム、コンピュータプログラム、コンピュータ間の通信方法、構造化文書の符号化方法、符号化された構造化文書の復号方法 |
KR100511308B1 (ko) * | 2003-04-29 | 2005-08-31 | 엘지전자 주식회사 | 휴대 단말기에서 스마일 문서의 z-인덱스 처리방법 |
US7620606B2 (en) * | 2003-09-10 | 2009-11-17 | Ntt Docomo, Inc. | Method and apparatus for secure and small credits for verifiable service provider metering |
CN100442278C (zh) * | 2003-09-18 | 2008-12-10 | 富士通株式会社 | 网页信息块提取方法和装置 |
WO2005046059A1 (en) * | 2003-11-07 | 2005-05-19 | Expway | Method for compressing and decompressing structured documents |
JP2005141650A (ja) * | 2003-11-10 | 2005-06-02 | Seiko Epson Corp | 構造化文書符号化装置及び構造化文書符号化方法ならびにそのプログラム |
US7464179B2 (en) | 2003-11-24 | 2008-12-09 | At&T Intellectual Property I, L.P. | Methods, systems, and products for providing communications services amongst multiple providers |
US20050114224A1 (en) * | 2003-11-24 | 2005-05-26 | Hodges Donna K. | Methods for providing communications services |
US7509373B2 (en) | 2003-11-24 | 2009-03-24 | At&T Intellectual Property I, L.P. | Methods for providing communications services |
US7467219B2 (en) * | 2003-11-24 | 2008-12-16 | At&T Intellectual Property I, L.P. | Methods for providing communications services |
US7216127B2 (en) * | 2003-12-13 | 2007-05-08 | International Business Machines Corporation | Byte stream organization with improved random and keyed access to information structures |
US7237184B2 (en) * | 2003-12-18 | 2007-06-26 | Microsoft Corporation | Data property promotion system and method |
CN1635492A (zh) * | 2003-12-30 | 2005-07-06 | 皇家飞利浦电子股份有限公司 | 一种xml数据的压缩与解压缩方法及装置 |
US7873663B2 (en) * | 2004-01-13 | 2011-01-18 | International Business Machines Corporation | Methods and apparatus for converting a representation of XML and other markup language data to a data structure format |
US7454696B2 (en) * | 2004-04-09 | 2008-11-18 | International Business Machines Corporation | Method and apparatus for stream based markup language post-processing |
ATE532142T1 (de) * | 2004-03-16 | 2011-11-15 | Microdasys Inc | Inhaltsüberwachung für xml |
US7664759B2 (en) * | 2004-05-18 | 2010-02-16 | Hewlett-Packard Development Company, L.P. | Method and system for storing self-descriptive tabular data with alphanumeric and binary values |
DE102004034004A1 (de) * | 2004-07-14 | 2006-02-09 | Siemens Ag | Verfahren zum Codieren eines XML-Dokuments, sowie Verfahren zum Decodieren, Verfahren zum Codieren und Decodieren, Codiervorrichtung, Decodiervorrichtung und Vorrichtung zum Codieren und Decodieren |
US7627589B2 (en) * | 2004-08-10 | 2009-12-01 | Palo Alto Research Center Incorporated | High performance XML storage retrieval system and method |
DE102004043269A1 (de) * | 2004-09-07 | 2006-03-23 | Siemens Ag | Verfahren zur Codierung eines XML-basierten Dokuments |
DE102004044164A1 (de) * | 2004-09-13 | 2006-03-30 | Siemens Ag | Verfahren und Vorrichtung zur Kodierung von XML-Dokumenten |
US20060085737A1 (en) * | 2004-10-18 | 2006-04-20 | Nokia Corporation | Adaptive compression scheme |
US8533357B2 (en) | 2004-12-03 | 2013-09-10 | Microsoft Corporation | Mechanism for binding a structured data protocol to a protocol offering up byte streams |
US7412649B2 (en) * | 2005-01-24 | 2008-08-12 | International Business Machines Corporation | Viewing and editing markup language files with complex semantics |
US7444345B2 (en) * | 2005-02-15 | 2008-10-28 | International Business Machines Corporation | Hierarchical inherited XML DOM |
US20060182129A1 (en) * | 2005-02-16 | 2006-08-17 | Mutch Karl N | Distributed markup and processing apparatus and method |
KR100660028B1 (ko) * | 2005-02-23 | 2006-12-20 | 인천대학교 산학협력단 | 데이터베이스 개념 구조에 기반한 xml 트리의 색인 및질의 방법 |
US8346737B2 (en) * | 2005-03-21 | 2013-01-01 | Oracle International Corporation | Encoding of hierarchically organized data for efficient storage and processing |
JP5026407B2 (ja) * | 2005-04-12 | 2012-09-12 | フランス・テレコム | ツリーデータ構造を処理する方法 |
US8667179B2 (en) | 2005-04-29 | 2014-03-04 | Microsoft Corporation | Dynamic utilization of condensing metadata |
ATE374400T1 (de) * | 2005-06-21 | 2007-10-15 | Research In Motion Ltd | Automatisierte auswahl und aufnahme einer nachrichtensignatur |
US8239558B2 (en) * | 2005-06-27 | 2012-08-07 | Core Wireless Licensing, S.a.r.l. | Transport mechanisms for dynamic rich media scenes |
US20070055629A1 (en) * | 2005-09-08 | 2007-03-08 | Qualcomm Incorporated | Methods and apparatus for distributing content to support multiple customer service entities and content packagers |
US7565506B2 (en) * | 2005-09-08 | 2009-07-21 | Qualcomm Incorporated | Method and apparatus for delivering content based on receivers characteristics |
US8528029B2 (en) | 2005-09-12 | 2013-09-03 | Qualcomm Incorporated | Apparatus and methods of open and closed package subscription |
US8893179B2 (en) * | 2005-09-12 | 2014-11-18 | Qualcomm Incorporated | Apparatus and methods for providing and presenting customized channel information |
US20070078944A1 (en) * | 2005-09-12 | 2007-04-05 | Mark Charlebois | Apparatus and methods for delivering and presenting auxiliary services for customizing a channel |
US8156232B2 (en) | 2005-09-12 | 2012-04-10 | Rockwell Automation Technologies, Inc. | Network communications in an industrial automation environment |
US8571570B2 (en) * | 2005-11-08 | 2013-10-29 | Qualcomm Incorporated | Methods and apparatus for delivering regional parameters |
US8533358B2 (en) * | 2005-11-08 | 2013-09-10 | Qualcomm Incorporated | Methods and apparatus for fragmenting system information messages in wireless networks |
US8600836B2 (en) | 2005-11-08 | 2013-12-03 | Qualcomm Incorporated | System for distributing packages and channels to a device |
CN101369268B (zh) * | 2007-08-15 | 2011-08-24 | 北京书生国际信息技术有限公司 | 一种文档库系统中文档数据的存储方法 |
US7747942B2 (en) * | 2005-12-20 | 2010-06-29 | American Express Travel Related Services Company, Inc. | System and method for obtaining a markup language template through reversing engineering |
US8842660B2 (en) * | 2006-03-31 | 2014-09-23 | Microsoft Corporation | VoIP variable metadata |
US8228824B2 (en) * | 2006-04-06 | 2012-07-24 | Microsoft Corporation | VoIP contextual information processing |
US20070253407A1 (en) * | 2006-05-01 | 2007-11-01 | Microsoft Corporation | Enhanced VoIP services |
US20070270126A1 (en) * | 2006-05-18 | 2007-11-22 | Microsoft Corporation | Authentication of a digital voice conversation |
US20070274293A1 (en) * | 2006-05-26 | 2007-11-29 | Microsoft Corporation | Archiving VoIP conversations |
US20070280225A1 (en) * | 2006-05-31 | 2007-12-06 | Microsoft Corporation | Extended services and recommendations |
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 |
US20080222504A1 (en) * | 2007-02-26 | 2008-09-11 | Nokia Corporation | Script-based system to perform dynamic updates to rich media content and services |
JP4830936B2 (ja) * | 2007-03-23 | 2011-12-07 | カシオ電子工業株式会社 | 印刷システム、及び該システムに使用するホスト機器 |
US7917515B1 (en) * | 2007-03-26 | 2011-03-29 | Lsi Corporation | System and method of accelerating processing of streaming data |
US7933933B2 (en) * | 2007-07-30 | 2011-04-26 | Oracle International Corporation | Fast path loading of XML data |
US8250115B2 (en) * | 2007-08-10 | 2012-08-21 | International Business Machines Corporation | Method, apparatus and software for processing data encoded as one or more data elements in a data format |
US7865488B2 (en) * | 2007-11-28 | 2011-01-04 | International Business Machines Corporation | Method for discovering design documents |
US20090138491A1 (en) * | 2007-11-28 | 2009-05-28 | Sandeep Chowdhury | Composite Tree Data Type |
US7865489B2 (en) * | 2007-11-28 | 2011-01-04 | International Business Machines Corporation | System and computer program product for discovering design documents |
US20100049727A1 (en) * | 2008-08-20 | 2010-02-25 | International Business Machines Corporation | Compressing xml documents using statistical trees generated from those documents |
US20100083083A1 (en) * | 2008-09-30 | 2010-04-01 | Apple Inc. | Compressed table format |
FR2936623B1 (fr) * | 2008-09-30 | 2011-03-04 | Canon Kk | Procede de codage d'un document structure et de decodage, dispositifs correspondants |
US8443278B2 (en) | 2009-01-02 | 2013-05-14 | Apple Inc. | Identification of tables in an unstructured document |
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 |
DE102009015734A1 (de) * | 2009-03-31 | 2010-10-07 | Siemens Aktiengesellschaft | Komprimierungsverfahren, Dekomprimierungsverfahren, Komprimierungseinheit, Dekomprimierungseinheit sowie komprimiertes Dokument |
US9124448B2 (en) * | 2009-04-04 | 2015-09-01 | Oracle International Corporation | Method and system for implementing a best efforts resequencer |
US8661083B2 (en) * | 2009-04-04 | 2014-02-25 | Oracle International Corporation | Method and system for implementing sequence start and increment values for a resequencer |
US8254391B2 (en) * | 2009-04-04 | 2012-08-28 | Oracle International Corporation | Method and system for performing blocking of messages on errors in message stream |
US8578218B2 (en) * | 2009-04-04 | 2013-11-05 | Oracle International Corporation | Method and system for implementing a scalable, high-performance, fault-tolerant locking mechanism in a multi-process environment |
US20100254388A1 (en) * | 2009-04-04 | 2010-10-07 | Oracle International Corporation | Method and system for applying expressions on message payloads for a resequencer |
EP2242273A1 (en) | 2009-04-14 | 2010-10-20 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Transmission scheme for text-based information |
CN101557399A (zh) * | 2009-05-20 | 2009-10-14 | 深圳市汇海科技开发有限公司 | 一种xmpp协议传输数据压缩与解压缩方法 |
CN101902489B (zh) * | 2009-06-01 | 2013-04-17 | 华为技术有限公司 | 一种消息发送方法、处理方法、客户端、路由器和系统 |
FR2949883B1 (fr) * | 2009-09-10 | 2011-10-07 | Canon Kk | Procede de codage et de decodage d'un document structure, dispositifs correspondants |
KR102481529B1 (ko) | 2010-04-13 | 2022-12-23 | 지이 비디오 컴프레션, 엘엘씨 | 평면 간 예측 |
KR101549644B1 (ko) | 2010-04-13 | 2015-09-03 | 지이 비디오 컴프레션, 엘엘씨 | 샘플 영역 병합 |
TWI666882B (zh) | 2010-04-13 | 2019-07-21 | 美商Ge影像壓縮有限公司 | 在樣本陣列多元樹細分中之繼承技術 |
HUE057597T2 (hu) | 2010-04-13 | 2022-05-28 | Ge Video Compression Llc | Videó kódolás képek többes fa struktúrájú alosztásainak használatával |
CA2706743A1 (en) * | 2010-06-30 | 2010-09-08 | Ibm Canada Limited - Ibm Canada Limitee | Dom based page uniqueness indentification |
CN102096706B (zh) * | 2011-01-05 | 2013-03-06 | 北京大学 | 一种变步长xml编码方法 |
US8442998B2 (en) | 2011-01-18 | 2013-05-14 | Apple Inc. | Storage of a document using multiple representations |
US9111327B2 (en) | 2011-01-18 | 2015-08-18 | Apple Inc. | Transforming graphic objects |
CN103688532B (zh) * | 2011-07-29 | 2018-05-04 | 索尼公司 | 流式传输分发装置和方法、流式传输接收装置和方法、流式传输系统 |
DE102011112076A1 (de) * | 2011-09-01 | 2013-03-07 | Heidelberger Druckmaschinen Ag | Verfahren zum Erzeugen eines Druckproduktes |
US8862897B2 (en) | 2011-10-01 | 2014-10-14 | Oracle International Corporation | Increasing data security in enterprise applications by using formatting, checksums, and encryption to detect tampering of a data buffer |
US20140359431A1 (en) * | 2011-12-12 | 2014-12-04 | Motorola Solutions, Inc. | Effectively communicating large presence documents within high latency and lossy network environments |
US9723091B1 (en) * | 2012-11-09 | 2017-08-01 | Noble Systems Corporation | Variable length protocol using serialized payload with compression support |
US9063916B2 (en) * | 2013-02-27 | 2015-06-23 | Oracle International Corporation | Compact encoding of node locations |
CN104104575B (zh) * | 2013-04-03 | 2019-01-29 | 腾讯科技(深圳)有限公司 | 一种即时通讯群的通讯方法及系统 |
US9628107B2 (en) | 2014-04-07 | 2017-04-18 | International Business Machines Corporation | Compression of floating-point data by identifying a previous loss of precision |
US9959299B2 (en) | 2014-12-02 | 2018-05-01 | International Business Machines Corporation | Compression-aware partial sort of streaming columnar data |
US10909078B2 (en) | 2015-02-25 | 2021-02-02 | International Business Machines Corporation | Query predicate evaluation and computation for hierarchically compressed data |
US20170099350A1 (en) * | 2015-10-05 | 2017-04-06 | Tobesoft Co., Ltd | Apparatus and method for transmitting mass data |
CN106021199B (zh) * | 2016-05-13 | 2019-02-15 | 中国农业银行股份有限公司 | 一种面向业务数据的字符串报文处理方法和装置 |
US10652300B1 (en) | 2017-06-16 | 2020-05-12 | Amazon Technologies, Inc. | Dynamically-generated encode settings for media content |
US11989569B2 (en) * | 2018-04-11 | 2024-05-21 | NanoVMs, Inc. | Unikernel provisioning |
US10506388B1 (en) | 2018-06-27 | 2019-12-10 | Harris Global Communications, Inc. | Efficient short message compression |
RU2762398C2 (ru) * | 2019-12-03 | 2021-12-21 | Владимир Дмитриевич Мазур | Способ передачи двоичных данных в стандартном звуковом медиапотоке |
US11244126B2 (en) | 2019-12-19 | 2022-02-08 | Datamax-O'neil Corporation | Systems and methods for encoding and decoding data |
CN113659993B (zh) * | 2021-08-17 | 2022-06-17 | 深圳市康立生物医疗有限公司 | 免疫批次数据处理方法、装置、终端及可读存储介质 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5375068A (en) * | 1992-06-03 | 1994-12-20 | Digital Equipment Corporation | Video teleconferencing for networked workstations |
US5991279A (en) | 1995-12-07 | 1999-11-23 | Vistar Telecommunications Inc. | Wireless packet data distributed communications system |
ATE233449T1 (de) | 1995-12-07 | 2003-03-15 | Vistar Telecomm Inc | Drahtloses verteiltes datenpaketübertragungssystem |
KR19990072122A (ko) | 1995-12-12 | 1999-09-27 | 바자니 크레이그 에스 | 실시간 영상 전송 방법 및 장치 |
US5835730A (en) * | 1996-07-31 | 1998-11-10 | General Instrument Corporation Of Delaware | MPEG packet header compression for television modems |
JPH10143403A (ja) | 1996-11-12 | 1998-05-29 | Fujitsu Ltd | 情報管理装置および情報管理プログラム記憶媒体 |
GB9624001D0 (en) * | 1996-11-19 | 1997-01-08 | Digi Media Vision Ltd | Method and apparatus for modifying tables of data |
JP3193947B2 (ja) * | 1997-01-08 | 2001-07-30 | 株式会社ディジタル・ビジョン・ラボラトリーズ | データ送信システム及びデータ送信方法 |
US5790196A (en) * | 1997-02-14 | 1998-08-04 | Mitsubishi Electric Information Technology Center America, Inc. | Adaptive video coding method |
WO1999021337A2 (en) * | 1997-10-17 | 1999-04-29 | Koninklijke Philips Electronics N.V. | Method of encapsulation of data into transport packets of constant size |
US6453355B1 (en) * | 1998-01-15 | 2002-09-17 | Apple Computer, Inc. | Method and apparatus for media data transmission |
EP0973129A3 (en) * | 1998-07-17 | 2005-01-12 | Matsushita Electric Industrial Co., Ltd. | Motion image data compression system |
AU1517499A (en) * | 1998-11-27 | 2000-06-19 | Kent Ridge Digital Labs | Method and apparatus for content-linking supplemental information with time-sequence data |
US6393456B1 (en) | 1998-11-30 | 2002-05-21 | Microsoft Corporation | System, method, and computer program product for workflow processing using internet interoperable electronic messaging with mime multiple content type |
US6490370B1 (en) * | 1999-01-28 | 2002-12-03 | Koninklijke Philips Electronics N.V. | System and method for describing multimedia content |
JP2000259667A (ja) * | 1999-03-12 | 2000-09-22 | Hitachi Information Systems Ltd | 文書データ登録システム,文書データ登録方法およびこの方法を実現するためのプログラムを記録した記録媒体 |
US6763499B1 (en) * | 1999-07-26 | 2004-07-13 | Microsoft Corporation | Methods and apparatus for parsing extensible markup language (XML) data streams |
US6966027B1 (en) * | 1999-10-04 | 2005-11-15 | Koninklijke Philips Electronics N.V. | Method and apparatus for streaming XML content |
US6883137B1 (en) * | 2000-04-17 | 2005-04-19 | International Business Machines Corporation | System and method for schema-driven compression of extensible mark-up language (XML) documents |
US6970935B1 (en) * | 2000-11-01 | 2005-11-29 | International Business Machines Corporation | Conversational networking via transport, coding and control conversational protocols |
KR100537199B1 (ko) * | 2004-05-06 | 2005-12-16 | 주식회사 하이닉스반도체 | 동기식 메모리 소자 |
-
2000
- 2000-10-06 AU AUPR0634A patent/AUPR063400A0/en not_active Abandoned
-
2001
- 2001-10-05 JP JP2002533104A patent/JP4574114B2/ja not_active Expired - Fee Related
- 2001-10-05 EP EP01973848A patent/EP1323064B1/en not_active Expired - Lifetime
- 2001-10-05 DE DE60129232T patent/DE60129232T2/de not_active Expired - Lifetime
- 2001-10-05 WO PCT/AU2001/001257 patent/WO2002029602A1/en active IP Right Grant
- 2001-10-05 AT AT01973848T patent/ATE366441T1/de not_active IP Right Cessation
- 2001-10-05 US US10/363,431 patent/US7647552B2/en not_active Expired - Fee Related
- 2001-10-05 KR KR1020037004869A patent/KR100566019B1/ko not_active IP Right Cessation
- 2001-10-05 CN CNB018155480A patent/CN1244062C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP1323064B1 (en) | 2007-07-04 |
KR20030061819A (ko) | 2003-07-22 |
KR100566019B1 (ko) | 2006-03-31 |
AUPR063400A0 (en) | 2000-11-02 |
CN1244062C (zh) | 2006-03-01 |
US7647552B2 (en) | 2010-01-12 |
EP1323064A1 (en) | 2003-07-02 |
DE60129232T2 (de) | 2008-03-06 |
US20040028049A1 (en) | 2004-02-12 |
JP2004510279A (ja) | 2004-04-02 |
CN1455901A (zh) | 2003-11-12 |
WO2002029602A1 (en) | 2002-04-11 |
ATE366441T1 (de) | 2007-07-15 |
EP1323064A4 (en) | 2005-08-10 |
DE60129232D1 (de) | 2007-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4574114B2 (ja) | 文書の送受信方法、xml符号化方法及びその装置、並びにxml復号方法 | |
JP3880517B2 (ja) | 文書処理方法 | |
KR101011663B1 (ko) | Xml 문서의 구조적 스트리밍을 위한 방법 및 장치 | |
JP4405146B2 (ja) | Mpeg−7インスタンス用の二進フォーマット | |
JP2003511770A (ja) | Xmlコンテンツをストリーミングする方法及び装置 | |
JP2004318188A (ja) | 構造化データの受信プログラム | |
AU2001293514B2 (en) | XML encoding scheme | |
AU2001293514A1 (en) | XML encoding scheme | |
JP2004180258A (ja) | 構造化データの送信装置 | |
JP2004318775A (ja) | 構造化データの受信装置 | |
JP2004318771A (ja) | 構造化データの受信装置 | |
JP2004320689A (ja) | 構造化データの受信装置 | |
JP2004318776A (ja) | 構造化データの受信装置 | |
JP2004318772A (ja) | 構造化データの受信装置 | |
JP2004320685A (ja) | 構造化データの受信装置 | |
JP2004318774A (ja) | 構造化データの受信装置 | |
JP2004320690A (ja) | 構造化データの受信装置 | |
JP2004318193A (ja) | 構造化データの受信プログラム | |
JP2004318777A (ja) | 構造化データの受信装置 | |
JP2004318773A (ja) | 構造化データの受信装置 | |
JP2004318189A (ja) | 構造化データの受信プログラム | |
JP2004320684A (ja) | 構造化データの受信装置 | |
JP2004320691A (ja) | 構造化データの受信装置 | |
JP2004318778A (ja) | 構造化データの受信装置 | |
JP2004320686A (ja) | 構造化データの受信装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061027 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061226 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070126 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070328 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20070418 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20070914 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100628 |
|
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: 20100818 |
|
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: 20130827 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |