KR100952051B1 - Method and Apparatus for Encoding and Decoding XML Documents Using Path Code - Google Patents

Method and Apparatus for Encoding and Decoding XML Documents Using Path Code Download PDF

Info

Publication number
KR100952051B1
KR100952051B1 KR20080043539A KR20080043539A KR100952051B1 KR 100952051 B1 KR100952051 B1 KR 100952051B1 KR 20080043539 A KR20080043539 A KR 20080043539A KR 20080043539 A KR20080043539 A KR 20080043539A KR 100952051 B1 KR100952051 B1 KR 100952051B1
Authority
KR
South Korea
Prior art keywords
path code
xpath
elements
xml document
schema
Prior art date
Application number
KR20080043539A
Other languages
Korean (ko)
Other versions
KR20090048288A (en
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 EP08168606A priority Critical patent/EP2068252A3/en
Publication of KR20090048288A publication Critical patent/KR20090048288A/en
Application granted granted Critical
Publication of KR100952051B1 publication Critical patent/KR100952051B1/en

Links

Images

Abstract

본 발명은 XML 문서의 부호화 및 복호화 방법과 장치에 관한 것으로서, 경로 코드를 이용한 XML 문서의 부호화 및 복호화 방법과 장치에 관한 것이다.The present invention relates to a method and apparatus for encoding and decoding an XML document, and to a method and apparatus for encoding and decoding an XML document using a path code.

본 발명에 따른 XML 문서를 부호화하는 방법은 XML 문서에서 문자 데이터를 직접 갖는 모든 엘리먼트 태그 및 애트리뷰트를 검색하는 단계, 검색된 엘리먼트 태그 혹은 애트리뷰트의 XPath를 추출하는 단계, 추출된 각각의 XPath를 미리 할당된 경로 코드로 변환하는 단계와, 경로 코드로 변환된 엘리먼트 태그 및 애트리뷰트의 XPath에 대해, XPath에 포함된 모든 엘리먼트 태그들의 출현 정보를 나타내는 단계를 포함한다.The method of encoding an XML document according to the present invention includes retrieving all element tags and attributes having character data directly from an XML document, extracting XPaths of retrieved element tags or attributes, and pre-assigning each extracted XPath. Converting to a path code, and for the XPath of the element tag and attribute converted to the path code, presenting information of appearance of all the element tags included in the XPath.

XML, XPath, 경로 코드, 출현 정보, 부호화, 복호화 XML, XPath, path code, appearance information, encoding, decoding

Description

경로 코드를 이용한 XML 문서의 부호화 및 복호화 방법과 장치{Method and Apparatus for Encoding and Decoding XML Documents Using Path Code}Method and Apparatus for Encoding and Decoding XML Documents Using Path Codes {Method and Apparatus for Encoding and Decoding XML Documents Using Path Code}

본 발명은 XML 문서의 부호화 및 복호화 방법과 장치에 관한 것으로서, 경로 코드를 이용한 XML 문서의 부호화 및 복호화 방법과 장치에 관한 것이다.The present invention relates to a method and apparatus for encoding and decoding an XML document, and to a method and apparatus for encoding and decoding an XML document using a path code.

본 발명은 정보통신부 및 정보통신연구진흥원의 IT성장 동력기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2006-S-082-02, 과제명: 맞춤 시청형 DMB 기술 개발].The present invention is derived from the research conducted as part of the IT growth engine technology development project of the Ministry of Information and Communication and the Ministry of Information and Telecommunications Research and Development. [Task Management No .: 2006-S-082-02, Title: Development of Custom-made DMB Technology] .

지상파 DMB 방송 환경은 협소한 대역으로 인하여, 대용량의 데이터를 전송하기에 부적합하다. 따라서, XML 문서와 같은 텍스트 형식의 데이터를 그대로 전송하기는 어렵다. 이에, TPEG과 같은 교통정보 서비스에서, XML 기반의 데이터 정보는 전송 시 TPEG 이진 부호화 형식에 따라서 실시간으로 이진 부호화되어 DMB 방송망에 전송된다.The terrestrial DMB broadcasting environment is not suitable for transmitting a large amount of data due to the narrow bandwidth. Therefore, it is difficult to transfer data in a text format such as an XML document as it is. Accordingly, in a traffic information service such as TPEG, XML-based data information is binary encoded in real time according to the TPEG binary encoding format and transmitted to the DMB broadcasting network.

현재 국내 지상파 DMB 방송망에 전송되는 메타데이터 중에서 XML 문서로 표현되는 데이터는 지상파 DMB EPG, TPEG 등이 있으며, 모두 이진 부호화 방식이 별도로 표준화되어 있다. 예를 들어, TPEG과 EPG 에서의 이진 부호화 방식은 태 그(tag), 길이(length), 데이터(data) 라는 기본 구조를 이용하고, 태그 코드(tag code)를 모든 엘리먼트(element)와 애트리뷰트(attribute)에 할당함으로써 부호화한다. 따라서, XML 문서의 부호화 시, 계층마다 쓰여진 모든 엘리먼트에 태그 코드가 할당된다. 여기서, 불필요한 엘리먼트에도 계속 태그 코드 할당이 반복됨에 따라 압축률의 손실로 이어지게 된다.Among the metadata transmitted to the domestic terrestrial DMB broadcasting network, data represented by XML documents include terrestrial DMB EPG and TPEG, and all of them have standardized binary coding schemes. For example, the binary coding scheme in TPEG and EPG uses the basic structure of tag, length, and data, and tag code is assigned to all elements and attributes. encoding by assigning to an attribute). Therefore, when encoding an XML document, a tag code is assigned to every element written for each layer. Here, as the tag code assignment is repeatedly performed even for unnecessary elements, the compression rate is lost.

도 1은 텍스트 형식의 XML 문서의 예를 나타낸다. 도 2는 TPEG과 EPG에서 이용하는 XML 문서에 대한 이진 부호화의 기본 구조를 나타낸다. 그리고 도 3은 도 1에 도시된 XML 문서에 대해 도 2를 이용하여 종래의 태그 코드 할당 방법을 설명하기 위한 도면이다. 1 shows an example of an XML document in a text format. 2 shows the basic structure of binary encoding for XML documents used in TPEG and EPG. FIG. 3 is a diagram for explaining a conventional tag code allocation method for the XML document illustrated in FIG. 1 using FIG. 2.

도 1 내지 도 3을 참조하면, XML 문서는 A, B, C, D 엘리먼트들을 포함한다. 1 through 3, an XML document includes A, B, C, and D elements.

XML 문서의 이진 부호화 방식에서 종래의 태그 코드 할당 방법에 따르면, A, B, C 및 D의 모든 엘리먼트에 태그 코드를 할당한다. 가령, A, B, C 및 D 엘리먼트에 태그 코드 “0x02”,“0x03”,“ 0x04”, 및“ 0x05”를 각각 할당한다. 그리고 각 엘리먼트의 콘텐트를 부호화한다. 여기서, D 엘리먼트만 문자 데이터(character data)를 갖고 있음에도 불구하고, B와 C 엘리먼트들에도 각각 태그 코드를 할당한다. 이러한 방법은 불필요한 태그 코드 할당이 반복됨에 따라 압축률을 저하시킨다. 따라서, 보다 효율적인 태그 코드 할당 방법이 요구된다.According to a conventional tag code allocation method in a binary encoding scheme of an XML document, a tag code is assigned to all elements of A, B, C, and D. For example, tag codes "0x02", "0x03", "0x04", and "0x05" are assigned to the A, B, C, and D elements, respectively. The content of each element is encoded. Here, although only the D element has character data, the tag code is assigned to the B and C elements, respectively. This method reduces the compression rate as unnecessary tag code assignment is repeated. Therefore, a more efficient tag code allocation method is required.

본 발명이 해결하고자 하는 과제는 XML Schema로 작성된 스키마에서 정의된 엘리먼트와 애트리뷰트 중 선택된 일부 엘리먼트들 및 모든 애트리뷰트들의 XPath에 경로 코드를 할당함으로써, 불필요한 태그 코드의 할당을 감소시킴에 따라 압축률을 높일 수 있는 XML 문서의 부호화 및 복호화 방법과 장치를 제공하고자 하는 것이다.The problem to be solved by the present invention is to increase the compression rate by reducing the allocation of unnecessary tag code by assigning a path code to the XPath of some elements selected from the elements and attributes defined in the schema written in XML Schema and all the attributes. An object of the present invention is to provide a method and apparatus for encoding and decoding an XML document.

