JP2006163820A - Data converter - Google Patents

Data converter Download PDF

Info

Publication number
JP2006163820A
JP2006163820A JP2004354459A JP2004354459A JP2006163820A JP 2006163820 A JP2006163820 A JP 2006163820A JP 2004354459 A JP2004354459 A JP 2004354459A JP 2004354459 A JP2004354459 A JP 2004354459A JP 2006163820 A JP2006163820 A JP 2006163820A
Authority
JP
Japan
Prior art keywords
conversion
data
structure pattern
processing
unit
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.)
Granted
Application number
JP2004354459A
Other languages
Japanese (ja)
Other versions
JP4606862B2 (en
Inventor
Keisuke Watanabe
圭輔 渡邉
Makoto Imamura
誠 今村
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2004354459A priority Critical patent/JP4606862B2/en
Publication of JP2006163820A publication Critical patent/JP2006163820A/en
Application granted granted Critical
Publication of JP4606862B2 publication Critical patent/JP4606862B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Document Processing Apparatus (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To obtain a data converter for realizing the reduction of the memory usage and a high speed data conversion processing by direct access to data. <P>SOLUTION: The data converter comprises a pre-conversion data structure pattern designation storage part 101 for storing pre-conversion data structure pattern designation including a structure pattern, which expresses the structure of pre-conversion data as the combination of basic structure patterns, and a tag structure, which expresses the parent relation of a tag of the pre-conversion data; a reading processing performing part 105 for determining the number of dimensions of data storage arrays to store the terminal element data value of the pre-conversion data, based on the structure pattern and the tag structure, and generating a processing to store the data value of a terminal element in the data storage arrays; a conversion instruction storage part 103 for storing a conversion instruction where a conversion rule to convert the pre-conversion data is described; and a conversion processing execution part 106 for processing the data value of the terminal element of the pre-conversion data, which is stored in the data storage arrays, in response to the conversion instruction and outputting the value as the post-conversion data. <P>COPYRIGHT: (C)2006,JPO&NCIPI

Description

この発明は、構造化文書のデータ変換装置に関するものである。   The present invention relates to a data conversion apparatus for structured documents.

情報システムの発展に伴い、各種情報システムが持つデータを、企業間や企業内組織間で交換したり、共有したりすることへの要求が高まっている。このような要求を満たすために用いられるデータの標準フォーマットの1つとして、W3C(World Wide Web Consortium)によって制定されているXML(eXtensible Markup Language)が近年盛んに利用されるようになってきた。XMLは、データを構造化してテキストファイルとして表現するもので、送り手側のシステムはシステム内部でのデータ構造を持つデータをXML文書に変換して送信し、受け手側のシステムでは受信したXML文書をシステム内部のデータ構造に変換して利用する。   With the development of information systems, there is an increasing demand for exchanging and sharing data held in various information systems between companies and organizations within the company. In recent years, XML (extensible Markup Language) established by W3C (World Wide Web Consortium) has been actively used as one of the standard formats of data used to satisfy such requirements. XML is structured to represent data as a text file. The sender's system converts the data having the data structure inside the system into an XML document and sends it, and the receiver's system receives the received XML document. Is converted into a data structure inside the system.

XML文書に対する一般的なデータ操作API(Application Programming Interface)として、DOM(Document Object Model)やSAX(Simple API for XML)がある。DOMは、読み込んだXML文書全体を木構造(DOM木)に変換してメモリ上に展開する。これにより、データへのランダムアクセスが可能となり、複雑な処理を行うデータ操作プログラムを作成しやすいという利点がある。しかし、DOMは処理が低速でメモリ使用量も大きいという欠点がある。
これに対し、SAXは、XML文書を先頭から順に読み込み、XML文書中に現れるタグやテキストに対して逐次的に処理を行うもので、処理が高速でメモリ使用量が少ないという利点がある。しかし、逐次処理のため、データへのランダムアクセスができず、複雑な処理を行うデータ操作プログラムを作成しにくいという欠点がある。
Examples of general data operation API (Application Programming Interface) for XML documents include DOM (Document Object Model) and SAX (Simple API for XML). The DOM converts the entire read XML document into a tree structure (DOM tree) and develops it on the memory. As a result, random access to data becomes possible, and there is an advantage that it is easy to create a data operation program that performs complicated processing. However, DOM has the disadvantages of low processing speed and large memory usage.
On the other hand, SAX reads XML documents in order from the top and sequentially processes the tags and text that appear in the XML document, and has the advantage of high processing speed and low memory usage. However, due to the sequential processing, there is a disadvantage that random access to data cannot be performed and it is difficult to create a data operation program for performing complicated processing.

また、これらの標準的なAPIを用いた構造化文書のデータ変換処理の高速化及びメモリ使用量の削減を目的とした技術も提案されている。
例えば、特許文献1に記載された従来の構造化文書変換方法では、変換対象の構造化文書を、予めデータ処理の対象となるキー要素と、データ処理の対象にならない非キー要素に分け、非キー要素の内容をCSV(Comma Separated Value)形式で1つの要素にまとめた構造化文書にしておく。
In addition, a technique for speeding up the data conversion processing of a structured document using these standard APIs and reducing the memory usage has been proposed.
For example, in the conventional structured document conversion method described in Patent Document 1, a structured document to be converted is divided into a key element that is a target of data processing and a non-key element that is not a target of data processing. The contents of the key elements are stored in a structured document in one element in the CSV (Comma Separated Value) format.

特開2003−203067号公報(図1、第5頁〜第18頁)Japanese Patent Laying-Open No. 2003-203667 (FIG. 1, pages 5 to 18)

しかし、XML文書の読み込みにDOMやSAXなどの標準的なAPIを用いる限り、読み込み処理の速度がそれらのAPIで制限され、それ以上の処理速度向上は実現できない。ここで、読み込み処理の速度が制限される理由として、1)標準APIのオーバースペック、2)DOMのデータアクセス性能、3)SAXの逐次性、があげられる。   However, as long as standard APIs such as DOM and SAX are used for reading an XML document, the speed of the reading process is limited by those APIs, and further improvement in the processing speed cannot be realized. Here, reasons for limiting the speed of the reading process are 1) over-spec of standard API, 2) data access performance of DOM, and 3) sequentiality of SAX.

1)について説明する。DOMやSAXのような標準APIは、XMLの仕様上想定される全ての入力を扱えるようにするため、多くの内部変数や処理関数を持っている。また、DOMの読み込み処理では、後段でのデータアクセスのために、インデックス生成などの処理を行うのが一般的である。しかしながら、個々の変換対象データや変換処理プログラムから見ると、標準APIの機能全てが必要となることは稀である。そのため、不必要な情報まで内部データとして保持することになり、オーバースペックとなることが多い。すなわち、汎用化を実現する代わりに、必ずしも各々の対象データやデータ変換プログラムにとって最適なデータ構造とはなっておらず、メモリ効率や速度性能が犠牲になっているという問題がある。   1) will be described. Standard APIs such as DOM and SAX have many internal variables and processing functions in order to be able to handle all inputs assumed in the XML specification. Further, in the DOM reading process, it is common to perform processes such as index generation for data access in the subsequent stage. However, when viewed from individual conversion target data and conversion processing programs, it is rare that all functions of the standard API are required. For this reason, unnecessary information is held as internal data, which is often over-specification. That is, instead of realizing generalization, the data structure is not necessarily optimal for each target data and data conversion program, and there is a problem that memory efficiency and speed performance are sacrificed.

次に2)について説明する。DOMを介したデータアクセスは、基本的に木構造に対する探索となる。すなわち、末端要素に保持されたデータを得るためには、例えば、深さ優先探索によってXMLの最も外側の要素に対応するルートから、目的とする末端要素に対応する葉が見つかるまで検索する必要がある。このような処理を行うと、一般的にメモリ使用量が増大し処理時間がかかるという問題がある。   Next, 2) will be described. Data access via DOM is basically a search for a tree structure. That is, in order to obtain the data held in the end element, for example, it is necessary to search from the route corresponding to the outermost element of the XML by the depth-first search until a leaf corresponding to the target end element is found. is there. When such processing is performed, there is a problem that the amount of memory used generally increases and processing time is required.

次に3)について説明する。SAXは逐次的な処理を行うAPIであり、データ操作プログラムには入力データ全体の構造は提供されず、その時点で処理対象となっているXMLのタグに関する情報しか提供されない。従って、例えば、同じタグが繰り返し出現する反復構造を持つXML文書を扱う場合には、XML文書の構造を管理するための処理をその都度記述する必要が生じ、プログラム作成のコストがかかるという問題がある。   Next, 3) will be described. SAX is an API that performs sequential processing, and the data manipulation program is not provided with the structure of the entire input data, but is provided only with information about the XML tag that is the processing target at that time. Therefore, for example, when handling an XML document having a repetitive structure in which the same tag appears repeatedly, it is necessary to describe a process for managing the structure of the XML document each time, and there is a problem that the cost of creating a program is high. is there.

この発明は上記のような課題を解決するためになされたもので、データへの直接アクセスを可能とし、かつ、メモリ使用量の削減と高速なデータ変換処理を実現できるデータ変換装置を得ることを目的とする。   The present invention has been made to solve the above-described problems, and an object of the present invention is to provide a data conversion apparatus that enables direct access to data, and that can reduce memory usage and realize high-speed data conversion processing. And

この発明に係るデータ変換装置は、変換前データの構造を基本構造パタンの組み合わせとして表現した構造パタンと、変換前データのタグの親子関係を表すタグ構造を含む変換前データ構造パタン指定を記憶する変換前データ構造パタン指定記憶部と、変換前データ構造パタン指定に基づいて、変換前データの末端要素データ値を格納するデータ格納用配列の次元数を決定し、末端要素のデータ値をデータ格納用配列に格納する読み込み処理実行部と、変換前データを異なるデータ構造に変換するための変換規則を記述した変換命令を記憶する変換命令記憶部と、変換前データ構造パタン指定に基づいて、データ格納用配列に格納された変換前データの末端要素のデータ値を変換命令に従って処理し、変換後データとして出力する変換処理実行部を備えたものである。   The data conversion apparatus according to the present invention stores a pre-conversion data structure pattern specification including a structure pattern expressing the structure of pre-conversion data as a combination of basic structure patterns and a tag structure representing a parent-child relationship of tags of pre-conversion data. Based on the pre-conversion data structure pattern specification storage unit and the pre-conversion data structure pattern specification, the number of dimensions of the data storage array for storing the end element data value of the pre-conversion data is determined, and the end element data value is stored as data. Data based on the pre-conversion data structure pattern specification, the read processing execution unit stored in the array for conversion, the conversion instruction storage unit storing the conversion instruction describing the conversion rules for converting the pre-conversion data into a different data structure A conversion process that processes the data value of the end element of the pre-conversion data stored in the storage array according to the conversion command and outputs it as post-conversion data. Parts are those equipped with.

この発明によれば、変換前データの構造を基本構造パタンの組み合わせで表現し、その構造パタンに従って末端要素データ値をデータ格納用配列に格納するようにしたので、変換処理において、末端要素が保持するデータ値に直接アクセスできると共に、メモリ使用量の削減と高速なデータ変換を実現できるデータ変換装置を得ることができる。   According to the present invention, the structure of the pre-conversion data is expressed by a combination of basic structure patterns, and the end element data values are stored in the data storage array according to the structure pattern. It is possible to obtain a data conversion apparatus that can directly access the data value to be processed, and can reduce the memory usage and realize high-speed data conversion.

以下、この発明の実施の様々な形態を説明する。
実施の形態1.
図1は、この発明の実施の形態1によるデータ変換装置100の構成を示すブロック図である。図に示すように、データ変換装置100は、変換前データ構造パタン指定記憶部101、読み込み処理生成部(読み込み処理実行部)102、変換命令記憶部103、変換処理生成部(変換処理実行部)104、読み込み処理実行部105、変換処理実行部106を備えている。読み込み処理生成部102、変換処理生成部104、読み込み処理実行部105及び変換処理実行部106は、データ変換装置100のプロセッサを、該プロセッサの動作を制御するプログラムのモジュールに従って便宜的に分割したものである。
変換前データ構造パタン指定記憶部101及び変換命令記憶部103は、データ変換装置100のメモリ、あるいはデータ変換装置100と接続された外部の記憶装置等に含まれる。
Hereinafter, various embodiments of the present invention will be described.
Embodiment 1 FIG.
FIG. 1 is a block diagram showing a configuration of a data conversion apparatus 100 according to Embodiment 1 of the present invention. As shown in the figure, the data conversion apparatus 100 includes a pre-conversion data structure pattern designation storage unit 101, a read processing generation unit (read processing execution unit) 102, a conversion instruction storage unit 103, and a conversion processing generation unit (conversion processing execution unit). 104, a read process execution unit 105, and a conversion process execution unit 106. The read processing generation unit 102, the conversion processing generation unit 104, the read processing execution unit 105, and the conversion processing execution unit 106 are obtained by conveniently dividing the processor of the data conversion apparatus 100 according to a program module that controls the operation of the processor. It is.
The pre-conversion data structure pattern designation storage unit 101 and the conversion command storage unit 103 are included in the memory of the data conversion device 100 or an external storage device connected to the data conversion device 100.

次に動作について説明する。
図2は、実施の形態1による変換前XMLデータの例(DATA1)を示す図である。また、図3は、実施の形態1による、図2に示す変換前XMLデータの変換後データ(DATA2)を示す図である。以下、DATA1をDATA2に変換する場合を例に取り説明する。
Next, the operation will be described.
FIG. 2 is a diagram illustrating an example (DATA1) of XML data before conversion according to the first embodiment. FIG. 3 is a diagram illustrating post-conversion data (DATA2) of the pre-conversion XML data shown in FIG. 2 according to the first embodiment. Hereinafter, a case where DATA1 is converted to DATA2 will be described as an example.

まず、変換前データ構造パタン指定記憶部101に記憶される変換前データ構造パタン指定について説明する。
変換前データ構造パタン指定は、変換前データの構造パタンとタグ構造を記述したものである。
タグ構造は、変換前データのタグの親子関係を表すものである。
構造パタンは、変換前データの構造を基本構造パタンの組み合わせとして表現したものである。基本構造パタンとしては、系列型(Sequence型、以後S型と称す。)及び反復型(Repetition型、以後R型と称す。)の2つをあげることができる。
図4は、S型の構造パタンを持つXMLデータの一例を示す図である。図に示すように、<日付>の子要素が、<年>要素、<月>要素、<日>要素という異なる要素の系列となっている。
また、図5は、R型の構造パタンを持つXMLデータの一例を示す図であり、図に示すように、<登録者>の子要素は、<氏名>要素という同一の要素が繰り返す構造となっている。
First, the pre-conversion data structure pattern designation stored in the pre-conversion data structure pattern designation storage unit 101 will be described.
The pre-conversion data structure pattern designation describes the structure pattern and tag structure of pre-conversion data.
The tag structure represents a parent-child relationship of tags of pre-conversion data.
The structure pattern represents the structure of the data before conversion as a combination of basic structure patterns. There are two basic structure patterns: a series type (Sequence type, hereinafter referred to as S type) and a repetitive type (Repetition type, hereinafter referred to as R type).
FIG. 4 is a diagram illustrating an example of XML data having an S-type structure pattern. As shown in the figure, the child elements of <Date> are a series of different elements such as <Year> element, <Month> element, and <Day> element.
FIG. 5 is a diagram showing an example of XML data having an R-type structure pattern. As shown in the figure, a child element of <registrant> has a structure in which the same element called <name> element repeats. It has become.

任意のXMLデータをS型とR型の組み合わせのみで表現することはできないが、実用上多く用いられている帳票などのXMLデータは、一般的にこれらの組み合わせによって表現可能である。例えば、多くの電子商取引の実用システムで用いられているXMLデータの規格として、(財)日本情報処理開発協会 電子商取引推進センターによって策定されたCII標準ベースXML/EDIマッピング規則がある。図6は、この規則に準拠したXMLデータの例を示す図である。図に示すように、このXMLデータの例では、最上位のタグ<CII−MSG>の子要素としては<JPMGRP>のみが存在する。すなわち、これは系列が1つのS型で表現できる。<JPMGRP>の子要素としては<JPMGH>と<JPTRM>の2つが存在し、系列が2つのS型で表現することができる。<JPMGH>の子要素は<JPC03>、<JPC04>などの系列であり、これもS型で表現することができる。<JPC03>、<JPC04>などは子要素を持たない末端要素である。<JPTRM>の子要素は<JP27001>、<JP27002>、<JPM>などの系列であり、S型である。このうち<JPM>要素は、反復する<JPMR>要素を持つ。従って、<JPM>はR型である。<JPMR>は、<JP27104>、<JP27105>、<JP27106>という系列を子要素に持つS型である。 以上より、このXMLデータは、S型とR型の組み合わせのみで表現することができ、SSRS型という構造パタンを持つ。   Arbitrary XML data cannot be expressed only by a combination of S type and R type, but XML data such as a form that is widely used in practice can be generally expressed by a combination of these. For example, as a standard of XML data used in many practical systems for electronic commerce, there is a CII standard-based XML / EDI mapping rule established by the Japan Information Processing Development Corporation Electronic Commerce Promotion Center. FIG. 6 is a diagram showing an example of XML data compliant with this rule. As shown in the figure, in this XML data example, only <JPMGRP> exists as a child element of the highest tag <CII-MSG>. That is, this can be expressed as an S-type with one sequence. There are two child elements of <JPPMGRP>, <JPPMGH> and <JPTRM>, and the series can be expressed by two S types. The child elements of <JPMGH> are a series of <JPC03>, <JPC04>, and the like, which can also be expressed in the S type. <JPC03>, <JPC04>, etc. are terminal elements having no child elements. The child element of <JPTRM> is a series such as <JP27001>, <JP27002>, <JPM>, etc., and is S-type. Of these, the <JPM> element has a repeating <JPMR> element. Therefore, <JPM> is R type. <JPMR> is an S type having a series of <JP27104>, <JP27105>, and <JP27106> as child elements. As described above, this XML data can be expressed only by a combination of the S type and the R type, and has a structure pattern called an SSRS type.

ここで、図2に示す変換前データDATA1の構造パタンについて説明する。<DATA1>要素の子要素は,<月>、<日>、<予約>の系列なのでS型で表現される。<予約>要素の子要素は<人名>要素の反復となっておりR型である。さらに、<人名>要素の子要素は<姓>要素と<名>要素の系列でありS型である。従って、DATA1はSRS型という構造パタンとなる。   Here, the structure pattern of the pre-conversion data DATA1 shown in FIG. 2 will be described. Since the child element of the <DATA1> element is a series of <month>, <day>, and <reservation>, it is expressed in S type. The child element of the <reservation> element is a repetition of the <person name> element and is R-type. Further, the child element of the <person name> element is a series of <last name> element and <name> element, and is S-type. Therefore, DATA1 has a structure pattern called SRS type.

図7は、DATA1の変換前データ構造パタン指定をXMLで記述した例を示す図である。図に示すように、<Input>タグのpattern属性により、変換前データ構造パタンがSRS型であることが示されている。また、repeat属性で<人名>要素が反復することを示している。
<Input>要素の内容としては、変換前データのタグ構造が記述されている。ここで、<月/>、<日/>、<姓/>、<名/>のような空要素として記述された要素が変換前データで実際のデータ値を持つ末端要素となる。なお、図7はXMLによる記述例であるが、同等の情報をCSVなど他のフォーマットで記述してもよい。
FIG. 7 is a diagram illustrating an example in which the data structure pattern specification before conversion of DATA1 is described in XML. As shown in the figure, the pattern attribute of the <Input> tag indicates that the data structure pattern before conversion is the SRS type. In addition, the <person name> element is repeated in the repeat attribute.
As the contents of the <Input> element, a tag structure of pre-conversion data is described. Here, elements described as empty elements such as <month />, <day />, <surname />, and <first name /> are end elements having actual data values in the pre-conversion data. Although FIG. 7 shows an example of description in XML, equivalent information may be described in other formats such as CSV.

次に、データ格納のための配列について説明する。S型及びR型の基本構造パタンにおいては、その末端要素の構造は、要素の値を要素出現順序に並べた一次元配列に対応付けることができる。例えば、図4に示すS型構造パタンのXMLデータの例には、図8に示す一次元配列data[i]を対応付けることができる。ここで、配列の添え字iはS型構造パタン中の各要素と一対一に対応し、先頭要素の添え字を1とすれば、要素の出現順序と同じ値となる。R型構造パタンについても同様に、一次元配列に対応付けることができる。
S型とR型の組み合わせで表現される構造パタンの場合について説明する。例えば、図3に示すDATA2は、RS型の構造パタンを持つXMLデータであるが、DATA2の末端要素の値に対しては、図9に示す2次元配列data[i][j]を対応付けることができる。配列の第1の添え字iは、R型構造パタンで第i番目に出現した要素に対応し、配列の第2の添え字jは、R型構造パタンの第i番目の要素における、S型構造パタンの第j番目の要素に対応する。S型およびR型のN個の組み合わせまで拡張した場合、その末端要素の値は、N次元配列に対応付けて表現することが可能である。従って、データ格納用の配列としてはS型とR型の組み合わせ数に等しい次元を持つ多次元配列を用いることができる。
Next, an array for storing data will be described. In the S-type and R-type basic structure patterns, the structure of the terminal element can be associated with a one-dimensional array in which the element values are arranged in the element appearance order. For example, the XML data of the S-type structure pattern shown in FIG. 4 can be associated with the one-dimensional array data [i] shown in FIG. Here, the subscript i of the array has a one-to-one correspondence with each element in the S-type structure pattern, and if the subscript of the first element is 1, it has the same value as the appearance order of the elements. Similarly, an R-type structure pattern can be associated with a one-dimensional array.
A case of a structural pattern expressed by a combination of S type and R type will be described. For example, DATA2 shown in FIG. 3 is XML data having an RS type structure pattern, but the two-dimensional array data [i] [j] shown in FIG. 9 is associated with the value of the terminal element of DATA2. Can do. The first subscript i of the array corresponds to the i-th element appearing in the R-type structure pattern, and the second subscript j of the array is the S-type in the i-th element of the R-type structure pattern. This corresponds to the jth element of the structure pattern. When expanding to N combinations of S-type and R-type, the value of the end element can be expressed in association with the N-dimensional array. Therefore, a multidimensional array having a dimension equal to the number of combinations of S type and R type can be used as the data storage array.

変換前データの構造が固定長、すなわち各基本構造パタン内部の系列数や繰り返し数が固定であれば、多次元配列は添え字の対応テーブルを用いて一次元配列で実装することも可能である。また、可変部分はリスト構造、固定部分には一次元配列など、多次元配列を効率よく実装する公知の方法を適用することができる。   If the structure of the pre-conversion data is fixed length, that is, if the number of series and repetitions within each basic structure pattern is fixed, a multidimensional array can be implemented as a one-dimensional array using a subscript correspondence table. . In addition, a known method for efficiently implementing a multidimensional array such as a list structure for the variable part and a one-dimensional array for the fixed part can be applied.

次に、図2に示す変換前データと、図7に示す変換前データ構造パタン指定が入力された場合の、読み込み処理生成部102の動作について説明する。
読み込み処理生成部102は、変換前データを読み込んで、末端要素のデータ値をデータ格納用の配列に格納する処理のプログラムを生成する。以下、そのプログラムの処理内容を説明する。
前述したように、S型およびR型の組み合わせで表現される構造パタンに対して、一般にN次元配列をデータ格納用の配列として用いることができる。図7に示す変換前データ構造パタン指定が入力されると、変換前データ構造パタンはSRS型と指定されているので、読み込み処理生成部102は、データ格納用に3次元配列data[x][y][z]を用いる。配列の大きさについては、予め定められた上限値を用いてもよいし、実際にデータの読み込みに必要な大きさを確保しながら決定してもよい。
Next, the operation of the read processing generation unit 102 when the pre-conversion data shown in FIG. 2 and the pre-conversion data structure pattern designation shown in FIG. 7 are input will be described.
The reading process generation unit 102 reads the pre-conversion data and generates a processing program for storing the data value of the end element in the data storage array. The processing contents of the program will be described below.
As described above, in general, an N-dimensional array can be used as an array for storing data with respect to a structure pattern expressed by a combination of S-type and R-type. When the pre-conversion data structure pattern designation shown in FIG. 7 is input, since the pre-conversion data structure pattern is designated as SRS type, the read processing generation unit 102 uses the three-dimensional array data [x] [ y] [z] is used. As for the size of the array, a predetermined upper limit value may be used, or may be determined while ensuring a size actually required for reading data.

まず変換前データ構造パタンで指定された変換前データのタグ構造に基づいて、末端要素と配列要素名の対応テーブルを作成する。このとき、末端要素は、最上位のタグ(以後ルートタグと称す。)から末端要素に至るまでの全ての要素名を含むパスにより表現する。たとえば、図2において、ルートタグは<DATA1>であり、末端要素<月/>に対するパスは/DATA1/月、末端要素<姓/>に対するパスは/DATA1/予約/人名/姓となる。   First, a correspondence table of terminal elements and array element names is created based on the tag structure of pre-conversion data specified by the pre-conversion data structure pattern. At this time, the terminal element is expressed by a path including all element names from the highest tag (hereinafter referred to as a root tag) to the terminal element. For example, in FIG. 2, the root tag is <DATA1>, the path for the end element <month /> is / DATA1 / month, and the path for the end element <last name> is / DATA1 / reservation / person name / last name.

図10は、末端要素と配列要素名の対応テーブルの作成処理のフローチャートである。
まず、変数を初期化する(ステップST1)。初期化される変数は、3次元配列data[x][y][z]の次元を表すd、パスを保持するためのpath、3次元配列data[x][y][z]の各次元の添え字を保持するためのindex[i](i=1,2,3)である。これらに、初期値として、dに0、pathに空文字列、index[i]に1を設定する。
FIG. 10 is a flowchart of processing for creating a correspondence table between terminal elements and array element names.
First, variables are initialized (step ST1). The variable to be initialized is d representing the dimension of the three-dimensional array data [x] [y] [z], the path for holding the path, and each dimension of the three-dimensional array data [x] [y] [z]. Index [i] (i = 1, 2, 3). As initial values, 0 is set for d, an empty character string is set for path, and 1 is set for index [i].

次に、変換前データのタグを1つ読み込む(ステップST2)。図7に示す変換前データ構造パタン指定が入力された場合、変換前データのタグ構造の最初のタグは<DATA1>であるため、まず<DATA1>が読み込まれる。読み込み処理生成部102は、読み込んだタグの種類に応じた処理を行う(ステップST3)。<DATA1>は開始タグなので、ステップST4に進み、変数pathの末尾にタグ名(この場合、文字列”/DATA1”)を追加する。変数pathの初期値は空文字列なので、変数pathは”/DATA1”に更新される。
次に、読み込み処理生成部102は、当該タグが反復するタグかどうかを判定する(ステップST5)。<DATA1>は反復するタグではないので、ステップST7に進み、dの値を1増やして1に更新した後に、次のタグの読み込みを行うためステップST2に戻る。
Next, one tag of pre-conversion data is read (step ST2). When the pre-conversion data structure pattern designation shown in FIG. 7 is input, since the first tag of the tag structure of the pre-conversion data is <DATA1>, <DATA1> is first read. The read process generation unit 102 performs a process according to the type of the read tag (step ST3). Since <DATA1> is a start tag, the process proceeds to step ST4, and a tag name (in this case, a character string “/ DATA1”) is added to the end of the variable path. Since the initial value of the variable path is an empty character string, the variable path is updated to “/ DATA1”.
Next, the reading process generation unit 102 determines whether or not the tag is a repeated tag (step ST5). Since <DATA1> is not a repeating tag, the process proceeds to step ST7, the value of d is incremented by 1 and updated to 1, and the process returns to step ST2 to read the next tag.

次に読み込まれるタグ<月/>は空要素タグであるため、ステップST11に進み、変数pathの末尾にタグ名”/月”を追加し、変数pathを”/DATA1/月”とする。さらに、配列data[index[1]][index[2]][index[3]]を追加する。ここでは、index[1]、index[2]、index[3]は全て1なので、data[index[1]][index[2]][index[3]]はdata[1][1][1]となる。従って、path”/DATA1/月”と配列要素名data[1][1][1]の対を対応テーブルに追加する。
次に、index[d]の値が数値であるか否かを判定する(ステップST12)。index[1]の値は1であり数値なので、これを1増やして2とし(ステップST13)、次のタグの読み込みを行うためステップST2に戻る。
Since the tag <month /> to be read next is an empty element tag, the process proceeds to step ST11, the tag name “/ month” is added to the end of the variable path, and the variable path is set to “/ DATA1 / month”. Furthermore, the array data [index [1]] [index [2]] [index [3]] is added. Here, since index [1], index [2], and index [3] are all 1, data [index [1]] [index [2]] [index [3]] is data [1] [1] [ 1]. Therefore, a pair of “path” / DATA1 / month ”and array element name data [1] [1] [1] is added to the correspondence table.
Next, it is determined whether or not the value of index [d] is a numerical value (step ST12). Since the value of index [1] is 1 and a numerical value, it is increased by 1 to 2 (step ST13), and the process returns to step ST2 to read the next tag.

次に読み込まれるタグ<日/>は空要素タグであり、読み込み処理生成部102は前述のタグ<月/>の場合と同様に動作する。すなわち、path”/DATA1/日”と配列要素名data[2][1][1]の対を対応テーブルに追加する。また、index[1]の値を1増やして3に更新し、次のタグの読み込みを行うためステップST2に戻る。
次に読み込まれるタグ<予約>は開始タグであるため、まずpathが”/DATA1/予約”に更新される。また、<予約>は反復するタグではないので、dの値を1増やして2とした後に、ステップST2に戻る。
The tag <day /> to be read next is an empty element tag, and the read processing generation unit 102 operates in the same manner as in the case of the tag <month />. That is, a pair of “path” / DATA1 / day ”and array element name data [2] [1] [1] is added to the correspondence table. Also, the value of index [1] is incremented by 1 and updated to 3, and the process returns to step ST2 to read the next tag.
Since the tag <reserved> to be read next is a start tag, the path is first updated to “/ DATA1 / reserved”. Since <reservation> is not a repetitive tag, the value of d is increased by 1 to 2, and then the process returns to step ST2.

次に読み込まれるタグ<人名>は開始タグであり、まずpathが”/DATA1/予約/人名”に更新される。次に、<人名>は反復するタグであるため、index[2]の値を文字”i”とする(ステップST6)。最後にdの値を1増やして3とした後に、ステップST2に戻る。
次に読み込まれるタグ<姓/>は空要素タグであり、path”/DATA1/予約/人名/姓”と配列要素名data[3][i][1]の対が対応テーブルに追加される。また、index[3]の値を1増やして2に更新する。次のタグ<名/>についても同様に、path”/DATA1/予約/人名/名”と配列要素名data[3][i][2]の対を対応テーブルに追加する。
The tag <person name> to be read next is a start tag. First, the path is updated to "/ DATA1 / reservation / person name". Next, since <person name> is a repeating tag, the value of index [2] is set to the letter “i” (step ST6). Finally, after increasing the value of d by 1 to 3, the process returns to step ST2.
The next tag <last name /> to be read is an empty element tag, and a pair of path "/ DATA1 / reservation / person name / surname" and array element name data [3] [i] [1] is added to the correspondence table. . Also, the index [3] value is incremented by 1 and updated to 2. Similarly, for the next tag <name />, a pair of “path” / DATA1 / reservation / person name / name ”and array element name data [3] [i] [2] is added to the correspondence table.

次に読み込まれるタグ</人名>は終了タグなので、ステップST8に進み、pathの値から末尾のタグ名とスラッシュを取り除き、”/DATA1/予約”に更新する。また、index[3]の値を1減らして1に更新する(ステップST9)。また、dの値を1減らして2に更新する(ステップST10)。その後ステップST2に戻る。
次に読み込まれるタグ</予約>は終了タグなので、同様にpathを”/DATA1”に更新し、index[2]の値を1減らし、dを1に更新する。
次のタグ</DATA1>も終了タグであり、同様にpathを””(空文字列)、dを0に更新する。読み込み処理生成部102は、次に読み込めるタグが存在しないため処理を完了する。以上の動作により、対応テーブルが生成される。図11は、上述の処理によって生成された末端要素のパスと配列要素名との対応テーブルを示す図である。
Since the tag </ personal name> to be read next is an end tag, the process proceeds to step ST8, where the tag name and slash at the end are removed from the value of path and updated to "/ DATA1 / reservation". Also, the value of index [3] is decreased by 1 and updated to 1 (step ST9). Also, the value of d is decreased by 1 and updated to 2 (step ST10). Thereafter, the process returns to step ST2.
Since the tag </ reserved> to be read next is an end tag, similarly, the path is updated to “/ DATA1”, the value of index [2] is decreased by 1, and d is updated to 1.
The next tag </ DATA1> is also an end tag, and similarly, the path is updated to "" (empty character string) and d is updated to 0. The read process generation unit 102 completes the process because there is no tag that can be read next. The correspondence table is generated by the above operation. FIG. 11 is a diagram showing a correspondence table between the path of the end element generated by the above-described process and the array element name.

次に、読み込んだ変換前データの末端要素の値をデータ格納用配列に代入する処理を行う。図12に、この処理のフローチャートを示す。
まず、変数を初期化する(ステップST121)。初期化される変数は、パスを保持するためのpathであり、空文字列が設定される。
次に、変換前データのタグあるいは要素の内容(データ値)を1つ読み込む(ステップST122)。
次に、読み込んだタグあるいはデータ値の種類に応じた処理を行う(ステップST123)。開始タグを読み込んだ場合にはpathの末尾に”/タグ名”を追加し(ステップST124)、ステップST122に戻って次のタグ或いはデータ値を読み込む。終了タグを読み込んだ場合には、pathの末尾から”タグ名”と”/”を取り除く(ステップST125)。データ値を読み込んだ場合には、その要素のpathに対応する配列要素名を対応テーブルから取得し(ステップST126)、対応する配列要素にデータ値を代入する(ステップST128)。対応テーブルに対応する配列要素名が存在しない場合には、ステップST122に戻る。
以上の処理により、変換前データの末端要素の値がデータ格納用配列に代入される。
Next, a process of substituting the value of the end element of the read pre-conversion data into the data storage array is performed. FIG. 12 shows a flowchart of this process.
First, variables are initialized (step ST121). The variable to be initialized is a path for holding a path, and an empty character string is set.
Next, one tag or element content (data value) of the pre-conversion data is read (step ST122).
Next, processing according to the type of the read tag or data value is performed (step ST123). When the start tag is read, “/ tag name” is added to the end of the path (step ST124), and the process returns to step ST122 to read the next tag or data value. When the end tag is read, “tag name” and “/” are removed from the end of the path (step ST125). When the data value is read, the array element name corresponding to the path of the element is obtained from the correspondence table (step ST126), and the data value is assigned to the corresponding array element (step ST128). If there is no array element name corresponding to the correspondence table, the process returns to step ST122.
Through the above processing, the value of the terminal element of the pre-conversion data is substituted into the data storage array.

読み込み処理生成部102は、上述したような変換前データを読み込んで末端要素のデータ値をデータ格納用の配列に格納する処理のプログラムを生成する。なお、対応テーブルの内容以外は定型的かつ静的なものなので、処理プログラムをあらかじめテンプレート化して保持しておいてもよい。   The read processing generation unit 102 generates a processing program for reading the pre-conversion data as described above and storing the data value of the end element in the data storage array. Since the contents other than the contents of the correspondence table are typical and static, the processing program may be stored in a template in advance.

