JP2006209745A - 文書のバイナリシリアライゼーションの方法およびシステム - Google Patents

文書のバイナリシリアライゼーションの方法およびシステム Download PDF

Info

Publication number
JP2006209745A
JP2006209745A JP2005368841A JP2005368841A JP2006209745A JP 2006209745 A JP2006209745 A JP 2006209745A JP 2005368841 A JP2005368841 A JP 2005368841A JP 2005368841 A JP2005368841 A JP 2005368841A JP 2006209745 A JP2006209745 A JP 2006209745A
Authority
JP
Japan
Prior art keywords
xml
binary
document
information items
serializing
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.)
Pending
Application number
JP2005368841A
Other languages
English (en)
Inventor
Aaron A Stern
エー スターン アーロン
Erik B Christensen
ビー.クリステンセン エリック
J Coulson Michael
ジェー.クールソン マイケル
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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2006209745A publication Critical patent/JP2006209745A/ja
Pending legal-status Critical Current

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]

Abstract

【課題】効率的に処理を行う。
【解決手段】コンピュータベースシステムでXML文書を処理する方法に、複数の情報アイテムのそれぞれを複数のバイナリデータユニットの対応する1つに関連付けることと、複数の情報アイテムのうちの1つまたは複数を含むXML情報セットに関連するXML文書を提供することが含まれる。この方法に、XML文書をバイナリXMLフォーマットにシリアライズすること、またはバイナリXMLフォーマットからXML文書をデシリアライズすることが含まれる。シリアライズすることに、XML情報セットの1つまたは複数の情報アイテムをそれに対応する1つまたは複数のバイナリデータユニットに変換することが含まれる。デシリアライズすることに、バイナリXMLフォーマットの1つまたは複数のバイナリデータユニットをそれに対応する1つまたは複数の情報アイテムに変換することが含まれる。
【選択図】図1

Description

本発明は、電子文書を処理する方法およびシステムに関し、具体的には、伝送またはストレージをサポートするために電子文書をシリアライズし、デシリアライズする方法およびシステムに関する。
XML(eXtensible Markup Language)を使用して、統合されたプログラマブルなワールドワイドウェブ(「ウェブ」)ベースサービスの実装を容易にすることができる。XML関連メッセージの交換を介して、サービスは、その機能を記述することができ、他のサービス、アプリケーション、またはデバイスがこれらの機能を簡単に呼び出せるようにすることができる。SOAP(Simple Object Access Protocol)が、この目標を進めるために開発された。SOAPは、インターネットを介して異なるオブジェクトモデルに橋を渡すXMLベースの機構であり、ウェブサービスが違いに通信するためのオープンな機構を提供する。
XMLは、構造化されたデータを記述するフォーマットを提供し、形において、タグベース言語であるハイパーテキストマークアップ言語(HTML)に似たマークアップ言語である。しかし、HTMLと異なって、XMLタグは、事前定義ではなく、HTMLで可能なものより高い柔軟性を可能にする。タグおよびタグの間の構造的関係を定義する機能を提供することによって、XMLは、豊かな構造のウェブ文書の作成をサポートする。
XML標準規格には、XML文書と呼ばれるデータオブジェクトのクラスが記述され、特に、それを処理するコンピュータプログラムの挙動が記述されている。XML文書は、エンティティと呼ばれるストレージユニットからなり、エンティティには、解析済みデータまたは未解析データのいずれかが含まれる。解析済みデータは、文字からなり、その一部は文字データを形成し、一部はマークアップを形成する。マークアップは、文書のストレージレイアウトおよび論理構造の記述をエンコードする。XMLは、ストレージレイアウトおよび論理構造に制約を課す機構を提供する。
XML「要素」は、開始タグ、終了タグ、およびタグの間に含まれる情報または内容を含む構造的コンストラクト(construct)である。「開始タグ」は、「<タグ名>」としてフォーマットされ、「終了タグ」は、「</タグ名>」としてフォーマットされる。
XML文書では、開始タグと終了タグを、他の開始タグと終了タグの中で入れ子にすることができる。特定の要素内に現れるすべての要素は、その特定の要素の終了タグの前に現れる開始タグおよび終了タグを有する。これによって、ツリー風の構造が定義される。各要素は、このツリー内のノードを形成し、潜在的に、「子」ノードまたは「枝」ノードを有する。子ノードは、「親」ノードの開始タグと終了タグの間に現れるXML要素を表す。
XMLの1つの例示的な使用が、クライアントコンピュータとサーバコンピュータなどの異なるエンティティの間での、要求および応答の形のデータの交換である。クライアントは、情報に関する要求またはあるサーバアクションに関する要求を生成することができ、サーバは、その情報を含むか、あるアクションが実行されたかどうかを確認する、クライアントへの応答を生成することができる。これらの要求および応答の内容は、XML文書すなわちXMLの仕様に従う文字のシーケンスの形である。
SOAP仕様では、XMLエンコードされたデータを渡す均一な形が定義されている。SOAP仕様では、基礎になる通信プロトコルとしてHTTPを使用するリモートプロシージャコール(RPC)を実行する形も定義されている。
SOAPメッセージは、必須のSOAPエンベロープ、任意選択のSOAP Header、および必須のSOAP Bodyを含むXML文書である。SOAPは、サーバ、サービス、コンポーネント、およびオブジェクトのメソッドを呼び出すためのプロトコル仕様を提供する。SOAPは、メソッド呼出し機構としてXMLおよびHTTPを使用する既存の実線を体系化したものである。SOAP仕様は、ファイヤウォール/プロキシフィルタを容易にする少数のHTTPヘッダを要求する。SOAP仕様は、メソッドパラメータ、戻り値、および例外を表すのに使用されるXMLボキャブラリも要求する。
SOAPは、特定のアプリケーションがどのオペレーティングシステム、オブジェクトモデル、または言語を使用するかにかかわらず、アプリケーションがXMLベースメッセージを使用してウェブを介して通信するオープンで拡張可能な形を提供する。SOAPは、標準XMLで単純な拡張可能メッセージフォーマットを定義し、したがってHTTPを介してそのXMLメッセージを送る形を提供することによって、万能の通信を容易にする。
「XML infoset」は、XML文書の抽象表現である(例えば、非特許文献1参照)。XML文書のinfoset(情報アイテムを含む)は、文書のフォーマットに対する制限なしに、XML文書の情報内容とみなすことができる。
例のinfosetを続ける。例のinfoset「Book」のルート要素に、「Price」と呼ばれる1つの属性が含まれる。この「Price」属性は、「35」という値を有する。このルート要素には、「War and Peace」という値を有する型Textの1つの内容ノードも含まれる。XML標準規格(例えば、非特許文献2参照)は、infosetをテキストとしてシリアライズする方法を指定している。例えば、例のinfosetを、次のようにシリアライズすることができる。
Figure 2006209745
伝送またはストレージのために、このテキストXMLは、通常、対応するテキストを表すバイトにエンコードされる。いくつかのテキスト変換標準規格に、ASCII Unicode、UTF8、およびUTF16が含まれる。例えば、上のテキストXML文書は、ASCIIエンコーディングを介して次のように伝送することができる。
第1バイトは、60(「<」のASCIIコード)として伝送される
第2バイトは、66(「B」のASCIIコード)として伝送される
第3バイトは、111(「o」のASCIIコード)として伝送される
第4バイトは、111(「o」のASCIIコード)として伝送される
第5バイトは、107(「k」のASCIIコード)として伝送される
など
したがって、通常、XML infosetのインメモリ表現は、テキストXMLストリングにシリアライズされ、その後、このテキストストリングの文字が、伝送のために対応するバイトにエンコードされる。逆のプロセスでは、受け取られたテキスト関連XMLバイトが、対応するテキストXMLストリングにデコードされ、このテキストXMLストリングが、デシリアライズされ、ストアされて、XML infosetのインメモリ表現が提供される。
XML infosetのインメモリ表現は、論理的には存在するが、物理的に存在する必要はない。すなわち、infosetに関連する情報アイテムは、シリアライズの前に物理位置に存在する必要がない。
例えば、オブジェクト指向言語ベースのプログラムに、XML文書をシリアライズし、かつ/またはデシリアライズするコードを含めることができる。例えば、上の例をシリアライズするオブジェクト指向コードを、次のようなものとすることができる。
Figure 2006209745
「Xml.Writer」メソッドは、テキストXML文書を表す次のバイトを作る。
Figure 2006209745
XML標準規格は、XML情報アイテムの比較的簡単なシリアライゼーションおよび人間可読のテキストのシリアライズされた文書を提供する。しかし、この文書は、冗長であり、処理に非効率的である。
米国特許第6,823,369号明細書 米国特許第6,671,853号明細書 米国特許第6,643,652号明細書 米国特許出願番号第2004/0243800号 http://www.w3.org/TR/2004/REC-xml-infoset-20040204 http://www.w3.org/TR/REC-xml/ Bosworth et al., "XML, Soap and Binary Data ," printed from website http://www.xml.com/lpt/a/2003/02/06/binaryxml.html; February 24, 2003, pp. 1-8 Box, "A Guide to Developing and Running Connected System With Indigo, "printed from website http://msdn.microsoft.com/msdnmag/issues/04/01/indigo/?print=true; 1/2005, pp.1-10
従来のシステムには上述したような種々の問題があり、さらなる改善が望まれている。
本発明は、このような状況に鑑みてなされたもので、その目的とするところは、効率的に処理を行う文書のバイナリシリアライゼーションの方法およびシステムを提供することにある。
本発明のいくつかの実施形態は、電子ベース文書を、シリアライズされた文書のサイズを減らし、処理の速度を高め、かつ/または配布に必要な時間を減らすことができる形でシリアライズし、かつ/またはデシリアライズすることができるという理解から生じた。これらの実施形態のいくつかで、XML文書は、情報アイテムをバイナリデータユニット識別子に関連付ける辞書の使用を介してバイナリフォーマットにシリアライズされる。この識別子は、例えば、既知のストリング、繰り返されるストリング、繰り返される構造、プリミティブ型、および/またはコンストラクトを識別することができる。
いくつかの実施形態は、静的なおよび/または動的な辞書を利用する。静的辞書に、事前定義の関連を含めることができる。動的辞書に、インバンドのおよび/またはアウトオブバンドの関連を含めることができる。インバンド関連に、シリアライズされたXML文書を含めることができ、アウトオブバンド関連は、例えば、アウトオブバンド辞書エントリを利用するシリアライズされたXML文書と独立に送信することができる。
したがって、本発明のいくつかの実施形態は、例えばXML文書およびSOAPメッセージ用の、シリアライズされた文書のサイズ、解析、および生成速度の改善に関して標準XMLの人間可読性と冗長性を交換する代替のシリアライゼーションフォーマットを提供する。
これらの実施形態のいくつかは、XMLエンコーディング/デコーディングプロセスで冗長な情報を削減または除去することによって、XML文書のバイナリ仮想表現の効率的なストリーミングを達成する。冗長性は、XML全体の内容の事前の知識なしで除去することができる。シリアライズされた文書は、まだ、テキストXML文書との直接の対応を有することができる。すなわち、バイナリXMLフォーマットの一実施形態は、その呼出しがテキストXMLリーダーまたはテキストXMLライタへの呼出しに似て見えるリーダーソフトウェアおよびライタソフトウェアの使用を可能にする。呼出しのユーザは、基礎になるバイナリシリアライゼーションプロセスを知る必要がない。
したがって、本発明の一実施形態は、コンピュータベースシステムでXML文書を処理する方法を特徴とする。この方法には、情報アイテムを対応するバイナリデータユニットに関連付けることと、1つまたは複数の情報アイテムを含むXML情報に関連するXML文書を提供することが含まれる。この方法には、さらに、XML文書をバイナリXMLフォーマットにシリアライズすること、またはバイナリXMLフォーマットからXML文書をデシリアライズすることが含まれる。シリアライズすることに、XML情報セットの1つまたは複数の情報アイテムをそれに対応する1つまたは複数のバイナリデータユニットに変換することが含まれる。デシリアライズすることに、バイナリXMLフォーマットの1つまたは複数のバイナリデータユニットをそれに対応する1つまたは複数の情報アイテムに変換することが含まれる。
本発明のもう1つの実施形態は、少なくとも1つのプロセッサでの実行のためのプログラムをエンコードされたコンピュータ可読媒体を特徴とする。このプログラムは、その少なくとも1つのプロセッサで実行された時に、XML文書を処理する上述の方法を実行することができる。
添付図面は、原寸通りに描かれることを意図されたものではない。図では、様々な図面に図示された同一のまたはほぼ同一のコンポーネントのそれぞれが、類似する符号によって表されている。明瞭にするために、すべてのコンポーネントにすべての図面で符号を付けているわけではない。
本発明によれば、効率的に処理を行うことができる。
以下、図面を参照して本発明を適用できる実施形態を詳細に説明する。
本発明は、次の説明または図面に示されたコンポーネントの構成および配置の詳細への適用に制限されない。本発明は、他の実施形態が可能であり、様々な形で実践または実行することができる。また、本明細書で使用される語法および用語法は、説明のためであり、制限的とみなしてはならない。「including」、「comprising」または「having」、「containing」、「involving」およびその変形の本明細書での使用は、その後にリストされた品目およびその同等物ならびに追加の品目を含むことを意味する。
まず図1を参照して、本発明の一実施形態のある広い原理を説明する。図1は、本発明の一実施形態による、XML文書を処理する方法100の流れ図である。方法100には、情報アイテムを対応するバイナリデータユニットに関連付けること110、XML文書を提供すること120、およびXML文書をバイナリXMLフォーマットにシリアライズすること130または情報アイテムと対応するバイナリデータユニットとの間の関連の使用を介してバイナリXMLフォーマットからXML文書をデシリアライズすること140が含まれる。
XML文書をバイナリXMLフォーマットにシリアライズすること130には、XML情報セットの1つまたは複数の情報アイテムをそれに対応する1つまたは複数のバイナリデータユニットに変換することが含まれる。同様に、バイナリXMLフォーマットからXML文書をデシリアライズすること140には、バイナリXMLフォーマットの1つまたは複数のバイナリデータユニットをそれに対応する1つまたは複数の情報アイテムに変換することが含まれる。情報アイテムに、XML技術の当業者に既知の情報アイテムのタイプおよび他のすべての適切なタイプを含めることができる。下で詳細に説明するように、情報アイテムとバイナリデータユニットの間の関連は、とりわけ、XML文書のより効率的な処理およびコンパクトなシリアライゼーションを提供することができる。
情報アイテムに、例えば、下で詳細に説明する他の適当な情報アイテムの中でも、プリミティブ型、ストリング、テキスト、およびXMLコンストラクトを含めることができる。便宜のために、情報アイテムと対応するバイナリデータユニットとの間の関連を、辞書に含めることができる。しかし、用語「辞書」の使用は、特定のフォーマットまたはストレージの選択に制限されない。
辞書を、シリアライゼーション中に参照として使用して、対応するバイナリデータユニットへの情報アイテムの変換をサポートすることができる。適当なバイナリXMLフォーマットおよび情報アイテムとバイナリデータユニットとの間の関連の辞書の例を、下で詳細に説明する。
情報セットおよびその情報アイテムは、W3C(World Wide Web Consortium)によって確立されたinfosetの標準規格(例えば、非特許文献1参照)に従うものとすることができる。明確に形成されたXML文書のinfosetに、少なくとも、文書情報アイテムおよび複数の他の情報アイテムが含まれ、情報アイテムは、XML文書のある部分の抽象記述である。各情報アイテムは、関連する名前付きプロパティのセットを有する。
これから、図2から4を参照し、バイナリXMLフォーマットのいくつかの実施形態を説明する。便宜のために、バイナリデータユニットの表現およびバイナリデータユニット自体を、それに関連する情報アイテムの識別子として交換可能に参照する。しかし、本発明の実施形態に従って実際にシリアライズされたバイナリXML文書に、その表現に対応するバイナリデータユニットの実際の2進数が含まれることを理解されたい。
さらに、バイナリXMLフォーマットの実施形態のコンポーネントが、標準XMLコンポーネントに類似する機能を果たす場合に、標準XML命名規約が、通常、この「発明を実施するための最良の形態」で使用される。したがって、XML技術の当業者は、要素および属性などのコンポーネントの機能と関連する値とを理解するであろう。
次の説明に、様々なタイプの情報アイテムの辞書エントリの例が含まれる。これらの例は、本発明の実施形態で使用することができるが、実施形態をこの例示的な辞書エントリの使用に制限するのではなく、例示的であることを意図されたものである。本発明のいくつかの実施形態は、これらの関連のすべてより少数を使用し、他の実施形態には追加の関連が含まれる。さらに、一部のバイナリデータユニットに割り当てられた特定の値の少なくとも一部は、任意である。
まず、一部のバイナリデータユニットの説明のコンテキストを提供するために、バイナリXMLフォーマットされた文書の構造の実施形態を、図2を参照して説明する。図2は、この例示的な実施形態による、バイナリXMLフォーマットに対応する要素200のブロック図である。この実施形態では、文書に、1つの要素200だけが含まれる。しかし、要素200に、他の要素を含めることができる。
要素200に、StartElement構造220、0個以上のAttribute構造230、および0個以上のElementContents構造240が含まれる。要素200は、標準XML要素に類似する構造を有する。例えば、対応するXML要素は、「<ELEM...>...</ELEM>」として現れることができる。
要素200は、サブセットノード210から始まり、EndElementノード250で終わることができる。EndElementノード250が存在しない場合に、要素200は、要素200の終りを暗示する特殊なテキストノードを含むElementContents構造240で終わることができる。
要素200を、下で詳細に説明する。情報アイテムとバイナリデータユニットの間の、要素200の内容のシリアライズおよびデシリアライズに使用できる関連のいくつかの例を、次に説明する。
ストリング−本発明の一実施形態は、ストリングを対応するストリング識別子に関連付け、このストリング識別子は、シリアライズされた文書にバイナリデータユニットとして現れる。ストリングは、辞書に静的にまたは動的に置くことができる。静的辞書アイテムは、XML文書のシリアライゼーションの前に定義されるアイテムである。この場合に、シリアライザおよびデシリアライザは、必要になる前に静的辞書アイテムに合意するか、それを供給されることができる。
対照的に、動的辞書エントリは、シリアライゼーションプロセス中に生成される。あるストリングに初めて出会った時に、シリアライザは、例えば、そのストリングに識別子番号を割り当て、そのストリングおよび関連する新しいストリング識別子番号の両方をシリアライズされた文書に置くことができる。受取り側のデシリアライザは、後の参照のために、新しいストリングおよび関連する識別子番号を辞書に置くことができる。その後、同一のストリングの繰り返される出現を、識別子のバイナリデータユニットだけの使用を介してすなわち、ストリングを含めることなく、シリアライズすることができる。
このプロセスの例として、ストリング「Hello」が、このストリングの最初の使用時に続けて4回現れる、すなわち、「Hello」「Hello」「Hello」「Hello」であるものとすることができる。このシーケンスを、「Hello=7,7,7,7」と変換することができ、ここで、新しいストリング「Hello」に7という識別子番号が動的に割り当てられている。方法100について、番号7をバイナリ形で表して、ストリング「Hello」に関連するバイナリデータユニットを供給する。
あるストリングが、シリアライズされた文書に含まれる時に、そのストリングを、標準XMLフォーマットまたは他の適切なフォーマットの使用を介してシリアライズすることができる。例えば、ストリングを、そのストリングのバイト単位の長さを示すMB32エンコードされた整数(下で説明する)と、それに続く、UTF8エンコーディングでそのストリングを表す示された個数のバイトとしてシリアライズすることができる。UTF8は、データシリアライゼーション技術の当業者に既知のエンコーディング標準規格である。他の適切なエンコーディングフォーマットを使用することができる。バイト数は、0とすることができる。
本発明の一実施形態は、ストリング識別子に関する使用の次のルールを有する。実際のストリングが、ストリング識別子と共に含まれない場合に、そのストリングは、前に定義されていなければならない。例えば、そのストリングは、文書内でまたはアウトオブバンド機構を介して以前に定義されたものとすることができる。アウトオブバンド機構には、例えば、文書のシリアライゼーションプロセスの外部で作られる、事前定義の静的辞書エントリまたは動的辞書エントリが含まれる。
さらに、ストリングの定義のスコープは、現在のXML要素だけではなく、少なくとも文書の終りまで固定することができる。ストリング定義は、その再定義を防ぐために固定することができる。ストリング識別子のバイナリデータユニットの最後のビットが、その識別子が静的辞書から導出されたか否かを示すことができる。この情報は、例えば、文書のシリアライゼーション中の静的辞書内のストリングの再定義を防ぐのに使用することができる。
プリミティブ型−本発明のいくつかの実施形態は、プリミティブ型のデータとそのデータを識別するバイナリデータユニットの間の関連を利用する。XMLの当業者に既知のように、基本型または単純型とも呼ばれるプリミティブ型に、数値定数と、例えば数および文字を含む、単一の値として表すことができる他のデータが含まれる。当業者に既知のプリミティブ型の例に、文字、8ビット符号付き整数、符号付きshort整数、符号付き整数、符号付きlong整数、10進数、実数(単精度)、実数(倍精度)、およびブール値が含まれる。これらの実施形態は、1つまたは複数のプリミティブ型を、そのプリミティブ型を識別するバイトおよびそのプリミティブ型の値を識別するバイナリ表現を含むバイナリデータユニットに関連付ける。本発明の一実施形態に関する一部のプリミティブ型およびそれに関連するバイナリデータユニットを、図4aを参照して下で説明する。
効率的な内部表現を有するデータ−いくつかの実施形態で、効率的な内部表現を有するデータが、その内部表現に関連付けられる。すなわち、そのようなデータは、それ自体に「変換」される。
例えば、そのようなデータは、ストリングを生成するためにまずテキストとしてエンコードされる必要がない。日付および時刻が、通常は効率的な内部表現を有するデータの例である。例えば、日付「10/14/2004」を、10個の文字「1」、「0」、「/」、「1」、「4」、「/」、「2」、「0」、「0」、および「4」をバイナリバイト(例えば、1文字ごとに8ビットまたは16ビットを必要とする)に変換することによって、バイナリフォーマットにシリアライズすることができる。日付の通常の内部表現は、64ビットを有し、したがって、文書に現れる日付を、メモリ内でその64ビット表現としてシリアライズすることができ、サイズと処理時間の両方が節約される。
図3を参照すると、いくつかの実施形態で、データの内部表現の不要な部分が、関連するバイナリデータユニットで除去される。例えば、普通の実践は、整数を4バイトのデータによって表すことを必要とする、すなわち、4バイトのメモリを必要とする可能性がある。しかし、多くの一般的に使用される整数は、1バイトまたは2バイトに収めることができる小さい数である。1つの実施形態では、整数を、本明細書で「MB32エンコーディング」と称するエンコーディング方式を介して関連するバイナリデータユニットに変換する。このエンコーディングでは、関連する整数のバイナリ表現をもたらすのに必要なスペースが減る。
図3は、整数のMB32エンコーディングの一実施形態に使用されるスペースを示すサイズ範囲の表である。図からわかるように、未使用バイトが、シリアライズされた整数から除去されている。他の適切な効率的変換が、データストレージ技術の当業者に明白である。
当業者に既知のように、すべての32ビット整数が、1個から32個の関連するビットを有することができる。例えば、10進数の3すなわち2進数の11は、2つの関連するビットを有し、数54すなわち2進数の110110は、6つの関連するビットを有する。本発明の一実施形態では、MB32エンコーディング方式が、関連するビットだけをエンコードする。さらに、MB32整数の各バイトを、最上位ビットを先にエンコードすることができ、MB32整数の最下位バイト(LSB)を、先に保管することができる。
一実施形態で、MB32整数の各バイトに、必要な場合に0を用いてパディングすることができる7つの関連するビットが含まれ、1つの「継続」ビットすなわち最上位ビットが含まれる。継続ビットがセットされている場合に、MB32エンコーディングされた整数のもう1つのバイトが、現在のバイトに続く。MB32整数は、32ビット整数にデコードすることができ、MB32バイトからのすべての関連するビットを、次のバイトを含めなければならないことを示すのに継続ビットを使用することによって連結することができる。
XMLコンストラクト−次に、図4a、4b、および4cを参照すると、いくつかの実施形態で、一部のバイナリデータユニットは、XMLコンストラクトに関連する情報アイテムを識別する。したがって、繰り返して現れるXMLコンストラクトを、ショートカットとしての表現すなわちそれに関連するバイナリデータユニットを介してバイナリフォーマットでより効率的にシリアライズすることができる。コンストラクトを識別するバイナリデータユニットを、本明細書では「特殊ノード」と呼ぶ。
図4aは、本発明の一実施形態による、特殊ノードタイプと、バイナリデータユニットの対応するバイト値との表である。特殊ノードの例を、次に説明する。
プレフィックス関連コンストラクト−XMLには、「プレフィックス」に関連するコンストラクトが含まれる。例えば、要素<colors:blue>は、名前「blue」およびプレフィックス「colors」を有する。このコンストラクトおよび関連する情報をシリアライズするために、1つの従来のシリアライゼーションに、ストリング「colors」および「blue」を有するプレフィックス要素ノードが含まれる。
この例では<c:blue>などの1文字プレフィックスを使用して、スペースを節約することができる。しかし、本発明の一実施形態では、ショートカット特殊ノード(「cを用いてプレフィックスされた要素ノード」)が、ストリング「blue」を用いてシリアライズされ、したがって、シリアライゼーションで1つのストリングすなわちストリング「colors」が除去される。いくつかの実施形態に、aからzまでのすべての文字に関する類似する特殊ノードが含まれる。図4aの表にリストされた、あるプレフィックス関連特殊ノードの説明を、図2をもう一度参照して次に示す。
要素200のStartElement構造220は、要素200の先頭に関連する。StartElement構造220は、複数の形のうちの1つを有することができる。これらの形は、開始要素関連特殊ノードを利用することができる。
これらの特種ノードは、様々な開始要素関連コンストラクトの効率的なシリアライゼーションをサポートする。そのようなコンストラクトは、この例示的な例では、プレフィックスの存在、プレフィックスの事前定義(ある場合に)、要素200のローカル名、要素200のローカル名に対応するストリングの事前定義(ある場合に)に関連する。
例えば、StartElement構造220に、プレフィックスなしの非事前定義ストリングであるローカル名(特殊ノード「ShortElement」を使用する);非事前定義プレフィックスおよび非事前定義ストリングであるローカル名(特殊ノード「Element」を使用する);プレフィックスなしの事前定義ストリングであるローカル名(特殊ノード「ShortDictionaryElement」およびストリングを識別するバイナリデータユニットを使用する);事前定義のプレフィックスおよび事前定義ストリングであるローカル名(特殊ノード「PrefixDictionaryElementA」から「PrefixDictionaryElementZ」のうちの1つおよびストリングを指定するバイナリデータユニットを使用する);または非事前定義プレフィックスおよび事前定義ストリングであるローカル名(特殊ノード「DictionaryElement」を使用する);ならびに事前定義プレフィックスおよび事前定義ストリングでないローカル名(特殊ノード「PrefixElementA」から「PrefixElementZ」のうちの1つおよびストリングを使用する)を含めることができる。
属性関連構造−XMLでは、要素「属性」を定義し、「値」を割り当てることができる。例えば、テキストXMLコード「<book author=smith>」では、「smith」という値が、「book」要素の「author」属性に割り当てられている。この文書を従来の形でシリアライズするためには、属性割り当てノードが、通常、ストリング「author」および「smith」と共に含まれる。本発明の一実施形態では、特殊ノードが、「author」属性のために作成されて、例えば、この属性に対して行われる各割り当てと共にストリング「author」をシリアライズする必要をなくす。
図2をもう一度参照すると、要素200のAttribute構造230は、XML属性に対応して機能する。標準XMLと同様に、Attribute構造230は、例えば、値−名前対を要素200に関連付けるのに使用することができる。開始要素関連コンストラクトについて上で説明した例に似て、属性関連コンストラクトは、図4aの表にリストされたものなどの属性関連特殊ノードを利用することができる。
例えば、「AttributeContent」という値を「LocalName」属性に割り当てるために、Attribute構造230に、StartElement220に関して上で説明したものに似た複数の特殊ノードのうちの1つを含めることができる。例えば、下で説明するように、図4aの表に、8つの属性関連特殊ノードがあり、そのうちの4つがxmlns関連である。他の4つの属性関連特殊ノードは、例えば、次の情況で使用することができる:プレフィックスがなく、属性の事前定義ストリングがない場合(ShortAttribute)、非事前定義プレフィックスがあり、事前定義ストリングがない場合(Attribute)、プレフィックスがなく、名前空間の事前定義ストリングがある場合(ShortDictionaryAttribute)、および非事前定義プレフィックスがあり、事前定義ストリングがある場合(DictionaryAttribute)。
XMLで一般的に発生する属性関連コンストラクトの1つが、「xmlns」の値すなわち名前空間属性の割り当ての構造である。テキストXMLでは、これが、例えば、名前空間値「http://books.org」を要素「book」の「xmlns」属性に割り当てるための「<book xmlns=http://books.org>」として現れる可能性がある。従来、この例では、このコンストラクトおよび関連する値を伝送するために、「属性割り当てノード」に、通常、ストリング「xmlns」および「http://books.org」の両方が続く。
しかし、図4aからわかるように、名前空間属性コンストラクトは、1つまたは複数のショートカット名前空間割り当て特殊ノードによって表すことができる。特殊ノードの1つおよびストリング「http://books.org」がシリアライズされた文書に含まれる時に、1つのストリングすなわち「Xmlns」の包含が、除去される。すなわち、バイナリフォーマットシリアライゼーションに、特殊ノードと、インターネットアドレスに関連するストリングが含まれる。
「xmlns」の値を名前空間属性に割り当てるために、attribute構造230に、例えば、図4aの表に示された4つの名前空間割り当て特殊ノードのうちの1つを含めることができる。この4つのショートカットxmlns関連特殊ノードは、次の情況で使用することができる:プレフィックスがなく、名前空間事前定義ストリングがない場合(ShortXmlnsAttribute);非事前定義プレフィックスがあり、事前定義ストリングがない場合(XmlnsAttribute);プレフィクスがなく、事前定義ストリングがある場合(ShortDictionaryXmlnsAttribute);および非事前定義プレフィックスがあり、事前定義ストリングがある場合(DictionaryXmlnsAttribute)。
テキスト関連コンストラクト−図4bは、本発明の一実施形態による、テキスト関連情報アイテム(上で説明したいくつかのプリミティブ型を含む)に関連する特殊ノードタイプおよびバイナリデータユニットの対応するバイト値の表である。この表には、次のプリミティブ型の関連が含まれる:ブール、数値(複数の変形)、リスト、文字、テキスト、およびバイナリデータ。
図4bのテキスト関連特殊ノードは、下で詳細に説明する特殊なEndElementノードを含む対で提供される。テキストは、そのテキストのタイプに依存する形で処理することができる。例えば、一実施形態は、次のタイプを含むテキストの関連を提供する:空のストリング;事前定義のストリング;任意のストリングまたはデータ;および、日付/時刻関連ストリングなどの特定のタイプのストリング。
空のストリングは、図4bの例に示されているように、147のバイト値を有するバイナリデータユニットによって識別される特殊ノード「EmptyText」に関連付けることができる。辞書のストリングは、「DictionaryText」特殊ノード(148のバイト値)とそれに続く、辞書内の関連するストリングを識別するMB32エンコードされた整数(ここでは、バイナリデータユニット)によって示すことができる。
「Chars...Text」特殊ノードおよび「Binary...Text」特殊ノードは、任意のストリングおよびデータをサポートする。「Chars...Text」特殊ノードは、英数字文字に先行し、この英数字文字は、例えばUTF8エンコーディングを介してエンコードすることができる。「Binary...Text」特殊ノードは、バイナリデータに先行する。
この特殊ノードに、次が含まれる:シリアライズされたバイナリフォーマット文書に含まれる時に、それに続くバイト数を表す符号なしバイトと、テキストまたはデータに関連するバイトとが続く「Chars8Text」または「Bytes8Text」;それに続くバイト数を表す2バイト(符号なし、LSBが先に保管される)と、実際のバイトとが続く「Chars16Text」または「Bytes16Text」;およびそれに続くバイト数を表す4バイト(符号付き、LSBが先に保管され、負の値は許容されない)と、実際のバイトとが続く「Chars32Text」または「Bytes32Text」。「Bytes...Text」特殊ノードには、エンコードの必要なしに、バイナリデータの直接表現を続けることができる。
この実施形態には、関連する数値をより効率的にシリアライズするために、一般的に現れる数値のためのショートカット特殊ノードが含まれる。例えば、数0は、従来、通常は数0と共に「整数ノード」を使用することによってシリアライズされる。しかし、本明細書で説明している例示的な実施形態では、図4bの表に示されている特殊ノード「ZeroText」(128のバイナリデータユニット値を有する)を使用して、0の値をシリアライズする。文字「0」および数「0」を、同一の特殊ノードによって表すことができる。というのは、これらが、通常、XML文書で同一の意味を有し、したがって交換可能に使用されるからである。
図4cは、図4bに示されたテキスト関連特殊ノードの一部の特性を示す表である。これには、上で説明した「0」テキストならびに「true」および「false」、整数、浮動小数点、10進ストリング、日付および時刻、リストなどの特定のテキストストリング用の特殊ノードが含まれる。
上で述べたように、図4bのテキスト関連特殊ノードに、関連する「...TextWithEndElement」ノードが含まれる。これらのそれぞれが、関連する特殊ノードに対応する形、例えば「DictionaryTextWithEndElement」および「Int16TextWithEndElement」を有する。
図2をもう一度参照すると、これらの構造は、要素200内の最後のElementContents構造240内で使用することができる。「...WithEndElement」特殊ノードを使用して、これがEndElementノード250の代わりの最後のElementContents構造240であることを示すことができる。例えば、次の2つの形の両方が、<foo>3</foo>をシリアライズしたものである。
ShortElement special node, String("foo"), Int8Text special node, byte(3), EndElement special node
ShortElement special node, String("foo"), Int8TextWithEndElement special node, byte(3)
したがって、関連する「...Text」特殊ノードの代わりに「...WithEndElement」特殊ノードが使用された時には、EndElementノード250を使用する必要がない。
本明細書で提供した特殊ノードの説明に鑑みて、バイナリデータユニットとして使用される多数の他の特殊ノードが、XML技術の当業者に明白になる。
要素200に、複数のElementContents構造240が含まれる場合に、これらの構造240を連結して、シリアライゼーション効率をさらに改善することができる。例えば、次の4つの例のElementContents構造240が、要素200に含まれる場合に、
1:CharsText "ABC"
2:Element "FOO"
3:CharsText "X"
4:CharsText "YZ"
これらを、「<ELEM>ABC<FOO/>XYZ</ELEM>」として連結することができる。
図4bのテキスト関連特殊ノードの少なくとも一部は、連結を利用することができる。例えば、Chars8Text(「A」)とそれに続くChars8Text(「BC」)を、ストリングとして読み取られる時に「ABC」に連結することができる。いくつかの実施形態で、日付/時刻ストリングおよび値0ストリングなどの特定のストリング型が、隣接ノードと連結されない。例えば、Int8Text(23)とそれに続くChars8Text(「0」)は、整数を読み取ることを試みる時に、数230としてデシリアライズされない。
いくつかの実施形態で、連続的なリストは、連結されず、その別々のアイデンティティを保存する。例えば、List(l,2)およびList(3,4)は、整数の配列を読み取ることを試みる時に、{1,2,3,4}としてデシリアライズされない。
ElementContents構造240は、本発明の一実施形態で、3つの形のうちの1つを有する。ElementContents構造240自体は、要素(要素200に埋め込まれる)とすることができ、テキストまたは他のデータを含むことができ、コメントに対応するストリングを含むコメントノードとすることができる。
最初に背景技術の節で説明した例のXML文書に戻ると、本発明のバイナリXMLフォーマットの一実施形態では、この例の文書が次のようにシリアライズされる。
第1バイト:0(「単純要素の始め」特殊ノードのバイナリデータユニットの)
第2バイト:4(要素名に関するシリアライズされるストリングの長さ)
第3/第4/第5/第6バイト:66、111、111、107(UTF8エンコーディングでの「B」、「o」、「o」、「k」)
第7バイト:5(「単純属性の始め」特殊ノードのバイナリデータユニットの)
第8バイト:5(属性名に関する伝送されるストリングの長さ)
第9〜第13バイト:「P」、「r」、「I」、「c」、「e」(UTF8エンコーディングでの)
第14バイト:131(「small整数テキスト」特殊ノードのバイナリデータユニットの)
第15バイト:35(整数属性の値。文字「3」および「5」としてエンコードする必要はない)
など。
従来、いくつかの実施形態で、infosetのシリアライゼーションを制御するオブジェクト指向コードは、テキストシリアライゼーションに関する従来のメソッド呼出しと同一のパターンに従うメソッド呼出しを有する。したがって、方法100は、プログラマがバイナリシリアライザおよび/またはバイナリデシリアライザへの呼出しによって呼び出される処理を知ることを必要とせずに、XML文書の直接バイナリシリアライゼーションを提供することができる。例えば、「バイナリXMLライタ」への関数呼出しのセットは、次のように見える可能性がある。
Figure 2006209745
これは、上の背景技術の節で説明したものに似て見える可能性があるが、この「バイナリXMLライタ」は、上で説明したバイナリフォーマットされたXMLを作るために方法100を実装する。
本発明は、特定のプロトコルおよび/またはフォーマットに制限されない。本発明の原理を実装するのに使用することができる例のプロトコルの1つが、SOAPである。
サブセット−本発明のいくつかの実施形態では、サブセットは、シリアライズされた文書の一部である。サブセットは、例えば、文書に含まれる1つまたは複数のトークンによって識別される。具体的に言うと、サブセットは、自己完結的である。すなわち、サブセットは、サブセットのデシリアライゼーションを可能にするためにサブセットの外部の内容を参照することをしない。
任意選択のサブセットノード210は、存在する場合に、本発明の一実施形態により、要素200およびその内容(存在する場合に、含まれる要素のツリー全体を含む)がサブセットであることを示す。図4aの表に関連する例示的な実施形態では、サブセットノードが、15というバイナリ値を有するバイナリデータユニットによって識別される。サブセットノードを、「タグ」または「トークン」と呼ぶこともできる。
いくつかの実施形態で、サブセットは、開始タグおよび終了タグによって境界を画定される。いくつかの実施形態は、終了タグを利用しない。例えば、StartElement構造220のプレフィックスとしてサブセットノード210を利用する一実施形態は、サブセットの終りを示す特殊ノードを必要としない。この実施形態では、要素の終りが、その要素に対応するサブセットの終りを示す。
本発明の一実施形態によるサブセットは、サブセットが持つ意味をまったく失わずに、文書の残りと独立に処理できる、XML文書の一部である。サブセットは、サブセットの外部の内容を参照しない。
サブセットは、スコープ内にある可能性があるすべての辞書を含む現在のスコープと独立な文書のセクションを生成し、保護する機構を提供することによって、デジタル署名および検証の効率的な機構を提供することができる。具体的に言うと、署名または検証されるバイトは、メモリ内にシーケンシャルに存在することができ、したがって、これらを、例えば現在のシリアライゼーション/デシリアライゼーションスコープを知らない消費者に転送することができる。
一実施形態で、XMLサブセットは、2つのトークンすなわち、サブセットの始めをマークするトークンおよび終りをマークするトークンによって、シリアライズされた文書内で示される。これによって、例えば、リーダー/ライタが、サブセットに出会った時に現在の辞書をリセットして、サブセットの処理が既存スコープに対する依存性を有しないことを保証することができる。終了トークンを突き止めたならば、以前の辞書状態を復元することができる。この実施形態は、バイナリXMLフォーマットをデシリアライズするリーダーが、消費者がサブセットを絶対に要求しない場合に、サブセットの存在をバイナリXMLフォーマット内の文書の消費者に不可視にするアプリケーションプログラミングインタフェース(API)を公開することを選択できるようにする。
サブセットは、文書のうちの、サブセットを含む特殊な部分として扱うことができる。本発明のいくつかの実施形態で、サブセットノードなどのサブセット境界をまたぐ時に、特殊な処理が呼び出される。これらの実施形態のいくつかで、この特殊な処理は、バイナリシリアライズされた文書のリーダーの責任である。
上で説明したように、1つまたは複数のサブセットを含むバイナリXMLフォーマットされた文書を受け取るユーザは、その1つまたは複数のサブセットの存在を知る必要がない。したがって、文書を、サブセットと共にまたはサブセットなしでシリアライズすることができ、後に、デシリアライズして同一のオリジナル文書を公開することができる。すなわち、サブセットの使用は、オリジナルXML文書を変更しない。バイナリフォーマットされたデータを消費するリーダーまたは他のエンティティだけが、サブセットの存在を認識する必要がある。
同様に、シリアライズされた文書にサブセットが含まれる場合に、リーダー(例えば、デシリアライザ)は、サブセット化が存在した場所を公開することができる。したがって、例えば、リーダーは、受け取ったバイナリフォーマットされた文書を、例えばソフトウェアプログラムによる処理のためにオリジナルXML文書に変換することができ、そのリーダーは、次に、そのソフトウェアプログラムに、XML文書のうちでサブセット化された部分を示すこともできる。
サブセットは、次の有利な使用のうちの1つまたは複数を有することができる。サブセットを、XML文書から「取り除き」、別のシステムに送ることができる。受け取るシステムは、サブセットを読み取るのに必要な情報のすべてがサブセット内に同封されているので、サブセットの信頼性を確信することができる。
サブセットがデジタル署名されている場合に、サブセットの外部の署名されていないアイテムを変更することによってサブセットの意味を改竄することができないことを保証することができる。やはり、これは、サブセットが、それ自体の外部のものをまったく参照しないことを保証できるからである。サブセットは、入れ子にすることができ、方法100に関して上で説明した特徴をサポートすることができる。
シリアライザおよびデシリアライザは、サブセットに出会った時に特殊な機能を実行することができる。例えば、一実施形態で、シリアライザは、サブセットをシリアライズする時に、サブセットの外部の辞書識別子を発行しない。また、一実施形態で、シリアライザは、サブセットのシリアライズ中に新しいストリングを発行する時に、サブセットの外部の辞書に内容を追加しない。さらに、シリアライザは、サブセットから出る時に外側の辞書を復元することができる。一実施形態で、シリアライザは、入れ子になったサブセットについて辞書のスタックを維持する。デシリアライザは、シリアライザの機能に対応する機能を実行することができる。
一実施形態で、サブセットは、親要素で定義された名前空間プレフィックスを使用しないか、使用の前に名前空間プレフィックスを再定義する。サブセットは、XML文書の処理に影響する標準XML属性を利用しない。例えば、一実施形態で、XML技術の当業者に既知の、xml:lang属性およびxml:space属性ならびに属性に使用される修飾名は、再発行される。この実施形態で、ElementContents構造240に使用される修飾名は、親要素で定義された名前空間プレフィックスを使用しないか、使用の前に名前空間プレフィックスを再定義する。
したがって、一実施形態で、シリアライザは、シリアライザが知るサブセット内のデータに影響する可能性があるサブセットの外部で定義された情報のすべてを再発行する。これには、名前空間プレフィックス宣言と、xml:langおよびxml:spaceなどの標準XML属性を含めることができるが、これに制限はされない。
一実施形態で、デシリアライザは、サブセットに入る時に、デシリアライザが知っている、サブセット内のデータに影響する可能性があるサブセットの外部で定義された情報のすべてを忘れる。これには、入れ子にされたサブセットに関する、名前空間プレフィックス宣言と、xml:langおよびxml:spaceなどの標準XML属性を含めることができるが、これに制限はされない。デシリアライザは、サブセットから出る時に、シリアライザが知っているサブセット内のデータに影響する可能性があるサブセットの外部で定義された情報のすべてをリコールすることができる。デシリアライザは、デシリアライザが知っているサブセット内のデータに影響する可能性があるサブセットの外部で定義されたすべての情報のスタックを保つことができる。
サブセットに出会った時に、現在定義されている辞書識別子のいずれかまたはすべてを、アウトオブバンドで定義されたものも含めて、とっておくことができる。サブセットから出る時に、サブセットの内部で定義された辞書アイテムを忘れることができ、前の辞書アイテムを復元することができる。
次に、図5を参照して、文書をシリアライズするためにサブセットを利用する方法の例を説明する。図5は、本発明の一実施形態による、XML文書を処理する方法500の流れ図である。方法500に、1つまたは複数の情報アイテムを含むXML情報セットに関連するXML文書を提供すること520と、XML文書をシリアライズされたフォーマットにシリアライズすること530が含まれる。シリアライズされたフォーマットに、サブセットノードを含む少なくとも1つのサブセット要素が含まれる。サブセットノードは、その少なくとも1つのサブセット要素を、XML文書の残りと独立にデシリアライズできることを示す。
方法100に似て、方法500には、情報アイテムを対応するバイナリデータユニットに関連付けること510を含めることができ、情報アイテムと対応するバイナリデータユニットとの間の関連の使用を介して、シリアライズされたフォーマットからXML文書をデシリアライズすること540を含めることができる。
上で説明したサブセット要素などのサブセットに、そのサブセット要素をデシリアライズするのに必要なすべての内容を含めることができる。サブセット要素は、XML文書の残りと独立にデシリアライズすることができ、かつ/または抽出し550、文書の残りなしで送信することができる。さらに、いくつかの実施形態で、サブセット要素のスコープは、そのサブセット要素を含むXML文書のスコープと独立である。サブセット要素は、上で説明したように、サブセットの追加の特徴を有することができる。
本発明の範囲内の実施形態に、それに保管されたコンピュータ実行可能命令またはデータ構造を担持するか有するコンピュータ可読媒体が含まれる。そのようなコンピュータ可読媒体は、汎用のまたは特殊目的のコンピュータによってアクセスできるすべての使用可能な媒体とすることができる。制限ではなく例として、そのようなコンピュータ可読媒体に、RAM、ROM、EEPROM、CD−ROMまたは他の光学ディスクストレージ、磁気ディスクストレージまたは他の磁気ストレージデバイス、あるいは、コンピュータ実行可能命令またはデータ構造の形の所望のプログラムコードを担持または保管するのに使用でき、汎用のまたは特殊目的のコンピュータによってアクセスできるすべての他の媒体などの物理的コンピュータ可読媒体を含めることができる。
情報が、ネットワークまたは別の通信接続(ハードワイヤード、無線、またはハードワイヤードもしくは無線の組合せのいずれか)を介してコンピュータに転送または供給される時に、コンピュータは、その接続をコンピュータ可読媒体とみなすことができる。したがって、すべてのそのような接続を、コンピュータ可読媒体と呼ぶことができる。上記の組合せも、コンピュータ可読媒体の範囲に含まれなければならない。コンピュータ実行可能命令に、例えば、汎用コンピュータ、特殊目的コンピュータ、または特殊目的処理デバイスにある機能または機能のグループを実行させるすべての命令およびデータが含まれる。コンピュータ実行可能命令は、例えば、バイナリ、アセンブリ言語などの中間フォーマット命令、またはソースコードとすることができる。
当業者は、本発明を、パーソナルコンピュータ、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースのまたはプログラマブルなコンシューマエレクトロニクス、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、および類似物を含む多数のタイプのコンピュータシステム構成を有するネットワークコンピューティング環境で実践できることを諒解するであろう。本発明は、通信ネットワークを介してリンクされた(ハードワイヤードリンク、無線リンク、またはハードワイヤードリンクもしくは無線リンクの組合せのいずれかによって)ローカルおよびリモートの処理デバイスによってタスクが実行される分散コンピューティング環境で実践することもできる。分散コンピューティング環境では、プログラムモジュールを、ローカルとリモートの両方のメモリストレージデバイスに置くことができる。
コンピュータは、1つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク化された環境で動作することができる。リモートコンピュータのそれぞれは、別のパーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、または他の一般的なネットワークノードとすることができ、通常は、上で説明した要素の多くまたはすべてが含まれる。論理接続には、例えば、制限ではなく例として提示される、ローカルエリアネットワーク(LAN)および広域ネットワーク(WAN)を含めることができる。そのようなネットワーキング環境は、オフィス全体または企業全体のコンピュータネットワーク、イントラネット、およびインターネットでありふれたものである。
コンピューティングシステムは、ソフトウェアを使用して1つまたは複数の機能を実行することができる1つまたは複数のハードウェアコンポーネントとして広義に定義することができる。コンピューティングシステムの例に、デスクトップコンピュータ、ラップトップコンピュータ、携帯情報端末(PDA)、電話機、または処理能力を有するすべての他のシステムもしくはデバイスが含まれる。
本発明のいくつかの実施形態は、SOAPエンベロープとして文書をシリアライズする。周知のように、SOAPエンベロープは、例えば、ハイパーテキスト転送プロトコル(HTTP)、HTTP Secure(HTTPS)、Simple Mail Transport Protocol(SMTP)、ユーザデータグラムプロトコル(UDP)、伝送制御プロトコル(TCP)、Bluetooth、または類似物などの複数のトランスポートプロトコルを介して伝送することができる。
したがって、本発明の少なくとも1つの実施形態の複数の態様を説明したので、当業者が、様々な代替形態、修正形態、および改良をたやすく思い浮かべることを諒解されたい。そのような代替形態、修正形態、および改良は、この開示の一部になることが意図され、本発明の趣旨および範囲に含まれることが意図されている。したがって、前述の説明および図面は、例としてのみのものである。
本発明の一実施形態による、XML文書を処理する方法を示す流れ図である。 本発明の一実施形態による、バイナリXMLフォーマットに対応する要素を示すブロック図である。 本発明の一実施形態による、整数のエンコーディングフォーマットを示す表の図である。 本発明の一実施形態による、特殊ノードタイプと、関連する特殊ノードを識別するバイナリデータユニットの対応するバイト値とを示す表の図である。 本発明の一実施形態による、特殊ノードタイプと、バイナリデータユニットの対応するバイト値とを示す表の図である。 図4bに示されたテキスト関連特殊ノードの一部の特性を示す表の図である。 本発明の一実施形態による、XML文書を処理する方法を示す流れ図である。
符号の説明
100 XML文書を処理する方法
210 サブセットノード
220 StartElement構造
230 Attribute構造
240 ElementContents構造
250 EndElementノード

Claims (20)

  1. コンピュータベースシステムでXML(extensible markup language)文書を処理する方法であって、
    複数の情報アイテムのそれぞれを複数のバイナリデータユニットの対応する1つに関連付けるステップと、
    複数の情報アイテムのうちの1つまたは複数を含むXML情報セットに関連するXML文書を提供するステップと、
    前記XML文書をバイナリXMLフォーマットにシリアライズするステップであって、シリアライズすることは、前記XML情報セットの前記1つまたは複数の情報アイテムをそれに対応する1つまたは複数のバイナリデータユニットに変換することを含む、シリアライズするステップと、
    前記XML文書を前記バイナリXMLフォーマットからデシリアライズするステップであって、デシリアライズすることは、前記バイナリXMLフォーマットの1つまたは複数のバイナリデータユニットをそれに対応する1つまたは複数の情報アイテムに変換することを含む、デシリアライズするステップと
    を備えることを特徴とする方法。
  2. シリアライズするステップは、まず前記1つまたは複数の情報アイテムをテキストXMLフォーマットに変換することなく、前記1つまたは複数の情報アイテムをそれに対応するバイナリデータユニットに変換することを含むことを特徴とする請求項1に記載の方法。
  3. デシリアライズするステップは、まず前記バイナリXMLフォーマットの前記1つまたは複数のバイナリデータユニットをテキストXMLフォーマットに変換することなく、前記1つまたは複数のバイナリデータユニットをそれに対応する情報アイテムに変換することを含むことを特徴とする請求項1に記載の方法。
  4. シリアライズするステップは、シリアライズされている現在の情報アイテムを超えた前記XML文書の前記1つまたは複数の情報アイテムのいずれの内容を知ることもなく実行されることを特徴とする請求項1に記載の方法。
  5. シリアライズするステップは、前記XML文書に関連する前記情報アイテムのうちの少なくともほとんどをまず収集することなく実行されることを特徴とする請求項4に記載の方法。
  6. シリアライズするステップは、前記1つまたは複数の情報アイテムのテキストXMLフォーマットへの変換に関連するシーケンスに対応するシーケンスで前記1つまたは複数の情報アイテムを変換することを含むことを特徴とする請求項1に記載の方法。
  7. 前記1つまたは複数の情報アイテムのうちの少なくとも1つは、バイナリストレージフォーマットを有し、関連付けることは、前記1つまたは複数の情報アイテムのうちの前記少なくとも1つをそのバイナリストレージフォーマットに関連付けることを含むことを特徴とする請求項1に記載の方法。
  8. 前記1つまたは複数の情報アイテムのうちの前記少なくとも1つは、数、文字、時刻、および日付を含むアイテムの群から選択されることを特徴とする請求項1に記載の方法。
  9. 前記1つまたは複数の情報アイテムは、1つまたは複数のストリングを含み、関連付けるステップは、前記1つまたは複数のストリングのそれぞれを1つまたは複数のストリング識別子のうちの対応する1つに関連付けることを含み、シリアライズするステップは、前記1つまたは複数のストリングをそれに対応するストリング識別子に変換することを含み、デシリアライズするステップは、前記1つまたは複数のストリング識別子をそれに対応する1つまたは複数のストリングに変換することを含むことを特徴とする請求項1に記載の方法。
  10. 前記1つまたは複数のストリング識別子のそれぞれは、数に関連することを特徴とする請求項9に記載の方法。
  11. シリアライズの前に、前記1つまたは複数のストリングの少なくとも一部とそれに対応する1つまたは複数のストリング識別子との間の関連に関する情報をシリアライジングユニットおよびデシリアライジングユニットに供給するステップをさらに備えることを特徴とする請求項9に記載の方法。
  12. シリアライズ中に、前記1つまたは複数のストリングの少なくとも一部とそれに対応する1つまたは複数のストリング識別子との間の関連に関する情報をシリアライジングユニットおよびデシリアライジングユニットに供給するステップをさらに備えることを特徴とする請求項9に記載の方法。
  13. 関連付けることは、前記XML文書のシリアライズ中に前記1つまたは複数のストリングの一部の前記関連を定義することと、前記部分の前記関連についてデシリアライジングユニットに通知するために、前記シリアライズされたXML文書に、前記1つまたは複数のストリングの前記一部とそれに対応する1つまたは複数のストリング識別子との両方を含めることとを含むことを特徴とする請求項9に記載の方法。
  14. 前記1つまたは複数の情報アイテムは、1つまたは複数のプリミティブ型を含み、関連付けることは、前記1つまたは複数のプリミティブ型のそれぞれを、対応する型識別子および対応する2進数に関連付けることを含むことを特徴とする請求項1に記載の方法。
  15. 前記1つまたは複数の情報アイテムは、1つまたは複数のXMLコンストラクトを含むことを特徴とする請求項1に記載の方法。
  16. 第1ユニットから第2ユニットに前記バイナリXMLフォーマットを伝送するステップをさらに備え、前記第1ユニットおよび前記第2ユニットは、それぞれ、プロセッサ、ストレージデバイス、クライアントコンピュータ、およびサーバを含むユニットタイプの群から選択されることを特徴とする請求項1に記載の方法。
  17. 前記第1ユニットは、前記XML文書をシリアライズし、前記第2ユニットは、前記XML文書をデシリアライズすることを特徴とする請求項16に記載の方法。
  18. 前記バイナリフォーマットの前記シリアライズされたXML文書は、前記XML文書に関連するテキストXML文書との直接の対応を有することを特徴とする請求項1に記載の方法。
  19. 前記XML文書は、SOAPエンベロープであることを特徴とする請求項1に記載の方法。
  20. 少なくとも1つのプロセッサで実行されるプログラムをエンコードされたコンピュータ読み取り可能な記録媒体であって、前記プログラムは、前記少なくとも1つのプロセッサで実行された時に、XML(extensible markup language)文書を処理する方法を実行し、前記方法は、
    複数の情報アイテムのそれぞれを複数のバイナリデータユニットの対応する1つに関連付けるステップと、
    複数の情報アイテムのうちの1つまたは複数を含むXML情報セットに関連するXML文書を提供するステップと、
    前記XML文書をバイナリXMLフォーマットにシリアライズするステップであって、シリアライズすることは、前記XML情報セットの前記1つまたは複数の情報アイテムをそれに対応する1つまたは複数のバイナリデータユニットに変換することを含む、シリアライズするステップと、
    前記XML文書を前記バイナリXMLフォーマットからデシリアライズするステップであって、デシリアライズすることは、前記バイナリXMLフォーマットの1つまたは複数のバイナリデータユニットをそれに対応する1つまたは複数の情報アイテムに変換することを含む、デシリアライズするステップと
    を備えることを特徴とするコンピュータ読み取り可能な記録媒体。
