(57)【要約】【課題】所定の文書の構造が正しいか否かを正確に判断する。【解決手段】本文書確認処理方法は、所定文書内を探索し、参照すべき特定のスキーマ文書の格納先情報が所定文書内に含まれているか判断する工程と、特定のスキーマ文書の格納先情報が所定文書内に含まれている場合、当該特定のスキーマ文書を取得してキャッシュに格納する工程と、特定のスキーマ文書内を探索し、参照すべき他のスキーマ文書の格納先情報が特定のスキーマ文書内に含まれているか判断する工程と、他のスキーマ文書の格納先情報が特定のスキーマ文書内に含まれている場合、当該他のスキーマ文書を取得してキャッシュに格納する工程と、ユーザから文書確認指示を受け付けた場合、スキーマ文書間の階層関係を基に、キャッシュに格納された下位階層のスキーマ文書から順に所定文書と照合し、所定文書の構造がスキーマ文書で規定されている構造と一致しているか判断する工程とを含む。【選択図】図３
2010204985.tif 000002
【特許請求の範囲】
【請求項１】
所定の文書内を探索し、参照すべき特定のスキーマ文書の格納先情報が前記所定の文書内に含まれているか判断する第１判断ステップと、
前記特定のスキーマ文書の格納先情報が前記所定の文書内に含まれていると判断された場合、当該特定のスキーマ文書を取得してキャッシュに格納する第１取得ステップと、
前記特定のスキーマ文書内を探索し、参照すべき他のスキーマ文書の格納先情報が前記特定のスキーマ文書内に含まれているか判断する第２判断ステップと、
前記他のスキーマ文書の格納先情報が前記特定のスキーマ文書内に含まれていると判断された場合、当該他のスキーマ文書を取得して前記キャッシュに格納する第２取得ステップと、
ユーザから文書確認指示を受け付けた場合、スキーマ文書間の階層関係を基に、前記キャッシュに格納された下位階層のスキーマ文書から順に前記所定の文書と照合し、前記所定の文書の構造が前記スキーマ文書で規定されている構造と一致しているか判断するステップと、
をコンピュータに実行させるための文書確認処理プログラム。
【請求項２】
前記第２取得ステップの後、前記ユーザから、ネットワーク接続を行う第１実行モードから前記ネットワーク接続を行わない第２実行モードへの変更が指示された場合、前記キャッシュに格納されている前記スキーマ文書を、前記コンピュータ内の所定の保存先に格納し、前記スキーマ文書毎に当該スキーマ文書の格納先情報と保存先情報とを含むスキーマ文書テーブルを記憶装置に格納するステップと、
前記スキーマ文書テーブルに基づき、前記所定の文書及び前記スキーマ文書内の、前記スキーマ文書の前記格納先情報を、対応する前記保存先情報に書き換えるステップと、
をさらにコンピュータに実行させるための請求項１記載の文書確認処理プログラム。
【請求項３】
前記ユーザから、前記第２実行モードから前記第１実行モードへの変更が指示された場合、前記スキーマ文書テーブルに基づき、前記所定の文書及び前記スキーマ文書内の、前記スキーマ文書の前記保存先情報を、対応する前記格納先情報に書き換えるステップと、
をさらにコンピュータに実行させるための請求項２記載の文書確認処理プログラム。
【請求項４】
前記第２取得ステップの後、所定のタイミングにて、前記キャッシュから前記スキーマ文書を削除し、前記第１判断ステップ乃至前記第２取得ステップを再度実行するステップ
をさらにコンピュータに実行させるための請求項１乃至３のいずれか１つ記載の文書確認処理プログラム。
【請求項５】
所定の文書内を探索し、参照すべき特定のスキーマ文書の格納先情報が前記所定の文書内に含まれているか判断する第１判断ステップと、
前記特定のスキーマ文書の格納先情報が前記所定の文書内に含まれていると判断された場合、当該特定のスキーマ文書を取得してキャッシュに格納する第１取得ステップと、
前記特定のスキーマ文書内を探索し、参照すべき他のスキーマ文書の格納先情報が前記特定のスキーマ文書内に含まれているか判断する第２判断ステップと、
前記他のスキーマ文書の格納先情報が前記特定のスキーマ文書内に含まれていると判断された場合、当該他のスキーマ文書を取得して前記キャッシュに格納する第２取得ステップと、
ユーザから文書確認指示を受け付けた場合、スキーマ文書間の階層関係を基に、前記キャッシュに格納された下位階層のスキーマ文書から順に前記所定の文書と照合し、前記所定の文書の構造が前記スキーマ文書で規定されている構造と一致しているか判断するステップと、
を含み、コンピュータにより実行される文書確認処理方法。
【請求項６】
所定の文書内を探索し、参照すべき特定のスキーマ文書の格納先情報が前記所定の文書内に含まれているか判断する第１判断手段と、
前記特定のスキーマ文書の格納先情報が前記所定の文書内に含まれていると判断された場合、当該特定のスキーマ文書を取得してキャッシュに格納する第１取得手段と、
前記特定のスキーマ文書内を探索し、参照すべき他のスキーマ文書の格納先情報が前記特定のスキーマ文書内に含まれているか判断する第２判断手段と、
前記他のスキーマ文書の格納先情報が前記特定のスキーマ文書内に含まれていると判断された場合、当該他のスキーマ文書を取得して前記キャッシュに格納する第２取得手段と、
ユーザから文書確認指示を受け付けた場合、スキーマ文書間の階層関係を基に、前記キャッシュに格納された下位階層のスキーマ文書から順に前記所定の文書と照合し、前記所定の文書の構造が前記スキーマ文書で規定されている構造と一致しているか判断する手段と、
を有する文書確認処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、スキーマを用いて、文書（例えばＸＭＬ（eXtensible Markup Language）文書など）の構造を確認するための技術に関する。
【背景技術】
【０００２】
例えばＸＭＬ文書を作成する場合、ユーザは、ＸＭＬ文書の取り得る構造が規定されているスキーマ文書に沿ってＸＭＬ文書を作成する。例えば、図１にＸＭＬ文書の一例を示す。図１に示すように、ＸＭＬでは、例えばschemaLocation属性を用いて、必要なスキーマ文書のＵＲＬ１０１（図１では、"http://www.AAA.co.jp/AAA.xsd"）を指定するようになっている。
【０００３】
一方で、スキーマ文書内においても、schemaLocation属性を用いて他のスキーマ文書を指定する場合がある。例えば、図２にスキーマ文書（「AAA.xsd」）の一例を示す。図２では、スキーマ文書（「AAA.xsd」）内で、他のスキーマ文書（「XHTML1.1.xsd」、「XHTML1.1-model-1.xsd」、「XHTML1.1-modules-1.xsd」及び「XHTML1.1-framework.xsd」）のＵＲＬ２０１乃至２０４が指定されている。例えば、あるＸＭＬ文書において図２に示したスキーマ文書（「AAA.xsd」）が指定されている場合には、当該ＸＭＬ文書では、「AAA.xsd」で規定されている構造だけでなく、「XHTML1.1.xsd」、「XHTML1.1-model-1.xsd」、「XHTML1.1-modules-1.xsd」及び「XHTML1.1-framework.xsd」の各々で規定されている構造も取り得ることとなる。そのため、例えば、ユーザによって作成されたＸＭＬ文書の構造が正しいか否かを判断するためには、当該ＸＭＬ文書内において指定されるスキーマ文書だけでなく、当該スキーマ文書内において指定される他のスキーマ文書も考慮して判断しなければならない。なお、所定の文書（例えば、ＸＭＬ文書やＨＴＭＬ（Hyper Text Markup Language）文書など）の構造が正しいか否かを判断する技術としては、例えば、特開２０００−３１１１６０号公報記載の技術や、特開２００２−３１２３３９号公報記載の技術などがある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−３１１１６０号公報
【特許文献２】特開２００２−３１２３３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、例えば所定の文書の構造が正しいか否かを判断する際に、あるスキーマ文書内において指定される他のスキーマ文書については考慮されていない。そのため、ユーザによって作成された文書の構造が正しいか否かを正確に且つ即時に判断できない場合がある。
【０００６】
従って、本技術の目的は、所定の文書の構造が正しいか否かを正確に且つ即時に判断することである。
【課題を解決するための手段】
【０００７】
本文書確認処理方法は、所定の文書内を探索し、参照すべき特定のスキーマ文書の格納先情報が所定の文書内に含まれているか判断する第１判断ステップと、特定のスキーマ文書の格納先情報が所定の文書内に含まれていると判断された場合、当該特定のスキーマ文書を取得してキャッシュに格納する第１取得ステップと、特定のスキーマ文書内を探索し、参照すべき他のスキーマ文書の格納先情報が特定のスキーマ文書内に含まれているか判断する第２判断ステップと、他のスキーマ文書の格納先情報が特定のスキーマ文書内に含まれていると判断された場合、当該他のスキーマ文書を取得してキャッシュに格納する第２取得ステップと、ユーザから文書確認指示を受け付けた場合、スキーマ文書間の階層関係を基に、キャッシュに格納された下位階層のスキーマ文書から順に所定の文書と照合し、所定の文書の構造がスキーマ文書で規定されている構造と一致しているか判断するステップとを含む。
【発明の効果】
【０００８】
所定の文書の構造が正しいか否かを正確に且つ即時に判断することができる。
【図面の簡単な説明】
【０００９】
【図１】ＸＭＬ文書の一例を示す図である。
【図２】スキーマ文書の一例を示す図である。
【図３】本実施の形態に係るシステム概要を示す図である。
【図４】スキーマ一覧テーブル格納部に格納されるスキーマ一覧テーブルのテーブル例を示す図である。
【図５】階層管理データ格納部に格納されるデータの一例を示す図である。
【図６】本実施の形態におけるユーザ端末の処理フロー（第１の部分）を示す図である。
【図７】ＸＭＬエディタの画面例を示す図である。
【図８】スキーマ読み込み処理の処理フロー（第１の部分）を示す図である。
【図９】スキーマ読み込み処理の処理フロー（第２の部分）を示す図である。
【図１０】ＸＭＬ文書と照合するスキーマ文書の順番を説明するための図である。
【図１１】チェック結果画面の画面例を示す図である。
【図１２】本実施の形態におけるユーザ端末の処理フロー（第２の部分）を示す図である。
【図１３】ＵＲＬを保存先フォルダ名に変換した後のＸＭＬ文書の一例を示す図である。
【図１４】ＵＲＬを保存先フォルダ名に変換した後のスキーマ文書の一例を示す図である。
【図１５】コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００１０】
図３に本技術の一実施の形態に係るシステム概要を示す。例えばインターネットであるネットワーク１には、ユーザ端末３と、複数のサーバ５（図３では、５ａ乃至５ｃ）とが接続されている。なお、各サーバ５は、スキーマ文書を格納するスキーマ格納部５１（図３では、５１ａ乃至５１ｃ）を有している。なお、ユーザ端末３の数は１台に限られず、サーバ５の数も３台に限られない。
【００１１】
また、ユーザ端末３は、ＸＭＬエディタ３１を有する。そして、ＸＭＬエディタ３１は、入力部３１１と、ファイル管理部３１２と、スキーマ取得部３１３と、構造チェック部３１４と、出力部３１５と、スキーマ一覧テーブル格納部３１６と、階層管理データ格納部３１７と、モード情報格納部３１８とを有する。入力部３１１は、ユーザからの各種指示を受け付け、ファイル管理部３１２、スキーマ取得部３１３又は構造チェック部３１４に出力する。また、入力部３１１は、ユーザからモード変更指示を受け付け、現在のモード（詳細は後述）を示す情報をモード情報格納部３１８に格納する。ファイル管理部３１２は、入力部３１１からの指示に応じて、ＸＭＬ文書の読み込みを行ったり、スキーマ文書を所定の保存先フォルダに格納したりするなどの処理を実施する。スキーマ取得部３１３は、入力部３１１からの指示に応じて、後で説明するスキーマ読み込み処理を実施し、スキーマ文書を取得してユーザ端末３のキャッシュ（図示せず）に格納する。また、スキーマ取得部３１３は、取得したスキーマ文書の情報をスキーマ一覧テーブル格納部３１６に格納し、取得したスキーマ文書間の階層関係を示すデータを階層管理データ格納部３１７に格納する。構造チェック部３１４は、入力部３１１からの指示に応じて、階層管理データ格納部３１７に格納されているデータとキャッシュ又は所定の保存先フォルダに格納されているスキーマ文書とに基づき、ＸＭＬ文書の構造が正しいか否かを判断するための処理を実施する。
【００１２】
図４に、スキーマ一覧テーブル格納部３１６に格納されるスキーマ一覧テーブルの一例を示す。図４の例では、スキーマ一覧テーブルには、スキーマ文書のＩＤの列と、スキーマ文書のＵＲＬと、保存先フォルダ名の列とが含まれる。なお、詳細は後で説明するが、保存先フォルダ名の列には、スキーマ文書をユーザ端末３内の所定の保存先フォルダに保存する際に、当該保存先フォルダ名が設定される。
【００１３】
図５に、階層管理データ格納部３１７に格納されるデータの一例を示す。図５に示すように、階層管理データ格納部３１７には、スキーマ文書間の階層関係を管理するためのデータとして、ＸＭＬ文書及びスキーマ文書をノードとする木構造のデータが格納される。
【００１４】
次に、図６乃至図１４を用いて、図３に示したシステムにおけるユーザ端末３の処理フローを説明する。まず、ユーザが、ユーザ端末３を操作して、ＸＭＬエディタ３１を起動する（図６：ステップＳ１）。なお、本ステップは、ユーザの動作であるため、図６では点線ブロックで示している。そして、例えば、ＸＭＬエディタ３１が起動されると図７に示すような画面が表示される。図７の画面では、タイトルバー７０１と、メニューバー７０２と、作業領域７０３と、文字コード表示欄７０４と、スキーマ状態表示欄７０５とが含まれる。そして、ＸＭＬエディタ３１を起動した後、ユーザは、ユーザ端末３を操作して、ユーザ端末３のハードディスク等の記憶装置に予め格納されているＸＭＬ文書のうち、作業対象となるＸＭＬ文書を選択する。
【００１５】
そして、ユーザ端末３におけるＸＭＬエディタ３１の入力部３１１は、ユーザからＸＭＬ文書の選択入力を受け付け、選択データをファイル管理部３１２に出力する。そして、ファイル管理部３１２は、入力部３１１から選択データを受信すると、選択データに係るＸＭＬ文書を記憶装置から読み込み（ステップＳ３）、メインメモリに一旦格納する。また、ファイル管理部３１２は、出力部３１５にＸＭＬ文書の表示指示を出力する。そして、出力部３１５は、ファイル管理部３１２からの表示指示に応じて、図７に示した画面における作業領域７０３に、メインメモリに格納されたＸＭＬ文書の内容を表示する。なお、ファイル管理部３１２は、ＸＭＬ文書の読み込みが完了すると、その旨を入力部３１１に通知する。
【００１６】
そして、入力部３１１は、ファイル管理部３１２からＸＭＬ文書の読み込み完了の通知を受信すると、モード情報格納部３１８に格納されている現在のモードがネットワーク接続を行うモード（以下、ネットワーク接続モードと呼ぶ場合もある）であるか判断する（ステップＳ５）。現在のモードがネットワーク接続を行わないモード（以下、ローカルモードと呼ぶ場合もある）である場合（ステップＳ５：Ｎｏルート）、ステップＳ９の処理に移行する。
【００１７】
一方、現在のモードがネットワーク接続モードである場合（ステップＳ５：Ｙｅｓルート）、入力部３１１は、スキーマ取得部３１３にスキーマ文書の読み込み開始を指示する。そして、スキーマ取得部３１３は、入力部３１１からスキーマ文書の読み込み開始指示を受信すると、メインメモリに格納されているＸＭＬ文書に基づき、スキーマ読み込み処理を実施する（ステップＳ７）。スキーマ読み込み処理については図８及び図９を用いて説明する。
【００１８】
まず、スキーマ取得部３１３は、ユーザ端末３がネットワーク１と通信可能な状態であるか判断する（図８：ステップＳ５１）。ユーザ端末３がネットワーク１と通信できない状態であると判断された場合（ステップＳ５１：Ｎｏルート）、スキーマ取得部３１３は、スキーマ状態として読み込み失敗を表示するよう出力部３１５に指示する。そして、出力部３１５は、スキーマ取得部３１３からの指示に応じて、図７に示した画面におけるスキーマ状態表示欄７０５に「読み込み失敗」を表示する（ステップＳ５３）。その後、端子Ｅを介して図９に移行し、スキーマ読み込み処理を終了し、元の処理に戻る。
【００１９】
一方、ユーザ端末３がネットワーク１と通信可能な状態であると判断された場合（ステップＳ５１：Ｙｅｓルート）、スキーマ取得部３１３は、ＸＭＬ文書内に所定文字列が存在するか判断する（ステップＳ５５）。具体的には、スキーマ取得部３１３は、ＸＭＬ文書内を探索し、ＸＭＬ文書内に文字列「schemaLocation」が含まれているか判断する。ＸＭＬ文書内に所定文字列が存在しないと判断された場合（ステップＳ５５：Ｎｏルート）、スキーマ取得部３１３は、スキーマ状態としてスキーマ未設定を表示するよう出力部３１５に指示する。そして、出力部３１５は、スキーマ取得部３１３からの指示に応じて、図７に示した画面におけるスキーマ状態表示欄７０５に「スキーマ未設定」を表示する（ステップＳ５７）。その後、端子Ｅを介して図９に移行し、スキーマ読み込み処理を終了し、元の処理に戻る。
【００２０】
一方、ＸＭＬ文書内に所定文字列が存在すると判断された場合（ステップＳ５５：Ｙｅｓルート）、スキーマ取得部３１３は、ＸＭＬ文書からスキーマ文書のＵＲＬ（すなわち、文字列「schemaLocation」の直後のＵＲＬ」）を抽出し、スキーマ一覧テーブルに登録する（ステップＳ５９）。このとき、スキーマ取得部３１３は、スキーマのＩＤとしてユニークな番号を割り当て、スキーマ一覧テーブルに登録する。なお、ＸＭＬ文書内に文字列「schemaLocation」が複数含まれる場合には、本ステップにおいて複数のＵＲＬが抽出される。
【００２１】
そして、スキーマ取得部３１３は、階層管理データを生成し、階層管理データ格納部３１７に格納する（ステップＳ６１）。例えば、図５に示したような木構造のデータを生成し、階層管理データ格納部３１７に格納する。そして、端子Ｄを介してステップＳ６３（図９）の処理に移行する。
【００２２】
図９の説明に移行して、端子Ｄの後、スキーマ取得部３１３は、スキーマ一覧テーブルにおいて未処理のＵＲＬを特定する（図９：ステップＳ６３）。そして、スキーマ取得部３１３は、特定ＵＲＬからスキーマ文書を取得し、ユーザ端末３のキャッシュに格納する（ステップＳ６５）。そして、スキーマ取得部３１３は、ステップＳ６５において取得したスキーマ文書内に所定文字列が存在するか判断する（ステップＳ６７）。具体的には、スキーマ取得部３１３は、ステップＳ６５において取得したスキーマ文書内を探索し、当該スキーマ文書内に文字列「schemaLocation」が含まれているか判断する。ステップＳ６５において取得したスキーマ文書内に所定文字列が存在しないと判断された場合（ステップＳ６７：Ｎｏルート）、ステップＳ７３の処理に移行する。
【００２３】
一方、ステップＳ６５において取得したスキーマ文書内に所定文字列が存在すると判断された場合（ステップＳ６７：Ｙｅｓルート）、スキーマ取得部３１３は、当該スキーマ文書から他のスキーマ文書のＵＲＬ（すなわち、文字列「schemaLocation」の直後のＵＲＬ」）を抽出し、スキーマ一覧テーブルに登録する（ステップＳ６９）。このとき、スキーマ取得部３１３は、スキーマのＩＤとしてユニークな番号を割り当て、スキーマ一覧テーブルに登録する。なお、ステップＳ６５において取得したスキーマ文書内に文字列「schemaLocation」が複数含まれる場合には、ステップＳ６９において複数のＵＲＬが抽出される。
【００２４】
そして、スキーマ取得部３１３は、階層管理データを更新し、更新後の階層管理データを階層管理データ格納部３１７に格納する（ステップＳ７１）。
【００２５】
そして、スキーマ取得部３１３は、スキーマ一覧テーブルにおける全てのＵＲＬについて処理が完了したか判断する（ステップＳ７３）。スキーマ一覧テーブルにおける全てのＵＲＬについて処理が完了していなければ（ステップＳ７３：Ｎｏルート）、スキーマ取得部３１３は、ステップＳ６３の処理に戻り、上で述べた処理を繰り返す。
【００２６】
一方、スキーマ一覧テーブルにおける全てのＵＲＬについて処理が完了した場合（ステップＳ７３：Ｙｅｓルート）、スキーマ取得部３１３は、スキーマ状態として準備完了を表示するよう出力部３１５に指示する。そして、出力部３１５は、スキーマ取得部３１３からの指示に応じて、図７に示した画面におけるスキーマ状態表示欄７０５に「スキーマ準備完了」を表示する（ステップＳ７５）。その後、スキーマ読み込み処理を終了し、元の処理に戻る。
【００２７】
以上のような処理を実施することにより、階層化されているスキーマ文書を全て取得することができる。なお、スキーマ文書間の階層関係は、階層管理データ格納部３１７にて管理される。
【００２８】
図６の説明に戻って、スキーマ読み込み処理（ステップＳ７）を実施した後、処理はステップＳ９に移行する。例えば、ユーザは、ユーザ端末３を操作して、ステップＳ３で読み込んだＸＭＬ文書の編集を行う（ステップＳ９）。なお、本ステップは、ユーザの動作であるため、図６では点線ブロックで示している。また、本ステップは、上で説明したステップＳ５及びステップＳ７の処理と並行に行われる。すなわち、ユーザがＸＭＬ文書を編集しているバックグラウンドで、スキーマ文書の読み込みが行われる。
【００２９】
そして、ユーザは、所定のタイミングにて、任意の指示を行う。具体的には、スキーマ文書の再読み込み指示、文書確認指示、モード変更指示又は文書保存指示を行う。なお、モード変更指示には、変更後のモードの情報が含まれる。そして、入力部３１１は、ユーザから任意の指示の入力を受け付け、受け付けた指示が再読み込み指示であるか判断する（ステップＳ１１）。受け付けた指示が再読み込み指示である場合（ステップＳ１１：Ｙｅｓルート）、入力部３１１は、モード情報格納部３１８に格納されている現在のモードがネットワーク接続モードであるか判断する（ステップＳ１３）。現在のモードがローカルモードである場合（ステップＳ１３：Ｎｏルート）、端子Ｂを介してステップＳ３９（図１２）の処理に移行する。
【００３０】
一方、現在のモードがネットワーク接続モードである場合（ステップＳ１３：Ｙｅｓルート）、入力部３１１は、スキーマ取得部３１３にスキーマ文書の再読み込みを指示する。そして、スキーマ取得部３１３は、入力部３１１からの再読み込み指示を受信すると、ユーザ端末３のキャッシュからスキーマ文書を削除する（ステップＳ１５）。その後、ステップＳ７に戻り、スキーマ読み込み処理を再度実行する。
【００３１】
一方、ステップＳ１１において、受け付けた指示が再読み込み指示ではないと判断された場合（ステップＳ１１：Ｎｏルート）、入力部３１１は、受け付けた指示が文書確認指示であるか判断する（ステップＳ１７）。受け付けた指示が文書確認指示である場合（ステップＳ１７：Ｙｅｓルート）、入力部３１１は、ＸＭＬ文書のチェック開始を構造チェック部３１４に指示する。
【００３２】
そして、構造チェック部３１４は、入力部３１１からの指示を受信すると、階層管理データに従い、下位階層のスキーマ文書から順にＸＭＬ文書と照合し、ＸＭＬ文書の構造をチェックし、チェック結果を記憶装置に格納する（ステップＳ１９）。図１０を用いて、本ステップの詳細について説明する。
【００３３】
例えばスキーマが図１０に示すような階層関係にある場合に、スキーマｃにおいて要素Ｘ、要素Ｙ、要素Ｚ、・・・が規定され、さらにスキーマｃの下位階層にあるスキーマｆにおいて、要素Ｙの配下に要素ｙ１、要素ｙ２、・・・を追加するような記述がなされていたとする。この場合、先にスキーマｃで照合を行ったとすると、要素Ｙの配下に要素ｙ１、要素ｙ２、・・・が追加されていることが分からない。そのため、ＸＭＬ文書中の要素の過不足や並び順を正確にチェックするためにはスキーマｃより先にスキーマｆを用いて照合を行う必要がある。従って、スキーマが図１０に示すような階層関係にある場合には、（１）スキーマｆ→（２）スキーマｃ、スキーマｄ及びスキーマｅ→（３）スキーマａ→（４）スキーマｆ→（５）スキーマｂの順番で照合を行う。なお、スキーマｃ、スキーマｄ及びスキーマｅは、同一階層に属するスキーマ文書であり、この３つのスキーマ文書については順番は問わない。
【００３４】
また、ＸＭＬ文書の構造をチェックする際には、ＸＭＬ文書とスキーマ文書内のタグ等を比較し、スキーマ文書で規定されている構造と一致しているか判断する。例えば、スキーマ文書で規定されている構造と不一致の箇所（例えば、要素の過不足や並び順の不一致など）がある場合には、エラーとみなし、当該箇所の位置（行番号、列番号）及びエラー内容をチェック結果として記憶装置に格納する。そして、構造チェック部３１４は、チェック結果を表示するよう出力部３１５に指示する。そして、出力部３１５は、構造チェック部３１４からの指示に応じて、チェック結果を表示装置等に表示する（ステップＳ２１）。例えば図１１に示すような画面が表示される。図１１の画面では、エラー一覧１１０１と、エラー内容表示欄１１０２と、閉じるボタン１１０３とが含まれる。エラー一覧１１０１には、エラーの位置を示す行及び列と、エラー内容とが表示される。なお、「○」印は、選択されているエラーを表す。エラー内容表示欄１１０２には、エラー一覧１１０１において選択されたエラーについての内容が表示される。その後、処理は端子Ｂを介してステップＳ３９（図１２）の処理に移行する。
【００３５】
一方、ステップＳ１７において、受け付けた指示が文書確認指示ではないと判断された場合（ステップＳ１７：Ｎｏルート）、端子Ａを介してステップＳ２３（図１２）の処理に移行する。
【００３６】
図１２の説明に移行して、端子Ａの後、入力部３１１は、受け付けた指示がモード変更指示であるか判断する（図１２：ステップＳ２３）。受け付けた指示がモード変更指示である場合（ステップＳ２３：Ｙｅｓルート）、入力部３１１は、モード変更指示で指定されたモード（ネットワーク接続モード又はローカルモード）を現在のモードとしてモード情報格納部３１８に登録する（ステップＳ２５）。そして、入力部３１１は、モード変更指示を受けた旨をファイル管理部３１２に通知する。
【００３７】
そして、ファイル管理部３１２は、モード変更指示を受けた旨の通知を入力部３１１から受信すると、モード情報格納部３１８に格納されている現在のモードがローカルモードであるか判断する（ステップＳ２７）。現在のモードがローカルモードである場合（ステップＳ２７：Ｙｅｓルート）、ファイル管理部３１２は、キャッシュに格納されている全てのスキーマファイルを所定の保存先フォルダに保存し、保存先のフォルダ名をスキーマ一覧テーブルに登録する（ステップＳ２９）。その後、ステップＳ３９の処理に移行する。
【００３８】
一方、現在のモードがネットワーク接続モードである場合（ステップＳ２７：Ｎｏルート）、ファイル管理部３１２は、スキーマ一覧テーブルに基づき、所定文字列（すなわち、「schemaLocation」）の直後の保存先フォルダ名を、対応するＵＲＬに変換することにより、ＸＭＬ文書及び各スキーマ文書を更新する（ステップＳ３１）。詳細は後で説明するが、ローカルモードにおいてＸＭＬ文書を保存する際、ＸＭＬ文書及びスキーマ文書内の、文字列「schemaLocation」の直後のＵＲＬが保存先フォルダ名に変換される。ステップＳ３１の処理は、この保存先フォルダ名を、元のＵＲＬに変換する処理である。そして、ステップＳ３９の処理に移行する。
【００３９】
一方、ステップＳ２３において、受け付けた指示がモード変更指示ではないと判断された場合（ステップＳ２３：Ｎｏルート）、入力部３１１は、受け付けた指示がＸＭＬ文書の保存指示であるか判断する（ステップＳ３３）。受け付けた指示がＸＭＬ文書の保存指示である場合（ステップＳ３３：Ｙｅｓルート）、入力部３１１は、ＸＭＬ文書の保存指示を受けた旨をファイル管理部３１２に通知する。
【００４０】
そして、ファイル管理部３１２は、ＸＭＬ文書の保存指示を受けた旨の通知を入力部３１１から受信すると、編集中のＸＭＬ文書を保存し、モード情報格納部３１８に格納されている現在のモードがローカルモードであるか判断する（ステップＳ３５）。現在のモードがローカルモードである場合（ステップＳ３５：Ｙｅｓルート）、ファイル管理部３１２は、スキーマ一覧テーブルに基づき、所定文字列（すなわち、「schemaLocation」）の直後のＵＲＬを、対応する保存先フォルダ名に変換することにより、ＸＭＬ文書及び各スキーマ文書を更新する（ステップＳ３７）。例えば図１に示したＸＭＬ文書についてステップＳ３７の処理を実施すると、ＸＭＬ文書は、図１３に示すような内容に変更される。図１３では、図１におけるＵＲＬ１０１が保存先フォルダ名１３０１に変更されている。同様に、図２に示したスキーマ文書についてステップＳ３７の処理を実施すると、スキーマ文書は、図１４に示すような内容に変更される。図１４では、図２におけるＵＲＬ２０１乃至２０４が保存先フォルダ名１４０１乃至１４０４にそれぞれ変更されている。なお、図１３のＸＭＬ文書及び図１４のスキーマ文書について、上で説明したステップＳ３１の処理を実施すると、元のＸＭＬ文書（図１）及びスキーマ文書（図２）にそれぞれリカバリされる。そして、ステップＳ３９の処理に移行する。
【００４１】
一方、ステップＳ３３において、受け付けた指示がＸＭＬ文書の保存指示ではないと判断された場合（ステップＳ３３：Ｎｏルート）、又は、ステップＳ３５において、現在のモードがネットワーク接続モードであると判断された場合（ステップＳ３５：Ｎｏルート）、ステップＳ３９の処理に移行する。
【００４２】
そして、ステップＳ３９の処理に移行して、入力部３１１は、ユーザによる操作が終了したか判断する（ステップＳ３９）。ユーザによる操作が終了していなければ（ステップＳ３９：Ｎｏルート）、すなわち、次の操作がある場合には、端子Ｃを介してステップＳ９（図６）の処理に戻る。一方、ユーザによる操作が終了した場合（ステップＳ３９：Ｙｅｓルート）、本処理を終了する。
【００４３】
以上のような処理を実施することにより、ユーザによって作成されたＸＭＬ文書の構造がスキーマ文書で規定されている構造と一致しているか否かを正確に且つ即時に判断できる。また、ローカルモードに設定しておけば、ネットワークに接続できないような環境（例えば移動中など）でも、文書のチェックを行うことができる。また、例えば同一名称で且つ内容が異なるスキーマ文書が複数存在した場合に、これらのスキーマ文書に基づいてＸＭＬ文書のチェックを行うと、ＸＭＬ文書についてエラーが出力されるが、このエラー内容から、名称が同一で内容が異なるスキーマ文書が複数存在することが把握可能となる副次的効果もある。
【００４４】
以上本技術の一実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、上で説明したユーザ端末３の機能ブロック図は必ずしも実際のプログラムモジュール構成に対応するものではない。
【００４５】
また、上で説明したデータ構造及びテーブル構成は一例であって、必ずしも上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【００４６】
また、上ではユーザからの再読み込み指示を受け付けた場合に、スキーマ文書の再読み込みを行うようになっていたが、例えばタイマを用いて定期的にスキーマ文書の再読み込みを行うような構成を採用することも可能である。
【００４７】
以上本実施の形態をまとめると以下のようになる。
【００４８】
本文書確認処理方法は、所定の文書内を探索し、参照すべき特定のスキーマ文書の格納先情報が所定の文書内に含まれているか判断する第１判断ステップと、特定のスキーマ文書の格納先情報が所定の文書内に含まれていると判断された場合、当該特定のスキーマ文書を取得してキャッシュに格納する第１取得ステップと、特定のスキーマ文書内を探索し、参照すべき他のスキーマ文書の格納先情報が特定のスキーマ文書内に含まれているか判断する第２判断ステップと、他のスキーマ文書の格納先情報が特定のスキーマ文書内に含まれていると判断された場合、当該他のスキーマ文書を取得してキャッシュに格納する第２取得ステップと、ユーザから文書確認指示を受け付けた場合、スキーマ文書間の階層関係を基に、キャッシュに格納された下位階層のスキーマ文書から順に所定の文書と照合し、所定の文書の構造がスキーマ文書で規定されている構造と一致しているか判断するステップとを含む。
【００４９】
このようにすれば、例えばスキーマ文書が階層的に指定される場合には、必要なスキーマ文書を全て取得し、下位階層のスキーマ文書から順に所定の文書と照合するので、所定の文書の構造が正しいか否かを正確に且つ即時に判断できる。例えば、下位階層のスキーマ文書では、上位階層のスキーマ文書において規定されている構造に、ある要素を追加するような記述がなされる場合があるため、下位階層のスキーマ文書から順に照合することで、所定の文書の構造が正しいか否かを正確に判断できるようになる。
【００５０】
また、上記第２取得ステップの後、ユーザから、ネットワーク接続を行う第１実行モードからネットワーク接続を行わない第２実行モードへの変更が指示された場合、キャッシュに格納されているスキーマ文書を、コンピュータ内の所定の保存先に格納し、スキーマ文書毎に当該スキーマ文書の格納先情報と保存先情報とを含むスキーマ文書テーブルを記憶装置に格納するステップと、スキーマ文書テーブルに基づき、所定の文書及びスキーマ文書内の、スキーマ文書の格納先情報を、対応する保存先情報に書き換えるステップとをさらに含むようにしてもよい。このようにすれば、例えばネットワークに接続できない環境においてもユーザは文書の作成及び確認を行うことができるようになる。
【００５１】
さらに、ユーザから、第２実行モードから第１実行モードへの変更が指示された場合、スキーマ文書テーブルに基づき、所定の文書及びスキーマ文書内の、スキーマ文書の保存先情報を、対応する格納先情報に書き換えるステップとをさらに含むようにしてもよい。このようにすれば、第１実行モードと第２実行モードとの切り替えを適切に行うことができるようになる。
【００５２】
また、上記第２取得ステップの後、所定のタイミングにて、キャッシュからスキーマ文書を削除し、第１判断ステップ乃至第２取得ステップを再度実行するステップをさらに含むようにしてもよい。このようにすれば、非同期に更新されるスキーマ文書を最新版に変更し、当該最新版のスキーマ文書に基づいて、所定の文書の構造が正しいか否かを確認できるようになる。
【００５３】
なお、ユーザ端末３をハードウエアと共に実現するためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等の記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【００５４】
なお、ユーザ端末３は、図１５に示すように、メモリ２５０１（記憶部）とＣＰＵ２５０３（処理部）とハードディスク・ドライブ（ＨＤＤ）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。ＯＳ及びＷｅｂブラウザを含むアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。必要に応じてＣＰＵ２５０３は、表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、必要な動作を行わせる。また、処理途中のデータについては、メモリ２５０１に格納され、必要があればＨＤＤ２５０５に格納される。このようなコンピュータは、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【符号の説明】
【００５５】
１  ネットワーク
３  ユーザ端末
５ａ，５ｂ，５ｃ  サーバ
３１  ＸＭＬエディタ
５１ａ，５１ｂ，５１ｃ  スキーマ格納部
３１１  入力部    ３１２  ファイル管理部
３１３  スキーマ取得部    ３１４  構造チェック部
３１５  出力部    ３１６  スキーマ一覧テーブル格納部
３１７  階層管理データ格納部    ３１８  モード情報格納部
【図１】
2010204985.tif 000003
【図２】
2010204985.tif 000004
【図３】
2010204985.tif 000005
【図４】
2010204985.tif 000006
【図５】
2010204985.tif 000007
【図６】
2010204985.tif 000008
【図７】
2010204985.tif 000009
【図８】
2010204985.tif 000010
【図９】
2010204985.tif 000011
【図１０】
2010204985.tif 000012
【図１１】
2010204985.tif 000013
【図１２】
2010204985.tif 000014
【図１３】
2010204985.tif 000015
【図１４】
2010204985.tif 000016
【図１５】
2010204985.tif 000017