JP5760868B2 - 情報処理装置及び情報処理プログラム - Google Patents

情報処理装置及び情報処理プログラム Download PDF

Info

Publication number
JP5760868B2
JP5760868B2 JP2011191588A JP2011191588A JP5760868B2 JP 5760868 B2 JP5760868 B2 JP 5760868B2 JP 2011191588 A JP2011191588 A JP 2011191588A JP 2011191588 A JP2011191588 A JP 2011191588A JP 5760868 B2 JP5760868 B2 JP 5760868B2
Authority
JP
Japan
Prior art keywords
document
character string
definition
text
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2011191588A
Other languages
English (en)
Other versions
JP2013054498A (ja
Inventor
大吾 相澤
大吾 相澤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP2011191588A priority Critical patent/JP5760868B2/ja
Priority to US13/399,318 priority patent/US8667388B2/en
Publication of JP2013054498A publication Critical patent/JP2013054498A/ja
Application granted granted Critical
Publication of JP5760868B2 publication Critical patent/JP5760868B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Document Processing Apparatus (AREA)

Description

本発明は、情報処理装置及び情報処理プログラムに関する。
特許文献1には、非構造化文書から構造化文書への変換を、予め設定された論理構造定義から直接的に作成したルールを用いて行い、個々の文書の論理構造に即した構造化文書の作成を容易にすることを目的とし、キーワード抽出部は、キーワード抽出ルールを用いて非構造化文書から論理構造を表すキーワードを抽出し、非構造化文書をキーワードとそれ以外の文字列の二種の要素で表現したキーワード/テキストモデルを生成し、DTDを修正・変換して作成した構文解析ルールを参照して構文解析部自動生成手続きが生成した構文解析部は、キーワード/テキストモデルに対する構文解析を行い、仮SGML文書を生成し、SGML文書修正部は、構文解析ルール作成時に生成されたDTD差分情報を参照して仮SGML文書を修正し、最終出力であるSGML文書を生成することが開示されている。
また、例えば、特許文献2には、文書要素を入れ子状に構造化した文書を取り扱う場合に、文書要素を挿入する操作を効率化することを課題とし、文書要素を挿入する際に入力される文書要素名に基づいて、その文書要素名を有する文書要素を編集中の文書に挿入可能な位置を検出して表示し、挿入可能位置は、入力された文書要素名を有する文書要素を含み得る上位の文書要素(名)と、その上位の文書要素における位置によって特定され、検出された挿入可能位置は特定図形をもって表示され、文書作成者は、順次表示される特定図形の位置に文書要素を挿入するか否かを判断しながら、所望の位置に文書要素を挿入することによって文書編集を行うことができ、文書編集を効率化できることが開示されている。
特開平09−069101号公報 特開平10−143513号公報
本発明は、選択された文字列を含む要素の作成を、文書構造定義に違反したものとなることを防止するようにした情報処理装置及び情報処理プログラムを提供することを目的としている。
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
請求項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つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」(社会システム)にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、RAM(Random Access Memory)、外部記憶媒体、通信回線を介した記憶装置、CPU(Central Processing Unit)内のレジスタ等を含んでいてもよい。
本実施の形態である情報処理装置は、選択した文字列を指定した要素として文書に挿入するものであって、図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からのアクセスに応じて、スキーマを渡す。スキーマは、構造化文書内の構造を定義しており、例えば、DTD(Document Type Definition)、XMLスキーマ、RELAX等のスキーマ言語によって記述されている。具体的なスキーマについては、図3に例示するスキーマ300を用いて後述する。なお、構造化文書は対応するスキーマにしたがうが、平文の文書にも対応するスキーマがあり、本実施の形態は、平文の文書からその対応するスキーマにしたがって構造化文書を作成する。
操作受付モジュール130は、構造化文書作成モジュール100と接続されており、キーボード、マウス、タッチパネル等を用いた操作者の操作を受け付け、構造化文書作成モジュール100に渡す。この操作は、文書の表示領域(例えば、スタイル表示領域)に表示された構造化文書、平文の文書に対する操作である。例えば、その操作として、表示された構造化文書、平文の文書に対して、編集対象としての範囲の選択操作が含まれる。そして、その操作内に構造化文書内、平文の文書内の編集対象としての範囲の選択があった場合は、構造化文書作成モジュール100を介して構造化文書作成支援モジュール140に渡す。
また、操作受付モジュール130は、編集対象としての範囲の選択、つまり文字列の選択があり、その文字列に対して要素の指定があった場合も、構造化文書作成モジュール100を介して構造化文書作成支援モジュール140に渡す。ここで構造化文書作成支援モジュール140に渡す要素とは、文字列を挿入する文書(構造化文書、平文の文書)がしたがうスキーマ内で定義された要素の内、操作者の操作によって指定された要素(以下、第1の要素ともいう)である。例えば、図3に示すスキーマ300では、「element name=“ ”」の「“」と「”」で囲まれたものが、指定され得る要素の候補として表示するものである。具体的には、スキーマ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を解析することによってわかる。前述のように、「element name=“ ”」の「“」と「”」で囲まれたものが、要素である。そして、要素間の上位、下位の関係は、「element ref」の関係を辿ればよい。
そして、文字列を有することができるのは、「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−3)text要素と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−3)text要素と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−3)text要素と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等」、DVD+RWで策定された規格である「DVD+R、DVD+RW等」、コンパクトディスク(CD)であって、読出し専用メモリ(CD−ROM)、CDレコーダブル(CD−R)、CDリライタブル(CD−RW)等、ブルーレイ・ディスク(Blu−ray Disc(登録商標))、光磁気ディスク(MO)、フレキシブルディスク(FD)、磁気テープ、ハードディスク、読出し専用メモリ(ROM)、電気的消去及び書換可能な読出し専用メモリ(EEPROM(登録商標))、フラッシュ・メモリ、ランダム・アクセス・メモリ(RAM)、SD(Secure Digital)メモリーカード等が含まれる。
そして、前記のプログラム又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク(LAN)、メトロポリタン・エリア・ネットワーク(MAN)、ワイド・エリア・ネットワーク(WAN)、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、あるいは無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して
記録されていてもよい。また、圧縮や暗号化など、復元可能であればどのような態様で記録されていてもよい。
100…構造化文書作成モジュール
110…構造化文書記憶モジュール
120…文書構造定義記憶モジュール
130…操作受付モジュール
140…構造化文書作成支援モジュール
142…選択範囲取得モジュール
144…要素取得モジュール
146…要素挿入モジュール
148…構造検証モジュール
150…要素移動モジュール

Claims (6)

  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の要素の間に補完することによって挿入要素を生成し、該挿入要素を前記挿入先指定手段によって指定された挿入先に移動する移動手段
    として機能させるための情報処理プログラム。
JP2011191588A 2011-09-02 2011-09-02 情報処理装置及び情報処理プログラム Active JP5760868B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011191588A JP5760868B2 (ja) 2011-09-02 2011-09-02 情報処理装置及び情報処理プログラム
US13/399,318 US8667388B2 (en) 2011-09-02 2012-02-17 Web document structure analysis and conditional element shifting and insertion

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011191588A JP5760868B2 (ja) 2011-09-02 2011-09-02 情報処理装置及び情報処理プログラム

Publications (2)

Publication Number Publication Date
JP2013054498A JP2013054498A (ja) 2013-03-21
JP5760868B2 true JP5760868B2 (ja) 2015-08-12

Family

ID=47754099

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011191588A Active JP5760868B2 (ja) 2011-09-02 2011-09-02 情報処理装置及び情報処理プログラム

Country Status (2)

Country Link
US (1) US8667388B2 (ja)
JP (1) JP5760868B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110502611B (zh) * 2019-08-01 2022-04-12 武汉虹信科技发展有限责任公司 字符串检索方法和装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0969101A (ja) 1995-08-31 1997-03-11 Hitachi Ltd 構造化文書生成方法および装置
JPH10143513A (ja) 1996-11-07 1998-05-29 Canon Inc 文書処理装置及びその方法
US7165239B2 (en) * 2001-07-10 2007-01-16 Microsoft Corporation Application program interface for network software platform
AUPS084902A0 (en) * 2002-03-01 2002-03-28 Speedlegal Holdings Inc A document assembly system
US7228496B2 (en) * 2002-07-09 2007-06-05 Kabushiki Kaisha Toshiba Document editing method, document editing system, server apparatus, and document editing program
US7747633B2 (en) * 2007-07-23 2010-06-29 Microsoft Corporation Incremental parsing of hierarchical files
US8527867B2 (en) * 2008-01-18 2013-09-03 Oracle International Corporation Enabling users to edit very large XML data

Also Published As

Publication number Publication date
US8667388B2 (en) 2014-03-04
JP2013054498A (ja) 2013-03-21
US20130061130A1 (en) 2013-03-07

Similar Documents

Publication Publication Date Title
JP4869630B2 (ja) コンテンツを開始テンプレートとターゲットテンプレートとの間でマップするための方法およびシステム
JP5363355B2 (ja) スタイル要素を用いた画面表示の選択した表示領域をコピーアンドペーストする方法、システム及びプログラム
JP2007052703A (ja) テストシナリオ作成プログラム、テストシナリオ作成装置、テストシナリオ作成方法
JP5466357B2 (ja) 電子文書の作成を支援する装置及び方法
JP4259588B2 (ja) 情報処理システム及び情報処理プログラム
JP4566196B2 (ja) 文書処理方法および装置
JP5760868B2 (ja) 情報処理装置及び情報処理プログラム
JP6221220B2 (ja) 画像処理装置及び画像処理プログラム
CN100414968C (zh) 图像处理系统、信息和图像处理设备和方法
US20160034431A1 (en) Method and system for assigning a content item as a link target to a managed object
JP5910216B2 (ja) 情報処理装置及び情報処理プログラム
JP5541024B2 (ja) 情報処理装置及び情報処理プログラム
JP4957618B2 (ja) 情報処理装置及び情報処理プログラム
JP5842437B2 (ja) 情報処理装置及び情報処理プログラム
JP6497087B2 (ja) 情報処理装置及び情報処理プログラム
CN112394930A (zh) 自动构建前端界面的方法、电子设备及介质
JP2007128520A (ja) マニュアルの作成方法及びそのシステム
JP6421568B2 (ja) 情報処理装置及び情報処理プログラム
JP4957656B2 (ja) 情報処理装置及び情報処理プログラム
JP4935768B2 (ja) 情報処理装置及び情報処理プログラム
US10831833B2 (en) Information processing apparatus and non-transitory computer readable medium
JP2008060778A (ja) 画像編集システム、画像処理システム、画像編集プログラムおよび画像処理プログラム
JP2007058808A (ja) Htmlデータ生成プログラムの開発支援方法及び支援装置
CN117709302A (zh) 一种文档转换方法及装置
KR20220052135A (ko) 블록 에디터 기반의 문서 편집을 위한 임포트 블록 삽입 방법, 그를 수행하기 위한 서버 및 컴퓨터 프로그램

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140822

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150424

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150512

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150525

R150 Certificate of patent or registration of utility model

Ref document number: 5760868

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350