"文字列を選択する選択手段と、前記選択手段によって選択された文字列に対して、文字列を挿入する文書がしたがう文書構造定義内で定義された要素の内、第1の要素を指定する要素指定手段と、前記選択手段によって選択された文字列を挿入する前記文書内の位置である挿入先を指定する挿入先指定手段と、前記要素指定手段によって指定された第1の要素は文字列を要素として有することができるか否かを前記文書構造定義内の定義に基づいて判断し、できないと判断した場合は、文字列を要素として有することができる該第1の要素の下位要素である第2の要素を該文書構造定義内から探索し、前記選択手段によって選択された文字列を有する該第2の要素を生成し、該第1の要素と該第2の要素の間に必要となる要素を該文書構造定義内から探索し、該必要となる要素を該第1の要素と該第2の要素の間に補完することによって挿入要素を生成し、該挿入要素を前記挿入先指定手段によって指定された挿入先に移動する移動手段を具備することを特徴とする情報処理装置。前記移動手段によって前記挿入要素を前記挿入先指定手段によって指定された挿入先に移動することが、前記文書構造定義内での定義の違反になるか否かを判断する違反判断手段と、をさらに具備し、前記移動手段は、前記違反判断手段によって違反していると判断された場合は、前記挿入先の位置の前方又は後方で前記挿入要素を挿入可能な位置を探索し、該挿入可能な位置に前記挿入要素を挿入することを特徴とする請求項1に記載の情報処理装置。前記移動手段は、前記探索の結果、前記挿入先の位置の前方及び後方で前記挿入要素を挿入可能な位置がなかった場合は、該挿入要素の上位要素を前記文書構造定義内から探索し、該第2の要素を有する上位要素を新たな挿入要素として生成し、前記違反判断手段は、前記移動手段によって前記挿入要素を前記挿入先指定手段によって指定された挿入先に移動することが、前記文書構造定義内での定義の違反になるか否かを判断することを特徴とする請求項2に記載の情報処理装置。前記文書は構造化文書又は構造化文書ではない平文の文書であることを特徴とする請求項1から3のいずれか一項に記載の情報処理装置。前記要素指定手段は、操作者の操作によって要素が指定された場合に、該指定された要素に下位要素が複数ある場合は、該下位要素を選択可能に表示し、操作者の操作によって指定された下位要素を第1の要素とすることを特徴とする請求項1から4のいずれか一項に記載の情報処理装置。コンピュータを、文字列を選択する選択手段と、前記選択手段によって選択された文字列に対して、文字列を挿入する文書がしたがう文書構造定義内で定義された要素の内、第1の要素を指定する要素指定手段と、前記選択手段によって選択された文字列を挿入する前記文書内の位置である挿入先を指定する挿入先指定手段と、前記要素指定手段によって指定された第1の要素は文字列を要素として有することができるか否かを前記文書構造定義内の定義に基づいて判断し、できないと判断した場合は、文字列を要素として有することができる該第1の要素の下位要素である第2の要素を該文書構造定義内から探索し、前記選択手段によって選択された文字列を有する該第2の要素を生成し、該第1の要素と該第2の要素の間に必要となる要素を該文書構造定義内から探索し、該必要となる要素を該第1の要素と該第2の要素の間に補完することによって挿入要素を生成し、該挿入要素を前記挿入先指定手段によって指定された挿入先に移動する移動手段として機能させるための情報処理プログラム。本発明は、選択された文字列を含む要素の作成を、文書構造定義に違反したものとなることを防止するようにした情報処理装置及び情報処理プログラムを提供することを目的としている。かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。請求項1の発明は、文字列を選択する選択手段と、前記選択手段によって選択された文字列に対して、文字列を挿入する文書がしたがう文書構造定義内で定義された要素の内、第1の要素を指定する要素指定手段と、前記選択手段によって選択された文字列を挿入する前記文書内の位置である挿入先を指定する挿入先指定手段と、前記要素指定手段によって指定された第1の要素は文字列を要素として有することができるか否かを前記文書構造定義内の定義に基づいて判断し、できないと判断した場合は、文字列を要素として有することができる該第1の要素の下位要素である第2の要素を該文書構造定義内から探索し、前記選択手段によって選択された文字列を有する該第2の要素を生成し、第1の要素と該第2の要素の間に必要となる要素を該文書構造定義内から探索し、該必要となる要素を該第1の要素と該第2の要素の間に補完することによって挿入要素を生成し、該挿入要素を前記挿入先指定手段によって指定された挿入先に移動する移動手段を具備することを特徴とする情報処理装置である。請求項2の発明は、前記移動手段によって前記挿入要素を前記挿入先指定手段によって指定された挿入先に移動することが、前記文書構造定義内での定義の違反になるか否かを判断する違反判断手段と、をさらに具備し、前記移動手段は、前記違反判断手段によって違反していると判断された場合は、前記挿入先の位置の前方又は後方で前記挿入要素を挿入可能な位置を探索し、該挿入可能な位置に前記挿入要素を挿入することを特徴とする請求項1に記載の情報処理装置である。請求項3の発明は、前記移動手段は、前記探索の結果、前記挿入先の位置の前方及び後方で前記挿入要素を挿入可能な位置がなかった場合は、該挿入要素の上位要素を前記文書構造定義内から探索し、該第2の要素を有する上位要素を新たな挿入要素として生成し、前記違反判断手段は、前記移動手段によって前記挿入要素を前記挿入先指定手段によって指定された挿入先に移動することが、前記文書構造定義内での定義の違反になるか否かを判断することを特徴とする請求項2に記載の情報処理装置である。請求項4の発明は、前記文書は構造化文書又は構造化文書ではない平文の文書であることを特徴とする請求項1から3のいずれか一項に記載の情報処理装置である。請求項5の発明は、前記要素指定手段は、操作者の操作によって要素が指定された場合に、該指定された要素に下位要素が複数ある場合は、該下位要素を選択可能に表示し、操作者の操作によって指定された下位要素を第1の要素とすることを特徴とする請求項1から4のいずれか一項に記載の情報処理装置である。請求項6の発明は、コンピュータを、文字列を選択する選択手段と、前記選択手段によって選択された文字列に対して、文字列を挿入する文書がしたがう文書構造定義内で定義された要素の内、第1の要素を指定する要素指定手段と、前記選択手段によって選択された文字列を挿入する前記文書内の位置である挿入先を指定する挿入先指定手段と、前記要素指定手段によって指定された第1の要素は文字列を要素として有することができるか否かを前記文書構造定義内の定義に基づいて判断し、できないと判断した場合は、文字列を要素として有することができる該第1の要素の下位要素である第2の要素を該文書構造定義内から探索し、前記選択手段によって選択された文字列を有する該第2の要素を生成し、第1の要素と該第2の要素の間に必要となる要素を該文書構造定義内から探索し、該必要となる要素を該第1の要素と該第2の要素の間に補完することによって挿入要素を生成し、該挿入要素を前記挿入先指定手段によって指定された挿入先に移動する移動手段として機能させるための情報処理プログラムである。請求項1の情報処理装置によれば、選択された文字列を含む要素の作成を、文書構造定義に違反したものとなることを防止することができる。請求項2の情報処理装置によれば、選択された文字列を含む要素の挿入が、文書構造定義に違反したものとならないように、挿入可能な位置に当該要素を挿入することができる。請求項3の情報処理装置によれば、上位の要素を含む要素を挿入要素とすることができるようになる。請求項4の情報処理装置によれば、構造化文書又は構造化文書ではない平文の文書に対しても文書構造定義内で定義された要素を挿入することができるようになる。請求項5の情報処理装置によれば、指定した要素に下位要素が複数ある場合は、その下位要素を指定することができるようになる。請求項6の情報処理プログラムによれば、選択された文字列を含む要素の作成を、文書構造定義に違反したものとなることを防止することができる。以下、図面に基づき本発明を実現するにあたっての好適な一実施の形態の例を説明する。図1は、本実施の形態の構成例についての概念的なモジュール構成図を示している。なお、モジュールとは、一般的に論理的に分離可能なソフトウェアコンピュータプログラム、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータプログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータプログラムコンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム、システム及び方法の説明をも兼ねている。ただし、説明の都合上、記憶する、記憶させる、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータプログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するの意である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、1モジュールを1プログラムで構成してもよいし、複数モジュールを1プログラムで構成してもよく、逆に1モジュールを複数プログラムで構成してもよい。また、複数モジュールは1コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって1モジュールが複数コンピュータで実行されてもよい。なお、1つのモジュールに他のモジュールが含まれていてもよい。また、以下、接続とは物理的な接続の他、論理的な接続データの授受、指示、データ間の参照関係等の場合にも用いる。予め定められたとは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況状態に応じて、又はそれまでの状況状態に応じて定まることの意を含めて用いる。また、Aである場合、Bをするという意味を有する記載は、Aであるか否かを判断し、Aであると判断した場合はBをするの意味で用いる。ただし、Aであるか否かの判断が不要である場合を除く。また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク一対一対応の通信接続を含む等の通信手段で接続されて構成されるほか、1つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。装置とシステムとは、互いに同義の用語として用いる。もちろんのことながら、システムには、人為的な取り決めである社会的な仕組み社会システムにすぎないものは含まない。また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、RAMRandomAccessMemory、外部記憶媒体、通信回線を介した記憶装置、CPUCentralProcessingUnit内のレジスタ等を含んでいてもよい。本実施の形態である情報処理装置は、選択した文字列を指定した要素として文書に挿入するものであって、図1の例に示すように、構造化文書作成モジュール100、構造化文書記憶モジュール110、文書構造定義記憶モジュール120、操作受付モジュール130、構造化文書作成支援モジュール140を有している。本実施の形態は、例えばXML等の構造化文書を編集又は作成するために利用する情報処理装置である。まず、構造化文書を対象としたエディター文書作成装置について説明する。構造化文書作成エディターにおいては、構造化文書に対して表示形式の指定情報であるスタイルシートを適用して表示することが行われる。その表示領域においては以下、スタイル表示領域ともいう、通常のエディターと同様の表示方法がなされることが一般的である。スタイル表示領域においては、通常のエディターと同様の表示であるが、一般的には、文字列のある範囲を選択して、コピー/貼り付けのような操作を行うことはできないようにしている。これは、操作者の選択する範囲と文書構造とが必ずしも一致しないためである。本実施の形態は、選択した文字列に要素を指定して、その文字列のコピー/貼り付け挿入を行うようにしている。構造化文書作成モジュール100は、構造化文書記憶モジュール110、文書構造定義記憶モジュール120、操作受付モジュール130、構造化文書作成支援モジュール140と接続されている。構造化文書作成モジュール100は、構造化文書記憶モジュール110に記憶されている構造化文書にスタイルシートを適用して、ディスプレイ等の表示装置のスタイル表示領域にその構造化文書を表示する。なお、スタイルシートは、構造化文書作成モジュール100がアクセス可能な記憶装置に記憶されている。例えば、構造化文書記憶モジュール110に記憶されている。そして、操作受付モジュール130が受け付けた操作者の操作を受け取った場合は、その操作に応じた編集処理を行う。その操作内に、構造化文書内の編集対象としての範囲の選択があった場合は、構造化文書作成支援モジュール140に編集対象となる選択範囲を取得させる。そして、選択後の文字列に要素を指定して、その文字列のコピー/貼り付け挿入を行うようにしている。なお、対象とする文書は、構造化文書の他に、構造化文書ではない平文の文書であってもよい。平文の文書とは、テキストの文字コードのみからなり、構造化文書で用いられるタグ等は含まない文書である。構造化文書記憶モジュール110は、構造化文書作成モジュール100と接続されており、構造化文書、平文の文書を記憶している。構造化文書作成モジュール100からのアクセスに応じて、構造化文書、平文の文書を渡す。具体的な構造化文書、平文の文書については、図4等に例示する構造化文書400等、図14等に例示する表示文書1400等を用いて後述する。また、スタイルシートを記憶していてもよい。文書構造定義記憶モジュール120は、構造化文書作成モジュール100と接続されており、構造化文書に対応した文書構造定義以下、スキーマともいうを記憶している。構造化文書作成モジュール100からのアクセスに応じて、スキーマを渡す。スキーマは、構造化文書内の構造を定義しており、例えば、DTDDocumentTypeDefinition、XMLスキーマ、RELAX等のスキーマ言語によって記述されている。具体的なスキーマについては、図3に例示するスキーマ300を用いて後述する。なお、構造化文書は対応するスキーマにしたがうが、平文の文書にも対応するスキーマがあり、本実施の形態は、平文の文書からその対応するスキーマにしたがって構造化文書を作成する。操作受付モジュール130は、構造化文書作成モジュール100と接続されており、キーボード、マウス、タッチパネル等を用いた操作者の操作を受け付け、構造化文書作成モジュール100に渡す。この操作は、文書の表示領域例えば、スタイル表示領域に表示された構造化文書、平文の文書に対する操作である。例えば、その操作として、表示された構造化文書、平文の文書に対して、編集対象としての範囲の選択操作が含まれる。そして、その操作内に構造化文書内、平文の文書内の編集対象としての範囲の選択があった場合は、構造化文書作成モジュール100を介して構造化文書作成支援モジュール140に渡す。また、操作受付モジュール130は、編集対象としての範囲の選択、つまり文字列の選択があり、その文字列に対して要素の指定があった場合も、構造化文書作成モジュール100を介して構造化文書作成支援モジュール140に渡す。ここで構造化文書作成支援モジュール140に渡す要素とは、文字列を挿入する文書構造化文書、平文の文書がしたがうスキーマ内で定義された要素の内、操作者の操作によって指定された要素以下、第1の要素ともいうである。例えば、図3に示すスキーマ300では、elementname=のとで囲まれたものが、指定され得る要素の候補として表示するものである。具体的には、スキーマ300では、book、article、title、subtitle、paragraph、text、list、liが要素として、これらを表示して、操作者の操作によって指定される。この指定とは、選択した文字列をその要素に指定することである。さらに、操作受付モジュール130は、文字列の選択があり、その文字列を挿入する操作があった場合も、その文書内の位置である挿入先を、構造化文書作成モジュール100を介して構造化文書作成支援モジュール140に渡す。なお、文字列を挿入する操作は、明示的なものである必要はなく、例えば、前述の文字列の選択、要素の指定が、そのまま文字列の挿入操作となってもよい。また、挿入先は、第何文字目等の文字位置によって指定されてもよいし、文字列によって指定されてもよい。なお、実際の挿入位置は、指定された挿入位置になるとは限らず、スキーマにしたがって、構造上挿入できる位置に挿入されることになる。詳細については、構造化文書作成支援モジュール140の処理で後述する。さらに、操作受付モジュール130は、操作者の操作によって要素が指定された場合に、その指定された要素に下位要素が複数ある場合は、その下位要素を選択可能に表示し、操作者の操作によって指定された下位要素を第1の要素指定された要素とするようにしてもよい。詳細については、図25、図26を用いて後述する。構造化文書作成支援モジュール140は、選択範囲取得モジュール142、要素取得モジュール144、要素挿入モジュール146、構造検証モジュール148、要素移動モジュール150を有しており、構造化文書作成モジュール100と接続されている。選択範囲取得モジュール142は、構造化文書作成モジュール100によって表示装置に表示された表示領域内の構造化文書、平文の文書に対して、操作受付モジュール130が受け付けた操作者の操作によって選択された範囲の開始位置及び終了位置を取得する。そして、その開始位置と終了位置に囲まれる文字列を取得する。要素取得モジュール144は、選択範囲取得モジュール142によって取得された文字列に対して、指定された第1の要素を取得する。要素挿入モジュール146は、選択範囲取得モジュール142によって取得された文字列を挿入する文書内の位置である挿入先を取得する。要素移動モジュール150は、要素取得モジュール144によって取得された第1の要素は文字列を要素として有することができるか否かをスキーマ内の定義に基づいて判断し、できないと判断した場合は、文字列を要素として有することができるその第1の要素の下位要素である第2の要素をそのスキーマ内から探索し、選択範囲取得モジュール142によって取得された文字列を有するその第2の要素を生成する。例えば、かきくけこという文字列が選択され、その文字列の要素としてlist第1の要素が指定された場合、図3に例示のスキーマ300では、listは直接、文字列を有することができないので、スキーマ300からlistの下位要素であるtext第2の要素を探索し、かきくけこという文字列を有するtextの要素を生成する。つまり、<text>かきくけこ</text>を生成する。なお、要素取得モジュール144によって取得された第1の要素は文字列を要素として有することができるか否かを判断する際に、できると判断した場合は、その第1の要素を挿入要素とする。例えば、前述の例では、文字列の要素としてtext第1の要素が指定された場合、図3に例示のスキーマ300では、textは文字列を有することができるので、かきくけこという文字列を有するtextの要素を生成する。つまり、<text>かきくけこ</text>を生成する。そして、要素移動モジュール150は、第1の要素と第2の要素の間に必要となる要素をスキーマ内から探索し、その必要となる要素を第1の要素と第2の要素の間に補完することによって挿入要素を生成し、その挿入要素を要素挿入モジュール146によって取得された挿入先に移動する。例えば、前述の例では、第1の要素listと第2の要素textの間に必要となる要素は、スキーマ300ではliである。そこで、liをlistとtextの間に補完して、挿入要素を生成する。つまり、挿入要素として<list><li><text>かきくけこ</text></li></list>を生成する。この挿入要素を挿入先に移動する。なお、第1の要素と第2の要素の間に必要となる要素をスキーマ内から探索した結果、必要となる要素がない場合、つまり、第2の要素の直下が第1の要素であることが文書構造定義内の定義として許されている場合、その第2の要素をそのまま挿入要素とする。例えば、第1の要素がliであり、第2の要素がtextの場合は、liとtextの間には他に要素が必要ないので、挿入要素として<li><text>かきくけこ</text></li>を生成することになる。構造検証モジュール148は、要素移動モジュール150によって挿入要素を要素挿入モジュール146によって取得された挿入先に移動することが、スキーマ内での定義の違反になるか否かを判断する。スキーマ内での定義の違反になるか否かを判断としては、要素挿入モジュール146によって取得された挿入先にある要素が、スキーマ内での定義にしたがって挿入要素を有することができるか否かを判断すればよい。例えば、挿入先の要素がtextである場合は、そのtextは、挿入要素<list><li><text>かきくけこ</text></li></list>を有することができない。そして、要素移動モジュール150は、構造検証モジュール148によって違反していると判断された場合は、挿入先の位置の前方又は後方で挿入要素を挿入可能な位置を探索し、その挿入可能な位置に挿入要素を挿入する。例えば、前述の例では、挿入先の位置から前方又は後方に向けて、<list><li><text>かきくけこ</text></li></list>を挿入できる位置を探索して、探索できた場合は、その位置に挿入する。さらに、要素移動モジュール150は、その探索の結果、挿入先の位置の前方及び後方で挿入要素を挿入可能な位置がなかった場合は、その挿入要素の上位要素をスキーマ内から探索し、その第2の要素を有する上位要素を新たな挿入要素として生成する。そして、構造検証モジュール148は、要素移動モジュール150によって挿入要素第2の要素の上位要素を含む挿入要素を要素挿入モジュール146によって取得された挿入先に移動することが、スキーマ内での定義の違反になるか否かを判断する。その後は、要素移動モジュール150による挿入処理、構造検証モジュール148による判断処理が繰り返されることになる。なお、挿入できる位置を探索できなかった場合は、挿入できない旨を提示する。例えば、エラーの旨を表示装置に表示する。図2は、本実施の形態による処理例を示すフローチャートである。処理の概要としては、構造化文書又は平文の文書に対して、操作者の操作によって、文字列が選択され、次に挿入したい構造が選択され、挿入したい位置以下の例では、選択した文字列の位置が選択される。本実施の形態は、操作者が選択した文字列を要素値として認識し、挿入した要素と要素値の間に必要な要素をスキーマ300に沿って挿入し、そのスキーマ構造にしたがった構造化の支援を行う。また、挿入した要素が文書内でスキーマ違反にならない位置に、要素を移動する。ステップS202では、選択範囲取得モジュール142が、セレクションの範囲内の文字列を取得する。つまり、操作者の操作によって選択された範囲の文字列を取得する。ステップS204では、操作受付モジュール130が、文書構造定義スキーマに定義されている要素の一覧を表示する。ステップS206では、要素取得モジュール144が、操作者が選択した要素要素Aとする、前述の第1の要素に該当するを取得する。さらに、要素挿入モジュール146が、ステップS202で取得した文字列を挿入する位置挿入位置を取得する。ステップS208では、要素移動モジュール150が、文字列をくくる形で要素Aを挿入する。文字列をくくる形でとは、具体的には<要素名>と</要素名>によって文字列を挟むことである。ステップS210では、要素移動モジュール150が、要素Aは文字列という要素値を有することができるか否かを判断し、できる場合はステップS218へ進み、それ以外の場合はステップS212へ進む。ステップS212では、要素移動モジュール150が、文字列という要素値を有することが可能な要素Aの下位要素要素Bがあるか否かを判断し、ある場合はステップS214へ進み、それ以外の場合はステップS228へ進む。ステップS214では、要素移動モジュール150が、文字列をくくる形で要素Bを挿入する。ステップS216では、要素移動モジュール150が、要素Aと要素Bの間に必要な要素をうめる。そして、ステップS218へ進む。ステップS218では、構造検証モジュール148が、スキーマ違反が発生しているか否かを判断し、発生している場合はステップS220へ進み、それ以外の場合は処理を終了するステップS299。ステップS220では、スキーマ違反が発生している要素を挿入先の前後に移動できないか否かを判断し、移動できない場合はステップS224へ進み、それ以外の場合はステップS222へ進む。ステップS222では、要素移動モジュール150が、下位要素も含め要素の位置を前/後に移動する。そして、ステップS218へ戻る。ステップS224では、要素移動モジュール150が、上位要素を挿入可能であるか否かを判断し、可能である場合はステップS226へ進み、それ以外の場合はステップS228へ進む。ステップS226では、要素移動モジュール150が、上位要素を挿入する。そして、ステップS218へ戻る。ステップS228では、構造化文書作成支援モジュール140が、要素の挿入を取り消す。そして、処理を終了するステップS299。以下、具体的な例を用いて説明する。<具体例1>まず、文書構造定義記憶モジュール120内に記憶されているスキーマの例を示す。図3は、スキーマ300の例を示す説明図である。スキーマ300内には、book、article、title、subtitle、text、paragraph等の要素が定義されており、それら要素間の関係も定義されている。例えば、bookの下位にできる要素としてarticleがあることスキーマ300内の6~9行目参照、articleの下位にできる要素としてtitle、subtitle、paragraphがあることスキーマ300内の13~18行目参照、paragraphの下位にできる要素としてtext、listがあることスキーマ300内の22~26行目参照、listの下位にできる要素としてliがあることスキーマ300内の30~33行目参照、liの下位にできる要素としてtextがあることスキーマ300内の37~40行目参照が、スキーマ300を解析することによってわかる。前述のように、elementname=のとで囲まれたものが、要素である。そして、要素間の上位、下位の関係は、elementrefの関係を辿ればよい。そして、文字列を有することができるのは、title、subtitle、textの要素であることスキーマ300内の16,17、40行目等参照も、スキーマ300を解析することによってわかる。これは、要素の定義内に、type=xs:stringがあるか否かによって判断すればよい。次に、構造化文書記憶モジュール110内に記憶されている構造化文書の例を示す。図4は、構造化文書400の例を示す説明図である。例えば、文字列タイトルを含むtitleの要素、文字列あいうえおかきくけこさしすせそを含むtextとparagraphの要素等がある。構造化文書400は、スキーマ300にしたがうものとする。次に、スタイル表示領域に、構造化文書作成モジュール100が構造化文書400にスタイルシートを適用して表示する表示文書500の例を示す。図5は、表示文書500の例を示す説明図である。表示文書500内には、文字列510が表示されている。図6は、表示文書600にメニュー620が表示された例を示す説明図である。表示文書600内の選択範囲610を操作者の操作によって選択した状態で、要素挿入コマンド選択した文字列に要素を付与して、その位置に挿入する処理を実行すると、メニュー620が表示される。メニュー620内は、スキーマ300内から要素を収集して、表示したものである。ここで、操作者は、listの挿入を選択したとする。図7は、編集後の表示文書700の例を示す説明図である。図5の例に示した表示文書500の状態から、文字列720文字列かきくけこが要素listとして表示されている。また、文字列510文字列あいうえおかきくけこさしすせそは、選択範囲610文字列かきくけこが移動したことにより、文字列710文字列あいうえおさしすせそに変更されている。図8は、編集後の構造化文書800の例を示す説明図である。図4の例に示した構造化文書400の状態から、<list><li><text>かきくけこ</text></li></list>が<text>あいうえおさしすせそ</text>の後に挿入されている。この処理の概要について、以下に説明する。1-1操作者の選択操作によって選択された文字列がlist要素内に挿入される。具体的には、<list>かきくけこ</list>を生成するステップS208。1-2スキーマ300内の定義からlist要素は文字列という要素値を有することができないので、list要素の下位要素のなかから要素値を有することが可能なtext要素を挿入する。具体的には、<list><text>かきくけこ</text></list>の構造を生成するステップS214。1-3text要素とlist要素の間に必要なli要素を補完する。具体的には、<list><li><text>かきくけこ</text></li></list>の構造を作成するステップS216。つまり、スキーマ300内の定義では、list要素はli要素のみを有しており、直下にtext要素を有することはできないので、必要なli要素を補完することになる。1-4スキーマ300内の定義から<list><li><text>かきくけこ</text></li></list>の構造は、挿入先である元のかきくけこがあった位置text要素の下位には存在できないステップS218でYesので、text要素の後方で挿入可能な位置を探索するステップS220の判断処理における探索。1-5スキーマ300内の定義からtext要素の下位として挿入可能なので、移動するステップS222。この状態では、スキーマ違反は生じていないステップS218でNoので終了する。<具体例2>次に、構造化文書900を編集対象とした場合の例について説明する。図9は、構造化文書900の例を示す説明図である。構造化文書900は、構造化文書記憶モジュール110内に記憶されている。構造化文書900に対応するスキーマはスキーマ300である。次に、スタイル表示領域に、構造化文書作成モジュール100が構造化文書900にスタイルシートを適用して表示する表示文書1000の例を示す。図10は、表示文書1000の例を示す説明図である。表示文書1000内には、文字列1010が表示されている。図11は、表示文書1100にメニュー1120が表示された例を示す説明図である。表示文書1100内の選択範囲1110を操作者の操作によって選択した状態で、要素挿入コマンドを実行すると、メニュー1120が表示される。メニュー1120内は、スキーマ300内から要素を収集して、表示したものである。ここで、操作者は、liの挿入を選択したとする。図12は、編集後の表示文書1200の例を示す説明図である。図10の例に示した表示文書1000の状態から、文字列1220文字列かきくけこが要素liとして表示されている。また、文字列1010文字列あいうえおかきくけこさしすせそは、選択範囲1110文字列かきくけこが移動したことにより、文字列1210文字列あいうえおさしすせそに変更されている。図13は、編集後の構造化文書1300の例を示す説明図である。図9の例に示した構造化文書900の状態から、<list><li><text>かきくけこ</text></li></list>が<text>あいうえおさしすせそ</text>の後に挿入されている。この処理の概要について、以下に説明する。2-1操作者の選択操作によって選択された文字列がli要素内に挿入される。具体的には、<li>かきくけこ</li>を生成するステップS208。2-2スキーマ300内の定義からli要素は文字列という要素値を有することができないので、li要素の下位要素のなかから要素値を有することが可能なtext要素を挿入する。具体的には、<li><text>かきくけこ</text></li>の構造を生成するステップS214。2-3text要素とli要素の間に必要な要素を補完する。ただし、この場合は、必要な要素はない必要な要素実際は何もなしを補完する。具体的には、<li><text>かきくけこ</text></li>の構造のままであるステップS216。2-4スキーマ300内の定義から<li><text>かきくけこ</text></li>の構造は、挿入先である元のかきくけこがあった位置text要素の下位には存在できないステップS218でYesので、text要素の後方で挿入可能な位置を探索するステップS220の判断処理における探索。2-5スキーマ300内の定義からtext要素の後方には挿入可能な位置がないので、前方を探索するステップS220の判断処理における探索。2-6前方にも後方にも存在可能な個所がないステップS220でYesので、スキーマ300内の定義からli要素の上位要素ここでは、list要素が挿入可能であるステップS224でYesので、li要素の上位要素であるlist要素を挿入し、<list><li><text>かきくけこ</text></li></list>を生成するステップS226。2-7スキーマ300内の定義から<list><li><text>かきくけこ</text></li></list>の構造は、挿入先である元のかきくけこがあった位置text要素の下位には存在できないステップS218でYesので、text要素の後方で挿入可能な位置を探索するステップS220の判断処理における探索。2-8スキーマ300内の定義からtext要素の下位として挿入可能なので、移動するステップS222。この状態では、スキーマ違反は生じていないステップS218でNoので終了する。<具体例3>次に、平文の文書を編集対象とした場合の例について説明する。文書表示領域に、構造化文書作成モジュール100が平文の文書を表示する表示文書1400の例を示す。図14は、表示文書1400の例を示す説明図である。表示文書1400内には、文字列1410が表示されている。この場合の平文の文書の内容は、平文であるので表示文書1400内の表示内容と同等のものである。また、この平文の文書は、構造化文書記憶モジュール110内に記憶されており、対応するスキーマはスキーマ300である。図15は、表示文書1500にメニュー1520が表示された例を示す説明図である。表示文書1500内の選択範囲1510を操作者の操作によって選択した状態で、要素挿入コマンドを実行すると、メニュー1520が表示される。メニュー1520内は、スキーマ300内から要素を収集して、表示したものである。ここで、操作者は、listの挿入を選択したとする。3-1操作者の選択操作によって選択された文字列がlist要素内に挿入される。具体的には、<list>かきくけこ</list>を生成するステップS208。3-2スキーマ300内の定義からlist要素は文字列という要素値を有することができないので、list要素の下位要素のなかから要素値を有することが可能なtext要素を挿入する。具体的には、<list><text>かきくけこ</text></list>の構造を生成するステップS214。3-3text要素とlist要素の間に必要なli要素を補完する。具体的には、<list><li><text>かきくけこ</text></li></list>の構造を作成するステップS216。つまり、スキーマ300内の定義では、list要素はli要素のみを有しており、直下にtext要素を有することはできないので、必要なli要素を補完することになる。図16は、この状態における構造化文書作成途中1600の例を示す説明図である。文字列かきくけこの部分が構造化されている。3-4スキーマ300内の定義から文書中では、<list><li><text>かきくけこ</text></li></list>の構造は、挿入先である元のかきくけこがあった位置には存在できずステップS218でYes、その後方で挿入可能な位置もないステップS220でYesが、上位要素を補完することができるステップS224でYesので、上位に構造を補うステップS226。つまり、list要素の上位にparagraph要素スキーマ300の26行目でlist要素をrefとしている、article要素スキーマ300の18行目でparagraph要素をrefとしている、book要素スキーマ300の9行目でarticle要素をrefとしているを補完する。具体的には、図17に例示の構造化文書作成途中1700のようになる。3-5ここで、3-4で作成した構造では、スキーマ300内の定義からarticle要素の下位に必須要素であるtitle要素がないため、title要素を挿入するステップS226。なお、スキーマ300の17行目でminOccurs=0となっているため、subtitle要素は、必須要素ではない。具体的には、図18に例示の構造化文書作成途中1800のようになる。3-6スキーマ300内の定義から、book要素以下の構造は、現状の位置には存在できないステップS218でYesので、後方で挿入可能な位置を探索するステップS220の判断処理における探索。スキーマ300内の定義からさしすせその後方に存在可能なので文字列中でなければ存在可能なので、book要素以下の構造をさしすせその後方に移動するステップS222。具体的には、図19に例示の構造化文書作成途中1900のようになる。3-7あいうえおさしすせそという文字列が未構造化ステップS218でYes、ステップS220でYes、ステップS224でYesなので、この文字列の構造化を実施するステップS226。スキーマ300で定義されている要素のうち、文字列という要素値を有する要素を挿入する。スキーマ300内の定義では、text要素が要素値を有することができる要素なので、text要素を挿入する。具体的には、図20に例示の構造化文書作成途中2000のようになる。3-8スキーマ300内の定義から<text>あいうえおさしすせそ</text>の構造は、book要素の前方には存在できないステップS218でYesので、後方で存在可能な位置を探索するステップS220の判断処理における探索。スキーマ300内の定義からlist要素の上位要素として存在可能なので、移動するステップS222。なお、この位置は、探索した結果、text要素を最初に挿入できる位置である。また、この状態では、スキーマ違反は生じていないステップS218でNoので終了する。具体的には、図21に例示の構造化文書2100のようになる。図22は、編集後の表示文書2200の例を示す説明図である。これは、文書表示領域スタイル表示領域に、構造化文書作成モジュール100が構造化文書2100にスタイルシートを適用して表示する表示文書2200の例を示すものである。<具体例4>次に、平文の文書を編集対象とした場合の例について説明する。文書表示領域に、構造化文書作成モジュール100が平文の文書を表示する表示文書2300の例を示す。図23は、表示文書2300の例を示す説明図である。表示文書2300内には、文字列2310が表示されている。この場合の平文の文書の内容は、平文であるので表示文書2300内の表示内容と同等のものである。また、この平文の文書は、構造化文書記憶モジュール110内に記憶されており、対応するスキーマはスキーマ300である。図24は、表示文書2400にメニュー2420が表示された例を示す説明図である。表示文書2400内の選択範囲2410を操作者の操作によって選択した状態で、要素挿入コマンドを実行すると、メニュー2420が表示される。メニュー2420内は、スキーマ300内から要素を収集して、表示したものである。4-1ここで、操作者は、articleの挿入を選択したとする。挿入可能な構造は、以下の4つとなる。つまり、図2に例示のフローチャートにおいて、ステップS208において、スキーマ300内の定義では指定された要素Aに下位要素が複数ある場合である。a<book><article><title>かきくけこ</title></article></book>b<book><article><paragraph><text>かきくけこ</text></paragraph></article></book>c<book><article><subtitle>かきくけこ</subtitle></article></book>d<book><article><paragraph><list><li><text>かきくけこ</text></li></list></paragraph></article></book>このように、要素Aに下位要素が複数ある場合、操作者が挿入したい構造を選択できるように、図25の例に示すように、さらに下位のメニュー2530を表示し、操作者が選択した構造を挿入可能とする。図25は、表示文書2500にメニュー2520、メニュー2530が表示された例を示す説明図である。つまり、操作者の操作によって、メニュー2520内の選択メニューarticle挿入2525が選択された場合は、メニュー2530を表示する。4-2図26の例に示すように、操作者の操作によってメニュー2640内の構造が選択された場合、実際に挿入するとどのような構造表示になるかをプレビュー表示するようにしてもよい。例えば、選択メニューarticle>title挿入2645が選択されると、図26の例のようにプレビュー表示する。図26は、表示文書2600にメニュー2630、メニュー2640が表示され、選択メニューarticle>title挿入2645が選択された例を示す説明図である。つまり、かきくけこをtitle要素として表示している。これは、前述の処理を行うことによって実現可能であるが、プレビュー表示をするためのものであるので、前述の処理を行っても確定せずに、仮の処理として編集結果を構造化文書として文書構造定義記憶モジュール120に格納するわけではない。そして、メニュー2640内の構造の選択が完了した場合例えば、メニュー2640内の構造をクリックした場合等に、その編集結果を文書構造定義記憶モジュール120に格納する。また、表示文書2600内の構造で要素の候補が1つである場合は、同等のプレビュー表示を行うようにしてもよい。なお、本実施の形態としてのプログラムが実行されるコンピュータのハードウェア構成は、図27に例示するように、一般的なコンピュータであり、具体的にはパーソナルコンピュータ、サーバーとなり得るコンピュータ等である。つまり、具体例として、処理部演算部としてCPU2701を用い、記憶装置としてRAM2702、ROM2703、HD2704を用いている。HD2704として、例えばハードディスクを用いてもよい。構造化文書作成モジュール100、操作受付モジュール130、構造化文書作成支援モジュール140、選択範囲取得モジュール142、要素取得モジュール144、要素挿入モジュール146、構造検証モジュール148、要素移動モジュール150等のプログラムを実行するCPU2701と、そのプログラムやデータを記憶するRAM2702と、本コンピュータを起動するためのプログラム等が格納されているROM2703と、補助記憶装置であるHD2704と、キーボード、マウス、タッチパネル等に対する利用者の操作に基づいてデータを受け付ける受付装置2706と、CRT、液晶ディスプレイ等の出力装置2705と、ネットワークインタフェースカード等の通信ネットワークと接続するための通信回線インタフェース2707、そして、それらをつないでデータのやりとりをするためのバス2708により構成されている。これらのコンピュータが複数台互いにネットワークによって接続されていてもよい。前述の実施の形態のうち、コンピュータプログラムによるものについては、本ハードウェア構成のシステムにソフトウェアであるコンピュータプログラムを読み込ませ、ソフトウェアとハードウェア資源とが協働して、前述の実施の形態が実現される。なお、図27に示すハードウェア構成は、1つの構成例を示すものであり、本実施の形態は、図27に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア例えばASIC等で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続しているような形態でもよく、さらに図27に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、特に、パーソナルコンピュータの他、情報家電、複写機、ファックス、スキャナ、プリンタ、複合機スキャナ、プリンタ、複写機、ファックス等のいずれか2つ以上の機能を有している画像処理装置などに組み込まれていてもよい。前述の実施の形態においては、要素が存在できる位置の探索として後方を先に探索するようにしているが、前方を先に探索するようにしてもよい。また、前述の実施の形態では、探索した結果、最初に発見した位置を挿入位置としているが、後方と前方の両方を探索して、両方に存在可能な位置を発見した場合は、より移動距離の少ない方を挿入位置として採用するようにしてもよい。なお、各モジュールの処理内容として背景技術で説明した技術を採用してもよい。なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、プログラムを記録したコンピュータ読み取り可能な記録媒体の発明として捉えてもよい。プログラムを記録したコンピュータ読み取り可能な記録媒体とは、プログラムのインストール、実行、プログラムの流通などのために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。なお、記録媒体としては、例えば、デジタルバーサタイルディスクDVDであって、DVDフォーラムで策定された規格であるDVD-R、DVD-RW、DVD-RAM等、DVDRWで策定された規格であるDVDR、DVDRW等、コンパクトディスクCDであって、読出し専用メモリCD-ROM、CDレコーダブルCD-R、CDリライタブルCD-RW等、ブルーレイディスクBlu-rayDisc登録商標、光磁気ディスクMO、フレキシブルディスクFD、磁気テープ、ハードディスク、読出し専用メモリROM、電気的消去及び書換可能な読出し専用メモリEEPROM登録商標、フラッシュメモリ、ランダムアクセスメモリRAM、SDSecureDigitalメモリーカード等が含まれる。そして、前記のプログラム又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカルエリアネットワークLAN、メトロポリタンエリアネットワークMAN、ワイドエリアネットワークWAN、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、あるいは無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。さらに、前記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して記録されていてもよい。また、圧縮や暗号化など、復元可能であればどのような態様で記録されていてもよい。"