[go: up one dir, main page]

KR20040002736A - Xml 문서의 검증 및 스키마 위반을 보고하기 위한시스템 및 방법 - Google Patents

Xml 문서의 검증 및 스키마 위반을 보고하기 위한시스템 및 방법 Download PDF

Info

Publication number
KR20040002736A
KR20040002736A KR1020030041891A KR20030041891A KR20040002736A KR 20040002736 A KR20040002736 A KR 20040002736A KR 1020030041891 A KR1020030041891 A KR 1020030041891A KR 20030041891 A KR20030041891 A KR 20030041891A KR 20040002736 A KR20040002736 A KR 20040002736A
Authority
KR
South Korea
Prior art keywords
xml
error
xml document
native
parallel tree
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
KR1020030041891A
Other languages
English (en)
Other versions
KR100833538B1 (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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=27733956&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR20040002736(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20040002736A publication Critical patent/KR20040002736A/ko
Application granted granted Critical
Publication of KR100833538B1 publication Critical patent/KR100833538B1/ko
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/131Fragmentation of text files, e.g. creating reusable text-blocks; Linking to fragments, e.g. using XInclude; Namespaces
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/221Parsing markup language streams

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Multimedia (AREA)
  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 실시간으로 확장성 마크업 언어(XML) 문서를 검증하고 스키마 위반을 보고하는 시스템 및 방법이다. XML 문서의 비원시 XML 요소들에 대응하는 노드들을 포함하는 병렬 트리가 유지된다. XML 문서에 변경이 발생하면, 변경에 해당하는 비원시 XML 요소들이 표시된다. 표시된 비원시 XML 요소들에 대응하는 노드들은 비원시 XML 생성에 대응하는 XML 스키마에 대하여 검증된다. 비원시 XML 생성의 에러들에 대응하는 요소들과 노드들은 XML 문서와 병렬 트리 내의 표시 지시자들에 의하여 사용자에게 보고된다.

Description

XML 문서의 검증 및 스키마 위반을 보고하기 위한 시스템 및 방법{SYSTEM AND METHOD FOR VALIDATING AN XML DOCUMENT AND REPORTING SCHEMA VIOLATIONS}
마크업 언어(Markup language)들은 최근 수 년 동안 폭 넓은 인기를 얻어왔다. 마크업 언어의 한 유형인 XML(Extensible Markup Language)은 다양한 종류의 데이터를 식별, 교환 및 처리하는 방법을 제공하는 보편적인 언어이다. 예를 들어, XML은 여러 종류의 응용 프로그램에 의해 이용될 수 있는 문서들의 생성을 위해 사용된다. XML 파일들의 요소들은 연관된 네임스페이스(namespace) 및 스키마(schema)를 갖는다.
XML에서 네임스페이스은 XML 문서의 각 클래스(class)를 유일하게 식별하는데 일반적으로 사용된다. 각 XML 문서는 문서와 관련된 XML의 유형을 용이하게식별하기 위한 프로세스들을 허용하는 네임스페이스을 사용할 수 있다. 유일한 네임스페이스은 서로 다른 소스들로부터의 마크업 요소들 및 우연히 같은 이름을 갖는 마크업 요소들을 구별하는 데에 도움을 줄 수 있다.
XML 스키마는 XML 환경 하에서 데이터를 설명하고 검증하는 방법을 제공한다. 스키마는 XML 문서에 있어서 어떤 요소(element) 및 속성(attribute)이, 각 요소들이 어느 위치에 허용되며, 어느 요소가 다른 요소 내에 나타내어지는 지와 같은 내용을 설명하는 데에 사용되는 지를 나타낸다. 스키마의 사용은 파일이 일관된 방법으로 구성됨을 확신케 한다. 스키마는 사용자에 의해 생성되며, XML과 같은 연관된 마크업 언어에 의해 일반적으로 지원된다. 스키마를 지원하는 XML 편집기(editor)를 사용함으로써, 사용자는 사용자가 생성한 스키마가 부착된 XML 문서를 만들 수 있으며, XML 파일을 처리할 수 있다.
일반적으로, 요소 또는 태그(tag)가 틀린 XML 문서 내에 삽입될 때 XML 편집기는 사용자가 에러를 처리하지 않고 XML 문서의 합성을 계속하는 것을 거부한다. 이러한 경우에, 상기 XML 편집기는 단순히 스키마와 관련하여 잘못된 XML 문서를 편집하는 것을 허용하지 않을 뿐이므로, 그러한 편집기는 자유로운 편집을 제공하지 않는다. 편집기에 대한 다른 옵션(option)은 사용자가 전체 XML 문서를 만들고, 이어서 XML 문서를 온전히 그대로 검증하도록 허용하는 것이다. 전체 XML 문서를 검증할 때 발생하는 에러들은 발견되고 정정될 것이 요구된다.
도 1은 본 발명의 대표적인 일 실시예에서 사용되는 전형적인 컴퓨팅 장치를 도시한 도면.
도 2는 본 발명을 실행하기 위한 대표적인 환경을 도시한 블록도.
도 3은 본 발명에 따른 XML 문서 및 병렬 트리의 대표적인 블록도를 도시한 도면.
도 4는 본 발명에 따른 에러를 포함하는 XML 문서 및 병렬 트리의 대표적인 블록도를 도시한 도면.
도 5는 본 발명에 따른 XML 문서를 검증하고 에러를 보고하기 위한 대표적인 프로세스의 논리 흐름도.
도 6은 본 발명에 따른 XML 문서내의 변경 위치를 정하고 처리하기 위한 대표적인 프로세스의 논리 흐름도.
도 7은 본 발명에 따른 XML 문서를 검증하기 위한 대표적인 프로세스의 논리 흐름도.
도 8은 본 발명에 따른 XML 문서 및 병렬 트리에서의 에러를 디스플레이하기 위한 대표적인 프로세스의 논리 흐름도.
<도면의 주요 부분에 대한 간단한 설명>
100 : 컴퓨팅 장치
102 : 프로세싱 유닛
104 : 시스템 메모리
105 : 운영 체제
120 : 워드프로세서
122 : XML 편집기
210, 410 : XML 문서
220, 420 : 병렬 트리
본 발명은 XML(Extensible Markup Language) 문서의 검증 및 사용자가 문서를 편집하면서 실시간으로 스키마 위반을 보고할 수 있도록 하는 것에 관한 것이다. 워드프로세서는 원시 XML(native XML)을 갖는다. 사용자가 비원시(non-native) XML 스키마 파일을 XML 문서에 결합시킬 때, 워드프로세서는 XML 문서 내의 비원시 XML 요소들을 검증하기 위한 검증 엔진(validation engine)으로 비원시 XML 스키마를 사용한다. 사용자가 스키마로부터의 비원시 XML 요소를 XML 문서에 삽입하면, 워드프로세서에 의해 병렬 트리(parallel tree)가 검증 엔진의 객체(object)로서 유지된다. 상기 트리는 XML 문서 내에 삽입되는 비원시 XML 요소에 대응하는 노드(node)를 포함한다. 상기 병렬 트리는 원시 XML 마크업이 XML 문서 내의 비원시 XML 마크업에 간섭하는 것을 방지한다. 동일한 XML 문서 내에 비원시 XML 마크업과 원시 XML 마크업이 공존함에도 불구하고, 병렬 트리는 원시 XML 마크업과는 별도이면서 독립적으로 검증되도록 허용된다.
일 실시예에서, 비원시 XML 요소가 XML 문서에 삽입될 때마다, 비원시 XML 요소가 삽입되는 상황에 따라 병렬 트리의 적절한 위치에 대응하는 노드가 생성된다. 유사하게, 비원시 XML 요소가 XML 문서에서 삭제될 때마다, 대응하는 노드가 병렬 트리에서 삭제된다.
비원시 XML 요소의 트랙 보관 외에, 병렬 트리는 또한 비원시 XML 요소의 문서 콘텐츠의 트랙을 보관한다. 비원시 XML 요소들의 콘텐츠는 병렬 트리에 존재하기 보다는 XML 문서 내에 존재하나, 병렬 트리는 여전히 요소들에 대한 링크를 유지한다. 필요로 할 때, 콘텐츠는 병렬 트리 검증을 위해 병렬 트리에 의해 복구된다. 검증 프로세스는 그 후, 노드와 각 노드가 이의 문서 콘텐츠에 부여하는 콘텐츠 유형 한정 사이에서 병렬 트리 구조 관계를 검증할 수 있다.
병렬 트리는 비원시 XML 마크업의 실시간 검증을 허용하고, 실시간으로 XML 문서 내의 변경을 반영한다. 비원시 XML 마크업 또는 XML 문서의 문서 콘텐츠에 대한 변경 후에 휴면(idle)의 시기가 발생할 때, 변경이 발생하는 XML 문서의 영역에 대응하는 병렬 트리의 서브 트리가 검증 엔진에 의해 검증된다. 원시 XML 또는 문서 콘텐츠에 대한 변경에 하나 이상의 에러가 있는 경우에, 검증 엔진은 워드프로세서에 에러를 통지한다. 워드프로세서는 에러를 처리하기 위해 사용자 인터페이스 지시에 따라 XML 문서와 병렬 트리 내에 에러를 나타낸다.
명세서 및 특허청구범위에 있어서, 다음의 용어들은 문맥이 명백히 다른 것으로 지시되지 않는 한, 이하에서 명백하게 연관된 의미들을 갖는다.
"마크업 언어" 또는 "ML"은 응용(application)에 의해 문서의 부분들이 어떻게 해석되는지를 상술하는 문서 내에서의 특수 코드를 위한 언어를 나타낸다. 워드프로세서 파일에서, 마크업 요소들은 요소들의 내용이 어떻게 디스플레이되고 레이아웃(lay out)되는지를 상술하는 특별한 포맷팅(formatting)과 연관될 수 있다. 다른 XML 문서와 같은 다른 문서에서, 마크업은 디스플레이 고려사항에 대한 어드레싱 없는 데이터의 묘사에 관한 것일 수 있다.
"원시 확장성 마크업 언어(native extensible markup language)" 또는 "원시 XML"는 워드프로세서 응용 및 워드프로세서 응용과 관련된 스키마와 관련있는 마크업 언어 요소를 나타낸다.
"비원시 확장성 마크업 언어(non-native extensible markup language)" 또는 "비원시 XML"은 사용자 또는 다른 응용이 원시 XML 스키마와는 다른 스키마에 부착하여 창작한 마크업 언어 요소를 나타낸다.
"요소"는 XML 문서의 기본 단위를 나타낸다. 요소는 XML 문서를 위한 속성, 다른 요소들, 콘텐츠 및 다른 빌딩 블록을 포함할 수 있다.
"태그"는 XML 문서 내의 요소들을 묘사하며 문서 내에 삽입되는 명령을 나타낸다. 각 요소는 통상적으로 단지 2개의 태그, 시작 태그와 종료 태그만을 갖는다. 빈 요소(콘텐츠가 없는 경우)를 가질 수도 있으며, 이러한 경우 하나의 태그가 허용된다.
태그들 사이의 내용은 요소들의 "자식들(children) 또는 자손(descendant)"으로 고려된다. 따라서, 요소들의 콘텐츠 속에 묻혀있는 다른 요소들은 "자식 요소(child element)" 또는 "자식 노드(child node)" 또는 요소라고 불린다. 요소의 콘텐츠에 직접적으로 묻힌 본문은 요소의 "자식 본문 노드(child text node)"로 고려된다. 자식 요소들과 요소 내의 본문이 함께 요소의 "콘텐츠"를 구성한다.
"속성"은 요소와 관련되고 특정 값으로 설정되는 추가적인 특성을 나타낸다. 요소들은 그들과 관련된 0을 포함하는 임의의 수의 속성 설정을 가질 수 있다. 속성은 요소의 콘텐츠에 포함되지 않는 추가 정보를 요소와 결합시키는 데에 사용된다.
실례가 되는 동작 환경
도 1을 참조하여, 컴퓨팅 장치(100)와 같은 장치를 포함하는 본 발명을 구현하기 위한 하나의 대표적인 시스템에 대해 설명한다. 기본적인 구성은 점선(108) 내의 컴퍼넌트들을 포함한다. 기본적인 구성에서, 컴퓨팅 장치(100)는 일반적으로 적어도 하나의 프로세싱 유닛(102)과 시스템 메모리(104)를 포함한다. 정확한 구성 및 컴퓨팅 장치의 유형에 따라서, 시스템 메모리(104)는 RAM과 같은 휘발성 또는 ROM, 플래시 메모리와 같은 비휘발성이거나 양자의 조합일 수 있다. 시스템 메모리(104)는 일반적으로 운영 체제(105), 하나 이상의 응용들(106) 및 프로그램 데이터(107)를 포함한다. 일 실시예에서, 응용들(106)은 XML 편집기(122)를 갖는 워드프로세서 응용(120)을 포함한다. 이러한 구성에서, 워드프로세서 응용(120)은 자유로운 편집 환경하에서 XML 문서를 열고 편집할 수 있다. 워드프로세서 응용(120)의 문맥에서 도시되어 있음에도 불구하고, 본 발명은 다른 유형의 응용들에 대해 동등한 적응성을 갖고 있으며, 이는 당업자에게도 명백하다.
컴퓨팅 장치(100)는 추가적인 특징 또는 기능성을 갖는다. 예를 들어, 컴퓨팅 장치는 삭제 가능 및/또는 불가능한, 예컨대 자기 디스크, 광 디스크 또는 테잎과 같은 추가 데이터 저장 장치를 또한 포함한다. 그러한 추가 저장 장치는 삭제 가능한 저장 장치(109)와 삭제 불가능한 저장 장치(110)로서 도 1에 도시된다. 컴퓨터 저장 매체는 컴퓨터 판독 명령, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 어떠한 방법 또는 기술에서 구현되는 휘발성 및 비휘발성, 삭제 가능 및 삭제 불가능 매체를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, DVD 또는 기타 광 스토리지, 자기 카세트, 자기 테잎, 자기 디스크 스토리지 또는 자기 저장 장치를 포함하지만 이에 국한되는 것은 아니며, 컴퓨팅 장치(100)에 의해 액세스될 수 있으며 원하는 정보를 저장하기 위해 사용될 수 있는 기타 어떠한 매체도 포함된다. 어떠한 컴퓨터 저장 매체도 장치(100)의 부분이 될 수 있다. 컴퓨팅 장치(100)는 또한 키보드, 마우스, 펜, 음성 입력 장치, 터치 입력 장치 등과 같은 입력 장치(112)를 포함한다. 디스플레이, 스피커, 프린터 등과 같은 출력 장치(114) 또한 포함될 수 있다. 이러한 장치들은 종래 기술로서 잘 알려져 있으므로, 여기에서는 더 이상 설명하지 않는다.
컴퓨팅 장치(100)는 또한 네트워크와 같이 장치가 다른 컴퓨팅 장치와 커뮤니케이션 할 수 있도록 하는 커뮤니케이션 연결(116)을 포함한다. 커뮤니케이션 연결(116)은 커뮤니케이션 매체의 일 예이다. 커뮤니케이션 매체는 일반적으로 컴퓨터가 판독 가능한 명령, 데이터 구조, 프로그램 모듈, 또는 반송파 또는 다른 수송 메커니즘과 같은 변조된 데이터 신호 내에 있는 다른 데이터에 의해 구현되고, 어떠한 정보 전달 매체도 포함한다. 용어 "변조된 데이터 신호"는 신호 내의 정보를 인코딩하기 위한 방법에 있어서 설정 또는 변경되는 하나 이상의 신호 특성을 갖는 신호를 의미한다.
예를 들어, 커뮤니케이션 매체는 유선 네트워크 또는 직접-유선 연결과 같은 유선 매체 또는 탄성파, RF, 적외선 및 기타 무선 매체와 같은 무선 매체 등을 들 수 있으나 이에 제한되는 것은 아니다. 여기에서 사용되는 용어인 컴퓨터 판독 매체는 저장 매체 및 커뮤니케이션 매체 양자를 포함한다.
도 2는 본 발명을 구현하기 위한 대표적인 환경을 도시한 블록도이다. 도 2에 도시한 대표적인 환경(200)은 워드 프로세서(120), XML 문서(210), 비원시 XML 스키마(215), XML 검증 엔진(225) 및 데이터 구조(230)를 포함한다. 데이터 구조(230)는 에러 데이터(235), 병렬 트리(220) 및 싱크 데이터(sync data; 240)를 포함한다.
일 실시예에서, 워드프로세서(120)는 워드프로세서와 연관된 XML 문서가 사용하기 위한 고유의 네임스페이스 및 스키마를 갖는다. 워드프로세서(120)용 스키마에 의해 정의된 태그와 속성의 세트는 그 자신의 마크업 언어, 즉 워드프로세서 마크업 언어(원시 XML)로 언급될 정도로 XML 문서의 형식을 정의할 수도 있다. 원시 XML은 워드프로세서(120)에 의해 지원되고, 고유의 추가적인 규칙을 만드는 동안 다른 마크업 언어의 규칙을 지킬 수 있다. 원시 XML은 볼드, 이탤릭, 밑줄긋기와 같은 글자의 포맷팅, 줄간격, 행간과 같은 문단의 포맷팅 및 표의 행, 열과 같은 표의 포맷팅 등과 같은 워드프로세싱과 일반적으로 관련된 풍부한 디스플레이 정보를 포함하는 마크업 언어를 제공한다. 원시 XML은 문서에 보다 구체적인 구조를 가하는 사용자 정의 스키마와 함께 사용된다.
본 발명에 따르면, 원시 XML 및 비원시 XML 요소들은 XML 문서(210) 내에 공존할 수 있으며, 개별적으로 검증될 수 있다. 비원시 XML 요소들은 비원시 XML 스키마(215)와 연관된다. 검증될 때, 비원시 XML 요소들이 비원시 XML 스키마(215)에 맞는지 여부가 시험된다. 상술한 바와 같이, 스키마는 어느 태그 및 속성이 XML 문서 내의 콘텐츠를 설명하는데에 사용되는지, 각 태그는 어느 위치에서 허용되는지, 어떤 유형의 콘텐츠가 요소 내에 나타나는지 및 어떤 요소들이 다른 요소내에 나타내어 질 수 있는지를 설명하기 위해 사용되며, 문서가 동일한 방법으로 구조화되는지를 확신시킨다. 따라서, 비원시 XML 요소들은 비원시 XML 스키마(215)에서 밝힌 바와 같이 구조화될 때 검증된다. 비원시 XML 요소들의 검증은 이하 도 7을 설명할 때 추가로 설명한다.
XML 검증 엔진(225)은 요소 트리를 유지하고 몇 몇 스키마에 대한 요소 트리를 검증하기 위해 구성되는 모듈이다. 간략히 말해서, XML 검증 엔진(225)은 XML 문서 내의 요소들에 대응하는 것과 같은 요소 트리, 비원시 XML 스키마와 같은 스키마에 대한 포인터 및 요소 트리의 하나 이상의 요소의 콘텐츠를 정의하는 객체에 전송된다. 이러한 정보로서, XML 검증 엔진(225)은 스키마에 대한 요소 트리를 검증하고 요구 프로세스에 대한 어떠한 위반도 보고한다.
반복 동작동안 워드프로세서(120)는 본 발명의 하나의 구현에 따라서 비원시 XML 요소들의 검증에 관여하는 여러 데이터 구조(230)를 유지한다. 병렬 트리(220)는 XML 문서(210)내에 각각의 비원시 XML 요소에 대응하는 노드들을 포함하는 요소 트리이다. 일 실시예에서, 병렬 트리(220)는 XML 문서(210)의 각 요소와 콘텐츠를 인식하고 있으며, XML 문서(210)는 병렬 트리(220)의 노드를 인식하고 있다. 따라서, 사용자는 병렬 트리(220)의 노드를 표시하고, 노드에 대응하는 요소들도 또한 XML 문서 내에 표시된다. 유사하게, XML 문서(210)의 부분을 표시하는 것은 병렬 트리(220)의 대응 노드 또한 표시되도록 한다. 대표적인 병렬 트리는 도 3을 참조하여 설명할 때 더 상세히 설명된다.
에러 데이터(235)는 에러가 XML 검증 엔진(225)에 의해 검증되는 요소들과관련하여 발생했을 때 XML 검증 엔진(225)으로부터 워드프로세서(120)로 되돌려진다. 에러 데이터(235)는 또한 워드프로세서(120)에 의한 에러의 통지를 디스플레이 하기 위한 정보를 포함한다. 일 실시예에서, 에러가 검증 결과로서 발생할 때, 워드프로세서(120)에 의해 4가지 유형의 에러가 보고된다. 4가지 유형의 에러는 위치 에러, 잘못된 콘텐츠 에러, 콘텐츠 분실 에러 및 잘못된 속성 에러를 포함한다. 상기 4가지 유형 외에도 다른 유형의 에러가 또한 사용될 수 있다.
에러를 일정한 유형으로 표시하는 것은 에러를 교정하기 위해 수행되어야 하는 분석을 간단하게 한다. 에러 데이터(235)는 또한 사용자에게 디스플레이 되는 에러를 어떻게 교정할 것인가에 대한 제안과 같은 에러 관련 추가 정보를 포함한다. 디스플레이와 에러 정보의 관계는 도 8을 참조하여 더욱 상세히 설명된다.
싱크(synch) 데이터(240)는 XML 문서(210)의 병렬 트리(220)를 실시간으로 동기화하기 위한 데이터를 포함한다. 일 실시예에서, 싱크 데이터(240)는 XML 문서(210)내의 각 요소와 관련있는 식별자(identifier)의 표를 포함한다. 식별자들은 XML 문서(210)내의 각 요소를 유일하게 식별하며, 또한 병렬 트리(220)내의 각 노드 또한 유일하게 식별한다. 싱크 데이터(240)는 병렬 트리(220)내의 노드의 추가 및 삭제를 포함하여 병렬 트리(220)와 함께 XML 문서(210)내에서 일어나는 변경을 동기화시키는 것을 돕는다. 병렬 트리(220)에 노드를 추가하기 위한 공정을 포함하는 대표적인 프로세스가 도 6과 관련하여 설명된다.
도 3은 본 발명에 따라서 유지되는 대표적인 XML 문서(210)와 병렬 트리(220)를 도시한다. XML 문서(210)는 원시 XML 요소와 비원시 XML 요소를 포함한다. 마크업 언어에서의 요소는 일반적으로 개시 태그("<"and">"로 표시됨), 여러 콘텐츠 및 종료 태그("</"and">"로 표시됨)를 포함한다. 본 예에 있어서, 원시 XML 스키마와 관련있는 태그들은 태그{예를들어 요소(302)}내에 "w:"를 포함하며, 비원시 XML 스키마와 관련있는 태그들은 태그{예를들어 요소(304)}내에 "r:"를 포함한다. 원시 XML과 관련있는 태그들은 워드프로세서(워드프로세서 네임스페이스)의 네임스페이스과 관련되어 참조된다. 대조적으로, 비원시 XML과 관련있는 태그들은 서로 다른 네임스페이스과 관련되어 참조되며, 본 예에서는 "resume" 네임스페이스이다. XML 문서(210)의 요소들은 나아가 콘텐츠를 포함한다. 예를 들어, "Work"는 "objective" 요소 내에 포함되며 "123 Main"은 "street" 요소 내에 포함된다. "street" 요소는 "address" 요소 내에 포함된다. 이들 요소들은 사용자 또는 다른 응용에 의해 미리 제공된 이력(resume) 네임스페이스(예를 들어, 이력 스키마)에 대응하는 비원시 XML 스키마에 따라 정의된다. "w:" 및 "r:" 프리픽스는 이들 각각의 네임스페이스을 위한 XML 생략 표시로서 작용한다.
병렬 트리(220)는 XML 문서 210 내의 각 비원시 XML 요소마다 하나의 노드(예를 들어 노드 322, 324, 326)를 포함한다. 일 실시예에서, 병렬 트리(220)는 문서 작성기(120; 도 2 참조)와 별도로 검증 엔진(225)에 의하여 유지된다. 병렬 트리(220)는 XML 문서(210)가 변경될 때 실시간으로 갱신된다. 병렬 트리(220)는 비원시 XML 스키마(215)에 대하여 XML 문서를 검증할 때에, 문서 작성기로 하여금 원시 XML 요소들을 실질적으로는 무시할 수 있게끔 해 준다. 즉, 병렬 트리(220)가 검증을 위해 검증 엔진에 제공될 때에, 비원시 XML 요소들은 실질적으로는 비원시XML 요소들에 대하여 투과성이다. 그러면 후에 도 7과 관련하여 상술하겠지만, 병렬 트리(220)는 어떤 원시 XML 요소들과도 별도로 검증될 수 있다.
도시된 바와 같이, 병렬 트리(220)는 각 비원시 XML 요소와 연관되는 콘텐츠를 가진다. 다른 실시예에서, 콘텐츠는 병렬 트리(220)가 검증을 위해 검증 엔진(225)으로 전달될 때까지는 병렬 트리로 복사되지 않는다. 또 다른 실시예에서, 병렬 트리(220)로 복사되는 콘텐츠는 병렬 트리(220)의 검증되는 일부분과 연관되는 콘텐츠에 한한다. 병렬 트리(220)의 검증은 도 7과 관련하여 상술된다.
도 4는 에러들을 포함하는 예시적인 XML 문서(410)와 병렬 트리(420)의 블록도이다. XML 문서(410)와 병렬 트리(420)는 도 3에 도시된 XML 문서(210) 및 병렬 트리(220)와 유사하지만, 비원시 XML 형성(markup)에 하나의 에러(비원시 XML 스키마(215)에 대한)가 추가되었다. 에러는 우편 번호인 에러 요소(432)에 의하여 나타내어져 있다. 비원시 XML 스키마(215)에 따르면, "zip" 요소는 주소의 자식이거나 "street" 요소의 형제이기로 되어 있다. 그러나, 도시된 예에서는, "zip" 요소가 "street" 요소의 자식으로 위치되어 있으므로, "zip" 요소는 유효하지 않다. 본 발명에 따르면, 병렬 트리(420)는 "zip" 요소가 "street" 요소의 자식으로 삽입되어 있다는 것을 반영한다. 따라서, 병렬 트리(420; 또는 "street" 요소를 포함하는 관련 서브-트리)가 비원시 XML 스키마(215)에 대하여 검증될 때, 에러가 되돌려진다. 본 예에서, 문서 작성기(120)는 밑줄로서 XML 문서(410)내의 에러를 식별시키지만, 에러를 가리키기 위하여 다른 표시 지시자들이 사용될 수도 있다.
병렬 트리(420)에는 에러 지시도 포함되어 있는데, 아이콘(442)은 "zip" 노드(422)가 연관되는 에러를 갖고 있음을 보여 준다. 다른 실시예에서는, 한 노드와 연관된 에러의 존재를 가리키기 위하여 병렬 트리(420) 내에서 다른 표시 지시자들이 사용될 수도 있다. 도시된 예에 따르면, XML 문서(420) 내의 밑줄 그어진 요소(들){예를 들어 에러 요소(432)}에 오른쪽 클릭을 하면, 에러 화면(430)이 생긴다. 에러 화면(430)은 에러 유형과 같은 에러 관련 상세 정보를 나열한다. 에러 화면(430)은 또한 사용자가 에러를 교정하기 위하여 권장되는 행동들을 제안할 수도 있다. 권장되는 행동들은 반복적이어서, 사용자로 하여금 현재의 에러에 대한 가능한 해결방법의 목록 중 선택하도록 할 수도 있다.
게다가, 아이콘(442) 위에 위치하면 툴 팁(440)과 같은 다른 정보를 사용자에게 보이게끔 할 수도 있다. "툴 팁"은 보통 사용자에게 추가적인 정보를 제공하는 비-반복적인 표시 요소를 가리킨다. 예를 들어, 보이는 툴 팁은 "우편 번호는 거리 내에 있을 수 없다"는 문자 알림을 제공한다. 일 실시예에서, 아이콘(442)이나 에러 요소(432)를 선택하거나 그 위에 위치하면 에러 표시(430)이나 툴 팁(440)을 보이게끔 할 수 있다. XML 문서(410)와 병렬 트리(420) 내에 에러 지시자들을 표시하는 것에 관련된 예시적인 프로세스가 도 8과 함께 설명된다.
감지, 검증, 및 에러 보고
도 5는 본 발명에 따라 XML 문서를 검증하고 스키마 위반을 보고하기 위한 예시적인 프로세스의 논리 흐름도이다. 프로세스(500)는 블록(501)에서 시작하는데, 여기서 XML 문서가 편집될 것이고 변경(change)이 발생한다. "변경"은 XML 문서 내에서의 XML 요소들의 삽입, 변경, 또는 제거, 또는 비원시 XML 요소들의 문자콘텐츠들의 변경을 가리킨다. 변경에 반응하여, 프로세스는 블록(502)에서 계속된다.
블록(502)에서, XML 문서에 발생한 변경 부분의 XML 문서 내에서의 위치가 확인된다. 새로운 요소들을 더하는 것과 같은 어떤 변경들은 병렬 트리에 해당 노드들을 더하는 추가적인 처리를 요할 수 있다. XML 문서 내에서의 변경 부분의 위치를 확인하고 처리하는 예시적인 프로세스가 도 6과 관련하여 상술된다. 프로세스는 블록(503)으로 계속된다.
블록(503)에서, XML 문서의 변경된 부분은 "dirty"라고 표시된다. "Dirty"는 XML 문서 중 앞으로 검증되어야 할 부분 또는 변경으로 인하여 유효함이 더 이상 보장되지 않는 부분을 가리킨다. 식별자 또는 다른 지시자가 XML 문서의 변경이 발생한 부분과 연관된다. 일 실시예에서, 변경되거나, 제거되거나, 더해진 요소의 부모는 dirty로 표시된다. 프로세서(500)가 dirty한 부분을 검증하기 위하여 진행될 때, 검증 엔진은 그 부모와 그 부모의 자식들을 검증한다. 프로세스는 블록(504)에서 계속된다.
블록(504)에서, XML 문서의 변경된 부분에 대응하는 병렬 트리의 노드들도 "dirty"로 표시된다. 식별자 또는 다른 지시자가 XML 변경이 발생한 부분에 해당하는 병렬 트리의 노드들과 연관된다. 일 실시예에서, XML 문서의 각 요소 및 병렬 트리의 각 노드와 연관되는 유일한 식별자가 dirty로 표시되고, 그렇게 함으로서 XML 문서의 일부분과 병렬 트리의 노드들을 동시에 dirty로 표시한다. 프로세스는 결정 블록(505)에서 계속된다.
결정 블록(505)에서, XML 문서를 구성 또는 편집하고 있는 사용자가 휴면(idle) 또는 타임아웃 시점에 이르렀는지를 판단한다. 휴면은 현재 사용자가 문서 작성기에 사용자 입력을 제공하지 않고 있는 시점을 말한다. 타임아웃은 휴면 상태가 미리 정해진 시간 동안 일어나지 않고 있는 상황을 말한다. 만일 충분한 시간이 흐르면, 타임아웃 조건이 발생한다. 프로세스는 휴면 상태나 타임아웃 조건이 일어날 때까지 블록(505)에서 루프를 돈다. 휴면 상태가 도달되거나 타임아웃 조건이 일어나면, 프로세스는 블록(506)으로 계속된다.
블록(506)에서, 병렬 트리의 dirty한 노드 또는 노드들이 검증 엔진에 의하여 검증된다. 병렬 트리는 검증 엔진의 객체이거나 검증 엔진과 연결되기 때문에 검증을 위하여 검증 엔진에 전달될 필요는 없다. 병렬 트리의 dirty한 노드(들)를 검증하기 위한 예시적인 프로세스가 도 7과 관련하여 상술된다. 프로세스는 결정 블록(507)에서 계속된다.
결정 블록(507)에서, 검증 엔진에 의하여 되돌려진 에러 데이터에 따라서 XML 문서의 비원시 XML 요소들에 에러가 존재하는지를 판단한다. 검증 엔진은 검증 엔진에 의하여 분석되는 병렬 트리 내의 각 노드의 유효성을 가리키는 에러 데이터를 문서 작성기에 되돌린다. 일 실시예에서, 에러 데이터는 문서 작성기에 발생한 에러의 유형을 포함한다. 만일 에러가 존재하지 않으면, 프로세스는 블록(509)으로 이동하며, 여기에서 프로세스는 종료한다. 만일 에러가 존재하면, 프로세스는 블록(508)에서 계속된다.
블록(508)에서, XML 문서 및 병렬 트리 내의 표시 지시자들에 의하여 비원시XML 검증 요소들 내의 에러가 사용자에게 통지된다. 사용자에게 발생한 에러들을 보고하기 위한 예시적인 프로세스가 도 8과 관련하여 상술된다. 프로세스는 블록(509)으로 계속되고, 여기서 프로세스는 종료한다.
도 6은 본 발명에 따라 XML 문서 내의 변경들의 위치를 확인하고 처리하기 위한 예시적인 프로세스의 논리 흐름도이다. 도 5에서 보여지는 프로세스(500)가 블록(502)으로 들어갈 때 프로세스(600)는 블록(601)으로 들어간다. 프로세스는 블록(602)에서 계속된다.
블록(602)에서, XML 문서의 변경된 부분의 부모가 결정된다. 예를 들어, 도 4에서, XML 문서(410)의 "street" 요소는 "zip" 요소(432)의 부모이다. 일 실시예에서, 부모는 그 부모 및 그 부모의 후손을 포함하는 병렬 트리의 서브-트리가 dirty로 표시되도록 결정된다. 변경은 통상적으로 변경된 노드의 바로 전 부모 외의 다른 요소들의 유효성에는 영향을 미치지 않기 때문에 부모와 부모의 자손을 검증하면 XML 문서 전체가 유효하다는 것을 검증할 수 있다. 부모를 판단하는 것은 또한 병렬 트리를 XML 문서에 동기시키는 것을 돕는다. 그리하여 부모는 XML 문서의 변경 위치의 지시자로서 사용될 수 있다. 일 실시예에서, 변경된 요소의 부모와 연관된 식별자가 도 2에서 보여지는 동기 데이터(240)에 저장된다. 프로세스는 블록(603)에서 계속된다.
블록(603)에서, 변경될 요소(들)의 가장 가까운 형제(들)는 문서 작성기에 의하여 결정된다. 예를 들어, 도 3에서, "objective" 요소와 "address" 요소는 형제들로 간주된다. 가장 가까운 형제를 판단하는 것은 병렬 트리를 XML 문서에 동기시키는 것을 돕는다. 가장 가까운 형제는 XML 문서의 변경 위치의 두 번째 지시자를 제공한다. 일 실시예에서, 변경된 요소의 부모와 연관된 식별자가 도 2에서 보여지는 동기 데이터(240)에 저장된다. 또 다른 실시예에서, 가장 가까운 형제가 변경될 요소의 위 또는 아래에 있는지도 결정된다. 프로세스는 결정 블록(604)에서 계속된다.
결정 블록(604)에서, 병렬 트리 내에 새 노드를 생성해야 하는지를 판단한다. XML 문서 내에 새로운 비원시 XML 요소가 생성될 때에 새로운 노드가 요구된다. 새로운 노드는 XML 문서와 병렬 트리의 동기를 유지하기 위하여 실시간으로 생성된다. 새로운 노드가 요구되지 않으면, 프로세스는 블록(609)으로 이동하고, 여기서 프로세스는 프로세스(500)의 블록(503)으로 되돌아간다. 그러나, 만일 새로운 노드가 요구되면, 프로세스는 블록(605)으로 이동한다.
블록(605)에서, XML 문서 내의 새로운 요소에 해당하는 식별자가 생성된다. 식별자는 XML 문서 내의 요소를 유일하게 식별시킨다. 프로세스는 블록(606)에서 계속된다.
블록(606)에서, 부모 없는 노드가 병렬 트리 내에서 생성된다. 부모 없는 노드는 현재는 병렬 트리 내의 부모에 의하여 식별되지 않는다. 프로세스는 블록( 607)에서 계속된다.
블록(607)에서, XML 문서 내에서 생성된 요소와 관련된 식별자는 부모 없는 노드와 연관된다. 부모 없는 노드와 식별자를 연관시키는 것은 문서 작성기로 하여금 노드를 XML 문서 내의 새로운 요소의 위치에 관련시킬 수 있도록 해준다. 일실시예에서, XML 문서 내의 새로운 요소에 대하여 부모 및 가장 가까운 형제가 판단되고, 따라서, 병렬 트리 내의 부모 및 가장 가까운 형제도 판단된다. 프로세스는 블록(608)에서 계속된다.
블록(608)에서, XML 문서 내의 새로운 요소의 부모 요소에 해당하는 병렬 트리 내의 부모 노드는 부모 없는 노드를 채택하도록 지시된다. 그러면 새로운 노드는 병렬 트리 내의 올바른 위치에 표시되며, XML 문서와 병렬 트리를 동기시킨다. 프로세스는 블록(609)으로 계속되고, 여기서 프로세스는 프로세스(500)의 블록(503)으로 되돌아 간다.
도 7은 본 발명에 따라서 XML 문서를 검증하기 위한 예시적인 프로세스의 논리 흐름도이다. 프로세스(700)는 도 5에서 보여지는 프로세스(500)가 블록(506)으로 들어갈 때에 블록(701)으로 들어간다. 프로세스는 블록(702)에서 계속된다.
블록(702)에서, 검증될 비원시 XML 요소들과 연관되는 콘텐츠가 병렬 트리로 복사된다. 일 실시예에서, XML문서의 콘텐츠는 최초에는 병렬 트리에 포함되지 않는다. 만일 콘텐츠가 병렬 트리에 포함된다면, 병렬 트리에 요구되는 저장 공간이 XML 문서에 요구되는 저장 공간과 거의 같을 것이다. 검증 직전에 콘텐츠를 병렬 트리로 복사하는 것은 병렬 트리에 요구되는 저장 공간을 최소화한다. 또 다른 실시예에서, 병렬 트리로 복사되는 콘텐츠는 dirty로 표시된 비원시 XML요소들과 연관된 콘텐츠로 한정된다. 프로세스는 블록(703)에서 계속된다.
블록(703)에서, dirty로 표시된 노드(들) 및 그들과 연관된 콘텐츠는 검증 엔진에 의하여 비원시 XML 스키마에 대하여 검증된다. 비원시 XML스키마는 XML 문서의 비원시 XML 요소들 내의 콘텐츠를 기술하기 위하여 어떤 태그들과 속성들이 사용되는지, 각 태그들이 어느 곳에 사용될 수 있는지, 어떤 콘텐츠가 받아들일 수 있는 것인지, 및 다른 요소들 내에 어떤 요소들이 나타날 수 있는지를 진술한다. 병렬 XML 트리는 그것이 비원시 XML 스키마를 따를 때에 유효하다. 검증을 끝내면, 프로세스는 블록(704)으로 진행한다.
블록(704)에서, 검증 목적을 위해 병렬 트리 내에 포함된 콘텐츠는 병렬 트리로부터 제거된다. 병렬 트리로부터 콘텐츠를 제거하는 것은 병렬 트리에 요구되는 저장 공간을 더욱 최소화한다. 프로세스는 블록(705)으로 계속되고, 프로세스는 도 5에 보여지는 프로세스(500)의 블록(507)으로 되돌아간다.
도 8은 본 발명에 따라 XML 문서와 병렬 트리 내의 에러들을 표시하기 위한 예시적인 프로세스의 논리 흐름도이다. 프로세스(800)는 도 5에서 보여지는 프로세스(500)가 블록(508)으로 들어갈 때에 블록(801)으로 들어가고 XML 문서의 비원시 XML 요소들 내에 에러가 존재한다는 것이 판단된 상태이다. 프로세스는 블록(802)에서 계속된다.
블록(802)에서 검증 엔진에 의해 에러를 가지고 있다고 가리켜지는 요소(들)는 XML 문서 내에서 밑줄 그어진다. XML 문서 내에서 에러를 가지고 있는 요소들을 가리키기 위하여 다른 표시 지시자들(예를 들어 굵은체, 이탤릭체, 흘림체 등)이 사용될 수 있다. 프로세스는 블록(803)에서 계속된다.
블록(803)에서, XML 문서의 에러 요소(들)에 대응하는 병렬 트리의 노드(들)에는 플래그가 표시된다. 일 실시예에서, 노드에 대응하는 요소가 에러를 포함한다는 것을 가리키기 위하여 노드 부근에 아이콘이 놓여진다. 일 실시예에서, 아이콘은 에러 요소와 연관되어 일어나는 에러의 유형에 따라 특정된다. 프로세스는 결정 블록(804)에서 계속된다.
결정 블록(804)에서, 사용자가 XML 문서에 밝게 표시되어 있는 에러 위에서 오른쪽 클릭을 하였는지를 판단한다. 만일 오른쪽 클릭이 일어나지 않았으면, 프로세스는 블록(806)으로 진행한다. 그러나. 만일 오른쪽 클릭이 일어났으면, 프로세스는 블록(805)에서 계속된다.
블록(805)에서, 발생한 에러에 대한 자세한 정보와 에러를 교정하기 위한 명령을 보여주는 에러 표시가 오른쪽 클릭에 반응하여 사용자에게 제공된다. 일 실시예에서, 오른쪽 클릭이 아닌 다른 사용자 입력이 에러 표시를 초기화하기 위해 사용될 수 있다. 에러 표시는 앞에서 도 4의 논의에서 상술되었다. 프로세스는 결정 블록(806)으로 계속된다.
결정 블록(806)에서, 사용자가 마우스 포인터를 병렬 트리 내의 아이콘 위에 위치시키고 있는지를 판단한다. 만일 사용자가 마우스 포인터를 에러 위에 위치시키지 않고 있는 것으로 판단되면, 프로세스는 블록(808)으로 이동하고 여기서 프로세스는 도 5에서 도시되는 프로세스(500)의 블록(509)으로 되돌아간다. 마우스 포인터가 아이콘 위에 위치하고 있으면, 프로세스는 블록(807)에서 계속된다.
블록(807)에서, 병렬 트리 내의 아이콘 위에 마우스 포인터를 위치시키는 것에 반응하여 사용자에게 툴 팁이 표시된다. 일 실시예에서, 툴 팁의 문자는 발생한 에러를 기술하는 간단한 문장을 제공한다. 예를 들어, 만일 어떤 요소가 콘텐츠를 포함해야 한다면, 툴 팁의 문자는 "이 요소는 비어서는 안 된다"라고 읽힐 수 있다. 일 실시예에서, 마우스 포인터를 아이콘 위에 위치시키는 것과 다른 사용자 입력이 툴 팁을 표시하는 데에 사용될 수 있다. 도 4에서 예시적인 아이콘과 툴 팁이 도시된다. 프로세스는 블록(808)으로 계속되고 여기에서 프로세스는 도 5에 도시되는 프로세스(500)의 블록(509)으로 돌아간다.
앞의 상세한 설명, 예 및 데이터는 본 발명의 구성의 생산 및 사용의 완전한 기술을 제공한다. 본 발명의 사상과 범위를 벗어나지 않는 본 발명의 실시예는 많이 있을 수 있으므로, 본 발명은 후에 첨부되는 청구항들에 존재한다.
상술한 바와 같이, 본 발명에 따르면, XML 문서의 비원시 XML 요소들에 대응하는 노드들을 포함하는 병렬 트리가 유지되며, XML 문서에 변경이 발생하면, 변경에 대응하는 비원시 XML 요소들이 표시된다. 표시된 비원시 XML 요소들에 대응하는 노드들은 비원시 XML 생성에 해당하는 XML 스키마에 대하여 검증되며, 비원시 XML 생성의 에러들에 해당하는 요소들과 노드들은 XML 문서와 병렬 트리 내의 표시 지시자들에 의하여 사용자에게 보고되게 된다. 이러한 구성에 의해 실시간으로 XML 문서를 검증하고 스키마 위반을 보고할 수 있게 된다.

Claims (23)

  1. 원시 XML(extensible markup language) 및 비원시 XML을 포함하는 XML 문서에 대하여 스키마 위반의 검증 및 보고를 행하기 위한 방법에 있어서,
    상기 XML 문서 내에서의 비원시 XML 요소에 대한 변경 부분의 위치를 확인하는 단계;
    상기 XML 문서의 일 부분에 대하여 변경이 발생했다는 것을 통지하기 위하여 상기 XML 문서의 상기 부분에 표시를 행하는 단계;
    상기 변경이 발생했다는 것을 통지하기 위하여, 상기 XML 문서의 변경이 발생한 부분에 대응하는 병렬 트리 내의 노드에 표시를 행하는 단계;
    대응하는 비원시 XML 스키마에 대하여 상기 병렬 트리의 노드를 검증하는 단계;
    상기 노드를 검증하는 단계에 응하여 제공되는 에러 데이터로부터 비원시 XML 요소 내에 에러가 존재하는지를 판단하는 단계; 및
    상기 에러가 발생한 경우 상기 XML 문서 및 병렬 트리 내에 에러 통지를 표시하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 XML 문서 내의 비원시 XML 요소에 대한 변경 부분의 위치를 확인하는 단계는,
    상기 변경이 발생한 각 비원시 XML 요소에 대하여 부모 요소를 식별하는 단계; 및
    상기 변경이 발생한 각 비원시 XML 요소에 대하여 가장 가까운 형제 요소를 식별하는 단계
    를 더 포함하는 방법.
  3. 제1항에 있어서, 상기 XML 문서에서 새로운 비원시 XML 요소가 생성되었을 때 상기 병렬 트리 내에 새로운 노드를 생성하는 단계를 더 포함하는 방법.
  4. 제3항에 있어서, 새로운 노드를 생성하는 단계는,
    새로운 비원시 XML 요소에 대응하며, 상기 새로운 비원시 XML 요소의 부모 요소 및 형제 요소를 판단하는 식별자를 생성하는 단계;
    상기 병렬 트리 내에 부모 없는 노드를 생성하는 단계;
    상기 식별자를 상기 부모 없는 노드에 연관시키는 단계; 및
    상기 부모 요소에 대응하는 부모 노드로 하여금 상기 부모 없는 노드를 채택하도록 지시하는 단계
    를 더 포함하는 방법.
  5. 제1항에 있어서, 상기 병렬 트리의 노드를 검증하는 단계는,
    상기 XML 문서의 변경이 발생한 부분과 연관되는 콘텐츠를 상기 병렬 트리로복사하는 단계;
    대응하는 비원시 XML 스키마에 대하여 상기 콘텐츠를 포함하는 노드들을 검증하는 단계; 및
    상기 병렬 트리를 위한 저장 공간이 최소화 될 수 있도록 상기 병렬 트리로부터 상기 콘텐츠를 제거하는 단계
    를 더 포함하는 방법.
  6. 제5항에 있어서, 대응하는 비원시 XML 스키마에 대하여 상기 콘텐츠를 포함하는 상기 노드들을 검증하는 단계는 상기 비원시 XML 스키마에 대응하는 XML 검증 엔진으로 병렬 트리를 검사하는 단계를 포함하는 방법.
  7. 제1항에 있어서, 상기 병렬 트리를 검증하는 단계에 앞서 타임아웃 또는 휴면(idle) 조건이 발생하는지 판단하는 단계를 더 포함하는 방법.
  8. 제1항에 있어서, 상기 에러 통지를 표시하는 단계는,
    제1 표시 지시자에 의하여 상기 XML 문서의 에러가 발생한 부분을 가리키는 단계; 및
    제2 표시 지시자에 의하여 상기 XML 문서의 에러가 발생한 부분에 대응하는 상기 병렬 트리의 노드들을 가리키는 단계
    를 더 포함하는 방법.
  9. 제8항에 있어서, 상기 제1 표시 지시자 및 제2 표시 지시자 중 적어도 하나 이상에 대응하는 사용자 입력이 에러에 관한 상호 작용적인 정보를 제공하는 에러 표시를 생성하는 방법.
  10. 제8항에 있어서, 상기 제1 표시 지시자 및 제2 표시 지시자 중 적어도 하나 이상에 대응하는 사용자 입력이 에러에 관한 문자 정보를 제공하는 툴 팁(tooltip)을 생성하는 방법.
  11. 컴퓨터로 실행 가능한 컴퍼넌트들을 갖는 컴퓨터 판독 가능 매체에 있어서,
    제1 XML 스키마와 연관된 제1 유형의 요소들 및 제2 XML 스키마와 연관된 제2 유형의 요소들을 포함하는 확장성 마크업 언어(XML) 문서를 생성하고, 상기 제1 유형의 요소들 중 적어도 하나가 상기 제1 XML 스키마를 위반하는 것을 가리키는 표시 지시자를 제공하도록 구성되는 제1 컴퍼넌트;
    상기 제1 컴퍼넌트 내의 대응 요소와 연관되는 각 노드들을 저장하는 제2 컴퍼넌트 - 상기 제1 컴퍼넌트 및 제2 컴퍼넌트는 동기됨 -; 및
    상기 요소들을 검증하고, 상기 검증에서의 위반에 응하여 상기 제1 컴퍼넌트에 에러 데이터를 되돌리도록 배치되는 제3 컴퍼넌트
    를 포함하는 컴퓨터 판독 가능 매체.
  12. 제11항에 있어서, 상기 XML 문서와 제2 컴퍼넌트 중 적어도 하나 내에 표시되는 지시자와 사용자가 상호 작용할 때에 생성되도록 배치되는 에러 데이터에 대응하는 제4 컴퍼넌트를 더 포함하는 컴퓨터 판독 가능 매체.
  13. 제12항에 있어서, 상기 제4 컴퍼넌트가 에러 유형, 에러를 교정하기 위한 명령들, 및 에러 진술 중 적어도 하나를 포함하는 에러 데이터에 대응하는 에러에 대한 정보를 표시하도록 추가로 배치되는 컴퓨터 판독 가능 매체.
  14. 데이터 구조들로 인코딩된 컴퓨터 판독 가능 매체에 있어서,
    확장성 마크업 언어(XML)의 요소들로 구성되는 제1 데이터 구조;
    상기 제1 데이터 구조의 요소들에 대응하는 요소 트리로 구성되는 제2 데이터 구조; 및
    상기 제1 데이터 구조의 요소 및 제2 데이터 구조의 대응 노드 부근의 검증 에러를 알리는 표시 지시자
    를 포함하는 컴퓨터 판독 가능 매체.
  15. 제14항에 있어서, 상기 표시 지시자가 상기 검증 에러에 관한 상호 작용적인 정보를 제공하는 에러 표시를 초기화하기 위하여 사용자 입력과 상호 작용하도록 배치되는 컴퓨터 판독 가능 매체.
  16. 제14항에 있어서, 상기 표시 지시자가 상기 검증 에러에 관한 문자 정보를 제공하는 툴 팁을 초기화하기 위하여 사용자 입력과 상호 작용하도록 배치되는 컴퓨터 판독 가능 매체.
  17. 원시 XML(extensible markup language) 및 비원시 XML을 포함하는 XML 문서에 대하여 스키마 위반의 검증 및 보고를 행하기 위한 컴퓨터로 실행 가능한 명령어들을 기록한 컴퓨터 판독 가능 매체에 있어서,
    상기 명령어들은,
    상기 XML 문서 내에서의 비원시 XML 요소에 대한 변경 부분의 위치를 확인하는 단계;
    상기 변경이 상기 XML 문서 내의 새로운 비원시 XML 요소의 생성에 해당하는 경우 병렬 트리 내에 새로운 노드를 생성하는 단계;
    상기 XML 문서의 변경에 의하여 영향을 받는 부분에 표시를 하는 단계;
    상기 변경이 발생했다는 것을 통지하기 위하여 상기 병렬 트리 내의 상기 XML 문서의 변경에 의하여 영향을 받는 부분에 대응하는 노드에 표시를 하는 단계;
    대응하는 스키마에 대하여 상기 병렬 트리의 상기 표시된 노드를 검증하는 단계;
    상기 노드를 검증하는 단계에 응하여 제공되는 에러 데이터로부터 상기 비원시 XML 요소 내에 에러가 존재하는지를 판단하는 단계; 및
    상기 에러가 존재하는 경우 상기 XML 문서 및 병렬 트리 내에 상기 에러 통지를 표시하는 단계
    를 포함하는 컴퓨터 판독 가능 매체.
  18. 제17항에 있어서, 상기 비원시 XML 요소들에 대한 변경을 위치 확인하는 단계는,
    상기 변경이 발생한 각 비원시 XML 요소에 대하여 부모 요소를 식별하는 단계; 및
    상기 변경이 발생한 각 비원시 XML 요소에 대하여 가장 가까운 형제 요소를 식별하는 단계
    를 더 포함하는 컴퓨터 판독 가능 매체.
  19. 제17항에 있어서, 새로운 노드를 생성하는 단계는,
    새로운 비원시 XML 요소에 대응하며, 상기 새로운 비원시 XML 요소의 부모 요소 및 형제 요소를 판단하는 식별자를 생성하는 단계;
    상기 병렬 트리 내에 부모 없는 노드를 생성하는 단계;
    상기 식별자를 상기 부모 없는 노드에 연관시키는 단계; 및
    상기 부모 요소에 대응하는 부모 노드로 하여금 상기 부모 없는 노드를 채택하도록 지시하는 단계
    를 더 포함하는 컴퓨터 판독 가능 매체.
  20. 제17항에 있어서, 상기 병렬 트리의 노드를 검증하는 단계는
    상기 XML 문서의 변경이 발생한 부분과 연관되는 콘텐츠를 상기 병렬 트리로 복사하는 단계;
    대응하는 비원시 XML 스키마에 대하여 상기 콘텐츠를 포함하는 노드들을 검증하는 단계; 및
    상기 병렬 트리를 위한 저장 공간이 최소화 될 수 있도록, 상기 병렬 트리로부터 상기 콘텐츠를 제거하는 단계
    를 더 포함하는 컴퓨터 판독 가능 매체.
  21. 제17항에 있어서, 상기 에러 통지를 표시하는 단계는,
    제1 표시 지시자에 의하여 상기 XML 문서의 에러가 발생한 부분을 가리키는 단계; 및
    제2 표시 지시자에 의하여 상기 XML 문서의 에러가 발생한 부분에 대응하는 상기 병렬 트리의 노드들을 가리키는 단계
    를 더 포함하는 컴퓨터 판독 가능 매체.
  22. 제21항에 있어서, 상기 제1 표시 지시자 및 제2 표시 지시자 중 적어도 하나 이상에 대응하는 사용자 입력이 에러에 관한 상호 작용적인 정보를 제공하는 상기 에러 표시를 생성하는 컴퓨터 판독 가능 매체.
  23. 제21항에 있어서, 상기 제1 표시 지시자 및 제2 표시 지시자 중 적어도 하나 이상에 대응하는 사용자 입력이 에러에 관한 문자 정보를 제공하는 툴 팁을 생성하는 컴퓨터 판독 가능 매체.
KR1020030041891A 2002-06-27 2003-06-26 Xml 문서의 검증 및 스키마 위반을 보고하기 위한시스템 및 방법 Expired - Fee Related KR100833538B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/184,565 2002-06-27
US10/184,565 US7373595B2 (en) 2002-06-27 2002-06-27 System and method for validating an XML document and reporting schema violations

Publications (2)

Publication Number Publication Date
KR20040002736A true KR20040002736A (ko) 2004-01-07
KR100833538B1 KR100833538B1 (ko) 2008-05-29

Family

ID=27733956

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030041891A Expired - Fee Related KR100833538B1 (ko) 2002-06-27 2003-06-26 Xml 문서의 검증 및 스키마 위반을 보고하기 위한시스템 및 방법

Country Status (15)

Country Link
US (1) US7373595B2 (ko)
EP (1) EP1376389A3 (ko)
JP (1) JP2004046849A (ko)
KR (1) KR100833538B1 (ko)
CN (1) CN1329823C (ko)
AU (1) AU2003204868A1 (ko)
BR (1) BR0302084A (ko)
CA (1) CA2433243A1 (ko)
MX (1) MXPA03005875A (ko)
MY (1) MY137429A (ko)
NO (1) NO20032945L (ko)
PL (1) PL360865A1 (ko)
RU (1) RU2328032C2 (ko)
TW (1) TW200413960A (ko)
ZA (1) ZA200304859B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180057039A (ko) * 2016-11-21 2018-05-30 (주)솔트웍스 문서 통합 관리 시스템을 위한 동기화 장치

Families Citing this family (98)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5994207A (en) * 1997-05-12 1999-11-30 Silicon Genesis Corporation Controlled cleavage process using pressurized fluid
US7155667B1 (en) 2000-06-21 2006-12-26 Microsoft Corporation User interface for integrated spreadsheets and word processing tables
US6948135B1 (en) * 2000-06-21 2005-09-20 Microsoft Corporation Method and systems of providing information to computer users
US7191394B1 (en) 2000-06-21 2007-03-13 Microsoft Corporation Authoring arbitrary XML documents using DHTML and XSLT
US6883168B1 (en) * 2000-06-21 2005-04-19 Microsoft Corporation Methods, systems, architectures and data structures for delivering software via a network
US7346848B1 (en) * 2000-06-21 2008-03-18 Microsoft Corporation Single window navigation methods and systems
US7000230B1 (en) 2000-06-21 2006-02-14 Microsoft Corporation Network-based software extensions
KR100511785B1 (ko) * 2002-12-20 2005-08-31 한국전자통신연구원 멀티미디어 컨텐츠 기술 메타데이터 저작 시스템 및 저작방법
US7370066B1 (en) * 2003-03-24 2008-05-06 Microsoft Corporation System and method for offline editing of data files
US7415672B1 (en) * 2003-03-24 2008-08-19 Microsoft Corporation System and method for designing electronic forms
US7275216B2 (en) * 2003-03-24 2007-09-25 Microsoft Corporation System and method for designing electronic forms and hierarchical schemas
US6908058B2 (en) * 2003-03-28 2005-06-21 Suncast Corporation Hose reel cart with elevated crank handle
US7913159B2 (en) * 2003-03-28 2011-03-22 Microsoft Corporation System and method for real-time validation of structured data files
US7296017B2 (en) * 2003-03-28 2007-11-13 Microsoft Corporation Validation of XML data files
US7516145B2 (en) 2003-03-31 2009-04-07 Microsoft Corporation System and method for incrementally transforming and rendering hierarchical data files
US7251777B1 (en) 2003-04-16 2007-07-31 Hypervision, Ltd. Method and system for automated structuring of textual documents
US7409673B2 (en) * 2003-06-24 2008-08-05 Academia Sinica XML document editor
US7406660B1 (en) * 2003-08-01 2008-07-29 Microsoft Corporation Mapping between structured data and a visual surface
US7334187B1 (en) 2003-08-06 2008-02-19 Microsoft Corporation Electronic form aggregation
US7657832B1 (en) * 2003-09-18 2010-02-02 Adobe Systems Incorporated Correcting validation errors in structured documents
GB2407423A (en) * 2003-10-23 2005-04-27 Matsushita Electric Industrial Co Ltd Schema driven authoring tool
US8819072B1 (en) 2004-02-02 2014-08-26 Microsoft Corporation Promoting data from structured data files
US7430711B2 (en) * 2004-02-17 2008-09-30 Microsoft Corporation Systems and methods for editing XML documents
US7774620B1 (en) 2004-05-27 2010-08-10 Microsoft Corporation Executing applications at appropriate trust levels
WO2006004946A2 (en) * 2004-06-30 2006-01-12 Reactivity, Inc. Accelerated schema-based validation
KR100636177B1 (ko) * 2004-09-20 2006-10-19 삼성전자주식회사 정책 기반 확장성 생성 언어 문서 출력 관리 방법 및 시스템
US7692636B2 (en) 2004-09-30 2010-04-06 Microsoft Corporation Systems and methods for handwriting to a screen
US7512840B2 (en) * 2004-10-01 2009-03-31 Diebold, Incorporated System and method for providing graphical representation and development of a processing application
US8487879B2 (en) 2004-10-29 2013-07-16 Microsoft Corporation Systems and methods for interacting with a computer through handwriting to a screen
US7836392B2 (en) * 2004-11-10 2010-11-16 Sap Aktiengesellschaft Layout information for data component
US7818342B2 (en) * 2004-11-12 2010-10-19 Sap Ag Tracking usage of data elements in electronic business communications
US7711676B2 (en) * 2004-11-12 2010-05-04 Sap Aktiengesellschaft Tracking usage of data elements in electronic business communications
US7712022B2 (en) 2004-11-15 2010-05-04 Microsoft Corporation Mutually exclusive options in electronic forms
US7509353B2 (en) 2004-11-16 2009-03-24 Microsoft Corporation Methods and systems for exchanging and rendering forms
US7721190B2 (en) * 2004-11-16 2010-05-18 Microsoft Corporation Methods and systems for server side form processing
US7865519B2 (en) * 2004-11-17 2011-01-04 Sap Aktiengesellschaft Using a controlled vocabulary library to generate business data component names
US7797673B2 (en) * 2004-12-16 2010-09-14 The Mathworks, Inc. Applying coding standards in graphical programming environments
US7559020B2 (en) * 2004-12-30 2009-07-07 Microsoft Corporation Methods and systems for preserving unknown markup in a strongly typed environment
US7937651B2 (en) * 2005-01-14 2011-05-03 Microsoft Corporation Structural editing operations for network forms
US7571429B2 (en) 2005-01-18 2009-08-04 Sharp Laboratories Of America, Inc. System and method for error reporting
US8996991B2 (en) 2005-02-11 2015-03-31 Fujitsu Limited System and method for displaying an acceptance status
US7500184B2 (en) 2005-02-11 2009-03-03 Fujitsu Limited Determining an acceptance status during document parsing
US7725834B2 (en) * 2005-03-04 2010-05-25 Microsoft Corporation Designer-created aspect for an electronic form template
US7673228B2 (en) * 2005-03-30 2010-03-02 Microsoft Corporation Data-driven actions for network forms
US8010515B2 (en) 2005-04-15 2011-08-30 Microsoft Corporation Query to an electronic form
US20070011665A1 (en) * 2005-06-21 2007-01-11 Microsoft Corporation Content syndication platform
US7543228B2 (en) 2005-06-27 2009-06-02 Microsoft Corporation Template for rendering an electronic form
US8200975B2 (en) 2005-06-29 2012-06-12 Microsoft Corporation Digital signatures for network forms
US7613996B2 (en) 2005-08-15 2009-11-03 Microsoft Corporation Enabling selection of an inferred schema part
US7617448B2 (en) * 2005-09-06 2009-11-10 Cisco Technology, Inc. Method and system for validation of structured documents
US20070061467A1 (en) * 2005-09-15 2007-03-15 Microsoft Corporation Sessions and session states
US7774321B2 (en) * 2005-11-07 2010-08-10 Microsoft Corporation Partial XML validation
US8001459B2 (en) * 2005-12-05 2011-08-16 Microsoft Corporation Enabling electronic documents for limited-capability computing devices
US8037408B2 (en) * 2005-12-22 2011-10-11 Sap Ag Systems and methods of validating templates
US7533111B2 (en) * 2005-12-30 2009-05-12 Microsoft Corporation Using soap messages for inverse query expressions
US9495356B2 (en) * 2006-03-30 2016-11-15 International Business Machines Corporation Automated interactive visual mapping utility and method for validation and storage of XML data
WO2007114182A1 (ja) * 2006-03-31 2007-10-11 Justsystems Corporation データ入力装置、方法、及びプログラム
US7992081B2 (en) * 2006-04-19 2011-08-02 Oracle International Corporation Streaming validation of XML documents
US7821667B2 (en) * 2006-08-10 2010-10-26 Microsoft Corporation Validation of print configuration documents
US9535912B2 (en) * 2006-09-15 2017-01-03 Oracle International Corporation Techniques for checking whether a complex digital object conforms to a standard
US8060620B2 (en) * 2006-10-05 2011-11-15 Microsoft Corporation Profile deployment using a generic format
US20080092037A1 (en) * 2006-10-16 2008-04-17 Oracle International Corporation Validation of XML content in a streaming fashion
US20080114797A1 (en) * 2006-11-14 2008-05-15 Microsoft Corporation Importing non-native content into a document
US7921370B1 (en) * 2006-11-29 2011-04-05 Adobe Systems Incorporated Object-level text-condition indicators
EP1933242A1 (en) * 2006-12-11 2008-06-18 Sitecore A/S A method for ensuring internet content compliance
US7716164B2 (en) * 2006-12-29 2010-05-11 Sap Ag Layout information for data element
US8341514B2 (en) * 2007-01-31 2012-12-25 Microsoft Corporation Using static data in a markup language
US7865823B2 (en) * 2007-06-28 2011-01-04 Intel Corporation Method and apparatus for schema validation
US8108768B2 (en) * 2007-07-20 2012-01-31 International Business Machines Corporation Improving efficiency of content rule checking in a content management system
CN101359497A (zh) * 2007-07-30 2009-02-04 科立尔数位科技股份有限公司 时间标记的检测及表示方法与记录其数据结构的记录媒体
US8880564B2 (en) * 2007-10-11 2014-11-04 Microsoft Corporation Generic model editing framework
JP5165998B2 (ja) * 2007-11-14 2013-03-21 日本電信電話株式会社 コンテンツ診断装置,コンテンツ診断プログラム
US8719693B2 (en) * 2008-02-22 2014-05-06 International Business Machines Corporation Method for storing localized XML document values
US8020051B2 (en) * 2008-10-20 2011-09-13 Sap Ag Message handling in a service-oriented architecture
TWI385537B (zh) * 2009-05-04 2013-02-11 Univ Nat Taiwan 標示語言文件存取的輔助方法及裝置
US8200702B2 (en) * 2009-09-30 2012-06-12 International Business Machines Corporation Independently variably scoped content rule application in a content management system
US20110314043A1 (en) * 2010-06-17 2011-12-22 Microsoft Corporation Full-fidelity representation of xml-represented objects
CA2711855A1 (en) 2010-08-25 2010-11-03 Ibm Canada Limited - Ibm Canada Limitee Secure third party scripting environment
US8281236B2 (en) * 2010-09-08 2012-10-02 Microsoft Corporation Removing style corruption from extensible markup language documents
US10140320B2 (en) 2011-02-28 2018-11-27 Sdl Inc. Systems, methods, and media for generating analytical data
US20120221319A1 (en) * 2011-02-28 2012-08-30 Andrew Trese Systems, Methods and Media for Translating Informational Content
US9984054B2 (en) 2011-08-24 2018-05-29 Sdl Inc. Web interface including the review and manipulation of a web document and utilizing permission based control
US9224010B2 (en) 2011-09-01 2015-12-29 International Business Machines Corporation Secure document creation from potentially unsecure source templates
US8739026B2 (en) 2011-09-06 2014-05-27 Hewlett-Packard Development Company, L.P. Markup language schema error correction
US20130091423A1 (en) * 2011-10-11 2013-04-11 Siemens Aktiengesellschaft Method and Apparatus for Checking a Structure Conformity for a Piece Of Development Documentation with at Least One Development Document
US9916306B2 (en) 2012-10-19 2018-03-13 Sdl Inc. Statistical linguistic analysis of source content
CN103914467B (zh) * 2012-12-31 2017-07-14 鼎捷软件股份有限公司 数据变化标记装置
US9524307B2 (en) * 2013-03-14 2016-12-20 Microsoft Technology Licensing, Llc Asynchronous error checking in structured documents
US9501456B2 (en) * 2013-03-15 2016-11-22 Altova Gmbh Automatic fix for extensible markup language errors
US10747390B1 (en) * 2014-03-27 2020-08-18 Amazon Technologies, Inc. Graphical composer for policy management
US10592068B1 (en) 2014-03-27 2020-03-17 Amazon Technologies, Inc. Graphic composer for service integration
US10552513B1 (en) * 2015-01-08 2020-02-04 Vmware, Inc. Computer system entity rendering system
CN105354020A (zh) * 2015-09-30 2016-02-24 武汉钢铁(集团)公司 一种Json格式数据解析方法及数据接收端
JP6365518B2 (ja) * 2015-11-30 2018-08-01 京セラドキュメントソリューションズ株式会社 情報処理装置、画像形成装置
US10031766B2 (en) 2016-03-08 2018-07-24 Mastercard International Incorporated Systems and methods for processing extensible markup language data during runtime
CN108959095B (zh) * 2018-07-12 2021-11-23 中国工程物理研究院计算机应用研究所 基于XML Schema验证XML文档的方法
US20240126727A1 (en) * 2022-10-14 2024-04-18 Oracle International Corporation Techniques for comprehensively supporting json schema in a rdbms
EP4605826A1 (en) * 2022-11-02 2025-08-27 Huawei Cloud Computing Technologies Co., Ltd. Methods and systems for model generation and instantiation of optimization models from markup documents

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5778402A (en) * 1995-06-07 1998-07-07 Microsoft Corporation Method and system for auto-formatting a document using an event-based rule engine to format a document as the user types
US5829004A (en) * 1996-05-20 1998-10-27 Au; Lawrence Device for storage and retrieval of compact contiguous tree index records
US6558431B1 (en) * 1998-09-11 2003-05-06 Macromedia, Inc. Storing valid and invalid markup language in strict and relaxed tables respectively
US6964010B1 (en) * 1998-12-14 2005-11-08 International Business Machines Corporation Formatted-item list control
US7111233B1 (en) * 2000-03-09 2006-09-19 Electronic Data Systems Corporation Method and system for applying XML schema
US6675355B1 (en) * 2000-03-16 2004-01-06 Autodesk, Inc. Redline extensible markup language (XML) schema
GB0018042D0 (en) * 2000-07-21 2000-09-13 Monsell Edm Ltd Method of and software for recordal and validation of changes to markup language files
US20010029604A1 (en) * 2001-04-27 2001-10-11 Jacob Dreyband Descriptive data construct mapping method and apparatus
WO2003019411A2 (en) * 2001-08-23 2003-03-06 Xmlcities, Inc. Method and apparatus for extensible stylesheet designs
US7281206B2 (en) * 2001-11-16 2007-10-09 Timebase Pty Limited Maintenance of a markup language document in a database
US7024626B2 (en) * 2001-11-30 2006-04-04 Apple Computer, Inc. System and method of producing user interface information messages
US6540142B1 (en) * 2001-12-17 2003-04-01 Zih Corp. Native XML printer
US7962925B2 (en) * 2002-02-22 2011-06-14 Oracle International Corporation System and method for XML data binding
US7890865B2 (en) * 2002-05-09 2011-02-15 Microsoft Corporation Methods and apparatuses for providing message information in graphical user interfaces based on user inputs
US7251697B2 (en) * 2002-06-20 2007-07-31 Koninklijke Philips Electronics N.V. Method and apparatus for structured streaming of an XML document

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180057039A (ko) * 2016-11-21 2018-05-30 (주)솔트웍스 문서 통합 관리 시스템을 위한 동기화 장치

Also Published As

Publication number Publication date
RU2003119091A (ru) 2005-02-10
ZA200304859B (en) 2004-05-04
CA2433243A1 (en) 2003-12-27
EP1376389A3 (en) 2007-07-11
TW200413960A (en) 2004-08-01
MXPA03005875A (es) 2005-02-14
MY137429A (en) 2009-01-30
CN1472645A (zh) 2004-02-04
NO20032945L (no) 2003-12-29
US7373595B2 (en) 2008-05-13
BR0302084A (pt) 2004-09-08
AU2003204868A1 (en) 2004-01-22
CN1329823C (zh) 2007-08-01
US20040006744A1 (en) 2004-01-08
PL360865A1 (en) 2003-12-29
RU2328032C2 (ru) 2008-06-27
KR100833538B1 (ko) 2008-05-29
JP2004046849A (ja) 2004-02-12
EP1376389A2 (en) 2004-01-02
NO20032945D0 (no) 2003-06-26

Similar Documents

Publication Publication Date Title
KR100833538B1 (ko) Xml 문서의 검증 및 스키마 위반을 보고하기 위한시스템 및 방법
US7730394B2 (en) Data binding in a word-processing application
US7945590B2 (en) Programmability for binding data
US20080263101A1 (en) Data Processing Device and Data Processing Method
US20100107048A1 (en) Document processor and document processing method
US20080262833A1 (en) Document Processing Device and Document Processing Method
KR20140038469A (ko) 소스 코드를 실행 요소에 링크시키는 기법
US20090287994A1 (en) Document processing device and document processing method
US20080209572A1 (en) Data Processing System, Data Processing Method, and Management Server
US20070258100A1 (en) Document Processing Device and Document Processing Method
US20080010588A1 (en) Document Processing Device and Document Processing Method
US20090083300A1 (en) Document processing device and document processing method
US20080256092A1 (en) Data Processing Device and Data Processing Method
US20070198915A1 (en) Document Processing Device And Document Processing Method
US20070208995A1 (en) Document Processing Device and Document Processing Method
US7827195B2 (en) Document management device and document management method
US20080005662A1 (en) Server Device and Name Space Issuing Method
US20080250311A1 (en) Document Processing Device, and Document Processing Method
US20080208790A1 (en) Document Processing Device, and Document Processing Method
US20080010587A1 (en) Document Processing Device and Document Processing Method
US20080005085A1 (en) Server Device and Search Method
US20090199084A1 (en) Document processing device and document processing method
US20070273936A1 (en) Document Processing Device, And Document Processing Method
US20080262832A1 (en) Document Processing Device, and Document Processing Method
US20090083620A1 (en) Document processing device and document processing method

Legal Events

Date Code Title Description
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

A201 Request for examination
A302 Request for accelerated examination
E13-X000 Pre-grant limitation requested

St.27 status event code: A-2-3-E10-E13-lim-X000

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

PA0302 Request for accelerated examination

St.27 status event code: A-1-2-D10-D17-exm-PA0302

St.27 status event code: A-1-2-D10-D16-exm-PA0302

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

GRNT Written decision to grant
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U11-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 4

R17-X000 Change to representative recorded

St.27 status event code: A-5-5-R10-R17-oth-X000

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 5

FPAY Annual fee payment

Payment date: 20130416

Year of fee payment: 6

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 6

FPAY Annual fee payment

Payment date: 20140417

Year of fee payment: 7

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 7

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R13-asn-PN2301

St.27 status event code: A-5-5-R10-R11-asn-PN2301

LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee

St.27 status event code: A-4-4-U10-U13-oth-PC1903

Not in force date: 20150524

Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R11-asn-PN2301

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R14-asn-PN2301

PC1903 Unpaid annual fee

St.27 status event code: N-4-6-H10-H13-oth-PC1903

Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

Not in force date: 20150524

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000