KR100868860B1 - Method for Dynamically Constructing Random Structure of XML Document - Google Patents
Method for Dynamically Constructing Random Structure of XML Document Download PDFInfo
- Publication number
- KR100868860B1 KR100868860B1 KR1020020037136A KR20020037136A KR100868860B1 KR 100868860 B1 KR100868860 B1 KR 100868860B1 KR 1020020037136 A KR1020020037136 A KR 1020020037136A KR 20020037136 A KR20020037136 A KR 20020037136A KR 100868860 B1 KR100868860 B1 KR 100868860B1
- Authority
- KR
- South Korea
- Prior art keywords
- xpath
- node
- xml document
- generated
- document
- Prior art date
Links
Images
Classifications
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Document Processing Apparatus (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
1. 청구범위에 기재된 발명이 속한 기술분야1. TECHNICAL FIELD OF THE INVENTION
본 발명은 임의 구조의 동적 XML 문서 생성 방법에 관한 것임.The present invention relates to a method for generating a dynamic XML document of arbitrary structure.
2. 발명이 해결하려고 하는 기술적 과제2. The technical problem to be solved by the invention
본 발명은 DTD(Document Type Definition)나 스키마(Schema)로 규정된 문서의 구조를 가정하지 않고서도 XML 문서 작성을 손쉽게 할 수 있도록 하기 위한, 문서객체모델(DOM)을 이용한 임의 구조의 동적 XML 문서 생성 방법 및 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하고자 함.The present invention provides a dynamic XML document of arbitrary structure using a document object model (DOM) to easily create an XML document without assuming a structure of a document defined by a document type definition (DTD) or a schema. It is intended to provide a computer-readable recording medium which records a generating method and a program for realizing the method.
3. 발명의 해결방법의 요지 3. Summary of Solution to Invention
본 발명은 임의 구조의 동적 XML 문서 생성 방법에 있어서, 임의의 엑스패스(Xpath)와 데이터값을 입력받는 제 1 단계; 상기 입력받은 엑스패스(Xpath)에 해당하는 엑스패스(Xpath) 노드가 XML 문서 구조에 존재하는지 여부를 검색하는 제 2 단계; 상기 제 2 단계의 검색 결과, 존재하지 않으면 상기 입력받은 엑스패스(Xpath)에 해당하는 엑스패스(Xpath) 노드를 상기 XML 문서 구조에 생성하고, 상기 입력받은 데이터값을 상기 생성된 엑스패스(Xpath) 노드에 할당하는 제 3 단계; 및 상기 제 2 단계의 검색 결과, 존재하면 상기 입력받은 데이터값을 기 존재하는 엑스패스(Xpath) 노드에 할당하는 제 4 단계를 포함함.The present invention provides a method of generating a dynamic XML document having an arbitrary structure, comprising: a first step of receiving an arbitrary Xpath and a data value; A second step of searching whether an Xpath node corresponding to the received Xpath exists in an XML document structure; As a result of the search of the second step, if not present, an Xpath node corresponding to the received Xpath is generated in the XML document structure, and the input data value is generated in the generated Xpath. 3) assigning to the node; And a fourth step of allocating the received data value to an existing Xpath node if there is a search result of the second step.
4. 발명의 중요한 용도4. Important uses of the invention
본 발명은 동적인 데이터 표현 및 XML 문서 생성 등에 이용됨.The present invention is used for dynamic data representation and XML document generation.
임의 구조, 동적 XML 문서 생성, Xpath, Xpath 노드, 문서객체모델(DOM)Arbitrary Structure, Dynamic XML Document Generation, Xpath, Xpath Node, Document Object Model (DOM)
Description
도 1은 본 발명에 따른 XML 문서 생성을 위한 시스템의 일실시예 구성도,1 is a configuration diagram of an embodiment of a system for generating an XML document according to the present invention;
도 2a는 본 발명에 따른 임의 구조의 동적 XML 문서 생성 방법에 대한 일실시예 흐름도,2A is a flow diagram of an embodiment of a dynamic XML document generation method of any structure in accordance with the present invention;
도 2b는 상기 도 2a의 Xpath 노드를 XML 문서 구조에 생성하는 과정에 대한 일실시예 상세 흐름도이다.FIG. 2B is a detailed flowchart illustrating an embodiment of generating the Xpath node in the XML document structure of FIG. 2A.
* 도면의 주요 부분에 대한 부호의 설명* Explanation of symbols for the main parts of the drawings
10 : 데이터 입력부 11 : 저장부10: data input unit 11: storage unit
12 : XML 문서 생성부
12: XML document generation unit
본 발명은 문서객체모델(DOM : Document Object Model)을 이용한 동적인 적격 확장마크업언어(Well Formed XML(eXtensible Markup Language)) 문서 생성 기술에 관한 것으로, 더욱 상세하게는 XML 문서의 구조를 DTD(Document Type Definition, 문서의 문단을 구분하고 주제의 제목을 식별하며 각각이 어떻게 처리되어야할지를 나타내는 마크업을 식별할 수 있도록, 문서와 함께 동반되는 하나의 규격)나 스키마(Schema)에서 미리 정의한 구조에 따르지 않고, 문서객체모델(DOM)을 이용하여 임의의 구조를 가지는 적격 XML 문서를 생성하기 위한, 문서객체모델(DOM)을 이용한 임의 구조의 동적 XML 문서 생성 방법 및 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.The present invention relates to a technology for generating a dynamic qualifying markup language (Well Formed XML) document using a Document Object Model (DOM). Document Type Definition, which is one of the specifications that accompany the document, or a schema predefined by Schema, to identify the paragraph of the document, identify the title of the subject, and identify the markup that indicates how each should be handled. Rather, a method for generating a dynamic XML document having an arbitrary structure using a document object model (DOM) for generating a qualified XML document having an arbitrary structure using a document object model (DOM), and a program for realizing the method A computer readable recording medium for recording thereon.
XML(eXtensible Markup Language)이란, HTML(HyperText Markup Language)의 단순한 표현 기능을 개선하고 SGML(Standard Generalized Markup Language)의 실용적인 기능만을 모아 단순화한 메타언어로서, 호환성이 좋고 작성이 용이하며 데이터 형식을 검증하기 위한 DTD와 이를 지원하는 도구들이 있고 태그(Tag)가 문서의 내용과 밀접하게 관련되어 있어, XML 파일 자체가 하나의 잘 설계된 데이터베이스 역할을 할 수 있는 등의 장점으로 인해 현재 가장 각광받고 있는 인터넷 표준언어이며, 임의의 구조적 문서 표현을 생성할 수 있으므로 웹(Web) 시스템과 전자상거래 등 IT 전반에 걸쳐 표준적인 데이터 교환 표준으로 자리잡고 있다.XML (eXtensible Markup Language) is a simplified meta-language that improves the simple expression of HTML (HyperText Markup Language) and combines only the practical functions of Standard Generalized Markup Language (SGML). There is a DTD and tools to support it, and the tags are closely related to the content of the document, so the XML file itself can serve as a well-designed database. Since it is a standard language and can generate arbitrary structured document representations, it has become a standard data exchange standard across IT such as web systems and e-commerce.
XML 문서를 생성하기 위해 사용하는 방법으로는 XML 구조에 준하는 텍스트를 문서객체모델(DOM) 구조를 이용하지 않고 생성하는 방법과, 문서객체모델(DOM) 구조를 이용하여 XML 문서를 생성해 나가는 방법이 있다. 이 중에서 텍스트로 구성하여 XML 문서를 생성하는 방법은 완성된 XML 문서의 저장이나 전송에는 유용하나, XML 문서를 구조적으로 유연하게 표현할 수 없으므로 XML 문서를 분석하거나 최초에 구축하는 과정에서는 문서객체모델(DOM) 구조를 이용해야만 XML 구조의 특성을 충분히 활용할 수 있다.The method used to generate XML documents is to generate text that conforms to XML structure without using Document Object Model (DOM) structure, and to create XML document using Document Object Model (DOM) structure. There is this. Among them, a method of generating an XML document composed of text is useful for storing or transmitting a completed XML document. However, since the XML document cannot be structurally and flexibly expressed, the document object model ( You can take full advantage of the characteristics of the XML structure by using the DOM structure.
이러한 XML 문서는 사전에 결정된 DTD나 스키마(Schema)의 문서 구조 설계에 준하여 생성되는 경우가 많으며, 이러한 고정적인 구조의 범주 내에서 사용되는 경우가 많다. 이와 같이 문서의 구조를 미리 정해놓는 이유는, 정형화된 데이터 형식이 필요한 시스템에서 유효하지 않은 데이터 생성을 사전에 차단하거나 혹은 사후 검증할 수 있는 규격으로서의 역할을 하도록 하기 위함이다.Such XML documents are often generated based on a predetermined DTD or Schema document structure design, and are often used within this fixed structure category. The reason why the structure of the document is defined in advance is to serve as a standard for blocking or post-validating invalid data generation in a system requiring a formal data format.
이에 따라 종래의 XML 문서 관련 응용 프로그램은 상기된 바와 같이 사전에 규정된 문서 규격에 맞추어 규격화된 구조의 범주를 벗어나지 않는 XML 문서를 생성하거나, 타 응용 프로그램으로부터 생성된 XML 문서가 규정된 구조를 가지고 있다는 전제하에서 데이터 처리를 하게 된다.Accordingly, a conventional XML document related application generates an XML document that does not deviate from the scope of the structure standardized according to a predefined document standard as described above, or has a structure in which an XML document generated from another application program is defined. Data processing on the premise that
한편, 문서객체모델(DOM)을 이용하여 XML 문서를 생성하기 위해서는 일반적으로 해당 문서객체모델(DOM)에서 지원하는 API(Application Program Interface)를 이용한다. 즉, 문서객체모델(DOM)을 지원하는 API 함수를 이용하여 XML 문서를 구축한다.Meanwhile, in order to generate an XML document using a document object model (DOM), generally, an API (Application Program Interface) supported by the document object model (DOM) is used. That is, XML document is built by using API function that supports Document Object Model (DOM).
이 경우, 응용프로그램에서 다루는 XML 문서 양식의 대부분은 DTD나 스키마(Schema)에 의해 구조가 미리 제한되어 있고, 응용 프로그램은 해당 구조를 만족하는 XML 문서를 가정한 후 이를 생성해 가는 절차로 구현하므로, 임의의 구조를 가지는 XML 문서를 동적으로 생성하여 동적 해를 가지는 응용 분야에 XML이 사용되는 경우는 현재까지 알려진 기술이 없는 실정이다.In this case, most of the XML document forms dealt with in the application are limited in advance by DTD or Schema, and the application assumes an XML document that satisfies the structure and implements it by creating a procedure. However, when XML is used in an application field having a dynamic solution by dynamically generating an XML document having an arbitrary structure, there is no known technology to date.
즉, 종래의 기술은 DTD나 스키마(Schema)를 이용하여 XML 문서 구조를 미리 설계하고, 이를 만족시키는 XML 문서를 생성하여 외부 프로그램과 데이터 교환을 위해 사용하며, 보편적으로 미리 제한된 구조만을 다루는 응용프로그램을 개발하는 것이었다.In other words, the conventional technology uses an DTD or Schema to design an XML document structure in advance, generates an XML document that satisfies it, and uses it for data exchange with an external program. Was to develop.
따라서 XML의 응용 분야는 DTD나 스키마(Schema) 설계에 의해 문서의 구조를 제한하고, 이를 수용할 수 있는 응용 프로그램을 전제로 하는 경우가 대부분이다. 즉, 정형화된 문서 구조를 응용프로그램에서 사용하고, 이를 외부 시스템과 표준적인 방법으로 인터페이스하는 응용 분야가 XML의 주요 응용 분야이다.Therefore, most of the application fields of XML are based on the application structure which can limit the structure of the document by DTD or schema design and can accommodate it. In other words, the main application field of XML is to use a structured document structure in an application program and to interface it with an external system in a standard way.
그러나 DTD나 스키마(Schema)에 의해 문서의 구조가 미리 결정된 경우, XML 문서를 생성해 가는데 있어서 해당 구조를 벗어나지 않는 범주 내에서 문서를 생성해야 하므로, 위에서 언급한 XML 구조의 특성을 충분히 활용할 수 있는 문서객체모델(DOM) 구조를 이용하더라도 해당 구조에 국한된 절차에 의한 XML 문서를 생성해야 하는 제약이 있다.However, if the structure of the document is predetermined by DTD or Schema, it is necessary to generate the document within the category that does not deviate from the structure in creating the XML document, so that the characteristics of the XML structure mentioned above can be fully utilized. Even if the document object model (DOM) structure is used, there is a constraint that an XML document must be generated by a procedure limited to the structure.
이러한 제약은 종래의 XML 문서 생성 어플리케이션이 서로 상이한 XML 문서의 구조를 요구하는 어플리케이션에 부응하기 위해 각기 다른 생성 모듈을 구동시켜야 하며, 미리 문서의 구조가 정의되어 있지 않은 경우에는 동적이며 점진적인 방법으로 문서의 구조를 생성할 수 없는 문제점을 유발시킨다.
This restriction requires that existing XML document generation applications run different generation modules in order to respond to applications requiring different structures of XML documents. If the structure of the document is not defined in advance, the document may be dynamically and gradually incremented. It causes a problem that cannot produce the structure of.
그러나 XML 문서는 태그의 구성이 서로 쌍을 이루고 있는 적격(Well Formed) 조건을 만족하면 문서의 구조를 미리 정의하지 않은 상태에서 임의의 구조를 표현할 수 있는 특성을 가지고 있어, 응용 프로그램에서 특정한 구조를 제한하지 않고 최상위 노드만을 가진 빈(empty) XML 문서에서부터 노드를 추가하며 임의의 구조를 동적으로 생성할 수 있다. 이러한 경우 문서 구조에 대한 어떠한 가정도 하지 않으므로, 임의의 XML 구조를 생성하는 일반적인 방법이 요구된다.However, XML document has the characteristic that arbitrary structure can be expressed without defining the structure of document if the structure of tag meets Well Formed condition that is paired with each other. You can dynamically add arbitrary nodes and add nodes from an empty XML document with only the top level node, without limitation. In this case, no assumptions are made about the document structure, so a general way of generating arbitrary XML structures is required.
본 발명은, 상기한 바와 같은 문제점을 해결하고 상기한 바와 같은 요구에 부응하기 위하여 제안된 것으로, 엑스패스(Xpath)와 데이터값을 쌍으로 입력받고, 빈(empty) XML 문서에 최상위 노드 혹은 이미 생성된 노드로부터 최하위 노드에 이르는 역(Reverse)방향으로 원하는 Xpath 노드를 생성하여, 데이터 값을 생성된 노드 위치에 텍스트(또는 속성) 노드로 생성함으로써, DTD(Document Type Definition)나 스키마(Schema)로 규정된 문서의 구조를 가정하지 않고서도 XML 문서 작성을 손쉽게 할 수 있도록 하기 위한, 문서객체모델(DOM)을 이용한 임의 구조의 동적 XML 문서 생성 방법 및 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는데 그 목적이 있다.The present invention has been proposed to solve the above problems and to meet the above-mentioned demands. The present invention receives an Xpath and a data value in pairs, and stores a top node or an image in an empty XML document. By creating the desired Xpath node in the reverse direction from the created node to the lowest node, and generating the data value as a text (or attribute) node at the created node location, a DTD (Document Type Definition) or Schema To create an XML document easily without assuming the structure of the document defined by the document, a computer that records a dynamic XML document generation method using a document object model (DOM) and a program for realizing the method. The purpose is to provide a readable recording medium.
상기 목적을 달성하기 위한 본 발명은, 임의 구조의 동적 XML 문서 생성 방법에 있어서, 임의의 엑스패스(Xpath)와 데이터값을 입력받는 제 1 단계; 상기 입력받은 엑스패스(Xpath)에 해당하는 엑스패스(Xpath) 노드가 XML 문서 구조에 존재하는지 여부를 검색하는 제 2 단계; 상기 제 2 단계의 검색 결과, 존재하지 않으면 상기 입력받은 엑스패스(Xpath)에 해당하는 엑스패스(Xpath) 노드를 상기 XML 문서 구조에 생성하고, 상기 입력받은 데이터값을 상기 생성된 엑스패스(Xpath) 노드에 할당하는 제 3 단계; 및 상기 제 2 단계의 검색 결과, 존재하면 상기 입력받은 데이터값을 기 존재하는 엑스패스(Xpath) 노드에 할당하는 제 4 단계를 포함한다.According to an aspect of the present invention, there is provided a dynamic XML document generating method of any structure, comprising: a first step of receiving an arbitrary Xpath and a data value; A second step of searching whether an Xpath node corresponding to the received Xpath exists in an XML document structure; As a result of the search of the second step, if not present, an Xpath node corresponding to the received Xpath is generated in the XML document structure, and the input data value is generated in the generated Xpath. 3) assigning to the node; And a fourth step of allocating the received data value to an existing Xpath node if there is a search result of the second step.
한편, 본 발명은, 대용량 프로세서를 구비한 동적 XML 문서 생성 시스템에, 임의의 엑스패스(Xpath)와 데이터값을 입력받는 제 1 기능; 상기 입력받은 엑스패스(Xpath)에 해당하는 엑스패스(Xpath) 노드가 XML 문서 구조에 존재하는지 여부를 검색하는 제 2 기능; 상기 제 2 기능에서의 검색 결과, 존재하지 않으면 상기 입력받은 엑스패스(Xpath)에 해당하는 엑스패스(Xpath) 노드를 상기 XML 문서 구조에 생성하고, 상기 입력받은 데이터값을 상기 생성된 엑스패스(Xpath) 노드에 할당하는 제 3 기능; 및 상기 제 2 기능에서의 검색 결과, 존재하면 상기 입력받은 데이터값을 기 존재하는 엑스패스(Xpath) 노드에 할당하는 제 4 기능을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.On the other hand, the present invention, a dynamic XML document generation system having a large processor, the first function for receiving an arbitrary Xpath (Xpath) and data values; A second function of searching whether an Xpath node corresponding to the received Xpath exists in an XML document structure; As a result of the search in the second function, if not present, an Xpath node corresponding to the received Xpath is generated in the XML document structure, and the input data value is generated in the XML document structure. Xpath) a third function of allocating to the node; And a computer-readable recording medium having recorded thereon a program for realizing a fourth function of allocating the received data value to an existing Xpath node as a result of the search in the second function. .
규정된 양식에 준하는 XML 문서를 생성할 경우에, XML 파일 자체가 텍스트 파일의 일종인 점을 이용하여 텍스트 파일의 형태로 생성하는 방법이 있으며, XML 파서(Parser : 구문 분석 처리기)에서 표준적으로 제공하는 응용프로그램 인터페이스(API : Application Program Interface)를 이용하여 XML 문서 구조를 생성하는 방법이 있다.When creating an XML document conforming to a prescribed form, there is a method of generating the form of a text file using the fact that the XML file itself is a kind of text file, and the XML parser (parser) There is a way to create an XML document structure using the provided application program interface (API).
후자의 경우 XML 문서를 생성해 가는 절차가 기본 골격에서부터 점진적으로 확장해 나가는 방식을 띠고 있으나, 생성 가능한 구조는 임의의 잘 구성된(Well Formed : 적격) 구조가 아니라 DTD나 스키마(Schema)에 규정된 범주 내에서 이루어지고, 그 기본 구조를 사전에 제한하게 된다.In the latter case, the procedure for generating an XML document is gradually extended from the basic skeleton, but the constructable structure is not defined as any well-formed structure, but is defined in the DTD or Schema. It is done within the scope and limits its basic structure in advance.
그러나 XML 문서는 XML 구조를 생성하는 태그(Tag)의 쌍이 올바르게 되어 있으면 임의의 트리(Tree) 구조를 표현할 수 있으며, 응용 분야에 따라서 사전에 정의된 구조에 국한되지 않는 XML 문서를 통해 해당 분야의 문제를 표현하는 데이터 구조를 생성할 수도 있다.However, an XML document can represent any tree structure if the pairs of tags that generate the XML structure are correctly formed, and the XML document may not be limited to a predefined structure according to the application field. You can also create a data structure that represents the problem.
이러한 데이터 구조를 생성하는 경우는, 문제의 해를 찾는 방법이 일정한 절차적 방법에 의해 기술되기보다는 점진적으로 문제의 해에 접근해 가는 방법을 이용하게 되고, 임의의 동적인 구조를 점진적으로 생성해 나가야 한다. 이러한 방법은 유전자 알고리즘(genetic algorithm), 기계 학습, 자연어 구문 분석기(parser) 등의 문제해결 방법에서 이용할 수 있다.When creating such a data structure, the method of finding the solution of the problem is gradually approached by the solution of the problem rather than described by a certain procedural method, and gradually creates an arbitrary dynamic structure. You must go out. This method can be used in problem solving methods such as genetic algorithms, machine learning, natural language parsers.
따라서 본 발명은 XML 문서객체모델(DOM) 파서(구문 분석기) 응용프로그램 인터페이스(API)를 이용하여, 임의의 XML 문서 구조를 동적이며 점진적인 방법으로 생성해 가는 절차를 기술한다.Accordingly, the present invention describes a procedure for generating an arbitrary XML document structure in a dynamic and gradual manner using an XML Document Object Model (DOM) parser (parser) application program interface (API).
상술한 목적, 특징들 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바 람직한 일실시예를 상세히 설명한다.
The above objects, features and advantages will become more apparent from the following detailed description taken in conjunction with the accompanying drawings. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명에 따른 XML 문서 생성을 위한 시스템의 일실시예 구성도이다.
도 1에 도시된 바와 같이, 본 발명에 따른 XML 문서 생성을 위한 시스템은, 데이터를 입력받기 위한 데이터 입력부(10)와, 데이터 입력부(10)로부터 전달받은 데이터를 이용하여 XML 문서를 생성하기 위한 XML 문서 생성부(12), 및 XML 문서 생성부(12)에서 생성된 문서를 저장하기 위한 저장부(11)를 포함하여 이루어진다.1 is a configuration diagram of an embodiment of a system for generating an XML document according to the present invention.
As shown in FIG. 1, the system for generating an XML document according to the present invention includes a
도 2a는 본 발명에 따른 임의 구조의 동적 XML 문서 생성 방법에 대한 일실시예 흐름도이다.
먼저, 문서객체모델(DOM)을 이용하여 빈(empty) XML 문서를 생성한다(200). 그리고 임의의 Xpath와 데이터 쌍으로 이루어진 데이터 집합을 입력받아, 그 중 한 쌍을 선택하고(203), 문서객체모델(DOM) 구조로 파악되는 XML 문서 구조에 상기 입력받은 Xpath에 해당하는 Xpath 노드가 존재하는지 여부를 검색한다(205). 이때, 최초 수행 시에는 XML 문서가 빈 문서이므로 당연히 상기 입력받은 Xpath에 해당하는 Xpath 노드가 존재하지 않지만, 이후 입력 데이터에 의해 XML 문서 구조가 점진적으로 구축되어 가는 과정을 거친 후에는 입력 Xpath에 해당하는 Xpath 노드가 생성되어 있을 수도 있다. "205" 과정의 검색은 문서객체모델(DOM) 구조를 다룰 수 있는 XSL(eXtensible Stylesheet Language) 처리 API에 의해 제공된다.
참고적으로, 본 발명의 이해를 돕기 위하여 Xpath와 Xpath 노드라는 용어에 대하여 설명하면, Xpath는 특정한 구조를 지정하는 문자열이고, Xpath 노드는 해당 구조가 실제로 실시되어 XML 문서 구조로 생성되어 존재하는 것이다.
예를 들어 '/Header/Name'이라는 문자열은 Xpath이다. 그리고 이러한 구조가 실제로 실시되어 생성되어, 통상의 컴퓨터 메모리 상에 자료 구조로 메모리 할당이 되어 있는 상태는 Xpath 노드이다. 따라서 'Xpath 노드'라고 하면 'Xpath 가 지정하는 노드' 혹은 'Xpath로 표현되는 노드'를 의미한다고 할 수 있다.2A is a flow diagram of one embodiment of a dynamic XML document generation method of any structure in accordance with the present invention.
First, an empty XML document is generated using a document object model (DOM) (200). In addition, a data set consisting of an arbitrary Xpath and a data pair is received, one of them is selected (203), and an Xpath node corresponding to the received Xpath is included in an XML document structure that is identified as a Document Object Model (DOM) structure. Search for whether it exists (205). At this time, since the XML document is an empty document at the first execution, of course, there is no Xpath node corresponding to the input Xpath, but after the process of gradually constructing the XML document structure by the input data, it corresponds to the input Xpath. An Xpath node may be created. The retrieval of the "205" process is provided by an eXtensible Stylesheet Language (XSL) processing API that can handle the Document Object Model (DOM) structure.
For reference, in order to help the understanding of the present invention, the terms Xpath and Xpath node will be described. Xpath is a string designating a specific structure, and the Xpath node is actually created and formed as an XML document structure. .
For example, the string '/ Header / Name' is Xpath. This structure is actually implemented and created, and the state in which memory is allocated as a data structure on normal computer memory is an Xpath node. Thus, 'Xpath node' can mean 'node designated by Xpath' or 'node represented by Xpath'.
상기 검색 결과(205), XML 문서 구조(문서객체모델 구조)에 상기 입력받은 Xpath에 해당하는 Xpath 노드가 없으면 상기 입력받은 Xpath에 해당하는 Xpath 노드를 XML 문서 구조에 생성하고(207), 상기 입력받은 데이터값을 상기 생성된 Xpath 노드 위치에 텍스트(또는 속성) 노드로 생성한다(209).If there is no Xpath node corresponding to the input Xpath in the
상기 "200" 내지 "209" 과정을 거치는 동안 하나의 데이터가 처리되며, XML 문서 구조에는 Xpath 노드가 하나씩 추가로 구축된다.One data is processed during the processes of "200" to "209", and Xpath nodes are additionally constructed one by one in the XML document structure.
이후, 상기 입력받은 모든 데이터가 처리되었는지를 확인하여(221) 아직 처리되지 않고 남아있는 입력 데이터가 있으면 상기 "203" 과정 내지 "209" 과정을 반복 수행하여 XML 문서를 동적으로 구축(생성)하고, 더 이상 입력 데이터가 남아있지 않으면(221) 상기 생성된 XML 문서를 저장하고(223) 종료한다.Thereafter, after checking whether all the input data has been processed (221), if there is input data that has not been processed yet, the process of "203" to "209" is repeated to dynamically construct (create) an XML document. If there is no more input data left (221), the generated XML document is stored (223) and terminated.
한편, 상기 검색 결과(205), 문서객체모델(DOM) 구조(XML 문서 구조)에 상기 입력받은 Xpath에 해당하는 Xpath 노드가 존재하면, 상기 입력받은 Xpath에 해당하는 Xpath 노드를 생성하는 과정(207)을 생략하고, 상기 입력받은 데이터값을 기 존재하는 Xpath 노드 위치에 텍스트(또는 속성) 노드로 생성하고(209), 다른 데이터 처리가 없을 경우(221)는 상기 생성된 문서를 저장하고(223) 종료한다.On the other hand, if there is an Xpath node corresponding to the received Xpath in the
상기 입력받은 Xpath에 해당하는 Xpath 노드를 XML 문서 구조에 생성하는 과정(207)의 상세한 절차는 도 2b에 나타나 있다. 도 2b는 상기 도 2a의 Xpath 노드를 XML 문서 구조에 생성하는 과정(207)에 대한 일실시예 상세 흐름도이다.A detailed procedure of the
먼저, 문서객체모델(DOM) 구조에 상기 입력받은 Xpath의 한 단계 상위 노드가 생성되어 있는지 여부를 검사한다(213).First, it is checked whether a higher level node of the received Xpath is generated in a document object model (DOM) structure (213).
상기 검사 결과(213), 한 단계 상위 노드가 생성되어 있으면, 해당 상위 노드의 하위 노드로 Xpath 노드를 생성한다(217). 이때, 상위 노드가 최상위 노드일 경우 최상위 노드에 Xpath 노드를 생성한다.As a result of the
이후, 현재 생성된 Xpath 노드의 하위 노드로서 생성되어야 할 노드가 존재하는지 여부를 판단하여(219), 존재하지 않는 경우에는 현재 생성된 Xpath 노드에 데이터값을 생성하는 과정(209)으로 진행하고, 존재하는 경우에는 상기 "213" 과정으로 진행한다.Thereafter, it is determined whether there is a node to be created as a child node of the currently generated Xpath node (219). If there is no node, the process proceeds to a process of generating a data value in the currently generated Xpath node (209). If present, the process proceeds to step "213".
상기 검사 결과(213), 한 단계 상위 노드가 생성되어 있지 않으면, 현재 Xpath 노드에서 최말단 노드를 제외한 새로운 Xpath를 정의하고(215) 상기 "213" 과정으로 진행한다. 이러한 과정의 의미는 Xpath를 말단에서 상단 노드의 역순으로 문서객체모델(DOM) 구조를 생성해 가기 위한 재귀적 처리의 의미를 가진다. 즉, "213" 과정으로 분기하여 재귀적 반복 절차를 재호출하는 것이다.As a result of the
이하, 지금까지 설명한 XML 문서 생성 과정에 따르는 일실시예를 상기 도 2a및 도 2b를 참조하여 설명하면 다음과 같다. 여기서, XML 헤더인 <?xml version="1.0" encoding="euc-kr"?>는 반복적으로 등장하며, 문서객체모델(DOM)을 다루는데 명시적으로 사용할 때는 나타나지 않으므로 생략한다.Hereinafter, an embodiment according to the XML document generation process described so far will be described with reference to FIGS. 2A and 2B. Here, the XML header <? Xml version = "1.0" encoding = "euc-kr"?> Appears repeatedly and is omitted because it does not appear when explicitly used to handle the Document Object Model (DOM).
상기 "200" 과정에서의 빈 XML 문서는 다음과 같이 <XML/> Tag 쌍만을 가진 문서로 가정한다.The empty XML document in
1) 과정 "200":1) Process "200":
<XML/><XML />
2) 과정 "203": 2) process "203":
입력 데이터 : ["/Header/Name", "양성현"] 선택.Input data: ["/ Header / Name", "Yang Sung-hyun"] selected.
3) 과정 "205":3) Process "205":
과정 "205"의 조건을 만족하지 않으므로 과정 "207"로 이동.The process does not satisfy the conditions of "205", so go to "207".
4) 과정 "207":4) Process "207":
Xpath 노드를 XML 문서 구조에 생성하는 절차를 수행하기 위해 과정 "213"으로 이동.
5) 과정 "213":Go to step "213" to perform the procedure for creating an Xpath node into an XML document structure.
5) Process "213":
삭제delete
삭제delete
삭제delete
/Header/Name에서 한 단계 상위 구조의 /Header도 생성되어 있지 않으므로 조건을 만족하지 않으므로 과정 "215"로 이동.Since / Header of one level up structure is not created in / Header / Name, the condition is not satisfied.
6) 과정 "215":6) Process "215":
Xpath를 /Header로 얻음.Get Xpath as / Header.
7) 재귀적으로 과정 "213"으로 분기.7) Recursively branch to process "213".
8) 과정 "213":8) Course "213":
/Header의 상위 노드는 최상위 노드이고 이는 생성되어 있으므로 과정 "217"로 이동.The parent node of / Header is the top node and it is created, so go to step "217".
9) 과정 "217":9) Course "217":
다음과 같은 구조 생성. /Header의 상위 노드는 최상위 노드이므로 아래와 같이 최상위 노드에 생성한다.Create a structure like this: Since the parent node of / Header is the top node, create the top node as below.
<XML><XML>
<Header/><Header />
</XML></ XML>
10) 과정 "219" : /Header의 한 단계 하위 노드로서 생성되어야 할 노드인 /Name이 존재하므로, 과정 "213"으로 분기.10) Step "219": branch to step "213" because / Name, a node to be created, exists as a subordinate node of / Header.
11) 재귀적 단계에서 한 단계를 벗어난 이후 과정 "213"으로 이동.11) After stepping out of the recursive step, go to process "213".
12) 과정 "213":12) Course "213":
/Header/Name의 상위 노드 /Header가 생성되어 있으므로, 과정 "217"로 이동하여 /Header 밑에 Name 노드를 생성하여 다음과 같은 구조 생성.Since the parent node / Header of / Header / Name is created, go to step "217" and create Name node under / Header to create the following structure.
<XML><XML>
<Header><Header>
<Name/><Name />
</Header></ Header>
</XML></ XML>
13) 과정 "219": 재귀적 단계를 모두 벗어나 과정 "209"로 이동하여 텍스트 노드(Text Node) 데이터를 생성하여 다음과 같은 XML 문서를 생성한다.13) Step "219": Move all the steps of the recursive step and move to Step "209" to generate the text node data to generate the following XML document.
<XML><XML>
<Header> <Header>
<Name>양성현</Name><Name> Yang Sung-hyun </ Name>
</Header></ Header>
</XML></ XML>
상기한 과정에 의해 생성된 XML 문서는 하나의 데이터 입력에 대해 일 실시예를 보인 것이다.The XML document generated by the above process shows an embodiment for one data input.
상기 도 2a의 입력 데이터 중 두 번째 예와 같은 입력(/Header/Addr/PostCode, 137792)을 수행할 경우를 간략히 설명하면 다음과 같다.A case of performing an input (/ Header / Addr / PostCode, 137792) as the second example of the input data of FIG. 2A will be briefly described as follows.
1) /Header/Addr/PostCode는 XML 문서 구조에 생성되지 않았음(205 -> 207).1) / Header / Addr / PostCode was not created in the XML document structure (205-> 207).
2) /Header/Addr도 문서 구조에 생성되지 않았음(213).2) / Header / Addr was not created in document structure (213).
3) /Header 구조는 생성되어 있으므로 하위 노드 /Header/Addr 생성(217).3) Since the / Header structure is created, create the child node / Header / Addr (217).
4) 재귀적으로 /Header/Addr이 생성되었으므로, /Header/Addr/PostCode 생성(213 -> 217 -> 219).4) Since / Header / Addr was created recursively, create / Header / Addr / PostCode (213-> 217-> 219).
5) /Header/Addr/PostCode가 생성되었으므로 해당 위치에 텍스트 노드(Text Node)로 데이터값 생성(209).5) Since / Header / Addr / PostCode has been created, create a data value with a text node at the location (209).
최종적으로 생성된 XML 문서는 다음과 같다.The final XML document is as follows.
<XML><XML>
<Header><Header>
<Name>양성현</Name> <Name> Yang Sung-hyun </ Name>
<Addr><Addr>
<PostCode>137792</PostCode><PostCode> 137792 </ PostCode>
</Addr></ Addr>
</Header></ Header>
</XML>
</ XML>
본 발명에서는 입력 데이터는 텍스트 노드로 생성되는 것만을 가정하고 설명하였고, 데이터를 속성 노드(Attribute Node)로 생성하는 XML 문서 구성의 방법에 대한 설명은 생략하였으나 데이터를 속성 노드로 생성하는 방법도 XML 문서 구성에 적용할 수 있음은 자명하다.
In the present invention, it is assumed that the input data is generated only as a text node, and description of a method of constructing an XML document for generating data as an attribute node is omitted, but the method for generating data as an attribute node is also described in XML. Applicable to document organization is obvious.
또한, 본 발명은 XML을 이용하여 동적인 자료 표현을 하는 분야에 적용될 수 있으며, 또한 XML/EDI(Electronic Data Interchange)와 같이 다양한 구조와 양식을 가지는 XML 문서를 대량으로 생성할 때 이용할 수 있다.In addition, the present invention can be applied to the field of dynamic data representation using XML, and also can be used when generating a large amount of XML documents having various structures and formats such as XML / EDI (Electronic Data Interchange).
첫 번째 응용 분야인 동적인 자료 표현의 분야로서는, 유전자 알고리즘(Genetic Algorithm), 기계 학습 시스템(Machine Learning System), 자연어 구문 분석기(Natural Language Parser)와 같이 문제의 해가 결정적으로 표현되지 않고, 점진적이며 동적으로 변하는 해의 집합을 표현하는 분야의 자료 구조 표현으로 XML을 이용할 때 이용될 수 있다.In the field of dynamic data representation, which is the first application field, solutions such as genetic algorithms, machine learning systems, natural language parsers are not deterministic and progressive. It can be used when using XML as a data structure representation of a field that represents a set of dynamically changing solutions.
두 번째 응용 분야로서는 다양한 구조와 양식의 XML 문서를 대량 생산하는 분야가 있다. 이는 DTD나 스키마(Schema)로서 규정된 양식을 가질 수도 있지만, 잘 구성된(Well Formed) XML 문서는 DTD나 스키마(Schema)에 의해 규정된 양식을 가지는 XML 문서를 포함하는 관계에 있으면, 동적인 XML 문서 생성은 미리 구조가 결정된 XML 문서 생성의 범위를 포함하고 있는 관계에 있다.The second application area is the mass production of XML documents of various structures and forms. It may have a form defined as a DTD or Schema, but a well-formed XML document may contain dynamic XML if it contains a XML document with a DTD or Schema-defined form. Document generation is in a relationship that encompasses the scope of XML document generation that has been predetermined.
XML 문서를 대량 생산해 내는 분야에 있어서, 각기 다른 구조를 가지는 XML 문서의 생성을 각기 다른 방법으로 처리하는 것보다, 본 발명이 제안하는 일반적인 방법으로 구축할 경우 응용프로그램의 개발을 손쉽게 할 수 있다. 즉, 100개의 양식의 XML 문서를 생성하는 부분 모듈이 기존에 100개가 필요했다면, 본 발명이 제안하는 방법에 의하면 단 하나의 생성 모듈과 100개의 구조 표현만으로 같은 일을 처리할 수가 있다.In the field of mass production of XML documents, it is easier to develop an application program when constructed by the general method proposed by the present invention, rather than processing the generation of XML documents having different structures by different methods. In other words, if 100 partial modules for generating 100 XML documents are required, according to the method proposed by the present invention, only one generating module and 100 structural expressions can perform the same task.
본 발명이 제안하는 절차에 따르면, 임의의 동적인 문서 구조를 비교적 간단한 방법으로 생성할 수 있어 유연한 구조 표현의 생성이 가능하다.According to the procedure proposed by the present invention, any dynamic document structure can be generated in a relatively simple manner, thereby enabling the generation of a flexible structure representation.
또한, DTD나 스키마(Schema)에 의해 규정된 문서 구조를 생성하는데 있어서도, 각 문서 구조에 국한된 응용 프로그램을 독립적으로 개발하지 않고, 본 발명이 제안하는 방법에 의해서 어떠한 XML 문서 구조도 공통적으로 활용할 수 있는 방법, 즉 범용의 프로그램 모듈을 이용하여 처리할 수 있다.In addition, even when generating a document structure defined by DTD or Schema, any XML document structure can be commonly used by the method proposed by the present invention without independently developing an application program limited to each document structure. Can be handled using a conventional method, that is, a general-purpose program module.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. As described above, the method of the present invention may be implemented as a program and stored in a recording medium (CD-ROM, RAM, ROM, floppy disk, hard disk, magneto-optical disk, etc.) in a computer-readable form.
이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것이 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.
The present invention described above is not limited to the above-described embodiments and the accompanying drawings, and various substitutions, modifications, and changes are possible in the art without departing from the technical spirit of the present invention. It will be clear to those of ordinary knowledge.
상기한 바와 같은 본 발명은, XML 문서를 DTD나 스키마(Schema)에 의해 규정된 문서 구조로 제한하지 않고, 임의의 트리(Tree) 구조를 가지는 데이터 표현을 위해 동적이며 점진적인 방법으로 XML 문서를 생성해 가는데 있어서 손쉽게 적용할 수 있는 방법을 제안한 것으로서, 이는 범용의 XML 문서 구축 시스템 및 유전자 알고리즘, 기계 학습, 자연어 구문 분석 등과 같이 문제의 해가 점진적으로 생성되는 시스템에 적용하여 범용의 데이터 구조를 효율적으로 표현할 수 있으므로, XML 문서 생성을 다루는 여러 분야에서 개발의 편의를 도모할 수 있는 효과가 있다.As described above, the present invention does not limit the XML document to a document structure defined by a DTD or a schema, and generates an XML document in a dynamic and gradual manner for representing a data having an arbitrary tree structure. This paper suggests a method that can be easily applied to the solution, which can be applied to general-purpose XML document construction systems and systems that gradually generate solutions to problems such as genetic algorithms, machine learning, and natural language parsing. Since it can be expressed as, it is effective to facilitate development in various fields dealing with XML document generation.
Claims (9)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020020037136A KR100868860B1 (en) | 2002-06-28 | 2002-06-28 | Method for Dynamically Constructing Random Structure of XML Document |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020020037136A KR100868860B1 (en) | 2002-06-28 | 2002-06-28 | Method for Dynamically Constructing Random Structure of XML Document |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20040001813A KR20040001813A (en) | 2004-01-07 |
KR100868860B1 true KR100868860B1 (en) | 2008-11-14 |
Family
ID=37313544
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020020037136A KR100868860B1 (en) | 2002-06-28 | 2002-06-28 | Method for Dynamically Constructing Random Structure of XML Document |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100868860B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112434490B (en) * | 2020-11-26 | 2024-08-13 | 深圳前海微众银行股份有限公司 | XML document generation method, device, equipment and readable storage medium |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030027349A (en) * | 2001-09-28 | 2003-04-07 | 주식회사 케이티 | Document storage/rehabilitation apparatus and method for using relational database |
KR20030065860A (en) * | 2002-02-01 | 2003-08-09 | 주식회사 케이티 | Video Searching Apparatus and its Method using XML Hierarchy Structure |
-
2002
- 2002-06-28 KR KR1020020037136A patent/KR100868860B1/en not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030027349A (en) * | 2001-09-28 | 2003-04-07 | 주식회사 케이티 | Document storage/rehabilitation apparatus and method for using relational database |
KR20030065860A (en) * | 2002-02-01 | 2003-08-09 | 주식회사 케이티 | Video Searching Apparatus and its Method using XML Hierarchy Structure |
Non-Patent Citations (1)
Title |
---|
한국정보과학회 2002년 봄 학술발표논문집 제29권 제1호(A) "XML계층구조를 이용한 비디오 검색 및 데이터 관리"(윤은일,김동석,박병호,최영식 pp. 160~162, 2002.04) |
Also Published As
Publication number | Publication date |
---|---|
KR20040001813A (en) | 2004-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7237192B1 (en) | Methods and systems for naming and indexing children in a hierarchical nodal structure | |
US6487566B1 (en) | Transforming documents using pattern matching and a replacement language | |
US7171407B2 (en) | Method for streaming XPath processing with forward and backward axes | |
US7155705B1 (en) | Techniques for binding an application with a data exchange format based on tags in comments | |
US7496838B2 (en) | Converting markup language files | |
US7114123B2 (en) | User controllable data grouping in structural document translation | |
US7120869B2 (en) | Enhanced mechanism for automatically generating a transformation document | |
US7499921B2 (en) | Streaming mechanism for efficient searching of a tree relative to a location in the tree | |
US20030135825A1 (en) | Dynamically generated mark-up based graphical user interfaced with an extensible application framework with links to enterprise resources | |
US8397157B2 (en) | Context-free grammar | |
US20040015840A1 (en) | Mechanism for converting between JAVA classes and XML | |
US20070208769A1 (en) | System and method for generating an XPath expression | |
US20020147748A1 (en) | Extensible stylesheet designs using meta-tag information | |
US20070245232A1 (en) | Apparatus for Processing Documents That Use a Mark Up Language | |
US20080134019A1 (en) | Processing Data And Documents That Use A Markup Language | |
US8156494B2 (en) | Pluggable DOM implementation using an abstract API when receiving API calls for accessing different formats of XML data | |
US8595215B2 (en) | Apparatus, method, and computer program product for processing query | |
US8196033B2 (en) | Converting between data sources and XML | |
Ide et al. | Encoding syntactic annotation | |
KR100868860B1 (en) | Method for Dynamically Constructing Random Structure of XML Document | |
US6842757B1 (en) | Methods and systems for dynamic and default attribute binding | |
Kirchner et al. | Xemantics: a rewriting calculus-based semantics of XSLT | |
US20040205591A1 (en) | Method and program for XML data conversion | |
CK et al. | A Generic Parser to parse and reconfigure XML files | |
KR20010088529A (en) | System and method for editing and formatting electronic document |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20121101 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20131101 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |