JP2005507523A - 文書生成に関する改良 - Google Patents
文書生成に関する改良 Download PDFInfo
- Publication number
- JP2005507523A JP2005507523A JP2003540851A JP2003540851A JP2005507523A JP 2005507523 A JP2005507523 A JP 2005507523A JP 2003540851 A JP2003540851 A JP 2003540851A JP 2003540851 A JP2003540851 A JP 2003540851A JP 2005507523 A JP2005507523 A JP 2005507523A
- Authority
- JP
- Japan
- Prior art keywords
- workflow
- document
- type
- instruction
- response
- 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
Links
- 230000006872 improvement Effects 0.000 title description 2
- 239000012634 fragment Substances 0.000 claims abstract description 92
- 230000004044 response Effects 0.000 claims abstract description 79
- 238000000034 method Methods 0.000 claims abstract description 76
- 238000012545 processing Methods 0.000 claims abstract description 64
- 230000008569 process Effects 0.000 claims abstract description 13
- 230000001131 transforming effect Effects 0.000 claims abstract description 6
- 230000009466 transformation Effects 0.000 claims description 22
- 238000006243 chemical reaction Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 4
- 238000000844 transformation Methods 0.000 claims description 4
- 238000013500 data storage Methods 0.000 claims description 3
- 239000000284 extract Substances 0.000 claims description 3
- 238000004891 communication Methods 0.000 claims description 2
- 238000013515 script Methods 0.000 description 13
- 230000008901 benefit Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 230000003068 static effect Effects 0.000 description 11
- 238000013459 approach Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 4
- 238000000926 separation method Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/972—Access to data in other repository systems, e.g. legacy data or dynamic Web page generation
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Document Processing Apparatus (AREA)
Abstract
【課題】データを検索する複数の第1のタイプのワークフロー命令と、検索したデータを複数のマークアップ言語フラグメントに変換する複数の第2のタイプの対応するワークフロー命令とを含むワークフロー文書から応答文書を動的に生成する。
【解決手段】本方法は、ワークフロー文書の選択されたタスクを、その選択されたタスクの第1のタイプの命令を使用して処理すること、その選択されたタスクの第2のタイプの命令を使用して、処理するステップの結果をマークアップ言語フラグメントに変換することと、マークアップ言語フラグメントを応答文書に記憶すること、処理するステップ、変換するステップ、および記憶するステップを繰り返すことであって、それによって、複数のマークアップ言語フラグメントを含む完成した応答文書を作成する、処理するステップ、変換するステップ、および記憶するステップを繰り返すこととを含む。
【選択図】図4
【解決手段】本方法は、ワークフロー文書の選択されたタスクを、その選択されたタスクの第1のタイプの命令を使用して処理すること、その選択されたタスクの第2のタイプの命令を使用して、処理するステップの結果をマークアップ言語フラグメントに変換することと、マークアップ言語フラグメントを応答文書に記憶すること、処理するステップ、変換するステップ、および記憶するステップを繰り返すことであって、それによって、複数のマークアップ言語フラグメントを含む完成した応答文書を作成する、処理するステップ、変換するステップ、および記憶するステップを繰り返すこととを含む。
【選択図】図4
Description
【技術分野】
【0001】
[発明の技術分野]
本発明は、文書生成に関する改良に関する。
特に、本発明は、応答文書、例えばウェブページの動的な作成に関するが、これに限られるものではない。
本発明は、多くの応用分野を有し、この応用分野には、電子商取引ウェブサイト、ウェブページ制作、およびXML文書生成が含まれるが、これらに限定されるものではない。
【背景技術】
【0002】
[発明の背景]
インターネットは、TCP/IPプロトコルスイートを使用して、通信リンクを介して互いに通信するコンピュータおよびコンピュータネットワークの集まりである。
インターネットは、さまざまな異なるサービスをユーザに提供する。
このさまざまな異なるサービスは、例えば、電子メール、FTP、ゴーファー(Gopher)、テルネット(Telnet)、およびワールドワイドウェブといったサービスである。
ワールドワイドウェブ(以下では「ウェブ」と呼ぶ)は、世界中に配置されたHTTP(ハイパーテキスト転送プロトコル(Hypertext Transfer Protocol))サーバコンピュータに存在する相互リンクされた文書の集合である。
これらの相互リンクされた文書は、「ウェブページ」として知られており、通常、ハイパーテキストマークアップ言語(Hypertext Markup Language(HTML))で記述される。
ウェブページは、ユニフォームリソースロケータ(URL)によって特定される。
ユニフォームリソースロケータは、特定のコンピュータおよびパス名を指定するものであり、このコンピュータおよびパス名によって、ウェブページにアクセスすることができる。
【0003】
関係するウェブページ、ならびに、ファイル、スクリプト、データベース、および画像といった他の構成要素の群は、結合されて、ウェブサイトを形成する。
ウェブサイトを閲覧するために、ウェブページが、HTTPを使用してサーバコンピュータからユーザコンピュータ(「クライアントコンピュータ」として知られている)に伝送され、ウェブブラウザに表示される。
ウェブブラウザは、ユーザがHTML文書を捜しだして閲覧するソフトウェアアプリケーションである。
ユーザは、ウェブページにアクセスするために、ウェブページのURLをウェブブラウザに入力し、ウェブブラウザは、要求されたウェブページを捜しだして表示する。
【0004】
HTMLは、標準汎用マークアップ言語(SGML(Standard Markup Generalized Language))のサブセットである。
標準汎用マークアップ言語は、フォーマット、インデックス、およびリンクされた情報を含むプラットフォームおよびアプリケーションから独立した文書を提供する手段である。
SGMLは、文法と同様の構造を提供し、この構造によって、ユーザは、自身の文書の構造と、この構造を表すのに使用されるタグとを定義することができる。
タグは、文書に挿入されるコマンドであり、その文書または文書の一部がどのようにフォーマットされるべきかを指定するコマンドである。
【0005】
HTMLウェブページは、テキストエディタを使用して作成することもできるし、あるいは、DreamWeaver(商標)またはFrontPage(商標)といったソフトウェアパッケージを使用して作成することもできる。
これらのソフトウェアパッケージにより、設計者は、おそらく少量のHTMLを除き、基礎となるプログラムコードについて何も知る必要なく、機能的で魅力的なウェブサイトを作成することが可能となる。
このようにして作成されたページは、「静的ウェブページ」として知られている。
これらの静的ウェブページは、通例、ISP(インターネットサービスプロバイダ)によって設けられるサーバに存在し、それによって、そのウェブページがユーザ自身のサーバまたは企業自身のサーバに存在する場合よりも高速で信頼性のあるサービスが提供される。
しかしながら、これらのウェブページのコンテンツを変更する場合、実際のHTMLテキストを編集しなければならなくなる。
これを行うには、ユーザが、自身でHTMLウェブページを編集して、それらのHTMLウェブページをISPに返信する必要がある。
これの不利な点は、ISPの中には、1年あたりのウェブサイトへの自由な訂正をある一定の回数しか許可していないものがあるということである。
ユーザが、これよりも多くの訂正を行いたい場合、追加手数料を支払うことなる可能性がある。
【0006】
この不利な点は、動的コンテンツの表示能力を有するウェブページを使用することにより克服することができる。
この動的コンテンツは、例えば、現在の金利、天気情報、旅行情報などであってもよい。
この情報は、データベースに保持される可能性があり、ウェブ設計者は、この情報をウェブページに挿入するために、データベースを呼び出さなければならい。
これを行うには、ある一定量のプログラミングの知識が必要となる。
確かに、ウェブページの直接的な設計とは異なるものに、プログラムロジックのある知識が必要とされる可能性があり、ほとんどのウェブ設計者は、この知識を利用することができない。
これは、ウェブサイトの機能が、例えばJava(登録商標)といったプログラム言語の使用または共通ゲートウェイインターフェース(CGI)スクリプトの使用によって提供される可能性があることによるものである。
【0007】
CGIは、ウェブサーバとCGIプログラムとの間で情報を転送するための仕様である。
CGIプログラムは、CGI仕様と適合するデータを受け取って、CGI仕様と適合するデータを返すように設計された任意のプログラムである。
このプログラムは、どのプログラム言語でも記述することができ、このプログラム言語には、C、Perl、Java、またはVisual Basicが含まれる。
CGIプログラムは、ウェブサーバがユーザと動的に対話するための最も一般的な方法である。
書式を含む多くのHTMLウェブページは、例えば、その書式のデータがウェブサーバに送信されるとすぐに、CGIプログラムを使用して、そのデータを処理する。
CGIを使用することによる1つの不利な点は、CGIスクリプトが実行されるたびに、新しいプロセスがサーバで起動されることである。
これは、サーバの速度をかなり遅くすることがある。
【0008】
動的な情報をウェブユーザに提供する、まずます一般的となってきた別の方法は、ウェブサーバではなくクライアントのマシンで実行されるスクリプトまたはプログラムを含めることである。
これらのプログラムは、Javaスクリプト、Javaアプレット、またはActiveXコントロールとすることができる。
しかしながら、この場合も、これらのツールには、ある一定量のプログラムロジックが必要であり、ウェブ設計者は、その知識を深く有するとは考えられない。
【0009】
動的なウェブページを作成するさらに別の方法は、例えばサーブレット(すなわち小さなJavaプログラム)といったプログラムを使用するものである。
このプログラムは、サーバに設けられ、サーバで実行される。
サーブレットの機能は、以下に説明するJava Server Pages(商標)(以下、JSPと呼ぶ)を使用することによって拡張されている。
【0010】
Java Server Pageは、標準的なHTMLページと非常によく似ているが、静的HTMLと共に、「スクリプトレット」として知られている小さなスクリプトからなる。
スクリプトレットは、Java Server Pageが要求された時に実行される少量のコードであり、したがって、スクリプトレットは、ページの動的コンテンツを生成するのに使用することができる。
スクリプトレットは、次の書式:<% Javaコード %>を有する。
これらのマーカ内にある任意のコードが、サーバで処理される。
JSPエンジン(例えばサーブレット)は、サーバに設けられ、サーバは、JSPスクリプトレットを解釈して、例えば、ファイルを含めるか、または、データベースにアクセスすることによって、ウェブページの動的コンテンツを生成する。
この動的コンテンツは、その後、静的HTMLと結合され、ユーザのウェブブラウザに返信されるHTMLページが作成される。
【0011】
しかしながら、JSPは、静的HTMLおよび動的な構成要素を混合したものであるので、真に動的なウェブページを作成することは非常に難しい。
さらに、JSPは、ウェブ設計者の問題の原因となるJavaコードをHTMLウェブページに組み込む。
この問題を克服しようとして、JPSカスタムタグが開発されている。
これらのタグにより、ウェブ開発者は、理論的には、すべてのJavaコードを取り除くことができるが、これは、タグを最初に作成することの難しさ、あるいは、設計者の要求を満たす既存のタグライブラリを見つけることの難しさを伴わないわけではない。
カスタムタグによっても、純粋なJSPページのすべてのJavaコードを取り除くことは、事実上不可能である。
具体的には、複雑なHTML書式がサーバに送信されて、JSPがその書式データの妥当性の確認を行わなければならない場合、純粋なJSP手法は、より扱いにくくなる。
【0012】
SunのJSPに類似する技術が、MicrosoftのActive Server Page(ASP)である。
ASPは、例えば電子商取引で使用される対話型ウェブページを作成して、ウェブアプリケーションを構築するのに使用できるサーバ側のスクリプト作成環境である。
より具体的には、ASPは、テキストおよびHTMLタグ(標準的なウェブページと同様)だけでなく、例えばVBScriptまたはJavaScriptといったスクリプト言語(すなわち、特別なタスクまたは限定的なタスクを実行するように設計された簡単なプログラム言語)で記述されたコマンドをも含むテキストファイルである。
サーバは、ASPファイルの要求を受信すると、これらのスクリプトコマンドをサーバにおいて処理し、ウェブページを構築する。
このウェブページは、次に、その後の表示のために、ウェブブラウザに送信される。
ASPを使用して動的なウェブページを作成することの不利な点は、VBSciptが使用されると、このスクリプトコードが、Visual Basicで記述され、あらゆるサーバで実行できるとは限らないということである。
これに加えて、プログラムロジックが、ウェブページのコンテンツのフォーマットから完全に分離されていないことが挙げられる。
【0013】
スクリプト言語XSP(XMLサーバページ言語)で記述されたスクリプトを使用して、XML文書の様式およびコンテンツを生成する方法は、特許文献1(英国公開特許GB 2 359 645A(Dell Products L.P.))に記載されている。
このスクリプト言語は、XML文書に含まれるコンテンツを指定する第1の文書を生成するための制御文、および、XML文書のコンテンツの様式を指定する第2の文書を生成するための制御文を含む。
この方法は、単一コンテンツの文書および単一様式の文書のみを作成するので、そのコンテンツをどのような様式にするかを制御するために、スクリプトには制御ロジックが含まれなければならない。
これに加えて、XMLの命令およびXSLの命令が、XSPスクリプトに組み込まれる。
したがって、十分に様式化されたXML文書を作成するには、依然として、ある一定量のプログラミングの知識が、この方法を使用するウェブ設計者に必要となる。
【0014】
このデータ、プレゼンテーション、およびプログラムロジックの分離の問題は、ウェブ開発者に常に課題となってきたが、上述した解決への試みには、すべて難しい点が存在する。
【特許文献1】
英国公開特許GB 2 359 645A
【発明の開示】
【発明が解決しようとする課題】
【0015】
したがって、例えばウェブページであって、そのページのレイアウトの設計が、そのページの基礎を成すプログラムロジックから完全に独立したウェブページ、といった文書を動的に生成する方法に対する要求が存在する。
【課題を解決するための手段】
【0016】
[発明の概要]
本発明の第1の態様によれば、データを検索する複数の第1のタイプのワークフロー命令と、検索したデータを複数のマークアップ言語フラグメントに変換する複数の第2のタイプの対応するワークフロー命令とを含むワークフロー文書から応答文書を動的に生成する方法であって、ワークフロー文書の選択されたタスクを、その選択されたタスクの第1のタイプの命令を使用して処理すること、その選択されたタスクの第2のタイプの命令を使用して、処理するステップの結果をマークアップ言語フラグメントに変換すること、マークアップ言語フラグメントを応答文書に記憶すること、処理するステップ、変換するステップ、および記憶するステップを繰り返すことであって、それによって、複数のマークアップ言語フラグメントを含む完成した応答文書を作成する、処理するステップ、変換するステップ、および記憶するステップを繰り返すこと、とを含む方法が提供される。
【0017】
本発明の第2の態様によれば、データを検索する複数の第1のタイプのワークフロー命令と、検索したデータを複数のマークアップ言語フラグメントに変換する複数の第2のタイプの対応するワークフロー命令とを含むワークフロー文書から応答文書を動的に生成するシステムであって、第1のタイプのワークフロー命令のそれぞれを処理して、対応する出力を生成する処理手段と、対応する第2のタイプのワークフロー命令のそれぞれを実行して、処理手段の出力のそれぞれを複数のマークアップ言語フラグメントの1つに変換する変換手段と、変換手段によって生成された複数のマークアップ言語フラグメントのそれぞれを応答文書に記憶するデータ記憶装置と、を備えるシステムが提供される。
【0018】
本発明の第3の態様によれば、上記方法および/またはシステムに使用するワークフロー文書であって、複数のワークフロータスクであって、各タスクが、データを検索する第1のタイプのワークフロー命令と、検索したデータをマークアップ言語フラグメントに変換する、対応する第2のタイプのワークフロー命令とを含む、複数のワークフロータスクを含むワークフロー文書が提供される。
【0019】
したがって、マークアップ言語で記述される文書(例えばウェブページ)の構築を、複数のワークフロータスクの組み立て、実行、そして変換描写に削減することができる。
さらに、プログラミング要素(動的コンテンツ)を、設計要素(ウェブページの動的コンテンツのフォーマット)から完全に分離することができる。
これにより、ウェブ設計者は、第2のタイプの命令を単に変更することにより、ウェブページ生成命令の動的なプログラミング部分の必ずしもすべてを変更する必要なく、ウェブページ(またはマークアップ言語で記述された他の文書)の動的コンテンツの外観を変更することができる。
【0020】
また、このように動的ウェブコンテンツ生成命令を分離することにより、ウェブ設計者は、ウェブプログラマから完全に独立して作業することができ、それによって、ウェブサイト開発全体の時間を短縮することができる。
さらに、第2のタイプの命令のライブラリが作成されている場合、ウェブ設計者は、関連付けられた第1のタイプのコマンドによって取得された、動的ウェブコンテンツに適用される必要な動的スタイルを簡単に選択することができる。
【0021】
ワークフロー文書は、ワークフロープロセッサによって処理されることが好ましく、サーバに存在するサーブレットを通じてアクセスされることが最も好ましい。
ワークフロープロセッサは、サーバに位置する小さなプログラムであり、好ましくはメッセージキューを介してサーブレットと対話する。
ワークフロー文書の処理は、ワークフロー文書を構文解析すること、第1のタイプのワークフロー命令および第2のタイプのワークフロー命令を抽出すること、その後に第1のタイプのワークフロー命令を実行してデータを検索することとを含むことが好ましい。
このデータは、ウェブページコンテンツを含んでもよい。
構文解析は、例えばXercesまたはCrimsonといったXMLパーサを使用して行うことができる。
これらのXMLパーサは、Apache機関から入手することができる。
検索されたデータは、中間コードに組み込まれることが好ましい。
この中間コードは、例えばXMLといったマークアップコードであってもよい。
次に、中間コードは、第2のタイプのワークフロー命令を実行することにより、マークアップ言語フラグメントに変換される(このマークアップ言語は、ウェブブラウザによって理解されることが好ましい)。
次に、応答文書は、クライアントサーバ環境のクライアントマシンで表示(または別の処理)を行うためにクライアントに返されることが好ましい。
この応答文書は、例えばHTMLといった、ウェブブラウザによって理解される言語で記述されることが好ましい。
しかしながら、本方法を必ずしもクライアントサーバ環境で実行する必要はなく、ネットワークの一部でないパーソナルコンピュータで実行することもできるし、他の任意の適切なコンピューティング環境で実行することもできる。
【0022】
ワークフロー文書に含まれるワークフロータスクは、ワークフロー文書に現れる順番で実行することが好ましい。
しかしながら、それらのタスクは、異なる順序で実行することもできる。
【0023】
第1のワークフロー命令および第2のワークフロー命令は、マークアップ言語で記述されることが好ましい。
ワークフロー命令(およびワークフロー文書全体)は、拡張可能マークアップ言語(XML(eXtensible Markup Language))で記述されることが最も好ましい。
第1のタイプのワークフロー命令を、以下では、XML命令と呼ぶこととする。
ただし、この命令は、別のワークフロー言語を使用して定義することもできる。
【0024】
中間コードとXML命令の実行により検索されたデータとを組み合わせたものを、以下では、XMLフラグメントと呼ぶこととする。
【0025】
XMLは、情報を「自己記述型」にするように設計されているSGMLに基づいた比較的新しいマークアップ言語である。
XMLは、ユーザ定義のマークアップ言語を作成するのに使用できるルールからなる。
あるXMLのルールは、タグが、常に2つ一組として使用されなければならず、そのタグが参照するデータを取り囲まなければならないというものである。
別のルールは、ツリーを形成するようにタグを互いの中にネストできるというものである。
このように、XMLは、コンピュータプログラムが処理し、理解することができるだけでなく、普通のテキストで記述されるので、ユーザも理解することができる。
XMLにより、設計者は、自身のカスタム化されたタグを作成して、自身のアプリケーション特有の文書タイプを作成することが可能になる。
さらに、HTMLのリンクが、他の1つの文書だけを参照できるのと異なり、XMLは、例えば、複数の文書を指し示すリンクをサポートすることにより、HTMLよりも高機能をサポートする。
【0026】
XML文書は、ノードからなるツリーとして構造化される。
各ノードは、他のノードを包含することができる。
これらの「包含された」ノードのそれぞれは、子ノードと定義される。
これらの包含されたノードのそれぞれも、同様にして、子ノードを持つことがあり、それ以降の子ノードについても同様である。
例えば、次のようになる。
【0027】
【0028】
この例では、Aは、ルールノードであり、Bは、Aの子ノードであり、Cは、Bの子ノードであり、Dは、Cの子ノードである。
【0029】
上述したように、ウェブページは、大部分、HTMLで記述される。
HTMLは、ウェブページの情報をフォーマットするために、例えば<p>(パラグラフの開始を示す)および<b>(ボールド体のテキストを示す)といったあらかじめ定義されたタグを使用する。
これらのタグの意味は、ウェブブラウザによってよく理解される。
XMLによると、とにかくあらゆるタグを使用することができる。
しかしながら、これらのタグの意味は、ウェブブラウザによって自動的には理解されない。
例えば、<table>は、HTMLテーブルを意味することがあるが、XMLで記述された文書で使用された場合、1つの家具を意味することがある。
【0030】
XMLのタグは、ユーザが定義するので、XML文書を表示する標準的な方法は存在しない。
したがって、その文書をどのように表示すべきかを記述する方法が必要とされる。
XML文書をどのように表示すべきかを指示する1つの方法は、例えばカスケーディングスタイルシート(CSS(Cascading Style Sheet))および拡張可能スタイルシート言語(XSL(eXtensible Style sheet Language))といった「スタイルシート」の使用を通じて指示するものである。
XSLファイルは、それ自体、XMLを使用して記述される。
【0031】
XSLは、XML文書を変換する方法と、XML文書をフォーマットする方法との2つの部分からなる。
すなわち、ウェブブラウザが、XSLを表示することができるように、XSLは、XMLをHTMLまたはXHTML(XHTMLは、SGMLの代わりにXMLの応用として、HTML4.0の再定式化である)に変換することができる。
また、XSLは、XML文書のデータの値に基づいて、そのデータをフォーマットすることができる。
XML文書を、従来技術で知られている別のフォーマットの出力文書に変換するのに必要なステップを示した概略ブロック図を図1aに示す。
【0032】
各XMLのフラグメントは、第2のタイプの命令によってマークアップ言語(このマークアップ言語は、ウェブブラウザによって理解されるものが好ましい)のフラグメントに変換される。
この変換は、XMLのフラグメントに適用する変換を指定することにより行われることが好ましい。
この第2の命令は、どの変換がXMLのフラグメントに適用されるかを指定する。
この変換は、XSL−Tとして知られているXSL変換であることが好ましい。
XSL−Tは、XSL−T文書またはスタイルシート内で定義されることが最も好ましい。
しかしながら、XSL変換だけでなく代わりとなる変換タイプを指定することが望ましい場合もある。
例えば、第2のタイプの命令は、オペレーションを指定することができる。
このオペレーションは、XQuery命令によって指定することができ、XQuery命令によって、XML文書に問い合わせを行い、その出力としてXML文書を作成することが可能となる。
以下の例では、2つのワークフロータスクを示す。
第1のタスクは、XMLデータを検索する第1の命令と、XQuery命令を指定する第2の命令とを含む。
【0033】
【0034】
第1のワークフロータスクの第2の命令は、名前tmp1.xmlの下に記憶される文書を作成するbooks.xml文書に問い合わせを行う。
次に、この文書は、第2のワークフロータスクによって指定されるXSL−T文書を使用してHTML文書に変換され、その結果が表示される。
文書books.xmlを以下に示す。
【0035】
【0036】
問い合わせの一例を、「1991年以降にAddison-Wesleyによって出版された本を、それらの出版年および題名を含めて一覧表示せよ」によって与えることができる。
これは、以下によって与えられる。
【0037】
【0038】
上記問い合わせにより、以下の結果が得られる。
【0039】
【0040】
第2のタイプのワークフロー命令は、例えば妥当性確認(ウェブ設計者は、例えば、文書が正しく記入されていること、または、文書がある指定されたシンタックスに適合していることをチェックしたい場合がある)、および、検索されたデータにデジタル署名を挿入するといった他のタイプのオペレーションを指定することができる。
【0041】
XML命令は、検索されるデータ、および、そのデータがどのようにアクセスされるか、または、どのように生成されるかを指定する。
したがって、XML命令は、「リソースタイプ(resource type)」指定子と、そのリソースが記憶されている場所を指し示す「ロケーション(location)」とからなることが好ましい(リソースは、XMLフラグメントを返すことができる任意のソフトウェアコンポーネントである)。
例えば、リソースタイプは、ファイルであってもよく、この場合、そのロケーションは、例えばURLによって指定されるこのファイルのロケーションとなる。
【0042】
ファイルの呼び出しに加えて、XML命令は、例えば、データベースを呼び出してデータを検索することができ、静的テキストまたは提携コンテンツ(syndicated content)(すなわち、例えば画像データベースプロバイダといったサードパーティから取得されるコンテンツ)を要求することができる。
また、XML命令は、ウェブサイトまたはページとのユーザの対話についての状態情報を取得するために使用することもできる。
例えば、XML命令は、ユーザが記入したHTML書式を処理する必要があることを指定する命令であってもよい。
データベースの呼び出しを例に取ると、XML命令は、データベースを呼び出してXML中間コードを取得する機能を呼び出し、データベースから返される、XMLフラグメントを与える情報を「ラップ(wrap round)」する。
【0043】
データベースの呼び出しは、直接実行することもできるし、例えばEnterprise Java Bean(EJB)といったコンポーネントを介して実行することもできる。
EJBは、標準化されたインターフェースを有するソフトウェアコンポーネントである。
EJBを使用する利点は、「ハウスキーピング(house-keeping)」コードの多くが、EJBコンテナによって処理され、このEJBコンテナが、ウェブ開発者の生産性を向上させることである。
【0044】
XML命令は、さらに「名前(name)」を指定することができる。
このようなワークフロー命令について、ワークフロー文書に組み込まれたものを以下に示す。
【0045】
【0046】
名前が指定された場合には、新しい子要素が、その指定された名前を有する応答文書のルートノードに追加され、XSL変換の出力は、その新しい子ノードに挿入される。
これは、次のように示される。
【0047】
【0048】
名前が指定されない場合には、XSL変換の出力は、次のように、応答文書のルールノードの子として直接追加される。
【0049】
【0050】
また、XML命令を使用して、別のワークフロー文書を呼び出すこともできる。
本発明の特定の特徴は、あるワークフロー文書(すなわち「子」のワークフロー文書)を別のワークフロー文書(「親」のワークフロー文書)内から参照できることである。
これにより、ワークフロー文書を、モジュール的な階層的形式で再利用することが可能になり、ウェブページを動的に作成する際の時間および費用を節減することが可能になる。
ユーザが特定のどのワークフロー文書を実行することができるかを指定するための備えも本発明には存在することが好ましい。
また、ワークフロー文書は、必要に応じて、例えばif…else文といった条件文をサポートすることもできる。
【0051】
クライアントサーバ環境では、そのクライアントサーバ環境のサーバ側でXML命令を実行することが最も好ましい。
しかしながら、クライアント側でXML命令を実行してもよい。
クライアントサーバ環境のクライアント側でXML命令を実行する理由は、XSL−T変換の計算コストが、場合によっては大きくなる可能性があり、これにより、サーバの負荷が重くなった場合に、応答文書(例えばウェブページ)の要求に対する応答時間が悪化する可能性があるからである。
負荷を再分散するために、ワークフロー文書を専用のクライアントで実行することができる。
このワークフローの実行は、2つの相違点を除いて、前述したものと非常に類似している。
第1に、クライアントは、サーバから各XMLフラグメントを要求する必要がある。
第2に、クライアントは、サーバからXSL−Tスタイルシートも要求する必要がある。
このすべてのXSL−TスタイルシートおよびXMLフラグメントの要求は、簡単なプロトコルを使用して実施することができる。
クライアントは、XMLフラグメントの変換および応答文書の構築を担当することになる。
【0052】
ワークフロータスクは、タスクを実行する順序を指定することができる。
また、ワークフロータスクは、以下に示すように、タスクを非同期に実行できるかどうかを指定することもできる。
【0053】
【0054】
リモート文書を転送するには、比較的長い時間を要することがある。
したがって、上記2つのワークフロータスクを非同期(すなわち、asynch="true")とすることにより、それらの命令をほぼ並列に実行することが可能になる。
リモート文書が返されるとすぐに、そのリモート文書は、対応するタスクの第2の命令で指定された変換を使用して処理される。
この手法は、順に返信されるリモート文書のそれぞれを待つよりもずっと高速である。
【0055】
XSL−Tフラグメントの再利用をサポートするために、XMLフラグメントは、デバイスに依存しない標準的な言語に適合することが好ましい。
これは、XSL−Tが、XML文書の構造の変化に敏感であるので、XSL−Tを処理するように記述するためである。
すなわち、XML文書の構造が変化すると、XSL−Tも、所望のスタイルおよびフォーマットの効果を生み出すように変化させることが必要な場合がある。
XSL−Tコードを頻繁に編集すると、多大な時間を要し、コストがかさむことになる。
したがって、XMLフラグメント用のマークアップ言語を指定することが有利である。
このマークアップ言語が取る正確な書式は、サーバを配備した組織のハウスルールによって決定することができる。
このような言語の一例を以下に示す。
【0056】
この例では、次の4つのXML要素タイプ、すなわち「グループ要素」、「コンテナ要素」、「複雑型要素」、および「リーフ要素」が定義される。
ここで、グループ要素は、ルートノードであり、コンテナ要素は、グループ要素の子ノードであり、複雑型要素は、コンテナ要素の子ノードであり、リーフ要素は、複雑型要素の子ノードである。
したがって、例えば、XMLのグループ要素は、複数のテーブル行(コンテナ要素)から形成されるHTMLテーブルであってもよい。
各テーブル行は、多数のテーブルセル(複雑型要素)から構成することができ、各テーブルセルは、テキストの項目(リーフ要素)を含むことができる。
以下のテーブルは、XSL−T変換または他の適切な変換を使用してXML要素を変換することにより形成することができるHTML要素の例を与える。
【0057】
【表1】
【0058】
上記で定義したマークアップ言語は、どの特定のレイアウト情報もスタイル情報も規定しないので、単にXSL−Tコードを変更することにより、リストとしてXML要素を描写することもできる。
したがって、ワークフロープロセッサによって作成された応答(HTML)文書の外見および雰囲気は、XSL−T変換によって決定される。
このことの利点は、XSL−Tスタイルシート(したがって変換)が変更されると、XMLフラグメント構造も変更することなく、これらのXMLフラグメントを生成するために使用されるXML命令も変更することなく、HTML出力の外観を変更することができることである。
例えば、上記XML要素を移動通信用の無線マークアップ言語に変換するための変換を提供することができる。
【0059】
ウェブページを生成するXSL−T手法は、従来の手法を上回る明らかな利点を有する。
このXSL−T手法は、その構成部分が明確に分離されるという異なった利点を有する。
すなわち、スタイルが、プログラムロジックおよびコンテンツから分離される。
プロジェクト管理の観点から、これにより、ウェブ設計者が、自身のタスクを開始または完了する前に、より複雑なコードが作成されるのを待ち続けている間、ウェブプログラマを過負荷にするのではなく、すべてのプロジェクトのメンバは、並行して作業することが可能になる。
これにより、時間および費用の双方が節減される。
本発明の別の利点は、XSL−Tコードを再利用できるということである。
これは、企業内で内部的に行うこともできるし、より広いウェブコミュニティの努力の一環として行うこともできる。
XML/XSL−Tフラグメントを使用することの別の利点は、デバイスに依存しないウェブページの制作をより簡単にサポートできることである。
【0060】
XSL−T手法の主な利点は、実行時の性能である。
ほとんどのアプリケーションにとって、実行時の性能は、十分高速であるが、性能が十分でない場合、より有利な手法は、XSL−Tスタイルシートをメモリ内で一度構文解析して、その後、繰り返し使用するために、スタイルシートをメモリに保持することである。
これは、本明細書で説明するワークフロープロセッサの実施の形態で取られる手法である。
【0061】
ワークフロー文書は、設計者が作成するのが好都合である。
応答文書が、ウェブページとして使用される場合、設計者は、ウェブ設計者とすることができる。
この設計者は、XMLフラグメントおよびXML命令定義のリポジトリと、XSL−T変換のリポジトリとにアクセスし、XMLフラグメントをフォーマットして、あるスタイルにすることができる。
その後、設計者が、XML命令およびそのそれぞれのXSL−T変換を含む少なくとも1つのワークフロータスクを指定することにより、ワークフロー文書を作成することができる。
また、設計者は、これらのXSL−T変換を開発することもできる。
ウェブプログラマ/ソフトウェア開発者は、XML命令からXMLフラグメントを作成するコードを記述することを担当することが好ましい。
これらのXMLフラグメントの構造は、設計者によって承諾されることが好ましく、プログラマ/開発者は、前述したようなデバイスに依存しないマークアップを使用することが好ましい。
【0062】
XSL−T変換は、静的XMLファイルを使用することにより、どのサーブレットまたはデータベースコードからも完全に独立に開発することができる。
しかしながら、XSL−Tコードフラグメントは、あらゆるXMLコードフラグメントを変換する必要があるとは限らない。
これは、ウェブブラウザまたは他の適切なアプリケーションによって理解可能な書式にすでに描写されているXMLコードフラグメントの組み込みをサポートする。
【0063】
ワークフロー文書を使用する利点は、プログラムロジックがワークフロー文書に含まれないことである。
プログラムロジックは、小さな文書から大きな文書へ拡大することが容易ではなく(このロジックは、大きな文書用に書き直さなければならないことがある)、また、保守も難しい。
【0064】
ワークフロータスクは、第1のXML命令および複数のXSL命令を含むことができる。
例えば、ワークフロータスクが2つのXSL命令を含む場合、ワークフロープロセッサは、次のようにしてこのワークフロータスクを解釈する。
XML命令が実行され、第1のXMLフラグメントF1が検索される。
次に、フラグメントF1は、第1のXSL命令を使用して変換される。
この変換の出力が、別のXMLフラグメントF2である。
次に、F2は、第2のXSL命令によって変換されて、第3のXMLフラグメントF3が作成される。
この第3のXMLフラグメントF3は、応答文書に挿入される。
例えば、このワークフロータスクは、次のように指定することができる。
【0065】
【0066】
変換transform1.xslは、(リモートウェブサイトsomeWebSiteで利用可能な)source.xmlに適用され、その出力は、transform2.xslによって操作される。
それ以降も同様に処理される。
これを行う理由は、最初に、外部のXML文書を社内のフォーマットに変換し、次に、社内のフォーマットを例えばHTMLのテーブルに変換するためである。
この利点は、第2の変換が、その後、何度も再利用可能であることである。
すなわち、新しいデータ源が、外部のサイトから提供されるごとに、新しいtransforml.xslを記述して、社内のフォーマットに変換することができる。
【0067】
ワークフロー文書は、それ自体がXML文書であってもよいので、本発明の方法は、第1の事前に記述されたワークフロー文書から第2のワークフロー文書を動的に生成するために有利に使用することができる。
次に、第2のワークフロー文書は、例えばHTMLページを生成するために、ワークフロープロセッサによって処理することができる。
例えば、ウェブブラウザの異なる型および異なる版は、異なる方法でデータを表示する。
ウェブ設計者およびウェブプログラマは、おそらく、ユーザが使用している特定のウェブブラウザを前もって知っていることはないであろう。
事前に記述されたワークフロー文書は、新しいワークフロー文書を動的に生成するXML命令を呼び出す。
この新しいワークフロー文書が、ユーザの特定のブラウザ用のXSLフォーマット命令を含む。
この新しいワークフロー文書が、次に、実行されて、HTMLウェブページを作成する。
ワークフロー文書を実行のためワークフロープロセッサに渡す前に、ワークフロー文書を個人専用にすることもできる。
【0068】
本発明の方法は、完全なウェブサイトを生成するために使用することができる。
このウェブサイトの各ウェブページは、単一のワークフロー文書を実行することによって作成されることが好ましい。
同じウェブサイトに属するさまざまなワークフロー文書への呼び出しを区別するために、ウェブブラウザによってサーバに送信されるHTTP要求のヘッダは、ワークフロー文書識別子を含むことが好都合である。
例えば、http://localhost:8080/servlet/servletName?WfID=NといったURLを、対象となるワークフロー文書を識別するのに使用することができる。
ここで、Nは、一意の識別子である。
次に、サーブレットは、HTTP要求からこの一意の識別子を抽出する役割を果たす。
また、サーブレットは、ワークフロー識別子を、そのワークフロー文書が記憶されている場所にマッピングするテーブルを含むこともできる。
ワークフロー文書は、サーブレットと同じサーバに記憶されてもよい。
あるいは、ワークフロー文書は、リモートサーバまたはデータベースに記憶されてもよい。
複数のサーブレットの要求が、並列に処理されてもよい。
【0069】
ウェブサイトは、ウェブページのハイパーリンクを介して接続されたワークフロー文書の論理的集合と考えることができる。
時に、ウェブページの異なるハイパーリンクを介して同じコンテンツまたはデータにリンクすることが望ましい場合がある。
ワークフロー文書から生成されるウェブページのハイパーリンクは、XSL−T変換プロセスが行われる前に、XMLフラグメントに挿入されることが好ましい。
これを図1bに示す。
これらのハイパーリンクは、内部ワークフローリンク(すなわち、そのワークフロー文書と同じウェブサイトの一部である他のワークフロー文書へのリンク)、外部ワークフローリンク(すなわち、異なるウェブサイトに属するワークフロー文書へのリンク)、および外部リンク(すなわち、ワークフローでない文書へのリンク)であってもよい。
ウェブサイトのコンテンツからハイパーリンクをこのように分離することにより、本発明のさらに別の利点が提供される。
すなわち、異なるリンクがその内部に組み込まれた2つの別々のコンテンツファイルを作成する必要はなく、異なるハイパーリンクを利用することによって、単一のコンテンツファイルを異なる状況で使用することができる。
ハイパーリンクがコンテンツから分離されている場合、ウェブサイトのハイパーリンクの管理も、より簡単になる。
【0070】
このハイパーリンク情報は、ワークフロー文書として検索される分離した環境設定ファイルに記憶されることが好都合であり、このワークフロー文書は、ワークフロープロセッサによって処理されることになる。
この環境設定ファイルは、サーバに記憶されることが好ましい。
【0071】
本発明の方法は、ワークフロー文書の処理中、エラー処理も行うことができる。
このエラー処理は、例えば、本方法によって生成される文書にエラーコードを挿入することにより行われる。
このエラーコードは、エラーが発生したワークフロー文書の箇所および/またはエラーのタイプを示す。
【0072】
また、本発明は、例えばウェブページといった動的な応答文書を設計する方法にも拡張される。
この方法は、複数のワークフロータスクを含むワークフロー文書を作成することを含み、該作成するステップは、データを検索する複数の第1のタイプのワークフロー命令と、上記検索したデータを、対応する複数の一般に理解されるフォーマット言語フラグメントに変換する複数の第2のタイプの対応するワークフロー命令とを指定することを含む。
上記指定するステップは、第1のタイプのワークフロー命令または第2のタイプのワークフロー命令を、あらかじめ定められたこのような命令のライブラリから選択することを含むことが好ましい。
【0073】
また、本発明は、上述したような本発明の方法および/またはシステムを実施するコンピュータを構成するように配置されたコンピュータプログラムを含むデータキャリアをカバーするものとみなすこともできる。
【0074】
次に、添付図面を参照して、本発明の現時点の好ましい実施の形態を説明するが、これは、単なる例にすぎない。
【発明を実施するための最良の形態】
【0075】
[好ましい実施の形態の詳細な説明]
図2を参照して、本発明の実施に適した、従来技術で既知のクライアントサーバシステム8を示す。
このクライアントサーバシステム8は、クライアントコンピュータ10を備える。
このクライアントコンピュータ10は、インターネット14を介してサーバコンピュータ12に接続される。
サーバ12は、オプションとして、別の接続18によりデータベース16に接続される。
図2の矢印は、クライアントコンピュータ10とサーバ12との間、および、サーバ12とデータベース16との間で、データを双方向に交換できることを示している。
ユーザ20がインターネットを通じてさまざまなサーバおよびウェブサイトに自在に移動できるようにするために、クライアントコンピュータ10には、インターネットブラウザまたはウェブブラウザ22が設けられる。
システム8のサーバ側には、ワークフロープロセッサ25と共に、ウェブサーバ12上で実行されるサーブレット24が設けられる。
【0076】
図面の図3を参照して、「ワークフロー文書」として知られている文書26の概略図を示す。
ワークフロー文書の概略構造のみを示している。
ワークフロー文書は、図2に示すように、クライアントサーバシステム8のサーバ側に配置される。
この文書26は、複数のワークフロータスク27を含む。
各ワークフロータスク27は、各XSL−Tフォーマット/変換命令30と共にXMLフラグメントを検索するためのXML命令28を含む。
図3の略図は、第1のワークフロータスク27aおよび第2のワークフロータスク27bを明示的に示している。
第1のワークフロータスク27aおよび第2のワークフロータスク27bは、それらのそれぞれの第1のXML命令28aおよび第2のXML命令28b、ならびに対応する第1のXSL−Tフォーマット命令30aおよび第2のXSL−Tフォーマット命令30bを有する。
しかしながら、このワークフロー文書は、任意の個数のワークフロータスク27を含むことができる。
XSL−Tフォーマット命令30a、30bも、XMLで記述されるので、ワークフロー文書26は、それ自体、XML文書である。
このワークフロー文書を使用して、ウェブページ32が、サーバ12で動的に作成される。
これを行う方法を次に説明する。
【0077】
図面の図4を参照して、本発明の好ましい実施の形態による方法の概要を示す。
この方法100は、ステップ102で、ユーザ20がサーバ12からのウェブページ32を要求することから開始する。
この要求は、ウェブページ(図示せず)のURLをウェブブラウザ22に入力することにより行われる。
ウェブブラウザ22は、要求されたウェブページを取得するために、GET要求をインターネット14を介してサーバ12に送信する。
次に、ステップ103で、サーバ12に設けられているサーブレット24が、このGET要求を処理し、ステップ104で、記憶されたワークフロー文書26を検索する。
このワークフロー文書26は、サーバ12に接続されたデータベース16に存在するものとして示されている。
しかしながら、ワークフロー文書26は、サーバ12に存在してもよいし、リモートサーバ(図示せず)に存在してもよい。
【0078】
次に、ステップ108でHTMLファイル42を生成するために、ステップ106で、ワークフロー文書26がワークフロープロセッサ25によって処理される。
次に、ステップ110で、このHTMLファイル42は、クライアントマシン10に送信される。
HTMLファイル42は、送信されるとすぐに、ステップ112で、ユーザのウェブブラウザ22によりウェブページ32として表示される。
次に、図5を参照して、方法100のステップ103からステップ110をさらに詳細に説明する。
【0079】
まず、ステップ202で、サーブレット24が、ウェブブラウザ22からのHTTP要求を受信する。
HTTP要求は、ワークフロー文書番号123を呼び出す"localhost:8080/servlet/WorkflowServ?workflow="123"に送信される。
サーブレットは、ステップ204で、この要求を処理し、ステップ205で、ワークフロー文書番号123を検索する。
ユーザ20が、HTMLウェブページではなくワークフロー文書26を要求していることに気付かないように、ワークフロー文書の検索に使用されるHTTP要求は、エイリアスであってもよい。
次に、ステップ206で、このワークフロー文書26が、メッセージの内部にカプセル化され、このメッセージは、その後、ステップ208でワークフローインバウンドメッセージキューに置かれる。
【0080】
サーブレットのオペレーションと並行して、ワークフロープロセッサ25は、ステップ210で、ワークフローインバウンドメッセージキューに置かれるメッセージを繰り返しリスンする。
メッセージがキューに存在すると、ワークフロープロセッサ25は、ステップ214で、その内部キューの最初のメッセージ20読み出し、ステップ214で、ワークフロー文書番号123をメッセージから抽出する。
一方で、これらの読み出しステップおよび抽出ステップに先立って、ワークフロープロセッサは初期化される。
その初期化中に、ワークフロープロセッサ25は、ステップ216で、環境設定ファイルを読み出す。
この環境設定ファイルは、ワークフロープロセッサ25の情報を含む。
この情報としては、例えば、ホスト名、サーバポート番号、文書源の場所、および他のサイトマップなどといったものがある。
この情報は、ワークフロープロセッサ25が、他のワークフロー文書およびサイトへのURLリンクを生成することを可能とするために必要とされる。
サイト管理者が、例えば、別のマシンのサーブレットおよびワークフロープロセッサを実行したい場合には、この環境設定ファイルのみを編集する必要がある。
【0081】
次に、ステップ218で、ワークフロープロセッサ25は、抽出したワークフロー文書を処理する。
この処理には、ワークフロー文書26を構文解析して、ワークフロー文書26内のワークフロータスク27を順に実行することが含まれる。
ワークフロー文書26の処理に要するステップを図6によって示し、以下に説明する。
【0082】
図6を参照して、ステップ302で、ワークフロープロセッサ25は、構文解析したワークフロー文書から第1のワークフロータスク27を得て、第1のXML命令28aを読み出す。
次に、ステップ304で、このXML命令は、ワークフロープロセッサ25により実行される。
XML命令28を使用して、データベース呼び出しを行うことにより、ウェブページ32に含めるための動的コンテンツを検索することができる。
この場合、XML命令によって返されるXMLフラグメントは、データベースから取得された、XMLコードに組み込まれた情報を含む。
XML命令28を使用して、異なるサーバまたはデータベースに配置された静的XMLコード34を検索することもできる。
別の例では、XML命令28を実行して、XML中間コードにも組み込まれる提携コンテンツ38を取得することができる。
XML命令28を使用して、別のワークフロー文書を検索することもできる。
この様子を図7によって示す。
この図では、3つのネストされたワークフロー文書26a、26b、および26cを示している。
ワークフロー文書26aの第1のXML命令28aが、第2のワークフロー文書26bを呼び出す。
次に、このワークフロー文書の第1のXML命令28bは、第3のワークフロー文書26cの呼び出しを行うことができる。
このプロセスは、このステップで終了することもできるし、この第3のワークフロー文書26cのXML命令が、さらにワークフロー文書の呼び出しを行い、かつ/または、さらにXMLフラグメントを検索することもできる。
【0083】
図6に戻って、第1のXML命令28aを実行し、それによって、XMLフラグメントを作成した後、ワークフロープロセッサ25は、ステップ306で、各XSL−Tフォーマット命令を得る。
ステップ308で、このXSL−Tコードは使用されて、XML命令28の実行により作成されたXMLフラグメントがフォーマットされる。
次に、フォーマットされたデータは、ステップ310で、HTMLファイル42(図13参照)に書き込まれる。
次に、ステップ312で、サーブレット24は、すべてのXMLタスク27が実行されたかどうかをチェックする。
実行するXMLタスクが残っている場合には、それらのタスクのすべてが処理されるまで、ステップ302からステップ310が繰り返される。
次に、ステップ314で、完成したHTMLファイル42が、外部メッセージキューに出力される。
【0084】
次に図5に戻って、動的に生成されたHTMLファイル42が、ワークフロープロセッサ25によって外部メッセージキューに置かれた(ステップ220)後、サーブレット24は、そのキューからメッセージを検索するように通知を受ける。
キューにメッセージが存在する場合、サーブレットは、ステップ222で、生成されたHTMLファイル42をキューから抽出する。
次に、ステップ224で、このHTMLファイルは、HTTPを介してクライアント10に送信される。
次に、ステップ226で、このHTMLファイルは、クライアントコンピュータのウェブブラウザ22によって表示され、ユーザは、「通常の」ウェブページ32としてそのHTMLファイルを見る。
【0085】
次に、図8を参照して、本発明の好ましい実施の形態と共に使用するワークフロー文書26を作成するプロセスを説明する。
ウェブ設計者(60)は、2つのリポジトリ44および46(データベース16aおよび16bとして示す)にアクセスすることができる。
第1のリポジトリ44は、XMLフラグメントの詳細およびこれらの詳細の取得を可能にするメカニズム28を含むデータベースまたはファイル記憶装置である。
例えば、前述したように、命令28は、データベース呼び出し、他のワークフロー文書26の検索、静的テキストの検索などを行うことができる。
これらの命令28は、ウェブ技術とインターネットが機能する方法とについて深い知識を有するウェブプログラマまたはウェブ開発者が(ウェブ設計者と相談して)事前に記述する。
【0086】
第2のリポジトリ46は、XMLで事前に記述されるXSL−Tフォーマット命令30のライブラリを含むデータベースまたはファイル記憶装置である。
これらのXSL−T文書は、ウェブ設計者によって記述される可能性が高い。
【0087】
ウェブブラウザ22に表示するウェブページ22を生成するのに適したワークフロー文書26を作成するために、ウェブ設計者は、新しいワークフロー文書を作成し、文書25にXML命令を挿入し、XML命令の実行により返される各XMLフラグメントの変換に使用するXSL−T文書を指定する。
したがって、例えば、第1のXML命令28が、ウェストエンドショーの予備の劇場券についての詳細を取得するためのデータベースの呼び出しである場合、対応するXSL−Tフォーマット命令は、このデータをウェブページ32にどのように表示するかを記述することになる。
【0088】
次に、本発明の好ましい実施の形態の一使用例を説明する。
この例は、データベースの呼び出し、および、ウェブブラウザ22に表示されるウェブページ32に書式54としてその結果データを表示することに関係したものである。
まず、JSPページ48の一部のソースコードを解説して、本発明の利点をより良く例示する。
このソースコードを図9に示す。
この図から、JSPページ48が、静的HTMLコード(通常の字体で示す)、および、Javaプログラム言語で記述されたJSPの式50(ボールド体で示す)を含むことが分かる。
サーバ12でJSPページ48を処理することにより、図10に示すHTMLウェブページ32が作成される。
【0089】
次に、JSPソースコードを詳細に見ることにする。
コードのライン1は、記入可能であり、かつ、サーバ12に書き込み(post)可能な書式として、ウェブページ32が表示されることをウェブブラウザ22に通知する。
また、ライン1は、JSPページの名前(「example.jsp」)も含む。
コードのライン3は、この書式がテーブル54として表示されることをブラウザ22に告げる。
ライン4のHTMLタグ<tr>およびライン8のHTMLタグ</tr>は、それぞれ、テーブル行の開始および終了を示す。
その間にあるライン5から7は、テーブルの列の見出しを与える。
ここで、テーブルの第1列の見出しは空であり、第2列の見出しは、「Show」(ショー)であり、第3列の見出しは、「Seats Remaining」(残っている席)である。
JSPソースコードのライン11および12は、データベースを呼び出して、データベースに入力されている劇場のショーについての詳細を検索する。
このコードは、動的であり、ウェブブラウザによって表示されるテーブルのサイズは、データベースが検索したショーの個数に依存する。
【0090】
ライン14から26のコードは、テーブルの第1列に表示するものをウェブブラウザ22に告げる。
特定のショーの席が残っている場合には、ラジオボタン52が表示される。
席が残っていない場合には、テーブルセル54は、空白のままとなる。
ライン28から30は、テーブルの第2列にショーの名前を表示し、ライン31から33は、その特定のショーの空席の個数を表示する。
JSPソースコード48は、ウェブプログラマの視点からは理解するのが容易であるが、プログラミングの経験のない可能性のあるウェブ設計者には必ずしも見てすぐに分かるとは限らない。
ウェブ設計者は、通例、販売されているWYSIWYG(What You See Is What You Get)のウェブ設計パッケージの1つを使用し、これらのパッケージは、下にあるコードを設計者に見せない。
【0091】
次に、本発明の好ましい実施の形態を使用する同じウェブページ32を作成するコードを解説する。
図10に示すウェブページ32は、以下のワークフロー文書によって生成することができる。
このワークフロー文書は、データベースを呼び出すXML命令28、および、関連したXSL−Tフォーマット命令30を含む。
【0092】
【0093】
次に、このワークフロー文書の処理を説明する。
まず、ワークフロー文書は、構文解析されて、XML命令28が取得される。
次に、このXML命令は、ワークフロープロセッサ25によって実行される。
XML命令28は、データベース呼び出し("DB")として指定される「リソースタイプ(resource type)」を含む。
XML命令28の属性「loc」は、書式class::methodで表される。
この例では、ConfReg(conference registration(会議参加登録)の短縮形)は、クラスの名前であり、getSeatsは、起動するクラスメソッド(class method)の名前である。
このクラスは、サーブレットに登録されるので、パス名もファイルロケーションも指定する必要はない。
クラス「ConfReg」は、データベースからデータを読み出すコード、および、そのコードを書き込んで、このデータを含むXMLコードフラグメントを作成するコードを含めて、ウェブ開発者またはウェブプログラマによって開発されることになる。
図9に示す(Duane K. FieldsおよびMark A. Kolb, Manning Publications 2000による"Web Development with Java Server pages"からの)Javaコードスクリプトの断片である以下のコードの部分は、このクラスメソッドに有効に含まれる。
【0094】
String sql="SELECT * FROM SHOWS";
ResultSet results=connection.executeQuery(sql);
While(results.next()){
【0095】
このクラスメソッドの呼び出し「getSeats」の出力は、サーブレット24に返される。
この出力は、図11に示すXMLフラグメント56となる。
【0096】
上記ワークフロー文書は、書式54の設計およびフォーマットが、書式のプログラムロジックおよびコンテンツから完全に分離していることを示す。
本発明の好ましい実施の形態では、プログラムロジックは、クラス「ConfReg」およびメソッド「getSeats」に組み込まれ、スタイルおよびフォーマットは、XSLファイルに設けられる。
したがって、ウェブ設計者は、クラスを参照して、そのクラスに属する方法を呼び出すことのみ必要となる。
これは、図9に示すJSPページとは大きく異なっている。
図9に示すJSPページでは、Javaコードがページに組み込まれる。
【0097】
図11に示すXMLフラグメントをフォーマットするために、XSL−Tファイル「renderForm」が呼び出される。
このファイル内で定義されるXSL−Tスタイルシートを図12に示す。
XSLは、テンプレートルールに基づく宣言型言語である。
各テンプレートルールは、パターンおよびアクションからなり、xsl:templateにより指定される。
XSL−Tの詳細な解説の情報は、当業者に容易に入手可能であるので、本明細書では、詳細に解説しないこととする。
【0098】
図12に示すスタイルシートの例には、4つのテンプレートルール「GroupElement(グループ要素)」、「ContainerElement(コンテナ要素)」、「TextElement(テキスト要素)」、および「ComplexElement(複雑型要素)」がある。
これら4つのテンプレートルールのパターンは、XMLコードフラグメント56の<GroupElement>タグに一致する「GroupElement」、XMLコードフラグメントの<ContainerElement>タグに一致する「ContainerElement」などである。
【0099】
ルールのアクションは、各ルールの本体によって指定される。
例えば、「ComplexElement」のxsl:templateは、XMLフラグメント56に適用されると、テーブルセルを定義するHTMLタグ<td>および</td>を作成する一方、「TextElement」のxsl:templateは、XML文書のテキスト要素の本体をHTML出力に単に挿入するだけである。
【0100】
ウェブブラウザ22に表示されるテーブル54の追加行が、データベース呼び出しによって返されると、XSL−Tスタイルシート58は、ウェブ設計者からの介入なく、それらの行をフォーマットする。
例えば、ある一定のフォントまたは色でテキストを表示するといった異なる属性が必要とされる場合、このコードをXSL−Tファイルまたはカスケーディングスタイルシート(CSS)に簡単に追加することができる。
XSL−Tファイル内にはロジックは適用されず、スタイルおよびマークアップコードのみが指定されることに留意されたい。
この手法により、ウェブ開発者またはウェブプログラマの役割と、XMLタグを承諾することだけが必要とされるウェブ設計者の役割との分離が簡単になる。
コードおよびロジックは、ウェブページ制作プロセスから分離される。
【0101】
ワークフロー文書26から作成されたHTMLコードを単純にした版を図13に与える。
完成したHTMLファイルが、クライアント10に送信されると、このHTMLファイルは、図10に示すコンテンツと同じコンテンツを有するウェブページ32として表示される。
図9のJSPコードによって作成されたウェブページと、ワークフロー文書26から作成されたウェブページとは、可能な限り同一であるが、これは、もちろん、ウェブブラウザの設定ならびにXSL−Tスタイルシートで指定されるフォーマット命令およびスタイル命令に依存する。
【0102】
本発明の特定の実施の形態を説明してきたが、当該実施の形態は、模範的なものにすぎず、適切な知識および技術の所持者に思い浮かぶような変形および変更を、添付の特許請求の範囲に宣言するような本発明の精神および範囲から逸脱することなく行い得ることが理解されるべきである。
例えば、本発明は、ウェブブラウザに表示される書式からのデータのプレゼンテーションおよび処理に使用することにも適している。
応答文書は、表示スクリーンに描写するための書式でフォーマットされる必要はないが、実際には、ウェブブラウザとは異なるアプリケーションプログラムを実行するクライアントによって消費されるように記述されたXML文書であってもよい。
また、本発明の方法は、クライアントサーバ環境で実行されることに限定されるものでもない。
本発明の方法は、1台のコンピュータ、複数のコンピュータからなるネットワーク、またはコンピュータの他の任意の適切な構成を使用して実行されてもよい。
【図面の簡単な説明】
【0103】
【図1a】従来技術によるXSL−Tスタイルシートを使用したXMLコードのフォーマットを示す概略ブロック図である。
【図1b】本発明の一実施の形態によって生成される応答文書にリンクを加える方法を示す概略ブロック図である。
【図2】本発明の現時点の好ましい実施の形態を実施するのに適したクライアントサーバシステムを示す概略図である。
【図3】本実施の形態で使用されるワークフロー文書の概略図である。
【図4】本発明の本実施の形態によりウェブページを作成するワークフロー文書を処理する方法を示すハイブリッド流れ図である。
【図5】図4に示す方法のステップ103〜ステップ110をさらに詳細に示す流れ図である。
【図6】図4に示す方法の処理ステップの流れ図である。
【図7】本実施の形態によって生成できるネストしたワークフロー文書を示す図である。
【図8】本実施の形態によるウェブ設計者によるワークフロー文書の生成を示す概略図である。
【図9】書式を生成する従来技術のJava Server Pageのソースコードを示す。
【図10】図9のソースコードにより生成されるウェブページを示す概略図である。
【図11】本実施の形態によるワークフロー文書により生成されて、図10に示すウェブページに表示されたテーブルのコンテンツを提供するXMLフラグメントを示す。
【図12】図11のXMLフラグメントをフォーマットすることに使用されるXSL−Tコードのセグメントを示す。
【図13】本実施の形態のワークフロー文書により生成されて、図10に示すウェブページに表示されたテーブルを作成するHTMLコードを示す。
【符号の説明】
【0104】
12・・・サーバ、
14・・・インターネット、
16・・・データベース、
20・・・ユーザ、
22・・・ウェブブラウザ、
32・・・ウェブページ、
34・・・静的XMLコード、
24・・・サーブレット、
25・・・ワークフロープロセッサ、
26・・・ワークフロー文書、
27・・・第1のワークフロータスク、
28・・・第1のXML命令28、
30・・・XSL−Tフォーマット命令、
38・・・提携コンテンツ、
42・・・HTMLファイル、
44,46・・・リポジトリ、
48・・・JSPページ、
50・・・Javaプログラム言語で記述されたJSPの式、
52・・・ラジオボタン、
56・・・XMLフラグメント、
58・・・XSL−Tスタイルシート、
【0001】
[発明の技術分野]
本発明は、文書生成に関する改良に関する。
特に、本発明は、応答文書、例えばウェブページの動的な作成に関するが、これに限られるものではない。
本発明は、多くの応用分野を有し、この応用分野には、電子商取引ウェブサイト、ウェブページ制作、およびXML文書生成が含まれるが、これらに限定されるものではない。
【背景技術】
【0002】
[発明の背景]
インターネットは、TCP/IPプロトコルスイートを使用して、通信リンクを介して互いに通信するコンピュータおよびコンピュータネットワークの集まりである。
インターネットは、さまざまな異なるサービスをユーザに提供する。
このさまざまな異なるサービスは、例えば、電子メール、FTP、ゴーファー(Gopher)、テルネット(Telnet)、およびワールドワイドウェブといったサービスである。
ワールドワイドウェブ(以下では「ウェブ」と呼ぶ)は、世界中に配置されたHTTP(ハイパーテキスト転送プロトコル(Hypertext Transfer Protocol))サーバコンピュータに存在する相互リンクされた文書の集合である。
これらの相互リンクされた文書は、「ウェブページ」として知られており、通常、ハイパーテキストマークアップ言語(Hypertext Markup Language(HTML))で記述される。
ウェブページは、ユニフォームリソースロケータ(URL)によって特定される。
ユニフォームリソースロケータは、特定のコンピュータおよびパス名を指定するものであり、このコンピュータおよびパス名によって、ウェブページにアクセスすることができる。
【0003】
関係するウェブページ、ならびに、ファイル、スクリプト、データベース、および画像といった他の構成要素の群は、結合されて、ウェブサイトを形成する。
ウェブサイトを閲覧するために、ウェブページが、HTTPを使用してサーバコンピュータからユーザコンピュータ(「クライアントコンピュータ」として知られている)に伝送され、ウェブブラウザに表示される。
ウェブブラウザは、ユーザがHTML文書を捜しだして閲覧するソフトウェアアプリケーションである。
ユーザは、ウェブページにアクセスするために、ウェブページのURLをウェブブラウザに入力し、ウェブブラウザは、要求されたウェブページを捜しだして表示する。
【0004】
HTMLは、標準汎用マークアップ言語(SGML(Standard Markup Generalized Language))のサブセットである。
標準汎用マークアップ言語は、フォーマット、インデックス、およびリンクされた情報を含むプラットフォームおよびアプリケーションから独立した文書を提供する手段である。
SGMLは、文法と同様の構造を提供し、この構造によって、ユーザは、自身の文書の構造と、この構造を表すのに使用されるタグとを定義することができる。
タグは、文書に挿入されるコマンドであり、その文書または文書の一部がどのようにフォーマットされるべきかを指定するコマンドである。
【0005】
HTMLウェブページは、テキストエディタを使用して作成することもできるし、あるいは、DreamWeaver(商標)またはFrontPage(商標)といったソフトウェアパッケージを使用して作成することもできる。
これらのソフトウェアパッケージにより、設計者は、おそらく少量のHTMLを除き、基礎となるプログラムコードについて何も知る必要なく、機能的で魅力的なウェブサイトを作成することが可能となる。
このようにして作成されたページは、「静的ウェブページ」として知られている。
これらの静的ウェブページは、通例、ISP(インターネットサービスプロバイダ)によって設けられるサーバに存在し、それによって、そのウェブページがユーザ自身のサーバまたは企業自身のサーバに存在する場合よりも高速で信頼性のあるサービスが提供される。
しかしながら、これらのウェブページのコンテンツを変更する場合、実際のHTMLテキストを編集しなければならなくなる。
これを行うには、ユーザが、自身でHTMLウェブページを編集して、それらのHTMLウェブページをISPに返信する必要がある。
これの不利な点は、ISPの中には、1年あたりのウェブサイトへの自由な訂正をある一定の回数しか許可していないものがあるということである。
ユーザが、これよりも多くの訂正を行いたい場合、追加手数料を支払うことなる可能性がある。
【0006】
この不利な点は、動的コンテンツの表示能力を有するウェブページを使用することにより克服することができる。
この動的コンテンツは、例えば、現在の金利、天気情報、旅行情報などであってもよい。
この情報は、データベースに保持される可能性があり、ウェブ設計者は、この情報をウェブページに挿入するために、データベースを呼び出さなければならい。
これを行うには、ある一定量のプログラミングの知識が必要となる。
確かに、ウェブページの直接的な設計とは異なるものに、プログラムロジックのある知識が必要とされる可能性があり、ほとんどのウェブ設計者は、この知識を利用することができない。
これは、ウェブサイトの機能が、例えばJava(登録商標)といったプログラム言語の使用または共通ゲートウェイインターフェース(CGI)スクリプトの使用によって提供される可能性があることによるものである。
【0007】
CGIは、ウェブサーバとCGIプログラムとの間で情報を転送するための仕様である。
CGIプログラムは、CGI仕様と適合するデータを受け取って、CGI仕様と適合するデータを返すように設計された任意のプログラムである。
このプログラムは、どのプログラム言語でも記述することができ、このプログラム言語には、C、Perl、Java、またはVisual Basicが含まれる。
CGIプログラムは、ウェブサーバがユーザと動的に対話するための最も一般的な方法である。
書式を含む多くのHTMLウェブページは、例えば、その書式のデータがウェブサーバに送信されるとすぐに、CGIプログラムを使用して、そのデータを処理する。
CGIを使用することによる1つの不利な点は、CGIスクリプトが実行されるたびに、新しいプロセスがサーバで起動されることである。
これは、サーバの速度をかなり遅くすることがある。
【0008】
動的な情報をウェブユーザに提供する、まずます一般的となってきた別の方法は、ウェブサーバではなくクライアントのマシンで実行されるスクリプトまたはプログラムを含めることである。
これらのプログラムは、Javaスクリプト、Javaアプレット、またはActiveXコントロールとすることができる。
しかしながら、この場合も、これらのツールには、ある一定量のプログラムロジックが必要であり、ウェブ設計者は、その知識を深く有するとは考えられない。
【0009】
動的なウェブページを作成するさらに別の方法は、例えばサーブレット(すなわち小さなJavaプログラム)といったプログラムを使用するものである。
このプログラムは、サーバに設けられ、サーバで実行される。
サーブレットの機能は、以下に説明するJava Server Pages(商標)(以下、JSPと呼ぶ)を使用することによって拡張されている。
【0010】
Java Server Pageは、標準的なHTMLページと非常によく似ているが、静的HTMLと共に、「スクリプトレット」として知られている小さなスクリプトからなる。
スクリプトレットは、Java Server Pageが要求された時に実行される少量のコードであり、したがって、スクリプトレットは、ページの動的コンテンツを生成するのに使用することができる。
スクリプトレットは、次の書式:<% Javaコード %>を有する。
これらのマーカ内にある任意のコードが、サーバで処理される。
JSPエンジン(例えばサーブレット)は、サーバに設けられ、サーバは、JSPスクリプトレットを解釈して、例えば、ファイルを含めるか、または、データベースにアクセスすることによって、ウェブページの動的コンテンツを生成する。
この動的コンテンツは、その後、静的HTMLと結合され、ユーザのウェブブラウザに返信されるHTMLページが作成される。
【0011】
しかしながら、JSPは、静的HTMLおよび動的な構成要素を混合したものであるので、真に動的なウェブページを作成することは非常に難しい。
さらに、JSPは、ウェブ設計者の問題の原因となるJavaコードをHTMLウェブページに組み込む。
この問題を克服しようとして、JPSカスタムタグが開発されている。
これらのタグにより、ウェブ開発者は、理論的には、すべてのJavaコードを取り除くことができるが、これは、タグを最初に作成することの難しさ、あるいは、設計者の要求を満たす既存のタグライブラリを見つけることの難しさを伴わないわけではない。
カスタムタグによっても、純粋なJSPページのすべてのJavaコードを取り除くことは、事実上不可能である。
具体的には、複雑なHTML書式がサーバに送信されて、JSPがその書式データの妥当性の確認を行わなければならない場合、純粋なJSP手法は、より扱いにくくなる。
【0012】
SunのJSPに類似する技術が、MicrosoftのActive Server Page(ASP)である。
ASPは、例えば電子商取引で使用される対話型ウェブページを作成して、ウェブアプリケーションを構築するのに使用できるサーバ側のスクリプト作成環境である。
より具体的には、ASPは、テキストおよびHTMLタグ(標準的なウェブページと同様)だけでなく、例えばVBScriptまたはJavaScriptといったスクリプト言語(すなわち、特別なタスクまたは限定的なタスクを実行するように設計された簡単なプログラム言語)で記述されたコマンドをも含むテキストファイルである。
サーバは、ASPファイルの要求を受信すると、これらのスクリプトコマンドをサーバにおいて処理し、ウェブページを構築する。
このウェブページは、次に、その後の表示のために、ウェブブラウザに送信される。
ASPを使用して動的なウェブページを作成することの不利な点は、VBSciptが使用されると、このスクリプトコードが、Visual Basicで記述され、あらゆるサーバで実行できるとは限らないということである。
これに加えて、プログラムロジックが、ウェブページのコンテンツのフォーマットから完全に分離されていないことが挙げられる。
【0013】
スクリプト言語XSP(XMLサーバページ言語)で記述されたスクリプトを使用して、XML文書の様式およびコンテンツを生成する方法は、特許文献1(英国公開特許GB 2 359 645A(Dell Products L.P.))に記載されている。
このスクリプト言語は、XML文書に含まれるコンテンツを指定する第1の文書を生成するための制御文、および、XML文書のコンテンツの様式を指定する第2の文書を生成するための制御文を含む。
この方法は、単一コンテンツの文書および単一様式の文書のみを作成するので、そのコンテンツをどのような様式にするかを制御するために、スクリプトには制御ロジックが含まれなければならない。
これに加えて、XMLの命令およびXSLの命令が、XSPスクリプトに組み込まれる。
したがって、十分に様式化されたXML文書を作成するには、依然として、ある一定量のプログラミングの知識が、この方法を使用するウェブ設計者に必要となる。
【0014】
このデータ、プレゼンテーション、およびプログラムロジックの分離の問題は、ウェブ開発者に常に課題となってきたが、上述した解決への試みには、すべて難しい点が存在する。
【特許文献1】
英国公開特許GB 2 359 645A
【発明の開示】
【発明が解決しようとする課題】
【0015】
したがって、例えばウェブページであって、そのページのレイアウトの設計が、そのページの基礎を成すプログラムロジックから完全に独立したウェブページ、といった文書を動的に生成する方法に対する要求が存在する。
【課題を解決するための手段】
【0016】
[発明の概要]
本発明の第1の態様によれば、データを検索する複数の第1のタイプのワークフロー命令と、検索したデータを複数のマークアップ言語フラグメントに変換する複数の第2のタイプの対応するワークフロー命令とを含むワークフロー文書から応答文書を動的に生成する方法であって、ワークフロー文書の選択されたタスクを、その選択されたタスクの第1のタイプの命令を使用して処理すること、その選択されたタスクの第2のタイプの命令を使用して、処理するステップの結果をマークアップ言語フラグメントに変換すること、マークアップ言語フラグメントを応答文書に記憶すること、処理するステップ、変換するステップ、および記憶するステップを繰り返すことであって、それによって、複数のマークアップ言語フラグメントを含む完成した応答文書を作成する、処理するステップ、変換するステップ、および記憶するステップを繰り返すこと、とを含む方法が提供される。
【0017】
本発明の第2の態様によれば、データを検索する複数の第1のタイプのワークフロー命令と、検索したデータを複数のマークアップ言語フラグメントに変換する複数の第2のタイプの対応するワークフロー命令とを含むワークフロー文書から応答文書を動的に生成するシステムであって、第1のタイプのワークフロー命令のそれぞれを処理して、対応する出力を生成する処理手段と、対応する第2のタイプのワークフロー命令のそれぞれを実行して、処理手段の出力のそれぞれを複数のマークアップ言語フラグメントの1つに変換する変換手段と、変換手段によって生成された複数のマークアップ言語フラグメントのそれぞれを応答文書に記憶するデータ記憶装置と、を備えるシステムが提供される。
【0018】
本発明の第3の態様によれば、上記方法および/またはシステムに使用するワークフロー文書であって、複数のワークフロータスクであって、各タスクが、データを検索する第1のタイプのワークフロー命令と、検索したデータをマークアップ言語フラグメントに変換する、対応する第2のタイプのワークフロー命令とを含む、複数のワークフロータスクを含むワークフロー文書が提供される。
【0019】
したがって、マークアップ言語で記述される文書(例えばウェブページ)の構築を、複数のワークフロータスクの組み立て、実行、そして変換描写に削減することができる。
さらに、プログラミング要素(動的コンテンツ)を、設計要素(ウェブページの動的コンテンツのフォーマット)から完全に分離することができる。
これにより、ウェブ設計者は、第2のタイプの命令を単に変更することにより、ウェブページ生成命令の動的なプログラミング部分の必ずしもすべてを変更する必要なく、ウェブページ(またはマークアップ言語で記述された他の文書)の動的コンテンツの外観を変更することができる。
【0020】
また、このように動的ウェブコンテンツ生成命令を分離することにより、ウェブ設計者は、ウェブプログラマから完全に独立して作業することができ、それによって、ウェブサイト開発全体の時間を短縮することができる。
さらに、第2のタイプの命令のライブラリが作成されている場合、ウェブ設計者は、関連付けられた第1のタイプのコマンドによって取得された、動的ウェブコンテンツに適用される必要な動的スタイルを簡単に選択することができる。
【0021】
ワークフロー文書は、ワークフロープロセッサによって処理されることが好ましく、サーバに存在するサーブレットを通じてアクセスされることが最も好ましい。
ワークフロープロセッサは、サーバに位置する小さなプログラムであり、好ましくはメッセージキューを介してサーブレットと対話する。
ワークフロー文書の処理は、ワークフロー文書を構文解析すること、第1のタイプのワークフロー命令および第2のタイプのワークフロー命令を抽出すること、その後に第1のタイプのワークフロー命令を実行してデータを検索することとを含むことが好ましい。
このデータは、ウェブページコンテンツを含んでもよい。
構文解析は、例えばXercesまたはCrimsonといったXMLパーサを使用して行うことができる。
これらのXMLパーサは、Apache機関から入手することができる。
検索されたデータは、中間コードに組み込まれることが好ましい。
この中間コードは、例えばXMLといったマークアップコードであってもよい。
次に、中間コードは、第2のタイプのワークフロー命令を実行することにより、マークアップ言語フラグメントに変換される(このマークアップ言語は、ウェブブラウザによって理解されることが好ましい)。
次に、応答文書は、クライアントサーバ環境のクライアントマシンで表示(または別の処理)を行うためにクライアントに返されることが好ましい。
この応答文書は、例えばHTMLといった、ウェブブラウザによって理解される言語で記述されることが好ましい。
しかしながら、本方法を必ずしもクライアントサーバ環境で実行する必要はなく、ネットワークの一部でないパーソナルコンピュータで実行することもできるし、他の任意の適切なコンピューティング環境で実行することもできる。
【0022】
ワークフロー文書に含まれるワークフロータスクは、ワークフロー文書に現れる順番で実行することが好ましい。
しかしながら、それらのタスクは、異なる順序で実行することもできる。
【0023】
第1のワークフロー命令および第2のワークフロー命令は、マークアップ言語で記述されることが好ましい。
ワークフロー命令(およびワークフロー文書全体)は、拡張可能マークアップ言語(XML(eXtensible Markup Language))で記述されることが最も好ましい。
第1のタイプのワークフロー命令を、以下では、XML命令と呼ぶこととする。
ただし、この命令は、別のワークフロー言語を使用して定義することもできる。
【0024】
中間コードとXML命令の実行により検索されたデータとを組み合わせたものを、以下では、XMLフラグメントと呼ぶこととする。
【0025】
XMLは、情報を「自己記述型」にするように設計されているSGMLに基づいた比較的新しいマークアップ言語である。
XMLは、ユーザ定義のマークアップ言語を作成するのに使用できるルールからなる。
あるXMLのルールは、タグが、常に2つ一組として使用されなければならず、そのタグが参照するデータを取り囲まなければならないというものである。
別のルールは、ツリーを形成するようにタグを互いの中にネストできるというものである。
このように、XMLは、コンピュータプログラムが処理し、理解することができるだけでなく、普通のテキストで記述されるので、ユーザも理解することができる。
XMLにより、設計者は、自身のカスタム化されたタグを作成して、自身のアプリケーション特有の文書タイプを作成することが可能になる。
さらに、HTMLのリンクが、他の1つの文書だけを参照できるのと異なり、XMLは、例えば、複数の文書を指し示すリンクをサポートすることにより、HTMLよりも高機能をサポートする。
【0026】
XML文書は、ノードからなるツリーとして構造化される。
各ノードは、他のノードを包含することができる。
これらの「包含された」ノードのそれぞれは、子ノードと定義される。
これらの包含されたノードのそれぞれも、同様にして、子ノードを持つことがあり、それ以降の子ノードについても同様である。
例えば、次のようになる。
【0027】
【0028】
この例では、Aは、ルールノードであり、Bは、Aの子ノードであり、Cは、Bの子ノードであり、Dは、Cの子ノードである。
【0029】
上述したように、ウェブページは、大部分、HTMLで記述される。
HTMLは、ウェブページの情報をフォーマットするために、例えば<p>(パラグラフの開始を示す)および<b>(ボールド体のテキストを示す)といったあらかじめ定義されたタグを使用する。
これらのタグの意味は、ウェブブラウザによってよく理解される。
XMLによると、とにかくあらゆるタグを使用することができる。
しかしながら、これらのタグの意味は、ウェブブラウザによって自動的には理解されない。
例えば、<table>は、HTMLテーブルを意味することがあるが、XMLで記述された文書で使用された場合、1つの家具を意味することがある。
【0030】
XMLのタグは、ユーザが定義するので、XML文書を表示する標準的な方法は存在しない。
したがって、その文書をどのように表示すべきかを記述する方法が必要とされる。
XML文書をどのように表示すべきかを指示する1つの方法は、例えばカスケーディングスタイルシート(CSS(Cascading Style Sheet))および拡張可能スタイルシート言語(XSL(eXtensible Style sheet Language))といった「スタイルシート」の使用を通じて指示するものである。
XSLファイルは、それ自体、XMLを使用して記述される。
【0031】
XSLは、XML文書を変換する方法と、XML文書をフォーマットする方法との2つの部分からなる。
すなわち、ウェブブラウザが、XSLを表示することができるように、XSLは、XMLをHTMLまたはXHTML(XHTMLは、SGMLの代わりにXMLの応用として、HTML4.0の再定式化である)に変換することができる。
また、XSLは、XML文書のデータの値に基づいて、そのデータをフォーマットすることができる。
XML文書を、従来技術で知られている別のフォーマットの出力文書に変換するのに必要なステップを示した概略ブロック図を図1aに示す。
【0032】
各XMLのフラグメントは、第2のタイプの命令によってマークアップ言語(このマークアップ言語は、ウェブブラウザによって理解されるものが好ましい)のフラグメントに変換される。
この変換は、XMLのフラグメントに適用する変換を指定することにより行われることが好ましい。
この第2の命令は、どの変換がXMLのフラグメントに適用されるかを指定する。
この変換は、XSL−Tとして知られているXSL変換であることが好ましい。
XSL−Tは、XSL−T文書またはスタイルシート内で定義されることが最も好ましい。
しかしながら、XSL変換だけでなく代わりとなる変換タイプを指定することが望ましい場合もある。
例えば、第2のタイプの命令は、オペレーションを指定することができる。
このオペレーションは、XQuery命令によって指定することができ、XQuery命令によって、XML文書に問い合わせを行い、その出力としてXML文書を作成することが可能となる。
以下の例では、2つのワークフロータスクを示す。
第1のタスクは、XMLデータを検索する第1の命令と、XQuery命令を指定する第2の命令とを含む。
【0033】
【0034】
第1のワークフロータスクの第2の命令は、名前tmp1.xmlの下に記憶される文書を作成するbooks.xml文書に問い合わせを行う。
次に、この文書は、第2のワークフロータスクによって指定されるXSL−T文書を使用してHTML文書に変換され、その結果が表示される。
文書books.xmlを以下に示す。
【0035】
【0036】
問い合わせの一例を、「1991年以降にAddison-Wesleyによって出版された本を、それらの出版年および題名を含めて一覧表示せよ」によって与えることができる。
これは、以下によって与えられる。
【0037】
【0038】
上記問い合わせにより、以下の結果が得られる。
【0039】
【0040】
第2のタイプのワークフロー命令は、例えば妥当性確認(ウェブ設計者は、例えば、文書が正しく記入されていること、または、文書がある指定されたシンタックスに適合していることをチェックしたい場合がある)、および、検索されたデータにデジタル署名を挿入するといった他のタイプのオペレーションを指定することができる。
【0041】
XML命令は、検索されるデータ、および、そのデータがどのようにアクセスされるか、または、どのように生成されるかを指定する。
したがって、XML命令は、「リソースタイプ(resource type)」指定子と、そのリソースが記憶されている場所を指し示す「ロケーション(location)」とからなることが好ましい(リソースは、XMLフラグメントを返すことができる任意のソフトウェアコンポーネントである)。
例えば、リソースタイプは、ファイルであってもよく、この場合、そのロケーションは、例えばURLによって指定されるこのファイルのロケーションとなる。
【0042】
ファイルの呼び出しに加えて、XML命令は、例えば、データベースを呼び出してデータを検索することができ、静的テキストまたは提携コンテンツ(syndicated content)(すなわち、例えば画像データベースプロバイダといったサードパーティから取得されるコンテンツ)を要求することができる。
また、XML命令は、ウェブサイトまたはページとのユーザの対話についての状態情報を取得するために使用することもできる。
例えば、XML命令は、ユーザが記入したHTML書式を処理する必要があることを指定する命令であってもよい。
データベースの呼び出しを例に取ると、XML命令は、データベースを呼び出してXML中間コードを取得する機能を呼び出し、データベースから返される、XMLフラグメントを与える情報を「ラップ(wrap round)」する。
【0043】
データベースの呼び出しは、直接実行することもできるし、例えばEnterprise Java Bean(EJB)といったコンポーネントを介して実行することもできる。
EJBは、標準化されたインターフェースを有するソフトウェアコンポーネントである。
EJBを使用する利点は、「ハウスキーピング(house-keeping)」コードの多くが、EJBコンテナによって処理され、このEJBコンテナが、ウェブ開発者の生産性を向上させることである。
【0044】
XML命令は、さらに「名前(name)」を指定することができる。
このようなワークフロー命令について、ワークフロー文書に組み込まれたものを以下に示す。
【0045】
【0046】
名前が指定された場合には、新しい子要素が、その指定された名前を有する応答文書のルートノードに追加され、XSL変換の出力は、その新しい子ノードに挿入される。
これは、次のように示される。
【0047】
【0048】
名前が指定されない場合には、XSL変換の出力は、次のように、応答文書のルールノードの子として直接追加される。
【0049】
【0050】
また、XML命令を使用して、別のワークフロー文書を呼び出すこともできる。
本発明の特定の特徴は、あるワークフロー文書(すなわち「子」のワークフロー文書)を別のワークフロー文書(「親」のワークフロー文書)内から参照できることである。
これにより、ワークフロー文書を、モジュール的な階層的形式で再利用することが可能になり、ウェブページを動的に作成する際の時間および費用を節減することが可能になる。
ユーザが特定のどのワークフロー文書を実行することができるかを指定するための備えも本発明には存在することが好ましい。
また、ワークフロー文書は、必要に応じて、例えばif…else文といった条件文をサポートすることもできる。
【0051】
クライアントサーバ環境では、そのクライアントサーバ環境のサーバ側でXML命令を実行することが最も好ましい。
しかしながら、クライアント側でXML命令を実行してもよい。
クライアントサーバ環境のクライアント側でXML命令を実行する理由は、XSL−T変換の計算コストが、場合によっては大きくなる可能性があり、これにより、サーバの負荷が重くなった場合に、応答文書(例えばウェブページ)の要求に対する応答時間が悪化する可能性があるからである。
負荷を再分散するために、ワークフロー文書を専用のクライアントで実行することができる。
このワークフローの実行は、2つの相違点を除いて、前述したものと非常に類似している。
第1に、クライアントは、サーバから各XMLフラグメントを要求する必要がある。
第2に、クライアントは、サーバからXSL−Tスタイルシートも要求する必要がある。
このすべてのXSL−TスタイルシートおよびXMLフラグメントの要求は、簡単なプロトコルを使用して実施することができる。
クライアントは、XMLフラグメントの変換および応答文書の構築を担当することになる。
【0052】
ワークフロータスクは、タスクを実行する順序を指定することができる。
また、ワークフロータスクは、以下に示すように、タスクを非同期に実行できるかどうかを指定することもできる。
【0053】
【0054】
リモート文書を転送するには、比較的長い時間を要することがある。
したがって、上記2つのワークフロータスクを非同期(すなわち、asynch="true")とすることにより、それらの命令をほぼ並列に実行することが可能になる。
リモート文書が返されるとすぐに、そのリモート文書は、対応するタスクの第2の命令で指定された変換を使用して処理される。
この手法は、順に返信されるリモート文書のそれぞれを待つよりもずっと高速である。
【0055】
XSL−Tフラグメントの再利用をサポートするために、XMLフラグメントは、デバイスに依存しない標準的な言語に適合することが好ましい。
これは、XSL−Tが、XML文書の構造の変化に敏感であるので、XSL−Tを処理するように記述するためである。
すなわち、XML文書の構造が変化すると、XSL−Tも、所望のスタイルおよびフォーマットの効果を生み出すように変化させることが必要な場合がある。
XSL−Tコードを頻繁に編集すると、多大な時間を要し、コストがかさむことになる。
したがって、XMLフラグメント用のマークアップ言語を指定することが有利である。
このマークアップ言語が取る正確な書式は、サーバを配備した組織のハウスルールによって決定することができる。
このような言語の一例を以下に示す。
【0056】
この例では、次の4つのXML要素タイプ、すなわち「グループ要素」、「コンテナ要素」、「複雑型要素」、および「リーフ要素」が定義される。
ここで、グループ要素は、ルートノードであり、コンテナ要素は、グループ要素の子ノードであり、複雑型要素は、コンテナ要素の子ノードであり、リーフ要素は、複雑型要素の子ノードである。
したがって、例えば、XMLのグループ要素は、複数のテーブル行(コンテナ要素)から形成されるHTMLテーブルであってもよい。
各テーブル行は、多数のテーブルセル(複雑型要素)から構成することができ、各テーブルセルは、テキストの項目(リーフ要素)を含むことができる。
以下のテーブルは、XSL−T変換または他の適切な変換を使用してXML要素を変換することにより形成することができるHTML要素の例を与える。
【0057】
【表1】
【0058】
上記で定義したマークアップ言語は、どの特定のレイアウト情報もスタイル情報も規定しないので、単にXSL−Tコードを変更することにより、リストとしてXML要素を描写することもできる。
したがって、ワークフロープロセッサによって作成された応答(HTML)文書の外見および雰囲気は、XSL−T変換によって決定される。
このことの利点は、XSL−Tスタイルシート(したがって変換)が変更されると、XMLフラグメント構造も変更することなく、これらのXMLフラグメントを生成するために使用されるXML命令も変更することなく、HTML出力の外観を変更することができることである。
例えば、上記XML要素を移動通信用の無線マークアップ言語に変換するための変換を提供することができる。
【0059】
ウェブページを生成するXSL−T手法は、従来の手法を上回る明らかな利点を有する。
このXSL−T手法は、その構成部分が明確に分離されるという異なった利点を有する。
すなわち、スタイルが、プログラムロジックおよびコンテンツから分離される。
プロジェクト管理の観点から、これにより、ウェブ設計者が、自身のタスクを開始または完了する前に、より複雑なコードが作成されるのを待ち続けている間、ウェブプログラマを過負荷にするのではなく、すべてのプロジェクトのメンバは、並行して作業することが可能になる。
これにより、時間および費用の双方が節減される。
本発明の別の利点は、XSL−Tコードを再利用できるということである。
これは、企業内で内部的に行うこともできるし、より広いウェブコミュニティの努力の一環として行うこともできる。
XML/XSL−Tフラグメントを使用することの別の利点は、デバイスに依存しないウェブページの制作をより簡単にサポートできることである。
【0060】
XSL−T手法の主な利点は、実行時の性能である。
ほとんどのアプリケーションにとって、実行時の性能は、十分高速であるが、性能が十分でない場合、より有利な手法は、XSL−Tスタイルシートをメモリ内で一度構文解析して、その後、繰り返し使用するために、スタイルシートをメモリに保持することである。
これは、本明細書で説明するワークフロープロセッサの実施の形態で取られる手法である。
【0061】
ワークフロー文書は、設計者が作成するのが好都合である。
応答文書が、ウェブページとして使用される場合、設計者は、ウェブ設計者とすることができる。
この設計者は、XMLフラグメントおよびXML命令定義のリポジトリと、XSL−T変換のリポジトリとにアクセスし、XMLフラグメントをフォーマットして、あるスタイルにすることができる。
その後、設計者が、XML命令およびそのそれぞれのXSL−T変換を含む少なくとも1つのワークフロータスクを指定することにより、ワークフロー文書を作成することができる。
また、設計者は、これらのXSL−T変換を開発することもできる。
ウェブプログラマ/ソフトウェア開発者は、XML命令からXMLフラグメントを作成するコードを記述することを担当することが好ましい。
これらのXMLフラグメントの構造は、設計者によって承諾されることが好ましく、プログラマ/開発者は、前述したようなデバイスに依存しないマークアップを使用することが好ましい。
【0062】
XSL−T変換は、静的XMLファイルを使用することにより、どのサーブレットまたはデータベースコードからも完全に独立に開発することができる。
しかしながら、XSL−Tコードフラグメントは、あらゆるXMLコードフラグメントを変換する必要があるとは限らない。
これは、ウェブブラウザまたは他の適切なアプリケーションによって理解可能な書式にすでに描写されているXMLコードフラグメントの組み込みをサポートする。
【0063】
ワークフロー文書を使用する利点は、プログラムロジックがワークフロー文書に含まれないことである。
プログラムロジックは、小さな文書から大きな文書へ拡大することが容易ではなく(このロジックは、大きな文書用に書き直さなければならないことがある)、また、保守も難しい。
【0064】
ワークフロータスクは、第1のXML命令および複数のXSL命令を含むことができる。
例えば、ワークフロータスクが2つのXSL命令を含む場合、ワークフロープロセッサは、次のようにしてこのワークフロータスクを解釈する。
XML命令が実行され、第1のXMLフラグメントF1が検索される。
次に、フラグメントF1は、第1のXSL命令を使用して変換される。
この変換の出力が、別のXMLフラグメントF2である。
次に、F2は、第2のXSL命令によって変換されて、第3のXMLフラグメントF3が作成される。
この第3のXMLフラグメントF3は、応答文書に挿入される。
例えば、このワークフロータスクは、次のように指定することができる。
【0065】
【0066】
変換transform1.xslは、(リモートウェブサイトsomeWebSiteで利用可能な)source.xmlに適用され、その出力は、transform2.xslによって操作される。
それ以降も同様に処理される。
これを行う理由は、最初に、外部のXML文書を社内のフォーマットに変換し、次に、社内のフォーマットを例えばHTMLのテーブルに変換するためである。
この利点は、第2の変換が、その後、何度も再利用可能であることである。
すなわち、新しいデータ源が、外部のサイトから提供されるごとに、新しいtransforml.xslを記述して、社内のフォーマットに変換することができる。
【0067】
ワークフロー文書は、それ自体がXML文書であってもよいので、本発明の方法は、第1の事前に記述されたワークフロー文書から第2のワークフロー文書を動的に生成するために有利に使用することができる。
次に、第2のワークフロー文書は、例えばHTMLページを生成するために、ワークフロープロセッサによって処理することができる。
例えば、ウェブブラウザの異なる型および異なる版は、異なる方法でデータを表示する。
ウェブ設計者およびウェブプログラマは、おそらく、ユーザが使用している特定のウェブブラウザを前もって知っていることはないであろう。
事前に記述されたワークフロー文書は、新しいワークフロー文書を動的に生成するXML命令を呼び出す。
この新しいワークフロー文書が、ユーザの特定のブラウザ用のXSLフォーマット命令を含む。
この新しいワークフロー文書が、次に、実行されて、HTMLウェブページを作成する。
ワークフロー文書を実行のためワークフロープロセッサに渡す前に、ワークフロー文書を個人専用にすることもできる。
【0068】
本発明の方法は、完全なウェブサイトを生成するために使用することができる。
このウェブサイトの各ウェブページは、単一のワークフロー文書を実行することによって作成されることが好ましい。
同じウェブサイトに属するさまざまなワークフロー文書への呼び出しを区別するために、ウェブブラウザによってサーバに送信されるHTTP要求のヘッダは、ワークフロー文書識別子を含むことが好都合である。
例えば、http://localhost:8080/servlet/servletName?WfID=NといったURLを、対象となるワークフロー文書を識別するのに使用することができる。
ここで、Nは、一意の識別子である。
次に、サーブレットは、HTTP要求からこの一意の識別子を抽出する役割を果たす。
また、サーブレットは、ワークフロー識別子を、そのワークフロー文書が記憶されている場所にマッピングするテーブルを含むこともできる。
ワークフロー文書は、サーブレットと同じサーバに記憶されてもよい。
あるいは、ワークフロー文書は、リモートサーバまたはデータベースに記憶されてもよい。
複数のサーブレットの要求が、並列に処理されてもよい。
【0069】
ウェブサイトは、ウェブページのハイパーリンクを介して接続されたワークフロー文書の論理的集合と考えることができる。
時に、ウェブページの異なるハイパーリンクを介して同じコンテンツまたはデータにリンクすることが望ましい場合がある。
ワークフロー文書から生成されるウェブページのハイパーリンクは、XSL−T変換プロセスが行われる前に、XMLフラグメントに挿入されることが好ましい。
これを図1bに示す。
これらのハイパーリンクは、内部ワークフローリンク(すなわち、そのワークフロー文書と同じウェブサイトの一部である他のワークフロー文書へのリンク)、外部ワークフローリンク(すなわち、異なるウェブサイトに属するワークフロー文書へのリンク)、および外部リンク(すなわち、ワークフローでない文書へのリンク)であってもよい。
ウェブサイトのコンテンツからハイパーリンクをこのように分離することにより、本発明のさらに別の利点が提供される。
すなわち、異なるリンクがその内部に組み込まれた2つの別々のコンテンツファイルを作成する必要はなく、異なるハイパーリンクを利用することによって、単一のコンテンツファイルを異なる状況で使用することができる。
ハイパーリンクがコンテンツから分離されている場合、ウェブサイトのハイパーリンクの管理も、より簡単になる。
【0070】
このハイパーリンク情報は、ワークフロー文書として検索される分離した環境設定ファイルに記憶されることが好都合であり、このワークフロー文書は、ワークフロープロセッサによって処理されることになる。
この環境設定ファイルは、サーバに記憶されることが好ましい。
【0071】
本発明の方法は、ワークフロー文書の処理中、エラー処理も行うことができる。
このエラー処理は、例えば、本方法によって生成される文書にエラーコードを挿入することにより行われる。
このエラーコードは、エラーが発生したワークフロー文書の箇所および/またはエラーのタイプを示す。
【0072】
また、本発明は、例えばウェブページといった動的な応答文書を設計する方法にも拡張される。
この方法は、複数のワークフロータスクを含むワークフロー文書を作成することを含み、該作成するステップは、データを検索する複数の第1のタイプのワークフロー命令と、上記検索したデータを、対応する複数の一般に理解されるフォーマット言語フラグメントに変換する複数の第2のタイプの対応するワークフロー命令とを指定することを含む。
上記指定するステップは、第1のタイプのワークフロー命令または第2のタイプのワークフロー命令を、あらかじめ定められたこのような命令のライブラリから選択することを含むことが好ましい。
【0073】
また、本発明は、上述したような本発明の方法および/またはシステムを実施するコンピュータを構成するように配置されたコンピュータプログラムを含むデータキャリアをカバーするものとみなすこともできる。
【0074】
次に、添付図面を参照して、本発明の現時点の好ましい実施の形態を説明するが、これは、単なる例にすぎない。
【発明を実施するための最良の形態】
【0075】
[好ましい実施の形態の詳細な説明]
図2を参照して、本発明の実施に適した、従来技術で既知のクライアントサーバシステム8を示す。
このクライアントサーバシステム8は、クライアントコンピュータ10を備える。
このクライアントコンピュータ10は、インターネット14を介してサーバコンピュータ12に接続される。
サーバ12は、オプションとして、別の接続18によりデータベース16に接続される。
図2の矢印は、クライアントコンピュータ10とサーバ12との間、および、サーバ12とデータベース16との間で、データを双方向に交換できることを示している。
ユーザ20がインターネットを通じてさまざまなサーバおよびウェブサイトに自在に移動できるようにするために、クライアントコンピュータ10には、インターネットブラウザまたはウェブブラウザ22が設けられる。
システム8のサーバ側には、ワークフロープロセッサ25と共に、ウェブサーバ12上で実行されるサーブレット24が設けられる。
【0076】
図面の図3を参照して、「ワークフロー文書」として知られている文書26の概略図を示す。
ワークフロー文書の概略構造のみを示している。
ワークフロー文書は、図2に示すように、クライアントサーバシステム8のサーバ側に配置される。
この文書26は、複数のワークフロータスク27を含む。
各ワークフロータスク27は、各XSL−Tフォーマット/変換命令30と共にXMLフラグメントを検索するためのXML命令28を含む。
図3の略図は、第1のワークフロータスク27aおよび第2のワークフロータスク27bを明示的に示している。
第1のワークフロータスク27aおよび第2のワークフロータスク27bは、それらのそれぞれの第1のXML命令28aおよび第2のXML命令28b、ならびに対応する第1のXSL−Tフォーマット命令30aおよび第2のXSL−Tフォーマット命令30bを有する。
しかしながら、このワークフロー文書は、任意の個数のワークフロータスク27を含むことができる。
XSL−Tフォーマット命令30a、30bも、XMLで記述されるので、ワークフロー文書26は、それ自体、XML文書である。
このワークフロー文書を使用して、ウェブページ32が、サーバ12で動的に作成される。
これを行う方法を次に説明する。
【0077】
図面の図4を参照して、本発明の好ましい実施の形態による方法の概要を示す。
この方法100は、ステップ102で、ユーザ20がサーバ12からのウェブページ32を要求することから開始する。
この要求は、ウェブページ(図示せず)のURLをウェブブラウザ22に入力することにより行われる。
ウェブブラウザ22は、要求されたウェブページを取得するために、GET要求をインターネット14を介してサーバ12に送信する。
次に、ステップ103で、サーバ12に設けられているサーブレット24が、このGET要求を処理し、ステップ104で、記憶されたワークフロー文書26を検索する。
このワークフロー文書26は、サーバ12に接続されたデータベース16に存在するものとして示されている。
しかしながら、ワークフロー文書26は、サーバ12に存在してもよいし、リモートサーバ(図示せず)に存在してもよい。
【0078】
次に、ステップ108でHTMLファイル42を生成するために、ステップ106で、ワークフロー文書26がワークフロープロセッサ25によって処理される。
次に、ステップ110で、このHTMLファイル42は、クライアントマシン10に送信される。
HTMLファイル42は、送信されるとすぐに、ステップ112で、ユーザのウェブブラウザ22によりウェブページ32として表示される。
次に、図5を参照して、方法100のステップ103からステップ110をさらに詳細に説明する。
【0079】
まず、ステップ202で、サーブレット24が、ウェブブラウザ22からのHTTP要求を受信する。
HTTP要求は、ワークフロー文書番号123を呼び出す"localhost:8080/servlet/WorkflowServ?workflow="123"に送信される。
サーブレットは、ステップ204で、この要求を処理し、ステップ205で、ワークフロー文書番号123を検索する。
ユーザ20が、HTMLウェブページではなくワークフロー文書26を要求していることに気付かないように、ワークフロー文書の検索に使用されるHTTP要求は、エイリアスであってもよい。
次に、ステップ206で、このワークフロー文書26が、メッセージの内部にカプセル化され、このメッセージは、その後、ステップ208でワークフローインバウンドメッセージキューに置かれる。
【0080】
サーブレットのオペレーションと並行して、ワークフロープロセッサ25は、ステップ210で、ワークフローインバウンドメッセージキューに置かれるメッセージを繰り返しリスンする。
メッセージがキューに存在すると、ワークフロープロセッサ25は、ステップ214で、その内部キューの最初のメッセージ20読み出し、ステップ214で、ワークフロー文書番号123をメッセージから抽出する。
一方で、これらの読み出しステップおよび抽出ステップに先立って、ワークフロープロセッサは初期化される。
その初期化中に、ワークフロープロセッサ25は、ステップ216で、環境設定ファイルを読み出す。
この環境設定ファイルは、ワークフロープロセッサ25の情報を含む。
この情報としては、例えば、ホスト名、サーバポート番号、文書源の場所、および他のサイトマップなどといったものがある。
この情報は、ワークフロープロセッサ25が、他のワークフロー文書およびサイトへのURLリンクを生成することを可能とするために必要とされる。
サイト管理者が、例えば、別のマシンのサーブレットおよびワークフロープロセッサを実行したい場合には、この環境設定ファイルのみを編集する必要がある。
【0081】
次に、ステップ218で、ワークフロープロセッサ25は、抽出したワークフロー文書を処理する。
この処理には、ワークフロー文書26を構文解析して、ワークフロー文書26内のワークフロータスク27を順に実行することが含まれる。
ワークフロー文書26の処理に要するステップを図6によって示し、以下に説明する。
【0082】
図6を参照して、ステップ302で、ワークフロープロセッサ25は、構文解析したワークフロー文書から第1のワークフロータスク27を得て、第1のXML命令28aを読み出す。
次に、ステップ304で、このXML命令は、ワークフロープロセッサ25により実行される。
XML命令28を使用して、データベース呼び出しを行うことにより、ウェブページ32に含めるための動的コンテンツを検索することができる。
この場合、XML命令によって返されるXMLフラグメントは、データベースから取得された、XMLコードに組み込まれた情報を含む。
XML命令28を使用して、異なるサーバまたはデータベースに配置された静的XMLコード34を検索することもできる。
別の例では、XML命令28を実行して、XML中間コードにも組み込まれる提携コンテンツ38を取得することができる。
XML命令28を使用して、別のワークフロー文書を検索することもできる。
この様子を図7によって示す。
この図では、3つのネストされたワークフロー文書26a、26b、および26cを示している。
ワークフロー文書26aの第1のXML命令28aが、第2のワークフロー文書26bを呼び出す。
次に、このワークフロー文書の第1のXML命令28bは、第3のワークフロー文書26cの呼び出しを行うことができる。
このプロセスは、このステップで終了することもできるし、この第3のワークフロー文書26cのXML命令が、さらにワークフロー文書の呼び出しを行い、かつ/または、さらにXMLフラグメントを検索することもできる。
【0083】
図6に戻って、第1のXML命令28aを実行し、それによって、XMLフラグメントを作成した後、ワークフロープロセッサ25は、ステップ306で、各XSL−Tフォーマット命令を得る。
ステップ308で、このXSL−Tコードは使用されて、XML命令28の実行により作成されたXMLフラグメントがフォーマットされる。
次に、フォーマットされたデータは、ステップ310で、HTMLファイル42(図13参照)に書き込まれる。
次に、ステップ312で、サーブレット24は、すべてのXMLタスク27が実行されたかどうかをチェックする。
実行するXMLタスクが残っている場合には、それらのタスクのすべてが処理されるまで、ステップ302からステップ310が繰り返される。
次に、ステップ314で、完成したHTMLファイル42が、外部メッセージキューに出力される。
【0084】
次に図5に戻って、動的に生成されたHTMLファイル42が、ワークフロープロセッサ25によって外部メッセージキューに置かれた(ステップ220)後、サーブレット24は、そのキューからメッセージを検索するように通知を受ける。
キューにメッセージが存在する場合、サーブレットは、ステップ222で、生成されたHTMLファイル42をキューから抽出する。
次に、ステップ224で、このHTMLファイルは、HTTPを介してクライアント10に送信される。
次に、ステップ226で、このHTMLファイルは、クライアントコンピュータのウェブブラウザ22によって表示され、ユーザは、「通常の」ウェブページ32としてそのHTMLファイルを見る。
【0085】
次に、図8を参照して、本発明の好ましい実施の形態と共に使用するワークフロー文書26を作成するプロセスを説明する。
ウェブ設計者(60)は、2つのリポジトリ44および46(データベース16aおよび16bとして示す)にアクセスすることができる。
第1のリポジトリ44は、XMLフラグメントの詳細およびこれらの詳細の取得を可能にするメカニズム28を含むデータベースまたはファイル記憶装置である。
例えば、前述したように、命令28は、データベース呼び出し、他のワークフロー文書26の検索、静的テキストの検索などを行うことができる。
これらの命令28は、ウェブ技術とインターネットが機能する方法とについて深い知識を有するウェブプログラマまたはウェブ開発者が(ウェブ設計者と相談して)事前に記述する。
【0086】
第2のリポジトリ46は、XMLで事前に記述されるXSL−Tフォーマット命令30のライブラリを含むデータベースまたはファイル記憶装置である。
これらのXSL−T文書は、ウェブ設計者によって記述される可能性が高い。
【0087】
ウェブブラウザ22に表示するウェブページ22を生成するのに適したワークフロー文書26を作成するために、ウェブ設計者は、新しいワークフロー文書を作成し、文書25にXML命令を挿入し、XML命令の実行により返される各XMLフラグメントの変換に使用するXSL−T文書を指定する。
したがって、例えば、第1のXML命令28が、ウェストエンドショーの予備の劇場券についての詳細を取得するためのデータベースの呼び出しである場合、対応するXSL−Tフォーマット命令は、このデータをウェブページ32にどのように表示するかを記述することになる。
【0088】
次に、本発明の好ましい実施の形態の一使用例を説明する。
この例は、データベースの呼び出し、および、ウェブブラウザ22に表示されるウェブページ32に書式54としてその結果データを表示することに関係したものである。
まず、JSPページ48の一部のソースコードを解説して、本発明の利点をより良く例示する。
このソースコードを図9に示す。
この図から、JSPページ48が、静的HTMLコード(通常の字体で示す)、および、Javaプログラム言語で記述されたJSPの式50(ボールド体で示す)を含むことが分かる。
サーバ12でJSPページ48を処理することにより、図10に示すHTMLウェブページ32が作成される。
【0089】
次に、JSPソースコードを詳細に見ることにする。
コードのライン1は、記入可能であり、かつ、サーバ12に書き込み(post)可能な書式として、ウェブページ32が表示されることをウェブブラウザ22に通知する。
また、ライン1は、JSPページの名前(「example.jsp」)も含む。
コードのライン3は、この書式がテーブル54として表示されることをブラウザ22に告げる。
ライン4のHTMLタグ<tr>およびライン8のHTMLタグ</tr>は、それぞれ、テーブル行の開始および終了を示す。
その間にあるライン5から7は、テーブルの列の見出しを与える。
ここで、テーブルの第1列の見出しは空であり、第2列の見出しは、「Show」(ショー)であり、第3列の見出しは、「Seats Remaining」(残っている席)である。
JSPソースコードのライン11および12は、データベースを呼び出して、データベースに入力されている劇場のショーについての詳細を検索する。
このコードは、動的であり、ウェブブラウザによって表示されるテーブルのサイズは、データベースが検索したショーの個数に依存する。
【0090】
ライン14から26のコードは、テーブルの第1列に表示するものをウェブブラウザ22に告げる。
特定のショーの席が残っている場合には、ラジオボタン52が表示される。
席が残っていない場合には、テーブルセル54は、空白のままとなる。
ライン28から30は、テーブルの第2列にショーの名前を表示し、ライン31から33は、その特定のショーの空席の個数を表示する。
JSPソースコード48は、ウェブプログラマの視点からは理解するのが容易であるが、プログラミングの経験のない可能性のあるウェブ設計者には必ずしも見てすぐに分かるとは限らない。
ウェブ設計者は、通例、販売されているWYSIWYG(What You See Is What You Get)のウェブ設計パッケージの1つを使用し、これらのパッケージは、下にあるコードを設計者に見せない。
【0091】
次に、本発明の好ましい実施の形態を使用する同じウェブページ32を作成するコードを解説する。
図10に示すウェブページ32は、以下のワークフロー文書によって生成することができる。
このワークフロー文書は、データベースを呼び出すXML命令28、および、関連したXSL−Tフォーマット命令30を含む。
【0092】
【0093】
次に、このワークフロー文書の処理を説明する。
まず、ワークフロー文書は、構文解析されて、XML命令28が取得される。
次に、このXML命令は、ワークフロープロセッサ25によって実行される。
XML命令28は、データベース呼び出し("DB")として指定される「リソースタイプ(resource type)」を含む。
XML命令28の属性「loc」は、書式class::methodで表される。
この例では、ConfReg(conference registration(会議参加登録)の短縮形)は、クラスの名前であり、getSeatsは、起動するクラスメソッド(class method)の名前である。
このクラスは、サーブレットに登録されるので、パス名もファイルロケーションも指定する必要はない。
クラス「ConfReg」は、データベースからデータを読み出すコード、および、そのコードを書き込んで、このデータを含むXMLコードフラグメントを作成するコードを含めて、ウェブ開発者またはウェブプログラマによって開発されることになる。
図9に示す(Duane K. FieldsおよびMark A. Kolb, Manning Publications 2000による"Web Development with Java Server pages"からの)Javaコードスクリプトの断片である以下のコードの部分は、このクラスメソッドに有効に含まれる。
【0094】
String sql="SELECT * FROM SHOWS";
ResultSet results=connection.executeQuery(sql);
While(results.next()){
【0095】
このクラスメソッドの呼び出し「getSeats」の出力は、サーブレット24に返される。
この出力は、図11に示すXMLフラグメント56となる。
【0096】
上記ワークフロー文書は、書式54の設計およびフォーマットが、書式のプログラムロジックおよびコンテンツから完全に分離していることを示す。
本発明の好ましい実施の形態では、プログラムロジックは、クラス「ConfReg」およびメソッド「getSeats」に組み込まれ、スタイルおよびフォーマットは、XSLファイルに設けられる。
したがって、ウェブ設計者は、クラスを参照して、そのクラスに属する方法を呼び出すことのみ必要となる。
これは、図9に示すJSPページとは大きく異なっている。
図9に示すJSPページでは、Javaコードがページに組み込まれる。
【0097】
図11に示すXMLフラグメントをフォーマットするために、XSL−Tファイル「renderForm」が呼び出される。
このファイル内で定義されるXSL−Tスタイルシートを図12に示す。
XSLは、テンプレートルールに基づく宣言型言語である。
各テンプレートルールは、パターンおよびアクションからなり、xsl:templateにより指定される。
XSL−Tの詳細な解説の情報は、当業者に容易に入手可能であるので、本明細書では、詳細に解説しないこととする。
【0098】
図12に示すスタイルシートの例には、4つのテンプレートルール「GroupElement(グループ要素)」、「ContainerElement(コンテナ要素)」、「TextElement(テキスト要素)」、および「ComplexElement(複雑型要素)」がある。
これら4つのテンプレートルールのパターンは、XMLコードフラグメント56の<GroupElement>タグに一致する「GroupElement」、XMLコードフラグメントの<ContainerElement>タグに一致する「ContainerElement」などである。
【0099】
ルールのアクションは、各ルールの本体によって指定される。
例えば、「ComplexElement」のxsl:templateは、XMLフラグメント56に適用されると、テーブルセルを定義するHTMLタグ<td>および</td>を作成する一方、「TextElement」のxsl:templateは、XML文書のテキスト要素の本体をHTML出力に単に挿入するだけである。
【0100】
ウェブブラウザ22に表示されるテーブル54の追加行が、データベース呼び出しによって返されると、XSL−Tスタイルシート58は、ウェブ設計者からの介入なく、それらの行をフォーマットする。
例えば、ある一定のフォントまたは色でテキストを表示するといった異なる属性が必要とされる場合、このコードをXSL−Tファイルまたはカスケーディングスタイルシート(CSS)に簡単に追加することができる。
XSL−Tファイル内にはロジックは適用されず、スタイルおよびマークアップコードのみが指定されることに留意されたい。
この手法により、ウェブ開発者またはウェブプログラマの役割と、XMLタグを承諾することだけが必要とされるウェブ設計者の役割との分離が簡単になる。
コードおよびロジックは、ウェブページ制作プロセスから分離される。
【0101】
ワークフロー文書26から作成されたHTMLコードを単純にした版を図13に与える。
完成したHTMLファイルが、クライアント10に送信されると、このHTMLファイルは、図10に示すコンテンツと同じコンテンツを有するウェブページ32として表示される。
図9のJSPコードによって作成されたウェブページと、ワークフロー文書26から作成されたウェブページとは、可能な限り同一であるが、これは、もちろん、ウェブブラウザの設定ならびにXSL−Tスタイルシートで指定されるフォーマット命令およびスタイル命令に依存する。
【0102】
本発明の特定の実施の形態を説明してきたが、当該実施の形態は、模範的なものにすぎず、適切な知識および技術の所持者に思い浮かぶような変形および変更を、添付の特許請求の範囲に宣言するような本発明の精神および範囲から逸脱することなく行い得ることが理解されるべきである。
例えば、本発明は、ウェブブラウザに表示される書式からのデータのプレゼンテーションおよび処理に使用することにも適している。
応答文書は、表示スクリーンに描写するための書式でフォーマットされる必要はないが、実際には、ウェブブラウザとは異なるアプリケーションプログラムを実行するクライアントによって消費されるように記述されたXML文書であってもよい。
また、本発明の方法は、クライアントサーバ環境で実行されることに限定されるものでもない。
本発明の方法は、1台のコンピュータ、複数のコンピュータからなるネットワーク、またはコンピュータの他の任意の適切な構成を使用して実行されてもよい。
【図面の簡単な説明】
【0103】
【図1a】従来技術によるXSL−Tスタイルシートを使用したXMLコードのフォーマットを示す概略ブロック図である。
【図1b】本発明の一実施の形態によって生成される応答文書にリンクを加える方法を示す概略ブロック図である。
【図2】本発明の現時点の好ましい実施の形態を実施するのに適したクライアントサーバシステムを示す概略図である。
【図3】本実施の形態で使用されるワークフロー文書の概略図である。
【図4】本発明の本実施の形態によりウェブページを作成するワークフロー文書を処理する方法を示すハイブリッド流れ図である。
【図5】図4に示す方法のステップ103〜ステップ110をさらに詳細に示す流れ図である。
【図6】図4に示す方法の処理ステップの流れ図である。
【図7】本実施の形態によって生成できるネストしたワークフロー文書を示す図である。
【図8】本実施の形態によるウェブ設計者によるワークフロー文書の生成を示す概略図である。
【図9】書式を生成する従来技術のJava Server Pageのソースコードを示す。
【図10】図9のソースコードにより生成されるウェブページを示す概略図である。
【図11】本実施の形態によるワークフロー文書により生成されて、図10に示すウェブページに表示されたテーブルのコンテンツを提供するXMLフラグメントを示す。
【図12】図11のXMLフラグメントをフォーマットすることに使用されるXSL−Tコードのセグメントを示す。
【図13】本実施の形態のワークフロー文書により生成されて、図10に示すウェブページに表示されたテーブルを作成するHTMLコードを示す。
【符号の説明】
【0104】
12・・・サーバ、
14・・・インターネット、
16・・・データベース、
20・・・ユーザ、
22・・・ウェブブラウザ、
32・・・ウェブページ、
34・・・静的XMLコード、
24・・・サーブレット、
25・・・ワークフロープロセッサ、
26・・・ワークフロー文書、
27・・・第1のワークフロータスク、
28・・・第1のXML命令28、
30・・・XSL−Tフォーマット命令、
38・・・提携コンテンツ、
42・・・HTMLファイル、
44,46・・・リポジトリ、
48・・・JSPページ、
50・・・Javaプログラム言語で記述されたJSPの式、
52・・・ラジオボタン、
56・・・XMLフラグメント、
58・・・XSL−Tスタイルシート、
Claims (47)
- データを検索する複数の第1のタイプのワークフロー命令と、前記検索したデータを複数のマークアップ言語フラグメントに変換する複数の第2のタイプの対応するワークフロー命令とを含むワークフロー文書から応答文書を動的に生成する方法であって、
ワークフロー文書の選択されたタスクを、該選択されたタスクの前記第1のタイプの命令を使用して処理することと、
前記選択されたタスクの前記第2のタイプの命令を使用して、前記処理するステップの結果をマークアップ言語フラグメントに変換することと、
前記マークアップ言語フラグメントを応答文書に記憶することと、
前記処理するステップ、前記変換するステップ、および前記記憶するステップを繰り返すことであって、それによって複数のマークアップ言語フラグメントを含む完成した応答文書を作成する、前記処理するステップ、前記変換するステップ、および前記記憶するステップを繰り返すこと
とを含むワークフロー文書から応答文書を動的に生成する方法。 - 前記ワークフロー文書の選択されたタスクを処理する前記ステップは、
前記ワークフロー文書を構文解析することと、
前記第1のタイプのワークフロー命令および前記第2のタイプのワークフロー命令を前記選択されたタスクから抽出することと、
前記第1のタイプのワークフロー命令を実行することであって、それによってデータを検索する、前記第1のタイプのワークフロー命令を実行することと
を含む
請求項1に記載のワークフロー文書から応答文書を動的に生成する方法。 - 前記処理するステップは、あらかじめ定められた一連のタスクに対して実行される
請求項1に記載のワークフロー文書から応答文書を動的に生成する方法。 - 前記繰り返すステップは、
現在のタスクの処理を完了する前に、次のタスクを処理すること
を含む
請求項1に記載のワークフロー文書から応答文書を動的に生成する方法。 - 前記選択されたタスクの前記第1のタイプのワークフロー命令を処理する前記ステップは、
データベース呼び出しを行うことによって、データベースからデータを検索すること
を含む
請求項2に記載のワークフロー文書から応答文書を動的に生成する方法。 - 前記選択されたタスクの前記第1のタイプのワークフロー命令を処理する前記ステップは、
前記ワークフロー文書に組み込まれる別のワークフロー文書を呼び出すことと、
前記別のワークフロー文書を処理することと
を含む
請求項2に記載のワークフロー文書から応答文書を動的に生成する方法。 - 前記処理するステップは、
データを検索すること
を含み、
前記変換するステップは、
前記検索したデータをマークアップ言語コードのような中間コードに組み込むこと
をさらに含む
請求項1に記載のワークフロー文書から応答文書を動的に生成する方法。 - 前記変換するステップは、
前記処理するステップの結果のサブセットを変換すること
を含む
請求項1に記載のワークフロー文書から応答文書を動的に生成する方法。 - 前記変換するステップは、
前記処理するステップの結果の正当性を確認すること
をさらに含む
請求項1に記載のワークフロー文書から応答文書を動的に生成する方法。 - 前記処理するステップは、
クライアントサーバ環境のクライアントから応答文書の要求を受信すること、前記ワークフロー文書を検索することと、
前記ワークフロー文書をワークフロープロセッサに送信することと
をさらに含む
請求項1に記載のワークフロー文書から応答文書を動的に生成する方法。 - 前記処理するステップの結果にハイパーリンクを挿入すること
をさらに含む請求項1に記載のワークフロー文書から応答文書を動的に生成する方法。 - 前記処理するステップの結果にデジタル署名を挿入すること
をさらに含む請求項1に記載のワークフロー文書から応答文書を動的に生成する方法。 - 前記処理するステップおよび前記変換するステップは、クライアントサーバ環境のサーバ側で実行される
請求項1に記載のワークフロー文書から応答文書を動的に生成する方法。 - 前記処理するステップおよび前記変換するステップは、クライアントサーバ環境のクライアント側で実行される
請求項1に記載のワークフロー文書から応答文書を動的に生成する方法。 - 前記変換するステップは、
一時的なコードの形で結果を生成することと、
続いて、該一時的なコードをマークアップ言語フラグメントに変換することと
を含む
請求項1に記載のワークフロー文書から応答文書を動的に生成する方法。 - 前記変換するステップは、
前記第1のタイプのワークフロー命令を実行することにより検索されたデータを受信することと、
前記第2のタイプのワークフロー命令を実行することと
を含み、
該実行するステップは、
前記受信したデータに変換を適用すること
を含む
請求項1に記載のワークフロー文書から応答文書を動的に生成する方法。 - 前記第2のタイプのワークフロー命令を実行する前記ステップは、
前記変換を含むXSL文書を検索すること
をさらに含む
請求項16に記載のワークフロー文書から応答文書を動的に生成する方法。 - ウェブブラウザに表示するために、前記応答文書をクライアントサーバ環境のクライアントに伝送すること
をさらに含む請求項16に記載のワークフロー文書から応答文書を動的に生成する方法。 - 前記ワークフロー文書のエラーをチェックすること、
エラーが発生すると、該エラーが発生した該ワークフロー文書の箇所および/または該エラーのタイプを特定するエラーコードを前記応答文書に挿入することと
をさらに含む請求項1に記載のワークフロー文書から応答文書を動的に生成する方法。 - 対応する第1のタイプのワークフロー命令に関連付けられた、前記第2のタイプのワークフロー命令の少なくとも1つは、
第1の連続したワークフロー命令および第2の連続したワークフロー命令
を含み、
前記変換するステップは、
前記第1のタイプのワークフロー命令の結果に対して前記第1の連続したワークフロー命令を実施することと、その後に、
前記第1の連続したワークフロー命令の結果に対して前記第2の連続したワークフロー命令を実施することと
を含む
請求項1に記載のワークフロー文書から応答文書を動的に生成する方法。 - 前記第1のタイプのワークフロー命令および前記第2のタイプのワークフロー命令を含むあらかじめ定められたワークフロー文書を使用することであって、それによって前記応答文書を動的に生成するための前記ワークフロー文書を生成する、あらかじめ定められたワークフロー文書を使用すること
をさらに含む請求項1に記載のワークフロー文書から応答文書を動的に生成する方法。 - データを検索する複数の第1のタイプのワークフロー命令と、前記検索したデータを複数のマークアップ言語フラグメントに変換する複数の第2のタイプの対応するワークフロー命令とを含むワークフロー文書から応答文書を動的に生成するシステムであって、
前記第1のタイプのワークフロー命令のそれぞれを処理して、対応する出力を生成する処理手段と、
前記対応する第2のタイプのワークフロー命令のそれぞれを実行して、前記処理手段の前記出力のそれぞれを前記複数のマークアップ言語フラグメントの1つに変換する変換手段と、
前記変換手段によって生成された前記複数のマークアップ言語フラグメントのそれぞれを前記応答文書に記憶するデータ記憶装置と
を備えるワークフロー文書から応答文書を動的に生成するシステム。 - 前記処理手段は、
前記ワークフロー文書を構文解析して、前記複数の第1のタイプの命令および前記対応する複数の第2のタイプの命令を実行するために抽出するパーサ
を備える
請求項22に記載のワークフロー文書から応答文書を動的に生成するシステム。 - 前記複数の第1のタイプの命令は、
少なくとも1つのXML命令
を含み、
前記複数の第2のタイプの命令は、
少なくとも1つのXSLフォーマット命令またはCSSフォーマット命令
を含む
請求項22に記載のワークフロー文書から応答文書を動的に生成するシステム。 - 前記複数の第1のタイプの命令は、
少なくとも1つのXML命令
を含み、
前記複数の第2のタイプの命令は、
少なくともXQuery動作
を含む
請求項22に記載のワークフロー文書から応答文書を動的に生成するシステム。 - 前記処理手段および前記変換手段は、
ワークフロープロセッサ
を備え、
該システムは、
前記ワークフロープロセッサにアクセスするサーブレット
をさらに備える請求項22に記載のワークフロー文書から応答文書を動的に生成するシステム。 - 前記ワークフロープロセッサおよび前記サーブレットは、メッセージキューを介して通信するように配置される
請求項26に記載のワークフロー文書から応答文書を動的に生成するシステム。 - 前記サーブレットは、前記応答文書の前記マークアップ言語フラグメントをクライアントサーバ環境のクライアントに伝送するように配置される
請求項26に記載のワークフロー文書から応答文書を動的に生成するシステム。 - クライアントサーバ環境のクライアントから応答文書の要求を受信する通信サーバと、
前記ワークフロー文書を検索して該ワークフロー文書を前記ワークフロープロセッサに渡す手段と
をさらに備える請求項22に記載のワークフロー文書から応答文書を動的に生成するシステム。 - 請求項1に記載の方法を実施するコンピュータを構成するように配置されたコンピュータプログラムを含む
データキャリア。 - 請求項1に記載の方法に使用するワークフロー文書であって、
データを検索する第1のタイプのワークフロー命令と、
前記検索したデータをマークアップ言語フラグメントに変換する、対応する第2のタイプのワークフロー命令とをそれぞれが含む複数のワークフロータスクと
を含むワークフロー文書。 - 前記第1のタイプのワークフロー命令および前記第2のタイプのワークフロー命令は、
マークアップ言語で記述されたコード
を含む
請求項31に記載のワークフロー文書。 - 前記マークアップ言語は、
XML
を含む
請求項32に記載のワークフロー文書。 - 前記第1のタイプのワークフロー命令は、検索される前記データのタイプおよび場所を指定する
請求項31に記載のワークフロー文書。 - 前記ワークフロータスクは、該タスクが非同期に実行できるかどうかを指定する
請求項31に記載のワークフロー文書。 - 前記第2のタイプのワークフロー命令は、前記検索されたデータを変換するための変換を含む文書の位置を指定する
請求項31に記載のワークフロー文書。 - 前記第2のタイプのワークフロー命令は、
XSL命令またはCSS命令
を含む
請求項36に記載のワークフロー文書。 - 前記第2のタイプのワークフロー命令は、
XQuery命令
を含む
請求項36に記載のワークフロー文書。 - どのタスクを実行するかを決定するための条件論理文
をさらに含む請求項31に記載のワークフロー文書。 - ウェブページといった動的応答文書を設計する方法であって、
複数のワークフロータスクを含むワークフロー文書を作成すること
を含み、
該作成するステップは、
データを検索する複数の第1のタイプのワークフロー命令と、
前記検索したデータを、対応する複数の一般に理解されるフォーマット言語フラグメントに変換する複数の第2のタイプの対応するワークフロー命令と
を指定すること
を含む
ウェブページといった動的応答文書を設計する方法。 - 前記指定するステップは、
第1のタイプのワークフロー命令または第2のタイプのワークフロー命令を、あらかじめ定められたこのような命令のライブラリから選択すること
を含む
請求項40に記載のウェブページといった動的応答文書を設計する方法。 - 請求項22に記載のシステムを構成するように配置されたコンピュータプログラム
を含むデータキャリア。 - データを検索する複数の第1のタイプのワークフロー命令と、前記検索したデータを複数のマークアップ言語フラグメントに変換する複数の第2のタイプの対応するワークフロー命令とを含むワークフロー文書から応答文書を動的に生成する方法であって、
ワークフロー文書の選択されたタスクを、該選択されたタスクの前記第1のタイプの命令を使用して処理することと、
前記選択されたタスクの前記第2のタイプの命令を使用して、前記処理するステップの結果をマークアップ言語フラグメントに変換することと、
前記マークアップ言語フラグメントを応答文書に記憶することと、
前記処理するステップ、前記変換するステップ、および前記記憶するステップを繰り返すことであって、それによって複数のマークアップ言語フラグメントを含む完成した応答文書を作成する、前記処理するステップ、前記変換するステップ、および前記記憶するステップを繰り返すことと
を含み、
対応する第1のタイプのワークフロー命令に関連付けられた、前記第2のタイプのワークフロー命令の少なくとも1つは、
第1の連続したワークフロー命令および第2の連続したワークフロー命令
を含み、
前記変換するステップは、
前記第1のタイプのワークフロー命令の結果に対して前記第1の連続したワークフロー命令を実施することと、
その後に、前記第1の連続したワークフロー命令の結果に対して前記第2の連続したワークフロー命令を実施することと
を含む
ワークフロー文書から応答文書を動的に生成する方法。 - データを検索する複数の第1のタイプのワークフロー命令と、前記検索したデータを複数のマークアップ言語フラグメントに変換する複数の第2のタイプの対応するワークフロー命令とを含むワークフロー文書から応答文書を動的に生成する方法であって、
ワークフロー文書の選択されたタスクを、その選択されたタスクの前記第1のタイプの命令を使用して処理することと、
その選択されたタスクの前記第2のタイプの命令を使用して、前記処理するステップの結果をマークアップ言語フラグメントに変換することと、
前記マークアップ言語フラグメントを応答文書に記憶することと、
前記処理するステップ、前記変換するステップ、および、前記記憶するステップを繰り返すことであって、それによって、複数のマークアップ言語フラグメントを含む完成した応答文書を作成し、該繰り返すステップは、現在のタスクの処理の完成前に次のタスクの処理をすることをさらに含む繰り返すことと
を含むワークフロー文書から応答文書を動的に生成する方法。 - データを検索する複数の第1のタイプのワークフロー命令と、前記検索したデータを複数のマークアップ言語フラグメントに変換する複数の第2のタイプの対応するワークフロー命令とを含むワークフロー文書から応答文書を動的に生成する方法であって、
ワークフロー文書の選択されたタスクを、その選択されたタスクの前記第1のタイプの命令を使用して処理することと、
その選択されたタスクの前記第2のタイプの命令を使用して、前記処理するステップの結果をマークアップ言語フラグメントに変換することと、
前記マークアップ言語フラグメントを応答文書に記憶することと、
前記処理するステップ、前記変換するステップ、および前記記憶するステップを繰り返すことであって、それによって、複数のマークアップ言語フラグメントを含む完成した応答文書を作成し、該繰り返すステップは、前記ワークフロー文書に組み込まれる別のワークフロー文書を呼び出すこと、該別のワークフロー文書を処理することとをさらに含む繰り返すことと
を含むワークフロー文書から応答文書を動的に生成する方法。 - データを検索する複数のXMLコードフラグメントと、前記検索したデータをフォーマットする複数のXSL変換とを含むワークフロー文書からXML文書を動的に生成する方法であって、
前記ワークフロー文書の選択されたタスクを、該選択されたタスクの前記XMLコードフラグメントを使用して処理することであって、それによってデータを検索する、前記ワークフロー文書の選択されたタスクを処理すること、および、前記検索したデータを別のXMLコードフラグメントに組み込むことと、
前記選択されたタスクの前記XSL変換を使用して、前記別のXMLコードフラグメントをフォーマットすることと、
前記フォーマットしたXMLコードフラグメントを応答文書に記憶することと、
前記処理するステップ、前記フォーマットするステップ、および前記記憶するステップを繰り返すことであって、それによって、複数のフォーマットしたXMLコードフラグメントを含む完成したXML文書を作成する、前記処理するステップ、前記フォーマットするステップ、および前記記憶するステップを繰り返すことと
を含む方法。 - データを検索する複数の第1のタイプのワークフロー命令と、前記検索したデータを複数のマークアップ言語フラグメントに変換する複数の第2のタイプの対応するワークフロー命令とを含むワークフロー文書から応答文書を動的に生成するシステムであって、
前記第1のタイプのワークフロー命令のそれぞれを処理して、対応する出力を生成するワークフロープロセッサと、
前記対応する第2のタイプのワークフロー命令のそれぞれを実行して、前記ワークフロープロセッサの前記出力のそれぞれを前記複数のマークアップ言語フラグメントの1つに変換するワークフロー変換器と、
前記ワークフロー変換器によって生成された前記複数のマークアップ言語フラグメントのそれぞれを前記応答文書に記憶するデータ記憶装置と
を備えるシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0125894A GB2381340A (en) | 2001-10-27 | 2001-10-27 | Document generation in a distributed information network |
PCT/GB2002/004819 WO2003038658A2 (en) | 2001-10-27 | 2002-10-25 | Dynamic workflow document generation |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005507523A true JP2005507523A (ja) | 2005-03-17 |
Family
ID=9924705
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003540851A Pending JP2005507523A (ja) | 2001-10-27 | 2002-10-25 | 文書生成に関する改良 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20040261017A1 (ja) |
EP (1) | EP1461724A2 (ja) |
JP (1) | JP2005507523A (ja) |
GB (1) | GB2381340A (ja) |
WO (1) | WO2003038658A2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009037310A (ja) * | 2007-07-31 | 2009-02-19 | Canon Inc | フロー記述文書処理装置、フロー記述文書処理方法及びプログラム |
Families Citing this family (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7373601B2 (en) * | 2001-02-05 | 2008-05-13 | Koninklijke Philips Electronics N.V. | Object transfer method with format adaptation |
JP4291999B2 (ja) * | 2002-01-18 | 2009-07-08 | 株式会社インターネットディスクロージャー | 書類作成システム及び作成管理プログラム |
US20080313282A1 (en) | 2002-09-10 | 2008-12-18 | Warila Bruce W | User interface, operating system and architecture |
US20050108648A1 (en) * | 2003-02-28 | 2005-05-19 | Olander Daryl B. | Method for propagating look and feel in a graphical user interface |
US7506273B2 (en) * | 2003-03-19 | 2009-03-17 | International Business Machines Corporation | Method and system for modifying properties of graphical user interface components |
US20040225491A1 (en) * | 2003-05-08 | 2004-11-11 | Taiwan Semiconductor Manufacturing Co., Ltd. | Generic script template engine repository adapter system and method of use |
WO2005008543A1 (en) * | 2003-07-10 | 2005-01-27 | Computer Associates Think, Inc. | System and method for customizing a data display using a presentation profile |
US20050097452A1 (en) * | 2003-11-03 | 2005-05-05 | Eross George N. | Conversion program from SGML and XML to XHTML |
FR2865088B1 (fr) * | 2004-01-09 | 2006-04-07 | Canon Kk | Procede de creation et d'execution d'un document d'ordonnancement d'invocations de taches, pour la mise en oeuvre d'un service web. |
US20060026510A1 (en) * | 2004-07-30 | 2006-02-02 | International Business Machines Corporation | Method for optimizing markup language transformations using a fragment data cache |
US7581178B2 (en) * | 2004-07-30 | 2009-08-25 | Microsoft Corporation | Systems and methods for pagination using variable page dimensions |
US7634721B1 (en) * | 2004-08-23 | 2009-12-15 | Sun Microsystems Inc. | Composite component architecture using javaserver pages (JSP) tags |
US20060059423A1 (en) * | 2004-09-13 | 2006-03-16 | Stefan Lehmann | Apparatus, system, and method for creating customized workflow documentation |
US7475388B2 (en) * | 2004-12-03 | 2009-01-06 | International Business Machines Corporation | Method and apparatus for defining and instrumenting reusable java server page code snippets for website testing and production |
US7725818B1 (en) * | 2005-01-06 | 2010-05-25 | International Business Machines Corporation | Parallel composition of electronic responses to electronic requests |
US20060206346A1 (en) * | 2005-03-08 | 2006-09-14 | Arthur Grand | Activity forms for automated business processes |
US7949941B2 (en) * | 2005-04-22 | 2011-05-24 | Oracle International Corporation | Optimizing XSLT based on input XML document structure description and translating XSLT into equivalent XQuery expressions |
US8799515B1 (en) * | 2005-06-27 | 2014-08-05 | Juniper Networks, Inc. | Rewriting of client-side executed scripts in the operation of an SSL VPN |
US8645175B1 (en) * | 2005-07-12 | 2014-02-04 | Open Text S.A. | Workflow system and method for single call batch processing of collections of database records |
US7627649B2 (en) * | 2005-09-09 | 2009-12-01 | At&T Intellectual Property I, L.P. | Information submission tool for website development |
US7716570B2 (en) * | 2005-12-12 | 2010-05-11 | Microsoft Corporation | Interfaces for creation and access of extensible markup language paper specification documents |
US8984397B2 (en) * | 2005-12-15 | 2015-03-17 | Xerox Corporation | Architecture for arbitrary extensible markup language processing engine |
US9286272B2 (en) * | 2005-12-22 | 2016-03-15 | Xerox Corporation | Method for transformation of an extensible markup language vocabulary to a generic document structure format |
US8082496B1 (en) * | 2006-01-26 | 2011-12-20 | Adobe Systems Incorporated | Producing a set of operations from an output description |
US20070276714A1 (en) * | 2006-05-15 | 2007-11-29 | Sap Ag | Business process map management |
US8527313B2 (en) * | 2006-05-15 | 2013-09-03 | Sap Ag | Document instantiation triggering a business action |
US20070276715A1 (en) * | 2006-05-15 | 2007-11-29 | Joerg Beringer | Distributed activity management |
US20080065679A1 (en) * | 2006-09-12 | 2008-03-13 | Douglas Ray Fish | Method for rules-based drag and drop processing in a network environment |
JP4256416B2 (ja) * | 2006-09-29 | 2009-04-22 | 株式会社東芝 | データ構造変換システム及びプログラム |
US20080086682A1 (en) * | 2006-10-04 | 2008-04-10 | Derricott Brett W | Markup language template conversion |
US20080091457A1 (en) * | 2006-10-13 | 2008-04-17 | Donn Delson | System and method for facilitating web-based transactions between a buyer and a seller |
WO2008063164A2 (en) * | 2006-11-17 | 2008-05-29 | Barclays Capital Inc. | System and method for generating customized reports |
US20070150494A1 (en) * | 2006-12-14 | 2007-06-28 | Xerox Corporation | Method for transformation of an extensible markup language vocabulary to a generic document structure format |
US20090007115A1 (en) * | 2007-06-26 | 2009-01-01 | Yuanhao Sun | Method and apparatus for parallel XSL transformation with low contention and load balancing |
US8127237B2 (en) | 2007-09-24 | 2012-02-28 | Sap Ag | Active business client |
TW201009698A (en) * | 2008-08-19 | 2010-03-01 | Arcadyan Technology Corp | Method for improving the accessing efficiency of embedded web page |
KR20100081030A (ko) * | 2009-01-05 | 2010-07-14 | 삼성전자주식회사 | 유기 발광 표시 장치를 구비한 휴대 단말기 및 그의 전력 제어 방법 |
US8712953B2 (en) | 2009-03-25 | 2014-04-29 | Sap Ag | Data consumption framework for semantic objects |
US8438471B2 (en) * | 2009-07-13 | 2013-05-07 | John R Thorpe | System for speeding up web site use using task workflow templates for filtration and extraction |
US8620911B2 (en) | 2010-04-29 | 2013-12-31 | Hewlett-Packard Development Company, L.P. | Document registry system |
US20110302285A1 (en) * | 2010-06-07 | 2011-12-08 | Quora, Inc. | Update server to update rendered content |
US9275023B2 (en) * | 2010-08-20 | 2016-03-01 | Usablenet Inc. | Methods for further adapting XSL to HTML document transformations and devices thereof |
US20120054110A1 (en) * | 2010-08-26 | 2012-03-01 | Xerox Corporation | Method and system for integrating document workflow and rendering logic |
EP2506160A1 (en) * | 2011-04-01 | 2012-10-03 | Waters Technologies Corporation | Unified data structures for scientific data information systems |
US9413707B2 (en) | 2014-04-11 | 2016-08-09 | ACR Development, Inc. | Automated user task management |
US8942727B1 (en) | 2014-04-11 | 2015-01-27 | ACR Development, Inc. | User Location Tracking |
US10042935B1 (en) * | 2017-04-27 | 2018-08-07 | Canva Pty Ltd. | Systems and methods of matching style attributes |
US11003835B2 (en) * | 2018-10-16 | 2021-05-11 | Atos Syntel, Inc. | System and method to convert a webpage built on a legacy framework to a webpage compatible with a target framework |
CN110032371A (zh) * | 2019-04-17 | 2019-07-19 | 杭州玳数科技有限公司 | 一种利用xml存储离线任务工作流的方法及装置 |
US11544218B2 (en) * | 2020-03-31 | 2023-01-03 | Morgan Stanley Services Group Inc. | JSON to BPMN conversion system |
CN111581948B (zh) * | 2020-04-03 | 2024-02-09 | 北京百度网讯科技有限公司 | 文档解析方法、装置、设备及存储介质 |
CN112148741B (zh) * | 2020-10-16 | 2024-08-06 | 中国石油化工股份有限公司 | 石油地质数据加载方法、装置、服务端及存储介质 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5715453A (en) * | 1996-05-31 | 1998-02-03 | International Business Machines Corporation | Web server mechanism for processing function calls for dynamic data queries in a web page |
CA2263459A1 (en) * | 1996-07-03 | 1998-01-15 | Polydoc N.V. | Document producing support system |
US5835914A (en) * | 1997-02-18 | 1998-11-10 | Wall Data Incorporated | Method for preserving and reusing software objects associated with web pages |
US6094684A (en) * | 1997-04-02 | 2000-07-25 | Alpha Microsystems, Inc. | Method and apparatus for data communication |
US5956709A (en) * | 1997-07-28 | 1999-09-21 | Xue; Yansheng | Dynamic data assembling on internet client side |
US6012066A (en) * | 1997-10-01 | 2000-01-04 | Vallon, Inc. | Computerized work flow system |
US6061698A (en) * | 1997-10-22 | 2000-05-09 | International Business Machines Corporation | Merging tagged documents and scripts having dynamic content |
WO1999059087A1 (en) * | 1998-05-13 | 1999-11-18 | Bull Hn Information Systems Inc. | Method and apparatus for improving code execution performance by using parsed html |
US6480865B1 (en) * | 1998-10-05 | 2002-11-12 | International Business Machines Corporation | Facility for adding dynamism to an extensible markup language |
US6487566B1 (en) * | 1998-10-05 | 2002-11-26 | International Business Machines Corporation | Transforming documents using pattern matching and a replacement language |
US6393456B1 (en) * | 1998-11-30 | 2002-05-21 | Microsoft Corporation | System, method, and computer program product for workflow processing using internet interoperable electronic messaging with mime multiple content type |
US20020049961A1 (en) * | 1999-08-23 | 2002-04-25 | Shao Fang | Rule-based personalization framework |
AU7363900A (en) * | 1999-09-09 | 2001-04-10 | Percussion Software, Inc. | System and method for including dynamic content in world wide web pages |
AU7126400A (en) * | 1999-09-09 | 2001-04-10 | Percussion Software, Inc. | Virtual server system for dynamic content in world wide web pages |
US6748569B1 (en) * | 1999-09-20 | 2004-06-08 | David M. Brooke | XML server pages language |
US6981212B1 (en) * | 1999-09-30 | 2005-12-27 | International Business Machines Corporation | Extensible markup language (XML) server pages having custom document object model (DOM) tags |
US6968503B1 (en) * | 2000-03-09 | 2005-11-22 | Quovadx, Inc. | XML user interface for a workflow server |
US6925631B2 (en) * | 2000-12-08 | 2005-08-02 | Hewlett-Packard Development Company, L.P. | Method, computer system and computer program product for processing extensible markup language streams |
US6847974B2 (en) * | 2001-03-26 | 2005-01-25 | Us Search.Com Inc | Method and apparatus for intelligent data assimilation |
US7840934B2 (en) * | 2001-08-29 | 2010-11-23 | Hewlett-Packard Development Company, L.P. | Method and system for integrating workflow management systems with business-to-business interaction standards |
US7058649B2 (en) * | 2001-09-28 | 2006-06-06 | Intel Corporation | Automated presentation layer content management system |
-
2001
- 2001-10-27 GB GB0125894A patent/GB2381340A/en not_active Withdrawn
-
2002
- 2002-10-25 WO PCT/GB2002/004819 patent/WO2003038658A2/en not_active Application Discontinuation
- 2002-10-25 US US10/486,978 patent/US20040261017A1/en not_active Abandoned
- 2002-10-25 JP JP2003540851A patent/JP2005507523A/ja active Pending
- 2002-10-25 EP EP02772546A patent/EP1461724A2/en not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009037310A (ja) * | 2007-07-31 | 2009-02-19 | Canon Inc | フロー記述文書処理装置、フロー記述文書処理方法及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
US20040261017A1 (en) | 2004-12-23 |
EP1461724A2 (en) | 2004-09-29 |
GB2381340A (en) | 2003-04-30 |
GB0125894D0 (en) | 2001-12-19 |
WO2003038658A3 (en) | 2004-03-11 |
WO2003038658A2 (en) | 2003-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2005507523A (ja) | 文書生成に関する改良 | |
US6748569B1 (en) | XML server pages language | |
US7873668B2 (en) | Application data binding | |
US7191397B2 (en) | XML server pages language | |
US6263332B1 (en) | System and method for query processing of structured documents | |
US20030135825A1 (en) | Dynamically generated mark-up based graphical user interfaced with an extensible application framework with links to enterprise resources | |
EP2273390A1 (en) | Client-server application development and deployment system | |
US20040187090A1 (en) | Method and system for creating interactive software | |
US20060156220A1 (en) | System and method for managing dynamic content assembly | |
US20060004910A1 (en) | Postback input handling by server-side control objects | |
Hall et al. | Core web programming | |
CN1408093A (zh) | 一种能够运行在不同格式的厂商站点上的电子购物代理 | |
Butler | Current technologies for device independence | |
US20070094289A1 (en) | Dynamic, hierarchical data exchange system | |
US20070234200A1 (en) | Model view controller modeling language | |
WO2001033387A2 (en) | Apparatus, systems and methods for electronic data development, management, control and integration in a global communications network environment | |
KR101231329B1 (ko) | 모바일 환경에서의 웹 데이터 추출을 위한 시스템 | |
Thangarathinam | PROFESSIONAL ASP. NET 2.0 XML | |
Armstrong | Working with XML | |
Ennser et al. | The XML Files: Using XML and XSL with IBM WebSphere3. 0 | |
Wahlin | XML for asp. net developers | |
Floyd | Using XSLT | |
Aho et al. | Compilers Principles, Techniques, and | |
CA2602410C (en) | Client-server application development and deployment system and methods | |
Hata et al. | XML, WHAT’S IT ALL ABOUT? |