WO2004061713A1 - 構造化文書の構造変換装置、構造変換方法、記録媒体 - Google Patents
構造化文書の構造変換装置、構造変換方法、記録媒体 Download PDFInfo
- Publication number
- WO2004061713A1 WO2004061713A1 PCT/JP2003/014821 JP0314821W WO2004061713A1 WO 2004061713 A1 WO2004061713 A1 WO 2004061713A1 JP 0314821 W JP0314821 W JP 0314821W WO 2004061713 A1 WO2004061713 A1 WO 2004061713A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- elements
- structured document
- converted
- conversion
- new
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
- G06F16/84—Mapping; Conversion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
- G06F40/143—Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/151—Transformation
- G06F40/154—Tree transformation for tree-structured or markup documents, e.g. XSLT, XSL-FO or stylesheets
Definitions
- the present invention relates to a method and an apparatus for performing a structure conversion / inverse conversion from an XML document to an XML document.
- XML extensible Markup Language
- XML was standardized in February 1998 to make it easy to use SGML (Standard Generalized Markup Language) standardized by ISO in 1996 on the Internet.
- L 1.0 was formulated by the W3C (World Wide Web Consortium).
- H TM L a web page creation language that has been used HyperText Markup Language
- HyperText Markup Language is a specially designed display with a fixed tag power of S, and there was a problem that it could not meet the requirement to process information on a computer based on tag information.
- XML has a language structure that allows users to freely define tags and provide meaning to character strings in documents.
- the document can be processed by a computer based on the tag information.
- XML documents are roughly classified into the following two types depending on their characteristics.
- ⁇ Data type XML document A document with a large number of tags, such as slips and schedules, and a short element content
- Document type XML document A document with a long element content such as a magazine, manual, dictionary, etc.
- the data structure is described by embedding tags in the document.
- the data structure is embedded as a tag in the document in this way, flexibility and extensibility can be obtained for addition / deletion of data items, and changes. With a name This allows the data to have visibility.
- the processing performance of the XML document can be improved by processing the XML document itself in advance.
- the present invention relates to the latter technique (a technique for processing XML documents to improve processing performance).
- conventional techniques relating to the latter technique will be described.
- Non-Patent Document 1 discloses a case in which a problem that the processing speed becomes slow when XML is introduced occurs, and the problem is dealt with by changing the data structure.
- CSV Common Separated Value
- the collected data is written in an XML document. It is disclosed to be embedded in one of the tags. In other words, "it is like embedding CSV format data in XML data.” For example, the definition information of XML data has been changed, and XML data for one month has been separated by commas in chronological order.
- the original document is rewritten so that it is collected on a monthly basis.
- Non-Patent Document 2 aims to reduce the amount of data.
- record-format XML documents are converted into records in record units using XSL transformation while maintaining the XML document standard. It is disclosed to convert all elements of XML into an XML document linked in CSV format. In order to reduce the data processing load, it is intended that a document in which all elements in a record are combined into one CSV format is handled by a dedicated API.
- FIGS. 46 (a) and 46 (b) show the XML document before and after the conversion according to the method of Non-Patent Document 2
- FIGS. 46 (a) and 46 (b) show the XML document after conversion.
- the transformed XML document is divided into two parts. One is the part that describes each tag name of the original XML document, and the other is the part that describes the contents of each element ( 1; 2, 3, 4, etc.) in CSV format.
- XML document By the way, here is a typical structured document, XML document.
- XML document In order to enable some application software to handle the XML document (perform operations such as search, update, and delete), Two standard interfaces (API: Application Programming Interface) called D OM (Document Object Model) and S AX (Simple API for XML) Is being used.
- D OM Document Object Model
- S AX Simple API for XML
- SAX has low memory consumption and is generally fast, but has the feature that it is suitable for simple processing that can be referred to with time-series output.
- DOM is generally slow and consumes a large amount of memory.
- the elements of a document are developed in a hierarchical structure, it is easy to build a program even with complicated processing contents.
- Non-Patent Documents 1 and 2 have the following problems.
- the method described in Non-Patent Document 1 is a data-dependent individual method, and is not a systematic general-purpose method.
- the method described in Non-Patent Document 1 combines the same type of data used for data processing into one and applies it to specific data having the same type of data.
- Dependent In other words, it is not a general-purpose method.
- Non-Patent Document 2 can reduce the amount of data by removing the tag of the XML document, but this method cannot reduce the data processing load of existing application software.
- Non-Patent Document 2 special API software that can handle converted documents was created. It is supposed to reduce the data processing load. This means that software with the same function as the existing DOM software must be created separately. For this reason, this work requires a lot of man-hours. Therefore, it is unlikely that it will be used in the same way as the existing DOM.
- Non-Patent Document 2 assumes only a fixed (table) XML document.
- Non-Patent Document 3 for such a conventional technique.
- Non-Patent Document 3 The method described in Non-Patent Document 3 is to improve the data processing performance of a DOM application software for an XML document with a record structure, and can be applied to the application software with a slight modification ( Transformation can be performed without writing special software), and the goal is to have a format that can be handled basically like the original XML document (transparent) after conversion. Then, for each record, the elements to be processed by the application software are left as they are, and the multiple elements not to be processed are converted into an XML document that combines the element contents into one in CSV format.
- Non-Patent Document 2 "Building an XML Bloat Buster using ZXML XML Compression Method" by Alain Trotter; [Searched February 18, 2004], Internet ⁇ UI ⁇ L: http://w.ASPToday.com/> or URL: http: // www. XML. Com / pub / r / 904>
- Non-Patent Document 3 (Non-Patent Document 3)
- Non-Patent Document 3 the elements in the record in the record-format XML document are divided into target items (key elements) for application software data processing and non-target items (non-key elements). It is proposed that the key element be kept as it is during the conversion, and that the contents of the non-key element be combined in CSV format and converted into an XML document as a new element (called CSV element). I have. If the XML document is atypical, add the element name of the element combined into the new element in the CSS format to the attribute. This conversion (hereinafter, referred to as CSV compression conversion) is performed as XSL conversion.
- CSV compression conversion This conversion (hereinafter, referred to as CSV compression conversion) is performed as XSL conversion.
- the key elements which are the target items of data processing, are not converted into CSV format, but are kept as they are, so that they can be applied with only slight modifications to application software. Also, by removing the tags of non-key elements and combining the element contents into one new element, the memory usage of XML document processing can be reduced, Re-expansion time and processing time can be reduced.
- Fig. 47 shows an example of a fixed XML document
- Fig. 48 shows an example of an XML document before / after conversion and a conversion specification for an atypical XML document
- Figure 47 (a) shows an example of a fixed XML document before conversion
- Figure 47 (b) shows the result of the conversion
- Figure 47 (c) shows an example of the conversion specification used for this conversion.
- Figure 48 (a) shows an example of an atypical XML document before conversion
- Figure 48 (b) shows the result of the conversion
- Figure 48 (c) shows an example of the conversion specification used for this conversion. Show.
- the element name of the non-key element described in that record is specified by the attribute tags in the tag of the new element.
- Non-Patent Document 3 and the prior application propose a method superior to the conventional method, particularly with respect to processing of the converted XML document by application software.
- non-key elements are assumed to be elements that are not used in application software.
- standard functions (“split", "join") that separate / merge CSV are provided in any script language, so expansion can be performed easily.
- Path descriptions including prime names be represented by arbitrary shortened character strings.
- the object of the present invention is to convert the elements in a record into key elements handled by application software and other non-key elements, leaving the key elements as they are, and converting the non-key elements to be connected in CSV format. By doing so, the converted XML document can be used by existing application software, and the memory usage and processing time for data processing can be reduced as a general-purpose method.
- the first structured document structure conversion apparatus defines a plurality of new elements in a converted structured document corresponding to a standard structured document, and converts each of the new elements in the structured document to be converted.
- the elements are specified in the order in which they appear in the record as to whether or not they are key elements to be subjected to data processing, and each non-key element that is an element other than the key element is identified by A conversion specification defining means for defining whether to allocate the structured document, and a converted structured document from the structured document to be converted based on the conversion specification defined by the conversion specification defining means.
- the key elements are described as they are in the record in the converted structured document in the order in which they appear in the record. For each new element that applies, It is configured to have a structure conversion unit that describes what is summarized in the V format as the element content of each new element in the converted structured document.
- each element in the structured document to be converted is a key element
- Non-key elements are divided into non-key elements, and the element contents of the non-key elements are in cSV format.
- the time can be reduced, and the application software can perform processing such as search using key elements.
- each non-key element is freely assigned to any of the new elements.
- the number of new elements may correspond to the number of non-key elements. This reduces the number of non-key elements assigned to each new element, Even if the application software handles non-key elements, the overhead can be suppressed.
- conversion can be performed freely regardless of the hierarchical structure in the structured document to be converted, it is necessary to define the converted structured document so that it can be easily handled by the application software according to the processing contents of the application software. Good.
- each element in the structured document to be converted in the conversion specification definition means is defined in the order in which each element appears in the record, refer to this conversion specification definition means at the time of reverse conversion. -Then, if processing is performed in the defined order, the elements can be completely restored to the original state without changing the arrangement of the elements.
- the second structured document structure conversion device defines a plurality of new elements in a converted structured document corresponding to an atypical structured document, and appears in a structured document to be converted. For all the obtained elements, in the order of appearance when all appear, whether or not they are key elements to be subjected to data processing is specified, and non-key elements which are elements other than the key element are replaced with the plurality of elements.
- each element defined in the order of appearance in the conversion specification defining means In order, the new element corresponding to the element is determined, and the element structure corresponding to the element is determined according to the order from the element contents summarized in the CSV format for the new element, and the original structuring is performed.
- it may be configured to further include an inverse conversion unit that does not describe an element whose element content is the empty element.
- the second structured document structure conversion apparatus even when the structured document to be converted is an atypical structured document, the same effect as that of the first structured document structure conversion apparatus can be obtained. Can be obtained. Furthermore, even if the structured document to be converted is an atypical structured document, the inverse conversion can be performed without any problem without describing the element names of the non-key elements in the converted structured document. For this reason, in the above configuration, the definition of each element in the record of the structured document to be converted by the conversion specification defining means is based on all the elements that can appear in the record in the order that each element appears in the record. Define and perform conversion / reverse conversion processing in this order, and for each record, for elements that do not appear in that record, output the element contents as empty elements during conversion, and leave empty during inverse conversion. Do not output elements that are elements.
- the structure conversion means may further include, for each of the new elements, element names of all the elements that can describe element contents in the new element in a CSV format.
- the information compiled in the above section may be configured to be described as additional information in the converted structured document.
- a third structured document structure conversion apparatus defines a plurality of new elements in a converted structured document corresponding to an atypical structured document, and for each new element, Is an atypical element or not, and for each element in the structured document to be converted, for all the elements that can appear in the structured document, and in the order of appearance when all appear,
- each element in the structured document to be converted is described by the record "In the order in which they appear in the -The element is described as it is in the converted structured document, and for each of the non-key elements, the element content of the element that appears if the new element is not the atypical element appears for each new element Describe in the converted structured document as the element contents of the new element in order
- the structure conversion means further includes, for each of the new elements, element names of all elements capable of describing element contents in the new element. May be configured to be described in CSV format as additional information in the structured document after conversion.
- the third structured document structure conversion apparatus having the above configuration, substantially the same effects as those of the second structured document structure conversion apparatus can be obtained.
- the difference between the methods is that the element does not appear in the record, and if it does not appear, it is not an empty element, but the order of appearance of the element that actually appears.
- An element for which the order of appearance is not described means that it did not appear in the record.
- the fourth structured document structure conversion apparatus for an atypical structured document in which the elements constituting the record are different for each record type, generates a record item list for each record type.
- Each record item list specifies whether or not all the elements that can appear in the record type are key elements that are subject to data processing.
- the conversion specification defining means separately defines the record items (elements) to be replaced for each type of record, and sets a switching condition. Therefore, by switching the element list according to the conditions at the time of conversion / reverse conversion, the converted structured document will not contain useless descriptions, and also check for the useless presence of non-standard elements. Since it is not necessary, the conversion Z inverse conversion process can be speeded up.
- the program may be read from a computer-readable storage medium storing a program for causing a computer to perform the same control as the function performed by each configuration of the present invention, and executed by the computer.
- the present invention can be configured as such a program itself, or can be configured as a recording medium on which the program is recorded (particularly, a portable recording medium).
- FIGS. 1A to 1C are diagrams for explaining a memory expansion format on a DOM by comparing the present invention with a conventional one.
- FIG. 2 is a diagram showing a schematic flow of the entire processing for executing the structured document conversion method of this example by a computer or the like.
- Figure 3 shows an example of a fixed XML document to be converted in the first embodiment.
- FIG. 4 is a diagram illustrating an example of the conversion specification XML document used in the first embodiment.
- FIG. 5 is a diagram illustrating an example of the converted XML document according to the first embodiment.
- Figure 6 is a basic processing flow chart of the structure conversion processing for a fixed XML document.
- FIG. 7 is a basic processing flowchart of the structure conversion processing for the XML document.
- FIG. 8 is a detailed flowchart of the process of step S17 in FIG. 6 or step S28 in FIG. 7 in the conversion process.
- FIG. 9 is a detailed flowchart of step S17 in the inverse conversion process.
- FIG. 10 is a diagram showing an example of an atypical XML document serving as an input XML document in the second and third embodiments.
- FIG. 11 is a diagram illustrating an example of the conversion specification XML document according to the second embodiment.
- FIG. 12 is a diagram illustrating an example of a transformed XML document obtained by performing a structure transformation of the atypical XML document of FIG. 10 using a transformation specification XML document in FIG.
- FIG. 13 is a detailed flowchart of “processing of elements in record” in the structure conversion processing of the second embodiment.
- FIG. 14 is a detailed flowchart of “processing of elements in a record” in the inverse conversion processing of the second embodiment.
- FIG. 15 shows an example of the conversion specification XML document in the third embodiment.
- FIG. 16 is a diagram showing an example of a transformed XML document obtained by performing a structure transformation of the atypical XML document of FIG. 10 using a transformation specification XML document in FIG.
- FIG. 17 is a detailed flowchart of “processing of elements in record” in the structure conversion processing of the third embodiment.
- FIG. 18 is a detailed flowchart of “processing of elements in a record” in the inverse conversion processing of the third embodiment.
- FIGS. 19 (a) to 19 (d) are diagrams showing a schematic processing procedure in the case of using the conversion / inversion XSL sheet in the first embodiment.
- FIG. 20 is a diagram showing an example of a transformation XML sheet generated when the transformation specification XML document of the example shown in FIG. 4 is read.
- FIG. 21 is a diagram illustrating an example of an inverse transformation XSL sheet generated when the transformation specification XML document of the example illustrated in FIG. 4 is read.
- FIG. 22 is a diagram for explaining the procedure for creating a conversion specification XML document.
- FIG. 23 is a diagram showing an example of a program of the application software.
- FIG. 24 is a diagram showing an example of a program of the application software.
- FIG. 25 is a diagram showing an example of an atypical XML document of a type in which record items differ depending on the type of record.
- FIG. 26 is a diagram illustrating an example of a conversion specification XML document when the second embodiment is applied to the atypical XML document of FIG.
- Figure 27 shows the transformed XML document corresponding to the examples in Figures 25 and 26 FIG.
- FIG. 28 is a diagram illustrating an example of the conversion specification XML document according to the fourth embodiment (part 1). '
- FIG. 29 is a diagram (part 1) illustrating an example of a conversion XML sheet created using the conversion specification XML document of FIG.
- FIG. 30 is a diagram (part 2) of an example of a transformation XSL sheet created using the transformation specification XML document of FIG.
- FIG. 31 is a diagram illustrating an example of a transformed XML document according to the fourth embodiment (part 1).
- Figure 32 shows the inverse transformation created using the transformation specification XML document in Figure 28.
- FIG. 3 is a diagram (part 1) illustrating an example of an XSL sheet.
- Figure 33 shows the inverse conversion created using the conversion specification XML document in Figure 28.
- FIG. 3 is a diagram (part 2) illustrating an example of an XSL sheet.
- FIG. 34 is a diagram illustrating an example of the conversion specification XML document according to the fourth embodiment (part 2).
- FIG. 35 is a flowchart showing the conversion / inverse conversion processing based on the conversion specifications of FIG.
- FIG. 36 is a detailed flowchart (No. 1) of step 3302 of FIG. 35 in the conversion processing.
- FIG. 37 is a detailed flowchart (No. 2) of step S302 of FIG. 35 in the conversion processing.
- FIG. 38 is a detailed flowchart (part 1) of step S302 of FIG. 35 in the inverse conversion process.
- FIG. 39 is a detailed flowchart (No. 2) of step S302 of FIG. 35 in the inverse conversion process.
- FIGS. 40 (a) and (b) are flowcharts of processing for creating a conversion / inversion XSL sheet based on the conversion specifications of FIG. 34.
- FIGS. 40 (c) and (d) are flowcharts of the conversion / reverse conversion processing using these conversion / reverse conversion XSL sheets.
- FIG. 41 is a diagram showing an example of the transformed XSL sheet created according to FIG. 40 (a).
- FIG. 42 is a diagram showing an example of the inverse transform XSL sheet created by FIG. 40 (b).
- FIG. 43 is a diagram for explaining a method of creating the conversion specification XML document of FIG.
- FIG. 44 is a diagram illustrating an example of a hardware configuration of a computer that implements the structured document conversion method.
- FIG. 45 is a diagram illustrating a recording medium on which a program or the like is recorded and an example of downloading.
- Figure 46 (a) shows the original XML document before conversion in the conventional example.
- Figure 46 (b) shows the converted XML document.
- Figure 47 (a) shows an example of a fixed XML document before conversion in the prior application
- Figure 47 (b) shows the result of the conversion
- Figure 47 (c) shows an example of the conversion specification used for this conversion. is there.
- Figure 48 (a) shows an example of an atypical XML document before conversion in the prior application.
- Fig. 48 (b) shows the result of the conversion
- Fig. 48 (c) shows an example of the conversion specification used for this conversion.
- FIGS. 1A to 1C are diagrams for explaining one of the features of the present invention in comparison with the prior art and the prior application.
- Figures 1 (a) to (c) show an example of an XML document expanded on a memory as a DOM tree.
- Figure 1 (c) shows the memory expansion format on the DOM by the structured document conversion method according to this example.
- Fig. 1 (a) shows the conventional DOM expansion form
- Fig. 1 (b) shows the DOM expansion form of the prior application.
- tag name "personal” is shown in FIGS. 1 (a) to (c)
- Non-Patent Document 1 the same type of data is combined into a single unit and connected in CSV format.
- a method has also been proposed in which all of the elements are combined into a single CSV format.
- each element in the record was divided into a target item (key element) for data processing of applied software and a non-target item (non-key element).
- the key elements are left as they are, and the element contents of the non-key elements are converted into an XML document in CSV format that summarizes each new element.
- FIGS. 1 (b) and (c) it is assumed that the elements of the tag names "name" and "company" are key elements.
- Non-key elements are untagged, and the contents of the elements are collected in CSV format and summarized in each new element. Therefore, the number of child elements of the tree expanded on the memory is greatly increased. Non-key elements can be handled collectively during expansion and data processing.
- the child element is a tag name such as "department”, “telephone”, “email”, "home address”, "Fax” in FIG. 1 (a).
- the application software performs some processing using the converted XML document, for example, a search processing or the like can be executed using the key element.
- the structure conversion / inverse conversion method of this example defines multiple CSV elements and also creates multiple CSV elements regardless of the hierarchical structure of the original XML document. All elements are placed on the first level in the record.
- the number of CSV elements should be increased according to the number of non-key elements. If the number of non-key elements is large, the number of CSV elements should be increased.
- FIG. 1 (b) is a diagram showing a schematic flow of the entire processing for executing the structured document conversion method of the present example on a computer or the like and a configuration thereof.
- the structured document conversion method of this example is based on the first case for a fixed XML document and the second case for an atypical XML document (this proposes two methods for each of the two types).
- the data structure conversion / inverse conversion mechanism 10 includes a structure conversion unit 11, an inverse conversion unit 12, and an XSL conversion unit 13.
- the data structure conversion / inverse conversion mechanism 10 inputs an input XML document 21 and a conversion specification XML document 22 and outputs a converted XML document 23 (conversion). Also, input the extracted XML document 24 and output the result XML document 25 (reverse transformation).
- the input XML document 21 is an XML document to be converted.
- Conversion Specification XML document 22 is an XML document that provides conversion specifications for conversion / reverse conversion.
- stylesheets corresponding to each XML document that is, XSL (Extensible Stylesheet Language) sheets are! / Pitched; It takes time and effort. Therefore, in order to save this trouble, in this example (similar to the earlier application), an XML document that describes specifications for converting the data structure of the XML document, that is, a conversion specification XML document 22 is created.
- the structure conversion unit 11 converts the input XML document 21 into a conversion XML document 23 based on the conversion specification given by the conversion specification XML document 2 2, and the inverse conversion unit 1 2 Invert document 24 to result XML document 25. Also, based on the conversion specification, Alternatively, a method of performing conversion / inverse conversion processing may be used. In particular, when converting a large amount of data, it is necessary to read and determine conversion specifications for each record.
- the XSL conversion unit 13 performs the conversion instructing the conversion execution procedure.
- Generate XSL sheet 15 style sheet for data structure conversion
- inverse transformation XSL sheet 16 style sheet for inverse transformation
- the structure transforming unit 11 or the inverse transforming unit 12 may execute the transforming process or the inverse transforming process using the generated XSL sheets 15 or 16.
- the structure transforming unit 11 or the inverse transforming unit 12 may execute the transforming process or the inverse transforming process using the generated XSL sheets 15 or 16.
- the transformation / inverse transformation can be executed by the standard XSLT processor.
- the conversion / inversion processing according to the example can be performed.
- the data structure transformation / inverse transformation mechanism 10 (structure transformation unit 11, inverse transformation unit 12, XSL transformation unit 13) is actually, for example, one standard XSLT processor (structured document transformation processor). ).
- the converted XML document 23 is stored in memory by the application software 30. Then, a part of the record of the converted XML document 30 is extracted by some processing, for example, a tag search, and the result converted into the XML document is extracted into the extracted XML document 24. It is.
- the result XML document 25 is obtained by performing an inverse transformation of the extracted XML document 24 and returning it to the original state.
- the fixed XML document to be converted in the first embodiment is an XML document in which the number of elements in a record and the tag name are fixed, such as tabular data, for example, as shown in FIG. This is equivalent to the input XML document 21.
- FIG. 4 shows an example of the conversion specification XML document 22 corresponding to the standard XML document shown in FIG.
- FIG. 5 shows an example of a transformed XML document 23 obtained by transforming the fixed XML document shown in FIG. 3 by the structure transformation unit 11 using the transformation specification XML document 22 shown in FIG.
- each record (tag name "personal”) has two levels in the record and is divided into company information and personal information, but this is not a limitation. Absent. One layer may be provided, or three or more layers may be provided.
- each record has the tag names "name”, “company information”, " It has one element of "personal information”.
- the element of tag name "company information” has a hierarchical structure with the elements of tag name "company", “department”, "telephone", and "email”.
- the element of the tag name "Personal information” has a hierarchical structure with the elements of the tag name "Home address”, "Home phone", and "Mobile phone”. Therefore, all the records have the same structure, not limited to the two records shown in the figure.
- the element of the tag name "record” Describe the record name to be converted as the element content of.
- the elements in the tag name “items” the element with the tag name “merging_tag” and the element with the tag name “item” are described.
- the element name of the tag name “merging-tag” describes the CSV element name (the tag name of the CSV element).
- a plurality of element contents of the tag name “merging_tag”, that is, the CSV element names can be freely defined regardless of the structure of the input XML document 21.
- the key element is left as it is during the conversion, and the contents of the non-key elements are combined in CSV format and converted as a new element (this is called a CSV element).
- a CSV element a new element
- a plurality of CSV elements can be freely defined irrespective of the structure of the input XML document 21, so that it can be defined so as to be easily handled by the application software 30.
- the number of non-key elements is large, the number of CSV elements will be increased accordingly, and the CSV format per CSV element will be changed.
- the number of non-key elements can be reduced by using the same key, the number of non-key elements can be reduced even when the application software 30 processes any non-key element. Since there is not much, the overhead does not increase.
- the tag names of the two CSV elements namely, "Information 1" and "Information 2" are defined because, in this example, the number of non-key elements is not so large. If the number of non-key elements is large, the number of CSV elements should be increased.
- the “tag name of each element described in the record in the XML document to be converted”, which is the element content of the “i teni” element, is particularly called “element name”.
- Each “item” element defines the conversion specification for that element in the order of the elements that appear in the record, in order from the top on the diagram.
- the element names are the tag names in the order of the elements that appear in the record.
- the element name of the first “item” element is “name”, which is the tag name of the element that first appears in the record of the conversion target XML document.
- the attribute “mtag” and “_0RG” indicate that the elements with the element names “name” and “company name” are key elements.
- the hierarchy in the element record of each element name is specified by the “path” attribute.
- the non-key elements other than the above-mentioned key elements
- the non-key elements “department”, “telephone”, “email”
- all “path” The attribute “company information” is specified, but it is not limited to this.
- the non-key elements “Home address”, “Home phone”, and “Mobile phone” (Also, “Personal information” is specified for the “path” attribute, However, it is not necessary to assign CSV elements according to the hierarchical structure of the source document.)
- Structural conversion unit 11 1 The standard XML document shown in Fig. 3 above is converted into the converted XML document 2 shown in Fig. 5 by executing the processing shown in Fig. 7 using the conversion specification XML document 22 shown in Fig. 4. 3 is created. Note that FIG. 5 shows only the conversion result of the record related to Mr. A, but this is not particularly illustrated, and other records (Mr. B) are also converted in the same manner.
- FIG. 7 shows the structure conversion process for the first to third common XML documents.
- FIG. 2 is a flowchart of a basic process of FIG.
- FIG. 6 is a basic processing flow chart of the structure conversion processing for an XML document. The difference between the processing shown in FIG. 7 and the processing in FIG. 6 is that in FIG. 7, the processing in step S23 is added, and the processing in step S24 is replaced with the processing in step S13 in FIG. Only the point to be performed is the same as the other processing. Therefore, the description of FIG. 6 is omitted here.
- FIG. 6 and 7 are flow charts of the conversion processing performed by directly reading the conversion specifications
- FIG. 8 is a detailed flowchart of the processing of step S17 in FIG. 6 or step S28 in FIG. FIG.
- the data structure conversion / inverse conversion mechanism 10 first reads the conversion specification XML document 22 and analyzes the conversion specification from the description contents (step S 21). Subsequently, the input XML document 21 to be converted is input (step S22). Then, based on the input XML document 21 and the analyzed conversion specification, the process from step S23 is executed.
- step S23 additional information is described in the header ( ⁇ csv-def>) of the transformed XML document 23 (nothing is described at this time) (step S23).
- the header of the conversion XML document 23 for each CSV element, the CSV element name is used as the tag name, and the element content is used. Then, add the element name of the non-key element corresponding to the CSV element in CSV format as additional information.
- XML documents have a self-descriptive nature in which the element content is meaningful by the tag name.
- the tags in the CSV format are removed, so the self-descriptability of the XML document is lost S.
- the self-description is lacking None.
- the root element of the input XML document 21 is copied, and as its attributes, “CSVC (CSV Compacting Conversion)” indicating that the conversion XML document 23 is a CSV conversion document is described.
- Enter the file name of the conversion specification XML document 22 step S24.
- the root element is "list”
- the file name of the conversion specification XML document 22 is described here, the file name of the inverse conversion XSL sheet 16 may be described. Alternatively, not limited to the file name, for example, URL may be specified.
- the transformation XML document 23 has the conversion specifications S, the transformation specifications of the transformation XML document 23 By writing the file name of the XML document 22 or the name of the XSL sheet for inverse transformation, it can be associated with the input XML document 21 which is the original XML document.
- a record element is an element enclosed by tag names, which means that it is an element that describes a record.
- tag names which means that it is an element that describes a record.
- an element is enclosed by tag name individuals> and ⁇ / personal>. Note that, in the example of FIG. 3, only the record element is shown. However, in actuality, there is often some description other than the record element. .
- steps S27 to S29 is repeatedly executed until the processing is performed for all the records, that is, until the determination in step S26 becomes YES.
- processing is first performed on records related to Mr. A, then on records related to Mr. B, and then, similarly, processing is performed on all records.
- step S27 the start tag of the record element is copied to the conversion XML document 23 (step S27).
- the start tag is “person>”.
- step S28 the elements in the record are processed (step S28), and finally, the end tag of the record element (figure / individual in Fig. 3) is copied to the transformed XML document 23 (step S29). .
- FIG. 8 is a detailed flowchart of the process in step S28.
- step S33 the key element described in the record to be processed of the input XML document 21 is copied as it is to the transformed XML document 23 (step S33).
- the first record in Fig. 3 is "Mr. A”, the part of the tag name "Mr.”
- the transformed XML document is copied to 23. Thereafter, the same processing is performed.
- step S34, YES the processing proceeds to step S35 and subsequent steps.
- steps S35 to S40 is performed by searching for the "item” element corresponding to the CSV element for each CSV element with reference to the conversion specification XML document 22 and obtaining the corresponding "item” This is the process of connecting the element content of the element, that is, the element name of the non-key element in the CSV format and outputting it to the converted XML document 23.
- First referring to the conversion specification XML document 22, run the element names (that is, CSV element names) in order from “List of CSV element definitions”.
- First it is determined whether or not there is a CSV element (step S36).
- the element of “sequence of definition of CSV element” is the “merging_tag” element in FIG.
- step S 36 determines whether “information 1” is present at first in the figure.
- the determination in step S 36 is YES.
- the non-key elements of the “array of elements” in the conversion specification XML document 22 that is, in each “item” element, the corresponding CSV element name is specified instead of “_0RG” in its attribute mtag.
- the “itein” elements are sequentially scanned to search for a non-key element corresponding to the above CSV element (here, “information 1” ′) (step S37).
- the element contents of this non-key element are obtained from the input XML document 21 and connected in CSV format (step S39). ).
- step S40 obtain the element contents “1 2 3” and “abc@fj.jp” of the element with the element name “telephone” and element name “email” from the input XML document 21 according to the path, and Are sequentially connected in CSV format.
- the CSV element name “information 1” is used as the tag name, and the element contents are converted to the element contents of the non-key element in CSV format.
- the new element (CSV element) to be connected is output to the converted XML document 23 (step S40). As a result, as shown in FIG.
- the force S is described in the transformed XML document 23.
- step S36 NO
- the process ends.
- creation of the conversion XML document 23 is completed.
- the converted XML document 23 obtained by performing the structure conversion process on the fixed-form XML document is inversely converted into an XML document having the original structure.
- the processing that is, the inverse conversion processing, will be described in detail.
- the application software 30 retrieves a tag obtained from a plurality of stored converted XML documents 23 by performing, for example, a tag search according to a search condition requested by a client.
- the resulting extracted XML document 24 is inversely transformed by the inverse transforming unit 12 and the resulting XML document 25 is output, which will be described along with this.
- the overall flowchart of the inverse conversion process is basically the same as the conversion flow shown in FIG. 6 except for a part.
- the XML document input in step S12 that is, the XML document to be converted is the extracted XML document 24, so the “input XML document” in steps S13 and S14 in FIG. It can be replaced with "extracted XML document 24".
- the extracted XML document 24 is obtained by the conversion processing shown in FIG. 7, the attribute is excluded when the root element is copied in step S13, and the copy is performed.
- the additional information of the header is excluded and copied.
- step S17 is completely different from that of FIG.
- FIG. 9 is a detailed flowchart of step S17 in the inverse conversion process.
- step S51 an initial value '0' is substituted for a variable i (step S51).
- the element names (that is, CSV element names) are sequentially scanned from “sequence of definitions of CSV elements” (step S 52), and whether or not there is a CSV element is determined. Is determined (step S53).
- i i + l
- the initial value '1' is assigned to the variable j.
- the element contents of the above CSV element are obtained, separated by delimiters (comma ',,), and j is incremented by +1, respectively.
- k (i) 1 is set (step S56).
- i l ⁇ 2
- steps S57 to S62 are repeatedly executed.
- the element name of the first key element of "Sequence of elements" is "Name J". If the record to be processed in the extracted XML document 24 is a record related to Mr. A, this element The element of the name "name” "name> A / name>” is copied as is to the result XML document 25, while if it is a non-key element (step S59, NO), If the CSV element name is specified instead of “—ORG” in the attribute “mtag” of the tag of the “item” element, the order of appearance i in the conversion specification XML document 22 of this CSV element name is obtained ( Step S61), output the data stored in the array contArr ay (i, k (i)) to the result XML document 25 together with the element name of the non-key element (step S62) .
- Non-key element is an element as shown in the figure, the element name is "Department", because the CSV element name that is specified in the attributes mtag of the tag is "information 1", and have continued, "mergin g _t a
- path the initial setting value '1'
- step S58, NO When the above processing has been executed for all the “item” elements of the “array of elements” in the conversion specification XML document 22 (step S58, NO), the processing ends. At this time, in the above example, the content of the result XML document 25 is the same as the content of FIG.
- the structure conversion / reverse conversion processing for an atypical XML document is described below. As described above, this processing includes the second embodiment and the third embodiment. .
- FIG. 10 shows an example of an atypical XML document that becomes the input XML document 21 in the second and third embodiments.
- the number of elements in a record and the tag name are variable.
- Fig. 3 shows that A and B have the same element name and number of elements (of course, not only for A and B, but also for other records).
- the tag name and the number of elements are different.
- the non-key elements related to Mr. A are the element names “department”, “address”, '“telephone”, “email” as company information, and the element names “address”, “telephone”, “ There is a "mobile phone” element.
- the non-key elements related to Mr. B include the element names “department”, “address”, “telephone”, “email”, “email” as the company information, the element name “address” as the personal information, There is a "phone” element.
- Mr. B Compared to Mr. A, Mr. B has two "emails" as company information, but no "mobile phone” as personal information. In other words, Mr. B has two e-mail addresses and does not have a mobile phone, so he entered such personal information.
- the input XML document 21 describes the key content of the key element in both persons, it may not be described in some cases.
- the atypical X in FIG. A case where an ML document is used as an input XML document 21 will be described.
- FIG. 11 is a diagram illustrating an example of the conversion specification XML document 22 according to the second embodiment.
- name attribute is given as the attribute of the tag of the it emj element. And specify this alias in the header of the conversion document. It is described as additional information.
- company information / address is given an alias of “company address”
- personal information / address is given an alias of “home address”.
- the additional information of the header shown in FIG. An alias is described, and the application software 30 performs an arbitrary process using the alias. The same applies to "telephone”. Also, as for email, at most two are described, so aliases are given as shown in Fig. 11.
- the element name that can be specified arbitrarily is given in the conversion specification and reflected in the converted document, and the element hierarchy of the original document is reflected. Is a different way of grouping and a different element name, so that the application software 30 can handle it. Note that this may be applied in the first embodiment.
- the format attribute is given in the tag of the "item” element.
- the format "unfixed” attribute is included in the "i tem” element of "company information / emai l [0]", “company information / emai l [l]", and "personal information / mobile phone”. This makes it possible to specify that the element contents of these element names do not appear fixedly in the input XML document 21.
- the tag if the tag does not have the attribute S of format "unfixed", the element with the element name always describes the element content. That is, in general, for example, in any homepage, Any information ( In this case, when inputting personal information of any user), specify the required input items and display it. If you do not enter at least one of these required input items, you can perform "registration” etc. Then, an error is being performed.
- FIG. 12 is a diagram showing an example of a transformation XML document 23 obtained by performing structural transformation of the atypical XML document of FIG. 10 using the transformation specification XML document 22 in FIG.
- FIG. 13 is a detailed flowchart of “processing of elements in a record” in the structure conversion processing in the second embodiment. That is, also in the second embodiment, the flow of the entire structure conversion process is substantially the same as that of the first embodiment, and thus the entire process has been described with reference to FIGS. Since the processing content of step S17 or step S28 is different from that of the first embodiment, details thereof will be described with reference to FIG. FIG. 12 shows the conversion result when the processing for adding the additional information is performed.
- step S23 is This is the process of outputting the alias specified by the name attribute to the converted XML document 23 as additional information.
- the non-key element "company information / address”
- company address is specified in the name attribute
- the "company address” in the CSV element name "location” Is described.
- the root element “list” and the converted document name are described in the attribute by the processing of step S 24 in FIG. 7.
- the file name of the conversion specification XML document 22 shown in FIG. 11 is spec 2
- step S71 to S75 that is, the conversion specification XML document 22 is searched for all key elements, and the element names and element contents are converted.
- the process of copying the data to is basically the same as the process of steps S31 to S34 in FIG.
- the input document is an atypical XML document, and the key element as well as the non-key element may not appear fixedly.
- the process of step S73 is performed.
- step S73 YES
- step S80 for each CSV element, referring to the processing of steps S76 to S81, i.e., the conversion specification XML document 22, search for an element corresponding to the CSV element.
- the process of determining and connecting the element contents of the corresponding element in the CSV format and outputting the converted XML document 23 is basically the same as the process of steps S35 to S40 in FIG.
- the input document is an atypical XML document, and as described above, non-key elements may not appear fixedly.
- the empty elements are connected in the process of step S80.
- the non-key element corresponding to the CSV element name “contact” is referred to as “item” in the conversion specification XML document 22.
- this non-key element“ company information / email [l] ” is shown in FIG.
- an empty element is connected in the processing of step S80.
- the element content of the CSV element name “contact” shown in Fig. 12 is
- the transformed XML document 23 shown in FIG. 12 is created.
- the element contents of the non-key elements under "Company information” and "Personal information" in the input XML document 21 of Fig. 10 which is the original XML document are , Respectively, have been individually reorganized into the CSV element “Location” and “Contact”.
- "Disjointly” means, for example, that all non-key elements under "Company information" are not necessarily combined in the CSV element "Location", but some may be combined in "Contact”.
- the element name of the element content entangled with each CSV element is described as additional information of the header.
- FIG. 14 is a detailed flowchart of "processing of elements in record” during the whole process of the inverse transformation.
- step S94 an array is allocated even if the element content is an empty element. That is, for example, in the CSV element “Contact” of Mr. A's record in Fig. 12, there is an empty element before the element content “4 5 6”, and the array (2, 3) is also assigned to this empty element. Where “4 5 6” is stored in the array (2, 4).
- step S96 The processing after step S96 will be described below.
- k (i) This is related to the point that the process of incrementing the value of +1 by 1 is performed in the step S103. These processes are almost the same as the processes in FIG. 9, but in FIG. 9, in the process in step S62, the contents of the array are output and the value of k (i) is incremented by +1 ink. However, when an atypical XML document is handled as in this example, the processing of outputting the stored contents of the array is not always performed (that is, the judgment in step S104) is performed.
- step S104 the value of k (i) is incremented by +1 (step S103). This also means that the value of k (i) is incremented by +1 before the process of outputting the stored contents of the array (i, k (i)).
- the initial value of k (i) is set to '0'.
- step S96 After the processing of the above step S96, first, each "item” element of "arrangement of elements" in the conversion specification XML document 22 is sequentially scanned (step S97), and for each "item” element Then (step S98, YES), it is determined whether or not the element having the element name defined by the "item” element is a key element (step S99). The determination method has already been described.
- step S104 If it is not stored (empty) (step S104), the process returns to step S97 without outputting anything to the result XML document 25, and returns to the next "item" element. Move on to processing. None can be output because the element content is "empty" as described above, but the element name of the relevant non-key element is also not output.
- step S104 determines whether the data stored in the array contArray (i, k (i)) is added to the result XML document 25 together with the element names of the non-key elements.
- Output step S105.
- the converted document shown in FIG. 12 can be returned to the original document shown in FIG. This can be undone.
- the “item” elements in the conversion specification XML document 22 are arranged in the order in which they appear in the original XML document, and are processed and output in this order.
- the tag of the itemj element has an attribute rtag
- the element name of that element is the new element name specified by this attribute rtag (Fig. 1 1, the element contents of “Work” in the example of Fig. 12 are acquired from the extracted XML document 24, and this element content and the original element name are output to the result XML document 25. .
- the same effects as in the first embodiment can be obtained even for an atypical XML document. Further, as described above, the effect of the name attribute can be obtained.
- the input XML document 21 is assumed to be the same as the example shown in FIG. 10 above, and a concrete example of the conversion specification XML document 22 is shown in FIG. Figure 16 shows a specific example of the converted XML document 23.
- the example of the transformation specification XML document 22 shown in FIG. 15 is different from the case of the second embodiment shown in FIG. 11 in that the alias of the non-key element given by the additional information of the header of the transformation XML document 23 is
- the conversion specifications are the same as in the second embodiment in that each “i1: em” element relating to non-key elements in the XML document 22 is provided with the name attribute.
- FIG. 17 is a detailed flowchart of “processing of elements in record” in the structure conversion processing in the third embodiment. That is, also in the third embodiment, as in the second embodiment, the flow of the entire structure conversion process is substantially the same as that in the first embodiment. The description is omitted here. Since the processing contents of step S17 or step S28 are different from those of the first and second embodiments, the details will be described with reference to FIG. FIG. 16 shows the conversion result when the processing for adding the additional information is performed. Further, when performing the processing of FIG. 7, that is, the processing of adding the additional information, the processing content of step S23 is the same as that of the second embodiment. That is, the alias specified by the name attribute is output to the header of the conversion XML document 23 as additional information.
- steps S111 to S117 is the same as the processing in steps S71 to S77 in FIG. 13, and a description thereof will be omitted.
- the processing in steps S119 to S122 which is the processing when the determination in step S118 is NO, is the same as the processing in steps S37 to S4 in FIG. The description is omitted.
- the non-key elements are scanned in order in the “element list” in the conversion specification XML document 22, and the above atypical CSV element (here “ Search for a non-key element that corresponds to “entry” (step S124).
- step S125, YES Each time a corresponding non-key element is found (step S125, YES), it is determined whether or not this non-key element is described in the input XML document 21 (step S126). If described (step S126, YES), the order of appearance of the non-key elements is connected in CSV format (step S127), and the element contents are extracted from the input XML document 21. Obtain and connect this in CSV format (Step S128) and repeat the process.
- step S125, NO the processing result of step S127 is set as the attribute value of the attribute tags in the tag of the atypical CSV element, and ( In step S129), the processing result of step S128 is output to the converted XML document 23 together with the tags of the atypical CSV element having the tags attribute.
- atypical CSV element “communication” shown in FIGS. 15 and 16, for example, when the record relating to Mr. A is to be processed, in step S 125 of FIG.
- the key elements are “scanning information”, “company information / telephone” (order of appearance 1), “company information / email [1]” (order of appearance 2), and “company information / email [2]” (order of appearance 3). ), “Personal information / telephone” (appearance order 4) and “Personal information / mobile phone” (appearance order 5) are found, but only "Company information / email [2]" (appearance order 3) Since it is not described in Mr. A's record of 10th, as shown in Fig. 16, as a tag of an atypical CSV element having a tags attribute,
- the tags attribute value corresponding to the element content “4 5 6” is' 4, so it can be seen that it corresponds to the fourth element name “home phone” in the additional information.
- FIG. 18 is a detailed flowchart of “processing of elements in record” in the inverse conversion processing of the third embodiment.
- steps S141 to S149 in FIG. 18 is the same as that of steps S141 to S144, and the processing of steps S147 and S148 is shown in FIG.
- Steps S51 to S56 are substantially the same as steps S51 to S56, except that steps S145, S146, and S149 are added.
- the description of the processing in steps S 14 1 to S 144 and steps S 147 and S 148 will be omitted or simplified.
- the array contArray contains the A section in (1,1), the A town in (1,2), and the A ⁇ B town in (1,3). (2, 1), abcOfj.jp in (2, 2), 456 in (2, 3), and 789 in (2, 4).
- the array tagArray stores 1 in (2,1), 2 in (2,2), 4 in (2,3), and 5 in (2,4).
- Step S 152-2 to S 16 When the process of 0 is performed and the process is performed for all the “item” elements (step S151, NO), the process ends.
- Step SI52 it is determined whether or not the element to be processed, that is, the element with the element name defined by the j-th "item mj element" of "element list" is a key element.
- the determination method has already been described. If it is a key element (steps S152, YES), the processing of steps S153 and S154 is executed.
- the processing of steps S153 and S154 is the same as that of the second embodiment, that is, substantially the same as the processing of steps S100 and S101 in FIG. Is omitted.
- step S152 if the element of the element name defined by the “item” element is a non-key element (step S152, NO), first, the conversion specification of the CSV element name corresponding to this non-key element The order of appearance i in the XML document 22 is determined (step S155). Subsequently, m (i) is incremented by +1 (step S155). Then, depending on whether the CSV element is an atypical element, the flow branches to either step S158 or step S159 (step S157).
- the first non-key element found is "Company Information / Department”
- the corresponding CSV element name is "Location”
- the appearance order of this CSV element "Location” is' 1 'so
- step S158 the flow shifts to the processing of step S158. That is, the data stored in the array contArray (i, k (i)) is output to the result XML document 25 together with the element name of the non-key element (step S158).
- step S157, YESS since this CSV element “place” is an irregular element (step S157, YESS), the processing shifts to step S159.
- step S159 is a process of using the order of the elements stored in the array tagArray so as to prevent the output of elements that are out of order.
- the judgment of 9 is YES
- “1 2 3” stored in the array contArray (2, 1) is output to the result XML document 25 together with the non-key element name “company information / telephone”.
- k (2) is incremented by +1.
- step S 1 56 the array tagArray (2, 3) contains '4' Is stored, so that the determination in step S159 is NO.
- the information of "company information / email [1]” is not described, so this element can be prevented from being output by the above processing.
- the shortened character string must be specified as an attribute in the tag for each record, so that it is redundant and the shortened character string It is necessary to refer to the correspondence file.
- the element names of all possible elements are described as additional information in the header, and elements that do not appear in each record are set as empty elements. Just by defining the correspondence between element names and element contents.
- the attribute must be described in the tag of each record.
- the attribute value can be automatically described by the computer.
- the correspondence file must be separately defined, which is troublesome.
- the tag name of the non-key element described in the converted XML document is cut out when performing the reverse conversion process.
- the non-key elements were restored from the tag names and element contents.
- the reverse conversion process can be executed even if the tag name of the non-key element is not described in the converted XML document.
- the method of the second embodiment can be considered to be an extension of the method of the first embodiment.
- all of the selected appearance candidate elements (elements that may appear) are merged into CSV format and separated, which is effective when all the selected appearance candidate elements frequently appear. is there.
- the method of the third embodiment uses attribute values to associate element names with element contents, and although the method is complicated, it rarely appears in selection appearing candidate elements. This is effective when there are many.
- FIGS. 19 (a) to (d) show the conversion / inverse conversion XSL using the first embodiment as an example.
- the general procedure for using a sheet is as follows.
- the XSL transformation unit 13 reads the transformation specification XML document 22 and analyzes the transformation specification from this description (step S1771).
- XSL sheet generation XSL sheet 1 Using step 4 above, a transformation XSL sheet 15 is created which is a style sheet for transforming the data structure when transforming the XML document into the XML document (step S172).
- the XSL transformation unit 13 reads the transformation specification XML document 22 and analyzes the transformation specification from this description (step S181).
- Figures 20 and 21 show examples of the transformation XSL sheet 15 and inverse transformation XSL sheet 16 generated when the transformation specification XML document 22 is read, respectively, in the example shown in Figure 4. .
- Step S 191 When performing the transformation process, as shown in Fig. 19 (c), specify the input XML document 21 to be processed and the file name of the corresponding transformation XSL sheet 15 (Step S 191), the process of steps S 13 to S 18 in FIG. 6 is substantially performed using the transformed XSL sheet 15 (the process of step S 17 is the process of FIG. 8) Is executed (step S 192).
- the element name of the record is specified by a record> element (step S211).
- the new element name (CSV element name) is specified in the ⁇ merging_tag> element under ⁇ items> (step S212).
- the atypical CSV element when specifying the atypical CSV element, put the attribute of format- "unfixed" in Ku mer g ing_t a g> tag.
- you want to specify a new element that combines one non-key element with "rtag” describe ⁇ replace_tag>.
- each “item” element is listed in the order in which the element appears in the record (step S2113). At that time, "The element defined by the itemj element is
- FIG. 4 is a diagram showing an example of a 'J Script program of 0.
- FIGS. 23 and 24 are general and simple contents, and do not have any particular meaning. However, the processing contents of the programs shown in FIGS. 23 and 24 will be described below. The processing contents will be described briefly.
- the programs shown in Figures 23 and 24 are both examples of reading Mr. A's new CSV element “contact”.
- Figure 23 shows the converted XML document shown in Figure 10
- Figure 24 shows the example shown in Figure 16 Since the transformation XML document shown in Figure 2 is targeted for processing, the power of the description of the program is somewhat different, and the purpose of the processing is almost the same. Explain
- Step 1 Read the additional information of the header, separate the element names put together in the CSV element, and store them in an array of element names.
- Step 2 Read the CSV element “Contact” that summarizes Mr. A's non-key elements, separate the names of the elements compiled into C.SV elements, and store them in an array of element contents.
- Step 3 Read the element contents of the CSV element “communication”, separate them and store them in an array.
- Step 4 The order of the corresponding element names as attributes of the CSV element “contact” The numbers are read, separated and stored in an array.
- Step 5 Read the element name array in the order read from the array of element names in the CSV element “contact”, and store the corresponding CSV element “contact” element content in the connection of the associative array that uses it as an argument. .
- processing for changing the element content of the associative array assocArray ["company telephone”] to "123" is added to these examples.
- the converted document is self-describing due to the additional information, even if the number of record items in the original document increases and the number of non-key elements combined in the CSV element increases, the element contents can be accessed using the element name. Therefore, the programs in Figs. 23 and 24 can be used as they are. In this way, the flexibility provided by the self-describing nature of the XML document is inherited.
- the present invention basically has the following features in addition to the features and effects of the above-mentioned prior application.
- the prior application does not assume that the application software may process non-key elements in some cases.
- a plurality of CSV elements are arranged at the same level (for example, the first level in a record), and each non-key element is assigned to any of the plurality of CSV elements.
- non-key elements classified according to the use can be stored in each CSV element prepared for each use.
- the expected even if it becomes necessary to perform data processing using non-key elements, it becomes easy to handle, and even if the number of non-key elements is very large, increase the number of CSV elements and store them in one CSV element By reducing the number of non-key elements to be used, overhead can be reduced when only necessary CSV elements are expanded.
- the conversion specification defines the order of the elements in the record. By doing so, even if the order becomes unknown after conversion, it is possible to rearrange and output the data at the time of reverse conversion, and not only the contents but also the order can be restored. ⁇
- XML documents are characterized by being self-describing.
- the correspondence between the element name (or shortened character string) and the element content was described for each record and for each CSV element in the converted XML document. .
- the element name and the element content are cut out, and the original non-key element is restored using these.
- the correspondence between element names and element contents can be understood.
- the element name is described, it becomes redundant.
- the abbreviated character string is described so as not to be redundant, it is necessary to separately refer to the correspondence between the element name and the abbreviated character string.
- the element names of all the elements that can be stored in the CSV element in other words, regarding the CSV element, Appear in record Provide additional information that describes the element names of all elements that may appear, in the order in which they appear.
- each record is made to indicate which element was not described in the record.
- the element is not described, it is assumed to be an empty element, and this empty element is connected in the same way as other element contents in the CSV format.
- the element actually stored in the CSV element that is, the order in which the element that actually appears in the record appears in the CSV element, is expressed in CSV format. Describe the connection.
- the additional information describes the element names of all the elements that may appear in the order in which they appear. Therefore, according to this order, the correspondence between each element content and the element name can be understood. Also, it can be seen that the element name corresponding to the position of the empty element or the element name corresponding to the order of appearance not described in the attribute is not described in the XML document before the conversion for the record.
- the application software executes the process using the converted XML document
- the data can be processed in the same manner as the original document by referring to the additional information.
- EDI data has hundreds to thousands of items per record, and is not suitable for DOM expansion because the number of items is too large. Cut out document elements and stream them in chronological order Only standard API (SAX: Simple API for XML) is used, which makes complicated document operations difficult. However, hundreds of elements do not have access to all elements in each application. According to the present invention, only groups (new elements) containing non-key elements used in the processing can be expanded according to the convenience of application software, so that the overhead is prevented from increasing and practically. Become. It can also be a complete reversible transformation that preserves the appearance of the elements.
- SAX Simple API for XML
- the delimiter is not limited to a comma. If a comma is used as the delimiter and the element content is a monetary value, and a comma indicating the thousands place is attached to the numerical value, rather than a comma, "@" (at mark) or "— ,, ( Underscore) or a two-letter character that rarely appears It can be a row.
- the delimiter character in the string will be replaced with an identifiable form such as an entity reference. For example, the comma is put as "&CMM;”. Therefore, it is desirable that the delimiter is a character / character string that rarely appears in a normal character string.
- a method of connecting a numerical value or a character string via a delimiter / symbol string is referred to as a CSV format for convenience.
- the present invention is a method in which a plurality of non-key elements are grouped into several groups to form one element, and the non-key elements can be handled collectively during data processing by the application software.
- an atypical structured document is used.
- multiple CSV elements were defined for each application and the element contents were stored so that the elements combined in the CSV element could be used later by application software.
- the element name only indicates the correspondence with the additional information of the header, and the element name is not included in each record, so the number of nodes at the time of expanding the XML document can be reduced, and the memory usage can be reduced. Reduction and reduction of deployment time were effective.
- the order of the elements at the time of reverse conversion is specified in the XML document of the conversion specification, and the effect is that the order of the elements of the converted XML document can be saved and restored.
- the example of the atypical XML document shown in Fig. 25 is an example of a product catalog, where ⁇ part> indicates one record, and the attribute "type" defines the type of the record (part). are doing.
- Figure 26 shows a conversion specification when the method of the second embodiment is applied to an atypical XML document such as the example shown in Figure 25.
- Figure 26 shows this conversion specification
- Figure 27 shows the transformed XML document 23, which is the result of transforming the atypical XML document in Figure 25 using Document 22.
- the attribute “m tagj” in each “item” element related to each non-key element specifies the CSV element name corresponding to the type of record (part) to which the non-key element relates. in the case of non-key element "disk capacity", the attribute that specifies the in the "m1 a g""HDinformation".
- the fourth embodiment proposes two methods described below.
- the converted XML document is configured so as not to include useless descriptions, that is, CSV elements that are all empty elements.
- the processing load at the time of conversion / inverse conversion is further reduced.
- FIGS. 29 and 30 show examples of the transformation XSL sheet 15 created by the XSL transformation unit 13 using the transformation specification XML document. Also, according to this example, An example of the conversion XML document 23 is shown in Figure 31.
- FIGS. 29 and 30 only show one transformed XSL sheet divided into two parts. The first half of the transformed XSL sheet is shown in FIG. 29, and the second half is shown in FIG. 30. ing.
- the transformed XML document does not include useless descriptions, that is, CSV elements that are all empty elements.
- FIGS. 32 and 33 show examples of the inverse transform XSL sheet. It should be noted that FIGS. 32 and 33 only show one transformed XSL sheet divided into two, and the first half of the inverse transformed XSL sheet is shown in FIG. 32 and the second half of FIG. Is shown in
- FIG. 32 is a process other than the record portion, and thus will not be particularly described.
- FIG. 33 at the time of inverse conversion, the contents of each non-key element summarized in the CSV format for each CSV element are substituted into the variables "var0101" to "var0303" using variable>. At that time, if the element content does not exist (empty element), NULL is entered.
- each non-key element is checked by an iftest statement to determine whether or not to output.
- Pentium 3 700MHz, 256MB assigned to "var0101"
- Pentium 3 there is Pentium 3 before the first comma (,). Is not NULL (empty element), so Pentium 3 will be output.
- test, substring-before, etc. are generally known in XSLT, and they are briefly described later.
- the record items (elements) that are replaced for each record type are separately arranged and arranged.
- the element arrangement is switched according to the condition at the time of conversion / inverse conversion, thereby eliminating the useless check of the atypical element.
- the conversion specification XML shown in Fig. 34 Document 40 specifies elements that appear for each record type separately, and lists the record items for each record type. Items> is a conditional expression for the "when" attribute. To switch. The attribute value of the "when" attribute is converted / inverted as is It is used as a switching condition described in the replacement XSL sheet. Therefore, this attribute value is described according to the conditional expression of the XSL sheet.
- the switching conditions in the transformation specification XML document 40 are described in accordance with the notation of the programming language of the transformation / reverse transformation XSL sheet.
- Fig. 36 to Fig. 39 is almost the same as the processing in Fig. 8, Fig. 13, Fig. 9, and Fig. 14, except for the "force S" record item in the conversion specification. It is a replacement for "in the story.
- the record corresponding to the record to be processed is selected from the record item lists 41, 42, and 43 in the conversion specification XML document 40. Since the record item list is selected, the process of step S302 uses only the selected record item list without using all of the conversion specification XML document 40. Will be replaced by "force S" in record item list.
- the processing target is a record in which the component type in the XML document in FIG. 25 is "hard disk”
- the conversion is performed in step S301.
- the record item list 42 in the specification XML document 40 will be selected. Therefore, the processing shown in FIGS. 8, 13, 13, and 14 is performed only on the selected record item list 42, that is, the processing shown in FIGS. 36 to 39 is performed. This eliminates unnecessary processing for elements that are not related to the target record, thereby improving processing efficiency and reducing the processing load.
- the first embodiment that is, processing relating to a fixed XML document.
- the XSL transformation unit 13 uses the transformation specification XML document shown in FIG. 34 to convert the steps S 391, S 392, and FIG. 40 (b) in FIG.
- a transformation XSL sheet 15 and an inverse transformation XSL sheet 16 may be created by the processing of steps S401 and S402, and the transformation / inversion processing may be performed using these. .
- the processing by the XSL transformation unit 13 is basically not performed because it is basically performed only in accordance with the specification of XSL, but the generation processing of the transformation XSL sheet 15 is shown in FIGS. 34 and 41, for example.
- step S 4 1 1) using the transformed XSL sheet 15, is substantially the processing of steps S 23 to S 29 in FIG. 7 (the processing of step S 28 is the processing of FIG. 35 and FIG. 36 Alternatively, a process corresponding to the process of FIG. 37 is executed (step S412).
- FIGS. 41 and 42 show examples of the transformed XSL sheet 15 and the inverse transformed XSL sheet 16 created by the processing of FIGS. 40 (a) and (b).
- the first half is the same as that of FIG. 29, so that it is omitted.
- the first half of FIG. 42 is the same as that of FIG.
- the XSLT processor evaluates xsl: when in order, and processes only the template of the first xsl: when element for which the value of the test attribute of xsl: when is true. If there is no corresponding xshwhen element, the template of xsl: otherwise element is processed. However, since this is not a required element as described above, it does not have to be.
- Other XSLT program functions are also well-known, so they will not be described in detail here, but for simplicity, the elements of the tag name element specified by value-of select> The content can be extracted from the XML document. Variable also defines a variable. To refer to the value of a variable, prefix the variable name with "$".
- Concat> is known as concatenating strings to form one string.
- Copy-of select> outputs the value of the specified node as a character string, whereas the node, including its child elements, Copy and output. If if test> is used, simple if-then (execute ⁇ if applicable) type condition processing is performed.
- Use substring-after> to extract characters after a particular character in a string.
- Use substring-before> to extract before a particular character in a string.
- "@" Means attributes, "@ *" means all attributes.
- FIG. 43 shows the flow of creating the conversion specification XML document shown in FIG. 34.
- the element name of the record is specified by the ⁇ record> element (step S 431).
- step S432 the processing of steps S433 to S435 is repeatedly executed.
- step S433 the condition of the record element list is specified.
- This describes the record item list element ⁇ item>, and describes the conditions of the record item list in the attribute when of items> in XSL notation.
- a record item is specified (step S433).
- This is a list of item> elements that follow merging-tag>, and the element power s appears in the record List the element names of the elements in the record in the order to be performed.
- specify attribute mtag "—ORG”.
- FIG. 44 is a diagram showing an example of a hardware configuration of a computer for realizing the structured document conversion method according to the present embodiment.
- the computer 100 shown in the figure has a CPU 101, a memory 102, an input device 103, an output device 104, an external storage device 105, a medium drive device 106, and a network connection. It has a device 107 and the like, which are connected to a bus 108.
- the configuration shown in the figure is an example, and the present invention is not limited to this.
- CPU 101 is a central processing unit that controls the entire computer 100.
- the memory 102 temporarily stores a program or data stored in the external storage device 105 (or the portable recording medium 109) when executing a program, updating data, or the like. Memory.
- the CPU 101 uses the programs / data read into the memory 102 to perform the various processes and functions described above (FIGS. 6 to 9, FIG. 13 to FIG. 14, FIG. 17 to FIG. 19). Etc., and the functions of each functional unit shown in FIG. 2).
- the data is the above-mentioned various XML documents, XSL sheets and the like.
- the input device 103 is, for example, a keyboard, a mouse, a touch panel, or the like.
- the output device 104 is, for example, a display, a printer, or the like.
- the external storage device 105 is, for example, a magnetic disk device, an optical disk device
- a magneto-optical disk device etc., in which programs / data for realizing the various functions of the present invention are stored.
- the medium driving device 106 reads out programs / data stored in the portable recording medium 109.
- the portable recording medium 109 is, for example,
- F D flexible disk
- CD_ROM compact disk
- DVD magneto-optical disk
- the device 107 can be connected to a network and configured to enable transmission and reception of program Z data and the like to and from an external information processing device.
- FIG. 45 is a diagram illustrating an example of a recording medium on which the program and the like are recorded and download.
- the information is read out from the portable recording medium 109 storing the program / data for realizing the functions of the present invention to the information processing apparatus 100 side, stored in the memory 102 and executed.
- the program / data may be stored in a storage unit 1 of an external server 110 via a network (such as the Internet) connected by a network connection device 107. 11
- the program / data stored in 1 may be downloaded.
- the present invention is not limited to the apparatus / method, and may be configured as a recording medium (portable recording medium 109 or the like) storing the program / data itself, or may be configured as the program itself. You can also. Industrial potential
- the elements in the record are the key elements handled by the application software.
- the converted XML documents can be used with existing application software.
- the amount of memory used for data processing and processing time can be reduced, and even if non-key elements are handled by application software, the overhead will not increase.
- the result of the inverse transformation is the order of the elements in the original XML document, or if the number of records in the atypical document is large, the number of non-key elements is large, there is no redundancy, even after transformation. You can maintain his own description of Uninaru.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Document Processing Apparatus (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
図1(b)に示すように、先出願では、レコード内の各要素を、応用ソフトのデータ処理の対象項目(キー要素)と、非対象項目(非キー要素)に分けて、キー要素はそのままにし、非キー要素の要素内容をCSV形式で各新要素に纏めたXML文書に変換する。本発明では、図1(c)に示すように、新要素をレコード内の第1階層に複数配置し、各非キー要素は、自由に任意の新要素に要素内容を纏める。また、ヘッダに付加情報を記述することで、自己記述性を維持できるようにする。
Description
明 細 書 構造化文書の構造変換装置、 構造変換方法、 記録媒体 技術分野
本発明は、 XML文書から XML文書への構造変換/逆変換を行なう方法、 装 置等に関する。 背景技術
近年、 ィンターネッ トを通して、 個人、 企業、 自治体など、 あらゆ る種類のシステムが相互に通信可能に接続されており、これらのシス テムが相互に連携して、 W e bサービスが提供されたり、 E D I (E lectronic Data Interchange; 、 E C (Electronic Commerce) 力 S 了 われつつある。 このために、 幅広い情報交換が必要になってきている 。
このよ うな状況下 ίこおレヽて、 XM L (extensible Markup Language )は、 データを構造化する柔軟な表現能力を有し、 コンピュータによ る処理に適しているので、上記のシステム間のデータ交換や各システ ムでのデータ処理を行う際の、共通基盤のフォーマッ トと して注目さ れている。
XMLは、 1 9 8 6年に I S Oで標準化された S GM L (Standard Generalized Markup Language)を、 インター不ッ 卜で活用し易ぐす るために、 1 9 9 8年 2月にその基本仕様 XM L 1.0が W 3 C (World Wide Web Consortium)において策定されたものである。
従来より用いられている W e bページ作成言語である H TM L (
HyperT ext Markup Language)は、 タグ力 S固定で表示に特ィ匕したちの となっており、タグ情報を基にコンピュータで情報を処理したいとい う要件に対応できない問題があった。
これに対して、 X M Lは、 利用者が自由にタグを定義でき、 文書中 の文字列に意味付けができる言語構造を有している。このような X M Lで文書を記述した場合、 その文書を、 タグ情報に基づいてコンビュ ータで情報処理できる。
尚、 X M L文書は、 その特徴によって、 次の 2種類の型に大きく分 類される。
■データ型 X M L文書:伝票、 予定表など、 タグ数が多く、 要素内容 短いもの
■文書型 X M L文書:雑誌、 マニュアル、 辞典など、 要素内容が長い 文章になるもの
ここでは、 主に、 データ型 X M L文書を対象にするものとする。 ここで、 以下の説明で使用される用語について、 X M L規格に基づ き説明しておく。 よく知られていることであるが、 一対の" く" と" 〉 " で囲まれた文字列を 「タグ」 、 " く文字列〉" を 「開始タグ」 、 " く /文字列〉" を 「終了タグ」 、 開始タグから終了タグまでの文字列全体 を 「要素」 、 開始タグと終了タグで挟まれた文字列を 「要素内容」 、 タグ内に記述される要素の名前を 「タグ名」 (あるいは 「要素名」 ) 、 要素に対する付加情報を 「属性」 と呼ぶ。
構造化文書では、その文書中にタグを埋め込む形でデータ構造が記 述される。このよ うにデータ構造をタグとして文書中に埋め込んだ構 成を採ることにより、 データ項目の追加 ·削除 '変更に対して柔軟性 と拡張性が得られるほか、 タグ名に、 人が読んで意味のある名前を付
けることにより、 データに視認性を持たせることができる。
ところで、 XML文書に対する処理の高速化やメモリ使用量の削減 等を図って、 XML文書に対する処理能力を向上させる為には、 一般 に、基盤ソフ トウェアの実装の高性能化を図ることが主流になってい る。 しかし、 このよ うな手法のほかに、 XM L文書自体に予め加工を 施しておく ことによつても、 XML文書に対する処理性能を向上させ ることが可能である。 本発明は、 後者の手法 (XML文書を加工して 処理性能の向上を図る手法) に関連するものであり、 ここで、 後者の 手法に係わる従来技術について説明する。
例えば、 非特許文献 1 には、 XML導入時に処理速度が遅く なる問 題が発生し、 データ構造を変更することにより、 問題に対処する事例 が開示されている。 例えば、 住友電工システムズの例(同誌の p.64-6 5参照)では、 同種のデータを、 C S V (Comma Separated Value) 形 式で 1つにまとめて記述し、 まとめられたデータを、 XML文書中の 1つのタグ中に埋め込むことが開示されている。 つまり、 「XMLデ ータの中に、 C S V形式のデータを埋め込むようなもの」 と した。 例 えば、 XMLデータの定義情報を変更し、 1力月分の XMLデータを 日付順にコンマで区切ってまとめている。
具体的には、
<K0USU day=" 01" >8.0</K0USU> く KOUSU day=" 02" >5.5</K0USU>--- く KOUSU day=" 31" 〉12.8</K0USU>
という よ うに、別々のタグに記述されていた毎日の実績に関するデー タを、
く KOUSU day=" 01、 02、 ···、 31" data=" 8.0、 5.5、 "ヽ 12.8 " X/K0USU)
といった形式で、 月単位にまとめるように、 元の文書を書き換えてい る。
このような変更により、 1ヶ月分のデータを参照する際には、 デー タベース .サーバーへの照会は 1回で済むようになり、 XMLの定義 情報の送信も 1回送信するだけなので、データ容量も 1 0分の 1に減 つたと している。
また、 非特許文献 2には、 データ量を減らすことを目的と し、 レコ ード形式の XML文書を、 XM L文書の規格を保ったまま、 X S L変 換を用いて、レコード単位にレコード内の全要素を C S V形式で繋い だ XML文書に変換することが開示ざれている。データ処理の負荷を 減らすためには、レコード内全要素を 1個の C S V形式に纏めた文書 を、 専用の A P I によって扱うことを意図している。
具体的には、 非特許文献 2の手法による変換前■後の XML文書は 、 例えば、 図 4 6 ( a ) 、 ( b ) に示すようになる。 図 4 6 ( a ) は 、 変換前の元の XML文書であり、 図 4 6 ( b ) は、 変換後の XML 文書である。
図示の通り、 変換後の XML文書は、 2つの部分に分けられる。 1 つは、 元の XML文書の各タグ名を記述する部分、 もう 1つは、 各要 素の内容 ( 1 ; 2, 3, 4等) を C S V形式で繋いで記述した部分で ある。
ところで、 ここで、 代表的な構造化文書である XML文書で.は、 何 らかの応用ソフ トが XML文書を扱えるようにするために (検索 ·更 新 ' 削除などの操作を施す) 、 D OM (Document Object Model)と 、 S AX (Simple API for XML)と呼ばれる二つの標準的なインター フェイス (A P I : Application Programming Interface)規格力 S定
められている。 S AXは、 メモリ消費が小さく、 一般に高速だが、 時 系列出力で、 参照するだけの簡単な処理に向く という特徴を持つ。一 方、 D OMは、 一般に低速で、 メモリ消費が大きいが、 文書の要素を 階層的なッリ一構造に展開するため、複雑な処理內容でもプログラム が組み易いという特徴を持つ。
一般に、 XML文書に対して検索■更新■削除などの操作を施す場 合、 操作対象の XM L文書を標準 A P I (D OM) で D OMツリーに 展開してから、 その操作を施すことになる。 しかし、 1^ 文書を0 OMツリーに展開する際には、元のデータ量の 6倍もの膨大な動作メ モリ容量が必要となるうえ、 使用されない項目 (操作対象外の項目) も一緒に展開されてしまうため、展開処理に多大な時間を要している (処理速度、 メモリ消費量は、 XML文書の要素数に比例する) 。 上記非特許文献 1, 2のような、 XML文書を加工して処理性能の 向上を図る手法が存在するのは、 このような事情があるからである。
しかしながら、 上記非特許文献 1, 2には、 以下の問題点があった まず、 非特許文献 1に記載の手法は、 データ依存の個別の方法であ り、 組織的な汎用の方法ではない。 すなわち、 非特許文献 1記載の手 法は、データ処理に用いる同種のデータを一つにまとめるものであつ て、 同種のデータを持つ特定のデータに適用する方法であり、 改善の 効果はデータに依存する。 つまり、 汎用の方法ではない。
また、 非特許文献 2に記載の手法は、 XML文書のタグを外すこと によって、 データ量は削減できるが、 この方法によって既存の応用ソ フ トのデータ処理の負荷を軽減することはできない。
非特許文献 2では、変換文書を扱える特別な A P I ソフ トを作って
、 データ処理の負荷を軽減することを想定している。 これは、 既存の D OMソフ トと同様の機能のソフ トを別途作成しなければならない ことを意味する。 この為、 この作業は多大の工数を要する。 よって、 既存の D OMと同様に使われる状況にはなり難い。
また、 非特許文献 2に記載の手法は、 定型 (表形式) の XML文書 のみを想定している。
このような従来技術に対して、 本出願の発明者は、 非特許文献 3の 手法を提案している。
非特許文献 3に記載の手法は、 まず、 レコード構成の XML文書に 対して D OM応用ソフ トでのデータ処理性能を改善するためであつ て、 応用ソフ トにわずかな修正で適用できて (特別なソフ トを書かず に変換が実行できる) 、 変換後に基本的に元の XML文書と同様 (ト ランスペアレン ト) に扱える形式を目指している。 そして、 レコード 毎に、応用ソフ トで処理対象とする要素はそのままにして、 処理対象 外の複数の要素は、その要素内容を C S V形式で 1つにまとめた XM L文書に変換することを特徴と している。 また、 非表形式のデータを 表現した XML文書に関しては、レコード内に出現する要素が不定で あるため、 変換 XML文書上に、 処理非対象の要素名を保持して、 要 素内容と対応付ける必要があるために、 C S V形式の要素内容と同じ 並び順で、 処理非対象要素名を C S V形式で繋いで、 変換先 C S V形 式の要素の属性と して置く ことを提案している。
(非特許文献 1 )
「見えてきた万能幻想の真実 XMLの〃常識〃を覆す」 、 日経コン ピュータ誌 2001.3.12号、 ρ 5 2 - ρ 7 1
(非特許文献 2 )
"Building an XML Bloat Buster using ZXML XML Compression Method" by Alain Trotter; [平成 1 4年 2月 1 8 日検索]、 イン ターネク < UI^ L : http:// w. ASPToday. com/> または、 と してく U R L : http: //www. XML. com/pub/r/904 >
(非特許文献 3 )
「XML文書の事前形式変換によるデータ処理性能改善の検討.」 、 吉田茂、 他 ; 第 1回情報科学技術フォーラム (F I T 2002) D- 29、 2 002.09.27 ここで、 本出願人は、 非特許文献 3に関連して、 既に、 特願平 1 3 — 4 0 1 9 3 4号 (以下、 先出願と呼ぶ) を出願している。
先出願においても、 非特許文献 3と同様に、 レコー ド形式の XML 文書においてレコード内要素が、応用ソフ トのデータ処理の対象項目 (キー要素) と、 非対象項目 (非キー要素) に分けられて、 変換の際 には、 キー要素はそのままにし、 非キー要素の内容を C S V形式で纏 めて新たな一つの要素 (C S V要素と呼ぶ) とする XML文書に変換 することを提案している。 XML文書が非定型の場合は、 新要素に纏 めた要素の要素名を C S V形式にしたものを属性に付ける。この変換 (以下では、 C S V圧縮変換と呼ぶ) は、 X S L変換と して実行する 。
この C S V圧縮変換は、 データ処理の対象項目であるキー要素は、 C S V形式にはしないで、 そのままとするので、応用ソフ トに僅かな 修正を施すだけで適用可能となる。 また、 非キー要素のタグを削除し て、 その要素内容を一つの新要素に纏めることで、 元文書のタグを減 らした要素数に応じて、 XML文書処理のメモリ使用量の削減、 メモ
リ展開時間、 処理時間を短縮することができる。
例えば、 図 4 7には定型 XML文書の場合、 図 4 8に非定型 XML 文書の場合の変換前/後の XML文書、 及び変換仕様の一例を示す。 図 4 7 ( a ) には変換前の定型 XML文書の例、 図 4 7 ( b ) には その変換結果、 図 4 7 ( c ) にはこの変換に用いる変換仕様の一例を 示す。
この例では、 「名前」 と 「会社」 をキー要素と し、 それ以外の非キ 一要素の要素内容は、 変換後の文書では、 新要素 「情報」 に C S V形 式で纏めている。
また、 図 4 8 ( a ) には変換前の非定型 XM L文書の例、 図 4 8 ( b ) にはその変換結果、 図 4 8 ( c ) にはこの変換に用いる変換仕様 の一例を示す。
この例では、 変換後の文書では、 各レコード毎 (Aさん、 Bさん) に、 そのレコードに記述されている非キー要素の要素名を、 新要素の タグにおいて属性 tagsによって指定している。 これによつて、 変換後 の XML文書を用いて、応用ソフ トウェアが何らかの処理を実行する 際にも、 要素名と要素内容との対応関係が分かる。
上記のように、 非特許文献 3、 先出願では、 特に応用ソフ トウェア が変換後の XML文書を処理することに関して、従来に比べて優れた 手法を提案している。 また、 従来では、 非定型の XML文書に対応す る手法は、 全く考えられていなかった。
しかしながら、 先出願に記載の手法には、 未だ、 以下に記す ( a ) 〜 ( c ) の改良の余地が残っている。
( a ) 応用ソフ トにおける扱い易さについて
先出願では、 非キー要素は、応用ソフ トで使わない要素を想定して
いた。 しかし、 キー要素/非キー要素を明確に区別できない応用ソフ、 トも多く、 非キー要素と定義した場合であっても、 変換後に、 この非 キー要素の要素内容を応用ソフ トで読出し/書込みしたいことが起こ る。 C S V要素の内容が読出せれば、 どの Script言語でも、 C S Vを 分離/合併する標準関数 ( " spl i t" 、 " join" ) が用意されている ため、 展開は容易に行なえる。
しかし、 先出願の手法では、 このような状況は想定していなかった 為、 多くの非キー要素をまとめた場合、 非キー要素の中の使う要素以 外に、 不要な要素も一緒に展開して取り出す必要があり、 オーバーへ ッ ドが大きくなるという課題が残った。 これは、 C S V形式で纏めた 非キー要素の数が多ければ多いほど、 オーバーヘッ ドが大きく'なる。 これを解決するには、 新要素を複数定義し、 新要素 1つ当りに割り当 てる非キー要素を減らすことが考えられる。 この点については、 先出 願においても、 例えば先出願の図 6〜図 8に示すように、 2つの新要 素 「情報 1」 、 「情報 2」 に、 それぞれ、 非キー要素を C S V形式で 纏めている。
しかしながら、 これは、 上記問題を想定したものではなく、 タグ名 「勤務先」 の要素内にある要素は、.タグ名 「勤務先」 の要素内に作成 した新要素 「情報 1」 に纏め、 それ以外の非キー要素は、 レコード内 の第 1階層に作成した新要素 「情報 2」 に纏めるようにしている。 応 用ソフ トが非キー要素を扱う場合が生じ得ることを想定していない ので、 「情報 1」 は元の X M L文書の階層構造に従って 「勤務先」 要 素の下、 すなわちレコード内の第 2階層に作成され、 「情報 2」 はレ コード内の第 1階層に作成される。 この為、 応用ソフ トが非キー要素 を扱う場合に、 扱い難くなる場合がある。 '
また、 この例では、 2つの新要素、 すなわち複数の新要素が存在す るが、 非キー要素の数が非常に多い場合に、 その数に応じて、 新要素 の数を、 3つ、 4つ、 · ■ ■ 1 0以上等とする発想は、 先出願にはな い 0
( b ) 変換/逆変換後のレコード内の要素順序
先出願に限らず、 従来では、 変換の際、 レコード内の要素の順序は 保存されない。 この為、 変換前の元の X M L文書と、 これを変換後に 更に逆変換した X M L文書とを比較すると、 内容的には同一だが、 要 素の並びが変わってしまって、ユーザから見れば文書が変質したよう に見え、 使い難いという問題があった。
( c ) X M L文書と しての自己記述性の欠如に対応する手法の改善 X M L文書は、 要素名でデータの意味付けがなされ、 それ自身だけ で自己記述性を備えている。 しかし、 従来では、 非定型の X M L文書 内に C S V形式を持ち込むと、 この自己記述性が失われてしまい、 C S V形式で繋いだデータの意味を得るには他のファイルの参照が必 要になるという問題があった。
これに対して、 先出願では、 要素名と要素内容を対応付けるため、 C S V形式で纏める非キー要素名を含む Pathを属性で与える非定型 文書向けの手法を提案している。 つまり、 例えば図 4 8 ( b ) や先出 願の図 3 ( B ) に示すように、 属性 tagsによって、 非キー要素の要素 名を記述している。 この方法によれば、 非定型文書にも対応可能であ る。 しかしながら、 各レコード毎に、 それぞれ、 非キー要素の全ての 要素名を記述するので、 特に、 レコード数が多い場合、 非キー要素の 要素数が多い場合、 冗長過ぎるという問題がある。
これを回避するため、先出願では非定型文書で用いている非キー要
素名を含む Pathの記述を任意の短縮文字列で表すことも提案してい る。 つまり、 先出願の図 3 ( C ) に示すように、 各非キー要素に任意 の短縮文字列 A, B , C, ■ ■ ' を割り当てておき、 属性 tagsによつ て短縮文字列を記述している。
しかしながら、 この方法では、 変換文書を応用ソフ トで扱えるよ う にする為には、各非キー要素名と短縮文字列との対応関係を別フアイ ルに記録しておき、応用ソフ トがこの別ファイルを参照しつつ処理を 行なう必要がある。
また、 逐一対応関係を指定しなければならないので、 非キー要素の 数が多くなるに従って、 指定が煩雑になり、 手間が掛かるようになる 更に、 先出願では、 そもそも、 変換後の X M L文書に記述する要素 名 (または短縮文字列) は、 逆変換処理の際に必要なものであった。 本発明の課題は、 レコード内の要素を、 応用ソフ トで扱うキー要素 と、 それ以外の非キー要素に分けて、 キー要素はそのままと し、 非キ 一要素は C S V形式で繋ぐように変換することで、変換後の X M L文 書を既存の応用ソフ トで利用可能とすると共に、汎用の方法と してデ ータ処理のメモリ使用量、 処理時間を削減することができると共に、 更に、応用ソフ トで非キー要素を扱う事態が生じた場合でもオーバー へッ ドが大きくなることなく、 あるいは逆変換結果が、 並び順までも 元の X M L文書の通りに戻すことができ、あるいは非定型文書におい てレコード数が多い場合/非キー要素の要素数が多い場合でも、 冗長 になることなく、変換後でも自己記述性を維持できるようにする構造 化文書変換/逆変換方法、 その装置、 プログラム等を提供することで ある。
発明の開示
本発明による第 1の構造化文書の構造変換装置は、定型の構造化文 書に対応して、 変換後の構造化文書における新要素を複数定義し、 変 換対象の構造化文書内の各要素について、レコード内で出現する順に 、 データ処理の対象となるキー要素であるか否かを指定すると共に、 該キ一要素以外の要素である各非キー要素を、前記複数の新要素の何 れに割り当てるかを定義した変換仕様定義手段と、該変換仕様定義手 段によつて定義される変換仕様に基づいて前記変換対象の構造化文 書から変換後の構造化文書を作成するために、該変換対象の構造化文 書内の各要素を、 前記レコード内で出現する順に、 前記キー要素はそ のまま変換後の構造化文書に記述し、 前記各非キー要素に関しては、 その要素内容を、該当する前記新要素毎に C S V形式でまとめたもの を各新要素の要素内容と して変換後の構造化文書に記述する構造変 換手段とを有するように構成する。
上記構成において、 変換対象の構造化文書内の各要素を、 キー要素
/非キー要素に分けて、 非キー要素の要素内容は c S V形式、 すなわ ち要素内容を区切り記号を介して繋げてまとめることにより、汎用の 方法と してデータ処理のメモリ使用量、処理時間を削減することがで きると共に、応用ソフ トウェアがキー要素を用いて検索等の処理を行 なえる点は、 先出願と同様である。
上記第 1の構造化文書の構造変換装置では、 更に、 新要素を複数定 義して、 各非キー要素を、 各新要素の何れかに自由に割り当てている 。 新要素の数は、 非キー要素の数に応じたものとすればよい。 これに よって、 新要素 1つ当りに割り当てられる非キー要素の数を抑制し、
もし応用ソフ トウェアが非キー要素を扱う事態が生じても、オーバー ヘッ ドが大きくなることを抑止できる。 また、 変換対象の構造化文書 内の階層構造に関係なく 自由に変換できるので、応用ソフ トウ アの 処理内容に合わせて、変換後の構造化文書が応用ソフ トウェアで扱い 易いように定義すればよい。 更に、 変換仕様定義手段における変換対 象の構造化文書内の各要素の定義は、レコード内で各要素が出現する 順に定義しているので、 逆変換の際に、 この変換仕様定義手段を参照 -して、 定義されている順番通りに処理を行なえば、 要素の並びが変わ つてしまうことなく、 完全に元通りに復元することができる。
本発明による第 2の構造化文書の構造変換装置は、非定型の構造化 文書に対応して、 変換後の構造化文書における新要素を複数定義し、 変換対象の構造化文書内に出現し得る全ての要素について、全て出現 する場合の出現順に、データ処理の対象となるキー要素であるか否か を指定すると共に、 該キ一要素以外の要素である非キー要素を、 該複 数の新要素の何れに割り当てるかを定義した変換仕様定義手段と、該 変換仕様定義手段によって定義される変換仕様に基づいて前記変換 対象の構造化文書から変換後の構造化文書を作成するために、該変換 対象の構造化文書内の各要素を、 前記レコード内で出現する順に、 前 記キー要素はそのまま変換後の構造化文書に記述し、前記各非キー要 素に関しては、前記変換対象の構造化文書に出現する要素はその要素 内容を、前記変換対象の構造化文書に出現しない要素の要素内容は空 要素と して、該当する前記新要素毎に C S V形式でまとめたものを各 新要素の要素内容と して変換後の構造化文書に記述する構造変換手 段とを有するように構成する。
また、 上記第 2の構造化文書の構造変換装置において、 例えば、 前
記変換仕様定義手段で定義される変換仕様に基づいて前記変換後の 構造化文書を元の構造化文書に戻すために、該変換仕様定義手段にお いて前記出現順に定義されている各要素について、 順次、 その要素に 該当する新要素を求め、該新要素について前記 C S V形式でまとめた 各要素内容の中から、その順番に応じて該要素に対応する要素内容を 求めて前記元の構造化文書に記述する際に、該要素内容が前記空要素 である要素は記述しない逆変換手段を更に有するように構成しても よい。
上記第 2の構造化文書の構造変換装置によれば、変換対象の構造化 文書が、 非定型の構造化文書である場合でも、 第 1の構造化文書の構 造変換装置と同様の効果が得られるようにできる。 更に、 変換対象の 構造化文書が、 非定型の構造化文書であるにも係わらず、 変換後の構 造化文書に非キー要素の要素名を記述しなくても、 問題なく、 逆変換 できる。 その為に、 上記構成では、 変換仕様定義手段における変換対 象の構造化文書のレコード内の各要素の定義は、レコード内に出現し 得る全ての要素について、レコード内で各要素が出現する順に定義し 、 この順番通りに変換/逆変換処理すると共に、 各レコード毎に、 そ のレコードでは出現しなかった要素は、変換の際には要素内容を空要 素として出力し、逆変換時には空要素である要素は出力しないように する。
更に、 上記第 2の構造化文書の構造変換装置において、 前記構造変 換手段は、 更に、 前記新要素毎に、 その新要素内に要素内容を記述し 得る全ての要素の要素名を C S V形式でまとめたものを、付加情報と して変換後の構造化文書に記述するように構成してもよい。
これによつて、応用ソフ トウェアで非キー要素を処理対象とする事
態が生じた場合でも、 付加情報を参照することで、 要素内容と要素名 との対応関係が分かると共に、 上記空要素の要素は、 そのレコードに は記述されていないことが分かる。 先出願では、 各レコード毎に、 要 素名または短縮文字列を記述していたが、 本発明では、 例えばへッダ 等に一度、 付加情報を記述しておけばよく、 各レコード毎に逐一記述 する必要なく、 上記対応関係が分かるようにしている。
本発明による第 3の構造化文書の構造変換装置は、非定型の構造化 文書に対応して、変換後の構造化文書における新要素を複数定義する と共に、該各新要素毎にその新要素が非定型要素であるか否かを指定 し、 変換対象の構造化文書内の各要素について、 該構造化文書内に出 現し得る全ての要素について、 全て出現する場合の出現順に、 データ 処理の対象となるキー要素であるか否かを指定すると共に、該キー要 素以外の要素である非キー要素を、前記複数の新要素の何れに割り当 てるかを定義する変換仕様定義手段と、該変換仕様定義手段によって 定義される変換仕様に基づいて前記変換対象の構造化文書から変換 後の構造化文書を作成するために、該変換対象の構造化文書内の各要 素を、 前記レコ"ド内で出現する順に、 前記キー要素はそのまま変換 後の構造化文書に記述し、 前記各非キー要素に関しては、 前記新要素 毎に、該新要素が前記非定型要素ではない場合には出現した要素の要 素内容を出現順に C S V形式でまとめたものを該新要素の要素内容 と して変換後の構造化文書に記述し、該新要素が前記非定型要素であ る場合には、出現した要素の要素内容を出現順に C S V形式でまとめ たものを該新要素の要素内容とすると共に該出現順番を C S V形式 でまとめたものを該新要素のタグの属性値と して変換後の構造化文 書に記述する構造変換手段とを有するように構成する。
また、.例えば、 上記第 3の構造化文書の構造変換装置において、 前 記構造変換手段は、 更に、 前記新要素毎に、 その新要素内に要素内容 を記述し得る全ての要素の要素名を C S V形式でまとめたものを、付 加情報と して変換後の構造化文書に記述するように構成してもよい。
上記構成の第 3の構造化文書の構造変換装置によれば、上記第 2の 構造化文書の構造変換装置とほぼ同様の効果が得られる。手法として 異なる点は、 その要素がレコード内に出現するか否かを、 出現しなか つた場合は空要素とするのではなく、実際に出現した要素の出現順番 を記述する点である。 出現順番が記述されていない要素は、 そのレコ ード内に出現しなかったことを意味する。
本発明による第 4の構造化文書の構造変換装置は、レコードの種類 毎にそのレコードを構成する要素が異なる非定型の構造化文書に対 応して、 レコードの種類毎にレコード項目 リス トを定義するものであ つて、 該各レコー ド項目 リ ス トは、 そのレコー ド種類に出現し得る全 ての要素について、データ処理の対象となるキー要素であるか否かを 指定すると共に、変換後の構造化文書における新要素を 1以上定義し て、 前記キー要素以外の要素である非キー要素を、 どの新要素に割り 当てるかを指定する変換仕様定義手段と、該変換仕様定義手段によつ て定義される変換仕様に基づいて前記変換対象の構造化文書から変 換後の構造化文書を作成するために、該変換対象の構造化文書中の各 レコー ド毎に、そのレコー ドの種類に応じたレコー ド項目 リ ス トを前 記変換仕様定義手段から選択し、該選択したレコード項目 リ ス トに基 づいて、 前記レコード内の各要素をレコード内で出現する順に、 前記 キー要素はそのまま変換後の構造化文書に記述し、前記各非キー要素 に関しては、該当する前記新要素毎に C S V形式でまとめたものを各
新要素の要素内容と して変換後の構造化文書に記述する構造変換手 段とを有するよ うに構成する。
上記構成の第 4の構造化文書の構造変換装置によれば、変換仕様定 義手段において、 レコー ドの種類ごとに入れ替わるレコー ド項目 (要 素) をそれぞれ分けて定義すると共に、 切り替え条件を付けることに よって、 変換/逆変換時にその条件によって要素並びを切り替えるこ とで、変換後の構造化文書には無駄な記述が含まれないよ うになると 共に、 非定型要素の無駄な有無チェックを行わなくて済む為、 変換 Z 逆変換処理の高速化を図れる。
なお、上述した本発明の各構成により行なわれる機能と同様の制御 をコンピュータに行なわせるプログラムを記憶したコンピュータ読 み取り可能な記憶媒体から、そのプログラムをコンピュータに読み出 させて実行させることによっても、前述した課題を解決することがで きる。 つまり、 本発明は、 このようなプログラム自体と しても構成す ることができる し、 当該プログラムを記録した記録媒体 (特に可搬型 記録媒体) と して構成することもできる。 図面の簡単な説明
本発明は、 後述する詳細な説明を、 下記の添付図面と共に参照すればより明 らかになるであろう。
図 1 ( a ) 〜 ( c ) は、 D O M上でのメモリ展開形式を、 本発明 と従来とを比較して説明する為の図である。
図 2は、本例の構造化文書変換方法をコンピュータ等で実行する 処理全体の概略的な流れを示す図である。
図 3は、第 1の実施例で変換対象となる定型 X M L文書の一例を
示す図である。
図 4は、第 1の実施例で用いる変換仕様 XML文書の一例を示す 図である。
図 5は、第 1の実施例における変換 XML文書の一例を示す図で ある。
図 6は、定型 XML文書に対する構造変換処理の基本的な処理フ ローチャート図である。
図 7は、 XML文書に対する構造変換処理の基本的な処理フロ一 チヤ一ト図である。
図 8は、変換処理における図 6のステップ S 1 7または図 7のス テツプ S 2 8の処理の詳細フローチャート図である。
図 9は、逆変換処理におけるステップ S 1 7の詳細フローチャー ト図である。
図 1 0は、 第 2、 第 3の実施例において入力 XM L文書となる非 定型 XML文書の一例を示す図である。
図 1 1は、第 2の実施例における変換仕様 XML文書の一例を示 す図である。
図 1 2は、 図 1 0の非定型 XML文書を、 図 1 1に変換仕様 XM L文書を用いて構造変換して成る変換 XML文書の一例を示す図で ある。
図 1 3は、 第 2の実施例の構造変換処理における 「レコ一ド内の 要素の処理」 の詳細フローチャート図である。
図 1 4は、 第 2の実施例の逆変換処理における 「レコード内の要 素の処理」 の詳細フローチャート図である。
図 1 5は、第 3の実施例における変換仕様 XML文書の一例を示
す図である。
図 1 6は、 図 1 0の非定型 XML文書を、 図 1 5に変換仕様 XM L文書を用いて構造変換して成る変換 XML文書の一例を示す図で ある。
図 1 7は、 第 3の実施例の構造変換処理における 「レコード内の 要素の処理」 の詳細フローチャート図である。
図 1 8は、 第 3の実施例の逆変換処理における 「レコード内の要 素の処理」 の詳細フローチャート図である。
図 1 9 ( a ) 〜 ( d ) は、 第 1の実施例において、 変換/逆変換 X S Lシートを用いる場合の概略的な処理手順を示す図である。
図 2 0は、図 4に示す例の変換仕様 XML文書を読み込んだ場合 に生成される変換 X S Lシートの一例を示す図である。
図 2 1は、図 4に示す例の変換仕様 XML文書を読み込んだ場合 に生成される逆変換 X S Lシートの一例を示す図である。
図 2 2は、変換仕様 XML文書を作成する手順を説明する為の図 である。
図 2 3は、応用ソフ トウェアのプログラムの一例を示す図である 図 2 4は、応用ソフ トウエアのプログラムの一例を示す図である 。
図 2 5は、レコー ドの種類によってレコー ド項目が異なるタイプ の非定型 XML文書の一例を示す図である。
図 2 6は、図 2 5の非定型 XML文書に対して第 2の実施例を適 用した場合の変換仕様 XML文書の例を示す図である。
図 2 7は、図 2 5 と図 2 6の例に対応する変換 X M L文書を示す
図である。
図 2 8は、 第 4の実施例 (その 1 ) による変換仕様 X ML文書の 例を示す図である。 '
図 2 9は、図 2 8の変換仕様 XM L文書を用いて作成する変換 X S Lシートの一例を示す図 (その 1 ) である。
図 3 0は、図 2 8の変換仕様 XM L文書を用いて作成する変換 X S Lシー トの一例を示す図 (その 2) である。
図 3 1は、 第 4の実施例 (その 1 ) による変換 X ML文書の例を 示す図である。
図 3 2は、図 2 8の変換仕様 XML文書を用いて作成する逆変換
X S Lシートの一例を示す図 (その 1 ) である。
図 3 3は、図 2 8の変換仕様 XML文書を用いて作成する逆変換
X S Lシートの一例を示す図 (その 2) である。
図 3 4は、 第 4の実施例 (その 2 ) による変換仕様 XML文書の 例を示す図である。
図 3 5は、図 3 4の変換仕様に基づく変換/逆変換処理を示すフ ローチャート図である。 図 3 6は、変換処理における図 3 5のステップ3 3 0 2の詳細フ ローチャート図 (その 1 ) である。
図 3 7は、変換処理における図 3 5のステップ S 3 0 2の詳細フ ローチャート図 (その 2) である。
図 3 8は、逆変換処理における図 3 5のステップ S 3 0 2の詳細 フローチャート図 (その 1 ) である。
図 3 9は、逆変換処理における図 3 5のステップ S 3 0 2の詳細 フローチャート図 (その 2 ) である。
図 4 0 ( a ) 、 (b ) は、 図 3 4の変換仕様に基づく変換/逆変 換 X S Lシートの作成処理フローチャート図である。
図 4 0 ( c ) 、 ( d ) は、 これら変換/逆変換 X S Lシートを用 いた変換/逆変換処理フローチャート図である。
図 4 1は、 図 4 0 ( a ) によつて作成される変換 X S Lシートの 一例を示す図である。
図 4 2は、 図 4 0 ( b ) によって作成される逆変換 X S Lシート の一例を示す図である。
図 4 3は、図 3 4の変換仕様 XML文書の作成方法を説明する為 の図である。
図 4 4は、構造化文書変換方法を実現するコンピュータのハード ウェア構成の一例を示す図である。
図 4 5は、 プログラム等を記録した記録媒体、 ダウンロードのー 例を示す図である。
図 4 6 ( a ) は、 従来例における変換前の元の XML文書であり
、 図 4 6 ( b ) はその変換後の XML文書である。
図 4 7 ( a ) は、 先出願における変換前の定型 XML文書の例、 図 4 7 ( b ) はその変換結果、 図 4 7 ( c ) はこの変換に用いる変換 仕様の一例を示す図である。
図 4 8 ( a ) は、 先出願における変換前の非定型 XML文書の例
、 図 4 8 ( b ) はその変換結果、 図 4 8 ( c ) はこの変換に用いる変 換仕様の一例を示す。 発明を実施するための最良の形態
以下、 図面を参照して、 本発明の実施の形態について説明する
以下、 本発明の実施の形態について詳細に説明する。
まず、 図 1 ( a ) 〜 ( c ) は、 本発明の特徴の 1つを、 従来技術、 先出願と比較して説明する為の図である。
図 1 ( a ) 〜 ( c ) には、 XML文書をメモリ上に D OMツリーと して展開した例を示す。
図 1 ( c ) には、 本例による構造化文書変換方法による D OM上で のメモリ展開形式を示す。 また、 比較のために、 図 1 ( a ) には従来 の D OM展開形式を示し、 図 1 ( b ) には先出願の D OM展開形式を 示す。 尚、 図 1 ( a ) 〜 ( c ) には、 1つのレコード (タグ名 "個人 " ) のみ示しているが、 実際には、 多数のレコードが存在する。
図 1 ( a ) に示すように、 従来では、 異種のデータを扱う場合には 、 データ処理に使わない要素も含め全要素をメモリ上に展開する。 こ の為、 大量に動作メモリを消費し、 処理速度も遅くなる。
これに対して、上記非特許文献 1のように同種のデータを一つにま とめて C S V形式で繋ぐ方法や、 上記非特許文献 2のように、 定型 X ML文書を想定して、そのレコード内全要素を 1個の C S V形式に纏 める方法等も提案されている。
しかしながら、 上述してある通り、 従来では、 変換後の XML文書 を用いて、応用ソフ トウェアが何らかの処理を行なう場合については 、 何ら対応していない。 また、 非定型の XML文書には、 何ら対応し ていない。
一方、 図 1 ( b ) に示すように、 先出願では、 レコード内の各要素 を、 応用ソフ トのデータ処理の対象項目 (キー要素) と、 非対象項目 (非キー要素) に分けて、 キー要素はそのままにし、 非キー要素の要 素内容を C S V形式で各新要素に纏めた XML文書に変換する。 尚、
図 1 ( b ) 、 ( c ) に示す例では、 タグ名 "名前" 、 "会社" の要素 がキー要素であったものとする。
この方法によれば、 非キー要素は、 全て、 タグを外して、 その要素 内容を C S V形式で纏めて各新要素にまとめているので、メモリ上に 展開されるツリーの子要素の数を大幅に減らすことができ、展開時や データ処理時に非キー要素を一括して扱う ことができる。ッリ一の子 要素とは、 例えば図, 1 ( a ) における "部署" 、 "電話" 、 " emai l " 、 "自宅住所" 、 " F a X " 等のタグ名である。
そして、 更に、 応用ソフ トウエアが、 この変換後の X M L文書を用 いて何らかの処理を行なう際には、 キー要素を用いて、 例えば検索処 理等を実行することができる。
しかしながら、 先出願では、 上記の通り、 「非キー要素は、 応用ソ フ トで使わない要素である」という前提が崩れる状況を想定していな かったので、応用ソフ トウェアが非キー要素を扱い易いよ うにはなつ ていない。 つま り、 既に説明してあるが、 図 1 ( b ) に示すよ うに、 C S V要素 「情報 1」 は元の X M L文書の階層構造に従って 「勤務先 」 要素の下、 すなわちレコー ド内の第 2階層に作成され、 C S V要素 「情報 2」 はレコード内の第 1階層に作成される。 そして、 各 C S V 要素に含まれる非キー要素も、元の X M L文書の構造通り となってい る。 この為、 応用ソフ トが非キー要素を扱う場合に、 扱い難く なる場 合がある。 少なく とも、 応用ソフ トウェアで非キー要素を扱い易い構 造とすることは想定していない。
また、 任意の非キー要素を処理対象とする際に、 C S V要素を展開 する場合、 非キー要素の数が多いと、 オーバーへッ ドが大きく なるこ とに、 十分に対応してはいなかった。
これに対して、 図 1 ( c ) に示すよ うに、 本例の構造変換/逆変換 手法では、 複数の C S V要素を定義すると共に、 元の XML文書の階 層構造に関係なく、複数の C S V要素を全てレコード内の第 1階層に 配置する。 更に、 図には表われていないが、 各非キー要素を、 どの C S V要素に含めるのかを、 元の XML文書に関係なく、 自由に定義す ることができる。 伹し、 自由にできるにしても、 応用ソフ トウェアの 内容に準じて、応用ソフ トウェアが扱い易い形とすることが望ま しい 。 また、 これも図には表われていないが、 C S V要素の数は、 非キー 要素の数に応じて、 非キー要素数が多い場合には、 C S V要素の数も 多くすることが望ましい。
このよ うに、 本発明では、 非キー要素を処理対象とする場合でも、 応用ソフ トウエアが扱い易い形にすることができ、 また、 非キー要素 数が多い場合でも、該当する C S V要素を展開する際のオーバーへッ ドが大きくなることはない。
尚、 これは、 本例の構造化文書変換方法の特徴の 1つであり、 本例 による構造化文書変換方法には、 他にも、 後述するよ うに、 様々な特 徴がある。
例えば、 変換対象の XML文書が、 非定型 XML文書である場合、 先出願では図 1 ( b ) に示すように、 属性 tagsによって、 各 C S V要 素に C S V形式で纏めた各要素内容に対応するタグ名を記述してい たが、 これは各レコード毎に逐一記述するので、 特にレコード数が多 い場合、 問題となる。 これに対して、 本発明では、 図 1 ( c ) に示す よ うに、 出現し得る全ての要素のタグ名を、 まとめてヘッダに付加情 報と して記述することで、 この問題に対応できるが、 詳しく は後に説 明する。
図 2に、本例の構造化文書変換方法をコンピュータ等で実行する処 理全体の概略的な流れ及びその構成を示す図である。
本例の構造化文書変換方法は、 後述するように、 定型 XML文書の 場合と、 非定型 XML文書の場合 (これは、 2つのタイプについてそ れぞれ 2つの手法を提案する) について、 第 1〜第 4の実施例として 説明しているが、 図 2に示す処理全体の概略的な流れ及び構成は、 共 通である。
図 2において、 データ構造変換/逆変換機構 1 0は、 構造変換部 1 1、 逆変換部 1 2、 X S L変換部 1 3を有する。 データ構造変換/逆 変換機構 1 0は、 入力 XML文書 2 1 と、 変換仕様 XML文書 2 2を 入力して、 変換 XML文書 2 3を出力する (変換) 。 また、 抽出 XM L文書 2 4を入力して、 結果 XML文書 2 5を出力する (逆変換) 。 入力 XML文書 2 1は、 変換対象の XML文書である。
変換仕様 XML文書 2 2は、 変換/逆変換の為の変換仕様を与える XML文書である。 すなわち、 多様な種類の XM L文書に対して、 各 XM L文書に応じたスタイルシー ト、 すなわち X S L (Extensible Stylesheet Language) シートを!/ヽち ヽちィ乍 するの 、 ; めて ffiィ到 で手間が掛かるものである。 そこで、 この手間を省く為に、 本例では (先出願と同様) 、 XML文書のデータ構造を変換するための仕様を 記述した XML文書、すなわち変換仕様 XML文書 2 2を作成してお
< o
構造変換部 1 1は、この変換仕様 XML文書 2 2によって与えられ る変換仕様に基づいて、 入力 XML文書 2 1を、 変換 XML文書 2 3 へと変換し、 逆変換部 1 2は、 抽出 XML文書 2 4を、 結果 XML文 書 2 5へと逆変換する。 また、 このように変換仕様に基づいて、 直接
、 変換/逆変換処理を実行する方法でもよいが、 特に、 大量のデータ を変換するときに、レコー ドごとに変換仕様を読み取って判断する処 理が必要となる。
これに対して、 X S L変換部 1 3が、 変換仕様 X M L文書 2 2 と、 変換 X S Lシート生成 X S Lシート 1 4 (先出願における自動変換ス タイルシート) とに基づいて、 変換実行手順を指示する変換 X S Lシ ート 1 5 (データ構造変換用スタイルシー ト) と、 逆変換実行手順を 指示する逆変換 X S Lシート 1 6 (逆変換用スタイルシー ト) を生成 する。 尚、 変換 X S Lシー ト生成 X S Lシー ト 1 4は、 厳密には、 変 換 X S Lシー ト 1 5生成用のものと、逆変換 X S Lシー ト 1 6生成用 のものとがあるが、 ここでは特に区別せずに扱う ものとする。
そして、 構造変換部 1 1または逆変換部 1 2が、 これら生成した X S Lシー ト 1 5または 1 6を用いて、変換処理または逆変換処理を実 行するよ うにしてもよい。 一度、 X S Lシート 1 5、 1 6を生成して から変換/逆変換をすることによって、 大量のデータを変換するとき にレコー ドごとに変換仕様を読み取って判断する操作が不要になる ため、 高速で実行することができるようになる。
また、 このよ うに変換/逆変換の実行手順をスタィルシー トで与え るよ うにすれば、 標準の X S L Tプロセッサで変換/逆変換を実行す ることができ、ほとんどあらゆる種類の X M L文書システムにおいて 、 本例による変換/逆変換処理を実行できる。 この場合、 データ構造 変換/逆変換機構 1 0 (構造変換部 1 1、 逆変換部 1 2、 X S L変換 部 1 3 ) は、 実際には、 例えば 1つの標準の X S L Tプロセッサ (構 造化文書変換プロセッサ) によって実現される。
また、 変換 X M L文書 2 3が、 応用ソフ ト 3 0によって、 メモリ上
で D OMッリ一に展開されて、 何らかの処理、 例えばタグ検索によつ て、 変換 XML文書 3 0の一部分のレコードが取り出され、 XML文 書に直された結果が、 抽出 XML文書 2 4である。 そして、 抽出 XM L文書 2 4を逆変換して元の状態に戻したものが、結果 XML文書 2 5である。
上述してある通り、 図 2に示す処理全体の概略的な流れ、 構成自体 は共通であるが、 本例では 4つの実施例の処理を提案している。 以下 、 変換対象が定型 XML文書の場合を第 1の実施例、 非定型 XML文 書の場合であって、 1つめの手法を第 2の実施例、 2つめの手法を第 3の実施例と して説明する。 また、 他のタイプの非定型 XML文書に 係わる 2つの手法を、 第 4の実施例と して説明する。
以下、 まず、 第 1の実施例について説明する。
第 1の実施例で変換対象となる定型 XML文書とは、例えば表形式 のデータのように、 レコード内の要素数、 タグ名が固定である XML 文書であり、 その一例を図 3に示す。 これが、 入力 XML文書 2 1に 相当する。 また、 図 3に示す定型 XML文書に対応する変換仕様 XM L文書 2 2の一例を、 図 4に示す。 また、 図 3に示す定型 XML文書 を、 図 4に示す変換仕様 XML文書 2 2を用いて、構造変換部 1 1に よって変換してなる変換 XML文書 2 3の一例を、 図 5に示す。
定型 XM L文書は、図 3に示す例では 2つのレコードのみ示してい るが、 通常はもつと多くのレコードが存在している。 また、 図 3に示 す例では、 各レコード (タグ名 "個人" ) は、 レコード内が 2階層か ら成っており、 会社情報と個人情報とに分けているが、 この例に限る わけではない。 1階層であってよいし、 3階層以上であってもよい。 図 3において、 各レコードは、 タグ名 "名前" 、 "会社情報" 、 "
個人情報" の要素を 1つずつ有している。 更に、 タグ名 "会社情報" の要素は、 タグ名 "会社" 、 "部署" 、 "電話" 、 "email" の要素 を有する階層構造となっている。 同様に、 タグ名 "個人情報" の要 素は、 タグ名 "自宅住所" 、 "自宅電話" 、 "携帯電話" の要素を有 する階層構造となっている。 定型 XML文書であるので、 図示の 2つ のレコードに限らず、 全てのレコードは、 同じ構造となっている。 また、 図 4に示す変換仕様 XML文書 2 2の一例では、 まず、 タグ 名 「record」 の要素の要素内容と して、 変換対象とするレコード名を 記述する。 その次には、 タグ名 「items」 内の要素と して、 タグ名 「m erging_tag」 の要素と、 タグ名 「item」 の要素を記述している。
タグ名 「merging一 tag」 の要素の要素内容には、 C S V要素名 (C S V要素のタグ名) を記述する。 タグ名 「merging_tag」 の要素内容 、 すなわち C S V要素名は、 入力 XML文書 2 1の構造に関係なく、 自由に、 複数定義できる。
本例では、 先出願と同様に、 変換の際には、 キー要素はそのままに し、 非キー要素の内容を C S V形式で纏めて新たな要素 (これを C S V要素と呼ぶ) と して変換 XML文書を作成するが、 本例においては 、 入力 XM L文書 2 1の構造に関係なく、 自由に複数の C S V要素を 定義できるので、 応用ソフ ト 3 0で扱い易いように定義できる。 また 、 C S V要素の数には、 特に上限を設けないので、 非キー要素の数が 多い場合には、 これに応じて、 C S V要素の数を増やすことで、 1つ の C S V要素当りに C S V形式で纏める非キー要素の数を抑制でき るので、応用ソフ ト 3 0が任意の非キー要素を処理対象とする場合で も、 該当する C S V要素のみを展開する際に、 その非キー要素の数は 多くないので、 オーバーヘッ ドが大きくなることはない。
図示の例では、 2つの C S V要素のタグ名、 すなわち 「情報 1」 と 「情報 2」 を定義しているが、 これは、 この例では、 非キー要素の数 がそれほど多くない為であり、 非キー要素の数が多ければ、 C S V要 素の数を増やせばよい。
次に、 タグ名 「i tem」 の要素は、 変換対象の X M L文書においてレ コードに記述される各要素のタグ名を、要素内容と して記述している 尚、 紛らわしいので、 以下、 "タグ名 「i tem」 の要素" 等という表 現は、 " 「i tem」 要素" または "要素 「item」 " という表現に改める 。
また、 " 「i teni」 要素" の要素内容である "変換対象の X M L文書 においてレコードに記述される各要素のタグ名" を、 特に "要素名" と呼ぶものとする。
各 「i tem」 要素は、 図上の上から順に、 レコード内で出現する要素 の順番通りに、 その要素の変換仕様を定義している。
まず、 図示の通り、 要素名は、 レコー ド内で出現する要素の順番通 りのタグ名となっている。 例えば最初の 「i t em」 要素の要素名は、 変 換対象の X M L文書のレコード内で最初に出現する要素のタグ名で ある 「名前」 となっている。 これによつて、 逆変換時に当該変換仕様 に基づいて、 変換後の X M L文書の内容を元に戻す際に、 各要素を元 の文書と同じ順番に並べて出力するようになる。
また、 各 「: i tem」 要素には、 そのタグ内に所定の属性 「mtag」 を付 与している。 これは、 各 「i tem」 要素が、 その要素内容、 すなわち上 記 "要素名" を、 どの C S V要素に格納するのかを、 属性 「mtag」 で 指定する。 但し、 mtag = "_0RG" と指定されている場合には、 その要
素名の要素がキー要素であることを意味する。 図示の例では、 応用ソ フ ト 3 0において変換後の XML文書を用いて検索処理をする際に、 要素 「名前」 と要素 「会社名」 をキーにして検索する場合を想定して 、 変換仕様の 「item」 要素において要素名 "名前" と "会社名" の要 素がキー要素である旨を属性 「mtag」 "_0RG" によって指定している 。 また、 各要素名の要素のレコー ド内の階層を 「path」 属性で指定す る。
また、 上記キー要素以外の要素である非キー要素に関しては、 図示 の例では、 C S V要素 「情報 1」 については、 非キー要素 "部署" 、 "電話" 、 "email" (何れも 「path」 属性は "会社情報" が指定さ れているが、 これに限るわけではない) 。 C S V要素 「情報 2」 につ いては、 非キー要素 "自宅住所" 、 "自宅電話" 、 "携帯電話" ( これも、 何れも 「path」 属性は "個人情報" が指定されているが、 こ れに限るわけではない。 つまり、 変換元の文書の階層構造に従って C S V要素を割り当てる必要があるわけではない) 。
尚、 図 4に示す変換仕様 XML文書 2 2のファイル名は、 「specl . ralj であるものとする。
構造変換部 1 1力 上記図 3に示す定型 XML文書を、 図 4に示す 変換仕様 XML文書 2 2を用いて、図 7に示す処理を実行することに よって、 図 5に示す変換 XML文書 2 3が作成される。 尚、 図 5には 、 A氏に関するレコードの変換結果のみを示すが、 特に図示しないだ けであり、 他のレコード (B氏) 等も同様に変換される。
以下、 図 5、 図 7を参照して、 本例による構造変換処理について説 明する。
尚、 図 7は、 第 1〜第 3に共通の XML文書に対する構造変換処理
の基本的な処理フローチヤ一ト図である。 但し、 応用ソフ ト 3 0での 非キー要素の利用を考えない場合には、図 6に示す処理であってもよ い。 図 6は、 XM L文書に対する構造変換処理の基本的な処理フロー チャート図である。 図 7に示す処理と、 図 6の処理の違いは、 図 7で はステップ S 2 3の処理が加わっており、また図 6のステップ S 1 3 の処理の代わりにステップ S 2 4の処理を行なう点のみであり、他の 処理は同じである。 よって、 ここでは図 6の説明は省略する。
図 6、 図 7は、 直接、 変換仕様を読み取って行う変換処理のフロー チャート図であり、 図 8は、 図 6のステップ S 1 7または図 7のステ ップ S 2 8の処理の詳細フローチャート図である。
尚、 図 6〜図 9は、 データ構造変換/逆変換機構 1 0によって実行 される処理を示すものである。
図 7において、 データ構造変換/逆変換機構 1 0は、 まず、 変換仕 様 XML文書 2 2を読み込んで、その記述内容から変換仕様を解析す る (ステップ S 2 1 ) 。 続いて、 変換対象である入力 XM L文書 2 1 を入力する (ステップ S 2 2 ) 。 そして、 この入力 XML文書 2 1 と 、 解析した変換仕様とに基づいて、 ステップ S 2 3以降の処理を実行 する。
まず、 変換 X ML文書 2 3 (この時点では、 何も記述されていない ) に対して、 ヘッダ (<csv-def>) に、 付加情報を記述する (ステツ プ S 2 3 ) 。 つまり、 変換仕様 XML文書 2 2に記述されていた変換 仕様に基づいて、 変換 XM L文書 2 3のヘッダに、 各 C S V要素毎に 、 その C S V要素名をタグ名と し、 その要素内容と して、 その C S V 要素に対応する非キー要素の要素名を C S V形式で繋いだものを、付 加情報と して付ける。 この例では、 図 4の変換仕様に従って、 図 5に
示すとおり、 C S V要素名 「情報 1」 については、 これに対応する非 キー要素の要素名 "部署" 、 "電話" 、 "email" 、 C S V要素名 「 情報 2」 については、 これに対応する非キー要素の要素名 "自宅住所 " 、 "自宅電話" 、 "携帯電話" 力 C S V形式で繋がれて記述され ている。
XML文書は、 タグ名で要素内容が意味付けられ、 自己記述的な性 質を持っている。 しかし、 C S V形式を取り込むと、 C S V形式の部 分はタグが外れるので、 XM L文書の自己記述性が崩れてしまう力 S、 この付加情報を変換文書に埋め込むことによって、自己記述性が欠如 することはない。
つまり、応用ソフ ト 3 0において、 変換後の XML文書を用いて何 らかの処理を実行する場合においても、この付加情報を参照すること によって、 各要素内容に対応する要素名を知ることができる。
次に、 入力 XML文書 2 1のルート要素をコピーし、 その属性と し て、 当該変換 XML文書 2 3が C S V変換文書であることを示す 「C S V C (CSV Compacting Conversion) 」 を記述すると共に、 その変 換仕様 XM L文書 2 2のフアイル名を入れる (ステップ S 2 4 ) 。 図 3の例では、 ルート要素は "名簿" であり、 また、 変換仕様 XML文 書 2 2のファイル名は上記の通り 「specl.xml」 であるので、 図 5に 示すようにく名簿 CSVC=" specl.xml" 〉と記述される。 尚、 ここでは 、 変換仕様 XML文書 2 2のファイル名を記述したが、 逆変換 X S L シート 1 6のフアイル名を記述してもよい。 あるいは、 フアイル名に 限らず、 例えば U R Lを指定してもよい。
変換 XML文書 2 3は、変換仕様 XML文書 2 2のパラメータの取 り方によって幾通り もできる力 S、変換 XML文書 2 3にその変換仕様
XML文書 2 2のフアイル名か逆変換用 X S Lシート名を書いてお く ことによって、元の XML文書である入力 XML文書 2 1 との対応 付けがなされる。
次に、入力 XM L文書 2 1のレコード要素以外の部分を変換 XM L 文書 2 3にコ ピーする。 また、 各レコード要素を切り出す (ステップ S 2 5 ) 。 レコード要素とは、 レコードを記述する要素であることを 意味するタグ名で囲まれた要素であり、 図 3の例は、 タグ名く個人 > と < /個人 >で囲まれた要素である。 尚、 図 3の例では、 レコード要 素のみ示しているが、 実際には、 レコード要素以外の何らかの記述が ある場合が多いので、 特に図示しないが、 これを変換 XML文書 2 3 にコ ピーする。
そして、 各レコード要素毎に、 全てのレコ一ドについて処理を行う まで、 つまりステップ S 2 6の判定が Y E S となるまで、 ステップ S 2 7〜ステップ S 2 9の処理を繰り返し実行する。 図 3の例では、 ま ず最初は A氏に関するレコードについて処理し、次に B氏に関するレ コードについて処理し、 その後、 同様に、 全てのレコードについて処 理を実行することになる。
ステップ S 2 7〜ステップ S 2 9の処理は、 まず、 レコード要素の 開始タグを変換 X M L文書 2 3にコピーする (ステップ S 2 7 ) 。 図 3の例では、 開始タグは、 く個人 >である。 次に、 レコー ド内の要素 を処理し (ステップ S 2 8 ) 、 最後にレコード要素の終了タグ (図 3 ではく/個人〉) を変換 XM L文書 2 3にコピーする (ステップ S 2 9 ) 。
図 8は、 ステップ S 2 8の処理の詳細フローチャート図である。 同図において、 まず、 変換仕様 XML文書 2 2を参照して、 キー要
素は、 全て、 そのまま、 入力 XM L文書 2 1から変換 XML文書 2 3 にコピーする処理を実行する。 すなわち、 変換仕様 XML文書 2 2中 の 「要素の並び」 の各要素、 すなわち 「item」 要素を順番に走査して (ステップ S 3 1 ) 、 その要素名の要素がキー要素であるか否かを判 別する (ステップ S 3 2 ) 。 すなわち、 「item」 要素のタグの属性 m tagで指定される文字列が、 mtag= "—ORG" であった場合には、 その 要素名の要素は、 キー要素であると判定する (ステップ S 3 2 , Y E S) 。
そして、入力 XML文書 2 1の処理対象レコードに記述されて.いる ;のキー要素を、 そのまま、 変換 XML文書 2 3にコピーする (ステ ップ S 3 3 ) 。 図 3〜図 5の例では、 例えば、 図 4において 「要素の 並ぴ」 の最初の 「item」 要素における要素名 「名前」 の要素は、 属性 mtag= "—ORG" であるので、 キー要素と判定する。 そして、 図 3にお いて最初のレコー ドは 「 A氏」 であるので、 このレコードにおけるタ グ名 「名前」 の要素である "<名前〉 氏< /名前〉" の部分が、 そ のまま、 変換 X ML文書 2 3にコピーされる。 以下、 同様にして処理 を実行し、 「要素の並び」 の全ての 「item」 要素について上記処理を 実行したら (ステップ S 3 4, Y E S) 、 ステップ S 3 5以降の処理 に移る。
ステップ S 3 5〜 S 4 0の処理は、変換仕様 XM L文書 2 2を参照 して、 各 C S V要素毎に、 その C S V要素に該当する 「item」 要素を 検索して求め、 該当する 「item」 要素の要素内容、 すなわち非キー要 素の要素名を C S V形式で繋いで変換 XM L文書 2 3に出力する処 理である。 まず、 変換仕様 XML文書 2 2を参照して、 「 C S V要素 の定義の並び」 からその要素名 (つまり、 C S V要素名) を順番に走
查し (ステップ S 3 5 ) 、 C S V要素があるか否かを判定する (ステ ップ S 3 6 ) 。 「 C S V要素の定義の並び」 の要素とは、 図 4におけ る 「merging_tag」 要素であり、 同図では最初は 「情報 1」 が存在す るので、 ステップ S 3 6の判定は Y E Sとなり、 続いて、 変換仕様 X ML文書 2 2中の 「要素の並び」 の非キー要素、 つまり各 「item」 要 素において、 その属性 mtagで " _0RG" ではなく、 対応する C S V要素 名が指定されている 「itein」 要素を順番に走査して、 上記 C S V要素 (ここでは 「情報 1」' ) に該当する非キー要素を検索する (ステップ S 3 7 ) 。
そして、 該当する非キー要素を見つける毎に (ステップ S 3 8, Y E S) 、 この非キー要素の要素内容を、 入力 XML文書 2 1から取得 して、 これを C S V形式で繋ぐ (ステップ S 3 9 ) 。 上記 C S V要素 「情報 1」 に該当する非キー要素、 すなわち mtag= "情報 1 " となつ ている非キー要素は、 図 4の例では、 まず最初は要素名 「部署」 であ り、 「pa1h= "会社情報" 」 となっているので、 入力 XM L文書 2 1 から、 このパスに従って 「部署」 要素の要素内容 「A部」 を取得する 。 同様にして、 要素名 「電話」 、 要素名 「email」 の要素の要素内容 「 1 2 3」 、 「abc@fj. jp」 を、 その pathに従って入力 X M L文書 2 1からその取得して、 これらを順次 C S V形式で繋'いでいく。 そして 、 該当する非キー要素が見つからなくなったら (ステップ S 3 8 , N O) 、 上記 C S V要素名 「情報 1」 をタグ名と し、 その要素内容を、 上記非キー要素の要素内容を C S V形式で繋いだものとする新要素 (C S V要素) を、 変換 XML文書 2 3に出力する (ステップ S 4 0 ) 。 この結果、 図 5に示す通り、
く情報 1 >A部, 1 2 3, abc@f j. jpく/情報 1 >
力 S、 変換 XM L文書 2 3に記述される。
次に、 再びステップ S 3 5の処理に戻り、 次の C S V要素名 「情報 2」 を得て、 これについても上記と同様の処理を行なった結果、 図 5 に示す通り、
<情報 2〉 A巿 A町, 4 5 6 , 7 8 9く/情報 2〉
力 S、 変換 XML文書 2 3に記述される。
そして、 「情報 2」 の次の C S V要素は存在しないので (ステップ S 3 6, NO) 、 当該処理を終了する。 以上で、 変換 XM L文書 2 3 の作成が完了する。
以上の変換処理によつて、変換 XM L文書 2 3におけるレコード内 の同階層 (この例では第 1階層) に全ての C S V要素 (本例では 「情 報 1」 と 「情報 2」 ) を配置して、 「情報 1」 と 「情報 2」 に、 それ ぞれ 「会社情報」 と 「個人情報」 に属する各要素の要素内容を格納す るので、 例えば応用ソフ ト 3 0において、 想定外に、 非キー要素を使 う必要が生じた場合でも、応用ソフ ト 3 0で扱い易い構造となってい る。 尚、 この例では、 「会社情報」 と 「個人情報」 が同階層であった ので、 分かり難いかもしれないが、 たとえ 「会社情報」 と 「個人情報 」 とが互いに異なる階層にあつたと しても、 「情報 1」 と 「情報 2」 はレコード内第 1階層となる。 また、 上述してあるよ うに、 「会社情 報」 に属する要素の要素内容を全て 「情報 1」 に含める必要はなく、 変換仕様 XML文書 2 2によって自由に定義できる。 また、 既に述べ ているよ うに、 非キー要素の数が多い場合でも、 オーバーへッ ドが大 きく なることを防止できる。
次に、 以下、 定型 XML文書に対する構造変換処理を行なって得ら れた変換 XML文書 2 3を、 逆変換して、 元の構造の XML文書に戻
す処理、 すなわち逆変換処理について、 詳細に説明する。 図 2の例で は、 応用ソフ ト 3 0が、 蓄積されている複数の変換 XML文書 2 3の 中から、例えばクライアントから要求されて検索条件に応じてタグ検 索等を行なって得た検索結果である抽出 XML文書 2 4を、逆変換部 1 2によって逆変換して、 結果 XML文書 2 5を出力するので、 これ に沿って説明する。
まず、 逆変換処理の全体フローチャート図は、 特に図示しないが、 基本的には図 6に示す変換フローと、 一部を除いてほぼ同じである。 異なる点は、 ステップ S 1 2で入力する XML文書、 すなわち変換対 象の XML文書が、 抽出 XML文書 2 4であるので、 図 6のステップ S 1 3, S 1 4における 「入力 XML文書」 を 「抽出 XML文書 2 4 」 に置き換えればよい。 また、 抽出 XML文書 2 4が、 図 7に示す変 換処理によって得られたものである場合には、ステップ S 1 3のルー ト要素のコピーの際にその属性は除外してコピーし、 また、 ステップ S 1 4の処理においてヘッダの付加情報は除外してコピーすること になる。
また、 当然、 ステップ S 1 7の処理内容は、 図 8 とは全く異なる。 図 9は、逆変換処理におけるステップ S 1 7の詳細フローチヤ一ト 図である。
図示の逆変換処理は、各 C S V要素毎にその要素内容である文字列 を、 区切り記号 (カンマ '、 ' ) によって分離して、 それぞれ所定の 配列に格納しておき、 変換仕様 XML文書 2 2中の 「要素の並び」 の 順にキー要素、 非キー要素を配置して出力する処理である。
ここでは、 図 5の XML文書を、 直接、 図 4の変換仕様に従って、 元の図 3の XML文書に戻す場合を例にして説明する。 よって、 この
例では、 結果 XML文書 2 5は、 図 3の内容となる。
図 9において、 まず、 変数 i に初期値 ' 0 ' を代入する (ステップ S 5 1 ) 。
そして、 変換仕様 XML文書 2 2を参照して、 「C S V要素の定義 の並び」 からその要素名 (つまり、 C S V要素名) を順番に走査し ( ステップ S 5 2 ) 、 C S V要素があるか否かを判定する (ステップ S 5 3 ) 。 「 C S V要素の定義の並び」 の要素とは、 図 4における 「m erging_tag」 要素であり、 同図では最初は 「情報 1」 が存在するので 、 ステップ S 5 3の判定は Y E Sとなる。
続いて、 まず、 i を + 1インク リ メン トする ( i = i + l ) 。 また 、 変数 j に初期値 ' 1 ' を代入する。 そして、 抽出 XML文書 2 4を 参照して、 上記 C S V要素の要素内容を取得し、 これを区切り記号 ( カンマ ' , , ) によつて分離して、 それぞれ、 j を + 1インク リメン トしながら、 配列 contArray(i, j)に格納する (ステップ S 5 4 ) 。 上 記の例では、 i = 1 となり、 抽出 XML文書 2 4における要素 「情報 1」 の要素内容は 「A部, 1 2 3, abc@fj. jp」 であるので、 これら を分離し、 配列 contArray(i, j)に格納すると、 配列 ( 1, 1 ) には " A部,, 、 配列 ( 1, 2 ) には " 1 2 3 " , 配列 ( 1, 3 ) には "abc @f j. jp" が格納される。 C S V要素 「情報 2」 についても、 同様に処 理を行なった結果、 配列 ( 2, 1 ) には " A巿 A町" 、 配列 ( 2, 2 ) には " 4 5 6 " , 配列 ( 2, 3 ) には " 7 8 9 " が格納される。 全ての C S V要素について上記処理を行なったら(ステップ S 5 3 , NO) 、 変数 nに、 このときの i の値を代入する (ステップ S 5 5 ) 。 上記の例では、 C S V要素 「情報 2」 に関する処理によって、 i = 2 となっているので、 これを変数 nに代入する。 続いて、 i = l〜
nまでの各々について、 k ( i ) = 1を設定する (ステップ S 5 6 ) 。 上記の例では、 i = l〜 2となるので、 i =,l、 i = 2の各々につ いて、 k ( i ) = 1を設定する。 つまり、 k ( 1 ) = 1、 k ( 2) =
1 となる。
そして、 ステップ S 5 7〜 S 6 2の処理を、 繰り返し実行する。 まず、 変換仕様 XML文書 2 2中の 「要素の並び」 の各要素を順番 に走査して (ステップ S 5 7 ) 、 ritemj 要素があると (ステップ S 5 8, Y E S) 、 この 「item」 要素の要素名の要素がキー要素である か否かを判別する (ステップ S 5 9 ) 。 つまり、 「item」 要素のタグ の属性において mtag= "—ORG" であった場合には、 その要素名の要素 がキー要素であると判定する (ステップ S 5 9, Y E S) 。 キー要素 である場合には、抽出 XML文書 2 4内の処理対象レコードにおける このキー要素を、 結果 XML文書 2 5にコピーする (ステップ S 6 0 ) 。 図 4の例では 「要素の並び」 の最初のキー要素の要素名は 「名前 J であるので、 抽出 XML文書 2 4内の処理対象レコードが A氏に関 するレコードであるとすると、 この要素名 「名前」 の要素 "く名前 > A氏く/名前 >" 力 、 そのまま、 結果 X ML文書 2 5にコピーされる 一方、 非キー要素である場合 (ステップ S 5 9 , NO) 、 つまり、 「item」 要素のタグの属性 mtagにおいて、 "—ORG" ではなく、 C S V 要素名が指定されている場合には、この C S V要素名の変換仕様 XM L文書 2 2中の出現順番 i を求め (ステップ S 6 1 ) 、 配列 contArr ay(i,k(i))に格納されているデータを、当該非キー要素の要素名と共 に、 結果 XML文書 2 5に出力する (ステップ S 6 2 ) 。
図 4では、 例えば、 「item」 要素の並びにおいて、 最初に出現する
非キー要素は、 図示の通り、 要素名が 「部署」 の要素であり、 そのタ グの属性 mtagで指定される C S V要素名は 「情報 1」 であるので、 続 いて、 「merging_tag」 要素を参照すると、 「情報 1」 の出現順番は 1番目であるので、 出現順番 i = l となる。 また、 この段階では、 k ( i = 1 ) は初期設定値 ' 1 ' であるので、 配列 ( 1, 1 ) に格納さ れているデータ、 すなわち 「A部」 力 S、 要素名 「部署」 と共に、 結果 XML文書 2 5に書き込まれることになる。 勿論、 その際、 pathを参 照する。
また、 ステップ S 6 2の処理の最後で、 k ( i ) = k ( i ) + 1 と する。 これによつて、 次に C S V要素 「情報 1」 に対応する非キー要 素が出現した場合には、 今度は、 配列 ( 1 , 2 ) に格納されているデ ータが出力されることになる。
以上の処理を、 変換仕様 XML文書 2 2中の 「要素の並び」 の全て の 「item」 要素について実行したら (ステップ S 5 8, NO) 、 当該 処理は終了する。 このとき、 上記の例では、 結果 XML文書 2 5の内 容は、 図 3の内容と同一となっている。
従来では、 変換前の元の XML文書と、 これを変換後に更に逆変換 した XML文書とを比較すると、 内容的には同一だが、 要素の並びが 変わってしまって、ユーザから見れば文書が変質したように見えてい たが、 本例の処理では、 要素の並びの順番が変わってしまうことはな く、 完全に元通りにすることができる。
以上、 定型 XML文書に対する構造変換/逆変換処理について説明 した。
以下、 非定型 XML文書に対する構造変換/逆変換処理について説 明する。
上述してある通り、 この処理には、 第 2の実施例と第 3の実施例が ある。 .
まず、 図 1 0に、 第 2、 第 3の実施例において入力 XML文書 2 1 となる非定型 XML文書の一例を示す。
図 1 0に示す通り、 非定型 XML文書は、 レコード内の要素数、 タ グ名が可変となる。
図 1 0の例では、 「名前」 をキー要素とする場合を考える。 また、 この例では、 「会社」 はキー要素と して扱ってもよいし、 非キー要素 と して扱ってもよレ、。
また、 非キー要素に関しては、 図 3では、 A氏、 B氏とも同じ要素 名、 要素数であったのに対して (勿論、 A氏、 B氏に限らず、 他のレ コードも同様) 、 図 1 0では、 非定型 XML文書であるので、 タグ名 、 要素数が異なる。 すなわち、 A氏に関する非キー要素は、 会社情報 と して要素名 "部署" 、 "住所" 、 ' "電話" 、 "email" 、 個人情報 と して要素名 "住所" 、 "電話" 、 "携帯電話" の要素がある。 一方 、 B氏に関する非キー要素は、 会社情報と して要素名 "部署" 、 "住 所" 、 "電話" 、 "email" 、 "email" 、 個人情報と して、 要素名 " 住所" 、 "電話" の要素がある。
B氏は、 A氏と比較すると、 会社情報と して "email" が 2つある 一方で、 個人情報と しての "携帯電話" がない。 つま り、 B氏は、 e mailァ ドレスを 2つ持っており、 携帯電話は持っていない為に、 この よ うな個人情報が入力されたという ことである。
尚、 この例では、 入力 XML文書 2 1において二人ともキー要素の 要素内容は記述されているが、 記述されない場合があってもよい。 以下の説明では、 第 2、 第 3の実施例とも、 上記図 1 0の非定型 X
M L文書を入力 X.M L文書 2 1 とする場合について説明する。
まず、 第 2の実施例について説明する。
図 1 1は、第 2の実施例における変換仕様 X M L文書 2 2の一例を 示す図である。
同図において、 まず、 元の文書の要素名 「会社情報/会社」 を、 任 意の別名 (この例では 「勤務先」 ) に置き換えて、 変換後の文書に出 力する為の変換仕様について説明する。 これは、 く rep l ac i ng_tag〉で 新要素名 「勤務先」 を定義し、 「要素の並び」 における要素 「会社」 の箇所で、 属性で rtag=" 勤務先" と して指定する。 この操作によつ て、 この例のように 2層の場合に限らず、 3層以上の深い階層であつ ても、 この深い階層にあ,る要素をレコード内 1階層目に上げて、応用 ソフ トで読出し易くすることができる。 また、 これは、 C S V形式で まとめる要素が 1個の特殊な場合であり、必ずしも 1個の場合と複数 個の場合とを区別する必要はないが、 区別することによって、 変換/ 逆変換の操作をし易くすることができる。
また、 図 1 0の例では、 「住所」 、 「電話」 が、 それぞれ、 2っ存 在する。 つまり、 「会社情報」 、 「個人情報」 の各々に、 「住所」 、 「電話」 が存在する。 このような場合、 要素名だけを変換 X M L文書 2 3に出力しても、 応用ソフ ト 3 0では区別が付かない。 この為、 先 出願では、 tagsを用いて、 「会社情報/住所」 、 「会社情報/電話 j 、 「個人情報/住所」 、 「個人情報/電話」 という形で出力していた力 これでは、 階層構造が深くなるほど、 冗長な記述となってしまう。 本 例では、 これに対して、 図 1 1の変換仕様 X M L文書 2 2の例のよう に、 「i t emj 要素のタグの属性と して、 name属性を与えている。 この name属性によって、 別名を指定して、 この別名を変換文書のヘッダで
付加情報と して記述するようにしている。 図 1 1の例では、 例えば、 「会社情報/住所」 は 「会社住所」 、 「個人情報/住所」 は 「自宅住所 」 という別名を与え、 図 1 2に示すヘッダの付加情報には、 この別名 が記述され、応用ソフ ト 3 0はこの別名を用いて任意の処理を行なう 。 「電話」 についても同様である。 また、 emai lについても、 最大 2 個記述されるので、 図 1 1に示す通り、 別名を与えている。
このよ うに、 非キー要素の要素内容を C S V要素に纏めたときに、 —意に指定できる要素名を変换仕様で与え、変換文書にそれを反映さ せることによって、 元文書の要素階層とは別の纏め方、別の要素名で 、 応用ソフ ト 3 0が扱うことができるようになる。 尚、 これは、 第 1 の実施例において適用してもよい。
また、 本例では、 図 1 1に示すように、 「item」 要素のタグにおい て format属性を与えている。 図示の例では 「会社情報/ emai l [0]」 、 「会社情報/ emai l [ l ]」 、 「個人情報/携帯電話」 の 「i tem」 要素に、 format=" unfi xed" の属性が付いており、 これによつて、 これらの要 素名の要素の要素内容が、入力 X M L文書 2 1において固定的な出現 をしないことを指定できる。
"固定的な出現をしない" とは、 例えば上記図 1 0には B氏が携帯 電話は持っていないので、携帯電話番号を記入しなかった場合のデー タを示している。 このように、 必ずしもその要素名の要素の要素内容 が記述されているものではないことを、 format=" unf ixed" で指定す る。
一方、 「itemj 要素において、 タグに format " unf ixed" の属性力 S 付いていない場合、 その要素名の要素は、 必ず要素内容が記述されて いる。 つまり、 一般的に、 例えば任意のホームページで任意の情報 (
ここでは、 任意のユーザの個人情報) を入力させる際、 必須入力項目 を指定 '表示し、 この必須入力項目の中の 1つでも入力していない状 態で 「登録」 等を行なおう とすると、 エラーとすることが行なわれて いる。 上記 format=" unf i xed" の属性が付いていない要素は、 例えば この必須入力項目に対応するものと考えてよい。 format=" unf i xed " の属性は、 キー要素、 非キー要素の両方に指定可能である。
但し、 固定的な出現をしない場合でも、 format=" unf ixed" の属性 は、 必ず指定しなけらばならないとは限らない。 この場合、 後述する 図 1 4のステップ S 1 0 0、 S 1 0 4の処理における 「非定型要素且 つ」 の条件が無くなる。 但し、 この場合、 format=" unf ixed" の属性 が指定されていないにも係わらず、 その要素が存在しない場合に、 ェ ラーとする処理等が行なえなくなる。
図 1 2は、 図 1 0の非定型 X M L文書を、 図 1 1に変換仕様 X M L 文書 2 2を用いて構造変換して成る変換 X M L文書 2 3の一例を示 す図である。
また、 図 1 3は、 第 2の実施例における構造変換処理における 「レ コード内の要素の処理」 の詳細フローチャート図である。 すなわち、 第 2の実施例においても、構造変換処理全体の処理の流れは、 第 1の 実施例と略同様であるので、 全体処理については図 6、 図 7で説明し てあるので省略する。 そして、 ステップ S 1 7またはステップ S 2 8 の処理内容は、 第 1の実施例とは異なるので、 その詳細について、 図 1 3に示して説明する。 尚、 図 1 2には、 付加情報を付ける処理を行 なった場合の変換結果を示している。
伹し、 図 7の処理、 すなわち付加情報を付ける処理を行なう場合に は、 更に、 ステップ S 2 3の処理内容が多少異なる。 すなわち、 第 2
の実施例では、 図 1 1に示す通り、 変換文書のヘッダの付加情報で与 える非キー要素の要素名の別名を、 name属性で与えているので、 ステ ップ S 2 3の処理は、 name属性で指定されている別名を、 変換 XML 文書 2 3に付加情報と して出力する処理となる。 例えば、 図 1 1にお いて非キー要素 「会社情報/住所」 について、 name属性で 「会社住所 」 が指定されているので、 図 1 2に示す通り、 C S V要素名 「場所」 において 「会社住所」 が記述される。 他の非キー要素についても'同様 である。 また、 図 1 2には、 図 7のステップ S 2 4の処理によって、 ルート要素 「名簿」 と、 その属性に変換文書名が記述されている。 尚 、 ここでは、 図 1 1の変換仕様 XM L文書 2 2のファイル名が spec2
. xmlであったものとする。
このよ うに、 ルート要素とヘッダが記述された状態で、 図 1 3の処 理によって、 図 1 2の個人タグ内の各種情報が記述される。
図 1 3において、 まず、 ステップ S 7 1〜 S 7 5の処理、 すなわち 変換仕様 XML文書 2 2を参照して、 キー要素を全て探し出して、 そ の要素名と要素内容を変換 XML文書 2 3にコピーする処理は、基本 的には、 図 8のステップ S 3 1〜S 3 4の処理と略同様である。 伹し 、 第 2の実施例は、 入力文書が非定型 XML文書であり、 非キー要素 だけでなく、 キー要素も固定的な出現をしない場合がある。 これに対 応して、 ステップ S 7 3の処理を行なっている。
ステップ S 7 3の処理では、 ステップ S 7 2において見つけた、 キ 一要素に関する 「item」 要素のタグに、 format=" unfixed" の属性が 付いており、且つ入力 XML文書 2 1においてこのキー要素が記述さ れていない場合には (ステップ S 7 3, Y E S) 、 このキー要素はコ ピーしないようにする。
図 1 0、 図 1 1の例には、 ステップ S 7 3の判定が Y E Sとなる例 は存在しないが、 例えば仮に、 図 1 1において、 キー要素 「名前」 に 関する 「item」 要素のタグに、 format=" unfixed" の属性が付いてお り、 且つ図 1 0において 「名前」 要素が記述されていなかった場合に は、 図 1 2におけるく名前〉 A氏く/名前 >の部分は、 記述されてい ないことになる。
また、 図 1 3において、 ステップ S 7 6〜S 8 1の処理、 すなわち 、 変換仕様 XM L文書 2 2を参照して、 各 C S V要素毎.に、 その C S V要素に該当する要素を検索して求め、該当する要素の要素内容を C S V形式で繋いで変換 XML文書 2 3に出力する処理は、基本的には 、 図 8のステップ S 3 5〜S 4 0の処理と略同様である。 但し、 第 2 の実施例は、 入力文書が非定型 XML文書であり、 上記の通り、 非キ 一要素が、 固定的な出現をしない場合がある。 これに対して、 本例で は、 もし、 ある非キー要素の要素内容が存在しない場合には、 ステツ プ S 8 0の処理において、 空要素を繋ぐようにしている。
例えば、 A氏のレコードを処理対象と したときのステップ S 7 8, S 7 9の処理において、 C S V要素名 「連絡」 に該当する非キー要素 と して、 変換仕様 XML文書 2 2の 「item」 要素中に、 「会社情報/ emailtl] J に関する 「item」 要素を見つけたとき (ステップ S 7 9, Y E S) 、 この非キー要素 「会社情報/ email[l]」 は、 図 1 0に示す 通り、 記述されていないので、 この場合にはステップ S 8 0の処理に おいて空要素を繋ぐ。 これによつて、 図 1 2に示す C S V要素名 「連 絡」 の要素内容は、
く連絡〉 123, abc@f j. jp,, 456, 789く/連絡〉
となる。 つまり、 新要素名 「会社 emaillj の要素内容である 「abc@f
j. jpj と、 新要素名 「個人電話」 の要素内容である 「456」 の間は、 空要素 「 , , 」 で繋がれている。
また、 図 1 3には示していないが、 変換仕様 XML文書 2 2中の 「 要素の並び」 における任意の 「item」 要素において、 そのタグの属性 で rtagが指定されている場合には、 その要素名を、 く replacing_tag〉 で定義されている新要素名に置き換えて、変換 XML文書 2 3に出力 する処理を実行する。 これによつて、 図 1 2に示すように、 「会社情 報/会社」 力 S 「勤務先」 という レコード内 1階層目の要素に置き換え られている。 これは、 C S V形式でまとめる要素が 1個であるという 、 特殊な場合である。
以上の処理によって、図 1 2に示す変換 XML文書 2 3が作成され る。 図 1 2に示す通り、 この変換文書では、 元の XML文書である図 1 0の入力 XM L文書 2 1において 「会社情報」 、 「個人情報」 の下 にあった非キー要素の要素内容を、 それぞれ、 バラバラに、 C S V要 素 「場所」 、 「連絡」 に纏め直している。 "バラバラに" とは、 例え ば 「会社情報」 の下にあった非キー要素は全て C S V要素 「場所」 に 纏めるとは限らず、 一部は 「連絡」 に纏めてもよいという意味である また、 変換 XML文書 2 3には、 各 C S V要素に絡めた要素内容の 要素名を、 ヘッダの付加情報と して記述しているが、 その際に、 元の XML文書では 「会社情報」 と 「個人情報」 の下に、 それぞれ、 同名 の要素 「住所」 と 「電話」 があったが、 これらの名称が重複する要素 名に関しては、 上記の通り、 変換仕様 XML文書 2 2中の name属性に 従って、 新たな名前 「会社住所」 、 「会社電話」 、 「自宅住所」 、 「 自宅電話」 を与えている。 これは、 上記の通り、 例えば 「会社情報/
住所」 等のように XPathで与えても一意の名前になるが、 特に階層が 深い場合には冗長になる為、 別名を与えることによって、応用ソフ ト で、 これらの要素の扱いを容易にできるようになる。 また、 この例で は 「会社情報/ email」 が最大 2個記述されるものと想定している。 こ の為、 繰返し出現する 「会社情報/ email」 に対して 「会社 emaill」 「 会社 email 2」 を新たな名前と して与え、 各々がー意になるようにし ている。
次に、 以下、 第 2の実施例における逆変換処理について説明する。 第 2の実施例の逆変換処理は、 処理全体の流れは、 第 1の実施例で 説明した逆変換の全体処理と、 略同様であるので、 特に図示/説明は しない。
図 1 4は、 この逆変換の全体処理中の "レコード内の要素の処理" の詳細フローチヤ一ト図である。
図 1 4の処理において、 ステップ S 9 1〜S 9 5の処理までは、 図 9のステップ S 5 1〜ステップ S 5 5の処理と略同様であるので、説 明は省略する。 伹し、 ステップ S 9 4の処理において、 要素内容が空 要素である場合にも配列を割り当てる。 つまり、 例えば、 図 1 2の A 氏のレコードの C S V要素 「連絡」 において、 要素内容 「4 5 6」 の 前に空要素があるが、 この空要素にも配列 ( 2, 3 ) を割り当てるの で、 「 4 5 6」 は、 配列 ( 2, 4 ) に格納される。
ステップ S 9 6以降の処理について、 以下に説明する。
まず、 i = l〜nまでの各 i毎に、 k ( i ) に初期値 ' 0 ' を与え る (ステップ S 9 6 ) 。
ここで、 図 9のステップ S 5 6では初期値 ' 1 ' を与えていた力 S、 これを ' 0 ' と した理由について、 説明しておく。 これは、 k ( i )
の値を + 1インク リ メ ントする処理を、ステップ S 1 0 3の段階で行 なっている点と関連する。 これらの処理は、 内容的には、 図 9の処理 と殆ど変わらないが、 図 9ではステップ S 6 2の処理において、 配列 の格納内容を出力すると共に、 k ( i ) の値を + 1インク リ メ ン ト し ていたが、 本例のよ うに非定型 XML文書を扱う場合には、 必ずしも 配列の格納内容を出力する処理を行なう とは限らないので (つまり、 ステップ S 1 0 4の判定が Y E S となる) 、 ステップ S 1 0 4の分岐 の前の段階で、 k ( i ) の値を + 1インク リ メントする (ステップ S 1 0 3 ) 。 また、 これによつて、 配列 ( i, k ( i ) ) の格納内容を 出力する処理の前に k ( i ) の値が + 1インク リ メントされてしま う ことに対応して、 ステップ S 9 6において k ( i ) の初期値を ' 0 ' にしている。
上記ステップ S 9 6の処理後、 まず、 変換仕様 XM L文書 2 2中の 「要素の並び」 の各 「item」 要素を順番に走査して (ステップ S 9 7 ) 、 各 「item」 要素毎に (ステップ S 9 8, Y E S) 、 その 「item 」 要素で定義している要素名の要素が、 キー要素であるか否かを判定 する (ステップ S 9 9 ) 。 判定方法は、 既に説明している。
キー要素である場合には (ステップ S 9 9, YE S) 、 続いて、 当 該 「item」 要素のタグに、 format=,, unfixed" の属†生カ 付レヽてレヽて、 且つ変換対象入力文書である抽出 XM L文書 2 4内の処理対象レコ 一ド'において、 このキー要素名の要素が存在しない場合には (ステッ プ S 1 0 0 , Y E S;) 、 結果 XML文書 2 5に対して何も出力しない で、 ステップ S 9 7に戻り、 次の要素の処理に移る。 一方、 当該キー 要素に関する 「item」 要素のタグに、 format unfixed" の属性が付 いていない場合、 若しく は format=" unfixed" の属性が付いていても
抽出 XML文書 2 4に、 このキー要素名の要素が存在する場合には ( ステップ S 1 0 0, NO) 、 このキー要素の要素名を結果 XML文書 2 5にコピーすると共に、抽出 XML文書 2 4内の処理対象レコード に記述されている当該キー要素の要素内容を、結果 XML文書 2 5に コピーする (ステップ S 1 0 1 ) 。
一方、 ステップ S 9 9において、 非キー要素であると判定された場 合 (ステップ S 9 9, NO) 、 つまり、 「item」 要素のタグの属性 m tagが、 "_0RG" ではなく、 C S V要素名が記述されている場合には 、 まず、 この C S V要素名の変換仕様 XML文書 2 2中の出現順番 i を求め (ステップ S 1 0 2 ) 、 k ( i ) の値を + 1インク リメントす る (ステップ S 1 0 3 ) 。'そして、 当該キー要素に関する 「item」 要 素のタグに、 format=,, unfixed" の属个生力 寸レヽていて、 且つ酉己歹 lj con tArray(i, k(i))に何も格納されていない (空である) 場合には (ステ ップ S 1 0 4 ) 、 結果 XML文書 2 5に対して何も出力しないで、 ス テツプ S 9 7に戻り、 次の 「item」 要素の処理に移る。 要素内容は、 上記の通り "空" であるので何も出力できないが、 当該非キー要素の 要素名も出力しない。
—方、 ステップ S 1 0 4の判定が N Oの場合には、 配列 contArray (i,k(i))に格納されているデータを、当該非キー要素の要素名と共に 、 結果 XML文書 2 5に出力する (ステップ S 1 0 5 ) 。
以上の処理で、 例えば図 1 2に示す変換文書を、 図 1 0に示す元の 文書に、 戻すことができる。 これは、 順番も、 元通り に戻すことがで きる。 変換仕様 XML文書 2 2中の各 「item」 要素を、 元の XML文 書の出現順に並べており、 且つこの順番通り に処理し、 出力している からである。
尚、 図 1 4には示していないが、 変換仕様 XML文書 2 2において Γ itemj 要素のタグに属性 rtagを有する場合、 その要素名の要素は、 この属性 rtagで指定される新要素名 (図 1 1、 図 1 2の例では 「勤務 先」 ) の要素内容を、 抽出 XML文書 2 4から取得して、 この要素内 容と、 元の要素名とを、 結果 XML文書 2 5に出力する。
以上説明した第 2の実施例によれば、非定型 XML文書であっても 、 第 1の実施例と同様の効果が得られる。 更に、 上述してあるように 、 name属性による効果も得られる。
次に、 以下、 非定型 XM L文書に対する 2つ目の方法、 すなわち第 3の実施例について説明する。
第 3の実施例を説明する際の具体例は、 入力 XML文書 2 1は、 上 記図 1 0に示した例と同じであるとし、変換仕様 XML文書 2 2の具 体例を図 1 5に示し、 変換 XML文書 2 3の具体例を図 1 6に示す。 図 1 5に示す変換仕様 XML文書 2 2の例は、図 1 1に示す第 2の 実施例の場合と比較すると、変換 XML文書 2 3のヘッダの付加情報 で与える非キー要素の別名を、変換仕様 XML文書 2 2中の非キー要 素に関する各 「i1:em」 要素において、 name属性で与えるようにしてい る点は、 第 2の実施例と同じである。
第 2の実施例と異なる点は、 変換仕様 XML文書 2 2中の 「mergi ng_tag」 要素にぉレヽて、 そのタグ内に属'性と して format=,, unfixed " を付けられている場合には、 その C S V要素に含まれる全ての非キ 一要素が、 固定的な出現をしないことを指定する点である。
これに伴って、 ステップ S 2 3の処理を行なった場合には、 図 1 6 に示すように、 非定型な要素をまとめる C S V要素である 「連絡」 に は、 format=" unfixed" の属性を付けて、 C S V要素 「連絡」 内の非
キー要素が全て非定型であると見なすように指定する。
図 1 7は、 第 3の実施例における構造変換処理における 「レコード 内の要素の処理」 の詳細フローチャート図である。 すなわち、 第 3の 実施例においても、 第 2の実施例と同様に、構造変換処理全体の処理 の流れは、 第 1の実施例と略同様であるので、 全体処理については図 6、 図 7で説明してあるので省略する。 そして、 ステップ S 1 7また はステップ S 2 8の処理内容は、 第 1、 第 2の実施例とは異なるので 、 その詳細について、 図 1 7に示して説明する。 尚、 図 1 6には、 付 加情報を付ける処理を行なった場合の変換結果を示している。 また、 図 7の処理、 すなわち付加情報を付ける処理を行なう場合、 ステップ S 2 3の処理内容は、 第 2の実施例と同様である。 すなわち、 name 属性で指定されている別名を、変換 X M L文書 2 3のヘッダに付加情 報と して出力する。
図 1 7において、 ステップ S 1 1 1〜ステップ S 1 1 7の処理は、 図 1 3のステップ S 7 1〜 S 7 7の処理と同じであるので、その説明 は省略する。 また、 ステップ S 1 1 8の判定が N Oとなった場合の処 理であるステップ S 1 1 9〜 S 1 2 2の処理は、図 8のステップ S 3 7〜 S 4 ◦の処理と同じであるので、 その説明は省略する。
以下、ステップ S 1 1 8の判定が Y E Sとなった場合の処理につい て説明する。 ステップ S 1 1 8の判定が Y E Sとなる場合、 つまり処 理対象の C S V要素が非定型 C S V要素である場合とは、 「merging _tagj 要素において、 上記 「連絡」 のように、 そのタグ内に属性と し て format=" unfixed" が付されていた場合である。 .
この場合、 変換仕様 X M L文書 2 2中の 「要素の並び」 において、 非キー要素を順番に走査して、 上記非定型 C S V要素 (ここでは 「連
絡」 ) に該当する非キー要素を検索する (ステップ S 1 2 4) 。
そして、 該当する非キー要素を見つける毎に (ステップ S 1 2 5, Y E S) 、 入力 XML文書 2 1中にこの非キー要素が記述されている か否かに判定し (ステップ S 1 2 6) 、 もし記述されている場合には (ステップ S 1 2 6, Y E S) 、 この非キー要素の出現順番を C S V 形式で繋ぐと共に (ステップ S 1 2 7) 、 入力 XML文書 2 1から要 素内容を取得して、 これを C S V形式で繋ぐ (ステップ S 1 2 8 ) 、 という処理を繰り返す。
そして、 該当する非キー要素が見つからなくなったら (ステップ S 1 2 5 , NO) 、 上記非定型 C S V要素のタグ内の属性 tagsの属性値 と してステップ S 1 2 7の処理結果を置く と共に(ステップ S 1 2 9 ) 、 この tags属性を有する非定型 C S V要素のタグと共に、 ステップ S 1 2 8の処理結果を変換 XML文書 2 3に出力する。
図 1 5、 図 1 6に示す非定型 C S V要素 「連絡」 の例では、 例えば A氏に関するレコードを処理対象としたときには、図 1 5のステップ S 1 2 5において、 「連絡」 に該当する非キー要素と して、 走査順に 、 「会社情報/電話」 (出現順番 1 ) 、 「会社情報 /email [1] 」 (出 現順番 2 ) 、 「会社情報/ email [2] 」 (出現順番 3 ) 、 「個人情報/ 電話」 (出現順番 4) 、 「個人情報/携帯電話」 (出現順番 5 ) が見 つかるが、 唯一 「会社情報/ email [2] 」 (出現順番 3 ) のみは、 図 1 0の A氏のレコード内に記述されていないので、図 1 6に示すよう に、 tags属性を有する非定型 C S V要素のタグと して、
〈連絡 tags=" 1, 2, 4, 5" > く/連絡〉
その要素内容と して
123, abc@f j. jp, 456, 789
力 S、 変換 XML文書 2 3に記述される。
また、 上記の通り、 へッダの付加情報と して、 C S V要素の要素内 容に対応する要素名 (ここでは、 別名になっており、 "会社電話、 会 社 emaill、 会社 email2、 自宅電話、 携帯電話" ) 力 出現順番通りに 記述されている。
これによつて、新要素である C S V要素に纏めてある要素内容とそ の要素名との対応を取ることができる。 例えば要素内容 「 4 5 6」 に 対応する tags属性値は ' 4, であるので、 付加情報における 4番目の 要素名 「自宅電話」 に対応することが分かる。
次に、 図 1 8を参照して; 第 3の実施例における逆変換処理につい て説明する。 図 1 8は、 第 3の実施例の逆変換処理における 「レコ一 ド内の要素の処理」 の詳細フローチャー ト図である。
図 1 8におけるステップ S 1 4 1〜ステップ S 1 4 9の処理は、ス テツプ S 1 4 1〜ステップ S 1 4 4までと、 ステップ S 1 4 7、 S 1 4 8の処理は、図 9のステップ S 5 1〜ステップ S 5 6の処理と略同 様であるが、 ステップ S 1 4 5 , S 1 4 6 , S 1 4 9の処理が追加さ れている。 ステップ S 1 4 1〜ステップ S 1 4 4までと、 ステップ S 1 4 7、 S 1 4 8の処理についての説明は、 省略または簡略化する。 まず、 ステップ S 1 4 4までの処理によって、 処理対象 C S V要素 の要素内容を配列 contArray(i, j)に格納したら、 続いて、 もしこの C S V要素が非定型要素であるならば (ステップ S 1 4 5 , Y E S) 、 その属性 "tags" の値を分離して、 それぞれ、 配列 tagArray(i, j)に 格納する (ステップ S 1 4 6 ) 。
図 1 5、 図 1 6の例では、 まず、 最初に見つかる C S V要素は 「場 所」 であるが、 これは非定型 C S V要素ではないので、 ステップ S 1
4 5の判定は NOとなる。 よって、 この場合は i = l となるので、 処 理対象 C S V要素の要素内容を配列 contArray(l, j)に格納したら、そ のまま、 ステップ S 1 4 2の処理に戻る。
一方、 次の C S V要素である 「連絡」 は、 属性と して format=" un fixed" が付されているので、 非定型要素である (ステップ S 1 4 5 , Y E S) 。 よって、 この場合は、 i = 2となるので、 処理対象 C S V要素の要素内容を配列 contArray(2, j)に格納し(ステップ S 1 4 4 ) 、 更にその属性 "tags" の値を分離して、 それぞれ、 配列 tagArra y(2,j)に格納する (ステップ S 1 4 6 ) 。
以上の処理によって、 例えば A氏のレコードに関しては、 配列 con tArrayには、 ( 1, 1 ) に A部、 ( 1, 2 ) に A市 A町、 ( 1, 3 ) に A巿 B町が格納され、 ( 2, 1 ) に 1 2 3、 ( 2, 2 ) に abcOfj. jp、 ( 2, 3 ) に 4 5 6、 ( 2 , 4 ) に 7 8 9が格納される。 また、 配列 tagArrayには ( 2, 1 ) に 1、 ( 2 , 2 ) に 2、 ( 2, 3 ) に 4 、 ( 2, 4 ) に 5が格納される。
次に、 この例では、 ステップ S 1 4 7において n = 2となるので、 ステップ S 1 4 8、 S 1 4 9において、 k ( i ) 、 m ( i ) の初期値 を設定すると、 k ( 1 ) = 1、 k ( 2 ) = 1、 m ( 1 ) = 0、 m ( 2 ) = 0が設定される。
次に、 変換仕様 XML文書 2 2中の 「要素の並び」 を走査して、 j = 1、 2 , 3、 · · ■ の各 「item」 要素毎に、 ステップ S 1 5 2〜S 1 6 0の処理を実行して、 全ての 「item」 要素について処理を行なつ たら (ステップ S 1 5 1, NO) 、 当該処理は終了する。
まず、 処理対象の要素、 すなわち 「要素の並び」 の j番目の 「ite mj 要素が定義している要素名の要素が、 キー要素であるか否か判定
する (ステップ S I 5 2 ) 。 判定方法は、 既に説明してある。 キー要 素である場合には (ステップ S 1 5 2, YE S) 、 ステップ S 1 5 3 、 S 1 5 4の処理を実行する。 ステップ S 1 5 3、 S 1 5 4の処理は 、 第 2の実施例と同様、 すなわち図 1 4のステップ S 1 0 0 , S 1 0 1の処理と略同様であるので、 ここでの説明は省略する。
一方、 その 「item」 要素が定義している要素名の要素が、 非キー要 素である場合 (ステップ S 1 5 2 , NO) 、 まず、 この非キー要素に 対応する C S V要素名の変換仕様 XM L文書 2 2中での出現順番 i を求める (ステップ S 1 5 5 ) 。 続いて、 m ( i ) を + 1インク リ メ ン トする (ステップ S 1 5 6 ) 。 そして、 上記 C S V要素が非定型要 素であるか否かに応じて、ステップ S 1 5 8またはステップ S 1 5 9 の何れかに分岐する (ステップ S 1 5 7 ) 。
図 1 5に示す例では、 最初に見つかる非キー要素は 「会社情報/部 署」 であり、 これに対応する C S V要素名は 「場所」 であり、 この C S V要素 「場所」 の出現順番は ' 1 ' であるので、
m ( 1 ) = m ( 1 ) + 1 = 0 + 1 = 1
となり、 更に、 この C S V要素 「場所」 は非定型要素ではないので、 ステップ S 1 5 8の処理に移行する。 すなわち、 配列 contArray(i, k (i))に格納されているデータを、 当該非キー要素の要素名と共に、 結 果 XML文書 2 5に出力する (ステップ S 1 5 8 ) 。 この例では、 k ( 1 ) は初期値 ' 1 ' のままなので、 配列 contArray(l, k(l)) = cont Array(l, 1)に格納されている 「 部」 力 S、 当該非キー要素名 「部署」 と共に、 結果 XML文書 2 5に出力される。
そして、 k ( 1 ) の値が + 1インク リ メン トされて、 ' 2, となる 。
一方、 図 1 5の例において非キー要素 「会社情報/電話」 が処理対 象となったときには、 これに対応する C S V要素名は 「連絡」 であり 、 この C S V要素 「連絡」 の出現順番は ' 2 ' であるので、
m ( 2 ) = m ( 2 ) + 1 = 0 + 1 = 1
となり、 更に、 この C S V要素 「場所」 は非定型要素なので (ステツ プ S 1 5 7 , Y E S) 、 ステップ S 1 5 9の処理に移行する。
ステップ S 1 5 9の処理は、配列 tagArrayに格納されている要素の 順番を用いて、順番が入ってない要素は出力しないよ うにする処理で ある。 例えば、 上記 「会社情報/電話」 の例では、 m ( 2) = 1 とな つており、 酉己歹 IJ tagArray ( 2, 1 ) には ' 1 ' が格納されているので 、 ステップ S 1 5 9の判定は Y E S となり、 配列 contArray ( 2, 1 ) に格納されている 「 1 2 3」 を、 その非キー要素名 「会社情報/電 話」 と共に、 結果 XML文書 2 5に出力する。 そして、 k ( 2 ) を + 1インク リ メ ン トする。 図 1 5において次の非キー要素である 「会社 情報/ email [0] 」 も、 同様に、 ステップ S 1 5 6で m ( 2 ) = 2 と なり、 配歹 IJ tagArray ( 2 , 2 ) には ' 2 ' が格納されているので、 ス テツプ S 1 5 9の判定は Y E S となる。
一方、 次の非キー要素である 「会社情報 /email [1] 」 の場合、 ス テツプ S 1 5 6で m ( 2 ) = 3 となるが、 配列 tagArray ( 2 , 3 ) に は ' 4 ' が格納されているので、 ステップ S 1 5 9の判定は N Oとな る。 元々、 「会社情報 /email [1] 」 の情報は記述されていないので 、 上記の処理によって、 この要素は出力しないようにできる。 また、 この場合は、 ステップ S 1 6 0の処理を行なわないので、 k ( 2 ) は + 1インク リ メントされない。 よって、 「要素の並ぴ」 における次の 次の要素である 「個人情報/電話」 に関する処理では、 ステップ S 1
5 9で、 再び、 配列 tagArray ( 2, 3 ) = ' 4 ' との比較が行われる 。 このときは、 m ( 2 ) = 4 となっているので、 ステップ S 1 5 9の 判定は Y E S となる。
以上説明した非定型 X M L文書に対する 2通りの手法、すなわち第 2の実施例、 第 3の実施例を、 先出願の手法と比較した場合、 以下の 特徴がある。
まず、 先出願では、 たとえ短縮文字列を使う場合でも、 各レコード 毎に逐一短縮文字列をタグ内の属性として指定しなければならず、冗 長であると共に、短縮文字列と要素名との対応関係ファイル等を参照 しなければならない。
これに対して、 第 2の実施例では、 ヘッダに、 付加情報と して、 出 現し得る全ての要素の要素名を記述し、 各レコードにおいて、 出現し なかった要素は、 空要素と しているだけで、 要素名と要素内容との対 応関係を定義できる。
また、 第 3の実施例では、 上記付加情報を用いるが、 各レコー ドの タグ内に属性を記述しなければならない。 しかし、 この属性は、 出現 順番をそのまま記述するので、コンピュータによって自動的に属性値 を記述することができる。 一方、 先出願では、 別途、 対応関係フアイ ルを定義しなければならないので、 手間が掛かる。
また、 先出願では、 変換後の X M L文書を応用ソフ トで利用しない 場合でも、 逆変換処理を行なう際に、 変換後の X M L文書内に記述さ れた非キー要素のタグ名を切り出して、このタグ名と要素内容とから 、 非キー要素を復元していた。 一方、 第 2の実施例、 第 3の実施例で は、変換後の X M L文書内に非キー要素のタグ名が記述されていなく ても、 逆変換処理を実行できる。
また、 第 2の実施例と第 3の実施例とを比較した場合の長短は、 以 下通りである。
第 2の実施例の手法は、第 1の実施例の手法の延長線上にあると見 なすこともできる。 第 2の実施例では、 選択出現候補要素 (出現する 可能性がある要素) 全てについて C S V形式に併合■分離の操作をす るため、選択出現候補要素がいずれも頻繁に出現する場合に有効であ る。
これに対して第 3の実施例の手法は、属性値を用いて要素名と要素 内容を対応させるものであり、 方法的には複雑になるものの、 選択出 現候補要素中にめったに出現しないものが多数ある場合に有効とな る。
上述した説明では、 変換仕様 X M L文書 2 2に基づいて、 直接、 構 造変換または逆変換処理を実行する場合について説明したが、上述し てある通り、変換仕様 X M L文書 2 2に基づいて変換 X S Lシート 1 5、 逆変換 X S Lシート 1 6を作成し、 これらの X S Lシートを用い て、 構造変換または逆変換処理を実行する構成であってもよい。 この 場合でも、 実質的な処理内容は、 上述したものと同様であるが、 ここ では、 図 1 9 ( a ) 〜 ( d ) に、 第 1の実施例を例にして、 変換/逆 変換 X S Lシートを用いる場合の概略的な処理手順を示しておく も のとする。
尚、 ここでは、 第 1の実施例に対応する例のみ示すが、 第 2、 第 3 の実施例についても同様である。
まず、 図 1 9 ( a ) では、 X S L変換部 1 3は、 変換仕様 X M L文 書 2 2を読み込んで、 この記述内容から変換仕様を解析して (ステツ プ S 1 7 1 ) 、 この解析結果と変換 X S Lシート生成 X S Lシート 1
4 とを用いて、 XML文書から XML文書への変換の際にそのデータ 構造を変換する為のスタイルシー トである変換 X S Lシー ト 1 5 を 作成する (ステップ S 1 7 2 ) 。 また、 同様に、 図 1 9 ( b ) に示す ように、 X S L変換部 1 3は、 変換仕様 XML文書 2 2を読み込んで 、 この記述内容から変換仕様を解析して (ステップ S 1 8 1 ) 、 この 解析結果と、 変換 X S Lシー ト生成 X S Lシート 1 4 とを用いて、 変 換 XML文書 2 3または抽出 XML文書 2 4から元の XML文書 2 1 の文書形式に戻す為の逆変換処理に用いるスタイルシー トである 逆変換 X S Lシー ト 1 6を作成する (ステップ S 1 8 2 ) 。
図 2 0、 図 2 1 に、 それぞれ、 図 4に示す例の変換仕様 XM L文書 2 2を読み込んだ場合に生成される変換 X S Lシー ト 1 5、逆変換 X S Lシー ト 1 6の一例を示す。
そして、 変換処理を行なう場合には、 図 1 9 ( c ) に示すよ うに、 処理対象となる入力 XML文書 2 1 と これに対応する変換 X S Lシ ート 1 5のフアイル名等を指定することで (ステップ S 1 9 1 ) 、 当 該変換 X S Lシー ト 1 5を用いて、実質的に図 6のステップ S 1 3〜 S 1 8の処理 (ステップ S 1 7の処理は図 8の処理) に相当する処理 が実行されることになる (ステップ S 1 9 2 ) 。
同様に、 逆変換処理を行なう場合には、 図 1 9 ( d ) に示すよ うに 、 処理対象となる変換 XML文書 2 3 (抽出XML文書 2 4 ) とこれ に対応する逆変換 X S Lシー ト 1 6のフアイル名等を指定すること で (ステップ S 2 0 1 ) 、 当該逆変換 X S Lシー ト 1 6を用いて、 実 質的に図 6のステップ S 1 3〜 S 1 8の処理(ステップ S 1 7の処理 は図 9の処理) に相当する処理が実行されることになる (ステップ S 2 0 2 ) 。
次に、 以下、 図 2 2を参照して、 変換仕様 XML文書 2 2を作成す る手順について説明する。
図 2 2に示すように、 変換仕様 XML文書 2 2の作成手順は、 まず 、 レコー ドの要素名をく record>要素で指定する (ステップ S 2 1 1 ) 。
次に、 く items>の下のく merging_tag〉要素で、 新要素名 (C S V要素 名) を指定する (ステップ S 2 1 2 ) 。 その際、 第 3の実施例の場合 であって、 上記非定型 C S V要素を指定する場合には、 く merging_ta g〉タグに format-" unfixed" の属性を付ける。 あるいは、 第 2、 第 3 の実施例において、 1個の非キー要素をまとめる新要素を " rtag" で 指定したい場合には、 く replacing_tag〉を記述する。
次に、 各 「item」 要素を、 レコード内で要素が出現する順に列挙す る (ステップ S 2 1 3 ) 。 その際、 「itemj 要素によって定義する要 素が、
· キー要素の場合は、 属性 mtag= "_0RG" を指定する。
-非キー要素の場合は、 この要素内容を格納すべき C S V要素名を属 性 mtagで指定する。
- 1個の非キー要素をまとめる新要素を指定したい場合には、 く repl acing— 1:^>で記述した新要素名の何れかを、 属性 rtagで指定する。 ■ その要素がレコード内で階層を持つ場合には、 その階層を属性 pat hで指定する。
■応用ソフ ト 3 0中で、 非キー要素名を別名で扱いたい場合には、 属 性 nameで別名を指定する。
•第 2の実施例の場合において、 その要素の要素内容が固定的な出現 をしないことを指定したい場合には、 format=" unfixed" の属性を付
ける。
尚、 「レコード内で」 という場合には、 入力 XML文書 2 1におけ る話であるものとする。
上記のような変換仕様を用いることによって、これに基づいて作成 された変換 XM L文書 2 3は、応用ソフ ト 3 0で扱い易いものとなる 図 2 3、 図 2 4の、 応用ソフ ト 3 0の ' J Scriptプログラムの一例を 示す図である。
尚、 図 2 3、 図 2 4に示す処理内容は、 一般的且つ単純な内容であ り、 これ自体に特に意味があるわけではないが、 以下、 図 2 3、 図 2 4に示すプログラムの処理内容について概略的に説明しておく。 図 2 3、 図 2 4のプログラムは、 何れも A氏の C S V新要素 「連絡」 を読出す例であるが、 図 2 3は図 1 0に示す変換 XML文書、 図 2 4 は図 1 6に示す変換 X ML文書を処理対象と していることから、多少 、 プログラムの記述が違っている力 、 その処理の目的はほぼ同じであ るので、 以下、 図 2 4のプログラムについてのみ、 概略的に説明する
Step 1 : ヘッダの付加情報を読取り、 C S V要素に纏められた要 素名を分離し、 要素名の配列に格納する。
Step 2 : A氏の非キー要素を纏めた C S V要素 「連絡」 を読取り 、 C.S V要素に纏められた要素の名前を分離し、 要素内容の配列に格 鈉する。
Step 3 : C S V要素 「連絡」 の要素内容を読取り、 分離して配列 に格納する。
Step 4 : C S V要素 「連絡」 の属性と して、 対応する要素名の順
番を読取り、 分離して配列に格納する。
Step 5 : C S V要素 「連絡」 の要素名順番の配列から読出した順 番によって要素名配列を読出し、それを引数とする連想配列の連絡に 、 対応する C S V要素 「連絡」 の要素内容を格納する。
尚、 図 2 3には、 更に、 連想配列 assocArray [ "会社電話" ] の要 素内容を、 " 1 2 3 " 力、ら " 2 3 4 " に変更する処理が加わっている これらの例で特徴的なことは、付加情報により変換文書が自己記述 的になったため、 元文書のレコード項目が増え、 C S V要素に纏める 非キー要素が増えたと しても、要素名で要素内容をアクセスしている ため、 図 2 3、 図 2 4のプログラムはそのまま使えることである。 こ のように X M L文書の自己記述性がもたらす柔軟性を引き継ぐよう になる。
以上説明したように、 本発明は、 基本的に、 上記先出願の特徴 ·効 果に加えて、 以下に述べる特徴と備える。
( A ) 応用ソフ トが非キー要素を処理対象とする場合の扱い易さに ついて
上記のように、 先出願では、 応用ソフ トが非キー要素を処理対象と する場合が有り得ることを、 想定していない。
本発明では、 複数個の C S V要素を同一階層 (例えば、 レコード内 の第 1階層) に配置し、 各非キー要素をこれら複数の C S V要素の何 れかに割当てるようにすると共に、 その割り当て方は、 元の X M L文 書の階層構造に関係なく、 自由に割り当てることができる。 例えば用 途に応じて分類した非キー要素を、用途毎に用意された各 C S V要素 に格納することができる。 これによつて、 応用ソフ トウエアで、 想定
外に、非キー要素を用いるデータ処理を行なう必要が生じた場合でも 、 扱い易いものとなり、 更に、 非キー要素の数が非常に多くても、 C S V要素数を増やし、 1つの C S V要素に格納する非キー要素数を減 らすことにより、 必要な C S V要素のみ展開する際に、 オーバーへッ ドを減らすことができる。
( B ) 変換仕様に基づきレ コード内要素順序を保存
変換/逆変換後にレコード内の要素の順序を保存するために、 変換 仕様においてレ コード内での要素の順序を定義する。このようにする ことで、 変換後に順序が不明になっても、 逆変換時に順に並べ替えて 出力することができ、 内容だけでなく、 順番も、 元通りにすることが できる。 ·
( C ) 変換文書の自己記述性
一般的に、 X M L文書は自己記述型であることに特徴がある。 先出願では、 非定型の X M L文書に関して、 各レコード毎、 各 C S V要素毎に、 逐一、 要素名 (または短縮文字列) と要素内容との対応 関係を、 変換後の X M L文書に記述していた。 これによつて、 逆変換 処理の際に、 要素名と要素内容とを切り出して、 これらを用いて元の 非キー要素を復元していた。 また、応用ソ フ トウェアにおいて処理を 行なう際に、 要素名と要素内容との対応関係が分かる。 しかしながら 、 要素名を記述する場合は冗長となり、 冗長とならないように短縮文 字列を記述する場合には、 別途、 要素名と短縮文字列との対応関係を 参照する必要があった。
本発明では、 変換後の X M L文書において、 全てのレコードに共通 の定義と して、 各 C S V要素毎に、 その C S V要素に格納し得る全て の要素の要素名、換言すればその C S V要素に係わり レコード内に出
現する可能性のある全ての要素の要素名、を出現順に記述した付加情 報を与える。
そして、 各 C S V要素毎に、 その C S V要素に係わる要素の要素内 容を順に格納する際に、 各レコード毎に、 そのレコードにおいてどの 要素が記述されていなかったのか示すようにしている。 例えば、 その 要素が記述されていなかった場合には、 空要素と して、 この空要素を 他の要素内容と同様に C S V形式で繋ぐようにする。 あるいは、 例え ば、 C S V要素のタグの属性と して、 C S V要素内に実際に格納され た要素、すなわち実際にそのレコード内に出現した要素の当該 C S V 要素内での出現順番を、 C S V形式で繋いだものを記述する。
上記の通り、 付加情報には、 出現する可能性のある全ての要素の要 素名を、 出現順に記述している。 よって、 この順番に従って、 各要素 内容と要素名との対応関係が分かる。 また、 空要素の位置に対応する 要素名、または属性に記述されていない出現順番に対応する要素名の 要素は、 そのレコードに関しては、 変換前の X M L文書に記述されて いないことが分かる。
このよ うにすることで、応用ソフ トウェアが変換後の X M L文書を 用いた処理を実行する際、 その付加情報を参照すれば、 元文書と同様 にデータ処理ができるようになる。 また、 上記空要素を用いる方法で は、 更に、 C S V要素のタグの属性を付ける必要がなくなる。 また、 本例では、 逆変換処理の際に、 付加情報を参照する必要はない。 よつ て、 応用ソフ トウェアでの非キー要素の利用を考えない場合には、 付 加情報は特に必要ない。
E D I のデータは、 1 レコー ドで数百〜千項目あり、 項目数が多過 ぎるので D O M展開に向かない。文書要素を切り出して時系列に流す
だけの標準 A P I (S AX : Simple A P I for XML)を用いて おり、 複雑な文書操作が難しくなつている。 しかし、 数百の要素は一 つ一つの応用ソフ トでは全部の要素にアクセスすることはない。本発 明によれば、 応用ソフ トの都合に応じて、 その処理に用いる非キー要 素を含むグループ (新要素) のみを展開できるので、 オーバーヘッ ド が大きくなることを防止し、 実用的になる。 また、 要素の並び順の見 た目も保存する完全な可逆変換とすることができる。
また、 階層の深い XML文書で、 レコード内だけで頻繁に使う要素 を、 少ない非キー要素数のグループで C S V要素にまとめれば、 一階 層要素の C S V分解だけで読めるので、読出しが速くなる効果もある 。 ただし、 このやり方は、 元の XML応用ソフ トの トランスペアレン ト性を壊すことになるが、 C S Vファイルと して使っていた応用ソフ トでの使い方に近くなる。 ·
以上、 本発明の実施の形態について説明したが、 本発明は、 上述し た説明の例に限るわけではない。
例えば、 上記の例では、 非キー要素の要素名、 要素内容を、 C S V 形式で繋ぐ際、 区切り記号と してコンマを用いて繋いでいる。 これは 、 C S V (Comma Separated Values)は、 本来、 コンマを介して、 数 値や文字列を繋ぐ方法であり、 一般的には、 区切り記号はコンマに限 られる為である。
しかしながら、 本発明においては、 区切り記号は、 コンマに限らな いものとする。 区切り記号にコンマを用いた場合は、 要素内容が金額 であって、 千の位を表すコンマが数値に付けられる場合は、 むしろ、 コンマより、 " @" (アッ トマーク) や" —,, (アンダーバー) を用い ることになる。 あるいは、 めったに出現することがない 2文字の文字
列でもいい。 文字列中にある区切り記号の文字は、 実体参照のような 識別できる形に置き換えることになる。 例えば、 コンマは、 " &CMM ; " と置く。 従って、 区切り記号は、 通常の文字列に、 めったに現れな い文字/文字列であることが望ましい。
以上述べたように、 本発明においては、 コンマに限らず、 区切り記 号/記号列を介して、 数値や文字列を繋ぐ方法を、 便宜上、 C S V形 式と呼ぶことにする。
また、 本発明は、 非キー要素複数個を幾つかグループごとにまとめて 一つずつの要素にし、応用ソフ トがデータ処理する間に一括して扱え るようにする方法である。
このため、 非キー要素の要素名を C S V形式に繋いで、 新要素の要 素名に置く力 、 属性に置くかを選ぶことができる。 また、 非キー要素 の要素内容を C S V形式に繋いで、 新たな要素の属性に置く力 要素 内容に置くかを選ぶことができる。 これらは、 データ量や、 データ処 理の際に新たな要素が幾つ増えるかに関係するが、非キー要素複数個 をグループごとにひとまとめにして扱う という本発明の本質からは、 新要素の属性、 要素内容のどこに置く力 、 どの方法でも採り得る。 本発明の変換文書中で、 )変換仕様または逆変換ソフ トと、 (b) C S V要素にまとめられた要素の情報を指定した。 これらの情報は、 元の文書にはなかったものなので、変換文書中にリンクを付けて外部 ファイルと して与えてもいい。 また、 元の文書とは別の情報であるの で、 変換文書に置く ときには、 特別な名前空間(namespace)を付して 識別できるようにしてもよい。
次に、 以下、 本発明の第 4の実施例について説明する。
上述した通り、 第 2、 第 3の実施例では、 非定型の構造化文書に対
応して、 C S V要素に纏めた要素も後で応用ソフ トが使えるように、 用途ごとに複数の C S V要素を定義して要素内容を格納していた。ま た、 要素名は、 ヘッダの付加情報との対応関係を示すだけに留め、 各 レコードには要素名は入らないので、 XML文書の展開時のノード数 を減らすことができ、 メモリ使用量の削減、 展開時間の短縮は図れる 効果があった。 また、 変換仕様の XML文書に逆変換時の要素の並び 順を指定しており,変換 XML文書の要素の並び順を保存して復元で きる効果があった。
ところで、 非定型 XML文書には、 上記図 1 0に示した例のように 非定型要素がレコー ドの一部分にしか現れないタイプ以外にも、例え ば図 2 5に示す製品リ ス トの XM L文書の例のように、 レコード (部 品) の種類によってレコード項目が入れ替わるために、 非定型要素が レコー ドの大部分を占めるタイプ (表形式では表現が困難なタイプ) がある。
図 2 5に示す非定型 XM L文書の例は、 製品カタログの例であり、 <部品 >が 1つのレコードを示し、 その属性 "種類" によつてそのレ コー ド (部品) の種類を定義している。 この例では、 "C P U" 、 " ハードディスク" 、 "メモリ " の 3種類である。 そして、 部品の種類 = "C P U" に係わるレコー ド項目 (要素) のタグ名は、 商品名、 型 番、 C P U、 クロック、 キャッシュ容量である。 部品の種類 = "ハー ドディスク" に係わるレコード項目のタグ名は、 商品名、 型番、 ディ スク容量、 転送速度、 回転数である。 部品の種類 = "メモリ " に係わ るレコード項目のタグ名は、 商品名、 型番、 メモリ容量、 ベースク口 ック、 電源電圧となっている。
このよ う に、 図 2 5に示す非定型 XML文書の例では、 レコード (
部品) の種類によってレコー ド項目が大きく異なっている。 つまり、 非定型要素が大部分を占めるようになつている。
図 2 5に示す例のような非定型 XM L文書に対して上記第 2の実 施例の手法を適用した場合の変換仕様 XM L文書 2 2を図 2 6に示 し、この変換仕様 XML文書 2 2を用いて図 2 5の非定型 XML文書 を変換した結果である変換 X ML文書 2 3を図 2 7に示す。
図 2 6に示す変換仕様 XM L文書 2 2.の例では、 レコード (部品) の種類 " C P U" 、 "ハードディスク" 、 "メモリ " の全てに共通す る要素である 「商品名」 と 「型番」 はキー要素と し、 これら以外の要 素を非キー要素とすると共にその全てに format = " unfixed"の属性 を付している。 つまり、 非キー要素は、 全て非定型要素として指定さ れる。 また、 C S V要素名 (C S V要素のタグ名) を記述する 「mer ging_tagj の要素内容は、 それぞれ "C P U情報" 、 "HD情報" 、 "メモリ情報" と している。
また、 上記各非キー要素に係わる各 「item」 要素における属性 「m tagj では、 その非キー要素が関係するレコード (部品) の種類に対 応する上記 C S V要素名を指定する。 つまり、 例えば、 非キー要素 「 ディスク容量」 の場合は、 属性 「m1:ag」 で "HD情報" を指定する。
このように、 上記図 2 6の変換仕様 XML文書 2 2では、 出現可能 な全要素を抱え込むことになる。 この為、 変換/逆変換時 (図 1 3の 処理) の処理負荷が大きくなる。 つまり、 例えば種類 = "ハードディ スク " のレコ^ドに対する処理を例にすると、 このレコードに関する 非キー要素はディスク容量、 転送速度、 回転数のみであるにも係わら ず、 他の非キー要素についても処理を実行する為、 処理負荷が重くな る。 また、 その結果、 変換 X ML文書 2 3では、 図 2 7に示すように
、 他の種類、 すなわち C P U情報、 メモリ情報に係わる非キー要素は 、 全て空要素と して出力される (例えば、 < C P U情報〉, , くノ C P U情報 >) ので、 無駄に情報量が増えることになる。 つまり、 全部 が空要素の C S V要素が含まれてしまい、要素数が効果的に削減でき ない。
一方, 逆変換時 (図 1 4の処理) には, 非キー要素に関しては、 出 現可能な全要素の中から要素内容のある要素のみ出力し、空の要素内 容の要素は出力を止める処理を行う為、出現可能な全要素の要素内容 の有無の検査が必要となるので、 やはり、 処理負荷が増大する。 上記の例では、 レコードの種類は 3種類であつたが、 種類が増えれ ば増えるほど、 処理負荷は増大していく。
このようなタイプの非定型 XM L文書に対して、第 4の実施例では 、 以下に説明する 2つの手法を提案する。
まず、 第 4の実施例 ('その 1 ) について説明する。
第 4の実施例 (その 1 ) では、 主に、 変換 XM L文書に無駄な記述 、 すなわち全部が空要素の C S V要素が含まれないようにする。 第 4の実施例 (その 2 ) では、 これに加えて更に、 変換/逆変換時 の処理負荷を軽減する。
まず、 第 4の実施例 (その 1 ) について説明する。
本例では、 図 2 8に示す変換仕様 XML文書を用いる。
図 2 8に示す変換仕様 XM L文書を、 図 2 6 と比較すると、 その違 ヽ【ま、 「 merging一 tag」 要素 ίこお!/、て format:" unfixed" の属个生を付 している点である。
X S L変換部 1 3がこの変換仕様 XM L文書を用いて作成する変 換 X S Lシート 1 5の一例を図 2 9、 図 3 0に示す。 また、 本例によ
る変換 XM L文書 2 3の一例を図 3 1に示す。
尚、 図 2 9、 図 3 0は、 1つの変換 X S Lシートを 2つに分けて示 しているだけであり、 変換 X S Lシートの前半部分を図 2 9に、 後半 部分を図 3 0に示している。
図 2 8に示す変換仕様 XM L文書を用いて変換処理を行った場合、 基本的には第 2の実施例と略同様の処理を行うことになるが、図 1 3 のステップ S 8 1の処理が異なる。 すなわち、 上記の通り、 図 2 8に 示す変換仕様 XML文書では、 「merging_tag」 要素に format=" unf ixed" の属性を付してある。 既に説明してあるように、 例えばステツ プ S 7 3の処理では、 キー要素に関する 「item」 要素のタグに、 for mat=" unfixed" の属性が付いており、 且つ入力 XML文書 2 1にお いてこのキー要素が記述されていない場合には、このキー要素はコピ 一して出力する処理は行わないようにする。 本例では、 これと同様に 、 ステップ S 8 1 (こおレヽて、 「merging_tag」 要素(こ f ormat=" unfix ed" の属性を付してあり、 且つステップ S 8 0の処理結果 (要素内容 を C S V形式で繋ぐ) が全て空要素であった場合には、 ステップ S 8 1の処理を行わないようにする。 つまり、 ステップ S 7 8〜S 8 0の 処理、 すなわち要素内容を C S V形式で繋ぐ処理は行うものの、 これ を変換 XML文書に出力しないようにする。
変換 X S Lシートでは、 図 3 0における i f t e s t文、 例えば <xsl: if test= "not ($cnt01=$emp0l) " >
が、 この処理に相当する。
これによつて、 変換 X ML文書は、 図 3 1に示すように、 無駄な記 述、 すなわち全部が空要素の C S V要素が含まれないようになる。
しかしながら、 この方法では、 上記の通り、 変換 XML文書に出力
しないものであっても、一旦要素内容を C S V形式で繋いだ後で要素 内容が全て空かどうかのチェックする処理を行うので、無駄な処'理が 発生する。 つまり、 上記処理負荷が増大するという問題が十分に解消 されていない。
これは逆変換についても同様である。 図 3 2、 図 3 3に逆変換 X S Lシー トの例を示す。 尚、 図 3 2、 図 3 3は、 1 つの変換 X S Lシー トを 2つに分けて示しているだけであり、逆変換 X S Lシートの.前半 部分を図 3 2に、 後半部分を図 3 3に示している。
図 3 2は、 レコー ド部分以外の処理であるので、 特に説明しない。 図 3 3に示す通り、 逆変換時においては、 各 C S V要素毎に C S V 形式で纏めた各非キー要素内容を、 く variable>によって変数 "var0101 " 〜 "var0303" に代入する。 その際、 要素内容が存在しない (空要 素) ものについては NU L Lが入る。
例えば、図 2 7の文書が逆変換処理対象である場合であって最初の レコー ド (種類 = "C P U" ) に対する処理を行う場合には、 例えば "var0101" には 「Pentium 3, 700MHz, 256MB」 が代入され、 "varO 102" には 「700MHz, 256MB」 が代入され、 "var0103" には 「256MB J が代入されるが、 "var0201" 〜 "var0303" には NU L Lが入るこ とになる。
そして、 i f t e s t文によって、 各非キー要素毎に、 その有無 をチェック して出力するか否かを決める。
上記の例では、 まず、 く GPU>に関しては、
IT test二" substring - before($var010Ί , , )"
によって、 "var0101" に代入されている 「Pentium 3, 700MHz, 25 6MB」 において最初のカンマ (, ) の前には Pentium 3がある、 つま
り NU L L (空要素) ではないので、 Pentium 3が出力されることに なる。
くクロ ック〉に関しても、 同様に、 "var0102" に代入されている 「7 00MHz, 256MB」 において最初のカンマ (, ) の前にある 700MHzが出 力されることになる。
くキャッシュ容量〉に関しては、 "var0103" には 「256MB」 が代入 されているので、 これを出力することになる。
一方、 くディスク容量〉〜く電源電圧〉については、 変数 "var0201" 〜 "var0303" には N U L Lが代入されているので、 出力しないこと になる。
尚、 if test, substring— before等は、 XSLTにおいて一般的に知られて いるものであり、 後にまとめて簡単に説明してある。
上記のよ うな処理を行う為、該当するレコード種類以外のレコード 項目は無駄にチェックを行う必要があり、処理の高速化を図ることは できない。
これに対して、 第 4の実施例 (その 2 ) では、 例えば図 3 4に示す '変換仕様 XM L文書では、レコー ドの種類ごとに入れ替わるレコー ド 項目 (要素) をそれぞれ分けて並べると ともに、 切り替わる条件を付 けることによって、 変換/逆変換時にその条件によって要素並びを切 り替えることで、非定型要素の無駄な有無チェックを除く ものである つまり、 図 3 4に示す変換仕様 XM L文書 4 0では、 レコー ドの種 類ごとに出現する要素を分けて指定するよ うにしており、 レコー ド種 類ごとのレコー ド項目のリ ス トく items>は "when"属性の条件付で切り 替えるよ うにしている。 "when"属性の属性値は、 そのまま変換/逆変
換用 X S Lシートに記述される切り替え条件と して利用される。この ため、 この属性値は X S Lシー トの条件式に則って記述される。 つま り、 変換/逆変換用 X S Lシー トのプログラム言語の表記法に合わせ て、変換仕様 XML文書 4 0における切り替え条件を記述することに なる。
逆に、 この属性値がそのまま変換/逆変換用 X S Lシー トに反映さ れるので、 複数個の要素内容、 属性値の AND、 ORを取った複雑な条件 指定も可能となる。
図 3 4に示す変換仕様 XM L文書を用いて変換 Z逆変換処理を行 う と、 全体の処理フローは図 6又は図 7 と同じであるが、 そのステツ プ S 1 7又はステップ S 2 8の処理の詳細は、 図 3 5の処理となり、 更に図 3 5のステップ S 3 0 2の詳細フローを図 3 6〜図 3 9に示 す。 変換処理は、 図 3 6又は図 3 7、 逆変換処理は図 3 8又は図 3 9 を行う。
図 3 6〜図 3 9の処理は、 図 8、 図 1 3、 図 9、 図 1 4の処理とほ ぼ同じであるが、 異なる点は、 "変換仕様中の" 力 S "レコード項目 リ ス ト中の" に代わっている点である。 つまり、 図 3 5のステップ S 3 0 1の処理によって、変換仕様 XML文書 4 0中の各レコー ド項目 リ ス ト 4 1、 4 2、 4 3の中から、 処理対象のレコードに該当するレコ ード項目 リス トが選択されるので、 ステップ S 3 0 2の処理では、 変 換仕様 XML文書 4 0の全てを用いることなく、選択されたレコード 項目 リス トのみを用いるので、 "変換仕様中の" 力 S "レコード項目 リ ス ト中の" に代わることになる。
例えば、 処理対象が図 2 5の X M L文書中の部品種類が "ハ一ドデ イスク" のレコードである場合には、 ステップ S 3 0 1 において変換
仕様 XML文書 4 0中のレコー ド項目 リ ス ト 4 2が選択されること になる。 よって、 選択されたレコー ド項目リ ス ト 4 2についてのみ図 8、 図 1 3、 図 9、 図 1 4の処理を行うこと、 すなわち図 3 6〜図 3 9の処理を行うことにより、処理対象のレコードには関係のない要素 についてまで無駄な処理を行う、 ということが無くなり、 処理効率が 向上し、 処理負担が軽減される。
尚、 図 8、 図 9は、 第 1の実施例、 すなわち定型 XML文書に係わ る処理であるが、 本例では選択したレコード項目 リス ト 4 2内には f ormat=" unfixed" となる要素、 つまり "固定的な出現をしない" 要 素は存在しないので、第 1の実施例の処理を流用しても構わないこと になる。 但し、 これは一例であり、 選択したレコー ド項目 リ ス ト 4 2 内に format = " unfixed" となる要素が存在する構成であってもよレヽ。 この場合、 変換 XM L文書には、 第 2の実施例のように空要素を出力 してもよいし、第 3の実施例のように属性に出願順番を記述する出力 形式であってもよい。
また、 当然、 X S L変換部 1 3が、 図 3 4に示す変換仕様 XML文 書に基づいて、 図 4 0 ( a ) のステップ S 3 9 1、 S 3 9 2、 図 4 0 ( b ) のステップ S 4 0 1、 S 4 0 2の処理によって、 変換 X S Lシ ート 1 5、 逆変換 X S Lシート 1 6を作成し、 これらを用いて、 変換 /逆変換処理を実行するようにしてもよい。
X S L変換部 1 3による処理は、基本的には X S Lの仕様に合わせ て置き換えを行うだけであるので特に説明しないが、例えば変換 X S Lシート 1 5生成処理は、 図 3 4、 図 4 1に示す例では、 図 3 4の変 换仕様 XML文書において items要素が出てく る毎に、 その when属性 の内容 (最初のレコードでは "@種類 = ' C P U' " を、 そのまま、
<xsl :when test=に当て嵌めればよい。 item要素において属性 mtagで
"_0RG" が指定されているものは、 その要素内容を、 く xsl:coPy - of select =に当て嵌めればよい。 item要素において属性 mtagで C S V要 素名が指定されているものは、 その要素内容を、 concatによって連結 すればよレ、。
図 4 2に示す逆変換 X S Lシートについても、 同様であり、 varia ble、 copy- of、 value- of等の予め用意されているテンプレー トに対し て、 変換仕様 XM L文書の nierging_tag要素、 item要素の属性 ( "― 0 RG" や C S V要素名) に応じて、 その要素内容 (C P U情報、 商品名 、 型番、 C P U、 クロ ック、 キャッシュ容量等) を当て嵌めていけば よい。 勿論、 variable文、 copy- of文の数は、 それぞれ、 変換仕様' X ML文書にある非キー要素、 キー要素の数に応じたものとする。
そして、 変換時には、 図 4 0 ( c ) に示すよ うに、 処理対象となる 入力 XM L文書 2 1 とこれに対応する変換 X S Lシー ト 1 5のファ ィル名等を指定することで (ステップ S 4 1 1 ) 、 当該変換 X S Lシ ー ト 1 5を用いて、 実質的に図 7のステップ S 2 3〜 S 2 9の処理 ( ステップ S 2 8の処理は図 3 5 と更に図 3 6又は図 3 7の処理)に相 当する処理が実行されることになる (ステップ S 4 1 2 ) 。
同様に、 逆変換処理を行なう場合には、 図 4 0 ( d ) に示すよ うに 、 処理対象となる変換 X M L文書 2 3 (抽出):^]^文書 2 4 ) とこれ に対応する逆変換 X S Lシー ト 1 6のファイル名等を指定すること で (ステップ S 4 2 1 ) 、 当該逆変換 X S Lシー ト 1 6を用いて、 実 質的に図 6のステップ S 1 3〜 S 1 8の処理(ステップ S 1 7の処理 は図 3 5 と更に図 3 8又は図 3 9の処理)に相当する処理が実行され ることになる (ステップ S 4 2 2 ) 。
図 4 0 ( a ) 、 ( b ) の処理によって作成される変換 X S Lシート 1 5、 逆変換 X S Lシート 1 6の一例を図 4 1、 図 4 2に示す。 尚、 図 4 1においてはその前半部分は図 2 9 と同じであるので省略して 示している。 同様に、 図 4 2においてはその前半部分は図 3 2 と同じ であるので省略して示している。
図 4 1、 図 4 2では、 図 3 4の変換仕様 XM L文書中のく items>で 示したレコード種類ごとの要素並びが、 く choose> -く when><otherwise> の条件によって切り替えられる形式となる。 く choose>、 く when>、 <ot herwise>については X S L Tスタイルシートのプログラムと してよ く知られているので、 ここでは特に詳細には説明しないが、 簡単に説 明するならば、く choose>は X S L Tにおいて複数の条件を選択して処 理する為に用いられるものであり、 く choose〉I¾:においてく when>¾i^、 須、 〈otherwise ま任意の要素である。 X S L Tプロセッサは、 xsl:wh enを順番に評価していき、 xsl:whenの test属性の値が真となる最初の x sl:when要素のテンプレー トのみを処理する。 もし該当する xshwhen要 素が 1つもない場合には、 xsl:otherwise要素のテンプレートを処理す るが、 これは上記の通り必須要素ではないので、 無くても構わなレ、。 他の X S L Tプログラム関数についても、 同様に、 よく知られてい るので、 ここでは特に詳細には説明しないが、 簡単に説明するならば 、 く value - of select>によって指定したタグ名の要素の要素内容を X M L文書から取り出すことができる。 また、 く variable は変数の定義を 行う。 変数の値を参照するときは、 変数名の頭に " $ " を付ける。 く concat>は文字列を繋げて 1つの文字列を作るものと して知られてい る。 く copy - of select>は、 く value - of select>力《指定されたノードの値 を文字列と して出力するのに対して、ノードを子要素も含めてそのま
まコピーして出力する。 く if test>を用いると、 単純な if-then (〜に 該当すれば〜を実行する) 型の条件処理を行う。文字列の中で特定の 文字以降を抜き出すためにはく substring- after>を使用する。 文字列の 中で特定の文字より前を抜き出すためにはく substring- before>を使用 する。 "@" は属性、 "@ *" は全ての属性を意味する。
図 4 1、 図 4 2において、 上記の通り、 切り替え条件であるく when >の test属性値の評価式 (例えば "@種類 = ' C P U ' " 等) は、 変 換仕様 XML文書中で指定したく items>の when属性値の評価式を、 そ のまま使う。 これによつて, 複数個の要素/要素内容/属性/属性値の AND/O R等の複雑な条件指定が可能になる。
最後に、図 3 4の変換仕様 XM L文書の作成フローを図 4 3に示す 図 4 3において、 まず、 レコー ドの要素名をく record〉要素で指定す る (ステップ S 4 3 1 ) 。 次に、 全てのレコード項目 リス トを記述す るまで (ステップ S 4 3 2 ) 、 ステップ S 4 3 3〜 S 4 3 5の処理を 繰り返し実行する。
すなわち、 まず、 レコード要素リ ス トの条件を指定する (ステップ S 4 3 3 ) 。 これは、 レコード項目 リス ト要素く item>を記し、 そのレ コー ド項目 リ ス トの条件を、 く items>の属性 whenに、 X S L表記で記 述する。
次に、 C S V要素の指定を行う (ステップ S 4 3 4 ) 。 これは、 く items>の下のく merging_tag〉要素によって C S V要素名を指定する。 その際、 format=" unfixed" の属性を付ける。
最後に、 レコード項目の指定を行う (ステップ S 4 3 5 ) 。 これは 、 く merging— tag〉の次にく item〉要素を並べ、 レコード内の要素力 s出現
する順にレコード内要素の要素名を列挙する。属性を対象とする場合 は、 く item>の要素内容として属性を識別する "@" に続けて属性名を 指定する。 キー要素の場合は、 属性 mtag= "—ORG" を指定する。 非キ 一要素の場合、 属性 ratagで何れかの C S V要素名を指定する。 各要素 が非定型ならば、 属性 format= "unfixed" で指定する。 その要素が レコード内で階層を持つ場合は、 その階層を属性 pathで指定する。 図 4 4は、本実施の形態による構造化文書変換方法を実現するコン ピュータのハードウエア構成の一例を示す図である。
同図に示すコンピュータ 1 0 0は、 C P U 1 0 1、 メモリ 1 0 2、 入力装置 1 0 3、 出力装置 1 0 4、 外部記憶装置 1 0 5、 媒体駆動装 置 1 0 6、 ネッ トワーク接続装置 1 0 7等を有し、 これらがバス 1 0 8に接続された構成となっている。 同図に示す構成は一例であり、 こ れに限るものではない。
C P U 1 0 1は、当該コンピュータ 1 0 0全体を制御する中央処理 装置である。
メモリ 1 0 2は、 プログラム実行、 データ更新等の際に、 外部記憶 装置 1 0 5 (あるいは可搬型記録媒体 1 0 9 ) に記憶されているプロ グラムあるいはデータを一時的に格納する R AM等のメモリ である。 C P U 1 0 1は、メモリ 1 0 2に読み出したプログラム/データを用 いて、 上述してある各種処理、 機能 (図 6〜図 9、 図 1 3〜図 1 4、 図 1 7〜図 1 9等に示す処理等や、 図 2に示す各機能部の機能) を実 現する。 尚、 データとは、 上記各種 XML文書、 X S Lシート等であ る。
入力装置 1 0 3は、 例えばキーボード、 マウス、 タツチパネル等で ある。
出力装置 1 0 4は、 例えばディスプレイ、 プリ ンタ等である。
外部記憶装置 1 0 5は、 例えば磁気ディスク装置、 光ディスク装置
、 光磁気ディスク装置等であり、 上記本発明の各種機能を実現させる 為のプログラム/データ等が格納されている。
媒体駆動装置 1 0 6は、可搬型記録媒体 1 0 9に記憶されているプ ログラム/データ等を読み出す。 可搬型記録媒体 1 0 9は、 例えば、
F D (フレキシブルディスク) 、 CD_R OM、 その他、 DVD、 光 磁気ディスク等である。
ネッ トワーク接続.装置 1 0 7は、 ネッ トワークに接続して、 外部の 情報処理装置とプログラム Zデータ等の送受信を可能にする構成で める。
図 4 5は、 上記プログラム等を記録した記録媒体、 ダウンロードの 一例を示す図である。
図示のよ うに、上記本発明の機能を実現するプログラム/データが 記憶されている可搬型記録媒体 1 0 9から情報処理装置 1 0 0側に 読み出して、 メモリ 1 0 2に格納し実行するものであってもよいし、 また、 上記プログラム/データは、 ネッ トワーク接続装置 1 0 7によ り接続しているネッ トワーク (インターネッ ト等) を介して、 外部の サーバ 1 1 0の記憶部 1 1 1 に記憶されているプログラム/データ をダウンロードするものであってもよレヽ。
また、 本発明は、 装置/方法に限らず、 上記プログラム/データを 格納した記録媒体 (可搬型記録媒体 1 0 9等) 自体と して構成するこ ともできる し、 上記プログラム自体と して構成することもできる。 産業上の利用の可能性
以上、 詳細に説明したよ うに、 本発明の構造化文書変換/逆変換方 法、 そのシステム/装置、 プログラム等によれば、 レコード内の要素 を、 応用ソフ トで扱うキー要素と、 それ以外の非キー要素に分けて、 キー要素はそのままと し、非キー要素は c S V形式で繋ぐよ うに変換 することで、変換後の X M L文書を既存の応用ソフ トで利用可能とす ると共に、.汎用の方法と してデータ処理のメモリ使用量、 処理時間を 削減することができると共に、 更に、 応用ソフ トで非キー要素を扱う 事態が生じた場合でもオーバー ッ ドが大きく なることなく、あるい は逆変換結果が元の X M L文書の要素の並びの順となり、あるいは非 定型文書においてレコード数が多い場合、非キー要素の要素数が多い 場合でも、 冗長になることなく、 変換後でも自己記述性を維持できる よ うになる。
Claims
1 . 定型の構造化文書に対応して、 変換後の構造化文書における 新要素を複数定義し、 変換対象の構造化文書内の各要素について、 レ コード内で出現する順に、データ処理の対象となるキ 要素であるか 否かを指定すると共に、該キ一要素以外の要素である各非キー要素を 、前記複数の新要素の何れに割り当てるかを定義した変換仕様定義手 段と、
該変換仕様定義手段によつて定義される変換仕様に基づいて前記 変換対象の構造化文書から変換後の構造化文書を作成するために、該 変換対象の構造化文書内の各要素を、前記レコード内で出現する順に 、 前記キー要素はそのまま変換後の構造化文書に記述し、 前記各非キ 一要素に関しては、 その要素内容を、 該当する前記新要素毎に C S V 形式でまとめたものを各新要素の要素内容と して変換後の構造化文 書に記述する構造変換手段と、
を有することを特徴とする構造化文書の構造変換装置。
2 . 前記変換仕様定義手段で定義される変換仕様に基づいて前記 変換後の構造化文書を元の構造化文書に戻すために、該変換仕様定義 手段において前記出現順に定義されている各要素について、 順次、 そ の要素に該当する新要素を求め、該新要素について前記 C S V形式で まとめた各要素内容の中から、その順番に応じて該要素に対応する要 素内容を求めて前記元の構造化文書に記述する逆変換手段、
を更に有することを特徴とする請求項 1記載の構造化文書の構造 変換装置。
3 . 前記構造変換手段は、 更に、 前記新要素毎に、 前記 C S V形
式でまとめた各要素内容に対応する要素名を、 C S V形式でまとめた ものを、付加情報と して変換後の構造化文書に記述することを特徴と する請求項 1記載の構造化文書の構造変換装置。
4 . 非定型の構造化文書に対応して、 変換後の構造化文書におけ る新要素を複数定義し、変換対象の構造化文書内に出現し得る全ての 要素について、 全て出現する場合の出現順に、 データ処理の対象とな るキー要素であるか否かを指定すると共に、該キ一要素以外の要素で ある非キー要素を、該複数の新要素の何れに割り当てるかを定義した 変換仕様定義手段と、 .
該変換仕様定義手段によつて定義される変換仕様に基づいて前記 変換対象の構造化文書から変換後の構造化文書を作成するために、該 変換対象の構造化文書内の各要素を、前記レコード内で出現する順に 、 前記キー要素はそのまま変換後の構造化文書に記述し、 前記各非キ 一要素に関しては、前記変換対象の構造化文書に出現する要素はその 要素内容を、前記変換対象の構造化文書に出現しない要素の要素内容 は空要素と して、該当する前記新要素毎に C S V形式でまとめたもの を各新要素の要素内容と して変換後の構造化文書に記述する構造変 換手段と、
を有することを特徴とする構造化文書の構造変換装置。
5 . 前記変換仕様定義手段で定義される変換仕様に基づいて前記 変換後の構造化文書を元の構造化文書に戻すために、該変換仕様定義 手段において前記出現順に定義されている各要素について、 順次、 そ の要素に該当する新要素を求め、該新要素について前記 C S V形式で まとめた各要素内容の中から、その順番に応じて該要素に対応する要 素内容を求めて前記元の構造化文書に記述する際に、該要素内容が前
記空要素である要素は記述しない逆変換手段、
を更に有することを特徴とする請求項 4記載の構造化文書の構造 変換装置。
6 . 変換仕様定義手段は、 更に、 前記各要素毎に、 前記変換対象 の構造化文書内で必ず出現するとは限らない要素である非定型要素 であるか否かを指定し、
前記キー要素は、該非定型要素であって且つ前記変換対象の構造化 文書内に記述されていない場合には、変換後の構造化文書に何も記述 しないこと.を特徴とする請求項 4記載の構造化文書の構造変換装置。
7 . 非定型の構造化文書に対応して、 変換後の構造化文書におけ る新要素を複数定義すると共に、該各新要素毎にその新要素が非定型 要素であるか否かを指定し、変換対象の構造化文書内の各要素につい て、 該構造化文書内に出現し得る全ての要素について、 全て出現する 場合の出現順に、データ処理の対象となるキー要素であるか否かを指 定すると共に、 該キ一要素以外の要素である非キー要素を、 前記複数 の新要素の何れに割り当てるかを定義する変換仕様定義手段と、 該変換仕様定義手段によって定義される変換仕様に基づいて前記 変換対象の構造化文書から変換後の構造化文書を作成するために、該 変換対象の構造化文書内の各要素を、前記レコード内で出現する順に 、 前記キー要素はそのまま変換後の構造化文書に記述し、 前記各非キ 一要素に関しては、 前記新要素毎に、 該新要素が前記非定型要素では ない場合には出現した要素の要素内容を出現順に C S V形式でまと めたものを該新要素の要素内容と して変換後の構造化文書に記述し、 該新要素が前記非定型要素である場合には、出現した要素の要素内容 を出現順に C S V形式でまとめたものを該新要素の要素内容とする
と共に該出現順番を C S V形式でまとめたものを該新要素のタグの 属性値と して変換後の構造化文書に記述する構造変換手段と、
を有することを特徴とする構造化文書の構造変換装置。
8 . 前記変換仕様定義手段で定義される変換仕様に基づいて前記 変換後の構造化文書から任意の構造化文書に変換するために、該変換 仕様定義手段における前記出現順に各要素について、該要素に該当す る新要素を求め、該新要素が前記非定型要素である場合には、 該新要 素の前記属性値と して該要素の出現順番が記述されている場合に、該 要素に対応する要素内容を前記元の構造化文書に記述する逆変換手 段、
を更に有することを特徴とする請求項 7記載の構造化文書の構造 変換装置。
9 . 前記構造変換手段は、 更に、 前記新要素毎に、 その新要素内 に要素内容を記述し得る全ての要素の要素名を C S V形式でまとめ たものを、付加情報と して変換後の構造化文書に記述することを特徴 とする請求項 4または 8記載の構造化文書の構造変換装置。
1 0 . 前記変換仕様定義手段は、 更に、 変換対象の構造化文書に おける任意の階層の任意の要素名に関して、該階層の指定まで含めた 要素名に対応付けた別名を与える定義を行い、
前記構造変換手段は、前記付加情報として記述する要素名を該別名 とすることを特徴とする請求項 9記載の構造化文書の構造変換装置。
1 1 . 前記変換仕様定義手段によって定義される変換仕様を反映 した変換用スタィルシートを生成し、
前記構造変換手段は、該変換用スタイルシートを用いて前記変換を 実行することを特徴とする請求項 1〜 1 0の何れかに記載の構造化
文書の構造変換装置。
1 2 . 前記変換仕様定義手段によって定義される変換仕様を逆に反 映した逆変換用スタイルシートを生成し、
前記逆変換手段は、該逆変換用スタイルシートを用いて前記逆変換 を実行することを特徴とする請求項 2, 5, 8の何れかに記載の構造 化文書の構造変換装置。
1 3 . 定型の構造化文書に対応して、 変換後の構造化文書におけ る新要素を複数定義し、該変換対象の構造化文書内の各要素について 、 レコ一ド内で出現する順に、 データ処理の対象となるキー要素であ るか否かを指定すると共に、該キ一要素以外の要素である各非キー要 素を、前記複数の新要素の何れに割り当てるかを定義した変換仕様定 義文書に基づいて、
変換対象の構造化文書から変換後の構造化文書を作成するために、 該変換対象の構造化文書内の各要素を、前記レコード内で出現する順 に、
前記キー要素はそのまま変換後の構造化文書に記述するステップ と、
前記各非キー要素に関しては、 その要素内容を、該当する前記新要 素毎に C S V形式でまとめたものを各新要素の要素内容と して変換 後の構造化文書に記述するステップと、
を有することを特徴とする構造化文書の構造変換方法。
1 4 . 非定型の構造化文書に対応して、 変換後の構造化文書にお ける新要素を複数定義し、変換対象の構造化文書内に出現し得る全て の要素について、 全て出現する場合の出現順に、 データ処理の対象と なるキー要素であるか否かを指定すると共に、該キ一要素以外の要素
である非キー要素を、該複数の新要素の何れに割り当てるかを定義し た変換仕様定義文書に基づいて、
変換対象の構造化文書内の各要素を、前記レコード内で出現する順 に、
前記キー要素はそのまま変換後の構造化文書に記述するステツプ と、
前記各非キー要素に関しては、前記変換対象の構造化文書に出現す る要素はその要素内容を、前記変換対象の構造化文書に出現しない要 素の要素内容は空要素と して、該当する前記新要素毎に C S V形式で まとめたものを各新要素の要素内容と して変換後の構造化文書に記 述するステップと、
を有することを特徴とする構造化文書の構造変換方法。
1 5 . 非定型の構造化文書に対応して、 変換後の構造化文書にお ける新要素を複数定義すると共に、該各新要素毎にその新要素が非定 型要素であるか否かを指定し、変換対象の構造化文書内の各要素につ いて、 該構造化文書内に出現し得る全ての要素について、全て出現す る場合の出現順に、データ処理の対象となるキー要素であるか否かを 指定すると共に、 該キ一要素以外の要素である非キー要素を、 前記複 数の新要素の何れに割り当てるかを定義する変換仕様定義文書に基 づいて、
該変換対象の構造化文書内の各要素を、前記レコード内で出現する 順に、
前記キー要素はそのまま変換後の構造化文書に記述するステップ と、
前記各非キー要素に関しては、 前記新要素毎に、
該新要素が前記非定型要素ではない場合には、出現した要素の要素 内容を出現順に C S V形式でまとめたものを該新要素の要素内容と して変換後の構造化文書に記述するステップと、
該新要素が前記非定型要素である場合には、出現した要素の要素内 容を出現順に C S V形式でまとめたものを該新要素の要素内容とす ると共に該出現順番を C S .V形式でまとめたものを該新要素のタグ の属性値と して変換後の構造化文書に記述するステップと、
を有することを特徴とする構造化文書の構造変換方法。
1 6 . コンピュータに、
定型の構造化文書に対応して、変換後の構造化文書における新要素 を複数定義し、 該変換対象の構造化文書内の各要素について、 レコー ド内で出現する順に、データ処理の対象となるキー要素であるか否か を指定すると共に、 該キ一要素以外の要素である各非キー要素を、 前 記複数の新要素の何れに割り当てるかを定義した変換仕様定義文書 に基づいて、
変換対象の構造化文書から変換後の構造化文書を作成するために、 該変換対象の構造化文書内の各要素を、前記レコード内で出現する順 前記キー要素はそのまま変換後の構造化文書に記述するステップ と、
前記各非キー要素に関しては、 その要素内容を、 該当する前記新要 素毎に C S V形式でまとめたものを各新要素の要素内容と して変換 後の構造化文書に記述するステップと、
を実現させるためのプログラム。
1 7 . コンピュータに、
非定型の構造化文書に対応して、変換後の構造化文書における新要 素を複数定義し、変換対象の構造化文書内に出現し得る全ての要素に ついて、 全て出現する場合の出現順に、 データ処理の対象となるキー 要素であるか否かを指定すると共に、該キ一要素以外の要素である非 キー要素を、該複数の新要素の何れに割り当てるかを定義した変換仕 様定義文書に基づいて、
変換対象の構造化文書内の各要素を、前記レコード内で出現する順 に、
前記キー要素はそのまま変換後の構造化文書に記述するステップ と、
前記各非キー要素に関しては、前記変換対象の構造化文書に出現す る要素はその要素内容を、前記変換対象の構造化文書に出現しない要 素の要素内容は空要素と して、該当する前記新要素毎に C S V形式で まとめたものを各新要素の要素内容と して変換後の構造化文書に記 述するステップと、
を実現させるためのプログラム。
1 8 . コンピュータに、
非定型の構造化文書に対応して、変換後の構造化文書における新要 素を複数定義すると共に、該各新要素毎にその新要素が非定型要素で あるか否かを指定し、 変換対象の構造化文書內の各要素について、 該 構造化文書內に出現し得る全ての要素について、全て出現する場合の 出現順に、データ処理の対象となるキー要素であるか否かを指定する と共に、 該キ一要素以外の要素である非キー要素を、 前記複数の新要 素の何れに割り当てるかを定義する変換仕様定義文書に基づいて、 該変換対象の構造化文書内の各要素を、前記レコード内で出現する
順に、
前記キー要素はそのまま変換後の構造化文書に記述するステツプ と.、
前記各非キー要素に関しては、 前記新要素毎に、
該新要素が前記非定型要素ではない場合には、出現した要素の要素 内容を出現順に C S V形式でまとめたものを該新要素の要素内容と して変換後の構造化文書に記述するステップと、
該新要素が前記非定型要素である場合には、出現した要素の要素内 容を出現順に C S V形式でまとめたものを該新要素の要素内容とす ると共に該出現順番を C S V形式でまとめたものを該新要素のタグ の属性値と して変換後の構造化文書に記述するステップと、
を実現させるためのプログラム。
1 9 . コンピュータに、
定型の構造化文書に対応して、変換後の構造化文書における新要素 を複数定義し、該変換対象の構造化文書内の各要素について、 レコー ド内で出現する順に、データ処理の対象となるキー要素であるか否か を指定すると共に、該キ一要素以外の要素である各非キー要素を、 前 記複数の新要素の何れに割り当てるかを定義した変換仕様定義文書 に基づいて、
変換対象の構造化文書から変換後の構造化文書を作成するために、 該変換対象の構造化文書内の各要素を、前記レコード内で出現する順 に、
前記キー要素はそのまま変換後の構造化文書に記述するステップ と、
前記各非キー要素に関しては、 その要素内容を、 該当する前記新要
素毎に C S V形式でまとめたものを各新要素の要素内容と して変換 後の構造化文書に記述するステップと、
を実現させるプログラムを記録した前記コンピュータ読取り可能 な記録媒体。
2 0 . コンピュータに、
非定型の構造化文書に対応して、変換後の構造化文書における新要 素を複数定義し、変換対象の構造化文書内に出現し得る全ての要素に ついて、 全て出現する場合の出現順に、 データ処理の対象となるキー 要素であるか否かを指定すると共に、該キ一要素以外の要素である非 キー要素を、該複数の新要素の何れに割り当てるかを定義した変換仕 様定義文書に基づいて、
変換対象の構造化文書内の各要素を、前記レコード内で出現する順 に、
前記キー要素はそのまま変換後の構造化文書に記述するステップ と、
前記各非キー要素に関しては、前記変換対象の構造化文書に出現する 要素はその要素内容を、前記変換対象の構造化文書に出現しない要素 の要素内容は空要素と して、該当する前記新要素毎に C S V形式でま とめたものを各新要素の要素内容と して変換後の構造化文書に記述 するステップと、
を実現させるプログラムを記録した前記コンピュータ読取り可能 な記録媒体。
2 1 . コンピュータに、
非定型の構造化文書に対応して、変換後の構造化文書における新要 素を複数定義すると共に、該各新要素毎にその新要素が非定型要素で
あるか否かを指定し、 変換対象の構造化文書内の各要素について、 該 構造化文書内に出現し得る全ての要素について、全て出現する場合の 出現順に、データ処理の対象となるキー要素であるか否かを指定する と共に、 該キ一要素以外の要素である非キー要素を、 前記複数の新要 素の何れに割り当てるかを定義する変換仕様定義文書に基づいて、 該変換対象の構造化文書内の各要素を、前記レコード内で出現する 前記キー要素はそのまま変換後の構造化文書に記述するステップ と、
前記各非キー要素に関しては、 前記新要素毎に、
該新要素が前記非定型要素ではない場合には、出現した要素の要素 内容を出現順に C S V形式でまとめたものを該新要素の要素内容と して変換後の構造化文書に記述するステップと、
該新要素が前記非定型要素である場合には、出現した要素の要素内 容を出現順に C S V形式でまとめたものを該新要素の要素内容とす ると共に該出現順番を C S V形式でまとめたものを該新要素のタグ の属性値と して変換後の構造化文書に記述するステップと、
を実現させるプログラムを記録した前記コ ンピュータ読取り可能 な記録媒体。
2 2 . レコー ドの種類毎にそのレコードを構成する要素が異なる 非定型の構造化文書に対応して、レコードの種類毎にレコード項目 リ ス トを定義するものであって、 該各レコード項目リ ス トは、 そのレコ 一ド種類に出現し得る全ての要素について、データ処理の対象となる キー要素であるか否かを指定すると共に、変換後の構造化文書におけ る新要素を 1以上定義して、前記キー要素以外の要素である非キー要
素を、 どの新要素に割り当てるかを指定する変換仕様定義手段と、 該変換仕様定義手段によって定義される変換仕様に基づいて前記 変換対象の構造化文書から変換後の構造化文書を作成するために、該 変換対象の構造化文書中の各レコード毎に、そのレコードの種類に応 じたレコード項目 リス トを前記変換仕様定義手段から選択し、該選択 したレコード項目リス トに基づいて、前記レコード内の各要素をレコ 一ド内で出現する順に、前記キー要素はそのまま変換後の構造化文書 に記述し、 前記各非キー要素に関しては、 該当する前記新要素毎に C S V形式でまとめたものを各新要素の要素内容と して変換後の構造 化文書に記述する構造変換手段と、
を有することを特徴とする構造化文書の構造変換装置。
2 3 . 前記各レコード項目 リ ス トには、 そのレコード項目 リ ス ト を選択させる為の切り替え条件が更に記述され、
前記構造変換手段は、 該切り替え条件を用いて、 処理対象のレコー ドの種類に応じたレコード項目 リ ス トを選択することを特徴とする 請求項 2 2記載の構造変換装置。
2 4 . レコー ドの種類毎にそのレコー ドを構成する要素が異な る非定型の構造化文書に対応して、レコードの種類毎にレコード項目 リ ス トを定義するものであって、 該各レコー ド項目 リ ス トは、 そのレ コード種類に出現し得る全ての要素について、データ処理の対象とな るキー要素であるか否かを指定すると共に、変換後の構造化文書にお ける新要素を 1以上定義して、前記キー要素以外の要素である非キー 要素を、どの新要素に割り当てるかを指定する変換仕様定義文書に基 づいて、
該変換仕様定義文書によって定義される変換仕様に基づいて前記
変換対象の構造化文書から変換後の構造化文書を作成するために、該 変換対象の構造化文書中の各レコード毎に、そのレコードの種類に応 じたレコー ド項目 リ ス トを前記変換仕様定義文書から選択するステ ップと、
該選択したレコード項目 リス トに基づいて、前記レコード内の各要 素をレコード内で出現する順に、前記キー要素はそのまま変換後の構 '造化文書に記述し、 前記各非キー要素に関しては、 該当する前記新要 素毎に C S V形式でまとめたものを各新要素の要素内容と して変換 後の構造化文書に記述するステップと、
を有することを特徴とする構造化文書の構造変換方法。
2 5 . コ ンピュータに、
レコードの種類毎にそのレコードを構成する要素が異なる非定型 の構造化文書に対応して、レコードの種類毎にレコード項目 リス トを 定義するものであって、 該各レコード項目 リ ス トは、 そのレコード種 類に出現し得る全ての要素について、データ処理の対象となるキー要 素であるか否かを指定すると共に、変換後の構造化文書における新要 素を 1以上定義して、 前記キー要素以外の要素である非キー要素を、 どの新要素に割り当てるかを指定する変換仕様定義文書に基づいて、 該変換仕様定義文書によって定義される変換仕様に基づいて前記 変換対象の構造化文書から変換後の構造化文書を作成するために、該 変換対象の構造化文書中の各レコード毎に、そのレコードの種類に応 じたレコー ド項目 リ ス トを前記変換仕様定義文書から選択するステ ップと、
該選択したレコード項目 リス トに基づいて、前記レコード内の各要 素をレコード内で出現する順に、前記キー要素はそのまま変換後の構
造化文書に記述し、 前記各非キー要素に関しては、 該当する前記新要 素毎に C S V形式でまとめたものを各新要素の要素内容と して変換 後の構造化文書に記述するステップと、
を実現させるためのプログラム。
2 6 . コ ンピュータに、
レ コ ードの種類毎にそのレコ'一ドを構成する要素が異なる非定型 の構造化文書に対応して、レコードの種類毎にレコード項目 リス トを 定義するものであって、 該各レコード項目 リス トは、 そのレコー ド種 類に出現し得る全ての要素について、データ処理の対象となるキー要 素であるか否かを指定すると共に、変換後の構造化文書における新要 素を 1以上定義して、 前記キー要素以外の要素である非キー要素を、 どの新要素に割り当てるかを指定する変換仕様定義文書に基づいて、 該変換仕様定義文書によって定義される変換仕様に基づいて前記 変換対象の構造化文書から変換後の構造化文書を作成するために、該 変換対象の構造化文書中の各レコード毎に、そのレコードの種類に応 じたレコード項目 リス トを前記変換仕様定義文書から選択するステ ップと、
該選択したレコー ド項目 リス トに基づいて、前記レコー ド内の各要 素をレコード内で出現する順に、前記キー要素はそのまま変換後の構 造化文書に記述し、 前記各非キー要素に関しては、 該当する前記新要 素毎に C S V形式でまとめたものを各新要素の要素内容と して変換 後の構造化文書に記述するステップと、
を実現させるプログラムを記録した前記コ ン ピュータ読取り可能 な記録媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005506707A JP4388929B2 (ja) | 2002-12-27 | 2003-11-20 | 構造化文書の構造変換装置、構造変換方法、記録媒体 |
US11/045,184 US20050132278A1 (en) | 2002-12-27 | 2005-01-31 | Structural conversion apparatus, structural conversion method and storage media for structured documents |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002379971 | 2002-12-27 | ||
JP2002-379971 | 2002-12-27 | ||
JP2003165735 | 2003-06-10 | ||
JP2003-165735 | 2003-06-10 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/045,184 Continuation US20050132278A1 (en) | 2002-12-27 | 2005-01-31 | Structural conversion apparatus, structural conversion method and storage media for structured documents |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2004061713A1 true WO2004061713A1 (ja) | 2004-07-22 |
Family
ID=32716317
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2003/014821 WO2004061713A1 (ja) | 2002-12-27 | 2003-11-20 | 構造化文書の構造変換装置、構造変換方法、記録媒体 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20050132278A1 (ja) |
JP (1) | JP4388929B2 (ja) |
WO (1) | WO2004061713A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007114972A (ja) * | 2005-10-19 | 2007-05-10 | Fujitsu Ltd | 構造化文書のデータ処理方法、データ処理プログラム、およびデータ処理装置 |
JP2009054187A (ja) * | 2008-11-04 | 2009-03-12 | Fujitsu Ltd | 構造化文書の構造変換装置 |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8533597B2 (en) * | 2003-09-30 | 2013-09-10 | Microsoft Corporation | Strategies for configuring media processing functionality using a hierarchical ordering of control parameters |
US7493555B2 (en) * | 2004-02-24 | 2009-02-17 | Idx Investment Corporation | Document conversion and integration system |
JP4135659B2 (ja) * | 2004-03-09 | 2008-08-20 | コニカミノルタビジネステクノロジーズ株式会社 | フォーマット変換装置およびファイル検索装置 |
US7437665B2 (en) * | 2004-07-23 | 2008-10-14 | International Business Machines Corporation | SEF parser and EDI parser generator |
US7703006B2 (en) * | 2005-06-02 | 2010-04-20 | Lsi Corporation | System and method of accelerating document processing |
US20060277480A1 (en) * | 2005-06-06 | 2006-12-07 | Microsoft Corporation | Facilitating communication between user interface components that transmit information in incompatible formats |
JP4246186B2 (ja) * | 2005-08-25 | 2009-04-02 | 富士通株式会社 | 構造化文書のデータ展開方法、データ処理方法及び処理システム |
JP4997749B2 (ja) * | 2005-12-07 | 2012-08-08 | 富士ゼロックス株式会社 | 文書処理方法、プログラム及びシステム |
JP4743083B2 (ja) * | 2006-11-02 | 2011-08-10 | ブラザー工業株式会社 | 印刷装置 |
JP4982154B2 (ja) * | 2006-11-08 | 2012-07-25 | 株式会社日立製作所 | 構造化文書の構文解析方法及び装置 |
US8732661B2 (en) * | 2007-02-01 | 2014-05-20 | Microsoft Corporation | User experience customization framework |
US20080282205A1 (en) * | 2007-02-06 | 2008-11-13 | Access Systems Americas, Inc. | Unified launcher user interface system and method for integrating multiple disparate environments on an electronic device |
US7840890B2 (en) * | 2007-02-26 | 2010-11-23 | Emc Corporation | Generation of randomly structured forms |
US7886219B2 (en) * | 2007-02-26 | 2011-02-08 | Emc Corporation | Automatic form generation |
US9594731B2 (en) * | 2007-06-29 | 2017-03-14 | Microsoft Technology Licensing, Llc | WYSIWYG, browser-based XML editor |
US20090249192A1 (en) * | 2008-03-31 | 2009-10-01 | Microsoft Corporation | Creating a view from multiple templates |
US20100023852A1 (en) * | 2008-07-24 | 2010-01-28 | Microsoft Corporation | Declarative forms and views |
US8181106B2 (en) * | 2009-03-18 | 2012-05-15 | Microsoft Corporation | Use of overriding templates associated with customizable elements when editing a web page |
JP6638053B1 (ja) * | 2018-12-05 | 2020-01-29 | グレイステクノロジー株式会社 | ドキュメント作成支援システム |
CN110597791B (zh) * | 2019-09-30 | 2023-05-23 | 贵州电网有限责任公司 | 一种用于电力计量设备运维的知识数据库构建与管理方法 |
US11748560B2 (en) * | 2020-08-14 | 2023-09-05 | Kyndryl, Inc. | Converting between tabular and structured data formats |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001067348A (ja) * | 1999-06-21 | 2001-03-16 | Fujitsu Ltd | 構造化文書の圧縮方法および圧縮装置並びに構造化文書圧縮プログラムを記録したコンピュータ読取可能な記録媒体 |
JP2002108850A (ja) * | 2000-09-28 | 2002-04-12 | Fujitsu Ltd | 階層構造の構造化文書を変換する装置 |
JP2002163248A (ja) * | 2000-11-24 | 2002-06-07 | Fujitsu Ltd | 構造化文書圧縮装置および構造化文書復元装置並びに構造化文書処理システム |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4091726B2 (ja) * | 2000-02-23 | 2008-05-28 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 構造化文書の表示規則の生成方法、システムおよびプログラムが記録された媒体ならびに構造化文書およびその文書型定義の変更方法、システムおよびプログラムが記録された媒体 |
US6912538B2 (en) * | 2000-10-20 | 2005-06-28 | Kevin Stapel | System and method for dynamic generation of structured documents |
US7152205B2 (en) * | 2000-12-18 | 2006-12-19 | Siemens Corporate Research, Inc. | System for multimedia document and file processing and format conversion |
US7703009B2 (en) * | 2001-04-09 | 2010-04-20 | Huang Evan S | Extensible stylesheet designs using meta-tag information |
US7146564B2 (en) * | 2001-12-21 | 2006-12-05 | Xmlcities, Inc. | Extensible stylesheet designs using meta-tag and/or associated meta-tag information |
JP4163870B2 (ja) * | 2001-12-28 | 2008-10-08 | 富士通株式会社 | 構造化文書変換装置 |
-
2003
- 2003-11-20 JP JP2005506707A patent/JP4388929B2/ja not_active Expired - Fee Related
- 2003-11-20 WO PCT/JP2003/014821 patent/WO2004061713A1/ja active Application Filing
-
2005
- 2005-01-31 US US11/045,184 patent/US20050132278A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001067348A (ja) * | 1999-06-21 | 2001-03-16 | Fujitsu Ltd | 構造化文書の圧縮方法および圧縮装置並びに構造化文書圧縮プログラムを記録したコンピュータ読取可能な記録媒体 |
JP2002108850A (ja) * | 2000-09-28 | 2002-04-12 | Fujitsu Ltd | 階層構造の構造化文書を変換する装置 |
JP2002163248A (ja) * | 2000-11-24 | 2002-06-07 | Fujitsu Ltd | 構造化文書圧縮装置および構造化文書復元装置並びに構造化文書処理システム |
Non-Patent Citations (1)
Title |
---|
Shigeru YOSHIDA et al., "XML Bunsho no Jizen Keishiki Henkan ni yoru Data Shori Seino Kaizen no Kento", FIT2002 Joho Kagaku Gijutsu Forum Ippan Koen Ronbunshu, seperate Vol. 2, The Institute of Electronics, Information and Communication Engineers, 13 September, 2002, pages 57 - 58 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007114972A (ja) * | 2005-10-19 | 2007-05-10 | Fujitsu Ltd | 構造化文書のデータ処理方法、データ処理プログラム、およびデータ処理装置 |
JP2009054187A (ja) * | 2008-11-04 | 2009-03-12 | Fujitsu Ltd | 構造化文書の構造変換装置 |
Also Published As
Publication number | Publication date |
---|---|
JPWO2004061713A1 (ja) | 2006-05-18 |
JP4388929B2 (ja) | 2009-12-24 |
US20050132278A1 (en) | 2005-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2004061713A1 (ja) | 構造化文書の構造変換装置、構造変換方法、記録媒体 | |
JP5710851B2 (ja) | 影響分析のためのシステムおよび方法 | |
US8584009B2 (en) | Automatically propagating changes in document access rights for subordinate document components to superordinate document components | |
JP5313337B2 (ja) | モバイル・コンピューティング装置に対する検索結果の提供 | |
US7188319B2 (en) | Displaying graphical information and user selected properties on a computer interface | |
KR101130397B1 (ko) | 포맷된 문서를 웹 페이지로 변환하는 시스템 및 방법 | |
KR101238541B1 (ko) | 메타데이터를 보고 에디트하기 위하여 개별화된 사용자인터페이스를 제공하기 위한 방법 및 시스템 | |
EP1221661A2 (en) | Method and apparatus for dynamically updating a HTML based user interface | |
US20020038319A1 (en) | Apparatus converting a structured document having a hierarchy | |
US20110258538A1 (en) | Capturing DOM Modifications Mediated by Decoupled Change Mechanism | |
JP2006114045A (ja) | スキーマデータ(schemadata)からデータ構造へのマッピング | |
JP2004234354A (ja) | 構造パターン候補を生成する方法、システムおよびプログラム | |
US20110314456A1 (en) | System and Method for Mapping Structured Document to Structured Data of Program Language and Program for Executing Its Method | |
US6766350B1 (en) | Shared management of data objects in a communication network | |
JP2000099508A (ja) | 複合文書管理システム及び複合文書の構造管理方法ならびに複合文書構造管理プログラムを格納した記録媒体 | |
CN1952938A (zh) | 对信息管理系统访问的数据进行组织的系统和方法 | |
JPH0869473A (ja) | 文書管理装置および文書管理機能付きデータ処理装置 | |
JP5214211B2 (ja) | 帳票キーワード登録装置、帳票キーワード登録方法、および、プログラム | |
JP4887726B2 (ja) | 構造化文書のデータ処理方法、データ処理プログラム、およびデータ処理装置 | |
US20110320927A1 (en) | Methods and Apparatus Utilizing XooML: Cross (X) Tool Markup Language | |
US20070153342A1 (en) | Display and editing of documents described by schemas | |
US8230327B2 (en) | Identifying statements requiring additional processing when forwarding a web page description | |
JP4786695B2 (ja) | 構造化文書の構造変換装置 | |
US20040177113A1 (en) | Method, system, and article of manufacture for display of hierarchical data | |
JP5483166B2 (ja) | 文書検索装置、文書検索方法、及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): JP US |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2005506707 Country of ref document: JP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 11045184 Country of ref document: US |