KR101499441B1 - 문서를 압축, 역압축 및 조회하는 방법 및 장치 - Google Patents

문서를 압축, 역압축 및 조회하는 방법 및 장치 Download PDF

Info

Publication number
KR101499441B1
KR101499441B1 KR1020137030777A KR20137030777A KR101499441B1 KR 101499441 B1 KR101499441 B1 KR 101499441B1 KR 1020137030777 A KR1020137030777 A KR 1020137030777A KR 20137030777 A KR20137030777 A KR 20137030777A KR 101499441 B1 KR101499441 B1 KR 101499441B1
Authority
KR
South Korea
Prior art keywords
node
path
code
data
path code
Prior art date
Application number
KR1020137030777A
Other languages
English (en)
Other versions
KR20140056172A (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 페킹 유니버시티
Publication of KR20140056172A publication Critical patent/KR20140056172A/ko
Application granted granted Critical
Publication of KR101499441B1 publication Critical patent/KR101499441B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/70Type of the data to be coded, other than image and sound
    • H03M7/707Structured documents, e.g. XML
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

스키머를 구비한 XML 문서를 처리하는 방법은 XML 문서의 구조 내용과 데이터 내용을 발췌하는 단계, 상기 구조 내용에서 노드의 경로 코드를 결정하는 단계, 및 상기 노드의 기저장된 전위에 따라 상기 노드에 대응되는 데이터 내용을 결정하는 단계, 여기서 상기 노드의 상기 경로 코드는 상기 노드와 상기 구조 내용의 기타 노드를 거쳐 상기 구조 내용에서 상기 노드의 저장 위치를 식별하고, 및 상기 노드, 상기 노드의 상기 경로 코드와 상기 데이터 내용을 각각 압축하는 단계를 포함한다.

Description

문서를 압축, 역압축 및 조회하는 방법 및 장치{METHOD AND DEVICE FOR COMPRESSING, DECOMPRESSING AND QUERYING DOCUMENT}
본 출원은 컴퓨터 활용 기술분야에 관련된 것으로, 특히 문서를 압축, 역압축 및 조회하는 방법 및 장치에 관한 것이다.
[관련 출원의 전후 참조]
본 출원은 전체 내용이 참조로서 본원에 각각 포함되는, 2011년12월30일에 출원된 출원번호201110456661.1호 중국 특허출원의 권익을 주장한다.
확장성 마크업언어(Extensible Markup language, “XML”이라 략칭)는 통상적인 데이터 저장 언어로 널리 사용되고 있다. XML 문서에 많은 데이터 중복(data redundancy)이 존재하기 때문에, XML 문서의 데이터는 실제로 전용 XML 압축방법을 사용하여 압축을 진행한다. 일반적으로, 통상의 XML 압축방법으로 2가지가 있다.
첫 번째 압축방법은 조회가 가능하지 않다. 이러한 방법으로 압축된 XML 문서에서 일부 XML 데이터를 조회 및 획득하기 위하여, 먼저 상기 XML 문서에 대하여 역압축하는 것이 필요하고 다음 조회하여 결과를 획득한다.
두 번째 압축방법은 조회가 가능하다. 이러한 방법에 의하면 압축된 XML 문서에서 일부 XML 데이터를 직접 조회하고 획득하는 것이 가능하다. 이와 같은 방법은 XPath, XQuery 등과 같은 조회 언어를 사용하여 상기 압축된 XML 문서를 조회한다. 이러한 조회 언어는 경로에 기반하여 XML 문서로부터 정보를 리트리브하되, 이러한 경로는 상기 XML 문서중 특정 노드와 목표 노드사이에 위치한 이미 방문된 모든 노드를 포함하는 sequence이다. 상기 경로는 방문된 노드와 일부 특수 부호를 부호화한 문자열로 표시된다. Xpath는 XML 데이터의 본문 묘사(textual representation)에 초점을 두지 않고, 근본적인 추상 논리 구조 트리에서 운행된다. XPath의 명칭은 XML 데이터의 계층 구조에서 방문 및 위치 지정을 진행하기 위한 통합 자원 식별자(Uniform Resource Identifier, URI)의 경로 묘사와 유사한 경로 묘사를 이용하여 파생된다. XML 문서에서 특정 데이터 단락의 위치를 찾아내기 위한 XPath의 주요한 목적을 달성하기 위하여, XPath의 명세에는 기본 문자열, 수치 값과 불린(Boolean) 처리 기능들이 제공된다.
기존의 기술은 상응한 스키머(Schema)를 구비한 XML 문서에 대하여 효율적으로 압축과 역압축을 진행할 수 없고 또한 압축된 상황에서 조회 작동을 진행할수 없다.
기존 기술의 문제를 해결하기 위하여, 본 개시의 일 방면에 따라 상응한 스키머를 구비한 XML 문서에 대하여 압축하는 방법 및 장치를 제공한다.
일부 실시예에 있어서, 상응한 스키머를 구비한 XML 문서를 처리하는 방법은
XML 문서의 구조 내용과 데이터 내용을 발췌하되, 여기서 상기 구조 내용은 라벨중 속성값과 라벨 사이의 내용을 제외한 상기 XML 문서의 라벨(혹은 태그)에서의 내용을 포함하는 단계;
상기 구조 내용에서 노드의 경로 코드를 결정하고, 또한 상기 노드의 기저장된 전위에 따라 상기 노드에 대응되는 데이터 내용을 결정하되, 여기서 상기 노드의 상기 경로 코드는 상기 구조 내용의 상기 노드와 기타 노드를 거쳐 상기 구조 내용에서 상기 노드의 저장 위치를 식별하는 단계; 및
기설정된 방법에 의하여 상기 구조 내용과 상기 노드의 상기 경로 코드에서 상기 노드를 처리하는 단계, 및 상기 처리된 노드, 상기 노드의 상기 처리된 경로 코드와 상기 데이터 내용을 각각 압축하는 단계를 포함할 수 있다.
일부 실시예에 있어서, 상응한 스키머를 구비한 XML 문서를 압축하는 장치는
XML 문서의 구조 내용과 데이터 내용을 발췌하도록 배치되데, 여기서 상기 구조 내용은 상기 라벨중 속성값과 라벨 사이의 내용을 제외한 상기 XML 문서의 라벨에서의 내용을 포함하는 발췌 유닛;
상기 구조 내용에서 노드의 경로 코드를 결정하고, 또한 상기 노드의 기저장된 전위에 따라 상기 노드에 대응되는 데이터 내용을 결정하도록 배치되되, 여기서 상기 노드의 상기 경로 코드는 상기 구조 내용의 상기 노드와 기타 노드를 거쳐 상기 구조 내용에서 상기 노드의 저장 위치를 식별하는 단계; 및
기설정된 방법에 의하여 상기 구조 내용과 상기 노드의 상기 경로 코드에서 상기 노드를 처리하고, 또한 상기 처리된 노드, 상기 노드의 상기 처리된 경로 코드와 상기 데이터 내용을 각각 압축하도록 배치된 압축 유닛을 포함할 수 있다.
본 개시의 기타 방면에 따르면, 상기한 압축방법에 의하여 압축된 상응한 스키머를 구비한 XML 문서를 역압축하는 방법과 장치가 제공된다.
일부 실시예에 있어서, 상기한 압축방법에 의하여 압축된 상기 XML 문서를 역압축하는 방법은
상기 노드의 상기 압축된 경로 코드와 압축된 문서 구조 정보를 획득하는 단계;
상기 노드의 상기 압축된 경로 코드를 역압축하고 또한 상기 역압축된 경로 코드에 대응되는 노드를 출력하는 단계; 및
상기 압축된 문서 구조 정보를 역압축하고, 상기 역압축된 문서 구조 정보에 따라 상기 역압축된 노드에 대응되는 압축된 데이터 내용을 결정하고, 또한 상기 결정된 데이터 내용을 역압축하고 출력하는 단계를 포함할 수 있다.
일부 실시예에 있어서, 상기한 압축 장치에 의하여 압축된 상기 XML 문서를 역압축하는 장치는
상기 노드의 상기 압축된 경로 코드와 압축된 문서 구조 정보를 획득하도록 배치된 획득 유닛;
상기 노드의 상기 압축된 경로 코드와 상기 압축된 문서 구조 정보를 역압축하도록 배치된 역압축 유닛;
상기 역압축된 문서 구조 정보에 따라 상기 역압축된 노드에 대응되는 압축된 데이터 내용을 결정하도록 배치된 데이터 결정 유닛; 및
상기 역압축 유닛에 의하여 역압축된 상기 경로 코드에 대응되는 노드를 출력하고, 또한 상기 데이터 결정 유닛에 의하여 결정된 상기 데이터 내용을 출력하도록 배치된 출력 유닛을 포함할 수 있다.
따라서, 본 출원의 일부 실시예에서 제공된 역압축방법은
상기 노드의 상기 압축된 경로 코드, 상기 데이터 내용의 상기 압축된 경로 코드와 상기 압축된 문서 구조 정보를 획득하고 역압축한 후, 상기 역압축된 경로 코드에 대응되는 노드를 출력하는 단계; 상기 노드의 상기 역압축된 경로 코드와 동일한 경로 코드를 구비하는 상기 압축된 데이터 내용을 결정하고, 또한 상기 결정된 데이터 내용을 역압축하고 출력하는 단계를 포함할 수 있다. 그러므로 상기한 방법에 따르면 여기에 개시된 압축방법에 의하여 압축된 XML 문서를 역압축할 수 있다.
기존 기술에서 압축된 상응한 스키머를 구비한 XML 문서를 조회할 수 없는 문제점을 해결하기 위하여, 본 개시의 기타 방면에 따르면, 상기한 압축방법에 의하여 압축된 XML 문서를 조회하는 방법과 장치가 제공된다.
일부 실시예에 있어서, XML 문서를 조회하는 방법은
기설정된 변환 방법에 의하여 입력 조회 경로를 경로 코드로 변환하는 단계; 및
상기 압축된 XML 문서에서 상기 변환된 경로 코드에 대응되는 노드를 검색하고, 또한 상기 획득된 노드를 조회 결과로 출력하거나; 혹은
상기 압축된 XML 문서에서 상기 변환된 경로 코드에 대응되는 노드와 상기 압축된 XML 문서에서 상기 획득된 노드에 대응되는 데이터 내용을 검색하고, 또한 상기 획득된 노드와 데이터 내용을 조회 결과로 출력하는 단계를 포함할 수 있다.
일부 실시예에 있어서, XML 문서를 조회하는 장치는
기설정된 변환 방법에 의하여 입력 조회 경로를 경로 코드로 변환하도록 배치된 변환 유닛;
상기 압축된 XML 문서에서 상기 변환된 경로 코드에 대응되는 노드를 검색하도록 배치된 노드 검색 유닛; 및
상기 노드 검색 유닛에 의하여 획득된 상기 노드를 조회 결과로 출력하도록 배치된 출력 유닛을 포함할 수 있다.
상기 장치는 상기 노드 검색 유닛에 의하여 획득된 상기 노드에 대응되는 데이터 내용을 검색하도록 배치된 데이터 검색 유닛을 포함할 수 있다. 상기 출력 유닛 혹은 기타 출력 유닛은 데이터 검색 유닛에 의하여 획득된 상기 데이터 내용을 조회 결과로 출력하도록 사용될 수 있다.
본 출원의 일부 실시예에서 제공된 조회방법에 있어서, 상기 노드 및/혹은 데이터 내용의 저장 경로는 상응한 스키머를 구비하고 또한 여기에 개시된 압축방법에 의하여 압축된 XML 문서에 위치한 경로 코드이므로, 상기 조회 경로가 경로 코드로 변환된 후에 상기 노드 및/혹은 데이터 내용을 조회하고 또한 조회된 노드 및/혹은 데이터 내용을 조회 결과로 출력하는것이 가능하다. 그러므로, 상기한 방법에 따르면 상응한 스키머를 구비한 XML 문서를 조회할 수 있다.
도 1은 본 출원의 실시예에 따른 상응한 스키머를 구비한 XML 문서에 대하여 압축하는 방법의 흐름을 나타내는 도면이다.
도 2는 본 출원의 실시예에 따른 상응한 스키머를 구비한 XML 문서에 대하여 역압축하는 방법의 흐름을 나타내는 도면이다.
도 3은 본 출원의 실시예에 따른 상응한 스키머를 구비한 XML 문서에 대하여 조회하는 방법의 흐름을 나타내는 도면이다.
도 4는 본 출원의 실시예에 따른 XML 문서에서 스키머의 요약 구조를 나타내는 도면이다.
도 5는 본 출원의 실시예에 따른 XML 문서에서 스키머의 요약 구조도이다.
도 6은 본 출원의 실시예에 따른 상응한 스키머를 구비한 XML 문서에 대하여 압축하는 장치의 요약 구조를 나타내는 도면이다.
도 7은 본 출원의 실시예에 따른 XML 문서에 대하여 역압축하는 장치의 요약 구조를 나타내는 도면이다.
도 8은 본 출원의 실시예에 따른 XML 문서에 대하여 조회하는 장치의 요약 구조를 나타내는 도면이다.
본 출원의 일부 실시예에 있어서, 상응한 스키머를 구비한 XML 문서에 대하여 압축하는 방법을 제공한다. 상기 방법은 XML 문서의 구조 내용과 데이터 내용을 발췌하는 단계; 노드의 경로 코드와 데이터 내용의 경로 코드를 각각 결정하는 단계; 상기 노드의 경로 코드, 상기 데이터 내용의 경로 코드와 상기 데이터 내용을 각각 압축하는 단계를 포함할 수 있다. 이하 설명될 예에 있어서 “일 노드” 혹은 “상기 노드”를 지칭하고 있으나, 해당 표술은 복수의 노드인 경우에도 적용될 수 있음은 당업자들에게 있어서 자명할 것이다.
구체적으로, 도 1을 참조하면, 일부 실시예에 따른 방법은 아래와 같은 단계를 포함할 수 있다.
단계11에 있어서, XML 문서의 구조 내용과 데이터 내용을 발췌하는 단계가 포함될 수 있고, 여기서 상기 구조 내용은 라벨중 속성값과 라벨 사이의 내용을 제외한 상기 XML 문서의 라벨(혹은 태그)중의 내용을 포함할 수 있다.
단계12에 있어서, 상기 구조 내용에서 노드의 경로 코드를 결정하고, 또한 기저장된 상기 노드의 전위(preorder)에 따라 상기 노드에 대응되는 데이터 내용을 결정하는 단계가 포함될 수 있다. 여기서, 상기 노드의 경로 코드는 상기 구조 내용중 기타 노드와 상기 노드를 거쳐 상기 구조 내용에서 상기 노드의 저장 위치를 식별한다.
단계13에 있어서, 기설정된 방법에 의하여 상기 구조 내용중의 상기 노드와 상기 노드의 경로 코드를 처리하고, 또한 상기 처리된 노드, 상기 노드의 처리된 경로 코드와 상기 데이터 내용를 각각 압축하는 단계가 포함될 수 있다.
일부 실시예에 있어서, 단계12는 상기 구조 내용중 상기 노드에 대응되는 실제 경로에 포함된 각 노드를 상응한 노드 코드로 대체하고, 상기 구조 내용에서 상기 노드의 경로 코드로 대체후 획득된 경로를 이용하는 단계가 포함될 수 있다. 여기서, 상기 노드의 실제 경로는 상기 구조 내용에서 상기 노드와 기타 노드를 거쳐 상기 구조 내용중 상기 노드의 실제 저장 경로를 식별한다.
일부 실시예에 있어서, 후속 역압축 작동의 편의성을 위하여, 여기에 개시된 상기 압축방법은 상기 XML 문서의 문서 구조 정보를 생성하고, 또한 상기 문서 구조 정보를 압축하는 단계를 진일보 포함할 수 있다. 여기서, 상기 문서 구조 정보는 상기 노드의 전위와 상기 데이터의 전위를 포함한다.
본 출원의 일부 실시예에 있어서, 본문에 개시된 압축방법에 의하여 압축된 XML 문서에 대하여 역압축하는 방법을 제공한다. 상기 방법에 따르면, 상기 노드의 압축된 경로 코드, 상기 데이터 내용의 압축된 경로 코드와 상기 압축된 문서 구조 정보를 획득 및 역압축한 후 역압축된 경로 코드에 대응되는 노드를 출력하고; 상기 역압축된 문서 구조 정보에 따라 상기 노드의 역압축된 경로 코드와 동일한 경로 코드를 구비하는 상기 압축된 데이터 내용을 결정하고, 또한 상기 결정된 데이터 내용을 역압축하고 출력한다.
도 2에 도시한 일부 실시예에 있어서, 상기 방법은 아래와 같은 단계를 포함할 수 있다.
단계21에 있어서, 상기 노드의 압축된 경로 코드와 상기 압축된 문서 구조 정보를 획득하는 단계가 포함될 수 있다.
단계22에 있어서, 상기 노드의 압축된 경로 코드를 역압축하고 상기 역압축된 경로 코드에 대응되는 노드를 출력하는 단계가 포함될 수 있다.
단계23에 있어서, 상기 압축된 문서 구조 정보를 역압축하고, 상기 역압축된 문서 구조 정보에 따라 상기 역압축된 노드에 대응되는 압축된 데이터 내용을 결정하고, 또한 상기 결정된 데이터 내용을 역압축하고 출력하는 단계가 포함될 수 있다.
일부 실시예에 있어서, 여기에 개시된 압축방법에 의하여 압축된 상기 XML 문서는 상기 노드의 전위와 상기 데이터 내용의 전위를 포함하므로, 단계23에서 상기 역압축된 문서 구조 정보에 따라 상기 역압축된 노드에 대응되는 압축된 데이터 내용을 결정하는 처리과정은 아래와 같은 단계가 더 포함될 수 있다.
상기 노드의 역압축된 경로 코드와 동일한 경로 코드에 대응되는 데이터 내용의 전위의 sequence 길이가 0이 아닐 경우, 상기 역압축된 노드의 전위와 차이가 1인 전위에 대응되는 압축된 데이터 내용을 상기 노드의 역압축된 경로 코드와 동일한 경로 코드를 구비하는 압축된 데이터 내용으로 결정한다.
본 출원의 일부 실시예에 있어서, 여기에 개시된 압축방법에 의하여 압축된 XML 문서를 조회하는 방법을 제공한다. 상기 노드 및/혹은 데이터 내용의 저장 경로는 여기에 개시된 압축방법에 의하여 압축된 또한 상응한 스키머를 구비한 XML 문서에 위치한 경로 코드이므로, 조회 경로를경로 코드로 변환한 후 상기 노드 및/혹은 데이터 내용을 조회하고 또한 조회된 노드 및/혹은 데이터 내용을 조회 결과로 출력하는 것이 가능하다.
도 3에 도시한 일부 실시예에 있어서, 상기 방법은 아래와 같은 단계를 포함할 수 있다.
단계31에 있어서, 기설정된 변환 방법에 의하여 입력 조회 경로를 경로 코드로 변환하는 단계가 포함될 수 있다.
단계32에 있어서, 상기 압축된 XML 문서에서 변환된 경로 코드에 대응되는 노드를 검색하고, 또한 상기 획득된 노드를 조회 결과로 출력하거나; 혹은 상기 압축된 XML 문서에서 변환된 경로 코드에 대응되는 노드와 상기 압축된 XML 문서에서 획득된 노드에 대응되는 데이터 내용을 검색하고, 또한 상기 획득된 노드와 데이터 내용을 조회 결과로 출력하는 단계가 포함될 수 있다.
일부 실시예에 있어서, 단계31은,
상기 조회 경로에 포함된 노드를 상기 노드에 대응되는 노드 코드로 변환하고, 또한 상기 변환된 경로를 상기 조회 경로의 경로 코드로 이용하는 단계를 포함할 수 있다.
일부 실시예에 있어서, 여기에 개시된 압축방법에 의하여 압축된 XML 문서는 상기 데이터 내용의 상기 전위를 포함할 수 있으므로, 단계32에서 상기 압축된 XML 문서에서 상기 변환된 경로 코드에 대응되는 노드를 검색하는 단계는 아래와 같은 단계를 포함할 수 있다.
상기 변환된 경로 코드에서 마지막 노드 코드에 술어가 포함될 시, 상기 압축된 XML 문서에서 기 변환된 경로 코드의 상기 경로 코드와 동일한 경로 코드에 대응되는 노드를 검색하고; 만일 획득된 노드의 수가 1이고, 또한 상기 획득된 노드가 제1 경로 코드에 의하여 결정된 노드일 경우, 상기 획득된 노드를 상기 변환된 경로 코드에 대응되는 노드로 이용하고; 만일 상기 획득된 노드의 수가 1보다 클 경우, 술어에 따라 상기 획득된 노드로부터 하나 이상의 노드를 결정하고, 또한 결정된 하나 이상의 노드를 상기 변환된 경로 코드에 대응되는 노드로 이용한다. 여기서 상기 술어는 제1 경로 코드에 대응되는 하나 이상의 노드를 표시하고, 또한 제1 경로 코드는 상기 술어를 포함하는 상기 변환된 경로 코드의 상기 노드 코드와 상기 술어를 포함하는 노드 코드 이전의 각 노드 코드에 의하여 결정된 경로 코드이거나; 혹은
상기 변환된 경로 코드에서 마지막 노드 코드가 아닌 노드 코드가 술어를 포함할 시, 상기 압축된 XML 문서에서 제1 경로 코드와 동일한 경로 코드에 대응되는 노드를 검색하고; 만일 상기 획득된 노드의 수가 1이고, 또한 상기 획득된 노드는 제1 경로 코드에 의하여 결정된 노드일 경우, 상기 압축된 XML 문서에서 상기 획득된 노드에 대응되는 노드 코드를 포함하고 또한 상기 변환된 경로 코드와 동일한 경로 코드를 검색하고, 또한 상기 획득된 경로 코드에 대응되는 노드를 상기 변환된 경로 코드에 대응되는 노드로 이용하고; 만일 상기 획득된 노드의 수가 1보다 클 경우, 술어에 따라 상기 획득된 노드로부터 하나 이상의 노드를 결정하고, 상기 변환된 경로 코드와 동일하고 또한 상기 압축된 XML 문서에서 상기 획득된 노드중 결정된 하나 이상의 노드에 대응되는 노드 코드를 포함하는 경로 코드를 검색하고, 또한 상기 획득된 경로 코드에 대응되는 노드를 상기 변환된 경로 코드에 대응되는 노드로 이용한다.
일부 실시예에 있어서, 여기에 개시된 압축방법에 의하여 압축된 XML 문서는 상기 노드의 전위를 포함할 수 있으므로, 단계32에서 상기 변환된 경로 코드에 대응되는 데이터 내용을 검색하는 단계는 아래와 같은 단계를 더 포함할 수 있다.
상기 압축된 XML 문서에서 변환된 경로 코드와 동일한 경로 코드에 대응되는 데이터 내용을 검색하는 단계;
만일 검색 결과중 획득된 데이터 내용의 수가 1일 경우, 상기 획득된 데이터 내용을 상기 변환된 경로 코드에 대응되는 데이터 내용으로 이용하고; 또한
만일 검색 결과중 획득된 데이터 내용의 수가 1보다 클 경우, 상기 획득된 데이터 내용에서 상기 획득된 노드 전위와 차이가 1인 전위에 대응되는 데이터 내용을 결정하고, 또한 상기 결정된 데이터 내용을 상기 변환된 경로 코드에 대응되는 데이터 내용으로 이용하는 단계를 포함한다.
일부 실시예에 있어서, 상기 스키머 구조는 site 노드, regions 노드, namerica 노드, item 노드, ID 노드, location 노드, categories 노드, complexType 노드, sequence 지표(sequence indicator)와 choice 지표(choice indicator)를 포함할 수 있다. 예를 들면, 상응한 스키머를 구비한 예시적인 XML 문서의 스키머 구조는 아래와 같은 것을 포함할 수 있다.
Figure 112013105509750-pct00001
스키머는 choice 지표를 포함하는 sequence 지표 및 서브노드가 없는 sequence 지표를 포함할 수 있다. 상기 choice 지표는 제1 서브노드e1, 제2 서브노드e2와 제3 서브노드e3등 3개의 서브노드를 포함할 수 있다. 이와 같은 3개의 서브노드는 모두 선택될 수 있다. 도 4에서 스키머 구조에 대응되는 트리 구조를 보여주고 있다.
이하, 본 출원에 따른 특정 실예에 대하여 설명하도록 한다.
설명의 편의를 위하여, 이하 모든 실예는 도 5에서 도시한 구조를 구비하는 XML 문서를 사용한다. 제1 데이터 노드에 대응되는 데이터 내용은 item0이고, 제2 데이터 노드에 대응되는 데이터 내용은 “US”이고, 제3 데이터 노드에 대응되는 데이터 내용은 item1, 제4 데이터 노드에 대응되는 데이터 내용은 item2이고, 또한 제5 데이터 노드에 대응되는 데이터 내용은 “CA”이다. 도 5를 참조하면, 상기 구조에 대하여 전위 운행을 실시하여 모든 상기 노드의 전위를 획득한다. 상기 XML 문서는 스키머 노드를 포함하는 상응한 스키머 구조를 구비한다.
<실예 1>
본 출원에 따른 실예 1에 있어서, 상응한 스키머를 구비한 XML 문서를 압축하는 방법을 제공한다. 상기 방법에 따르면, 처음으로 XML 문서의 구조 내용과 데이터 내용을 발췌하는 단계; 다음으로 상기 노드의 경로 코드와 상기 데이터 내용의 경로 코드를 각각 결정하는 단계; 마지막으로 상기 노드의 경로 코드, 상기 데이터 내용의 경로 코드와 상기 데이터 내용를 각각 압축하는 단계를 포함한다. 상기 방법은 아래와 같은 단계를 포함한다.
단계A, 소정 발췌 방법에 따라 XML 문서의 구조 내용과 데이터 내용을 발췌한다. 여기서, 상기 구조 내용은 상기 라벨중 속성값과 라벨 사이의 내용을 포함하지 않은 XML 문서의 라벨의 내용을 포함하고, 상기 데이터 내용은 상기 XML 문서에서 라벨 사이의 내용과 라벨중 속성값을 포함한다.
단계B, 스키머 노드에서 site, regions, namerica, item, ID, location, categories, category 노드와 같은 상기 노드를 위하여 소정 노드 넘버를 각각 할당한다. 여기서, 각 노드 넘버는 유일한 스키머 노드에 대응된다. 예를 들면, site, regions, namerica, item, ID, location, categories, category 노드를 위해 할당된 노드 넘버는 각각 1, 2, 3, 4, 5, 6이다.
단계C, 상기 구조 내용에서 모든 노드의 경로 코드를 결정하고, 기저장된 상기 노드의 전위에 따라 상기 노드에 대응되는 데이터 내용을 결정하고, 상기 노드의 전위와 상기 노드에 대응되는 데이터 내용의 전위 사이의 차이가 1이므로, 상기 데이터 내용의 경로 코드는 데이터 내용의 상기 노드의 경로 코드와 같다.
상기 노드의 경로 코드는 상기 구조 내용중의 상기 노드와 기타 노드를 거쳐 상기 구조 내용에서 상기 노드의 저장 위치를 식별한다.
일부 실시예에 있어서, 상기 구조 내용에서 모든 상기 노드의 경로 코드를 결정하는 단계는 아래와 같은 단계를 포함한다.
상기 구조 내용중 상기 노드에 대응되는 실제 경로에 포함된 각 노드를 상응한 노드 코드로 대체하고; 상기 구조 내용에서 상기 노드의 경로 코드로 대체후 획득된 경로를 이용하고; 상기 노드의 실제 경로는 상기 구조 내용에서 상기 노드와 기타 노드를 거쳐 상기 구조 내용중 상기 노드의 실제 저장 경로를 식별한다. 예를 들면, 노드 “namerica”의 실제 경로는 “/site /regions /namerica”로 획득되고; 소정 노드 넘버에 따라 상기 노드의 경로 코드 “namerica”는 “/1 /2 /3”이고; 상기 경로 코드에 따라 노드 “namerica”의 실제 경로는3으로 결정될 수 있고, 또한 상기 전위에 대하여 부동한 코드 작동(2개의 인접한 노드 사이의 차이를 산출)을 실시한 후 획득된 코드 전위는 3이다. 마찬가지로, 모든 스키머 노드의 코드 전위, 전위와 경로 코드도 획득할 수 있다.
location 노드에 대응되는 데이터 내용의 실제 경로가 “/site /regions /namerica /item /location”일 경우, 실제 경로의 경로 코드는 “/1 /2 /3 /4 /6”이다. 상기 경로 코드에 따라, 상기 경로 코드에 대응되는 데이터 내용은 “CA”와 “US”로 결정될 수 있고, 상기 경로 코드에 대응되는 전위는 42와 8이다.
모든 상기 노드와 데이터 내용의 실제 경로, 경로 코드, 전위, 코드 전위를 획득하는 방법에 따르면, 획득된 결과는 아래 표1과 같다.
표 1
Figure 112013105509750-pct00002
상기 방법은 아래와 같은 단계를 더 포함한다.
단계D, 상기 노드의 경로 코드, 상기 노드, 및 상기 노드에 대응되는 데이터 내용을 각각 압축한다. 예를 들면, 기존의 임의의 방법에 의하여 상기 데이터 내용을 압축할 수 있다.
단계E, 상기 압축된 데이터 내용, 상기 노드의 압축된 경로 코드와 기타 정보를 압축된 XML 문서에 저장한다.
일부 실시예에 있어서, 상기 XML 문서의 구조를 간략하기 위하여, 단계A 전에 상기한 방법은 기설정된 최적화 방법에 의하여 상기 XML 문서의 스키머 구조를 최적화하는 단계, 및 최적화된 정보를 bsg파일에 저장하는 단계를 더 포함한다. 여기서, bsg 파일은 상기 스키머 노드의 노드 명칭, 상기 스키머 노드의 서브노드의 수량, 상기 스키머 노드의 유형(여기서 상기 유형은 데이터 유형과 노드 유형을 포함할 수 있다), 상기 스키머 노드의 지표 유형, 지표 발생 차수, 및 상기 구조 내용과 상기 XML 문서의 데이터를 포함할 수 있다. 여기서, 지표 유형은 “all” 지표, “choice” 지표와“sequence” 지표를 포함할 수 있다. 최적화 방법은 기존에 알려진 방법일 수 있다.
일부 실시예에 있어서, 압축 효과를 제고하기 위하여, 상기한 방법은 단계C와 단계D사이에 아래와 같은 단계를 포함할 수 있다. 기설정된 방법에 의하여 상기 데이터 내용을 전처리한다. 여기서, 상기 기설정된 방법은 Lempel-Ziv-Welch (LZW) 방법과 같은 기존에 알려진 방법일 수 있다.
일부 실시예에 있어서, 기설정된 방법에 의하여 상기 데이터 내용을 전처리하는 단계는 압축 처리 과정에서 문서 구조 정보를 생성하고 상기 문서 구조 정보를 압축하는 단계를 더 포함할 수 있다. 여기서, 상기 문서 구조 정보는 상기 데이터 내용의 전위 길이를 포함할 수 있다. 예를 들면, 상기 문서 구조 정보는 순차적으로 상기 경로의 전위 sequence 길이, 상기 경로의 전위 sequence, 상기 경로에 대응되는 데이터 내용의 전위 sequence 길이 및 상기 경로에 대응되는 비결정적 구조 내용을 포함할 수 있다. 상기 경로의 전위 sequence는 모든 상기 노드의 전위 조합을 포함한다. 상기 비결정적 구조 내용은 상기 비결정적 구조 내용의 길이, 상기 경로에서 상기 노드의 지표 발생 차수, 상기 경로에서 상기 노드의 서브노드 수량을 포함한다. 상기 노드가 복수개의 서브노드를 포함할 경우, 서브노드의 전위값에 의하여 복수개의 서브노드들은 차례로 배치된다. 상기 경로의 전위 sequence는 상기 구조 내용에서 각 스키머 노드의 노드 구조 내용 순서를 결정한다.
일부 실시예에 있어서, 압축 효율을 제고하기 위하여, 상기 경로의 전위 sequence는 상기 경로에서 모든 상기 노드의 코드 전위 조합을 포함한다.
예를 들면, 최적화된 XML 문서의 2진 트리 구조는 도 5와 같다. 2진 트리에 전위 운행을 실시한 후, 상기 XML 문서의 문서 구조 정보 부분은 아래와 같다.
1 1 0 3 2 0 1; 1 2 0 1 3; 1 3 0 0; 3 4 17 17 0 ……
압축된 XML 문서에서, 각 노드 경로의 경로 sequence는 사전에 차례로 저장될 수 있다. 여기서, 상기 경로는 실제 경로이거나 혹은 경로 코드일 수 있다. 설명의 편의를 위하여 이하 양자를 경로라고 칭한다. 만일 상기 경로 코드를 사용할 경우, 저장 공간은 상당하게 절약된다. 상기 경로 sequence는 상기 경로의 전위 sequence 코드, 및 상기 전위 sequence 코드에 대응되는 경로를 포함할 수 있다. 상기 전위 sequence는 상기 경로에서 모든 상기 노드의 코드 전위 조합을 포함할 수 있다. 예를 들면, /site 경로의 전위 sequence는 1이고, /site /regions 경로의 전위 sequence는 2이고, 또한 /site /regions/namerica경로의 전위 sequence는 3이다.
“1 1 0 3 2 0 1”에 있어서, 상기 경로 전위 sequence의 길이는 1이고, 따라서 상기 판독 경로의 전위 sequence는 1이고, 즉, /site 경로이고, 또한 상기 경로에 대응되는 데이터 내용의 전위 sequence는 0이고, 즉, 상기 경로에 대응되는 데이터 내용이 없으며; 비결정적 구조 내용의 길이가 3인 세개 데이터 내용 “201”을 판독하기 위하여 상기 경로의 비결정적 구조 내용의 길이는 3이고; 상기 bsg 파일로부터 상기 경로에서의 상기 노드의 지표는 선택지표임을 알수 있고, 따라서 “201”는 상기 지표가 2번 발생되었음을 표시하고, 처음으로 site 노드의 제1 서브노드(예를 들면 regions 노드)를 선택하고 다음으로 site 노드의 제2 서브노드(예를 들면 categories 노드)를 선택함을 표시한다.
“1 2 0 1 3”에 있어서, 상기 경로 전위 sequence의 길이는 1이고, 따라서 상기 판독 경로의 전위 sequence는 2이고, 즉 /site /regions 경로이고, 또한 상기 경로에 대응되는 데이터 내용의 전위 sequence의 길이는 0이고, 즉, 상기 경로에 대응되는 데이터 내용이 없으며; 비결정적 구조 내용의 길이가 1인 한개 데이터 내용 “3”을 판독하기 위하여, 상기 경로의 비결정적 구조 내용의 길이는 1이고; 상기 bsg 파일로부터 상기 경로에서의 상기 노드의 지표는 sequence 지표이고, 따라서 “3”은 sequence 지표가 3번 발생되었음을 표시한다.
“1 3 0 0”에 있어서, 상기 경로 전위 sequence의 길이는 1이고, 따라서 상기 판독 경로의 전위 sequence는 3이고, 즉, /site /regions /namerica 경로이고, 또한 상기 경로에 대응되는 데이터 내용의 전위 sequence의 길이는 0이고, 즉, 상기 경로에 대응되는 데이터 내용이 없으며; 비결정적 구조 내용의 길이가 1인 한개 데이터 내용 “3”을 판독하기 위하여, 상기 경로의 비결정적 구조 내용의 길이는 1이고; 상기 bsg 파일로부터 상기 경로에서의 상기 노드의 지표는 sequence 지표이고, 따라서 “3”은 sequence 지표가 3번 발생되었음을 의미함을 표시한다.
<실예 2>
본 출원에 따른 실예 1에 있어서, 상기한 압축방법에 의하여 압축된 XML 문서를 역압축하는 방법을 제공한다. 상기 방법에 따르면, 상기 노드의 압축된 경로 코드, 상기 데이터 내용의 압축된 경로 코드, 및 상기 압축된 문서 구조 정보를 획득하고 역압축한 후 상기 역압축된 경로 코드에 대응되는 노드를 출력하고; 상기 역압축된 노드에 대응되는 압축된 데이터 내용을 결정하고, 또한 상기 결정된 데이터 내용을 역압축 및 출력한다. 상기 방법은 아래와 같은 단계를 포함한다.
단계1, 상기 XML 문서에 2진 스키머 그래프(binary schema graph, “bsg”라고 략칭)가 존재하는지 여부를 결정한다. 만일 존재하면 단계2에 진입되고; 상기 bsg 파일은 상기 스키머 노드의 노드 명칭, 상기 스키머 노드의 서브노드 수량, 상기 스키머 노드의 유형(여기서 상기 유형은 상기 데이터 유형과 상기 노드 유형을 포함), 상기 스키머 노드의 지표 유형, 상기 지표 발생 차수 및 상기 구조 내용과 상기 XML 문서에서의 데이터를 포함하고; 상기 지표 유형은 “all” 지표, “choice” 지표와 “sequence” 지표를 포함한다.
단계2, 상기 bsg 파일을 분석하고, 또한 상기 노드의 압축된 경로 코드, 상기 압축된 데이터 내용과 상기 압축된 문서 구조 정보를 획득한다.
단계3, 상기 노드의 압축된 경로 코드를 역압축하고, 또한 상기 역압축된 경로 코드에 대응되는 노드를 출력하고; 편의를 위하여 상기 XML 문서에서 “site” 노드와 그의 서브노드를 역압축하는 것을 예로 들면, 상기 “site” 노드의 경로 코드에 따라, 상기 “site”에 대응되는 “site” 노드와 상기 라벨 정보(예를 들면, <site>와 <site>)를 출력하고; 상기 구조 내용 “1 1 0 3 2 0 1”에 따라, 상기 “site” 노드는 2개 서브노드를 구비함을 결정하고, 상기 2개 서브노드에 대응되는 라벨 정보를 각각 출력하고, 또한 상기 “site” 노드의 나머지 서브노드에 대응되는 라벨 정보를 순차적으로 출력한다.
단계4, 상기 압축된 문서 구조 정보를 역압축하고, 상기 노드의 역압축된 경로 코드와 동일한 경로 코드를 구비하는 압축된 데이터 내용을 결정하고, 또한 상기 결정된 데이터 내용을 역압축 및 출력하고; 이 단계에서 상기 역압축된 문서 구조 정보와 출력 노드에 따라 상기 압축된 데이터를 결정하는 방법은 아래와 같은 단계를 포함한다.
상기 XML 문서는 상기 노드의 전위와 상기 데이터 내용의 전위를 포함하므로, 상기 노드의 역압축된 경로 코드와 동일한 경로 코드에 대응되는 데이터 내용의 전위의 sequence 길이가 0이 아닐 경우, 상기 노드의 역압축된 전위와 차이가 1인 전위에 대응되는 데이터 내용을 상기 노드의 역압축된 경로 코드와 동일한 경로 코드를 구비하는 압축된 데이터 내용으로 결정하고; 예를 들면, 상기 문서 구조 정보에 따라 특정된 역압축된 노드의 경로 코드가 /1/2/3/4/6이고, 상기 경로 코드에 대응되는 데이터 내용의 전위의 sequence 길이가 0이 아님을 결정하고, 또한 상기 경로 코드에 대응되는 노드의 전위가 7임을 결정하고, 따라서 상기 경로 코드가 /1/2/3/4/6인 데이터 내용은 “US”와 “CA”이고, “US”의 전위는 8이고, “CA”의 전위는 42이고, 또한 상기 노드의 데이터 내용의 전위는 상기 노드의 전위에 1을 더하고; 따라서 상기 전위 “8”에 대응되는 데이터 내용 “US”는 원하는 데이터 내용으로 된다.
<실예 3>
본 출원에 따른 실예 3에 있어서, 상기한 압축방법에 의하여 압축된 XML 문서를 조회하는 방법을 제공한다. 상기한 방법에 의하여 압축된 후 상응한 스키머를 구비한 XML 문서에서 상기 노드 및/혹은 데이터 내용의 저장 경로는 경로 코드이므로, 상기 조회 경로를 경로 코드로 변환한 후 상기 노드 및/혹은 데이터 내용을 조회하는 것이 가능하고, 또한 조회된 노드 및/혹은 데이터 내용을 조회 결과로 출력하고; 이 단계에서 상기 XML 문서는 상기 스키머 노드의 노드 명칭, 상기 스키머 노드의 서브노드 수량, 스키머 노드의 유형(여기서, 상기 유형은 데이터 유형과 상기 노드 유형을 포함), 상기 스키머 노드의 지표 유형, 상기 지표 발생 차수, 및 상기 구조 내용과 상기 XML 문서의 데이터를 포함하는 bsg 파일을 포함하고; 상기 bsg 파일은 상기 스키머 노드에 대응되는 “start” 라벨과 “end” 라벨을 포함하고; 해당 조회 방법은 아래와 같은 단계를 포함한다.
단계1, 기설정된 변환 방법에 의하여 입력 조회 경로를 경로 코드로 변환하고; 예를 들면, 상기 조회 경로에 포함된 노드를 상기 노드에 대응되는 노드 코드로 변환하고, 또한 상기 변환된 경로를 상기 조회 경로의 경로 코드로 이용하고; 예를 들면, site, regions, namerica, item, id, position, categories, category 노드를 위하여 할당한 상기 노드 넘버는 각각 1, 2, 3, 4, 5, 6이다.
이 단계에서, 상기 조회 경로가 간편 조회일 경우, 예를 들면 /site /regions /namerica /item /location일 경우, 상기 조회 경로의 노드를 상기 노드에 대응되는 노드 코드로 변환하고, 또한 상기 변환된 경로 코드는 1/2/3/4/6이다.
상기 조회 경로가 술어를 구비할 경우, 예를 들면, /site /regions /namerica /item[2] /location을 경우(여기서 [2]는 술어이다), 상기 조회 경로의 노드를 상기 노드에 대응되는 노드 코드로 변환하고, 또한 상기 변환된 경로 코드는 1/2/3/4[2]/6이고; 여기서 상기 술어는 제1 경로 코드에 대응되는 하나 이상의 노드를 표시하고, 또한 제1 경로 코드는 상기 술어를 구비하는 상기 변환된 경로 코드의 상기 노드 코드와 상기 술어를 구비하는 노드 코드 이전의 각 노드 코드에 의하여 결정되는 경로 코드이고, 예를 들면, 만일 제1 경로가 1/2/3/4일 경우, 술어가 [2]/이다.
상기 조회 경로가 비결정적 조회일 경우, 예를 들면 //item일 경우, 상기 변환된 경로 코드는 //4이고; 2진 트리에서 순회 검색을 실시할 경우, item 노드에 대응되는 각 노드는 조회 결과(예를 들면 /1/2/3/4)이다.
단계2, 상기 압축된 XML 문서에서 상기 변환된 경로 코드에 대응되는 노드를 검색하고, 또한 상기 획득된 노드를 조회 결과로 출력한다.
상기 조회 경로가 간편 경로일 경우, 검색 방법은 아래와 같다.
상기 구조 내용에서 경로 코드 “1/2/3/4/6”를 구비하는 조회될 location 노드를 검색하고, 상기 문서 구조 정보에 따라 조회될 상기 location 노드가 서브노드를 구비하지 않을 경우, 상기 조회될 노드에 대응되는 라벨 정보(예를 들면, < location ></location >)를 출력한다.
조회될 경로가 술어를 구비할 경우, 상기 검색 방법은 아래와 같다.
우선, 상기 변환된 경로 코드에서 마지막 노드 코드가 술어를 포함할 경우, 상기 압축된 XML 문서에서 상기 변환된 경로 코드와 동일한 경로 코드에 대응되는 노드를 검색하고; 만일 상기 획득된 노드의 수가 1이고, 또한 상기 획득된 노드가 제1 경로 코드에 의하여 결정된 노드일 경우, 상기 획득된 노드를 상기 변환된 경로 코드에 대응되는 노드로 이용하고; 상기 획득된 노드의 수가 1보다 클 경우, 상기 술어에 따라 상기 획득된 노드로부터 하나 이상의 노드를 결정하고, 여기서 상기 술어는 제1 경로 코드에 대응되는 하나 이상의 노드를 표시하고, 또한 상기 제1 경로 코드는 상기 술어를 구비하는 상기 변환된 경로 코드의 상기 노드 코드와 상기 술어를 구비하는 노드 코드 이전의 각 노드 코드에 의하여 결정된 경로 코드이다. 예를 들면, 조회될 상기 경로 코드가 /1/2/3/4[2]일 경우, /1/2/3/4에 따라 상기 경로 코드에 대응되는 노드(예를 들면 3개의 item 노드)를 검색하고, 술어에 따라 모든 상기 획득된 노드로부터 제2 item 노드를 검색하고, 또한 상기 획득된 제2 item 노드를 상기 변환된 경로 코드에 대응되는 노드로 이용한다.
다음, 상기 변환된 경로 코드에서 마지막 노드가 아닌 노드 코드가 술어를 포함할 경우, 상기 압축된 XML 문서에서 제1 경로 코드와 동일한 경로 코드에 대응되는 노드를 검색하고; 만일 상기 획득된 노드 수가 1이고, 또한 상기 획득된 노드가 제1 경로 코드에 의하여 결정된 노드일 경우, 상기 압축된 XML 문서에서 획득된 노드에 대응되는 노드 코드를 포함하고 또한 상기 변환된 경로 코드와 동일한 경로 코드를 검색하고; 상기 획득된 경로 코드에 대응되는 노드를 상기 변환된 경로 코드에 대응되는 노드로 이용하고; 만일 상기 획득된 노드의 수가 1보다 클 경우, 상기 술어에 따라 상기 획득된 노드로부터 하나 이상의 노드를 결정하고; 상기 압축된 XML 문서에서 획득된 노드로부터 결정된 하나 이상의 노드에 대응되는 노드 코드를 포함하고 또한 상기 변환된 경로 코드와 동일한 경로 코드를 검색하고; 상기 획득된 경로 코드에 대응되는 노드를 상기 변환된 경로 코드에 대응되는 노드로 이용한다. 예를 들면, 조회될 상기 경로 코드가 /1/2/3/4[2]/5일 경우, /1/2/3/4에 따라 상기 경로 코드에 대응되는 노드(예를 들면 3개의 item 노드)를 검색하고, 상기 술어에 따라 획득된 노드에서 제2 item 노드를 검색하고, 또한 검색된 제2 item 노드를 포함하는 고드 경로가 /1/2/3/4/5임을 결정하고, 따라서 /1/2/3/4[2]/5에 대응되는 노드를 “id” 노드로 결정하고, 또한 상기 획득된 “id”를 상기 변환된 경로 코드에 대응되는 노드로 이용한다.
조회될 상기 경로 코드가 /1/2/3/4[2]/6일 경우, 표 1로부터 이 “item” 노드의 전위는 21이고, 이 노드의 서브노드의 전위는 21과 38사이에 있음을 알수 있다. 따라서, 만일 “location” 노드의 전위가 21과 38사이인 서브노드는 없을 경우, 검색은 실패하게 된다.
조회될 상기 경로 코드가 비결정적 조회 경로일 경우, 마지막 노드가 “item” 노드인 모든 경로를 검색하고; 다음 간편 조회 경로에서 서브노드를 조회하는 방법에 의하여 상기 “item” 노드의 모든 서브노드를 조회하고 또한 상기 조회 결과를 출력한다.
상기 문서 구조 정보에 따라 검색될 상기 경로 코드에 대응되는 데이터 내용이 있음을 결정할 경우, 상기 변환된 경로 코드에 대응되는 데이터 내용을 검색하고, 상기 검색 방법은 아래와 같은 단계를 포함한다.
상기 압축된 XML 문서에서 상기 변환된 경로 코드와 동일한 경로 코드에 대응되는 데이터 내용을 검색하고;
만일 검색 결과에서 상기 획득된 데이터 내용의 수가 1일 경우, 상기 획득된 데이터 내용을 상기 변환된 경로 코드에 대응되는 데이터 내용으로 이용하고;
만일 검색 결과에서 상기 획득된 데이터 내용의 수가 1보다 클 경우, 상기 획득된 데이터 내용으로부터 상기 획득된 노드의 전위와 차이가 1인 전위에 대응되는 데이터 내용을 결정한다. 구체적인 처리는 실예2에서 설명한 바와 유사하다.
도6에서 도시한 본 출원의 일부 실시예에 있어서, 상응한 스키머를 구비한 XML 문서를 압축하는 장치를 제공한다. 상기 장치는
XML 문서의 구조 내용과 데이터 내용을 발췌하는 발췌 유닛(61), 여기서, 상기 구조 내용은 라벨중 속성값과 라벨 사이의 내용을 제외한 XML 문서의 라벨중의 내용을 포함하고;
상기 구조 내용에서 노드의 경로 코드를 결정하고, 또한 기저장된 상기 노드의 전위에 따라 상기 노드에 대응되는 데이터 내용을 결정하는 결정 유닛(62), 여기서
상기 노드의 경로 코드는 상기 구조 내용의 상기 노드와 기타 노드를 거쳐 상기 구조 내용에서 상기 노드의 저장 위치를 식별하고; 및
기설정된 방법에 의하여 상기 구조 내용의 상기 노드와 상기 노드의 경로 코드를 처리하고, 또한 상기 처리된 노드, 상기 노드의 처리된 경로 코드와 상기 데이터 내용를 각각 압축하는 압축 유닛(63)을 포함할 수 있다.
일부 실시예에 있어서, 상기 결정 유닛(62)은
실제 경로에 포함되고 상기 구조 내용의 상기 노드에 대응되는 각 노드를 상응한 노드 코드로 대체하고; 대체후 획득된 경로를 상기 구조 내용의 상기 노드의 경로 코드로 이용하고; 여기서 상기 노드의 실제 경로는 상기 구조 내용의 상기 노드와 기타 노드를 거쳐 상기 구조 내용에서 상기 노드의 실제 저장 경로를 식별할 수 있다.
일부 실시예에 있어서, 상기 장치는 압축된 데이터를 저장하는 저장 유닛(64)을 더 포함할 수 있다.
일부 실시예에 있어서, 상기 장치는 압축기간에 문서 구조 정보를 생성하는 생성 유닛(65)을 더 포함할 수 있다. 여기서 상기 문서 구조 정보는 상기 데이터의 전위와 상기 데이터 내용의 전위의 sequence 길이를 포함한다.
일부 실시예에 있어서, 상기 압축 유닛(63)은 역시 상기 생성 유닛(65)에 의하여 생성된 상기 문서 구조 정보를 압축할 수 있다.
도7에 도시한 본 출원의 일부 실시예에 있어서, 여기에 개시된 압축 장치에 의하여 압축된 XML 문서를 역압축하는 장치를 제공한다. 상기 역압축 장치는
압축된 노드의 경로 코드와 압축된 문서 구조 정보를 획득하는 획득 유닛(71);
상기 노드의 압축된 경로 코드와 상기 압축된 문서 구조 정보를 역압축하는 역압축 유닛(72);
상기 역압축된 문서 구조 정보에 따라 상기 역압축된 노드에 대응되는 압축된 데이터 내용을 결정하는 데이터 결정 유닛(73);
역압축 유닛(72)에 의하여 역압축된 상기 경로 코드에 대응되는 노드를 출력하고, 또한 데이터 결정 유닛(73)에 의하여 결정된 상기 데이터 내용을 출력하는 출력 유닛(74)을 포함할 수 있다. 예를 들면, 상기 장치는 역시 결정된 압축된 데이터 내용을 역압축하고, 다음 상기 데이터 내용을 출력할 수 있다.
일부 실시예에 있어서, 상기 XML 문서는 상기 노드의 전위와 상기 데이터 내용의 전위를 포함할 수 있다. 상기 데이터 결정 유닛(73)은 또한
상기 노드의 역압축된 경로 코드와 동일한 경로 코드에 대응되는 데이터 내용의 상기 전위의 sequence 길이가 0이 아닐 경우, 상기 노드의 전위보다 크고 상기 경로에서 다음 노드의 전위보다 작은 전위에 대응되는 데이터 내용을 상기 역압축된 노드에 대응되는 데이터 내용으로 결정할 수 있다.
도8에서 도시한 바와 같이, 본 출원의 일부 실시예에 있어서, 여기에 개시된 압축 장치에 의하여 압축된 XML 문서를 조회하는 장치를 제공하였다. 상기 조회 장치는
기설정된 변환 방법에 의하여 입력 조회 경로를 경로 코드로 변환하는 변환 유닛(81);
상기 압축된 XML 문서에서 상기 변환된 경로 코드에 대응되는 노드를 검색하는 노드 검색 유닛(82);
상기 노드 검색 유닛(82)에 의하여 획득된 상기 노드에 대응되는 데이터 내용을 검색하는 데이터 검색 유닛(83); 및
상기 노드 검색 유닛(82)에 의하여 획득된 상기 노드를 조회 결과로 출력하거나; 혹은 상기 노드 검색 유닛(82)에 의하여 획득된 상기 노드와 상기 데이터 검색 유닛(83)에 의하여 획득된 상기 데이터 내용을 출력하는 출력 유닛(84)을 포함할 수 있다.
일부 실시예에 있어서, 상기 변환 유닛(81)은
조회 경로에 포함된 노드를 상기 노드에 대응되는 노드 코드로 변환하고, 또한 변환된 경로를 상기 조회 경로의 경로 코드로 이용하도록 사용될 수 있다.
일부 실시예에 있어서, 상기 노드 검색 유닛(82)은
상기 변환된 경로 코드의 마지막 노드 코드가 술어를 포함할 경우, 상기 압축된 XML 문서에서 변환된 경로 코드의 경로 코드와 동일한 경로 코드에 대응되는 노드를 검색하고; 만일 상기 획득된 노드 수가 1이고, 또한 상기 획득된 노드가 제1 경로 코드에 의하여 결정된 노드일 경우, 상기 획득된 노드를 상기 변환된 경로 코드에 대응되는 노드로 이용하고; 만일 상기 획득된 노드의 수가 1보다 클 경우, 상기 술어에 따라 상기 획득된 노드로부터 하나 이상의 노드를 결정하고, 상기 결정된 하나 이상의 노드를 상기 변환된 경로 코드에 대응되는 노드로 이용하고, 여기서 술어는 제1 경로 코드에 대응되는 하나 이상의 노드를 표시하고, 또한 상기 제1 경로 코드는 상기 술어를 구비하는 상기 변환된 경로 코드의 상기 노드 코드와 상기 술어를 구비하는 노드 코드 이전의 각 노드 코드에 의하여 결정된 경로 코드이고; 혹은
상기 변환된 경로 코드에서 마지막 노드가 아닌 노드 코드가 술어를 포함할 경우, 상기 압축된 XML 문서에서 제1 경로 코드와 동일한 경로 코드에 대응되는 노드를 검색하고; 만일 상기 획득된 노드 수가 1이고, 또한 상기 획득된 노드가 제1 경로 코드에 의하여 결정된 노드일 경우, 상기 압축된 XML 문서에서 획득된 노드에 대응되는 노드 코드를 포함하고 또한 상기 변환된 경로 코드와 동일한 경로 코드를 검색하고, 또한 상기 획득된 경로 코드에 대응되는 노드를 상기 변환된 경로 코드에 대응되는 노드로 이용하고; 만일 상기 획득된 노드의 수가 1보다 클 경우, 상기 술어에 따라 상기 획득된 노드로부터 하나 이상의 노드를 결정하고, 상기 변환된 경로 코드와 동일하고 또한 상기 압축된 XML 문서에서 획득된 노드로부터 결정된 하나 이상의 노드에 대응되는 노드 코드를 포함하는 경로 코드를 검색하고, 또한 상기 획득된 경로 코드에 대응되는 노드를 상기 변환된 경로 코드에 대응되는 노드로 이용하도록 사용될 수 있다.
일부 실시예에 있어서, 상기 데이터 검색 유닛(83)은
상기 압축된 XML 문서에서 변환된 경로 코드와 동일한 경로 코드에 대응되는 데이터 내용을 검색하고;
만일 상기 획득된 데이터 내용의 수가 1일 경우, 상기 획득된 데이터 내용을 상기 변환된 경로 코드에 대응되는 데이터 내용으로 이용하고; 및
만일 상기 획득된 데이터 내용의 수가 1보다 클 경우, 상기 획득된 데이터 내용으로부터 상기 획득된 노드의 전위와 차이가 1인 전위에 대응되는 데이터 내용을 결정하고, 또한 상기 결정된 데이터 내용을 상기 변환된 경로 코드에 대응되는 데이터 내용으로 이용한다.
본 출원의 일부 실시예에서 제공된 압축방법에 있어서, XML 문서의 구조 내용과 데이터 내용을 발췌하고; 노드의 경로 코드와 상기 데이터 내용의 경로 코드를 각각 결정하고; 상기 노드의 경로 코드, 상기 데이터 내용의 상기 경로 코드와 상기 데이터 내용을 각각 압축한다. 이로부터 상기와 같은 방법은 상응한 스키머를 구비한 XML 문서를 압축할 수 있음을 알수 있다.
본 출원의 일부 실시예에서 제공된 역압축방법에 있어서, 상기 노드의 압축된 경로 코드, 상기 데이터 내용의 압축된 경로 코드와 상기 압축된 문서 구조 정보를 획득하고 역압축한 후 상기 역압축된 경로 코드에 대응되는 노드를 출력하고; 상기 노드의 역압축된 경로 코드와 동일한 경로 코드를 구비하는 압축된 데이터 내용을 결정하고, 또한 상기 결정된 데이터 내용을 역압축하고 출력한다. 여기에 개시된 역압축 방법에 의하여 압축된 XML 문서를 역압축할 수 있음을 알수 있다.
본 출원의 일부 실시예에 있어서 또한 제공된 조회 방법을 제공하였다. 상기 노드 및/혹은 데이터 내용의 저장 경로는 여기에 개시된 압축방법에 의하여 압축되고 또한 상응한 스키머를 구비한 XML 문서의 경로 코드이기 때문에, 상기 조회 경로를 경로 코드로 변환한 후 상기 노드 및/혹은 데이터 내용을 조회하고, 또한 조회된 노드 및/혹은 데이터 내용을 조회 결과로 출력하는 것이 가능하다. 상기한 방법에 따르면 여기에 개시된 압축방법에 의하여 압축되고 상응한 스키머를 구비한 XML 문서를 조회할 수 있다.
해당 기술분야의 당업자들은 본 출원의 실시예를 방법, 시스템 혹은 컴퓨터 프로그램으로 실시할 수 있음을 이해할 수 있을것이다. 따라서, 본 출원의 실시예에 있어서 구전한 하드웨어, 구전한 소프트웨어 혹은 이들의 조합으로 설명이 전개되었다. 한편, 본 출원의 실시예는 컴퓨터 판독 가능한 프로그램 코드를 포함한 한개 혹은 복수개의 컴퓨터 판독 가능한 기억 매체(디스크 기억장치, CD-ROM, 광 메모리 등을 포함하나 이에 한정되지 않음)와 같은 컴퓨터 그로그램 제품으로 실시될 수 있다.
본 출원의 일부 실시예에 따라 방법, 장치(시스템)와 컴퓨터 프로그램 제품의 흐름도 및/혹은 블록도를 참조하여 본 출원에 대한 설명이 전개되었다. 흐름도의 매개 흐름 및/혹은 블록도의 매개 블록과 이들의 조함은 컴퓨터 프로그램 명령어에 의하여 실시될 수 있음은 자명할 것이다. 범용 컴퓨터, 특수 컴퓨터, 내장된 프로세서 혹은 기타 프로그래머블 데이터 처리 장치에 상기한 컴퓨터 프로그램 명령어를 제공하여 장치를 구축하고, 따라서 컴퓨터 혹은 기타 프로그래머블 데이터 처리 장치의 프로세서에서 집행되는 명령어를 거쳐 상기한 장치를 구축하고, 또한 흐름도에서 한개 혹은 복수개 흐름의 특수 기능 및/혹은 블록도에서 한개 혹은 복수개 블록의 특수 기능을 실시하도록 상기한 장치를 배치한다..
컴퓨터 혹은 기타 프로그래머블 데이터 처리 장치가 특정된 방식으로 작동되도록 관리할 수 있는 상기한 컴퓨터 프로그램 명령어를 컴퓨터 판독 가능한 메로리에 저장하여, 컴퓨터 판독 가능한 메로리에 저장된 명령어는 흐름도에서 한개 혹은 복수개 흐름의 특수 기능 및/혹은 블록도에서 한개 혹은 복수개 블록의 특수 기능을 실시하도록 배치된 커맨드 장치를 포함하는 제품을 구축한다.
상기한 컴퓨터 프로그램 명령어를 컴퓨터 혹은 기타 프로그래머블 데이터 처리 장치에 로드될 수 있고, 따라서 흐름도에서 한개 혹은 복수개 흐름의 특수 기능 및/혹은 블록도에서 한개 혹은 복수개 블록의 특수 기능을 실시할 수 있는 절차를 제공하기 위하여 컴퓨터 혹은 기타 프로그래머블 데이터 처리 장치에서 일련의 작동 단계를 집행하여 컴퓨터 실시 프로세싱을 구축한다.
비록 본 발명의 바람직한 실시예에 대하여 설명하였지만, 본 발명의 종지를 이해한 해당 기술 분야의 당업자라면 실시예를 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다. 따라서 본 발명의 기술적 범위는 명세서의 상세한 설명에 기재된 내용으로 한정되는 것이 아니라 특허청구범위에 의해 정하여져야만 할 것이다.
해당 기술 분야의 숙련된 당업자 또는 해당 기술 분야에 통상의 지식을 갖는 자라면, 후술될 특허청구범위에 기재된 본 발명의 사상 및 기술 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다. 본 발명의 기술적 범위는 특허청구범위에 기재된 본 발명의 사상 및 기술 영역으로부터 벗어나지 않는 범위 내에서 본 발명에 대하여 다양하게 진행한 수정 및 변경을 포함한다.

Claims (20)

  1. 상응한 스키머를 구비한 XML 문서를 처리하는 방법에 있어서,
    상기 방법은 압축하는 스테이지와 역압축하는 스테이지를 포함하되,
    상기 압축하는 스테이지는,
    XML 문서의 구조 내용과 데이터 내용을 발췌하는 단계와,
    상기 구조 내용에서 노드의 경로 코드 및 상기 노드의 기저장된 전위에 따라 상기 노드에 대응되는 데이터 내용을 결정하는 단계 - 상기 노드의 상기 경로 코드는 상기 구조 내용에서 상기 노드의 저장 위치를 식별함 - 와,
    상기 노드의 상기 결정된 경로 코드와 상기 결정된 데이터 내용을 압축하는 단계와, 상기 압축하는 단계 동안에 문서 구조 정보를 생성하는 단계 - 상기 문서 구조 정보는 상기 노드의 전위와 상기 결정된 데이터 내용의 전위를 포함함 - 와,
    생성된 상기 문서 구조 정보를 압축하는 단계를 포함하고,
    상기 역압축하는 스테이지는,
    상기 노드의 상기 압축된 경로 코드와 압축된 문서 구조 정보를 획득하는 단계와,
    상기 노드의 상기 압축된 경로 코드를 역압축하여 상기 역압축된 경로 코드에 대응되는 노드를 획득하는 단계와,
    상기 압축된 문서 구조 정보를 역압축하는 단계를 포함하고,
    상기 노드의 상기 역압축된 경로 코드와 동일한 경로 코드에 대응되는 데이터 내용의 상기 전위의 시퀀스 길이가 0이 아닐 경우, 상기 방법은,
    역압축된 상기 노드의 전위보다 크고 경로에서 다음 노드의 전위보다 작은 전위에 대응되는 데이터 내용을 상기 역압축된 노드에 대응되는 데이터 내용으로 결정하는 단계를 더 포함하는
    상응한 스키머를 구비한 XML 문서를 처리하는 방법.
  2. 제 1 항에 있어서,
    상기 구조 내용에서 노드의 경로 코드를 결정하는 단계는,
    상기 구조 내용에서 노드에 대응되는 실제 경로에 포함된 각각의 노드를 상응한 노드 코드로 대체하는 단계와,
    상기 대체후 획득된 경로를 상기 구조 내용에서 상기 노드의 경로 코드로서 이용하는 단계를 포함하되,
    상기 노드의 상기 실제 경로가 상기 구조 내용에서 상기 노드의 실제 저장 경로를 식별하는
    상응한 스키머를 구비한 XML 문서를 처리하는 방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    입력 조회 경로를 경로 코드로 변환하는 단계와,
    압축된 상기 XML 문서에서 상기 변환된 경로 코드에 대응되는 노드를 검색하는 단계와,
    상기 획득된 노드를 조회 결과로 출력하는 단계를 더 포함하는
    상응한 스키머를 구비한 XML 문서를 처리하는 방법.
  4. 제 3 항에 있어서,
    상기 입력 조회 경로를 경로 코드로 변환하는 단계는,
    상기 입력 조회 경로에 포함된 노드를 상기 노드에 대응되는 노드 코드로 변환하고, 결과적인 상기 노드 코드를 상기 입력 조회 경로의 상기 경로 코드로서 이용하는 단계를 포함하는
    상응한 스키머를 구비한 XML 문서를 처리하는 방법.
  5. 제 3 항에 있어서,
    상기 압축된 XML 문서는 상기 데이터 내용의 전위를 포함하고,
    상기 압축된 XML 문서에서 상기 변환된 경로 코드에 대응되는 노드를 검색하는 단계는,
    상기 변환된 경로 코드에서 마지막 노드 코드가 술어(predicate)를 포함할 경우, 상기 압축된 XML 문서에서 상기 변환된 경로 코드와 동일한 경로 코드에 대응되는 노드를 검색하고, 상기 획득된 노드의 수가 1이고, 상기 획득된 노드가 제 1 경로 코드에 의하여 결정된 노드이면, 상기 획득된 노드를 상기 변환된 경로 코드에 대응되는 노드로서 이용하고; 상기 획득된 노드의 수가 1보다 크면, 상기 술어에 따라 상기 획득된 노드로부터 하나 이상의 노드를 결정하고, 상기 하나 이상의 결정된 노드를 상기 변환된 경로 코드에 대응되는 노드로서 이용하는 단계 - 상기 술어는 상기 제 1 경로 코드에 대응되는 하나 이상의 노드를 표시하고, 상기 제 1 경로 코드는 상기 술어를 구비하는 상기 변환된 경로 코드의 상기 노드 코드와 상기 술어를 구비하는 상기 노드 코드 이전의 각각의 노드 코드에 의하여 결정되는 경로 코드임 - 또는,
    상기 변환된 경로 코드에서 마지막 노드가 아닌 노드 코드가 술어를 포함할 경우, 상기 압축된 XML 문서에서 제 1 경로 코드와 동일한 경로 코드에 대응되는 노드를 검색하고, 상기 획득된 노드의 수가 1이고, 상기 획득된 노드가 상기 제 1 경로 코드에 의하여 결정된 노드이면, 상기 변환된 경로 코드와 동일하고 상기 압축된 XML 문서에서 상기 획득된 노드에 대응되는 노드 코드를 포함하는 경로 코드를 검색하고, 상기 획득된 경로 코드에 대응되는 노드를 상기 변환된 경로 코드에 대응되는 노드로서 이용하고, 상기 획득된 노드의 수가 1보다 크면, 상기 술어에 따라 상기 획득된 노드로부터 하나 이상의 노드를 결정하고, 상기 압축된 XML 문서에서 상기 변환된 경로 코드와 동일하고 상기 획득된 노드로부터 결정된 하나 이상의 상기 노드에 대응되는 노드 코드를 포함하는 경로 코드를 검색하고, 상기 획득된 경로 코드에 대응되는 노드를 상기 변환된 경로 코드에 대응되는 노드로서 이용하는 단계를 포함하는
    상응한 스키머를 구비한 XML 문서를 처리하는 방법.
  6. 제 1 항 또는 제 2 항에 있어서,
    입력 조회 경로를 경로 코드로 변환하는 단계와,
    압축된 상기 XML 문서에서 상기 변환된 경로 코드에 대응되는 노드 및 상기 획득된 노드에 대응되는 데이터 내용을 검색하는 단계를 더 포함하는
    상응한 스키머를 구비한 XML 문서를 처리하는 방법.
  7. 제 6 항에 있어서,
    상기 XML 문서는 상기 노드의 전위와 상기 데이터 내용의 전위를 포함하고,
    상기 획득된 노드에 대응되는 데이터 내용을 검색하는 단계는,
    상기 압축된 XML 문서에서 상기 변환된 경로 코드와 동일한 경로 코드에 대응되는 데이터 내용을 검색하는 단계와,
    상기 획득된 데이터 내용의 수가 1이면, 상기 획득된 데이터 내용을 상기 변환된 경로 코드에 대응되는 데이터 내용으로서 이용하는 단계와,
    상기 획득된 데이터 내용의 수가 1보다 크면, 상기 획득된 데이터 내용으로부터 상기 획득된 노드의 전위와 차이가 1인 전위에 대응되는 데이터 내용을 결정하고, 상기 결정된 데이터 내용을 상기 변환된 경로 코드에 대응되는 데이터 내용으로서 이용하는 단계를 포함하는
    상응한 스키머를 구비한 XML 문서를 처리하는 방법.
  8. 상응한 스키머를 구비한 XML 문서를 처리하는 장치로서,
    상기 장치는 압축 장치와 역압축 장치를 포함하되,
    상기 압축 장치는,
    프로세서에 의하여 구현되고, XML 문서의 구조 내용과 데이터 내용을 발췌하도록 구성된 발췌 유닛과,
    상기 프로세서에 의하여 구현되고, 상기 구조 내용에서 노드의 경로 코드를 결정하고, 상기 노드의 기저장된 전위에 따라 상기 노드에 대응되는 데이터 내용을 결정하도록 구성된 결정 유닛 - 상기 노드의 상기 경로 코드는 상기 구조 내용에서 상기 노드의 저장 위치를 식별함 - 과,
    상기 프로세서에 의하여 구현되고, 상기 노드의 상기 경로 코드와 상기 데이터 내용을 압축하도록 구성된 압축 유닛과,
    압축하는 동안에 문서 구조 정보를 생성하도록 구성된 생성 유닛을 포함하되,
    상기 문서 구조 정보는 상기 데이터 내용의 전위와 상기 데이터 내용의 상기 전위의 시퀀스 길이를 포함하며, 상기 압축 유닛은 상기 문서 구조 정보를 압축하도록 또한 구성되고,
    상기 역압축 장치는,
    상기 노드의 상기 압축된 경로 코드와 상기 압축된 문서 구조 정보를 획득하도록 구성된 획득 유닛과,
    상기 노드의 상기 압축된 경로 코드와 상기 압축된 문서 구조 정보를 역압축하도록 구성된 역압축 유닛과,
    상기 역압축된 문서 구조 정보에 따라 상기 역압축된 노드에 대응되는 압축된 데이터 내용을 결정하도록 구성된 데이터 결정 유닛을 포함하고,
    상기 데이터 결정 유닛은, 상기 노드의 상기 역압축된 경로 코드와 동일한 경로 코드에 대응되는 데이터 내용의 전위의 시퀀스 길이가 0이 아닐 경우, 역압축된 상기 노드의 전위보다 크고 상기 경로에서 다음 노드의 전위보다 작은 전위에 대응되는 데이터 내용을 상기 역압축된 노드에 대응되는 데이터 내용으로 결정하도록 또한 구성되는
    상응한 스키머를 구비한 XML 문서를 처리하는 장치.
  9. 제 8 항에 있어서,
    상기 결정 유닛은,
    실제 경로에 포함되고 상기 구조 내용의 상기 노드에 대응되는 각각의 노드를 상응한 노드 코드로 대체하고, 대체 후 획득된 경로를 상기 구조 내용의 상기 노드의 상기 경로 코드로서 이용하도록 또한 구성되되,
    상기 노드의 상기 실제 경로는 상기 구조 내용에서 상기 노드의 실제 저장 경로를 식별하는
    상응한 스키머를 구비한 XML 문서를 처리하는 장치.
  10. 제 8 항 또는 제 9 항에 있어서,
    입력 조회 경로를 경로 코드로 변환하도록 구성된 변환 유닛과,
    압축된 상기 XML 문서에서 상기 변환된 경로 코드에 대응되는 노드를 검색하도록 구성되는 검색 유닛을 더 포함하는
    상응한 스키머를 구비한 XML 문서를 처리하는 장치.
  11. 제 10 항에 있어서,
    상기 노드 검색 유닛에 의하여 획득된 상기 노드에 대응되는 데이터 내용을 검색하도록 구성된 데이터 검색 유닛과,
    상기 노드 검색 유닛에 의하여 획득된 상기 노드를 조회 결과로서 출력하거나, 또는 상기 데이터 검색 유닛에 의하여 획득된 상기 데이터 내용을 조회 결과로서 출력하도록 구성된 출력 유닛을 더 포함하는
    상응한 스키머를 구비한 XML 문서를 처리하는 장치.
  12. 제 11 항에 있어서,
    상기 압축된 XML 문서는 상기 노드의 전위와 상기 데이터 내용의 전위를 포함하고,
    상기 데이터 검색 유닛은,
    상기 압축된 XML 문서에서 상기 변환된 경로 코드와 동일한 경로 코드에 대응되는 데이터 내용을 검색하고,
    상기 획득된 데이터 내용의 수가 1이면, 상기 획득된 데이터 내용을 상기 변환된 경로 코드에 대응되는 데이터 내용으로서 이용하고,
    상기 획득된 데이터 내용의 수가 1보다 크면, 상기 획득된 데이터 내용으로부터, 상기 획득된 노드의 전위와 차이가 1인 전위에 대응되는 데이터 내용을 결정하고, 상기 결정된 데이터 내용을 상기 변환된 경로 코드에 대응되는 데이터 내용으로서 이용하도록 또한 구성되는
    상응한 스키머를 구비한 XML 문서를 처리하는 장치.
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020137030777A 2011-12-30 2012-12-31 문서를 압축, 역압축 및 조회하는 방법 및 장치 KR101499441B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201110456661.1A CN103186611B (zh) 2011-12-30 2011-12-30 一种压缩、解压及查询文档的方法、装置
CN201110456661.1 2011-12-30
PCT/CN2012/088009 WO2013097802A1 (en) 2011-12-30 2012-12-31 Method and device for compressing, decompressing and querying document

Publications (2)

Publication Number Publication Date
KR20140056172A KR20140056172A (ko) 2014-05-09
KR101499441B1 true KR101499441B1 (ko) 2015-03-06

Family

ID=48677780

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137030777A KR101499441B1 (ko) 2011-12-30 2012-12-31 문서를 압축, 역압축 및 조회하는 방법 및 장치

Country Status (6)

Country Link
US (1) US8768900B2 (ko)
EP (1) EP2697728A4 (ko)
JP (1) JP5800441B2 (ko)
KR (1) KR101499441B1 (ko)
CN (1) CN103186611B (ko)
WO (1) WO2013097802A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2605481A1 (de) * 2011-12-13 2013-06-19 Siemens Aktiengesellschaft Verfahren und Vorrichtung zum Filtern von Netzwerkverkehr
US9104730B2 (en) * 2012-06-11 2015-08-11 International Business Machines Corporation Indexing and retrieval of structured documents
CN105095237B (zh) 2014-04-30 2018-07-17 国际商业机器公司 用于生成非关系数据库的模式的方法和设备
CN106372042B (zh) * 2016-08-31 2019-09-24 北京奇艺世纪科技有限公司 一种文档内容获取方法和装置
CN107609072B (zh) * 2017-09-01 2020-11-20 联想(北京)有限公司 一种数据处理方法及装置
CN109241498B (zh) * 2018-06-26 2023-08-15 中国建设银行股份有限公司 Xml文件处理方法、设备和存储介质
CN112329281A (zh) * 2019-07-31 2021-02-05 比亚迪股份有限公司 文件查错方法、装置、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040070894A (ko) * 2003-02-05 2004-08-11 삼성전자주식회사 Xml 데이터의 압축 방법 및 압축된 xml 데이터의복원 방법
JP2009543243A (ja) * 2006-07-12 2009-12-03 エクスプウェイ 構造化文書の圧縮のための方法と装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008084341A (ja) * 1999-06-21 2008-04-10 Fujitsu Ltd 構造化文書の圧縮方法および圧縮装置並びに構造化文書圧縮プログラムを記録したコンピュータ読取可能な記録媒体
US6883137B1 (en) * 2000-04-17 2005-04-19 International Business Machines Corporation System and method for schema-driven compression of extensible mark-up language (XML) documents
JP3832807B2 (ja) * 2001-06-28 2006-10-11 インターナショナル・ビジネス・マシーンズ・コーポレーション データ処理方法及びその手法を用いたエンコーダ、デコーダ並びにxmlパーサ
US7415665B2 (en) * 2003-01-15 2008-08-19 At&T Delaware Intellectual Property, Inc. Methods and systems for compressing markup language files
KR100803285B1 (ko) * 2003-10-21 2008-02-13 한국과학기술원 역 산술 부호화와 타입 추론 엔진을 이용한 질의 가능 엑스-엠-엘 압축 방법
CN1314208C (zh) * 2003-11-28 2007-05-02 北京大学 可扩展标记语言数据流压缩器及其压缩方法
US20050144556A1 (en) 2003-12-31 2005-06-30 Petersen Peter H. XML schema token extension for XML document compression
US7630997B2 (en) * 2005-03-23 2009-12-08 Microsoft Corporation Systems and methods for efficiently compressing and decompressing markup language
US7593949B2 (en) * 2006-01-09 2009-09-22 Microsoft Corporation Compression of structured documents
JP2010287052A (ja) * 2009-06-11 2010-12-24 Fujitsu Ltd 検索システムおよび記憶媒体
CN102073663B (zh) * 2009-11-24 2013-01-30 北大方正集团有限公司 一种快速处理xml压缩数据的方法及其装置
CN102214170B (zh) * 2010-04-06 2013-05-15 北京大学 一种xml数据压缩和解压缩方法及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040070894A (ko) * 2003-02-05 2004-08-11 삼성전자주식회사 Xml 데이터의 압축 방법 및 압축된 xml 데이터의복원 방법
JP2009543243A (ja) * 2006-07-12 2009-12-03 エクスプウェイ 構造化文書の圧縮のための方法と装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CN102214170 A, Wei, Chanfang, "Research on Second Index Technology for XML Data", Chinese Master’s Theses Full-text Database Information Science and Technology, 15 Apr.2011, No. 4 pp. 1138-98, ISSN 16
CN102214170 A, Wei, Chanfang, "Research on Second Index Technology for XML Data", Chinese Master's Theses Full-text Database Information Science and Technology, 15 Apr.2011, No. 4 pp. 1138-98, ISSN 16 *

Also Published As

Publication number Publication date
US8768900B2 (en) 2014-07-01
CN103186611A (zh) 2013-07-03
KR20140056172A (ko) 2014-05-09
EP2697728A4 (en) 2014-04-09
CN103186611B (zh) 2016-03-30
JP5800441B2 (ja) 2015-10-28
EP2697728A1 (en) 2014-02-19
WO2013097802A1 (en) 2013-07-04
US20140089277A1 (en) 2014-03-27
JP2014521159A (ja) 2014-08-25

Similar Documents

Publication Publication Date Title
KR101499441B1 (ko) 문서를 압축, 역압축 및 조회하는 방법 및 장치
US7886224B2 (en) System and method for transforming tabular form date into structured document
KR101083563B1 (ko) 데이터베이스 관리 방법 및 시스템
Papadakis et al. Stavies: A system for information extraction from unknown web data sources through automatic web wrapper generation using clustering techniques
US7822788B2 (en) Method, apparatus, and computer program product for searching structured document
US20040221229A1 (en) Data structures related to documents, and querying such data structures
CN107491655B (zh) 基于机器学习的肝脏疾病信息智能咨询系统
CN101937448A (zh) 用于主存储器列存储装置的基于字典的保持顺序的串压缩
JPWO2015045155A1 (ja) コーパス生成装置、コーパス生成方法、及びコーパス生成プログラム
US8082492B2 (en) Structured-document management apparatus, search apparatus, storage method, search method and program
JP2009518718A (ja) Xmlのための簡素インデックス構造
JP2008171181A (ja) 構造化データ検索装置
JP5844824B2 (ja) Sparqlクエリ最適化方法
KR100899616B1 (ko) 관계형 데이터베이스를 이용한 메타데이터 관리 방법 및시스템
KR101221306B1 (ko) 데이터 구조를 항해하기 위한 방법 및 시스템
US20110087698A1 (en) Search expression creating system, search expression creating method, search expression creating program, and recording medium
CN110008448B (zh) 将SQL代码自动转换为Java代码的方法和装置
JP2010272006A (ja) 関係抽出装置、関係抽出方法、及びプログラム
JP2008243077A (ja) 構造化文書管理装置、方法及びシステム
US7805424B2 (en) Querying nested documents embedded in compound XML documents
JP6589317B2 (ja) 書換装置、処理方法とそのプログラム、および、情報処理装置
CN110543622A (zh) 文本相似度检测方法、装置、电子设备及可读存储介质
JP2015022723A (ja) 文書を検索する装置及び方法
US20100218088A1 (en) Structured document converting device
JP2007199987A (ja) 特許情報検索システム

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated 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: 20180220

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190218

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20200219

Year of fee payment: 6