JP2005368841A 2005-01-25 2005-12-21 文書のバイナリシリアライゼーションの方法およびシステム Pending JP2006209745A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/042,555 US7441185B2 (en) 2005-01-25 2005-01-25 Method and system for binary serialization of documents

Publications (1)

Publication Number Publication Date
JP2006209745A true JP2006209745A (ja) 2006-08-10

Family

ID=36463489

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005368841A Pending JP2006209745A (ja) 2005-01-25 2005-12-21 文書のバイナリシリアライゼーションの方法およびシステム

Country Status (5)

Country Link
US (1) US7441185B2 (ja)
EP (1) EP1684191A3 (ja)
JP (1) JP2006209745A (ja)
KR (1) KR20060085907A (ja)
CN (1) CN1811753A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008048796A1 (en) * 2006-10-20 2008-04-24 Microsoft Corporation Processing an xml feed with extensible or non-typed elements
JP2012003763A (ja) * 2010-06-16 2012-01-05 Nhn Corp バイナリパケット中継システムおよび方法
KR20200131746A (ko) * 2019-05-14 2020-11-24 바이두 유에스에이 엘엘씨 Protobuf 기반 프로젝트들에 대한 일반 검증 방법

Families Citing this family (83)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7031987B2 (en) * 1997-05-30 2006-04-18 Oracle International Corporation Integrating tablespaces with different block sizes
US7350199B2 (en) * 2003-01-17 2008-03-25 Microsoft Corporation Converting XML code to binary format
US7571173B2 (en) * 2004-05-14 2009-08-04 Oracle International Corporation Cross-platform transportable database
US7702627B2 (en) * 2004-06-22 2010-04-20 Oracle International Corporation Efficient interaction among cost-based transformations
US7814042B2 (en) * 2004-08-17 2010-10-12 Oracle International Corporation Selecting candidate queries
US8346737B2 (en) * 2005-03-21 2013-01-01 Oracle International Corporation Encoding of hierarchically organized data for efficient storage and processing
KR20070116893A (ko) * 2005-03-30 2007-12-11 웰치알린인코포레이티드 복수의 네트워크 엘리먼트 사이의 정보 통신
US8788687B2 (en) 2006-10-04 2014-07-22 Welch Allyn, Inc. Dynamic medical object information base
US20060230339A1 (en) * 2005-04-07 2006-10-12 Achanta Phani G V System and method for high performance pre-parsed markup language
US8356053B2 (en) * 2005-10-20 2013-01-15 Oracle International Corporation Managing relationships between resources stored within a repository
US7730082B2 (en) 2005-12-12 2010-06-01 Google Inc. Remote module incorporation into a container document
US7730109B2 (en) * 2005-12-12 2010-06-01 Google, Inc. Message catalogs for remote modules
US8185819B2 (en) 2005-12-12 2012-05-22 Google Inc. Module specification for a module to be incorporated into a container document
US7725530B2 (en) 2005-12-12 2010-05-25 Google Inc. Proxy server collection of data for module incorporation into a container document
US7890853B2 (en) * 2006-02-13 2011-02-15 Nextair Corporation Apparatus and machine-readable medium for generating markup language representing a derived entity which extends or overrides attributes of a base entity
US7644062B2 (en) * 2006-03-15 2010-01-05 Oracle International Corporation Join factorization of union/union all queries
US7945562B2 (en) * 2006-03-15 2011-05-17 Oracle International Corporation Join predicate push-down optimizations
US7809713B2 (en) * 2006-03-15 2010-10-05 Oracle International Corporation Efficient search space analysis for join factorization
US20070244865A1 (en) * 2006-04-17 2007-10-18 International Business Machines Corporation Method and system for data retrieval using a product information search engine
US9460064B2 (en) * 2006-05-18 2016-10-04 Oracle International Corporation Efficient piece-wise updates of binary encoded XML data
EP2036003B1 (en) * 2006-06-30 2017-05-03 Leica Biosystems Imaging, Inc. Method for storing and retrieving large images via dicom
JP4855172B2 (ja) * 2006-07-31 2012-01-18 シャープ株式会社 生体情報測定装置、管理装置、および生体情報通信システム
US8185830B2 (en) * 2006-08-07 2012-05-22 Google Inc. Configuring a content document for users and user groups
US20090037935A1 (en) * 2006-08-07 2009-02-05 Shoumen Saha Updating The Configuration of Container Documents
US8407250B2 (en) 2006-08-07 2013-03-26 Google Inc. Distribution of content document to varying users with security customization and scalability
US8954861B1 (en) 2006-08-07 2015-02-10 Google Inc. Administrator configurable gadget directory for personalized start pages
US20080056152A1 (en) * 2006-09-05 2008-03-06 Sharp Kabushiki Kaisha Measurement data communication device, health information communication device, information acquisition device, measurement data communication system, method of controlling measurement data communication device, method of controlling information acquisition device, program for controlling measurement data communication device, and recording medium
US8255790B2 (en) * 2006-09-08 2012-08-28 Microsoft Corporation XML based form modification with import/export capability
US9183321B2 (en) 2006-10-16 2015-11-10 Oracle International Corporation Managing compound XML documents in a repository
US7827177B2 (en) * 2006-10-16 2010-11-02 Oracle International Corporation Managing compound XML documents in a repository
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
US8909599B2 (en) * 2006-11-16 2014-12-09 Oracle International Corporation Efficient migration of binary XML across databases
US7974993B2 (en) * 2006-12-04 2011-07-05 Microsoft Corporation Application loader for support of version management
US7779139B2 (en) * 2007-04-30 2010-08-17 Microsoft Corporation Normalization of binary data
US7933933B2 (en) * 2007-07-30 2011-04-26 Oracle International Corporation Fast path loading of XML data
US8291310B2 (en) * 2007-08-29 2012-10-16 Oracle International Corporation Delta-saving in XML-based documents
US8090731B2 (en) * 2007-10-29 2012-01-03 Oracle International Corporation Document fidelity with binary XML storage
US8438152B2 (en) * 2007-10-29 2013-05-07 Oracle International Corporation Techniques for bushy tree execution plans for snowstorm schema
US8250062B2 (en) 2007-11-09 2012-08-21 Oracle International Corporation Optimized streaming evaluation of XML queries
US8126841B2 (en) * 2008-02-20 2012-02-28 International Business Machines Corporation Storage and retrieval of variable data
US8145794B2 (en) 2008-03-14 2012-03-27 Microsoft Corporation Encoding/decoding while allowing varying message formats per message
FR2929778B1 (fr) * 2008-04-07 2012-05-04 Canon Kk Procedes et dispositifs de codage et de decodage binaire iteratif pour documents de type xml.
FI123499B (fi) * 2008-05-05 2013-06-14 Sensinode Oy Menetelmä ja laite viestien prosessoimiseksi
US20090305200A1 (en) * 2008-06-08 2009-12-10 Gorup Joseph D Hybrid E-Learning Course Creation and Syndication
FR2936623B1 (fr) * 2008-09-30 2011-03-04 Canon Kk Procede de codage d'un document structure et de decodage, dispositifs correspondants
US10943030B2 (en) 2008-12-15 2021-03-09 Ibailbonding.Com Securable independent electronic document
CN101477532B (zh) * 2008-12-23 2011-09-28 北京畅游天下网络技术有限公司 实现数据存储、读取的方法、装置及系统
FR2945363B1 (fr) * 2009-05-05 2014-11-14 Canon Kk Procede et dispositif de codage d'un document structure
WO2011011718A2 (en) * 2009-07-24 2011-01-27 Welch Allyn, Inc. Configurable health-care equipment apparatus
US8656055B2 (en) * 2009-08-25 2014-02-18 Oracle International Corporation Protocol wrapper and serializer/deserializer for facilitating data exchanges
US8255372B2 (en) 2010-01-18 2012-08-28 Oracle International Corporation Efficient validation of binary XML data
WO2011103886A1 (en) * 2010-02-26 2011-09-01 Nec Europe Ltd. A method for processing a soap message within a network and a network
KR101654571B1 (ko) 2010-07-21 2016-09-06 삼성전자주식회사 데이터 전송 장치 및 방법
USD635681S1 (en) 2010-07-22 2011-04-05 Welch Allyn, Inc. Patient-monitor housing
USD632397S1 (en) 2010-07-22 2011-02-08 Welch Allyn, Inc. Portions of a patient-monitor housing
USD671222S1 (en) 2010-07-22 2012-11-20 Welch Allyn, Inc. Module for a patient-monitor or the like
US8149148B1 (en) 2010-10-08 2012-04-03 Microsoft Corporation Local binary XML string compression
CN102004762B (zh) * 2010-11-05 2015-10-07 中国电信股份有限公司 生成电子书的方法和装置、以及下载电子书的方法和装置
US10756759B2 (en) 2011-09-02 2020-08-25 Oracle International Corporation Column domain dictionary compression
KR20130030681A (ko) 2011-09-19 2013-03-27 한국전자통신연구원 구조화된 데이터의 부호화 및 복호화 방법과 그 장치
US10261980B2 (en) * 2012-08-08 2019-04-16 Fletcher James Method and system for persisting add-in data in documents
CN103684760B (zh) * 2012-09-24 2018-12-07 腾讯科技(深圳)有限公司 通信的加密和解密的方法、装置及系统
US8812523B2 (en) 2012-09-28 2014-08-19 Oracle International Corporation Predicate result cache
CN103841143A (zh) * 2012-11-23 2014-06-04 华为技术有限公司 文件发送方法、接收方法、系统及设备
CN104077335B (zh) * 2013-05-07 2017-05-03 腾讯科技(深圳)有限公司 一种结构化数据的序列化、反序列化方法、装置和系统
GB2519095A (en) 2013-10-09 2015-04-15 Ibm Improving XML communication
CN103699633A (zh) * 2013-12-23 2014-04-02 Tcl集团股份有限公司 一种利用xml实现通用化数据交换的方法和系统
US9870390B2 (en) 2014-02-18 2018-01-16 Oracle International Corporation Selecting from OR-expansion states of a query
US9560136B2 (en) * 2014-08-07 2017-01-31 Sap Se High speed communication protocol
US10148720B1 (en) 2014-12-05 2018-12-04 Quest Software Inc. Systems and methods for data serialization and transfer
US10585887B2 (en) 2015-03-30 2020-03-10 Oracle International Corporation Multi-system query execution plan
CN105183750B (zh) * 2015-07-14 2018-12-28 河南蓝信科技有限责任公司 紧凑式xml解析系统
CN106815238B (zh) * 2015-11-30 2020-10-20 阿里巴巴集团控股有限公司 一种结构化数据的序列化、反序列化方法及装置
JP2017126185A (ja) * 2016-01-13 2017-07-20 富士通株式会社 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置
WO2017185032A1 (en) * 2016-04-22 2017-10-26 Kodiak Networks, Inc. System and method for push-to-talk (ptt) key one-touch calling
JP7076819B2 (ja) 2016-09-15 2022-05-30 ナッツ・ホールディングス、エルエルシー 暗号化されたユーザデータの移動および記憶
US10360066B2 (en) * 2016-10-25 2019-07-23 Entit Software Llc Workflow generation from natural language statements
US10977221B2 (en) * 2017-10-20 2021-04-13 Hewlett Packard Enterprise Development Lp Encoding of data formatted in human-readable text according to schema into binary
AU2021251041A1 (en) 2020-04-09 2022-10-27 Nuts Holdings, Llc Nuts: flexible hierarchy object graphs
US11630761B2 (en) * 2021-02-24 2023-04-18 Capital One Services, Llc Methods, systems, and media for generating test authorization for financial transactions
US11698895B2 (en) 2021-02-24 2023-07-11 Capital One Services, Llc Access control for a databank system
US11775420B2 (en) 2021-02-24 2023-10-03 Capital One Services, Llc Methods, systems, and media for accessing data from a settlement file

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005018672A (ja) * 2003-06-30 2005-01-20 Hitachi Ltd 構造化文書の圧縮方法

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2615783C3 (de) * 1976-04-10 1979-06-28 Robert Bosch Gmbh, 7000 Stuttgart Verfahren und Schaltungsanordnung zur Erzeugung von videofrequenten Farbbalkensignalen
US5193181A (en) * 1990-10-05 1993-03-09 Bull Hn Information Systems Inc. Recovery method and apparatus for a pipelined processing unit of a multiprocessor system
US6072743A (en) * 1998-01-13 2000-06-06 Mitsubishi Denki Kabushiki Kaisha High speed operable semiconductor memory device with memory blocks arranged about the center
US6671853B1 (en) * 1999-07-15 2003-12-30 International Business Machines Corporation Method and system for selectively streaming markup language documents
US6209124B1 (en) * 1999-08-30 2001-03-27 Touchnet Information Systems, Inc. Method of markup language accessing of host systems and data using a constructed intermediary
US6643652B2 (en) * 2000-01-14 2003-11-04 Saba Software, Inc. Method and apparatus for managing data exchange among systems in a network
EP1273137B1 (en) * 2000-04-04 2005-02-23 Koninklijke Philips Electronics N.V. Accessing an in home network through the internet
US20020120780A1 (en) * 2000-07-11 2002-08-29 Sony Corporation Two-staged mapping for application specific markup and binary encoding
US7171475B2 (en) * 2000-12-01 2007-01-30 Microsoft Corporation Peer networking host framework and hosting API
US6823369B2 (en) * 2001-03-14 2004-11-23 Microsoft Corporation Using state information in requests that are transmitted in a distributed network environment
US7500017B2 (en) * 2001-04-19 2009-03-03 Microsoft Corporation Method and system for providing an XML binary format
US20030074636A1 (en) * 2001-10-15 2003-04-17 Ensoftek, Inc. Enabling easy generation of XML documents from XML specifications
US20040201600A1 (en) * 2001-12-14 2004-10-14 Microsoft Corporation Methods and system for providing an XML-based interface description language
US7424717B2 (en) * 2002-05-01 2008-09-09 Bea Systems, Inc. Systems and methods for business process plug-in development
US20040044757A1 (en) * 2002-08-30 2004-03-04 Baker Albert D. Flow-through provisioning with embedded control data
KR100636909B1 (ko) * 2002-11-14 2006-10-19 엘지전자 주식회사 확장성 표기 언어 기반의 전자문서 버전 매김 및 버전을이용한 갱신 문서 제공 방법
US20040205216A1 (en) * 2003-03-19 2004-10-14 Ballinger Keith W. Efficient message packaging for transport
US7185209B2 (en) * 2003-05-28 2007-02-27 Microsoft Corporation End-to-end reliable messaging with complete acknowledgement
US7366729B2 (en) * 2003-06-11 2008-04-29 Wtviii, Inc. Schema framework and a method and apparatus for normalizing schema
JP4418183B2 (ja) * 2003-06-26 2010-02-17 ソニー株式会社 情報処理装置および方法、プログラム、並びに記録媒体
US20050144137A1 (en) * 2003-12-24 2005-06-30 Kumar B. V. Protocol processing device and method
US7281208B2 (en) * 2004-11-18 2007-10-09 Microsoft Corporation Image stitching methods and systems
US7475289B2 (en) * 2005-02-11 2009-01-06 Microsoft Corporation Test manager

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005018672A (ja) * 2003-06-30 2005-01-20 Hitachi Ltd 構造化文書の圧縮方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008048796A1 (en) * 2006-10-20 2008-04-24 Microsoft Corporation Processing an xml feed with extensible or non-typed elements
US8015483B2 (en) 2006-10-20 2011-09-06 Microsoft Corporation Processing an XML feed with extensible or non-typed elements
JP2012003763A (ja) * 2010-06-16 2012-01-05 Nhn Corp バイナリパケット中継システムおよび方法
KR20200131746A (ko) * 2019-05-14 2020-11-24 바이두 유에스에이 엘엘씨 Protobuf 기반 프로젝트들에 대한 일반 검증 방법
KR102300451B1 (ko) 2019-05-14 2021-09-08 바이두 유에스에이 엘엘씨 Protobuf 기반 프로젝트들에 대한 일반 검증 방법

Also Published As

Publication number Publication date
EP1684191A2 (en) 2006-07-26
EP1684191A3 (en) 2006-09-27
CN1811753A (zh) 2006-08-02
US7441185B2 (en) 2008-10-21
US20060168513A1 (en) 2006-07-27
KR20060085907A (ko) 2006-07-28

Similar Documents

Publication Publication Date Title
JP2006209745A (ja) 文書のバイナリシリアライゼーションの方法およびシステム
Girardot et al. Millau: an encoding format for efficient representation and exchange of XML over the Web
KR101027299B1 (ko) 웹 서비스 통신의 히스토리 구동 최적화를 위한 시스템 및방법
EP1504369B1 (en) System and method for processing of xml documents represented as an event stream
Lam et al. XML document parsing: Operational and performance characteristics
US6658625B1 (en) Apparatus and method for generic data conversion
JP5242887B2 (ja) 型付きアプリケーションデータのフレキシブルな転送
US20050114405A1 (en) Flat file processing method and system
US20050144556A1 (en) XML schema token extension for XML document compression
US20060150200A1 (en) Interface infrastructure for creating and interacting with web services
US20080098019A1 (en) Encoding insignificant whitespace of XML data
CA2438176A1 (en) Xml-based multi-format business services design pattern
KR20030094320A (ko) 마크업 언어로 인코딩된 문서의 효율적인 프로세싱 방법및 그 시스템
TW200422881A (en) Method and computer-readable medium for importing and exporting hierarchically structured data
US20060167912A1 (en) Method and system for use of subsets in serialized documents
US20060277458A9 (en) Object persister
US6904562B1 (en) Machine-oriented extensible document representation and interchange notation
US8954400B2 (en) Method, system and program product for managing structured data
Werner et al. Compressing soap messages by using pushdown automata
US7814408B1 (en) Pre-computing and encoding techniques for an electronic document to improve run-time processing
US20120084635A1 (en) Parameterized template compression for binary xml
US20040268242A1 (en) Object persister
US7716576B1 (en) Flexible XML parsing based on p-code
Werner et al. XML compression for web services on resource-constrained devices
Li et al. High performance approach for server side SOAP processing

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081205

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110722

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110729

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111222