JP2003108369A - Webからの要求を受け取り結果出力を行うプログラムの自動生成 - Google Patents
Webからの要求を受け取り結果出力を行うプログラムの自動生成Info
- Publication number
- JP2003108369A JP2003108369A JP2001303339A JP2001303339A JP2003108369A JP 2003108369 A JP2003108369 A JP 2003108369A JP 2001303339 A JP2001303339 A JP 2001303339A JP 2001303339 A JP2001303339 A JP 2001303339A JP 2003108369 A JP2003108369 A JP 2003108369A
- Authority
- JP
- Japan
- Prior art keywords
- program
- code
- name
- input
- information
- 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.)
- Pending
Links
Landscapes
- Stored Programmes (AREA)
Abstract
(57)【要約】
【課題】プログラムの必要なWebサイトの新規作成、
更新等において、プログラム作成、修正の行程を削減、
あるいは省略することにより、Webサイト構築を容易
にし、更新による負担を軽減する。 【解決手段】Webフォームや、出力表示画面、メール
送信文書などに用いる入出力文書を解析して必要なパー
ツ情報を抽出、一旦対応するステッププログラムを生成
した上で、ステッププログラムをメニューなどにより選
択したステッププログラム合成プログラムにより実行プ
ログラムを生成する。
更新等において、プログラム作成、修正の行程を削減、
あるいは省略することにより、Webサイト構築を容易
にし、更新による負担を軽減する。 【解決手段】Webフォームや、出力表示画面、メール
送信文書などに用いる入出力文書を解析して必要なパー
ツ情報を抽出、一旦対応するステッププログラムを生成
した上で、ステッププログラムをメニューなどにより選
択したステッププログラム合成プログラムにより実行プ
ログラムを生成する。
Description
【0001】
【発明が属する技術分野】本発明はWebブラウザから
送られたフォーム、リンクから情報を受け取りその処理
を行って結果表示やメール送信などを行うプログラムコ
ードを自動生成するシステムに関する。
送られたフォーム、リンクから情報を受け取りその処理
を行って結果表示やメール送信などを行うプログラムコ
ードを自動生成するシステムに関する。
【0002】
【従来の技術】Webブラウザから送られたフォーム、
リンクから情報を受け取り、その処理を行うにはCG
I、サーバーサイドスクリプトが用いられるが、一般的
には個々のフォーム、リンクに応じてそれぞれ個別にプ
ログラムが作成されている。このためコストが高く、運
用までの期間もかかり、完成後の安定度も時間をかけて
修正して行かなければならないといった問題があった。
また出力のためのWebページはプログラムに埋め込ま
れており、非常に頻度の高いデザイン変更時にもプログ
ラム修正が伴うため、費用、期間の点で簡単にはできな
い問題があった。
リンクから情報を受け取り、その処理を行うにはCG
I、サーバーサイドスクリプトが用いられるが、一般的
には個々のフォーム、リンクに応じてそれぞれ個別にプ
ログラムが作成されている。このためコストが高く、運
用までの期間もかかり、完成後の安定度も時間をかけて
修正して行かなければならないといった問題があった。
また出力のためのWebページはプログラムに埋め込ま
れており、非常に頻度の高いデザイン変更時にもプログ
ラム修正が伴うため、費用、期間の点で簡単にはできな
い問題があった。
【0003】典型的な処理の場合、あらかじめ決まった
プログラムを用意しておき、一部を修正して他の用途に
応用する方法はオンラインソフトウェアなどで広く流通
している。実績のあるソフトウェアは用途に合う場合、
安定度も良く安価であり、運用開始までの期間も短い。
しかし、プログラムの一部修正はある程度の知識が要求
されるため難しく、出力画面はプログラムに埋め込まれ
ているため出力画面のデザイン変更や項目の変更は簡単
にはできないという問題がある。こうしたソフトウェア
が目的に合う場合も限定的であり、機能的な不足を我慢
して使うか、費用、期間をかけて新たにプログラムを作
成するしかなかった。
プログラムを用意しておき、一部を修正して他の用途に
応用する方法はオンラインソフトウェアなどで広く流通
している。実績のあるソフトウェアは用途に合う場合、
安定度も良く安価であり、運用開始までの期間も短い。
しかし、プログラムの一部修正はある程度の知識が要求
されるため難しく、出力画面はプログラムに埋め込まれ
ているため出力画面のデザイン変更や項目の変更は簡単
にはできないという問題がある。こうしたソフトウェア
が目的に合う場合も限定的であり、機能的な不足を我慢
して使うか、費用、期間をかけて新たにプログラムを作
成するしかなかった。
【0004】こうした問題を解決するためプログラムに
多数の設定項目を設け、プログラム側に設定内容を記録
させておいて実行時に設定内容に応じた条件判断から処
理を変更するという方法も取られている。この方法はあ
らかじめ用意しておく設定内容の予測が難しく、少ない
と応用範囲が限定され、多くするとプログラムサイズが
非常に大きく、複雑になってコストがかかり、安定度が
落ちるという問題がある。また、設定内容が複雑にな
り、設定が難しくなる。あらかじめ用意した設定内容で
目的に合わない場合は設定項目の追加や変更が必要にな
るが、こうした複雑なプログラムでは費用、期間がかか
るため容易に変更できないという問題がある。
多数の設定項目を設け、プログラム側に設定内容を記録
させておいて実行時に設定内容に応じた条件判断から処
理を変更するという方法も取られている。この方法はあ
らかじめ用意しておく設定内容の予測が難しく、少ない
と応用範囲が限定され、多くするとプログラムサイズが
非常に大きく、複雑になってコストがかかり、安定度が
落ちるという問題がある。また、設定内容が複雑にな
り、設定が難しくなる。あらかじめ用意した設定内容で
目的に合わない場合は設定項目の追加や変更が必要にな
るが、こうした複雑なプログラムでは費用、期間がかか
るため容易に変更できないという問題がある。
【0005】典型的な処理を何通りかあらかじめライブ
ラリ化しておき、目的に合う処理を組み合わせて実行プ
ログラムを生成する方法もある。Webでは定型的な処
理が多く実用的な方法であり、開発期間も短縮でき、実
行プログラムが単純になり管理しやすく安価になる特徴
がある。しかし、単にメニュー選択を行うだけでは多様
な目的には対応できず、多数のライブラリ項目を用意し
てもその選択や判断が難しくなり、生成システムもきわ
めて複雑になるため限界がある。
ラリ化しておき、目的に合う処理を組み合わせて実行プ
ログラムを生成する方法もある。Webでは定型的な処
理が多く実用的な方法であり、開発期間も短縮でき、実
行プログラムが単純になり管理しやすく安価になる特徴
がある。しかし、単にメニュー選択を行うだけでは多様
な目的には対応できず、多数のライブラリ項目を用意し
てもその選択や判断が難しくなり、生成システムもきわ
めて複雑になるため限界がある。
【0006】いずれの方法でも問題になるのは取扱い項
目数が変更された場合、必ずプログラムの修正が必要に
なることである。また、個々の項目の取扱いについては
単純にメニュー化して選択するだけの方法は困難であ
り、ほとんどの場合はプログラマとWebデザイナー、
プロデューサーとの打ち合わせとプログラム変更が必要
となり、相当の期間とコストが必要となる。
目数が変更された場合、必ずプログラムの修正が必要に
なることである。また、個々の項目の取扱いについては
単純にメニュー化して選択するだけの方法は困難であ
り、ほとんどの場合はプログラマとWebデザイナー、
プロデューサーとの打ち合わせとプログラム変更が必要
となり、相当の期間とコストが必要となる。
【0007】
【発明が解決しようとする課題】本発明の課題は、プロ
グラムの必要なWebサイトの新規作成、更新等におい
て、プログラム作成、修正の行程を削減、あるいは省略
することにより、Webサイト構築を容易にし、更新に
よる負担を軽減する手段を提供することにある。
グラムの必要なWebサイトの新規作成、更新等におい
て、プログラム作成、修正の行程を削減、あるいは省略
することにより、Webサイト構築を容易にし、更新に
よる負担を軽減する手段を提供することにある。
【0008】
【課題を解決するための手段】本発明は、Webから送
られるフォーム、リンク情報においては、その元文書を
解析することで個々の項目に分解しその性質に応じた対
応プログラムコードを、出力画面においてはその元文書
を解析することで埋め込み又は差し替えの必要な個々の
項目を抽出し、その情報を取得して埋め込み又は差し替
えを行うプログラムコードを、それぞれ自動生成して合
成し単独実行可能なプログラムコードを作成するように
構成している。
られるフォーム、リンク情報においては、その元文書を
解析することで個々の項目に分解しその性質に応じた対
応プログラムコードを、出力画面においてはその元文書
を解析することで埋め込み又は差し替えの必要な個々の
項目を抽出し、その情報を取得して埋め込み又は差し替
えを行うプログラムコードを、それぞれ自動生成して合
成し単独実行可能なプログラムコードを作成するように
構成している。
【0009】プログラムコードは一度に全体を生成する
のではなく、一旦、解析された項目単位に応じたプログ
ラムステップの単位を生成し、次の段階で合成する。こ
のため、入力、あるいは出力項目と生成したプログラム
ステップの単位との対応が明確である。
のではなく、一旦、解析された項目単位に応じたプログ
ラムステップの単位を生成し、次の段階で合成する。こ
のため、入力、あるいは出力項目と生成したプログラム
ステップの単位との対応が明確である。
【0010】入力、あるいは出力項目とプログラムステ
ップの単位は、考えられるバリエーションをメニュー選
択、あるいは属性として指定できるようにしておく。フ
ォームパーツのような場合は、その種類を解析によって
判別できるから、特に指定が無くても各々に適したプロ
グラムステップコードが生成できる。解析によって得ら
れる情報は多いから、補足的な指定を行う場合もその数
は少なくて済む。
ップの単位は、考えられるバリエーションをメニュー選
択、あるいは属性として指定できるようにしておく。フ
ォームパーツのような場合は、その種類を解析によって
判別できるから、特に指定が無くても各々に適したプロ
グラムステップコードが生成できる。解析によって得ら
れる情報は多いから、補足的な指定を行う場合もその数
は少なくて済む。
【0011】生成したプログラムステップの単位をどう
組み合わせるかについては、メニューで選択するように
するか、元文書へ指示用の情報を埋め込むなどの方法で
行う。あらかじめメニュー、あるいは指示情報に対応し
た合成プログラムを用意しておく。入力、あるいは出力
項目に対応したプログラムステップ単位とその合成法の
組み合わせのバリエーションは非常に多く、メニューや
設定項目が少なくても、従来方法より目的に合った多様
な実行プログラムコードが生成できる。
組み合わせるかについては、メニューで選択するように
するか、元文書へ指示用の情報を埋め込むなどの方法で
行う。あらかじめメニュー、あるいは指示情報に対応し
た合成プログラムを用意しておく。入力、あるいは出力
項目に対応したプログラムステップ単位とその合成法の
組み合わせのバリエーションは非常に多く、メニューや
設定項目が少なくても、従来方法より目的に合った多様
な実行プログラムコードが生成できる。
【0012】入力、あるいは出力項目に変更が合った場
合、そのまま再度、同じ操作を実行すれば良い。変更の
あった項目のプログラムステップコードのみが変更され
て置き換えられる。他の項目は元のプログラムステップ
コードと変わらないから、変更が無かった場合と等価に
なる。こうした変更があっても、プログラムステップコ
ードの合成をあり得る組み合わせの範囲にしておく事で
問題は発生しない。
合、そのまま再度、同じ操作を実行すれば良い。変更の
あった項目のプログラムステップコードのみが変更され
て置き換えられる。他の項目は元のプログラムステップ
コードと変わらないから、変更が無かった場合と等価に
なる。こうした変更があっても、プログラムステップコ
ードの合成をあり得る組み合わせの範囲にしておく事で
問題は発生しない。
【0013】生成された単独実行可能なプログラムコー
ドは目的に合えばそのまま実行させて良い。必要な機能
追加や変更を行う場合、生成後のプログラムコードは小
さく単純で見通しが良いので、追加変更がやりやすく、
バグも少ない。
ドは目的に合えばそのまま実行させて良い。必要な機能
追加や変更を行う場合、生成後のプログラムコードは小
さく単純で見通しが良いので、追加変更がやりやすく、
バグも少ない。
【0014】項目とプログラムステップコードの対応、
その合成法が明快なため、生成後の追加変更部とそれ以
外の部分の識別が極めて容易であり、生成後の追加変更
部を避けて自動生成部分のみを置き換える事も可能にな
る。特に出力項目を含むWeb文書のデザイン変更を行
う場合、生成後の追加変更部プログラムに影響なく、安
全に行える。これまで費用、期間の問題で更新が思うよ
うにできなかった問題はこれで解決できる。
その合成法が明快なため、生成後の追加変更部とそれ以
外の部分の識別が極めて容易であり、生成後の追加変更
部を避けて自動生成部分のみを置き換える事も可能にな
る。特に出力項目を含むWeb文書のデザイン変更を行
う場合、生成後の追加変更部プログラムに影響なく、安
全に行える。これまで費用、期間の問題で更新が思うよ
うにできなかった問題はこれで解決できる。
【0015】
【発明の実施の形態】第1図は本発明の全体の実施形態
を示す。ここで、ライブラリは実行プログラムを簡潔に
生成するためと、複数プログラムで共通に利用するため
のもので、ソースコード、関数、手続き、クラスなどの
プログラムモジュールの集まりである。入出力文書につ
いては、入力文書はフォーム、リンクを含むHTML文
書、出力文書は処理後の表示HTML文書、送信メール
のメッセージ、その他、処理後にファイルやデータベー
スに収納するようなデータのひな形となるような文書で
ある。入力誤りのため再表示する入力文書も含む。生成
プログラムは入力文書を解析し、文書に含まれる入出力
項目を検出して対応する処理をライブラリに含まれるモ
ジュールを利用して生成、最終的な実行プログラムコー
ドを生成する。生成された実行プログラムは生成プログ
ラムとは独立してWebからの入力を受け取り、処理を
行って応答画面を返す。処理後は応答画面だけでなくメ
ール送信、何らかの文書やプログラムコードのファイル
収納などの処理結果の情報保管、転送なども行う。
を示す。ここで、ライブラリは実行プログラムを簡潔に
生成するためと、複数プログラムで共通に利用するため
のもので、ソースコード、関数、手続き、クラスなどの
プログラムモジュールの集まりである。入出力文書につ
いては、入力文書はフォーム、リンクを含むHTML文
書、出力文書は処理後の表示HTML文書、送信メール
のメッセージ、その他、処理後にファイルやデータベー
スに収納するようなデータのひな形となるような文書で
ある。入力誤りのため再表示する入力文書も含む。生成
プログラムは入力文書を解析し、文書に含まれる入出力
項目を検出して対応する処理をライブラリに含まれるモ
ジュールを利用して生成、最終的な実行プログラムコー
ドを生成する。生成された実行プログラムは生成プログ
ラムとは独立してWebからの入力を受け取り、処理を
行って応答画面を返す。処理後は応答画面だけでなくメ
ール送信、何らかの文書やプログラムコードのファイル
収納などの処理結果の情報保管、転送なども行う。
【0016】第2図は実際の実行プログラムコード生成
の詳細なステップを示す。まず最初に文書を解析して必
要な項目のリストを作成する。項目は文書中の特定のマ
ークアップを目印にする。HTMLのフォームでは、<F
ORM>タグにより内部にパーツが含まれていることが分か
るので、更に個々のフォームパーツ(例えば<INPUT>や<
SELECT>など)を取り出す。その際に属性、名前、初期
値など各項目固有の情報を全て取得する。これらの情報
は対応するプログラムステップコード生成の基準とな
る。リンクは<AHREF>タグを分解するとURLやクエリース
トリングを抽出できる。フォーム、リンク以外の出力用
HTMLやメールひな形文書、処理したいテキストなど
ではこのようなタグはないので、独自にマークアップ記
号を定義して文書内に記述し、解析してリストアップす
る。こうした文書内の検索抽出には正規表現や文字列処
理関数の利用など多数の方法がある。次に、抽出した項
目に対応したプログラムステップコードを生成する。生
成コードはそれぞれの抽出項目に応じ、ライブラリ呼び
出しのコードやプログラムソースを変数や文字列配列な
どに記録しておく。抽出項目の必要に応じ、データベー
ス読み取り、定数値配列生成などを行う。この前段階
で、必要であれば補足的な指定、例えば文字入力のチェ
ック指定などを行う。最後に、これらの項目対応プログ
ラムステップコードを合成する。合成時にはその順序、
条件による取捨選択、項目間の演算処理、照合データの
データベースからの読み出しなど、様々なルールにより
行う。
の詳細なステップを示す。まず最初に文書を解析して必
要な項目のリストを作成する。項目は文書中の特定のマ
ークアップを目印にする。HTMLのフォームでは、<F
ORM>タグにより内部にパーツが含まれていることが分か
るので、更に個々のフォームパーツ(例えば<INPUT>や<
SELECT>など)を取り出す。その際に属性、名前、初期
値など各項目固有の情報を全て取得する。これらの情報
は対応するプログラムステップコード生成の基準とな
る。リンクは<AHREF>タグを分解するとURLやクエリース
トリングを抽出できる。フォーム、リンク以外の出力用
HTMLやメールひな形文書、処理したいテキストなど
ではこのようなタグはないので、独自にマークアップ記
号を定義して文書内に記述し、解析してリストアップす
る。こうした文書内の検索抽出には正規表現や文字列処
理関数の利用など多数の方法がある。次に、抽出した項
目に対応したプログラムステップコードを生成する。生
成コードはそれぞれの抽出項目に応じ、ライブラリ呼び
出しのコードやプログラムソースを変数や文字列配列な
どに記録しておく。抽出項目の必要に応じ、データベー
ス読み取り、定数値配列生成などを行う。この前段階
で、必要であれば補足的な指定、例えば文字入力のチェ
ック指定などを行う。最後に、これらの項目対応プログ
ラムステップコードを合成する。合成時にはその順序、
条件による取捨選択、項目間の演算処理、照合データの
データベースからの読み出しなど、様々なルールにより
行う。
【0017】第3図は主に最後の項目対応プログラムス
テップコード合成方法を開始時にメニュー選択して指定
する例を示している。これは最終段階に持ってきても良
いし、文書内にマークアップ記号を定義して指定しても
良い。最初に持ってくると微妙に個々の項目対応プログ
ラムステップコードを変更するのに適している。解析す
る文書は一旦、メニューで選択した一連の処理に渡す。
以後、第2図で示したステップで処理し、最後にメニュ
ーに応じた方法で実行プログラムコードを合成する。実
行プログラムコード合成時には解析した項目と対応する
プログラムステップコード部分は自明なので、合成用プ
ログラムはコメントなどを利用してその情報を付加して
おくようにする。これにより、実行プログラムコード単
独で見た時もどの部分がどの項目の処理を行っているの
かが確実に判別できる。
テップコード合成方法を開始時にメニュー選択して指定
する例を示している。これは最終段階に持ってきても良
いし、文書内にマークアップ記号を定義して指定しても
良い。最初に持ってくると微妙に個々の項目対応プログ
ラムステップコードを変更するのに適している。解析す
る文書は一旦、メニューで選択した一連の処理に渡す。
以後、第2図で示したステップで処理し、最後にメニュ
ーに応じた方法で実行プログラムコードを合成する。実
行プログラムコード合成時には解析した項目と対応する
プログラムステップコード部分は自明なので、合成用プ
ログラムはコメントなどを利用してその情報を付加して
おくようにする。これにより、実行プログラムコード単
独で見た時もどの部分がどの項目の処理を行っているの
かが確実に判別できる。
【0018】生成した実行プログラムはそのままで基本
的な処理を実行するため、目的に合えばそのまま使用す
れば良い。変更や追加が必要な場合は項目対応部分など
が判別容易なので、生成された実行プログラムを直接変
更する。この時、コメントなどを利用して変更や追加情
報を記述しておく。これにより自動生成部と変更追加部
が明確に判別できる。
的な処理を実行するため、目的に合えばそのまま使用す
れば良い。変更や追加が必要な場合は項目対応部分など
が判別容易なので、生成された実行プログラムを直接変
更する。この時、コメントなどを利用して変更や追加情
報を記述しておく。これにより自動生成部と変更追加部
が明確に判別できる。
【0019】入出力文書に変更があるときは、単純に生
成過程を繰り返せば良い。とりわけ、HTML部分だけ
の変更の場合はプログラムコードを手作業で修正する必
要はない。項目変更時などでも特に問題がなければ(単
に入出力の項目が増える場合だけなど)はそのまま生成
過程を繰り返せば適切な実行プログラムが再生成され
る。部分的に変更や追加があった場合、実行プログラム
コードのコメントにその情報があるため、新しい生成実
行プログラムにその部分だけをオーバーライトできる。
追加変更部が大きく、項目変更がプログラム修正を伴う
可能性があるときは変更を抑止できる。追加、変更部の
コメントに変更抑止の情報を入れておき、合成プログラ
ムはこの情報のあるプログラムコード部分は新しく生成
したコードに置き換えないようにする。
成過程を繰り返せば良い。とりわけ、HTML部分だけ
の変更の場合はプログラムコードを手作業で修正する必
要はない。項目変更時などでも特に問題がなければ(単
に入出力の項目が増える場合だけなど)はそのまま生成
過程を繰り返せば適切な実行プログラムが再生成され
る。部分的に変更や追加があった場合、実行プログラム
コードのコメントにその情報があるため、新しい生成実
行プログラムにその部分だけをオーバーライトできる。
追加変更部が大きく、項目変更がプログラム修正を伴う
可能性があるときは変更を抑止できる。追加、変更部の
コメントに変更抑止の情報を入れておき、合成プログラ
ムはこの情報のあるプログラムコード部分は新しく生成
したコードに置き換えないようにする。
【0020】
【実施例】以下、プログラミング言語としてPHPを用い
た実施例を述べる。PHPはインターネット上で公開され
ており、関連書籍も出版されている。参考までに公開W
ebサイトhttp://www.php.net/及び書籍「PHP4徹底攻
略」(ソフトバンク刊)を挙げておく。他に多数Web
サイト、関連書籍がある。PHPは文法がC言語とほぼ同
じで特に理解困難では無いが、以下の例で用いたPHP固
有の部分については参考に挙げたWebサイト、関連書
籍に詳しい。
た実施例を述べる。PHPはインターネット上で公開され
ており、関連書籍も出版されている。参考までに公開W
ebサイトhttp://www.php.net/及び書籍「PHP4徹底攻
略」(ソフトバンク刊)を挙げておく。他に多数Web
サイト、関連書籍がある。PHPは文法がC言語とほぼ同
じで特に理解困難では無いが、以下の例で用いたPHP固
有の部分については参考に挙げたWebサイト、関連書
籍に詳しい。
【0021】個々の実施例に先立ち、実行時ライブラリ
について説明する。
について説明する。
【0022】実行時ライブラリはクラス宣言、関数定
義、任意ステップのプログラムコードの集まりである。
生成プログラムでは実行プログラムにこれらの機能を組
み込むときに必要な部分をinclude文として生成する。
以下の実施例の説明に用いるためのライブラリに関連す
るものだけを説明する。
義、任意ステップのプログラムコードの集まりである。
生成プログラムでは実行プログラムにこれらの機能を組
み込むときに必要な部分をinclude文として生成する。
以下の実施例の説明に用いるためのライブラリに関連す
るものだけを説明する。
【0023】入力文字列チェックモジュール。strchec
k.phpというファイルは文字列入力チェックのクラス定
義を収納する。クラスstrcheckは連想配列によるチェッ
ク条件を指定して実行するコンストラクタ、対象文字列
を引数として取りチェックを行うset()メソッド、チェ
ック後必要な変換を行った文字列を取得するget()メソ
ッド、チェック結果を取得するerr()メソッドで構成す
る。チェック条件に適合するときはerr()メソッドはブ
ランクを返し、適合しないときはその理由を文字列で返
す。
k.phpというファイルは文字列入力チェックのクラス定
義を収納する。クラスstrcheckは連想配列によるチェッ
ク条件を指定して実行するコンストラクタ、対象文字列
を引数として取りチェックを行うset()メソッド、チェ
ック後必要な変換を行った文字列を取得するget()メソ
ッド、チェック結果を取得するerr()メソッドで構成す
る。チェック条件に適合するときはerr()メソッドはブ
ランクを返し、適合しないときはその理由を文字列で返
す。
【0024】データベースの情報収納と参照のためのS
QL文を生成して実行するDBtablesクラス。コンストラ
クタはデータベース名を指定しデータベースへ接続、そ
の接続IDを保持する。open()メソッドはテーブル名を
指定し、以降のSQL実行準備を行う。各テーブルへのア
クセスはqueryTablesクラスを用意し、open()メソッド
内でインスタンス作成、保持する。queryTablesクラス
はほぼSQL文に対応したメソッドを内蔵する。select
(),insert(),update(),delete()はほぼ同等の動作をす
るが、1レコード単位の処理のためread(),write(),del
record()を、複数レコード読み出し時のためのrecord()
などを用意する。これらもDBtables.phpというファイル
に記述、必要に応じてinclude文で組み込む。
QL文を生成して実行するDBtablesクラス。コンストラ
クタはデータベース名を指定しデータベースへ接続、そ
の接続IDを保持する。open()メソッドはテーブル名を
指定し、以降のSQL実行準備を行う。各テーブルへのア
クセスはqueryTablesクラスを用意し、open()メソッド
内でインスタンス作成、保持する。queryTablesクラス
はほぼSQL文に対応したメソッドを内蔵する。select
(),insert(),update(),delete()はほぼ同等の動作をす
るが、1レコード単位の処理のためread(),write(),del
record()を、複数レコード読み出し時のためのrecord()
などを用意する。これらもDBtables.phpというファイル
に記述、必要に応じてinclude文で組み込む。
【0025】入出力ファイルを解析し、パーツ情報を取
得する部分についていくつか例を挙げる。
得する部分についていくつか例を挙げる。
【0026】解析の対象は入力フォームタグだけでな
く、出力に処理結果を埋め込むための情報が必要だが、
標準的な物はない。このため、次のようなマークアップ
を定義した。?$name??のように?$と??の間に埋め込みた
い情報の手がかりとなる名前を記述する。これは<?echo
$name?>というPHPコードに変換する。すなわち、名前
はPHPの変数名となる。ここでは規定のタグであるフォ
ームパーツだけでなく、こうした独自のマークアップも
パーツと呼ぶ。補足的な情報は別途定義して@マークで
挟み名前の前に付ける。例えば、?$html@name??は$name
変数の内容をHTMLで表示できるよう変換して出力す
る。またデータベースのテーブル、項目の指定はテーブ
ル名と項目名をアンダースコア"_"で挟んで指定する。
例えば、?$adrbook_address??とするとaddrbookという
テーブルのaddress項目を対象とする意味になる。入力
フォームのパーツ名にもこの定義を適用する。
く、出力に処理結果を埋め込むための情報が必要だが、
標準的な物はない。このため、次のようなマークアップ
を定義した。?$name??のように?$と??の間に埋め込みた
い情報の手がかりとなる名前を記述する。これは<?echo
$name?>というPHPコードに変換する。すなわち、名前
はPHPの変数名となる。ここでは規定のタグであるフォ
ームパーツだけでなく、こうした独自のマークアップも
パーツと呼ぶ。補足的な情報は別途定義して@マークで
挟み名前の前に付ける。例えば、?$html@name??は$name
変数の内容をHTMLで表示できるよう変換して出力す
る。またデータベースのテーブル、項目の指定はテーブ
ル名と項目名をアンダースコア"_"で挟んで指定する。
例えば、?$adrbook_address??とするとaddrbookという
テーブルのaddress項目を対象とする意味になる。入力
フォームのパーツ名にもこの定義を適用する。
【0027】解析には正規表現でタグ、マークアップを
検出、抽出して一旦配列に収納する方法を取る。例え
ば、<INPUTtype="text" name="name">というタグであれ
ば'<INPUTtype="(.*?)" name="(.*?)">'という最短一致
正規表現を用い、配列に分解、取得できる。取得した配
列を$llとすると、これを次のように総合的な管理用配
列$partsに収納する。 $parts[$ll[2]]['type'] = $ll[1];
検出、抽出して一旦配列に収納する方法を取る。例え
ば、<INPUTtype="text" name="name">というタグであれ
ば'<INPUTtype="(.*?)" name="(.*?)">'という最短一致
正規表現を用い、配列に分解、取得できる。取得した配
列を$llとすると、これを次のように総合的な管理用配
列$partsに収納する。 $parts[$ll[2]]['type'] = $ll[1];
【0028】selectとradioタグは複数のvalueやoption
を持つ。このため、このふたつのパーツは別途、配列に
保管しておく。radioの場合は、'<INPUT type="(.*?)"
name="(.*?)" value="(.*?)">'とvalueをいう最短一致
正規表現を用いて取得、 $set[$ll[2]][] = $ll[3]; とvalueの値を追加する。select の場合はやや複雑
で、'<SELECT name="(.*?)">(.*?)/SELECT>'としてオプ
ション部を抽出、さらにこれをループで'OPTION value
="(.*?)>(.*?)<'を用いオプションリストを$l2に取得、 $list[$ll[2]][$l2[1]] = $l2[2]; のように収納する。各パーツ共通の情報としてテーブル
名の指定があれば分解して収納する。 $t = explode( '_', $ll[2] ); if( !empty( $t[1] ) $columns[$t[0]][] = $t[1];
を持つ。このため、このふたつのパーツは別途、配列に
保管しておく。radioの場合は、'<INPUT type="(.*?)"
name="(.*?)" value="(.*?)">'とvalueをいう最短一致
正規表現を用いて取得、 $set[$ll[2]][] = $ll[3]; とvalueの値を追加する。select の場合はやや複雑
で、'<SELECT name="(.*?)">(.*?)/SELECT>'としてオプ
ション部を抽出、さらにこれをループで'OPTION value
="(.*?)>(.*?)<'を用いオプションリストを$l2に取得、 $list[$ll[2]][$l2[1]] = $l2[2]; のように収納する。各パーツ共通の情報としてテーブル
名の指定があれば分解して収納する。 $t = explode( '_', $ll[2] ); if( !empty( $t[1] ) $columns[$t[0]][] = $t[1];
【0029】入力フォームの場合、最後に抽出したパー
ツ情報をフォーム単位に配列に収納する。 $formlist[$fname]['parts'] = $parts; /// パーツリ
スト $formlist[$fname]['list'] = $list; /// select オプ
ションリスト $formlist[$fname]['set'] = $set; /// radio 値リス
ト $formlist[$fname]['tlist'] = $columns; /// テーブ
ル毎項目リスト
ツ情報をフォーム単位に配列に収納する。 $formlist[$fname]['parts'] = $parts; /// パーツリ
スト $formlist[$fname]['list'] = $list; /// select オプ
ションリスト $formlist[$fname]['set'] = $set; /// radio 値リス
ト $formlist[$fname]['tlist'] = $columns; /// テーブ
ル毎項目リスト
【0030】同様に他のパーツ、定義したマークアップ
に基づき、分解、配列に収納する。これが図2に示すパ
ーツ情報となる。
に基づき、分解、配列に収納する。これが図2に示すパ
ーツ情報となる。
【0031】不足する情報は元文書にマークアップを定
義して追加する方法もあるが、この例では入力時、次の
ステッププログラム生成の前にフォームから情報を追加
するようにした。パーツ情報は解析後保管しておけるの
で、小さな修正では保管しておいたパーツ情報を呼び出
して行う方が効率が良い。図6は図5のフォームを解析
し、各パーツごとの補足情報を入力するための画面を表
示した例である。ここではパーツをわかりやすく表現す
るため別途タイトルを追加することと、パーツにより入
力チェック条件を追加することとした。すでに各パーツ
のタイプが分かっているので、タイプに応じた設定条件
を表示する。例えば、入力フィールドでは最小、最大文
字数の他、文字タイプのチェック指定が出来るようにな
っている。複数行入力フィールドでは通常文章が対象と
なるので文字タイプのチェックは必要ない。selectやra
dioは複数valueやoptionで入力条件が分かるので特に指
定項目は無い。このような入力フォーム以外に検索条件
入力法や集計方法指定など、元文書に記述するのが難し
い追加情報を同様に指定できる。
義して追加する方法もあるが、この例では入力時、次の
ステッププログラム生成の前にフォームから情報を追加
するようにした。パーツ情報は解析後保管しておけるの
で、小さな修正では保管しておいたパーツ情報を呼び出
して行う方が効率が良い。図6は図5のフォームを解析
し、各パーツごとの補足情報を入力するための画面を表
示した例である。ここではパーツをわかりやすく表現す
るため別途タイトルを追加することと、パーツにより入
力チェック条件を追加することとした。すでに各パーツ
のタイプが分かっているので、タイプに応じた設定条件
を表示する。例えば、入力フィールドでは最小、最大文
字数の他、文字タイプのチェック指定が出来るようにな
っている。複数行入力フィールドでは通常文章が対象と
なるので文字タイプのチェックは必要ない。selectやra
dioは複数valueやoptionで入力条件が分かるので特に指
定項目は無い。このような入力フォーム以外に検索条件
入力法や集計方法指定など、元文書に記述するのが難し
い追加情報を同様に指定できる。
【0032】追加情報はパーツ情報配列$formlistへ追
加する。例えば、 $formparts['parts'][$name]['min'] = $min; $formparts['parts'][$name]['max'] = $max; $formparts['parts'][$name]['title'] = $title; のように追加する。
加する。例えば、 $formparts['parts'][$name]['min'] = $min; $formparts['parts'][$name]['max'] = $max; $formparts['parts'][$name]['title'] = $title; のように追加する。
【0033】ステッププログラム生成の例をいくつか説
明する。
明する。
【0034】入力フィールドの場合を挙げる。もし、追
加指定が無い場合は各補足情報項がブランクなので、次
のような簡単なプログラムを実行する。 $inpchk.='$'.$formname.'["'.$name.'"]=$HTTP_POST_V
ARS["'.$name.'"];'."\n"; $formname,$nameはパーツ情報から取得しておく。各変
数の内容、$formnameが'form_0',$nameが'address'だっ
たとすると生成プログラムステップは次のようなコード
文字列として$inpchk変数にセットされる。 $form_0['address']=$HTTP_POST_VARS['address']; 入力条件指定があれば、 if( 0 < $min ) $arraystr .= '"min"=>"'.$min.'"'; のように条件指定部分コードをカンマ区切りで$arrayst
rへ追加していく。ここで0023で例に挙げたstrchec
kクラスを用いたチェックコードを生成する。 $inpchk.='$_'.$name.'= new strcheck(array('.$array
str.'));'."\n"; $inpchk.='if($_'.$name.'->set( $HTTP_POST_VARS["'.
$name.'"]))'."\n"; $inpchk.='$warning.="'.$title.':".$_'.$name.'->err
()."<BR>";'."\n"; $inpchk.='$'.$formname.'["'.$name.'"]=$_'.$name.'-
>get();'."\n"; $minが5,$maxが10だったとすると、生成プログラム
ステップは次のようなコード文字列として$inpchk変数
にセットされる。 $_address=new strcheck(array("min"=>5,"max"=>10)); if($_address->set($HTTP_POST_VARS["address"]))$w
arning.=”住所:".$_address->err()."<BR>"; $form_0['address'] = $_address->get();
加指定が無い場合は各補足情報項がブランクなので、次
のような簡単なプログラムを実行する。 $inpchk.='$'.$formname.'["'.$name.'"]=$HTTP_POST_V
ARS["'.$name.'"];'."\n"; $formname,$nameはパーツ情報から取得しておく。各変
数の内容、$formnameが'form_0',$nameが'address'だっ
たとすると生成プログラムステップは次のようなコード
文字列として$inpchk変数にセットされる。 $form_0['address']=$HTTP_POST_VARS['address']; 入力条件指定があれば、 if( 0 < $min ) $arraystr .= '"min"=>"'.$min.'"'; のように条件指定部分コードをカンマ区切りで$arrayst
rへ追加していく。ここで0023で例に挙げたstrchec
kクラスを用いたチェックコードを生成する。 $inpchk.='$_'.$name.'= new strcheck(array('.$array
str.'));'."\n"; $inpchk.='if($_'.$name.'->set( $HTTP_POST_VARS["'.
$name.'"]))'."\n"; $inpchk.='$warning.="'.$title.':".$_'.$name.'->err
()."<BR>";'."\n"; $inpchk.='$'.$formname.'["'.$name.'"]=$_'.$name.'-
>get();'."\n"; $minが5,$maxが10だったとすると、生成プログラム
ステップは次のようなコード文字列として$inpchk変数
にセットされる。 $_address=new strcheck(array("min"=>5,"max"=>10)); if($_address->set($HTTP_POST_VARS["address"]))$w
arning.=”住所:".$_address->err()."<BR>"; $form_0['address'] = $_address->get();
【0035】selectやradioの場合は複雑になる。元のo
ptionやvalueとの照合が必要になるからである。これに
はパーツ情報で取得した$formlist[$fname]['list']や$
formlist[$fname]['set']を利用して配列を生成するコ
ードを生成し、strcheckクラスの配列照合指定を使用す
る。例えばnameが'gender'のradioでvalueが'男''女'だ
ったとき、$arraystrに'"男”,"女"'とカンマ区切りの
文字列を$formlist[$fname]['set']['gender']から生成
してセットしておき、 $arrstr.='$_genderset=array('.$arraystr.');'."\n"; $inpchk.='$_'.$name.'=new strcheck(array("is"=>"mu
tch",$_genderset));'."\n"; $inpchk.='if($_'.$name.'->set($HTTP_POST_VARS["'.$
name.'"]))'."\n"; $inpchk.='$warning.="'.$title.':".$_'.$name.'->err
()."<BR>";'."\n"; $inpchk.='$'.$formname.'["'.$name.'"]=$_'.$name.'-
>get();'."\n"; を実行する。配列生成コードは入力チェックプログラム
ステップと異なる変数$arrstrに保管する。 $_genderset=array("男”,"女"); このコードはステッププログラムの合成時に他の配列生
成コードとまとめて配置される。実行後の生成プログラ
ムステップは次のようなコード文字列として$inpchk変
数にセットされる。 $_gender=new strcheck(array("is"=>"mutch",$_gender
set));' if($_gender->set($HTTP_POST_VARS["gender"])); $warning.="性別:".$_gender->err()."<BR>"; $form_0["gender"]=$_gender->get();
ptionやvalueとの照合が必要になるからである。これに
はパーツ情報で取得した$formlist[$fname]['list']や$
formlist[$fname]['set']を利用して配列を生成するコ
ードを生成し、strcheckクラスの配列照合指定を使用す
る。例えばnameが'gender'のradioでvalueが'男''女'だ
ったとき、$arraystrに'"男”,"女"'とカンマ区切りの
文字列を$formlist[$fname]['set']['gender']から生成
してセットしておき、 $arrstr.='$_genderset=array('.$arraystr.');'."\n"; $inpchk.='$_'.$name.'=new strcheck(array("is"=>"mu
tch",$_genderset));'."\n"; $inpchk.='if($_'.$name.'->set($HTTP_POST_VARS["'.$
name.'"]))'."\n"; $inpchk.='$warning.="'.$title.':".$_'.$name.'->err
()."<BR>";'."\n"; $inpchk.='$'.$formname.'["'.$name.'"]=$_'.$name.'-
>get();'."\n"; を実行する。配列生成コードは入力チェックプログラム
ステップと異なる変数$arrstrに保管する。 $_genderset=array("男”,"女"); このコードはステッププログラムの合成時に他の配列生
成コードとまとめて配置される。実行後の生成プログラ
ムステップは次のようなコード文字列として$inpchk変
数にセットされる。 $_gender=new strcheck(array("is"=>"mutch",$_gender
set));' if($_gender->set($HTTP_POST_VARS["gender"])); $warning.="性別:".$_gender->err()."<BR>"; $form_0["gender"]=$_gender->get();
【0036】パーツ名にテーブル指定があるとき、専用
の配列を追加生成する。アンダースコアを区切りとして
テーブル名と項目名に一旦分解する。その上でテーブル
名を配列名、項目名を連想配列キー、入力値を値として
収納するコードを生成する。$nameにmember_ageという
データが入っていれば、次を実行する。 $l=explode('_',$name); $tarray.='$'.$l[0].'list["'.$l[1].'"]=$'.$formnam
e.'["'.$name.'"];'."\n"; $tarray に収納した結果コードは次のようになりステッ
ププログラム合成時にデータベース収納、または読み出
しコードの前処理として配置される。$memberl
ist[”age”]=$form_0[”ag
e”];
の配列を追加生成する。アンダースコアを区切りとして
テーブル名と項目名に一旦分解する。その上でテーブル
名を配列名、項目名を連想配列キー、入力値を値として
収納するコードを生成する。$nameにmember_ageという
データが入っていれば、次を実行する。 $l=explode('_',$name); $tarray.='$'.$l[0].'list["'.$l[1].'"]=$'.$formnam
e.'["'.$name.'"];'."\n"; $tarray に収納した結果コードは次のようになりステッ
ププログラム合成時にデータベース収納、または読み出
しコードの前処理として配置される。$memberl
ist[”age”]=$form_0[”ag
e”];
【0037】ステッププログラムの合成について説明す
る。
る。
【0038】解析プログラムによるパーツ情報は個々の
パーツだけではなくあるパーツグループについての情報
も収納される。0029の$formlist[$fname]['tlis
t']、テーブル指定された項目のリストがそれに当た
る。ステッププログラム合成の過程でこうしたパーツグ
ループの扱いを決めるコードも生成する。ついで、適切
な位置にこれらを配置、合成する。どのように合成する
かは図3のようにメニュー選択で合成プログラムを切り
替える。
パーツだけではなくあるパーツグループについての情報
も収納される。0029の$formlist[$fname]['tlis
t']、テーブル指定された項目のリストがそれに当た
る。ステッププログラム合成の過程でこうしたパーツグ
ループの扱いを決めるコードも生成する。ついで、適切
な位置にこれらを配置、合成する。どのように合成する
かは図3のようにメニュー選択で合成プログラムを切り
替える。
【0039】入力データをデータベースに保管するメニ
ュー、図4で「新規レコード登録」を選んだ場合を挙げ
る。$formlist[$fname]['tlist']からforeach文でテー
ブル名を$tname変数に取得して次を実行する。 $savecode.='$tbl = $db->open( "'.$tname.'<?echo $t
name?>" );'."\n"; $savecode.='$tbl->insert( $'.$tname.'<?echo $tname
?>list );"\n"; $savecodeには次の結果コードが生成収納される。 $tbl = $db->open( "member<?echo $tname?>" ); $tbl->insert( $member<?echo $tname?>list );
ュー、図4で「新規レコード登録」を選んだ場合を挙げ
る。$formlist[$fname]['tlist']からforeach文でテー
ブル名を$tname変数に取得して次を実行する。 $savecode.='$tbl = $db->open( "'.$tname.'<?echo $t
name?>" );'."\n"; $savecode.='$tbl->insert( $'.$tname.'<?echo $tname
?>list );"\n"; $savecodeには次の結果コードが生成収納される。 $tbl = $db->open( "member<?echo $tname?>" ); $tbl->insert( $member<?echo $tname?>list );
【0040】Webアプリケーションではリクエストに
対して何らかの応答を返さなければならない。表示画面
のurl でもHTML文書でも良い。ここでは新規登録し
たデータの再表示をする画面をプログラムから出力する
例を挙げる。独自定義したマークアップ、?$name??をH
TML中に記述したファイルは、簡単に文字列置き換え
で変数出力に変更できる。新規登録レコードのデータは
連想配列となっているので、これを事前に変数にしてお
かなければならない。出力HTML文書が$viewpageに
収納されている場合、次のようなコードを実行する。 $viewpage=strreplace( '?$','<?echo $',$viewpage ); $viewpage=strreplace( '??','?>', $viewpage ); $outpage.='extract($'.$tname.'list);'."\n"; $outpage.='?>'.$viewpage; extract()関数は連想配列の要素をキーを名前とした配
列に変換する。
対して何らかの応答を返さなければならない。表示画面
のurl でもHTML文書でも良い。ここでは新規登録し
たデータの再表示をする画面をプログラムから出力する
例を挙げる。独自定義したマークアップ、?$name??をH
TML中に記述したファイルは、簡単に文字列置き換え
で変数出力に変更できる。新規登録レコードのデータは
連想配列となっているので、これを事前に変数にしてお
かなければならない。出力HTML文書が$viewpageに
収納されている場合、次のようなコードを実行する。 $viewpage=strreplace( '?$','<?echo $',$viewpage ); $viewpage=strreplace( '??','?>', $viewpage ); $outpage.='extract($'.$tname.'list);'."\n"; $outpage.='?>'.$viewpage; extract()関数は連想配列の要素をキーを名前とした配
列に変換する。
【0041】0036の$tarrayで$memberlist配列への
データ収納コードが作成されているので、これを単に文
字列連結するとレコード収納部のソースコードが得られ
る。その前に0034、0035で入力チェックコード
$inpchkが、0035で$arrstrが作成されているので、
結果コード$outsourceは次のようになる。 $outsource='<?'.$arrstr.$inpchk.$tarray.$savecode.
$outpage;
データ収納コードが作成されているので、これを単に文
字列連結するとレコード収納部のソースコードが得られ
る。その前に0034、0035で入力チェックコード
$inpchkが、0035で$arrstrが作成されているので、
結果コード$outsourceは次のようになる。 $outsource='<?'.$arrstr.$inpchk.$tarray.$savecode.
$outpage;
【0042】以上、0025から0041まで、図2に
相当する部分の一例を挙げた。図3のようにメニューに
対応したステッププログラムとステッププログラム合成
のためのコードのバリエーションを用意することで多様
なニーズに対応する。図4はメニュー例である。「表示
・メール送信」「テーブル作成」「新規レコード登録」
「レコード更新表示」「内容埋め込み表示」「検索フォ
ーム」「リスティング」の7つがある。いずれも解析プ
ログラムは共通だが、ステッププログラム生成部、ステ
ッププログラム合成部のコードはメニュー内容によって
かなり異なる。しかし、図2のステップは必ず含んでい
る。
相当する部分の一例を挙げた。図3のようにメニューに
対応したステッププログラムとステッププログラム合成
のためのコードのバリエーションを用意することで多様
なニーズに対応する。図4はメニュー例である。「表示
・メール送信」「テーブル作成」「新規レコード登録」
「レコード更新表示」「内容埋め込み表示」「検索フォ
ーム」「リスティング」の7つがある。いずれも解析プ
ログラムは共通だが、ステッププログラム生成部、ステ
ッププログラム合成部のコードはメニュー内容によって
かなり異なる。しかし、図2のステップは必ず含んでい
る。
【0043】図5は「表示・メール送信」メニューを選
択したときの設定フォームである。Webからサーバー
へ対象ファイルを送信、若干の設定を行っている。図6
は入力ソース解析後、追加情報を設定する画面である。
図7は生成ソースの一部で、主に先頭から入力チェック
部にかけて、図8はエラー処理から再表示までのHTM
Lの一部生成ソースを示す。
択したときの設定フォームである。Webからサーバー
へ対象ファイルを送信、若干の設定を行っている。図6
は入力ソース解析後、追加情報を設定する画面である。
図7は生成ソースの一部で、主に先頭から入力チェック
部にかけて、図8はエラー処理から再表示までのHTM
Lの一部生成ソースを示す。
【0044】1メニューがWebの1リクエストと応答
に対応し、それぞれが独立した実行プログラムになる。
Webでは1リクエストと応答で接続が完了するため、
必要な数だけこの生成行程を行えばよい。この方法では
入出力のパーツの数やタイプを考慮する必要は無い。単
に生成をやり直すだけで適切な実行コードが生成され
る。
に対応し、それぞれが独立した実行プログラムになる。
Webでは1リクエストと応答で接続が完了するため、
必要な数だけこの生成行程を行えばよい。この方法では
入出力のパーツの数やタイプを考慮する必要は無い。単
に生成をやり直すだけで適切な実行コードが生成され
る。
【発明の効果】以上説明したように、本発明を利用する
ことにより手作業によるプログラムコードの記述量を削
減できるだけでなく、プログラマー以外のWebデザイ
ナー等がプログラムコードを考慮することなく任意のW
ebアプリケーションに影響するページの作成、変更を
行うことができる。また生成された実行プログラムコー
ドはサイズが小さく機能が単純なので機能追加、変更、
保守が容易である。
ことにより手作業によるプログラムコードの記述量を削
減できるだけでなく、プログラマー以外のWebデザイ
ナー等がプログラムコードを考慮することなく任意のW
ebアプリケーションに影響するページの作成、変更を
行うことができる。また生成された実行プログラムコー
ドはサイズが小さく機能が単純なので機能追加、変更、
保守が容易である。
【図1】全体のフロー
【図2】入出力文書解析とプログラムステップコード生
成、及び合成
成、及び合成
【図3】メニュー選択により生成プログラムステップコ
ード合成法の選択
ード合成法の選択
【図4】メニュー画面例
【図5】設定画面例
【図6】パーツ追加情報入力画面例
【図7】生成コードの一部サンプル
【図8】生成コードの一部サンプル
Claims (2)
- 【請求項1】 Webからの要求を受け取りその結果出
力を行うプログラムを生成するプログラムにおいて、入
力と出力またはいずれかに用いる文書を解析してパーツ
情報を抽出し、抽出された個々のパーツ情報またはパー
ツ情報と追加された補足情報に対応した個々のステップ
プログラムを生成し、生成された個々のステッププログ
ラムを複数の合成法から選択して合成することによりプ
ログラムを生成するプログラム。 - 【請求項2】 Webからの要求を受け取りその結果出
力を行うプログラムを生成する方法において、入力と出
力またはいずれかに用いる文書を解析してパーツ情報を
抽出し、抽出された個々のパーツ情報またはパーツ情報
と追加された補足情報に対応した個々のステッププログ
ラムを生成し、生成された個々のステッププログラムを
複数の合成法から選択して合成することによりプログラ
ムを生成する方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001303339A JP2003108369A (ja) | 2001-09-28 | 2001-09-28 | Webからの要求を受け取り結果出力を行うプログラムの自動生成 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001303339A JP2003108369A (ja) | 2001-09-28 | 2001-09-28 | Webからの要求を受け取り結果出力を行うプログラムの自動生成 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2003108369A true JP2003108369A (ja) | 2003-04-11 |
Family
ID=19123437
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001303339A Pending JP2003108369A (ja) | 2001-09-28 | 2001-09-28 | Webからの要求を受け取り結果出力を行うプログラムの自動生成 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2003108369A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005063404A (ja) * | 2003-07-31 | 2005-03-10 | Fujitsu Ltd | Xmlドリブンアーキテクチャにおける情報処理方法及びプログラム |
JP2009223921A (ja) * | 2003-07-31 | 2009-10-01 | Fujitsu Ltd | Xmlドリブンアーキテクチャにおける情報処理方法及びプログラム |
JP2012118653A (ja) * | 2010-11-30 | 2012-06-21 | Internatl Business Mach Corp <Ibm> | フォーム入力の部分的問合せ方法、その方法に使用されるコンピュータ・プログラム、及びそのプログラムを搭載した処理装置 |
JP2020087452A (ja) * | 2018-11-16 | 2020-06-04 | 富士通株式会社 | コンピュータが読むことができるコードを生成する方法、コンピュータ可読媒体、及びシステム |
-
2001
- 2001-09-28 JP JP2001303339A patent/JP2003108369A/ja active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005063404A (ja) * | 2003-07-31 | 2005-03-10 | Fujitsu Ltd | Xmlドリブンアーキテクチャにおける情報処理方法及びプログラム |
JP2009223921A (ja) * | 2003-07-31 | 2009-10-01 | Fujitsu Ltd | Xmlドリブンアーキテクチャにおける情報処理方法及びプログラム |
US8533207B2 (en) | 2003-07-31 | 2013-09-10 | Fujitsu Limited | Information processing method, apparatus and program in XML driven architecture |
JP2012118653A (ja) * | 2010-11-30 | 2012-06-21 | Internatl Business Mach Corp <Ibm> | フォーム入力の部分的問合せ方法、その方法に使用されるコンピュータ・プログラム、及びそのプログラムを搭載した処理装置 |
US9135232B2 (en) | 2010-11-30 | 2015-09-15 | International Business Machines Corporation | Inputting information into an electronic form |
US9218330B2 (en) | 2010-11-30 | 2015-12-22 | International Business Machines Corporation | Method of inputting information into an electronic form |
JP2020087452A (ja) * | 2018-11-16 | 2020-06-04 | 富士通株式会社 | コンピュータが読むことができるコードを生成する方法、コンピュータ可読媒体、及びシステム |
JP7302440B2 (ja) | 2018-11-16 | 2023-07-04 | 富士通株式会社 | コンピュータが読むことができるコードを生成する方法、コンピュータ可読媒体、及びシステム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10970474B2 (en) | Method and system for editing text with a find and replace function leveraging derivations of the find and replace input | |
AU2012203071B2 (en) | Computer-implemented method, system and computer program product for displaying a user interface component | |
CN108762743B (zh) | 一种数据表操作代码生成方法及装置 | |
US20070220480A1 (en) | Dynamic generation of cascading style sheets | |
CN106648662B (zh) | 基于工程造价计算描述语言bcl的报表生成装置及生成方法 | |
WO2004086222A2 (en) | Development of software systems | |
EP1352330A1 (en) | Method and system for generating structured data from semi-structured data sources | |
EP2332075A1 (en) | A method for localizing text in a software application | |
JP2005196291A (ja) | ユーザインタフェースアプリケーション開発プログラム、および開発装置 | |
CN109710250B (zh) | 一种用于构建用户界面的可视化引擎系统及方法 | |
CN111459537B (zh) | 冗余代码去除方法、装置、设备与计算机可读存储介质 | |
US7698694B2 (en) | Methods and systems for transforming an AND/OR command tree into a command data model | |
CN112825038B (zh) | 基于通用组件语言规范的可视化页面制作方法和相关产品 | |
CN106484488A (zh) | 一体化云编译方法和系统 | |
JP2001325098A (ja) | アプリケーションプログラムの作成方法、データベース操作方法、項目オブジェクト管理方法、モジュール動作制御方法ならびにデータベース操作方法、項目オブジェクト管理方法およびモジュール動作制御方法を実現するためのプログラムを記録したコンピュータ可読な記録媒体 | |
CN112487019B (zh) | 用于OpenGauss数据库的解析动态SQL的方法及系统 | |
US20050177818A1 (en) | Integration of external tools into an existing design environment | |
JP2003108369A (ja) | Webからの要求を受け取り結果出力を行うプログラムの自動生成 | |
Anderson et al. | Supporting analysis of SQL queries in PHP AiR | |
CN114489619A (zh) | 一种界面视图显示方法及终端设备、计算机可读存储介质 | |
Elsheh et al. | Using database metadata and its semantics to generate automatic and dynamic web entry forms in | |
WO2001077882A1 (en) | System and method for generating computer source code | |
JP2010165205A (ja) | モデルのテンプレート自動生成システム、方法及びプログラム | |
JP6792584B2 (ja) | 解析装置及びプログラム | |
JP3031767B2 (ja) | 自然言語処理装置 |