본 발명의 해결 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당 업자에게 명확하게 이해될 수 있을 것이다.The technical problems of the present invention are not limited to the technical problems mentioned above, and other technical problems not mentioned will be clearly understood by those skilled in the art from the following description.

상기 해결 과제를 달성하기 위한 본 발명에 따른 스키마에서의 경로 코드 할당 방법은 스키마에서 정의된 모든 엘리먼트들 중 선택된 일부 엘리먼트들의 XPath에 각각 유일한 경로 코드를 할당하는 단계와, 모든 애트리뷰트들의 XPath에 각각 유일한 경로 코드를 할당하는 단계를 포함한다. In order to achieve the above object, a method of allocating a path code in a schema according to the present invention may include assigning a path code unique to each XPath of selected elements among all elements defined in the schema, and uniquely assigning a path code to each XPath of all attributes. Assigning a path code.

상기 해결 과제를 달성하기 위한 본 발명에 따른 XML 문서를 부호화하는 방법은 XML 문서에서 문자 데이터를 직접 갖는 모든 엘리먼트 태그 및 애트리뷰트를 검색하는 단계와, 상기 검색된 엘리먼트 태그 혹은 애트리뷰트의 XPath를 추출하는 단계와, 상기 추출된 각각의 XPath를 미리 할당된 경로 코드로 변환하는 단계와, 경로 코드로 변환된 엘리먼트 태그 및 애트리뷰트의 XPath에 대해, XPath에 포 함된 모든 엘리먼트 태그들의 출현 정보를 나타내는 단계를 포함한다. According to an aspect of the present invention, there is provided a method of encoding an XML document, the method including: retrieving all element tags and attributes having character data directly from an XML document, extracting an XPath of the retrieved element tag or attribute, and Converting each of the extracted XPaths into a pre-assigned path code, and displaying the appearance information of all the element tags included in the XPath for the XPath of the element tag and the attribute converted into the path code.

본 발명에 따른 XML 문서를 복호화하는 방법은 부호화된 XML 문서에서 경로 코드를 추출하는 단계, 상기 추출된 각각의 경로 코드에 해당하는 XPath를 검색하는 단계와, 검색한 XPath에 포함된 엘리먼트 태그 혹은 애트리뷰트를 출현 정보에 따라 선택적으로 복원하는 단계를 포함한다.The method for decoding an XML document according to the present invention includes extracting a path code from an encoded XML document, retrieving an XPath corresponding to each extracted path code, and an element tag or attribute included in the retrieved XPath. Selectively restoring according to the appearance information.

본 발명에 따른 경로 코드를 이용한 XML 문서의 부호화 및 복호화 방법에 의하면, 스키마에서 정의된 엘리먼트들 중 선택된 일부 엘리먼트들 및 모든 애트리뷰트들의 XPath에 경로 코드를 할당함으로써, 불필요한 태그 코드의 할당을 감소시킴에 따라 압축률을 높일 수 있다.According to the method of encoding and decoding an XML document using a path code according to the present invention, by allocating a path code to XPaths of selected elements and all attributes selected from elements defined in a schema, unnecessary allocation of tag codes is reduced. Therefore, the compression rate can be increased.

이하, 첨부된 도면들을 참조하여 본 발명에 따른 XML 문서의 부호화 및 복호화 방법과 장치에 대해 상세히 설명한다.Hereinafter, a method and apparatus for encoding and decoding an XML document according to the present invention will be described in detail with reference to the accompanying drawings.

도 4는 본 발명에 따른 XML 문서의 부호화 장치의 구성을 나타내는 블록도이다.4 is a block diagram showing the configuration of an apparatus for encoding an XML document according to the present invention.

도 4를 참조하면, 부호화 장치(110)는 경로 코드 할당기(120) 및 XML 부호화기(130)를 포함한다.Referring to FIG. 4, the encoding apparatus 110 includes a path code allocator 120 and an XML encoder 130.

경로 코드 할당기(120)는 메타데이터 관리자(100)로부터 스키마를 입력 받고, 스키마에 정의된 엘리먼트와 애트리뷰트에 경로 코드를 할당한다. 즉, 경로 코 드 할당기(120)는 일부 엘리먼트와 모든 애트리뷰트의 XPath에 경로 코드를 할당하여, 경로 코드 테이블을 생성한다.The path code allocator 120 receives a schema from the metadata manager 100 and assigns a path code to elements and attributes defined in the schema. That is, the path code allocator 120 assigns a path code to the XPath of some elements and all attributes to generate a path code table.

XML 부호화기(130)는 메타데이터 관리자(100)로부터 XML 문서를 입력 받고, XML 문서에서 문자 데이터를 직접 갖는 모든 엘리먼트 태그 및 모든 애트리뷰트를 검색한다. 또한, XML 부호화기(130)는 검색된 엘리먼트 태그 및 애트리뷰트의 XPath를 경로 코드 테이블에 정의된 경로 코드로 치환하여 부호화한다.The XML encoder 130 receives an XML document from the metadata manager 100 and retrieves all element tags and all attributes having character data directly from the XML document. In addition, the XML encoder 130 encodes the XPath of the retrieved element tag and the attribute by replacing the XPath with the path code defined in the path code table.

도 5는 본 발명에 따른 XML 문서의 복호화 장치의 구성을 나타내는 블록도이다.5 is a block diagram showing the configuration of an apparatus for decoding an XML document according to the present invention.

도 5를 참조하면, 복호화 장치(200)는 XML 복호화기(210) 및 XML 문서 생성기(220)를 포함한다.Referring to FIG. 5, the decryption apparatus 200 includes an XML decoder 210 and an XML document generator 220.

XML 복호화기(210)는 경로 코드 테이블 및 부호화된 XML 문서를 입력 받는다. 여기서, 경로 코드 테이블은 엘리먼트 및 애트리뷰트의 XPath를 이용한 경로 코드 할당 방법에 의해 생성된 것이다.The XML decoder 210 receives a path code table and an encoded XML document. Here, the path code table is generated by a path code allocation method using XPath of elements and attributes.

XML 복호화기(210)는 부호화된 XML 문서에서 경로 코드를 추출하고, 추출된 경로 코드에 해당하는 XPath를 입력 받은 경로 코드 테이블로부터 검색한다. 이후, XML 복호화기(210)는 검색한 XPath에 포함된 엘리먼트 태그들의 출현 정보에 따라, 상기 엘리먼트 태그 혹은 애트리뷰트를 선택적으로 복원하여 인스턴스 트리를 생성한다.The XML decoder 210 extracts a path code from the encoded XML document and retrieves an XPath corresponding to the extracted path code from the received path code table. Thereafter, the XML decoder 210 selectively generates the instance tree by restoring the element tag or the attribute according to the appearance information of the element tags included in the searched XPath.

XML 문서 생성기(220)는 상기 생성된 인스턴스 트리로부터 XML 문서를 생성한다.The XML document generator 220 generates an XML document from the generated instance tree.

도 6은 본 발명에 따른 XML 문서의 부호화 시, 이용되는 데이터의 구조를 나타낸다.6 shows a structure of data used when encoding an XML document according to the present invention.

도 6을 참조하면, 데이터 구조는 경로(Path), DET-MOI, 길이(length), 데이터(data) 필드를 포함한다. 각 경로, DET-MOI, 및 길이는 기본적으로 1 byte로 나타낼 수 있다.Referring to FIG. 6, the data structure includes a path, a DET-MOI, a length, and a data field. Each path, DET-MOI, and length can basically be represented by 1 byte.

경로 코드(path code)는 XML Schema 언어로 작성된 스키마에서 정의된 엘리먼트 및 애트리뷰트의 XPath에 할당되는 유일한 값이다. 여기서, 엘리먼트는 스키마에서 XML 문서에 나타날 수 있는 엘리먼트 태그를 정의하며, 애트리뷰트는 스키마에서 엘리먼트 태그의 속성을 선언하고 속성의 존재를 정의한다.The path code is the only value assigned to the XPath of elements and attributes defined in a schema written in the XML Schema language. Here, the element defines an element tag that can appear in an XML document in the schema, and the attribute declares the attribute of the element tag in the schema and defines the existence of the attribute.

이하, 도 7의 경로 코드 할당 방법에 대하여 설명한다.Hereinafter, the path code assignment method of FIG. 7 will be described.

도 7은 경로 코드 할당 방법을 설명하기 위한 흐름도이다.7 is a flowchart for explaining a path code allocation method.

도 7을 참조하면, 먼저, 경로 코드 할당기는 스키마 파일을 입력 받는다(S100).7, the path code allocator receives a schema file (S100).

이어서, 경로 코드 할당기는 스키마에 정의된 컴포넌트를 추출한다(S101).Subsequently, the path code allocator extracts a component defined in the schema (S101).

여기서, 컴포넌트는 스키마를 구성하는 요소들로, 애트리뷰트, 엘리먼트 등이 있다. Here, a component is an element constituting a schema, and includes attributes and elements.

이어서, 경로 코드 할당기는 추출한 컴포넌트가 엘리먼트인지 판단한다(S102).Subsequently, the path code allocator determines whether the extracted component is an element (S102).

경로 코드 할당기는 추출한 컴포넌트가 엘리먼트가 아닌 경우, 상기 컴포넌트가 애트리뷰트인지 판단한다(S107). 경로 코드 할당기는 상기 컴포넌트가 애트 리뷰트이면, 상기 애트리뷰트의 XPath에 경로 코드를 할당한다(S108).If the extracted component is not an element, the path code allocator determines whether the component is an attribute (S107). If the component is an attribute, the path code allocator allocates a path code to an XPath of the attribute (S108).

여기서, 경로 코드 할당기는 추출한 컴포넌트가 엘리먼트인 경우에는 선택적으로 경로 코드를 할당하는 것과 달리, 추출한 컴포넌트가 애트리뷰트인 경우에는 모든 애트리뷰트에 대하여 경로 코드를 할당한다.Here, the path code allocator selectively assigns a path code when the extracted component is an element, and allocates a path code to all attributes when the extracted component is an attribute.

반면, 경로 코드 할당기는 추출한 컴포넌트가 엘리먼트인 경우에는 엘리먼트의 정의를 확인한다(S103).On the other hand, if the extracted component is an element, the path code allocator checks the definition of the element (S103).

경로 코드 할당기는 확인한 엘리먼트가 전역 엘리먼트(global element), 단순 콘텐츠(simple content), 또는 혼합 콘텐츠(mixed content)로 정의되어 있는 경우에는, 엘리먼트의 XPath에 유일한 경로 코드를 할당한다(S104, S105).The path code allocator assigns a unique path code to the XPath of the element when the identified element is defined as a global element, simple content, or mixed content (S104, S105). .

여기서, 전역 엘리먼트는 스키마에서 “schema”루트 엘리먼트의 직계 자식 엘리먼트로 정의된 엘리먼트를 의미한다. Here, the global element means an element defined as a direct child element of the “schema” root element in the schema.

그리고, 단순 콘텐츠는 엘리먼트가 문자 데이터(character data)를 직접 갖는 경우를 의미한다.Simple content means a case in which an element directly has character data.

경로 코드 할당기는 단순 콘텐츠로 정의되어 있는 엘리먼트에만 경로 코드를 할당한다. 반면, 전역 엘리먼트와 문자 데이터를 갖는 엘리먼트 사이 계층에 위치한 엘리먼트, 다시 말해 엘리먼트 콘텐츠(element content)로 정의된 엘리먼트의 XPath에는 경로 코드를 할당하지 않는다.The path code allocator assigns path codes only to elements that are defined as simple content. On the other hand, a path code is not assigned to an XPath of an element located in a hierarchy between a global element and an element having character data, that is, an element defined as element content.

또한, 혼합 콘텐츠는 엘리먼트가 문자 데이터와 다른 자식 엘리먼트를 동시에 가질 수 있는 경우를 의미한다. 이러한 혼합 콘텐츠는 XML Schema로 작성된 스키마에서 엘리먼트에 바인딩된 복잡 타입의 mixed 속성을 “true”설정함으로써 정의된다.In addition, mixed content means the case where an element can have character data and another child element simultaneously. This mixed content is defined by setting "true" the mixed attribute of the complex type bound to the element in a schema written in XML Schema.

따라서, 경로 코드 할당기는 복잡 타입의 mixed 속성 값으로 해당 엘리먼트가 혼합 콘텐츠로 정의되어 있는지 판단할 수 있다.Therefore, the path code allocator may determine whether the corresponding element is defined as mixed content using a mixed attribute value of a complex type.

반면, 경로 코드 할당기는 확인한 엘리먼트가 순환적으로(recursively) 정의되었을 경우에는, 순환이 시작되는 제1 엘리먼트와 순환이 끝나는 제2 엘리먼트의 XPath에 각각 유일한 경로 코드를 할당한다(S106).On the other hand, when the identified element is defined recursively, the path code allocator allocates a unique path code to each XPath of the first element where the cycle starts and the second element where the cycle ends (S106).

여기서, 엘리먼트가 순환적으로 정의되는 경우는 임의의 엘리먼트가 자신의 자식 엘리먼트 혹은 자손 엘리먼트로 반복 정의되었을 경우를 의미한다.Here, the case where an element is defined circularly means that an arbitrary element is repeatedly defined as its own child element or a descendant element.

이와 같은 방법으로, 경로 코드 할당기는 추출한 스키마 컴포넌트에 대한 경로 코드를 할당한 후, 스키마에서 마지막 컴포넌트가 추출될 때까지(S108), 다음 스키마 컴포넌트에 대한 경로 코드 할당 과정을 반복적으로 수행한다.In this way, the route code allocator allocates the route code for the extracted schema component and repeatedly performs the route code assignment process for the next schema component until the last component is extracted from the schema (S108).

이하, 본 발명에 따른 경로 코드 할당 방법에 대해 구체적으로 설명한다.Hereinafter, a path code allocation method according to the present invention will be described in detail.

도 8은 XML Schema로 작성된 스키마의 예를 나타낸다. 도 9는 도 8의 스키마의 정의에 대한 그래픽컬한 다이어그램(diagram)을 나타내는 도면이다. 도 10은 도 9의 엘리먼트 및 애트리뷰트의 XPath에 할당한 경로 코드를 나타낸 경로 코드 테이블이다.8 shows an example of a schema created with XML Schema. FIG. 9 is a graphical diagram of the definition of the schema of FIG. 8. FIG. 10 is a path code table showing a path code assigned to the XPath of the elements and attributes of FIG. 9.

도 8 내지 도 10을 참조하면, A와 E 엘리먼트(302, 328)는 전역 엘리먼트이고, F, K, I와 H 엘리먼트들(308, 320, 326, 332, 334)은 문자 데이터를 직접 갖는 엘리먼트들이다. 그리고 D 엘리먼트(316, 318, 322, 324)는 순환적으로 정의된 엘리먼트이며, G 엘리먼트(330)는 혼합 콘텐츠로 정의된 엘리먼트이다.8 through 10, the A and E elements 302 and 328 are global elements, and the F, K, I and H elements 308, 320, 326, 332 and 334 are elements having direct character data. admit. And D elements 316, 318, 322, and 324 are circularly defined elements, and G element 330 is an element defined with mixed content.

먼저, 경로 코드 할당기는 전역 엘리먼트인 A와 E 엘리먼트(302, 328)의 XPath(“/A”,“/E”)에 경로 코드 “0x02”, “0x03”을 각각 할당한다. 그리고 A와 E 전역 엘리먼트가 지역 엘리먼트로 참조되는 경우(310, 306)에 각각 참조되는 지역 엘리먼트의 XPath(“./B/A”, “./B/E”)에 “0x08”, “0x06”을 할당한다. 또한, 경로 코드 할당기는 문자 데이터를 갖는 단순 콘텐츠로 정의된 F, K, I와 H 엘리먼트들(308, 320, 326, 332, 334)의 XPath(“./B/F”,“./K”,“./I”,“./H”)에 경로 코드 “0x07”,“0x0C”,“0x05”,“0x06”을 각각 할당한다.First, the path code allocator assigns path codes "0x02" and "0x03" to XPath ("/ A", "/ E") of the global elements A and E elements 302 and 328, respectively. When A and E global elements are referred to as local elements (310 and 306), the XPaths (“./B/A” and “./B/E”) of the referenced local elements are respectively “0x08” and “0x06”. Assign ”. In addition, the path code allocator assigns the XPath (“./B/F”, “./K) of the F, K, I and H elements 308, 320, 326, 332, and 334 defined as simple content with character data. Path codes “0x07”, “0x0C”, “0x05”, and “0x06” respectively.

이 때, 전역 엘리먼트들은 서로 구별되는 유일한 경로 코드가 할당되어야 하고, 지역 엘리먼트들은 전역 엘리먼트에 종속적으로 서로 구별되는 유일한 경로 코드가 할당되어야 한다. 따라서, 서로 다른 전역 엘리먼트의 자손 엘리먼트로 정의된 지역 엘리먼트들에게 동일한 경로 코드를 할당하는 것이 가능하다. 즉, A 엘리먼트(302)와 E 엘리먼트(328)의 XPath에는 다른 경로 코드가 할당되어야 하고, A 엘리먼트(302)와 A 엘리먼트(302)의 자손 엘리먼트들인 E, F, A 및 D 엘리먼트 등의 XPath에는 서로 구별된 경로 코드가 할당되어야 한다. 그러나, A 엘리먼트(302)의 자손 엘리먼트인 E 엘리먼트(306)의 XPath와 E 엘리먼트(328)의 자손 엘리먼트인 H 엘리먼트(334)의 XPath에는 동일한 경로 코드인 “0x06”을 할당할 수 있다. 또한, XPath에 경로 코드를 할당할 때 동일한 XPath에는 동일한 경로 코드를 부여한다. 즉, K 엘리먼트(320, 326)는 동일한 XPath(“./K”)를 가지므로 동일한 경로 코드(“0x0C”)를 할당한다.At this time, global elements should be assigned unique path codes that are distinct from each other, and local elements should be assigned unique path codes that are distinct from each other depending on global elements. Thus, it is possible to assign the same path code to local elements defined as descendants of different global elements. That is, different path codes must be assigned to XPaths of the A element 302 and the E element 328, and XPath such as the E, F, A, and D elements that are descendants of the A element 302 and the A element 302. Must be assigned distinct path codes. However, the same path code “0x06” may be assigned to the XPath of the E element 306 that is a child element of the A element 302 and the XPath of the H element 334 that is a child element of the E element 328. Also, when assigning a path code to an XPath, the same path code is assigned to the same XPath. That is, the K elements 320 and 326 have the same XPath (“./K”) and thus assign the same path code (“0x0C”).

이어서, 경로 코드 할당기는 순환적으로 정의된 D 엘리먼트의 XPath에도 경로 코드를 할당한다. 순환이 시작되는 제1 엘리먼트(316, 322)와 순환이 끝나는 제 2 엘리먼트(318, 324)의 XPath에 경로 코드를 각각 할당한다.The path code allocator then assigns the path code also to the XPath of the circularly defined D element. Path codes are assigned to the XPaths of the first elements 316 and 322 where the circulation starts and the second elements 318 and 324 where the circulation ends.

예를 들어, 경로 코드 할당기는 순환이 시작되는 D 엘리먼트(316)의 XPath(“./C/J/D”)에 경로 코드 “0x09”를 할당하고, 순환이 끝나는 D 엘리먼트(318)의 XPath(“./D”)에 경로 코드 “0x0B”를 할당한다. 그리고 순환이 시작되는 D 엘리먼트(322)의 XPath(“./D”)에 “0x0B”를 할당하고, 순환이 끝나는 D 엘리먼트(324)의 XPath(“./D”)에 “0x0B”를 할당한다. 이때, 동일한 XPath(“./D”)에는 동일한 경로 코드(“0x0B”)를 할당한다.For example, the path code allocator assigns the path code “0x09” to the XPath (“./C/J/D”) of the D element 316 where the cycle begins, and the XPath of the D element 318 where the cycle ends. Assign the path code "0x0B" to ("./D"). Then, “0x0B” is assigned to the XPath (“./D”) of the D element 322 where the cycle begins, and “0x0B” is assigned to the XPath (“./D”) of the D element 324 where the cycle ends. do. At this time, the same path code (“0x0B”) is assigned to the same XPath (“./D”).

이어서, 경로 코드 할당기는 혼합 콘텐츠로 정의된 G 엘리먼트(330)의 XPath(“./G”)에도 경로 코드 “0x04”를 할당한다. 그리고 해당 엘리먼트가 갖는 문자 데이터가 혼합 콘텐츠의 문자 데이터임을 나타내는 미리 정해진 유일한 고정된 값(예를 들어, 0x01)을 할당한다.The path code allocator then assigns the path code “0x04” to the XPath (“./G”) of the G element 330 defined as mixed content. And it assigns only a predetermined fixed value (for example, 0x01) which shows that the character data which the element has is character data of mixed content.

또한, 경로 코드 할당기는 스키마에서 정의된 모든 애트리뷰트들의 XPath에 각각 경로 코드를 할당한다. 가령, 경로 코드 할당기는 B 엘리먼트(304)의 x 애트리뷰트의 XPath(“./B/@x”)에 경로 코드 “0x05”를 할당하며, D 엘리먼트(316)의 z 애트리뷰트의 XPath(“./@z”)에 경로 코드 “0x0A”를 할당한다.In addition, the path code allocator assigns a path code to each XPath of all attributes defined in the schema. For example, the path code allocator assigns the path code “0x05” to the XPath (“./B/@x”) of the x attribute of the B element 304 and the XPath (“./” of the z attribute of the D element 316. @z ”) to assign the path code“ 0x0A ”.

상술한 경로 코드 할당 방법은 모든 엘리먼트들 중 선택된 일부 엘리먼트들의 XPath에 경로 코드를 할당하고, 엘리먼트 콘텐츠로 정의된 B, C, J 엘리먼트(304, 312, 314)의 각각에 경로 코드를 할당하지 않음으로써, 모든 엘리먼트에 태그 코드를 할당하는 방법에 비해 압축률을 높일 수 있다.The above-described path code assignment method assigns a path code to the XPath of some selected elements among all elements, and does not assign a path code to each of the B, C, and J elements 304, 312, and 314 defined as element contents. As a result, the compression rate can be increased compared to the method of assigning tag codes to all elements.

이하, 도 6의 DET-MOI에 대하여 설명한다.Hereinafter, the DET-MOI of FIG. 6 will be described.

DET-MOI는 DET(Date Encoder Types)와 MOI(Multiple Occurrence Indicator)를 포함하는 구조이다. DET-MOI is a structure including Date Encoder Types (DET) and Multiple Occurrence Indicator (MOI).

DET는 문자 데이터를 갖는 엘리먼트 혹은 애트리뷰트 각각에 대하여, 엘리먼트의 문자 데이터 혹은 애트리뷰트의 값이 어떤 인코더(encoder)로 부호화되었는지를 나타낸다. DET는 예시적으로 도 11에 도시된 바와 같으며, 기본적으로 4bits를 사용하여 나타낼 수 있다.For each element or attribute having character data, the DET indicates to which encoder the character data or attribute value of the element is encoded. DET is exemplarily illustrated in FIG. 11, and can be represented by using 4 bits.

MOI는 XML 문서에서 엘리먼트 태그 혹은 애트리뷰트의 XPath에 포함된 모든 엘리먼트 태그들의 출현 정보(occurrence indicator)를 나타낸다.The MOI represents the occurrence indicator of all element tags included in an element tag or an XPath of an attribute in an XML document.

MOI는 XPath의 시작 노드(문맥 노드, context node)와 마지막 노드(해당 엘리먼트 태그 혹은 애트리뷰트) 사이에 있는 각 엘리먼트 노드에 대해 순서대로 1 bit를 할당한다.The MOI allocates 1 bit in order for each element node between the start node (context node) and the last node (the corresponding element tag or attribute) of the XPath.

구체적으로, MOI의 각 bit 값은 경로 코드로 변환된 엘리먼트 태그 혹은 애트리뷰트를 복호화 시, 각 bit에 해당하는 엘리먼트 태그의 생성 여부에 따라 “1” 또는 “0”을 할당한다. 즉, 특정 bit에 해당하는 엘리먼트 태그를 생성해야 할 경우에는 “1”로 할당한다. 그러나, 특정 bit에 해당하는 엘리먼트 태그를 생성하지 않을 때에는 “0”으로 할당한다.Specifically, each bit value of the MOI allocates “1” or “0” depending on whether an element tag corresponding to each bit is generated when decoding an element tag or attribute converted into a path code. In other words, if an element tag corresponding to a specific bit needs to be created, assign it to “1”. However, when not generating an element tag corresponding to a specific bit, assign it as "0".

이후, MOI는 부호화된 XML 문서를 복호화 시 XPath에 포함된 모든 엘리먼트 태그들의 생성 여부에 대한 플래그(flag) 역할을 한다. 이때, XPath에서 마지막 노드가 엘리먼트 태그일 경우에는 해당 엘리먼트 태그는 항상 생성되어야 하므로, 값이 “1”인 1 bit를 할당하지 않고, 복호화 시 디폴트 “1”로 처리한다.Subsequently, the MOI serves as a flag for generating all element tags included in the XPath when decoding the encoded XML document. In this case, when the last node is an element tag in XPath, the corresponding element tag should always be generated. Therefore, without assigning 1 bit whose value is “1”, it processes as default “1” when decoding.

이하, 도 6의 길이에 대하여 설명한다.Hereinafter, the length of FIG. 6 is demonstrated.

길이는 경로 코드에 해당하는 엘리먼트 태그 및 애트리뷰트가 갖는 데이터의 길이를 나타낸다. 여기서, 길이는 해당 엘리먼트 태그가 엘리먼트 콘텐츠로 정의된 경우, 하위 계층의 엘리먼트 태그에 해당하는 패스, DET-MOI, 길이, 데이터의 모든 byte 길이를 포함한다. 그리고 문자 데이터만을 갖는 엘리먼트 태그에 대한 길이는 문자 데이터의 길이를 나타낸다. 또한, 애트리뷰트에 대한 길이도 애트리뷰트 값의 길이를 나타낸다.The length indicates the length of data of an element tag and an attribute corresponding to a path code. Here, the length includes a path, a DET-MOI, a length, and all byte lengths of data corresponding to an element tag of a lower layer when the corresponding element tag is defined as element content. The length of the element tag having only text data indicates the length of text data. In addition, the length for an attribute also indicates the length of the attribute value.

도 12는 길이에 따른 부호화 규칙을 설명하기 위한 도면이다.12 is a diagram for describing an encoding rule according to length.

도 12를 참조하면, 길이가 0x00 ~ 0x7f일 경우, 첫 번째 bit 값을 “0”으로 표시하고 길이를 그대로 1 byte로 부호화한다. 여기서 첫 번째 bit는 다음 1 byte를 추가하여 길이를 표현하는지를 나타내는 플래그 역할을 한다.Referring to FIG. 12, when the length is 0x00 to 0x7f, the first bit value is expressed as “0” and the length is encoded as it is in 1 byte. Here, the first bit serves as a flag indicating whether the length is expressed by adding the next 1 byte.

그러나, 0x7f를 초과할 경우에는 확장된 2bytes 또는 3 bytes를 이용하여 부호화한다. 이때, 2 bytes로 확장할 경우에는 첫 번째 byte의 첫 번째 bit의 값을 “1”로 설정하며, 두 번째 byte의 첫 번째 bit의 값을 “0”으로 설정한다. 마찬가지로 3 bytes로 확장할 경우에는 첫 번째, 두 번째 byte 각각의 첫 번째 bit의 값을 “1”로 설정하고, 마지막 세 번째 byte의 첫 번째 bit의 값을 “0”으로 설정의하여 그 길이를 부호화한다.However, if it exceeds 0x7f, encoding is performed using extended 2 bytes or 3 bytes. In this case, when extending to 2 bytes, set the value of the first bit of the first byte to “1” and set the value of the first bit of the second byte to “0”. Similarly, when extending to 3 bytes, set the value of the first bit of each of the first and second bytes to “1”, and set the value of the first bit of the last third byte to “0” to encode the length. do.

도 6의 데이터는 문자 데이터 등의 실제 데이터를 의미한다.The data in FIG. 6 means actual data such as character data.

한편, XML 문서의 부호화 시 이용되는 데이터 구조는 도 6의 데이터 구조 에 한정되지 않으며, DET를 제외한 패스, MOI, 길이, 데이터 필드로 구성되는 데이터 구조로도 XML 문서를 부호화할 수 있다.Meanwhile, the data structure used for encoding the XML document is not limited to the data structure of FIG. 6, and the XML document may be encoded with a data structure including a path, a MOI, a length, and a data field except for the DET.

이하, XML Schema 언어로 작성된 스키마에 유효(valid)한 XML 문서의 부호화 방법에 대하여 설명한다.Hereinafter, a method of encoding an XML document valid for a schema created in the XML Schema language will be described.

도 13은 XML 문서의 부호화 방법을 설명하기 위한 흐름도이다.13 is a flowchart for explaining a method of encoding an XML document.

도 13을 참조하면, XML 부호화기는 XML 문서를 입력 받는다(S200).Referring to FIG. 13, the XML encoder receives an XML document (S200).

이어서, XML 부호화기는 XML 문서에서 문자 데이터를 갖는, 엘리먼트 태그 혹은 애트리뷰트를 검색한다(S201). 그리고 검색한 엘리먼트 태그 혹은 애트리뷰트의 XPath를 추출하여, 추출한 XPath를 경로 코드로 변환한다(S202, S203).Subsequently, the XML encoder searches for an element tag or attribute having character data in the XML document (S201). The XPath of the retrieved element tag or attribute is extracted, and the extracted XPath is converted into a path code (S202 and S203).

이어서, XML 부호화기는 XPath에 포함된 모든 엘리먼트 태그들의 출현 정보인 MOI를 나타내기 위하여, XPath의 시작 노드와 마지막 노드 사이에 있는 각 엘리먼트 노드에 대해 순서대로 1 bit를 할당한다(S204).Subsequently, in order to indicate MOI, which is the appearance information of all the element tags included in the XPath, the XML encoder allocates 1 bit in order for each element node between the start node and the last node of the XPath (S204).

구체적으로, XML 부호화기는 각 bit 값에, 경로 코드로 변환된 엘리먼트 태그를 복호화 할 때, bit에 해당하는 엘리먼트 태그를 생성해야 하는 경우에는 “1”을 할당하고, 생성하지 않을 경우에는 “0”을 할당한다(S205, S206, S207, S208).Specifically, the XML encoder allocates “1” to each bit value when generating the element tag corresponding to the bit when decoding the element tag converted to the path code, and “0” when not generating the element tag. Are assigned (S205, S206, S207, and S208).

다음 문자 데이터를 갖는 엘리먼트 태그 혹은 애트리뷰트에 대하여 반복적으로 경로 코드를 할당한다.Iteratively assigns path codes for element tags or attributes with the following character data:

도 14는 XML 문서의 복호화 방법을 설명하기 위한 도면이다.14 is a diagram for explaining a method of decoding an XML document.

도 14를 참조하면, 먼저 XML 복호화기는 부호화된 XML 문서를 입력 받는 다(S300). Referring to FIG. 14, an XML decoder first receives an encoded XML document (S300).

이이서, XML 복호화기는 부호화된 XML 문서에서 경로 코드를 추출하고, 추출된 각각의 경로 코드에 해당하는 XPath를 검색한다(S301, S302).Next, the XML decoder extracts a path code from the encoded XML document and retrieves XPaths corresponding to the extracted path codes (S301 and S302).

이어서, XML 복호화기는 검색한 XPath에 포함된 엘리먼트 태그 혹은 애트리뷰트를 출현 정보인 MOI에 따라 선택적으로 복원한다.Subsequently, the XML decoder selectively restores the element tag or attribute included in the retrieved XPath according to MOI, which is the appearance information.

