Abstract
For using XML data in programming languages, there is a data binding method, which generates classes from XML type definitions. However, since existing binding frameworks for this method generate all classes for element definitions, the number of generated classes becomes large and the complexity of the overall application system gets high. In this research, we propose an inline binding method for selecting necessary classes from element definitions. In the proposed method, classes are created only for elements with repetitions and recursions, and they include fields for values of terminal elements. We introduce a generation algorithm for binding classes and the marshaling methods for recovering the omitted paths. We develop IBinder system to validate the proposed method and compare the generated codes with the ones of existing systems. As a result, we carl show that the number of generated classes decrease substantially compared to other systems.
어플리케이션에서 XML 데이터를 이용하기 위한 방법으로 XML 타입 정의에 맞는 클래스를 생성하고 데이터의 인터페이스를 담당하게 하는 XML 바인딩 방법이 있다. 그런데 이러한 방법을 지원하는 기존의 바인딩 프레임워크에서는 XML 정의 문법에서 정의된 모든 요소에 대해 클래스를 생성하여 클래스의 수가 많아지고 전체 어플리케이션의 복잡도가 높아지는 문제가 있다. 본 연구에서는 XML 정의 문법에서 XML 바인딩 클래스 생성이 필요한 요소들을 추출하는 인라인 방법을 제안한다. 제안된 바인딩 클래스생성 방법은 반복과 재귀 등의 경우에만 클래스를 생성하고 터미널 요소의 값은 필드로 표현하는 클래스를 생성한다. 그리고 인라인된 요소들의 경로를 회복하여 XML 문서를 생성하기 위한 마샬링 알고리즘을 소개한다. 제안된 방법을 검증하기 위하여 IBinder 시스템을 개발하고 생성된 결과를 기존의 방법과 비교하였다. 그 결과 IBinder 시스템에서 생성된 XML 바인딩 클래스의 수가 크게 줄어드는 것을 보일 수 있었다.