JP2005018390A - 記述言語変換方法及び実施システム並びに処理プログラム - Google Patents
記述言語変換方法及び実施システム並びに処理プログラム Download PDFInfo
- Publication number
- JP2005018390A JP2005018390A JP2003182076A JP2003182076A JP2005018390A JP 2005018390 A JP2005018390 A JP 2005018390A JP 2003182076 A JP2003182076 A JP 2003182076A JP 2003182076 A JP2003182076 A JP 2003182076A JP 2005018390 A JP2005018390 A JP 2005018390A
- Authority
- JP
- Japan
- Prior art keywords
- tag
- description language
- data
- description
- xml
- 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
Images
Landscapes
- Devices For Executing Special Programs (AREA)
- Document Processing Apparatus (AREA)
Abstract
【課題】第1の記述言語の記述部分を第2の記述言語で一意に識別される記述に変換することが可能な技術を提供する。
【解決手段】第1の記述言語で記述された第1のデータを第2の記述言語で記述された第2のデータに変換する記述言語変換方法において、変換対象となる記述部分を一意に識別する為の識別情報を第1の記述言語で記述されたオリジナルデータに付加するステップと、前記識別情報の付加された記述部分を第2の記述言語で記述された第2のデータに変換するステップとを有するものである。
【選択図】 図1
【解決手段】第1の記述言語で記述された第1のデータを第2の記述言語で記述された第2のデータに変換する記述言語変換方法において、変換対象となる記述部分を一意に識別する為の識別情報を第1の記述言語で記述されたオリジナルデータに付加するステップと、前記識別情報の付加された記述部分を第2の記述言語で記述された第2のデータに変換するステップとを有するものである。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は所定の記述言語で記述されたデータを他の記述言語のデータに変換する記述言語変換技術に関するものである。
【0002】
【従来の技術】
XML(eXtensible Markup Language)を用いて動的にHTML(Hyper Text Markup Language)を作成する方法として、XMLタグ名称をHTMLのINPUTタグのNAME属性に設定する方法がある(例えば非特許文献1参照)。
【0003】
この方法では、XSLT(eXtensible Stylesheet Language Transformations)スタイルシートを用いてXMLからHTMLへ変換しており、XSLTスタイルシートでは、Xpath関数であるname()を用いてノード名を取得し、属性値テンプレートであるxsl:attributeを組み合わせて利用することで、HTML変換を行う際に、HTMLのNAME属性としてXMLタグ名を設定することができる。
【0004】
また、関連の技術としては、XMLデータに様々なアプリケーションプログラムで使用する要素や属性を混在させて使うことができる技術として、「名前空間」という規格がある。これは、名前空間接頭辞をタグ名に付けることで、同一名称のタグを一意に扱うことができる様な仕組みである。一般的に、複数のDTD(Document Type Definition)を用いる環境において、タグ名の衝突を避ける為の仕組みでもある(例えば非特許文献1参照)。
【0005】
【非特許文献1】
http://www.w3.org/TR/REC−xml−names/「Namespace in XML」
【0006】
【発明が解決しようとする課題】
しかし、上記の様にHTML変換を行う際のINPUTタグのNAME属性としてXMLタグ名を設定する場合、同一のXMLタグ名が他にも存在していると、NAME属性には同一のものが作成されてしまう為、HTMLのフォーム内においてHTTP(Hyper Text Transfer Protocol)リクエストを送信した際、送信される「NAME:VALUE」形式のデータの区別をすることができない。
【0007】
従って、上記問題を解決する為には、XML−HTML変換を行う際に、同一タグが存在するデータについてはフォームを分けて別々にリクエストを発行するか、リクエストを発行する前処理として同一タグの存在するデータについて検索し、それぞれ固有のNAME属性を設定してリクエストを発行する必要がある。
【0008】
また、上記のXMLの標準規格である「名前空間」を利用する場合では、名前空間宣言の指定やXMLタグ名そのものを変換することになる為、様々な形式(フォーマット)のXMLデータを扱う場合、変換処理を実装するアプリケーションプログラムのコードが複雑になり、個々に変換プログラムを作成する必要がある為、開発コストが増大する。
【0009】
本発明の目的は上記問題を解決し、第1の記述言語の記述部分を第2の記述言語で一意に識別される記述に変換することが可能な技術を提供することにある。
【0010】
【課題を解決するための手段】
本発明は、第1の記述言語で記述された第1のデータを第2の記述言語で記述された第2のデータに変換する記述言語変換システムにおいて、変換対象を一意に識別する為の識別情報を付加して第1の記述言語から第2の記述言語への変換を行うものである。
【0011】
本発明の記述言語変換システムでは、XML等の第1の記述言語で記述された第1のデータであるオリジナルデータについて、タグ定義情報に定義された所定のタグが記述されている記述部分や、タグが記述されている全ての記述部分を変換対象として、それらの記述部分を一意に識別する為の識別情報(ID)を付加する。
【0012】
前記IDの付加の際には、当該オリジナルデータの中でユニークとなるコードであるユニークコードを生成した後、そのユニークコードに対して各タグ毎に異なる番号を追加したコードを前記IDとしたり、当該オリジナルデータの中でユニークとなるコードであるユニークコードを各タグ毎に生成して前記IDとし、当該記述部分に付加する。
【0013】
そして、前記IDの付加されたXMLデータをHTML等の第2の記述言語で記述された第2のデータに変換する際に、前記IDを、第2の記述言語で当該記述部分を一意に識別する為の属性情報、例えばHTMLのINPUTタグのNAME属性に変換する。
【0014】
前記の様に本発明では、XMLからHTMLへの変換等、第1の記述言語から第2の記述言語への記述言語の変換を行う際に、変換対象を一意に識別する為の識別情報を付加して記述言語の変換を行うので、XMLデータをHTTPによって送信した場合のデータの一意性を保証することが可能であり、WEBブラウザ等より入力されたデータを変換前のXMLデータのタグとマッピングさせることができる。
以上の様に本発明の記述言語変換システムによれば、第1の記述言語の記述部分を第2の記述言語で一意に識別される記述に変換することが可能である。
【0015】
【発明の実施の形態】
(実施形態1)
以下にユーザが指定した所定のタグにのみIDを付加して属性値を設定する実施形態1の記述言語変換システムについて説明する。
【0016】
図1は本実施形態の記述言語変換システムのシステム構成を示す図である。本実施形態では、クライアントWWW(World Wide Web)ブラウザ1000とXML−HTML変換装置1100とがネットワーク1200で接続されており、これらとスタンドアロンで機能するタグ識別ID付加装置1300とで構成している。なお、これらの装置は、計算機や情報処理装置、またはその様な処理を実施するプログラムやオブジェクトでも良い。
【0017】
タグ識別ID付加装置1300は、XML−HTML変換を行う際に利用するタグを一意に識別する為のIDをオリジナルXMLデータ1301に付加する装置であり、同一タグを識別する為に、ユーザが定義したタグ定義情報1302を読み込む属性情報読込み部1303と、オリジナルXMLデータ1301やタグ情報格納装置1306と連携し、タグ識別IDを付加したXMLデータ1308を生成するタグ識別ID設定部1304と、タグ識別ID設定部1304により生成したXMLデータ1308の登録処理を行う付加データ登録部1307からなる。
【0018】
タグ識別ID付加装置1300を、前記各処理部として機能させる為のプログラムは、CD−ROM等の記録媒体に記録され磁気ディスク等に格納された後、メモリにロードされて実行されるものとする。なお前記プログラムを記録する記録媒体はCD−ROM以外の他の記録媒体でも良い。また前記プログラムを当該記録媒体から情報処理装置にインストールして使用しても良いし、ネットワークを通じて当該記録媒体にアクセスして前記プログラムを使用するものとしても良い。
【0019】
オリジナルXMLデータ1301は、タグ識別IDを付加する前のオリジナルのXMLデータ、すなわちXMLで記述されたデータであり、タグ定義情報1302は、同一タグを識別する必要のあるタグをオリジナルXMLデータ1301より抽出したタグリストである。
【0020】
属性情報読込み部1303は、タグ定義情報1302を行単位に読み込み、タグ識別ID設定部1304にタグ識別IDを付加するタグ名を渡す。
タグ識別ID設定部1304は、オリジナルXMLデータ1301を読み込み、属性情報読込み部1303にアクセスし、タグ定義情報1302を取得し、ユニークコード生成部1305より生成したユニークコードにシーケンシャルな正の整数を追加してユニークコードを生成し、オリジナルXMLデータ1301に設定する処理を行う。この時使用するユニークコードと現在のシーケンシャル番号(カレントタグID)をタグ情報格納装置1306で保持して管理する。
【0021】
ユニークコード生成部1305は、用いるオリジナルXMLデータ1301の中でユニークになるタグ名をユニークコードとして生成する。
タグ情報格納装置1306は、タグ識別ID設定部1304において、オリジナルXMLデータ1301にユニークコードを設定する際、ユニークコードを保持する為の状態管理データベースである。
付加データ登録部1307は、タグ識別ID設定部1304にて生成したタグ識別ID付きXMLデータ1308をXML−HTML変換装置1100内のXMLデータ登録装置1101に登録する処理を行う。
【0022】
XML−HTML変換装置1100は、タグ識別ID設定部1304により生成されたXMLデータ1308を保持するXMLデータ登録装置1101と、XMLデータ登録装置1101よりXMLデータ1102を取得するXMLデータ取得部1103と、XMLデータ取得部1103にて取得したXMLデータ1102を用いてHTML変換を行うHTML変換部1104と、HTML変換したデータをHTTPを用いてクライアントWWWブラウザ1000へ送信する画面表示データ送信部1105と、クライアントWWWブラウザ1000より入力されたデータを受け付ける入力データ取得部1106と、入力データ取得部1106より受け取ったHTTPリクエストをXMLデータにマッピングする入力データ編集部1107と、マッピングしたXMLデータ1109をXMLデータ登録装置へ格納する編集データ登録部1108からなる。
【0023】
XML−HTML変換装置1100を、前記各処理部として機能させる為のプログラムは、CD−ROM等の記録媒体に記録され磁気ディスク等に格納された後、メモリにロードされて実行されるものとする。なお前記プログラムを記録する記録媒体はCD−ROM以外の他の記録媒体でも良い。また前記プログラムを当該記録媒体から情報処理装置にインストールして使用しても良いし、ネットワークを通じて当該記録媒体にアクセスして前記プログラムを使用するものとしても良い。
【0024】
XMLデータ登録装置1101は、WEBアプリケーションプログラムにおいて操作対象となるXMLデータ1102の登録/更新を行うデータベースである。
XMLデータ取得部1103は、XMLデータ登録装置1101より、XMLデータ1102を取得する処理を行う。
【0025】
HTML変換部1104は、XMLデータ取得部1103より取得したXMLデータ1102を用いて、タグ識別IDが設定しているタグについて、属性値をNAME属性として設定し、それ以外のタグについては、そのタグ名をNAME属性として設定するXML−HTML変換処理を行う。
【0026】
画面表示データ送信部1105は、HTML変換部1104にて生成したHTMLデータ1201をHTTPにてクライアントWWWブラウザ1000へ送信する。
入力データ取得部1106は、クライアントWWWブラウザ1000より入力したリクエストを「NAME:VALUE」形式で受け取る処理を行う。
【0027】
入力データ編集部1107は、入力データ取得部1106より受け取ったリクエストを、クライアントWWWブラウザ1000へ送信前の図1のXMLデータ1102にマージする処理を行う。入力データとXMLデータ内のタグとのマッピングを行う際の検索キーは、タグ名による検索とタグ識別IDである”xid”属性とし、ヒットしたタグ名、又はヒットした属性値に対応するXMLタグの値に前記入力データを設定する。
編集データ登録部1108は、入力データ編集部1107よりマージ処理を行ったXMLデータ1109をXMLデータ登録装置1101に登録する処理を行う。
【0028】
図2は本実施形態のオリジナルXMLデータ1301の例を示す図である。図2のオリジナルXMLデータ1301では、Orderタグをルートタグとして、linenumberタグ、addressタグ、kindタグ、productタグの子タグで構成され、productタグは、更にlinenumberタグ、itemタグ、moneyタグの親タグとなるXMLデータの例を表している。<?xml version=”1.0” encording=”Shift_JIS”>は、XML宣言であり、Orderタグ、productタグ以外は、タグ内にタグ以外のテキストデータを持つタグである。
【0029】
また、クライアントWWWブラウザ1000に表示する際、HTMLのINPUTタグとして変換するXMLタグにおいて、同一タグとなる可能性のあるタグのリストをタグ定義情報1302に記述する。
本実施形態では、同一タグが存在するものはタグを識別する為に全てIDを付加することとする。この場合、タグ定義情報1302は「linenumber、product、item、money」の4つのタグが該当することとなる。
【0030】
図3は本実施形態のタグ情報格納装置1306のテーブル構成を示す図である。図3の様にタグ名称301には、キー項目であるユニークコードを格納し、カレントタグID302には、同一タグを一意に割り当てる為の補助データとして正の整数値を保持する。
タグ名称301に挿入されるユニークコードとは、取り扱うオリジナルXMLデータ1301のタグの中でユニークになる値であれば良い。
【0031】
本実施形態では、世の中で一般的なユニークコード生成ツールを使用して生成した値“2CBC706B−29F1−45e2−AB6D−93E5639FD7F6”を用いる。このユニークコード生成ツールは、「乱数発生器」「現在の日付と時刻」「利用コンピュータのネットワークアドレス(ネットワークアドレスが無いときは無作為な6バイトが生成される)」等といった情報を元に、世界で唯一つのIDを生成するものである。
【0032】
また、カレントタグID302には、初期値を1として、同一タグがヒットする度にカウントアップしていく値を用いる仕様とする。本実施形態において、カレントタグID302が10の場合には、図2のオリジナルXMLデータ1301にてユニークコード設定処理を9回実施した後の状態を表している。
【0033】
図7は本実施形態のタグ識別ID付加装置1300においてタグ識別ID属性を付加する処理の処理手順を示すフローチャートである。処理ステップ701では、ユニークコード生成部1305によりタグを一意に特定する為のユニークコード“2CBC706B−29F1−45e2−AB6D−93E5639FD7F6”を取得し、分岐702へ進む。
【0034】
分岐702では、オリジナルXMLデータ1301とタグ名の重複があるかどうかを判定し、重複する場合には、処理ステップ701へ進み、再度ユニークコードの取得を行う。重複しない場合には、そのユニークコードを図3のタグ情報格納装置1306のタグ名称301に格納し、処理ステップ703へ進む。
処理ステップ703では、タグ定義情報1302を行単位に読込む処理を行う。図2のタグ定義情報1302では、linenumber,product,item,moneyの順で読み込まれる。
【0035】
分岐704では、処理ステップ703において、タグ定義情報1302が存在し、タグの情報が読み込まれているかどうかの判定を行い、タグの情報が読み込まれている場合には処理ステップ705へ進む。また読み込まれたタグの情報が存在しない場合には、タグ識別ID設定処理を終了する。
処理ステップ705では、タグ定義情報1302より取得したタグ名をキーとしてオリジナルXMLデータ1301を検索する。
【0036】
分岐706では、オリジナルXMLデータ1301の中に処理ステップ705にて指定したタグがヒットするかどうかの判定を行い、ヒットする場合には処理ステップ707へ進む。ヒットしない場合には分岐704へ戻り、タグ定義情報1302より次の指定タグにおける判定を行う。
処理ステップ707では、タグ情報格納装置1306よりタグ名称301とカレントタグID302を取得する。
【0037】
処理ステップ708では、処理ステップ707にて取得したタグ名称301の“2CBC706B−29F1−45e2−AB6D−93E5639FD7F6”と、カレントタグID302の“n(正の整数値、初期値=1)”を結合させ、オリジナルXMLデータ1301の属性値へ設定する為のユニークなタグ識別ID“2CBC706B−29F1−45e2−AB6D−93E5639FD7F6+n(正の整数値、初期値=1)”を生成する。
【0038】
処理ステップ709では、処理ステップ708にて生成したIDを属性名”xid”として設定する。このタグ識別ID名”xid”は、取り扱うXMLデータの属性値としてユニークになる名前であれば良い。
処理ステップ710では、図3のタグ情報格納装置1306におけるカレントタグID302をカウントアップして格納する。以降、処理ステップ706へ進み、同様の処理を繰り返す。
【0039】
図4は本実施形態のタグ識別ID設定済みXMLデータ1308の例を示す図である。図4に示す様にXML文書内にて同一タグとなるタグ名linenumberタグ、productタグ、itemタグ、moneyタグについてのみ”xid”属性が設定されていることが分かる。
【0040】
最初のlinenumberタグの”xid”属性を”2CBC706B−29F1−45e2−AB6D−93E5639FD7F61”として、次のlinenumberタグの”xid”属性が”2CBC706B−29F1−45e2−AB6D−93E5639FD7F62”、その次のlinenumberタグの”xid”属性が”2CBC706B−29F1−45e2−AB6D−93E5639FD7F63”の様に、linenumberタグが存在する間、”xid”属性にユニークコード(2CBC706B−29F1−45e2−AB6D−93E5639FD7F6)+n(正の整数値、初期値=1)の様にnをシーケンシャルにカウントアップして設定し、順次productタグ、itemタグ、moneyタグと実施する。
【0041】
その結果、図2のタグ定義情報1302の2番目に登場する最初のproductタグの”xid”属性は、”2CBC706B−29F1−45e2−AB6D−93E5639FD7F64”、次のproductタグの”xid”属性は、”2CBC706B−29F1−45e2−AB6D−93E5639FD7F65”、図2のタグ定義情報1302の3番目に登場する最初のitemタグの”xid”属性は、”2CBC706B−29F1−45e2−AB6D−93E5639FD7F66”、次のitemタグの”xid”属性は、”2CBC706B−29F1−45e2−AB6D−93E5639FD7F67”、図2のタグ定義情報1302の4番目に登場する最初のmoneyタグの”xid”属性は”2CBC706B−29F1−45e2−AB6D−93E5639FD7F68”、次のmoneyタグの”xid”属性は”2CBC706B−29F1−45e2−AB6D−93E5639FD7F69”となる。
【0042】
図5は本実施形態のXMLデータ登録装置1101のテーブル構成を示す図である。図5に示す様にXMLデータ登録装置1101では、図1の付加データ登録部1307により登録されたタグ識別設定済みXMLデータ501を管理している。
【0043】
図8は本実施形態のXML−HTML変換装置1100においてタグ識別ID設定済みXMLデータ1102をXMLデータ登録装置1101より取得して画面表示する処理の処理手順を示すフローチャートである。処理ステップ801では、XMLデータ取得部1103においてXMLデータ登録装置1101より図5のXMLデータ501を取得する。
【0044】
分岐802では、HTML変換部1104にてXMLデータ501中にタグ識別ID”xid”が存在するかどうかを判断し、存在する場合には処理ステップ803へ進み、存在しない場合には処理ステップ804へ進む。
【0045】
処理ステップ803では、HTML変換方法として、”xid”属性をHTMLのNAME属性として設定する変換を行う。以降、分岐802へ進み、XMLデータ501中の”xid”属性が存在する間は処理を実行する。但し、本実施形態では、テキストデータを含まないタグ(productタグ)をINPUTタグとしないこととする為、NAME属性の設定対象となるタグは、linenumberタグ、itemタグ、moneyタグとなる。
【0046】
処理ステップ804では、”xid”属性の付いていないタグにおいて、INPUTタグとなる場合、XMLのタグ名称をそのままINPUTタグのNAME属性に設定する(addressタグ、kindタグ)。処理ステップ805では、生成したHTMLデータ1201を画面表示データ送信部1105においてクライアントWWWブラウザ1000へ送信する。
【0047】
図6は本実施形態のHTML変換した場合のコード例と画面イメージ例を示す図である。図6では、HTML変換したコード例の中に、1つ目のlinenumberタグがname=”2CBC706B−29F1−45e2−AB6D−93E5639FD7F61”、2つ目のlinenumberタグがname=”2CBC706B−29F1−45e2−AB6D−93E5639FD7F62”、3つ目のlinenumberタグがname=”2CBC706B−29F1−45e2−AB6D−93E5639FD7F63”、1つ目のitemタグがname=”2CBC706B−29F1−45e2−AB6D−93E5639FD7F66”、2つ目のitemタグがname=”2CBC706B−29F1−45e2−AB6D−93E5639FD7F67”、1つ目のmoneyタグがname=”2CBC706B−29F1−45e2−AB6D−93E5639FD7F68”、2つ目のmoneyタグがname=”2CBC706B−29F1−45e2−AB6D−93E5639FD7F69”となる様に、タグの階層構造を無視し、全てのINPUTタグがユニークになる様にNAME属性を割り当てている。
【0048】
この様にHTML変換を行うことで、図6の画面イメージ601の様にlinenumberという入力エリアが複数ある場合でも、どのタグに対する入力データであるかをXML−HTML変換装置1100において判別可能となる。但し、本実施形態では、”xid”属性が付いているタグでも、データを持たない親タグとなっている場合にはHTML変換を行う際に、INPUTタグとしない仕様としている(productタグ)。
【0049】
図9は本実施形態のクライアントWWWブラウザ1000より入力されたデータをXML−HTML変換装置1100へ送信し、XMLデータ登録装置1101に登録する処理の処理手順を示すフローチャートである。処理ステップ901では、クライアントWWWブラウザ1000より入力されたリクエストをHTTPにてXML−HTML変換装置1100へ送信する。
処理ステップ902では、XML−HTML変換装置1100の入力データ取得部1106にてHTTPリクエストを取得する。
【0050】
処理ステップ903では、処理ステップ902にて受け取ったHTTPリクエストをそれぞれのXMLタグへマッピングする処理を行い、XMLデータの更新を行ってXMLデータ1109を作成する。受け取ったリクエストのNAMEが、タグ名に存在するものと、ユニークなIDを割り当てた”xid”属性の値に存在するものとがあるが、送られてくるNAMEは全てユニークである為、タグ名称をキーとした検索及び、”xid”属性をキーとした属性値による検索を順次実施することで該当するXMLデータタグへのマッピングが可能となる。
処理ステップ904では、処理ステップ903にて作成したXMLデータ1109をXMLデータ登録装置1101に格納する。
【0051】
この様に、クライアントWWWブラウザ1000とXML−HTML変換装置1100間にてXMLデータの属性値を事前に編集することで、異なるXMLデータにおいて同一タグを含む場合においても、XMLデータ処理を可能とし、様々なXMLデータフォーマットに対応して、XML−HTML変換装置1100内のWEBサービスを提供するプログラムを修正することなく、WEBアプリケーションプログラムを実現することができる。
【0052】
本実施形態では、タグ属性の設定方法として、XMLのタグを一意に識別する為に、ユニークコード生成部1305より一度だけユニークな値を生成し、その生成したユニークコードにシーケンシャルな番号を加えることでユニークな値とする例について説明したが、毎回ユニークな値をユニークコード生成部1305より生成する方法としても良い。
【0053】
また、同一タグとなる可能性のあるタグのリストをタグ定義情報1302に全て記述しているが、HTML変換を行う際に、INPUTタグとして生成する可能性のあるタグリストのみをタグ定義情報1302に定義する方法としても良い。
【0054】
以上説明した様に本実施形態の記述言語変換システムによれば、変換対象を一意に識別する為の識別情報を付加して第1の記述言語から第2の記述言語への変換を行うので、第1の記述言語の記述部分を第2の記述言語で一意に識別される記述に変換することが可能である。
【0055】
(実施形態2)
以下にXMLデータ内の全てのタグにユニークな”xid”属性を割り当てる実施形態2の記述言語変換システムについて説明する。
【0056】
図10は本実施形態のXMLデータ内の全てのタグにユニークな属性値を設定する場合のシステム構成を示す図である。本実施形態のタグ識別ID付加装置α2300は、XMLで記述されたタグ識別ID付加前のオリジナルXMLデータ1301を読み込み、ユニークコード生成部1305を用いてオリジナルXMLデータ1301の全てのタグにユニークコードを属性名”xid”として設定するタグ識別ID設定部α2301と、タグ識別ID設定済みXMLデータ1308をXMLデータ登録装置1101へ登録する付加データ登録部1307からなる。
【0057】
タグ識別ID付加装置α2300を、前記各処理部として機能させる為のプログラムは、CD−ROM等の記録媒体に記録され磁気ディスク等に格納された後、メモリにロードされて実行されるものとする。なお前記プログラムを記録する記録媒体はCD−ROM以外の他の記録媒体でも良い。また前記プログラムを当該記録媒体から情報処理装置にインストールして使用しても良いし、ネットワークを通じて当該記録媒体にアクセスして前記プログラムを使用するものとしても良い。
【0058】
また本実施形態では、クライアントWWWブラウザ1000とXML−HTML変換装置1100がネットワーク1200で接続されており、この点については図1のシステム構成と相違点は無い。
【0059】
実施形態1で用いた図1のタグ識別ID付加装置1300と比較して、タグ識別ID付加装置α2300は、タグ定義情報1302と、属性情報読込み部1303と、タグ情報格納装置1306が除かれ、タグ識別ID設定部1304をタグ識別ID設定部α2301に変更している。
【0060】
タグ識別ID設定部α2301は、オリジナルXMLデータ1301を読み込み、ユニークコード生成部1305より取得したユニークコードを全てのタグに設定する処理を行う。図2のオリジナルXMLデータ1301を用いる場合には、Orderタグ、linenumberタグ、addressタグ、kindタグ、productタグ、itemタグ、moneyタグの様に全てのタグにユニークコードを設定する。また付加データ登録部1307の機能は図1の機能と同等であるものとする。
【0061】
図10のXML−HTML変換装置1100は、図1と基本的に同等の機能を有するが、HTML変換部1104においては、XMLデータ登録装置1101より取得したタグ識別ID設定済みXMLデータ1102には、全てのタグに”xid”属性が設定されていることから、XMLタグをNAME属性に設定する処理は実行されない為、この処理を省いても良い。
また、入力データ編集部1107の処理において、XMLタグ名を検索キーとしたマージ処理も”xid”属性による検索のみでマージ処理を完了することができる為、省いても良い。
【0062】
この様に、全てのXMLタグにタグ識別ID”xid”を付加することで、XML−HTML変換装置1100におけるHTML生成処理や、XMLマージ処理では、図1と比較して上述した機能を簡易化させても良い。その他の機能は、実施形態1で用いたものと同様である。
また、図1及び図10のXMLデータ登録装置1101や図1のタグ情報格納装置1306はデータベースやファイル等を静的に保持できる装置であれば良い。
【0063】
図11は本実施形態のタグ識別ID付加装置α2300のオリジナルXMLデータ1301にタグ識別IDを付加する処理の処理手順を示すフローチャートである。処理ステップ750では、図10のオリジナルXMLデータ1301を読み込み、分岐751へ進む。
【0064】
分岐751では、読み込んだオリジナルXMLデータ1301にタグが存在するかどうかを判定し、存在する場合には処理ステップ752へ進み、存在しない場合には処理を終了する。
【0065】
処理ステップ752では、ユニークコード生成部1305よりタグを一意に特定する為のユニークコードの取得を行い、分岐753へ進む。
分岐753では、取得したユニークコードがオリジナルXMLデータ1301のタグと重複しているものが存在するかどうかを判断し、重複するものが一つでも存在する場合には処理ステップ752へ進み、ユニークコードの再取得を行う。重複するものが存在しない場合には、ユニークコードを”xid”属性として設定し、分岐751へ戻り、次のオリジナルXMLデータ1301中のタグに対する判定を行う。
【0066】
以上説明した様に本実施形態の記述言語変換システムによれば、変換対象を一意に識別する為の識別情報を付加して第1の記述言語から第2の記述言語への変換を行うので、第1の記述言語の記述部分を第2の記述言語で一意に識別される記述に変換することが可能である。
【0067】
【発明の効果】
本発明によれば、第1の記述言語の記述部分を第2の記述言語で一意に識別される記述に変換することが可能である。
【図面の簡単な説明】
【図1】実施形態1の記述言語変換システムのシステム構成を示す図である。
【図2】実施形態1のオリジナルXMLデータ1301の例を示す図である。
【図3】実施形態1のタグ情報格納装置1306のテーブル構成を示す図である。
【図4】実施形態1のタグ識別ID設定済みXMLデータ1308の例を示す図である。
【図5】実施形態1のXMLデータ登録装置1101のテーブル構成を示す図である。
【図6】実施形態1のHTML変換した場合のコード例と画面イメージ例を示す図である。
【図7】実施形態1のタグ識別ID付加装置1300においてタグ識別ID属性を付加する処理の処理手順を示すフローチャートである。
【図8】実施形態1のXML−HTML変換装置1100においてタグ識別ID設定済みXMLデータ1102をXMLデータ登録装置1101より取得して画面表示する処理の処理手順を示すフローチャートである。
【図9】実施形態1のクライアントWWWブラウザ1000より入力されたデータをXML−HTML変換装置1100へ送信し、XMLデータ登録装置1101に登録する処理の処理手順を示すフローチャートである。
【図10】実施形態2のXMLデータ内の全てのタグにユニークな属性値を設定する場合のシステム構成を示す図である。
【図11】実施形態2のタグ識別ID付加装置α2300のオリジナルXMLデータ1301にタグ識別IDを付加する処理の処理手順を示すフローチャートである。
【符号の説明】
1000…クライアントWWWブラウザ、1100…XML−HTML変換装置、1101…XMLデータ登録装置、1102…XMLデータ、1103…XMLデータ取得部、1104…HTML変換部、1105…画面表示データ送信部、1106…入力データ取得部、1107…入力データ編集部、1108…編集データ登録部、1109…XMLデータ、1200…ネットワーク、1201…HTMLデータ、1300…タグ識別ID付加装置、1301…オリジナルXMLデータ、1302…タグ定義情報、1303…属性情報読込み部、1304…タグ識別ID設定部、1305…ユニークコード生成部、1306…タグ情報格納装置、1307…付加データ登録部、1308…XMLデータ、301…タグ名称、302…カレントタグID、501…XMLデータ、601…画面イメージ、2300…タグ識別ID付加装置α、2301…タグ識別ID設定部α。
【発明の属する技術分野】
本発明は所定の記述言語で記述されたデータを他の記述言語のデータに変換する記述言語変換技術に関するものである。
【0002】
【従来の技術】
XML(eXtensible Markup Language)を用いて動的にHTML(Hyper Text Markup Language)を作成する方法として、XMLタグ名称をHTMLのINPUTタグのNAME属性に設定する方法がある(例えば非特許文献1参照)。
【0003】
この方法では、XSLT(eXtensible Stylesheet Language Transformations)スタイルシートを用いてXMLからHTMLへ変換しており、XSLTスタイルシートでは、Xpath関数であるname()を用いてノード名を取得し、属性値テンプレートであるxsl:attributeを組み合わせて利用することで、HTML変換を行う際に、HTMLのNAME属性としてXMLタグ名を設定することができる。
【0004】
また、関連の技術としては、XMLデータに様々なアプリケーションプログラムで使用する要素や属性を混在させて使うことができる技術として、「名前空間」という規格がある。これは、名前空間接頭辞をタグ名に付けることで、同一名称のタグを一意に扱うことができる様な仕組みである。一般的に、複数のDTD(Document Type Definition)を用いる環境において、タグ名の衝突を避ける為の仕組みでもある(例えば非特許文献1参照)。
【0005】
【非特許文献1】
http://www.w3.org/TR/REC−xml−names/「Namespace in XML」
【0006】
【発明が解決しようとする課題】
しかし、上記の様にHTML変換を行う際のINPUTタグのNAME属性としてXMLタグ名を設定する場合、同一のXMLタグ名が他にも存在していると、NAME属性には同一のものが作成されてしまう為、HTMLのフォーム内においてHTTP(Hyper Text Transfer Protocol)リクエストを送信した際、送信される「NAME:VALUE」形式のデータの区別をすることができない。
【0007】
従って、上記問題を解決する為には、XML−HTML変換を行う際に、同一タグが存在するデータについてはフォームを分けて別々にリクエストを発行するか、リクエストを発行する前処理として同一タグの存在するデータについて検索し、それぞれ固有のNAME属性を設定してリクエストを発行する必要がある。
【0008】
また、上記のXMLの標準規格である「名前空間」を利用する場合では、名前空間宣言の指定やXMLタグ名そのものを変換することになる為、様々な形式(フォーマット)のXMLデータを扱う場合、変換処理を実装するアプリケーションプログラムのコードが複雑になり、個々に変換プログラムを作成する必要がある為、開発コストが増大する。
【0009】
本発明の目的は上記問題を解決し、第1の記述言語の記述部分を第2の記述言語で一意に識別される記述に変換することが可能な技術を提供することにある。
【0010】
【課題を解決するための手段】
本発明は、第1の記述言語で記述された第1のデータを第2の記述言語で記述された第2のデータに変換する記述言語変換システムにおいて、変換対象を一意に識別する為の識別情報を付加して第1の記述言語から第2の記述言語への変換を行うものである。
【0011】
本発明の記述言語変換システムでは、XML等の第1の記述言語で記述された第1のデータであるオリジナルデータについて、タグ定義情報に定義された所定のタグが記述されている記述部分や、タグが記述されている全ての記述部分を変換対象として、それらの記述部分を一意に識別する為の識別情報(ID)を付加する。
【0012】
前記IDの付加の際には、当該オリジナルデータの中でユニークとなるコードであるユニークコードを生成した後、そのユニークコードに対して各タグ毎に異なる番号を追加したコードを前記IDとしたり、当該オリジナルデータの中でユニークとなるコードであるユニークコードを各タグ毎に生成して前記IDとし、当該記述部分に付加する。
【0013】
そして、前記IDの付加されたXMLデータをHTML等の第2の記述言語で記述された第2のデータに変換する際に、前記IDを、第2の記述言語で当該記述部分を一意に識別する為の属性情報、例えばHTMLのINPUTタグのNAME属性に変換する。
【0014】
前記の様に本発明では、XMLからHTMLへの変換等、第1の記述言語から第2の記述言語への記述言語の変換を行う際に、変換対象を一意に識別する為の識別情報を付加して記述言語の変換を行うので、XMLデータをHTTPによって送信した場合のデータの一意性を保証することが可能であり、WEBブラウザ等より入力されたデータを変換前のXMLデータのタグとマッピングさせることができる。
以上の様に本発明の記述言語変換システムによれば、第1の記述言語の記述部分を第2の記述言語で一意に識別される記述に変換することが可能である。
【0015】
【発明の実施の形態】
(実施形態1)
以下にユーザが指定した所定のタグにのみIDを付加して属性値を設定する実施形態1の記述言語変換システムについて説明する。
【0016】
図1は本実施形態の記述言語変換システムのシステム構成を示す図である。本実施形態では、クライアントWWW(World Wide Web)ブラウザ1000とXML−HTML変換装置1100とがネットワーク1200で接続されており、これらとスタンドアロンで機能するタグ識別ID付加装置1300とで構成している。なお、これらの装置は、計算機や情報処理装置、またはその様な処理を実施するプログラムやオブジェクトでも良い。
【0017】
タグ識別ID付加装置1300は、XML−HTML変換を行う際に利用するタグを一意に識別する為のIDをオリジナルXMLデータ1301に付加する装置であり、同一タグを識別する為に、ユーザが定義したタグ定義情報1302を読み込む属性情報読込み部1303と、オリジナルXMLデータ1301やタグ情報格納装置1306と連携し、タグ識別IDを付加したXMLデータ1308を生成するタグ識別ID設定部1304と、タグ識別ID設定部1304により生成したXMLデータ1308の登録処理を行う付加データ登録部1307からなる。
【0018】
タグ識別ID付加装置1300を、前記各処理部として機能させる為のプログラムは、CD−ROM等の記録媒体に記録され磁気ディスク等に格納された後、メモリにロードされて実行されるものとする。なお前記プログラムを記録する記録媒体はCD−ROM以外の他の記録媒体でも良い。また前記プログラムを当該記録媒体から情報処理装置にインストールして使用しても良いし、ネットワークを通じて当該記録媒体にアクセスして前記プログラムを使用するものとしても良い。
【0019】
オリジナルXMLデータ1301は、タグ識別IDを付加する前のオリジナルのXMLデータ、すなわちXMLで記述されたデータであり、タグ定義情報1302は、同一タグを識別する必要のあるタグをオリジナルXMLデータ1301より抽出したタグリストである。
【0020】
属性情報読込み部1303は、タグ定義情報1302を行単位に読み込み、タグ識別ID設定部1304にタグ識別IDを付加するタグ名を渡す。
タグ識別ID設定部1304は、オリジナルXMLデータ1301を読み込み、属性情報読込み部1303にアクセスし、タグ定義情報1302を取得し、ユニークコード生成部1305より生成したユニークコードにシーケンシャルな正の整数を追加してユニークコードを生成し、オリジナルXMLデータ1301に設定する処理を行う。この時使用するユニークコードと現在のシーケンシャル番号(カレントタグID)をタグ情報格納装置1306で保持して管理する。
【0021】
ユニークコード生成部1305は、用いるオリジナルXMLデータ1301の中でユニークになるタグ名をユニークコードとして生成する。
タグ情報格納装置1306は、タグ識別ID設定部1304において、オリジナルXMLデータ1301にユニークコードを設定する際、ユニークコードを保持する為の状態管理データベースである。
付加データ登録部1307は、タグ識別ID設定部1304にて生成したタグ識別ID付きXMLデータ1308をXML−HTML変換装置1100内のXMLデータ登録装置1101に登録する処理を行う。
【0022】
XML−HTML変換装置1100は、タグ識別ID設定部1304により生成されたXMLデータ1308を保持するXMLデータ登録装置1101と、XMLデータ登録装置1101よりXMLデータ1102を取得するXMLデータ取得部1103と、XMLデータ取得部1103にて取得したXMLデータ1102を用いてHTML変換を行うHTML変換部1104と、HTML変換したデータをHTTPを用いてクライアントWWWブラウザ1000へ送信する画面表示データ送信部1105と、クライアントWWWブラウザ1000より入力されたデータを受け付ける入力データ取得部1106と、入力データ取得部1106より受け取ったHTTPリクエストをXMLデータにマッピングする入力データ編集部1107と、マッピングしたXMLデータ1109をXMLデータ登録装置へ格納する編集データ登録部1108からなる。
【0023】
XML−HTML変換装置1100を、前記各処理部として機能させる為のプログラムは、CD−ROM等の記録媒体に記録され磁気ディスク等に格納された後、メモリにロードされて実行されるものとする。なお前記プログラムを記録する記録媒体はCD−ROM以外の他の記録媒体でも良い。また前記プログラムを当該記録媒体から情報処理装置にインストールして使用しても良いし、ネットワークを通じて当該記録媒体にアクセスして前記プログラムを使用するものとしても良い。
【0024】
XMLデータ登録装置1101は、WEBアプリケーションプログラムにおいて操作対象となるXMLデータ1102の登録/更新を行うデータベースである。
XMLデータ取得部1103は、XMLデータ登録装置1101より、XMLデータ1102を取得する処理を行う。
【0025】
HTML変換部1104は、XMLデータ取得部1103より取得したXMLデータ1102を用いて、タグ識別IDが設定しているタグについて、属性値をNAME属性として設定し、それ以外のタグについては、そのタグ名をNAME属性として設定するXML−HTML変換処理を行う。
【0026】
画面表示データ送信部1105は、HTML変換部1104にて生成したHTMLデータ1201をHTTPにてクライアントWWWブラウザ1000へ送信する。
入力データ取得部1106は、クライアントWWWブラウザ1000より入力したリクエストを「NAME:VALUE」形式で受け取る処理を行う。
【0027】
入力データ編集部1107は、入力データ取得部1106より受け取ったリクエストを、クライアントWWWブラウザ1000へ送信前の図1のXMLデータ1102にマージする処理を行う。入力データとXMLデータ内のタグとのマッピングを行う際の検索キーは、タグ名による検索とタグ識別IDである”xid”属性とし、ヒットしたタグ名、又はヒットした属性値に対応するXMLタグの値に前記入力データを設定する。
編集データ登録部1108は、入力データ編集部1107よりマージ処理を行ったXMLデータ1109をXMLデータ登録装置1101に登録する処理を行う。
【0028】
図2は本実施形態のオリジナルXMLデータ1301の例を示す図である。図2のオリジナルXMLデータ1301では、Orderタグをルートタグとして、linenumberタグ、addressタグ、kindタグ、productタグの子タグで構成され、productタグは、更にlinenumberタグ、itemタグ、moneyタグの親タグとなるXMLデータの例を表している。<?xml version=”1.0” encording=”Shift_JIS”>は、XML宣言であり、Orderタグ、productタグ以外は、タグ内にタグ以外のテキストデータを持つタグである。
【0029】
また、クライアントWWWブラウザ1000に表示する際、HTMLのINPUTタグとして変換するXMLタグにおいて、同一タグとなる可能性のあるタグのリストをタグ定義情報1302に記述する。
本実施形態では、同一タグが存在するものはタグを識別する為に全てIDを付加することとする。この場合、タグ定義情報1302は「linenumber、product、item、money」の4つのタグが該当することとなる。
【0030】
図3は本実施形態のタグ情報格納装置1306のテーブル構成を示す図である。図3の様にタグ名称301には、キー項目であるユニークコードを格納し、カレントタグID302には、同一タグを一意に割り当てる為の補助データとして正の整数値を保持する。
タグ名称301に挿入されるユニークコードとは、取り扱うオリジナルXMLデータ1301のタグの中でユニークになる値であれば良い。
【0031】
本実施形態では、世の中で一般的なユニークコード生成ツールを使用して生成した値“2CBC706B−29F1−45e2−AB6D−93E5639FD7F6”を用いる。このユニークコード生成ツールは、「乱数発生器」「現在の日付と時刻」「利用コンピュータのネットワークアドレス(ネットワークアドレスが無いときは無作為な6バイトが生成される)」等といった情報を元に、世界で唯一つのIDを生成するものである。
【0032】
また、カレントタグID302には、初期値を1として、同一タグがヒットする度にカウントアップしていく値を用いる仕様とする。本実施形態において、カレントタグID302が10の場合には、図2のオリジナルXMLデータ1301にてユニークコード設定処理を9回実施した後の状態を表している。
【0033】
図7は本実施形態のタグ識別ID付加装置1300においてタグ識別ID属性を付加する処理の処理手順を示すフローチャートである。処理ステップ701では、ユニークコード生成部1305によりタグを一意に特定する為のユニークコード“2CBC706B−29F1−45e2−AB6D−93E5639FD7F6”を取得し、分岐702へ進む。
【0034】
分岐702では、オリジナルXMLデータ1301とタグ名の重複があるかどうかを判定し、重複する場合には、処理ステップ701へ進み、再度ユニークコードの取得を行う。重複しない場合には、そのユニークコードを図3のタグ情報格納装置1306のタグ名称301に格納し、処理ステップ703へ進む。
処理ステップ703では、タグ定義情報1302を行単位に読込む処理を行う。図2のタグ定義情報1302では、linenumber,product,item,moneyの順で読み込まれる。
【0035】
分岐704では、処理ステップ703において、タグ定義情報1302が存在し、タグの情報が読み込まれているかどうかの判定を行い、タグの情報が読み込まれている場合には処理ステップ705へ進む。また読み込まれたタグの情報が存在しない場合には、タグ識別ID設定処理を終了する。
処理ステップ705では、タグ定義情報1302より取得したタグ名をキーとしてオリジナルXMLデータ1301を検索する。
【0036】
分岐706では、オリジナルXMLデータ1301の中に処理ステップ705にて指定したタグがヒットするかどうかの判定を行い、ヒットする場合には処理ステップ707へ進む。ヒットしない場合には分岐704へ戻り、タグ定義情報1302より次の指定タグにおける判定を行う。
処理ステップ707では、タグ情報格納装置1306よりタグ名称301とカレントタグID302を取得する。
【0037】
処理ステップ708では、処理ステップ707にて取得したタグ名称301の“2CBC706B−29F1−45e2−AB6D−93E5639FD7F6”と、カレントタグID302の“n(正の整数値、初期値=1)”を結合させ、オリジナルXMLデータ1301の属性値へ設定する為のユニークなタグ識別ID“2CBC706B−29F1−45e2−AB6D−93E5639FD7F6+n(正の整数値、初期値=1)”を生成する。
【0038】
処理ステップ709では、処理ステップ708にて生成したIDを属性名”xid”として設定する。このタグ識別ID名”xid”は、取り扱うXMLデータの属性値としてユニークになる名前であれば良い。
処理ステップ710では、図3のタグ情報格納装置1306におけるカレントタグID302をカウントアップして格納する。以降、処理ステップ706へ進み、同様の処理を繰り返す。
【0039】
図4は本実施形態のタグ識別ID設定済みXMLデータ1308の例を示す図である。図4に示す様にXML文書内にて同一タグとなるタグ名linenumberタグ、productタグ、itemタグ、moneyタグについてのみ”xid”属性が設定されていることが分かる。
【0040】
最初のlinenumberタグの”xid”属性を”2CBC706B−29F1−45e2−AB6D−93E5639FD7F61”として、次のlinenumberタグの”xid”属性が”2CBC706B−29F1−45e2−AB6D−93E5639FD7F62”、その次のlinenumberタグの”xid”属性が”2CBC706B−29F1−45e2−AB6D−93E5639FD7F63”の様に、linenumberタグが存在する間、”xid”属性にユニークコード(2CBC706B−29F1−45e2−AB6D−93E5639FD7F6)+n(正の整数値、初期値=1)の様にnをシーケンシャルにカウントアップして設定し、順次productタグ、itemタグ、moneyタグと実施する。
【0041】
その結果、図2のタグ定義情報1302の2番目に登場する最初のproductタグの”xid”属性は、”2CBC706B−29F1−45e2−AB6D−93E5639FD7F64”、次のproductタグの”xid”属性は、”2CBC706B−29F1−45e2−AB6D−93E5639FD7F65”、図2のタグ定義情報1302の3番目に登場する最初のitemタグの”xid”属性は、”2CBC706B−29F1−45e2−AB6D−93E5639FD7F66”、次のitemタグの”xid”属性は、”2CBC706B−29F1−45e2−AB6D−93E5639FD7F67”、図2のタグ定義情報1302の4番目に登場する最初のmoneyタグの”xid”属性は”2CBC706B−29F1−45e2−AB6D−93E5639FD7F68”、次のmoneyタグの”xid”属性は”2CBC706B−29F1−45e2−AB6D−93E5639FD7F69”となる。
【0042】
図5は本実施形態のXMLデータ登録装置1101のテーブル構成を示す図である。図5に示す様にXMLデータ登録装置1101では、図1の付加データ登録部1307により登録されたタグ識別設定済みXMLデータ501を管理している。
【0043】
図8は本実施形態のXML−HTML変換装置1100においてタグ識別ID設定済みXMLデータ1102をXMLデータ登録装置1101より取得して画面表示する処理の処理手順を示すフローチャートである。処理ステップ801では、XMLデータ取得部1103においてXMLデータ登録装置1101より図5のXMLデータ501を取得する。
【0044】
分岐802では、HTML変換部1104にてXMLデータ501中にタグ識別ID”xid”が存在するかどうかを判断し、存在する場合には処理ステップ803へ進み、存在しない場合には処理ステップ804へ進む。
【0045】
処理ステップ803では、HTML変換方法として、”xid”属性をHTMLのNAME属性として設定する変換を行う。以降、分岐802へ進み、XMLデータ501中の”xid”属性が存在する間は処理を実行する。但し、本実施形態では、テキストデータを含まないタグ(productタグ)をINPUTタグとしないこととする為、NAME属性の設定対象となるタグは、linenumberタグ、itemタグ、moneyタグとなる。
【0046】
処理ステップ804では、”xid”属性の付いていないタグにおいて、INPUTタグとなる場合、XMLのタグ名称をそのままINPUTタグのNAME属性に設定する(addressタグ、kindタグ)。処理ステップ805では、生成したHTMLデータ1201を画面表示データ送信部1105においてクライアントWWWブラウザ1000へ送信する。
【0047】
図6は本実施形態のHTML変換した場合のコード例と画面イメージ例を示す図である。図6では、HTML変換したコード例の中に、1つ目のlinenumberタグがname=”2CBC706B−29F1−45e2−AB6D−93E5639FD7F61”、2つ目のlinenumberタグがname=”2CBC706B−29F1−45e2−AB6D−93E5639FD7F62”、3つ目のlinenumberタグがname=”2CBC706B−29F1−45e2−AB6D−93E5639FD7F63”、1つ目のitemタグがname=”2CBC706B−29F1−45e2−AB6D−93E5639FD7F66”、2つ目のitemタグがname=”2CBC706B−29F1−45e2−AB6D−93E5639FD7F67”、1つ目のmoneyタグがname=”2CBC706B−29F1−45e2−AB6D−93E5639FD7F68”、2つ目のmoneyタグがname=”2CBC706B−29F1−45e2−AB6D−93E5639FD7F69”となる様に、タグの階層構造を無視し、全てのINPUTタグがユニークになる様にNAME属性を割り当てている。
【0048】
この様にHTML変換を行うことで、図6の画面イメージ601の様にlinenumberという入力エリアが複数ある場合でも、どのタグに対する入力データであるかをXML−HTML変換装置1100において判別可能となる。但し、本実施形態では、”xid”属性が付いているタグでも、データを持たない親タグとなっている場合にはHTML変換を行う際に、INPUTタグとしない仕様としている(productタグ)。
【0049】
図9は本実施形態のクライアントWWWブラウザ1000より入力されたデータをXML−HTML変換装置1100へ送信し、XMLデータ登録装置1101に登録する処理の処理手順を示すフローチャートである。処理ステップ901では、クライアントWWWブラウザ1000より入力されたリクエストをHTTPにてXML−HTML変換装置1100へ送信する。
処理ステップ902では、XML−HTML変換装置1100の入力データ取得部1106にてHTTPリクエストを取得する。
【0050】
処理ステップ903では、処理ステップ902にて受け取ったHTTPリクエストをそれぞれのXMLタグへマッピングする処理を行い、XMLデータの更新を行ってXMLデータ1109を作成する。受け取ったリクエストのNAMEが、タグ名に存在するものと、ユニークなIDを割り当てた”xid”属性の値に存在するものとがあるが、送られてくるNAMEは全てユニークである為、タグ名称をキーとした検索及び、”xid”属性をキーとした属性値による検索を順次実施することで該当するXMLデータタグへのマッピングが可能となる。
処理ステップ904では、処理ステップ903にて作成したXMLデータ1109をXMLデータ登録装置1101に格納する。
【0051】
この様に、クライアントWWWブラウザ1000とXML−HTML変換装置1100間にてXMLデータの属性値を事前に編集することで、異なるXMLデータにおいて同一タグを含む場合においても、XMLデータ処理を可能とし、様々なXMLデータフォーマットに対応して、XML−HTML変換装置1100内のWEBサービスを提供するプログラムを修正することなく、WEBアプリケーションプログラムを実現することができる。
【0052】
本実施形態では、タグ属性の設定方法として、XMLのタグを一意に識別する為に、ユニークコード生成部1305より一度だけユニークな値を生成し、その生成したユニークコードにシーケンシャルな番号を加えることでユニークな値とする例について説明したが、毎回ユニークな値をユニークコード生成部1305より生成する方法としても良い。
【0053】
また、同一タグとなる可能性のあるタグのリストをタグ定義情報1302に全て記述しているが、HTML変換を行う際に、INPUTタグとして生成する可能性のあるタグリストのみをタグ定義情報1302に定義する方法としても良い。
【0054】
以上説明した様に本実施形態の記述言語変換システムによれば、変換対象を一意に識別する為の識別情報を付加して第1の記述言語から第2の記述言語への変換を行うので、第1の記述言語の記述部分を第2の記述言語で一意に識別される記述に変換することが可能である。
【0055】
(実施形態2)
以下にXMLデータ内の全てのタグにユニークな”xid”属性を割り当てる実施形態2の記述言語変換システムについて説明する。
【0056】
図10は本実施形態のXMLデータ内の全てのタグにユニークな属性値を設定する場合のシステム構成を示す図である。本実施形態のタグ識別ID付加装置α2300は、XMLで記述されたタグ識別ID付加前のオリジナルXMLデータ1301を読み込み、ユニークコード生成部1305を用いてオリジナルXMLデータ1301の全てのタグにユニークコードを属性名”xid”として設定するタグ識別ID設定部α2301と、タグ識別ID設定済みXMLデータ1308をXMLデータ登録装置1101へ登録する付加データ登録部1307からなる。
【0057】
タグ識別ID付加装置α2300を、前記各処理部として機能させる為のプログラムは、CD−ROM等の記録媒体に記録され磁気ディスク等に格納された後、メモリにロードされて実行されるものとする。なお前記プログラムを記録する記録媒体はCD−ROM以外の他の記録媒体でも良い。また前記プログラムを当該記録媒体から情報処理装置にインストールして使用しても良いし、ネットワークを通じて当該記録媒体にアクセスして前記プログラムを使用するものとしても良い。
【0058】
また本実施形態では、クライアントWWWブラウザ1000とXML−HTML変換装置1100がネットワーク1200で接続されており、この点については図1のシステム構成と相違点は無い。
【0059】
実施形態1で用いた図1のタグ識別ID付加装置1300と比較して、タグ識別ID付加装置α2300は、タグ定義情報1302と、属性情報読込み部1303と、タグ情報格納装置1306が除かれ、タグ識別ID設定部1304をタグ識別ID設定部α2301に変更している。
【0060】
タグ識別ID設定部α2301は、オリジナルXMLデータ1301を読み込み、ユニークコード生成部1305より取得したユニークコードを全てのタグに設定する処理を行う。図2のオリジナルXMLデータ1301を用いる場合には、Orderタグ、linenumberタグ、addressタグ、kindタグ、productタグ、itemタグ、moneyタグの様に全てのタグにユニークコードを設定する。また付加データ登録部1307の機能は図1の機能と同等であるものとする。
【0061】
図10のXML−HTML変換装置1100は、図1と基本的に同等の機能を有するが、HTML変換部1104においては、XMLデータ登録装置1101より取得したタグ識別ID設定済みXMLデータ1102には、全てのタグに”xid”属性が設定されていることから、XMLタグをNAME属性に設定する処理は実行されない為、この処理を省いても良い。
また、入力データ編集部1107の処理において、XMLタグ名を検索キーとしたマージ処理も”xid”属性による検索のみでマージ処理を完了することができる為、省いても良い。
【0062】
この様に、全てのXMLタグにタグ識別ID”xid”を付加することで、XML−HTML変換装置1100におけるHTML生成処理や、XMLマージ処理では、図1と比較して上述した機能を簡易化させても良い。その他の機能は、実施形態1で用いたものと同様である。
また、図1及び図10のXMLデータ登録装置1101や図1のタグ情報格納装置1306はデータベースやファイル等を静的に保持できる装置であれば良い。
【0063】
図11は本実施形態のタグ識別ID付加装置α2300のオリジナルXMLデータ1301にタグ識別IDを付加する処理の処理手順を示すフローチャートである。処理ステップ750では、図10のオリジナルXMLデータ1301を読み込み、分岐751へ進む。
【0064】
分岐751では、読み込んだオリジナルXMLデータ1301にタグが存在するかどうかを判定し、存在する場合には処理ステップ752へ進み、存在しない場合には処理を終了する。
【0065】
処理ステップ752では、ユニークコード生成部1305よりタグを一意に特定する為のユニークコードの取得を行い、分岐753へ進む。
分岐753では、取得したユニークコードがオリジナルXMLデータ1301のタグと重複しているものが存在するかどうかを判断し、重複するものが一つでも存在する場合には処理ステップ752へ進み、ユニークコードの再取得を行う。重複するものが存在しない場合には、ユニークコードを”xid”属性として設定し、分岐751へ戻り、次のオリジナルXMLデータ1301中のタグに対する判定を行う。
【0066】
以上説明した様に本実施形態の記述言語変換システムによれば、変換対象を一意に識別する為の識別情報を付加して第1の記述言語から第2の記述言語への変換を行うので、第1の記述言語の記述部分を第2の記述言語で一意に識別される記述に変換することが可能である。
【0067】
【発明の効果】
本発明によれば、第1の記述言語の記述部分を第2の記述言語で一意に識別される記述に変換することが可能である。
【図面の簡単な説明】
【図1】実施形態1の記述言語変換システムのシステム構成を示す図である。
【図2】実施形態1のオリジナルXMLデータ1301の例を示す図である。
【図3】実施形態1のタグ情報格納装置1306のテーブル構成を示す図である。
【図4】実施形態1のタグ識別ID設定済みXMLデータ1308の例を示す図である。
【図5】実施形態1のXMLデータ登録装置1101のテーブル構成を示す図である。
【図6】実施形態1のHTML変換した場合のコード例と画面イメージ例を示す図である。
【図7】実施形態1のタグ識別ID付加装置1300においてタグ識別ID属性を付加する処理の処理手順を示すフローチャートである。
【図8】実施形態1のXML−HTML変換装置1100においてタグ識別ID設定済みXMLデータ1102をXMLデータ登録装置1101より取得して画面表示する処理の処理手順を示すフローチャートである。
【図9】実施形態1のクライアントWWWブラウザ1000より入力されたデータをXML−HTML変換装置1100へ送信し、XMLデータ登録装置1101に登録する処理の処理手順を示すフローチャートである。
【図10】実施形態2のXMLデータ内の全てのタグにユニークな属性値を設定する場合のシステム構成を示す図である。
【図11】実施形態2のタグ識別ID付加装置α2300のオリジナルXMLデータ1301にタグ識別IDを付加する処理の処理手順を示すフローチャートである。
【符号の説明】
1000…クライアントWWWブラウザ、1100…XML−HTML変換装置、1101…XMLデータ登録装置、1102…XMLデータ、1103…XMLデータ取得部、1104…HTML変換部、1105…画面表示データ送信部、1106…入力データ取得部、1107…入力データ編集部、1108…編集データ登録部、1109…XMLデータ、1200…ネットワーク、1201…HTMLデータ、1300…タグ識別ID付加装置、1301…オリジナルXMLデータ、1302…タグ定義情報、1303…属性情報読込み部、1304…タグ識別ID設定部、1305…ユニークコード生成部、1306…タグ情報格納装置、1307…付加データ登録部、1308…XMLデータ、301…タグ名称、302…カレントタグID、501…XMLデータ、601…画面イメージ、2300…タグ識別ID付加装置α、2301…タグ識別ID設定部α。
Claims (10)
- 第1の記述言語で記述された第1のデータを第2の記述言語で記述された第2のデータに変換する記述言語変換方法において、
変換対象となる記述部分を一意に識別する為の識別情報を第1の記述言語で記述された第1のデータに付加するステップと、前記識別情報の付加された記述部分を第2の記述言語で記述された第2のデータに変換するステップとを有することを特徴とする記述言語変換方法。 - 所定のタグが記述されている記述部分を変換対象として前記識別情報を付加することを特徴とする請求項1に記載された記述言語変換方法。
- タグ定義情報に定義されたタグを前記所定のタグとすることを特徴とする請求項2に記載された記述言語変換方法。
- タグが記述されている全ての記述部分を変換対象として前記識別情報を付加することを特徴とする請求項1に記載された記述言語変換方法。
- 当該第1のデータの中でユニークとなるコードであるユニークコードに対して各変換対象毎に異なる識別子を追加したコードを前記識別情報として当該記述部分に付加することを特徴とする請求項1乃至請求項4のいずれか1項に記載された記述言語変換方法。
- 当該第1のデータの中でユニークとなるコードであるユニークコードを各変換対象毎に生成し、前記識別情報として当該記述部分に付加することを特徴とする請求項1乃至請求項5のいずれか1項に記載された記述言語変換方法。
- 第2の記述言語で当該記述部分を一意に識別する為の属性情報に前記識別情報を変換することにより、第1の記述言語から第2の記述言語への変換を行うことを特徴とする請求項1乃至請求項6のいずれか1項に記載された記述言語変換方法。
- 前記属性情報は入力データを識別する為の情報であることを特徴とする請求項1乃至請求項7のいずれか1項に記載された記述言語変換方法。
- 第1の記述言語で記述された第1のデータを第2の記述言語で記述された第2のデータに変換する記述言語変換システムにおいて、
変換対象の記述部分を一意に識別する為の識別情報を第1の記述言語で記述された第1のデータに付加する識別情報付加手段と、前記識別情報の付加された記述部分を第2の記述言語で記述された第2のデータに変換する記述言語変換手段とを備えることを特徴とする記述言語変換システム。 - 第1の記述言語で記述された第1のデータを第2の記述言語で記述された第2のデータに変換する記述言語変換システムとしてコンピュータを機能させる為のプログラムにおいて、
変換対象の記述部分を一意に識別する為の識別情報を第1の記述言語で記述された第1のデータに付加する識別情報付加手段と、前記識別情報の付加された記述部分を第2の記述言語で記述された第2のデータに変換する記述言語変換手段としてコンピュータを機能させることを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003182076A JP2005018390A (ja) | 2003-06-26 | 2003-06-26 | 記述言語変換方法及び実施システム並びに処理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003182076A JP2005018390A (ja) | 2003-06-26 | 2003-06-26 | 記述言語変換方法及び実施システム並びに処理プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005018390A true JP2005018390A (ja) | 2005-01-20 |
Family
ID=34182556
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003182076A Pending JP2005018390A (ja) | 2003-06-26 | 2003-06-26 | 記述言語変換方法及び実施システム並びに処理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005018390A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007219579A (ja) * | 2006-02-14 | 2007-08-30 | Profield Co Ltd | ドキュメント変換装置、およびプログラム |
JP2010505194A (ja) * | 2006-09-29 | 2010-02-18 | ヤフー! インコーポレイテッド | 遠隔デバイス用のコンテンツをレンダリングするためのプラットフォーム |
JP2017538193A (ja) * | 2014-10-24 | 2017-12-21 | ドロップボックス, インコーポレイテッド | プレビューにおけるネイティブ・ドキュメントのコメントの修正 |
-
2003
- 2003-06-26 JP JP2003182076A patent/JP2005018390A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007219579A (ja) * | 2006-02-14 | 2007-08-30 | Profield Co Ltd | ドキュメント変換装置、およびプログラム |
JP4519081B2 (ja) * | 2006-02-14 | 2010-08-04 | 株式会社プロフィールド | ドキュメント変換装置、およびプログラム |
JP2010505194A (ja) * | 2006-09-29 | 2010-02-18 | ヤフー! インコーポレイテッド | 遠隔デバイス用のコンテンツをレンダリングするためのプラットフォーム |
US10452756B2 (en) | 2006-09-29 | 2019-10-22 | Oath Inc. | Platform for rendering content for a remote device |
JP2017538193A (ja) * | 2014-10-24 | 2017-12-21 | ドロップボックス, インコーポレイテッド | プレビューにおけるネイティブ・ドキュメントのコメントの修正 |
US10198406B2 (en) | 2014-10-24 | 2019-02-05 | Dropbox, Inc. | Modifying native document comments in a preview |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7533102B2 (en) | Method and apparatus for converting legacy programming language data structures to schema definitions | |
JP3946057B2 (ja) | 整合性検査支援方法および整合性検査支援システム | |
KR101122841B1 (ko) | 중첩된 표로 스키마 없는 데이터 매핑을 위한 시스템과방법 | |
US7870163B2 (en) | Implementation of backward compatible XML schema evolution in a relational database system | |
US7089533B2 (en) | Method and system for mapping between markup language document and an object model | |
US8275779B2 (en) | Data tranformations for applications supporting different data formats | |
CN102124481A (zh) | 在具有广告的网页中嵌入宏 | |
US8601001B2 (en) | Selectively structuring a table of contents for accessing a database | |
US20020184269A1 (en) | Document management systems for and methods of sharing documents | |
CN101271390A (zh) | 修改xml数据结构的软件、系统和方法 | |
JP4965014B2 (ja) | コンピュータ通信ネットワークにおけるデータオブジェクトの転送方法および転送装置、起動方法と起動装置 | |
CN112667240A (zh) | 程序代码转换方法及相关设备 | |
US8301647B2 (en) | Data tranformations for a source application and multiple target applications supporting different data formats | |
JP2006512633A (ja) | 中央XML構成ファイルにより分散Javaアプリケーションを生成させる方法と装置 | |
JP2005018390A (ja) | 記述言語変換方法及び実施システム並びに処理プログラム | |
US8161376B2 (en) | Converting a heterogeneous document | |
JP5685205B2 (ja) | プログラム、情報処理装置およびアクセス支援方法 | |
US7801856B2 (en) | Using XML for flexible replication of complex types | |
JP2975650B2 (ja) | 手続管理装置 | |
JP4866844B2 (ja) | Lobに格納されたxml内容の効率的な抽出 | |
US20100088588A1 (en) | Method and device for processing documents on the basis of enriched schemas and corresponding decoding method and device | |
JP4057997B2 (ja) | スクリプト付き文書処理装置、文書取得装置、スクリプト付き文書処理システム、スクリプト付き文書処理方法およびその方法をコンピュータに実行させるためのプログラム | |
JP2006154952A (ja) | 構造化文書処理装置及び構造化文書処理方法、プログラム、記憶媒体 | |
JP2003162533A (ja) | スキーマ統合変換システム、スキーマ統合変換方法およびスキーマ統合変換用プログラム | |
KR100586595B1 (ko) | 전자문서 규칙정보를 이용한 수신 매핑 방법 |