XML 복호화기는 MOI의 각 bit에 대하여, 각 bit 값이 “1”일 경우에만 bit에 해당하는 엘리먼트 태그를 복원한다(S303 ~ S306). 그리고, XML 복호화기는 검색한 XPath의 마지막 노드에 해당하는 엘리먼트 태그 혹은 애트리뷰트를 복원한다(S307).For each bit of the MOI, the XML decoder restores an element tag corresponding to the bit only when each bit value is "1" (S303 to S306). The XML decoder restores an element tag or attribute corresponding to the last node of the searched XPath (S307).

이와 같은 방법으로, XML 복호화기는 부호화된 XML 문서의 마지막 경로 코드까지 반복적으로 수행함으로써 복호화를 완료한다(S308).In this manner, the XML decoder completes decoding by repeatedly performing the last path code of the encoded XML document (S308).

이하, XML 문서의 복호화 방법에서 MOI를 이용한 복호화 방법에 대해 구체적으로 설명한다.Hereinafter, the decoding method using the MOI in the XML document decoding method will be described in detail.

도 15는 XML 문서에서 엘리먼트 태그 혹은 애트리뷰트의 XPath에 포함된 모든 엘리먼트들의 출현 정보인 MOI를 예시적으로 나타내는 도면이다.FIG. 15 is a diagram exemplarily illustrating a MOI, which is appearance information of all elements included in an XPath of an element tag or an attribute in an XML document.

도 15를 참조하면, A 엘리먼트는 전역 엘리먼트이고, B, E, G와 I 엘리먼트들은 A 엘리먼트의 자손 엘리먼트들로, 중첩 구조를 형성한다.Referring to FIG. 15, the A element is a global element, and the B, E, G, and I elements are child elements of the A element, forming an overlapping structure.

문자 데이터를 갖는 I 엘리먼트의 XPath는 “./B/E/G/I”이다. 이 XPath에 포함된 모든 엘리먼트 태그들의 출현 정보를 나타내는 방법에 대해 설명한다. The XPath of an I element with character data is "./B/E/G/I". A method of indicating the appearance information of all the element tags included in this XPath will be described.

먼저, XPath의 시작 노드와 마지막 노드인 I 엘리먼트 사이에 있는 각 엘 리먼트 노드에 대해 순서대로 1 bit를 할당한다. 즉, B, E와 G 엘리먼트 노드들에 대한 출현 정보를 표현하기 위하여 3 bits를 할당한다. 그리고 각 bit 값은, 복호화 시, B, E와 G 엘리먼트 태그를 생성해야 하는 경우에는 “1”로, 생성하지 않을 경우에는 “0”을 할당한다.First, 1 bit is allocated in order for each element node between the start node of XPath and the last element of I element. That is, 3 bits are allocated to represent appearance information about B, E and G element nodes. Each bit value is assigned a value of "1" when generating B, E, and G element tags during decoding, and "0" when not generating.

예를 들어, 첫 번째 I 엘리먼트 태그의 MOI 값인 “111”에서 각각의 bit는 순서대로 B, E와 G 엘리먼트를 의미한다. 그리고 각 bit 값이 “1”로 할당되었으므로, 복호화 시, B, E와 G 엘리먼트(402, 404, 406)를 모두 생성한다.For example, in the “111” of the MOI value of the first I element tag, each bit means B, E, and G elements in order. And since each bit value is assigned to "1", during decoding, both B, E and G elements 402, 404, 406 are generated.

이어서, 두 번째 I 엘리먼트 태그의 MOI 값인 “000”에서 각 bit 값이 “0”으로 할당되었으므로, 복호화 시 B, E와 G 엘리먼트를 모두 생성하지 않는다. 이로써 첫 번째 I 엘리먼트(408)와 두 번째 I 엘리먼트(410)는 형제(sibling) 관계임을 알 수 있다.Subsequently, since each bit value is assigned to "0" in the MOI value "000" of the second I element tag, the B, E, and G elements are not generated during decoding. This shows that the first I element 408 and the second I element 410 are siblings.

세 번째 I 엘리먼트 태그의 MOI 값이 “001”으로, 값이 “1”인 bit에 해당하는 G 엘리먼트(412)만을 생성한다. 네 번째부터 여섯 번째 I 엘리먼트 태그의 MOI를 사용하여 상술한 바와 같은 방법으로 복호화 한다. A MOI value of the third I element tag is “001”, and only a G element 412 corresponding to a bit having a value of “1” is generated. The MOI of the fourth to sixth I element tags is used to decode in the manner described above.

일곱 번째 I 엘리먼트 태그의 MOI 값이 “011”로, 값이 “1”인 bit에 해당하는 E와 G 엘리먼트(428, 430)들을 생성한다. 마지막으로, 여덟 번째 I 엘리먼트 태그의 MOI를 사용하여 상술할 바와 같은 방법으로 복호화한다.The MOI value of the seventh I element tag is “011”, and the E and G elements 428 and 430 corresponding to the bit having the value “1” are generated. Finally, the MOI of the eighth I element tag is used to decode in the manner described above.

본 발명에 따른 경로 코드를 이용한 XML 문서의 부호화 및 복호화 방법에 의하면, 모든 엘리먼트에 경로 코드를 할당하지 않고, 선택된 일부 엘리먼트의 XPath에 각각 유일한 경로 정보를 할당함으로써, 불필요한 경로 코드의 할당을 감 소시킴에 따라 압축률을 높일 수 있다.According to the method of encoding and decoding an XML document using a path code according to the present invention, the assignment of unnecessary path codes is reduced by allocating unique path information to each XPath of selected elements without allocating path codes to all elements. By increasing the compression rate can be increased.

본 발명에 따른 경로 코드를 이용한 XML 문서의 부호화 및 복호화 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당 업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 상기 매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The encoding and decoding method of an XML document using a path code according to the present invention may be implemented in the form of program instructions that can be executed by various computer means and recorded in a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. Program instructions recorded on the media may be those specially designed and constructed for the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks. Magneto-optical media, and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. The medium may be a transmission medium such as an optical or metal line, a wave guide, or the like, including a carrier wave for transmitting a signal designating a program command, a data structure, or the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

이상과 같이 본 발명은 비록 한정된 실시 예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시 예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통 상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.As described above, although the present invention has been described by way of limited embodiments and drawings, the present invention is not limited to the above embodiments, and those skilled in the art to which the present invention pertains various modifications and variations from such descriptions. This is possible.

그러므로, 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined not only by the claims below but also by the equivalents of the claims.

도 1은 텍스트 형식의 XML 문서의 예를 나타낸다.1 shows an example of an XML document in a text format.

도 2는 TPEG과 EPG에서 이용하는 XML 문서의 이진 부호화의 기본 구조를 나타낸다.2 shows a basic structure of binary encoding of an XML document used in TPEG and EPG.

도 3은 도 1에 도시된 XML 문서에 대해 도 2를 이용하여 종래의 태그 코드 할당 방법을 설명하기 위한 도면이다.FIG. 3 is a diagram for describing a conventional tag code allocation method using FIG. 2 for the XML document shown in FIG. 1.

도 4는 본 발명에 따른 XML 문서의 부호화 장치의 구성을 나타내는 블록도이다.4 is a block diagram showing the configuration of an apparatus for encoding an XML document according to the present invention.

도 5는 본 발명에 따른 XML 문서의 복호화 장치의 구성을 나타내는 블록도이다.5 is a block diagram showing the configuration of an apparatus for decoding an XML document according to the present invention.

도 6은 본 발명에 따른 XML 문서의 부호화 시, 이용되는 데이터 구조를 나타낸다.6 illustrates a data structure used when encoding an XML document according to the present invention.

도 7은 경로 코드 할당 방법을 성명하기 위한 흐름도이다.7 is a flowchart for clarifying a path code allocation method.

도 8은 XML Schema로 작성된 스키마의 예를 나타낸다.8 shows an example of a schema created with XML Schema.

도 9는 스키마의 정의에 대한 그래픽컬한 다이어그램을 나타내는 도면이다.9 shows a graphical diagram of the definition of a schema.

도 10은 도 9의 엘리먼트 및 애트리뷰트의 XPath에 할당한 경로 코드를 나타낸 경로 코드 테이블이다.FIG. 10 is a path code table showing a path code assigned to the XPath of the elements and attributes of FIG. 9.

도 11은 DET 예를 나타낸 도면이다.11 is a diagram illustrating an example of DET.

도 12는 길이에 따른 부호화 규칙을 설명하기 위한 도면이다.12 is a diagram for describing an encoding rule according to length.

도 13은 XML 문서의 부호화 방법을 설명하기 위한 흐름도이다.13 is a flowchart for explaining a method of encoding an XML document.

도 14는 XML 문서의 복호화 방법을 설명하기 위한 흐름도이다.14 is a flowchart for explaining a method of decrypting an XML document.

도 15은 XML 문서에서 엘리먼트 태그 혹은 애트리뷰트의 XPath에 포함된 모든 엘리먼트 태그들의 출현 정보인 MOI를 예시적으로 나타내는 도면이다.FIG. 15 is a diagram exemplarily illustrating MOI, which is information on appearance of all element tags included in an XPath of an element tag or an attribute in an XML document.

Claims (15)

XML Schema 언어로 작성된 스키마에서 정의된 엘리먼트와 애트리뷰트에 경로 코드를 할당하는 방법에 있어서,In the method of assigning path codes to elements and attributes defined in a schema written in the XML Schema language, 상기 스키마에서 정의된 모든 엘리먼트(element)들 중 선택된 일부 엘리먼트들의 XPath에 각각 유일한 경로 코드를 할당하는 단계; 및Assigning a unique path code to each XPath of selected elements among all the elements defined in the schema; And 상기 스키마에서 정의된 모든 애트리뷰트(attribute)들의 XPath에 각각 유일한 경로 코드를 할당하는 단계Assigning a unique path code to each of the XPaths of all attributes defined in the schema; 를 포함하는 스키마에서의 경로 코드 할당 방법.Path code assignment method in the schema including. 제1항에 있어서,The method of claim 1, 상기 일부 엘리먼트들의 XPath에 각각 유일한 경로 코드를 할당하는 단계는,Assigning a unique path code to each of the XPaths of the some elements, 상기 모든 엘리먼트들이 전역 엘리먼트(global element)로 정의되었는지 확인하는 단계; 및Checking that all the elements are defined as global elements; And 전역 엘리먼트로 정의되어 있는 경우, 상기 전역 엘리먼트의 XPath에 유일한 경로 코드를 할당하는 단계Assigning a unique path code to the XPath of the global element if defined as a global element 를 포함하는 스키마에서의 경로 코드 할당 방법.Path code assignment method in the schema including. 제1항에 있어서,The method of claim 1, 상기 일부 엘리먼트들의 XPath에 각각 유일한 경로 코드를 할당하는 단계는,Assigning a unique path code to each of the XPaths of the some elements, 상기 모든 엘리먼트들에 대해, 엘리먼트가 문자 데이터(character data)를 직접 갖는 단순 콘텐츠(simple content)로 정의되었는지 확인하는 단계;For all of the elements, confirming that the element is defined as simple content having character data directly; 엘리먼트가 단순 콘텐츠로 정의되어 있는 경우, 상기 엘리먼트의 XPath에 각각 유일한 경로 코드를 할당하는 단계If the elements are defined as simple content, assigning a unique path code to each of the XPaths of the elements 를 포함하는 스키마에서의 경로 코드 할당 방법.Path code assignment method in the schema including. 제1항에 있어서,The method of claim 1, 상기 일부 엘리먼트들의 XPath에 각각 유일한 경로 코드를 할당하는 단계는,Assigning a unique path code to each of the XPaths of the some elements, 상기 모든 엘리먼트들에 대해, 엘리먼트가 순환적(recursively) 정의되었는지 확인하는 단계; 및For all of the elements, confirming that the element is defined recursively; And 순환적으로 정의되어 있는 경우, 상기 순환이 시작되는 제 1 엘리먼트와 상기 순환이 끝나는 제 2 엘리먼트의 XPath에 각각 유일한 경로 코드를 할당하는 단계Assigning a unique path code to each XPath of the first element where the cycle begins and the second element where the cycle ends, if it is defined circularly 를 포함하는 스키마에서의 경로 코드 할당 방법.Path code assignment method in the schema including. 제1항에 있어서,The method of claim 1, 상기 일부 엘리먼트들의 XPath에 각각 유일한 경로 코드를 할당하는 단계는,Assigning a unique path code to each of the XPaths of the some elements, 상기 모든 엘리먼트들에 대해, 엘리먼트가 혼합 콘텐츠(mixed content)로 정의되었는지 확인하는 단계; 및For all the elements, confirming that the element is defined as mixed content; And 혼합 콘텐츠로 정의되어 있는 경우, 혼합 콘텐츠를 갖는 상기 엘리먼트의 XPath에 유일한 경로 코드를 할당하는 단계Assigning a unique path code to the XPath of the element having mixed content, if defined as mixed content 를 포함하는 스키마에서의 경로 코드 할당 방법.Path code assignment method in the schema including. XML Schema 언어로 작성된 스키마에 유효(valid)한 XML 문서를 부호화하는 방법에 있어서, In a method for encoding an XML document valid in a schema written in the XML Schema language, 상기 XML 문서에서 문자 데이터를 직접 갖는 모든 엘리먼트 태그 및 모든 애트리뷰트를 검색하는 단계;Retrieving all element tags and all attributes having character data directly in the XML document; 상기 검색된 엘리먼트 태그 혹은 애트리뷰트의 XPath를 추출하는 단계; 및Extracting an XPath of the retrieved element tag or attribute; And 상기 추출된 각각의 XPath를 엘리먼트 및 애트리뷰트의 XPath를 이용한 경로 코드 할당 방법에 의해 기 설정된 경로 코드로 변환하는 단계Converting each of the extracted XPaths into a preset path code by a path code allocation method using XPaths of elements and attributes; 를 포함하는 XML 문서의 부호화 방법.Encoding method of the XML document comprising a. 제6항에 있어서,The method of claim 6, 상기 엘리먼트 및 애트리뷰트의 XPath를 이용한 경로 코드 할당 방법은,Path code allocation method using the XPath of the element and attribute, 상기 스키마에서 정의된 모든 엘리먼트(element)들 중 선택된 일부 엘리먼트들의 XPath에 각각 유일한 경로 코드를 할당하는 단계; 및Assigning a unique path code to each XPath of selected elements among all the elements defined in the schema; And 상기 스키마에서 정의된 모든 애트리뷰트(attribute)들의 XPath에 각각 유일한 경로 코드를 할당하는 단계Assigning a unique path code to each of the XPaths of all attributes defined in the schema; 를 포함하는 XML 문서의 부호화 방법.Encoding method of the XML document comprising a. 제6항에 있어서,The method of claim 6, 경로 코드로 변환된 상기 엘리먼트 태그 혹은 애트리뷰트의 XPath에 대해, 상기 XPath에 포함된 모든 엘리먼트 태그들의 출현 정보(occurrence indicator)를 생성하는 단계Generating occurrence indicators of all the element tags included in the XPath, for an XPath of the element tag or attribute converted into a path code; 를 더 포함하는 XML 문서의 부호화 방법.Encoding method of the XML document further comprising. 제8항에 있어서,The method of claim 8, 상기 출현 정보를 생성하는 단계는,Generating the appearance information, 상기 XPath의 시작 노드와 마지막 노드 사이에 위치하는 각 엘리먼트 노드들에 대해 순서대로 1 bit를 할당하는 단계Allocating 1 bit in order for each element node located between the start node and the last node of the XPath 를 포함하는 XML 문서의 부호화 방법.Encoding method of the XML document comprising a. 제9항에 있어서,10. The method of claim 9, 상기 각 bit 값을 할당하는 단계는,The step of assigning each bit value, 경로 코드로 변환된 상기 엘리먼트 태그를 복호화 할 때,When decrypting the element tag converted to a path code, 상기 bit에 해당하는 엘리먼트 태그를 생성해야 하는 경우에는 “1”을 할당하고, 상기 엘리먼트 태그를 생성하지 않을 경우에는 “0”을 할당하는 단계Allocating “1” when the element tag corresponding to the bit is to be generated, and assigning “0” when the element tag is not generated. 를 포함하는 XML 문서의 부호화 방법.Encoding method of the XML document comprising a. 경로 코드를 기반으로 부호화된 XML 문서를 복호화하는 방법에 있어서,In the method for decoding an XML document encoded based on a path code, 상기 부호화된 XML 문서에서 경로 코드를 추출하는 단계;Extracting a path code from the encoded XML document; 상기 추출된 각각의 경로 코드에 해당하는 XPath를 엘리먼트 및 애트리뷰트의 XPath를 이용한 경로 코드 할당 방법에 의해 기 설정된 경로 코드 테이블로부터 검색하는 단계; 및Searching for an XPath corresponding to each of the extracted path codes from a path code table preset by a path code allocation method using an XPath of an element and an attribute; And 상기 검색한 XPath에 포함된 엘리먼트 태그들의 출현 정보에 따라, 상기 엘리먼트 태그 혹은 애트리뷰트를 선택적으로 복원하는 단계Selectively restoring the element tag or the attribute according to the appearance information of the element tags included in the searched XPath 를 포함하는 XML 문서의 복호화 방법.XML document decoding method comprising a. 제11항에 있어서,The method of claim 11, 상기 엘리먼트 태그 혹은 애트리뷰트를 선택적으로 복원하는 단계는,Selectively restoring the element tag or attribute, 상기 출현 정보의 각 bit에 대하여, 상기 각 bit 값이 “1”일 경우에만 상기 bit에 해당하는 엘리먼트 태그를 복원하는 단계Restoring an element tag corresponding to the bit only when the value of each bit is “1” for each bit of the appearance information; 를 포함하는 XML 문서의 복호화 방법.XML document decoding method comprising a. 제11항에 있어서,The method of claim 11, 상기 엘리먼트 태그 혹은 애트리뷰트를 선택적으로 복원하는 단계는,Selectively restoring the element tag or attribute, 상기 검색한 XPath의 마지막 노드에 해당하는 엘리먼트 태그 혹은 애트리뷰트를 복원하는 단계Restoring an element tag or attribute corresponding to the last node of the retrieved XPath 를 더 포함하는 XML 문서의 복호화 방법.Decoding method of the XML document further comprising. XML Schema 언어로 작성된 스키마에 유효한 XML 문서를 부호화하는 장치에 있어서,An apparatus for encoding a valid XML document into a schema written in the XML Schema language, 상기 스키마에서 정의된 엘리먼트와 애트리뷰트에 상기 엘리먼트 및 애트리뷰트의 XPath를 이용한 경로 코드 할당 방법에 의해 경로 코드를 할당하여, 경로 코드 테이블을 생성하는 경로 코드 할당기; 및A path code allocator for allocating path codes to elements and attributes defined in the schema by a path code allocation method using XPath of the elements and attributes to generate a path code table; And 상기 XML 문서에서 문자 데이터를 직접 갖는 모든 엘리먼트 태그 및 모든 애트리뷰트를 검색하고, 상기 검색된 엘리먼트 태그 및 애트리뷰트의 XPath를 상기 경로 코드 테이블에 정의된 경로 코드로 변환하여 부호화하는 XML 부호화기An XML encoder for retrieving all element tags and all attributes directly having character data in the XML document, and converting and encoding the XPaths of the retrieved element tags and attributes into the path codes defined in the path code table. 를 포함하는 부호화 장치.Encoding apparatus comprising a. 경로 코드를 기반으로 부호화된 XML 문서를 복호화하는 장치에 있어서,An apparatus for decoding an XML document encoded based on a path code, 상기 부호화된 XML 문서에서 경로 코드를 추출하고, 상기 추출된 경로 코드에 해당하는 XPath를 엘리먼트 및 애트리뷰트의 XPath를 이용한 경로 코드 할당 방법에 의해 기 설정된 경로 코드 테이블로부터 검색하고, 상기 검색한 XPath에 포함된 엘리먼트 태그들의 출현 정보에 따라, 상기 엘리먼트 태그 혹은 애트리뷰트를 선택적으로 복원하여 인스턴스 트리를 생성하는 복호화기; 및Extracts a path code from the encoded XML document, retrieves an XPath corresponding to the extracted path code from a path code table set by a path code allocation method using an XPath of an element and an attribute, and includes the path code in the searched XPath. A decoder configured to selectively restore the element tag or the attribute according to the appearance information of the extracted element tags to generate an instance tree; And 상기 생성된 인스턴스 트리로부터 XML 문서를 생성하는 XML 문서 생성기XML document generator for generating an XML document from the generated instance tree 를 포함하는 복호화 장치.Decoding apparatus comprising a.
KR20080043539A 2007-11-09 2008-05-09 Method and Apparatus for Encoding and Decoding XML Documents Using Path Code KR100952051B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP08168606A EP2068252A3 (en) 2007-11-09 2008-11-07 Method and apparatus for encoding and decoding XML document using path code

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020070114418 2007-11-09
KR20070114418 2007-11-09

Publications (2)

Publication Number Publication Date
KR20090048288A KR20090048288A (en) 2009-05-13
KR100952051B1 true KR100952051B1 (en) 2010-04-07

Family

ID=40857492

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20080043539A KR100952051B1 (en) 2007-11-09 2008-05-09 Method and Apparatus for Encoding and Decoding XML Documents Using Path Code

Country Status (1)

Country Link
KR (1) KR100952051B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101044870B1 (en) * 2008-10-02 2011-06-28 한국전자통신연구원 Method and Apparatus for Encoding and Decoding XML Documents Using Path Code
KR101654571B1 (en) 2010-07-21 2016-09-06 삼성전자주식회사 Apparatus and Method for Transmitting Data

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050023411A (en) * 2002-07-15 2005-03-09 지멘스 악티엔게젤샤프트 Method and devices for encoding/decoding structured documents, especially xml documents
KR20070057603A (en) * 2005-12-01 2007-06-07 한국전자통신연구원 Xml data stream processing system and method for managing the access control using xpath

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050023411A (en) * 2002-07-15 2005-03-09 지멘스 악티엔게젤샤프트 Method and devices for encoding/decoding structured documents, especially xml documents
KR20070057603A (en) * 2005-12-01 2007-06-07 한국전자통신연구원 Xml data stream processing system and method for managing the access control using xpath

Also Published As

Publication number Publication date
KR20090048288A (en) 2009-05-13

Similar Documents

Publication Publication Date Title
JP3368883B2 (en) Data compression device, database system, data communication system, data compression method, storage medium, and program transmission device
US7260580B2 (en) Binary XML
US8346737B2 (en) Encoding of hierarchically organized data for efficient storage and processing
US9336188B2 (en) Generating a statistical tree for encoding/decoding an XML document
US7263654B2 (en) System and method for generating optimized binary representation of an object tree
US20050097566A1 (en) Message translation and parsing of data structures in a distributed component architecture
US8892991B2 (en) Encoder compiler, computer readable medium, and communication device
US7318194B2 (en) Methods and apparatus for representing markup language data
KR101044870B1 (en) Method and Apparatus for Encoding and Decoding XML Documents Using Path Code
JP3865694B2 (en) Path encoding and decoding method in tree structure of structured document
KR101109201B1 (en) Method for a description of audio-visual data content in a multimedia environment
CN101807205A (en) The processing module, equipment and the method that are used for the processing XML data
CN102708106B (en) Exi encoder
KR100952051B1 (en) Method and Apparatus for Encoding and Decoding XML Documents Using Path Code
US20080276230A1 (en) Processing bundle file using virtual xml document
JP2006519422A (en) How to encode structured documents
US8185565B2 (en) Information processing apparatus, control method, and storage medium
CN105793842B (en) Conversion method and device between serialized message
KR100898614B1 (en) Schema, syntactic analysis method and method of generating a bit stream based on a schema
EP2068252A2 (en) Method and apparatus for encoding and decoding XML document using path code
JP2009128945A (en) Data processing apparatus, method and program
US20040015780A1 (en) Position-independent access to data elements in an electronic document
CN101151612A (en) Method of and system for providing random access to a document
JP4830558B2 (en) Structured document encoding apparatus and structured document decoding apparatus
WO2007006090A1 (en) Systems and methods for use in transforming electronic information into a format

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: 20130327

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140728

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160401

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170410

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180403

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee