(57)【要約】【課題】構造化情報を別の構造化情報へマッピングする、そのマッピングをユーザが対話により定義可能なグラフィカルユーザインターフェースオブジェクト指向のシステムを実現する。【解決手段】グラフィカルユーザインターフェースモジュール１８０は、ユーザとシステム間の対話を処理する。パーサ１８２は入力文書を解析し、システムの他モジュールへ渡すためのコンポーネント・パーツに分解する。トランスフォーマ１８６は、情報及びデータが必要になった時に、その転送をマップモジュール１８４、パーサ１８２及びサービスモジュール１８８に要求しながら、ＳＧＭＬからＨＴＭＬへのマッピング及び変換の処理を制御する。【選択図】図８
2006202308.tif 000002
【特許請求の範囲】
【請求項１】
第１の構造記述から第２の構造記述へのマッピングを生成するためのグラフィカルユーザインターフェースを提供する、コンピュータにより実施される方法であって、
第１の構造記述の変換対象の要素を表示するステップ、
第２の構造記述の候補要素のリストを表示するステップ、
前記第２構造記述の前記候補要素より選択した第１の要素をユーザより入力し、前記第１構造記述の前記変換対象要素と前記第２構造記述の前記候補要素より選択された前記第１要素との間の対応を、前記第１構造記述の要素の前記第２構造記述への変換として定義するステップ、及び
前記第１構造記述の前記変換対象要素と前記第２構造記述の前記候補要素より選択された前記第１要素との間の前記対応を規則として記憶するステップ、からなることを特徴とするグラフィカルユーザインターフェース方法。
【請求項２】
前記第１構造記述がＩＳＯ／ＩＥＣ９０７０公開識別子ネーミングフォーマットを含み、前記第２構造記述がオペレーティングシステムのファイル名フォーマットを含み、前記変換対象要素を表示する前記ステップが、ＩＳＯ／ＩＥＣ９０７０公開識別子ネーミングフォーマットの要素を含む前記変換対象要素を表示し、かつ
前記候補要素のリストを表示するステップが、オペレーティングシステムのファイル名フォーマットの候補要素のリストを含む前記候補要素のリストを表示する、ことを特徴とする請求項１記載のグラフィカルユーザインターフェース方法。
【請求項３】
前記第１構造記述が第１のデータベース変数名フォーマットを含み、前記第２構造記述が第２のデータベース変数名フォーマットを含み、かつ、前記変換対象要素を表示する前記ステップが、前記第１データベース変数名フォーマットの要素を含む前記変換対象要素を表示し、かつ
前記候補要素のリストを表示するステップが、前記第２データベース変数名フォーマットの候補要素のリストを含む前記候補要素のリストを表示する、ことを特徴とする請求項１記載のグラフィカルユーザインターフェース方法。
【請求項４】
前記記憶された規則を取得するステップ、
前記第１構造記述の前記変換対象要素を表示するステップ、
前記第２構造記述の前記選択された第１要素を表示し、前記第１構造記述の前記変換対象要素と前記第２構造記述の前記候補要素より選択された前記第１要素との間の対応を、前記第１構造記述の要素の前記第２構造記述への変換として定義するステップ、
前記第２構造記述の前記候補要素のリストを表示するステップ、
前記第２構造記述の前記候補要素より選択した第２の要素をユーザより入力し、前記第１構造記述の前記変換対象要素と前記第２構造記述の前記候補要素より選択された前記第２要素との間の対応を、前記第１構造記述の要素の前記第２構造記述への変換として定義するステップ、及び
前記第１構造記述の前記変換対象要素と前記第２構造記述の前記候補要素より選択された前記第２要素との間の前記対応を規則として記憶するステップをさらに含むことを特徴とする請求項１記載のグラフィカルユーザインターフェース方法。
【請求項５】
表示中の前記選択された第１の要素をクリアする要求をユーザが入力するためのアイコンを表示するステップ、
表示中の前記選択された第１要素をクリアする要求をユーザが入力した時に、前記表示中の前記選択された第１要素をクリアする要求を入力するステップ、
及び
表示中の前記選択された第１要素をクリアする要求をユーザが入力した時に、表示中の前記選択された第１要素をクリアするステップをさらに含むことを特徴とする請求項１記載のグラフィカルユーザインターフェース方法。
【請求項６】
前記第１構造記述が第１のマークアップ言語を含み、前記第２構造記述が第２のマークアップ言語を含み、かつ、前記変換対象要素を表示する前記ステップが、前記第１マークアップ言語の要素を含む前記変換対象要素を表示し、
かつ
前記候補要素のリストを表示する前記ステップが、前記第２マークアップ言語の候補要素のリストを含む前記候補要素のリストを表示することを特徴とする請求項１記載のグラフィカルユーザインターフェース方法。
【請求項７】
前記第１マークアップ言語が標準一般化マークアップ言語（ＳＧＭＬ）を含み、前記第２マークアップ言語がハイパーテキスト・マークアップ言語（ＨＴＭＬ）を含み、かつ、前記変換対象要素を表示する前記ステップが、ＳＧＭＬの要素を含む前記変換対象要素を表示し、
かつ、
前記候補要素のリストを表示する前記ステップが、ＨＴＭＬの候補要素のリストを含む前記候補要素のリストを表示することを特徴とする請求項６記載のグラフィカルユーザインターフェース方法。
【請求項８】
前記記憶するステップが、前記第１構造記述の前記変換対象要素と前記第２構造記述の前記候補要素から選択された前記第１要素との間の対応を、規則として変換規則リストに記憶することを特徴とする請求項１記載のグラフィカルユーザインターフェース方法。
【請求項９】
前記第１構造記述の第２の変換対象要素を表示するステップ、
前記第２構造記述の候補要素のリストを表示するステップ、
前記第２構造記述の前記候補要素より選択した第２の要素をユーザより入力し、前記第１構造記述の前記第２変換対象要素と前記第２構造記述の前記候補要素より選択した前記第２要素との間の対応を、前記第１構造記述の要素の前記第２構造記述への変換として定義するステップ、及び
前記第１構造記述の前記第２変換対象要素と前記第２構造記述の前記候補要素より選択された前記第２要素との間の前記対応を規則として変換規則リストに記憶するステップをさらに含んでなることを特徴とする請求項８記載のグラフィカルユーザインターフェース方法。
【請求項１０】
前記入力するステップが、前記選択された第１要素を規則として前記変換規則リストに記憶させる要求をユーザが入力するためのアイコンを表示し、
かつ
前記記憶するステップが、前記選択された第１要素を規則として記憶させる要求をユーザが入力した時に、前記対応を規則として前記変換規則リストに記憶させる要求を入力し、かつ、前記選択された第１要素を規則として記憶させる要求をユーザが入力した時に、前記第１構造記述の第２の変換対象要素を表示することを特徴とする請求項８記載のグラフィカルユーザインターフェース方法。
【請求項１１】
前記入力するステップが、前記対応を規則として前記変換規則リストに記憶させる要求をユーザが入力するためのアイコンを表示し、
かつ
前記記憶するステップが、前記選択された第１要素を規則として前記変換規則リストに記憶させる要求をユーザが入力した時に、前記対応を規則として前記変換規則リストに記憶させる要求を入力し、かつ、前記変換規則リストをマップとして記憶することを特徴とする請求項８記載のグラフィカルユーザインターフェース方法。
【請求項１２】
前記変換規則リストを削除する要求をユーザが入力するためのアイコンを表示するステップ、
前記規則変換リストを削除する要求をユーザが入力した時に、前記変換規則リストを削除する要求を入力するステップ、及び
前記変換規則リストを削除する要求をユーザが入力した時に、前記変換規則リストを削除するステップをさらに含むことを特徴とする請求項８記載のグラフィカルユーザインターフェース方法。
【請求項１３】
前記第２構造記述の前記候補要素から選択された前記第１要素を表示し、前記第１構造記述の前記変換対象要素と前記第２構造記述の前記候補要素から選択された前記第１要素との間の対応を、前記第１構造記述の要素の前記第２構造記述への変換として定義するステップをさらに含むことを特徴とする請求項１記載のグラフィカルユーザインターフェース方法。
【請求項１４】
前記入力するステップが、前記第２構造記述の前記複数の候補要素の第１の順序リストをユーザより入力し、前記第１構造記述の前記変換対象要素と前記第２構造記述の前記複数の候補要素の前記第１順序リストとの間の対応を、前記第１構造記述の要素の前記第２構造記述への変換として定義し、
前記選択された第１要素を表示する前記ステップが、前記第２マークアップ言語の前記複数の候補要素の前記第１順序リストを表示し、前記第１構造記述の前記変換対象要素と前記第２構造記述の前記複数の候補要素の前記第１順序リストとの間の対応を、前記第１構造記述の要素の前記第２構造記述への変換として定義し、
かつ
前記記憶するステップが、前記第１構造記述の要素の前記第２構造記述への変換としての、前記第１構造記述の前記変換対象要素と前記第２構造記述の前記複数の候補要素の前記第１順序リストとの間の対応を、規則として記憶することを特徴とする請求項１３記載のグラフィカルユーザインターフェース方法。
【請求項１５】
前記記憶された規則を取得するステップ、
前記第１構造記述の前記変換対象要素を表示するステップ、
前記第２構造記述の要素の前記第１順序リストを表示し、前記第１構造記述の前記変換対象要素と前記第２構造記述の前記複数の候補要素の前記第１順序リストとの間の対応を、前記第１構造記述の要素の前記第２構造記述への変換として定義するステップ、
前記第２構造記述の候補要素の前記リストを表示するステップ、
前記第２構造記述の複数の候補要素の第２の順序リストをユーザより入力し、前記第１構造記述の前記変換対象要素と前記第２構造記述の前記複数の候補要素の前記第２順序リストとの間の対応を、前記第１構造記述の要素の前記第２構造記述への変換として定義するステップ、及び
前記第１構造記述の要素の前記第２構造記述への変換としての、前記第１構造記述の前記変換対象要素と前記第２構造記述の前記複数の候補要素の前記第２順序リストとの間の対応を、規則として記憶するステップをさらに含むことを特徴とする請求項１４記載のグラフィカルユーザインターフェース方法。
【請求項１６】
表示中の前記第１順序リストをクリアする要求をユーザが入力するためのアイコンを表示するステップ、
表示中の前記第１順序リストをクリアする要求をユーザが入力した時に、表示中の前記第１順序リストをクリアする要求を入力するステップ、及び
表示中の前記第１順序リストをクリアする要求をユーザが入力した時に、表示中の前記第１順序リストをクリアするステップをさらに含むことを特徴とする請求項１４記載のグラフィカルユーザインターフェース方法。
【請求項１７】
前記第２構造記述の属性値の割り当てのため、前記第１構造記述の要素の前記第２構造記述への変換に対応する前記第２構造記述の前記候補要素から選択された前記第１要素の属性を表示するステップ、
表示中の前記選択された第１要素の属性に割り当てられる属性値を取得するためのソースを表す複数のアイコンを表示するステップ、
前記第１構造記述の要素を表示するステップ、
前記第１構造記述の要素の属性リストを表示するステップ、
表示中の前記選択された第１要素の属性に割り当てられる属性値を取得するためのソースの選択に関するユーザ入力を入力するステップ、及び
表示中の前記選択された第１要素の属性に割り当てられる属性値を取得するためのソースの前記選択をユーザが入力した時に、表示中の前記選択された第１要素の属性に割り当てられる属性値を取得するためのソースの選択に関する前記ユーザ入力を処理するステップをさらに含むことを特徴とする請求項１記載のグラフィカルユーザインターフェース方法。
【請求項１８】
前記処理するステップが、ユーザが入力した前記ソースの選択がどのソースも使用しないことを指示する時に、表示中の前記選択された第１要素の属性にヌル値を割り当てることを特徴とする請求項１７記載のグラフィカルユーザインターフェース方法。
【請求項１９】
前記処理するステップが、ユーザが入力した前記ソースの選択がシステム値を使用することを指示する時に、表示中の前記選択された第１要素の属性にシステム値を割り当てることを特徴とする請求項１７記載のグラフィカルユーザインターフェース方法。
【請求項２０】
前記処理するステップが、ユーザが入力した前記ソースの選択が第１構造記述属性値ソースを使用することを指示する時に、表示中の前記選択された第１要素の属性に第１構造記述属性値を割り当てることを特徴とする請求項１７記載のグラフィカルユーザインターフェース方法。
【請求項２１】
前記処理するステップが、ユーザが入力した前記ソースの選択が第１構造記述コンテント値ソースを使用することを指示する時に、表示中の前記選択された第１要素の属性に第１構造記述コンテント値を割り当てることを特徴とする請求項１７記載のグラフィカルユーザインターフェース方法。
【請求項２２】
前記処理するステップが、ユーザが入力した前記ソースの選択がユーザ入力値ソースを使用することを指示する時に、表示中の前記選択された第１要素の属性にユーザ入力値を割り当てることを特徴とする請求項１７記載のグラフィカルユーザインターフェース方法。
【請求項２３】
前記割り当てるステップが、
割り当てる値をユーザが入力するためのテキスト入力領域を表示し、
前記テキスト入力領域にユーザにより入力された値を入力し、
ユーザに入力された前記値を表示中の前記選択された第１要素の属性に割り当てることを特徴とする請求項２２記載のグラフィカルユーザインターフェース方法。
【請求項２４】
第２構造記述の候補要素のリストを表示する前記ステップが、
前記変換における前記第１構造記述要素の削除要求候補を表示し、また、
前記変換における前記第１構造記述要素の無視要求候補を表示することを特徴とする請求項１記載のグラフィカルユーザインターフェース方法。
【請求項２５】
第１の構造記述から第２の構造記述へのマッピングを生成するためのグラフィカルユーザインターフェースを提供する装置であって、
第１の構造記述の変換対象要素を表示する要素表示手段、
第２の構造記述の候補要素のリストを表示するリスト表示手段、
前記第２構造記述の前記候補要素より選択した第１の要素をユーザより入力し、前記第１構造記述の前記変換対象要素と前記第２構造記述の前記候補要素より選択された前記第１要素との間の対応を、前記第１構造記述の要素の前記第２構造記述への変換として定義するユーザ入力手段、及び
前記第１構造記述の前記変換対象要素と前記第２構造記述の前記候補要素より選択された前記第１要素との間の対応を規則として記憶する記憶手段からなることを特徴とするグラフィカルユーザインターフェース装置。
【請求項２６】
前記第１構造記述がＩＳＯ／ＩＥＣ９０７０公開識別子ネーミングフォーマットを含み、前記第２構造記述がオペレーティングシステムのファイル名フォーマットを含み、かつ、前記要素表示手段が、ＩＳＯ／ＩＥＣ９０７０公開識別子ネーミングフォーマットの要素を含む前記変換対象要素を表示する手段からなり、かつ
前記リスト表示手段が、オペレーティングシステムのファイル名フォーマットの候補要素のリストを含む前記候補要素のリストを表示する手段からなることを特徴とする請求項２５記載のグラフィカルユーザインターフェース装置。
【請求項２７】
前記第１構造記述が第１のデータベース変数名フォーマットを含み、前記第２構造記述が第２のデータベース変数名フォーマットを含み、かつ、前記要素表示手段が、前記第１データベース変数名フォーマットの要素を含む前記変換対象要素を表示する手段からなり、かつ
前記リスト表示手段が、前記第２データベース変数名フォーマットの候補要素のリストを含む前記候補要素のリストを表示する手段からなることを特徴とする請求項２５記載のグラフィカルユーザインターフェース装置。
【請求項２８】
前記記憶された規則を取得する手段、
前記第１構造記述の前記変換対象要素を表示する手段、
前記第２構造記述の前記選択された第１要素を表示し、前記第１構造記述の前記変換対象要素と前記第２構造記述の前記候補要素より選択された前記第１要素との間の対応を、前記第１構造記述の要素の前記第２構造記述への変換として定義する手段、
前記第２構造記述の前記候補要素のリストを表示する手段、
前記第２構造記述の前記候補要素より選択した第２の要素をユーザより入力し、前記第１構造記述の前記変換対象要素と前記第２構造記述の前記候補要素より選択された前記第２要素との間の対応を、前記第１構造記述の要素の前記第２構造記述への変換として定義する手段、及び
前記第１構造記述の前記変換対象要素と前記第２構造記述の前記候補要素より選択された前記第２要素との間の対応を規則として記憶する手段をさらに含むことを特徴とする請求項２５記載のグラフィカルユーザインターフェース装置。
【請求項２９】
表示中の前記選択された第１要素をクリアする要求をユーザが入力するためのアイコンを表示する手段、
表示中の前記選択された第１要素をクリアする要求をユーザが入力した時に、表示中の前記選択された第１要素をクリアする要求を入力する手段、
及び
表示中の前記選択された第１要素をクリアする要求をユーザが入力した時に、表示中の前記選択された第１要素をクリアする手段をさらに含むことを特徴とする請求項２５記載のグラフィカルユーザインターフェース装置。
【請求項３０】
前記第１構造記述が第１のマークアップ言語を含み、前記第２構造記述が第２のマークアップ言語を含み、かつ、前記要素表示手段が、前記第１マークアップ言語の要素を含む前記変換対象要素を表示する手段からなり、かつ
前記リスト表示手段が、前記第２マークアップ言語の候補要素のリストを含む前記候補要素のリストを表示する手段からなることを特徴とする請求項２５記載のグラフィカルユーザインターフェース装置。
【請求項３１】
前記第１マークアップ言語がＳＧＭＬを含み、前記第２マークアップ言語がＨＴＭＬを含み、かつ、前記要素表示手段が、ＳＧＭＬの要素を含む前記変換対象要素を表示する手段からなり、かつ
前記リスト表示手段が、ＨＴＭＬの候補要素のリストを含む前記候補要素のリストを表示する手段からなることを特徴とする請求項３０記載のグラフィカルユーザインターフェース装置。
【請求項３２】
前記記憶手段が、前記第１構造記述の前記変換対象要素と前記第２構造記述の前記候補要素から選択された前記第１要素との間の対応を、規則として変換規則リストに記憶する手段からなることを特徴とする請求項２５記載のグラフィカルユーザインターフェース装置。
【請求項３３】
前記第１構造記述の第２の変換対象要素を表示する手段、  前記第２構造記述の候補要素のリストを表示する手段、
前記第２構造記述の前記候補要素より選択した第２の要素をユーザより入力し、前記第１構造記述の前記第２変換対象要素と前記第２構造記述の前記候補要素より選択された前記第２要素との間の対応を、前記第１構造記述の要素の前記第２構造記述への変換として定義する手段、及び
前記第１構造記述の前記第２変換対象要素と前記第２構造記述の前記候補要素より選択された前記第２要素との間の対応を規則として変換規則のリストに記憶する手段をさらに含むことを特徴とする請求項３２記載のグラフィカルユーザインターフェース装置。
【請求項３４】
前記選択された第１要素の対応を規則として前記変換規則リストに記憶させる要求をユーザが入力するためのアイコンを表示する手段、
前記選択された第１要素を規則として記憶させる要求をユーザが入力した時に、前記対応を規則として前記変換規則リストに記憶させる要求を入力する手段、及び
前記選択された第１要素を規則として記憶させる要求をユーザが入力した時に、前記第１構造記述の第２の変換対象要素を表示する手段をさらに含むことを特徴とする請求項３２記載のグラフィカルユーザインターフェース装置。
【請求項３５】
前記対応を規則として前記変換規則リストに記憶させる要求をユーザが入力するためのアイコンを表示する手段、
前記選択された第１要素を規則として前記変換規則リストに記憶させる要求をユーザが入力した時に、前記対応を規則として前記変換規則リストに記憶させる要求を入力する手段、及び
前記変換規則リストをマップとして記憶する手段をさらに含むことを特徴とする請求項３２記載のグラフィカルユーザインターフェース装置。
【請求項３６】
前記変換規則リストを削除する要求をユーザが入力するためのアイコンを表示する手段、
前記規則変換リストを削除する要求をユーザが入力した時に、前記変換規則リストを削除する要求を入力する手段、及び
前記変換規則リストを削除する要求をユーザが入力した時に、前記変換規則リストを削除する手段をさらに含むことを特徴とする請求項３２記載のグラフィカルユーザインターフェース装置。
【請求項３７】
前記第２構造記述の前記候補要素から選択された前記第１要素を表示し、前記第１構造記述の前記変換対象要素と前記第２構造記述の前記候補要素から選択された前記第１要素との間の対応を、前記第１構造記述の要素の前記第２構造記述への変換として定義する手段をさらに含むことを特徴とする請求項２５記載のグラフィカルユーザインターフェース装置。
【請求項３８】
前記ユーザ入力手段が、前記第２構造記述の複数の候補要素の第１の順序リストをユーザより入力し、前記第１構造記述の前記変換対象要素と前記第２構造記述の前記複数の候補要素の前記第１順序リストとの間の対応を、前記第１構造記述の要素の前記第２構造記述への変換として定義する手段からなり、
前記選択された第１要素を表示する手段が、前記第２マークアップ言語の前記複数の候補要素の前記第１順序リストを表示し、前記第１構造記述の前記変換対象要素と前記第２構造記述の前記複数の候補要素の前記第１順序リストとの間の対応を、前記第１構造記述の要素の前記第２構造記述への変換として定義する手段からなり、かつ
前記記憶手段が、前記第１構造記述の要素の前記第２構造記述への変換としての、前記第１構造記述の前記変換対象要素と前記第２構造記述の前記複数の候補要素の前記第１順序リストとの間の対応を、規則として記憶する手段からなることを特徴とする請求項３７記載のグラフィカルユーザインターフェース装置。
【請求項３９】
前記記憶された規則を取得する手段、
前記第１構造記述の前記変換対象要素を表示する手段、
前記第２構造記述の要素の前記第１順序リストを表示し、前記第１構造記述の前記変換対象要素と前記第２構造記述の前記複数の候補要素の前記第１順序リストとの間の対応を、前記第１構造記述の要素の前記第２構造記述への変換として定義する手段、
前記第２構造記述の候補要素の前記リストを表示する手段、
前記第２構造記述の複数の候補要素の第２の順序リストをユーザより入力し、前記第１構造記述の前記変換対象要素と前記第２構造記述の前記複数の候補要素の前記第２順序リストとの間の対応を、前記第１構造記述の要素の前記第２構造記述への変換として定義する手段、及び
前記第１構造記述の要素の前記第２構造記述への変換としての、前記第１構造記述の前記変換対象要素と前記第２構造記述の前記複数の候補要素の前記第２順序リストとの間の対応を、規則として記憶する手段をさらに含むことを特徴とする請求項３８記載のグラフィカルユーザインターフェース装置。
【請求項４０】
表示中の前記第１順序リストをクリアする要求をユーザが入力するためのアイコンを表示する手段、
表示中の前記第１順序リストをクリアする要求をユーザが入力した時に、表示中の前記第１順序リストをクリアする要求を入力する手段、及び
表示中の前記第１順序リストをクリアする要求をユーザが入力した時に、表示中の前記第１順序リストをクリアする手段をさらに含むことを特徴とする請求項３８記載のグラフィカルユーザインターフェース装置。
【請求項４１】
前記第２構造記述の属性値の割り当てのため、前記第１構造記述の要素の前記第２構造記述への変換に対応する前記第２構造記述の候補要素から選択された前記第１要素の属性を表示する手段、
表示中の前記選択された第１要素の属性に割り当てられる属性値を取得するためのソースを表す複数のアイコンを表示する手段、
前記第１構造記述の要素を表示する手段、
前記第１構造記述の要素の属性リストを表示する手段、
表示中の前記選択された第１要素の属性に割り当てられる属性値を取得するためのソースの選択に関するユーザ入力を入力する手段、及び
表示中の前記選択された第１要素の属性に割り当てられる属性値を取得するためのソースの前記選択をユーザが入力した時に、表示中の前記選択された第１要素の属性に割り当てられる属性値を取得するためのソースの選択に関する前記ユーザ入力を処理する入力処理手段をさらに含むことを特徴とする請求項２５記載のグラフィカルユーザインターフェース装置。
【請求項４２】
前記入力処理手段が、ユーザが入力した前記ソースの選択がどのソースも使用しないことを指示する時に、表示中の前記選択された第１要素の属性にヌル値を割り当てる手段をさらに含むことを特徴とする請求項４１記載のグラフィカルユーザインターフェース装置。
【請求項４３】
前記入力処理手段が、ユーザが入力した前記ソースの選択がシステム値を使用することを指示する時に、表示中の前記選択された第１要素の属性にシステム値を割り当てる手段をさらに含むことを特徴とする請求項４１記載のグラフィカルユーザインターフェース装置。
【請求項４４】
前記入力処理手段が、ユーザが入力した前記ソースの選択が第１構造記述属性値ソースを使用することを指示する時に、表示中の前記選択された第１要素の属性に第１構造記述属性値を割り当てる手段をさらに含むことを特徴とする請求項４１記載のグラフィカルユーザインターフェース装置。
【請求項４５】
前記入力処理手段が、ユーザが入力した前記ソースの選択が第１構造記述コンテント値ソースを使用することを指示する時に、表示中の前記選択された第１要素の属性に第１構造記述コンテント値を割り当てる手段をさらに含むことを特徴とする請求項４１記載のグラフィカルユーザインターフェース装置。
【請求項４６】
前記入力処理手段が、ユーザが入力した前記ソースの選択がユーザ入力値ソースを使用することを指示する時に、表示中の前記選択された第１要素の属性にユーザ入力値を割り当てる手段をさらに含むことを特徴とする請求項４１記載のグラフィカルユーザインターフェース装置。
【請求項４７】
前記割り当て手段が、
割り当てる値をユーザが入力するためのテキスト入力領域を表示する手段、
前記テキスト入力領域にユーザにより入力された値を入力する手段、及び
ユーザにより入力された前記値を表示中の前記選択された第１要素の属性に割り当てる手段からなることを特徴とする請求項４６記載のグラフィカルユーザインターフェース装置。
【請求項４８】
前記リスト表示手段が、
前記変換における前記第１構造記述の前記変換対象要素の削除要求のための候補を表示する手段、及び
前記変換における前記第１構造記述の前記変換対象要素の無視要求のための候補を表示する手段をさらに含むことを特徴とする請求項２５記載のグラフィカルユーザインターフェース装置。
【請求項４９】
第１の構造記述から第２の構造記述へのマッピングを生成するためのグラフィカルユーザインターフェースを提供するグラフィカルユーザインターフェース装置をコンピュータにより実現させるためのプログラムが記録されたコンピュータ読み取り可能記録媒体であって、前記グラフィカルユーザインターフェース装置が、
第１の構造記述の変換対象要素を表示する要素表示手段、
第２の構造記述の候補要素のリストを表示するリスト表示手段、
前記第２構造記述の前記候補要素より選択した第１の要素をユーザより入力し、前記第１構造記述の前記変換対象要素と前記第２構造記述の前記候補要素より選択された前記第１要素との間の対応を、前記第１構造記述の要素の前記第２構造記述への変換として定義するユーザ入力手段、及び
前記第１構造記述の前記変換対象要素と前記第２構造記述の前記候補要素より選択された前記第１要素との間の対応を規則として記憶する記憶手段からなることを特徴とする記録媒体。
【請求項５０】
前記第１構造記述がＩＳＯ／ＩＥＣ９０７０公開識別子フォーマットを含み、前記第２構造記述がオペレーティングシステムのファイル名フォーマットを含み、かつ、前記要素表示手段が、ＩＳＯ／ＩＥＣ９０７０公開識別子フォーマットの要素を含む前記変換対象要素を表示する手段からなり、
かつ
前記リスト表示手段が、オペレーティングシステムのファイル名フォーマットの候補要素のリストを含む前記候補要素のリストを表示する手段からなることを特徴とする請求項４９記載の記録媒体。
【請求項５１】
前記第１構造記述が第１のデータベース変数名フォーマットを含み、前記第２構造記述が第２のデータベース変数名フォーマットを含み、かつ、前記要素表示手段が、前記第１データベース変数名フォーマットの要素を含む前記変換対象要素を表示する手段からなり、かつ
前記リスト表示手段が、前記第２データベース変数名フォーマットの候補要素のリストを含む前記候補要素のリストを表示する手段からなることを特徴とする請求項４９記載の記録媒体。
【請求項５２】
前記グラフィカルユーザインターフェース装置が、
前記記憶された規則を取得する手段、
前記第１構造記述の前記変換対象要素を表示する手段、
前記第２構造記述の前記選択された第１要素を表示し、前記第１構造記述の前記変換対象要素と前記第２構造記述の前記候補要素より選択された前記第１要素との間の対応を、前記第１構造記述の要素の前記第２構造記述への変換として定義する手段、
前記第２構造記述の候補要素の前記リストを表示する手段、
前記第２構造記述の前記候補要素より選択した第２の要素をユーザより入力し、前記第１構造記述の前記変換対象要素と前記第２構造記述の前記候補要素より選択された前記第２要素との間の対応を、前記第１構造記述の要素の前記第２構造記述への変換として定義する手段、及び
前記第１構造記述の前記変換対象要素と前記第２構造記述の前記候補要素より選択された前記第２要素との間の対応を規則として記憶する手段をさらに含むことを特徴とする請求項４９記載の記録媒体。
【請求項５３】
前記グラフィカルユーザインターフェース装置が、
表示中の前記選択された第１要素をクリアする要求をユーザが入力するためのアイコンを表示する手段、
表示中の前記選択された第１要素をクリアする要求をユーザが入力した時に、表示中の前記選択された第１要素をクリアする要求を入力する手段、及び
表示中の前記選択された第１要素をクリアする要求をユーザが入力した時に、表示中の前記選択された第１要素をクリアする手段をさらに含むことを特徴とする請求項４９記載の記録媒体。
【請求項５４】
前記第１構造記述が第１のマークアップ言語を含み、前記第２構造記述が第２のマークアップ言語を含み、かつ、前記要素表示手段が、前記第１マークアップ言語の要素を含む前記変換対象要素を表示する手段からなり、かつ
前記リスト表示手段が、前記第２マークアップ言語の候補要素のリストを含む前記候補要素のリストを表示する手段からなることを特徴とする請求項４９記載の記録媒体。
【請求項５５】
前記第１マークアップ言語がＳＧＭＬを含み、前記第２マークアップ言語がＨＴＭＬを含み、かつ、前記要素表示手段が、ＳＧＭＬの要素を含む前記変換対象要素を表示する手段からなり、かつ
前記リスト表示手段が、ＨＴＭＬの候補要素のリストを含む前記候補要素のリストを表示する手段からなることを特徴とする請求項５４記載の記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オブジェクト指向フレームワークにより構造化情報を別の構造化情報へマッピングするためのユーザインターフェース技術に関する。本発明は特に、あるマークアップ言語フォーマット、データベース情報フォーマット、ＩＳＯ／ＩＥＣ９０７０ネーミングフォーマット、ＵＮＩＸファイル名フォーマット、又はＤＯＳファイル名フォーマットでエンコードされた文書を処理し、その文書を、オブジェクト指向フレームワークにより、別のマークアップ言語フォーマット、データベース情報フォーマット、ＩＳＯ／ＩＥＣ９０７０ネーミングフォーマット、ＵＮＩＸファイル名フォーマット、又はＤＯＳファィル名フォーマットへ変換するためのユーザインターフェース技術に関する。より詳細には、本発明は、オブジェクト指向フレームワークにより変換のためのマッピングをユーザが対話的に定めるためのユーザインターフェースを提供する方法及び装置に関する。
【背景技術】
【０００２】
標準一般化マークアップ言語（ＳＧＭＬ）は、コンテントと索引情報及びリンクされた情報を含む、プラットフォーム非依存かつアプリケーション非依存の文書を提供するための手段として、国際標準化機構（ＩＳＯ）により採用された情報管理規格（ＩＳＯ  ８８７９：１９８６）である。ＳＧＭＬは、ユーザが文書の構造を定義するための文法の如き機構と、個々の文書内部の構造を指示するタグを提供する。ＳＧＭＬに関する詳細な解説は、Goldfarb，C．F.，The  SGML  Handbook，Oxford  University  Press，Oxford，1990、及び、McGrath，S.，Parseme.1st：SGML  for  Software  Developers，Prentice  Hall  PTR，New  Jersey，1998に記載されており、これら文献をここに援用する。
【０００３】
ハイパーテキスト・マークアップ言語（ＨＴＭＬ）はＳＧＭＬの一つのアプリケーションであり、タグを用いて文書中のテキストやグラフィックなどの要素を区切ることにより、ウェブ・ブラウザに、それら要素の表示方法を指示し、また、キーの押下やマウスのクリックによってリンクを起動させるようなユーザの操作に対する応答方法を指示する。ＨＴＭＬはワールドワイドウェブ上の文書に使われている。インターネット・エンジニアリング・タスクフォース（ＩＥＴＦ）によって定められたＨＴＭＬ
２．０は、１９５５年時点の全てのウェブ・ブラウザに共通したＨＴＭＬの機能を含んでいて、これが最初にワールドワイドウェブに広く利用されたＨＴＭＬのバージョンであった。今後のＨＴＭＬの開発は、ワールドワイドウェブ・コンソーシアム（Ｗ３Ｃ）によって進められることになっている。ＨＴＭＬ３．２は最近提案された規格であるが、１９９６年初めに広く実現された機能を取り入れている。ＳＧＭＬ及びＨＴＭＬの機能については、Bardley，N.，The  Concise  ＜SGML＞  Companion，Addison  Wesley  Longman，New  York，1997に解説されており、ここに本文献を援用する。
【０００４】
オブジェクト指向プログラミング（ＯＯＰ）はプログラミングの一方法論であり、プログラムは独立したオブジェクトの集合とみなされ、これらオブジェクトはデータ構造及び他のオブジェクトとやりとりするルーチンの自己完備型集合である。Ｃ＋＋などの多くの高水準言語はクラスを宣言できる。クラスは、一般的に、プログラム実行時にコンストラクタ関数により生成又は例示化され、必要でなくなった時にデストラクタ関数により破棄されるオブジェクト又はオブジェクトのインスタンスのテンプレートもしくは詳細記述である。あるクラスの対話式参照は、コンストラクタ呼び出しの結果として、現に存在するオブジェクトを全て組み込む。クラスは、データ項目、構造体、メソッドからなる。データ項目は、従来のプログラミング技術における変数に対応する。構造体は、関連したデータ項目と他の構造体の集合に固有の名前をつけたものである。メソッドは、従来のプログラミング技術における関数とサブルーチンに対応する。
【０００５】
オブジェクト指向フレームワークは、アプリケーション構築を支援する再利用可能な基本設計構造であり、抽象クラスと具象クラスからなる。
【０００６】
特定のオブジェクト、データ項目及びメソッドをアクセスするために用いられるポインタは、コンピュータメモリの絶対アドレスのシステム対応値が入っているデータ項目である。ヌル・ポインタ又はゼロ・ポインタは、特定のポインタがヌル（空）項目又は存在しない項目を現在指していることを意味する、あるシステム値例えば０を割り当てられたポインタ変数又はリテラルである。参照と参照変数は、一般に、コンピュータメモリの絶対アドレスのシステム対応値が入っているデータ項目である。
【０００７】
文字列変数又は文字列リテラルは、特定アプリケーションの文字セットの文字列からなるデータ構造である。ヌル文字列、ゼロ文字列もしくは空文字列は、文字を全く含まない文字列のことである。
【０００８】
オブジェクト指向プログラミングの三つの主要な特徴は、継承と、カプセル化と、多態性である。継承によって、プログラマは様々なオブジェクトに適した特徴を持った総称的クラスを設定することができる。例えば、プログラマが、複数の直線を各頂点でペア接続してなる閉凸形のような特定の特徴を持つ「多角形」クラスを作れば、三角形、四辺形、五角形、六角形などの、「多角形」クラスのサブクラスを作ることができる。これらは全て、親の「多角形」クラスの共通特徴を持つが、生成されるオブジェクトに許容される辺の個数に関する制限が追加されている。また例えば、矩形や菱形などの、「四辺形」クラスのサブクラスを作成することもできる。「正方形」クラスは、「矩形」クラスの特徴を全て継承し、さらに全ての辺が等長とされる。「多角形」クラスのサブクラスにおいてのみ実際のオブジェクトが例示化されるという点で、「多角形」クラスは抽象クラスと考えられる。しかし、「多角形」クラスは、継承すべき非抽象的すなわち具象的なサブクラスの全てに固有の特定の性質を確定する。
【０００９】
カプセル化と多態性について言及したが、これらはオブジェクト指向システム関連の特許において周知である。Coad，P．and  Yourdon，E.，Object-Oriented  Analysis，Second  Edition，Prentice-Hall，Inc.，New  Jersey，1991、及び、Booch，G.，Object-Oriented  Analysis  and  Design  with  Application，Second  Edition，Addison  Wesley  Longman，Carifornia，1997に、ＯＯＰが分かりやすく述べられている。これら文献をここに援用する。
【００１０】
グラフィカルユーザインターフェース（ＧＵＩ）は、プログラム、ファイル、選択項目を、アイコン、メニュー、ダイアログボックスによって画面表示する環境である。アイコンは、画面表示装置又は他の出力装置で表示された画像で、ユーザが操作できるものである。アイコンは、利用可能な機能の視覚的な絵による説明として働き、コマンドを覚えたりキーボードで入力したりするといった面倒からユーザを解放することにより、ユーザフレンドリなインターフェースを提供する。メニューは、ユーザが希望する動作を行うために選択できる選択項目のリストである。ダイアログボックスは、ユーザの応答を求めるために画面表示装置その他の出力装置に表示される特殊なウィンドウ又は領域である。ＧＵＩでは、ユーザはマウスで指示してクリックしたりキーボードのキーを押したりして選択項目を選択し作動させることができる。以上の説明は、Compurer  Dictionary，Third  Edition，Microsoft  Press．Washington，1997に記載の定義によるものである。
【００１１】
ＩＳＯと国際電気標準会議（ＩＥＣ）は、世界標準化専用体系を定めている。ＩＳＯ／ＩＥＣ  ９０７０：１９９１（Ｅ）は、ＩＳＯ  ８８７９準拠の公開文書の所有者に対し固有の所有者プレフィクスを割り当てる場合に適用される国際規格である。この規格は、割り当てを行う手続きと登録所有者プレフィクスの作成方法を規定している。規格団体、その他機関による所有者プレフィクスの自己割り当ての手続きも指定されている。ＩＳＯ／ＩＥＣ  ９０７０：１９９１（Ｅ）をここに援用する。
【００１２】
ＵＮＩＸとＤＯＳは、周知のコンピュータ用オペレーティングシステムである。ＵＮＩＸもＤＯＳも、ルートディレクトリから下位ディレクトリを経由し、ディレクトリでないファイル名に至るパスを含むファイル名フォーマットをサポートしている。
【００１３】
データ・プロセッサによって、マークアップ言語でエンコードされた文書を自動的に別のフォーマットに変換する処理システムが知られている。例えば、Computing  Art社のソフトウェアＢａｌｉｓｅは、ＳＧＭＬによりエンコードされた文書を処理してユーザが見るための書式化出力に変換する。しかし、このソフトウェアでは、ユーザはＳＧＭタグの他フォーマットへのマッピングを対話的に定めることができない。
【発明の開示】
【発明が解決しようとする課題】
【００１４】
本発明の目的は、ある構造化情報フォーマットでエンコードされた情報を処理し、その情報を他の構造化情報フォーマットでエンコードされた情報へ変換するためのグラフィカルユーザインターフェースを提供し、その変換のためのマッピングをユーザが対話的に定義できるようにする新規な方法及び装置を提供することである。構造化情報フォーマットの例としては、マークアップ言語フォーマット、データベース情報フォーマット、ＩＳＯ／ＩＥＣ  ９０７０ネーミングフォーマット、ＵＮＩＸファィル名フォーマット、ＤＯＳファイル名フォーマットがある。
【００１５】
本発明のもう一つの目的は、標準一般化マークアップ言語（ＳＧＭＬ）文書のハイパーテキスト・マークアップ言語（ＨＴＭＬ）文書への変換を定義するためのグラフィカルユーザインターフェースを提供し、その変換のマッピングをユーザが対話的に定義できるようにする新規な方法と装置を提供することである。
【００１６】
本発明のもう一つの目的は、あるデータベース・フォーマットの情報の別のデータベース・フォーマットの情報への変換を定義するためのグラフィカルユーザインターフェースを提供し、その変換のためのマッピングをユーザが対話的に定義できるようにする新規な方法及び装置提供することである。
【００１７】
本発明のもう一つの目的は、ＩＳＯ／ＩＥＣ  ９０７０ネーミングフォーマットからＵＮＩＸファイル名フォーマットへの情報変換を定義するためのグラフィカルユーザインターフェースを提供し、その変換のためのマッピングをユーザが対話的に定義できるようにする新規な方法と装置を提供することである。
【００１８】
本発明のもう一つの目的は、ＩＳＯ／ＩＥＣ  ９０７０ネーミングフォーマットからＤＯＳファイル名フォーマットへの情報変換を定義するためのグラフィカルユーザインターフェースを提供し、その変換のためのマッピングをユーザが対話的に定義できるようにする新規な方法と装置を提供することである。
【課題を解決するための手段】
【００１９】
課題を解決するための手段について、理解を容易にするため、やや具体的に説明する。
【００２０】
本発明の一実施形態によれば、ある構造化情報フォーマット、例えば、あるマークアップ言語フォーマットやデータベース情報フォーマットでエンコードされた情報を処理して、その情報を他の構造化情報フォーマットへ、例えば、他のマークアップ言語フォーマットやデータベースフォーマットへ変換するためのグラフィカルユーザインターフェースを提供し、その変換のためのマッピングをユーザが対話的に定義できるようにする方法及び装置が提供される。
【００２１】
ここで、変換の代表例は、ＳＧＭＬ文書からＨＴＭＬ文書への変換である。本態様は、ＳＧＭＬ文書からＨＴＭＬ文書やその他の構造化フォーマット、例えばデータベース情報フォーマットへの変換を、ユーザが定義できるようにするためのツールとして開発された。このユーザ・ツールは、現在、オブジェクト指向プログラミング（ＯＯＰ）技術を使用しグラフィカルユーザインターフェース（ＧＵＩ）の形で実現されている。すなわち、分かりにくいＳＧＭＬフォーマットで書かれた文書を、文書及び情報が見やすくなり、かつ、その移植性が増大する別の構造化フォーマットへ変換するためのグラフィックツールをユーザに提供するように設計される。このユーザインターフェースは、デフォルトのマッピングの実行又は条件付きマッピングの実行をユーザが選択できるようにする。このユーザインターフェースは、入力ＳＧＭＬ文書型定義（ＤＴＤ）又は現に存在しているマップをユーザが選択できるようにする。このユーザインターフェースは、入力を表示し、ユーザがその入力の個々のソースコンポーネントを選択できるようにする。このユーザインターフェースは、ユーザに対し、各ソース・コンポーネントの変換の選択肢、例えば、あるソースコンポーネントのターゲット・ヌル値へのマッピング、あるソースコンポーネントのそれ自体へのマッピング、あるソースコンポーネントの単一のターゲットコンポーネントへのマッピング、ある単一のソースコンポーネントの複数のターゲットコンポーネントへのマッピングなどを提供する。ユーザが条件付きマッピングを選択した場合、このユーザインターフェースによりユーザにさらに対話入力させることによって、以前に参照された要素に関する履歴のような特殊ケースが調べられ処理される。
【００２２】
また、このユーザインターフェースは、ターゲットコンポーネントに対する属性値割り当ての選択肢をユーザに提供する。その選択肢は例えば、ソースコンポーネントより得られる属性値、システム属性値、無値、このユーザインターフェースによりユーザから対話入力される入力される属性値である。
【００２３】
このユーザインターフェースは、変換の選択肢と、ターゲットコンポーネントに対する属性値割り当ての選択肢を、ユーザに対話的に選択させる。そして、選択された選択肢が処理され、ソースコンポーネントのための変換規則が生成される。対話入力を終了し変換マップを生成させるコマンドをユーザが入力するまで、対話によるユーザ入力を受け取り、これをマップクリエイターにより処理してユーザが希望するコンポーネント・マッピング値を色々に変更する。変換規則はマップクリエイターによって処理され、変換マップが生成される。ユーザにより対話的に指定された既存のマップを利用し、ターゲット出力ファイルへ変換する入力ソースファイルを選択するためのユーザ入力を受け取る。そして、このユーザ入力が処理され、次に、要求された入力ファイルとマップが処理されて、この入力ファイルが要求された出力ファイルフォーマットに変換される。そして、この生成された出力ファイルはユーザの指定先へ送られる。
【発明の効果】
【００２４】
以上の説明から明らかなように、本発明によれば、あるマークアップ言語フォーマット、データベース情報フォーマット、ＩＳＯ／ＩＥＣ  ９０７０ネーミングフォーマット、ＵＮＩＸファィル名フォーマット、ＤＯＳファイル名フォーマットなどの構造化情報フォーマットでエンコードされた情報を、その他のマークアップ言語フォーマット、データベース情報フォーマット、ＩＳＯ／ＩＥＣ  ９０７０ネーミングフォーマット、ＵＮＩＸファィル名フォーマット、ＤＯＳファイル名フォーマットなどの構造化情報フォーマットへ変換するためのマッピングをユーザが対話的に定義でき、そのマッピングの対話定義を容易に実行するためのグラフィカルユーザインターフェースを提供する方法及び装置を実現できるという効果を得られる。
【発明を実施するための最良の形態】
【００２５】
以下、図面を参照して、本発明の実施の形態について説明する。なお、複数の図面を通じて同じ参照数字は同一部分又は対応部分を示す。
【００２６】
図１に、標準一般化マークアップ言語（ＳＧＭＬ）文書型定義（ＤＴＤ）の例を示す。図１乃至図４は、ＳＧＭＬからＨＴＭＬへのマッピング及び変換の入力と出力のサンプルを説明するために提示したものである。変換中に遂行される出力生成機能については、図８乃至図１１及び図３０乃至３８のオブジェクト・メッセージ線図に関連して後に詳述する。
【００２７】
図１乃至図４、図４８乃至図５２は、ＳＧＭＬ  ＤＴＤ、ＳＧＭＬ文書、マップ、及び、同マップを使用して同ＳＧＭＬ文書を変換することにより生成されるＨＴＭＬ文書の例を示す。図６及び図７は、図４８のＳＧＭＬ  ＤＴＤのツリー構造の例と、図４９のマップを使用して同ＳＧＭＬ  ＤＴＤを変換して得られるＨＴＭＬ構造を示す。図１乃至図４、図４８乃至図５２、図６及び図７は、ＳＧＭＬ  ＤＴＤからＨＴＭＬ  ＤＴＤへのマッピングを例示するものである。ＤＴＤからＤＴＤへのマッピングの問題は、それらＤＴＤに基づいたＳＧＭＬインスタンスからＨＴＭＬインスタンスへのデフォルトのマッピングである。ＳＧＭＬタグは０個又はそれ以上のＨＴＭＬタグにマッピングされるが、このマッピングの際にＨＴＭＬ属性のソースを指定する必要がある。この問題のより簡潔な数学的表現を以下に示す。
【００２８】
ＳＳがＳＧＭＬ  ＤＴＤによって生成される空間であると仮定し、ＳＳ＝｛Ｓi｜ｉ＝０，．．．，ｍ｝、Ｓi＝＜タグ名i，属性集合i＞、属性集合i＝｛タグ名iの属性j｜ｊ＝０，．．．，ｎi｝＋Φ  とする。同様に、ＨＨがＷ３Ｃ（ワールドワイドウェブ・コンソーシアム）指定のＨＴＭＬ  ＤＴＤにより生成される空間であると仮定する。すなわち、ＨＨ＝｛Ｈi｜ｉ＝０，．．．，ｋ｝、ただし、Ｈiは上記Ｓiに対応する。さらに、ＨＧがＨＨにより生成される、ＨＨの番号付き要素の集合からなる空間であると仮定する。すなわち、ＨＧ＝｛ｎｕｌｌl，＜Ｈ0＞，＜Ｈ1＞，．．．，＜Ｈ0,Ｈ1＞，＜Ｈ0,Ｈ2＞，．．．，＜Ｈ1,Ｈ0＞，．．．｝。マッピングすべきリーガルなＨＴＭＬタグのシーケンスは、ＨＧ中に出現するであろう。この場合、ＳＧＭＬタグからＨＴＭＬタグへのマッピングは、関数Ｆ：ＳＳ→ＨＧ＋｛割り当て無し｝と等価である。ここで、｛  ｝は集合を意味し、＜．．．＞は順序集合を意味し、＋は和集合を意味する。
【００２９】
ＨＧＧがＳＳ，Ｆ（ＳＳ），ＨＨから生成される集合であると仮定する。このＨＧＧは、三つ組又はヌル（空）の順序集合からなっている。三つ組は、Ｓi，Ｆ（Ｓi）及び＜ＨＴＭＬタグ名，属性＞からなる。ここで、ＨＴＭＬタグ名はＦ（Ｓi）中のＨjの一つに属する。Ｈ0が属性1を持ち、Ｈ6が属性0を持ち、Ｓ0とＳ1がそれぞれくＨ0＞と＜Ｈ3,Ｈ6＞にマッピングされると仮定する。そうすると、ＨＧＧ＝｛ｎｕｌｌ，＜Ｓ0，＜Ｈ0＞，＜Ｈ0タグ名，属性0＞＞，＜Ｓ0，＜Ｈ0＞，＜Ｈ0タグ名，属性1＞＞，．．．，＜Ｓ1，＜Ｈ3，Ｈ6＞，＜Ｓ1，＜Ｈ3，Ｈ6＞，＜Ｈ6タグ名，属性0＞＞，．．．｝である。また、Ｓａｔｒが、ＨＴＭＬ属性値のソースであると仮定する。そうすると、Ｓａｔｒ＝ＡＳ＋ＡＣ＋｛ユーザ入力｝＋Ｎｕｌｌである。ただし、ＡＳはタグ名と一つの属性名の順序対の集合であり、ＡＣは文字データのコンテントを持つタグ名の集合である。この場合、属性ソースの識別はＨＧＧからＳａｔｒへのマッピング関数Ｇであり、Ｇ：ＨＧＧ→Ｓａｔｒと表される。
【００３０】
Goldfarb，C．F.，The  SGML  Handbook，Oxford  University  Press，Oxford，1990、及び、McGrath，S.，Parseme．1st：SGML  for  Software  Developers，Prentice  Hall  PTR，New  Jersey，1998に、ＳＧＭＬが詳細に解説されている。これら文献をここに援用する。
【００３１】
図１に例示したＳＧＭＬ  ＤＴＤとともに図３に例示したＳＧＭＬ文書と、図２に例示したマッピングが、図４のＨＴＭＬ文書を生成するための変換プロセスに用いられる。図１のＳＧＭＬ  ＤＴＤと図３のＳＧＭＬ文書が一緒に解析されて、図３のＳＧＭＬ文書の構造コンポーネントが作られる。そして、これらのコンポーネントを図２のマップとともに利用し、図３のＳＧＭＬ文書を図４のＨＴＭＬ文書へ変換する。この解析と変換の詳細については、図８乃至１１と図３０図３８に関連して後述する。
【００３２】
図１において、行２２はＳＧＭＬ  ＤＴＤファイルの名前を含んでいるコメント行である。行２４は一つの要素の宣言であり、要素ｔ１，ｔ２，ｔ３，ｔ４からなるモデルグループを含んでいる。行２４の「？」は、要素がオプションであることを示す。行２４の「＊」は、モデルグループが有効な要素ｔに何回出現してもよく、また存在しなくてもよいことを示している。その例として、図３のＳＧＭＬ文書では、行６４−７０に、有効な要素ｔである要素ｔ１，ｔ２，ｔ３，ｔ４がまとまって含まれている。
【００３３】
図１の行２６はＣＤＡＴＡというコンテント型を持つ要素ｔ１の宣言である。このＣＤＡＴＡ型は、その要素が一般文字からなる値をとり得ることを意味する。その例として、図３のＳＧＭＬ文書では、一般文字のストリング「１．Ｈｉ  Ｌａｒｒｙ」をコンテントとして持つ要素ｔ１が行６４に含まれている。通常、要素のコンテントは、その前にある開始タグと、その後にある終了タグとによって区切られる。開始タグは、一般に、「＜」で始まり、要素名と、属性情報などのオプションの要素情報が続き、「＞」で終わる文字列からなる。また終了タグは「＜／」で始まり、要素名が続き、「＞」終わる文字列からなる。ＳＧＭＬでは、区切り文字の「＜」と「＞」は、定義すれば別の文字で置き換えることができる。
【００３４】
図１の行２８は、要素ｔ１の属性リストの宣言である。属性とは、要素の一つの特性であり、要素のインスタンスの違い応じて様々な値をとる。例えば、「人」という要素は、一般に、「名前」、「年齢」、「髪色」という属性からなる属性リストを持つ。ある１番目の人は名前＝「Joe Smith」、年齢＝「２７」、髪色＝「褐色」という属性を持ち、また、２番目の人は名前＝「Sally  Jones」、年齢＝「４５」、髪色＝「赤」という属性を持つ。２番目の人が希望するならば、その髪色属性を、別の値を割り当てることによって容易に髪色＝「ブロンド」へ変更できる。図１の例では、行２８の属性リストにＣＤＡＴＡ型の「name」という属性が含まれている。「#REQUIRED」という文字列は、その属性の指定が必須であることを示す属性値である。その例として、図３のＳＧＭＬ文書における行６４の要素ｔ１は「hilarry」という一般文字のコンテント値が割り当てられている。
【００３５】
図１の行３０はＣＤＡＴＡ型の要素ｔ２の宣言である。行３２はＣＤＡＴＡ型の要素ｔ３の宣言である。行３４はＣＤＡＴＡ型の要素ｔ４の宣言である。
【００３６】
図２のＳＧＭＬからＨＴＭＬへのマッピングにおいて、行４２は、行２４の要素ｔを、ＨＴＭＬタグとテキストのストリング「＜html＞＜title＞Title＜／title＞」へマッピングする規則を示している。行４４は、行２６の要素ｔ１を、ＨＴＭＬタグのストリング「＜Ｈ３＞＜A  NAME="the  source  is  t1's  name"＞」へマッピングする規則を示している。行４４の二重引用符で囲まれた文は規則であって、属性値ではない。行４６は、行３０の要素ｔ２をＨＴＭＬタグ「＜Ｐ＞」へマッピングする規則を示している。行４８は、行３２の要素ｔ３をＨＴＭＬタグ「＜Ｐ＞」へマッピングする規則を示している。行５０は、行３４の要素ｔ４をＨＴＭＬタグのストリング「＜Ｐ＞＜A  HREF="#the  source  is  t1's  name"＞へマッピングする規則を示している。行５０の二重引用符で囲まれた文は規則であって属性値ではない。
【００３７】
図３のＳＧＭＬ文書の例を参照する。行６０は、ＳＧＭＬ文書の文書型が「ｔ」であり、そのＤＴＤがシステムファイル"sample.dtd"内にあることを示している。行６２は文書開始タグ「＜ｔ＞」を含んでいるが、これは行６２の後続行が行２４の要素ｔについて図１のＤＴＤに定義されたフォーマットに従うものと仮定されていることを示す。行６４，６６，６８，７０は、図３のＳＧＭＬ文書の例について定義された、行２４に示された要素ｔの構成パーツの例である。行７２には文書終了タグ「＜／ｔ＞」があり、文書の終わりを表明している。
【００３８】
図４のＨＴＭＬ文書は、図１のＳＧＭＬ  ＤＴＤファイルと、図２のマッピングと、図３のＳＧＭＬ文書を使用した変換処理の出力である。図４の行８２，８４，８６，８８，９０，９２，９４は図１乃至図３の各図に含まれている情報から生成されるものである。
【００３９】
ここで、図４に示した出力文書を生成するための、図１乃至図３に例示した入力ファイルの処理について説明する。まず、図３のＳＧＭＬ文書の行６０が解析されることにより、入力ＳＧＭＬ文書の文書型と、ＳＧＭＬ
ＤＴＤが格納されているシステムファイルの名前を確認する。その結果、トランスフォーマが、図４の行８０に示されたＤＯＣＫＴＹＰＥ  ＨＴＭＬタグを出力し、また、当該ＳＧＭＬ文書のＤＴＤをアクセスするため参照システムファイルを開く。そのＤＴＤが当該ＳＧＭＬ文書に符合するか確認するためのチェツクが行われる。次に、行６２のＳＧＭＬタグが解析され、現在のＳＧＭＬタグが「＜ｔ＞」になる。図２のマップが参照されることにより、現在のＳＧＭＬタグが当該ＳＧＭＬ文書の開始タグであることが確認され、ＨＴＭＬタグのストリング「＜html＞＜title＞Title＜／title＞」にマッピングされる。ＨＴＭＬタグ「＜html＞」が現在のＳＧＭＬタグ「＜ｔ＞」のために保存され、そして図４の行８２に出力される。ＨＴＭＬタグのサブストリング「＜title＞Title＜／title＞」が図４の行８４
に出力される。
【００４０】
次に、図３の行６４のストリング中の最初のＳＧＭＬタグが取得される。現在のＳＧＭＬタグは「＜ｔ１＞」になる。トランスフォーマは、現在のＳＧＭＬタグに対する現在の属性名と属性値を取得する。すなわち、「name」という名前で「hilarry」という値を持つ属性を取得する。図１のＤＴＤが調べられ、そのＳＧＭＬタグが図１の行２６に定義されたＳＧＭＬ要素に対応し、それに対応した属性リストが図１の行２８に設定されていることが確認される。図２のマップの解析により、現在のＳＧＭＬタグの規則が行４４であると判断される。そして、「＜Ｈ３＞＜A
Name=＞の後にＳＧＭＬ要素ｔ１としてのname属性の現在の値（ここでは「hilarry」）を付けた、マッピング後のＨＴＭＬストリングが出力される。次に、タグを終わらせるため「＞」が出力される。ＨＴＭＬタグの「＜Ｈ３＞」と「＜Ａ＞」が現在のＳＧＭＬタグのために保存される。次に、パーサは、図４の行８６に出力されるテキストを認識する。そして、パーサはＳＧＭＬの終了タグ「＜／ｔ１＞」を認識し、この時点で、「＜ｔ１＞」のために現在保存されている全てのＨＴＭＬタグに対する終了タグが、保存順と逆順に図４のＨＴＭＬ文書の行８６に出力される。
【００４１】
次に、パーサは、図３の行６６からＳＧＭＬタグ「＜ｔ２＞」を認識する。トランスフォーマは、図２のマッピング規則行４６を利用して、図４の行８８に示されているＨＴＭＬタグ「＜Ｐ＞」を出力し、このＨＴＭＬタグを現在のＳＧＭＬタグ「＜ｔ２＞」のために保存する。次に、パーサは、図４の行８８に示されているようにＨＴＭＬファイルに出力されるテキストを認識する。次にパーサは、ＳＧＭＬ終了タグ「＜／ｔ２＞」をそのテキストを終了させるものと認識し、この時点で、「＜ｔ２＞」のために現在保存されているＨＴＭＬタグに対する終了タグ「＜／Ｐ＞」が図４のＨＴＭＬ文書の行８８に出力される。
【００４２】
次に、パーサは図３の行６８からＳＧＭＬタグ「＜ｔ３＞」を認識する。トランスフォーマは、図２の行４８のマッピング規則を利用して、図４の行９０に示されているＨＴＭＬタグ「＜Ｐ＞」を出力し、そのタグを現在のＳＧＭＬタグ「＜ｔ３＞」のために保存する。次にパーサは、図４の行９０に示されているようにＨＴＭＬファイルに出力されるテキストを認識する。次にパーサは、ＳＧＭＬ終了タグ「＜／ｔ３＞」をテキストを終了させるものと認識し、その時点で、ＳＧＭＬタグ「＜ｔ３＞」のために現在保存されているＨＴＭＬタグに対する終了タグ「＜／Ｐ＞」が、図４のＨＴＭＬ文書の行９０に出力される。
【００４３】
次に、図３の行７０のストリング中の最初のＳＧＭＬタグが取得される。したがって、現在のＳＧＭＬタグは「＜ｔ４＞」となる。トランスフォーマは、ＳＧＭＬタグに対する現在の属性名と属性値を取得する。すなわち、「name」という名前で「hilarry」という値を持つ属性を取得する。図２のマップの解析により、現在のＳＧＭＬタグの規則が行５０であると判断される。そして、「＜Ｐ＞＜A
HREF=”＃」の後にname属性の現在の値（ここでは「hilarry」）を付けた、マッピング後のＨＴＭＬストリングが図４のＨＴＭＬ文書の行９２に出力される。次に、タグを終わらせるため「＞」が出力される。ＨＴＭＬタグの「＜Ｐ＞」と「＜Ａ＞」が現在のＳＧＭＬタグのために保存される。次に、パーサは、図４の行９２に出力されるテキストを認識する。そして、パーサはテキストを終了させるＳＧＭＬ終了タグ「＜／ｔ４＞」を認識し、この時点で、「＜ｔ４＞」のために現在保存されている全てのＨＴＭＬタグに対する終了タグが保存順と逆の順番で図４のＨＴＭＬ文書の行９２に出力される。
【００４４】
次に、パーサは、図３の行７２のタグ「＜／ｔ＞」を認識することによりＳＧＭＬ文書の終わりだと判断する。このタグは、ＳＧＭＬタグ「＜ｔ＞」に対する終了タグであると解釈される。そして、ＳＧＭＬタグ「＜ｔ＞」のために保存されているＨＴＭＬタグが取得され、「＜ｔ＞」のために保存された唯一のタグであるＨＴＭＬタグ「＜html＞」に対する終了タグが、図４の行９４に示すようにＨＴＭＬ文書に出力される。これで現在の文書処理が終結する。
【００４５】
図５は図４のＨＴＭＬ出力文書を開くことにより得られる出力１００を示すが、これはコンピュータ画面上のウェブブラウザの「見えているものがそのままそっくり得られる」（ＷＹＳＩＷＹＧ）出力の例である。このような出力は、一般に、インターネットのワールドワイドウェブのユーザに好まれる形式である。ユーザは、ウェブブラウザ・プログラムを利用して、インターネット上のサーバにＨＴＭＬファイルやその他の形式のファイルを要求する。ブラウザは、要求されたＨＴＭＬファイルをダウンロードし、そのファイルを開いてユーザのコンピュータ画面に書式を整えたテキストと画像を表示させる。ブラウザは、ファイルをダウンロードすることができるだけでなく、ブラウザが動作しているコンピュータの内部又は同コンピュータに接続されたローカルエリアネットワークに格納されているＨＴＭＬファイルを表示可能である。
【００４６】
図５において、「Ｔｉｔｌｅ」行は、ブラウザが図４の行８４を利用して生成させる。ブラウザによって、一般的にコンピュータ画面の上部にあるタイトルバーに表示されるタイトルのテキストを区切るための開始タグ「＜title＞」と終了タグ「＜／title＞」が、行８４に含まれている。図４の行８６にある「＜Ｈ３＞」は、ウェブブラウザに、タグ以外のテキストを通常のテキスト出力よりも大きく太い形で表示するよう指示する。ＨＴＭＬ開始タグ「＜Ｈ３＞」の後ろにある唯一のテキストは「１．Ｈｉ  Ｌａｒｒｙ」であり、これはＨＴＭＬ終了タグ「＜／Ｈ３＞」の前にある唯一のテキストであるから、このテキストはコンピュータ画面上に周囲のテキストに比べ大きく肉太に表示される。行８８に含まれる開始タグ「＜Ｐ＞」は、ウェブブラウザに、この開始タグと対応した終了タグによって区切られたタグ以外のテキストを新しい段落に表示するように指示する。新しい段落は、改行してから出力を始める。行８８にある終了タグ「＜／Ｐ＞」は、それが現在の段落の終わりであることと、当該タグの後のタグ以外のテキストを改行してから表示させることをウェブブラウザに指示する。
【００４７】
図４の行８６にある「＜Ａ  ｎａｍｅ＝」を含むタグはアンカータグである。アンカータグは、テキスト中に位置マーカを設定し、マウスでクリックすることでその位置マーカを含むテキストへジャンプさせることできる強調表示のテキストを設定するために用いられる。このタグの場合、次の「＞」から終了タグ「＜／Ａ＞」が出現するまでの間のタグ以外のテキストによって、ブラウザに対する位置マーカが設定される。行９２に「Ａ  ＨＲＥＦ＝」を含む別種のアンカータグがある。行９２中のアンカータグの「＞」と対応した終了タグ「＜／Ａ＞」の間にあるテキストは、図５の画面上では下線付きテキスト「（Back  to  the  Hi  Larry  greetin.）」として表示される。このテキストは、通常、画面上の周囲のテキストとは異なった色で表示される。この下線付きテキスト上でマウスをクリックすると、行８６の参照アンカータグによって指定されたテキストが、その近傍のテキストに囲まれた状態でユーザに見えるように引き寄せられる。
【００４８】
図６と図７は、階層的なＳＧＭＬ文書の構造から、それよりも「扁平な」ＨＴＭＬ文書のツリー構造への変換を説明するものである。図６は階層的なＳＧＭＬ文書のツリー構造を示している。一方、図７は、図６に線図として表現したＳＧＭＬ文書に対応したＨＴＭＬ文書の「より扁平な」ツリー構造を示している。
【００４９】
図６と図７のツリーは、図４８乃至図５２に示した文書から導き出されたものである。図４８は、ＳＧＭＬ  ＤＴＤの例を示す。図６のツリー構造は図４８のＳＧＭＬ  ＤＴＤから導き出される。図６のツリーはルートノード「ｔｅｓｔ」１１４があり、これは子ノード「ｆｒｏｎｔ」１１２と「ｓｅｃｔｉｏｎ」１１４を持っている。ノード「ｆｒｏｎｔ」１１２は子ノード「ｔｉｔｌｅ」１１６、「ａｕｔｈｏｒ」１１８、「ｋｅｙｗｏｒｄｓ」１２０を持っている。ノード「ｓｅｃｔｉｏｎ」１１４は子ノード「ｎｕｍｂｅｒ」１２２、「ｔｉｔｌｅ」１２４、「ｐａｒａ」１２６、「ｓｕｂｓｅｃ  １」１２８を有する。ノード「ａｕｔｈｏｒ」１１８は、子ノード「ｆｎａｍｅ」１３０、「ｓｕｒｎａｍｅ」１３２、「ｔｉｔｌｅ」１３４を持っている。ノード「ｓｕｂｓｅｃ  １」は子ノード「ｎｕｍｂｅｒ」１３６、「ｔｉｔｌｅ」１３８、「ｐａｒａ」１４０、「ｓｕｂｓｅｃ  ２」１４２を持つ。ノード「ｓｕｃｓｅｃ  ２」１４２は子ノード｛ｎｕｍｂｅｒ｝１４４、「ｔｉｔｌｅ」１４６、「ｐａｒａ」１４８を持つ。図４８のＳＧＭＬ  ＤＴＤに対応した図６のツリー構造は、５つの階層と２０個のノードを有する。
【００５０】
図７のツリー構造は、図４８のＳＧＭＬ ＤＴＤと図４９に例示したマッピングを使用して得られる、一般化されたＨＴＭＬ文書に対応するものである。図５０及び図５１はＳＧＭＬ文書の例であり、これを図４９のマッピングによって処理することにより図５２に例示したＨＴＭＬ文書が得られる。図７のツリー構造のルートノード「ｈｔｍｌ」は２つの子ノード「ｈｅａｄ」１５２、「ｂｏｄｙ」１５４を持つ。ノード「ｈｅａｄ」１５２は子ノード「ｔｉｔｌｅ」１５６を持つ。ノード「ｂｏｄｙ」１５４は子ノード「ｈ３」１５８、「ｐ」１６０を持つ。ノード「ｐ」１６０には子ノード「ｓｔｒｏｎｇ」１６２がある。図６のツリー構造が５階層、２０ノードであるのに対し、結果として得られるＨＴＭＬ文書に対応したツリー構造は４階層、７ノードしか持たない。
【００５１】
図８は、ＳＧＭＬからＨＴＭＬへのマッピング及び変換のための主要モジュールの全体像を示している。マップ（Ｍａｐ）モジュール１８４は、パーサ（Ｐａｒｓｅｒ）１８２及びＧＵＩモジュール１８０と相互に作用しあってＳＧＭＬ文書からＨＴＭＬ文書へのマッピングを実際に行う。トランスフォーマ（Ｔｒａｎｓｆｏｒｍｅｒ）１８６は、マップモジュール１８４、パーサ１８２及びＧＵＩモジュール１８０と相互に作用しあって、そのＳＧＭＬ文書をＨＴＭＬ文書へ変換する。サービス（Ｓｅｒｖｉｃｅ）モジュール１８８は、ファイル操作などのユーティリティ処理のために全モジュールが利用可能なユーティリティ・オブジェクトから構成されている。ＧＵＩモジュール１８０は、ユーザとシステム間の対話を処理する。パーサ１８２は、入力文書を解析し、システムの他モジュールへ渡すための認識可能なコンポーネント・パーツに入力文書を分解する。例えば、図３のＳＧＭＬ文書を処理する際に、パーサ１８２は、ＤＴＤを認識して入力ＳＧＭＬ文書を解析し、文書処理のためのシステムの他モジュールへ渡すことが可能な記号テーブルを生成する。パーサ１８２は、図３の行６０を「ＤＯＣＴＹＰＥ」タグであると認識し、図１に示されたシステムファイル「ｓａｍｐｌｅ．ｄｔｄ」によって指定されたＤＴＤを処理して記号テーブルを生成する。次に、パーサ１８２は、図３の行６２のコンテントを要素ｔの開始タグと認識し、そのタグとそれ以外のタグ情報をトランスフォーマ１８６へ転送することになろう。トランスフォーマ１８６は、情報及びデータが必要になった時に、その転送をマップモジュール１８４、パーサ１８２及びサービスモジュール１８８に要求しながら、ＳＧＭＬからＨＴＭＬへのマッピング及び変換の処理を制御する。
【００５２】
図９はＳＧＭＬからＨＴＭＬへのマッピング及び変換の過程におけるデータの流れを表すデータフロー図である。ＳＧＭＬ応用ＤＴＤ２００とＨＴＭＬ３．２ＤＴＤ２０４がＳＧＭＬパーサ２０２に入力される。このＳＧＭＬパーサ２０２は、図８のパーサ１８２に相当する。ＳＧＭＬパーサ２０２からＳＧＭＬ応用記号テーブル２２２とＨＴＭＬ３．２記号テーブル２０６が出力され、これらは対話ユーザ２１０の入力とともにマップエディタ２０８の入力として利用される。マップエディタ２０８は図８のＧＵＩモジュール１８０に内蔵されている。マップエディタ２０８はマップ２１２を出力する。ＳＧＭＬ応用記号テーブル２２２及びＳＧＭＬ応用文書インスタンス２１８が一緒にＳＧＭＬパーサ２０２に入力され、ＳＧＭＬパーサ２０２より出力が出されるが、この出力はマップ２１２とともにトランスフォーマ１８６の入力として用いられる。トランスフォーマ１８６は図８のトランスフォーマ１８６に相当する。そして、トランスフォーマ１８６はＨＴＭＬ文書インスタンス２１６を出力する。ＳＧＭＬ応用ＤＴＤ２００とＳＧＭＬ応用文書インスタンス２１８は図１と図３にそれぞれ例示されている。ＨＴＭＬ文書インスタンス２１６は図４に例示されている。マップ２１２は図２に例示されている。
【００５３】
図１０は、ある構造化フォーマットの情報の別の構造化フォーマットの情報への一般化したマッピング及び変換の過程においてデータが流れる経路を例示する、より一般化したデータフロー図である。システムＡ構造記述２３０が、システムＢ構造記述２３２及び対話ユーザ２１０の入力とともにマップエディタ２０８に入力され、マップ２１２が出力される。そして、トランスフォーマ１８６で、このマップ２１２とシステムＡインスタンス２３８を利用してシステムＢインスタンス２４４を出力する。
【００５４】
図１１は、ＳＧＭＬからＨＴＭＬへのマッピング及び変換の過程においてデータが流れる経路を例示する、より一般化したデータフロー図である。ＳＧＭＬ  ＤＴＤ２００がＳＧＭＬ文書２１８及びＨＴＭＬ  ＤＴＤ２６０とともにマップエディタ２０８に入力され、マップエディタ２０８がマップ２１２を出力する。そして、トランスフォーマ１８６がマップ２１２とＳＧＭＬ文書２１８を利用してＨＴＭＬ文書２１６を出力する。ＨＴＭＬ文書２１６は図９のＨＴＭＬ文書インスタンス２１６に相当する。そして、ＨＴＭＬ文書２１６はブラウザ２６２に入力され、ユーザに見えるようになる。
【００５５】
ＳＧＭＬ  ＤＴＤ２００がＳＧＭＬエディタ２５６に入力されることにより、ＳＧＭＬ文書２１８への出力が得られる。データベース設計２５０がＳＧＭＬ  ＤＴＤ２００及びＳＧＭＬ文書２１８とともにマップエディタ２０８に入力されることにより、マップ２１２及びデータベース２５４への出力が得られる。マップ２１２及びＳＧＭＬ文書２１８がトランスフォーマ１８６に入力され、トランスフォーマ１８６より出される出力は、マップエディタ２０８の出力とともにデータベース２５４へ入力される。マップ２１２は図９のマップ２１２に相当する。ＳＧＭＬ文書２１８は図９のＳＧＭＬ応用文書インスタンス２１８に相当する。ＳＧＭＬ
ＤＴＤ２００は図９のＳＧＭＬ応用ＤＴＤ２００に相当する。トランスフォーマ１８６は図９のトランスフォーマ１８６に相当する。マップエディタ２０８は図９のマップエディタ２０８に相当する。矢線は、様々なユーザ要求に対する文書及びデータファイルの様々な経路を示している。
【００５６】
図１２は、ファイルに格納可能なＤＴＰマップクラス・オブジェクトの階層図を示す。本発明はオブジェクト指向技術によって実現された。しかし、本発明を実現するために、どのようなプログラミング技術及び／又はハードウェアを利用してもよい。以下の説明では、クラスはオブジェクトの構造と振る舞いを記述したものであり、これに対し、オブジェクトはクラスによって記述された項目のインスタンスである。オブジェクトは、一般に、オブジェクト及びメッセージの受け渡しによって相互に通信する。構造に関しては、オブジェクトは、変数やメソッドばかりでなく他のオブジェクトや構造体もコンポーネントとして含む。
【００５７】
図１２の水平行を左から右へ向かって説明すれば、開始デリミタと終了デリミタとによってファイル内の各オブジェクトを区切る。リスト開始デリミタとリスト終了デリミタとで左から右へリストを区切る。ＤＴＤマップ・オブジェクトが存在する場合には、１つ以上のＳＧＭＬタグ・オブジェクトが、ＳＧＭＬタグリスト開始デリミタ（SGML  Tag  List  Begin）３６３とＳＧＭＬタグリスト終了デリミタ（SGML  Tag  List  End）３６５の間に置かれる。
【００５８】
ファイルはヘッダ（Header）３６０で始まり、その後にＤＴＤマップ（DTD  Map  Begin）３６１が続く。ＤＴＤマップ３６１には、まずＤＴＤマップ開始デリミタ(DTD  Map  Begin)３６２があり、その次にＳＧＭＬタグリスト開始デリミタ(SGML  Tag  List  Begin)３６３が続き、その次に１つ以上のＳＧＭＬタグ(SGML  Tag)３６４＿１〜３６４＿ｎが続く。この連続した１つ以上のＳＧＭＬタグ(SGML  Tag)の後にＳＧＭＬタグリスト終了デリミタ(SGML  Tag  List  End)３６５が続き、その後にＤＴＤマップ終了デリミタ(DTD  Map  End)３６６がある。各ＳＧＭＬタグ３６４＿１〜３６４＿ｎは、ＳＧＭＬタグ開始デリミタ(SGML  Tag  Begin)３６７と、ＳＧＭＬタグ名(SGML  Tag  Name)３６８と、それに続くＳＧＭＬタグ空状態（SGML  Tag  Empty  State）３６９と、それに続くＳＧＭＬタグ割り当て型（SGML  Tag  Assignment  Type）３７０と、それに続くＨＴＭＬタグリスト（HTML
Tag List）３７１と、それに続くＳＧＭＬタグ終了デリミタ（SGML  Tag  End）３７２とからなる。
【００５９】
各ＨＴＭＬタグリスト３７１は、先頭に置かれたＨＴＭＬタグリスト開始デリミタ（HTML Tag  List  Begin）３７３と最後に置かれたＨＴＭＬタグリスト終了デリミタ（HTML  TagList  End）３７５によって区切られ、ＨＴＭＬタグリスト開始デリミタ３７３に続く１個以上のＨＴＭＬタグ(HTML  Tag)３７４＿１〜３７４＿ｍを含む。
【００６０】
各ＨＴＭＬタグ３７４＿１〜３７４＿ｍは、先頭にあるＨＴＭＬタグ開始デリミタ(HTML Tag Begin)３７６と最後にあるＨＴＭＬタグ終了デリミタ(HTML  Tag  End)３８０によって区切られる。ＨＴＭＬタグ開始デリミタ３７６の後にＨＴＭＬタグ名(HTML  Tag  Name)３７７があり、その次にＨＴＭＬタグ空状態(HTML  Tag  Empty  State)３７８があり、さらにＨＴＭＬ属性リスト(HTML  Attribute  List)３７９が続き、その後にＨＴＭＬタグ終了デリミタ(HTML  Tag  End)３８０が来る。
【００６１】
各ＨＴＭＬ属性リスト３７９は、先頭のＨＴＭＬ属性リスト開始デリミタ(HTML  Attribute  List  Begin)３８１と末尾のＨＴＭＬ属性リスト終了デリミタ(HTML  Attribute  List  End)３８１とによって区切られる。ＨＴＭＬ属性リスト開始デリミタ３８１の次に１つ以上のＨＴＭＬ属性(HTML  Attribute)３８２＿１〜３８２＿ｐが続き、次にＨＴＭＬ属性リスト終了デリミタ(HTML  Attribute  List  End)３８３が来る。
【００６２】
各ＨＴＭＬ属性３８２＿１〜３８２＿ｐは、先頭のＨＴＭＬ属性開始デリミタ（HTML  Attribute  Begin）３８４と末尾のＨＴＭＬ属性終了デリミタ（HTML  Attribute  End）３８９とによって区切られる。ＨＴＭＬ属性開始デリミタ３８４の後にＨＴＭＬ属性名３８５が続き、これにＨＴＭＬ属性ソース型（HTML  Attribute  Source  Type）３８６が続き、その後にＨＴＭＬ属性ソース１(HTML  Attribute  Source  1)  ３８７が続き、ＨＴＭＬ属性ソース２（HTML  Attribute  Source  2)３８８があるならば、その後に続く。ＨＴＭＬ属性終了デリミタ３８９は、このコンテントのリストを終了させる。
【００６３】
図１３は、ＤＴＤマップ・オブジェクトに関する主要クラス群４２４間の依存関係を表している。以下の図面においては、矢線はクラス間の依存関係を表しており、矢線が指したオブジェクトは、その矢線が出たオブジェクトに包含されることを意味する。「Ｍａｐ」（マップ）オブジェクト４００は「ＤＴＤＭａｐ」（ＤＴＤマップ）オブジェクト４０２へのポインタを有する。ポインタとは、コンピュータのメモリ内のある項目の絶対アドレスを表す値である。特定のオブジェクトを実行するための格納情報を、少なくともそのオブジェクト内のポインタ名とフィールド又は関数名を参照することによってアクセスするために、オブジェクトへのポインタが利用される。
【００６４】
図１２と図１３の両方を参照する。図１２のＤＴＤマップ３６１に相当する図１３の「ＤＴＤＭａｐ」(ＤＴＤマップ)４０２には、ポインタを介して、図１２のＳＧＭＬタグ３６４＿１〜３６４＿ｎに相当する「ＳＧＭＬＴａｇＬｉｓｔ」(ＳＧＭＬタグリスト)４０４が包含される。図１３の「ＳＧＭＬＴａｇＬｉｓｔ」４０４には、ポインタを介して、図１２のＳＧＭＬタグ３６４＿１〜３６４＿ｎのそれぞれに相当する「ＳＧＭＬＴａｇ」（ＳＧＭＬタグ）クラス４０６が包含される。図１３の「ＳＧＭＬＴａｇ」クラス４０６には、ポインタを介して、図１２のＨＴＭＬタグリスト３７１に相当する「ＨＴＭＬＴａｇＬｉｓｔ」（ＨＴＭＬタグリスト）クラス４０８が包含される。図１３の「ＨＴＭＬＴａｇＬｉｓｔ」クラス４０８には、ポインタを介して、図１２のＨＴＭＬタグ３７４＿１〜３７４＿ｍのそれぞれに相当する「ＨＴＭＬＴａｇ」（ＨＴＭＬタグ）クラス４１０が包含される。図１３の「ＨＴＭＬＴａｇ」クラス４１０には、ポインタを介して、図１２のＨＴＭＬ属性リスト３７９に相当する「ＨＴＭＬＡｔｔｒＬｉｓｔ」（ＨＴＭＬ属性リスト）クラス４１２が包含される。図１３の「ＨＴＭＬＡｔｔｒＬｉｓｔ」クラス４１２には、ポインタを介して、図１２のＨＴＭＬ属性３８２＿１〜３８２＿ｐに相当する「ＨＴＭＬＡｔｔｒ」（ＨＴＭＬ属性）クラス４１４が包含される。図１３の「ＨＴＭＬＡｔｔｒ」クラス４１４には、ポインタを介して、抽象クラスの派生クラス（三角形内の「Ａ」で示されている）、すなわち図１２のＨＴＭＬ属性ソース型３８６に相当する「ＨＴＭＬＡｔｔｒＳｏｕｒｃｅ」（ＨＴＭＬ属性ソース）クラス４１６が包含される。抽象クラスとは、一般に、システム内の他の密接に関連した（例えば同様の振る舞いをする）クラスを定義するために利用されるモデルである。抽象クラスを定義することによって、他のクラスは、その親の抽象クラスの構造及びメソッドを継承するものとして定義される。図１３の白抜き矢線はクラスの継承を表している。ＨＴＭＬ属性は異なったソースから取得してもよい。したがって、「ＵｓｅｒＩｎｐｕｔ」（ユーザ入力）クラス４１８は抽象クラスの「ＨＴＭＬＡｔｔｒ
Ｓｏｕｒｃｅ」クラス４１６を継承するように表されている。また、「ＳＧＭＬＣｏｎｔｅｎｔ」（ＳＧＭＬコンテント）クラス４２２は「ＨＴＭＬＡｔｔｒＳｏｕｒｃｅ」クラス４１６を継承し、「ＳＧＭＬＴａｇＡｔｔｒ」（ＳＧＭＬタグ属性）クラス４２０も同様である。
【００６５】
図１４はマップ・モジュール２７６内の主要クラスを表しており、そのクラス間の依存関係を説明するものである。破線矩形の内側に示されているクラス群は、図１３のクラス群４２４である。「ＭａｐＳｅｒｖｉｃｅ」（マップサービス）クラス４５２は、「Ｔｒａｎｓｆｏｒｍｅｒ」（トランスフォーマ）クラス４５０、「ＤＴＤＭａｐＴｒａｎｓｆｏｒｍｅｒＳｅｒｖｉｃｅ」（ＤＴＤマップトランスフォーマサービス）クラス４５６、「ＳｒｃＳＧＭＬＴａｇＡｔｔｒ」（ソースＳＧＭＬタグ属性）クラス４６２、「ＳｒｃＳＧＭＬＣｏｎｔｅｎｔ」（ソースＳＧＭＬコンテント）クラス４６４、「Ｍａｐ」（マップ）クラス４００、「ＭａｐＥｄｉｔ」（マップ編集）クラス４６０、及び、「ＭａｐＣｒｅａｔｅＥｄｉｔＳｅｒｖｉｃｅ」（マップ生成編集サービス）クラス４５４を包含する。「ＭａｐＥｄｉｔ」クラス４６０は、「ＤＴＤＭａｐＥｄｉｔ」（ＤＴＤマップ編集）クラス４６６を包含する。「ＤＴＤＭａｐＥｄｉｔ」クラス４６６は、「ＳＧＭＬＴａｇＬｉｓｔ」クラス４０４、「ＳＧＭＬＴａｇ」クラス４０６、「ＨＴＭＬＴａｇＬｉｓｔ」クラス４０８、「ＨＴＭＬＡｔｔｒＬｉｓｔ」クラス４１２、「ＨＴＭＬＴａｇ」クラス４１０、「ＨＴＭＬＡｔｔｒ」クラス４１４、「ＳＧＭＬＴａｇＡｔｔｒ」クラス４２０、「ＳＧＭＬＣｏｎｔｅｎｔ」クラス４２２、及び「ＵｓｅｒＩｎｐｕｔ」クラス４１８と包含関係がある。「ＨＴＭＬＡｔｔｒＳｏｕｒｃｅ」（ＨＴＭＬ属性ソース）クラス４１６は「ＳｒｃＳＧＭＬＴａｇＡｔｔｒ」クラス４６２及び「ＳｒｃＳＧＭＬＣｏｎｔｅｎｔ」クラス４６４と包含関係がある。「ＤＴＤＭａｐＴｒａｎｓｆｏｒｍｅｒＳｅｒｖｉｃｅ」クラス４５６は、「ＳｒｃＳＧＭＬＴａｇＡｔｔｒ」クラス４６２及び「ＳｒｃＳＧＭＬＣｏｎｔｅｎｔ」クラス４６４と包含関係がある。  「ＳｒｃＳＧＭＬＴａｇＡｔｔｒ」クラス４６２は「ＳＧＭＬＴａｇＡｔｔｒ」クラス４２０と包含関係があり、「ＳｒｃＳＧＭＬＣｏｎｔｅｎｔ」クラス４６４は「ＳＧＭＬＣｏｎｔｅｎｔ」クラス４２２と包含関係がある。「ＭａｐＣｒｅａｔｅＥｄｉｔＳｅｒｖｉｃｅ」クラス４５４は、「ＤＴＤＭａｐＥｄｉｔ」クラス４６６及び「ＭａｐＥｄｉｔ」クラス４６０と包含関係がある。「Ｍａｐ」クラス４００は、「ＤＴＤＭａｐ」クラス４０２、「ＤＴＤＭａｐＴｒａｎｓｆｏｒｍｅｒＳｅｒｖｉｃｅ」クラス４５６、「ＳｒｃＳＧＭＬＴａｇＡｔｔｒ」クラス４６２及び「ＳｒｃＳＧＭＬＣｏｎｔｅｎｔ」クラス４６４と包含関係がある。これらクラスとそのオブジェクトの働きについては、図３０乃至図３８に関連して説明する。
【００６６】
ソフトウェアのデータ項目及びオブジェクトは、プログラムコードの実行のために必要になった段階でコンピュータの記憶資源を動的に割り当てられる必要がある。データ項目のアドレスを格納しているポインタ変数、メソッド又はオブジェクトは、コードの実行中にオブジェクト間で受け渡しできる。オブジェクト及びデータ項目の構築及び破棄は動的になされるので、あるデータ項目へのポインタ又は参照を使うオブジェクトが、例えば廃棄済みのデータを参照する可能性があり、その場合には恐らくシステムスラーが起こる。オブジェクトとデータ項目を生成された時と要求された時に登録する機構は、オブジェクトとデータ項目が現に存在しまた利用されていることを参照前に確認する手段をオブジェクトに与える。デストラクタは、オブジェクト又はデータ項目を破棄する前に、その現在の利用状況を確認し、その破棄前に他のオブジェクトがそのオブジェクト又はデータ項目の利用を完了できるようにする。オブジェクト及びデータ項目を登録する目的の一例は、ＨＴＭＬ属性への属性値割り当てである。これについて、図１５乃至図１８及び図３０乃至図３８に関連して後述する。
【００６７】
図１５は、ＳＧＭＬからＨＴＭＬへのマッピング及び変換に関わる「ＳｒｃＳＧＭＬＴａｇＡｔｔｒ」クラス４６２のクラス構造を示す。図１６は、ＳＧＭＬからＨＴＭＬへのマッピング及び変換に関わる「ＳｒｃＳＧＭＬＣｏｎｔｅｎｔ」クラス４６４のクラス構造を示す。図１７は、ＳＧＭＬからＨＴＭＬへのマッピング及び変換に関わる「ＭａｐＳｅｒｖｉｃｅ」クラス４５２のクラス構造を示す。
【００６８】
図１４に関連して前述したごとく、「ＨＴＭＬＡｔｔｒＳｏｕｒｃｅ」クラス４１６は「ＳｒｃＳＧＭＬＴａｇＡｔｔｒ」クラス４６２及び「ＳｒｃＳＧＭＬＣｏｎｔｅｎｔ」クラス４６４への参照を含む。「ＨＴＭＬＡｔｔｒＳｏｕｒｃｅ」クラス４１６は、「ＳｒｃＳＧＭＬＴａｇＡｔｔｒ」クラス４６２への参照「ＡｔｒＳｒｃＳＧＭＬＴａｇＡｔｔｒ」と、「ＳｒｃＳＧＭＬＣｏｎｔｅｎｔ」クラス４６４への参照「ＡｔｒＳｒｃＳＧＭＬＣｏｎｔｅｎｔ」を含む。「ＳｒｃＳＧＭＬＴａｇＡｔｔｒ」クラス４６２は、「ＭａｐＳｅｒｖｉｃｅ」クラス４５２においてＳＧＭＬタグ属性を登録するために使用されるメソッド「ｒｅｇｉｓｔｅｒＳＧＭＬＴａｇＮａｍｅＡｎｄＡｔｔｒｉｂｕｔｅＮａｍｅ」を含んでいるため、「ＳｒｃＳＧＭＬＴａｇＡｔｔｒ」クラス４６２内のメソッド「ｕｎｒｅｇｉｓｔｅｒＴａｇＡｔｔｒＫｅｙＡｎｄＭａｐＥｎｔｒｙ」を使用し、仮想関数「ｕｎｒｅｇｉｓｔｅｒＦｒｏｍＳｏｕｒｃｅＭａｐ」で、登録が済んだ属性を「ＨＴＭＬＡｔｔｒＳｏｕｒｃｅ」クラス４１６から登録抹消することが可能である。また、「ＳｒｃＳＧＭＬＴａｇＡｔｔｒ」クラス４６２は、ＳＧＭＬ文書をＳＧＭＬ文書へ変換するための文書インスタンス処理時に使用されるメソッド「ｓｅｔＶａｌｕｅＦｏｒＡｔｔｒｂｕｔｅＯｆＴａｇ」も含んでいる。
【００６９】
「ＳｒｃＳＧＭＬＣｏｎｔｅｎｔ」クラス４６４は、その内部でＳＧＭＬタグコンテントを登録するために使用されるメソッド「ｒｅｇｉｓｔｅｒＳＧＭＬＴａｇＮａｍｅ」を含んでいるため、「ＳｒｃＳＧＭＬＣｏｎｔｅｎｔ」クラス４６４のメソッド「ｕｎｒｅｇｉｓｔｅｒＳＧＭＬＴａｇＮａｍｅ」によって登録が済んだ属性を「ＨＴＭＬＡｔｔｒＳｏｕｒｃｅ」クラス４１６から登録抹消することが可能である。また、「ＳｒｃＳＧＭＬＣｏｎｔｅｎｔ」クラス４６４は、ＳＧＭＬ文書をＨＴＭＬ文書へ変換するための文書インスタンス処理時に使用されるメソッド「ｓｅｔＶａｌｕｅＦｏｒＴａｇ」も含んでいる。
【００７０】
図１８は、ＳＧＭＬからＨＴＭＬへのマッピング及び変換に関わる「ＭａｐＣｒｅａｔｅＥｄｉｔＳｅｒｖｉｃｅ」クラス４５４のクラス構造を示す。「ＭａｐＣｒｅａｔｅＥｄｉｔＳｅｒｖｉｃｅ」クラス４５４については図１４に関連して説明済みである。このクラスとオブジェクトの働きについては、図３０乃至図３８に関連して説明する。「ＭａｐＣｒｅａｔｅＥｄｉｔＳｅｒｖｉｃｅ」クラス４５４中のメソッド「ｓｅｔＳｅｌｅｃｔｅｄＳＧＭＬＴａｇＴｏＢｅＮｕｌｌＡｓｓｉｇｎｅｄ」は、選択されたＳＧＭＬタグがヌル値にマッピングされるように設定する。「ＭａｐＣｒｅａｔｅＥｄｉｔＳｅｒｖｉｃｅ」クラス４５４中のメソッド「ｓｅｔＳｅｌｅｃｔｅｄＳＧＭＬＴａｇＴｏＢｅＮｏｔＳａａｉｇｎｅｄ」は、選択されたＳＧＭＬタグがマッピング時に保持されるように設定する。「ＭａｐＣｒｅａｔｅＥｄｉｔＳｅｒｖｉｃｅ」クラス４５４中のメソッド「ｇｅｔＡｔｔｒｂｕｔｅＡｓｓｉｇｎｍｅｎｔＩｎｆｏｒｍａｔｉｏｎＦｏｒＨＴＭＬＡｔｔｒｉｂｕｔｅ」は、ＨＴＭＬ属性に対する割り当て値のための割り当て情報を入力する。「ＭａｐＣｒｅａｔｅＥｄｉｔＳｅｒｖｉｃｅ」クラス４５４中のメソッド「ａｓｓｉｇｎＨＴＭＬＡｔｔｒｉｂｕｔｅＷｉｔｈＳＧＭＬＡｔｔｒｂｕｔｅ」、メソッド「ａｓｓｉｇｎＨＴＭＬＡｔｔｒｉｂｕｔｅＷｉｔｈＳＧＭＬＣｏｎｔｅｎｔ」、メソッド「ａｓｓｉｇｎＨＴＭＬＡｔｔｒｉｂｕｔｅＷｉｔｈＳｙｓｔｅｍ」、メソッド「ａｓｓｉｇｎＨＴＭＬＡｔｔｒｉｂｕｔｅＷｉｔｈＮｏＶａｌｕｅ」、メソッド「ａｓｓｉｇｎＨＴＭＬＡｔｔｒｉｂｕｔｅＷｉｔｈＵｓｅｒＩｎｐｕｔ」は、ＨＴＭＬ属性に値を割り当てる。
【００７１】
図１９は、ＳＧＭＬからＨＴＭＬへのマッピング及び変換のためのＧＵＩを実現する主要モジュールの階層図を示す。アプリケーションウィンドウ（Ａｐｐｌｉｃａｔｉｏｎ  Ｗｉｎｄｏｗ）モジュール４７０は、メニューマネージャ（Ｍｅｎｕ  Ｍａｎａｇｅｒ）モジュール４７２を起動する。メニューマネージャ・モジュール４７２は、ファイルサービス（Ｆｉｌｅ  Ｓｅｒｖｉｃｅ）モジュール４７４、マップエディタ（Ｅｄｉｔｏｒ  ｆｏｒ  Ｍａｐ）モジュール４７６、ビュー（Ｖｉｅｗ）モジュール４７８、マップ（Ｍａｐ）モジュール４８０及びメッセージダイアログサービス（Ｍｅｓｓａｇｅ  Ｄｉａｌｏｇ  Ｓｅｒｖｉｃｅ）モジュール４８２を起動する。マップ・モジュール４８０は図１３のマップ・クラス４００に相当する。ビュー・モジュール４７８は、図８のＧＵＩモジュール１８０に含まれている。これらモジュールの働きについては図３０乃至図３８に関連して説明する。
【００７２】
図２０は、メインアプリケーションウィンドウ５１０のコンピュータ画面出力の一例を示す。このウィンドウは、タイトルバー５１２、メニューバー５１４ツールバー５１６、ビューウィンドウのワークスペース５１８を含む。ユーザは、メニュー操作を行うためには、メニューバー５１４の項目を一つ選択する必要がある。ユーザが選択をすると、サブメニュー（もしくはプルダウン・メニュー）が、メインメニューから選択したもの利用可能な全操作を表示する。例えば、ユーザが選択項目「Ｆｉｌｅ」を選ぶと、サブメニューが現れて、「Ｏｐｅｎ  ＳＧＭＬ」、「Ｏｐｅｎ  ＤＴＤ」、「Ｏｐｅｎ  Ｍａｐ」、「Ｓａｖｅ  Ｍａｐ」、「Ｍａｐ  Ｓａｖｅ  Ａｓ」、「Ｓａｖｅ  ＨＴＭＬ」、「ＨＴＭＬ  Ｓａｖｅ  Ａｓ」、「Ｃｌｏｓｅ  ＳＧＭＬ」、「Ｅｘｉｔ」の各選択項目を表示する。選択項目「Ｏｐｅｎ  ＳＧＭＬ」によって、ユーザは一つのＳＧＭＬ文書を選んで開くことができる。選択項目「Ｏｐｅｎ  ＤＴＤ」によって、ユーザは一つのＤＴＤを選んで開くことができる。選択項目「Ｏｐｅｎ  Ｍａｐ」によって、ユーザは一つのマップを選んで開くことができる。選択項目「Ｓａｖｅ  Ｍａｐ」によって、ユーザはマップをディスクに保存することができる。選択項目「Ｍａｐ  Ｓａｖｅ  Ａｓ」によって、ユーザは新たに選んだファイル名を付けてマップをディスクに保存することができる。選択項目「Ｓａｖｅ  ＨＴＭＬ」によって、ユーザはＨＴＭＬ文書をディスクに保存することができる。選択項目「ＨＴＭＬ  Ｓａｖｅ  Ａｓ」によって、ユーザは新たに選んだファイル名を付けてＨＴＭＬ文書をディスクに保存できる。選択項目「Ｃｌｏｓｅ  ＳＧＭＬ」によってユーザはＳＧＭＬ文書を閉じることができる。また、選択項目「Ｅｘｉｔ」で、ユーザは変換処理のアプリケーションウィンドウを終了させることができる。
【００７３】
ユーザがメニューバー５１４から選択項目「Ｅｄｉｔ」を選択すると、「Ｃｒｅａｔｅ  Ｍａｐ」、「Ｅｄｉｔ  Ｍａｐ」の各選択項目を表示するサブメニューが現れる。選択項目「Ｃｒｅａｔｅ  Ｍａｐ」によって、ユーザはＳＧＭＬ文書をＨＴＭＬ文書へ変換するために利用可能なマップを生成することができる。選択項目「Ｅｄｉｔ  Ｍａｐ」によって、ユーザは既存のマップを編集することができる。選択項目「Ｖｉｅｗ」のサブメニューは、「Ｖｉｅｗ  ＳＧＭＬ」、「Ｖｉｅｗ  ＨＴＭＬ」の各選択項目を表示する。これら選択項目は、ユーザに選択されるとＳＧＭＬ文書又はＨＴＭＬ文書を表示するように設計されている。選択項目「Ｖｉｅｗ  ＳＧＭＬ」によって、ユーザは、ＳＧＭＬ文書をメインアプリケーションウィンドウのワークスペース内に表示させることができる。選択項目「Ｖｉｅｗ  ＨＴＭＬ」によって、ユーザは、ＨＴＭＬ文書をメインアプリケーションウィンドウのワークスペース内に表示させることができる。ユーザが選択項目「Ｍａｐ」を選択すれば、選択項目「Ｒｕｎ  Ｍａｐ」を表示するサブメニューが現れる。選択項目「Ｒｕｎ  Ｍａｐ」を選択すれば、ＳＧＭＬ文書からＨＴＭＬ文書への変換処理が起動される。ユーザが「Ｏｐｔｉｏｎ」ボタンを選択すると、サブメニューが現れて「Ｉｎｃｒｅｍｅｎｔａｌ」、「Ｒｅｆｅｒｅｎｃｅ」の各選択項目を表示する。選択項目「Ｉｎｃｒｅｍｅｎｔａｌ」によって、ユーザは、ＳＧＭＬ文書からＨＴＭＬ文書へのインクリメンタル・マッピングを行うことができる。一つのＳＧＭＬタグがＨＴＭＬタグにマッピングされると、次にＳＧＭＬ文書が対応したＨＴＭＬ文書へ変換される。この変換は、ＳＧＭＬタグが一つマッピングされる都度、それに続いて行われる。選択項目「Ｒｅｆｅｒｅｎｃｅ」によって、ユーザは、ＳＧＭＬ文書のＨＴＭＬ文書への変換中にレファレンスを表示させることができる。
【００７４】
図２１を参照し、ＳＧＭＬファイルを開くためのダイアログボックスとＨＴＭＬファイルを保存するためのダイアログボックスについて説明する。図２１は「Ｏｐｅｎ  ＳＧＭＬ  Ｆｉｌｅ」（ＳＧＭＬファイルを開く）ダイアログボックス６００を例示している。このダイアログボックス６００は、ユーザが図２０の選択項目「Ｆｉｌｅ」を選択すると表示されるサブメニューの選択項目「Ｏｐｅｎ  ＳＧＭＬ」に応答して表示される。開きたいファイルの種類をユーザが選択できるようにする「Ｆｉｌｔｅｒ」（フィルタ）テキスト編集ボックス６０２が表示される。ファイルの候補ディレクトリが「Ｄｉｒｅｃｔｏｒｉｅｓ」（ディレクトリ）リストボックス６０４内に表示される。開くことができる候補ファイルが「Ｆｉｌｅｓ」リストボックス６０６内に表示される。「Ｓｅｌｅｃｔｉｏｎ」（選択）テキスト編集ボックス６０８は、ユーザが開こうとして選んだファィル名を表示する。「ＯＫ」ボタン６１０によって、ユーザは、「Ｓｅｌｅｃｔｉｏｎ」テキスト編集ボックス６０８に表示された、ファイルの選択を承認することができる。「Ｆｉｌｔｅｒ」（フィルタ）ボタン６１２によって、ユーザは、「Ｆｉｌｔｅｒ」テキスト編集ボックス６０２で説明したように、指定された種類の全てのファイルを「Ｆｉｌｅｓ」リストボックス６０６に表示させるように要求することができる。「Ｃａｎｃｅｌ」（取り消し）ボタン６１４によって、ユーザは、あるファイルを開くための現在の要求の終了・取り消しを選ぶことができる。
【００７５】
図２１は「Ｓａｖｅ  ＨＴＭＬ  Ｆｉｌｅ」（ＨＴＭＬファイル保存）ダイアログボックス６１６も例示している。このダイアログボックス６１６は、ユーザが図２０の「Ｆｉｌｅ」（ファイル）ボタンを選択した時に表示されるサブメニューから、選択項目「Ｓａｖｅ  ＨＴＭＬ」をユーザが選択すると表示される。「Ｆｉｌｔｅｒ」テキスト編集ボックス６１８によって、ユーザは、現在のＨＴＭＬファイルを保存するためのファイル種類を選ぶことができる。ファイルの候補ディレクトリが「Ｄｉｒｅｃｔｏｒｉｅｓ」リストボックス６２０内に表示される。指定された種類の候補ファイルが「Ｆｉｌｅｓ」（ファイル）リストボックス６２２内に表示される。「Ｓｅｌｅｃｔｉｏｎ」（選択）テキスト編集ボックス６２４によって、ユーザは、ファイルを保存する際のファイル名を選ぶことができる。「ＯＫ」ボタン６２６によって、ユーザは、ファイルを保存する操作を承認し完了させることができる。「Ｆｉｌｔｅｒ」（フィルタ）ボタン６２８によって、ユーザは、「Ｆｉｌｔｅｒ」テキスト編集ボックス６１８で説明したように、指定した種類の全てのファイルを「Ｆｉｌｅｓ」リストボックス６２２内に表示させるように要求することができる。「Ｃａｎｃｅｌ」（取り消し）ボタン６３０によって、ユーザは、現在のＨＴＭＬファイルを保存させるための現在の要求を終了させ取り消すことができる。
【００７６】
図２２と図２３は、マップの生成と編集に利用される「Ｍａｐ  Ｅｄｉｔ  Ｏｐｔｉｏｎ」（マップ編集選択）ダイアログボックスと「Ｍａｐ  Ｅｄｉｔ」（マップ編集）ダイアログボックスを示している。ユーザは新しいマップを生成したり、既存のマップを編集したりすることができる。ユーザが図２０のメインアプリケーションウィンドウ５１０の「Ｅｄｉｔ」ボタンを選択し、そして選択項目「Ｅｄｉｔ  Ｍａｐ」又は選択項目「Ｃｒｅａｔｅ  Ｍａｐ」を選択すると、図２２の「Ｍａｐ  Ｅｄｉｔ  Ｏｐｔｉｏｎ」ダイアログボックス６９０が表示され、ユーザは、ＳＧＭＬ文書のデフォルトのマッピングと条件付きマッピングのどちらを使ってマップの生成又は編集を行うか選択できるようになる。「Ｄｅｆａｕｌｔ」（デフォルト）ボタン６９２をクリックすることによって選択されるデフォルト・マッピングは、図２３の「ＳＧＭＬ  ｔｏ  ＨＴＭＬ  Ｍａｐ  Ｅｄｉｔｏｒ」（ＳＧＭＬからＨＴＭＬへのマップエディタ）ダイアログボックス７００でユーザの対話により設定されるユーザ定義のタグマッピングである。「Ｃｏｎｄｉｔｏｎａｌ」（条件付き）ボタン６９４をクリックすることによって選択される条件付きマッピングでは、条件付きのマッピング又は特殊なマッピングを定義する必要がある。ユーザが「Ｍａｐ  Ｅｄｉｔ  Ｏｐｔｉｏｎ」ダイアログボックス６９０の選択項目の一つを選択すると、図２３のダイアログボックス７００が表示されて、ユーザはシステムと対話しながらマップを定義することができる。選択項目「Ｃｒｅａｔｅ  Ｍａｐ」（マップ作成）によって、ユーザは新しいマップを作成することができる。「Ｍａｐ  Ｅｄｉｔ  Ｏｐｔｉｏｎ」ダイアログボックス６９０と「ＳＧＭＬ  ｔｏ  ＨＴＭＬ  Ｍａｐ  Ｅｄｉｔｏｒ」ダイアログボックス７００は、どちらもマップの生成及び既存マップの編集に利用される。
【００７７】
図２３を参照する。「ＳＧＭＬ  ｔｏ  ＨＴＭＬ  Ｍａｐ  Ｅｄｉｔｏｒ」ダイアログボックス７００は、ＳＧＭＬタグのリストボックスである「ＳＧＭＬ  Ｔａｇ」（ＳＧＭＬタグ）リストボックス７０２、同リストボックスより選択されたＳＧＭＬタグがマッピングされるＨＴＭＬタグのリストボックスである「Ｃｕｒｒｅｎｔ  ＨＴＭＬ  Ｔａｇ」リストボックス７０４、及び、「Ｃｕｒｒｅｎｔ  ＨＴＭＬ  Ｔａｇ」リストボックス７０４に追加可能なリーガルタグなタグのリストボックスである「Ｌｅａｇａｌ  Ｔａｇ」リストボックス７０６を表示する。あるＳＧＭＬタグ（７０２）について、ユーザは、「Ｌｅｇａｌ  ＨＴＭＬ  Ｔａｇ」リストボックス７０６から一つのＨＴＭＬタグをダブルクリックすることによってリーガルなＨＴＭＬタグ（７０６）を選択する。こうすることにより、そのＨＴＭＬタグが「Ｃｕｒｒｅｎｔ  ＨＴＭＬ  Ｔａｇ」リストボックス７０４に追加される。「Ｃｕｒｒｅｎｔ  ＨＴＭＬ  Ｔａｇ」リストボックス７０４に、ＳＧＭＬタグ（７０２）がマッピングされるＨＴＭＬタグのリストが含まれているときには、「Ｃｕｒｒｅｎｔ  ＨＴＭＬ  Ｔａｇ」リストボックス７０４の選択されたＨＴＭＬタグの下に新しいＨＴＭＬタグが追加される。
【００７８】
「Ｃｕｒｒｅｎｔ  ＨＴＭＬ  Ｔａｇ」リストボックス７０４に一つのＨＴＭＬタグが挿入されると、その挿入したタグ以降のＨＴＭＬタグは、もはやリーガルなタグとはならないであろうから削除される必要がある。「Ｃｌｅａｒ  ＨＴＭＬ  Ｔａｇ」（ＨＴＭＬタグのクリア）ボタン７０８は「Ｃｕｒｒｅｎｔ  ＨＴＭＬ  Ｔａｇ」リストボックス７０４をクリアするものである。「Ｄｅｔｅｔｅ  ＨＴＭＬ  Ｔａｇ」（ＨＴＭＬタグ削除）ボタン７１０は、「Ｃｕｒｒｅｎｔ  ＨＴＭＬ  Ｔａｇ」リストボックス７０４内の選択されたＨＴＭＬタグを削除するものである。「Ｃｕｒｒｅｎｔ  ＨＴＭＬ  Ｔａｇ」リストボックス７０４内の削除したＨＴＭＬタグ以降のＨＴＭＬタグは、もはやリーガルなタグとはならないであろうから削除される必要がある。「Ｕｎｄｏ」（取り消し）ボタン７１２は、直前のクリア、削除又は挿入の操作を取り消すものである。以上のボタンをメニュー操作形態に応じて変更することは、コンピュータ処理分野の当業者には容易である。「Ｍａｐ  ＳＧＭＬ  Ｔａｇ」（ＳＧＭＬタグのマッピング）ボタン７１４によって、ユーザは、ＳＧＭＬタグ（７０２）を「Ｃｕｒｒｅｎｔ  ＨＴＭＬ  Ｔａｇ」リストボックス７０４内のＨＴＭＬタグのリストへマッピングすることができ、そして、次にマッピングするＳＧＭＬタグを選択することができる。「Ｄｏｎｅ」（終了）ボタン７１６が選択されると、残っているＳＧＭＬタグ（７０２）はマッピングされなくなる。「Ｃａｎｃｅｌ」ボタン７１８が選択されると、それ以前のＳＧＭＬからＨＴＭＬへのマッピング情報は全て無視される。「Ｌｅｇａｌ  ＨＴＭＬ  Ｔａｇ」リストボックス７０６において、ヌル割り当てと非割り当ての２つを選択可能である。ヌル割り当ては、ＳＧＭＬタグ（７０２）を削除し、それがマッピングされたり変換後に表示されたりしないようにする。非割り当ては、ＳＧＭＬタグ（７０２）をそのままにしておくもので、そのＳＧＭＬタグ（７０２）はＨＴＭＬへはマッピングされないが、変換後にそのまま表示される。
【００７９】
タグ属性割り当てについては、図３０乃至図３８に関連して説明する。
【００８０】
図２４は、図２３で説明済みの「ＳＧＭＬ  ｔｏ  ＨＴＭＬ  Ｍａｐ  Ｅｄｉｔｏｒ」ダイアログボックス７００のタグリストボックス内のデータの例を示している。これらデータの処理については図３０乃至図３８に関連し説明する。
【００８１】
図２５は、ＧＵＩのためのＳＧＭＬからＨＴＭＬへのマッピングに関わるクラス間の関係を示すクラス線図の例を示す。「ＡｐｐｌｉｃａｔｉｏｎＷｉｎｄｏｗ」クラス７７２は、ＧＵＩのアプリケーションウィンドウの表示処理を管理する。「ＭｅｎｕＭａｎａｇｅｒ」クラス７７８は、メニュー操作に関連する全てのタスクとオブジェクトを統御する。「ＦｉｌｅＳｅｒｖｉｃｅ」クラス７８２は、ファイルを開く操作と保存する操作を扱う。「ｎｔＥｎｔｉｔｙ」クラス７９０は、ＳＧＭＬ文書、ＳＧＭＬ  ＤＴＤ、ＨＴＭＬ文書又はＨＴＭＬ  ＤＴＤの総称的なシステム表現である。「ＳｙｍｂｏｌＴａｂｌｅ」クラス７７０は、入力文書の、「ＰａｒｓｅｒＳｅｒｖｉｃｅ」クラス７７４によって処理した後のシステム表現である。「ＭｅｓｓａｇｅＤｉａｌｏｇＳｅｒｖｉｃｅ」クラス７７６は、システムユーザへのメッセージ出力を扱う。「ＶｉｅｗＤｏｃｕｍｅｎｔ」クラス７８６は、ユーザからの要求に応じたＳＧＭＬ文書又はＨＴＭＬ文書の表示を扱う。「ＭａｐＳｅｒｖｉｃｅ」クラス７８０は、「ＭａｐＣｒｅａｔｅＥｄｉｔＳｅｒｖｉｃｅ」クラス７９２を利用して、ＳＧＭＬ文書からＨＴＭＬ文書への変換に利用すべき規則のシステム表現である「Ｍａｐ」クラス７８８の生成及び編集を扱う。「ＧＵＩＥｄｉｔｏｒＦｏｒＭａｐ」クラス７８４は、ユーザが「Ｍａｐ」クラス７８８の生成又は編集を動的に行うためのＧＵＩインターフェースを扱う。
【００８２】
図２６は、システムのスタートアップのためのクラスのオブジェクト間のシステム動作を表すオブジェクト・メッセージ線図を示す。このオブジェクト線図では、主要なソフトウエア・オブジェクトを雲図形で囲んで示している。オブジェクト・メソッドの呼び出しは、コロンとその前後の算用数字及びオブジェクト・メソッド名によって表されている。コロン付きの算用数字によって表される順番は、実行の段階的論理フローとオブジェクトのデータ及びメッセージのフローを示す。オブジェクトの線図と設計に関するより詳細な説明については、Booch，G.，Object-Oriented  Analysis  and  Design  with  Applications，Second  Edition，Addison  Wesley  Longman，California，1994を参照されたい。この文献をここ援用する。
【００８３】
「ＡｐｐｌｉｃａｔｉｏｎＷｉｎｄｏｗ」オブジェクト７７２は、図２０のメインアプリケーションウィンドウを生成するオブジェクトである。このオブジェクト７７２は、システムの実行開始時に最初に生成されるオブジェクトであり、図２０のメインアプリケーションウィンドウを表示するために必要な情報及び関数を全て含んでいる。「ＨＴＭＬＳｙｍｂｏｌＴａｂｌｅ」オブジェクト８００は、「ＡｐｐｌｉｃａｔｉｏｎＷｉｎｄｏｗ」オブジェクト７７２により、「ＰａｒｓｅｒＳｅｒｖｉｃｅ」オブジェクト７７４の呼び出し「Ｃｒｅａｔｅ（ｎｅｗ）」８０２で生成されるオブジェクトであり、これはＨＴＭＬ  ＤＴＤのシステム表現である。「ＨＴＭＬＳｙｍｂｏｌＴａｂｌｅ」オブジェクト８００は、システムの寿命の間中存在する。「ＭｅｎｕＭａｎａｇｅｒ」オブジェクト７７８は、「ＡｐｐｌｉｃａｔｉｏｎＷｉｎｄｏｗ」オブジェクト７７２によって、呼び出し「Ｃｒｅａｔｅ（ｎｅｗ）」８０４で生成されるオブジェクトであり、「ＡｐｐｌｉｃａｔｉｏｎＷｉｎｄｏｗ」オブジェクト７７２のメニューに割り当てられた全てのメニュー操作を処理するためののものである。「ＡｐｐｌｉｃａｔｉｏｎＷｉｎｄｏｗ」オブジェクト７７２は、それが生成した「ＨＴＭＬＳｙｍｂｏｌＴａｂｌｅ」オブジェクト８００を「ＭｅｎｕＭａｎａｇｅｒ」オブジェクト７７８に渡し、「ＭａｎｕＭａｎａｇｅｒ」オブジェクト７７８が「ＨＴＭＬＳｙｍｂｏｌＴａｂｌｅ」オブジェクト８００をそれを必要とする他のオブジェクトに渡すことができるようにする。「ＭｅｎｕＭａｎａｇｅｒ」オブジェクト７７８は、メニュー操作の実行に必要な全てのオブジェクトの生成と管理を行う。
【００８４】
「ＭｅｓｓａｇｅＤｉａｌｏｇＳｅｒｖｉｃｅ」オブジェクト７７６は、「ＭｅｎｕＭａｎａｇｅｒ」オブジェクト７７８により、呼び出し「Ｃｒｅａｔｅ（ｎｅｗ）」８０６で生成されるオブジェクトであり、システムのどこからでもユーザに対しどのような種類のメッセージもメッセージダイアログボックスで表示できるようにするためのものである。メッセージの例としては、エラーメッセージ、ユーザに対する警告や指示、その他必要とされる任意種類のメッセージがある。「ＭｅｎｕＭａｎａｇｅｒ」オブジェクト７７８は、「ＭｅｓｓａｇｅＤｉａｌｏｇＳｅｒｖｉｃｅ」オブジェクト７７６を、ユーザにメッセージを表示する必要性がある他のオブジェクトに渡す。
【００８５】
「ＭａｐＳｅｒｖｉｃｅ」オブジェクト７８０は、「ＭｅｎｕＭａｎａｇｅｒ」オブジェクト７７８によって生成される、マップ関連オブジェクトを扱うためのオブジェクトである。「ＭｅｎｕＭａｎａｇｅｒ」オブジェクト７７８は、新たに生成された「ＭａｐＳｅｒｖｉｃｅ」オブジェクト７８０の状態を初期化するため呼び出し「ＭａｐＳｅｒｖｉｃｅＩｎｉｔ」８１０を発行する。この例では、マップは、ＳＧＭＬ文書がＨＴＭＬ文書にどのように変換されるかを記述したオブジェクトである。「ＭｅｎｕＭａｎａｇｅｒ」オブジェクト７７８は、「ＨＴＭＬＳｙｍｂｏｌＴａｂｌｅ」オブジェクト８００及び「ＭｅｓｓａｇｅＤｉａｌｏｇＳｅｒｖｉｃｅ」オブジェクト７７６を「ＭａｐＳｅｒｖｉｃｅ」オブジェクト７８０へ渡し、「ＭａｐＳｅｒｖｉｃｅ」オブジェクト７８０がＨＴＭＬ
ＤＴＤの情報を保有し、ユーザへメッセージを送ることができるようにする。
【００８６】
「ＭａｐＣｒｅａｔｅＥｄｉｔＳｅｒｖｉｃｅ」オブジェクト７９２は、呼び出し「ＣＲｅａｔｅ（ｎｅｗ）」８１２で「ＭａｐＳｅｒｖｉｃｅ」オブジェクト７８０によって生成されるオブジェクトであり、マップの生成や既存マップの修正を扱う。「ＭａｐＳｅｒｖｉｃｅ」オブジェクト７８０は、「ＨＴＭＬＳｙｍｂｏｌＴａｂｌｅ」オブジェクト８００を「ＭａｐＣｒｅａｔｅＥｄｉｔＳｅｒｖｉｃｅ」オブジェクト７９２に渡し、同オブジェクトにＨＴＭＬ  ＤＴＤの情報を保有させる。「ＭｅｎｕＭａｎａｇｅｒ」オブジェクト７７８は、呼び出し「ｇｅｔＭａｐＣｒｅａｔｅＥｄｉｔＳｅｒｖｉｃｅＯｂｊｅｃｔ」８１４で「ＭａｐＳｅｒｖｉｃｅ」オブジェクト７８０から「ＭａｐＣｒｅａｔｅＥｄｉｔＳｅｒｖｉｃｅ」オブジェクト７９２を受け取るため、いつでもマップの生成や編集をすることができるようになる。
【００８７】
「ＦｉｌｅＳｅｒｖｉｃｅ」オブジェクト７８２は、呼び出し「Ｃｒｅａｔｅ（ｎｅｗ）」８１６で「ＭｅｎｕＭａｎａｇｅｒ」オブジェクト７７８により生成されるオブジェクトで、ファイルのオープン及び保存のタスクを扱うものである。このファイルはＳＧＭＬ文書、ＳＧＭＬ  ＤＴＤ、マップあるいはＨＴＭＬ文書に相当する。ユーザは、図２０のメニューバー５１４に示された「Ｆｉｌｅ」ボタンを選択することによって、ファイルに対する操作を要求する。「ＦｉｌｅＳｅｒｖｉｃｅ」オブジェクト７８２は、図２１に例示したように、オープン又は保存のダイアログボックスを生成することにより、ユーザが開きたいファイル又は保存したファイルを選択できるようにする。「ＭｅｎｕＭａｎａｇｅｒ」オブジェクト７７８は、「ＭｅｓｓａｇｅＤｉａｌｏｇＳｅｒｖｉｃｅ」オブジェクト７７６を「ＦｉｌｅＳｅｒｖｉｃｅ」オブジェクト７８２に渡すことにより、同オブジェクト７８２がメッセージをユーザに表示できるようにする。また、「ＭｅｎｕＭａｎａｇｅｒ」オブジェクト７７８は、「ＭａｐＣｒｅａｔｅＥｄｉｔＳｅｒｖｉｃｅ」オブジェクト７９２も「ＦｉｌｅＳｅｒｖｉｃｅ」オブジェクト７８２に渡す。
【００８８】
「ＧＵＩＥｄｉｔｏｒＦｏｒＭａｐ」オブジェクト７８４は、呼び出し「Ｃｒｅａｔｅ（ｎｅｗ）」８１８で「ＭｅｎｕＭａｎａｇｅｒ」オブジェクト７７８により生成されるオブジェクトで、ユーザが、図２３及び図２４に例示したようなダイアログボックスを利用し、マップの生成又は既存マップの修正をできるようにする役割を担うものである。「ＭｅｎｕＭａｎａｇｅｒ」オブジェクト７７８は、ユーザへのメッセージ表示のために、「ＭｅｓｓａｇｅＤｉａｌｏｇＳｅｒｖｉｃｅ」オブジェクト７７６を「ＧＵＩＥｄｉｔｏｒＦｏｒＭａｐ」オブジェクト７８４へ渡す。「ＭｅｎｕＭａｎａｇｅｒ」オブジェクト７７８は、マップを生成又は修正するため、「ＭａｐＣｒｅａｔｅＥｄｉｔＳｅｒｖｉｃｅ」オブジェクト７９２を「ＧＵＩＥｄｉｔｒｏＦｏｒＭａｐ」オブジェクト７８４に渡す。
【００８９】
「ＶｉｅｗＤｏｃｕｍｅｎｔ」オブジェクト７８６は、呼び出し「Ｃｒｅａｔｅ（ｎｅｗ）」８２０で「ＭｅｎｕＭａｎａｇｅｒ」オブジェクト７７８により生成されるオブジェクトで、表示ウィンドウにＳＧＭＬ又はＨＴＭＬ文書を表示させる役割を担うものである。ユーザは、図２０に示されるメニューバー５１４の「Ｖｉｅｗ」ボタンを選択することにより、文書の表示を要求する。「ＭｅｎｕＭａｎａｇｅｒ」オブジェクト７７８は、「ＭｅｓｓａｇｅＤｉａｌｏｇＳｅｒｖｉｃｅ」オブジェクト７７６を「ＶｉｅｗＤｏｃｕｍｅｎｔ」オブジェクト７８６へ渡すことにより、同オブジェクト７８６がメッセージをユーザに表示できるようにする。
【００９０】
図２７は、ＳＧＭＬ文書を初めて開く時に本発明のオブジェクト間にみられる動的関連を説明するためのオブジェクト・メッセージ線図を示す。ユーザ（Ｕｓｅｒ）８３０は、「ＡｐｐｌｉｃａｔｉｏｎＷｉｎｄｏｗ」オブジェクト７７２に対し、呼び出し「ＯｐｅｎＳＧＭＬ」８４０によって、ＳＧＭＬ文書ファイルを開くように要求する。この要求は、図２０のメニューバー５１４の「Ｆｉｌｅ」ボタンを選択し、それによって現れるサブメニューの選択項目「Ｏｐｅｎ  ＳＧＭＬ」を選択することによってなされる。「ＡｐｐｌｉｃａｔｉｏｎＷｉｎｄｏｗ」オブジェクト７７２は、このユーザ要求を処理させるため呼び出し「ＯｐｅｎＳＧＭＬ」８４２を「ＭｅｎｕＭａｎａｇｅｒ」オブジェクト７７８へ渡す。そうすると、「ＭｅｎｕＭａｎａｇｅｒ」オブジェクト７７８は、呼び出し「ＯｐｅｎＳＧＭＬ」８４４を「ＦｉｌｅＳｅｒｖｉｃｅ」オブジェクト７８２へ渡す。「ＦｉｌｅＳｅｒｖｉｃｅ」オブジェクト７８２は、ユーザ８３０にＳＧＭＬ文書のファイル名を要求するため呼び出し「ｇｅｔＦｉｌｅＮａｍｅ」８４６を発行する。ユーザ８３０の応答「ファイル名（ＦｉｌｅＮａｍｅ）」８４６が、「ＦｉｌｅＳｅｒｖｉｃｅ」オブジェクト７８２に返される。「ＦｉｌｅＳｅｒｅｖｉｃｅ」オブジェクト７８２は、ファイル名（ＦｉｌｅＮａｍｅ）８４８と一緒に要求「ｉｓＦｏｕｎｄ」８４８を「ＩＯＳｓｅｖｉｃｅ」オブジェクト８３２に送り、応答「ＹＥＳ」８４８によって、ユーザ８３０から返されたファイル名（ＦｉｌｅＮａｍｅ）８４６が実在していることを確認する。そして、「ＦｉｌｅＳｅｒｖｉｃｅ」オブジェクト７８２は、ファイル名（ＦｉｌｅＮａｍｅ）８５０と一緒に要求「ｉｓＲＥａｄａｂｌｅ」８５０を「ＩＯＳｅｒｖｉｃｅ」オブジェクト８３２に送り、応答「ＹＥＳ」８５０によって、ファイルがシステムによって読み出し可能であることを確認する。次に、「ＦｉｌｅＳｅｒｖｉｃｅ」オブジェクト７８２は、ファイル名（ＦｉｌｅＮａｍｅ）８５２と一緒に要求「ｇｅｔＥｎｔｉｔｙＯｂｊｅｃｔ」８５２を「ＩＯＳｅｒｖｉｃｅ」オブジェクト８３２へ送り、同オブジェクト８３２はユーザ８３０が要求したＳＧＭＬ文書と対応ＤＴＤなどの外部エンティティに関係した「ｎｔＥｎｔｉｔｙ」８５２を取得して返す。
【００９１】
「ＭｅｎｕＭａｎａｇｅｒ」オブジェクト７７８は、要求「ｇｅｔＳＧＭＬｎｔＥｎｔｉｔｙ」８５４を「ＦｉｌｅＳｅｒｖｉｃｅ」オブジェクト７８２へ送って、「ＦｉｌｅＳｅｒｖｉｃｅ」オブジェクト７８２より「ｎｔＥｎｔｉｔｙ」８５４を受け取る。次に、「ＭｅｎｕＭａｎａｇｅｒ」オブジェクト７７８は、呼び出し「ｇｅｔＳｙｍｂｏｌＴａｂｌｅ」８５６で「ｎｔＥｎｔｉｔｙ」８５６を「ＰａｒｓｅｒＳｅｒｖｉｃｅ」オブジェクト７７４へ送る。そうすると、「ＰａｒｓｅｒＳｅｒｖｉｃｅ」オブジェクト７７４は、ＳＧＭＬ文書用の「ＳｙｍｂｏｌＴａｂｌｅ」（記号テーブル）オブジェクト８５６を生成し、それをＳＧＭＬ文書の記号テーブルとして妥当であることを確認してから「ＭｅｎｕＭａｎａｇｅｒ」オブジェクト７７８へ返す。そうすると、「ＭｅｎｕＭａｎａｇｅｒ」オブジェクト７７８は、呼び出し「ｕｓｅＴｈｉｓＳＧＭＬＤｏｃ」８５８によって、「ｎｔＥｎｔｉｔｙ」８５８を「ＭａｐＣｒｅａｔｅＥｄｉｔＳｅｒｖｉｃｅ」オブジェクト７９２へ送り、呼び出し「ＵｓｅｒＴｈｉｓＳｙｍｂｏｌＴａｂｌｅ」８６０によって記号テーブル（ＳｙｍｂｏｌＴａｂｌｅ）８６０を「ＭａｐＣｒｅａｔｅＥｄｉｔＳｅｒｖｉｃｅ」オブジェクト７９２に送る。そして、「ＭａｐＣｒｅａｔｅＥｄｉｔＳｅｒｖｉｃｅ」オブジェクト７９２は、要求された文書に対する以後の処理を扱う。
【００９２】
図２８は、ある既存のＳＧＭＬ文書が既に開かれている状態で、あるＳＧＭＬ文書を開く時に本発明のオブジェクト間にみられる動的関連を説明するためのオブジェクト・メッセージ線図を示す。ユーザ（Ｕｓｅｒ）８３０は、呼び出し「ＯｐｅｎＳＧＭＬ」８９０によって「ＡｐｐｌｉｃａｔｉｏｎＷｉｎｄｏｗ」オブジェクト７７２に対しＳＧＭＬ文書ファイルを開くよう要求する。この要求は、図２０のメニューバー５１４の「Ｆｉｌｅ」ボタンを選択し、それにより現れるサブメニューの選択項目「Ｏｐｅｎ  ＳＧＭＬ」を選択することによってなされる。「ＡｐｐｌｉｃａｔｉｏｎＷｉｎｄｏｗ」オブジェクト７７２は、ユーザ要求を処理するため、「ＭｅｎｕＭａｎａｇｅｒ」オブジェクト７７８に対し呼び出し「ＯｐｅｎＧＭＬ」８９２を送る。そうすると、「ＭｅｎｕＭａｎａｇｅｒ」オブジェクト７７８は、呼び出し「ＨＴＭＬＷｉｎｄｏｗ」９８４を「ＶｉｅｗＤｏｃｕｍｅｎｔ」オブジェクト７８６へ送り、ＨＴＭＬ文書を表示しているウィンドウが開いているならば、そのウィンドウを閉じさせる。保存されていないＨＴＭＬ文書がある場合には、「ＭｅｎｕＭａｎａｇｅｒ」オブジェクト７７８は要求「ＳａｖｅＨＴＭＬ」８９６を「ＭｅｓｓａｇＤｉａｌｏｇＳｅｒｖｉｃｅ」オブジェクト７７６へ送る。そうすると、「ＭｅｓｓａｇｅＤｉａｌｏｇＳｅｒｖｉｃｅ」オブジェクト７７６は、ユーザ８３０に対し、現在表示中のＨＴＭＬファイルを保存したいか問い合わせるメッセージの要求「ＳａｖｅＨＴＭＬ」８９８を送る。ユーザ８３０からの応答「ＮＯ」８９８が「ＭｅｓｓａｇｅＤｉａｌｏｇＳｅｒｖｉｃｅ」オブジェクト７７６に返されると、同オブジェクト７７６は「ＮＯ」８９６を「ＭｅｎｕＭａｎａｇｅｒ」オブジェクト７７８へ返す。そうすると、「ＭｅｎｕＭａｎａｇｅｒ」オブジェクト７７８は、呼び出し「Ｄｅｓｔｒｏｙ（ｄｅｌｅｔｅ）」９００を、そのＨＴＭＬ文書であるところの「ＨＴＭＬｎｔＥｎｔｉｔｙ」オブジェクト８８０へ送る。次に、「ＭｅｎｕＭａｎａｇｅｒ」オブジェクト７７８は、呼び出し「ｃｌｏｓＳＧＭＬＷｉｎｄｏｗ」９０２を「ＶｉｅｗＤｏｃｕｍｅｎｔ」オブジェクト７８６へ送り、同オブジェクト７８６に開いているＳＧＭＬ文書の表示ウィンドウを閉じる処理をさせる。次に、「ＭｅｎｕＭａｎａｇｅｒ」オブジェクト７７８は、開いているＳＧＭＬファイルである「ＳＧＭＬｎｔＥｎｔｉｔｙ」オブジェクト８８２へ呼び出し「Ｄｅｓｔｒｏｙ（ｄｅｌｅｔｅ）」９０４を送る。次に、「ＭｅｎｕＭａｎａｇｅｒ」オブジェクト７７８は、呼び出し「ＯｐｅｎＳＧＭＬ」９０６を「ＦｉｌｅＳｅｒｖｉｃｅ」オブジェクト７８２へ送る。「ＦｉｌｅＳｅｒｖｉｃｅ」オブジェクト７８２は、そのＳＧＭＬ文書のファイル名をユーザ８３０に要求するため、呼び出し「ｇｅｔＦｉｌｅＮａｍｅ」９０８を発行する。ユーザ８３０の応答であるファイル名（ＦｉｌｅＮａｍｅ）９０８が「ＦｉｌｅＳｅｒｖｉｃｅ」オブジェクト７８２に返される。「ＦｉｌｅＳｅｒｖｉｃｅ」オブジェクト７８２は、ファイル名（ＦｉｌｅＮａｍｅ）９１０と一緒に要求「ｉｓＦｏｕｎｄ」９１０を「ＩＯＳｅｒｖｉｃｅ」オブジェクト８３２へ送り、���答「ＹＥＳ」９１０によって、ユーザ８３０より返されたファイル名（ＦｉｌｅＮａｍｅ）９０８が存在することを確認する。そして、「ＦｉｌｅＳｅｒｖｉｃｅ」オブジェクト７８２は、ファイル名（ＦｉｌｅＮａｍｅ）９１２と一緒に要求「ｉｓＲｅａｄａｂｌｅ」９１２を「ＩＯＳｅｒｖｉｃｅ」オブジェクト８３２へ送り、応答「ＹＥＳ」９１２により、そのファイルをシステムが読み取り可能であることを確認する。次に、「ＦｉｌｅＳｅｒｖｉｃｅ」オブジェクト７８２は、ファイル名（ＦｉｌｅＮａｍｅ）９１４と一緒に要求「ｇｅｔＥｎｔｉｔｙＯｂｊｅｃｔ」９１４を「ＩＯＳｅｒｖｉｃｅ」オブジェクト８３２に送り、同オブジェクト８３２によって「ｎｔＥｎｔｉｔｙ」９１４を取得させ、それを返させる。この「ＮｔＥｎｔｉｔｙ」９０６は、要求「ＯｐｅｎＳＧＭＬ」９０６に応答して「ＭｅｎｕＭａｎａｇｅｒ」オブジェクト７７８へ返される。
【００９３】
そうすると、「ＭｅｎｕＭａｎａｇｅｒ」オブジェクト７７８は、呼び出し「ｇｅｔＳｙｍｂｏｌＴａｂｌｅ」９１６によって「ｎｔＥｎｔｉｔｙ」９１６を「ＰａｒｓｅｒＳｅｒｖｉｃｅ」オブジェクト７７４へ送る。そうすると、「ＰａｒｓｅｒＳｅｒｖｉｃｅ」オブジェクト７７４は、そのＳＧＭＬ文書及びＤＴＤのための「ＳｙｍｂｏｌＴａｂｌｅ」（記号テーブル）９１６を生成し、それを「ＭｅｎｕＭａｎａｇｅｒ」オブジェクト７７８へ返す。そうすると、「ＭｅｎｕＭａｎａｇｅｒ」オブジェクト７７８は、呼び出し「ａｒｅＴｈｉｓＭａｐＡｎｄＴｈｅＳＧＭＬＤｏｃＣｏｎｓｉｓｔｅｎｔ」９１８により、「ｎｔＥｎｔｉｔｙ」９１８及びマップ（Ｍａｐ）９１８を「ＭａｐＳｅｒｖｉｃｅ」オブジェクト７８０へ送り、その既存のマップ９１８を新しいＳＧＭＬ文書である「ｎｔＥｎｔｉｔｙ」９１８で使用できるか確認する。マップ９１８が使用できないときには、応答「ＮＯ」９１８が「ＭｅｎｕＭａｎａｇｅｒ」オブジェクト７７８に返される。この場合、「ＭｅｎｕＭａｎａｇｅｒ」オブジェクト７７８は要求「ｉｓＭａｐＳａｖｅｄ」９２０を「ＭａｐＳｅｒｖｉｃｅ」オブジェクト７８０へ送り、そのマップ９１８が保存されるならば応答「ＹＥＳ」９２０を受け取る。そうすると、「ＭｅｎｕＭａｎａｇｅｒ」オブジェクト７７８は、呼び出し「ｄｅｓｔｒｏｙ（ｅｒａｓｅ  ａｎｄ  ｄｅｌｅｔｅ）」９２２を「ＳＧＭＬＳｙｍｂｏｌＴａｂｌｅ」オブジェクト８８４へ送り、記号テーブルの形式で表されたシステムの現在のＳＧＭＬファイルを破棄させる。次に、「ＭｅｎｕＭａｎａｇｅｒ」オブジェクト７７８は、呼び出し「Ｄｅｓｔｒｏｙ（ｄｅｌｅｔｅ）」９２４を「Ｍａｐ」オブジェクト７８８へ送り、システムの旧ＳＧＭＬ文書用の現在のマップを破棄させる。そして、「ＭｅｎｕＭａｎａｇｅｒ」オブジェクト７７８は、呼び出し「ｒｅｓｅｔＭａｐ」９２６を「ＭａｐＳｅｒｖｉｃｅ」オブジェクト７８０へ送り、処理すべき新しいＳＧＭＬ文書用の新しいマップを初期化させる。次に、「ＭｅｎｕＭａｎａｇｅｒ」オブジェクト７７８は、「ＩＯＳｅｒｖｉｃｅ」オブジェクト８３２より取得した「ＮｔＥｎｔｉｔｙ」９２８を送るため、呼び出し「ｕｓｅＴｈｉｓＳＧＭＬＤｏｃ」９２８を「ＭａｐＣｒｅａｔｅＥｄｉｔＳｅｒｖｉｃｅ」オブジェクト７９２へ送る。次に、「ＭｅｎｕＭａｎａｇｅｒ」オブジェクト７７８は、呼び出し「ＵｓｅＴｈｉｓＳｙｍｂｏｌＴａｂｌｅ」９３０を、「ＰａｒｓｅｒＳｅｒｖｉｃｅ」オブジェクト７７４から取得した「ＳｙｍｂｏｌＴａｂｌｅ」（記号テーブル）オブジェクト９３０と共に「ＭａｐＣｒｅａｔｅＥｄｉｔＳｅｒｖｉｃｅ」オブジェクト７９２へ送る。そうすると、「ＭａｐＣｒｅａｔｅＥｄｉｔＳｅｒｖｉｃｅ」オブジェクト７９２は要求されたＳＧＭＬ文書に関するそれ以降の処理を扱う。
【００９４】
図２９は、マップエディタＧＵＩの設計図をクラス線図で示している。「ＡｐｐｌｉｃａｔｉｏｎＷｉｎｄｏｗ」オブジェクト７７２、「ＭｅｎｕＭａｎａｇｅｒ」オブジェクト７７８、「ＧＵＩＥｄｉｔｏｒＦｏｒＭａｐ」オブジェクト７８４、「ＳｙｍｂｏｌＴａｂｌｅ」オブジェクト７７０、「ＭａｐＣｒｅａｔｅＥｄｉｔＳｅｒｖｉｃｅ」オブジェクト７９２については、図２５乃至図２７に関連して説明済みである。図２９において、「ＭａｐＥｄｉｔＤｉａｌｏｇ」オブジェクト９５０は「ＧＵＩＥｄｉｔｏｒＦｏｒＭａｐ」オブジェクト７８４に含まれている。この「ＭａｐＥｄｉｔＤｉａｌｏｇ」オブジェクト９５０は、「Ｍａｐ  Ｅｄｉｔ」ダイアログボックスの表示の処理を扱う。これには、ＳＧＭＬ要素のマッピングの所定時点でユーザが実行できる操作又は要求の種類を決定することが含まれる。「ＭａｐＴａｇ」オブジェクト９５２は、ＳＧＭＬ要素のＨＴＭＬ要素へのマッピングに関係したタスク及びオブジェクトを処理するため「ＭａｐＣｒｅａｔｅＥｄｉｔＳｅｒｖｉｃｅ」オブジェクト７９２及び「ＳｙｍｂｏｌＴａｂｌｅ」オブジェクト７７０と対話する。「ＡｓｓｉｇｎＡｔｔｒｉｂｕｔｅ」オブジェクト９５４は、ＨＴＭＬ要素の属性への値割り当てに関係したタスク及びオブジェクトを処理するため「ＭａｐＣｒｅａｔｅＥｄｉｔＳｅｒｖｉｃｅ」オブジェクト７９２及び「ＳｙｍｂｏｌＴａｂｌｅ」オブジェクト７７０と対話する。
【００９５】
図３０乃至図３８は、ＳＧＭＬからＨＴＭＬへのマッピングの、ＨＴＭＬ属性への値の割り当て及びＳＧＭＬタグのＨＴＭＬタグへのマッピングのための振る舞いを説明するオブジェクト・メッセージ線図である。図３０乃至図３８のオブジェクト線図は大きいため、複数の図面に分割されている。しかし、これら図面を繋げば一つのオブジェクト線図になる。「ＭａｐＥｄｉｔＤｉａｌｏｇ」オブジェクト９５０、「ＭａｐＴａｇ」オブジェクト９５２、「ＡｓｓｉｇｎＡｔｔｒｉｂｕｔｅ」オブジェクト９５４、「ＭａｐＣｒｅａｔｅＥｄｉｔｓｅｒｖｉｃｅ」オブジェクト７９２については、図２９に関連して説明済みである。「ＧＵＩＥｄｉｔｏｒｆｏｒＭａｐ」オブジェクト７８４は図２５に関連して既に説明した。「ＨＴＭＬＳｙｍｂｏｌＴａｂｌｅ」オブジェクト８００は図２６に関連して説明済みである。「ＳＧＭＬＳｙｍｂｏｌＴａｂｌｅ」オブジェクト８８４は図２８に関連して説明済みである。
【００９６】
典型的な動作方法について述べる。図３０の「ＧＵＩＥｄｉｔｏｒＦｏｒＭａｐ」オブジェクト７８４は、関数呼び出し「ＥｄｉｔＭａｐ」９６０で「ＭａｐＥｄｉｔＤｉａｌｏｇ」オブジェクト９５０のコンストラクタを呼び出すことにより、図２３の「Ｍａｐ  Ｅｄｉｔ」ダイアログボックスを生成する。
【００９７】
図２３の「ＳＧＭＬ  Ｔａｇ」リストボックス７０２に入力するために、「ＭａｐＥｄｉｔＤｉａｌｏｇ」オブジェクト９５０は、関数呼び出し「ｇｅｔＮｅｘｔＳＧＭＬＴａｇ」９６２によって、「ＭａｐＴａｇ」オブジェクト９５２から、最初のＳＧＭＬタグ９６２を「ＹＥＳ」メッセージ  ９５２と一緒に受け取り、図２３の「ＳＧＭＬ  Ｔａｇ」リストボックス７０２にそのＳＧＭＬタグを表示する。「ＭａｐＴａｇ」オブジェクト９５２は、関数呼び出し「ｇｅｔＦｉｒｓｔＥｌｅｍｅｎｔ」９６４によって、「ＳＧＭＬＳｙｍｂｏｌＴａｂｌｅ」オブジェクト８８４より、図３１の最初のＳＧＭＬタグ９６４を「ＹＥＳ」メッセージ９６４と一緒に受け取る。これ以外のＧＵＩの設計のやり方は、既に処理した全てのＳＧＭＬタグのリストを表示したままにする方法である。
【００９８】
ユーザがマッピングするＳＧＭＬタグを選択するため、図２３の「ＳＧＭＬ  Ｔａｇ」リストボックス７０２内のそのＨＴＭＬタグをマウスでダブルクリックすると、図３０の関数呼び出し「ｓｅｌｅｃｔｅｄＳＧＭＬＴａｇ」９６６により、ＳＧＭＬタグ９６６が「ＭａｐＴａｇ」オブジェクト９５２へ送られる。図３１の「ＭａｐＴａｇ」オブジェクト９５２は、図３１の関数呼び出し「ｓｅｌｅｃｔｅｄＳＧＭＬＴａｇ」９６７により、ＳＧＭＬタグ９６７を図３１の「ＭａｐＣｒｅａｔｅＥｄｉｔＳｅｒｖｉｃｅ」オブジェクト７９２へ送る。
【００９９】
図２３の「Ｃｕｒｒｅｎｔ  ＨＴＭＬ  Ｔａｇ」リストボックス７０４に入力するため、次に、図３０の「ＭａｐＥｄｉｔＤｉａｌｏｇ」オブジェクト９５０は、選択されたＳＧＭＬタグがマッピングされるＨＴＭＬタグ９６８を「ＹＥＳ」メッセージ９６８と一緒に、「ＭａｐＴａｇ」オブジェクト９５２から関数呼び出し「ｇｅｔＮｅｘｔＣｕｒｒｅｎｔＨＴＭＬＴａｇ」９６８により受け取る。この関数は、一度に一つのＨＴＭＬタグ９６８を受け取り、それを図２３の「Ｃｕｒｒｅｎｔ  ＨＴＭＬ  Ｔａｇ」リストボックスに表示する。図３１の「ＭａｐＴａｇ」オブジェクト９５２は、関数呼び出し「ｇｅｔＥｘｉｓｔｉｎｇＨＴＭＬＴａｇｓｉｎＭａｐ」９７０によって、次のＨＴＭＬタグ９７０を「ＹＥＳ」メッセージ９７０と一緒に「ＭａｐＣｒｅａｔｅＥｄｉｔＳｅｒｖｉｃｅ」オブジェクト７９２から受け取る。ＳＧＭＬタグを初めて割り当てようとするときには、図２３の「Ｃｕｒｒｅｎｔ  ＨＴＭＬ  Ｔａｇ」リストボックス７０４には「ＮＯＴ  ＡＳＳＩＧＮＥＤ」が表示されることになろう。
【０１００】
図２３の「Ｌｅｇａｌ  ＨＴＭＬ  Ｔａｇ」リストボックス７０６に入力するため、図３０の「ＭａｐＥｄｉｔＤｉａｌｏｇ」オブジェクト９５０は、関数呼び出し「ｓｅｔＬａｓｔＣｕｒｒｅｎｔＨＴＭＬＴａｇＩｎＬｉｓｔ」９７２により、図２３の「Ｃｕｒｒｅｎｔ  ＨＴＭＬ  Ｔａｇ」リストボックス７０４内の最後のＨＴＭＬタグ９７２を「ＭａｐＴａｇ」オブジェクト９５２へ送る。次に、「ＭａｐＥｄｉｔＤｉａｌｏｇ」オブジェクト９５０は、関数呼び出し「ｇｅｔＬｅｇａｌＨＴＭＬＴａｇ」９７４により、リーガルなＨＴＭＬタグ９７４を「ＹＥＳ」メッセージ９７４と一緒に「ＭａｐＴａｇ」オブジェクト９５２から受け取る。この関数は、一度に一つのＨＴＭＬタグ９７４を受け取り、それを図２３の「Ｌｅｇａｌ  ＨＴＭＬ  Ｔａｇ」リストボックス７０６に表示する。このリーガルなＨＴＭＬタグは、図２３の「Ｃｕｒｒｅｎｔ  ＨＴＭＬ  Ｔａｇ」リストボックス７０４内の最後のＨＴＭＬタグの後に置くことができる。図３１において、「ＭａｐＴａｇ」オブジェクト９５２は、「ＨＴＭＬＳｙｍｂｏｌＴａｂｌｅ」オブジェクト８００から、関数呼び出し「ｇｅｔＦｉｒｓｔＬｅｇａｌＥｌｅｍｅｎｔ」９７６により、「ＹＥＳ」メッセージ９７６と一緒に、リーガルなＨＴＭＬタグ９７６を一度に一つずつ受け取り、あるいは、「ＭａｐＴａｇ」オブジェクト９５２は、「ＨＴＭＬＳｙｍｂｏｌＴａｂｌｅ」オブジェクト８００から、関数呼び出し「ＧｅｔＮｅｘｔＬｅｇａｌＥｌｅｍｅｎｔ」９７８により、「ＹＥＳ」メッセージ９７８と一緒にリーガルなＨＴＭＬタグ９７８を受け取る。
【０１０１】
図２３の「Ｌｅｇａｌ  ＨＴＭＬ  Ｔａｇ」リストボックス７０６のＨＴＭＬタグを図２３の「Ｃｕｒｒｅｎｔ  ＨＴＭＬ  Ｔａｇ」リストボックス７０４に追加するため、ユーザは、図２３の「Ｌｅｇａｌ  ＨＴＭＬ  Ｔａｇ」リストボックス７０６から一つのＨＴＭＬタグを選びマウスでダブルクリックする。そのＨＴＭＬタグは「Ｃｕｒｒｅｎｔ  ＨＴＭＬ  Ｔａｇ」リストボックス７０４に追加される。図３０の選択されたＨＴＭＬタグ９８０は、関数呼び出し「ａｄｄＳｅｌｅｃｔｅｄＨＴＭＬＴａｇ」９８０により「ＭａｐＴａｇ」オブジェクト９５２へ送られる。図３１において、「ＭａｐＴａｇ」オブジェクト９８２は、関数呼び出し「ｓｅｌｅｃｔｅｄＨＴＭＬＴａｇ」９８２により、ＨＴＭＬタグ９８２を「ＭａｐＣｒｅａｔｅＥｄｉｔＳｅｒｖｉｃｅ」オブジェクト７９２に送る。「ＭａｐＴａｇ」オブジェクト９５２は、そのＨＴＭＬタグ９８２を現在のマップに追加するように、関数呼び出し「ａｄｄＳｅｌｅｃｔｅｄＨＴＭＬＴａｇＴｏＣｕｒｒｅｎｔＭａｐｐｉｎｇＬｉｓｔ」９８４により「ＭａｐＣｒｅａｔｅＥｄｉｔＳｅｒｖｉｃｅ」オブジェクト７９２に通知する。図３０の「ＭａｐＥｄｉｔＤｉａｌｏｇ」オブジェクト９５０は、「ＭａｐＴａｇ」オブジェクト９５２への関数呼び出し「ｓｅｔＬａｓｔＣｕｒｒｅｎｔＨＴＭＬＴａｇＩｎＬｉｓｔ」９８５によりＨＴＭＬタグ９８６をリストの最後のタグとして設定する。
【０１０２】
図２３の「Ｌｅｇａｌ  ＨＴＭＬ  Ｔａｇ」リストボックス７０６を更新するために、図３０の「ＭａｐＥｄｉｔＤｉａｌｏｇ」オブジェクト９５０は、関数呼び出し「ｇｅｔＬｅｇａｌＨＴＭＬＴａｇ」９８８により、「ＭａｐＴａｇ」オブジェクト９５２から、リーガルなタグが存在するならばＨＴＭＬタグ９８８を「ＹＥＳ」メッセージと一緒に受け取る。次に、「ＭａｐＴａｇ」オブジェクト９５２は、最初に要求したリーガルな要素であれば、関数呼び出し「ｇｅｔＦｉｒｓｔＬｅｇａｌＥｌｅｍｅｎｔ」９９０により、「ＨＴＭＬｓｙｍｂｏｌＴａｂｌｅ」オブジェクト８００からＨＴＭＬタグ９９０を「ＹＥＳ」メッセージ９９０と一緒に受け取るが、最初に要求されたリーガルな要素でなければ、
「ＭａｐＴａｇ」オブジェクト９５２は、関数呼び出し「ｇｅｔＮｅｘｔＬｅｇａｌＥｌｅｍｅｎｔ」９９２により、「ＨＴＭＬＳｙｍｂｏｌＴａｂｌｅ」オブジェクト８００からＨＴＭＬタグ９９２を「ＹＥＳ」メッセージ９９２と一緒に受け取る。
【０１０３】
図２３の「ＨＴＭＬ  Ｔａｇ  Ａｔｔｒｉｂｕｔｅ」リストボックス７２０に入力するため、図３０の「ＭａｐＥｄｉｔＤｉａｌｏｇ」オブジェクト９５０は、図２３の「Ｃｕｒｒｅｎｔ  ＨＴＭＬ  Ｔａｇ」リストボックス７０４内の一つのＨＴＭＬタグ９９４を、関数呼び出し「ｓｅｌｅｔｃｅｄＨＴＭＬＴａｇ」９９４により「Ａｓｓｉｇｎａｔｔｒｉｂｕｔｅ」オブジェクト９５４に送る。次に、「ＭａｐＥｄｉｔＤｉａｌｏｇ」オブジェクト９５０は、「ＡｓｓｉｇｎＡｔｔｒｉｂｕｔｅ」オブジェクト９５４から関数呼び出し「ｇｅｔＮｅｘｔＨＴＭＬＡｔｔｒｉｂｕｔｅ」９９６により、そのＨＴＭＬタグの属性（ＨＴＭＬＡｔｔｒｉｂｕｔｅ）９９６を「ＹＥＳ」メッセージ９９６と一緒に受け取る。この関数「ｇｅ６ＮｅｘｔＨＴＭＬＡｔｔｒｉｂｕｔｅ」９９６は、一度に一つのＨＴＭＬ属性９９６を受け取って図２３の「ＨＴＭＬ  Ｔａｇ  Ａｔｔｒｉｂｕｔｅ」リストボックス７２０に表示する。図３２の「ＡｓｓｉｇｎＡｔｔｒｉｂｕｔｅ」オブジェクト９５４は、「ＨＴＭＬＳｙｍｂｏｌＴａｂｌｅ」オブジェクト８００から、関数呼び出し「ｇｅｔＦｉｒｓｔＡｔｔｒｉｂｕｔｅＯｆＥｌｅｍｅｎｔ」９９８によって、一度に一つのＨＴＭＬ属性９９８を「ＹＥＳ」メッセージ９９８と一緒に受け取る。この属性が最初の属性でなければ、「ＡｓｓｉｇｎＡｔｔｒｉｂｕｔｅ」オブジェクト９５４は、「ＨＴＭＬＳｙｍｂｏｌＴａｂｌｅ」オブジェクト８００から、関数呼び出し「ｇｅｔＮｅｘｔＡｔｔｒｉｂｕｔｅ」１００２により、ＨＴＭＬタグ９９８のＨＴＭＬ属性１００２を「ＹＥＳ」メッセージ１００２と一緒に受け取る。「ＡｓｓｉｇｎＡｔｔｒｉｂｕｔｅ」オブジェクト９５４が受け取って図３０の「ＭａｐＥｄｉｔＤｉａｌｏｇ」オブジェクト９５０に返す各属性について、「ＭａｐＥｄｉｇＤｉａｌｏｇ」オブジェクト９５０は、関数呼び出し「ＩｓＣｕｒｒｅｎｔＡｔｔｒｉｂｕｔｅＯｆＲｅｑｕｉｒｅｄＴｙｐｅ」１０００により、属性が必要な型のものであるか「ＡｓｓｉｇｎＡｔｔｒｉｂｕｔｅ」オブジェクト９５４に確認し、その属性が必要な型でなく「ＨＴＭＬＳｙｍｂｏｌＴａｂｌｅ」オブジェクト８００から取得すべきであることを「ＮＯ」メッセージ１０００で指示する。図３２の「ＡｓｓｉｇｎＡｔｔｒｉｂｕｔｅ」オブジェクト９５４は、関数呼び出し「ＩｓＣｕｒｒｅｎｔＡｔｔｒｉｂｕｔｅＯｆＲｅｑｕｉｒｅｄＴｙｐｅ」１００１により、属性が必要な型であるか「ＨＴＭＬＳｙｍｂｏｌＴａｂｌｅ」オブジェクト８００に確認し、そうでないことを「ＮＯ」メッセージ１００１で指示する。
【０１０４】
値を割り当てる属性を選択するため、ユーザは、図２３の「ＨＴＭＬ  Ｔａｇ  Ａｔｔｒｉｂｕｔｅ」リストボックス７２０内の一つの属性を選び、それをマウスでダブルクリックする。図３０の「ＭａｐＥｄｉｔＤｉａｌｏｇ」オブジェクト９５０は、選択されたＨＴＭＬ属性１００４を、関数呼び出し「ｓｅｌｅｃｔｅｄＨＴＭＬＡｔｔｒｉｂｕｔｅ」１００４によって「ＡｓｓｉｇｎＡｔｔｒｉｂｕｔｅ」オブジェクト９５４へ送る。「ＨＴＭＬ属性１００６に割り当てられる属性型によって、図３０の「ＭａｐＥｄｉｔＤｉａｌｏｇ」オブジェクト９５０は異なった処理をする。例えば、図３２の「ＡｓｓｉｇｎＡｔｔｒｉｂｕｔｅ」オブジェクト９５４は、関数呼び出し「ｇｅｔＡｔｔｒｉｂｕｔｅＡｓｓｉｇｎｍｅｎｔＩｎｆｏｒｍａｔｉｏｎｆｏｒＨＴＭＬＡｔｔｒｉｂｕｔｅ」１００６によりＨＴＭＬ属性１００６を「ＭａｐＣｒｅａｔｅＥｄｉｔＳｅｒｖｉｃｅ」オブジェクト７９２へ送ることによって、ＳＧＭＬ属性型１００６、ＳＧＭＬタグ１００６、及びＳＧＭＬ属性１００６を取得する。図３０の「ＭａｐＥｄｉｔＤｉａｌｏｇ」オブジェクト９５０は、「ＡｓｓｉｇｎＡｔｔｒｉｂｕｔｅ」オブジェクト９５４から、関数呼び出し「ｇｅｔＡｔｔｒｉｂｕｔｅＴｙｐｅ」１００８によりＳＧＭＬ属性型１００８を受け取る。図２３の「ＳＧＭＬ  Ａｔｔｒｉｂｕｔｅ」ラジオボタン７２６は、選択状態に表示される。図３０の「ＭａｐＥｄｉｔＤｉａｌｏｇ」オブジェクト９５０は、関数呼び出し「ｇｅｔＳｏｕｒｃｅＳＧＭＬＴａｇＡｎｄＡｔｔｒｉｂｕｔｅ」１０１０により、ソースＳＧＭＬタグ１０１０と、ＨＴＭＬ属性１００４に割り当てられたソースＳＧＭＬ属性１０１０を取得し、それらを図２３の「Ｓｏｕｒｃｅ  ＳＧＭＬ  Ｔａｇ」リストボックス７２２と「ＳＧＭＬ  Ｔａｇ  Ａｔｔｒｉｂｕｔｅ」リストボックス７２４に表示する。次に、「ＭａｐＥｄｉｔＤｉａｌｏｇ」オブジェクト９５０は、「ＡｓｓｉｇｎＡｔｔｒｉｂｕｔｅ」オブジェクト９５４から、関数呼び出し「ｇｅｔＮｅｘｔＳｏｕｒｃｅＳＧＭＬＴａｇ」１０１２によって、ソースＳＧＭＬタグ１０１２を一度に一つずつ、「ＹＥＳ」メッセージ１０１２と一緒に受け取り、それを図２３の「Ｓｏｕｒｃｅ  ＳＧＭＬ  Ｔａｇ」リストボックス７２２に表示する。図３２の「ＡｓｓｉｇｎＡｔｔｒｉｂｕｔｅ」オブジェクト９５４は、最初の要素を受け取る場合には、関数呼び出し「ｇｅｔＦｉｒｓｔＥｌｅｍｅｎｔ」１０１４によって、「ＳＧＭＬｓｙｍｂｏｌＴａｂｌｅ」オブジェクト８８４から、ソースＳＧＭＬタグ１０１４を「ＹＥＳ」メッセージ１０１４と一緒に受け取り、それが最初の要素でない場合には、呼び出し「ｇｅｔＮｅｘｔＥｌｅｍｅｎｔ」１０１８によって、ソースＳＧＭＬタグ１０１８を一つずつ「ＹＥＳ」メッセージ１０１８と一緒に受け取る。「ＡｓｓｉｇｎＡｔｔｒｉｂｕｔｅ」オブジェクト９５４は、ソースＳＧＭＬタグ１０１４が属性を持っていることを確認するため、関数呼び出し「ｅｌｅｍｅｎｔＨａｓＡｔｔｒｉｂｕｔｅ」１０１６により「ＳＧＭＬＳｙｍｂｏｔＴａｂｌｅ」オブジェクト８８４に照会し、最初の要素でそれが属性を持つ場合には応答「ＹＥＳ」１０１６を得る。最初の要素でないときには、「ＡｓｓｉｇｎＡｔｔｒｉｂｕｔｅ」オブジェクト９５４は、ソースＳＧＭＬタグ１０１８が属性を持っていることを確認するため、関数呼び出し「ｅｌｅｍｅｎｔＨａｓＡｔｔｒｉｂｕｔｅ」１０２０により「ＳＧＭＬＳｙｍｂｏｌＴａｂｌｅ」オブジェクト８８４に照会し、応答「ＹＥＳ」１０２０を得る。図３０の「ＭａｐＥｄｉｔＤｉａｌａｏｇ」オブジェクト９５０は、関数呼び出し「ｇｅｔＮｅｘｔＳｏｕｒｃｅＳＧＭＬＡｔｔｒｉｂｕｔｅ」１０２２によって、「ＡｓｓｉｇｎｍＡｔｔｒｉｂｕｔｅ」オブジェクト９５４から、以前に割り当てられたソースＳＧＭＬタグの全属性１０２２０を一度に一つずつ、「ＹＥＳ」メッセージ１０２２と一緒に受け取り、それを図２３のソース「ＳＧＭＬ  Ｔａｇ  Ａｔｔｒｉｂｕｔｅ」（ソースＳＧＭＬタグ属性）リストボックス７２４に表示する。図３２の「ＡｓｓｉｇｎＡｔｔｒｉｂｕｔｅ」オブジェクト９５４は、関数呼び出し「ｇｅｔＡｔｔｒｉｂｕｔｅＯｆＥｌｅｍｅｎｔ」１０２４によってＳＧＭＬタグ１０２４を送ることにより、「ＳＧＭＬＳｙｍｂｏｌＴａｂｌｅ」オブジェクト８８４からＳＧＭＬ属性１０２４と「ＹＥＳ」メッセージ１０２４を受け取るが、これは、その属性が要素の最初の属性のときであり、最初の属性でないときには、関数呼び出し「ｇｅｔＮｅｘｔＡｔｔｒｉｂｕｔｅ」１０２６によって「ＳＧＭＬＳｙｍｂｏｌＴａｂｌｅ」オブジェクト８８４からＳＧＭＬ属性１０２６を一度に一つずつ「ＹＥＳ」メッセージ１０２６と共に受け取る。ユーザは、図２３の「Ｓｏｕｒｃｅ  ＳＧＭＬ  Ｔａｇ」リストボックスから一つのＳＧＭＬタグを選んでマウスでダブルクリックする。現在の構成は、選択するものをマウスでダブルクリックすることによる選択をサポートしている。しかし、それに代わるどのような選択手法を使ってもよく、例えば、選択するものをハイライト表示してエンターキー又はリターンキーを押す手法でもよい。図３６の「ＭａｐＥｄｉｔＤｉａｌｏｇ」オブジェクト９５０は、関数呼び出し「ｓｅｌｅｃｔｅｄＳｏｕｒｃｅＳＧＭＬＴａｇ」１１１０により、選択されたソースＳＧＭＬタグ１１１０を「ＡｓｓｉｇｎＡｔｔｒｉｂｕｔｅ」オブジェクト９５４へ送る。次に、「ＭａｐＥｄｉｔＤｉａｌｏｇ」オブジェクト９５０は、関数呼び出し「ｇｅｔＮｅｘｔＳｏｕｒｃｅＳＧＭＬＡｔｔｒｉｂｕｔｅ」１０２２により、「ＡｓｓｉｇｎＡｔｔｒｉｂｕｔｅ」オブジェクト９５４から、選択されたソースＳＧＭＬタグ１１１０の全てのＳＧＭＬ属性１０２２を一度に一つずつ、「ＹＥＳ」メッセージ１０２２と共に受け取り、それを図２３の「ＳＧＭＬ  Ｔａｇ  Ａｔｔｒｉｂｕｔｅ」リストボックス７２４に表示する。図３２の「ＡｓｓｉｇｎＡｔｔｒｉｂｕｔｅ」オブジェクト９５４は、関数呼び出し「ｇｅｔＦｉｒｓｔＡｔｔｒｉｂｕｔｅＯｆＥｌｅｍｅｎｔ」１０２４により、「ＳＧＭＬＳｙｍｂｏｌＴａｂｌｅ」オブジェクト８８４からＳＧＭＬ属性１０２４を「ＹＥＳ」メッセージ１０２４と共に受け取るが、これは、最初の属性を要求しているときであり、最初の属性でないときは、「ＡｓｓｉｇｎＡｔｔｒｉｂｕｔｅ」オブジェクト９５４は関数呼び出し「ｇｅｔＮｅｘｔＡｔｔｒｉｂｕｔｅ」１０２６により、「ＳＧＭＬＳｙｍｂｏｌＴａｂｌｅ」オブジェクト８８４から、ＳＧＭＬ属性１０２６を一度に一つずつ、「ＹＥＳ」メッセージ１０２６と共に受け取る。
【０１０５】
ユーザは、図２３の「ＳＧＭＬ  Ｔａｇ  Ａｔｔｒｉｂｕｔｅ」（ソースＳＧＭＬタグ属性）リストボックス７２４から一つのＳＧＭＬ属性を選び、それをマウスでダブルクリックする。図３６の「ＭａｐＥｄｉｔＤｉａｌｏｇ」オブジェクト９５０は、選択されたソースＳＧＭＬ属性１１１２を、関数呼び出し「ｓｅｌｅｃｔｅｄＳｏｕｒｃｅＳＧＭＬＡｔｔｒｉｂｕｔｅ」９５４により「ＡｓｓｉｇｎＡｔｔｒｉｂｕｔｅ」オブジェクト９５４に送る。次に、ユーザは図２３の「Ａｓｓｉｇｎ」ボタン７３６を選択する。「ＭａｐＥｄｉｔＤｉａｌｏｇ」オブジェクト９５０は、図３６の関数呼び出し「ａｓｓｉｇｎｅｄＳＧＭＬＡｔｔｒｉｂｕｔｅ」１１１４によって、そのＨＴＭＬ属性にあるＳＧＭＬ属性が割り当てられていることを「ＡｓｓｉｇｎＡｔｔｒｉｂｕｔｅ」オブジェクト９５４に知らせる。図３８の「ＡｓｓｉｇｎＡｔｔｒｉｂｕｔｅ」オブジェクト９５４は、割り当てられようとしているＨＴＭＬタグのために、ＨＴＭＬ属性１１１６、ソースＳＧＭＬタグ１１１６及びソースＳＧＭＬ属性１１１６を、関数呼び出し「ａｓｓｉｇｎＨＴＭＬＡｔｔｒｉｂｕｔｅＷｉｔｈＳＧＭＬＡｔｔｒｉｂｕｔｅ」１１１６により「ＭａｐＣｒｅａｔｅＥｄｉｔＳｅｒｖｉｃｅ」オブジェクト７９２へ送る。
【０１０６】
ＨＴＭＬ属性にＳＧＭＬコンテントが割り当てられているときには、図２３の「ＳＧＭＬ  Ｃｏｎｔｅｎｔ」ラジオボタン７２８が選択される。図３３の「ＭａｐＥｄｉｔＤｉａｌｏｇ」オブジェクト９５０は、関数呼び出し「ｇｅｔＣｏｎｔｅｎｔＳＧＭＬＴａｇ」１０４８により「ＡｓｓｉｇｎＡｔｔｒｉｂｕｔｅ」オブジェクト９５４から、ＨＴＭＬ属性に割り当てられたコンテントＳＧＭＬタグ１０４８を「ＹＥＳ」メッセージ１０４８と共に受け取り、それを図２３の「Ｓｏｕｒｃｅ  ＳＧＭＬ  Ｔａｇ」リストボックス７２２に表示する。「ＭａｐＥｄｉｔＤｉａｌｏｇ」オブジェクト９５０は、関数呼び出し「ｇｅｔＮｅｘｔｃｏｎｔｅｎｔＳＧＭＬＴａｇ」１０５２により、「ＡｓｓｉｇｎＡｔｔｒｉｂｕｔｅ」オブジェクト９５４から、ＨＴＭＬ属性に割り当てることが可能な全てのコンテントＳＧＭＬタグ１０５２を一度に一つずつ、「ＹＥＳ」メッセージ１０５２と共に受け取り、それを図２３の「Ｓｏｕｒｃｅ  ＳＧＭＬ  Ｔａｇ」リストボックス７２２に表示する。「ＡｓｓｉｇｎＡｔｔｒｉｂｕｔｅ」オブジェクト９５４は、「ＳＧＭＬＳｙｍｂｏｌＴａｂｌｅ」オブジェクト８８４から、関数呼び出し「ｇｅｔＦｉｒｓｔＰｒｉｍｉｔｉｖｅＥｌｅｍｅｎｔ」１０５４によって、コンテントＳＧＭＬタグ１０５４を「ＹＥＳ」メッセージ１０５４と共に受け取るが、これは最初に要求されたＳＧＭＬタグである場合であり、そうでない場合は、関数呼び出し「ｇｅｔＮｅｘｔＰｒｉｍｉｔｉｖｅＥｌｅｍｅｎｔ」１０６５によって、「ＳＧＭＬＳｙｍｂｏｌＴａｂｌｅ」オブジェクト８８４から、コンテントＳＧＭＬタグ１０５６を一度に一つずつ、「ＹＥＳ」メッセージ１０５６と共に受け取る。
【０１０７】
ユーザは、図２３の「Ｓｏｕｒｃｅ  ＳＧＭＬ  Ｔａｇ」リストボックス７２２から、マウスでダブルクリックすることによりコンテントＳＧＭＬタグを選ぶ。図３３の「ＭａｐＥｄｉｔＤｉａｌｏｇ」オブジェクト９５０は、選択されたコンテントＳＧＭＬタグ１０５８を、関数呼び出し「ｓｅｌｅｃｔｅｄＣｏｎｔｅｎｔＳＧＭＬＴａｇ」１０５８により「ＡｓｓｉｇｎＡｔｔｒｉｂｕｔｅ」オブジェクト９５４へ送る。
【０１０８】
ユーザは図２３の「Ａｓｓｉｇｎ」ボタン７３６を選択する。図３３の「ＭａｐＥｄｉｔＤｉａｌｏｇ」オブジェクト９５０は、関数呼び出し「ａｓｓｉｇｎＳＧＭＬＣｏｎｔｅｎｔ」１０６０により、ＨＴＭＬ属性にあるＳＧＭＬコンテントが割り当てられていることを「ＡｓｓｉｇｎＡｔｔｒｉｂｕｔｅ」オブジェクト９５４に知らせる。図３５の「ＡｓｓｉｇｎＡｔｔｒｉｂｕｔｅ」オブジェクト９５４は、ＳＧＭＬコンテントを割り当てられようとしているＨＴＭＬ属性１０６２とコンテントＳＧＭＬタグ１０６２を、関数呼び出し「ａｓｓｉｇｎＨＴＭＬＡｔｔｒｉｂｕｔｅＷｉｔｈＳＧＭＬＣｏｎｔｅｎｔ」１０６２によって「ＭａｐＣｒｅａｔｅＥｄｉｔＳｅｒｖｉｃｅ」オブジェクト７９２へ送る。
【０１０９】
「システム」がＨＴＭＬ属性に割り当てられたならば、図２３の「Ｓｙｓｔｅｍ」ラジオボタン７３０が選択される。「ＭａｐＥｄｉｔｄｉａｌｏｇ」オブジェクト９５０は、それ以上何もしない。ユーザは、図２３の「Ａｓｓｉｇｎ」ボタン７３６を選択する。図３３の「ＭａｐＥｄｉｔＤｉａｌｏｇ」オブジェクト９５０は、システム値がＨＴＭＬ属性に割り当てられたことを、関数呼び出し「ａｓｓｉｇｎＳｙｓｔｅｍ」１０４９により「ＡｓｓｉｇｎＡｔｔｒｉｂｕｔｅ」オブジェクト９５４に知らせる。図３５の「ＡｓｓｉｇｎＡｔｔｒｉｂｕｔｅ」オブジェクト９５４は、システム値を割り当てられようとしているＨＴＭＬ属性１０５１を、関数呼び出し「ａｓｓｉｇｎＨＴＭＬＡｔｔｒｉｂｕｔｅＷｉｔｈＳｙｓｔｅｍ」１０５１により「ＭａｐＣｒｅａｔｅＥｄｉｔＳｅｒｖｉｃｅ」オブジェクト７９２に送る。「ＮＯ  Ｖａｌｕｅ」がＨＴＭＬ属性に割り当てられたならば、「ＮＯ  Ｖａｌｕｅ」ラジオボタン７３２が選択される。「ＭａｐＥｄｉｔｄｉａｌｏｇ」オブジェクト９５０は、それ以上何もしない。ユーザは、図２３の「Ａｓｓｉｇｎ」ボタン７３６を選択する。図３６の「ＭａｐＥｄｉｔｄｉａｌｏｇ」オブジェクト９５０は、ＨＴＭＬ属性に何も値が割り当てられないことを、関数割り込み「ａｓｓｉｇｎＮｏＶａｌｕｅ」１１０２により「ＡｓｓｉｇｎＡｔｔｒｉｂｕｔｅ」オブジェクト９５４に知らせる。図３８の「ＡｓｓｉｇｎＡｔｔｒｉｂｕｔｅ」オブジェクト９５４は、何も値が割り当てられないＨＴＭＬ属性１１０４を、関数呼び出し「ａｓｓｉｇｎＨＴＭＬＡｔｔｒｉｂｕｔｅＷｉｔｈＮｏＶａｌｕｅ」１１０４により「ＭａｐＣｒｅａｔｅＥｄｉｔＳｅｒｖｉｃｅ」オブジェクト７９２に送る。
【０１１０】
「Ｕｓｅｒ  Ｉｎｐｕｔ」（ユーザ入力）がＨＴＭＬ属性に割り当てられた場合、「Ｕｓｅｒ  ＩＮｐｕｔ」ラジオボタン７３４が選択される。図３６の「ＭａｐＥｄｉｔＤｉａｌｏｇ」オブジェクト９５０は、関数呼び出し「ｇｅｔＵｓｅｒＩｎｐｕｔＤａｔａ」１１００により、「ＡｓｓｉｇｎＡｔｔｒｉｂｕｔｅ」オブジェクト９５４からユーザ入力（ＵｓｅｒＩｎｐｕｔ）１１００を受け取り、その情報を図２３の「Ｕｓｅｒ  Ｉｎｐｕｔ」テキスト編集ボックス７３１に表示する。ユーザは、図２３の「Ｕｓｅｒ  Ｉｎｐｕｔ」テキスト編集ボックス７３１にデータを入力する。図３６の「ＭａｐＥｄｉｔＤｉａｌｏｇ」オブジェクト９５０は、関数呼び出し「ｓｅｌｅｃｔｅｄＵｓｅｒＩｎｐｕｔＤａｔａ」１１０６により、ユーザ入力データ１１０６を「ＡｓｓｉｇｎＡｔｔｒｉｂｕｔｅ」オブジェクト９５４に送る。そして、ユーザは図２３の「Ａｓｓｉｇｎ」ボタンを選択する。図３６の「ＭａｐＥｄｉｔＤａｉｌｏｇ」オブジェクト９５０は、関数「ａｓｓｉｇｎＵｓｅｒＩＮｐｕｔ」１１０８によって、ユーザ入力をＨＴＭＬ属性に割り当てることを「ＡｓｓｉｇｎＡｔｔｒｉｂｕｔｅ」オブジェクト９５４に知らせる。図３８の「ＡｓｓｉｇｎＡｔｔｒｉｂｕｔｅ」オブジェクト９５４は、ユーザ入力値が割り当てられるＨＴＭＬ属性１１０９とユーザ入力データ１１０９を、関数呼び出し「ａｓｓｉｇｎＨＴＭＬＡｔｔｒｉｂｕｔｅＷｉｔｈＵｓｅｒＩｎｐｕｔ」１１０９によって「ＭａｐＣｒｅａｔｅＥｄｉｔＳｅｒｖｉｃｅ」オブジェクト７９２に送る。
【０１１１】
ＨＴＭＬ属性にどのＨＴＭＬ属性ソース型が割り当てられた場合でも、ユーザはＨＴＭＬ属性のソース型を変更することができる。例えば、選択されたＨＴＭＬ属性に対し図２３の「Ｎｏ  Ｖａｌｕｅ」ラジオボタン７３２が選択されている場合、ユーザは、図２３の「Ｕｓｅｒ  Ｉｎｐｕｔ」ラジオボタン７３４などの他のラジオボタンを選択することにより、ＨＴＭＬ属性のソース型を変更することができる。ユーザは、選択したラジオボタンによっては、ＨＴＭＬ属性に値が割り当てられる前にさらに情報を入力する必要がある。
【０１１２】
「ＳＧＭＬ  Ａｔｔｒｉｂｕｔｅ」ラジオボタン７２６、「ＳＧＭＬ  Ｃｏｎｔｅｎｔ」ラジオボタン７２８、「Ｕｓｅｒ  Ｉｎｐｕｔ」ラジオボタン７３４については、ユーザは入力選択を２度以上変更できる。例えば、ユーザは、「Ｕｓｅｒ  Ｉｎｐｕｔ」テキスト編集ボックス７３１内のユーザ入力を２度以上変更できる。また例えば、ユーザは、「Ｓｏｕｒｃｅ  ＳＧＭＬ  Ｔａｇ」リストボックス７２２であるコンテントＳＧＭＬタグを選択した後に、別のコンテントＳＧＭＬタグを選択することができる。ユーザが最後に与えた値が「Ａｓｓｉｇｎ」ボタン７３６が選択された時にＨＴＭＬ属性に割り当てられる値である。
【０１１３】
ユーザは、値を割り当てる属性の選択、ＨＴＭＬ属性ソース型に関するラジオボタンの選択、ＨＴＭＬ属性への値の割り当て、及び、図２３の「Ａｓｓｉｇｎ」ボタンの選択を、必要な全てのＨＴＭＬ属性の割り当てが終わるまで繰り返す。そして、ユーザは、図２３の「Ａｓｓｉｇｎ  Ｄｏｎｅ」ボタン７４０を選択する。図３３の「ＭａｐＥｄｉｔＤｉａｌｏｇ」オブジェクト９５０は、属性への値割り当てが終わったことを、関数呼び出し「ａｓｓｉｇｎｄｏｎｅＳｅｌｅｃｔｅｄ」１０６４により「ＡｓｓｉｇｎＡｔｔｒｉｂｕｔｅ」オブジェクト９５４へ知らせ、同オブジェクト９５４は呼び出し「ａｓｓｉｇｎｄｏｎｅＳｅｌｅｃｔｅｄ」１０６６を図３５の「ＭａｐＣｒｅａｔｅＥｄｉｔＳｅｒｖｉｃｅ」オブジェクト７９２に送る。
【０１１４】
ユーザは、図２３の「Ｃｕｒｒｅｎｔ  ＨＴＭＬ  Ｔａｇ」リストボックス７０４にＨＴＭＬタグを追加する操作を必要なだけ繰り返す。ユーザは何時でも、図２３の「Ｃｌｅａｒ  ＨＴＭＬ」ボタン７０８又は「Ｄｅｌｅｔｅ  ＨＴＭＬ」ボタン７１０を選択することによって、「Ｃｕｒｒｅｎｔ  ＨＴＭＬ  Ｔａｇ」リストボックス７０４のクリア又はＨＴＭＬタグの削除を行うことができる。ユーザは、一つのＳＧＭＬタグのマッピングを完了したならば、「Ｍａｐ  ＳＧＭＬ  Ｔａｇ」ボタン７１４を選択する。図３３の「ＭａｐＥｄｉｔＤｉａｌｏｇ」オブジェクト９５０は、ユーザが選択されたＳＧＭＬタグのマッピングを完了したことを、関数呼び出し「ｄｏｎｅＭａｐｐｉｎｇＳＧＭＬＴａｇ」１０６８により「ＭａｐＴａｇ」オブジェクト９５２に知らせる。図３４の「ＭａｐＴａｇ」オブジェクト９５２は、ユーザが選択されたＳＧＭＬタグのマッピングを完了したことを、関数呼び出し「ｆｉｎｉｓｈＯｎｅＭａｐｐｉｎｇ」１０７０により「ＭａｐＣｒｅａｔｅＥｄｉｔＳｅｒｖｉｃｅ」オブジェクト７９２に知らせる。図３３の「ＭａｐＥｄｉｔＤｉａｌｏｇ」オブジェクト９５０は、「ＭａｐＴａｇ」オブジェクト９５２に対し、関数呼び出し「ｇｅｔＮｅｘｔＳＧＭＬＴａｇ」１０７２によって、ＹＥＳメッセージ１０７２と共にマッピングするためのＳＧＭＬタグ１０７２を要求し、そのＳＧＭＬタグ１０７２を図２３の「ＳＧＭＬ  Ｔａｇ」リストボックス７０２に表示する。次に、図３４の「ＭａｐＴａｇ」オブジェクト９５２は、「ＳＧＭＬＳＵｍｂｏｌＴａｂｌｅ」オブジェクト８８４から、関数呼び出し「ｇｅｔＮｅｘｔＥｌｅｍｅｎｔ」１０７４によって次のＳＧＭＬタグ１０７４をＹＥＳメッセージ１０７４と共に取得する。そして、「ＭａｐＴａｇ」オブジェクト９５２は、関数呼び出し「ｇｅｔＮｅｘｔＳＧＭＬＴａｇ」１０７２に応じて、そのＳＧＭＬタグ１０７２を、図３３の「ＭａｐＥｄｉｔＤｉａｌｏｇ」オブジェクト９５０へ返す。
【０１１５】
ユーザは、マッピングしたい全てのＳＧＭＬタグに対するマッピング処理を繰り返す。ユーザは、マップエディタが必要でなくなると、図２３の「Ｄｏｎｅ」ボタン７１６を選択する。図３３の「ＭａｐＥｄｉｔＤｉａｌｏｇ」オブジェクト９５０は、マッピングが完了したことを、関数呼び出し「ｄｏｎｅＭａｐｉｎｇ」１０７６によって「ＭａｐＴａｇ」オブジェクト９５２に知らせる。図３４の「ＭａｐＴａｇ」オブジェクト９５２は、ＳＧＭＬタグのマッピングが完了したことを、関数呼び出し「ｆｉｎｉｓｈＣｒｅａｔｉｎｇＭａｐ」１０７８によって「ＭａｐＣｒｅａｔｅＥｄｉｔＳｅｒｖｉｃｅ」オブジェクト７９２に知らせる。
【０１１６】
図３９は、本発明を実施できるハードウェア構成の例を示す。ワークステーション１２００は、構成パーツとして、ディスプレイコントローラ１２０２、中央処理ユニット（ＣＰＵ）１２０４、ランダムアクセスメモリ（ＲＡＭ）１２０６、リードオンリーメモリ（ＲＯＭ）１２０８、キーボード１２１２及びマウス１２１４と接続された入力コントローラ１２１０、システムバス１２２０、ディスクコントローラ１２２６に接続されたハードディスク１２２２及びフロッピードライブ１２２４、ネットワーク１２３０と接続された通信コントローラ１２２８、ハードディスク１２３６及びプリンタ１２３４と接続された入出力（Ｉ／Ｏ）コントローラ１２３２、ディスプレイコントローラ１２０２に接続された陰極線管（ＣＲＴ）１２３８を有する。システムバス１２２０は、ＣＰＵ１２０４、ＲＡＭ１２０６、ＲＯＭ１２０８、入力コントローラ１２１０、ディスクコントローラ１２２６、通信コントローラ１２２８、Ｉ／Ｏコントローラ１２３２及びディスプレイコントローラ１２０２を、接続線を通じてデータを転送できるように接続する。
【０１１７】
例えば、実行可能に生成されたコンピュータ・コードは、ＲＡＭ１２０６にロードされ、システムバス１２２０を利用し、ハードディスク１２３６に格納されている入力ファイルを利用し、キーボード１２１２及びマウス１２１４から入力コントローラ１２１０を介して、またハードディスク１２２２及びフロッピードライブ１２２４からディスクコントローラ１２２６を介して、システムバス１２２０に入る他の入力を利用して、ＣＰＵ１２０４によって実行される。システムバス１２２０は、ＲＯＭ１２０８、ネットワーク１２３０及び通信コントローラ１２２８との間で情報をやり取りする。システムのＧＵＩは、ディスプレイコントローラ１２０２を介してＣＲＴ１２３８に表示させることができ、また、Ｉ／Ｏコントローラ１２３２を介してプリンタ１２３４又はハードディスク１２３６に出力させることができる。
【０１１８】
図１乃至図３９に関連て前述した手順により、第１の構造化情報フォーマットを第２の構造化情報フォーマットへ変換するためのマップクリエイター・エディタの異なった実装方法が可能である。例えば、第１のデータベース・フォーマットの変数名を、第２のデータベース・フォーマットの変数名にマッピングしてもよい。もう一つの実装方法は、ＩＳＯ／ＩＥＣ９０７０フォーマットの公開識別子を、ＵＮＩＸファイル名フォーマットのファイル名にマッピングすることである。
【０１１９】
他の実装方法の場合にも、ＳＧＭＬからＨＴＭＬへのマッピング及び変換に関して説明した同一技術が利用されるが、情報の構造の定義の仕方はＳＧＭＬ  ＤＴＤとは異なる。一般的に言えば、パーサは、入力ソースファイルを、そのために指定された構造フォーマットに基づいて、マップの生成及び編集のためのソース・コンポーネントとそれらの構造とに分解する。これらのソース・コンポーネントとその構造はユーザに提示され、この第１の構造のコンポーネントが対話的に選択され、第２の構造のターゲット・コンポーネント候補がユーザに提示され、ソース・コンポーネントのマッピングのためのターゲット・コンポーネントが選択され、変換マップの規則が生成される。ＩＳＯ／ＩＥＣ９０７０フォーマットの公開識別子をＵＮＩＸファイルシステムフォーマットのファイル名へマッピングする実装例を、図４０乃至図４７に関連して以下に説明する。
【０１２０】
図４０は、ＩＳＯ／ＩＥＣ９０７０標準フォーマットの公開識別子を示す。所有者名は、登録所有者名と未登録所有者名からなる。ここに示す例では所有者名は「ＸＹＺ」である。公開識別子はオブジェクト名も有し、これは「／／」によって所有者名と分離される。ここに示す例では、オブジェクト名は「ｆｏｎｔ：：ｍｅｔｒｉｃ：：ｘ−ｏｆｆｓｅｔ：：６２２」である。
【０１２１】
一方のシステム構造を他方のシステム構造へマッピングするには、一方の許容文字セットの文字列を他方の許容文字セットの文字列へ変換する必要がある。例えば、コンピュータのプログラミング言語は、有効な変数名の作成に利用可能な文字のアルファベットを持つように定義される。第１のプログラミング言語は、「−」（ハイフン）文字を有効な変数名中に使用することを許すが、「＿」（下線）は使用を許さないというように定義されるかもしれない。第２のプログラミング言語は、「＿」の使用を許すが「−」の使用を許さないというように定義されるかもしれない。第１のプログラミング言語の有効な変数名を第２のプログラミング言語の有効な変数名にマッピングするには、出現した「−」を、第２のプログラミング言語の環境で許容される別の文字、例えば「＿」にマッピングする必要があろう。ＩＳＯ／ＩＥＣ９０７０のネーミング方式からＵＮＩＸのファイル名方式へのマッピング例において、セパレータ「／／」はＩＳＯ／ＩＥＣ９０７０では許されるが、ＵＮＩＸファイルシステムのネーミング規則では有効な文字列ではない。ＩＳＯ／ＩＥＣ９０７０の有効な名前をＵＮＩＸの有効なファイル名にマッピングしようとするユーザは、出現したセパレータ「／／」をすべて、有効なＵＮＩＸファィル名の文字列へ変換する必要がある。
【０１２２】
図４１は、ＩＳＯ／ＩＥＣ９０７０の公開識別子のＵＮＩＸのファイル名へのマッピング例を示す。このマッピング例では、構造化された公開識別子をフラットなＵＮＩＸファイル名へマッピングする。行１４２０，１４２２，１４２４，１４２６はコンポーネント名文字列をＵＮＩＸフォーマットの同じ文字列へマッピングする規則を示している。行１４２８は、ＩＳＯ／ＩＥＣ９０７０の所有者名コンポーネントのセパレータ「：：」（これはあまり用いられないが）を、有効なＵＮＩＸ文字である「＿」へマッピングする規則を示している。行１４３０は、ＩＳＯ／ＩＥＣ９０７０の所有者名コンポーネントとオブジェクト名コンポーネントのセパレータ「／／」（これはＵＮＩＸファイルフォーマットでは有効な文字列ではない）を、「＿＿」（下線２文字）へマッピングする規則を示している。
【０１２３】
図４２は、図４０に例示したＩＳＯ／ＩＥＣ９０７０の名前を、図４１のマッピング方法によってマッピングして得られるＵＮＩＸファイル名の例を示す。図４０の行１４００の所有者名「ＸＹＺ」は、図４１の行１４２０の規則により「ＸＹＺ」にマッピングされる。「／／」は、図４１の行１４３０の規則によって「＿＿」にマッピングされる。図４０の公開識別子１４００のオブジェクト名中の三つの部分文字列「：：」はそれぞれ、図４１の行１４２８の規則により文字「＿」にマッピングされる。
【０１２４】
図４３は、ＩＳＯ／ＩＥＣ９０７０の公開識別子（１５０２）をＵＮＩＸファイルシステムフォーマット（１５０４）へマッピングするためのユーザインターフェースの例を示す。マップクリエイター・エディタ１５００は、ＩＳＯ／ＩＥＣ９０７０規約による名前をＵＮＩＸファイルシステム規約による名前にマッピングする。マッピングは例えば、公開識別子コンポーネントのシステムウィンドウ１５０２とＵＮＩＸファイル名コンポーネントのシステムウィンドウ１５０４から始まる。公開識別子コンポーネント（１５０２）は、登録所有者名と、未登録所有者名と、オブジェクト名である。ユーザは、これら選択項目の一つを選択する。所有者名（Ｏｗｎｅｒ  Ｎａｍｅ）が選択されたときには、ユーザは図４４のプレフィクスと所有者名コンポーネント（１５２２）の中から選択するように要求される。提示されるユーザ選択項目は、「Ｃｒｅａｔｅ  Ｄｉｒ．」（ディレクトリ作成）１５０６、「Ｍａｐ」（マップ）１５０８、「ｍｅｒｇｅ  ａｌｌ」（全マージ）１５１０、「ｎｅｘｔ」（次へ）１５１２、及び「ｐｒｅｖｉｏｕｓ」（前へ）１５１４である。選択項目「Ｃｒｅａｔｅ  Ｄｉｒ．」１５０６により、ユーザは、ＵＮＩＸファイル名システムウィンドウ１５０４内に新しいディレクトリ名を作成することができる。選択項目「Ｍａｐ」１５０８によって、ユーザは要求時にマップを生成するように要求できる。選択項目「ｍｅｒｇｅ  ａｌｌ」１５１０により、ユーザは、公開識別子名（１５０２）の全コンポーネントを一つのフラットなファイル名（１５０４）にマージしてＵＮＩＸファィル名を生成することができる。選択項目「ｎｅｘｔ」１５１２によって、ユーザは、次画面へ進むことができる。選択項目「ｐｒｅｖｉｏｕｓ」１５１４により、ユーザは前画面へ戻ることができる。
【０１２５】
図４４は、図４３のＩＳＯ／ＩＥＣ９０７０公開識別子（１５０２）の登録所有者コンポーネント（１５２２）のためのユーザインターフェースの例を示す。ユーザインターフェース１５２０の提示選択項目は、プレフィクスと所有者名コンポーネントを示すウィンドウ１５２２である。ユーザ選択項目は、「ｍａｐ  ｉｎｄｉｖｉｄｕａｌｌｙ」（個別マッピング）１５２４と、「ｍｅｒｇｅ  ｂｏｔｈ」（マージ）１５２６と、「ｎｅｘｔ」（次へ）１５２７と、「ｐｒｅｖｉｏｕｓ」（前へ）１５２８である。選択項目「ｍａｐ  ｉｎｄｉｖｉｄｕａｌｌｙ」１５２４により、ユーザは、ＩＳＯ／ＩＥＣ９０７０の名前の個々のコンポーネント（１５２２）を図４３のＵＮＩＸシステムフォーマットの個々のコンポーネント（１５０４）へマッピングすることができる。選択項目「ｍｅｒｇｅ  ｂｏｔｈ」１５２６により、ユーザは、登録所有者名（１５２２）を一つのフラットなＵＮＩＸのファイル名又はディレクトリ名へマッピングすることができる。選択項目「ｎｅｘｔ」１５２７により、ユーザは次画面へ進むことができる。選択項目「ｐｅｒｖｉｏｕｓ」１５２８により、ユーザは前画面へ戻ることができる。
【０１２６】
図４５は、プレフィクス、所有者名コンポーネント・セパレータをＵＮＩＸで許される文字セット１５３４のフォーマットへマッピングするためのユーザインターフェース１５３０を例示している。登録所有者名コンポーネントには、プレフィクスと所有者名コンポーネント・セパレータ「：：」１５３２がある。このセパレータは、ＵＮＩＸ環境ではあまり用いられない文字列である。ユーザは、セパレータ「：：」１５３２を、ＵＮＩＸファイルシステムの文字セット１５３４中の有効な文字のどれにでもマッピングできるが、デフォルトでは「＿」へマッピングされる。ユーザ選択項目は「ｍａｐ」（マップ）１５３６と「ｎｅｘｔ」（次へ）１５３７と「ｐｒｅｖｉｏｕｓ」（前へ）１５３８である。選択項目「ｍａｐ」１５３６によりユーザはマップの生成を選ぶことができるが、そのマップを生成するための選択項目の選択を済ませていることが前提である。選択項目「ｎｅｘｔ」１５３７により、ユーザは次画面へ進むことができる。選択項目「ｐｒｅｖｉｏｕｓ」１５３８により、ユーザは前画面へ戻ることができる。
【０１２７】
図４６は、所有者名文字１５４２をＵＮＩＸファイルシステムフォーマットの有効な文字１５４４へマッピングするためのユーザインターフェース１５４０を例示している。ユーザは、ＩＳＯ／ＩＥＣ９０７０系で有効な特殊文字１５４２のＵＮＩＸファイルシステム系で有効な文字１５４４へのマッピングに関するいくつかの選択項目が与えられる。ＩＳＯ／ＩＥＣ９０７０系の文字は、デフォルトでは、「＿」にマッピングされる。ユーザは、選択項目として「ｍａｐ」（マップ）１５４６と「ｎｅｘｔ」（次へ）１５４８と「ｐｒｅｖｉｏｕｓ」（前へ）１５５０を与えられる。選択項目「ｍａｐ」１５４６により、ユーザは、マップの生成を選ぶことができるが、そのマップを生成するための選択項目の選択を済ませていることが前提である。選択項目「ｎｅｘｔ」１５４８により、ユーザは、次画面へ進むことができる。選択項目「ｐｒｅｖｉｏｕｓ」１５５０により、ユーザは、前画面へ戻ることができる。
【０１２８】
図４７は、ユーザが登録所有者コンポーネント１５６２をＵＮＩＸファイル系フォーマット１５６４へマッピングするためのユーザインターフェース１５６０を例示している。ユーザは、登録所有者名のプレフィクス又はプレフィクス以外の所有者名コンポーネント（１５６２）を選択することができる。ユーザは、ＵＮＩＸファイル系のオブジェクト名オプション付きファイルを選択することもできる。ユーザは、現在選択されているオプション付きのマップを生成するための選択項目「ｍａｐ」１５６６が与えらる。ユーザは、前画面へ戻るための選択項目「ｐｒｅｖｉｏｕｓ」１５６８も与えられる。
【０１２９】
マップの生成及び編集のためのユーザ対話を伴うＳＧＭＬからＨＴＭＬへのトランスフォーマのためのマッピング・クリエイター及びエディタの実装例と、ＩＳＯ／ＩＥＣ９０７０からＵＮＩＸファイルフォーマットへのトランスフォーマのためのマッピング・クリエイター及びエディタの具体例を使って、本発明を説明した。以上の説明で示した例は、ＯＯＰ技術とウインドウＧＵＩ技術を利用してユーザインターフェース、マップ処理及び変換を実現している。しかし、ユーザインターフェースは、テキスト行による照会又はメニューによって実現してもよい。ＯＯＰ以外のプログラミング手法を利用して処理を実現してもよい。記憶域への参照は、ポインタを使わない方法で行ってもよい。
【０１３０】
本明細書の記載内容に従ってプログラムした普通の汎用デジタルコンピュータ又はマイクロプロセッサを利用し、本発明を適切に実施できることは、コンピュータ分野の当業者には明かであろう。ここに開示した内容に基づいて熟達したプログラマが容易に適切なソフトウェアのコーディングを行うことができることは、ソフトウェア分野の当業者には明白であろう。特定用途向け集積回路を用意することにより、または、在来の要素回路の適当な回路網を相互接続することにより、本発明を実施してもよいことは当該技術分野の当業者には明らかであろう。
【０１３１】
本発明に、コンピュータプログラム製品、すなわち、本発明の処理をコンピュータに実行させるようプログラムするために利用できる命令群を格納した記憶媒体が含まれる。この記憶媒体は、フロッピーディスク、光ディスクＤ−ＲＯＭ、光磁気ディスクなどの任意の種類のディスクや、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気又は光カード、電子的な命令群の格納に適した任意種類の媒体でよいが、これらに限られるものではない。
【０１３２】
以上に開示した内容に照らし、本発明の様々な修正及び変更が可能であることは明白である。したがって、本発明は、以上に具体的に述べた以外のやり方でも実施し得るものである。
【図面の簡単な説明】
【０１３３】
【図１】標準一般化マークアップ言語（ＳＧＭＬ）の文書型定義（ＤＴＤ）の例を示す図である。
【図２】ＳＧＭＬからＨＴＭＬへのマッピングの例を示す図である。
【図３】ＳＧＭＬ文書の例を示す図である。
【図４】図３のＳＧＭＬ文書の変換により得られるＨＴＭＬ文書の例を示す図である。
【図５】図４のＨＴＭＬ文書により生成されるブラウザ出力の例を示す図である。
【図６】ＳＧＭＬ文書の階層性をツリー形式で示す図である。
【図７】ＨＴＭＬ文書のより「扁平な」階層構造を示す図である。
【図８】ＳＧＭＬからＨＴＭＬへのマッピング及び変換のための主要コンポーネントの設計図である。
【図９】ＳＧＭＬからＨＴＭＬへのマッピング及び変換の過程におけるデータフローを示す図である。
【図１０】ある構造化フォーマットの情報から他の構造化フォーマットの情報へのマッピング及び変換の過程におけるデータの流れ及びファイル間相互作用を示す図である。
【図１１】ＳＧＭＬからＨＴＭＬへのマッピング及び変換の過程におけるデータの流れ及びファイル間相互作用を示す図である。
【図１２】ＳＧＭＬからＨＴＭＬへのマッピング及び変換のためのマップクラス・オブジェクトのファイル組織を示す図である。
【図１３】ＳＧＭＬからＨＴＭＬへのマッピング及び変換のためのマップモジュールのマップクラス構造を示す図である。
【図１４】図１３のマップ・モジュール内の主要クラスを示す図である。
【図１５】ＳＧＭＬからＨＴＭＬへのマッピング及び変換に関わるＳｒｃＳＧＭＬＴａｇＡｔｔｒ（ソースＳＧＭＬタグ属性）クラスのマップクラス構造を示す図である。
【図１６】ＳＧＭＬからＨＴＭＬへのマッピング及び変換に関わるＳｒｃＳＧＭＬＣｏｎｔｅｎ（ソースＳＧＭＬコンテント）クラスのマップクラス構造を示す図である。
【図１７】ＳＧＭＬからＨＴＭＬへのマッピング及び変換に関わるＭａｐＳｅｒｖｉｃｅ（マップサービス）クラスのマップクラス構造を示す図である。
【図１８】ＳＧＭＬからＨＴＭＬへのマッピング及び変換に関わるＭａｐＣｒｅａｔｅＥｄｉｔＳｅｒｖｉｃｅ（マップクリエイト編集サービス）クラスのマップクラス構造を示す。
【図１９】ＳＧＭＬからＨＴＭＬへのマッピング及び変換に関わる主要モジュール間の階層的相互作用を示す図である。
【図２０】ＳＧＭＬからＨＴＭＬへのマッピング及び変換のためのメインアプリケーションウインドウの例を示す図である。
【図２１】ファイル・オープン用ダイアログボックス及びファイル保存用ダイアログボックスの例を示す図である。
【図２２】ＳＧＭＬからＨＴＭＬへのマッピング及び変換に関わるマップ処理選択ウインドウの例を示す図である。
【図２３】ＳＧＭＬからＨＴＭＬへのマップエディタ用ウインドウの例を示す図である。
【図２４】ダイアログボックスにサンプルデータが表示された状態の、ＳＧＭＬからＨＴＭＬへのマップエディタ用ウインドウの例を示す図である。
【図２５】ＳＧＭＬからＨＴＭＬへのマッピング及び変換のためのメニューマネージャのクラス線図を示す図である。
【図２６】ＳＧＭＬからＨＴＭＬへのマッピング及び変換に関わるシステムのスタートアップのためのオブジェクト・メッセージ線図を示す図である。
【図２７】ＳＧＭＬ文書を初めて開くためのオブジェクト・メッセージ線図を示す図である。
【図２８】新規のＳＧＭＬ文書を開くためのオブジェクト・メッセージ線図を示す図である。
【図２９】ＳＧＭＬからＨＴＭＬへのマッピング及び変換のためのＧＵＩの設計図である。
【図３０】ＳＧＭＬからＨＴＭＬへのマッピング及び変換のためのマップの編集に関わるクラスのオブジェクト間の振る舞いをオブジェクト・メッセージ線図として示す図である。
【図３１】ＳＧＭＬからＨＴＭＬへのマッピング及び変換のためのマップの編集に関わるクラスのオブジェクト間の振る舞いをオブジェクト・メッセージ線図として示す図である。
【図３２】ＳＧＭＬからＨＴＭＬへのマッピング及び変換のためのマップの編集に関わるクラスのオブジェクト間の振る舞いをオブジェクト・メッセージ線図として示す図である。
【図３３】ＨＴＭＬ属性に値を割り当てるためのクラスのオブジェクトの振る舞いをオブジェクト・メッセージ線図として示す図である。
【図３４】ＨＴＭＬ属性に値を割り当てるためのクラスのオブジェクトの振る舞いをオブジェクト・メッセージ線図として示す図である。
【図３５】ＨＴＭＬ属性に値を割り当てるためのクラスのオブジェクトの振る舞いをオブジェクト・メッセージ線図として示す図である。
【図３６】ＨＴＭＬ属性に値を割り当てるためのクラスのオブジェクトの振る舞いをオブジェクト・メッセージ線図として示す図である。
【図３７】ＨＴＭＬ属性に値を割り当てるためのクラスのオブジェクトの振る舞いをオブジェクト・メッセージ線図として示す図である。
【図３８】ＨＴＭＬ属性に値を割り当てるためのクラスのオブジェクトの振る舞いをオブジェクト・メッセージ線図として示す図である。
【図３９】ＧＭＬからＨＴＭＬへのマッピング及び変換を実施するためのハードウェア構成例を示すブロック図である。
【図４０】ＩＳＯ／ＩＥＣ ９０７０フォーマットの公開識別子の例を示す図である。
【図４１】ＩＳＯ／ＩＥＣ ９０７０フォーマットからＵＮＩＸファイル名フォーマットへのマッピングの例を示す図である。
【図４２】図４１のマップにより図４０の公開識別子をマッピングして得られるＵＮＩＸファイル名の例を示す図である。
【図４３】ＩＳＯ／ＩＥＣ ９０７０フォーマットの公開識別子をＵＮＩＸファイル名フォーマットへマッピングするためのユーザインターフェース表示の例を示す図である。
【図４４】ＩＳＯ／ＩＥＣ ９０７０フォーマットの登録所有者フィールドをＵＮＩＸファイル名フォーマットへマッピングするためのユーザインターフェース表示の例を示す図である。
【図４５】ＩＳＯ／ＩＥＣ ９０７０フォーマットのプレフィクス、所有者名コンポーネント・セパレータのＵＮＩＸファイル名フォーマットへの文字マッピングを選択するためのユーザインターフェースの例を示す図である。
【図４６】ＩＳＯ／ＩＥＣ ９０７０の所有者名をＵＮＩＸファイル名フォーマットの有効な文字へマッピングするためのユーザインターフェースの例を示す図である。
【図４７】ＩＳＯ／ＩＥＣ ９０７０フォーマットの登録所有者コンポーネントをＵＮＩＸファイル名フォーマットへマッピングするためのユーザインターフェースの例を示す図である。
【図４８】図６のツリー構造に対応した標準一般化マークアップ言語（ＳＧＭＬ）文書型定義（ＤＴＤ）の例を示す図である。
【図４９】図７のツリー構造に対応した文書を作成するための、図４８のＳＧＭＬＤＴＤのＳＧＭＬ要素のＨＴＭＬ要素へのマップの例を示す図である。
【０１３４】
【図５０】図４８のＳＧＭＬ ＤＴＤに従った文書の例を示す図である。
【図５１】図５０に示した文書の続きを示す図である。
【図５２】図４９のマップによって図５０及び図５１に示したＳＧＭＬ文書をＨＴＭＬ要素へ変換することにより生成されるＨＴＭＬ文書の例を示す図である。
【符号の説明】
【０１３５】
１８０  ＧＵＩモジュール
１８２  パーサ
１８４  マップモジュール
１８６  トランスフォーマ
１８８  サービスモジュール
２００  ＳＧＭＬ  ＤＴＤ
２０２  ＳＧＭＬパーサ
２０６  ＨＴＭＬ３．２記号テーブル
２０８  マップエディタ
２１０  対話ユーザ
２１２  マップ
２１６  ＨＴＭＬ文書インスタンス
２１８  ＳＧＭＬ応用文書インスタンス
２２２  ＳＧＭＬ応用記号テーブル
２３０  システムＡ構造記述
２３２  システムＢ構造記述
２３８  システムＡインスタンス
２４４  システムＢインスタンス
２５０  データベース設計
２５６  ＳＧＭＬエディタ
２６０  ＨＴＭＬ  ＤＴＤ
２６２  ブラウザ
４７０  アプリケーションウィンドウモジュール
４７２  メニューマネージモジュール
４７４  ファイルサービスモジュール
４７６  マップエディタモジュール
４７８  ビューモジュール
４８０  マップモジュール
４８２  メッセージダイアログサービスモジュール
【図１】
2006202308.tif 000003
【図２】
2006202308.tif 000004
【図３】
2006202308.tif 000005
【図４】
2006202308.tif 000006
【図５】
2006202308.tif 000007
【図６】
2006202308.tif 000008
【図７】
2006202308.tif 000009
【図８】
2006202308.tif 000010
【図９】
2006202308.tif 000011
【図１０】
2006202308.tif 000012
【図１１】
2006202308.tif 000013
【図１２】
2006202308.tif 000014
【図１３】
2006202308.tif 000015
【図１４】
2006202308.tif 000016
【図１５】
2006202308.tif 000017
【図１６】
2006202308.tif 000018
【図１７】
2006202308.tif 000019
【図１８】
2006202308.tif 000020
【図１９】
2006202308.tif 000021
【図２０】
2006202308.tif 000022
【図２１】
2006202308.tif 000023
【図２２】
2006202308.tif 000024
【図２３】
2006202308.tif 000025
【図２４】
2006202308.tif 000026
【図２５】
2006202308.tif 000027
【図２６】
2006202308.tif 000028
【図２７】
2006202308.tif 000029
【図２８】
2006202308.tif 000030
【図２９】
2006202308.tif 000031
【図３０】
2006202308.tif 000032
【図３１】
2006202308.tif 000033
【図３２】
2006202308.tif 000034
【図３３】
2006202308.tif 000035
【図３４】
2006202308.tif 000036
【図３５】
2006202308.tif 000037
【図３６】
2006202308.tif 000038
【図３７】
2006202308.tif 000039
【図３８】
2006202308.tif 000040
【図３９】
2006202308.tif 000041
【図４０】
2006202308.tif 000042
【図４１】
2006202308.tif 000043
【図４２】
2006202308.tif 000044
【図４３】
2006202308.tif 000045
【図４４】
2006202308.tif 000046
【図４５】
2006202308.tif 000047
【図４６】
2006202308.tif 000048
【図４７】
2006202308.tif 000049
【図４８】
2006202308.tif 000050
【図４９】
2006202308.tif 000051
【図５０】
2006202308.tif 000052
【図５１】
2006202308.tif 000053
【図５２】
2006202308.tif 000054