(57)【特許請求の範囲】
【請求項１】
手続き型スクリプト言語を内包する変換元マークアップ言語で記述された変換元文書に含まれるマークアップ部分の表示と、前記変換元文書に内包され前記手続き型スクリプト言語で記述されたスクリプト関数部分の動作とを、前記手続き型スクリプト言語と同一の手続き型スクリプト言語を内包しない、異なるマークアップ言語で記述された文書を表示可能なブラウザ上で再現するために、文書を配布するサーバ装置上にある変換装置により、前記変換元文書を、前記異なるマークアップ言語で記述された文書に変換する、マークアップ文書変換方式であって、
前記変換装置は、
前記変換元文書を読み込み、前記スクリプト関数部分と前記マークアップ部分に分割する、変換元文書読み込み手段と、
前記変換元文書読み込み手段により分割された前記マークアップ部分、またはスクリプト実行手段により更新されたマークアップ部分、に含まれるスクリプト関数部分呼び出しを表すスクリプトを、前記ブラウザ上におけるユーザ入力により起動されると、前記スクリプト関数部分呼び出しを表すデータを含む情報を、前記ブラウザから前記サーバ装置へ送信する要素を表す、前記異なるマークアップ言語の記述に変換する、イベント変換手段と、
前記イベント変換手段により変換された後の前記マークアップ部分を、マークアップ言語同士の変換規則に従って、前記異なるマークアップ言語で記述された変換済み文書に変換する、マークアップ言語変換手段と、
前記変換済み文書を前記ブラウザへ送る手段と、
前記変換元文書読み込み手段によって分割された前記スクリプト関数部分を実行するとともに、実行結果に応じて、前記変換元文書読み込み手段により分割された前記マークアップ部分の内容を更新する、スクリプト実行手段と、
前記ブラウザから送信された前記情報から、前記スクリプト関数部分呼び出しを表すデータを取り出し、そのスクリプト関数部分を前記スクリプト実行手段で実行し、続いて前記イベント変換手段、前記マークアップ言語変換手段を実行させて前記変換済み文書を更新し、再び前記ブラウザへ送るイベント処理手段
とを備えたことを特徴とする、マークアップ文書変換方式。
【請求項２】
前記変換元マークアップ言語がＢＭＬ（放送用マークアップ言語）、前記異なるマークアップ言語がＨＴＭＬ（ハイパーテキストマークアップ言語）であることを特徴とする請求項１記載のマークアップ文書変換方式。
【請求項３】
前記変換元マークアップ言語がＢＭＬ（放送用マークアップ言語）、前記異なるマークアップ言語がｉモード用ＨＴＭＬであることを特徴とする請求項１記載のマークアップ文書変換方式。
【請求項４】
前記変換元マークアップ言語がＢＭＬ（放送用マークアップ言語）、前記異なるマークアップ言語がＪ  Ｓｋｙ  Ｗｅｂ用ＨＴＭＬであることを特徴とする請求項１記載のマークアップ文書変換方式。
【請求項５】
前記変換元マークアップ言語がＢＭＬ（放送用マークアップ言語）、前記異なるマークアップ言語がＷＭＬであることを特徴とする請求項１記載のマークアップ文書変換方式。
【請求項６】
前記イベント変換手段において、前記マークアップ部分に含まれるｏｎｃｌｉｃｋ属性等の固有イベントに応じたスクリプト関数部分呼び出しを表すスクリプトを、前記異なるマークアップ言語であるＨＴＭＬのｆｏｒｍ要素とｉｎｐｕｔ要素を表す記述に変換することを特徴とする請求項２乃至４の何れかに記載のマークアップ文書変換方式。
【請求項７】
前記イベント変換手段において、前記マークアップ部分に含まれるｏｎｃｌｉｃｋ属性等の固有イベントに応じたスクリプト関数部分呼び出しを表すスクリプトを、前記異なるマークアップ言語であるＷＭＬのｄｏ要素、ｇｏ要素、ｐｏｓｔｆｉｅｌｄ要素を表す記述に変換することを特徴とする請求項５記載のマークアップ文書変換方式。
【請求項８】
固有イベントに応じたスクリプト関数部分呼び出しを表すスクリプトをｉｎｐｕｔ要素を表す記述に変換する際に、固有イベントの属性として記述された、スクリプト関数部分を特定する値に、ｉｎｐｕｔ要素のｉｄ属性には使用されない文字を付加したものをｎａｍｅ属性の値として設定し、ユーザが行なった入力に対応する、前記変換元文書に含まれるスクリプト関数部分を変換装置側で判別することを特徴とする請求項６記載のマークアップ文書変換方式。
【請求項９】
固有イベントに応じたスクリプト関数部分呼び出しを表すスクリプトをｐｏｓｔｆｉｅｌｄ属性を表す記述に変換する際に、固有イベントの属性として記述された、スクリプト関数部分を特定する値に、ｉｎｐｕｔ要素のｉｄ属性には使用されない文字を付加したものをｎａｍｅ属性の値として設定し、ユーザが行なった入力に対応する、前記変換元文書に含まれるスクリプト関数部分を変換装置側で判別することを特徴とする請求項７記載のマークアップ文書変換方式。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、手続き型スクリプト言語を内包するコンテンツ記述言語で記述された文書を、手続き型スクリプト言語を持たない、あるいは異なる手続き型スクリプト言語を使用するブラウザ上で実行させるためのマークアップ文書変換方式に関する。
【０００２】
【従来の技術】
インターネット及びイントラネット上の文書の大部分は、ワールドワイドウェブ（ＷＷＷ）で使用されるＨＴＭＬ（ハイパーテキストマークアップ言語）形式の文書で記述されている。ＨＴＭＬは、ＳＧＭＬをベースとしたマークアップ言語として開発されたが、フォームと呼ばれる仕組みによって、ＨＴＭＬ文書を配布するサーバー（ウェブサーバー）に対してクライアントのブラウザから情報を送ることが出来る。ウェブサーバー上に、送られてきた情報に応じたＨＴＭＬ文書をブラウザに送り返すプログラムを置くことによって、対話型のコンテンツを作成することが出来る。
【０００３】
ＨＴＭＬにおけるフォームの構成要素はｆｏｒｍ要素とｉｎｐｕｔ要素である。ｉｎｐｕｔ要素はｔｙｐｅ属性の値によって様々な入力部品を表現することができる。ｉｎｐｕｔ要素にはｎａｍｅ属性とｖａｌｕｅ属性を設定でき、ｔｙｐｅ属性として”ｓｕｂｍｉｔ”という値を持つｉｎｐｕｔ要素がクリックされたとき、そのｉｎｐｕｔ要素が含まれるｆｏｒｍ要素内の全てのｉｎｐｕｔ要素のｎａｍｅ属性の値とｖａｌｕｅ属性の値の対がサーバー側に送信される。
【０００４】
ＨＴＭＬが高機能化するにつれて、ＨＴＭＬ文書中に手続き型のスクリプト言語であるＪａｖａ（登録商標）  Ｓｃｒｉｐｔを埋め込む方式が一般化され、ＨＴＭＬ４．０では正式な仕様として認知された。Ｊａｖａ  Ｓｃｒｉｐｔを使用すると、ユーザが入力した情報をウェブサーバーに送らずにブラウザ上で処理して、入力された情報に応じた画面をブラウザ上に表示することが出来る。
【０００５】
Ｊａｖａ  Ｓｃｒｉｐｔはｓｃｒｉｐｔ要素内に記述される。記述されたスクリプトは、ＨＴＭＬ文書がロードされたときに実行される。また、ある要素がクリックされたときに起動するスクリプトを、その要素のｏｎｃｌｉｃｋ属性として記述することができる。ｏｎｃｌｉｃｋのようなイベントのことを固有イベントと呼ぶ。固有イベントを利用して、スクリプトによる対話動作を記述できる。
【０００６】
電波産業会（ＡＲＩＢ）によって、デジタルデータ放送用のマークアップ言語として策定されたＢＭＬ（Ｂｒｏａｄｃａｓｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）は、ＸＭＬをベースとしたマークアップ言語であり、ＨＴＭＬ同様にＥＣＭＡＳｃｒｉｐｔで記述されたスクリプトを埋め込むことが出来る。ＥＣＭＡＳｃｒｉｐｔは、Ｊａｖａ  Ｓｃｒｉｐｔを標準化したスクリプト言語である。
２０００年１２月から始まったＢＳデジタルデータ放送では、「基本サービスのための運用ガイドライン」と呼ばれるプロファイルに則ったＢＭＬが使用されている。基本サービスのための運用ガイドラインではフォームは運用されていないため、対話型のコンテンツは全てＥＣＭＡＳｃｒｉｐｔを使用して記述する必要がある。
【０００７】
一方、ＮＴＴ  Ｄｏｃｏｍｏのｉモードや、Ｊ−ＰｈｏｎｅのＪ  Ｓｋｙ  Ｗｅｂでは、制限付きのＨＴＭＬ文書の表示のみをサポートしている。両者とも、フォームはサポートしているが、Ｊａｖａ  Ｓｃｒｉｐｔのようなスクリプト言語の埋め込みはサポートしてない。従って、対話型のコンテンツはフォームのみを使用して記述する必要がある。以下、このような制限を持つＨＴＭＬ文書を、スクリプト言語をサポートする最新のＨＴＭＬと区別するために、携帯端末用ＨＴＭＬと呼ぶ。
【０００８】
ＷＡＰ  Ｆｏｒｕｍで携帯端末用のマークアップ言語として策定されたＷＭＬ（Ｗｉｒｅｌｅｓｓ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）では、ｐｏｓｔｆｉｅｌｄ要素によって、ＨＴＭＬのフォームと同様の対話動作を実現できる。また、携帯用ＨＴＭＬと異なり、固有イベントやＷＭＬＳｃｒｉｐｔによるスクリプトもサポートしているが、言語仕様はＥＣＭＡＳｃｒｉｐｔやＪａｖａ  Ｓｃｒｉｐｔとは異なる。
【０００９】
ＨＴＭＬで使用されるＪａｖａ  ＳｃｒｉｐｔとＢＭＬで使用されるＥＣＭＡＳｃｒｉｐｔの言語仕様はほぼ同じだが、スクリプト言語から文書本体を操作するインタフェース（ＤＯＭ「Ｄｏｃｕｍｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ」と呼ぶ）が異なり、ＨＴＭＬ４．０で記述された文書のＨＴＭＬ部分をＢＭＬに書き換えても、スクリプトの仕様が異なるために、ＢＭＬブラウザ上では実行することができない。
【００１０】
ＷＷＷ用の文書、デジタルデータ放送用の文書、携帯端末用の文書を相互に変換する要望は高いが、上記のとおり、各文書で使用されている言語には、手続き型スクリプト言語による対話型コンテンツ作成の点で大きな違いがある。
【００１１】
特開２０００−１９４６１２号公報では、ＨＴＭＬ文書を無線アプリケーションプロトコル（ＷＡＰ）の無線マークアップ言語（ＷＭＬ）等で記述された文書へ変換する方法を開示している。この手法はマークアップ言語部分のみを装置用設定によって変換するが、スクリプト言語の変換は行わない。そのため、スクリプト言語を含むＨＴＭＬ文書を変換すると、スクリプト言語で記述された情報が欠落してしまう。このように、スクリプト言語を無視する手法を従来例１と呼ぶ。
【００１２】
特開２００１−５７１６号公報では、ＨＴＭＬ文書をＭＨＥＧ文書に変換する方法を開示している。この手法は、マークアップ言語の変換だけでなく、ＨＴＭＬ文書中に記述されたスクリプト言語を、それに対応するＭＨＥＧアクションに変換する。しかし、ＨＴＭＬ文書内で使用されるＪａｖａ  Ｓｃｒｉｐｔの記述能力とＭＨＥＧアクションの記述能力が異なるため、ＨＴＭＬ文書中にスクリプト言語で記述された情報を、全てＭＨＥＧ文書中に移植することは出来ない。このように、スクリプト言語ごと変換する手法を従来例２と呼ぶ。
【００１３】
【発明が解決しようとする課題】
従来例１では、マークアップ言語中に含まれるスクリプト言語が無視されてしまうため、スクリプト言語で記述された重要な情報が変換結果に反映されない。この手法では、スクリプト言語を利用してユーザとの対話を実現するＢＭＬ文書を携帯端末用ＨＴＭＬ文書に変換しても、変換結果として生成されるＨＴＭＬ文書では対話動作が欠落してしまう。
【００１４】
従来例２では、マークアップ言語中に含まれるスクリプト言語を、スクリプト言語ごと変換することによって、スクリプト言語で記述された情報はある程度は変換結果に反映される。しかし、スクリプト言語とＤＯＭの仕様は言語・ブラウザによりまちまちであり、完全に変換できる事例は希である。また、もともとスクリプト言語をサポートしない携帯端末用ＨＴＭＬ文書に変換した場合、従来例１と同様にスクリプト言語で記述された情報が欠落してしまう。
【００１５】
いずれの場合も、スクリプト言語を使用してユーザとの対話を行うＨＴＭＬ文書やＢＭＬ文書を携帯端末用ＨＴＭＬに変換しても、変換結果には元の文書の持っていた対話処理を再現できない。
【００１６】
しかし、対話処理は多くのコンテンツで必須の機能であるため、変換元のマークアップ言語中に記述されたスクリプトの対話処理を再現しながら、マークアップ言語を変換する方式が望まれる。
【００１７】
そこで、本発明は、手続き型スクリプト言語を内包したマークアップ言語を、それとは異なるマークアップ言語をサポートするブラウザで、元の文書に含まれていたスクリプトの対話動作を再現しつつ、表示できるようにするためのマークアップ文書変換方式を提供することを目的とする。
また、その際に、変換結果を人手により修正できるようにしたマークアップ文書変換方式を提供することを目的とする。
【００１８】
【課題を解決するための手段】
本発明に係るマークアップ文書変換方式は、手続き型スクリプト言語を内包するマークアップ言語で記述された文書を、前記手続き型スクリプト言語と同一の手続き型スクリプト言語を内包しない、異なるマークアップ言語で記述された文書に変換するマークアップ文書変換方式であって、変換元文書を読み込み、前記変換元文書に含まれるスクリプト部分とマークアップ部分に分割する変換元文書読み込み手段と、前記変換元文書に含まれるスクリプト関数呼び出しなどを表すスクリプトを、前記マークアップ部分を異なるマークアップ言語で記述された、ユーザからデータを送信する要素に変換するイベント変換手段と、前記マークアップ部分をマークアップ言語同士の変換規則に従って異なるマークアップ言語で記述された変換済み文書に変換するマークアップ言語変換手段と、前記変換元文書読み込み手段によって分割された前記スクリプト部分、またはユーザから送信されたデータから取り出したユーザの入力によって生じるスクリプト関数呼出しなどを表すスクリプトを読み込んで実行するスクリプト実行手段と、ブラウザに送られユーザに対し表示された前記変換済文書において、前記ユーザから情報を送信する要素が起動されると、前記ユーザから送信されたデータから、前記ユーザの入力によって生じるスクリプト関数呼出しなどを表すスクリプトを取り出し、そのスクリプトを前記スクリプト実行手段で実行し、続いて前記イベント変換手段、前記マークアップ言語変換手段を実行して変換済文書を更新し、再び前記ブラウザへ送るイベント処理手段とを備え、文書を配布するサーバ装置上にある変換装置により、前記手続き型スクリプト言語と同一の手続き型スクリプト言語を内包しない、異なるマークアップ言語を表示可能なブラウザ上で、変換元のマークアップ言語に内包されるマークアップ部分だけでなくスクリプト言語で記述された動作も再現することを特徴とする。
【００１９】
本発明のマークアップ文書変換方式は、サーバープログラム上で、変換元マークアップ言語でサポートされるスクリプト言語の処理系が動作するようにして、ブラウザの仕様とは無関係に、スクリプト言語及びＤＯＭの仕様に忠実に則った処理系をサーバー側で用意することが出来るようにし、変換元文書に含まれているスクリプト記述の中でブラウザで実現可能な動作を確実に実現する。
【００２０】
【発明の実施の形態】
以下、本発明の実施の一形態について説明する。
（実施の形態１）
この実施の形態１のマークアップ文書変換方式のブロック図を図１に示す。変換元文書１１は、手続き型スクリプト言語ＬＡを含んだマークアップ言語ＬＢで記述されている。ブラウザ１３は、マークアップ言語ＬＣで記述された文書を表示する装置である。
【００２１】
変換装置１２は、変換元文書をブラウザに表示する手段である。変換装置１２は、変換元文書読み込み手段１４、スクリプト実行手段１７、イベント変換手段１８、マークアップ言語変換手段１９、イベント処理手段２２から成る。
変換元文書読み込み手段１４は、変換元文書を読み込み、変換元文書１１に含まれるスクリプト部分１６とマークアップ部分１５に分割する。
スクリプト実行手段１７はスクリプト言語ＬＡをサポートする言語処理系である。このスクリプト実行手段１７は、変換元文書読み込み手段１４によって分割された、スクリプト部分１６を読み込んで実行する。スクリプト中に文書内容を変更する記述があれば、スクリプトに記述されたとおりにマークアップ部分の内容を変更する。
【００２２】
マークアップ部分１５は、イベント変換手段１８とマークアップ言語変換手段１９によってマークアップ言語ＬＣで記述された、変換済み文書２１に変換される。
ここで、イベント変換手段１８は、変換元文書中の固有イベントを、サーバーに情報を送出する要素（ＨＴＭＬであればｉｎｐｕｔ要素）に変換する。このとき、固有イベントのハンドラとして設定されていたスクリプトを、サーバーに送出する情報として設定する。
マークアップ言語変換手段１９は、マークアップ言語ＬＡをマークアップ言語ＬＣに変換する手段である。
変換済文書はブラウザに送られ、ユーザに表示される。ブラウザ上で、ユーザがボタンを押すなどして、サーバーに情報を送信する要素が起動された場合、イベント処理手段２２は送信されたデータから、設定されていたスクリプトを取り出し、そのスクリプトをスクリプト実行手段１７で実行し、続いてイベント変換手段１８、マークアップ言語変換手段１９を実行して変換済文書を更新し、再びブラウザに送る。
上記の繰り返しにより、変換元マークアップ言語中に記述されたスクリプト言語による対話動作を、変換先マークアップ言語のフォームによる対話動作に変換できる。
【００２３】
図２と図３は、対話動作の変換についての解説図である。図２は、スクリプトを含む文書を、その文書をサポートするブラウザで直に表示・閲覧した場合の図である。ユーザがある文書を閲覧しようとすると、ブラウザ３２はサーバー３１から文書受信３３を行い画面に表示する。ユーザがボタンを押すなどの入力を行うと、文書中に固有イベントのハンドラとして記述されていたスクリプトがブラウザ上で実行され、文書更新３５が実行される。
【００２４】
図３は、この実施の形態１のマークアップ文書変換方式を使用して、スクリプトを含む文書を、その文書をサポートしないブラウザで表示・閲覧できるように変換した場合の図である。
ユーザがある文書を閲覧しようとした時、ブラウザはサーバーから、変換装置４１によって変換された文書を受信して画面に表示する。次に、ユーザがボタンを押すなどの入力を行うと、そのボタンはサーバーにデータを送信する要素に変換されているため、サーバーにデータ送信３８を行う。送信されたデータは、固有イベントに関連付けられていたスクリプトなので、サーバー内の変換装置４１で、このスクリプトを実行して文書更新３９を行う。そして、更新された文書を変換した結果がブラウザに送られ、文書受信４０が行われる。
このように、ユーザからの見かけ上の図３の対話動作は、図２の対話動作と同じものとなる。
【００２５】
従来例１では、サーバープログラム上でマークアップ言語を変換するだけだったが、この実施の形態１のマークアップ文書変換方式では、スクリプトで記述された対話動作を再現することが出来る。
また、サーバープログラム上で、変換元マークアップ言語でサポートされるスクリプト言語の処理系が動作するため、ブラウザの仕様とは無関係に、スクリプト言語及びＤＯＭの仕様に忠実に則った処理系をサーバー側で用意することが出来る。従って、従来例２のようにスクリプト言語ごと変換する方式とは異なり、変換元文書に含まれているスクリプト記述の中でブラウザで実現可能な動作は確実に実現することが出来る。
【００２６】
次に、このマークアップ文書変換方式の具体例について説明する。
ここでは、基本サービスのための運用ガイドラインに沿って記述されたＢＭＬ文書を、ｉモード用ＨＴＭＬ（Ｃｏｍｐａｃｔ  ＨＴＭＬ，ＣＨＴＭＬ）に変換する場合の具体例（以下、実施例１−１という）について述べる。変換先文書をＣＨＴＭＬとしているが、この実施例１−１は変換先のマークアップ言語が、最新のＨＴＭＬ４．０であっても、Ｊ−Ｓｋｙ  Ｗｅｂ用のＨＴＭＬであっても適用できる。
【００２７】
図４は、変換元となるＢＭＬ文書の例である。ＢＭＬ文書には、ＥＣＭＡＳｃｒｉｐｔで記述したスクリプトをＳｃｒｉｐｔ要素を使用して埋め込むことが出来る。図４の例では、１２行目から１８行目までがスクリプトである。
この文書は、ＢＭＬブラウザ上では図５のように動作する。まず、最初は図５左のように、「ユーザ登録」、「入力完了」というテキストと、その間にパスワードを入力するエリアが表示される。ユーザがパスワードを入力し、「入力完了」ボタンを押すと、ｓｃｒｉｐｔ要素内に記述されたスクリプト関数ｓｈｏｗＮｅｘｔが実行される。ｓｈｏｗＮｅｘｔ関数は、ＤＯＭを通じてｖｉｓｉｂｉｌｉｔｙスタイル特性を操作することにより、それまで見えなかった「次へ」というテキストを表示する（図５右）。
【００２８】
以下、この実施例１−１における図１の各手段の詳細を解説する。
変換元文書読み込み手段１４は、ＢＭＬ文書中からｓｃｒｉｐｔ要素を調べ、ｓｃｒｉｐｔ要素が存在する場合は、ｓｃｒｉｐｔ要素の内部を文書（変換元文書スクリプト部分）１６として出力し、ｓｃｒｉｐｔ要素を取り除いたものを文書（変換元文書マークアップ部分）１５として出力する。ここで、文書１５、文書１６は必ずしもファイルの形態を取る必要はなく、メモリ上に展開されたデータとして保持してもよい。この時点での文書１５を図６、文書１６を図７に示す。
【００２９】
次に、スクリプト実行手段１７が図７に示されるスクリプトを実行する。この実施の形態では、スクリプト実行手段１７は、ＢＭＬのＥＣＭＡＳｃｒｉｐｔとDOMインタフェースをサポートする。
図７のスクリプトの場合、スクリプトは関数定義文しか記述されていないため、この段階ではスクリプト実行後も文書１５への変更はない。
【００３０】
次に、イベント変換手段１８によって、図６に示されるＢＭＬ文書中に含まれる固有イベントの記述を、ＣＨＴＭＬのフォームの記述に変換する。この実施例１−１におけるイベント変換手段１８は図９に示される。このイベント変換手段１８は、ＢＭＬ文書中の全ての要素に対して適用される。
まず、その要素にｏｎｃｌｉｃｋ属性が設定されているかどうかを調べ、設定されている場合は、ステップＳ１５に記した方法でｉｎｐｕｔ要素に変換する。従って、図６中のｉｄ属性がｏｋのp要素はｉｎｐｕｔ要素に変換される。
ｏｎｃｌｉｃｋ属性が設定されていない場合、その要素がｉｎｐｕｔ要素かどうかを調べ、ｉｎｐｕｔ要素である場合は、ｉｄ属性に設定されている値をｎａｍｅ属性として追加する（ステップＳ１４）。従って、図６中のｉｄ属性が”ｐａｓｓ”のｉｎｐｕｔ要素には”ｐａｓｓ”というｎａｍｅ属性が追加される。
次に、その要素がｂｏｄｙ要素であるかどうかを調べ、ｂｏｄｙ要素である場合はｆｏｒｍ要素を子要素として出力する（ステップＳ１６）。
【００３１】
イベント変換手段１８によって固有イベント記述が変換された文書は、マークアップ言語変換手段１９によってＣＨＴＭＬ文書（図８）に変換される。この実施例１−１におけるマークアップ言語変換手段１９は、文書内の全ての要素に対して、図１０に示される変換表を上から順に解釈することによって実現される。
【００３２】
まず、その要素のスタイルを調べ、ｖｉｓｉｂｉｌｉｔｙ特性がｈｉｄｄｅｎの場合は、その要素は無視する。なぜなら、ｖｉｓｉｂｉｌｉｔｙ特性がｈｉｄｄｅｎの要素は元のＢＭＬ上では表示されないためである。例えば、図６のｉｄ属性がｎｅｘｔのp要素（「次へ」）は、ｖｉｓｉｂｉｌｉｔｙがｈｉｄｄｅｎに設定されているため、図８中には出力されない。
次に、その要素がｂｍｌ要素である場合は、ｈｔｍｌ要素にタグ名を変更して出力する。
次に、その要素がｓｔｙｌｅ要素の場合は、その要素を無視する。なぜなら、ＣＨＴＭＬではスタイルシートはサポートされないためである。
同様に、ｏｂｊｅｃｔ要素の場合も無視する。なぜなら、ｏｂｊｅｃｔ要素で示される画像・動画・音声をＣＨＴＭＬブラウザ上で表示しないようにするためである。ここで、画像に関しては、無視せずにファイルフォーマット変換やサイズ変換を行って、ｉｍｇ要素に変換するという実施例も考えられる。
同様に、ｂｅｉｔｅｍ要素とｂｅｖｅｎｔ要素も無視する。これらはＣＨＴＭＬ文書では表現できないためである。
それ以外の要素は、ｓｔｙｌｅ属性、ｉｄ属性、ｃｌａｓｓ属性を削除して、そのままＣＨＴＭＬ文書中に出力する。ｓｔｙｌｅ属性等を削除するのは、ＣＨＴＭＬではこれらの属性がサポートされないためである。
【００３３】
マークアップ言語変換手段１９の結果、出力されるＣＨＴＭＬ文書は図８のとおりである。図８のＣＨＴＭＬ文書は、ＣＨＴＭＬブラウザ上で図１１左のように表示される。ここで、ユーザが、パスワードを入力して入力ボタンを押すと、図１２に示すフォームデータが返される。この情報が、イベント処理手段２０に渡される。
【００３４】
イベント処理手段２０は図１３の手順で表される。フォームデータとして渡されたｎａｍｅ、ｖａｌｕｅのそれぞれの対に対して、ステップＳ３１からステップＳ３３に示される手順を実行する。まず、ｎａｍｅの先頭が、＠であるかどうかを判別する（ステップＳ３１）。基本サービスのための運用ガイドラインに沿って記述されたＢＭＬのｉｄ属性には＠という文字は使用できないため、＠が先頭についている場合、ステップＳ１４でｉｎｐｕｔ要素を生成した変換元要素のｏｎｃｌｉｃｋ属性であると特定できるため、ｎａｍｅの先頭から＠を取り除いたものをスクリプトとして解釈し、スクリプト実行手段１７を起動する（ステップＳ３２）。＠が先頭についていない場合、ステップＳ１７で生成したｉｎｐｕｔ要素と特定できるので、ステップＳ３３の処理を実行する。
全てのｎａｍｅ、ｖａｌｕｅ対に対して上記の処理が終了したら、マークアップ言語変換手段１９を起動して終了する（ステップＳ３４）。
【００３５】
例えば、図１２のフォームデータが返された場合、まずｎａｍｅ＝”ｐａｓｓ”に関しては、ステップＳ３３により、変換元文書１５中のｉｄ属性の値がｐａｓｓのｉｎｐｕｔ要素のｖａｌｕｅ属性値を”１２３４”に変更する。また、ｎａｍｅ＝”＠ｓｈｏｗＮｅｘｔ（）；”に関しては、ステップＳ３２により、ｓｈｏｗＮｅｘｔ（）； というスクリプトを実行する。図７より、ｓｈｏｗＮｅｘｔ（）；; が実行されると、関数ｓｈｏｗＮｅｘｔが実行され、まずｐａｓｓというｉｄを持つ要素のｖａｌｕｅ属性値が変数ｐｗに取得される（Ｃ１）。この例の場合、ステップＳ３３により”１２３４”に設定されているため、ｐｗには”１２３４”が代入される。次に、ｐｗの長さが調べられる（Ｃ２）。ｐｗの長さは4なので、ｉｆ文内のコードが実行され、ｎｅｘｔというｉｄを持つ要素のｖｉｓｉｂｉｌｉｔｙ特性が”ｖｉｓｉｂｌｅ”に変更される。
【００３６】
その後、マークアップ言語変換手段が起動されて出力される変換済み文書は図１４のようになり、ＣＨＴＭＬブラウザでは図１１右のように表示される。
【００３７】
次に、変換先文書がＷＭＬである場合の実施例（以下、実施例１−２という）について述べる。この実施例１−２では、図１を構成する各手段のうち、イベント変換手段１８とマークアップ言語変換手段１９が前記実施例１−１とは異なる。
【００３８】
イベント変換手段１８は、図１５、図１６で示される。図１５のステップＳ４４が、図９に示した実施例１−１におけるイベント変換手段と異なる。ｉｎｐｕｔ要素でフォームの送出を行うＣＨＴＭＬ（ＨＴＭＬ）と異なり、ＷＭＬではｄｏ要素、ｇｏ要素、ｐｏｓｔｆｉｅｌｄ要素の組み合わせによってフォームの送出を行うためである。
マークアップ言語変換手段１９は、文書内の全ての要素に対して、図１７に示される変換表を上から順に解釈することによって実現される。
【００３９】
図４に示されるＢＭＬ文書を、この実施例１−２によってＷＭＬ文書に変換した例を図１８に示す。この文書は、ＷＭＬブラウザでは図１１左のように表示される。
ここで、ユーザがパスワードを入力して入力ボタンを押すと、図１９に示すフォームデータが返される。この情報がイベント処理手段２０に渡される。この実施例１−２におけるイベント処理手段２０は前記実施例１−１と同じである。イベント処理手段実行後に出力されるＷＭＬ文書は図２０のようになる。この文書はＷＭＬブラウザでは図１１右のように表示される。
【００４０】
以上のように、この実施の形態１によれば、スクリプト言語を利用して画面を変更するＢＭＬ文書の画面遷移を、スクリプト言語をサポートしないＣＨＴＭＬブラウザやＷＭＬブラウザ上でも実現できるなど、手続き型スクリプト言語を内包したマークアップ言語を、それとは異なるマークアップ言語をサポートするブラウザで、元の文書に含まれていたスクリプトの対話動作を再現しつつ表示できる効果がある。
【００４１】
（実施の形態２）
次に、本発明の実施の形態２について説明する。
この実施の形態２では、前記実施の形態１で述べた変換装置１２の機能を、事前変換装置と修正済み文書変換装置に分割することにより、変換元マークアップ言語に含まれているスクリプトの動作を再現しつつ、かつ人手による変換結果の修正も可能とする。
事前変換装置と修正済み文書変換装置を使用した変換方法を図２７に示す。
変換元文書１１は、一旦、事前変換装置５１で変換される。変換された結果は、修正用変換済み文書５２として保存される。修正用変換済み文書５２は文書編集装置５３により、ユーザによる手作業または他のプログラムによる変更が加えられる。変更後の文書は、修正済み文書５４として保存される。修正済み文書５４は修正済み文書変換配信装置５５によりブラウザに配信される。
【００４２】
事前変換装置５１の構成は図２８に示される。
事前変換装置５１は、変換元文書読み込み手段１４、イベント変換手段１８、静的フォーマット変換手段５６からなる。変換元文書読み込み手段１４とイベント変換手段１８は、図１に示した変換装置１２のもと同じものである。
静的フォーマット変換手段５６は、マークアップ言語変換手段１９から、変換時の条件によって情報の欠落が生じうる変換規則を除いたものである。なお、変換時の条件によって情報の欠落が生じうる変換規則は後述する動的フォーマット変換手段６３に含まれる。例えば、変換元文書１１のある要素のタグを別のタグに変換する規則は、変換時の条件によって情報の欠落が生じないため静的フォーマット変換手段５６に含まれる。一方、変換元文書１１のある要素の子要素の数が一定数以下の場合は、その要素を無視する（変換結果として出力しない）規則は、変換時の条件にって情報の欠落が生じるため、動的フォーマット変換手段６３に含まれる。
変換時の条件によって情報の欠落が生じる変換が除外されるため、修正用変換済み文書５２の内容は変換済み文書２１と異なり、スクリプトの実行結果に影響されないものであり、人手による修正に適したものとなる。
文書編集装置５３は、マークアップ言語ＬＣで記述された文書を編集可能な任意の手段である。
【００４３】
修正済み文書変換配信装置５５の構成は図２９に示される。
修正済み文書変換配信装置５５は、変換元文書読み込み手段１４、差分反映手段６１、動的フォーマット変換手段６３、イベント処理手段２２、スクリプト実行手段１７、差分生成手段６５からなる。ここで、変換元文書読み込み手段１４、イベント処理手段２２、スクリプト実行手段１７は変換装置１２を構成する手段と同じものである。動的フォーマット変換手段６３は、上述の通り、マークアップ言語変換手段１９から変換時の条件によって情報の欠落が生じうる変換規則を抜き出したものである。
なお、図２９中の双方向サーバ通信手段６６は、事前変換装置５１と修正済み文書変換配信装置５５を使用した変換方法に必須の機能ではない。この双方向サーバ通信手段６６は、後述する実施例２−４で説明する。
修正済み文書５４には、差分反映手段６１によりスクリプトの実行によって生成された差分情報６２の内容が反映される。次に、動的フォーマット変換手段６３により、静的フォーマット変換手段５６では考慮されなかった変換がなされる。
この結果、文書編集装置５３によりなされた修正済み文書への変更を保存しつつ、かつ、スクリプトの実行によって生じる文書変更を再現した変換済文書６４が生成され、ブラウザに送信される。
【００４４】
次に、このマークアップ文書変換方式の具体例について説明する。
ここでは、基本サービスのための運用ガイドラインに則って記述されたＢＭＬ文書を、ｉモード用ＨＴＭＬ（ＣｏｍｐＡｃｔ  ＨＴＭＬ，ＣＨＴＭＬ）に変換する場合の具体例（以下、実施例２−１という）について述べる。変換先文書をＣＨＴＭＬとしているが、この実施例２−１は変換先のマークアップ言語が、最新のＨＴＭＬ４．０であっても、Ｊ  Ｓｋｙ  Ｗｅｂ用のＨＴＭＬであっても適用できる。
図４は、変換元となるＢＭＬ文書の例である。ＢＭＬ文書には、ＥＣＭＡＳｃｒｉｐｔで記述したスクリプトをｓｃｒｉｐｔ要素を使用して埋め込むことが出来る。図４の例では１２行目から１８行目までがスクリプトである。
この文書は、ＢＭＬブラウザ上では図５のように動作する。まず、最初は図５左のように、「ユーザ登録」、「入力完了」というテキストと、その間にパスワードを入力するエリアが表示される。ユーザがパスワードを入力し、「入力完了」ボタンを押すと、ｓｃｒｉｐｔ要素内に記述されたスクリプト関数ｓｈｏｗＮｅｘｔが実行される。ｓｈｏｗＮｅｘｔ関数は、ＤＯＭを通じてｖｉｓｉｂｉｌｉｔｙスタイル特性を操作することにより、それまで見えなかった「次へ」というテキストを表示する（図５右）。
【００４５】
以下、この実施例２−１における図１の各手段の詳細を解説する。
変換元文書読み込み手段１４は、ＢＭＬ文書中からｓｃｒｉｐｔ要素を調べ、ｓｃｒｉｐｔ要素が存在する場合は、ｓｃｒｉｐｔ要素の内部を文書（変換元文書スクリプト部分）１６として出力し、ｓｃｒｉｐｔ要素を取り除いたものを文書（変換元文書マークアップ部分）１５として出力する。ここで、文書１５、文書１６は必ずしもファイルの形態を取る必要はなく、メモリ上に展開されたデータとして保持してもよい。この時点での文書１５を図６、文書１６を図７に示す。次に、スクリプト実行手段１７が図７に示されるスクリプトを実行する。
この実施例２−１では、スクリプト実行手段１７は、ＢＭＬのＥＣＭＡＳｃｒｉｐｔとＤＯＭンタフェースをサポートする。
図７のスクリプトの場合、スクリプトは関数定義文しか記述されていないため、この段階ではスクリプト実行後も文書１５への変更はない。
【００４６】
次に、イベント変換手段１８によって、図６に示されるＢＭＬ文書中に含まれる固有イベントの記述を、ＣＨＴＭＬのフォームの記述に変換する。この実施例２−１におけるイベント変換手段１８は図９に示される。このイベント変換手段１８は、ＢＭＬ文書中の全ての要素に対して適用される。
まず、その要素にｏｎｃｌｉｃｋ属性が設定されているかどうかを調べ、設定されている場合は、ステップＳ１５に記した方法でｉｎｐｕｔ要素に変換する。従って、図６中のｉｄ属性がｏｋのp要素はｉｎｐｕｔ要素に変換される。ｏｎｃｌｉｃｋ属性が設定されていない場合、その要素がｉｎｐｕｔ要素かどうかを調べ、ｉｎｐｕｔ要素である場合は、ｉｄ属性に設定されている値をｎａｍｅ属性として追加する（ステップＳ１４）。従って、図６中のｉｄ属性が”ｐaｓｓ”のｉｎｐｕｔ要素には”ｐaｓｓ”というｎａｍｅ属性が追加される。
次に、その要素がｂｏｄｙ要素であるかどうかを調べ、ｂｏｄｙ要素である場合はｆｏｒｍ要素を子要素として出力する（ステップＳ１６）。
【００４７】
イベント変換手段１８によって固有イベント記述が変換された文書は、マークアップ言語変換手段１９によってＣＨＴＭＬ文書（図８）に変換される。この実施例におけるマークアップ言語変換手段１９は、文書内の全ての要素に対して、図１０に示される変換表を上から順に解釈することによって実現される。
まず、その要素のスタイルを調べ、ｖｉｓｉｂｉｌｉｔｙ特性がｈｉｄｄｅｎの場合は、その要素は無視する。なぜなら、ｖｉｓｉｂｉｌｉｔｙ特性がｈｉｄｄｅｎの要素は元のＢＭＬ上では表示されないためである。例えば、図６のｉｄ属性がｎｅｘｔのp要素（「次へ」）は、ｖｉｓｉｂｉｌｉｔｙがｈｉｄｄｅｎに設定されているため、図８中には出力されない。
次に、その要素がＢＭＬ要素である場合は、ＨＴＭＬ要素にタグ名を変更して出力する。
次に、その要素がｓｔｙｌｅ要素の場合は、その要素を無視する。なぜなら、ＣＨＴＭＬではスタイルシートはサポートされないためである。
同様に、ｏｂｊｅｃｔ要素の場合も無視する。なぜなら、ｏｂｊｅｃｔ要素で示される画像・動画・音声をＣＨＴＭＬブラウザ上で表示しないようにするためである。ここで、画像に関しては、無視せずにファイルフォーマット変換やサイズ変換を行って、ｉｍｇ要素に変換するという実施例も考えられる。
同様に、ｂｅｉｔｅｍ要素とｂｅｖｅｎｔ要素も無視する。これらはＣＨＴＭＬ文書では表現できないためである。
それ以外の要素は、ｓｔｙｌｅ属性、ｉｄ属性、ｃｌaｓｓ属性を削除して、そのままＣＨＴＭＬ文書中に出力する。ｓｔｙｌｅ属性等を削除するのは、ＣＨＴＭＬではこれらの属性がサポートされないためである。
マークアップ言語変換手段１９の結果、出力されるＣＨＴＭＬ文書は図８のとおりである。図８のＣＨＴＭＬ文書は、ＣＨＴＭＬブラウザ上で図１１左のように表示される。ここで、ユーザが、パスワードを入力して入力ボタンを押すと、図１２に示すフォームデータが返される。この情報が、イベント処理手段２２に渡される。
【００４８】
イベント処理手段２２は図１３の手順で表される。フォームデータとして渡されたｎａｍｅ、ｖａｌｕｅのそれぞれの対に対して、ステップＳ３１からステップＳ３３に示される手順を実行する。まず、ｎａｍｅの先頭が、＠であるかどうかを判別する（ステップＳ３１）。ＢＳデジタル放送の運用ガイドラインに沿って記述されたＢＭＬのｉｄ属性には＠という文字は使用できないため、＠が先頭についている場合、ステップＳ１８でｉｎｐｕｔ要素を生成した変換元要素のｏｎｃｌｉｃｋ属性であると特定できるため、ｎａｍｅの先頭から＠を取り除いたものをスクリプトとして解釈し、スクリプト実行手段１７を起動する（ステップＳ３２）。＠が先頭についていない場合、ステップＳ１４で生成したｉｎｐｕｔ要素と特定できるので、ステップＳ３３の処理を実行する。
全てのｎａｍｅ、ｖａｌｕｅ対に対して上記の処理が終了したら、マークアップ言語変換手段１９を起動して終了する（ステップＳ３４）。
【００４９】
例えば、図１２のフォームデータが返された場合、まずｎａｍｅ＝”ｐaｓｓ”に関しては、ステップＳ３３により、変換元文書１５中のｉｄ属性の値がｐaｓｓのｉｎｐｕｔ要素のｖａｌｕｅ属性値を”１２３４”に変更する。また、ｎａｍｅ＝”＠ｓｈｏｗＮｅｘｔ（）；”に関しては、ステップＳ３２により、ｓｈｏｗＮｅｘｔ（）； というスクリプトを実行する。図７より、ｓｈｏｗＮｅｘｔ（）； が実行されると、関数ｓｈｏｗＮｅｘｔが実行され、まずｐａｓｓというｉｄを持つ要素のｖａｌｕｅ属性値が変数ｐｗに取得される（Ｃ１）。この例の場合、ステップＳ３３により”１２３４”に設定されているため、ｐｗには”１２３４”が代入される。次に、ｐｗの長さが調べられる（Ｃ２）。ｐｗの長さは4なので、ｉｆ文内のコードが実行され、ｎｅｘｔというｉｄを持つ要素のｖｉｓｉｂｉｌｉｔｙ特性が”ｖｉｓｉｂｌｅ”に変更される。
その後、マークアップ言語変換手段が起動されて出力される変換済み文書は図１４のようになり、ＣＨＴＭＬブラウザでは図１１右のように表示される。
【００５０】
次に、変換先文書がＷＭＬである場合の実施例２−２について述べる。この実施例２−２では、図１を構成する各手段のうち、イベント変換手段１８とマークアップ言語変換手段１９が前記実施例２−１とは異なる。
イベント変換手段１８は、図１５、図１６で示される。図１５のステップＳ４４が、図９に示した実施例２−１におけるイベント変換手段と異なる。ｉｎｐｕｔ要素でフォームの送出を行うＣＨＴＭＬ（ＨＴＭＬ）と異なり、ＷＭＬではｄｏ要素、ｇｏ要素、ｐｏｓｔｆｉｅｌｄ要素の組み合わせによってフォームの送出を行うためである。
マークアップ言語変換手段１９は、文書内の全ての要素に対して、図１７に示される変換表を上から順に解釈することによって実現される。
【００５１】
図４に示されるＢＭＬ文書を、この実施例２−２によってＷＭＬ文書に変換した例を図１８に示す。この文書は、ＷＭＬブラウザでは図１１左のように表示される。
ここで、ユーザがパスワードを入力して入力ボタンを押すと、図１９に示すフォームデータが返される。この情報がイベント処理手段２２に渡される。この実施例２−２におけるイベント処理手段２２は前記実施例２−１と同じである。イベント処理手段実行後に出力されるＷＭＬ文書は図２０のようになる。この文書はＷＭＬブラウザでは図１１右のように表示される。
【００５２】
次に、変換先文書がＪａｖａＳｃｒｉｐｔとＣＳＳ２（Ｃａｓｃａｄｉｎｇ  Ｓｔｙｌｅ  Ｓｈｅｅｔｓ  Ｌｅｖｅｌ２）をサポートするＨＴＭＬ４．０である場合の実施例２−３について述べる。この実施例２−３では、ＪａｖａＳｃｒｉｐｔとＣＳＳ２を利用することによって、実施例２−１よりも元文書に近い画面構成を再現できる。
この実施例２−３では、図１を構成する各手段のうち、イベント変換手段１８とマークアップ言語変換手段１９が実施例２−１および実施例２−２とは異なる。
イベント変換手段１８は、図２１で示される。図２１のステップＳ５５、ステップＳ５６、ステップＳ５７が、図９に示した実施例２−１におけるイベント変換手段と異なる。実施例２−１では、ｏｎｃｌｉｃｋ属性が設定された要素をｉｎｐｕｔ要素に変換することによって、イベント発火をサーバへのフォーム送出に変換していたが、この実施例２−３では、ｏｎｃｌｉｃｋ属性に設定されたスクリプトを、フォームを送出するスクリプトに置き換えることによって、イベント発火をサーバへのフォーム送出に変換する。ｏｎｃｌｉｃｋ属性が設定された要素をｉｎｐｕｔ要素に変更することが無いため、元文書に近い画面構成を再現できる。
【００５３】
フォームを送出するスクリプトは図２２のとおりである。このスクリプトは、第１引数ｘに渡されたｉｎｐｕｔ要素のｄｉｓaｂｌｅｄ属性をｆaｌｓｅにすることによって一時的に有効にし、第２引数ｙに渡されたｆｏｒｍ要素を送出す。従って、送出されたデータには、第１引数xに渡されたｉｎｐｕｔ要素に設定されているｎａｍｅ属性とｖａｌｕｅ属性の対が含まれる。
図２２のスクリプトは、ステップＳ５７で変換先ＨＴＭＬ中に出力される。また、第１引数ｘとして渡されるｉｎｐｕｔ要素は、ステップＳ５５で出力される。ｏｎｃｌｉｃｋ属性の値は、図２２のスクリプト関数を起動する関数呼び出し文に変換される（ステップＳ５６）。
マークアップ言語変換手段１９は、文書内の全ての要素に対して、図２３に示す変換表を上から順に解釈する。また、各要素のｓｔｙｌｅ属性と、ｓｔｙｌｅ要素の内部には図２４に示す変換表を適用する。
【００５４】
図４のＢＭＬ文書を、この実施例２−３によってＨＴＭＬ文書に変換した例を図２５に示す。この文書は、ＪａｖａＳｃｒｉｐｔとＣＳＳ２をサポートしたＨＴＭＬブラウザでは図５左のように表示される。
ここで、ユーザがパスワードを入力して入力ボタンを押すと、図１９に示すフォームデータが返される。この情報がイベント処理手段２２に渡される。この実施例２−３におけるイベント処理手段２２は実施例２−１と同じである。イベント処理手段実行後に出力されるＨＴＭＬ文書は図２６のようになる。この文書はＨＴＭＬブラウザでは図５右のように表示される。
【００５５】
次に事前変換装置を使用し、かつ、双方向サーバ通信手段を持つ場合の実施例２−４について述べる。この実施例２−４では、前記実施例２−１と同様に、ＢＭＬ文書をＣＨＴＭＬに変換する場合を想定するが、変換元文書や変換先文書がこれと異なるものに対しても適用できる。また、双方向サーバ通信手段による双方向サーバとの通信機能は、変換元文書がＢＭＬである場合ならば、図１に示す変換装置にも適用できる。
この実施例２−４では、変換元文書として、図３０に示すＢＭＬ文書を想定する。このＢＭＬ文書は、まず最初に図３１左のような画面を表示する。この画面では、「解答を入力して下さい」というテキストと、解答を入力するエリア、入力完了ボタンが表示される。ユーザが解答を入力して、入力完了ボタンを押すと、ｓｃｒｉｐｔ要素内に記述されたスクリプト関数ｅｎｔｅｒが実行される。ｅｎｔｅｒ関数は、ＢＭＬの双方向通信機能を使用して、入力された解答を電話番号“００−００００−００００”で表される双方向サーバに送信する。双方向サーバでは、送信されたデータが正解の場合は“ｏｋ”という文字列を、そうでない場合は“ｎｇ”という文字列を返す。
【００５６】
Ｅｅｎｔｅｒ関数内では、双方向サーバから返された文字列が“ｏｋ”の場合は、ｍｓｇというＩＤで示されるテキストエリアに“正解”という文字列を挿入し、そうでない場合は“はずれ”という文字列を挿入する。その結果、入力された解答が正解の場合は、図３１右上のような画面表示になり、不正解の場合は、図３１右下のような画面表示となる。
この文書を、まず図２８に示す事前変換装置５１で読み込む。事前変換装置５１は、変換元文書読み込み手段１４、イベント変換手段１８、静的フォーマット変換手段５６から成るが、変換元文書読み込み手段１４とイベント変換手段１８は、前記実施例２−１と同じである。従って、変換元文書読み込み手段１４によって、図３０に示す変換元文書のマークアップ部分が読み込まれ、ｏｎｃｌｉｃｋ属性を持つｉｄ属性が“ｏｋ”のｐ要素が、ｉｎｐｕｔ要素に変換される。
次に、静的フォーマット変換手段５６は、文書内の全ての要素に対して、図３６に示す変換表を上から順に解釈する。これを図１０に表されるマークアップ言語変換手段と比較すると、「Ｖｉｓｉｂｉｌｉｔｙスタイル特性がhｉｄｄｅｎの要素を出力しない」という処理と、「ｉｄ属性を無視する」処理がない。この２つの処理は、動的フォーマット変換手段６３で実行される。
その結果として、事前変換装置５１によって生成される修正用変換済み文書５２は、図３２のようになる。
【００５７】
次に、文書編集装置５３で、修正用変換済み文書を編集する。
文書編集装置５３は、汎用のＨＴＭＬオーサリングツールやテキストエディタである。修正用変換済み文書は通常のＨＴＭＬ文書であるため、汎用のＨＴＭＬオーサリングツールやテキストエディタで編集することが出来る。
図３３は、編集した結果として生成される修正済み文書５４の例である。ここでは、図３２の文書に対して、「解答を入力してください」というテキストを「解答入力」に短縮し（図３３の４行目）、ｉｄ属性が“ｍｓｇ”のp要素をｆｏｎｔ要素に変更して“ｒｅｄ”という値を持つｃｏｌｏｒ属性を追加した上、文書の先頭の方に移動した。
【００５８】
次に、図２９を用いて、この修正済文書をＣＨＴＭＬブラウザに送出する処理を解説する。
修正済文書は、まず、差分反映手段６１で処理される。差分反映手段は、差分情報６２を修正済文書に反映させる手段である。差分情報６２は、差分生成手段６５によって生成される。初めて差分反映手段６１が実行された時点では、差分生成手段６５は一度も実行されていないため、差分情報は空である。したがって、差分反映手段６１からの出力は修正済み文書と同じである。
差分反映手段６１からの出力は、動的フォーマット変換手段６３で処理される。動的フォーマット変換手段は、図３７に示す変換表を上から順に解釈することによって実行される。
図３３に示される文書に、図３７を適用すると、“ｍｓｇ”というｉｄを持つｆｏｎｔ要素が削除され（変換元文書マークアップ部中の、“ｍｓｇ”というｉｄを持つ要素のｖｉｓｉｂｉｌｉｔｙスタイル特性が“hｉｄｄｅｎ”であるため）、かつ、各要素に記述されているｉｄ属性が削除される。従って、その結果として出力される変換済み文書６４は図３４のようになる。
【００５９】
図３４のＣＨＴＭＬコンテンツは、ＣＨＴＭＬブラウザ上では図３８左のように表示される。ここで、ユーザが、解答を入力して入力完了ボタンを押すと、図３９に示すフォームデータが返される。この情報が、イベント処理手段２２に渡される。イベント処理手段２２の動作は、前記実施例２−１と同じである。図３９のフォームデータが返された場合、ステップＳ３２によりｅｎｔｅｒ（）；というスクリプトが実行される。
この実施例２−４では、スクリプト実行手段１７は、ＤＯＭに対する書き込み時は差分生成手段６５を呼び出し、ｂｒｏｗｓｅｒオブジェクトのｃｏｎｎｅｃｔ，ｓｅｎｄＴｅｘｔＤａｔａ，ｒｅｃｅｉｖｅＴｅｘｔＤａｔａ，ｄｉｓｃｏｎｎｅｃｔの各メソッドの呼び出し時は、双方向サーバ通信手段６６に用意されている同名のメソッドを呼び出す。
【００６０】
双方向サーバ通信手段６６は、図４０に示すメソッドを持つ。各メソッドは、ＢＭＬブラウザで実装されている双方向通信機能と同じ機能を持つため、双方向サーバと電話回線を通じて通信することが出来る。
なお、双方向サーバ通信手段６６は、ＢＭＬブラウザで実装されている双方向通信機能と同じ機能を持つ必要は無い。例えば、双方向サーバが、電話回線からの発呼を受ける部分と、受信したデータの処理を行う部分に分かれており、後者がより高速なネットワークに接続されている場合、双方向サーバ通信手段はｃｏｎｎｅｃｔ，ｓｅｎｄＴｅｘｔＤａｔａ等のメソッド呼び出しを、後者に対する通信に変換するように実装することもできる。
【００６１】
差分生成手段６５は、スクリプトによるＤＯＭツリーの変更内容を、差分情報として保存する手段である。この実施例２−４では、要素の属性の値の変更、テキストノードの内容の変更、スタイルの変更をそれぞれ、（“Ａｔｔｒａｔ”，要素のｉｄ，属性名，変更後の属性値）、（“ｔｅｘｔ”，親要素のｉｄ，親素内でのテキストノードの出現位置，変更後のテキスト) 、（“ｓｔｙｌｅ”，スタイルが変更された要素のｉｄ，スタイル特性名，新しいスタイル特性値）というリストで保存する。
【００６２】
ｅｎｔｅｒ関数が実行された場合の、スクリプト実行手段１７の処理は以下のとおりである。
１行目：  ｉｄがａｎｓｗｅｒの要素のｖａｌｕｅ属性を取得する。ｖａｌｕｅ属性はイベント処理手段（図１３のステップＳ３３）で“１”に設定されているため、ａｎｓには“１”が代入される。
２行目：  双方向サーバ通信手段６６のｃｏｎｎｅｃｔ関数がコールされ、双方向サーバとの通信手段が確立される。
３行目：  双方向サーバ通信手段６６のｓｅｎｄＴｅｘｔＤａｔａ関数がコールされ、双方向サーバに“1”という文字列が送信される。
４行目：  双方向サーバ通信手段６６のｒｅｃｅｉｖｅＴｅｘｔＤａｔａ関数がコールされ、双方向サーバから“ｏｋ”または“ｎｇ”という文字列を受信する。
５行目：  双方向サーバ通信手段６６のｄｉｓｃｏｎｎｅｃｔ関数がコールされ、双方向サーバとの通信手段が切断される。
６−１０行目：  受信した文字列が“ｏｋ”の場合、差分生成手段６５によって、（“ｔｅｘｔ”，“ｍｓｇ”，１，“正解”）という変更情報が保存される。“ｎｇ”の場合、（“ｔｅｘｔ”，“ｍｓｇ”，１，“はずれ”）という差分情報が保存される。
１１行目：差分生成手段６５によって、（“ｓｔｙｌｅ”，“ｍｓｇ，“ｖｉｓｉｂｉｌｉｔｙ”，“ｖｉｓｉｂｌｅ”）という差分情報が保存される。
次に、生成された差分情報は、差分反映手段６１によって、修正済み文書に反映される。
差分反映手段６１は、テキストノードの差分情報（“ｔｅｘｔ”，“ｍｓｇ”，１，“正解”）より、修正済み文書中の“ｍｓｇ”というｉｄ属性を持つｆｏｎｔ要素の最初のテキストノードの内容を“正解”に変更する（入力された解答が正解の場合）。また、スタイルの差分情報（“ｓｔｙｌｅ”，“ｍｓｇ”，“ｖｉｓｉｂｉｌｉｔｙ”，“ｖｉｓｉｂｌｅ”）より、“ｍｓｇ”というｉｄ属性を持つｆｏｎｔ要素のｖｉｓｉｂｉｌｉｔｙ特性をｖｉｓｉｂｌｅに変更する。
【００６３】
変更された修正済み文書は、動的フォーマット変換手段６３によって変換され、その結果として図３５に示す変換済み文書が生成される。図３５のＣＨＴＭＬ文書は、ＣＨＭＴＬブラウザでは図３８右上のように表示される。
【００６４】
この実施の形態２によれば、スクリプト言語を利用して画面を変更するＢＭＬ文書の画面遷移を、スクリプト言語をサポートしないＣＨＴＭＬブラウザやＷＭＬブラウザ上でも実現できるなど、手続き型スクリプト言語を内包したマークアップ言語を、それとは異なるマークアップ言語をサポートするブラウザで、元の文書に含まれていたスクリプトの対話動作を再現しつつ表示できる効果がある。例えば、スクリプト言語を利用して画面を変更するＢＭＬ文書の画面遷移を、スクリプト言語をサポートしないＣＨＴＭＬブラウザ上やＷＭＬブラウザ上や、仕様の異なるスクリプト言語を持つＨＴＭＬブラウザ上でも実現できる。また、ＢＭＬ文書中にスクリプトで記述された双方向サーバとの通信機能も再現することが出来る。
さらに、変換結果に人手による修正が必要になる場合でも、人手によって修正された内容を保存しつつ、かつ、スクリプトによる文書変更も反映させた文書変換と配信を実現することが出来る。
【００６５】
【発明の効果】
本発明によれば、手続き型スクリプト言語を内包したマークアップ言語を、それとは異なるマークアップ言語をサポートするブラウザで、元の文書に含まれていたスクリプトの対話動作を再現しつつ、表示することが出来る効果がある。例えば、スクリプト言語を利用して画面を変更するＢＭＬ文書の画面遷移を、スクリプト言語をサポートしないＣＨＴＭＬブラウザ上やＷＭＬブラウザ上や、仕様の異なるスクリプト言語を持つＨＴＭＬブラウザ上でも実現できる。
また、ＢＭＬ文書中にスクリプトで記述された双方向サーバとの通信機能も再現することが出来る効果がある。
さらに、変換結果に人手による修正が必要になる場合でも、人手によって修正された内容を保存しつつ、かつ、スクリプトによる文書変更も反映させた文書変換と配信を実現することが出来る効果がある。
【図面の簡単な説明】
【図１】本発明の実施の一形態のマークアップ文書変換方式を示すブロック図である。
【図２】本発明の実施の一形態のマークアップ文書変換方式による対話動作の変換についての解説図であり、スクリプトを含む文書をその文書をサポートするブラウザ上で実行した場合の動作を示す説明図である。
【図３】本発明の実施の一形態のマークアップ文書変換方式による対話動作の変換についての解説図であり、スクリプトを含む文書を、その文書をサポートしないブラウザで表示・閲覧できるように変換した場合を示す説明図である。
【図４】本発明の実施の一形態のマークアップ文書変換方式における変換元となるＢＭＬ文書の例を示す図である。
【図５】本発明の実施の一形態のマークアップ文書変換方式におけるＢＭＬ文書の表示例を示す図である。
【図６】本発明の実施の一形態のマークアップ文書変換方式における変換元文書読み込み手段によって抽出されたマークアップ文書の例を示す図である。
【図７】本発明の実施の一形態のマークアップ文書変換方式における変換元文書読み込み手段によって抽出されたスクリプトの例を示す図である。
【図８】本発明の実施の一形態のマークアップ文書変換方式における変換後のＣＨＴＭＬ文書の例を示す図である。
【図９】本発明の実施の一形態のマークアップ文書変換方式におけるイベント変換手段の動作を示すフローチャートである。
【図１０】本発明の実施の一形態のマークアップ文書変換方式におけるマークアップ言語変換手段で使用する変換表を示す図である。
【図１１】本発明の実施の一形態のマークアップ文書変換方式における変換後のＣＨＴＭＬ文書の表示例を示す図である。
【図１２】本発明の実施の一形態のマークアップ文書変換方式における送出されるフォームデータの例を示す図である。
【図１３】本発明の実施の一形態のマークアップ文書変換方式におけるイベント処理手段の動作を示すフローチャートである。
【図１４】本発明の実施の一形態のマークアップ文書変換方式におけるイベント処理手段実行後のＣＨＴＭＬ文書の例を示す図である。
【図１５】本発明の実施の一形態のマークアップ文書変換方式におけるイベント変換手段の動作を示すフローチャートである。
【図１６】本発明の実施の一形態のマークアップ文書変換方式におけるイベント変換手段中のｐｏｓｔｆｉｅｌｄ要素の生成手段を示す図である。
【図１７】本発明の実施の一形態のマークアップ文書変換方式におけるマークアップ言語変換手段データ使用する変換表を示す図である。
【図１８】本発明の実施の一形態のマークアップ文書変換方式における変換後のＷＭＬ文書の表示例を示す図である。
【図１９】本発明の実施の一形態のマークアップ文書変換方式における送出されるフォームデータの例を示す図である。
【図２０】本発明の実施の一形態のマークアップ文書変換方式におけるイベント処理手段実行後のＷＭＬ文書の例を示す図である。
【図２１】本発明の実施の一形態のマークアップ文書変換方式におけるイベント変換手段の動作を示すフローチャートである。
【図２２】本発明の実施の一形態のマークアップ文書変換方式におけるフォーム送信用スクリプトの例を示す図である。
【図２３】本発明の実施の一形態のマークアップ文書変換方式におけるマークアップ言語変換手段の変換規則（要素変換）を示す説明図である。
【図２４】本発明の実施の一形態のマークアップ文書変換方式におけるマークアップ言語変換手段の変換規則（スタイル変換）を示す説明図である。
【図２５】本発明の実施の一形態のマークアップ文書変換方式における変換後のＨＴＭＬ文書の例を示す図である。
【図２６】本発明の実施の一形態のマークアップ文書変換方式におけるイベント処理手段実行後のＨＴＭＬ文書の例を示す図である。
【図２７】本発明の実施の一形態のマークアップ文書変換方式における事前変換装置を含む場合の変換サーバの構成を示すブロック図である。
【図２８】本発明の実施の一形態のマークアップ文書変換方式における事前変換装置の構成を示すブロック図である。
【図２９】本発明の実施の一形態のマークアップ文書変換方式における修正済み文書変換装置の構成を示すブロック図である。
【図３０】本発明の実施の一形態のマークアップ文書変換方式におけるＢＭＬ文書の例を示す図である。
【図３１】本発明の実施の一形態のマークアップ文書変換方式におけるＢＭＬ文書の表示例を示す図である。
【図３２】本発明の実施の一形態のマークアップ文書変換方式における修正用変換済文書の例を示す図である。
【図３３】本発明の実施の一形態のマークアップ文書変換方式における修正済み文書の例を示す図である。
【図３４】本発明の実施の一形態のマークアップ文書変換方式における変換後のＣＨＴＭＬ文書の例を示す図である。
【図３５】本発明の実施の一形態のマークアップ文書変換方式におけるイベント処理手段実行後のＣＨＴＭＬ文書の例を示す図である。
【図３６】本発明の実施の一形態のマークアップ文書変換方式における静的フォーマット変換手段の変換規則を示す説明図である。
【図３７】本発明の実施の一形態のマークアップ文書変換方式における動的フォーマット変換手段の変換規則を示す説明図である。
【図３８】本発明の実施の一形態のマークアップ文書変換方式における変換後のＣＨＴＭＬ文書の表示例を示す図である。
【図３９】本発明の実施の一形態のマークアップ文書変換方式において送出されるフォームデータの例を示す図である。
【図４０】本発明の実施の一形態のマークアップ文書変換方式における双方向サーバ通信手段のインタフェースを示す説明図である。
【符号の説明】
１１……変換元文書、１２……変換装置、１３……ブラウザ、１４……変換元文書読み込み手段、１７……スクリプト実行手段、１８……イベント変換手段、１９……マークアップ言語変換手段、２２……イベント処理手段、５１……事前変換装置、５３……文書編集装置、５５……修正済み文書変換配信装置、６１……差分反映手段、６５……差分生成手段、６６……双方向サーバ通信手段。
【図１】
0004322462.tif 000002
【図２】
0004322462.tif 000003
【図３】
0004322462.tif 000004
【図４】
0004322462.tif 000005
【図５】
0004322462.tif 000006
【図６】
0004322462.tif 000007
【図７】
0004322462.tif 000008
【図８】
0004322462.tif 000009
【図９】
0004322462.tif 000010
【図１０】
0004322462.tif 000011
【図１１】
0004322462.tif 000012
【図１２】
0004322462.tif 000013
【図１３】
0004322462.tif 000014
【図１４】
0004322462.tif 000015
【図１５】
0004322462.tif 000016
【図１６】
0004322462.tif 000017
【図１７】
0004322462.tif 000018
【図１８】
0004322462.tif 000019
【図１９】
0004322462.tif 000020
【図２０】
0004322462.tif 000021
【図２１】
0004322462.tif 000022
【図２２】
0004322462.tif 000023
【図２３】
0004322462.tif 000024
【図２４】
0004322462.tif 000025
【図２５】
0004322462.tif 000026
【図２６】
0004322462.tif 000027
【図２７】
0004322462.tif 000028
【図２８】
0004322462.tif 000029
【図２９】
0004322462.tif 000030
【図３０】
0004322462.tif 000031
【図３１】
0004322462.tif 000032
【図３２】
0004322462.tif 000033
【図３３】
0004322462.tif 000034
【図３４】
0004322462.tif 000035
【図３５】
0004322462.tif 000036
【図３６】
0004322462.tif 000037
【図３７】
0004322462.tif 000038
【図３８】
0004322462.tif 000039
【図３９】
0004322462.tif 000040
【図４０】
0004322462.tif 000041