(57)【特許請求の範囲】
【請求項１】
効率的な拡張可能マークアップ言語（ＸＭＬ）インターチェンジ（ＥＸＩ）処理システムの作動方法であって、前記システムはノーマリゼーションデバイスを有し、
前記ノーマリゼーションデバイスが、第１シンプルデータタイプを有する第１要素、及び、前記第１シンプルデータタイプとは異なる第２シンプルデータタイプを有する第２要素を含む拡張可能マークアップ言語スキーマ定義（ＸＳＤ）を受信する工程；及び
前記ノーマリゼーションデバイスが、前記ＸＳＤに基づいてグラマーを生成する工程であって、前記グラマーは、拡張可能マークアップ言語（ＸＭＬ）文書を、前記ＸＳＤに基づいて、効率的なＸＭＬインターチェンジ（ＥＸＩ）ストリームに及びＥＸＩストリームからエンコード及びデコードすることに関連し、前記グラマーは前記第１シンプルデータタイプ及び前記第２シンプルデータタイプに関連し、前記グラマーは、前記ＸＳＤの中で最初に現れるシンプルデータタイプに基づき選択される単一のグラマーである、工程；
を有する方法。
【請求項２】
前記グラマーは、前記第１シンプルデータタイプ及び前記第２シンプルデータタイプとは独立している、請求項１に記載の方法。
【請求項３】
前記ＸＳＤは、更に、第１シンプルデータタイプとは異なり及び前記第２シンプルデータタイプとは異なる第３シンプルデータタイプを有する第３要素を含み；及び
前記グラマーは前記第３シンプルデータタイプに関連する；
請求項１に記載の方法。
【請求項４】
前記ノーマリゼーションデバイスが、前記ＸＳＤに関連するノーマリゼーションを生成する工程を更に有し、前記ノーマリゼーションは前記グラマーを含む、請求項１に記載の方法。
【請求項５】
前記システムはエンコーダを更に有し、前記方法は、
前記エンコーダが、前記ＸＳＤに基づいて前記ＸＭＬ文書から第１ＥＸＩストリームをエンコードする工程を更に有する請求項４に記載の方法。
【請求項６】
効率的な拡張可能マークアップ言語（ＸＭＬ）インターチェンジ（ＥＸＩ）処理システムの作動方法であって、前記システムはノーマリゼーションデバイスとエンコーダとを有し、
前記ノーマリゼーションデバイスが、第１シンプルデータタイプを有する第１要素、及び、前記第１シンプルデータタイプとは異なる第２シンプルデータタイプを有する第２要素を含むＸＭＬスキーマ定義（ＸＳＤ）に基づいて、拡張可能マークアップ言語（ＸＭＬ）文書を受信する工程であって、前記ＸＭＬ文書は：
前記第１要素及び前記第１シンプルデータタイプに関連する第1キャラクタ；及び
前記第２要素及び前記第２シンプルデータタイプに関連する第２キャラクタ；
を含む、工程；並びに
前記エンコーダが、前記ＸＭＬ文書を効率的なＸＭＬインターチェンジ（ＥＸＩ）ストリームとしてエンコードする工程であって：
前記ＸＳＤの中で最初に現れるシンプルデータタイプに基づき単一のグラマーを選択する工程；
グラマーに従って前記第１キャラクタをエンコードする工程；及び
前記グラマーに従って前記第２キャラクタをエンコードする工程；
を含む工程；
を有する方法。
【請求項７】
前記ＸＭＬ文書は、前記グラマーを含むノーマリゼーションに従ってＥＸＩストリームとしてエンコードされる、請求項６に記載の方法。
【請求項８】
前記ノーマリゼーションの前記グラマーは、前記ＸＳＤの全てのシンプルデータタイプに関連している、請求項７に記載の方法。
【請求項９】
前記エンコーダが、第１イベントタイプ識別子がエンコードされた第１キャラクタに関連するように、前記ＥＸＩストリームのスタックに前記第１イベントタイプ識別子を付加する工程を更に有し、前記第１イベントタイプ識別子は、前記第１要素及び前記第１シンプルデータタイプに関連している、請求項６に記載の方法。
【請求項１０】
前記エンコーダが、第２イベントタイプ識別子がエンコードされた第２キャラクタに関連するように、前記スタックに前記第２イベントタイプ識別子を付加する工程を更に有し、前記第２イベントタイプ識別子は、前記第２要素及び前記第２シンプルデータタイプに関連している、請求項９に記載の方法。
【請求項１１】
前記ＸＳＤは、更に、第１シンプルデータタイプとは異なり及び前記第２シンプルデータタイプとは異なる第３シンプルデータタイプを有する第３要素を含み；
前記ＸＭＬ文書は、更に、前記第３要素及び前記第３シンプルデータタイプに関連する第３キャラクタを含み；
前記ＸＭＬ文書を前記ＥＸＩストリームとしてエンコードすることは、前記グラマーに従って前記第３キャラクタをエンコードすることを更に含む；
請求項６に記載の方法。
【請求項１２】
前記エンコーダが、第１イベントタイプ識別子がエンコードされた第１キャラクタに関連するように、前記ＥＸＩストリームのスタックに前記第１イベントタイプ識別子を付加する工程であって、前記第１イベントタイプ識別子は前記第１要素及び前記第１シンプルデータタイプに関連している、工程；
前記エンコーダが、第２イベントタイプ識別子がエンコードされた第２キャラクタに関連するように、前記スタックに前記第２イベントタイプ識別子を付加する工程であって、前記第２イベントタイプ識別子は前記第２要素及び前記第２シンプルデータタイプに関連している、工程；及び
前記エンコーダが、第３イベントタイプ識別子がエンコードされた第３キャラクタに関連するように、前記スタックに前記第３イベントタイプ識別子を付加する工程であって、前記第３イベントタイプ識別子は前記第３要素及び前記第３シンプルデータタイプに関連している、工程；
を更に有する請求項１１に記載の方法。
【請求項１３】
効率的な拡張可能マークアップ言語（ＸＭＬ）インターチェンジ（ＥＸＩ）処理システムの作動方法であって、前記システムはノーマリゼーションデバイスとデコーダとを有し、
前記ノーマリゼーションデバイスが、効率的な拡張可能マークアップ言語インターチェンジ（ＥＸＩ）ストリームを受信する工程であって、前記ＥＸＩストリームは：
第１シンプルデータタイプに関連する第１のエンコードされたキャラクタ；及び
前記第１シンプルデータタイプとは異なる第２シンプルデータタイプに関連する第２のエンコードされたキャラクタ；
を含む、工程；並びに
前記デコーダが、拡張可能マークアップ言語（ＸＭＬ）文書を形成するために前記ＥＸＩストリームをデコードする工程であって：
前記ＥＸＩストリームの中で最初に現れるシンプルデータタイプに基づき選択された単一のグラマーに少なくとも部分的に基づいて前記第１のエンコードされたキャラクタをデコードする工程；及び
前記グラマーに少なくとも部分的に基づいて前記第２のエンコードされたキャラクタをデコードする工程；
を含む、工程；
を有する方法。
【請求項１４】
前記デコーダが、前記ＥＸＩストリームのスタックから第１イベントタイプ識別子をデコードする工程であって、前記第１イベントタイプ識別子は、前記第１シンプルデータタイプ及び前記第１のエンコードされたキャラクタに関連する、工程を更に有し、
前記第１のエンコードされたキャラクタをデコードすることは、前記第１シンプルデータタイプに関連する第１コーデックに少なくとも部分的に基づく、
請求項１３に記載の方法。
【請求項１５】
前記デコーダが、前記スタックから第２イベントタイプ識別子をデコードする工程であって、前記第２イベントタイプ識別子は、前記第２シンプルデータタイプ及び前記第２のエンコードされたキャラクタに関連する、工程を更に有し、
前記第２のエンコードされたキャラクタをデコードすることは、前記第２シンプルデータタイプに関連する第２コーデックに少なくとも部分的に基づく、
請求項１４に記載の方法。
【請求項１６】
前記ＥＸＩストリームは、前記グラマーを含むノーマリゼーションに従って前記ＸＭＬ文書を形成するようにデコードされる、請求項１３に記載の方法。
【請求項１７】
前記ＥＸＩストリームは、第１シンプルデータタイプとは異なり及び前記第２シンプルデータタイプとは異なる第３シンプルデータタイプに関連する第３のエンコードされたキャラクタを含み；及び
前記ＸＭＬ文書を形成するように前記ＥＸＩストリームをデコードすることは、前記グラマーに少なくとも部分的に基づいて前記第３のエンコードされたキャラクタをデコードすることを含む；
請求項１３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願で説明される形態は、シンプルデータタイプ(simple  datatype)のためのグラマー生成に関連する。
【背景技術】
【０００２】
拡張可能マークアップ言語(XML)は、人間が読み取ることが可能でありかつマシン読み取り可能なプレインテキストフォーマットで文書をエンコードするための一群の規則を規定するマークアップ言語である。或るバージョンのXMLは、2008年11月26日のワールドワイドウェブコンソーシアム(W3C)により提供されるXML1.0標準仕様で規定され、その内容全体は本願のリファレンスに組み入れられる。XML1.0標準仕様は、整形(well-formed)であって有効なテキストとしてXML文書を規定する。
【０００３】
XMLスキーマは、XML文書のタイプについての記述であり、典型的には、XML1.0標準仕様それ自体により課される基本的な文法制約を超える上位の、そのタイプの文書の構造及び内容に関する制約の観点から表現される。これらの制約は、一般に、要素の順序を支配するルール、内容に関する論理述語(boolean  predicates)、要素及び属性の内容を支配するデータタイプ、一意性及び参照整合性の制約等のような更に特殊なルール等の何らかの組み合わせを用いて表現される。
【０００４】
XML文書がXMLスキーマに従っているか否かを確認するプロセスはバリデーションと呼ばれ、文法的整形式(syntactic  well-formedness)のXMLの概念とは別個のものである。全てのXML文書は整形式であってよいが、XML文書はバリディティに関して検査され、XML文書は関連するスキーマとの適合性について検査される。
【０００５】
プレインテキストのXML文書の人間による読み取り可能な形態は、多くの状況で便利であるが、この人間により読み取り可能な形態は大きなサイズのXML文書を招き、従って、限られたメモリ又は保存容量しか有しないデバイスにとって利用可能ではない。XML文書のサイズを減らす努力は、しばしば、よりコンパクトな文書を支援してプレインテキストの人間による読み取り可能な側面を排除する。
【０００６】
効率的なXMLインターチェンジ(Efficient  XML  interchange：EXI)は、XML文書がプレインテキストではなくバイナリデータフォーマットでエンコードされるバイナリXMLフォーマットである。一般に、EXIフォーマットの利用は、XML文書のサイズ及び冗長性(verbosity)を減らし、XML文書を解析するために費やされる時間及び労力を減らす。EXIの正式な定義はW3Cにより提供される2014年2月11日付けのEXIフォーマット1.0標準仕様に記載されており、その内容全体は本願のリファレンスに組み入れられる。XML文書は、EXIストリームとしてEXIフォーマットでエンコードされる。更に、EXIストリームは、オリジナルのXML文書に類似する又は同一のXML文書を形成するようにデコードされる。
【０００７】
1つ又は一群のXML文書は、関連するXMLスキーマ定義(XML  schema  definition：XSD)を含む。XSDは、一般に、XML文書に関連するXMLスキーマを記述する。
【０００８】
本願で請求される対象事項は、上述したような状況でしか動作しない又は何れの欠点をも解決する形態には限定されない。むしろこの「背景技術」は本願で説明される形態が実施されてよい技術分野の一例を示すに過ぎない。
【発明の概要】
【０００９】
一実施形態によれば、本方法は、第1シンプルデータタイプを有する第1要素、及び、第1シンプルデータタイプとは異なる第2シンプルデータイプを有する第2要素を含む拡張マークアップ言語スキーマ定義(XSD)を受信することを含む。XSDに基づいてグラマー(grammar)が生成される。グラマーは、効率的なXMLインターチェンジ(EXI)スキーマへ及び当該EXIスキーマから、XSDに基づいて拡張可能マークアップ言語(XML)文書をエンコード及びデコードすることに関連する。グラマーは、第1シンプルデータタイプ及び第2シンプルデータタイプに関連する。
【００１０】
実施形態の目的及び効果は特に特許請求の範囲に記載されるエレメント、特徴及びその組み合わせにより少なくとも実現及び達成される。
上記の一般的な記述及び以下の詳細な記述の双方は例示的な説明であり、特許請求の範囲に記載される本発明についての限定ではないことが理解されるべきである。
【図面の簡単な説明】
【００１１】
添付図面を利用して更なる具体例及び詳細事項とともに実施例が記述及び説明される。
【図１】図1は例示的な効率的な拡張可能マークアップ言語インターチェンジ(EXI)処理システムのブロック図である。
【図２】図2は拡張可能マークアップ言語スキーマ定義(XSD)から完全なEXIグラマーを生成するプロセス例のフローチャートである。
【図３】図3は例示的なXSDの一部分を示す。
【図４】図4は、図3のXSDに基づく例示的な拡張可能マークアップ言語(XML)文書の一部分を示す。
【発明を実施するための形態】
【００１２】
XML文書をEXIストリームにエンコードすること又はEXIストリームをXML文書にデコードすることの前に、文書の関連するXSDがグラマーにノーマライズ又は正規化される。グラマーは、XML文書の特定のシーケンスを予測するために使用されるルールである。XSDのグラマーを生成するアルゴリズムは、EXIフォーマット1.0標準仕様に含まれる。本願で使用されるように、EXIフォーマット1.0標準仕様に含まれるアルゴリズムは、標準グラマーアルゴリズムとして言及される。
【００１３】
以下、本発明の実施形態が添付図面に関連して説明される。
【００１４】
図1は、例示的な拡張可能マークアップ言語(EXI)処理システム100のブロック図である。EXI処理システム100はノーマリゼーションデバイス104を含む。ノーマリゼーションデバイス104は、拡張可能マークアップ言語スキーマ定義(XSD)102を受信し、ノーマリゼーション(normalization)106を出力するように構成される。XSDのノーマリゼーション106は、例えば、EXI文書をエンコード及び/又はデコードする際に使用される。
【００１５】
ノーマリゼーションデバイス104は、本願で開示されるようなグラマー生成アルゴリズムについての1つ以上の形態を含んでよい。一実施形態において、ノーマリゼーション106は、本願で説明されるような複数のシンプルデータタイプとともに使用するための1つのグラマーを含んでもよい。
【００１６】
ノーマリゼーション106は、エンコーダ/デコーダ108に伝達される。具体例のエンコーダ/デコーダ108は、ソースフォージドットネット(SourceForge.net)でホストされるオープンEXI(OpenEXI)プロジェクトに含まれていてもよい。2014年7月28日付けのOpenEXIプロジェクトについてのソースコード及びドキュメンテーションは、全体的に本願のリファレンスに組み入れられる。エンコーダ/デコーダ108は、拡張可能マークアップ言語(XML)文書110を受信し、XML文書110をEXIストリーム112としてエンコードするように構成される。代替的又は追加的に、EXIストリーム112は、エンコーダ/デコーダ108により受信され、XML文書110としてデコードされる。オリジナルのXML文書110及びエンコーダ/デコーダ108により生成されるXML文書110は、実質的に同じXMLデータを含む。しかしながら、ホワイトスペース、コメント、及び/又は、処理命令などのような人間により読み取ることが可能な或る種の情報は、エンコーダ/デコーダ108についての関連する保存設定に依存して、エンコーダ/デコーダ108により保存されないかもしれない。
【００１７】
ノーマリゼーションデバイス104はプロセッサ103a及びメモリ105aを含む。エンコーダ/デコーダ108はプロセッサ103b及びメモリ105bを含む。メモリ105a及びメモリ105bは、非一時的なコンピュータ読み取り可能な媒体を含んでよい。プロセッサ103a及びプロセッサ103bにより実行可能なプログラミングコードのような命令は、それぞれメモリ105a及びメモリ105b内にエンコードされてもよい。命令がプロセッサ103a及び/又はプロセッサ103bにより実行される場合に、ノーマリゼーションデバイス104及び/又はエンコーダ/デコーダ108は、本願で説明される処理に関連する及び/又はそれを含む動作を実行する。
【００１８】
ノーマリゼーションデバイス104及び/又はエンコーダ/デコーダ108は、メモリ容量が限られているデバイス及び/又は内蔵デバイスに組み込まれてもよい。メモリ容量が限られているデバイス及び/又は内蔵デバイスの具体例は、例えば、センサ、マイクロコントローラ、及び、機器(例えば、エネルギ管理コントローラ、自動車マイクロコントローラ、スマートメータ)等であるがこれらに限定されない。
【００１９】
図2はXSD202から完全なEXIグラマー(full-fledged  EXI  grammars)を生成するプロセス例200のフローチャートである。一実施形態において、プロセス200は図1のノーマリゼーションデバイス104により実行されてもよい。
【００２０】
プロセス200はXSD202とともに始まる。ブロック204において、XSD202から、一群のEXIプロトグラマー(EXI  proto-grammars)206が生成される。本願で説明される1つ以上の実施形態はブロック204において生じてもよい。
【００２１】
一実施形態において、プロトグラマーの生成204は、現在のバージョンのセクション8.5.4.1.3.1を除くEXIフォーマット1.0標準仕様のセクション8.5.4.1に対応していてもよい。一実施形態において、セクション8.5.4.1.3.1は本願で説明される1つ以上の形態で置換されてもよい。
【００２２】
現在のバージョンのEXIフォーマット1.0標準仕様のセクション8.5.4.1.3.1で規定されるシンタックスは、以下の内容を含む：
Typei,0  :
CH  [schema-typed  value]  Typei,1
Typei,1  :
EE
ここで、CHはキャラクタイベントを表現し、EEは終了要素イベントを表現し、iは0ないしnの間の各々の値を表現し、nはシンプルデータタイプ(simple  datatype)の数である。従って、現在のバージョンで規定されるシンタックスを利用すると、慣例的に、シンプルデータタイプの各々について異なるグラマーが使用される。
【００２３】
本願で説明されるように、一実施形態では、複数の異なるシンプルデータタイプについて単独のグラマーが使用されてよい。複数の異なるシンプルデータタイプについて単独のグラマーを使用することは、グラマーのコンパクトセット(小さな一群のグラマー)を促進する。例えば、単独のグラマーが、XML文書内の全てのシンプルデータタイプについて使用されてもよい。よりコンパクトなグラマー群は、保存及び/又は通信に対して相対的に少ないリソースを使用し、従って、センサ及びマイクロコントローラのような小メモリ装置にそれらを配備することを促す。
【００２４】
一例として、現在のバージョンのセクション8.5.4.1.3.1の上記の部分は、以下のように置換されてもよい：
Type0  :
CH  [schema-typed  value]  Type1
Type1  :
EE
ここで、現在のバージョンによるiは省略される。
【００２５】
この場合において、EXIプロトグラマー206はブロック208において拡張され、完全なEXIグラマー210を形成する。EXIプロトグラマー206を拡張すること(augmenting)は、追加的な属性、プロパティ等を挿入することを含んでよい。
【００２６】
図3は例示的なXSDの一部分300を示す。XSD300は要素302a-302e(まとめて「要素302」と言及される)を含み、要素はそれぞれシンプルデータタイプ304a-304e(まとめて「シンプルデータタイプ304」と言及される)を有する。シンプルデータタイプ304は、EXI規格、XMLスキーマ定義、及び/又は、ユーザにより定義されてもよい。シンプルデータタイプ304は、対応する要素302に関連するキャラクタに対する1つ以上の受け入れ可能なフォーマット及び/又は値に関連してよい。
【００２７】
図4は図3のXSD300に基づく例示的な拡張可能マークアップ言語(XML)文書の一部分400を示す。XML文書400は、それぞれキャラクタ404a-404e(まとめて「キャラクタ404」と言及される)が続く開始要素402a-402e(まとめて「開始要素402」と言及される)と、終了要素406a-406e(まとめて「終了要素406」と言及される)とを含む。
【００２８】
EXIフォーマット1.0標準仕様では、キャラクタ404の各々が、対応するシンプルデータタイプ304に関連する特定のグラマーに従ってエンコードされる。従って、従来では、XSDのうちの異なるシンプルデータタイプの各々について異なるグラマーが使用される。例えば、XSDは45個のビルトインシンプルデータタイプ(built-in  simple  datatype)に加えて、追加的なユーザ定義のシンプルデータタイプを含み得る。
【００２９】
EXIストリームで使用される各々のシンプルデータタイプグラマに関し、以下の第1状態及び第2状態が生成されてよい。
【００３０】
第1状態：
<Grammar>
<Productions>
<CharactersTyped/>
<Grammar>1</Grammar>
</Productions>
</Grammar>
第2状態：
<Grammar>
<Productions>
<EndElement/>
</Productions>
</Grammar>
各々のグラマー定義は幾らかのバイト数を使用してよい。一例として、上記の第1状態及び第2状態は143バイトを占めてもよい。仮に、単独のデータタイプの各々について異なるグラマーが使用される場合、全てのグラマーの定義により占められる総バイト数(total  size)は、以下の数式により与えられる：
total  size  =  (x+α)(y+n)
ここで、xはグラマーを規定するためのバイト数を表し、αはシンプルデータタイプを識別するのに使用されるバイト数を表現し、yは内蔵シンプルデータタイプのバイト数を表現し、nはユーザ定義によるシンプルデータタイプのバイト数を表現する。xが143であり、yが45である場合、グラマー定義は少なくとも6435バイトに及ぶ空間を占める。
【００３１】
しかしながら、複数のシンプルデータタイプについて単独のグラマーが使用される実施形態では、シンプルデータタイプのグラマー定義は、より少ない空間を消費する。例えば、143バイトがグラマーを定義するのに使用される例において、単独のシンプルデータタイプのグラマーがシンプルデータタイプの各々について使用される場合、シンプルデータタイプのグラマー定義は143バイトの空間を消費する。
【００３２】
一実施形態において、複数の異なるシンプルデータタイプについて使用される単独のグラマーは、XMLスキーマの1つのデータタイプに基づいて選択されてもよい。例えば、グラマーは、プロトグラマー生成の最中に遭遇する最初のシンプルデータタイプに基づいて選択されてもよい。代替的に、グラマーは、XMLスキーマとは独立に選択されてもよい。例えば、XMLスキーマのシンプルデータタイプによらず、複数のシンプルデータタイプについて、単独のグラマーが予め選択され使用されてもよい。
【００３３】
一実施形態において、図4のXML文書400のようなXML文書は、EXIストリームとしてエンコードされてもよい。XML文書は、図3のXSD300のようなXSDに基づいてもよい。関連するノーマリゼーションは、複数の異なるシンプルデータタイプ(おそらくは、全てのシンプルデータタイプ)について1つのグラマーを含んでもよい。例えば、図3及び図4をまとめて参照する場合において、文字列(string)のシンプルデータタイプ304aを有するセンサ(sensor)要素302aのキャラクタ404a、日時のシンプルデータタイプ304bを有する開始(begin)要素302bのキャラクタ404b、及び、ショートシンプルデータタイプ304cを有する降水量(precipitation)要素302cのキャラクタ404c等々をエンコードするために、単独のグラマーが使用されてもよい。従って、“Oak  St  Creek  Rd  SW,”  “2003-02-17T14:17:03,”  “137,”  “22.22,”  及び  “PT4H12M”というキャラクタ404が、単独のグラマーに従ってエンコードされる。
【００３４】
一形態において、EXIストリームとしてXML文書400をエンコードすることは、イベントタイプ識別子をスタック(stack)に追加することを更に含んでもよい。イベントタイプ識別子の各々は、エレメント及び関連するキャラクタに関連付けられてよい。例えば、ビットシーケンス「001」により表現されるイベントタイプ識別子は、センサ要素302aに関連付けられ、かつ、「001」のイベントタイプ識別子が「Oak  St  Creek  Rd  SW」というキャラクタ404aを表現するEXIストリームのエンコードされたキャラクタに関連付けられるように、イベントタイプのスタックに追加されてもよい。ビットシーケンス「010」により表現されるイベントタイプ識別子は、開始要素302bに関連付けられ、かつ、「010」イベントタイプ識別子が「2003-02-17T14:17:03」というキャラクタ404bに関連付けられるように、スタックに追加されてもよい。追加的なビットシーケンスのような追加的なイベントタイプ識別子は、他の要素302及びそれらの関連付けられるキャラクタ404を表現するエンコードされるキャラクタに関連付けられてもよい。
【００３５】
一実施形態において、イベントタイプ識別子は、EXIストリームがデコードされる場合に、スタックから引き出される又はデコードされてもよい。選択的に、イベントタイプ識別子は、イベントタイプ識別子がスタックに追加された順番により確保される順番でデコードされてもよい。イベントタイプ識別子は、イベントタイプ識別子に関連するエンコードされたキャラクタを解釈するために使用されるコードを識別及び/又は呼び出すために使用されてもよい。例えば、デコーダは、スタックからビットシーケンス「010」を引き出し、エンコードされた日時キャラクタ「2003-02-17T14:17:03」を解釈するためにコーデックを呼び出し、このキャラクタは、全てシンプルデータタイプに使用されるグラマーに従ってエンコードされている。デコーダは、スタックからビットシーケンス「001」を引き出し、エンコードされた文字列キャラクタ「Oak  St  Creek  Rd  SW」を解釈するためにコーデックを呼び出し、このキャラクタは、全てシンプルデータタイプに使用されるグラマーに従ってエンコードされている。
【００３６】
本願で説明される形態は、本願で詳細に説明されるような様々なハードウェア又はソフトウェアモジュールを含む特定用途又は汎用のコンピュータを利用することを含んでよい。
【００３７】
本願で説明される形態は、コンピュータで読み取ることが可能な媒体を用いて実現されてもよく、その媒体は、コンピュータで実行することが可能な命令又は媒体に保存されるデータ構造を搬送又は有する。そのようなコンピュータ読み取り可能な媒体は、汎用又は特定用途のコンピュータによりアクセスされる任意の利用可能な媒体であってよい。限定ではない一例として、そのようなコンピュータ読み取り可能な媒体は、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、電気的に消去可能でプログラム可能なリードオンリメモリ(EEPROM)、コンパクトディスクリードオンリメモリ(CD-ROM)又はその他の光ディスクストレージ、磁気ディスクストレージ又はその他の磁気ストレージデバイス、フラッシュメモリデバイス(例えば、ソリッドステートメモリデバイス)、或いは、他の任意のストレージ媒体等を含む非一時的なコンピュータ読み取り可能な記憶媒体を含んでもよく、他の任意のストレージ媒体は、コンピュータで実行可能な命令及びデータ構造の形式で所望のプログラムコードを搬送又は保存するために使用され、及び、汎用又は特定用途のコンピュータによりアクセスされてよい。上記に列挙したものの組み合わせもコンピュータ読み取り可能な媒体の範囲内に含まれてよい。
【００３８】
コンピュータ実行可能な命令は、例えば、汎用コンピュータ、特定用途コンピュータ又は特定用途処理装置(例えば、1つ以上のプロセッサ)が、所定の機能又は一群の機能を実行することを引き起こす命令及びデータを含んでもよい。本件の対象事項は構造的特徴及び/又は方法的動作に特化した言葉で説明されるが、特許請求の範囲に規定される対象事項は、上述した具体的な特徴や動作に限定される必要はないことが理解されるべきである。むしろ上記の具体的な特徴及び動作は請求項を実施する際の実施形態として開示されている。
【００３９】
本願において、「モジュール」又は「コンポーネント」という用語は、コンピューティングシステムの汎用ハードウェア(例えば、コンピュータ読み取り可能な媒体、処理装置等)において保存及び/又は実行されるモジュール又はコンポーネント及び/又はソフトウェアオブジェクト又はソフトウェアルーチンの処理を実行するように構成される具体的なハードウェア手段を指してよい。一実施形態において、本願で言及される様々なコンポーネント、モジュール、エンジン及びサービスは、(例えば、個々のスレッドのような)コンピューティングシステムで動作するオブジェクト又はプロセスとして実行されてもよい。本願で説明される何らかのシステム及び方法は概して(汎用ハードウェアに保存される及び/又はそこで実行される)ソフトウェアで実現されるように説明されるが、具体的なハードウェア手段又はソフトウェア及び具体的なハードウェア手段の組み合わせも可能でありそれらも想定されている。本説明において、「コンピューティングエンティティ」は、上述される任意のコンピューティングシステム、又は、コンピューティングシステムで動作する任意のモジュール又はモジュールの組み合わせであってよい。
【００４０】
本願で使用される全ての具体例及び条件付きの言葉は、当該技術分野における更なる進歩に発明者等が貢献した本発明及び概念を理解する上で読者を支援する教育的目的のために意図されており、そのような具体的に言及される具体例及び条件に限定することなく解釈がなされるべきである。本発明の実施形態が詳細に説明されてきたが、様々な変更、置換及び代替が本発明の精神及び範囲から逸脱することなくそれらになされることが可能である点が理解されるべきである。
【００４１】
上記の実施形態に関する付記を更に開示する。
【００４２】
（付記１）
第１シンプルデータタイプを有する第１要素、及び、前記第１シンプルデータタイプとは異なる第２シンプルデータタイプを有する第２要素を含む拡張可能マークアップ言語スキーマ定義（ＸＳＤ）を受信する工程；及び
前記ＸＳＤに基づいてグラマーを生成する工程であって、前記グラマーは、拡張可能マークアップ言語（ＸＭＬ）文書を、前記ＸＳＤに基づいて、効率的なＸＭＬインターチェンジ（ＥＸＩ）ストリームに及びＥＸＩストリームからエンコード及びデコードすることに関連し、前記グラマーは前記第１シンプルデータタイプ及び前記第２シンプルデータタイプに関連する、工程；
を有する方法。
【００４３】
（付記２）
前記グラマーは、更に、前記第１シンプルデータタイプに基づいて生成される、付記１に記載の方法。
【００４４】
（付記３）
前記グラマーは、前記第１シンプルデータタイプ及び前記第２シンプルデータタイプとは独立している、付記１に記載の方法。
【００４５】
（付記４）
前記ＸＳＤは、更に、第１シンプルデータタイプとは異なり及び前記第２シンプルデータタイプとは異なる第３シンプルデータタイプを有する第３要素を含み；及び
前記グラマーは前記第３シンプルデータタイプに関連する；
付記１に記載の方法。
【００４６】
（付記５）
前記グラマーは、前記ＸＳＤの何れかのシンプルデータタイプに関連するグラマーのみである、付記１に記載の方法。
【００４７】
（付記６）
前記ＸＳＤに関連するノーマリゼーションを生成する工程を更に有し、前記ノーマリゼーションは前記グラマーを含む、付記１に記載の方法。
【００４８】
（付記７）
前記ＸＳＤに基づいて前記ＸＭＬ文書から第１ＥＸＩストリームをエンコードする工程を更に有する付記６に記載の方法。
【００４９】
（付記８）
第１シンプルデータタイプを有する第１要素、及び、前記第１シンプルデータタイプとは異なる第2シンプルデータタイプを有する第２要素を含むＸＭＬスキーマ定義（ＸＳＤ）に基づいて、拡張可能マークアップ言語（ＸＭＬ）文書を受信する工程であって、前記ＸＭＬ文書は：
前記第１要素及び前記第１シンプルデータタイプに関連する第1キャラクタ；及び
前記第２要素及び前記第２シンプルデータタイプに関連する第２キャラクタ；
を含む、工程；並びに
前記ＸＭＬ文書を効率的なＸＭＬインターチェンジ（ＥＸＩ）ストリームとしてエンコードする工程であって：
グラマーに従って前記第１キャラクタをエンコードする工程；及び
前記グラマーに従って前記第２キャラクタをエンコードする工程；
を含む工程；
を有する方法。
【００５０】
（付記９）
前記ＸＭＬ文書は、前記グラマーを含むノーマリゼーションに従ってＥＸＩストリームとしてエンコードされる、付記８に記載の方法。
【００５１】
（付記１０）
前記ノーマリゼーションの前記グラマーは、前記ＸＳＤの全てのシンプルデータタイプに関連している、付記９に記載の方法。
【００５２】
（付記１１）
第１イベントタイプ識別子がエンコードされた第１キャラクタに関連するように、前記ＥＸＩストリームのスタックに前記第１イベントタイプ識別子を付加する工程を更に有し、前記第１イベントタイプ識別子は、前記第１要素及び前記第１シンプルデータタイプに関連している、付記８に記載の方法。
【００５３】
（付記１２）
第２イベントタイプ識別子がエンコードされた第２キャラクタに関連するように、前記スタックに前記第２イベントタイプ識別子を付加する工程を更に有し、前記第２イベントタイプ識別子は、前記第２要素及び前記第２シンプルデータタイプに関連している、付記１１に記載の方法。
【００５４】
（付記１３）
前記ＸＳＤは、更に、第１シンプルデータタイプとは異なり及び前記第２シンプルデータタイプとは異なる第３シンプルデータタイプを有する第３要素を含み；
前記ＸＭＬ文書は、更に、前記第３要素及び前記第３シンプルデータタイプに関連する第３キャラクタを含み；
前記ＸＭＬ文書を前記ＥＸＩストリームとしてエンコードすることは、前記グラマーに従って前記第３キャラクタをエンコードすることを更に含む；
付記８に記載の方法。
【００５５】
（付記１４）
第１イベントタイプ識別子がエンコードされた第１キャラクタに関連するように、前記ＥＸＩストリームのスタックに前記第１イベントタイプ識別子を付加する工程であって、前記第１イベントタイプ識別子は前記第１要素及び前記第１シンプルデータタイプに関連している、工程；
第２イベントタイプ識別子がエンコードされた第２キャラクタに関連するように、前記スタックに前記第２イベントタイプ識別子を付加する工程であって、前記第２イベントタイプ識別子は前記第２要素及び前記第２シンプルデータタイプに関連している、工程；及び
第３イベントタイプ識別子がエンコードされた第３キャラクタに関連するように、前記スタックに前記第３イベントタイプ識別子を付加する工程であって、前記第３イベントタイプ識別子は前記第３要素及び前記第３シンプルデータタイプに関連している、工程；
を更に有する付記１３に記載の方法。
【００５６】
（付記１５）
効率的な拡張可能マークアップ言語インターチェンジ（ＥＸＩ）ストリームを受信する工程であって、前記ＥＸＩストリームは：
第１シンプルデータタイプに関連する第１のエンコードされたキャラクタ；及び
前記第１シンプルデータタイプとは異なる第２シンプルデータタイプに関連する第２のエンコードされたキャラクタ；
を含む、工程；並びに
拡張可能マークアップ言語（ＸＭＬ）文書を形成するために前記ＥＸＩストリームをデコードする工程であって：
前記ＥＸＩストリームに関連するグラマーに少なくとも部分的に基づいて前記第１のエンコードされたキャラクタをデコードする工程；及び
前記グラマーに少なくとも部分的に基づいて前記第２のエンコードされたキャラクタをデコードする工程；
を含む、工程；
を有する方法。
【００５７】
（付記１６）
前記ＥＸＩストリームのスタックから第１イベントタイプ識別子をデコードする工程であって、前記第１イベントタイプ識別子は、前記第１シンプルデータタイプ及び前記第１のエンコードされたキャラクタに関連する、工程を更に有し、
前記第１のエンコードされたキャラクタをデコードすることは、前記第１シンプルデータタイプに関連する第１コーデックに少なくとも部分的に基づく、
付記１５に記載の方法。
【００５８】
（付記１７）
前記スタックから第２イベントタイプ識別子をデコードする工程であって、前記第２イベントタイプ識別子は、前記第２シンプルデータタイプ及び前記第２のエンコードされたキャラクタに関連する、工程を更に有し、
前記第２のエンコードされたキャラクタをデコードすることは、前記第２シンプルデータタイプに関連する第２コーデックに少なくとも部分的に基づく、
付記１６に記載の方法。
【００５９】
（付記１８）
前記ＥＸＩストリームは、前記グラマーを含むノーマリゼーションに従って前記ＸＭＬ文書を形成するようにデコードされる、付記１５に記載の方法。
【００６０】
（付記１９）
前記ノーマリゼーションの前記グラマーは、前記ＥＸＩストリームの何れかのシンプルデータタイプに関連するグラマーのみである、付記１８に記載の方法。
【００６１】
（付記２０）
前記ＥＸＩストリームは、第１シンプルデータタイプとは異なり及び前記第２シンプルデータタイプとは異なる第３シンプルデータタイプに関連する第３のエンコードされたキャラクタを含み；及び
前記ＸＭＬ文書を形成するように前記ＥＸＩストリームをデコードすることは、前記グラマーに少なくとも部分的に基づいて前記第３のエンコードされたキャラクタをデコードすることを含む；
付記１５に記載の方法。
【符号の説明】
【００６２】
１００：ＥＸＩ処理システム
１０２：ＸＳＤ
１０４：ノーマリゼーションデバイス
１０３ａ：プロセッサ
１０５ａ：メモリ
１０６：ノーマリゼーション
１１０：ＸＭＬ文書
１０８：エンコーダ／デコーダ
１０３ｂ：プロセッサ
１０５ｂ：メモリ
１１２：ＥＸＩストリーム
【図１】
0006699200.tif 000002
【図２】
0006699200.tif 000003
【図３】
0006699200.tif 000004
【図４】
0006699200.tif 000005