次に、変換命令記憶部103に記憶された変換命令について説明する。図13は、図2に示す変換前データを図3に示す変換後データに変換するための変換命令を示す図である。図に示すように、<Output>要素の内容として、変換後データのタグ構造が記述される。末端要素の値については、変換前データに対するパスで指定される。例えば、<日付>要素の値として、変換前データの<月>要素と<日>要素の値を用いることを、path/DATA1/月と/DATA1/日によって指定している。また、<Output>タグのrepeat属性により、<予約項目>要素が反復することを示している。なお、図13はXMLによる記述例であるが、同等の情報をCSVなど他のフォーマットで記述してもよい。   Next, the conversion command stored in the conversion command storage unit 103 will be described. FIG. 13 is a diagram showing a conversion command for converting the pre-conversion data shown in FIG. 2 into the post-conversion data shown in FIG. As shown in the figure, the tag structure of the converted data is described as the contents of the <Output> element. The value of the end element is specified by the path for the pre-conversion data. For example, it is specified by path / DATA1 / month and / DATA1 / day that the value of the <month> element and the <day> element of the pre-conversion data is used as the value of the <date> element. Further, the <reserved item> element is repeated by the repeat attribute of the <Output> tag. Although FIG. 13 shows an example of description in XML, equivalent information may be described in other formats such as CSV.

次に、図2に示す変換前データと、図7に示す変換前データ構造パタン指定と、図13に示す変換命令が入力された場合の、変換処理生成部104の動作について説明する。
変換処理生成部104は、データ格納用の配列を読み込んで変換後データを生成する処理のプログラムを生成する。以下、その変換処理プログラムの処理内容を説明する。
まず、変換前データ構造パタン指定記憶部101から変換前データ構造パタンが与えられると、読み込み処理生成部102と同様に、図10に示す処理により、図11に示す変換前データの末端要素のパスと配列要素名との対応テーブルを作成する。
次に、変換命令記憶部103から変換命令を読み込み、末端要素の値を表す変換前データに対するパス以外の部分を単に文字列として出力し、変換前データに対するパスの部分は、対応テーブルを参照して配列要素名に置き換え、変数参照により値を出力する。
図14は、変換処理生成部104によって生成されたプログラムの一部の例を示す図である。なお、図14はJava(登録商標)による記述であるがC++など他のプログラミング言語を用いてもよい。
Next, the operation of the conversion processing generation unit 104 when the pre-conversion data shown in FIG. 2, the pre-conversion data structure pattern designation shown in FIG. 7, and the conversion command shown in FIG. 13 are input will be described.
The conversion processing generation unit 104 generates a processing program that reads an array for storing data and generates converted data. Hereinafter, processing contents of the conversion processing program will be described.
First, when the pre-conversion data structure pattern is given from the pre-conversion data structure pattern designation storage unit 101, the end element path of the pre-conversion data shown in FIG. 11 is obtained by the process shown in FIG. Create a correspondence table between and array element names.
Next, the conversion instruction is read from the conversion instruction storage unit 103, and the part other than the path for the pre-conversion data representing the value of the end element is simply output as a character string. The value is output by variable reference.
FIG. 14 is a diagram illustrating an example of a part of a program generated by the conversion processing generation unit 104. FIG. 14 is a description in Java (registered trademark), but other programming languages such as C ++ may be used.

読み込み処理生成部102及び変換処理生成部104において生成される読み込み処理プログラムと変換処理プログラムは、例えば関数ライブラリとして予め作成しておいてもよい。
読み込み処理実行部105は、読み込み処理関数を呼び出すことにより、変換前データの読み込みを行う。また、変換処理実行部106は、変換処理関数を呼び出すことにより、変換前データの変換を実行する。例えば、前述のように生成された読み込み処理プログラムを読み込み処理実行部105が実行することにより、図2に示す変換前データが配列data[x][y][z]に格納される。
図15は、読み込み処理実行部105において読み込み処理プログラムを実行した後の配列要素それぞれの値を示す図である。
次に、図13に示す変換処理プログラムを変換処理実行部106が実行することにより、図3に示す変換後データが生成される。
The read process program and the conversion process program generated by the read process generation unit 102 and the conversion process generation unit 104 may be created in advance as a function library, for example.
The read process execution unit 105 reads the pre-conversion data by calling a read process function. The conversion processing execution unit 106 performs conversion of the pre-conversion data by calling a conversion processing function. For example, when the read processing execution unit 105 executes the read processing program generated as described above, the pre-conversion data shown in FIG. 2 is stored in the array data [x] [y] [z].
FIG. 15 is a diagram illustrating values of the array elements after the read process execution unit 105 executes the read process program.
Next, the conversion processing execution unit 106 executes the conversion processing program shown in FIG. 13, thereby generating post-conversion data shown in FIG.

以上のように、実施の形態1によれば、読み込み処理生成部102が変換前データ構造パタン指定に基づいて、変換前データをデータ格納用配列に格納する処理のプログラムを生成し、変換処理生成部104が、変換命令と変換前データ構造パタンに基づいて変換後データを生成する処理のプログラムを生成するようにした。これにより、変換対象データや変換処理にとって最適なデータ構造を用いて末端要素が保持するデータ値を直接アクセスする変換処理を実現でき、さらに、読み込み処理及び変換処理のプログラムを自動で作成できる。また、変換処理実行時には配列要素へのデータの代入と配列要素への参照によって変換処理が行えるため、DOMを使用した場合のように、DOM木の記憶領域やDOM木へのアクセスが必要なく、メモリ使用量を削減して高速にデータ変換を行うことができるという効果が得られる。   As described above, according to the first embodiment, based on the pre-conversion data structure pattern designation, the read processing generation unit 102 generates a processing program for storing the pre-conversion data in the data storage array, and the conversion processing generation The unit 104 generates a processing program for generating post-conversion data based on the conversion command and the pre-conversion data structure pattern. As a result, it is possible to realize a conversion process that directly accesses the data value held by the terminal element using the data structure that is optimal for the conversion target data and the conversion process, and it is possible to automatically create a program for the reading process and the conversion process. In addition, since conversion processing can be performed by assigning data to array elements and referring to array elements when executing conversion processing, there is no need to access a storage area of a DOM tree or a DOM tree as in the case of using DOM. There is an effect that data conversion can be performed at high speed by reducing the memory usage.

実施の形態2.
図16は、実施の形態2によるデータ変換装置200の構成を示すブロック図である。図1と同一の符号は同一の構成要素を表している。
実施の形態2では、データ変換装置200は、変換前データ構造パタン指定記憶部101を備えず、構造パタン判別部201を備えている。
Embodiment 2. FIG.
FIG. 16 is a block diagram showing the configuration of the data conversion apparatus 200 according to the second embodiment. The same reference numerals as those in FIG. 1 represent the same components.
In the second embodiment, the data conversion apparatus 200 does not include the pre-conversion data structure pattern designation storage unit 101 but includes a structure pattern determination unit 201.

次に動作について説明する。
構造パタン判別部201は、変換前データを解析して変換前データ構造パタン指定を生成する。以下、図2に示す変換前データから図7に示す変換前データ構造パタン指定を生成する動作の一例として、DOMを用いた方法について説明する。
Next, the operation will be described.
The structure pattern discriminating unit 201 analyzes the pre-conversion data and generates a pre-conversion data structure pattern designation. Hereinafter, as an example of the operation for generating the pre-conversion data structure pattern designation shown in FIG. 7 from the pre-conversion data shown in FIG. 2, a method using DOM will be described.

DOMのAPIを用いることにより、図2の変換前データから図17に示す木構造(DOM木)を得ることができる。この処理はXercesなど公知のDOM木生成プログラム(DOMパーサ)によって実現されるので説明を省略する。図17中、角の丸い四角で示した木の節点はXML文書の要素に対応しており、要素ノードと呼ぶ。一方、四角で示した木の節点は末端要素の値に対応しており、文字列ノードと呼ぶ。また、DOM木の根にあたるノード(ここでは「DATA1」要素)をルートノードと呼ぶ。   By using the DOM API, the tree structure (DOM tree) shown in FIG. 17 can be obtained from the pre-conversion data shown in FIG. Since this process is realized by a known DOM tree generation program (DOM parser) such as Xerces, description thereof is omitted. In FIG. 17, the nodes of the tree indicated by squares with rounded corners correspond to the elements of the XML document and are called element nodes. On the other hand, the node of the tree indicated by the square corresponds to the value of the end element and is called a character string node. In addition, a node corresponding to the root of the DOM tree (here, “DATA1” element) is referred to as a root node.

図18は、構造パタン判別部201による構造パタン解析処理のフローチャートである。
まず、構造パタン判別部201は、ルートノード「DATA1」を引数として処理を呼び出す(ステップST181)。引数として与えられたノード「DATA1」は、図17に示すように、子ノードに要素ノードを持つ(ステップST182、ステップST183)。また、全ての子ノードのタグ名が異なるため(ステップST184)、それぞれの子ノードを引数として再帰的に処理を呼び出す(ステップST185)。そして、子ノードに対する処理の戻り値をリストとし、その先頭に記号”S”を追加したリストを戻り値とする(ステップST186)。
FIG. 18 is a flowchart of the structure pattern analysis process by the structure pattern determination unit 201.
First, the structure pattern determination unit 201 calls a process with the root node “DATA1” as an argument (step ST181). As shown in FIG. 17, the node “DATA1” given as an argument has element nodes as child nodes (step ST182 and step ST183). Further, since the tag names of all the child nodes are different (step ST184), the process is recursively called with each child node as an argument (step ST185). Then, the return value of the process for the child node is set as a list, and the list with the symbol “S” added to the head is set as the return value (step ST186).

引数ノードが「月」での呼び出しの場合、子ノードに要素ノードはない(ステップST182)。従って、記号”S”を戻り値として返す(ステップST190)。引数ノードが「日」の場合も同様で、記号”S”を戻り値として返す。
一方、引数ノードが「予約」の場合、子ノードは要素ノードを2つ持つが(ステップST182、ステップST183)、タグ名が同一である(ステップST184)。従って、1つの子ノードのみを引数として再帰的に処理を呼び出す(ステップST187)。そして、子ノードに対する戻り値をリストとし、その先頭に記号”R”を追加したリストを戻り値として返す(ステップST188)。
When the argument node is a call with “month”, there is no element node in the child node (step ST182). Therefore, the symbol “S” is returned as a return value (step ST190). The same applies to the case where the argument node is “day”, and the symbol “S” is returned as a return value.
On the other hand, when the argument node is “reserved”, the child node has two element nodes (step ST182 and step ST183), but the tag names are the same (step ST184). Therefore, the process is recursively called with only one child node as an argument (step ST187). Then, a return value for the child node is used as a list, and a list with the symbol “R” added to the head is returned as a return value (step ST188).

引数ノードが「人名」での呼び出しの場合、子ノードに要素ノードを持ち(ステップST182、ステップST183)、全てタグ名が異なる(ステップST184)。従って、それぞれの子ノードを引数として再帰的に処理を呼び出す(ステップST185)。引数ノードが「姓」での呼び出しの場合は、子ノードに要素ノードはない(ステップST182、ステップST183)。従って、記号”S”を戻り値として返す(ステップST190)。引数ノードが「名」の場合も同様である。   In the case of a call with an argument node of “person name”, the child node has an element node (step ST182, step ST183), and the tag names are all different (step ST184). Therefore, the process is recursively called with each child node as an argument (step ST185). When the argument node is a call with “last name”, there is no element node in the child node (step ST182, step ST183). Therefore, the symbol “S” is returned as a return value (step ST190). The same applies when the argument node is “name”.

以上の処理により、ルートノードを引数として処理を呼び出した結果、図19に示す、記号SとRからなるリストが得られる。S型は異なるタグ名の系列なので、S型が入れ子になって連続していても全体として1つのS型とみなすことができる。従って、図19に示すリストに対して、全ての括弧を取り去る平坦化を行い、連続する記号Sを1つのSに縮退させることで、図2に示す変換前データの構造パタンSRSが得られる。   As a result of calling the processing with the root node as an argument by the above processing, a list composed of symbols S and R shown in FIG. 19 is obtained. Since the S type is a series of different tag names, even if the S types are nested and continuous, they can be regarded as one S type as a whole. Therefore, the structure shown in FIG. 2 is obtained by performing flattening to remove all parentheses from the list shown in FIG. 19 and reducing the continuous symbol S to one S, thereby obtaining the structure pattern SRS of the pre-conversion data shown in FIG.

