(57)【要約】【課題】構造化文書の文書型定義に合致している木構造を出力することができる構造化文書編集装置を実現する。【解決手段】構造化文書についての文書型定義を記憶する文書型定義格納部３７と、該記憶されている文書型定義に基づき構造化文書の構造を解析し、各要素ノードの内容情報を含む木構造を作成する構造解析部３２とを備え、構造解析部３２は、木構造の作成時において、構造化文書の要素あるいはテキストに対応するノード毎に、親ノードの内容情報に基づいて当該親子関係を検証し、正当な親子関係である場合に該親ノードの子ノードとして当該ノードを追加することを特徴とする。【選択図】    図３
2004227478.tif 000002
【特許請求の範囲】
【請求項１】
複数の要素またはテキストを有する構造化文書についての木構造を作成する構造化文書編集装置であって、
前記構造化文書についての文書型定義を記憶する文書型定義格納手段と、
前記文書型定義格納手段に記憶されている文書型定義に基づき前記構造化文書の構造を解析し、各要素ノードの内容情報を含む木構造を作成する構造解析手段とを備え、
前記構造解析手段は、木構造の作成時において、前記構造化文書の要素あるいはテキストに対応するノード毎に、親ノードの内容情報に基づいて当該親子関係を検証し、正当な親子関係である場合に該親ノードの子ノードとして当該ノードを追加する
ことを特徴とする構造化文書編集装置。
【請求項２】
前記構造解析手段により作成された木構造を記憶する木構造保存手段と、
木構造を編集する文書構造編集手段とを備え、
前記文書構造編集手段は、前記構造化文書の変更がある場合に、前記木構造保存手段に記憶されている木構造に含まれる変更対象の要素ノードの内容を検証し、前記構造化文書についての文書型定義に合致する変更であるか否かを判断する
ことを特徴とする請求項１に記載の構造化文書編集装置。
【請求項３】
前記木構造が有する内容情報は、前記文書型定義格納手段への参照情報であることを特徴とする請求項１または請求項２に記載の構造化文書編集装置。
【請求項４】
前記構造化文書が有する文書型定義参照情報に基づいて該当する文書型定義を取得し、前記文書型定義格納手段に記憶させる文書型定義取得手段を具備することを特徴とする請求項１乃至請求項３のいずれかの項に記載の構造化文書編集装置。
【請求項５】
前記文書型定義取得手段は、前記取得した文書型定義を解析し、該文書型定義に含まれる各要素の要素名と内容情報を対応付けて前記文書型定義格納手段に記憶させることを特徴とする請求項４に記載の構造化文書編集装置。
【請求項６】
複数の要素またはテキストを有する構造化文書についての木構造を作成する構造化文書編集装置であって、
前記構造化文書についての文書型定義に基づき前記構造化文書の構造が解析され作成された各要素ノードの内容情報を含む木構造を編集する文書構造編集手段を備え、
前記文書構造編集手段は、前記構造化文書の変更がある場合に、前記編集する木構造に含まれる変更対象の要素ノードの内容を検証し、前記構造化文書についての文書型定義に合致する変更であるか否かを判断する
ことを特徴とする構造化文書編集装置。
【請求項７】
前記作成された木構造を使用して前記構造化文書についての文書処理を行う文書処理手段を具備することを特徴とする請求項１乃至請求項６のいずれかの項に記載の構造化文書編集装置。
【請求項８】
複数の要素またはテキストを有する構造化文書についての木構造を作成する構造化文書編集方法であって、
前記構造化文書についての文書型定義に基づき前記構造化文書の構造を解析する過程と、
この解析により各要素ノードの内容情報を含む木構造を作成する過程と、
前記木構造の作成時において、前記構造化文書の要素あるいはテキストに対応するノード毎に、親ノードの内容情報に基づいて当該親子関係を検証し、正当な親子関係である場合に該親ノードの子ノードとして当該ノードを追加する過程と、
を含むことを特徴とする構造化文書編集方法。
【請求項９】
前記作成された木構造を記憶手段に記憶させる過程と、
前記構造化文書の変更がある場合に、前記記憶手段に記憶されている木構造に含まれる変更対象の要素ノードの内容を検証し、前記構造化文書についての文書型定義に合致する変更であるか否かを判断する過程と、
この判断により木構造を編集する過程と、
を含むことを特徴とする請求項８に記載の構造化文書編集方法。
【請求項１０】
複数の要素またはテキストを有する構造化文書についての木構造を作成する構造化文書編集方法であって、
前記構造化文書の変更がある場合に、前記構造化文書についての文書型定義に基づき前記構造化文書の構造が解析され作成された各要素ノードの内容情報を含む木構造、に含まれる変更対象の要素ノードの内容を検証し、前記構造化文書についての文書型定義に合致する変更であるか否かを判断する過程と、
この判断により木構造を編集する過程と、
を含むことを特徴とする構造化文書編集方法。
【請求項１１】
複数の要素またはテキストを有する構造化文書についての木構造を作成する構造化文書編集処理を行うための構造化文書編集プログラムであって、
前記構造化文書についての文書型定義に基づき前記構造化文書の構造を解析する処理と、
この解析により各要素ノードの内容情報を含む木構造を作成する処理と、
前記木構造の作成時において、前記構造化文書の要素あるいはテキストに対応するノード毎に、親ノードの内容情報に基づいて当該親子関係を検証し、正当な親子関係である場合に該親ノードの子ノードとして当該ノードを追加する処理と、
をコンピュータに実行させることを特徴とする構造化文書編集プログラム。
【請求項１２】
前記作成された木構造を記憶手段に記憶させる処理と、
前記構造化文書の変更がある場合に、前記記憶手段に記憶されている木構造に含まれる変更対象の要素ノードの内容を検証し、前記構造化文書についての文書型定義に合致する変更であるか否かを判断する処理と、
この判断により木構造を編集する処理と、
をさらにコンピュータに実行させることを特徴とする請求項１１に記載の構造化文書編集プログラム。
【請求項１３】
複数の要素またはテキストを有する構造化文書についての木構造を作成する構造化文書編集処理を行うための構造化文書編集プログラムであって、
前記構造化文書の変更がある場合に、前記構造化文書についての文書型定義に基づき前記構造化文書の構造が解析され作成された各要素ノードの内容情報を含む木構造、に含まれる変更対象の要素ノードの内容を検証し、前記構造化文書についての文書型定義に合致する変更であるか否かを判断する処理と、
この判断により木構造を編集する処理と、
をコンピュータに実行させることを特徴とする構造化文書編集プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）文書等の構造化文書の編集に用いて好適な構造化文書編集装置、構造化文書編集方法、並びにその構造化文書編集装置をコンピュータを利用して実現するための構造化文書編集プログラムに関する。
【０００２】
【従来の技術】
近年、ネットワーク環境の向上に伴い、異なる種類の端末装置間で文書ファイルの交換が行われるようになっている。例えば、パーソナルコンピュータ（ＰＣ；Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）において作成された文書をネットワークを介して携帯電話機に送信し、送信先の携帯電話機においてその文書ファイルを閲覧するといったことや、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔｓ：個人用情報機器）間において直接文書を送受信して閲覧するといったことが行われている。
【０００３】
上述したように、種類の異なる端末装置間において文書交換を実現するために、ＸＭＬ等のタグ言語が用いられている。ＸＭＬ等のタグ言語は、タグと呼ばれる記号を用いてテキストに文書の構造等を埋め込むことにより、端末装置の種類に依存しない共通の文書形式による構造化文書の作成を可能とするものである。
このために、例えばＸＭＬでは、その統一のための規則がＷ３Ｃ（Ｗｏｒｌｄ  ＷｉｄｅＷｅｂ  Ｃｏｎｓｏｒｔｉｕｍ  ）によって正式に勧告されている（例えば、非特許文献１参照）。また、ＸＭＬ文書をメモリ上のオブジェクトに展開し、そのオブジェクトを扱うインタフェースの規格であるＤＯＭ（Ｄｏｃｕｍｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ）もＷ３Ｃによって勧告されている。
【０００４】
また、ＸＭＬ文書を処理するＸＭＬプロセッサとして、非検証ＸＭＬプロセッサと検証ＸＭＬプロセッサが知られている。これらＸＭＬプロセッサは上記ＸＭＬ勧告の規定に従ってＸＭＬ文書の構造解析を行い、木構造を作成して出力する。非検証ＸＭＬプロセッサは、ＸＭＬ文書がＸＭＬ勧告で規定されるタグ付け規則に従って書かれているかを検証するものである。検証ＸＭＬプロセッサは、ＸＭＬ文書が文書型定義（例えばＸＨＴＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  ＨｙｐｅｒＴｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ））に準拠し、且つＸＭＬ勧告で規定されるタグ付け規則に従って書かれているかを検証するものである。
【０００５】
【非特許文献１】
Ｔｉｍ  Ｂｒａｙ、外３名、“Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ  （ＸＭＬ）  １．０  （Ｓｅｃｏｎｄ  Ｅｄｉｔｉｏｎ）”、［ｏｎｌｉｎｅ］、２０００年１０月６日、Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ  Ｃｏｎｓｏｒｔｉｕｍ、［平成１４年１２月２７日検索］、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｗ３．ｏｒｇ／ＴＲ／ＲＥＣ−ｘｍｌ＞
【０００６】
【発明が解決しようとする課題】
しかし、上述した従来のＸＭＬプロセッサでは、以下のような問題がある。
非検証ＸＭＬプロセッサでは、ＸＭＬ文書が文書型定義に従って記述されているかを検証しないので、文書型定義に反する不正な文書が入力されると、この不正な入力文書をそのまま処理し、不正な処理結果（木構造）を出力する。このため、非検証ＸＭＬプロセッサから出力される木構造をアプリケーションで利用する場合（例えば木構造に従って表示用にレイアウトする場合）には、アプリケーション側で文書型定義に反する木構造の内容についての補正等の処理を追加して実行しなければならず、アプリケーション側の処理負荷が増大する。特にＰＤＡ等に搭載される組み込み向けの製品などではハードウェア資源が限られるので、その処理負荷の増大が大きな問題となっている。
【０００７】
検証ＸＭＬプロセッサでは、ＸＭＬ文書が文書型定義に従って記述されているかを検証し、エラー時にはエラーメッセージを出力して処理を終了する。このため、当該ＸＭＬ文書をアプリケーションで利用することができない。また、正当なＸＭＬ文書を解析することにより作成された木構造に対して要素ノードの削除、追加などを行うと、文書型定義に反することがある。このような場合には、検証ＸＭＬプロセッサで処理したにもかかわらず、不正な木構造が出力されることとなり、検証ＸＭＬプロセッサから出力される木構造が文書型定義に合致していることが保障されない。この結果、上記非検証ＸＭＬプロセッサと同様にアプリケーション側の処理負荷が増大するという問題が生じる。
【０００８】
本発明は、このような事情を考慮してなされたもので、その目的は、構造化文書の文書型定義に合致している木構造を出力することができる構造化文書編集装置、構造化文書編集方法を提供することにある。
【０００９】
また、本発明の他の目的は、その構造化文書編集装置をコンピュータを利用して実現するための構造化文書編集プログラムを提供することにある。
【００１０】
【課題を解決するための手段】
上記の課題を解決するために、本発明の構造化文書編集装置は、複数の要素またはテキストを有する構造化文書についての木構造を作成する構造化文書編集装置であって、前記構造化文書についての文書型定義を記憶する文書型定義格納手段と、前記文書型定義格納手段に記憶されている文書型定義に基づき前記構造化文書の構造を解析し、各要素ノードの内容情報を含む木構造を作成する構造解析手段とを備え、前記構造解析手段は、木構造の作成時において、前記構造化文書の要素あるいはテキストに対応するノード毎に、親ノードの内容情報に基づいて当該親子関係を検証し、正当な親子関係である場合に該親ノードの子ノードとして当該ノードを追加することを特徴としている。
【００１１】
この発明によれば、木構造に各要素ノードの内容情報が含められ、該内容情報により親子関係が検証されるので、構造化文書の文書型定義に合致している木構造を出力することができるとともに、ノード毎の親子関係の検証時に該当する親ノードの内容情報を検索して取得する処理が省け、処理時間の短縮を図ることができる。
【００１２】
また、本発明の構造化文書編集装置においては、前記構造解析手段により作成された木構造を記憶する木構造保存手段と、木構造を編集する文書構造編集手段とを備え、前記文書構造編集手段は、前記構造化文書の変更がある場合に、前記木構造保存手段に記憶されている木構造に含まれる変更対象の要素ノードの内容を検証し、前記構造化文書についての文書型定義に合致する変更であるか否かを判断することを特徴とする。
この発明によれば、既に作成され保存されている木構造に含まれる変更対象の要素ノードの内容情報を使用して、文書型定義に合致する変更であるか否かが判断されるので、構造化文書の変更に伴う構造化文書の妥当性検証の効率化を図ることができる。
【００１３】
また、本発明の構造化文書編集装置においては、前記木構造が有する内容情報は、前記文書型定義格納手段への参照情報（例えばリンク情報）であることを特徴とする。
この発明によれば、木構造データのデータ量が削減され、メモリコストの低減が図れる。
【００１４】
また、本発明の構造化文書編集装置においては、前記構造化文書が有する文書型定義参照情報に基づいて該当する文書型定義を取得し、前記文書型定義格納手段に記憶させる文書型定義取得手段を具備することを特徴とする。
この発明によれば、各種の文書型定義に柔軟に対応することができる。
【００１５】
また、本発明の構造化文書編集装置においては、前記文書型定義取得手段は、前記取得した文書型定義を解析し、該文書型定義に含まれる各要素の要素名と内容情報を対応付けて前記文書型定義格納手段に記憶させることを特徴とする。
この発明によれば、文書型定義の検証に必要な情報を抽出して格納するので、文書型定義の格納を効率よく行うことができる。
【００１６】
本発明の構造化文書編集装置は、複数の要素またはテキストを有する構造化文書についての木構造を作成する構造化文書編集装置であって、前記構造化文書についての文書型定義に基づき前記構造化文書の構造が解析され作成された各要素ノードの内容情報を含む木構造を編集する文書構造編集手段を備え、前記文書構造編集手段は、前記構造化文書の変更がある場合に、前記編集する木構造に含まれる変更対象の要素ノードの内容を検証し、前記構造化文書についての文書型定義に合致する変更であるか否かを判断することを特徴としている。
この発明によれば、構造化文書の文書型定義に合致している木構造を出力することができるとともに、簡易な構成で木構造の編集を実現することができる。
【００１７】
また、本発明の構造化文書編集装置においては、前記作成された木構造を使用して前記構造化文書についての文書処理を行う文書処理手段を具備することを特徴とする。
この発明によれば、文書処理時には、使用する木構造が文書型定義に合致しているので、文書型定義に反する木構造の内容を補正する等の処理を行う必要がなく、レイアウト等のアプリケーション側の処理負荷が軽減される。
【００１８】
本発明の構造化文書編集方法は、複数の要素またはテキストを有する構造化文書についての木構造を作成する構造化文書編集方法であって、前記構造化文書についての文書型定義に基づき前記構造化文書の構造を解析する過程と、この解析により各要素ノードの内容情報を含む木構造を作成する過程と、前記木構造の作成時において、前記構造化文書の要素あるいはテキストに対応するノード毎に、親ノードの内容情報に基づいて当該親子関係を検証し、正当な親子関係である場合に該親ノードの子ノードとして当該ノードを追加する過程とを含むことを特徴としている。
【００１９】
また、本発明の構造化文書編集方法においては、前記作成された木構造を記憶手段に記憶させる過程と、前記構造化文書の変更がある場合に、前記記憶手段に記憶されている木構造に含まれる変更対象の要素ノードの内容を検証し、前記構造化文書についての文書型定義に合致する変更であるか否かを判断する過程と、この判断により木構造を編集する過程とを含むことを特徴とする。
【００２０】
本発明の構造化文書編集方法は、複数の要素またはテキストを有する構造化文書についての木構造を作成する構造化文書編集方法であって、前記構造化文書の変更がある場合に、前記構造化文書についての文書型定義に基づき前記構造化文書の構造が解析され作成された各要素ノードの内容情報を含む木構造、に含まれる変更対象の要素ノードの内容を検証し、前記構造化文書についての文書型定義に合致する変更であるか否かを判断する過程と、この判断により木構造を編集する過程とを含むことを特徴としている。
【００２１】
本発明の構造化文書編集プログラムは、複数の要素またはテキストを有する構造化文書についての木構造を作成する構造化文書編集処理を行うための構造化文書編集プログラムであって、前記構造化文書についての文書型定義に基づき前記構造化文書の構造を解析する処理と、この解析により各要素ノードの内容情報を含む木構造を作成する処理と、前記木構造の作成時において、前記構造化文書の要素あるいはテキストに対応するノード毎に、親ノードの内容情報に基づいて当該親子関係を検証し、正当な親子関係である場合に該親ノードの子ノードとして当該ノードを追加する処理とをコンピュータに実行させることを特徴としている。
【００２２】
また、本発明の構造化文書編集プログラムにおいては、前記作成された木構造を記憶手段に記憶させる処理と、前記構造化文書の変更がある場合に、前記記憶手段に記憶されている木構造に含まれる変更対象の要素ノードの内容を検証し、前記構造化文書についての文書型定義に合致する変更であるか否かを判断する処理と、この判断により木構造を編集する処理とをさらにコンピュータに実行させることを特徴とする。
【００２３】
本発明の構造化文書編集プログラムは、複数の要素またはテキストを有する構造化文書についての木構造を作成する構造化文書編集処理を行うための構造化文書編集プログラムであって、前記構造化文書の変更がある場合に、前記構造化文書についての文書型定義に基づき前記構造化文書の構造が解析され作成された各要素ノードの内容情報を含む木構造、に含まれる変更対象の要素ノードの内容を検証し、前記構造化文書についての文書型定義に合致する変更であるか否かを判断する処理と、この判断により木構造を編集する処理とをコンピュータに実行させることを特徴としている。
上記構造化文書編集プログラムにより、前述の構造化文書編集装置がコンピュータを利用して実現できるようになる。
【００２４】
【発明の実施の形態】
以下、図面を参照し、本発明の実施形態について説明する。
図１は、本発明の実施形態による構造化文書編集装置を適用した文書交換システムの構成例を示すブロック図である。図１において、文書交換システムは、ＰＣ１とＰＤＡ２とプリンタ３とサーバ４とを有し、これらの機器１〜４がインターネット５に接続可能なように構成される。また、図１中の構造化文書は、各機器間で交換されるものとして示されている。
【００２５】
ＰＣ１，ＰＤＡ２，プリンタ３は、各機器間での端末間通信機能を備えた端末装置である。さらに、ＰＣ１，ＰＤＡ２，プリンタ３は、インターネット５を介してサーバ４と通信するためのネットワーク通信機能を備えている。これらの各機器１〜３には、本発明の実施形態による構造化文書編集装置が適用されている。なお、端末間通信機能及びネットワーク通信機能については、当該端末装置の通信環境に応じて設ければよい。
サーバ４は、一般的なＷｅｂサーバであり、インターネット５を介して各機器１〜３に構造化文書を配信する。
以下、本発明の実施例である端末装置については、ＰＣ１を例に挙げて説明する。
【００２６】
図２は、ＰＣ１のハードウェア構成を示すブロック図である。図２において、ＰＣ１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１と、メモリ１２と、ファイルシステム１３と、端末間通信インターフェース１４と、ネットワークインターフェース１５と、Ｉ／Ｏコントローラ１６と、Ｉ／Ｏ装置１７と、表示コントローラ１８と、表示装置１９とから構成される。
【００２７】
ＣＰＵ１１は、ＰＣ１全体を制御するもので、Ｉ／Ｏ装置１７から入力される各種の指示信号に従って、ファイルシステム１３に記憶された各種処理に関するプログラムを読み出して実行する。例えば、ＣＰＵ１１は、サーバ４等から構造化文書ファイルを受信した場合に、構造化文書編集プログラムにより構造化文書編集処理を実行する。そして、その構造化文書編集処理により、例えば、受信した構造化文書ファイルの内容を自装置の設定に適合させて表示する。そして、ＣＰＵ１１は、各種プログラムを実行した処理結果をメモリ１２やファイルシステム１３の所定の領域に格納したり、表示装置１９に表示させたりする。
【００２８】
メモリ１２は、ＣＰＵ１１により実行される各種処理において生成された各種データを一時的に記憶する。ファイルシステム１３は、ハードディスク装置やフラッシュＲＯＭ等の不揮発性記憶装置（記憶媒体）で構成される。このファイルシステム１３は、構造化文書編集処理のためのプログラムおよびＰＣ１の制御のための各種処理に関するプログラムを記憶する。
【００２９】
端末間通信インターフェース１４は、ＩｒＤＡ（Ｉｎｆｒａｒｅｄ  Ｄａｔａ  Ａｓｓｏｃｉａｔｉｏｎ）やブルートゥース（Ｂｌｕｅｔｏｏｔｈ）等の通信インターフェースであり、ＣＰＵ１１から送信指示された各種データに対し、端末間通信を行うための所定の形式へのデータ変換処理を施してＰＤＡ２等の他の端末装置に出力する。また、端末間通信インターフェース１４は、他の端末装置から受信した信号に所定のデータ変換処理を施して、ＣＰＵ１１に出力する。
【００３０】
ネットワークインターフェース１５は、イーサネット（登録商標）アダプタ（Ｅｔｈｅｒｎｅｔ（登録商標）  Ａｄａｐｔｏｒ）やダイヤルアップ接続のためのモデム等の通信インターフェースであり、ＣＰＵ１１から送信指示された各種データに対し、インターネット５を介して送信するための所定の形式へのデータ変換処理を施してサーバ４に送信する。また、ネットワークインターフェース１５は、インターネット５を介して受信した信号に所定のデータ変換処理を施して、ＣＰＵ１１に出力する。
【００３１】
Ｉ／Ｏコントローラ１６は、Ｉ／Ｏ装置１７から入力された信号のＣＰＵ１１への入力の制御を行う。Ｉ／Ｏ装置１７は、キーボード等のキースイッチ、タッチパネルあるいはマウス等のポインティングデバイスを含み、キースイッチの押下信号やポインティングデバイスの位置信号をＩ／Ｏコントローラ１６を介してＣＰＵ１１に出力する。
【００３２】
表示コントローラ１８は、表示装置１９で表示される表示データの表示装置１９に対する出力を制御する。表示装置１９は、例えばドットマトリクスタイプのカラー液晶表示セルやＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）等から構成され、表示コントローラ１８から入力された各種データを表示する。
【００３３】
なお、文書を閲覧するための装置は、表示装置のほか、印字装置（プリンタ）等であってもよく、構造化文書ファイルの内容を印刷して閲覧することも可能である。
【００３４】
図３は、上記図２のハードウエア構成によって実現される第１の実施形態による構造化文書編集装置の機能構成を示すブロック図である。図３において、第１の実施形態による構造化文書編集装置は、入力部３１と構造解析部３２とレイアウト部３３と出力部３４とネットワーク通信部３５と文書型定義解析部３６と文書型定義格納部３７とを有する。
【００３５】
入力部３１は処理対象となる構造化文書データの入力処理を行う。入力された構造化文書データは構造解析部３２に出力される。図４に入力される構造化文書の例を示す。図４の構造化文書は、ＸＨＴＭＬ  Ｂａｓｉｃに基づいて記述された木構造を有するものである。この構造化文書には、当該構造化文書についての文書型定義が格納されているサーバのＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）１０１が設定されている。このＵＲＬ１０１は文書型定義参照情報である。さらに、構造化文書には各種の要素が含まれている。この“要素”とは、構造化文書中、開始タグと終了タグとに挟まれた文書の構成要素である。そして、要素の中に下位の要素が階層的に含まれるというように、構造化文書は木構造を有するものとなっている。
【００３６】
図４の例では、ＸＭＬ規則に基づき、「＜」と「＞」で囲まれた文字列をタグ、「＜文字列＞」を開始タグ、「＜／文字列＞」を終了タグ、開始タグと終了タグで挟まれた文字列を要素、タグ内に記述される要素の名前を要素名、要素に対する付加情報を属性と称する。
【００３７】
なお、構造化文書データを記述する言語は、端末装置の種類に依存しない他の言語（ＸＨＴＭＬ１．０等のＸＭＬに基づく言語等）で記述することが可能である。
【００３８】
構造解析部３２は、入力部３１から入力された構造化文書データを元に当該構造化文書の構造を解析する。この解析は文書型定義格納部３７に記憶されている文書型定義に基づいて行われる。さらに、構造解析部３２は、解析した構造化文書の木構造を作成する。この作成時に、構造解析部３２は各要素ノードの内容情報を木構造データに含める。要素ノードの内容情報とは、自ノードの子となるノードの条件を含む情報である。さらに、構造解析部３２は木構造に含める要素ノード及びテキストノード毎に、親ノードの内容情報に基づいて当該親子関係を検証し、正当な親子関係である場合に該親ノードの子ノードとして当該ノードを追加する。作成された木構造データはレイアウト部３３に出力される。
【００３９】
また、構造解析部３２は、構造化文書の解析の結果、文書型定義参照情報を検出すると、該参照情報をネットワーク通信部３５に通知し、ネットワーク通信部３５を介して該当する文書型定義データを取得する。この取得した文書型定義データは文書型定義解析部３６に出力される。
【００４０】
レイアウト部３３は、構造解析部３２から入力された木構造データを元に当該構造化文書の表示、印刷等に使用されるレイアウト情報を作成する。作成されたレイアウト情報は出力部３４に出力される。出力部３４はレイアウト部３３から入力されたレイアウト情報を使用して当該構造化文書の表示、印刷等の出力処理を行う。
【００４１】
ネットワーク通信部３５は、構造解析部３２から通知された文書型定義参照情報を使用して、インターネット５を介し該当するサーバから文書型定義データを取得する。取得された文書型定義データは構造解析部３２に出力される。
【００４２】
文書型定義解析部３６は、構造解析部３２から入力された文書型定義データを元に当該文書型定義を解析し、当該文書型定義に含まれる各要素の要素名と内容情報を含む要素情報を文書型定義格納部３７に記憶させる。要素名と該要素の内容情報は対応付けされて文書型定義格納部３７に記憶される。また、要素情報には、要素名と内容情報に加えて、当該要素の属性や、当該要素を表示あるいは印刷する際に必要となる基本的な情報（基本スタイル）、例えばフォント情報などを含めるようにしてもよい。
【００４３】
次に、図５〜図７のフローチャートを参照して、上記図３に示す第１の実施形態による構造化文書編集装置の動作を説明する。図５は、構造解析部３２が行う処理の流れを示すフローチャートである。図６は、文書型定義解析部３６が行う処理の流れを示すフローチャートである。図７は、レイアウト部３３が行う処理の流れを示すフローチャートである。
【００４４】
先ず、入力部３１が処理対象となる構造化文書データの入力処理を行い、構造解析部３２に出力する。図５において、構造解析部３２は、構造化文書データが入力されると（ステップＳ１）、該構造化文書データ内のテキストデータの先頭から字句解析を行う（ステップＳ２）。次いで、字句解析の結果から処理対象を判定する（ステップＳ３）。例えば、ＸＭＬ規則に準拠した構造化文書の場合、処理対象としては文書型定義、要素、属性、テキストなどがある。この判定の結果、処理対象が文書型定義（例えば図４のＵＲＬ１０１を含むタグ部分）であった場合にステップＳ４に進み、他方、文書型定義以外の処理対象であった場合にはステップＳ６に進む。
【００４５】
ステップＳ４では、構造解析部３２は、処理対象の文書型定義の参照情報（例えば図４のＵＲＬ１０１）をネットワーク通信部３５に通知し、ネットワーク通信部３５を介して該当する文書型定義データを取得する。次いで、この取得した文書型定義データを文書型定義解析部３６に出力し、文書型定義解析部３６により文書型定義を文書型定義格納部３７に格納する処理が行われる（ステップＳ５）。次いで、ステップＳ１３では、全てのテキストデータの字句解析が終了したか否かを判断し、終了していない場合にはステップＳ２へ戻る。
【００４６】
ここで、図６を参照して、文書型定義解析部３６が文書型定義を文書型定義格納部３７へ格納する動作を説明する。図６において、文書型定義解析部３６は、文書型定義データが入力されると（ステップＳ２１）、該文書型定義データに含まれる要素の内容情報の検出を行う。（ステップＳ２２）。次いで、検出した内容情報を解析し、当該要素の要素名と内容情報を対応付けて文書型定義格納部３７に記憶させる（ステップＳ２３、Ｓ２４）。文書型定義解析部３６は、これらステップＳ２２〜Ｓ２４の処理を文書型定義データに含まれる全ての要素について実行する。そして、全ての要素についての処理が終了すると、図６の処理を終了する（ステップＳ２５）。図８は、文書型定義格納部３７が記憶する文書型定義の構成例を示す図である。図８においては、各種要素毎に、その要素名（対象要素名）と内容情報（子要素の条件）が対応付けされている。
なお、要素の属性や基本スタイル等を要素名と内容情報とともに要素情報として文書型定義格納部３７に記憶させるようにしてもよい。
【００４７】
次に、図５においてステップＳ６では、構造解析部３２は、文書型定義以外の処理対象について、当該構造化文書の木構造に含めるノードを生成する（ステップＳ６）。次いで、該生成されたノード（生成ノード）が要素ノードであった場合にはステップＳ８へ進み、テキストノードであった場合にはステップＳ９へ進み、要素ノード及びテキストノード以外のノードであった場合にはステップＳ２に戻る（ステップＳ７）。
【００４８】
ステップＳ８では、構造解析部３２は、生成された要素ノードの要素名に対応する要素情報（内容情報を含む）を文書型定義格納部３７から読み出して、当該要素ノードに格納する（ステップＳ８）。図９は、要素ノードの構成例を示す図である。図９には、「ｔａｂｌｅ」要素のノード構成例を示している。図９においては、「ｔａｂｌｅ」要素ノードは、属性リスト２０１と基本スタイル２０２と内容情報２０３を有する。属性リスト２０１，基本スタイル２０２，内容情報２０３にはそれぞれ要素情報に含まれる属性，基本スタイル，内容情報２０３が格納されている。
【００４９】
なお、要素ノードには、内容情報のうち、少なくとも子要素の候補情報のみを格納すればよい。図９の例では、内容情報２０３の子要素候補情報２０４（「ｔｒ」）のみが格納されればよく、属性リスト２０１、基本スタイル２０２、内容情報２０３の子要素候補の兄要素候補や子要素候補の個数等の情報は必須ではない。
【００５０】
次に、ステップＳ９では、構造解析部３２は、生成ノード（要素ノードあるいはテキストノード）についての親となる要素ノード（親ノード）の内容情報を取得する。次いで、構造解析部３２は、取得した親ノードの内容情報に基づいて、当該生成ノードとの親子関係を検証し、正当な親子関係であるか否かを判定する（ステップＳ１０）。この判定の結果、正当な親子関係である場合に、該親ノードの子ノードとして当該生成ノードを木構造に追加する（ステップＳ１１）。一方、親子関係として正当ではない場合には、当該生成ノードを削除する（ステップＳ１２）。次いで、ステップＳ１３で、全てのテキストデータの字句解析が終了したか否かを判断し、終了していない場合にはステップＳ２へ戻り、終了した場合には構造解析部３２は作成した木構造のデータをレイアウト部３３に出力し、その処理を終了する。
【００５１】
図１０は、構造解析部３２が作成した木構造の例を示す図である。図１０には、図４の構造化文書についての木構造の例を示している。図４の構造化文書では、文書定義に反する記述１１１（「ｐ」要素及び「ｏｌ」要素）及び１１２（「ｐ」要素）が含まれている。しかし、上述した構造解析部３２による構造化文書の妥当性検証によりそれらの違反要素が検出され、違反要素のノードは図１０の木構造には含まれていない。図１０において、「ｅｍ」要素１２１の要素ノード１２１ａの子ノードは、テキスト１２２（「結論」）のテキストノード１２２ａのみであり、違反要素（「ｐ」要素及び「ｏｌ」要素）のノードは無い。また、「ｔｒ」要素１３１の要素ノード１３１ａの子ノードは、「ｔｄ」要素１３２，１３３の要素ノード１３２ａ，１３３ａのみであり、違反要素（「ｐ」要素）のノードは無い。
【００５２】
このように、上述した実施形態によれば、構造化文書の文書型定義に合致している木構造を出力することができる。さらに、木構造が各要素ノードの内容情報を含んでいるので、ノード毎の親子関係の検証時に文書型定義格納部３７から該当する親ノードの内容情報を検索して取得する必要が無く、処理時間の短縮を図ることができる。
【００５３】
次に、図７を参照して、レイアウト部３３が木構造を使用して構造化文書のレイアウト情報を作成する動作を説明する。図７において、レイアウト部３３は、構造解析部３２から木構造データが入力されると（ステップＳ３１）、該木構造内の要素ノードから、レイアウトに必要な書式情報（色やフォント等の情報）を取得する（ステップＳ３２）。次いで、この書式情報を元に、当該要素を配置する位置を算出し、配置情報を作成する（ステップＳ３３）。次いで、それら書式情報と配置情報をまとめてレイアウト情報を作成する（ステップＳ３４）。レイアウト部３３は上記ステップＳ３２〜Ｓ３４の処理を全ての要素ノードについて実行する。そして、全ての要素についての処理が終了すると、全てのレイアウト情報をまとめて出力部３４に出力し、その処理を終了する（ステップＳ３５、Ｓ３６）。出力部３４では受け取ったレイアウト情報に基づいて表示、印刷等の出力処理が実行される。
【００５４】
上記レイアウト情報の作成時には、構造解析部３２から受け取った木構造が文書型定義に合致しているので、レイアウト部３３は文書型定義に反する木構造の内容を補正する等の処理を行う必要がない。これにより、アプリケーション側（レイアウト部）の処理負荷が軽減される。
【００５５】
なお、構造解析部３２は、生成した要素ノードの要素名に対応する要素情報（内容情報を含む）についての文書型定義格納部３７への参照情報（例えばリンク情報）を、要素ノードに格納するようにしてもよい。これにより、木構造データのデータ量が削減され、メモリコストの低減が図れる。
【００５６】
次に、第２の実施形態を説明する。図１１は、図２のハードウエア構成によって実現される第２の実施形態による構造化文書編集装置の機能構成を示すブロック図である。この図１１において図３の各部に対応する部分には同一の符号を付け、その説明を省略する。図１１に示すように第２の実施形態では、文書構造編集部４１と構造編集指示部４２と木構造保存部４３を設けている。また、構造解析作成部３２は、処理対象の構造化文書の木構造を作成すると、該木構造データを木構造保存部４３に記憶させる。入力部３１は、構造解析作成部３２により作成された木構造に対して編集（追加、削除）する木構造の編集データの入力処理を行う。この編集データは、例えば追加対象あるいは削除対象の部分木や要素ノードのデータである。入力された編集データは文書構造編集部４１に出力される。
【００５７】
なお、追加対象の部分木や要素ノードのデータには、各要素ノードの内容情報が含まれていることが望ましい。各要素ノードの内容情報が含まれていない場合には、構造解析作成部３２により各要素ノードの内容情報を含めた後に、追加対象のデータを文書構造編集部４１に渡すようにしてもよい。
また、編集データは構造化文書データであってもよい。この場合には、構造解析作成部３２により各要素ノードの内容情報を含む木構造を作成し、この木構造データを文書構造編集部４１に渡す。
【００５８】
構造編集指示部４２は、利用者からの編集指示を文書構造編集部４１に通知する。編集指示には、追加あるいは削除の区別と、木構造のどの部分に対して編集するかの編集位置（追加位置あるいは削除位置）の指示が含まれる。
【００５９】
文書構造編集部４１は、編集データが入力されると、構造編集指示部４２からの編集指示に従って木構造の編集処理を開始する。初めに、追加時の編集処理を説明する。先ず、文書構造編集部４１は、追加位置の親ノードの内容情報を、木構造保存部４３に記憶されている木構造データから取得する。次いで、取得した親ノードの内容情報に基づいて、該親ノードと子ノードとなる追加対象のノードとの親子関係を検証し、正当な親子関係であるか否かを判定する。この判定の結果、正当な親子関係である場合に、該親ノードの配下に当該追加対象を追加する編集を木構造保存部４３の木構造データに対して行い、この編集後の木構造データをレイアウト部３３に出力する。一方、親子関係として正当ではない場合には、当該追加対象の追加は行わず、エラーメッセージ等によりその旨を報知する。
【００６０】
図１２は追加対象の一例として部分木３００の構成例を示す図である。図１３は、図１０の木構造に部分木３００を追加した後の該木構造の構成例を示す図である。図１３において、部分木３００は「ｄｉｖ」要素ノード３０２の配下に追加されている。この追加編集時には「ｄｉｖ」要素ノード３０２の内容情報に基づいて、追加対象の「ｄｉｖ」要素ノード３０１が「ｄｉｖ」要素ノードの子ノードとして正当なものであるか否かが検証される。そして、その新たな親子関係の正当性が確認された後、図１３に示すように追加編集が実行される。
【００６１】
次に、削除時の編集処理を説明する。先ず、文書構造編集部４１は、木構造保存部４３に記憶されている木構造データに基づき、該木構造から削除対象を削除した場合にその削除位置において新たな親子関係が構成されるか否かを判断する。この判断の結果、新たな親子関係が構成されない場合は当該削除対象を削除する編集を木構造保存部４３の木構造データに対して行う。
【００６２】
一方、新たな親子関係が構成される場合には削除位置の親ノードの内容情報を木構造保存部４３に記憶されている木構造データから取得する。次いで、取得した親ノードの内容情報に基づいて、該親ノードと削除後に新たに子ノードとなるノードとの親子関係を検証し、正当な親子関係であるか否かを判定する。この判定の結果、正当な親子関係である場合に、当該削除対象を削除する編集を木構造保存部４３の木構造データに対して行う。
上記削除の編集後の木構造データはレイアウト部３３に出力される。
【００６３】
一方、新たな親子関係が正当ではない場合には、当該削除対象の削除は行わず、エラーメッセージ等によりその旨を報知する。
【００６４】
図１４は、図１０の木構造から「ｐ」要素ノード４０１を削除した後の木構造の構成例を示す図である。図１４において、「ｄｉｖ」要素ノード３０２の子ノードであった「ｐ」要素ノード４０１が削除され、図１０では「ｐ」要素ノード４０１の配下であったテキストノード４０２と「ｏｌ」要素ノード４０３が「ｄｉｖ」要素ノード３０２の新たな子ノードとなっている。この削除編集時には「ｄｉｖ」要素ノード３０２の内容情報に基づいて、テキストノード４０２と「ｏｌ」要素ノード４０３が「ｄｉｖ」要素ノードの子ノードとして正当なものであるか否かが検証される。そして、その新たな親子関係の正当性が確認された後、図１４に示すように削除編集が実行される。
【００６５】
上述したように第２の実施形態によれば、構造解析部により作成された木構造が保存され、木構造を編集する場合には該保存されている木構造に含まれる変更対象の要素ノードの内容情報を使用して、文書型定義に合致する変更であるか否かが判断されるので、構造化文書の変更に伴う構造化文書の妥当性検証の効率化を図ることができる。
【００６６】
次に、第３の実施形態を説明する。図１５は、図２のハードウエア構成によって実現される第３の実施形態による構造化文書編集装置の機能構成を示すブロック図である。この図１５において図３及び図１１の各部に対応する部分には同一の符号を付け、その説明を省略する。図１５に示すように第３の実施形態による構造化文書編集装置は、入力部３１と文書構造編集部４１と構造編集指示部４２とレイアウト部３３と出力部３４から構成される。
【００６７】
入力部３１は、構造化文書の木構造のデータと、この木構造に対して編集（追加、削除）する木構造の編集データの入力処理を行う。木構造データには、各要素ノードの内容情報が含まれている。文書構造編集部４１は、木構造の編集時に、入力された木構造データに含まれる内容情報に基づき、編集対象のノードについての親子関係を検証する。この検証の結果、正当な親子関係であった場合に当該編集処理を実行し、編集後の木構造のデータをレイアウト部３３に出力する。
【００６８】
この第３の実施形態によれば、構造化文書の文書型定義に合致している木構造を出力することができるとともに、簡易な構成で木構造の編集を実現することができる。
【００６９】
なお、上述した第１及び第２の実施形態では、ネットワーク通信部と文書定義解析部を備え、構造化文書の文書定義を外部から取得して文書型定義格納部に格納するようにしたが、ネットワーク通信部と文書定義解析部を具備せず、予め文書型定義格納部に文書定義を格納するようにしてもよい。
【００７０】
また、上述した第１〜第３の実施形態ではレイアウト部と出力部を備えるようにしたが、これら各部３３，３４は必須ではない。例えば、構造解析部または文書構造編集部が出力する木構造データをファイルシステム等に格納するようにしてもよい。例えば構造化文書を蓄積するＸＭＬデータベースの構築システムに適用することができる。
【００７１】
なお、図３，図１１，図１５に示す各構造化文書編集装置が行う各処理を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより構造化文書編集処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものであってもよい。また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【００７２】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【００７３】
以上、本発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【図面の簡単な説明】
【図１】本発明の実施形態による構造化文書編集装置を適用した文書交換システムの構成例を示すブロック図である。
【図２】ＰＣ１のハードウェア構成を示すブロック図である。
【図３】第１の実施形態による構造化文書編集装置の機能構成を示すブロック図である。
【図４】処理対象となる構造化文書の例を示す図である。
【図５】構造解析部３２が行う処理の流れを示すフローチャートである。
【図６】文書型定義解析部３６が行う処理の流れを示すフローチャートである。
【図７】レイアウト部３３が行う処理の流れを示すフローチャートである。
【図８】文書型定義格納部３７が記憶する文書型定義の構成例を示す図である。
【図９】要素ノードの構成例を示す図である。
【図１０】構造解析部３２が作成した木構造の例を示す図である。
【図１１】第２の実施形態による構造化文書編集装置の機能構成を示すブロック図である。
【図１２】追加対象の部分木３００の構成例を示す図である。
【図１３】追加編集後の木構造の構成例を示す図である。
【図１４】削除編集後の木構造の構成例を示す図である。
【図１５】第３の実施形態による構造化文書編集装置の機能構成を示すブロック図である。
【符号の説明】
１…パーソナルコンピュータ（ＰＣ）、２…個人用情報機器（ＰＤＡ）、３…プリンタ、４…サーバ、５…インターネット、１１…ＣＰＵ、１２…メモリ、１３…ファイルシステム、１４…端末間通信インターフェース、１５…ネットワークインターフェース、１６…Ｉ／Ｏコントローラ、１７…Ｉ／Ｏ装置、１８…表示コントローラ、１９…表示装置、３１…入力部、３２…構造解析部、３３…レイアウト部、３４…出力部、３５…ネットワーク通信部、３６…文書型定義解析部、３７…文書型定義格納部、４１…文書構造編集部、４２…構造編集指示部、４３…木構造保存部
【図１】
2004227478.tif 000003
【図２】
2004227478.tif 000004
【図３】
2004227478.tif 000005
【図４】
2004227478.tif 000006
【図５】
2004227478.tif 000007
【図６】
2004227478.tif 000008
【図７】
2004227478.tif 000009
【図８】
2004227478.tif 000010
【図９】
2004227478.tif 000011
【図１０】
2004227478.tif 000012
【図１１】
2004227478.tif 000013
【図１２】
2004227478.tif 000014
【図１３】
2004227478.tif 000015
【図１４】
2004227478.tif 000016
【図１５】
2004227478.tif 000017