JP2006323816A - 強く型付けされた環境において未知のマークアップを保存する方法およびシステム - Google Patents

強く型付けされた環境において未知のマークアップを保存する方法およびシステム Download PDF

Info

Publication number
JP2006323816A
JP2006323816A JP2005375507A JP2005375507A JP2006323816A JP 2006323816 A JP2006323816 A JP 2006323816A JP 2005375507 A JP2005375507 A JP 2005375507A JP 2005375507 A JP2005375507 A JP 2005375507A JP 2006323816 A JP2006323816 A JP 2006323816A
Authority
JP
Japan
Prior art keywords
xml
tree
typed tree
markup
strongly typed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2005375507A
Other languages
English (en)
Other versions
JP4943002B2 (ja
JP2006323816A5 (ja
Inventor
Charles P Jazdzewski
ピー.ジャゼウスキー チャールズ
Jerry Dunietz
ドゥニーツ ジェリー
Oliver H Foehr
エイチ.フェーア オリバー
Robert A Relyea
エー.レリア ロバート
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 JP2006323816A publication Critical patent/JP2006323816A/ja
Publication of JP2006323816A5 publication Critical patent/JP2006323816A5/ja
Application granted granted Critical
Publication of JP4943002B2 publication Critical patent/JP4943002B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

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

Landscapes

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

Abstract

【課題】XMLおよびXMLベースのマークアップ言語を処理する方法およびシステムを提供すること。
【解決手段】強く型付けされた環境において未知のマークアップを保存する方法およびシステムが説明される。1つの実施形態において、既知のXMLベース要素および未知のXMLベース要素の両方を含むことができるXMLベースのマークアップが受信される。既知のXMLベース要素に関連付けられた強く型付けされたツリーがインスタンス化され、既知のXMLベース要素および未知のXMLベース要素の両方に関連付けられた弱く型付けされたツリーがインスタンス化される。次に、未知のXMLベース要素を保存する方法で、強く型付けされたツリーおよび弱く型付けされたツリーを相関させる。
【選択図】図5

Description

本発明は、XMLおよびXMLベースのマークアップ言語を処理する方法およびシステムに関する。
一般的に、XMLおよびXMLベースのマークアップ言語は拡張可能である。幾つかのシステムにおいて、拡張性メカニズムは、マークアップを処理する何らかの任意のエージェントによって実装できる既知のネームスペースおよび未知のネームスペースの概念に基づいている。未知のネームスペースは、特定のエージェントが理解できるかどうか分からない任意の拡張子を含むことがある。多数エージェントが一緒にチェーニングされて、マークアップの流れが連続的に単一のエージェントの各々を通過するパイプラインを形成し、エージェントがその流れを何らかの形で修正するとき、導入される拡張性メカニズムは、「マークアップの保存」として知られる、すなわちいずれか1つの特定のエージェントが理解できないマークアップを保存するという困難な問題を呈することになる。
幾つかのシステムにおいては、既知のネームスペースおよび未知のネームスペースの組が、パイプライン内の個々のエージェント間で異なることがある。こうしたシステムにおいては、ネームスペースを理解する次のエージェントは、該ネームスペースからのコンテンツを処理することを望むので、別のエージェントより前に来るいずれかのエージェントが、いずれかの未知のネームスペースからのマークアップを保存することが重要になる。
XMLベースのマークアップ言語のための従来の処理エージェントは、多くの場合、文書オブジェクト・モデル(DOM)ツリーを実装することを選ぶ。DOMツリーは、マークアップ内に見出される各要素タグについて1つのノードを含む、弱く型付けされた構造である。あらゆるノードが弱く型付けされる(weakly typed)ので、エージェントは、未知のネームスペースについてのマークアップを保持する指定されていないタイプのノードを作成し、処理中にこれらのノードを飛ばし、その後、これらを元のマークアップにシリアライズし、次のエージェントに送ることは、かなり単純なプロセスである。
強く型付けされた(strongly typed)環境において、未知のネームスペースの処理は、それほど単純ではない。より具体的には、強く型付けされた環境において、そのマークアップに明確なタイプを割り当てることができないので、未知のネームスペースに関連付けられたマークアップを保存することは、不可能ではないにしても困難である。例えば、マークアップをバイナリ形式のような異なる中間形式に翻訳することによって、XML構文解析プログラムがマークアップを更に処理する場合に、更に別の厄介な問題が存在することがある。こうした状況において、一般に、マークアップを用いるエージェントがこの翻訳ステップを修正することはできない。
したがって、本発明は、強く型付けされた環境および/または中間翻訳段階を必要とする、それらの環境におけるマークアップ保存問題に対する解決法を提供することに関連した問題に起因したものである。
強く型付けされた環境において未知のマークアップを保存する方法およびシステムが説明される。単なる一実施形態においては、既知のXMLベース要素および未知のXMLベース要素の両方を含むことができるXMLベースのマークアップが受信される。既知のXMLベース要素に関連付けられた強く型付けされたツリーがインスタンス化され、既知のXMLベース要素および未知のXMLベース要素の両方に関連付けられた弱く型付けされたツリーがインスタンス化される。次に、強く型付けされたツリーと弱く型付けされたツリーが、未知のXMLベース要素を保存する方法で相関させられる。
概要
以下に説明される方法およびシステムは、強く型付けされた環境との関連で、未知のネームスペース要素に関連付けられたマークアップを保存できる手段を提供するものである。少なくとも幾つかの実施形態において、このことは、既知のXMLベース要素に関連付けられた、いわゆる強く型付けされたツリーおよび既知のXMLベース要素および未知のXMLベース要素に関連付けられた弱く型付けされたツリーをインスタンス化することによって達成される。次に、XMLベースのマークアップをデシリアライゼーションの際に、強く型付けされたツリーと弱く型付けされたツリーを関連させるために、相関プロセスが用いられる。次に、非相関プロセスが、いずれかの未知のネームスペース要素を保存する方法で、XMLベースのマークアップを再シリアライズする。
以下に説明される実施形態は、コンピューティング環境との関連で説明される。パーソナル・コンピュータすなわちPCのようなコンピュータによって実行されるプログラム・モジュールのようなコンピュータ実行可能命令またはコード手段によって、種々の実施形態を実施することができる。一般に、プログラム・モジュールは、特定のタスクを実行するかまたは特定の抽象データ・タイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。
PC以外のコンピュータ・システム構成において、種々の実施形態を実施することができる。例えば、ハンドヘルド装置、マルチプロセッサ・システム、マイクロプロセッサ・ベースのまたはプログラム可能な家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレーム・コンピュータ等において、種々の実施形態を実現することができる。代替的にまたは付加的に、通信ネットワークを通して接続されたリモート処理装置によってタスクを実行する分散型コンピューティング環境において、種々の実施形態を実施することもできる。分散型コンピューティング環境において、局所的およびリモート記憶装置の両方にプログラム・モジュールを配置することもできる。
上記に示唆されたように、種々の実施形態を多くのタイプのコンピューティング環境に組み込むことが可能であるが、「例示的なコンピューティング環境」という見出しのもとで本文書の最後により詳細に説明される、従来のコンピューティング装置の形態の例示的な汎用コンピューティング装置との関連で、1つの例示的な環境の説明が、図6に表示される。
強く型付けされた環境の特徴
強く型付けされた環境の一例として、図1と関連して以下を考慮する。コンピュータ・ディスプレイ上に表示できるもののようなページのコンテンツ100が、テキスト(Text)102、グラフィックス(Graphics)104、画像(Image)106、幾つかの付加的なテキスト(Text)108、およびクリック可能なボタン(Button)110を含むと仮定する。このコンテンツは、ルートがFixedPageであり、ノードがText、Graphics、Image、Text、およびButtonであるツリー112として(メモリ内に)表すことができる。このツリーのXML表示が、114で示される。
ツリー112において、要素の各々は、1つのクラスのオブジェクトのインスタンスによって表わされる。この例においては、FixedPageは、1つのクラスのインスタンスであり、そのクラスは、childrenと呼ばれる特性を有するものとして定義される。children特性は、強く型付けされており、何らかの大きなクラスの集合として強く型付けされている。ツリーの要素の各々は、この例においてはUIElementである、何らかの基本的クラスのサブ・クラスであるか、または何らかの基本的クラスに由来するクラスネームである。この強く型付けされた環境において、FixedPageのクラス・インスタンスのchildren特性は、基本的クラスであるUIElementに由来するものしか保持することができない。
拡張されたマークアップが失われ得る1つの方法の例
ここで、アプリケーション200が、印刷システム204によって処理されるマークアップ202を生成する、図2に示されるシナリオについて考察する。この例において、印刷システム204は、フィルタすなわちエージェント206、208、および210の集合を含む。フィルタは、一般に、ページまたは文書についてのマークアップを読み込み、これを何らかの形で修正し、次のフィルタによる処理のために提供する。一例として、フィルタは、ページに透かしを加えたり、ページを異なる順番に並べ替えたり、ページ上の画像を拡大縮小、回転、調整したりすることができる。
印刷システムの一例は、Microsoft社のWinFXシステムである。WinFXシステムにおいて、XML、またはWinFXの文脈においてより正確にはXAML(拡張可能なアプリケーション・マークアップ言語:Extensible Application markup Language)を処理する構文解析プログラム212およびシリアライザ214のような標準的なソフトウェア・コンポーネントが存在する。このようなシステムおよび他のシステムにおいては、フィルタ206は、構文解析プログラム212を呼び出して、マークアップを読み込む。これに応答して、構文解析プログラム212は、要素のインスタンス化されたツリー(図1のツリー112のような)をフィルタに戻す。次に、フィルタは、ツリーを処理し、これを何らかの形で修正し、修正されたツリーをシリアライザ214に提供する。次に、シリアライザ214は、修正されたツリーを修正されたマークアップにシリアライズし、該修正されたマークアップは、データ・ストア216で表されるように、何らかの方法で保持される。次に、この場合はフィルタ208である次のフィルタが、構文解析プログラム212を呼び出して、修正されたマークアップを読み込み、上述のような関連したツリー上で作動させ、プロセスを続ける。最後のフィルタが処理を完了した後、修正されたツリーは、シリアライザ214によってシリアライズされ、これをプリンタのような消費デバイスに提供することができる。
この特定のシナリオにおいては、アプリケーション200が、マークアップ202に要素「ext Bar」を挿入したことに注意されたい。恐らく、この要素は、何らかの方法で消費デバイスを制御するために用いられることになる。例えば、消費デバイスがプリンタである場合には、この要素を、文書の印刷に使う特定のタイプのインクを選択することに関連付けることができる。しかしながら、強く型付けされた環境においては、この要素または関連付けられたネームスペースは未知であり、よって第1のフィルタ後に失われることになる。
強く型付けされた環境において拡張されたマークアップを保存する
これから説明する実施形態によると、既知のXMLベース要素に関連付けられた強く型付けされたツリーと、既知および未知のXMLベース要素に関連付けられた弱く型付けされたツリーをインスタンス化することによって、XML(または、以下で説明される実施例においてはXAML)の処理中に、強く型付けされた環境において未知の要素が保存される。次に、2つのツリーが互いに相関するので、弱く型付けされたツリーが未知の要素を含み、強く型付けされたツリーの既知の要素と相関する。2つのツリーが相関されたままなので、未知のマークアップを保存する方法で、弱く型付けされたツリーをXML(またはXAML)に再シリアライズ(re−serialize)することができる。
実施例として、Microsoft社のWinFXプラットフォームに即して実施を提供する図3を考察する。説明しようとしている実施は、特許請求される主題の適用を特定の実施またはプラットフォームに限定するように用いられるべきではないことを認識し、理解すべきである。寧ろ、この実施例は、1つの特定の環境において、ここに説明される本発明の種々の原則をどのように実装できるかを示すために提供される。
この特定の例において、システム300は、ソフトウェア・ベースのシステムであり、アプリケーション/フィルタ302と、バイナリ変換器コンポーネントおよびツリー作成器コンポーネントを有する構文解析プログラム304と、シリアライザ306と、カスタム・デシリアライザ308と、設計者ヘルパ310とを含む。
WinFXプラットフォームとの関連で、構文解析プログラム304は、図示されていない他のコンポーネントと協働して、XMLベースのマークアップを構文解析し、既知の要素タグをWinFXクラスに合致させ、WinFXクラス・オブジェクトをインスタンス化するWinFXオブジェクトである。構文解析プログラム304は、強く型付けされたWinFXツリーを戻す。シリアライザ306は、強く型付けされたWinFXツリーを取得し、これをXMLマークアップにシリアライズするWinFXオブジェクトである。
カスタム・デシリアライザ308(この文脈においては、カスタムXAMLデシリアライザとも考えられる)は、構文解析プログラム304によって構文解析されるマークアップ要素の各々についての通知を受信するWinFXオブジェクトである。カスタム・デシリアライザは、任意の計算を行うことができる。マークアップ要素を処理した後、カスタム・デシリアライザは、結果コードを戻し、要素を使用すべきかまたは飛ばすべきかを構文解析プログラム304に命令する。
設計者ヘルパ310は、強く型付けされたWinFXオブジェクトについてのマークアップが作成される前に、シリアライザ306によって呼び出されるWinFXオブジェクトである。設計者ヘルパは、付加的マークアップを出すことができる。
作動において、システム300は、次のように作動する。図2のXML(または、XAML)が、システム300によって処理されると仮定する。図2の例において、未知のXML要素「ext Bar」が、他の方法でXML要素の既知の集合に挿入されたことに注意されたい。構文解析プログラム304がXMLを受信したとき、この特定のシナリオにおいて、2つのことが起こる。
第1に、XMLは、構文解析プログラムのバイナリ変換器によって処理され、この例においてはBAMLと呼ばれるXMLのバイナリ表示に変換される。次に、バイナリ表示が保存される。しかしながら、バイナリ変換プロセスにおいては、強く型付けされた環境内で行われる処理によって、全ての既知でない要素が無視される。したがって、XMLを処理する際、「ext Bar」要素に遭遇したとき、この「ext Bar」要素は無視され、バイナリ変換において事実上失われる。
第2に、構文解析プログラムのツリー作成器は、保存されたバイナリ表示を取得し、該バイナリ表示を処理して、強く型付けされたツリーであるオブジェクト・ツリーをインスタンス化する。このことは、ツリー作成器コンポーネントの右側に図式的に示されている。次に、このツリーをアプリケーション/フィルタ302に送り、処理することができる。
図示され、説明される実施形態において、バイナリ変換プロセスが行われるのと同時に、バイナリ変換器は、XML内で遭遇した各ノードまたは要素についてのカスタム・デシリアライザ308を呼び出す。この例において、カスタム・デシリアライザは、拡張性をプロセスに挿入する。より具体的には、構文解析プログラム304によって構文解析されるノードの各々について、カスタム・デシリアライザが呼び出され、該カスタム・デシリアライザが、ノードまたは要素をどのように処理すべきかを決定する。ノードが既知である場合(すなわち、ノードが、Text、Graphics等のような既知の要素に関連付けられている場合)、カスタム・デシリアライザ308は、構文解析プログラムに戻り、該構文解析プログラムが通常どおりにノードを処理すべきであることを示す。他方、未知のノードまたは要素が存在する場合には、カスタム・デシリアライザは構文解析プログラムに戻り、該構文解析プログラムがノードをスキップするべきであり、該ノードをバイナリ表示に移さないことを示す。
未知のノードまたは要素を飛ばすべきであることを構文解析プログラム304に示すことに加えて、カスタム・デシリアライザは、弱く型付けされたDOMツリーを構築する。すなわち、デシリアライザは、拡張点内から、弱く型付けされたDOMツリーを構築する。この弱く型付けされたDOMツリーが、カスタム・デシリアライザ308の左側に図式的に示される。
この特定の例において、あらゆる既知の要素について、デシリアライザは、例えば、ヌル・オブジェクトのようなプレースホルダ・ノードを弱く型付けされたツリー内に作成する。図示の例において、これらのプレースホルダは、黒く塗りつぶされた小円として示される。未知の要素(「ext Bar」要素のような)については、デシリアライザは、元のマークアップ、すなわちマークアップのテキスト文字列「<ext Bar/>」を含む「保存(preserve)」ノードを作成する。これは、弱く型付けされたツリー内の星形ノードによって図式的に示される。
プロセスのこの時点においては、2つのツリーが存在する。すなわち、1つは既知の要素に関連付けられたノードを含む強く型付けされたツリーであり、他方は、既知の要素のためのプレースホルダを含むノードと、未知のマークアップに関連付けられたノードとを有する弱く型付けされたツリーである。
今や両方のツリーが作成されたので、弱く型付けされたツリーのノードを強く型付けされたツリーのノードと相関させるために、ノードごとに各々のツリーをウォークする。弱く型付けされたツリー内のノードが、強く型付けされたオブジェクトのためのプレースホルダを有する場合には、弱く型付けされたツリー内のノードは、強く型付けされたツリー内の対応するオブジェクトまたはノードに設定される。他方、弱く型付けされたツリー内のノードが、強く型付けされたツリー内の強く型付けされたオブジェクトのためのプレースホルダに設定されない場合には、弱く型付けされたツリーのノードを飛ばし、プロセスは、弱く型付けされたツリー内の次のノードに進む。この弱く型付けされたツリー内の次のノードが、強く型付けされたツリー内の強く型付けされたオブジェクトに関連付けられたプレースホルダを有する場合には、弱く型付けされたツリーのノードは、強く型付けされたツリー内の対応するオブジェクトまたはノードに設定され、プロセスは、両方のツリーをウォークするまで続く。したがって、このプロセスは、強く型付けされたツリーからのオブジェクトまたはノードと共に、弱く型付けされたツリーを有効に取り込むものである。
相関処理後、完全に取り込まれた弱く型付けされたツリーが戻される。弱く型付けされたツリーと強く型付けされたツリーとの間の相関が確立されると、強く型付けされたツリーをアプリケーション302に戻し、該アプリケーションによって作動させることができる。例えば、アプリケーションは、強く型付けされたツリー上のノードを修正または削除することができる。
アプリケーションが何らかの方法で強く型付けされたツリー上で作動すると、修正された強く型付けされたツリーが、シリアライザ306に提供され、XML(または、XAML)に再シリアライズされる。
再シリアライズする際に、相関処理の逆が行なわれる。一例として、アプリケーション302が、強く型付けされたツリー内の上から2番目のノードを削除したと仮定する。これは、図4に図式的に示されている。ここで、シリアライザは、強く型付けされたツリー内のどのノードが弱く型付けされたツリー内のどのノードに対応するかを見つけ、次に、弱く型付けされたツリーを強く型付けされたツリーと相関させる。
例えば、シリアライズする際に、シリアライザ306が、強くおよび弱く型付けされたツリーをウォークし、該弱く型付けされたツリー上のノードを修正し、該強く型付けされたツリー上で行われた処理を反映させる。この特定の例においては、シリアライザは、強く型付けされたツリーおよび弱く型付けされたツリーにおける第1のノードに遭遇する。これらのノードが互いに対応する場合には、シリアライザは、各ツリー内の次のノードに移動し、対応を調べる。この特定の例においては、強く型付けされたツリー内の次のノードは、アプリケーションによって削除された。シリアライザは応答して、弱く型付けされたツリー内の対応するノードを見つけ、これを削除する。このことは、点線によって図面内に図式的に示される。
続けて、シリアライザは、強く型付けされたツリー内の次のノード−ここでは、(削除されたノードを含めて)上から3番目のノードを見つけ出す。次に、シリアライザは、弱く型付けされたツリー内の対応するノードを見つける。しかしながら、ここでは、弱く型付けされたツリーの最後に処理された対応するノードと現在の対応するノードとの間に付加的なノード(すなわち、「ext Bar」に対応するもの)が存在する。この場合、介在するノードが強く型付けされたノードに対応するものでない場合には、これは、未加工のXMLとしてシリアライズされる。
次に、シリアライザは、引き続き強く型付けされたツリーおよび弱く型付けされたツリーを処理し、これにより、修正された強く型付けされたツリーに適合した形で弱く型付けされたツリーがシリアライズされる。したがって、このようにして、シリアライゼーションを行い、強く型付けされた環境に関連付けられたものでない拡張された要素を保存することができる。
この例は、修正された強く型付けされたツリーに対応させるための、弱く型付けされたツリーのシリアライゼーションについて説明するが、シリアライゼーション・プロセス全体を通じて種々の規則を適用し、弱く型付けされたツリーに対応する最終的にシリアライズされるXMLに作用させることができるように、種々の規則を用い得ることを理解すべきである。例えば、どのノードをシリアライズすべきであり、どのノードをシリアライズすべきでないかを定める幾つかの規則を特定することができる。このようにして、種々の規則はシリアライゼーション・プロセスを推進することができ、特に、強く型付けされた環境において、その環境について既知でないXMLに挿入された要素があるという事実に即して言えば、生成されたシリアライズされたXMLは、所望の形態および予測可能な形態から構成される。
例示的な方法
図5は、一実施形態に従った方法におけるステップを説明するフロー図である。この方法は、いずれかの適切なハードウェア、ソフトウェア、ファームウェア、またはそれらの組み合わせに実装することができる。単なる一例において、この方法は、すぐ上に説明されたもののようなシステムと共に実装することもできる。しかしながら、特許請求される主題の精神および範囲を逸脱することなく、他のシステムが本方法を実装できることを認識し、理解するべきである。
ステップ500では、強く型付けされたツリーおよび弱く型付けされたツリーをインスタンス化する。この例において、強く型付けされたツリーは、強く型付けされた環境内で既知の要素またはノードを含み、弱く型付けされたツリーは、強く型付けされた要素に関連付けられたノード、ならびに対応するXMLに挿入された要素に関連付けられ、特定の強く型付けされた環境内で必ずしも既知ではないノードを含む。ステップ502では、強く型付けされたツリーおよび弱く型付けされたツリーを相関させるので、該弱く型付けされたツリーは、該強く型付けされたツリー上の既知のノードに対応するノードを有する。
いずれかの適切な方法でツリーの相関を行なうことができる。上述のプロセスにおいて、弱く型付けされたツリーは、強く型付けされた要素に対応するノードのためのプレースホルダを含み、両方のツリーを並行してウォークし、強く型付けされたノードに対応する弱く型付けされたノードを挿入するかまたはこれについての入力を行うことによって、相関を行う。
ツリーが作成され、相関させられると、ステップ504では、強く型付けされたツリーのアプリケーション、フィルタの集合、または何らかの他のコンポーネントを戻すので、強く型付けされたツリーを作動させて、修正された強く型付けされたツリーを提供することができる。強く型付けされたツリーが作動されると、該強く型付けされたツリーは、弱く型付けされたツリーと相関させるために戻される。したがって、ステップ506では、弱く型付けされたツリーを、戻された修正された強く型付けされたツリーと相関させ、ステップ508では、挿入された未知の要素を保存する方法で、相関された弱く型付けされたツリーを再シリアライズする。
擬似コードの例
以下の擬似コードの例は、上述の方法を実施できる1つの方法を提供する。擬似コードは、当業者によって理解され、上述された方法の1つだけの例示的な実施を構成するものである。特許請求される主題の精神および範囲を逸脱することなく、説明される実施形態を実施する他の手段を用い得ることを認識し、理解すべきである。
Figure 2006323816
例示的なコンピューティング環境
上述のように、620で図6に図示するようなコンピューティング装置と共に、種々の実施形態を実施することができる。コンピューティング装置620は、処理ユニット621、システム・メモリ622、およびシステム・メモリを含む種々のシステム・コンポーネントを該処理ユニット621に結合させるシステム・バス623を含む。システム・バス623は、メモリ・バスまたはメモリ・コントローラ、周辺バス、および種々のバス・アーキテクチャのいずれかを用いるローカル・バスを含む、幾つかのタイプのバス構造体のいずれかにすることができる。システム・メモリは、読取り専用メモリ(ROM)624およびランダム・アクセス・メモリ(RAM)625を含む。起動時などに、コンピューティング装置620内の要素間の情報の転送を助ける基本ルーチンを含む基本入出力システム(BIOS)626が、ROM624内に格納される。コンピューティング装置620は、ハードディスク660との間で読み取りおよび書き込みを行うハードディスク・ドライブ627と、取り外し可能な磁気ディスク629との間で読み取りまたは書き込みを行う磁気ディスク・ドライブ628をさらに含む。
ハードディスク・ドライブ627および磁気ディスク・ドライブ628は、それぞれハードディスク・ドライブ・インターフェース632および磁気ディスク・ドライブ・インターフェース632によって、システム・バス623に接続されている。ドライブおよびそれらの関連したコンピュータ可読メディアは、コンピュータ可読命令、データ構造、プログラム・モジュール、およびコンピューティング装置620のための他のデータの不揮発性記憶装置を提供する。ここに説明される例示的な環境は、ハードディスク660および取り外し可能な磁気ディスク629を用いるが、例示的な作動環境においては、光ディスク・ドライブおよびディスク、磁気カセット、フラッシュメモリ・カード、デジタル・ビデオ・ディスク、ベルヌーイ・カートリッジ、ランダム・アクセス・メモリ、読み取り専用メモリ等のようなコンピュータによりアクセス可能なデータを格納できる他のタイプのコンピュータ可読メディアも用い得ることを当業者であれば理解するであろう。
オペレーティング・システム635、1つまたは複数のアプリケーション・プログラム636、他のプログラム・モジュール637、およびプログラム・データ638を含む、多数のプログラム・モジュールを、ハードディスク660、磁気ディスク629、ROM624、またはRAM625上に格納することができる。ユーザは、キーボード640およびポインティング・デバイス642のような入力装置を介して、コマンドおよび情報をコンピューティング装置620に入力することができる。他の入力装置(図示せず)は、マイク、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどを含むことができる。これらのおよび他の入力装置は、システム・バスに結合されたシリアルポート・インターフェース646を通して処理ユニット621に接続されることが多いが、パラレルポート634、ゲームポート、またはユニバーサル・シリアル・バス(USB)のような他のインターフェースによって接続することもできる。モニタ647または他のタイプの表示装置も、ビデオ・アダプタ648のようなインターフェースを介して、システム・バス623に接続される。モニタに加えて、コンピューティング装置は、一般に、パラレルポート・インターフェース634を通してシステム・バス623に接続される、スピーカおよびプリンタ630のような他の周辺出力装置を含む。
コンピューティング装置620は、プリント・サーバ649のような、1つまたは複数のリモートコンピュータへの論理接続を用いて、ネットワーク化環境において作動することができる。プリント・サーバ649は、別のコンピューティング装置、サーバ、ルータ、ネットワーク・コンピューティング装置、ピア装置、または他の共有ネットワーク・ノードとすることができ、一般的には、コンピューティング装置620に関して上述された要素の多くを含むが、プリント・サーバ649は、コンピューティング装置620からの印刷要求を付属のプリンタ650に経路付けするための専用であることが多い。図1に示される論理接続は、ローカル・エリア・ネットワーク(LAN)651および広域エリア・ネットワーク(WAN)652を含む。このようなネットワーク環境は、事務所、企業全体にわたるコンピュータ・ネットワーク、イントラネット、およびインターネットにおいて当たり前のことである。
LANネットワーク環境に用いられるとき、コンピューティング装置620は、ネットワーク・インターフェースまたはアダプタ653を通して、ローカル・ネットワーク651に接続される。WANネットワーク環境に用いられるとき、コンピューティング装置620は、一般に、モデム654、またはWAN652にわたって通信を確立するための他の手段を含む。内蔵式にも、あるいは外付け式にもできるモデム654は、シリアルポート・インターフェース646を介してシステム・バス623に接続される。ネットワーク化環境においては、コンピューティング装置620に関連して示されたプログラム・モジュールまたはその一部を、リモートのメモリ格納装置内に格納することができる。図示のネットワーク接続は例示的なものであり、コンピュータ間に通信リンクを確立する他の手段も用い得ることが理解されるであろう。
上記の説明において、実施形態は、特に指示がない限り、1つまたは複数のコンピュータによって実行される動作および操作の記号表示を参照して説明された。したがって、時としてコンピュータにより実行されると称される、こうした動作および操作は、データを構造化された形態で表す電気信号のコンピュータの処理ユニットによる操作を含むことが理解されるであろう。この操作は、データを変形するか、またはこれをコンピュータのメモリ・システム内の位置に維持し、このことは、当業者には良く理解される方法で、コンピュータの作動を再構成するかまたは他の方法で変更する。データを維持するデータ構造は、該データの形式によって定められる特定の特性を有するメモリの物理的位置である。しかしながら、上記に即して種々の実施形態が説明されたが、当業者であれば、上述の種々の動作および操作をハードウェアにおいても実施できることを理解できるので、これらの実施形態は限定的なものであることを意図していない。
結論
上述の方法およびシステムは、強く型付けされた環境との関連で、未知のネームスペース要素に関連付けられたマークアップを保存することが可能である。少なくとも幾つかの実施形態において、このことは、既知のXMLベース要素に関連付けられた、所謂強く型付けされたツリーと、既知および未知のXMLベース要素に関連付けられた弱く型付けされたツリーをインスタンス化することによって達成される。次に、XMLベースのマークアップのデシリアライゼーションの際に、相関プロセスを用いて、強く型付けされたツリーと弱く型付けされたツリーを相関させる。次に、デシリアライゼーション・プロセスが、何らかの未知のネームスペース要素を保存する方法で、XMLベースのマークアップを再シリアライズする。
本発明は、構造的特徴および/または方法論的ステップに特有の言語で説明されたが、添付の特許請求の範囲に定義された本発明が、必ずしも記載された特定の特徴またはステップに限定されるものでないことを理解すべきである。寧ろ、特定の特徴およびステップは、特許請求された本発明を実施する好ましい形態として開示されている。
強く型付けされた環境の態様を示す図である。 強く型付けされた環境において作動することができる個別のコンポーネントを示す図である。 一実施形態による例示的なコンポーネントを示す図である。 例示的な弱く型付けされたツリーおよび強く型付けされたツリーを示す図である。 一実施形態に従った方法におけるステップを説明するフロー図である。 1つまたは複数の実施形態を実施することができる例示的コンピューティング装置を示す図である。
符号の説明
112:ツリー
114:XML表示
200、302:アプリケーション
202:マークアップ
204:印刷システム
206、2008、210:フィルタ
212、304:構文解析プログラム
214、306:シリアライザ
216:データ・ストア
300:システム
308:カスタム・デシリアライザ
310:設計者ヘルパ
620:コンピューティング装置
621:処理ユニット
622:システム・メモリ
623:システム・バス

Claims (20)

  1. 強く型付けされた環境において、
    既知のXMLベース要素および未知のXMLベース要素の両方を含むことができるXMLベースのマークアップを受信するステップと、
    前記既知のXMLベース要素に関連付けられた強く型付けされたツリーをインスタンス化するステップと、
    前記既知のXMLベース要素および前記未知のXMLベース要素の両方に関連付けられた弱く型付けされたツリーをインスタンス化するステップと、
    前記未知のXMLベース要素を保存する方法で、前記強く型付けされたツリーおよび前記弱く型付けされたツリーを相関させるステップと
    を備えることを特徴とする方法。
  2. 前記インスタンス化する動作は、前記XMLベースのマークアップをデシリアライゼーションの際に行われることを特徴とする請求項1に記載の方法。
  3. 前記相関させる動作は、前記XMLベースのマークアップをデシリアライズするように構成されたデシリアライザ・コンポーネントによって行われることを特徴とする請求項1に記載の方法。
  4. 前記XMLベースのマークアップを受信した後、前記XMLベースのマークアップをバイナリ表示に変換するステップをさらに備えることを特徴とする請求項1に記載の方法。
  5. 前記強く型付けされたツリーをインスタンス化する動作は、前記バイナリ表示で作動し、該強く型付けされたツリーをインスタンス化するステップを含むことを請求項4に記載の方法。
  6. 前記弱く型付けされたツリーをインスタンス化する動作は、
    前記XMLベースのマークアップ内のあらゆる既知の要素について、プレースホルダ・ノードを前記弱く型付けされたツリー内に作成するステップと、
    前記XMLベースのマークアップ内のあらゆる未知の要素について、未知のマークアップを保存するノードを作成するステップと、
    を含むことを特徴とする請求項1に記載の方法。
  7. 前記未知の要素を保存するノードを作成する動作は、前記未知の要素のテキスト文字列を前記ノードに関連付けるステップを含むことを特徴とする請求項6に記載の方法。
  8. 前記プレースホルダ・ノードを作成した後、各々のプレースホルダ・ノードについて、個別のプレースホルダ・ノードを前記強く型付けされたツリー内の対応するノードに設定するステップをさらに備えることを特徴とする請求項6に記載の方法。
  9. 前記強く型付けされたツリーをコンポーネントに戻し、前記コンポーネントが該強く型付けされたツリー上で作動し、修正された強く型付けされたツリーを提供できるようにするステップをさらに備えることを特徴とする請求項1に記載の方法。
  10. 前記修正された強く型付けされたツリーをXMLベースのマークアップにシリアライズするステップをさらに備えることを特徴とする請求項9に記載の方法。
  11. シリアライゼーションの際に、前記弱く型付けされたツリーを前記修正された強く型付けされたツリーと再相関させるステップをさらに備えることを特徴とする請求項10に記載の方法。
  12. シリアライゼーションの際に、どのノードをシリアライズすべきであり、どのノードをシリアライズすべきでないかを定義する1つまたは複数の規則を適用することを可能にするステップをさらに備えることを特徴とする請求項10に記載の方法。
  13. 1つまたは複数のコンピュータ可読メディアと、
    前記1つまたは複数のコンピュータ可読メディア上に組み入れられ、
    既知のXMLベース要素および未知のXMLベース要素の両方を含むことができるXMLベースのマークアップを受信し、
    前記既知のXMLベース要素に関連付けられた強く型付けされたツリーをインスタンス化し、
    前記既知のXMLベース要素および前記未知のXMLベース要素の両方に関連付けられた弱く型付けされたツリーをインスタンス化し、
    前記未知のXMLベース要素を保存する方法で、前記強く型付けされたツリーおよび前記弱く型付けされたツリーを相関させる
    ように構成された1つまたは複数のソフトウェア実装コンポーネントと
    を備えることを特徴とするシステム。
  14. 前記1つまたは複数のソフトウェア実装コンポーネントは、
    前記XMLベースのマークアップを構文解析するための構文解析プログラムと、
    前記構文解析プログラムによって構文解析された各マークアップ要素についての通知を受信するデシリアライザと
    を備え、前記デシリアライザは、前記弱く型付けされたツリーをインスタンス化するように構成されることを特徴とする請求項13に記載のシステム。
  15. 前記1つまたは複数のソフトウェア実装コンポーネントは、
    前記XMLベースのマークアップを構文解析するための構文解析プログラムと、
    前記構文解析プログラムによって構文解析される各マークアップ要素についての通知を受信するデシリアライザと
    を備え、
    前記デシリアライザは、前記弱く型付けされたツリーをインスタンス化し、前記強く型付けされたツリーと該弱く型付けされたツリーを相関させるように構成されることを特徴とする請求項13に記載のシステム。
  16. 前記1つまたは複数のソフトウェア実装コンポーネントは、前記XMLベースのマークアップを構文解析し、該XMLベースのマークアップをバイナリ表示に変換するための構文解析プログラムを含むことを特徴とする請求項13に記載のシステム。
  17. 前記1つまたは複数のソフトウェア実装コンポーネントは、前記XMLベースのマークアップを構文解析し、該XMLベースのマークアップをバイナリ表示に変換し、前記バイナリ表示を用いて、前記強く型付けされたツリーをインスタンス化するための構文解析プログラムを備えることを特徴とする請求項13に記載のシステム。
  18. 前記1つまたは複数のソフトウェア実装コンポーネントは、
    前記XMLベースのマークアップを構文解析するための構文解析プログラムと、
    前記構文解析プログラムによって構文解析される各マークアップ要素についての通知を受信するデシリアライザと
    を備え、前記デシリアライザは、前記XMLベースのマークアップ内のあらゆる既知の要素について前記弱く型付けされたツリー内のプレースホルダ・ノードを作成し、該XMLベースのマークアップ内のあらゆる未知の要素について前記未知のマークアップを保存するノードを作成することによって、該弱く型付けされたツリーをインスタンス化するように構成されることを特徴とする請求項13に記載のシステム。
  19. 前記1つまたは複数のソフトウェア実装コンポーネントは、前記XMLベースのマークアップを構文解析し、前記強く型付けされたツリーを別のコンポーネントに戻し、前記他のコンポーネントが、該強く型付けされたツリー上で作動し、修正された強く型付けされたツリーを提供するようにする構文解析プログラムを含むことを特徴とする請求項13に記載のシステム。
  20. 前記1つまたは複数のソフトウェア実装コンポーネントは、前記XMLベースのマークアップを構文解析し、前記強く型付けされたツリーを別のコンポーネントに戻し、それにより前記他のコンポーネントが該強く型付けされたツリー上で作動し、修正された強く型付けされたツリーを提供するようにする構文解析プログラムを備え、前記修正された強く型付けされたツリーを該XMLベースのマークアップにシリアライズし、シリアライゼーションの際に、前記弱く型付けされたツリーを該修正された強く型付けされたツリーと再相関させるように構成されたシリアライザをさらに備えることを特徴とする請求項13に記載のシステム。
JP2005375507A 2004-12-30 2005-12-27 強く型付けされた環境において未知のマークアップを保存する方法およびシステム Expired - Fee Related JP4943002B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/026,341 2004-12-30
US11/026,341 US7559020B2 (en) 2004-12-30 2004-12-30 Methods and systems for preserving unknown markup in a strongly typed environment

Publications (3)

Publication Number Publication Date
JP2006323816A true JP2006323816A (ja) 2006-11-30
JP2006323816A5 JP2006323816A5 (ja) 2009-03-19
JP4943002B2 JP4943002B2 (ja) 2012-05-30

Family

ID=36032119

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005375507A Expired - Fee Related JP4943002B2 (ja) 2004-12-30 2005-12-27 強く型付けされた環境において未知のマークアップを保存する方法およびシステム

Country Status (6)

Country Link
US (1) US7559020B2 (ja)
EP (1) EP1677206B1 (ja)
JP (1) JP4943002B2 (ja)
KR (1) KR101169169B1 (ja)
CN (1) CN100561472C (ja)
AT (1) ATE524780T1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006046665A1 (ja) * 2004-10-27 2006-05-04 Justsystems Corporation 文書処理装置及び文書処理方法
US20070288893A1 (en) * 2006-06-08 2007-12-13 Microsoft Corporation Extending configuration sections in configuration
US20080016182A1 (en) * 2006-07-11 2008-01-17 Nokia Corporation Dynamic device profile interfaces
US8255790B2 (en) * 2006-09-08 2012-08-28 Microsoft Corporation XML based form modification with import/export capability
US8015483B2 (en) * 2006-10-20 2011-09-06 Microsoft Corporation Processing an XML feed with extensible or non-typed elements
CN101355437A (zh) * 2007-07-25 2009-01-28 华为技术有限公司 告警/事件信息的处理方法和装置
GB2492096B (en) * 2011-06-21 2014-02-19 Canon Kk Method for processing a structured document to render, and corresponding processor

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004046849A (ja) * 2002-06-27 2004-02-12 Microsoft Corp Xmlドキュメントの検証およびスキーマ違反の報告のためのシステムおよび方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6085198A (en) * 1998-06-05 2000-07-04 Sun Microsystems, Inc. Integrated three-tier application framework with automated class and table generation
US6507856B1 (en) * 1999-01-05 2003-01-14 International Business Machines Corporation Dynamic business process automation system using XML documents
US20010054172A1 (en) * 1999-12-03 2001-12-20 Tuatini Jeffrey Taihana Serialization technique
US20040015840A1 (en) * 2001-04-19 2004-01-22 Avaya, Inc. Mechanism for converting between JAVA classes and XML
AU2002334721B2 (en) * 2001-09-28 2008-10-23 Oracle International Corporation An index structure to access hierarchical data in a relational database system
EP1451719B1 (en) * 2001-11-23 2009-05-13 Research In Motion Limited System and method for processing extensible markup language (xml) documents

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004046849A (ja) * 2002-06-27 2004-02-12 Microsoft Corp Xmlドキュメントの検証およびスキーマ違反の報告のためのシステムおよび方法

Also Published As

Publication number Publication date
KR101169169B1 (ko) 2012-07-30
CN1797404A (zh) 2006-07-05
CN100561472C (zh) 2009-11-18
EP1677206A3 (en) 2008-01-23
US7559020B2 (en) 2009-07-07
KR20060079086A (ko) 2006-07-05
JP4943002B2 (ja) 2012-05-30
ATE524780T1 (de) 2011-09-15
EP1677206B1 (en) 2011-09-14
EP1677206A2 (en) 2006-07-05
US20060150083A1 (en) 2006-07-06

Similar Documents

Publication Publication Date Title
JP4943002B2 (ja) 強く型付けされた環境において未知のマークアップを保存する方法およびシステム
US10942943B2 (en) Dynamic field data translation to support high performance stream data processing
US7694284B2 (en) Shareable, bidirectional mechanism for conversion between object model and XML
US9805009B2 (en) Method and device for cascading style sheet (CSS) selector matching
US8959428B2 (en) Method and apparatus for generating an integrated view of multiple databases
US8677328B2 (en) Generating a dynamic content creation program
US20110258538A1 (en) Capturing DOM Modifications Mediated by Decoupled Change Mechanism
US20110145694A1 (en) Method and System for Transforming an Integrated Webpage
JP2004178602A (ja) 階層構造化データをインポートし、エクスポートする方法及びコンピュータ可読媒体
CA2438176A1 (en) Xml-based multi-format business services design pattern
JP2005004772A (ja) 外部プログラムに基づくテーマを使用するWebページレンダリング機構
KR20030094320A (ko) 마크업 언어로 인코딩된 문서의 효율적인 프로세싱 방법및 그 시스템
US20060074838A1 (en) Reducing programming complexity in applications interfacing with parsers for data elements represented according to a markup language
US20090254807A1 (en) Progressive Page Loading
JP2005234837A (ja) 構造化文書処理方法、構造化文書処理システム及びそのプログラム
US20060271850A1 (en) Method and apparatus for transforming a printer into an XML printer
JP2010267092A (ja) 情報処理装置、情報処理方法
JP2008310816A (ja) 複数のマークアップ・ページ・データをコンパクトに表現するシステムおよび方法
US8335984B2 (en) Information processing for generating print data for variable-data printing
JP2003242127A (ja) 業務統合システム
KR100319765B1 (ko) 시각적인 화면 설계와 고속 처리가 가능한 동적문서 연동장치 및 그 방법
JP2004145736A (ja) 文字認識装置および文字認識データ出力方法およびプログラムおよび記録媒体
JP2008536423A (ja) ツリーデータ構造を処理する方法
US20040117724A1 (en) Extensible schema for ink
JP2005107884A (ja) インタフェース定義記述を生成する方法、およびインタフェース定義記述生成装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081210

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090130

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110519

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110524

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110824

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120224

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

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

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees