JP4410005B2 - Structured document structure conversion device and program - Google Patents
Structured document structure conversion device and program Download PDFInfo
- Publication number
- JP4410005B2 JP4410005B2 JP2004082589A JP2004082589A JP4410005B2 JP 4410005 B2 JP4410005 B2 JP 4410005B2 JP 2004082589 A JP2004082589 A JP 2004082589A JP 2004082589 A JP2004082589 A JP 2004082589A JP 4410005 B2 JP4410005 B2 JP 4410005B2
- Authority
- JP
- Japan
- Prior art keywords
- conversion
- record
- document
- xml document
- template
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Document Processing Apparatus (AREA)
Description
本発明は、XML文書からXML文書への構造変換/逆変換を行なう方法、装置等に に関する。 The present invention relates to a method, an apparatus, and the like for performing structure conversion / inverse conversion from an XML document to an XML document.
近年、インターネットを通して、個人、企業、自治体など、あらゆる種類のシステムが相互に通信可能に接続されており、これらのシステムが相互に連携して、Webサービスが提供されたり、EDI(Electronic Data Interchange)、EC(Electronic Commerce)が行われつつある。このために、幅広い情報交換が必要になってきている。 In recent years, various types of systems such as individuals, companies, and local governments are connected to each other through the Internet so that they can communicate with each other, and these systems cooperate with each other to provide Web services or EDI (Electronic Data Interchange). EC (Electronic Commerce) is being carried out. For this reason, a wide range of information exchange is required.
このような状況下において、XML(eXtensible Markup Language)は、データを構造化する柔軟な表現能力を有し、コンピュータによる処理に適しているので、上記のシステム間のデータ交換や各システムでのデータ処理を行う際の、共通基盤のフォーマットとして注目されている。 Under such circumstances, XML (eXtensible Markup Language) has a flexible expression ability to structure data and is suitable for processing by a computer. Therefore, data exchange between the above systems and data in each system are possible. It is attracting attention as a common platform format for processing.
XMLは、1986年にISOで標準化されたSGML(Standard Generalized Markup Language)を、インターネットで活用し易くするために、1998年2月にその基本仕様XML1.0がW3C(World Wide Web Consortium)において策定されたものである。 XML was established in February 1998 by W3C (World Wide Web Consortium) in order to facilitate the use of SGML (Standard Generalized Markup Language) standardized by ISO in 1986 on the Internet. It has been done.
従来より用いられているWebページ作成言語であるHTML(HyperText Markup Language)は、タグが固定で表示に特化したものとなっており、タグ情報を基にコンピュータで情報を処理したいという要件に対応できない問題があった。 HTML (HyperText Markup Language), a Web page creation language that has been used in the past, has a fixed tag and is specialized for display, and meets the requirement to process information on a computer based on tag information There was a problem that could not be done.
これに対して、XMLは、利用者が自由にタグを定義でき、文書中の文字列に意味付けができる言語構造を有している。このようなXMLで文書を記述した場合、その文書を、タグ情報に基づいてコンピュータで情報処理できる。 On the other hand, XML has a language structure in which a user can freely define a tag and can give meaning to a character string in a document. When a document is described in such XML, the document can be processed by a computer based on tag information.
尚、XML文書は、その特徴によって、次の2種類の型に大きく分類される。
・データ型XML文書:伝票、予定表など、タグ数が多く、要素内容が短いもの
・文書型XML文書;雑誌、マニュアル、辞典等、要素内容が長い文章になるもの
ここでは、主に、データ型XML文書を対象にするものとする。
Note that XML documents are roughly classified into the following two types according to their characteristics.
・ Data type XML documents: slips, schedules, etc. with many tags and short element contents ・ Document type XML documents: articles with long element contents such as magazines, manuals, dictionaries, etc. Suppose that the target is a type XML document.
ここで、以下の説明で使用される用語について、XML規格に基づき説明しておく。よく知られていることであるが、一対の”<”と”>”で囲まれた文字列を「タグ」、”<文字列>”を「開始タグ」、”</文字列>”を「終了タグ」、開始タグから終了タグまでの文字列全体を「要素」、開始タグと終了タグで挟まれた文字列を「要素内容」、タグ内に記述される要素の名前を「タグ名」(あるいは「要素名」)、要素に対する付加情報を「属性」と呼ぶ。 Here, terms used in the following description will be described based on the XML standard. It is well known that the character string surrounded by a pair of “<” and “>” is “tag”, “<character string>” is “start tag”, “</ character string” is "End tag", the entire character string from the start tag to the end tag is "element", the character string between the start tag and the end tag is "element content", and the name of the element described in the tag is "tag name" "(Or" element name "), additional information for the element is called" attribute ".
構造化文書では、その文書中にタグを埋め込む形でデータ構造が記述される。このようにデータ構造をタグとして文書中に埋め込んだ構成を採ることにより、データ項目の追加・削除・変更に対して柔軟性と拡張性が得られるほか、タグ名に、人が読んで意味のある名前を付けることにより、データに視認性を持たせることができる。 In a structured document, the data structure is described in a form in which tags are embedded in the document. In this way, by adopting a structure in which the data structure is embedded in the document as a tag, flexibility and extensibility can be obtained for adding, deleting, and changing data items, and the tag name is read and meaningful by humans. By giving a certain name, the data can be made visible.
ところで、XML文書に対する処理の高速化やメモリ使用量の削減等を図って、XML文書に対する処理能力を向上させる為には、一般に、基盤ソフトウェアの実装の高性能化を図ることが主流になっている。しかし、このような手法のほかに、XML文書自体に予め加工を施しておくことによっても、XML文書に対する処理性能を向上させることが可能である。本発明は、後者の手法(XML文書を加工して処理性能の向上を図る手法)に関連するものであり、ここで、後者の手法に係わる従来技術について説明する。 By the way, in order to improve the processing capability for XML documents by increasing the processing speed for XML documents, reducing the memory usage, etc., it is generally the mainstream to improve the performance of the base software. Yes. However, in addition to such a method, it is possible to improve the processing performance for an XML document by processing the XML document itself in advance. The present invention relates to the latter method (a method for improving the processing performance by processing an XML document), and here, a conventional technique related to the latter method will be described.
例えば、非特許文献1には、XML導入時に処理速度が遅くなる問題が発生し、データ構造を変更することにより、問題に対処する事例が開示されている。例えば、住友電工システムズの例(同誌のp.64-65参照)では、同種のデータを、CSV(Comma Separated Value)形式で1つにまとめて記述し、まとめられたデータを、XML文書中の1つのタグ中に埋め込むことが開示されている。つまり、「XMLデータの中に、CSV形式のデータを埋め込むようなもの」とした。例えば、XMLデータの定義情報を変更し、1カ月分のXMLデータを日付順にコンマで区切ってまとめている。
For example, Non-Patent
具体的には、
<KOUSU day=”01”>8.0</KOUSU> <KOUSU day=”02”>5.5</KOUSU>…<KOUSU day=”31”>12.8</KOUSU>
というように、別々のタグに記述されていた毎日の実績に関するデータを、
<KOUSU day=”01、 02、…、 31” data=”8.0、 5.5、 …、 12.8”></KOUSU>
といった形式で、月単位にまとめるように、元の文書を書き換えている。
In particular,
<KOUSU day = ”01”> 8.0 </ KOUSU><KOUSU day = ”02”> 5.5 </ KOUSU>… <KOUSU day = ”31”> 12.8 </ KOUSU>
As such, data on daily performance that was described in separate tags,
<KOUSU day = ”01, 02,…, 31” data = ”8.0, 5.5,…, 12.8”></KOUSU>
In this format, the original document is rewritten so that it can be collected monthly.
このような変更により、1ヶ月分のデータを参照する際には、データベース・サーバーへの照会は1回で済むようになり、XMLの定義情報の送信も1回送信するだけなので、データ容量も10分の1に減ったとしている。 As a result of this change, when referring to the data for one month, the database server can be inquired only once, and the XML definition information is transmitted only once, so the data capacity is also reduced. It is said that it has decreased to 1/10.
また、非特許文献2には、データ量を減らすことを目的とし、レコード形式のXML文書を、XML文書の規格を保ったまま、XSL変換を用いて、レコード単位にレコード内の全要素をCSV形式で繋いだXML文書に変換することが開示されている。データ処理の負荷を減らすためには、レコード内全要素を1個のCSV形式に纏めた文書を、専用のAPIによって扱うことを意図している。
Also, Non-Patent
具体的には、非特許文献2の手法による変換前・後のXML文書は、例えば、図21(a)、(b)に示すようになる。図21(a)は、変換前の元のXML文書であり、図21(b)は、変換後のXML文書である。
Specifically, XML documents before and after conversion by the method of Non-Patent
図示の通り、変換後のXML文書は、2つの部分に分けられる。1つは、元のXML文書の各タグ名を記述する部分、もう1つは、各要素の内容(1、2、3、4等)をCSV形式で繋いで記述した部分である。しかし、これは定型XML文書に対応するものであり、非定型XML文書は対象外であった。 As shown in the figure, the converted XML document is divided into two parts. One is a part describing each tag name of the original XML document, and the other is a part describing the contents (1, 2, 3, 4, etc.) of each element connected in CSV format. However, this corresponds to a standard XML document, and an atypical XML document was not included.
ところで、ここで、代表的な構造化文書であるXML文書では、何らかの応用ソフトがXML文書を扱えるようにするために(検索・更新・削除などの操作を施す)、DOM (Document Object Model)と、SAX (Simple API for XML)と呼ばれる二つの標準的なインターフェイス(API: Application Programming Interface)規格が定められている。 By the way, in an XML document that is a typical structured document, in order to allow some application software to handle the XML document (to perform operations such as search, update, and deletion), DOM (Document Object Model) and Two standard interface (API: Application Programming Interface) standards called SAX (Simple API for XML) are defined.
SAXは、メモリ消費が小さく、一般に高速だが、時系列出力で、参照するだけの簡単な処理に向くという特徴を持つ。一方、DOMは、一般に低速で、メモリ消費が大きいが、文書の要素を階層的なツリー構造に展開するため、複雑な処理内容でもプログラムが組み易いという特徴を持つ。 SAX is characterized by low memory consumption and generally high speed, but is suitable for simple processing with only time series output and reference. On the other hand, DOM is generally low speed and consumes a large amount of memory. However, since DOM elements are expanded into a hierarchical tree structure, a program can be easily assembled even with complicated processing contents.
一般に、XML文書に対して検索・更新・削除などの操作を施す場合、操作対象のXML文書を標準API(DOM)でDOMツリーに展開してから、その操作を施すことになる。しかし、XML文書をDOMツリーに展開する際には、元のデータ量の6倍もの膨大な動作メモリ容量が必要となるうえ、使用されない項目(操作対象外の項目)も一緒に展開されてしまうため、展開処理に多大な時間を要している(処理速度、メモリ消費量は、XML文書の要素数に比例する)。 In general, when an operation such as search / update / deletion is performed on an XML document, the operation target XML document is expanded into a DOM tree using a standard API (DOM), and then the operation is performed. However, when an XML document is expanded into a DOM tree, an operation memory capacity that is six times the original data amount is required, and items that are not used (items that are not subject to operation) are also expanded. For this reason, the development process takes a long time (the processing speed and the memory consumption are proportional to the number of elements of the XML document).
上記非特許文献1、2のような、XML文書を加工して処理性能の向上を図る手法が存在するのは、このような事情があるからである。
しかしながら、上記非特許文献1、2には、以下の問題点があった。
The reason for improving the processing performance by processing the XML document as in
However, the
まず、非特許文献1に記載の手法は、データ依存の個別の方法であり、組織的な汎用の方法ではない。すなわち、非特許文献1記載の手法は、データ処理に用いる同種のデータを一つにまとめるものであって、同種のデータを持つ特定のデータに適用する方法であり、改善の効果はデータに依存する。つまり、汎用の方法ではない。
First, the method described in Non-Patent
また、非特許文献2に記載の手法は、XML文書のタグを外すことによって、データ量は削減できるが、この方法によって既存の応用ソフトのデータ処理の負荷を軽減することはできない。
In the method described in
非特許文献2では、変換文書を扱える特別なAPIソフトを作って、データ処理の負荷を軽減することを想定している。これは、既存のDOMソフトと同様の機能のソフトを別途作成しなければならないことを意味する。この為、この作業は多大の工数を要する。よって、既存のDOMと同様に使われる状況にはなり難い。
Non-Patent
また、非特許文献2に記載の手法は、定型(表形式)のXML文書のみを想定している。
このような従来技術に対して、本出願の出願人は、特許文献1記載の手法を提案している。
The method described in
In contrast to such a conventional technique, the applicant of the present application has proposed a method described in
この特許文献1の発明では、レコード形式のXML文書においてレコード内要素が、応用ソフトのデータ処理の対象項目(キー要素)と、非対象項目(非キー要素)に分けられて、変換の際には、キー要素はそのままにし、非キー要素の内容をCSV形式で纏めて新たな一つの要素(CSV要素と呼ぶ)とするXML文書に変換することを提案している。XML文書が非定型の場合は、新要素に纏めた要素の要素名をCSV形式にしたものを属性に付ける。この変換(以下では、CSV圧縮変換と呼ぶ)は、XSL変換として実行する。
In the invention of
このCSV圧縮変換は、データ処理の対象項目であるキー要素は、CSV形式にはしないで、そのままとするので、応用ソフトに僅かな修正を施すだけで適用可能となる。また、非キー要素のタグを削除して、その要素内容を一つの新要素に纏めることで、元文書のタグを減らした要素数に応じて、XML文書処理のメモリ使用量の削減、メモリ展開時間、処理時間の短縮することができる。
上記のように、特許文献1の発明では、それ以前の従来技術に比べて、特に応用ソフトウェアが変換後のXML文書を処理することに関して優れた手法を提案している。
しかしながら、特許文献1の発明にも、未だ、改良の余地が残っていた。特に、変換対象のXML文書が非定型XML文書(レコード内の要素数、タグ名が可変であるもの)であった場合に、改良の余地が大きかった。
As described above, the invention of
However, the invention of
これについて、本出願の出願人は、更に、特願2003-165735号(以下、先願と呼ぶ)の発明を提案している。
先願では、定型XML文書を構造変換する為に、変換後のXML文書における新要素を複数定義し、構造変換対象のXML文書におけるレコード内の各要素についてデータ処理の対象となるキー要素であるか否かを指定すると共に該キー要素以外の要素である各非キー要素を上記複数の新要素の何れに割り当てるかを定義し、この定義により上記各要素を、上記レコード内で出現する順に、上記キー要素はそのまま変換後のXML文書に記述し、上記各非キー要素に関してはその要素内容を該当する新要素毎にCSV形式でまとめたものを各新要素の要素内容として変換後のXML文書に出力する。
In this regard, the applicant of the present application has further proposed the invention of Japanese Patent Application No. 2003-165735 (hereinafter referred to as the prior application).
In the prior application, in order to convert the structure of the standard XML document, a plurality of new elements in the converted XML document are defined, and each element in the record in the XML document to be converted is a key element that is a target of data processing. And whether to assign each non-key element, which is an element other than the key element, to which of the plurality of new elements, the definition defines the elements in the order in which they appear in the record. The above key elements are described in the converted XML document as they are, and for each non-key element, the contents of the element are summarized in CSV format for each corresponding new element, and the converted XML document is used as the element contents of each new element. Output to.
また、先願では、非定型XML文書を構造変換する為に以下の3つの手法を提案している。
第1の手法では、非定型XML文書を扱う場合、変換後のXML文書は、そのヘッダとして、新要素名(CSV要素名)と、それに纏める非キー要素の要素名(出現する可能性のあるもの全て)を列挙した付加情報が付けられる。そして、各レコード毎に、出現した非キー要素の要素内容を、CSV要素にCSV形式で繋いで格納する。その際、出現しなかった非定型要素に関しては、空要素として繋ぐ。一方、逆変換時には、空要素は出力しないようにする。図22に元文書、図23に変換文書の例を示す。
In the prior application, the following three methods have been proposed in order to convert the structure of an atypical XML document.
In the first method, when an atypical XML document is handled, the converted XML document has, as its header, a new element name (CSV element name) and element names of non-key elements to be collected (possibly appearing) Additional information enumerating all of them is attached. Then, for each record, the element content of the non-key element that appears is connected to the CSV element in the CSV format and stored. At that time, atypical elements that did not appear are connected as empty elements. On the other hand, empty elements are not output during reverse conversion. FIG. 22 shows an example of an original document, and FIG. 23 shows an example of a converted document.
ここでは、変換仕様は示さないが、“書籍番号”、“図書名”がキー要素、“著者名”、“登録日”、“最終更新日”が非キー要素として定義付けられているものとする。更に、“著者名”は4人まで出現可能性があるものとしている。また、新要素(CSV要素)のタグ名は“情報”と定義されている。これより、図23に示すように、付加情報ヘッダには、CSV要素“情報”に関して、上記非キー要素のタグ名(著者名[1]〜著者名[4]、登録日、最終更新日)がCSV形式で繋がれて記述される。そして、最初のレコードでは、著者は一人であるので、著者名[2]〜著者名[4]に関しては空要素(図示の,,,,)が記述される。2番目のレコードでは、著者は3人であるので、著者名[4]に関しては空要素(図示の,,)が記述される。 Here, conversion specifications are not shown, but “book number” and “book name” are defined as key elements, “author name”, “registration date”, and “last update date” are defined as non-key elements. To do. Furthermore, it is assumed that “author name” may appear up to four people. The tag name of the new element (CSV element) is defined as “information”. Accordingly, as shown in FIG. 23, in the additional information header, the tag name of the non-key element (author name [1] to author name [4], registration date, last update date) regarding the CSV element “information”. Are connected and described in CSV format. In the first record, since there is only one author, empty elements (indicated in the figure,,,) are described for the author name [2] to author name [4]. In the second record, since there are three authors, an empty element (, shown) is described for the author name [4].
第2の手法では、第1の手法との違いのみを述べる。すなわち、変換後のXML文書には、第1の手法では出現しなかった非キー要素に関しては空要素が記述されるのに対して、第2の手法では、出現した非キー要素の上記付加情報における順番が、CSV要素のタグの属性として記述される(これもCSV形式で繋いで記述される)。 In the second method, only the difference from the first method will be described. That is, in the converted XML document, empty elements are described for non-key elements that did not appear in the first technique, whereas in the second technique, the additional information of the appearing non-key elements is described. Is described as the attribute of the tag of the CSV element (this is also described by being linked in the CSV format).
元文書が上記図22である場合、第2の手法による変換後のXML文書は図24に示すようになる。図示の例では、CSV要素“情報”のタグの属性tagに、出現した非キー要素の上記付加情報における順番が、CSV形式で繋いで記述されている。すなわち、付加情報ヘッダには、第1の手法と同様、著者名[1]、著者名[2]、著者名[3]、著者名[4]、登録日、最終更新日が記述されているので、順番は、著者名[1]が1番目、最終更新日が6番目となる。そして、最初のレコードでは、著者が一人であるので、出現した非キー要素は、1番目、5番目、6番目のものであり、図示の通り、属性tagには1,5,6が記述される。 When the original document is FIG. 22, the XML document after conversion by the second method is as shown in FIG. In the example shown in the figure, the attribute tag of the CSV element “information” tag describes the order of the added non-key elements in the additional information in a CSV format. That is, in the additional information header, the author name [1], the author name [2], the author name [3], the author name [4], the registration date, and the last update date are described as in the first method. Therefore, the author name [1] is first and the last update date is sixth. In the first record, since there is only one author, the non-key elements that appear are the first, fifth, and sixth elements, and 1, 5 and 6 are described in the attribute tag as shown. The
第3の手法では、レコード内の項目がレコード内の条件によって入れ替わるタイプの非定型XML文書であっても構造変換を行えるようにするものである。このタイプの非定型XML文書の一例を図25に示し、これを図27又は図28の変換仕様を用いて構造変換した変換XML文書を図26に示す。この構造変換は、図27又は図28に示す変換仕様XML文書に基づいて行われる。CSV圧縮形式を指定するために、図27では非定型CSV要素を指定する変換仕様、図28では条件分岐を指定する変換仕様を用いる。 In the third method, structure conversion can be performed even for an atypical XML document in which items in a record are switched according to conditions in the record. An example of this type of atypical XML document is shown in FIG. 25, and a converted XML document obtained by converting the structure using the conversion specification of FIG. 27 or FIG. 28 is shown in FIG. This structural conversion is performed based on the conversion specification XML document shown in FIG. In order to specify the CSV compression format, a conversion specification that specifies an atypical CSV element is used in FIG. 27, and a conversion specification that specifies a conditional branch is used in FIG.
図25に示す例では、構造変換対象のレコードの種類は1種類(部品)であるが、その属性(種類)の属性値が、CPU、ハードディスク、メモリの何れであるかによって、そのレコード内のデータ項目が相互に異なるものとなっている。要素<商品名>と要素<型番>は全てのレコードで共通であるが、それ以外が相互に異なる。すなわち、種類=“CPU”の場合には、要素<CPU>、<クロック>、<キャッシュ容量>、種類=“ハードディスク”の場合には、要素<ディスク容量>、<転送速度>、<回転数>、種類=“メモリ”の場合には、要素<メモリ容量>、<ベースクロック>、<電源電圧>となっている。 In the example shown in FIG. 25, the type of record to be converted is one type (component). Depending on whether the attribute value of the attribute (type) is CPU, hard disk, or memory, Data items are different from each other. Element <product name> and element <model number> are common to all records, but the other elements are different from each other. That is, when type = “CPU”, element <CPU>, <clock>, <cache capacity>, and when type = “hard disk”, element <disk capacity>, <transfer speed>, <number of revolutions> >, When type = “memory”, the elements are <memory capacity>, <base clock>, and <power supply voltage>.
このようなデータ構造のXML文書に対して、上記第1、第2の手法でも一応構造変換することは可能である。しかし、無駄に空要素を出力することになり、図26のような変換結果は得られない。更に処理負荷が重くなる。 The XML document having such a data structure can be structurally converted by the first and second methods. However, empty elements are output unnecessarily, and a conversion result as shown in FIG. 26 cannot be obtained. Further, the processing load becomes heavy.
これに対して、第3の手法(その1)では例えば図27に示す変換仕様を用いる。この変換仕様では、変換後のXML文書において複数の非キー要素を纏める新要素の要素名(CSV要素名)を規定する<csv-tag>においても属性format=“unfixed”を規定し、且つ構造変換処理において各CSV要素毎に対応する非キー要素を纏めた結果、全て空要素であった場合には、そのCSV要素は変換XML文書に出力しないようにする。これにより、無駄に空要素を出力することは無くなるが、処理負荷が重くなる問題には対応できない。 On the other hand, in the third method (part 1), for example, the conversion specification shown in FIG. 27 is used. In this conversion specification, the attribute format = “unfixed” is specified even in <csv-tag> that specifies the element name (CSV element name) of a new element that collects a plurality of non-key elements in the converted XML document, and the structure If all the non-key elements corresponding to each CSV element are collected in the conversion process and are all empty elements, the CSV elements are not output to the conversion XML document. This eliminates unnecessary output of empty elements, but it cannot cope with the problem of heavy processing load.
これに対して、第3の手法(その2)では例えば図28に示す変換仕様を用いる。この変換仕様では、各属性値毎に分けて、その属性値に対応する要素の変換仕様を記述する。そして、<items>要素のwhen属性によって切換え条件(分岐条件)を指定することにより、属性値に応じて、使用する変換仕様を選択させる。尚、この変換仕様からXSLTスタイルシートを生成した場合には、<choose>-<when><otherwise>の条件によって切り替えられる形式となる。 On the other hand, in the third method (part 2), for example, the conversion specification shown in FIG. 28 is used. In this conversion specification, the conversion specification of the element corresponding to the attribute value is described separately for each attribute value. Then, the conversion specification to be used is selected according to the attribute value by specifying the switching condition (branch condition) by the when attribute of the <items> element. When an XSLT stylesheet is generated from this conversion specification, it can be switched according to the condition of <choose>-<when> <otherwise>.
上記先願では、非定型XML文書を扱うことができるが、一度に変換できるのは構造変換対象のレコードの種類が1種類である場合に限られていた。また、第3の手法では、データ項目が条件によって入れ替わる(相互に一部異なる)場合に対応できたが、これはレコードの種類は1種類であるが、属性によってデータ項目(要素)が変わる場合に対応するものであった。 In the above-mentioned prior application, an atypical XML document can be handled, but the conversion can be performed at a time only when there is only one type of structure conversion target record. Further, the third method can cope with the case where data items are switched depending on conditions (partially different from each other), but this is a case where there is only one type of record but the data item (element) changes depending on the attribute. It corresponded to.
しかしながら、XMLでは、非表形式でレコードのネストや、複数種のレコードを持つ等の複雑な非定型のデータ構造が採れる。先願の手法では、このような複数種類のレコードに渡る複雑な構造を持つXML文書には対応できなかった。 However, XML can adopt a complicated atypical data structure such as nesting records in a non-table format or having multiple types of records. The method of the prior application cannot cope with an XML document having such a complicated structure across a plurality of types of records.
本発明の課題は、例えば非表形式でレコードのネストや複数種のレコードを持つデータ構造を有するXML文書に対しても、CSV圧縮等の構造変換を行うことができるようにし、以ってこのような構造のXML文書を応用ソフトウェアで容易に処理可能とすることができる構造化文書の構造変換装置、構造化文書変換方法、プログラム等を提供することである。 An object of the present invention is to enable structure conversion such as CSV compression even for an XML document having a data structure having a record nesting or a plurality of types of records in a non-table format, for example. An object of the present invention is to provide a structured document structure conversion apparatus, structured document conversion method, program, and the like that can easily process an XML document having such a structure with application software.
本発明の第1の構造変換装置は、構造化文書を構造変換する構造変換装置であって、前記構造化文書が同一階層に複数種類のレコードを有するデータ構造を持つ場合、各レコード種類毎に対応してそのレコード種類のレコード内に出現する要素を圧縮変換する変換操作を定義すると共に該複数の変換操作間の呼び出し関係を定義する変換仕様定義手段と、該変換仕様定義手段による前記各定義に基づいて、前記同一階層に複数種類のレコードを有するデータ構造を持つ構造化文書を構造変換する構造変換手段とを有するように構成する。 A first structure conversion apparatus of the present invention is a structure conversion apparatus for converting a structured document, and when the structured document has a data structure having a plurality of types of records in the same hierarchy, for each record type Correspondingly, a conversion specification definition means for defining a conversion operation for compressing and converting an element appearing in a record of the record type and defining a calling relationship between the plurality of conversion operations, and the respective definitions by the conversion specification definition means And a structure conversion means for converting the structure of a structured document having a data structure having a plurality of types of records in the same hierarchy.
上記構造化文書は例えばXML文書であり、同一階層に複数種類のレコードを有するデータ構造を持つ場合がある。従来技術(特許文献1)や先願では、レコードの種類が1種類のみの構造化文書に対しては、問題なく、構造変換を行えた。これに対して、本発明の第1の構造変換装置は、まず、各レコード種類毎に、それぞれ、変換操作定義(テンプレート)とその呼び出し定義を作成しておく。各変換操作定義自体は、基本的には従来技術や先願と同様であってよい。そして、構造変換処理の際には、構造変換処理対象の構造化文書における各レコード毎に、そのレコード種類に応じた変換操作定義を呼び出して構造変換を実行させる。 The structured document is, for example, an XML document and may have a data structure having a plurality of types of records in the same hierarchy. In the prior art (Patent Document 1) and the prior application, structural conversion can be performed without any problem for a structured document having only one type of record. In contrast, the first structure conversion apparatus of the present invention first creates a conversion operation definition (template) and its call definition for each record type. Each conversion operation definition itself may be basically the same as that of the prior art or the prior application. In the structure conversion process, the structure conversion is executed by calling a conversion operation definition corresponding to the record type for each record in the structured document subject to the structure conversion process.
また、本発明の第2の構造変換装置は、構造化文書を構造変換する構造変換装置であって、前記構造化文書が複数種類のレコードを有すると共に構造変換対象の任意のレコードが子レコードを有するデータ構造を持つ場合、各レコード種類毎に対応してそのレコード種類のレコード内に出現する要素を圧縮変換する変換操作を定義すると共に、前記子レコードを有する任意のレコードのレコード種類に対応した変換操作定義中に、該子レコードのレコード種類に対応した変換操作間の呼び出し関係を定義する変換仕様定義手段と、該変換仕様定義手段による前記各定義に基づいて、前記同一階層に複数種類のレコードを有するデータ構造を持つ構造化文書を構造変換する構造変換手段とを有するように構成する。 The second structure conversion apparatus of the present invention is a structure conversion apparatus for converting the structure of a structured document, wherein the structured document has a plurality of types of records and any record to be converted includes a child record. In the case of having a data structure, a conversion operation for compressing and converting an element appearing in a record of the record type corresponding to each record type is defined, and corresponding to a record type of an arbitrary record having the child record During the conversion operation definition, a conversion specification defining means for defining a calling relationship between conversion operations corresponding to the record type of the child record, and a plurality of types in the same hierarchy based on the respective definitions by the conversion specification defining means Structure conversion means for converting the structure of a structured document having a data structure having a record is provided.
上記構造化文書は例えばXML文書であり、レコードのネストがある場合、任意のレコードを構造変換する際に、そのレコードが子レコードを有する場合、従来技術(特許文献1)や先願では対応できなかった。これに対して、本発明の第2の構造変換装置は、上記第1の構造変換装置と同様に各レコード種類毎に各々変換操作定義(テンプレート)を作成するが、更に、子レコードを有するレコードのレコード種類対応の変換操作定義中には、その子レコードのレコード種類に対応した変換操作間の呼び出し関係を定義する。これより、構造変換処理において、処理対象のレコードに子レコードがある場合でも、処理対象レコード、子レコード各々の変換操作定義に基づき、子レコードの構造変換も含めた構造変換を行うことができる。 The above structured document is, for example, an XML document, and when there is a record nesting, when a record has a child record when structurally transforming an arbitrary record, the conventional technique (Patent Document 1) or a prior application can cope with it. There wasn't. On the other hand, the second structure conversion device of the present invention creates a conversion operation definition (template) for each record type as in the case of the first structure conversion device, but further includes records having child records. During the conversion operation definition corresponding to the record type, a call relationship between the conversion operations corresponding to the record types of the child records is defined. Thus, in the structure conversion process, even when the record to be processed has a child record, the structure conversion including the structure conversion of the child record can be performed based on the conversion operation definition of each of the process target record and the child record.
また、本発明の第3の構造変換装置は、構造化文書を構造変換する構造変換装置であって、前記構造化文書が各レコード内の条件によってそのレコード内の要素が変わるデータ構造を持つ場合、前記各条件に対応してそのレコード内に出現する要素を圧縮変換する変換操作を定義すると共に該複数の変換操作定義の何れを適用するかの条件分岐を定義する変換様定義手段と、該変換仕様定義手段による前記各定義に基づいて、前記データ構造を持つ構造化文書を構造変換する構造変換手段とを有するように構成する。 The third structure conversion apparatus of the present invention is a structure conversion apparatus for converting the structure of a structured document, wherein the structured document has a data structure in which elements in the record change depending on conditions in each record. A conversion-like definition means for defining a conversion operation for compressing and converting an element appearing in the record corresponding to each condition, and defining a conditional branch to which of the plurality of conversion operation definitions is applied, and Structure conversion means for converting the structure of the structured document having the data structure based on the respective definitions by the conversion specification defining means is provided.
上記構造化文書は例えばXML文書であり、同一種類のレコードであっても、各レコード毎に、何等かの条件によってそのレコード内に出現する要素が可変となる場合がある。これに対して、上記第3の構造変換装置では、各条件毎に対応して変換操作定義を行うと共に、何れを適用するかの条件分岐を定義する。これより、構造変換処理において、各レコード毎にレコード内の条件を参照して、この条件に応じた変換操作定義により構造変換を行うことができる。 The structured document is, for example, an XML document, and even for the same type of record, the elements appearing in the record may be variable for each record depending on some condition. On the other hand, in the third structural conversion device, a conversion operation definition is made corresponding to each condition, and a conditional branch for which one is applied is defined. Thus, in the structure conversion process, it is possible to refer to the condition in the record for each record and perform the structure conversion by the conversion operation definition corresponding to the condition.
また、例えば、前記構造化文書はXML文書であり、前記変換仕様定義もXML文書で定義し、前記変換仕様を定義するXML文書から、該変換仕様定義をXSLT文法で記述したXSLTスタイルシートを生成するスタイルシート生成手段を更に有し、前記構造変換手段は該XSLTスタイルシートを用いて前記構造変換を行うXSLTプロセッサである。 For example, the structured document is an XML document, the conversion specification definition is also defined in the XML document, and an XSLT stylesheet in which the conversion specification definition is described in the XSLT grammar is generated from the XML document defining the conversion specification. Style sheet generation means for performing the structure conversion using the XSLT style sheet.
例えば上記変換仕様定義は、XSLTスタイルシートの文法と緊密に連携させた表記法で記述しておく。これにより、逐一XSLTスタイルシートを記述しなくても、上記変換仕様を定義したXML文書から容易にXSLTスタイルシートを自動生成できる。更に、これにより、標準のXSLTプロセッサで構造変換処理を実行することができ、ほとんどのXML文書システムに対して上記構造変換処理を適用できる。 For example, the conversion specification definition is described in a notation system closely linked to the XSLT stylesheet grammar. Accordingly, an XSLT stylesheet can be automatically generated easily from an XML document in which the conversion specification is defined without having to describe the XSLT stylesheet one by one. Further, this enables the structure conversion process to be executed by a standard XSLT processor, and the structure conversion process can be applied to almost all XML document systems.
また、上述した本発明の各構成により行なわれる機能と同様の制御をコンピュータに行なわせるプログラムを記憶したコンピュータ読み取り可能な記憶媒体から、そのプログラムをコンピュータに読み出させて実行させることによっても、前述した課題を解決することができる。つまり、本発明は、このようなプログラム自体としても構成することができるし、当該プログラムを記録した記録媒体(特には可搬型記録媒体)として構成することもできる。 Further, the above-mentioned program can be executed by causing the computer to read and execute the program from a computer-readable storage medium storing a program that causes the computer to perform the same control as the function performed by each configuration of the present invention described above. Can solve the problem. That is, the present invention can be configured as such a program itself, or can be configured as a recording medium (particularly a portable recording medium) on which the program is recorded.
本発明の構造化文書の構造変換装置、構造化文書変換方法、プログラム等によれば、例えば非表形式でレコードのネストや複数種のレコードを持つデータ構造を有するXML文書に対しても、CSV圧縮等の構造変換を行うことができるようになる。よって、このような構造のXML文書が応用ソフトウェアで容易に処理可能となる。また、この構造変換を行わせる為の変換仕様は、XSLTスタイルシートの文法と緊密に連携させた表記法で表記する。これにより、変換仕様からXSLTスタイルシートを生成する処理を簡単・スムーズに行えるようになる。 According to the structured document structure converting apparatus, structured document converting method, program, etc. of the present invention, for example, an XML document having a data structure having a record nesting or a plurality of types of records in a non-tabular format is also used. Structural conversion such as compression can be performed. Therefore, an XML document having such a structure can be easily processed by application software. In addition, the conversion specification for performing this structural conversion is expressed in a notation system closely linked to the XSLT stylesheet grammar. As a result, the process of generating the XSLT stylesheet from the conversion specification can be performed easily and smoothly.
以下、図面を参照して、本発明の実施の形態について説明する。
図1は、本例の構造化文書変換方法をコンピュータ等で実行する処理全体の概略的な流れ及びその構成を示す図である。
Embodiments of the present invention will be described below with reference to the drawings.
FIG. 1 is a diagram showing a schematic flow and a configuration of an entire process for executing the structured document conversion method of this example by a computer or the like.
図1において、データ構造変換/逆変換機構10は、本例の構造化文書変換方法を実現するコンピュータであり、構造変換部11、逆変換部12、XSL変換部13を有する。データ構造変換/逆変換機構10は、入力される変換仕様XML文書22に基づいて、入力XML文書21を変換XML文書23へと構造変換し、その逆に複数の変換XML文書23の中から選択された変換XML文書23である抽出XML文書24を、元の構造のXML文書(結果XML文書25)へと逆変換する。
In FIG. 1, a data structure conversion /
入力XML文書21は、変換対象のXML文書である。尚、XML文書は構造化文書の一例であり、これに限るものではない。
変換仕様XML文書22は、変換/逆変換の為の変換仕様を与えるXML文書である。すなわち、多様な種類のXML文書に対して、各XML文書に応じたスタイルシート、すなわちXSL(Extensible Stylesheet Language)シート(XSLTスタイルシートともいう)をいちいち作成するのは、極めて面倒で手間が掛かるものである。そこで、この手間を省く為に、本例では(先願等と同様)XML文書のデータ構造を変換するための仕様を記述したXML文書、すなわち変換仕様XML文書22を作成しておく。
The
The conversion
この変換仕様XML文書22によって与えられる変換仕様に基づいて、構造変換部11が入力XML文書21を変換XML文書23へと構造変換し、逆変換部12が抽出XML文書24を結果XML文書25へと逆変換する。また、このように変換仕様に基づいて、直接、変換/逆変換処理を実行する方法でもよいが、特に、大量のデータを変換するときに、レコードごとに変換仕様を読み取って判断する処理が必要となる。
Based on the conversion specification given by the conversion
これに対して、XSL変換部13が、変換仕様XML文書22と、変換XSLシート生成XSLシート14(特許文献1における自動変換スタイルシート)とに基づいて、変換実行手順を指示する変換XSLシート15(データ構造変換用スタイルシート)と、逆変換実行手順を指示する逆変換XSLシート16(逆変換用スタイルシート)を生成するようにしてもよい。尚、変換XSLシート生成XSLシート14は、厳密には、変換XSLシート15生成用のものと、逆変換XSLシート16生成用のものとがあるが、ここでは特に区別せずに扱うものとする。但し、この例に限らず、最初から、変換/逆変換XSLシート15,16を作成させるようにしてもよい。
On the other hand, the
そして、構造変換部11または逆変換部12が、これら生成したXSLシート15または16を用いて、変換処理または逆変換処理を実行するようにしてもよい。一度、XSLシート15、16を生成してから変換/逆変換をすることによって、大量のデータを変換するときにレコードごとに変換仕様を読み取って判断する操作が不要になるため、高速で実行することができるようになる。
Then, the
また、このように変換/逆変換の実行手順をXSLTスタイルシートで与えるようにすれば、標準のXSLTプロセッサで変換/逆変換を実行することができ、ほとんどあらゆる種類のXML文書システムにおいて、本例による変換/逆変換処理を実行できる。この場合、データ構造変換/逆変換機構10(構造変換部11、逆変換部12)は、実際には、例えば1つの標準のXSLTプロセッサ(構造化文書変換プロセッサ)によって実現される。
If the execution procedure of conversion / inverse conversion is given in the XSLT stylesheet in this way, the conversion / inverse conversion can be executed by a standard XSLT processor. In almost all kinds of XML document systems, this example Conversion / inverse conversion processing can be executed. In this case, the data structure conversion / inverse conversion mechanism 10 (
また、応用ソフト30は、何らかの処理(例えばタグ検索)等を行うアプリケーション・プログラムであり、変換XML文書23は、この応用ソフト30で処理し易いデータ構造となるように構造変換されている。
The application software 30 is an application program that performs some kind of processing (eg, tag search), and the converted
ここで、先願の変換仕様XML文書(XSLシート)では2種類のテンプレートを持つことになっていた。すなわち、構造変換処理対象のレコードの種類は1種類とし、(i) 対象レコード外をコピーするテンプレート、(ii) 対象レコード内を構造変換処理するテンプレートより成っていた。 Here, the conversion specification XML document (XSL sheet) of the prior application had two types of templates. That is, the number of types of records subject to structure conversion processing is one, and consists of (i) a template for copying outside the target record and (ii) a template for performing structure conversion processing on the inside of the target record.
これに対して、本手法では、変換仕様XML文書22に、複数種類のレコードに対応させて各々構造変換処理を行う為のテンプレート(変換操作定義)を記述し、XSLシート(XSLTスタイルシート)の文法に即して、これら複数のテンプレート間の関係付けを記述する。つまり、変換仕様XML文書22にレコード間の引用関係をも記述し、それによって各テンプレート間を関係付ける。また、上記の通り、変換仕様XML文書22からXSLシートを自動的に生成するようにしてもよい。このXSLシートは、複数テンプレートを持ち、それらの間が関係付けられたものとなる。
On the other hand, in this method, a template (conversion operation definition) for performing structure conversion processing corresponding to a plurality of types of records is described in the conversion
本手法では、以下に記す(1)〜(3)の3種類のデータ構造のうち少なくとも1以上のデータ構造を有する入力XML文書21であっても、構造変換(XML−XML変換)を行える。
(1) 上位階層に複数要素名の(複数種類の)レコードが出現するデータ構造
上記データ構造を有する入力XML文書21に対しては、本例の第1の手法により、以下の(a)、(b)のようにする。
(a)処理対象レコード要素名を複数個併記して、それらのレコードをプッシュ処理とし、それらのレコード外をコピーするようにしたテンプレートを生成する。プッシュ処理により、同種のレコードが任意回繰り返す場合でも、1回の指定で対応することができる。
In this method, structure conversion (XML-XML conversion) can be performed even for an
(1) Data structure in which multiple element name (plural types) records appear in the upper hierarchy For the
(A) A template is generated in which a plurality of record element names to be processed are written together, the records are set as push processing, and the outside of the records is copied. Even if the same type of record is repeated any number of times by the push process, it can be dealt with by one designation.
・変換仕様XML文書22での複数のレコード要素名の併記は、例えば下記のようにする。
<record> 対象レコード要素名1|対象レコード要素名2|対象レコード要素名3|…</record>
ここで、プッシュ処理とは、出現する可能性のあるノードの種類それぞれに対してテンプレート規則を書き、<xsl:apply-templates>で任意のテンプレートを呼び出して、そのテンプレートによる処理を実行させるものである(パターンマッチングによって、呼び出すテンプレートを決定する)。まるで、プロセッサが「誰か、これを処理したい方いませんか」と言いながら、ノードをドアの外に押し出している(push)みたいだから、プッシュ処理と呼ばれる。
(b)各種レコードを処理するテンプレートを、一致処理のテンプレートとして生成する。
For example, a plurality of record element names are combined in the conversion
<record> Target
Here, the push process is to write a template rule for each type of node that may appear, call an arbitrary template with <xsl: apply-templates>, and execute the process using that template. Yes (determine which template to call by pattern matching). It's called push processing because it looks like the processor is pushing someone out of the door while saying, "Who wants to handle this?"
(B) A template for processing various records is generated as a template for matching processing.
つまり、プッシュ処理により呼び出される側のテンプレートが、例えば変換仕様XML文書22から生成した変換XSLシート15において、例えば以下のようになるようにする。
That is, the template called by the push process is set as follows, for example, in the
<xsl: template match =”対象レコード要素名”>
変換操作
</xsl: template>
尚、変換操作(CSV圧縮)自体は、上記従来技術の手法、あるいは先願の何れの手法を用いてもよく、ここでは特に具体例は示さない。
<xsl: template match = “Target record element name”>
Convert operation
</ xsl: template>
Note that the conversion operation (CSV compression) itself may use the above-described conventional technique or the technique of the prior application, and no specific example is shown here.
こうすることにより、各処理対象レコード毎に、そのレコード要素名に対応する処理テンプレートが自動的に適用される。
(2)レコードが子レコードを持つデータ構造
上記データ構造を有する入力XML文書21に対しては、本例の第2の手法により作成された変換仕様XML文書22から生成した変換XSLシート15が、例えば以下の内容を有するようにする。
By doing so, the processing template corresponding to the record element name is automatically applied to each processing target record.
(2) Data structure in which a record has child records For an
上記(b)の各種レコードを処理するテンプレート内で、
<xsl: apply-template select=”対象の子レコード要素名”/>
として、子レコード処理のテンプレートをプッシュ処理で呼び出すようにする。
In the template that processes the various records in (b) above,
<xsl: apply-template select = ”Target child record element name” />
The child record processing template is called by push processing.
尚、当然、対応する子レコード要素名の処理テンプレートも作成されている。プッシュ処理をすることにより、任意回数繰り返す子レコードに、1回の指定で対応することができる。
(3)レコードのデータ項目の大半が入替わるデータ構造(条件分岐)
上記データ構造を有する入力XML文書21に対しては、本例の第3の手法により作成された変換仕様XML文書22から生成した変換XSLシート15が、例えば以下の内容を有するようにする。
Of course, a processing template for the corresponding child record element name is also created. By performing the push process, it is possible to deal with a child record that is repeated an arbitrary number of times by one designation.
(3) Data structure in which most of the data items of the record are replaced (conditional branch)
For the
レコード処理のテンプレートで、下記のようにして条件に合わせたテンプレートを1回だけ引用するプル処理とする。
<xsl: call-template name=” 引用テンプレート名”/>
尚、当然、対応する名前付きテンプレート(上記(b))も作成されている。
In the record processing template, the pull processing for quoting a template that matches the condition only once is performed as follows.
<xsl: call-template name = ”Quoted template name” />
Of course, a corresponding named template (above (b)) is also created.
ここで、プル処理とは、名前を指定して特定のテンプレートを呼び出す処理であり、ノードをドアの外に押し出して(push)他のテンプレートに引き取らせる代わりに、ノードを引き込んで(pull)自らそれを処理するから、プル処理と呼ばれる。 Here, the pull process is a process that specifies a name and calls a specific template.Instead of pushing the node out of the door (push) and picking it up by another template, it pulls the node (pull) itself. Since it is processed, it is called pull processing.
尚、上記プッシュ処理、プル処理については、例えば下記のIBMのホームページ等で紹介されている。
http://www-6.ibm.com/jp/developerworks/xml/020726/j_x-xdpshpul.html
このホームページでは、プッシュ処理、プル処理は、プッシュ・スタイル、プル・スタイルとして紹介されており、出現順序や繰返し数が不明な場合はプッシュ・スタイルを用いることが開示されている。
The push process and the pull process are introduced on, for example, the following IBM website.
http://www-6.ibm.com/jp/developerworks/xml/020726/j_x-xdpshpul.html
This homepage introduces push processing and pull processing as push style and pull style, and discloses that the push style is used when the appearance order and the number of repetitions are unknown.
上記先願で変換対象とする非定型XML文書は、上記図22で説明したように、レコード内に出現する可能性がある非キー要素は決まっているが、各レコード毎にはそのレコード内で出現する非キー要素が何であるかは不定であった。 As described with reference to FIG. 22, the non-standard XML document to be converted in the prior application has non-key elements that may appear in the record. It was uncertain what non-key elements appeared.
一方、本手法で変換対象とするXML文書(入力XML文書21)は、上記(1)〜(3)の何れか1つ以上のデータ構造を有するものである。例えば図2には、上記(1)及び(2)のデータ構造を有するXML文書の例を示す。また、図6には、上記(3)のデータ構造を有するXML文書の例を示す。 On the other hand, the XML document (input XML document 21) to be converted by this method has one or more data structures of (1) to (3) above. For example, FIG. 2 shows an example of an XML document having the data structures (1) and (2). FIG. 6 shows an example of an XML document having the data structure (3).
先願の手法では、これらのデータ構造を有するXML文書は構造変換できなかったが、本手法では構造変換可能となる。
以下、まず図2に例について説明する。
Although the XML document having these data structures cannot be converted by the method of the prior application, the structure can be converted by this method.
Hereinafter, an example will be described with reference to FIG.
図2の例の入力XML文書21に対しては、例えば図3に示す変換仕様XML文書22に記述されている構造変換定義に従って構造変換(XML−XML変換)することが可能となり、その結果、例えば図5に示す変換XML文書23が得られる。あるいは、図3の変換仕様XML文書22から図4に示す変換XSLシート15を自動生成してこれを用いて上記変換を行うようにしてもよい。尚、ここでは図示していないが、逆変換処理、逆変換XSLシート16についても同様にして行える。
The
図2に示す入力XML文書21は、上記(1)及び(2)のデータ構造、すなわちレコード要素<調査> が子レコード要素<特許> を持ち、且つ同一階層に複数種類のレコード要素<調査>、<参考文献> を持つデータ構造を有している。
The
尚、本手法の特徴は各レコード間の関係定義とそれによる分岐、呼出し等にあり、各レコード毎の変換処理は、図2、図6に示す例では各レコード内は定型になっているので従来技術(特許文献1等)を用いればよく、例示はしていないが、もし各レコード内が非定型になっている場合には上記先願の第1〜第3の何れかの手法を用いればよい。
The feature of this method is the relationship definition between records and the branching, calling, etc., and the conversion process for each record is fixed in each record in the examples shown in FIGS. Conventional techniques (
以上述べたように、以下の説明では、各レコード内の変換処理については特に説明せず、上記本手法の特徴について説明するものとする。
まず、図27に示したように、先願の変換XML文書では、<items>要素は1個であり、1つのレコードの変換操作しか指定できなかった(つまり、<record>部品</record>のみ)。
As described above, in the following description, the conversion process in each record is not particularly described, but the characteristics of the present method are described.
First, as shown in FIG. 27, in the conversion XML document of the prior application, there is one <items> element, and only one record conversion operation can be specified (that is, <record> part </ record> only).
これに対して、図3に示す本手法の変換仕様XML文書22では、まず、複数種のレコード要素名「調査」、「参考文献」を<record>要素に併記して指定するとともに(図示の調査|参考文献)、それぞれのレコードの変換処理を<items record=”調査”または”参考文献”>要素として記述している。
In contrast, in the conversion
また、レコード要素<調査>の子レコード要素<特許>に関しては、レコード要素<調査>に関する変換処理記述の最後に、子レコ−ド要素<特許>が現れることを記述している。つまり、図示の例では、
<items record=”調査”>中で、
<item ctag=”-RECORD”>特許</item>
と記述することで、当該item要素のctag属性で子レコードへの分岐であることを指定し、子レコードの要素名を要素内容で指定するようにしている。これを受ける子レコードの変換処理は、<items record=”特許”>要素として記述している。
Further, regarding the child record element <patent> of the record element <survey>, it is described that the child record element <patent> appears at the end of the conversion process description relating to the record element <survey>. In other words, in the example shown,
<items record = ”Survey”>
<item ctag = ”-RECORD”> Patent </ item>
Is specified, the ctag attribute of the item element specifies branching to a child record, and the element name of the child record is specified by element content. The conversion process of the child record that receives this is described as an <items record = “patent”> element.
尚、上記<items record=“調査”または“特許”または“参考文献”>要素として記述しているものが、各レコード種類毎に対応する変換処理テンプレートであり、このテンプレートの内容自体は上述してある通り先願の何れかの手法を用いればよい。また、尚、図3等におけるcsv_tag、ctagは、先願におけるmerging_tag、mtagのことである。 The <items record = “search” or “patent” or “reference”> element described above is a conversion processing template corresponding to each record type, and the contents of this template itself are described above. As described above, any method of the prior application may be used. In addition, csv_tag and ctag in FIG. 3 etc. are merging_tag and mtag in the prior application.
ここで、XML文書の変換処理またはXSLシート生成処理では、先願と同様、予め、上記記述に対応する処理が行われるように作りこまれている。
すなわち、例えば、構造変換部11が変換仕様XML文書22を直接用いて構造変換(XML−XML変換)を行う場合には、上記レコード名の併記により出現する可能性のあるレコード種類を認識し、その後、入力XML文書21を順次読み込んで、いずれかの対象レコード名に遭遇する毎に、対応する変換処理テンプレートを選択し、このテンプレートを用いて変換処理を行う。また、変換仕様における<item ctag=”-RECORD”>レコード名</item>により、当該レコード名のレコード種類に対応するテンプレートを用いて、当該レコード名のレコードの変換処理を行う。
Here, in the XML document conversion process or the XSL sheet generation process, the process corresponding to the above description is performed in advance as in the prior application.
That is, for example, when the
一方、上記XSLシート生成処理に関して、XSL変換部13は、図3に示す変換仕様XML文書から図4に示す変換XSLシート(及びここでは図示しない逆変換XSLシート)を生成する為の処理機能を有している。
On the other hand, regarding the XSL sheet generation processing, the
つまり、XSL変換部13は、変換仕様XML文書22において上記
<record> 調査|参考文献 </record>
があると、これを図4に示す
<xsl:when test=”descendant-or-self::*{調査 | 参考文献}”>
の条件文を含む一連の記述(例えば図12のBの部分;後に説明する)に置き換える。
In other words, the
<record> Survey | References </ record>
If there is, this is shown in FIG.
<xsl: when test = ”descendant-or-self :: * {Research | References}”>
Are replaced with a series of descriptions (for example, part B in FIG. 12; described later).
この一連の記述によれば、<調査>、<参考文献>要素以外の部分をコピーし、<調査>、<参考文献>要素を見つけた場合、プッシュ処理でそのテンプレートを呼び出す処理が行われる。 According to this series of descriptions, when a part other than the <investigation> and <references> elements is copied and the <investigation> and <references> elements are found, a process for calling the template by push processing is performed.
また、XSL変換部13は、変換仕様XML文書22における上記<items record=”レコード名”>要素は、<xsl:template match=”レコード名”>に置き換える。
これより、レコード要素<調査>、<参考資料>は、それぞれ、<xsl:template match=”調査”または“参考資料”>のテンプレートで処理される。尚、各テンプレートの内容(CSV圧縮操作)は、既に述べたように従来技術や先願のXSLシートの形式に変換できるので、ここでは省略して示すが、後に省略していない完全版を示すものとする。
Also, the
As a result, the record element <investigation> and <reference material> are processed with the template of <xsl: template match = “investigation” or “reference material”>, respectively. Since the contents of each template (CSV compression operation) can be converted into the XSL sheet format of the prior art or the prior application as described above, a complete version that is omitted here but not shown later is shown. Shall.
以上述べたように、プッシュ処理分岐は変換仕様の<record>要素に、各レコード処理のtemplateは<items record=“調査”または“参考資料”>中の要素並びに、対応付けて変換XSLシート15が生成される。
As described above, the push process branch is the <record> element of the conversion specification, the template of each record process is the element in <items record = “investigation” or “reference material”>, and the
また、変換仕様XML文書22中の上記<item ctag=”-RECORD”>特許</item>は、図4に示すように、<xsl:template match=”調査”>のテンプレート内で、<xsl:apply-template select=”特許”>要素に置き換える。
Also, the above <item ctag = ”-RECORD”> patent </ item> in the conversion
これにより、入力XML文書21中に子レコード要素<特許>を見つけた場合には、プッシュ処理で分岐し、<xsl:template match=”特許”>のテンプレートで処理される。
以上述べた図3の変換仕様を用いてXML文書の構造変換を行うことにより、図2に示す入力XML文書21は図5に示す変換XML文書23に変換される。尚、変換後のXML文書の内容については、本手法の説明には特に関係ないので、省略する。
As a result, when a child record element <patent> is found in the
By performing the structure conversion of the XML document using the conversion specification of FIG. 3 described above, the
次に、以下に、入力XML文書21が上記(3)のデータ構造を有する場合、つまり、レコード内の条件によってレコード内の要素が入れ替わるデータ構造の場合の処理について説明する。
Next, processing in the case where the
図6に、上記(3)のデータ構造を有する入力XML文書21の例を示す。
また、図6の例の入力XML文書21に対しては、例えば図7に示す変換仕様XML文書22を用いることでXML文書の構造変換が可能となり、その結果、例えば図9に示す変換XML文書23が得られる。あるいは、図7の変換仕様XML文書22から図8に示す変換XSLシート15(不図示の逆変換XSLシート16も)を自動生成してこれを用いて上記変換を行うようにしてもよい。
FIG. 6 shows an example of the
Further, for the
図6に示す入力XML文書21は、レコードの種類は1種類(<部品>のみ)であるが、各レコード毎に、その要素<種類>の要素内容に応じて、そのレコード内の要素が変わるタイプのXML文書である。ここでは、<種類>の要素内容として、CPU、メモリ、HDD等があるものとし、これらの何れであるかによって、そのレコード内の要素並びが変わるものとする。図示の例では、<種類>の要素内容がCPUである場合には、そのレコード内の要素並びは<型番><チップ><クロック>となり、メモリである場合には<型番><容量><電源電圧>となり、HDDである場合には<型番><容量><転送速度>となるものとする。
The
これより、図7に示す変換仕様では、まず、要素<種類>の要素内容が何であるかによって条件分岐するように指定している。例えばCPUを例にすると、
<item ctag=”-BRANCH” case=“種類=‘CPU’”>process-a</item>
により、ctagで条件分岐を指令し、case属性で条件を与え、判定結果がtrueならば、process-aの名前を持つテンプレートに分岐することを指定している。case属性の条件は、要素名「種類」の要素の要素内容が「CPU」であるか否かを調べている。これはメモリ、HDDについても同様である。
Thus, in the conversion specification shown in FIG. 7, first, a conditional branch is specified depending on what the element content of the element <type> is. For example, taking a CPU as an example,
<item ctag = ”-BRANCH” case = “Type = 'CPU'”> process-a </ item>
Specifies a conditional branch with ctag, gives a condition with the case attribute, and if the judgment result is true, specifies to branch to a template with the name process-a. As the condition of the case attribute, it is checked whether or not the element content of the element with the element name “kind” is “CPU”. The same applies to the memory and HDD.
この条件分岐を受ける変換処理は、<items name=”process-a”>要素のテンプレートとして記述している。尚、既に述べている通り、各テンプレートの内容については特に説明しない。 The conversion process that receives this conditional branch is described as a template of <items name = “process-a”> element. As already described, the contents of each template are not specifically described.
XSL変換部13は、図7に示す変換仕様XML文書から図8に示す変換XSLシートを生成する。この生成処理において、上記変換仕様上の条件分岐指定は、<部品>を処理するテンプレートである<xsl:template match=”部品”>中で、条件分岐 <xsl:choose><xsl:when test=”○○”>文として生成される。
The
例えば上記変換仕様上の一例である
<item ctag=”-BRANCH” case=“種類=‘CPU’”>process-a</item>
は、図8における
<xsl:when test=“種類=‘CPU’”><xsl:call-template name=”process-a”/>
として生成され、XSLシートに記述される。
For example, it is an example on the above conversion specification
<item ctag = ”-BRANCH” case = “Type = 'CPU'”> process-a </ item>
In FIG.
<xsl: when test = “type =“ CPU ””><xsl: call-template name = ”process-a” />
And written in the XSL sheet.
これは、変換仕様におけるcase属性の条件が、XSLシートのwhen文のtest条件にそのまま入る形になっている。このため、複雑な条件にもXSL変換文法規則内で広く対処することができるとともに、変換用XSLシートの生成の実装を容易にすることができる。更に、条件分岐は1回限りの処理なので、プル処理としてcall-template文で呼び出す。この条件分岐を受ける変換処理は、<items name=”process-a”>要素の並びに記述される。 This is such that the condition of the case attribute in the conversion specification is directly included in the test condition of the when statement of the XSL sheet. Therefore, even complicated conditions can be dealt with widely in the XSL transformation grammar rules, and the implementation of the generation of the transformation XSL sheet can be facilitated. Furthermore, since conditional branching is a one-time process, it is called with a call-template statement as a pull process. The conversion process that receives this conditional branch is described in a sequence of <items name = “process-a”> elements.
先願特許(その3)では、複数種類のレコードに対応する場合、例えば各々異なるレコード種類のレコードを有する複数の入力XML文書を用意し且つこれら各入力XML文書に対応した各変換仕様XML文書を作成することになる。そして、これら各変換仕様XML文書毎にそれぞれ内部で各条件に応じた処理を作り込むことになる(つまり、1つのテンプレート内に条件分岐、各条件に応じた処理を埋め込む)。これに対して、本手法では、各条件に応じた構造変換処理テンプレートを用意し、分岐処理をテンプレートのプル処理として行うように構成するため、例えば上記図3の変換仕様と組み合わせれば、複数種のレコードを有するデータ構造のXML文書でも扱えるようになる。また、ある種類のレコードに関して上記各条件に応じた構造変換処理テンプレートを作成した後、別の種類のレコードに関して構造変換処理を記述する際に、同じ条件処理があった場合、既に作成済みの構造変換処理テンプレートを引用することができるので、変換仕様作成作業の手間が軽減でき、また作成を柔軟に行えるようになる。 In the prior patent (No. 3), when corresponding to a plurality of types of records, for example, a plurality of input XML documents each having a record of a different record type are prepared, and each conversion specification XML document corresponding to each of the input XML documents is prepared. Will be created. Then, for each of these conversion specification XML documents, processing corresponding to each condition is created internally (that is, conditional branching and processing corresponding to each condition are embedded in one template). On the other hand, in this method, since a structure conversion processing template corresponding to each condition is prepared and the branch processing is performed as the template pull processing, for example, a combination of the conversion specifications shown in FIG. Even an XML document having a data structure having a kind of record can be handled. Also, after creating a structure conversion processing template according to each of the above conditions for a certain type of record, and when describing the structure conversion processing for another type of record, if there is the same condition processing, the already created structure Since the conversion processing template can be cited, the labor of creating the conversion specification can be reduced and the creation can be made flexibly.
以下、XSL変換部13が、変換仕様XML文書22から変換XSLシート15と逆変換XSLシート16を生成する処理について説明する。
図10に変換仕様を基に変換用XSLシートを生成する処理のフローチャート図を示す。また、図10のステップS16の詳細フローチャート図を図11に示す。これら図10、図11に示す処理は、主にテンプレート間の関係付けをする処理を示すものであり、変換、逆変換で共通である。
Hereinafter, a process in which the
FIG. 10 shows a flowchart of processing for generating a conversion XSL sheet based on the conversion specification. FIG. 11 is a detailed flowchart of step S16 in FIG. The processes shown in FIGS. 10 and 11 mainly show the process of associating templates, and are common to conversion and inverse conversion.
また、図4、図8にはXSLシートの概略を示したが、その完全版を図12、図15と図16に示す。また、それぞれの逆変換シートを、図13と図14、図17と図18に示す。すなわち、図12は図3の変換仕様に基づいて生成される変換XSLシート15、図13と図14は、図3の変換仕様に基づいて生成される逆変換XSLシート16である。尚、図13と図14は1つの逆変換XSLシートを2つに分けて示しているだけである。同様に、図15と図16は図7の変換仕様に基づいて生成される変換XSLシート15、図17と図18は、図7の変換仕様に基づいて生成される逆変換XSLシート16である。尚、図15と図16、図17と図18は、それぞれ、1つの逆変換XSLシート/逆変換XSLシートを2つに分けて示しているだけである。
4 and 8 show the outline of the XSL sheet. The complete version is shown in FIGS. 12, 15 and 16. FIG. Further, the respective inverse conversion sheets are shown in FIGS. 13 and 14, and FIGS. 17 and 18. That is, FIG. 12 shows a
以下、図10、図11に示す処理について、必要に応じて図12〜図18も参照して説明する。
図10において、XSL変換部13は、変換仕様XML文書22を読み込み(ステップS11)、まず、変換XSLシート15のXML宣言文、開始タグ等の固定部分を生成する(ステップS12)。これにより、図12、図13、図15、図17に示すAの部分が作成される。
Hereinafter, the processing illustrated in FIGS. 10 and 11 will be described with reference to FIGS. 12 to 18 as necessary.
In FIG. 10, the
次に変換仕様中の<record>要素の要素内容を対象レコード群として設定し(ステップS13)、対象レコード要素群以外の部分をコピーし、対象レコード群をプッシュ処理するテンプレートを作成する(ステップS14)。上位階層に複数種のレコード要素がある場合、図3のように、<record>要素に併記してあるため、これをそのままテンプレートの条件とすることで、そのレコード群をプッシュ処理依頼するテンプレートとすることができる。 Next, the element content of the <record> element in the conversion specification is set as a target record group (step S13), a part other than the target record element group is copied, and a template for pushing the target record group is created (step S14). ). If there are multiple types of record elements in the upper hierarchy, they are written together in the <record> element as shown in Fig. 3. By using this as a template condition, the template that pushes the record group can do.
上記ステップS14の処理により、図3の変換仕様に対しては、図12、図13に示すBの部分が作成される。尚、これは、変換、逆変換とも同じ内容となるので、同一符号(B)を付してある。また、ステップS14の処理により、図7の変換仕様に対しては、図15、図17に示すCの部分が作成される。尚、BとCとでは、Bでは複数レコード併記([調査|参考文献])され、Cでは[調査]のみである点が異なるだけである。 By the process of step S14, the part B shown in FIGS. 12 and 13 is created for the conversion specification of FIG. Since this has the same contents for both conversion and inverse conversion, the same symbol (B) is given. Further, by the process of step S14, a portion C shown in FIGS. 15 and 17 is created for the conversion specification of FIG. Note that B and C differ only in that a plurality of records are written together in B ([Survey | References]), and only [Survey] is in C.
尚、A、及びBとCの大部分は、予め雛型(変換XSLシート生成XSLシート14)として保持しておくようにしてもよい。つまり、BやCにおける[ ]の中身(レコード名)だけを、変換仕様に応じて変えるだけで済むようにしてもよい。 It should be noted that most of A and B and C may be held in advance as a template (converted XSL sheet generation XSL sheet 14). That is, only the contents (record names) of [] in B and C may be changed according to the conversion specification.
そして、ステップS16により各<items>要素毎に図11の処理を実行することを繰返し行い、全ての<items>要素について図11の処理を実行したら(ステップS15,YES)、最後に変換/逆変換XSLシートに終了タグを記述して(ステップS17)、XSLシート生成処理を終了する。 Then, the process of FIG. 11 is repeatedly performed for each <items> element in step S16, and when the process of FIG. 11 is performed for all <items> elements (step S15, YES), the conversion / reverse is finally performed. An end tag is described in the converted XSL sheet (step S17), and the XSL sheet generation process is terminated.
ここで、上記A、Bの部分について説明しておく。ここでは図12を例にして、そのA、Bの部分について説明する。
まず、Aの部分のうち図示のA’の記述は、「ルートノードに対して、定義されているテンプレート全てを適用する」ことを意味する。テンプレート全てとは、Bのテンプレートと、調査、特許、参考文献の各々に関するテンプレート(図示のH、I、Eの部分)の計4つのテンプレートである。
Here, the parts A and B will be described. Here, A and B will be described with reference to FIG.
First, the description of A ′ in the portion A means that “all defined templates are applied to the root node”. All of the templates are a total of four templates: B template and templates (H, I, and E parts in the figure) related to each of research, patent, and reference.
次に、Bの部分について説明する。まず、よく知られているようにXPathの仕様において軸とノードテストと述部から成る表記法があり、例えば“軸::ノードテスト[式]”という表記法が知られている。この表記法に従って、B部における
“descendant-or-self::*[調査|参考文献]”
の部分が記述されている。
Next, the part B will be described. First, as is well known, there is a notation composed of an axis, a node test, and a predicate in the XPath specification. For example, a notation called “axis :: node test [expression]” is known. According to this notation, “descendant-or-self :: * [investigation | references]” in Part B
The part of is described.
軸の表記法の一種であるdescendant-or-selfは、カレントノード、及びカレントノードの子ノード、更に子ノードの子ノード(孫ノード;以下、まとめて子孫ノードという)というように、カレントノードとその全ての子孫のノードを再帰的に選択させるものである。ノードテストの表記法の一種である*は軸の子ノード全てを指す。そして、式として、調査と参考文献のOR条件が記述されている。 The descendant-or-self, which is a kind of axis notation, is the current node, the child node of the current node, and the child node of the child node (grandchild node; hereinafter referred to collectively as the descendant node). All the descendant nodes are selected recursively. *, Which is a kind of node test notation, indicates all child nodes of the axis. And the OR condition of the survey and the reference is described as an expression.
これよりBの部分による処理は、以下の通りとなる。
(a)自ノード又はその子孫ノードに<調査>又は<参考文献>がある場合には、カレント要素を属性込みでコピーした後に、全ての子ノードに上記全てのテンプレートを適用させる。
Accordingly, the processing by the portion B is as follows.
(a) If there is <investigation> or <reference> in its own node or its descendant nodes, after copying the current element with attributes, all the above templates are applied to all child nodes.
(b)そうでなければ、自ノード及びその子孫ノードをコピーする。
上記Bの部分の処理を図2の例に適用した場合、まず最初に対象となるノードは<技術調査>であり、これは自ノードは<調査>でも<参考文献>でもないが、その子ノードに<調査>と<参考文献>があるので、上記(a)に該当し、カレント要素を属性込みでコピーした後に、その子ノードである<テーマ>、<調査>、<参考文献>の各々について再帰的に全てのテンプレートを適用する。尚、これは、階層が何階層であっても、全ての階層の全てのレコードについて適用されることになる。
(b) Otherwise, the local node and its descendant nodes are copied.
When the processing of part B is applied to the example of FIG. 2, the target node is first <Technical Survey>, which is not the <Survey> nor <Reference>, but its child node <Survey> and <References> fall under the above (a), and after copying the current element with attributes, each of its child nodes <Theme>, <Survey>, and <References> Apply all templates recursively. Note that this is applied to all records in all hierarchies, regardless of the number of hierarchies.
まず、<テーマ>に対して全てのテンプレートB,H,I,Eを適用しようとすると、テンプレートH,I,Eの適用条件にはmatchしないので、テンプレートBのみ適用することになり、この場合上記(b)に該当するので、自ノード及びその子孫ノードをコピーする(但し、<テーマ>には子孫はないので自ノードのみとなる)。 First, if you try to apply all templates B, H, I, E to <theme>, it will not match the application conditions of templates H, I, E, so only template B will be applied. Since it corresponds to (b) above, the local node and its descendant nodes are copied (however, since <theme> has no descendants, only the local node).
次に、<調査>に対して全てのテンプレートB,H,I,Eを適用しようとすると、テンプレートHの適用条件にmatchし、またテンプレートBを適用した場合上記(a)に該当するが、前者は具体的な要素名指定であるのに対して、後者はワイルドカード指定である為、テンプレート適用の優先度は前者のほうが高い。よって、テンプレートHのみを適用する。 Next, if all templates B, H, I, and E are applied to <Survey>, it matches the application condition of template H, and if template B is applied, it corresponds to the above (a). The former is a specific element name designation, whereas the latter is a wild card designation, so the template application priority is higher in the former. Therefore, only the template H is applied.
その際、テンプレートH内にはテンプレートIへのプッシュ処理があるので、その各子ノード<特許>に対してテンプレートIが適用される。
最後に、<参考文献>に関しては、上記<調査>と同じ理由によりテンプレートEのみが適用されることになる。
At that time, since there is a push process to the template I in the template H, the template I is applied to each child node <patent>.
Finally, with respect to <reference document>, only template E is applied for the same reason as the above <investigation>.
以下、図11に示す処理について説明する。
図11の処理は、まず、<items>要素の属性が、recordかnameかによって、それぞれ、<xsl:template match=”record属性値”>か<xsl:template name=”name属性値”>で始まるテンプレートを作成する(ステップS21〜S24)。これらは、レコードのプッシュ処理と条件分岐のプル処理に当たる。尚、図示していないが、属性がない<items>要素の場合には、<xsl:template match=”record要素の要素内容”>で始まるテンプレートを作成する。
Hereinafter, the process illustrated in FIG. 11 will be described.
The process of FIG. 11 starts with <xsl: template match = “record attribute value”> or <xsl: template name = “name attribute value”>, depending on whether the attribute of the <items> element is record or name. A starting template is created (steps S21 to S24). These correspond to record push processing and conditional branch pull processing. Although not shown, in the case of an <items> element having no attribute, a template starting with <xsl: template match = “element content of the record element”> is created.
次に、当該<items>内の各<item>要素を走査し(ステップS25)、各<item>要素毎に、
ステップS27,S29,S31,S33,S34の何れかの条件に従って、ステップS28,S30,S32,S35,S36の何れかの処理を実行する。
Next, each <item> element in the <items> is scanned (step S25), and for each <item> element,
According to any of the conditions of steps S27, S29, S31, S33, and S34, the process of any of steps S28, S30, S32, S35, and S36 is executed.
ここで、<item>要素は、ctag属性値でその機能が識別されるようにしてある。
これより、ctag属性値が”-ORG”の場合は(ステップS27,YES)、キー要素として処理する(ステップS28)。図7の最初の<items>要素内の最初と二番目の<item>要素がこれに該当し、図16、図17に示すDの部分が生成される。
Here, the function of the <item> element is identified by the ctag attribute value.
Thus, if the ctag attribute value is “-ORG” (step S27, YES), it is processed as a key element (step S28). The first and second <item> elements in the first <items> element in FIG. 7 correspond to this, and the portion D shown in FIGS. 16 and 17 is generated.
または、ctag属性値が<csv_tag>の要素内容(CSV要素名)と一致するものである場合は(ステップS29,YES)、非キー要素として処理する(ステップS30)。この非キー要素の処理、あるいは上記キー要素の処理は、先願と同様であるので、ここでは説明を省略する。 Alternatively, if the ctag attribute value matches the element content (CSV element name) of <csv_tag> (step S29, YES), it is processed as a non-key element (step S30). The processing of the non-key element or the processing of the key element is the same as that of the prior application, and thus description thereof is omitted here.
尚、上述したように、図10、図11の処理は変換と逆変換とで共通だが、変換と逆変換では、非キー要素の処理が変わる。これも先願で説明してあるが、簡単に説明するならば、キー要素は、変換の場合、元文書の要素をそのままコピーし、逆変換の場合も変換文書に元文書と同じ要素を逆変換文書にコピーするだけになる。一方、非キー要素の場合は、変換の場合、ctag属性値(CSV要素)にCSV形式で<item>要素の内容をまとめる操作を行い、逆変換の場合、ctag属性値のCSV要素の要素内容を分離して<item>要素の内容に入れ込む操作を行うことになる。 As described above, the processes of FIGS. 10 and 11 are common to the conversion and the reverse conversion, but the process of the non-key element changes in the conversion and the reverse conversion. This is also explained in the prior application, but for simplicity, the key element is copied as it is in the original document in the case of conversion, and the same element as the original document is reversed in the converted document in the case of reverse conversion. Just copy it to the converted document. On the other hand, in the case of a non-key element, in the case of conversion, an operation is performed to combine the contents of the <item> element in the ctag attribute value (CSV element) in CSV format. In the case of reverse conversion, the element content of the CSV element of the ctag attribute value Will be inserted into the content of the <item> element.
例えば図3におけるレコードCの変換仕様を例にすると、変換に関しては、図12に示すEの部分が生成されることになる。すなわち、CSV要素名が「文献csv」の新要素に対応付けて、入力XML文書21におけるタグ名題名,出典,備考の各要素の要素内容(XMLの文法、XML解説社、200306発行)が、CSV形式で繋がれて変換XML文書23に出力されるようにする以下の命令文が生成されることになる。
<文献csv><xsl:value-of select=”concat(題名,‘,’出典,‘,’備考)”/></文献csv>
一方、逆変換に関しては、図14に示すFの部分のように、select=“substring-before/after・・・等を用いて、上記CSV形式で繋がれた各要素内容を分離する操作を行う命令文が生成されることになる。
For example, taking the conversion specification of record C in FIG. 3 as an example, the part E shown in FIG. 12 is generated for conversion. That is, the element content of each element of the tag title name, source, and remarks in the input XML document 21 (XML grammar, XML commentary company, issued by 200306) is associated with the new element whose CSV element name is “document csv”. The following statements that are connected in the CSV format and output to the converted
<Reference csv><xsl: value-of select = ”concat (title, ',' source, ','remarks)"/></ reference csv>
On the other hand, with respect to the inverse transformation, as shown by F in FIG. 14, an operation for separating the contents of each element connected in the CSV format is performed using select = “substring-before / after... A statement will be generated.
また、ctag属性値が”-RECORD”である場合は(ステップS31)、子レコードが指定されているので、この<item>要素より<xsl:apply-templates select=”<item>要素内容”/>を生成する。つまり、子レコードの処理テンプレートをプッシュ処理で呼び込む命令文を生成する(ステップS32)。 If the ctag attribute value is “-RECORD” (step S31), since a child record is specified, <xsl: apply-templates select = ”<item> element content” / Generate>. That is, a command statement for calling the processing template of the child record by the push processing is generated (step S32).
あるいは、ctag属性値が”-BRANCH”の場合は(ステップS33,YES)、条件分岐が指定されていることになる。よって、続いて、この<item>要素のcase属性値を調べる。そして、このcase属性値が”otherwise”でなければ(ステップS34,NO)、ステップS35の処理を実行する。 Alternatively, if the ctag attribute value is “-BRANCH” (step S33, YES), a conditional branch is designated. Therefore, the case attribute value of this <item> element is subsequently examined. If the case attribute value is not “otherwise” (step S34, NO), the process of step S35 is executed.
ステップS35の処理は、まず、今回の処理対象の<item>要素が一連の条件分岐の<item>要素群の最初の<item>要素であるか否かを調べ、最初の場合だけ<xsl:choose>文を置く。そして、最初であるか否かは関係なく、以下の条件判定及びプル処理の命令文を生成する。 In the process of step S35, first, it is checked whether or not the <item> element to be processed this time is the first <item> element in a series of conditional branch <item> elements. Only in the first case, <xsl: Choose> statement. Then, regardless of whether it is the first or not, the following conditional judgment and pull processing statements are generated.
<xsl:when test=”case属性値”>
<xsl:call-template name=”<item>の要素内容”/></xsl:when>
一方、もしcase属性値が”otherwise”である場合は(ステップS34,YES)、
<xsl:otherwise>
<xsl:call-template name=”<item>の要素内容”/>
</xsl:otherwise>
を生成し、更に</xsl:choose> と続けて、一連の条件分岐文を終了する。
<xsl: when test = ”case attribute value”>
<xsl: call-template name = ”<item> element content” /></ xsl: when>
On the other hand, if the case attribute value is “otherwise” (step S34, YES),
<xsl: otherwise>
<xsl: call-template name = ”<item> element content” />
</ xsl: otherwise>
Then, </ xsl: choose> is continued and a series of conditional branch statements is terminated.
これによって、図7の変換仕様に示す4つの条件分岐文の一連の流れが、図16、図17に示すGの部分の<xsl:choose>文として生成される。
以上の処理を各<item>要素について実行し、<items>内の全ての<item>要素の処理が終了したら(ステップS26,YES)、テンプレートの閉じタグ</xsl:template>を記述して図11の処理は終了する。
As a result, a series of four conditional branch statements shown in the conversion specification of FIG. 7 is generated as an <xsl: choose> statement of the G portion shown in FIGS.
When the above processing is executed for each <item> element and processing of all <item> elements in <items> is completed (step S26, YES), a template closing tag </ xsl: template> is described. The process in FIG. 11 ends.
以上説明したように、本手法によれば、例えば非表形式でレコードのネストや複数種のレコードを持つデータ構造を有するXML文書に対しても、CSV圧縮等の構造変換を行うことができるようになる。よって、このような構造のXML文書が応用ソフトウェアで容易に処理可能となる。また、この構造変換を行わせる為の変換仕様は、XSLTスタイルシートの文法と緊密に連携させた表記法で表記する。これにより、変換仕様からXSLTスタイルシートを生成する処理を簡単・スムーズに行えるようになる。 As described above, according to this method, it is possible to perform structure conversion such as CSV compression even for an XML document having a data structure having a record nesting or a plurality of types of records in a non-table format, for example. become. Therefore, an XML document having such a structure can be easily processed by application software. In addition, the conversion specification for performing this structural conversion is expressed in a notation system closely linked to the XSLT stylesheet grammar. As a result, the process of generating the XSLT stylesheet from the conversion specification can be performed easily and smoothly.
図19は、本実施の形態による構造化文書変換方法を実現するコンピュータのハードウェア構成の一例を示す図である。
同図に示すコンピュータ100は、CPU101、メモリ102、外部記憶装置105、媒体駆動装置106等を有し、これらがバス108に接続された構成となっている。また、更に、ネットワーク接続装置107を有する構成であってもよい。同図に示す構成は一例であり、これに限るものではない。
FIG. 19 is a diagram illustrating an example of a hardware configuration of a computer that implements the structured document conversion method according to the present embodiment.
A
CPU101は、当該コンピュータ100全体を制御する中央処理装置である。
メモリ102は、プログラム実行、データ更新等の際に、外部記憶装置105(あるいは可搬型記録媒体109)に記憶されているプログラムあるいはデータを一時的に格納するRAM等のメモリである。CPU101は、メモリ102に読み出したプログラム/データを用いて、上述してある図2の構造変換部11、逆変換部12、XSL変換部13の機能(XSL変換部13に関しては図10、図11に示すフローチャート処理)を実現する。
The
The
外部記憶装置105は、例えば磁気ディスク装置、光ディスク装置、光磁気ディスク装置等であり、上記本発明の各種機能を実現させる為のプログラム/データ等が格納されている。このデータとしては、例えば、図2に示す変換XSLシート生成XSLシート14、変換XSLシート15、逆変換XSLシート16等である。また、外部から入力XML文書21、変換仕様XML文書22、抽出XML文書24等のデータが入力されると、これを一時的に記憶する。
The
媒体駆動装置106は、可搬型記録媒体109に記憶されているプログラム/データ等を読み出す。可搬型記録媒体109は、例えば、FD(フレキシブルディスク)、CD−ROM、その他、DVD、光磁気ディスク等である。
The
ネットワーク接続装置107は、ネットワークに接続して、外部の情報処理装置とプログラム/データ等の送受信を可能にする構成である。
図20は、上記プログラム等を記録した記録媒体、ダウンロードの一例を示す図である。
The
FIG. 20 is a diagram illustrating an example of a recording medium in which the above-described program is recorded and download.
図示のように、上記本発明の機能を実現するプログラム/データが記憶されている可搬型記録媒体109から情報処理装置100側に読み出して、メモリ102に格納し実行するものであってもよいし、また、上記プログラム/データは、ネットワーク接続装置107により接続しているネットワーク(インターネット等)を介して、外部のサーバ110の記憶部111に記憶されているプログラム/データをダウンロードするものであってもよい。
As shown in the figure, the information may be read from the
また、本発明は、装置/方法に限らず、上記プログラム/データを格納した記録媒体(可搬型記録媒体109等)自体として構成することもできるし、上記プログラム自体として構成することもできる。 The present invention is not limited to the apparatus / method, and can be configured as a recording medium (such as the portable recording medium 109) storing the program / data, or as the program itself.
(付記1) 構造化文書を構造変換する構造変換装置であって、
前記構造化文書が同一階層に複数種類のレコードを有するデータ構造を持つ場合、各レコード種類毎に対応してそのレコード種類のレコード内に出現する要素を圧縮変換する変換操作を定義すると共に該複数の変換操作間の呼び出し関係を定義する変換仕様定義手段と、
該変換仕様定義手段による前記各定義に基づいて、前記同一階層に複数種類のレコードを有するデータ構造を持つ構造化文書を構造変換する構造変換手段と、
を有することを特徴とする構造変換装置。
(Supplementary note 1) A structure conversion device for converting the structure of a structured document,
When the structured document has a data structure having a plurality of types of records in the same hierarchy, a conversion operation for compressing and converting an element appearing in the record of the record type is defined corresponding to each record type and the plurality A conversion specification defining means for defining the calling relationship between the conversion operations of
Structure conversion means for converting the structure of a structured document having a data structure having a plurality of types of records in the same hierarchy, based on each definition by the conversion specification definition means;
A structure conversion device comprising:
(付記2) 構造化文書を構造変換する構造変換装置であって、
前記構造化文書が複数種類のレコードを有すると共に構造変換対象の任意のレコードが子レコードを有するデータ構造を持つ場合、各レコード種類毎に対応してそのレコード種類のレコード内に出現する要素を圧縮変換する変換操作を定義すると共に、前記子レコードを有する任意のレコードのレコード種類に対応した変換操作定義中に、該子レコードのレコード種類に対応した変換操作間の呼び出し関係を定義する変換仕様定義手段と、
該変換仕様定義手段による前記各定義に基づいて、前記同一階層に複数種類のレコードを有するデータ構造を持つ構造化文書を構造変換する構造変換手段と、
を有することを特徴とする構造変換装置。
(Supplementary note 2) A structure conversion device for converting a structured document into a structure,
When the structured document has a plurality of types of records and an arbitrary record to be converted has a data structure having a child record, the elements appearing in the record type corresponding to each record type are compressed. A conversion specification definition that defines a conversion operation to be converted and defines a calling relationship between conversion operations corresponding to the record type of the child record during the conversion operation definition corresponding to the record type of the arbitrary record having the child record Means,
Structure conversion means for converting the structure of a structured document having a data structure having a plurality of types of records in the same hierarchy, based on each definition by the conversion specification definition means;
A structure conversion device comprising:
(付記3) 構造化文書を構造変換する構造変換装置であって、
前記構造化文書が各レコード内の条件によってそのレコード内の要素が変わるデータ構造を持つ場合、前記各条件に対応してそのレコード内に出現する要素を圧縮変換する変換操作を定義すると共に該複数の変換操作定義の何れを適用するかの条件分岐を定義する変換仕様定義手段と、
該変換仕様定義手段による前記各定義に基づいて、前記データ構造を持つ構造化文書を構造変換する構造変換手段と、
を有することを特徴とする構造変換装置。
(Supplementary note 3) A structure conversion device for converting the structure of a structured document,
When the structured document has a data structure in which elements in the record change depending on conditions in each record, a conversion operation for compressing and converting elements appearing in the record corresponding to the conditions is defined and the plural A conversion specification defining means for defining a conditional branch of which one of the conversion operation definitions is applied,
A structure conversion means for converting the structure of the structured document having the data structure based on the respective definitions by the conversion specification definition means;
A structure conversion device comprising:
(付記4) 前記レコード内の要素を圧縮変換する変換操作の定義は、変換後の構造化文書における新要素を複数定義し、前記レコード内の各要素についてデータ処理の対象となるキー要素であるか否かを指定すると共に該キー要素以外の要素である各非キー要素を前記複数の新要素の何れに割り当てるかを定義するものであり、
前記構造変換手段は、この定義により、前記各要素を、前記レコード内で出現する順に、前記キー要素はそのまま変換後の構造化文書に記述し、前記各非キー要素に関しては、その要素内容を、該当する前記新要素毎にCSV形式でまとめたものを各新要素の要素内容として変換後の構造化文書に記述することを特徴とする付記1〜付記3の何れかに記載の構造変換装置。
(Additional remark 4) The definition of the conversion operation which compresses and converts the element in the record is a key element which defines a plurality of new elements in the converted structured document and is subject to data processing for each element in the record. Defining whether or not each non-key element that is an element other than the key element is allocated to the plurality of new elements,
According to this definition, the structure conversion means describes each element in the converted structured document as it is in the order in which the elements appear in the record. For each non-key element, the element content is described. The structure conversion apparatus according to any one of
(付記5) 前記構造化文書はXML文書であり、前記変換仕様定義もXML文書で定義し、
前記変換仕様を定義するXML文書から、該変換仕様定義をXSLT文法で記述したXSLTスタイルシートを生成するスタイルシート生成手段を更に有し、
前記構造変換手段は該XSLTスタイルシートを用いて前記構造変換を行うXSLTプロセッサであることを特徴とする付記1〜付記4の何れかに記載の構造変換装置。
(Supplementary Note 5) The structured document is an XML document, the conversion specification definition is also defined in the XML document,
Style sheet generating means for generating an XSLT stylesheet in which the conversion specification definition is described in an XSLT grammar from an XML document defining the conversion specification;
5. The structure conversion apparatus according to any one of
(付記6) 前記構造化文書が同一階層に複数種類のレコードを有するデータ構造を持つ場合の前記複数の変換操作定義の呼び出し定義は、前記XSLTスタイルシートにおいて該複数の変換操作定義の何れかへのプッシュ処理として記述されることを特徴とする付記5記載の構造変換装置。
(Supplementary Note 6) When the structured document has a data structure having a plurality of types of records in the same hierarchy, the call definition of the plurality of conversion operation definitions is to any of the plurality of conversion operation definitions in the XSLT stylesheet. 6. The structure conversion device according to
(付記7) 前記構造化文書が複数種類のレコードを有すると共に構造変換対象の任意のレコードが子レコードを有するデータ構造を持つ場合の前記子レコードのレコード種類に対応した変換操作定義の呼び出し定義は、前記XSLTスタイルシートにおいて該子レコードの変換操作定義へのプッシュ処理として記述されることを特徴とする付記5記載の構造変換装置。
(Supplementary note 7) When the structured document has a plurality of types of records and any record to be converted has a data structure having a child record, the call definition of the conversion operation definition corresponding to the record type of the child record is The structure conversion apparatus according to
(付記8) 前記構造化文書が各レコード内の条件によってそのレコード内の要素が変わるデータ構造を持つ場合の前記条件分岐の定義は、前記XSLTスタイルシートにおいてプル処理として記述されることを特徴とする付記5記載の構造変換装置。
(Supplementary note 8) The conditional branch definition in the case where the structured document has a data structure in which elements in the record change depending on conditions in each record is described as pull processing in the XSLT stylesheet. The structure conversion apparatus according to
(付記9) 構造化文書を構造変換する構造変換方法であって、
前記構造化文書が同一階層に複数種類のレコードを有するデータ構造を持つ場合、各レコード種類毎に対応してそのレコード種類のレコード内に出現する要素を圧縮変換する変換操作を定義すると共に該複数の変換操作間の呼び出し関係を定義した変換仕様XML文書またはXSLTスタイルシートに基づいて、前記同一階層に複数種類のレコードを有するデータ構造を持つ構造化文書を構造変換することを特徴とする構造変換方法。
(Supplementary note 9) A structure conversion method for converting the structure of a structured document,
When the structured document has a data structure having a plurality of types of records in the same hierarchy, a conversion operation for compressing and converting an element appearing in the record of the record type is defined corresponding to each record type and the plurality A structure conversion characterized in that a structured document having a data structure having a plurality of types of records in the same hierarchy is structurally converted based on a conversion specification XML document or XSLT stylesheet defining a calling relationship between conversion operations of Method.
(付記10) 構造化文書を構造変換する構造変換方法であって、
前記構造化文書が複数種類のレコードを有すると共に構造変換対象の任意のレコードが子レコードを有するデータ構造を持つ場合、各レコード種類毎に対応してそのレコード種類のレコード内に出現する要素を圧縮変換する変換操作を定義すると共に、前記子レコードを有する任意のレコードのレコード種類に対応した変換操作定義中に、該子レコードのレコード種類に対応した変換操作間の呼び出し関係を定義した変換仕様XML文書またはXSLTスタイルシートに基づいて、前記同一階層に複数種類のレコードを有するデータ構造を持つ構造化文書を構造変換することを特徴とする構造変換方法。
(Supplementary Note 10) A structure conversion method for converting the structure of a structured document,
When the structured document has a plurality of types of records and an arbitrary record to be converted has a data structure having a child record, the elements appearing in the record type corresponding to each record type are compressed. A conversion specification XML defining a conversion operation to be converted and defining a calling relationship between conversion operations corresponding to the record type of the child record during the conversion operation definition corresponding to the record type of the arbitrary record having the child record A structure conversion method, comprising: converting a structured document having a data structure having a plurality of types of records in the same hierarchy based on a document or an XSLT stylesheet.
(付記11) 構造化文書を構造変換する構造変換方法であって、
前記構造化文書が各レコード内の条件によってそのレコード内の要素が変わるデータ構造を持つ場合、前記各条件に対応してそのレコード内に出現する要素を圧縮変換する変換操作を定義すると共に該複数の変換操作定義の何れを適用するかの条件分岐を定義した変換仕様XML文書またはXSLTスタイルシートに基づいて、前記データ構造を持つ構造化文書を構造変換することを特徴とする構造変換方法。
(Supplementary note 11) A structure conversion method for converting the structure of a structured document,
When the structured document has a data structure in which elements in the record change depending on conditions in each record, a conversion operation for compressing and converting elements appearing in the record corresponding to the conditions is defined and the plural A structure conversion method characterized by structurally converting a structured document having the data structure based on a conversion specification XML document or an XSLT stylesheet that defines a conditional branch of which one of the conversion operation definitions is applied.
(付記12) コンピュータに、
構造変換対象の構造化文書が同一階層に複数種類のレコードを有するデータ構造を持つ場合、各レコード種類毎に対応してそのレコード種類のレコード内に出現する要素を圧縮変換する変換操作を定義すると共に該複数の変換操作間の呼び出し関係を定義した変換仕様XML文書またはXSLTスタイルシートに基づいて、前記同一階層に複数種類のレコードを有するデータ構造を持つ構造化文書を構造変換する機能、
を実現させるためのプログラム。
(Supplementary note 12)
If the structured document to be converted has a data structure with multiple types of records in the same hierarchy, define a conversion operation that compresses and converts elements that appear in records of that record type for each record type And a structural conversion of a structured document having a data structure having a plurality of types of records in the same hierarchy, based on a conversion specification XML document or XSLT stylesheet that defines a calling relationship between the plurality of conversion operations.
A program to realize
(付記13) コンピュータに、
構造変換対象の構造化文書が複数種類のレコードを有すると共に構造変換対象の任意のレコードが子レコードを有するデータ構造を持つ場合、各レコード種類毎に対応してそのレコード種類のレコード内に出現する要素を圧縮変換する変換操作を定義すると共に、前記子レコードを有する任意のレコードのレコード種類に対応した変換操作定義中に、該子レコードのレコード種類に対応した変換操作間の呼び出し関係を定義した変換仕様XML文書またはXSLTスタイルシートに基づいて、前記同一階層に複数種類のレコードを有するデータ構造を持つ構造化文書を構造変換する機能、
を実現させる為のプログラム。
(Supplementary note 13)
If the structured document to be converted has multiple types of records and any record to be converted has a data structure with child records, it will appear in the record type corresponding to each record type. In addition to defining a conversion operation that compresses and converts elements, a call relationship between conversion operations corresponding to the record type of the child record was defined during the conversion operation definition corresponding to the record type of the arbitrary record having the child record. A function of structurally converting a structured document having a data structure having a plurality of types of records in the same hierarchy, based on a conversion specification XML document or an XSLT stylesheet;
A program to realize
(付記14) コンピュータに、
構造変換対象の構造化文書が各レコード内の条件によってそのレコード内の要素が変わるデータ構造を持つ場合、前記各条件に対応してそのレコード内に出現する要素を圧縮変換する変換操作を定義すると共に該複数の変換操作定義の何れを適用するかの条件分岐を定義した変換仕様XML文書またはXSLTスタイルシートに基づいて、前記データ構造を持つ構造化文書を構造変換する機能、
を実現させる為のプログラム。
(Supplementary note 14)
When the structured document to be converted has a data structure in which the elements in the record change depending on the conditions in each record, a conversion operation for compressing and converting elements appearing in the record corresponding to the conditions is defined. And a function for structural conversion of the structured document having the data structure based on a conversion specification XML document or XSLT stylesheet that defines a conditional branch of which of the plurality of conversion operation definitions is applied,
A program to realize
(付記15) コンピュータに、
構造変換対象の構造化文書が同一階層に複数種類のレコードを有するデータ構造を持つ場合、各レコード種類毎に対応してそのレコード種類のレコード内に出現する要素を圧縮変換する変換操作を定義すると共に該複数の変換操作間の呼び出し関係を定義した変換仕様XML文書またはXSLTスタイルシートに基づいて、前記同一階層に複数種類のレコードを有するデータ構造を持つ構造化文書を構造変換する機能、
を実現させるプログラムを記録した前記コンピュータ読取り可能な記録媒体。
(Supplementary note 15)
If the structured document to be converted has a data structure with multiple types of records in the same hierarchy, define a conversion operation that compresses and converts elements that appear in records of that record type for each record type And a structural conversion of a structured document having a data structure having a plurality of types of records in the same hierarchy, based on a conversion specification XML document or XSLT stylesheet that defines a calling relationship between the plurality of conversion operations.
The computer-readable recording medium which recorded the program which implement | achieves.
(付記16) コンピュータに、
構造変換対象の構造化文書が複数種類のレコードを有すると共に構造変換対象の任意のレコードが子レコードを有するデータ構造を持つ場合、各レコード種類毎に対応してそのレコード種類のレコード内に出現する要素を圧縮変換する変換操作を定義すると共に、前記子レコードを有する任意のレコードのレコード種類に対応した変換操作定義中に、該子レコードのレコード種類に対応した変換操作間の呼び出し関係を定義した変換仕様XML文書またはXSLTスタイルシートに基づいて、前記同一階層に複数種類のレコードを有するデータ構造を持つ構造化文書を構造変換する機能、
を実現させるプログラムを記録した前記コンピュータ読取り可能な記録媒体。
(Supplementary note 16)
If the structured document to be converted has multiple types of records and any record to be converted has a data structure with child records, it will appear in the record type corresponding to each record type. In addition to defining a conversion operation that compresses and converts elements, a call relationship between conversion operations corresponding to the record type of the child record was defined during the conversion operation definition corresponding to the record type of the arbitrary record having the child record. A function of structurally converting a structured document having a data structure having a plurality of types of records in the same hierarchy, based on a conversion specification XML document or an XSLT stylesheet;
The computer-readable recording medium which recorded the program which implement | achieves.
(付記17) コンピュータに、
構造変換対象の構造化文書が各レコード内の条件によってそのレコード内の要素が変わるデータ構造を持つ場合、前記各条件に対応してそのレコード内に出現する要素を圧縮変換する変換操作を定義すると共に該複数の変換操作定義の何れを適用するかの条件分岐を定義した変換仕様XML文書またはXSLTスタイルシートに基づいて、前記データ構造を持つ構造化文書を構造変換する機能、
を実現させるプログラムを記録した前記コンピュータ読取り可能な記録媒体。
(Supplementary note 17)
When the structured document to be converted has a data structure in which the elements in the record change depending on the conditions in each record, a conversion operation for compressing and converting elements appearing in the record corresponding to the conditions is defined. And a function for structural conversion of the structured document having the data structure based on a conversion specification XML document or XSLT stylesheet that defines a conditional branch of which of the plurality of conversion operation definitions is applied,
The computer-readable recording medium which recorded the program which implement | achieves.
10 データ構造変換/逆変換機構
11 構造変換部
12 逆変換部
13 XSL変換部
14 変換XSLシート生成XSLシート
15 変換XSLシート
16 逆変換XSLシート
21 入力XML文書
22 変換仕様XML文書
23 変換XML文書
100 コンピュータ
101 CPU
102 メモリ
105 外部記憶装置
106 媒体駆動装置
107 ネットワーク接続装置
108 バス
109 可搬型記録媒体
110 外部のサーバ
111 記憶部
10 Data structure conversion /
102
Claims (4)
前記構造化文書が同一階層に複数種類のレコードを有するデータ構造を持つ場合、レコード種類毎に対応させて各々構造変換処理を行う為のテンプレートが記述されていると共にレコード間の引用関係が記述されている変換仕様文書を格納する格納手段と、
前記同一階層に複数種類のレコードを有するデータ構造を持つ構造化文書を、構造変換対象のレコード要素以外の部分についてはコピーし、対象レコード群については、該変換仕様文書に記述されているテンプレートの中から該対象レコード群の各レコードに応じたテンプレートをパターンマッチングにより決定し、該決定したテンプレートを用いて、構造変換する構造変換手段と、
を有することを特徴とする構造変換装置。 A structure conversion device for converting the structure of a structured document,
When the structured document has a data structure having a plurality of types of records in the same hierarchy, a template for performing structure conversion processing is described for each record type and a citation relationship between records is described. Storage means for storing the conversion specification document,
Template a structured document having a data structure having a plurality of types of records before Symbol same hierarchy, copy to the portion other than the record element of the structure converted, for target record group, described in the conversion specification document A template corresponding to each record of the target record group is determined by pattern matching, and using the determined template, structure conversion means for converting the structure,
A structure conversion device comprising:
前記構造化文書が複数種類のレコードを有すると共に構造変換対象の任意のレコードが子レコードを有するデータ構造を持つ場合、レコード種類毎に対応させて各々構造変換処理を行う為のテンプレートが記述されていると共に、前記子レコードを有する任意のレコードのレコード種類に対応したテンプレートに、該子レコードのレコード種類に対応したレコード間の引用関係が記述されている変換仕様文書を格納する格納手段と、
前記同一階層に複数種類のレコードを有するデータ構造を持つ構造化文書を、構造変換対象のレコード要素以外の部分についてはコピーし、対象レコード群については、該変換仕様文書に記述されているテンプレートの中から該対象レコード群の各レコードに応じたテンプレートをパターンマッチングにより決定し、該決定したテンプレートを用いて、構造変換する構造変換手段と、
を有することを特徴とする構造変換装置。 A structure conversion device for converting the structure of a structured document,
When the structured document has a plurality of types of records and an arbitrary record to be converted has a data structure having a child record, a template for performing each structure conversion process is described corresponding to each record type. Storage means for storing a conversion specification document in which a citation relationship between records corresponding to the record type of the child record is described in a template corresponding to the record type of an arbitrary record having the child record;
Template a structured document having a data structure having a plurality of types of records before Symbol same hierarchy, copy to the portion other than the record element of the structure converted, for target record group, described in the conversion specification document A template corresponding to each record of the target record group is determined by pattern matching, and using the determined template, structure conversion means for converting the structure,
A structure conversion device comprising:
前記変換仕様文書から、該変換仕様文書をXSLT文法で記述したXSLTスタイルシートを生成するスタイルシート生成手段を更に有し、
前記構造変換手段は該XSLTスタイルシートを用いて前記構造変換を行うXSLTプロセッサであることを特徴とする請求項1または2に記載の構造変換装置。 The structured document and the conversion specification document are XML documents,
Style sheet generating means for generating an XSLT stylesheet describing the conversion specification document in XSLT grammar from the conversion specification document;
The structure conversion apparatus according to claim 1, wherein the structure conversion unit is an XSLT processor that performs the structure conversion using the XSLT stylesheet.
構造変換対象の構造化文書が同一階層に複数種類のレコードを有するデータ構造を持つ場合、レコード種類毎に対応させて各々構造変換処理を行う為のテンプレートが記述されていると共にレコード間の引用関係が記述されている変換仕様XML文書またはXSLTスタイルシートに基づいて、前記同一階層に複数種類のレコードを有するデータ構造を持つ構造化文書を、構造変換対象のレコード要素以外の部分についてはコピーし、対象レコード群については、該変換仕様XML文書またはXSLTスタイルシートに記述されているテンプレートの中から該対象レコード群の書くレコードに応じたテンプレートをパターンマッチングにより決定し、該決定したテンプレートを用いて、構造変換する機能、
を実現させるためのプログラム。 On the computer,
If the structured document to be converted has a data structure with multiple types of records in the same hierarchy, templates for performing structure conversion processing are described for each record type and citation relationships between records A structured document having a data structure having a plurality of types of records in the same hierarchy, based on a conversion specification XML document or XSLT stylesheet in which is described, for portions other than the record element to be converted, For the target record group, a template corresponding to the record written by the target record group is determined from the templates described in the conversion specification XML document or the XSLT stylesheet, and the determined template is used. Ability to convert structures,
A program to realize
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004082589A JP4410005B2 (en) | 2004-03-22 | 2004-03-22 | Structured document structure conversion device and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004082589A JP4410005B2 (en) | 2004-03-22 | 2004-03-22 | Structured document structure conversion device and program |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008283098A Division JP4786695B2 (en) | 2008-11-04 | 2008-11-04 | Structure conversion device for structured documents |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005267531A JP2005267531A (en) | 2005-09-29 |
JP4410005B2 true JP4410005B2 (en) | 2010-02-03 |
Family
ID=35091986
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004082589A Expired - Fee Related JP4410005B2 (en) | 2004-03-22 | 2004-03-22 | Structured document structure conversion device and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4410005B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4997749B2 (en) * | 2005-12-07 | 2012-08-08 | 富士ゼロックス株式会社 | Document processing method, program, and system |
JP2008134898A (en) * | 2006-11-29 | 2008-06-12 | Kddi Corp | Medical checkup information system |
WO2008146781A1 (en) * | 2007-05-28 | 2008-12-04 | Nec Corporation | Structured document converting device |
-
2004
- 2004-03-22 JP JP2004082589A patent/JP4410005B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2005267531A (en) | 2005-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7143344B2 (en) | Transformation stylesheet editor | |
AU2006200047B2 (en) | Data store for software application documents | |
US7406660B1 (en) | Mapping between structured data and a visual surface | |
US8484552B2 (en) | Extensible stylesheet designs using meta-tag information | |
RU2348973C2 (en) | Methods of decompression and compression for maintenance of guidance with properties of files between systems of objects | |
US8046683B2 (en) | Structural editing with schema awareness | |
US7860815B1 (en) | Computer knowledge representation format, system, methods, and applications | |
KR101331532B1 (en) | Dynamic method for generating xml documents from a database | |
US20050132278A1 (en) | Structural conversion apparatus, structural conversion method and storage media for structured documents | |
US20060156220A1 (en) | System and method for managing dynamic content assembly | |
US20020059345A1 (en) | Method for generating transform rules for web-based markup languages | |
JP2004265402A (en) | Method and system for extending pasting function of computer software application | |
US20090112901A1 (en) | Software, Systems and Methods for Modifying XML Data Structures | |
JP2006092529A (en) | System and method for automatically generating xml schema for verifying xml input document | |
EP2211277A1 (en) | Method and apparatus for generating an integrated view of multiple databases | |
JP2004234354A (en) | Method, system and program of creating structural pattern candidate | |
WO2006103777A1 (en) | Structured data conversion method | |
US20110078552A1 (en) | Transclusion Process | |
JP4410005B2 (en) | Structured document structure conversion device and program | |
JP4786695B2 (en) | Structure conversion device for structured documents | |
Hori et al. | Annotation by transformation for the automatic generation of content customization metadata | |
JP2004529427A (en) | Design of extensible style sheet using meta tag information | |
Ioannides | XML schema languages: beyond DTD | |
JP4242701B2 (en) | Storage search device, storage search program, and storage search program recording medium | |
Lizorkin et al. | Implementation of the XML linking language XLink by functional methods |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060623 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080731 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080902 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081104 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090331 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090525 |
|
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: 20091110 |
|
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: 20091112 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121120 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121120 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131120 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |