[go: up one dir, main page]

KR20060028500A - Apparatus and method for verifying input data of application program in real time - Google Patents

Apparatus and method for verifying input data of application program in real time Download PDF

Info

Publication number
KR20060028500A
KR20060028500A KR1020040077473A KR20040077473A KR20060028500A KR 20060028500 A KR20060028500 A KR 20060028500A KR 1020040077473 A KR1020040077473 A KR 1020040077473A KR 20040077473 A KR20040077473 A KR 20040077473A KR 20060028500 A KR20060028500 A KR 20060028500A
Authority
KR
South Korea
Prior art keywords
input
xml
input data
xml document
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
KR1020040077473A
Other languages
Korean (ko)
Inventor
양성현
이승재
강경희
Original Assignee
주식회사 케이티
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 케이티 filed Critical 주식회사 케이티
Priority to KR1020040077473A priority Critical patent/KR20060028500A/en
Publication of KR20060028500A publication Critical patent/KR20060028500A/en
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/211Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars

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)

Abstract

1. 청구범위에 기재된 발명이 속하는 기술분야1. TECHNICAL FIELD OF THE INVENTION

본 발명은, 응용프로그램의 입력 데이터 실시간 검증 장치 및 그 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것임.The present invention relates to an apparatus for verifying real-time input data of an application program, a method thereof, and a computer-readable recording medium having recorded thereon a program for realizing the method.

2. 발명이 해결하려고 하는 기술적 과제2. The technical problem to be solved by the invention

본 발명은, 응용프로그램의 입력 항목을 분석하여 XML(eXtensible Markup Language) 스키마를 설계하고, 상기 설계한 XML 스키마에 상응하는 XML 문서를 생성한 후, 상기 응용프로그램이 사용자로부터 데이터를 입력받음에 따라 상기 생성한 XML 문서에 입력 데이터를 삽입하고 실시간으로 구문분석을 수행하여, 최종적으로 입력 데이터가 검증된 XML 문서를 출력시키기 위한, 응용프로그램의 입력 데이터 실시간 검증 장치 및 그 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는데 그 목적이 있음.The present invention analyzes an input item of an application to design an XML (eXtensible Markup Language) schema, generates an XML document corresponding to the designed XML schema, and then, as the application receives data from a user. Realizing the input data real-time verification apparatus and method and the method of the application for inserting the input data into the generated XML document and performing parsing in real time, and outputting the XML document finally validated input data Its purpose is to provide a computer readable recording medium having recorded thereon a program.

3. 발명의 해결 방법의 요지3. Summary of the Solution of the Invention

본 발명은, 응용프로그램의 입력 데이터 실시간 검증 장치에 있어서, 응용프로그램의 입력 항목을 분석하기 위한 입력 항목 분석 수단; 상기 입력 항목 분석 수단에서 분석한 입력 항목에 따라 XML(eXtensible Markup Language) 스키마를 설계하기 위한 XML 스키마 설계 수단; 상기 XML 스키마 설계 수단에서 설계한 XML 스키마에 상응하는 XML 문서를 생성하기 위한 XML 문서 생성 수단; 및 사용자 데이터 를 입력받음에 따라 상기 XML 문서 생성 수단에서 생성한 XML 문서의 해당 항목에 상기 입력받은 데이터를 삽입하고 실시간으로 구문분석을 수행하는 과정을 반복수행하여, 최종적으로 입력 데이터가 검증된 XML 문서를 출력시키기 위한 입력 데이터 검증 수단을 포함함.An apparatus for verifying input data of an application program in real time, the apparatus comprising: input item analysis means for analyzing an input item of an application program; XML schema design means for designing an XML (eXtensible Markup Language) schema according to the input item analyzed by the input item analyzing means; XML document generating means for generating an XML document corresponding to the XML schema designed by the XML schema design means; And inserting the input data into the corresponding item of the XML document generated by the XML document generating means and parsing in real time according to the input of user data. Input data verification means for outputting a document.

4. 발명의 중요한 용도4. Important uses of the invention

본 발명은 응용프로그램 등에 이용됨.
The present invention is used in applications and the like.

응용프로그램, 입력 데이터 실시간 검증, 확장성 생성 언어(XML), XML 스키마, XML 구문분석Application, Real-time Validation of Input Data, Extensibility Generation Language (XML), XML Schema, XML Parsing

Description

응용프로그램의 입력 데이터 실시간 검증 장치 및 그 방법{Apparatus and its method for verifying input data of application program on real-time} Apparatus and its method for verifying input data of application program on real-time}             

도 1은 본 발명이 적용되는 클라이언트/서버 시스템의 일실시예 구성도,1 is a configuration diagram of an embodiment of a client / server system to which the present invention is applied;

도 2는 본 발명에 따른 응용프로그램의 입력 데이터 실시간 검증 장치의 일실시예 구성도,2 is a configuration diagram of an embodiment of an input data real-time verification apparatus of an application program according to the present invention;

도 3은 본 발명에 따른 응용프로그램의 입력 데이터 실시간 검증 방법에 대한 일실시예 흐름도,3 is a flowchart illustrating an embodiment of a method for verifying input data in real time of an application program according to the present invention;

도 4 및 도 5는 본 발명에 따른 응용프로그램의 입력 데이터 실시간 검증 방법에 대한 일실시예 설명도이다.
4 and 5 are diagrams illustrating an embodiment of a method of verifying input data in real time of an application program according to the present invention.

* 도면의 주요 부분에 대한 부호 설명* Explanation of symbols on the main parts of the drawing

11 : 클라이언트 12 : 서버11: client 12: server

21 : 입력 항목 분석부 22 : XML 스키마 설계부21: input item analysis unit 22: XML schema design unit

23 : XML 문서 생성부 24 : 입력 데이터 검증부
23: XML document generation unit 24: input data verification unit

본 발명은, 응용프로그램의 입력 데이터 실시간 검증 장치 및 그 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것으로, 더욱 상세하게는 응용프로그램의 입력 항목을 분석하여 XML 스키마를 설계하고, 상기 설계한 XML 스키마에 상응하는 XML 문서를 생성한 후, 상기 응용프로그램이 사용자로부터 데이터를 입력받음에 따라 상기 생성한 XML 문서에 입력 데이터를 삽입하고 실시간으로 구문분석을 수행하여, 최종적으로 입력 데이터가 검증된 XML 문서를 출력시키기 위한, 응용프로그램의 입력 데이터 실시간 검증 장치 및 그 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.The present invention relates to an apparatus for verifying input data of an application program in real time, a method thereof, and a computer-readable recording medium recording a program for realizing the method. More particularly, the present invention relates to an XML schema by analyzing input items of an application program. After designing and generating an XML document corresponding to the designed XML schema, as the application receives data from the user, inserts input data into the generated XML document and performs parsing in real time. Finally, the present invention relates to a real-time verification device for input data of an application program for outputting an XML document whose input data is verified, and a method and a computer-readable recording medium having recorded thereon a program for realizing the method.

일반적으로 응용프로그램이 키 입력 등을 통하여 사용자로부터 데이터를 입력받으면, 그 입력 데이터가 유효한 범위 내에 있는지를 검사하는 유효성 검사를 수행하게 된다. 만약, 유효성 검사를 수행하지 않을 경우에는 부적절한 입력 데이터에 의하여 응용프로그램이 오작동을 일으키거나 보안상의 위험이 발생할 가능성이 있기 때문이다. 즉, 유효성 검사를 수행하지 않을 경우에는 사용자의 실수로 인하여 부적절한 입력 데이터를 입력함으로써, 응용프로그램이 부적절한 결과를 출력시키거나, 악의적인 공격에 의하여 응용프로그램의 엔진이 보안 위험에 노출될 수 있는 가능성이 있다.In general, when an application receives data from a user through key input, the application program performs a validity check to check whether the input data is within a valid range. If the validation is not performed, the application may malfunction or a security risk may occur due to inappropriate input data. In other words, if the validation is not performed, the user may input an inappropriate input data due to a user's mistake, and the application's engine may be exposed to a security risk by outputting an inappropriate result or a malicious attack. There is this.

그런데, 응용프로그램은 적용 분야에 따라 그 종류가 매우 다양하며, 그에 따라 입력되는 자료의 내용이나, 각 입력 데이터 별로 처리하여야 하는 유효성 검증 기준이 매우 다양하기 때문에, 범용적인 검증 방법이 개발되기 어려운 분야 중 하나이다. 따라서, 종래에는 응용프로그램의 입력 데이터에 대한 유효성 검증 기능을 구현하는데 있어서, 범용적인 방식이 아닌, 개별적으로 입력 데이터에 대한 유효성 검증 루틴을 일일이 개발하는 방식을 이용하였다.By the way, the application program is very diverse according to the field of application, and since the contents of input data and the validation criteria to be processed for each input data are very diverse, it is difficult to develop a general verification method. Is one of. Therefore, conventionally, in implementing a validation function for input data of an application program, a method of individually developing a validation routine for input data is used, rather than a general method.

그러나, 이처럼 범용적 방법론 없이 각 입력 데이터에 따라 검증 기능을 개별적으로 개발하는 종래의 유효성 검사 방법은, 개발 비용(시간 및 노력)이 많이 소요될 뿐만 아니라, 개발자의 실수로 인하여 입력 데이터 검증 기능이 충분히 구현되지 못할 가능성이 존재하는 문제점이 있었다.However, the conventional validation method that independently develops the verification function according to each input data without the general methodology requires a lot of development cost (time and effort), and the input data verification function is not sufficient due to the developer's mistake. There was a problem that could not be implemented.

따라서, 체계적이고 범용적이며 구현 비용이 낮으면서도 다양한 유형의 입력 데이터를 실시간으로 검증할 수 있는 방안이 절실히 요구된다.
Therefore, there is an urgent need for a method for real-time verification of various types of input data in a systematic, general purpose, and low implementation cost.

본 발명은, 상기와 같은 문제점을 해결하고 상기와 같은 요구에 부응하기 위하여 제안된 것으로, 응용프로그램의 입력 항목을 분석하여 XML 스키마를 설계하고, 상기 설계한 XML 스키마에 상응하는 XML 문서를 생성한 후, 상기 응용프로그램이 사용자로부터 데이터를 입력받음에 따라 상기 생성한 XML 문서에 입력 데이터를 삽입하고 실시간으로 구문분석을 수행하여, 최종적으로 입력 데이터가 검증된 XML 문서를 출력시키기 위한, 응용프로그램의 입력 데이터 실시간 검증 장치 및 그 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공하는데 그 목적이 있다.The present invention has been proposed to solve the above problems and meet the above requirements, and analyzes an input item of an application program to design an XML schema, and generates an XML document corresponding to the designed XML schema. After the application program receives data from the user, the application program inserts the input data into the generated XML document and parses the generated data in real time to finally output the XML document in which the input data is verified. An object of the present invention is to provide an input data real-time verification apparatus and a method thereof and a computer-readable recording medium recording a program for realizing the method.

본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
Other objects and advantages of the present invention can be understood by the following description, and will be more clearly understood by the embodiments of the present invention. In addition, it will be readily appreciated that the objects and advantages of the present invention may be realized by the means and combinations thereof indicated in the claims.

상기의 목적을 달성하기 위한 본 발명의 장치는, 응용프로그램의 입력 데이터 실시간 검증 장치에 있어서, 응용프로그램의 입력 항목을 분석하기 위한 입력 항목 분석 수단; 상기 입력 항목 분석 수단에서 분석한 입력 항목에 따라 XML(eXtensible Markup Language) 스키마를 설계하기 위한 XML 스키마 설계 수단; 상기 XML 스키마 설계 수단에서 설계한 XML 스키마에 상응하는 XML 문서를 생성하기 위한 XML 문서 생성 수단; 및 사용자 데이터를 입력받음에 따라 상기 XML 문서 생성 수단에서 생성한 XML 문서의 해당 항목에 상기 입력받은 데이터를 삽입하고 실시간으로 구문분석을 수행하는 과정을 반복수행하여, 최종적으로 입력 데이터가 검증된 XML 문서를 출력시키기 위한 입력 데이터 검증 수단을 포함하는 것을 특징으로 한다.An apparatus of the present invention for achieving the above object, the input data real-time verification apparatus of the application program, input item analysis means for analyzing the input item of the application program; XML schema design means for designing an XML (eXtensible Markup Language) schema according to the input item analyzed by the input item analyzing means; XML document generating means for generating an XML document corresponding to the XML schema designed by the XML schema design means; And inserting the received data into the corresponding item of the XML document generated by the XML document generating means and parsing in real time according to the input of the user data. And input data verification means for outputting a document.

한편, 본 발명의 방법은, 응용프로그램의 입력 데이터 실시간 검증 방법에 있어서, 상기 응용프로그램의 입력 항목을 분석하여 XML 스키마를 설계하는 XML 스키마 설계 단계; 상기 분석한 응용프로그램의 입력 항목과 XML 스키마와의 매핑을 설정하여 상기 설계한 XML 스키마에 상응하는 XML 문서를 생성하는 XML 문서 생성 단계; 상기 응용프로그램이 사용자로부터 데이터를 입력받음에 따라 상기 생성한 XML 문서에 입력 데이터를 삽입하고, 실시간으로 구문분석을 수행하는 구문분석 단계; 및 상기 구문분석 결과로 에러가 발생함을 확인함에 따라 에러가 발생한 입력 항목에 대한 재입력을 요구하는 재입력 요구 단계를 포함하는 것을 특징으로 한다.On the other hand, the method of the present invention, the input data real-time verification method of the application, XML schema design step of designing the XML schema by analyzing the input items of the application program; An XML document generation step of generating an XML document corresponding to the designed XML schema by setting a mapping between an input item of the analyzed application program and an XML schema; A parsing step of inserting input data into the generated XML document as the application program receives data from a user and parsing in real time; And a re-input request step of requesting re-entry of an input item in which an error occurs as the error is determined as a result of the parsing.

한편, 본 발명은, 응용프로그램을 구동시키기 위한 시스템에, 상기 응용프로그램의 입력 항목을 분석하여 XML 스키마를 설계하는 XML 스키마 설계 기능; 상기 분석한 응용프로그램의 입력 항목과 XML 스키마와의 매핑을 설정하여 상기 설계한 XML 스키마에 상응하는 XML 문서를 생성하는 XML 문서 생성 기능; 상기 응용프로그램이 사용자로부터 데이터를 입력받음에 따라 상기 생성한 XML 문서에 입력 데이터를 삽입하고, 실시간으로 구문분석을 수행하여 최종적으로 입력 데이터가 검증된 XML 문서를 출력시키는 실시간 구문분석 기능; 및 상기 구문분석 결과로 에러가 발생함에 따라 에러가 발생한 입력 항목에 대한 재입력을 요구하는 재입력 요구 기능을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.On the other hand, the present invention, in the system for running the application program, an XML schema design function for designing the XML schema by analyzing the input items of the application program; An XML document generation function for generating an XML document corresponding to the designed XML schema by setting a mapping between an input item of the analyzed application program and an XML schema; A real time parsing function for inserting input data into the generated XML document as the application program receives data from a user, parsing in real time, and outputting an XML document in which input data is finally verified; And a computer-readable recording medium having recorded thereon a program for realizing a re-input request function for requesting re-entry of an input item having an error as an error occurs as a result of the parsing.

상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명 을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명하기로 한다.The above objects, features and advantages will become more apparent from the following detailed description taken in conjunction with the accompanying drawings, whereby those skilled in the art may easily implement the technical idea of the present invention. There will be. In addition, in describing the present invention, when it is determined that the detailed description of the known technology related to the present invention may unnecessarily obscure the gist of the present invention, the detailed description thereof will be omitted. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명이 적용되는 클라이언트/서버 시스템의 일실시예 구성도이다.1 is a configuration diagram of an embodiment of a client / server system to which the present invention is applied.

도 1에 도시된 바와 같이, 본 발명이 적용되는 클라이언트/서버 시스템은, PSDN(Public Switched Data Network), PDTN(Public Switched Telephone Network), 인터넷 등과 같은 네트워크를 통하여 접속한 서버(12)와 연동하여 응용프로그램을 구동시키며, 응용프로그램 구동 중 사용자로부터 입력받은 입력 데이터를 네트워크를 통하여 서버(12)로 전달하기 위한 클라이언트(11), 및 상기 클라이언트(11)와 연동하여 상기 클라이언트(11)에서 응용프로그램이 구동되도록 하며, 상기 클라이언트(11)로부터 전달받은 입력 데이터에 대하여 유효성 검사를 수행하기 위한 서버(12)를 포함한다.As shown in FIG. 1, a client / server system to which the present invention is applied may be linked with a server 12 connected through a network such as a public switched data network (PSDN), a public switched telephone network (PDTN), the Internet, or the like. A client 11 for driving an application program and transferring input data input from a user while the application program is running to the server 12 through a network, and the application program in the client 11 in association with the client 11. In this case, the server 12 includes a server 12 for validating the input data received from the client 11.

상기 클라이언트(11)는 중앙처리장치(CPU)와 저장장치, 및 입력장치를 구비한 컴퓨터(PC) 등이 될 수 있으며, 서버(12)와 연동하지 않은 상태에서 단독으로 응용프로그램을 실행시킬 수도 있다. The client 11 may be a central processing unit (CPU), a storage device, a computer (PC) having an input device, or the like, and may execute an application program alone without interworking with the server 12. have.

또한, 상기 서버(12) 측에 구현된 사용자 입력 데이터에 대한 유효성 검사 기능을 클라이언트(11) 측에 구현하여, 클라이언트(11) 측에서 유효한 입력 데이터 만을 서버(12) 측으로 전달하도록 할 수도 있다.In addition, the validity checking function for the user input data implemented on the server 12 side may be implemented on the client 11 side, so that only valid input data on the client 11 side may be transmitted to the server 12 side.

이 때, 상기 클라이언트(11) 또는 서버(12) 측에 구현된 사용자 입력 데이터에 대한 유효성 검사 기능은 입력 데이터의 적합성(validity) 검증을 위하여 범용적으로 구현된다. 즉, 상기 클라이언트(11) 또는 서버(12) 측에 구비된 본 발명에 따른 응용프로그램의 입력 데이터 실시간 검증 장치는, XML를 이용하여 입력 데이터의 내용을 구조적으로 구성한 후, XML 스키마 검증을 통하여 범용적으로, 그리고 실시간으로 유효성 검사를 수행하게 된다.At this time, the validity checking function for the user input data implemented on the client 11 or the server 12 side is universally implemented to verify the validity of the input data. That is, the input data real-time verification apparatus of the application program provided on the client 11 or the server 12 side structurally configures the content of the input data using XML, and then verifies the general purpose through XML schema verification. In general, the validation is performed in real time.

일반적으로는 응용프로그램 개발자가 범용적 방법론 없이 각각의 입력 데이터에 대한 입력 제한 조건 등을 포함시켜 개발하는 방식이 널리 쓰여 왔다. 그러나, 본 발명에서는 데이터를 임의의 구조로 표현할 수 있으며, 그 구조에 대한 구문 규칙을 스키마로 기술할 수 있는 XML을 이용하여, 응용프로그램의 입력 데이터에 대하여 유효성 검사를 범용적인 방식으로 처리할 수 있도록 한다.In general, the application program developer has been widely used to include input constraints for each input data without a general methodology. However, in the present invention, the data can be represented in any structure, and the validity check can be performed on the input data of the application program by using XML, which can describe the syntax rules for the structure as a schema. Make sure

즉, 응용프로그램에서 사용되는 데이터는 대부분 정규식 표현의 범주 내에서 정형화된 양식을 띠고 있다. 또한, 때로는 일정 부분이 반복되거나 트리 구조로 표현할 수 있는 구조화된 데이터 구조를 가지고 있기도 한다. 예를 들면, 숫자로 이루어진 지역번호, 국번, 나머지 번호와 그 사이를 구분하는 '-' 문자의 규칙을 가지는 전화번호 규칙을 정규식 표현으로 나타내고, 입력 데이터의 정규식 부합성 여부로 유효성을 판단하는 방식이다. 특히, 이러한 정형화된 구문 구조와 각 항목들에 대한 입력 데이터의 제약들은 확장성 생성 언어(XML : eXtensible Markup Language)의 스키마로서 표현이 가능하다. 또한, 정규식 표현이나 구조의 반복, 필수/선택 항목 등 일반적인 구문 구조 표현이 XML 문서와 이를 규정하는 XML 스키마를 통하여 표현이 가능하다. In other words, most of the data used in applications has a formalized form within the scope of regular expression expressions. Sometimes they also have structured data structures that can be repeated in parts or represented in a tree structure. For example, a phone number rule having a rule of '-' character that distinguishes the area code, station number, remaining numbers, and numbers between numbers is represented by a regular expression expression, and the validity of the input data is determined based on the regular expression conformity. to be. In particular, such a formal syntax structure and constraints of input data for each item may be expressed as a schema of an extensible markup language (XML). In addition, regular syntax expressions such as regular expression expressions, repetition of structures, and mandatory / optional items can be expressed through XML documents and XML schemas that define them.

따라서, 구조화된 데이터 표현이 가능하면서 정규식 표현 수준의 데이터 양식을 규정할 수 있는 XML 스키마를 이용하여, 입력 데이터의 허용 가능한 범주를 규정하고, 이후에 입력되는 데이터에 대하여 XML 구문분석을 통하여 적합성을 검증한다. 이 때, 최종적으로 입력이 완료된 이후에 XML 문서로 생성하여 검증하는 것이 아니라, 입력되는 시점에 실시간으로 검증한다.Therefore, using XML schema that can represent structured data and can define regular expression level data format, it defines the allowable category of input data, and then conforms through XML parsing for input data. Verify. At this time, after the input is finally completed, it is not generated and verified as an XML document, but is verified in real time at the time of input.

도 2를 참조하여 사용자 입력 데이터에 대한 유효성 검사 기능을 구현하기 위한 응용프로그램의 입력 데이터 실시간 검증 장치의 구성에 대하여 보다 상세히 살펴보기로 한다.Referring to Figure 2 will be described in more detail with respect to the configuration of the input data real-time verification apparatus of the application for implementing the validation function for the user input data.

도 2에 도시된 바와 같이, 본 발명에 따른 응용프로그램의 입력 데이터 실시간 검증 장치는, 응용프로그램의 입력 항목을 분석하기 위한 입력 항목 분석부(21), 상기 입력 항목 분석부(21)에서 분석한 입력 항목에 따라 XML 스키마를 설계하기 위한 XML 스키마 설계부(22), 상기 XML 스키마 설계부(22)에서 설계한 XML 스키마에 상응하는 XML 문서를 생성하기 위한 XML 문서 생성부(23), 및 사용자 데이터를 입력받음에 따라 상기 XML 문서 생성부(23)에서 생성한 XML 문서의 해당 항목에 삽입하고, 실시간으로 구문분석을 수행하여, 최종적으로 입력 데이터가 검증된 XML 문서를 출력시키기 위한 입력 데이터 검증부(24)를 포함한다.As shown in FIG. 2, the apparatus for verifying input data of an application program according to the present invention includes an input item analyzer 21 and an input item analyzer 21 for analyzing an input item of an application program. An XML schema design unit 22 for designing an XML schema according to an input item, an XML document generator 23 for generating an XML document corresponding to the XML schema designed by the XML schema design unit 22, and user data. An input data verification unit for inserting the XML document generated by the XML document generation unit 23 in response to the input and parsing in real time and outputting an XML document in which input data is finally verified ( 24).

상기 XML 문서 생성부(23)는 응용프로그램에 입력되는 사용자 입력 데이터를 검증하기 위하여, 상기 설계한 XML 스키마를 만족하는 더미 XML 문서를 미리 만든다. 이 때, 상기 더미 XML 문서의 각 노드에는 XML 스키마를 만족하는 더미값이 초기값으로 입력되어 있으며, 각 노드에는 사용자 입력 데이터인지, 더미값인지를 나타내는 속성 필드가 포함되어 있다.The XML document generation unit 23 previously generates a dummy XML document that satisfies the designed XML schema in order to verify user input data input to an application program. At this time, each node of the dummy XML document has a dummy value satisfying the XML schema as an initial value, and each node includes an attribute field indicating whether the user input data is a dummy value.

즉, 클라이언트/서버 모델의 응용프로그램에서 클라이언트(11)에서 모든 입 력 데이터를 입력받은 이후에, 이를 서버(12)로 일괄 전송하고, 서버(12)에서 완전히 채워진 XML 문서를 검증하는 것은, 일반적인 XML 구문분석기를 이용할 수 있다. XML은 매우 유연한 자료 구조를 표현할 수 있으며, XML의 구조는 스키마(schema)로 구조의 제약 사항이 표현될 수 있으며, 이는 일반적인 응용프로그램에서 입력 데이터 검증에 필요한 충분한 유연성을 가지고 있다. 또한, 스키마에 의해 정의된 구문 구조를 만족하는지의 여부는 널리 사용되는 일반적인 XML 구문분석기(parser)에 의하여 손쉽게 분석될 수 있다. 그러나, 클라이언트 응용프로그램에서 각 항목에 대한 입력 데이터를 입력받을 때마다 실시간으로 검증하기 위해서는 다음과 같은 과정이 필요하다.That is, after receiving all the input data from the client 11 in the application of the client / server model, it is transmitted to the server 12 in a batch, and verifying the XML document that is completely filled in the server 12, You can use an XML parser. XML can represent a very flexible data structure, and the structure of XML can be expressed as a schema, which provides sufficient flexibility for validating input data in a typical application. In addition, whether or not to satisfy the syntax structure defined by the schema can be easily analyzed by a widely used general XML parser. However, the following process is required to verify in real time whenever input data for each item is received in the client application program.

우선, XML 스키마를 만족하는 임의의 더미(dummy) XML 문서를 미리 생성하여 둔다. 이 때, 더미 XML 문서의 최종 노드의 값은 사용자가 입력한 데이터로 치환되는 값이다. 또한, 더미 XML 문서는 기본적인 문서의 구조 이외에 최종 노드의 값이 더미값인지 또는 사용자가 실제로 입력한 데이터인지를 구분하기 위한 속성(attribute) 필드를 포함하고 있다. 사용자 입력 데이터가 치환되기 이전의 모든 속성(attribute) 필드는 더미값이 입력되어 있음을 나타내고 있다. First, an arbitrary dummy XML document satisfying the XML schema is generated in advance. At this time, the value of the last node of the dummy XML document is a value that is replaced with data input by the user. In addition to the basic document structure, the dummy XML document includes an attribute field for distinguishing whether the value of the last node is a dummy value or data actually input by the user. All attribute fields before the user input data is replaced indicate that a dummy value is input.

한편, 상기 입력 데이터 검증부(24)는 응용프로그램에서 사용자 데이터를 입력받음에 따라 상기 입력받은 입력 데이터를 상기 더미 XML 문서의 해당 노드에 대치하는 한편, 더미값이 사용자 입력 데이터로 대치된 사실을 속성 필드에 설정한다. 이 때, 더미값을 사용자 입력 데이터로 대치할 때에는 입력 위치가 기지정되어 있는 "XPath"를 기반으로 하여 XML 문서의 해당 노드에 입력한다. 또한, 상기 입력 데이터 검증부(24)는 이처럼 새롭게 구성된 XML 문서에 대하여, 스키마 검증을 포함한 구문분석을 통하여, 구문 에러를 파악한다. Meanwhile, the input data verification unit 24 replaces the input data with the corresponding node of the dummy XML document as the user data is input by the application program, and finds that the dummy value is replaced with the user input data. Set in the attribute field. At this time, when replacing a dummy value with user input data, it inputs into the corresponding node of an XML document based on "XPath" which input position is predetermined. In addition, the input data verification unit 24 detects a syntax error with respect to the newly constructed XML document through parsing including schema verification.

상기 입력 데이터 검증부(24)는 이처럼 입력 데이터가 발생할 때마다 실시간으로 입력 데이터의 유효성을 검증하게 된다. 만약, XML 문서를 검증한 결과, 오류가 존재하면 적절한 에러 메시지를 출력시키며, 사용자에게 재입력을 요구하고, 다시 재검증을 수행하는 과정을 반복한다.The input data verification unit 24 verifies the validity of the input data in real time whenever the input data is generated. If the XML document is verified, if an error exists, an appropriate error message is output, the user is re-entered, and the re-verification is repeated.

한편, 필수 입력 항목이 입력되지 않은 채 사용자 데이터 입력이 종료(사용자로부터 입력 완료 등의 키를 입력받음)될 수도 있다. 따라서, 사용자 데이터 입력이 종료되는 시점에서 XML 문서의 노드 전체를 따라가며 속성(attribute) 필드를 확인하여, 필수 입력 항목이 누락되어 있는지를 확인한다. 만약, 누락된 필수 입력 항목이 있으면 이에 대한 에러 메시지를 출력시키며, 사용자에게 재입력을 요구하여 정상적인 데이터를 재입력받는 과정을 반복한다.Meanwhile, the user data input may be terminated (received a key such as input completion from the user) without the required input item. Therefore, at the end of the user data input, the entire attribute of the XML document is followed and the attribute field is checked to confirm that a required input item is missing. If there is a missing required input item, an error message for this is output, and the user is required to re-enter and repeats the process of re-entering normal data.

이상에서 살펴본 바와 같이, 본 발명에 따른 응용프로그램의 입력 데이터 실시간 검증 장치는, 응용프로그램마다 각기 다른 입력 데이터의 검증 루틴을 일일이 개발할 필요가 없이, 입력 데이터의 유효성을 실시간으로 검증할 수 있는 범용적인 솔루션을 제공한다. 도 3을 참조하여 본 발명의 전체적인 동작 과정에 대하여 좀 더 상세히 살펴보기로 한다.As described above, the input data real-time verification apparatus of the application program according to the present invention, without having to develop a verification routine of different input data for each application, it is a general purpose that can verify the validity of the input data in real time Provide a solution. The overall operation of the present invention will be described in more detail with reference to FIG. 3.

도 3은 본 발명에 따른 응용프로그램의 입력 데이터 실시간 검증 방법에 대한 일실시예 흐름도이다.3 is a flowchart illustrating a method of verifying input data in real time of an application program according to the present invention.

먼저, 응용프로그램의 입력 항목을 분석하여(301), XML 스키마를 설계한다 (302). 그리고, 응용프로그램의 입력 인터페이스와 XML 문서 구조와의 매핑을 설정하여 상기 설계한 XML 스키마에 상응하는 XML 문서를 생성한다(303). 이 때, 상기 생성한 XML 문서는 상기 설계한 XML 스키마에 상응하는 최소한의 구조를 가지고 있으며, 각 입력 항목에 더미값이 입력되어 있는 상태이다.First, input items of an application are analyzed (301), and an XML schema is designed (302). In operation 303, an XML document corresponding to the designed XML schema is generated by setting a mapping between the input interface of the application and the XML document structure. At this time, the generated XML document has a minimum structure corresponding to the designed XML schema, and a dummy value is input to each input item.

이후, 상기 응용프로그램이 사용자로부터 데이터를 입력받으면(304) 상기 생성한 XML 문서에 입력 데이터를 삽입하고, 구문분석을 수행하여(305) 에러 발생 여부를 확인한다(306). 상기 확인 결과(306), 에러가 발생하였으면 에러가 발생한 입력 항목에 대한 재입력을 요구하고 "304" 과정으로 진행하며(309), 에러가 발생하지 않았으면 입력이 모두 완료되었는지를 확인한다(307).Thereafter, when the application receives data from the user (304), the input data is inserted into the generated XML document and parsed (305) to check whether an error occurs (306). As a result of the check 306, if an error occurs, a request for re-entering an input item in which an error occurs is performed, and the process proceeds to "304" (309). If no error occurs, it is checked whether all inputs are completed (307). ).

상기 확인 결과(307), 모든 입력이 완료되었으면 입력 데이터가 검증된 XML 문서를 완성하고(308), 모든 입력이 완료되지 않았으면 "304" 과정으로 진행하여 반복수행한다.As a result of the check 307, if all the input is completed, complete the XML document in which the input data is verified (308). If all the inputs are not completed, the process proceeds to "304" and repeats.

한편, 응용프로그램의 입력 항목을 분석하는 과정(301)을 좀 더 상세히 살펴보면 다음과 같다.Meanwhile, the process of analyzing the input item of the application 301 will be described in more detail as follows.

앞에서도 설명한 바와 같이 응용프로그램에 따라 사용되는 입력 항목의 양식과 값은 매우 다양하다. 이하의 설명에서는 도 4를 참조하여 일반적으로 널리 사용되는 주문서(Purchase Order)를 일예로 들어 설명하기로 한다.As mentioned earlier, the form and values of the input items used vary depending on the application. In the following description, a commonly used purchase order will be described with reference to FIG. 4 as an example.

도 4에 도시된 바와 같이, 일반적인 주문서의 입력 항목에서 최상위 구조로서 주문서의 날짜를 포함하여, 크게 다음 4가지의 내용을 포함하고 있다.As shown in FIG. 4, the following four contents are largely included, including the date of the order as the top structure in the input item of the general order.

1) 배송지(41) 1) Shipping To (41)                     

2) 청구지(42)2) Bill To (42)

3) 커멘트(43)3) Comment (43)

4) 물품내역(44)4) Item History (44)

또한, 상기의 최상위 항목들은 각각 다음과 같은 하위 구조를 갖는다.In addition, the top items above each have the following substructure.

1) 배송지(41)1) Shipping To (41)

- 배송국가 : 일실시예에서는 미국(US)으로 고정 -Delivery Country: Fixed to US in one embodiment

- 이름 : 문자열 -Name: string

- 주소(street) : 문자열 Street: string

- 도시 : 문자열 -City: string

- 주 : 문자열 -Main: string

- 우편번호 : 10진수 숫자 -Zip code: Decimal number

2) 청구지(42)2) Bill To (42)

- 배송국가 : 일실시예에서는 미국(US)으로 고정 -Delivery Country: Fixed to US in one embodiment

- 이름 : 문자열 -Name: string

- 주소(street) : 문자열 Street: string

- 도시 : 문자열 -City: string

- 주 : 문자열 -Main: string

- 우편번호 : 10진수 숫자 -Zip code: Decimal number

3) 물품 내역(여러 항목이 반복 가능하며 최소 반복 회수는 0)(44)3) Item details (multiple items repeatable, minimum number of repetitions is 0) (44)

- 물품번호 : 숫자 3자리와 '-'로 이어지는 알파벳 대문자 2자리  -Item number: 3 digits and 2 capital letters of the alphabet followed by '-'                     

- 물품명 : 문자열 -Item Name: String

- 수량 : 최대값이 100인 양의 정수 Quantity: positive integer with a maximum of 100

- 가격 : 10진수 숫자 Price: Decimal number

- 커멘트 : 문자열이며 필수 입력 항목이 아님 -Comment: string, not required

- 납품날짜 : 날짜 타입이며 필수 입력 항목이 아님 -Delivery date: Date type, not required

이처럼 응용프로그램에서 필요로 하는 입력 항목에 대하여 분석하여, 데이터의 구조를 결정하고, 각 입력 항목 별로 입력 데이터에 어떠한 제약 조건이 필요한지를 분석한다.In this way, the input items required by the application program are analyzed to determine the structure of the data, and the constraints on the input data for each input item are analyzed.

이후, 응용프로그램 입력 항목의 분석 결과를 XML 문서로 표현하기 위하여 XML 스키마를 설계하는 과정(302)에 대하여 살펴보기로 한다. 이 때, XML 스키마는 입력 데이터의 정합성(validity)을 검증하기 위한 구문적 제약을 설정하기 위한 것이다.Next, a process 302 of designing an XML schema to represent an analysis result of an application program entry item as an XML document will be described. At this time, the XML schema is to set a syntactic constraint for verifying the validity (validity) of the input data.

즉, 도 4에 도시된 바와 같은 주문서는 아래와 같이 XML 스키마를 통하여 다양한 데이터 타입, 반복 구조, 필수 혹은 선택 입력, 정규식 표현 등과 같은 다양한 데이터를 구문 구조로 표현할 수 있으며, 상기 표현한 구문 구조에 대한 제약을 손쉽게 구현할 수 있다.
That is, an order form as shown in FIG. 4 may express various data types such as various data types, repetitive structures, required or optional inputs, regular expressions, and the like through a syntax as shown below, and restricts the syntax structure. Can be easily implemented.

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"><xsd: schema xmlns: xsd = "http://www.w3.org/2001/XMLSchema">

<xsd:element name="purchaseOrder" type="PurchaseOrderType"/> <xsd: element name = "purchaseOrder" type = "PurchaseOrderType" />

<xsd:element name="comment" type="xsd:string"/> <xsd: element name = "comment" type = "xsd: string" />                     

<xsd:complexType name="PurchaseOrderType"><xsd: complexType name = "PurchaseOrderType">

<xsd:sequence>     <xsd: sequence>

<xsd:element name="shipTo" type="USAddress"/>        <xsd: element name = "shipTo" type = "USAddress" />

<xsd:element name="billTo" type="USAddress"/>        <xsd: element name = "billTo" type = "USAddress" />

<xsd:element ref="comment" minOccurs="0"/>        <xsd: element ref = "comment" minOccurs = "0" />

<xsd:element name="items" type="Items"/>        <xsd: element name = "items" type = "Items" />

</xsd:sequence>  </ xsd: sequence>

<xsd:attribute name="orderDate" type="xsd:date"/>  <xsd: attribute name = "orderDate" type = "xsd: date" />

</xsd:complexType>
</ xsd: complexType>

<xsd:complexType name="USAddress"> <xsd: complexType name = "USAddress">

<xsd:sequence>     <xsd: sequence>

<xsd:element name="name" type="xsd:string"/>         <xsd: element name = "name" type = "xsd: string" />

<xsd:element name="street" type="xsd:string"/>         <xsd: element name = "street" type = "xsd: string" />

<xsd:element name="city" type="xsd:string"/>         <xsd: element name = "city" type = "xsd: string" />

<xsd:element name="state" type="xsd:string"/>         <xsd: element name = "state" type = "xsd: string" />

<xsd:element name="zip" type="xsd:decimal"/>         <xsd: element name = "zip" type = "xsd: decimal" />

</xsd:sequence>     </ xsd: sequence>

<xsd:attribute name="country" type="xsd:NMTOKEN" fixed="US"/>      <xsd: attribute name = "country" type = "xsd: NMTOKEN" fixed = "US" />

</xsd:complexType>
</ xsd: complexType>

<xsd:complexType name="Items"> <xsd: complexType name = "Items">

<xsd:sequence>     <xsd: sequence>

<xsd:element name="item" minOccurs="0" maxOccurs="unbounded">          <xsd: element name = "item" minOccurs = "0" maxOccurs = "unbounded">

<xsd:complexType>         <xsd: complexType>

<xsd:sequence>             <xsd: sequence>

<xsd:element name="productName" type="xsd:string"/>                <xsd: element name = "productName" type = "xsd: string" />

<xsd:element name="quantity">                <xsd: element name = "quantity">

<xsd:simpleType>                       <xsd: simpleType>

<xsd:restriction base="xsd:positiveInteger">                           <xsd: restriction base = "xsd: positiveInteger">

<xsd:maxExclusive value="100"/>                                  <xsd: maxExclusive value = "100" />

</xsd:restriction>                           </ xsd: restriction>

</xsd:simpleType>                      </ xsd: simpleType>

</xsd:element>                </ xsd: element>

<xsd:element name="USPrice" type="xsd:decimal"/>                <xsd: element name = "USPrice" type = "xsd: decimal" />

<xsd:element ref="comment" minOccurs="0"/>                <xsd: element ref = "comment" minOccurs = "0" />

<xsd:element name="shipDate" type="xsd:date" minOccurs="0"/>                <xsd: element name = "shipDate" type = "xsd: date" minOccurs = "0" />

</xsd:sequence>            </ xsd: sequence>

<xsd:attribute name="partNum" type="SKU" use="required"/>            <xsd: attribute name = "partNum" type = "SKU" use = "required" />                       

</xsd:complexType>        </ xsd: complexType>

</xsd:element>   </ xsd: element>

</xsd:sequence>  </ xsd: sequence>

</xsd:complexType>
</ xsd: complexType>

<!-- Stock Keeping Unit, a code for identifying products --> <!-Stock Keeping Unit, a code for identifying products->

<xsd:simpleType name="SKU"> <xsd: simpleType name = "SKU">

<xsd:restriction base="xsd:string">      <xsd: restriction base = "xsd: string">

<xsd:pattern value="\d{3}-[A-Z]{2}"/>         <xsd: pattern value = "\ d {3}-[A-Z] {2}" />

</xsd:restriction>      </ xsd: restriction>

</xsd:simpleType>
</ xsd: simpleType>

</xsd:schema>
</ xsd: schema>

또한, 상기에서 설명한 스키마에 의해 표현되는 XML 문서는 다음과 같이 표현될 수 있다. 이는 사용자의 입력에 의하여 생성되는 구조이며, XML 스키마에 의해 검증이 이루어지는 구조이다.
In addition, the XML document represented by the schema described above may be expressed as follows. This is a structure generated by user input and a structure that is verified by XML schema.

<?xml version="1.0"?><? xml version = "1.0"?>

<purchaseOrder orderDate="1999-10-20"> <purchaseOrder orderDate = "1999-10-20">                     

<shipTo country="US">    <shipTo country = "US">

<name>Alice Smith</name>        <name> Alice Smith </ name>

<street>123 Maple Street</street>        <street> 123 Maple Street </ street>

<city>Mill Valley</city>        <city> Mill Valley </ city>

<state>CA</state>        <state> CA </ state>

<zip>90952</zip>        <zip> 90952 </ zip>

</shipTo>    </ shipTo>

<billTo country="US">    <billTo country = "US">

<name>Robert Smith</name>        <name> Robert Smith </ name>

<street>8 Oak Avenue</street>        <street> 8 Oak Avenue </ street>

<city>Old Town</city>        <city> Old Town </ city>

<state>PA</state>        <state> PA </ state>

<zip>95819</zip>        <zip> 95819 </ zip>

</billTo>    </ billTo>

<comment>Hurry, my lawn is going wild!</comment>    <comment> Hurry, my lawn is going wild! </ comment>

<items>    <items>

<item partNum="872-AA">        <item partNum = "872-AA">

<productName>Lawnmower</productName>            <productName> Lawnmower </ productName>

<quantity>1</quantity>            <quantity> 1 </ quantity>

<USPrice>148.95</USPrice>             <USPrice> 148.95 </ USPrice>                     

<comment>Confirm this is electric</comment>            <comment> Confirm this is electric </ comment>

</item>        </ item>

<item partNum="926-AA">        <item partNum = "926-AA">

<productName>Baby Monitor</productName>            <productName> Baby Monitor </ productName>

<quantity>1</quantity>            <quantity> 1 </ quantity>

<USPrice>39.98</USPrice>            <USPrice> 39.98 </ USPrice>

<shipDate>1999-05-21</shipDate>            <shipDate> 1999-05-21 </ shipDate>

</item>        </ item>

</items>    </ items>

</purchaseOrder>
</ purchaseOrder>

이처럼 설계된 스키마는 기본적인 구문 구조를 포함하면서 사용자의 데이터 입력 여부를 확인하기 위한 추가적인 정보를 포함하고 있다. 이 추가적인 정보는 최종적인 문서의 구조와는 무관하지만, 점진적으로 XML 구문분석을 진행하며 실시간으로 입력 데이터를 검증하는 과정을 위하여 필요한 정보이다.This designed schema contains the basic syntax structure and contains additional information to confirm whether the user has entered data. This additional information is irrelevant to the final document structure, but is necessary for the process of progressively parsing XML and validating input data in real time.

즉, 본 발명에 따라 설계된 스키마는 모든 노드에 추가적인 속성(attribute)이 설정되어 있으며, 이 추가적인 속성은 응용프로그램의 기본적인 입력 데이터의 구조를 표현하는 것이 아니고, 사용자의 데이터 입력 여부를 나타내 주는 플래그 역할을 한다. 이 때, 응용 프로그램이 사용자로부터 데이터를 입력받기 시작하는 시점에서는 실제로 사용자로부터 입력받은 데이터는 없다. 사용자가 데이터를 점진 적으로 입력해 가는 동안 데이터의 내용이 채워지게 되므로, 어떤 항목이 사용자로부터 입력된 데이터인지 그렇지 않은 데이터인지 구분할 필요가 있다. 따라서, 각 노드(입력 항목)에 추가적인 속성(사용자의 데이터 입력 여부를 나타내 주는 플래그)을 추가하여, 필수 입력 항목이 사용자에 의하여 입력되었는지 여부를 표현한다. 이로써, 모든 데이터의 입력이 완료되었을 때, 필수 입력 항목이 누락되었는지의 여부를 확인할 수 있게 된다. That is, the schema designed according to the present invention has an additional attribute set on all nodes, and this additional attribute does not represent a basic input data structure of an application program, but serves as a flag indicating whether a user inputs data. Do it. At this time, when the application starts receiving data from the user, there is no data actually input from the user. Since the content of the data is filled while the user gradually enters the data, it is necessary to distinguish whether the item is input from the user or not. Therefore, an additional attribute (flag indicating whether or not the user inputs data) is added to each node (input item) to express whether the required input item has been input by the user. Thus, when all data has been inputted, it is possible to check whether a required input item is missing.

이를 위하여, 본 발명에서는 기본적인 문서 구조를 표현하는 스키마에 필수 입력 항목이 입력되었는지 여부를 표현하는 속성(attribute)을 포함시켜 확장시킨다. 이 속성(attribute)은 예를 들어 "userInput"이라는 속성으로 모든 노드에 포함되는데, 이를 "name" 이라는 노드(입력 항목)를 예를 들어 확장하면 다음과 같이 표현된다.To this end, in the present invention, an extension expressing whether a required input item is input to the schema representing the basic document structure is extended. This attribute is included in every node, for example, as an attribute called "userInput", which is expanded as an example by expanding the node (input) named "name" as follows:

<xsd:element name="name" type="xsd:string"/><xsd: element name = "name" type = "xsd: string" />

상기의 구문은 "userInput"이라는 속성(attribute)을 추가함에 따라 다음과 같이 확장된다.The above syntax is extended as follows by adding an attribute called "userInput".

<xsd:element name="name" type="xsd:string"><xsd: element name = "name" type = "xsd: string">

<xsd:complexType>      <xsd: complexType>

<xsd:attribute name="userInput" type="xsd:string"/>           <xsd: attribute name = "userInput" type = "xsd: string" />

</xsd:complexType>      </ xsd: complexType>

</xsd:element></ xsd: element>

이처럼 사용자의 데이터 입력 여부를 나타내기 위한 추가적인 속성 (attribute)은 필수 항목인 모든 노드에 추가적으로 삽입된다. 이 때, 속성의 타입(type)은 여러가지가 가능하나, 상기의 일실시예에서는 문자열(string)로 정의하였다. 즉, 사용자가 데이터를 입력하였는지의 여부를 'Y' 또는 'N'의 문자열로 나타낼 수 있다.As such, an additional attribute to indicate whether the user inputs data is inserted in every node that is required. At this time, the type (type) of the attribute can be various, but in the above embodiment is defined as a string (string). That is, whether or not the user inputs data may be represented by a character string of 'Y' or 'N'.

한편, 응용프로그램의 입력 인터페이스와 XML 문서 구조와의 매핑을 설정하는 과정, 즉 상기 설계한 XML 스키마에 상응하는 XML 문서를 생성하는 과정(303)에 대하여 좀 더 상세히 살펴보면 다음과 같다.Meanwhile, a process of setting mapping between an input interface of an application program and an XML document structure, that is, generating an XML document corresponding to the designed XML schema 303 will be described in more detail as follows.

일반적으로 응용프로그램에서 사용자로부터 데이터를 입력받을 경우에는 모니터 등을 통하여 입력 화면을 제공하고, 사용자로부터 키보드나 마우스 등을 통하여 사용자 데이터를 입력받는 사용자 인터페이스(User Interface)를 이용한다. In general, when an application receives data from a user, an input screen is provided through a monitor or the like, and a user interface that receives user data from a user through a keyboard or a mouse is used.

그런데, 사용자 인터페이스는 응용프로그램의 특성 및 입력 데이터의 특성에 따라 다양하게 나타날 수 있다. 따라서, XML 스키마에 상응하는 XML 문서를 생성하기 위해서는 다양한 사용자 인터페이스를 통하여 입력받은 데이터가 XML 문서 구조의 어떤 항목과 대응되는지에 대한 정보를 가지고 있어야 한다. 이는 사용자 인터페이스의 항목과 XML 문서 구조의 "XPath"를 연결시키는 것으로 가능하다. "XPath(The XML Path Language)"는 XML 변환을 위한 언어(XML Transformations)에서 문서 전체나 일부를 참조하기 위한 언어이다.However, the user interface may vary depending on the characteristics of the application and the characteristics of the input data. Therefore, in order to generate an XML document corresponding to the XML schema, the data input through various user interfaces must have information about which item of the XML document structure corresponds to. This is possible by linking the "XPath" in the XML document structure with the item in the user interface. "XPath (The XML Path Language)" is a language for referencing all or part of a document in XML Transformations.

예를 들어, 도 5에 도시된 바와 같은 사용자 인터페이스에서 배송지의 하위 구조로 나타나는 "Name" 항목은 "/purchaseOrder/shipTo/name" 이라는 "XPath"로 매핑된다. For example, the "Name" item that appears as a substructure of the delivery destination in the user interface as shown in FIG. 5 is mapped to "XPath" of "/ purchaseOrder / shipTo / name".                     

이를 개념적으로 표현하자면, 다음과 같은 매핑 정보의 나열로 표기될 수 있다.To express this conceptually, it may be indicated by the following mapping information.

[TextBox1, /purchaseOrder/shipTo/name][TextBox1, / purchaseOrder / shipTo / name]

[TextBox2, /purchaseOrder/shipTo/street][TextBox2, / purchaseOrder / shipTo / street]

본 발명의 일실시예를 웹 환경에 국한하면, 입력폼에서 <input type = "text" name = "/ purchaseOrder/shipTo/name"> 와 같은 방식의 표현이 가능하다. 이와 같이, 사용자 인터페이스 항목과 XML의 "Xpath"를 매핑해 놓을 경우에는 널리 알려진 공지 기술로서 XML 문서의 구성이 가능하다. 예를 들어, 입력 데이터를 XML 문서의 구조 속에 생성하는 방법으로는‘엑스엠엘 문서의 임의 구조 동적 생성 방법(출원번호 10-2002-37136)' 등과 같은 기술을 이용할 수 있다.When an embodiment of the present invention is limited to a web environment, an input form may be expressed in a manner such as <input type = "text" name = "/ purchaseOrder / shipTo / name">. As such, when the user interface item and the "Xpath" of the XML are mapped, the XML document can be configured as a well-known technique. For example, a method of generating input data in a structure of an XML document may use a technique such as 'a method for dynamically generating an arbitrary structure of an SMS document (Application No. 10-2002-37136)'.

그 다음 과정으로서, 상기 설계한 XML 스키마에 상응하는 XML 문서를 생성한다. 이 때, 상기 생성한 XML 문서는 상기 설계한 XML 스키마에 상응하는 최소한의 구조를 가지고 있으며, 각 입력 항목에 더미값이 입력되어 있는 상태이다. 이러한 더미(dummy) XML 문서는 사용자의 입력이 이루어질 때마다 실시간으로 입력 데이터에 대한 유효성 검증을 수행하기 위하여 기본적으로 스키마가 규정하는 구문 구조를 만족한다. As a next step, an XML document corresponding to the designed XML schema is generated. At this time, the generated XML document has a minimum structure corresponding to the designed XML schema, and a dummy value is input to each input item. Such a dummy XML document basically satisfies the syntax structure defined by the schema in order to validate input data in real time whenever a user input is made.

이처럼 설계한 XML 스키마 구조에 부합하는 XML 문서를 기반으로, 새롭게 입력된 데이터를 XML 구조 속에 삽입하여, 상기 삽입한 데이터가 기설계한 XML 스키마에 만족하는지를 검증해 나가는 과정을 반복함으로써 실시간으로 사용자 입력 데 이터에 대한 유효성 검증을 수행하게 된다.Based on the XML document conforming to the designed XML schema structure, the newly inputted data is inserted into the XML structure to verify whether the inserted data satisfies the designed XML schema. Validation will be performed on the data.

즉, 본 발명에서 새로운 입력 데이터가 발생하기 전의 XML 문서는 유효하다(valid)는 가정을 하고 있으므로, 최초의 입력 데이터가 발생하기 이전의 문서도 유효한 조건을 만족해야 한다. 따라서, 사용자 입력 데이터가 없는 상태에서도 유효한 XML 문서를 생성한다. 이처럼 생성한 더미(dummy) XML 문서는 필수 입력 항목에 스키마 제약을 만족하는 더미(dummy)값이 입력되어 있으며, 사용자가 직접 입력한 데이터가 아니라는 것을 나타내는 플래그를 포함하고 있다. 더미(dummy) XML 문서의 일실시예를 살펴보면 다음과 같다.
That is, in the present invention, since the XML document before the new input data is generated is assumed to be valid, the document before the first input data is generated must also satisfy the valid condition. Therefore, a valid XML document is generated even in the absence of user input data. The dummy XML document generated in this way has a dummy value that satisfies the schema constraint in a required input item, and includes a flag indicating that the data is not directly input by the user. An example of a dummy XML document is as follows.

<?xml version="1.0"?><? xml version = "1.0"?>

<purchaseOrder orderDate="1999-10-20" userInput="N"><purchaseOrder orderDate = "1999-10-20" userInput = "N">

<shipTo country="US" userInput="N">    <shipTo country = "US" userInput = "N">

<name userInput="N">dummy</name>        <name userInput = "N"> dummy </ name>

<street userInput="N">dummy</street>        <street userInput = "N"> dummy </ street>

<city userInput="N">dummy</city>        <city userInput = "N"> dummy </ city>

<state userInput="N">dummy</state>        <state userInput = "N"> dummy </ state>

<zip>1</zip>        <zip> 1 </ zip>

</shipTo>    </ shipTo>

<billTo country="US" userInput="N">    <billTo country = "US" userInput = "N">

<name userInput="N">dummy</name>         <name userInput = "N"> dummy </ name>                     

<street userInput="N">dummy</street>        <street userInput = "N"> dummy </ street>

<city userInput="N">dummy</city>        <city userInput = "N"> dummy </ city>

<state userInput="N">dummy</state>        <state userInput = "N"> dummy </ state>

<zip userInput="N">1</zip>        <zip userInput = "N"> 1 </ zip>

</billTo>    </ billTo>

<items>    <items>

</items>    </ items>

</purchaseOrder>
</ purchaseOrder>

이러한 더미(dummy) XML 문서는 추후 사용자의 입력 데이터가 하나씩 입력될 때마다 해당 노드의 더미값이 사용자 입력 데이터로 대치된다. 또한, 해당 노드의 "userInput" 속성(attribute) 항목의 값도 사용자 입력 데이터임을 나타내는 값("Y")으로 변경된다.In the dummy XML document, each time a user's input data is input one by one, the dummy value of the corresponding node is replaced with the user input data. In addition, the value of the "userInput" attribute item of the node is also changed to a value ("Y") indicating that it is user input data.

이후, 상기 응용프로그램이 사용자로부터 데이터를 입력받으면, 상기 생성한 XML 문서의 구문분석을 수행하여 사용자 입력 데이터의 유효성 검증이 실시간으로 이루어지게 된다. 그 과정을 보다 상세히 살펴보기로 한다.Then, when the application receives data from the user, the validation of the user input data is performed in real time by parsing the generated XML document. Let's take a closer look at the process.

먼저, 사용자가 사용자 인터페이스를 이용하여 특정 입력 항목에 데이터를 입력하고 완료한다. 이 때, 사용자 인터페이스의 성격에 따라 입력 완료의 시점이 결정되는데, 텍스트 박스(Textbox)와 같은 경우는 입력을 마치고 입력칸을 벗어나는 이벤트가 발생함에 따라 입력이 완료되며, 선택 버튼(radio button)의 경우는 특정 값을 클릭하여 선택하는 순간에 입력이 완료된다.First, a user enters data into a specific input item using a user interface and completes it. At this time, the input completion time is determined according to the characteristics of the user interface. In the case of a text box, the input is completed as the event is completed and the event is left out of the input box. The entry is complete at the moment you select by clicking on a specific value.

한편, 사용자가 특정 입력 항목에 새로운 값을 입력하면, 그 입력 데이터가 XML 문서의 어떤 구조에 대응되는지의 정보를 조회하여, 해당하는 "XPath"의 노드값을 입력한다. 이 때, 노드가 생성되어 있지 않을 경우에는 새롭게 생성하되, 상위 노드가 생성되어 있지 않으면, 상위 노드부터 생성하고 최하위 노드를 생성한다. 일반적으로 상위 노드의 생성은, 생성되어 있지 않은 모든 상위 노드를 역으로 생성해 내려오는 재귀적 방법을 이용하는데, 이는 널리 알려진 공지 기술이므로 상술하는 것은 생략하기로 한다. On the other hand, when a user inputs a new value in a specific input item, information about which structure of the input data corresponds to the XML document is inquired, and a node value of the corresponding "XPath" is input. At this time, if a node is not created, a new node is created. If a parent node is not created, a node is created from the parent node and the lowest node is generated. In general, the generation of the upper node uses a recursive method in which all upper nodes that have not been generated are generated in reverse. This is well known in the art, and thus detailed descriptions thereof will be omitted.

또한, 만일 이미 생성이 되어 있는 노드의 경우는, 최초에 더미값이 입력되어 있는 노드이거나, 사용자가 이미 입력한 항목을 재입력하는 노드이다. 이와 같이 이미 생성되어 있는 노드에 새로운 값을 입력할 경우에는, 더미값이 입력되어 있는지의 여부를 나타내는 "userInput" 속성(attribute)을 변경시켜 사용자에 의하여 새로운 값이 입력되었음을 표시한다.In addition, in the case of a node that has already been created, it is a node to which a dummy value is initially input or a node which re-enters an item already input by a user. When a new value is input to a node already created in this way, a "userInput" attribute indicating whether a dummy value is input is changed to indicate that a new value has been input by the user.

이후, 사용자 입력에 따라 새롭게 생성된 XML 문서에 대하여 스키마 검증을 포함하는 구문분석을 수행한다. 구문분석을 수행한 결과, 새롭게 생성된 XML 문서에 오류가 존재하면, 사용자의 입력 데이터가 미리 정의된 XML 스키마의 구조와 맞지 않는 값이 입력되었음을 의미하므로, 적절한 방법으로 에러를 처리하고, 재입력을 요구한다. 이 과정은 응용 프로그램에 따라 다양한 입력 항목에 대한 검증을 매번 개별적으로 개발하는 것이 아니라, XML 스키마의 설계와 입력 데이터에 따른 XML 문서 확장 구성, 그리고 XML 문서의 구문분석을 통하여 범용적으로 사용할 수 있는 입력 데이터 검증 루틴이 실제로 동작하는 주요한 과정이다. 이 때, 실시간 입력 데이터 검증 과정은 사용자로부터 "입력 완료" 버튼을 누르는 등과 같이 명시적으로 입력이 완료되기 전까지 각 입력 항목에 데이터가 입력될 때마다 반복수행된다.Thereafter, parsing including schema verification is performed on the newly generated XML document according to the user input. As a result of parsing, if an error exists in the newly created XML document, it means that the input data of the user does not match the structure of the predefined XML schema. Requires. This process can be used universally by designing XML schema, constructing XML document extension according to input data, and parsing XML document. The input data verification routine is the main process that actually works. At this time, the real-time input data verification process is repeated every time data is input to each input item until the input is explicitly completed, such as pressing a "complete input" button from the user.

한편, 사용자의 입력 데이터가 미리 정의된 XML 스키마의 구조와 맞지 않는 값이면 사용자에게 재입력을 요구하므로, 최종적으로 사용자 입력이 모두 완료된 상태에서는 사용자 입력 데이터가 모두 유효하다고 가정할 수 있다. 그러나, 필수 입력 항목에 더미값이 입력된 초기 상태인 경우에는 원하는 데이터가 완전히 입력된 상태라고 볼 수 없다. 또한, 각 입력 항목에 대한 사용자 입력 완료시마다 입력 데이터의 적합성(validity)을 검사하여 잘못된 입력 데이터인 경우에 에러 메시지를 발생시키고 재입력을 유도하지만, 응용프로그램의 환경에 따라 입력 데이터의 오류를 완전히 차단하였다고 볼 수는 없으며, 경우에 따라서는 입력 데이터 오류가 발생한 항목을 재입력하도록 사용자에게 강제할 수 없을 수도 있다. 왜냐하면, 사용자가 계속되는 에러 메시지에도 불구하고 이를 무시하고 입력 완료를 선택할 수도 있기 때문이다.On the other hand, if the user's input data is a value that does not match the structure of the predefined XML schema, the user is required to re-enter. Therefore, it can be assumed that all of the user input data is valid when the user input is completed. However, when the dummy value is input to the required input item, the desired data may not be completely input. In addition, the validity of the input data is checked upon completion of user input for each input item to generate an error message in case of incorrect input data and to re-enter the input data. It may not be regarded as blocked, and in some cases, the user may not be forced to re-enter an item having an input data error. This is because the user may ignore this and choose to complete the input despite the error message that follows.

따라서, 입력이 최종적으로 마무리된 시점에서 입력 데이터에 대한 전체적인 검증이 필요하다. 이 과정은 다음과 같이 이루어진다.Therefore, the entire verification of the input data is required at the time when the input is finally finished. This process is as follows.

먼저, 입력 완료에 따라 최종적으로 생성된 XML 문서를 스키마 기반으로 구문분석하여 구문적 요구 사항에서 벗어난 부분(오류)이 없는지를 확인한다. 만약, 오류가 있으면 재입력을 요구한다. First, upon completion of input, the finally generated XML document is parsed based on the schema to confirm that there are no deviations (errors) from the syntactic requirements. If there is an error, a re-entry is required.                     

그리고, XML 문서의 전 노드를 탐색하며 "userInput" 속성(attribute)을 확인하여, 필수 입력 항목 중에 사용자에 의해 입력되지 않은 항목(userInput = "N")이 존재하는지를 확인한다. 만약, 필수 입력 항목 중에 사용자에 의해 입력되지 않은 항목이 있으면 이에 대해 에러 메시지를 발생시키고 사용자의 재입력을 요구한다.Then, all nodes of the XML document are searched and the "userInput" attribute is checked to see whether there is an item (userInput = "N") that is not input by the user. If any of the required input items is not input by the user, an error message is generated for this and a user's input is required again.

이 두 가지 검증에서 에러가 발생하지 않으면, 응용프로그램의 입력 데이터가 유효한 상태이다. 즉, 검증이 최종적으로 완료된 상태이다. 따라서, 입력 데이터를 응용프로그램의 엔진으로 전달하여 후속 처리를 진행시킬 수 있다.If no error occurs in these two verifications, the application's input data is valid. In other words, the verification is finally completed. Thus, the input data can be passed to the engine of the application program for further processing.

한편, 본 발명은 사용자로부터 데이터를 입력받는 대부분의 응용프로그램에서 활용될 수 있다. 특히, 구조적인 데이터 구조를 가지는 다량의 자료를 입력하는 응용프로그램 또는 XML 구문분석기를 유연하게 사용할 수 있는 웹 브라우저 환경의 응용프로그램에서 매우 유용하다.Meanwhile, the present invention can be utilized in most application programs that receive data from a user. In particular, it is very useful in applications that input a large amount of data having a structured data structure or in a web browser environment in which an XML parser can be flexibly used.

상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.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. Since this process can be easily implemented by those skilled in the art will not be described in more detail.

이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.
The present invention described above is capable of various substitutions, modifications, and changes without departing from the technical spirit of the present invention for those skilled in the art to which the present invention pertains. It is not limited by the drawings.

상기와 같이 본 발명은, 사용자의 입력 데이터를 실시간으로 검증하여 오류를 방지하고, 악의적인 공격으로부터 응용프로그램을 방어할 수 있는 효과가 있다.As described above, the present invention has the effect of preventing errors by verifying user input data in real time and defending an application from malicious attack.

또한, 본 발명은 XML 스키마를 통하여 범용적인 방법으로 사용자 입력 데이터를 검증할 수 있으므로, 응용프로그램의 개발 시간 및 비용을 크게 절감시킬 수 있는 효과가 있다.In addition, the present invention can verify the user input data in a general manner through the XML schema, it is possible to greatly reduce the development time and cost of the application program.

Claims (12)

응용프로그램의 입력 데이터 실시간 검증 장치에 있어서,In the input data real-time verification device of the application, 상기 응용프로그램의 입력 항목을 분석하기 위한 입력 항목 분석 수단;Input item analysis means for analyzing an input item of the application program; 상기 입력 항목 분석 수단에서 분석한 입력 항목에 따라 XML(eXtensible Markup Language) 스키마를 설계하기 위한 XML 스키마 설계 수단;XML schema design means for designing an XML (eXtensible Markup Language) schema according to the input item analyzed by the input item analyzing means; 상기 XML 스키마 설계 수단에서 설계한 XML 스키마에 상응하는 XML 문서를 생성하기 위한 XML 문서 생성 수단; 및XML document generating means for generating an XML document corresponding to the XML schema designed by the XML schema design means; And 상기 응용프로그램이 사용자 데이터를 입력받음에 따라 상기 XML 문서 생성 수단에서 생성한 XML 문서의 해당 항목에 상기 입력받은 데이터를 삽입하고 실시간으로 구문분석을 수행하는 과정을 반복수행하여, 최종적으로 입력 데이터가 검증된 XML 문서를 출력시키기 위한 입력 데이터 검증 수단As the application receives user data, the process of repeatedly inserting the received data into the corresponding item of the XML document generated by the XML document generating means and parsing in real time is performed. Input data validation means for outputting a validated XML document 을 포함하는 응용프로그램의 입력 데이터 실시간 검증 장치.Input data real-time verification device of the application including a. 제 1 항에 있어서,The method of claim 1, 상기 XML 문서 생성 수단은,The XML document generating means, 상기 입력 항목 분석 수단에서 분석한 입력 항목과 상기 XML 스키마 설계 수단에서 설계한 XML 스키마 내의 입력 항목을 "XPath"를 이용하여 연결시켜 XML 문서를 생성하는 것을 특징으로 하는 응용프로그램의 입력 데이터 실시간 검증 장치.Apparatus for real-time verification of input data of an application program, wherein the input item analyzed by the input item analyzing means and the input item in the XML schema designed by the XML schema design means are connected by using "XPath" to generate an XML document. . 제 1 항에 있어서,The method of claim 1, 상기 XML 문서 생성 수단은,The XML document generating means, 상기 XML 스키마 설계 수단에서 설계한 XML 스키마에 상응하는 XML 문서를 생성한 후, 상기 생성한 XML 문서의 최종 노드에 상기 XML 스키마를 만족하는 더미값을 입력하고, 상기 각 최종 노드에 입력된 값이 더미값인지 또는 사용자 입력 데이터인지를 구분하기 위한 속성(attribute) 필드를 입력하는 것을 특징으로 하는 응용프로그램의 입력 데이터 실시간 검증 장치.After generating an XML document corresponding to the XML schema designed by the XML schema design means, input a dummy value that satisfies the XML schema to the final node of the generated XML document, the value input to each of the final node Apparatus for real-time verification of input data of an application program comprising inputting an attribute field for distinguishing whether the data is a dummy value or user input data. 제 3 항에 있어서,The method of claim 3, wherein 상기 입력 데이터 검증 수단이 상기 입력받은 데이터를 삽입하는 과정은,The process of inserting the received data by the input data verification means, 상기 XML 문서 내에서 해당 노드의 더미값을 상기 입력받은 입력 데이터로 대치하고, 상기 노드의 더미값이 사용자 입력 데이터로 대치되었음을 알리는 값을 속성 필드에 입력하는 것을 특징으로 하는 응용프로그램의 입력 데이터 실시간 검증 장치.Replace the dummy value of the corresponding node with the input data in the XML document, and input a value indicating that the dummy value of the node has been replaced with the user input data in the attribute field. Verification device. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,The method according to any one of claims 1 to 4, 상기 입력 데이터 검증 수단이 구문분석을 수행하는 과정은,The process of parsing by the input data verification means, 상기 응용프로그램이 사용자 데이터를 입력받음에 따라 상기 입력받은 데이터를 삽입한 XML 문서에 대하여 실시간으로 구문분석을 수행하여 오류가 존재함에 따라 에러 메시지를 출력시켜 사용자에게 재입력을 요구하고, 그 결과로 재입력받은 입력 데이터를 재검증하는 것을 특징으로 하는 응용프로그램의 입력 데이터 실시간 검증 장치.As the application program receives the user data, it parses the XML document in which the input data is inserted in real time, outputs an error message as an error exists, and requests the user to input again. Apparatus for real-time verification of input data of an application program, characterized in that the input data is re-validated. 제 5 항에 있어서,The method of claim 5, wherein 상기 입력 데이터 검증 수단이 구문분석을 수행하는 과정은,The process of parsing by the input data verification means, 사용자 데이터 입력이 종료(사용자로부터 입력 완료 등의 키를 입력받음)됨에 따라 상기 XML 문서의 노드 전체를 따라가며 속성(attribute) 필드를 확인하여, 사용자로부터 데이터가 입력되지 않은 필수 입력 항목에 대한 에러 메시지를 출력시켜 사용자에게 재입력을 요구하고, 그 결과로 재입력받은 입력 데이터를 재검증하는 것을 특징으로 하는 응용프로그램의 입력 데이터 실시간 검증 장치.As user data input is terminated (key input such as completion of input from the user) is followed, the entire field of the XML document is checked and the attribute field is checked. And outputting a message to request re-entry to the user, and as a result, re-validating input data. 응용프로그램의 입력 데이터 실시간 검증 방법에 있어서,In the input data real-time verification method of the application, 상기 응용프로그램의 입력 항목을 분석하여 XML 스키마를 설계하는 XML 스키마 설계 단계;An XML schema design step of designing an XML schema by analyzing input items of the application program; 상기 분석한 응용프로그램의 입력 항목과 XML 스키마와의 매핑을 설정하여 상기 설계한 XML 스키마에 상응하는 XML 문서를 생성하는 XML 문서 생성 단계;An XML document generation step of generating an XML document corresponding to the designed XML schema by setting a mapping between an input item of the analyzed application program and an XML schema; 상기 응용프로그램이 사용자로부터 데이터를 입력받음에 따라 상기 생성한 XML 문서에 입력 데이터를 삽입하고, 실시간으로 구문분석을 수행하여 최종적으로 입력 데이터가 검증된 XML 문서를 출력시키는 실시간 구문분석 단계; 및A real time parsing step of inserting input data into the generated XML document as the application program receives data from a user, parsing the generated XML document in real time, and finally outputting an XML document in which the input data is verified; And 상기 구문분석 결과로 에러가 발생함에 따라 에러가 발생한 입력 항목에 대한 재입력을 요구하는 재입력 요구 단계A re-input request step of requesting re-entry of an input item in which an error occurs as an error occurs as a result of the parsing; 를 포함하는 응용프로그램의 입력 데이터 실시간 검증 방법.Input data real-time verification method of the application including a. 제 7 항에 있어서,The method of claim 7, wherein 상기 XML 문서 생성 단계는,The XML document generation step, 상기 분석한 입력 항목과 상기 설계한 XML 스키마 내의 입력 항목을 "XPath"를 이용하여 연결시켜, 상기 설계한 XML 스키마에 상응하는 XML 문서를 생성하는 것을 특징으로 하는 응용프로그램의 입력 데이터 실시간 검증 방법.And connecting the analyzed input item and the input item in the designed XML schema using "XPath" to generate an XML document corresponding to the designed XML schema. 제 7 항에 있어서,The method of claim 7, wherein 상기 XML 문서 생성 단계는,The XML document generation step, 상기 분석한 응용프로그램의 입력 항목과 XML 스키마와의 매핑을 설정하여 상기 설계한 XML 스키마에 상응하는 XML 문서를 생성하는 단계;Generating an XML document corresponding to the designed XML schema by setting a mapping between the input item of the analyzed application program and the XML schema; 상기 생성한 XML 문서의 최종 노드에 상기 XML 스키마를 만족하는 더미값을 입력하는 단계; 및Inputting a dummy value satisfying the XML schema to a final node of the generated XML document; And 상기 각 최종 노드에 입력된 값이 더미값인지 또는 사용자 입력 데이터인지를 구분하기 위한 속성(attribute) 필드를 입력하는 단계Inputting an attribute field for distinguishing whether a value input to each final node is a dummy value or user input data; 를 포함하는 응용프로그램의 입력 데이터 실시간 검증 방법.Input data real-time verification method of the application including a. 제 9 항에 있어서,The method of claim 9, 상기 실시간 구문분석 단계는,The real time parsing step, 상기 응용프로그램이 사용자로부터 데이터를 입력받음에 따라 상기 XML 문서 내에서 해당 노드의 더미값을 상기 입력받은 입력 데이터로 대치하는 단계;Replacing the dummy value of the node with the input data in the XML document as the application receives data from the user; 상기 노드의 더미값이 사용자 입력 데이터로 대치되었음을 알리는 값을 속성 필드에 입력하는 단계; 및Inputting a value in the attribute field indicating that the dummy value of the node has been replaced with user input data; And 상기 XML 문서에 대하여 실시간으로 구문분석을 수행하는 단계Parsing the XML document in real time 를 포함하는 응용프로그램의 입력 데이터 실시간 검증 방법.Input data real-time verification method of the application including a. 제 7 항 내지 제 10 항 중 어느 한 항에 있어서,The method according to any one of claims 7 to 10, 상기 재입력 요구 단계는,The re-input request step, 상기 응용프로그램의 사용자 데이터 입력이 종료(사용자로부터 입력 완료 등 의 키를 입력받음)됨에 따라 상기 XML 문서의 노드 전체를 따라가며 속성(attribute) 필드를 확인하여, 사용자로부터 데이터가 입력되지 않은 필수 입력 항목에 대한 에러 메시지를 출력시켜 사용자에게 재입력을 요구하는 것을 특징으로 하는 응용프로그램의 입력 데이터 실시간 검증 방법.As the user data input of the application is terminated (a key such as input completion is input from the user), the mandatory input is performed by following the entire node of the XML document and checking the attribute field so that no data is input from the user. Real-time verification method for input data of an application program, characterized by outputting an error message for an item and requesting re-entry to the user. 응용프로그램을 구동시키기 위한 시스템에,In the system to run the application, 상기 응용프로그램의 입력 항목을 분석하여 XML 스키마를 설계하는 XML 스키마 설계 기능;An XML schema design function for designing an XML schema by analyzing input items of the application program; 상기 분석한 응용프로그램의 입력 항목과 XML 스키마와의 매핑을 설정하여 상기 설계한 XML 스키마에 상응하는 XML 문서를 생성하는 XML 문서 생성 기능;An XML document generation function for generating an XML document corresponding to the designed XML schema by setting a mapping between an input item of the analyzed application program and an XML schema; 상기 응용프로그램이 사용자로부터 데이터를 입력받음에 따라 상기 생성한 XML 문서에 입력 데이터를 삽입하고, 실시간으로 구문분석을 수행하여 최종적으로 입력 데이터가 검증된 XML 문서를 출력시키는 실시간 구문분석 기능; 및A real time parsing function for inserting input data into the generated XML document as the application program receives data from a user, parsing in real time, and outputting an XML document in which input data is finally verified; And 상기 구문분석 결과로 에러가 발생함에 따라 에러가 발생한 입력 항목에 대한 재입력을 요구하는 재입력 요구 기능A re-input request function for requesting re-entry of an input item in which an error occurs as an error occurs as a result of the parsing. 을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.A computer-readable recording medium having recorded thereon a program for realizing this.
KR1020040077473A 2004-09-24 2004-09-24 Apparatus and method for verifying input data of application program in real time Ceased KR20060028500A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040077473A KR20060028500A (en) 2004-09-24 2004-09-24 Apparatus and method for verifying input data of application program in real time

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040077473A KR20060028500A (en) 2004-09-24 2004-09-24 Apparatus and method for verifying input data of application program in real time

Publications (1)

Publication Number Publication Date
KR20060028500A true KR20060028500A (en) 2006-03-30

Family

ID=37139206

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040077473A Ceased KR20060028500A (en) 2004-09-24 2004-09-24 Apparatus and method for verifying input data of application program in real time

Country Status (1)

Country Link
KR (1) KR20060028500A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101067506B1 (en) * 2008-10-23 2011-09-27 훙-치엔 초우 Real-time data protection method and data protection device for implementing the same
KR20170143137A (en) * 2016-06-20 2017-12-29 (주)제이씨원 Device and method for inputing handwritten letter in electronic document
KR20210020233A (en) * 2019-08-14 2021-02-24 주식회사 이지텍 Server unit dedicated to return processing

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101067506B1 (en) * 2008-10-23 2011-09-27 훙-치엔 초우 Real-time data protection method and data protection device for implementing the same
KR20170143137A (en) * 2016-06-20 2017-12-29 (주)제이씨원 Device and method for inputing handwritten letter in electronic document
KR20210020233A (en) * 2019-08-14 2021-02-24 주식회사 이지텍 Server unit dedicated to return processing

Similar Documents

Publication Publication Date Title
Offutt et al. Generating test cases for web services using data perturbation
Friesen Java XML and JSON
CN100489879C (en) Method, system and server for checking page data
Milo et al. Exchanging intensional XML data
US8190991B2 (en) XSD inference
US7134072B1 (en) Methods and systems for processing XML documents
US7657832B1 (en) Correcting validation errors in structured documents
US20050144556A1 (en) XML schema token extension for XML document compression
US20020103835A1 (en) Methods and apparatus for constructing semantic models for document authoring
Brabrand et al. Dual syntax for XML languages
US20060004729A1 (en) Accelerated schema-based validation
Brabrand et al. Static validation of dynamically generated HTML
EP1403781A1 (en) Validation system and method
US20110154184A1 (en) Event generation for xml schema components during xml processing in a streaming event model
KR20060028500A (en) Apparatus and method for verifying input data of application program in real time
Van der Vlist Schematron
Emer et al. A testing approach for XML schemas
Poulding et al. The automated generation of humancomprehensible XML test sets
Møller Document Structure Description 2.0
Bradley The XML schema companion
CN115510052A (en) Dynamic form and database-based dynamic verification method and system
Solimando et al. Static analysis of XML document adaptations
Wahlin XML for asp. net developers
Friesen Java XML
Gatti et al. Domain-independent data validation and content assistance as a service

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20040924

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20090903

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 20040924

Comment text: Patent Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20110307

Patent event code: PE09021S01D

E601 Decision to refuse application
PE0601 Decision on rejection of patent

Patent event date: 20111123

Comment text: Decision to Refuse Application

Patent event code: PE06012S01D

Patent event date: 20110307

Comment text: Notification of reason for refusal

Patent event code: PE06011S01I