次に、変換前データのタグ構造を解析する処理の一例として、前述の例と同じく、図17に示すDOM木を用いた方法について説明する。
図20は、構造パタン判別部201によるタグ構造解析処理のフローチャートである。
まず、構造パタン判別部201は、ルートノード「DATA1」を引数として処理を呼び出す(ステップST201)。引数で与えられたノード「DATA1」は子ノードに要素ノードを持つ(ステップST202、ステップST203)。また、全ての子ノードのタグ名が異なるため(ステップST204)、それぞれの子ノードを引数として再帰的に当処理を呼び出す(ステップST205)。子ノードに対する処理の戻り値を連結した文字列を生成し(ステップST206)、その先頭に文字列”<DATA1>”を、末尾に文字列”</DATA1>”追加して戻り値とする(ステップST207)。
Next, as an example of processing for analyzing the tag structure of pre-conversion data, a method using the DOM tree shown in FIG.
FIG. 20 is a flowchart of tag structure analysis processing by the structure pattern determination unit 201.
First, the structure pattern determination unit 201 calls a process with the root node “DATA1” as an argument (step ST201). The node “DATA1” given by the argument has an element node as a child node (step ST202, step ST203). Further, since the tag names of all child nodes are different (step ST204), this process is recursively called with each child node as an argument (step ST205). A character string concatenating the return values of the processes for the child nodes is generated (step ST206), and the character string “<DATA1>” is added to the beginning and the character string “</ DATA1>” is added to the end to obtain a return value ( Step ST207).

引数ノードが「月」での呼び出しの場合、子ノードに要素ノードはない。従って、文字列”<月/>”を戻り値として返す(ステップST211)。引数ノードが「日」の場合も同様で文字列”<日/>”を戻り値として返す。
一方、引数ノードが「予約」での呼び出しの場合、子ノードは要素ノードを2つ持つが(ステップST202、ステップST203)、タグ名が同一である(ステップST204)。従って、1つの子ノードのみを引数として再帰的に処理を呼び出す(ステップST208)。子ノードに対する戻り値の先頭に”<予約>”を末尾に”</予約>”を追加した文字列を戻り値とする(ステップST209)。また、「予約」が繰り返し要素であることを記録しておく。
When the argument node is called “month”, there is no element node in the child node. Therefore, the character string “<month />” is returned as a return value (step ST211). Similarly, when the argument node is “day”, the character string “<day />” is returned as a return value.
On the other hand, when the argument node is “reserved”, the child node has two element nodes (step ST202 and step ST203), but the tag names are the same (step ST204). Therefore, the process is recursively called with only one child node as an argument (step ST208). A character string in which “<reservation>” is added to the beginning of the return value for the child node and “</ reservation>” is added to the end is used as the return value (step ST209). In addition, it is recorded that “reservation” is a repetitive element.

引数ノードが「人名」での呼び出しの場合、子ノードに要素ノードを持ち、全てタグ名が異なる。従って、それぞれの子ノードを引数として再帰的に処理を呼び出す(ステップST205)。子ノードに対する戻り値の先頭に”<人名>”を末尾に”</人名>”を追加した文字列を戻り値とする(ステップST207)。引数ノードが「姓」での呼び出しの場合は、子ノードに要素ノードはない。従って、文字列”<姓/>”を戻り値として返す(ステップST211)。引数ノードが「名」の場合も同様である。
以上の処理により、ルートノードを引数として図20の処理を呼び出した結果として、図21に示す文字列が得られる。
In the case of a call with an argument node of “person name”, the child node has an element node and all have different tag names. Therefore, the process is recursively called with each child node as an argument (step ST205). A character string in which “<person name>” is added to the beginning of the return value for the child node and “</ person name>” is added to the end is used as the return value (step ST207). When the argument node is a call with “last name”, the child node has no element node. Therefore, the character string “<last name />” is returned as a return value (step ST211). The same applies when the argument node is “name”.
Through the above processing, the character string shown in FIG. 21 is obtained as a result of calling the processing of FIG. 20 with the root node as an argument.

構造パタン判別部201は、構造パタン解析処理とタグ構造解析処理の結果から、図7に示す変換前データ構造パタン指定を生成する。なお、実施の形態2では、構造パタン解析処理及びタグ構造解析処理に、DOMを用いたが、SAXなど他のAPIを用いて行ってもよい。   The structure pattern determination unit 201 generates a pre-conversion data structure pattern designation shown in FIG. 7 from the results of the structure pattern analysis process and the tag structure analysis process. In the second embodiment, DOM is used for the structure pattern analysis process and the tag structure analysis process. However, other APIs such as SAX may be used.

データ変換装置200は、構造パタン判別部201によって生成された変換前データ構造パタン指定を用いて、変換前データの読み込み処理及び変換処理を行う。読み込み処理及び変換処理については、実施の形態1と同様なので説明を省略する。   The data conversion apparatus 200 performs pre-conversion data read processing and conversion processing using the pre-conversion data structure pattern designation generated by the structure pattern determination unit 201. Since the reading process and the conversion process are the same as those in the first embodiment, description thereof is omitted.

以上のように、実施の形態2によれば、構造パタン判別部201が変換前データを解析して変換前データ構造パタン指定を自動的に生成するようにしたので、人手により変換前データを解析して構造パタン指定を生成する必要がなくなるという効果が得られる。   As described above, according to the second embodiment, the structure pattern discriminating unit 201 analyzes the pre-conversion data and automatically generates the pre-conversion data structure pattern designation, so that the pre-conversion data is manually analyzed. Thus, there is an effect that it is not necessary to generate the structure pattern designation.

実施の形態3.
図22は、実施の形態3によるデータ変換装置300の構成を示すブロック図である。図1または図16と同一の符号は同一の構成要素を表している。実施の形態3では、データ変換装置300は、変換前データスキーマ記憶部301を備えている。
Embodiment 3 FIG.
FIG. 22 is a block diagram showing the configuration of the data conversion apparatus 300 according to the third embodiment. The same reference numerals as those in FIG. 1 or 16 represent the same components. In the third embodiment, the data conversion apparatus 300 includes a pre-conversion data schema storage unit 301.

次に、動作について説明する。
変換前データスキーマ記憶部301には、変換前データの構造を規定するためのスキーマ記述が記憶されている。図23は、図2に示す変換前データに対するスキーマ記述の例を示す図である。このスキーマ記述はDTD(Document Type Definition)と呼ばれるもので、標準化団体であるW3C(World Wide Web Consortium)によって規定されており、XML文書のスキーマ記述として最も一般的に用いられているものである。
図中、「<!ELEMENT DATA1 (月,日,予約)>」のように、「<!ELEMENT」で始まり「>」で終わる記述は要素型宣言と呼ばれる。「DATA1」の部分を要素名、「(月,日,予約)」の部分を内容モデルと呼ぶ。内容モデルにより、要素「DATA1」が「月」「日」「予約」の3つの子要素を持つこと、すなわちタグの入れ子構造が規定されている。「人名」の後ろに指定された「*」は、「人名」要素が任意の回数出現することを意味する。要素「月」「日」「姓」「名」の内容は「(#PCDATA)」によって文字列であることが規定されている。すなわち、これらは子要素を持たない末端要素である。また、開始行の「<!DOCTYPE DATA1」により、開始要素が「DATA1」であることが規定されている。
Next, the operation will be described.
The pre-conversion data schema storage unit 301 stores a schema description for defining the structure of pre-conversion data. FIG. 23 is a diagram illustrating an example of a schema description for the pre-conversion data illustrated in FIG. This schema description is called DTD (Document Type Definition), is defined by W3C (World Wide Web Consortium), which is a standardization organization, and is most commonly used as a schema description of an XML document.
In the figure, a description that starts with “<! ELEMENT” and ends with “>”, such as “<! ELEMENT DATA1 (month, day, reservation)>” is called an element type declaration. The part “DATA1” is called an element name, and the part “(month, day, reservation)” is called a content model. The content model defines that the element “DATA1” has three child elements “month”, “day”, and “reservation”, that is, a nested tag structure. “*” Specified after “person name” means that the “person name” element appears any number of times. The contents of the elements “month”, “day”, “last name”, and “first name” are defined as a character string by “(#PCDATA)”. That is, these are end elements that do not have child elements. Further, “<! DOCTYPE DATA1” in the start line defines that the start element is “DATA1”.

構造パタン判別部201は、変換前データスキーマ記憶部301内の変換前データのスキーマ記述を参照し、変換前データ構造パタン指定を生成する。
以下、図23に示すスキーマ記述に基づいて、図7の変換前データ構造パタン指定を生成する例について説明する。処理は大きく分けて、スキーマ記述から変換前データのタグ構造を表すDOM木を生成する工程と、得られたDOM木を解析して変換前データ構造パタン指定を生成する工程に分けられる。
図24は、前者の処理のフローチャートである。また、後者の処理は実施の形態2と同様であるため説明を省略する。なお、図24に示す例は、DTDの内容モデルに対する処理のみで、それ以外の内容モデルに対する処理を含んでいない。しかし、それらを追加することは容易であり、また図23のスキーマ記述から図7の変換前データ構造パタン指定の生成処理の説明を主眼とするため、必要な処理のみについて述べる。
The structure pattern determination unit 201 refers to the schema description of the pre-conversion data in the pre-conversion data schema storage unit 301 and generates a pre-conversion data structure pattern designation.
Hereinafter, an example of generating the pre-conversion data structure pattern designation of FIG. 7 based on the schema description shown in FIG. 23 will be described. Processing is roughly divided into a process of generating a DOM tree representing the tag structure of pre-conversion data from the schema description and a process of generating the pre-conversion data structure pattern specification by analyzing the obtained DOM tree.
FIG. 24 is a flowchart of the former process. Further, the latter process is the same as that of the second embodiment, and the description thereof is omitted. Note that the example shown in FIG. 24 includes only processing for the DTD content model, and does not include processing for other content models. However, it is easy to add them, and since only the necessary processing is described from the schema description of FIG. 23 to the description of the generation processing of the pre-conversion data structure pattern specification of FIG.

まず、構造パタン判別部201は、スキーマ記述により開始要素が「DATA1」であることがわかるので、タグ名「DATA1」を持つノードを生成してルートノードとする。そして、ルートノードを引数として図24に示すDOM木生成処理を呼び出す(ステップST241)。
次に、引数で与えられたノードのタグ名は「DATA1」であるので、対応する要素型宣言をスキーマ記述から参照し、内容モデルとして「(月,日,予約)」を取得する(ステップST242)。
次に、内容モデルの「月」に対して処理を行う。「月」は要素であるので、タグ名が「月」であるノードを新たに生成してルートノードの子ノードとして登録する(ステップST243〜ステップST245)。次に、新たに生成したノードを引数として図24の処理を再帰的に呼び出す(ステップST246)。
First, since the structure pattern discriminating unit 201 knows that the start element is “DATA1” from the schema description, it generates a node having the tag name “DATA1” as a root node. Then, the DOM tree generation process shown in FIG. 24 is called with the root node as an argument (step ST241).
Next, since the tag name of the node given by the argument is “DATA1”, the corresponding element type declaration is referred from the schema description, and “(month, day, reservation)” is acquired as the content model (step ST242). ).
Next, processing is performed on the “month” of the content model. Since “month” is an element, a node whose tag name is “month” is newly generated and registered as a child node of the root node (step ST243 to step ST245). Next, the process of FIG. 24 is recursively called with the newly generated node as an argument (step ST246).

タグ名「月」を持つノードを引数として処理を呼び出した場合、スキーマ記述中の「月」に対する要素型宣言より、要素「月」の内容モデルとして「(#PCDATA)」が取得される。これは要素ではなく文字列であるため、ステップST245〜246の処理は行わない(ステップST244)。   When the process is called with the node having the tag name “month” as an argument, “(#PCDATA)” is acquired as the content model of the element “month” from the element type declaration for “month” in the schema description. Since this is not an element but a character string, steps ST245 to 246 are not performed (step ST244).

次に、内容モデルの「日」についても新たにノードを生成して再帰的に図24の処理を呼び出す。ノード「日」に対する呼び出し処理はノード「月」と同様である。
次に、内容モデルの「予約」に対して新たにノードを生成してルートノードの子ノードとして登録し、生成したノードを引数として図24の処理を再帰的に呼び出す。
Next, a new node is also generated for the “day” of the content model, and the process of FIG. 24 is recursively called. The calling process for the node “day” is the same as that for the node “month”.
Next, a new node is generated for the “reservation” of the content model and registered as a child node of the root node, and the process of FIG. 24 is recursively called with the generated node as an argument.

タグ名「予約」を持つノードを引数として処理を呼び出した場合には、スキーマ記述中の「予約」に対する要素型宣言より、要素「予約」の内容モデルとして「(人名*)」が得られる。「人名」は要素なので、新たにノードを生成してノード「予約」の子ノードとして登録し、生成したノードを引数として図24の処理を再帰的に呼び出す。以下、同様に再帰的に処理を繰り返すことにより、最終的に図25に示すDOM木が得られる。DOM木が得られたら、図18及び図20に示す実施の形態2と同様の処理により、図7の変換前データ構造パタン指定を生成する。   When the process is called with a node having the tag name “reserved” as an argument, “(person name *)” is obtained as the content model of the element “reserved” from the element type declaration for “reserved” in the schema description. Since “person name” is an element, a new node is generated and registered as a child node of the node “reservation”, and the process of FIG. 24 is recursively called with the generated node as an argument. Thereafter, the DOM tree shown in FIG. 25 is finally obtained by repeating the process recursively in the same manner. When the DOM tree is obtained, the pre-conversion data structure pattern designation of FIG. 7 is generated by the same processing as in the second embodiment shown in FIGS.

なお、以上の説明ではスキーマ記述としてDTDを用いた例を説明したが、W3Cが規定するXMLスキーマなど他のスキーマ記述方法を用いてもよい。
データ変換装置300は、構造パタン判別部201によって生成された変換前データ構造パタン指定を用いて、変換前データの読み込み処理及び変換処理を行う。読み込み処理及び変換処理については、実施の形態1と同様なので説明を省略する。
In the above description, an example using DTD as the schema description has been described, but other schema description methods such as an XML schema defined by the W3C may be used.
The data conversion apparatus 300 performs pre-conversion data reading processing and conversion processing using the pre-conversion data structure pattern designation generated by the structure pattern determination unit 201. Since the reading process and the conversion process are the same as those in the first embodiment, description thereof is omitted.

以上のように実施の形態3によれば、変換前データスキーマ記憶部301に記憶されたスキーマ記述から、構造パタン判別部201が変換前データ構造パタン指定を自動的に生成するようにしたので、人手によりスキーマ記述を解析して構造パタン指定を生成する必要がないという効果が得られる。また、実際の変換前データのサンプルが無く、スキーマ記述のみが与えられている場合でも、読み込み処理および変換処理が生成できるという効果がある。   As described above, according to the third embodiment, the structure pattern determination unit 201 automatically generates the pre-conversion data structure pattern designation from the schema description stored in the pre-conversion data schema storage unit 301. There is an effect that it is not necessary to manually analyze the schema description and generate a structure pattern specification. In addition, there is an effect that even when there is no actual sample of pre-conversion data and only the schema description is given, the reading process and the conversion process can be generated.

実施の形態4.
図26は、実施の形態4によるデータ変換装置400の構成を示すブロック図である。図1と同一の符号は同一の構成要素を表している。実施の形態4では、データ変換装置400は、変換命令生成部401、変換後データスキーマ記憶部402、末端要素変換命令記憶部403を備えている。
Embodiment 4 FIG.
FIG. 26 is a block diagram showing a configuration of a data conversion apparatus 400 according to the fourth embodiment. The same reference numerals as those in FIG. 1 represent the same components. In the fourth embodiment, the data conversion apparatus 400 includes a conversion command generation unit 401, a post-conversion data schema storage unit 402, and a terminal element conversion command storage unit 403.

次に、動作について説明する。
末端要素変換命令記憶部403には、末端要素変換命令が記憶されている。末端要素変換命令は、変換後データの末端要素のタグ名と、末端要素の値として用いる変換前データを指し示すパスの対応表である。図27は、末端要素変換命令の一例を示す図である。例えば、変換後データの末端要素「日付」には、変換前データに対するパス「/DATA1/月」および「/DATA1/日」によって指定される値を用いることを意味する。
Next, the operation will be described.
The terminal element conversion command storage unit 403 stores terminal element conversion commands. The terminal element conversion command is a correspondence table between a tag name of the terminal element of the converted data and a path indicating the pre-conversion data used as the value of the terminal element. FIG. 27 is a diagram illustrating an example of a terminal element conversion command. For example, the end element “date” of the converted data means that a value specified by the paths “/ DATA1 / month” and “/ DATA1 / day” with respect to the data before conversion is used.

変換後データスキーマ記憶部402には、変換後データの構造情報を表すスキーマが記憶される。図28は、実施の形態3で説明したDTDで変換後データのスキーマを記述した例を示す図である。   The post-conversion data schema storage unit 402 stores a schema representing the structure information of post-conversion data. FIG. 28 is a diagram illustrating an example in which a schema of converted data is described by the DTD described in the third embodiment.

変換命令生成部401は、末端要素変換命令と変換後データスキーマに基づいて変換命令を生成する。変換命令生成部401の処理は、変換処理生成部104による変換処理生成に先だって行うものであるため、例えばDOMを用いて実現すればよい。基本的な処理の流れは、DTDからDOM木を生成し、開始要素に対応するDOM木の根(ルートノード)から、深さ優先で木をなぞりながら要素名を出力して図13に示すような変換命令を生成する。   The conversion command generation unit 401 generates a conversion command based on the end element conversion command and the converted data schema. Since the process of the conversion instruction generation unit 401 is performed prior to the generation of the conversion process by the conversion process generation unit 104, it may be realized using, for example, DOM. The basic processing flow is to generate a DOM tree from DTD, output the element name from the root (root node) of the DOM tree corresponding to the start element, tracing the tree with depth priority, and convert as shown in FIG. Generate instructions.

以下、図29を用いて、図27に示す末端要素変換命令と、図28に示す変換後データのスキーマを例にとり説明する。まず、開始要素「DATA2」に対するDOM木のノードを生成する(図29”DATA2”)。これがルートノードとなる。次に、要素「DATA2」に対する要素型宣言を参照すると、子要素は「予約項目」であるため、図に示すように、「予約項目」に対するDOM木のノードをルートノードの子ノードとして生成する。また、「予約項目」は繰り返し要素と指定されているので、ルートノードのrepeat属性の値として要素名「予約項目」を記録しておく。同様に、「予約項目」の子ノードとして、「日付」および「氏名」に対するノードを生成する。「日付」要素は子要素を持たない末端要素である。図27の末端要素変換命令から、「日付」要素に対する変換前データに対するパスは「/DATA1/月 /DATA1/日」であるため、この文字列を値として持つノードを生成して「日付」要素に対するノードの子ノードとして登録する。「氏名」要素に対しても同様に処理を行い、最終的に図29に示すDOM木が得られる。   Hereinafter, the terminal element conversion instruction shown in FIG. 27 and the converted data schema shown in FIG. 28 will be described as examples with reference to FIG. First, a node of the DOM tree for the start element “DATA2” is generated (FIG. 29 “DATA2”). This becomes the root node. Next, referring to the element type declaration for the element “DATA2”, since the child element is “reserved item”, the node of the DOM tree for “reserved item” is generated as a child node of the root node as shown in the figure. . Since “reserved item” is designated as a repeated element, the element name “reserved item” is recorded as the value of the repeat attribute of the root node. Similarly, nodes for “date” and “name” are generated as child nodes of “reservation item”. The “date” element is a terminal element having no child elements. From the terminal element conversion command of FIG. 27, the path for the pre-conversion data for the “date” element is “/ DATA1 / month / DATA1 / day”, so a node having this character string as a value is generated and the “date” element Register as a child node of the node for. The same processing is performed for the “name” element, and finally the DOM tree shown in FIG. 29 is obtained.

変換命令生成部401は、生成されたDOM木をXML文字列に変換する。具体的な変換処理としては、前述したように、ルートノードから深さ優先で木を辿りながら各ノードに保持された要素名や末端要素の値を順次出力すればよい。あるいは、W3C規定のDOMの標準APIであるDOM Level3 Load and Saveに規定されている、DOM木をXML文字列として書き出すLSSerializerインタフェースを実装した処理系を用いてもよい。いずれの方法でも、DOM木を等価なXML文字列に変換する公知の処理が存在するので、それを用いればよい。なお、以上の説明ではスキーマ記述としてDTDを用いた例を説明したが、W3Cが規定するXMLスキーマなど他のスキーマ記述方法を用いてもよい。
変換処理生成部104は、変換命令生成部401によって生成された変換命令を用いて変換処理プログラムを生成する。変換処理プログラムの内容と読み込み処理については、実施の形態1と同様なので説明を省略する。また、変換前データ構造パタン指定は、実施の形態2あるいは実施の形態3と同様に構造パタン判別部201によって生成するようにしてもよい。
The conversion command generation unit 401 converts the generated DOM tree into an XML character string. As a specific conversion process, as described above, the element name and the value of the terminal element held in each node may be sequentially output while tracing the tree from the root node with depth priority. Alternatively, a processing system in which an LS Serializer interface for writing a DOM tree as an XML character string, which is defined in DOM Level 3 Load and Save, which is a DOM standard API defined in W3C, may be used. In any method, there is a known process for converting a DOM tree into an equivalent XML character string. In the above description, an example using DTD as the schema description has been described, but other schema description methods such as an XML schema defined by the W3C may be used.
The conversion processing generation unit 104 generates a conversion processing program using the conversion instruction generated by the conversion instruction generation unit 401. Since the contents of the conversion processing program and the reading process are the same as those in the first embodiment, description thereof is omitted. The pre-conversion data structure pattern designation may be generated by the structure pattern determination unit 201 as in the second or third embodiment.

以上のように、実施の形態4によれば、末端要素変換命令記憶部403に末端要素変換命令を記憶し、変換後データスキーマ記憶部402に変換後データの構造情報スキーマを記述しておき、変換命令生成部401が末端要素変換命令と変換後データスキーマに基づいて変換命令を生成するようにしたので、変換後データの構造がスキーマで与えられている場合に、末端要素の対応関係だけを規定することで変換処理が行え、スキーマから具体的な変換命令を人手により作成する必要がないという効果がある。
また、スキーマを変更することで、末端要素の対応関係は保ったまま、変換後データの構造を任意に変更できるという効果が得られる。
As described above, according to the fourth embodiment, the terminal element conversion instruction is stored in the terminal element conversion instruction storage unit 403, and the structure information schema of the converted data is described in the converted data schema storage unit 402. Since the conversion command generation unit 401 generates a conversion command based on the terminal element conversion command and the post-conversion data schema, when the structure of the post-conversion data is given by the schema, only the correspondence relationship of the terminal element is obtained. By defining, conversion processing can be performed, and there is an effect that it is not necessary to manually create a specific conversion instruction from the schema.
Further, by changing the schema, it is possible to obtain an effect that the structure of the converted data can be arbitrarily changed while maintaining the correspondence of the end elements.

実施の形態5.
図30は、実施の形態5によるデータ変換装置500の構成を示すブロック図である。図1と同一の符号は同一の構成要素を表している。
実施の形態5では、データ変換装置500は、処理選択部501、処理記憶部502、処理生成起動部503、構造パタン・変換命令記憶部504を備えている。
Embodiment 5. FIG.
FIG. 30 is a block diagram showing a configuration of a data conversion apparatus 500 according to the fifth embodiment. The same reference numerals as those in FIG. 1 represent the same components.
In the fifth embodiment, the data conversion apparatus 500 includes a process selection unit 501, a process storage unit 502, a process generation activation unit 503, and a structure pattern / conversion command storage unit 504.

次に、動作について説明する。
構造パタン・変換命令記憶部504には、実施の形態1による変換前データ構造パタン指定記憶部101が記憶している変換前データ構造パタン指定と、変換命令記憶部103が記憶している変換命令の組(以後、読み込み・変換指定と称す。)が複数記憶されている。図31にその一例を示す。読み込み・変換指定は、要素<TRANS>の子要素<RULE>に変換前データ構造パタン指定と変換命令の組が記述されている。図31に示す読み込み・変換指定には、<RULE>要素が2つ含まれており、1つ目の<RULE>要素は図7に示す変換前データ構造パタン指定と図13に示す変換命令の組が記述されている。
Next, the operation will be described.
The structure pattern / conversion command storage unit 504 stores the pre-conversion data structure pattern specification stored in the pre-conversion data structure pattern specification storage unit 101 according to the first embodiment and the conversion command stored in the conversion command storage unit 103. A plurality of sets (hereinafter referred to as read / conversion designation) are stored. An example is shown in FIG. In the read / conversion specification, a combination of a pre-conversion data structure pattern specification and a conversion instruction is described in a child element <RULE> of the element <TRANS>. The read / conversion specification shown in FIG. 31 includes two <RULE> elements. The first <RULE> element includes the pre-conversion data structure pattern specification shown in FIG. 7 and the conversion instruction shown in FIG. A set is described.

処理生成起動部503は、構造パタン・変換命令記憶部504から読み込み・変換指定を読み出し、読み込み・変換指定中の変換前データ構造パタン指定を読み込み処理生成部102へ供給し、変換命令を変換処理生成部104へ供給する。
読み込み処理生成部102は、実施の形態1と同様の動作で読み込み処理プログラムを生成し、生成した読み込み処理プログラムを処理生成起動部503へ返す。
また、変換処理生成部104も実施の形態1と同様の動作で変換処理プログラムを生成し、生成した変換処理プログラムを処理生成起動部503へ返す。
処理生成起動部503は、読み込み処理プログラムと変換処理プログラムの組を、読み込み・変換指定に付与して処理記憶部502に出力する。
この時、図31に示す読み込み・変換指定中の一番目の<RULE>要素に含まれる変換前データ構造パタン指定に対する読み込み処理プログラムがparser1という名前のファイルに格納され、変換命令に対する変換処理プログラムがtranslator1という名前のファイルに格納されたとする。また、図31の二番目の<RULE>要素に含まれる変換前データ構造パタン指定に対する読み込み処理プログラムがparser2という名前のファイルに格納され、変換命令に対する変換処理プログラムがtranslator2という名前のファイルに格納されたとする。この場合、処理生成起動部503は、図32に示すように、<RULE>要素のparser属性およびtranslator属性で、生成された処理プログラムが格納されたファイル名を指定して処理記憶部502に出力する。
処理記憶部502は、処理生成起動部503によってファイル名が追加された読み込み・変換指定と、読み込み処理プログラム及び変換処理プログラムのファイルを記憶する。
The process generation activation unit 503 reads the read / conversion specification from the structure pattern / conversion instruction storage unit 504, supplies the pre-conversion data structure pattern specification during the read / conversion specification to the read process generation unit 102, and converts the conversion instruction into a conversion process. This is supplied to the generation unit 104.
The read process generation unit 102 generates a read process program by the same operation as in the first embodiment, and returns the generated read process program to the process generation start unit 503.
Also, the conversion processing generation unit 104 generates a conversion processing program by the same operation as that of the first embodiment, and returns the generated conversion processing program to the processing generation start unit 503.
The process generation start unit 503 assigns a set of the read process program and the conversion process program to the read / conversion specification and outputs the read / converted program to the process storage unit 502.
At this time, the read processing program for the pre-conversion data structure pattern specification included in the first <RULE> element in the read / conversion specification shown in FIG. 31 is stored in a file named parser1, and the conversion processing program for the conversion command is executed. It is assumed that the file is stored in a file named “translator1”. In addition, the read processing program for the pre-conversion data structure pattern specification included in the second <RULE> element of FIG. 31 is stored in a file named parser2, and the conversion processing program for the conversion instruction is stored in a file named translator2. Suppose. In this case, as shown in FIG. 32, the process generation activation unit 503 designates the file name in which the generated process program is stored with the parser attribute and the translator attribute of the <RULE> element, and outputs them to the process storage unit 502 To do.
The process storage unit 502 stores a read / conversion specification to which a file name is added by the process generation activation unit 503, a read process program, and a file of the conversion process program.

処理選択部501は、変換前データの変換処理を行う際、入力された変換前データ構造パタン指定に対応する処理プログラムを処理記憶部502より取得する。例えば、図7に示す変換前データ構造パタン指定が入力された場合、図32に示す読み込み・変換指定から、読み込み処理プログラムはparser1、変換処理プログラムはtranslator1というファイルとして保持されていることが分かる。従って、処理選択部501は、これらのファイルに格納された処理プログラムを読み込み処理実行部105及び変換処理実行部106へ供給する。
なお、処理選択部501に入力される変換前データ構造パタン指定は、実施の形態1のように変換前データ構造パタン指定記憶部101から供給してもよいし、実施の形態2あるいは実施の形態3と同様に構造パタン判別部201によって生成するようにしてもよい。
The processing selection unit 501 acquires a processing program corresponding to the input pre-conversion data structure pattern designation from the processing storage unit 502 when performing the conversion processing of the pre-conversion data. For example, when the pre-conversion data structure pattern specification shown in FIG. 7 is input, it can be seen from the read / conversion specification shown in FIG. 32 that the read processing program is held as parser1 and the conversion processing program is held as a file called translator1. Therefore, the process selection unit 501 reads the processing programs stored in these files and supplies them to the process execution unit 105 and the conversion process execution unit 106.
The pre-conversion data structure pattern designation input to the process selection unit 501 may be supplied from the pre-conversion data structure pattern designation storage unit 101 as in the first embodiment, or may be the second embodiment or the second embodiment. 3 may be generated by the structure pattern determination unit 201.

以上のように、実施の形態5によれば、構造パタン・変換命令記憶部504が、変換前データの構造パタン及びタグ構造と変換命令を組にして保持し、処理生成起動部503が読み込み処理生成部102と変換処理生成部104により生成された読み込み処理プログラムと変換処理プログラムを組にして出力し、処理記憶部502が読み込み処理プログラムと変換処理プログラムの組を記憶し、処理選択部501が変換前データ構造パタン指定に対応した読み込み処理プログラムと変換処理プログラムを選択するようにしたので、予め複数の読み込み・変換指定を用意しておくことにより、異なる構造パタンを持つ変換前データに対して、変換前データに応じた処理を動的に選択して変換処理を実行することができる。   As described above, according to the fifth embodiment, the structure pattern / conversion instruction storage unit 504 holds the structure pattern of the pre-conversion data, the tag structure, and the conversion instruction as a set, and the process generation activation unit 503 performs the read process. The reading processing program and the conversion processing program generated by the generation unit 102 and the conversion processing generation unit 104 are output as a set, the processing storage unit 502 stores the reading processing program and the conversion processing program, and the processing selection unit 501 Since the read processing program and conversion processing program corresponding to the pre-conversion data structure pattern specification are selected, by preparing multiple read / conversion specifications in advance, for pre-conversion data with different structure patterns The conversion process can be executed by dynamically selecting a process according to the pre-conversion data.

この発明の実施の形態1による、データ変換装置の構成を示すブロック図である。It is a block diagram which shows the structure of the data converter by Embodiment 1 of this invention. この発明の実施の形態1による、変換前XMLデータの例を示す図である。It is a figure which shows the example of the XML data before conversion by Embodiment 1 of this invention. この発明の実施の形態1による、図2に示す変換前XMLデータの変換後データを示す図である。It is a figure which shows the data after conversion of the XML data before conversion shown in FIG. 2 by Embodiment 1 of this invention. この発明の実施の形態1による、S型の構造パタンを持つXMLデータの一例を示す図である。It is a figure which shows an example of the XML data with an S type structure pattern by Embodiment 1 of this invention. この発明の実施の形態1による、R型の構造パタンを持つXMLデータの一例を示す図である。It is a figure which shows an example of the XML data with an R type structure pattern by Embodiment 1 of this invention. この発明の実施の形態1による、この規則に準拠したXMLデータの例を示す図である。It is a figure which shows the example of the XML data based on this rule by Embodiment 1 of this invention. この発明の実施の形態1による、変換前データ構造パタン指定をXMLで記述した例を示す図である。It is a figure which shows the example which described the data structure pattern designation | designated before conversion by XML by Embodiment 1 of this invention. この発明の実施の形態1による、データ格納配列の例を示す図である。It is a figure which shows the example of the data storage arrangement | sequence by Embodiment 1 of this invention. この発明の実施の形態1による、データ格納配列の例を示す図である。It is a figure which shows the example of the data storage arrangement | sequence by Embodiment 1 of this invention. この発明の実施の形態1による、末端要素と配列要素名との対応テーブルの作成処理のフローチャートである。It is a flowchart of the creation process of the correspondence table of the end element and the array element name according to the first embodiment of the present invention. この発明の実施の形態1による、末端要素のパスと配列要素名との対応テーブルの例を示す図である。It is a figure which shows the example of the corresponding | compatible table of the path | route of an end element, and an array element name by Embodiment 1 of this invention. この発明の実施の形態1による、変換前データの末端要素の値を配列に代入する処理のフローチャートである。It is a flowchart of the process by which the value of the terminal element of the data before conversion is substituted to an array by Embodiment 1 of this invention. この発明の実施の形態1による、変換命令の例を示す図である。It is a figure which shows the example of the conversion command by Embodiment 1 of this invention. この発明の実施の形態1による、変換処理生成部によって生成されたプログラムの例を示す図である。It is a figure which shows the example of the program produced | generated by the conversion process production | generation part by Embodiment 1 of this invention. この発明の実施の形態1による、読み込み処理実行部において読み込み処理プログラムを実行した後の配列要素の値の例を示す図である。It is a figure which shows the example of the value of the array element after performing the reading process program in the reading process execution part by Embodiment 1 of this invention. この発明の実施の形態2による、データ変換装置の構成を示すブロック図である。It is a block diagram which shows the structure of the data converter by Embodiment 2 of this invention. この発明の実施の形態2による、変換前データに基づいて生成されるDOM木の例を示す図である。It is a figure which shows the example of the DOM tree produced | generated based on the data before conversion by Embodiment 2 of this invention. この発明の実施の形態2による、構造パタン判別部による構造パタン解析処理のフローチャートである。It is a flowchart of the structure pattern analysis process by the structure pattern discrimination | determination part by Embodiment 2 of this invention. この発明の実施の形態2による、構造パタン解析処理によって得られるリストの例を示す図である。It is a figure which shows the example of the list | wrist obtained by the structure pattern analysis process by Embodiment 2 of this invention. この発明の実施の形態2による、構造パタン判別部によるタグ構造解析処理のフローチャートである。It is a flowchart of the tag structure analysis process by the structure pattern discrimination | determination part by Embodiment 2 of this invention. この発明の実施の形態2による、タグ構造解析処理によって得られるリストの例を示す図である。It is a figure which shows the example of the list | wrist obtained by the tag structure analysis process by Embodiment 2 of this invention. この発明の実施の形態3による、データ変換装置の構成を示すブロック図である。It is a block diagram which shows the structure of the data converter by Embodiment 3 of this invention. この発明の実施の形態3による、変換前データに対するスキーマ記述の例を示す図である。It is a figure which shows the example of the schema description with respect to the data before conversion by Embodiment 3 of this invention. この発明の実施の形態3による、スキーマ記述から変換前データのタグ構造を表すDOM木を生成する処理のフローチャートである。It is a flowchart of the process which produces | generates the DOM tree showing the tag structure of the data before conversion from the schema description by Embodiment 3 of this invention. この発明の実施の形態3による、スキーマ記述から変換前データのタグ構造を表すDOM木を生成する処理によって得られたDOM木の例を示す図である。It is a figure which shows the example of the DOM tree obtained by the process which produces | generates the DOM tree showing the tag structure of the data before conversion from schema description by Embodiment 3 of this invention. この発明の実施の形態4による、データ変換装置の構成を示すブロック図である。It is a block diagram which shows the structure of the data converter by Embodiment 4 of this invention. この発明の実施の形態4による、末端要素変換命令の一例を示す図である。It is a figure which shows an example of the terminal element conversion command by Embodiment 4 of this invention. この発明の実施の形態4による、DTDで変換後データのスキーマを記述した例を示す図である。It is a figure which shows the example which described the schema of the data after conversion by DTD by Embodiment 4 of this invention. この発明の実施の形態4による変換命令生成処理を説明する図である。It is a figure explaining the conversion command production | generation process by Embodiment 4 of this invention. この発明の実施の形態5による、データ変換装置の構成を示すブロック図である。It is a block diagram which shows the structure of the data converter by Embodiment 5 of this invention. この発明の実施の形態5による、構造パタン・変換命令記憶部に記憶されている読み込み・変換指定の例を示す図である。It is a figure which shows the example of the read / conversion designation | designated memorize | stored in the structure pattern and conversion command memory | storage part by Embodiment 5 of this invention. この発明の実施の形態5による、処理プログラムファイル名が属性として記述された読み込み・変換指定の例を示す図である。It is a figure which shows the example of the read / conversion designation | designated by which the processing program file name was described as an attribute by Embodiment 5 of this invention.

符号の説明Explanation of symbols

100,200,300,400,500 データ変換装置、101 変換前データ構造パタン指定記憶部、102 読み込み処理生成部(読み込み処理実行部)、103 変換命令記憶部、104 変換処理生成部(変換処理実行部)、105 読み込み処理実行部、106 変換処理実行部、201 構造パタン判別部、301 変換前データスキーマ記憶部、401 変換命令生成部、402 変換後データスキーマ記憶部、403 末端要素変換命令記憶部、501 処理選択部、502 処理記憶部、503 処理生成起動部、504 構造パタン・変換命令記憶部。   100, 200, 300, 400, 500 Data conversion device, 101 Pre-conversion data structure pattern designation storage unit, 102 Read processing generation unit (read processing execution unit), 103 Conversion instruction storage unit, 104 Conversion processing generation unit (Conversion processing execution) Part), 105 reading process execution part, 106 conversion process execution part, 201 structure pattern determination part, 301 pre-conversion data schema storage part, 401 conversion instruction generation part, 402 post-conversion data schema storage part, 403 terminal element conversion instruction storage part , 501 Process selection unit, 502 Process storage unit, 503 Process generation start unit, 504 Structure pattern / conversion command storage unit.

Claims (5)

構造化文書を、異なるデータ構造に変換するデータ変換装置であって、
変換前データの構造を基本構造パタンの組み合わせとして表現した構造パタンと、上記変換前データのタグの親子関係を表すタグ構造を含む変換前データ構造パタン指定を記憶する変換前データ構造パタン指定記憶部と、
上記変換前データ構造パタン指定に基づいて、上記変換前データの末端要素データ値を格納するデータ格納用配列の次元数を決定し、上記末端要素のデータ値を上記データ格納用配列に格納する読み込み処理実行部と、
上記変換前データを上記異なるデータ構造に変換するための変換規則を記述した変換命令を記憶する変換命令記憶部と、
上記変換前データ構造パタン指定に基づいて、上記データ格納用配列に格納された上記変換前データの末端要素のデータ値を上記変換命令に従って処理し、変換後データとして出力する変換処理実行部を備えたデータ変換装置。
A data conversion device for converting a structured document into a different data structure,
Pre-conversion data structure pattern specification storage unit for storing a pre-conversion data structure pattern specification including a structure pattern expressing the structure of pre-conversion data as a combination of basic structure patterns and a tag structure representing a parent-child relationship of the tags of the pre-conversion data When,
Based on the pre-conversion data structure pattern specification, the number of dimensions of the data storage array for storing the terminal element data value of the pre-conversion data is determined, and the data value of the terminal element is read into the data storage array A process execution unit;
A conversion instruction storage unit for storing a conversion instruction describing a conversion rule for converting the pre-conversion data into the different data structure;
Based on the pre-conversion data structure pattern specification, a conversion processing execution unit that processes the data value of the terminal element of the pre-conversion data stored in the data storage array according to the conversion command and outputs the data as post-conversion data Data converter.
変換前データを解析し、その変換前データ構造パタン指定を生成する構造パタン判別部を備えたことを特徴とする請求項1記載のデータ変換装置。   2. The data conversion apparatus according to claim 1, further comprising a structure pattern discriminating unit that analyzes the pre-conversion data and generates a pre-conversion data structure pattern designation. 構造パタン判別部は、変換前データのスキーマ情報に基づいて変換前データ構造パタン指定を生成することを特徴とする請求項2記載のデータ変換装置。   3. The data conversion apparatus according to claim 2, wherein the structure pattern determination unit generates a pre-conversion data structure pattern designation based on the schema information of the pre-conversion data. 変換前データと変換後データの間での末端要素の対応関係を記憶する末端要素変換命令記憶部と、
上記変換後データのスキーマ情報を記憶する変換後データスキーマ記憶部と、
上記末端要素の対応関係と上記変換後データのスキーマ情報に基づいて、変換命令を生成する変換命令生成部を備えたことを特徴とする請求項1から請求項3のうちのいずれか1項記載のデータ変換装置。
A terminal element conversion instruction storage unit that stores the correspondence of terminal elements between pre-conversion data and post-conversion data;
A post-conversion data schema storage unit that stores schema information of the post-conversion data;
The conversion command generation unit that generates a conversion command based on the correspondence relationship between the terminal elements and the schema information of the converted data is provided. Data converter.
変換前データ構造パタン指定に基づいて、変換前データの末端要素データ値を格納するデータ格納用配列の次元数を決定し、末端要素のデータ値をデータ格納用配列に格納するための、読み込み処理プログラムを生成する読み込み処理生成部と、
上記変換前データ構造パタン指定に基づいて、上記データ格納用配列に格納された上記変換前データの末端要素のデータ値を変換命令に従って処理し、変換後データとして出力するための、変換処理プログラムを生成する変換処理生成部と、
上記変換前データ構造パタン指定と上記変換命令の組を複数記憶する構造パタン・変換命令記憶部と、
上記構造パタン・変換命令記憶部から、上記変換前データ構造パタン指定を取得して上記読み込み処理生成部へ供給し、上記変換命令を取得して上記変換処理生成部へ供給し、上記読み込み処理生成部から取得した読み込み処理プログラムと上記変換処理生成部から取得した変換処理プログラムを、上記構造パタン・変換命令記憶部から取得した変換前データ構造パタン指定と変換命令の組に付加して出力する処理生成起動部と、
上記処理生成起動部の出力結果を記憶する処理記憶部と、
上記処理記憶部を参照し、変換処理時に指定された変換前データ構造パタン指定に対応する読み込み処理プログラムと変換処理プログラムを上記処理記憶部から取得し、それぞれ読み込み処理実行部と変換処理実行部に供給する処理選択部を備え、
上記読み込み処理実行部と上記変換処理実行部は、上記処理選択部から供給された読み込み処理プログラム及び変換処理プログラムを実行することを特徴とする請求項1から請求項3のうちのいずれか1項記載のデータ変換装置。
Based on the pre-conversion data structure pattern specification, the number of dimensions of the data storage array for storing the end element data value of the pre-conversion data is determined, and the read process for storing the end element data value in the data storage array A load generation unit for generating a program;
A conversion processing program for processing the data value of the terminal element of the pre-conversion data stored in the data storage array according to the conversion command based on the pre-conversion data structure pattern specification and outputting as the post-conversion data A conversion processing generation unit to generate,
A structure pattern / conversion instruction storage unit for storing a plurality of combinations of the pre-conversion data structure pattern designation and the conversion instruction;
The pre-conversion data structure pattern designation is acquired from the structure pattern / conversion command storage unit and supplied to the read processing generation unit, the conversion command is acquired and supplied to the conversion processing generation unit, and the read processing generation is performed. A process of adding the read processing program acquired from the conversion unit and the conversion processing program acquired from the conversion generation unit to the combination of the pre-conversion data structure pattern specification and conversion command acquired from the structure pattern / conversion command storage unit and outputting the combination Generation starter;
A process storage unit for storing an output result of the process generation start unit;
With reference to the processing storage unit, the reading processing program and the conversion processing program corresponding to the pre-conversion data structure pattern specification specified during the conversion processing are acquired from the processing storage unit, and the reading processing execution unit and the conversion processing execution unit respectively A process selection unit to supply,
The read processing execution unit and the conversion processing execution unit execute the read processing program and the conversion processing program supplied from the processing selection unit, respectively. The data converter described.
JP2004354459A 2004-12-07 2004-12-07 Data converter Expired - Fee Related JP4606862B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004354459A JP4606862B2 (en) 2004-12-07 2004-12-07 Data converter

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004354459A JP4606862B2 (en) 2004-12-07 2004-12-07 Data converter

Publications (2)

Publication Number Publication Date
JP2006163820A true JP2006163820A (en) 2006-06-22
JP4606862B2 JP4606862B2 (en) 2011-01-05

Family

ID=36665772

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004354459A Expired - Fee Related JP4606862B2 (en) 2004-12-07 2004-12-07 Data converter

Country Status (1)

Country Link
JP (1) JP4606862B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008146781A1 (en) * 2007-05-28 2008-12-04 Nec Corporation Structured document converting device
JP2009169707A (en) * 2008-01-17 2009-07-30 Nec Corp Data conversion device
CN111447268A (en) * 2020-03-24 2020-07-24 中国建设银行股份有限公司 File structure conversion method, device, equipment and storage medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002207721A (en) * 2001-01-11 2002-07-26 Axis Software Kk Means for converting two-dimensional data for hierarchical structure data
JP2003308235A (en) * 2002-04-17 2003-10-31 Nippon Telegr & Teleph Corp <Ntt> Method, apparatus, and program for data conversion, and recording medium where the program is recorded
JP2004178426A (en) * 2002-11-28 2004-06-24 Mitsubishi Electric Corp Structured document processor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002207721A (en) * 2001-01-11 2002-07-26 Axis Software Kk Means for converting two-dimensional data for hierarchical structure data
JP2003308235A (en) * 2002-04-17 2003-10-31 Nippon Telegr & Teleph Corp <Ntt> Method, apparatus, and program for data conversion, and recording medium where the program is recorded
JP2004178426A (en) * 2002-11-28 2004-06-24 Mitsubishi Electric Corp Structured document processor

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008146781A1 (en) * 2007-05-28 2008-12-04 Nec Corporation Structured document converting device
JP2009169707A (en) * 2008-01-17 2009-07-30 Nec Corp Data conversion device
CN111447268A (en) * 2020-03-24 2020-07-24 中国建设银行股份有限公司 File structure conversion method, device, equipment and storage medium
CN111447268B (en) * 2020-03-24 2022-11-25 中国建设银行股份有限公司 File structure conversion method, device, equipment and storage medium

Also Published As

Publication number Publication date
JP4606862B2 (en) 2011-01-05

Similar Documents

Publication Publication Date Title
JP4755427B2 (en) Database access system and database access method
KR101331532B1 (en) Dynamic method for generating xml documents from a database
US8055997B2 (en) System and method for implementing dynamic forms
JP5121146B2 (en) Structured document management apparatus, structured document management program, and structured document management method
JP4246186B2 (en) Structured document data expansion method, data processing method and processing system
US20110314456A1 (en) System and Method for Mapping Structured Document to Structured Data of Program Language and Program for Executing Its Method
US20020143816A1 (en) Method and system for using a generalized execution engine to transform a document written in a markup-based declarative template language into specified output formats
US7120867B2 (en) System and method for conversion of directly-assigned format attributes to styles in a document
US20020052895A1 (en) Generalizer system and method
JP2005234837A (en) Structured document processing method, structured document processing system and its program
US20060271850A1 (en) Method and apparatus for transforming a printer into an XML printer
US20060117248A1 (en) Web screen creation method, program and server
CN114503073A (en) Automatic conversion of program written in procedural programming language into dataflow graph and related systems and methods
JP4606862B2 (en) Data converter
JP2006065467A (en) Device for creating data extraction definition information and method for creating data extraction definition information
JPWO2005101210A1 (en) Data analysis apparatus and data analysis program
JP4410005B2 (en) Structured document structure conversion device and program
JP2004529427A (en) Design of extensible style sheet using meta tag information
EP1003097A2 (en) Method and apparatus for storing data as liquid information
JP4786695B2 (en) Structure conversion device for structured documents
JP2002268882A (en) Web application system and program
JPH09265431A (en) Method and device for editing document, and client device including the device
CN113741900B (en) Development method and device of front-end page application and related equipment
CN109508183B (en) REST code generation method and device in storage cluster
JP2006011549A (en) Structured document conversion device and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070704

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20071012

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080718

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100402

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: 20100928

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101006

R150 Certificate of patent or registration of utility model

Ref document number: 4606862

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131015

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees