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

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

Info

Publication number
KR100833538B1
KR100833538B1 KR1020030041891A KR20030041891A KR100833538B1 KR 100833538 B1 KR100833538 B1 KR 100833538B1 KR 1020030041891 A KR1020030041891 A KR 1020030041891A KR 20030041891 A KR20030041891 A KR 20030041891A KR 100833538 B1 KR100833538 B1 KR 100833538B1
Authority
KR
South Korea
Prior art keywords
xml
node
native
error
elements
Prior art date
Application number
KR1020030041891A
Other languages
English (en)
Other versions
KR20040002736A (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=***_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR100833538(B1) "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

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (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}
도 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 : 병렬 트리
마크업 언어(Markup language)들은 최근 수 년 동안 폭 넓은 인기를 얻어왔다. 마크업 언어의 한 유형인 XML(Extensible Markup Language)은 다양한 종류의 데이터를 식별, 교환 및 처리하는 방법을 제공하는 보편적인 언어이다. 예를 들어, XML은 여러 종류의 응용 프로그램에 의해 이용될 수 있는 문서들의 생성을 위해 사용된다. XML 파일들의 요소들은 연관된 네임스페이스(namespace) 및 스키마(schema)를 갖는다.
XML에서 네임스페이스는 XML 문서의 각 클래스(class)를 유일하게 식별하는데 일반적으로 사용된다. 각 XML 문서는 문서와 관련된 XML의 유형을 용이하게 식별하기 위한 프로세스들을 허용하는 네임스페이스를 사용할 수 있다. 유일한 네임스페이스는 서로 다른 소스들로부터의 마크업 요소들 및 우연히 같은 이름을 갖는 마크업 요소들을 구별하는 데에 도움을 줄 수 있다.
XML 스키마는 XML 환경 하에서 데이터를 설명하고 검증하는 방법을 제공한다. 스키마는 XML 문서에 있어서 어떤 요소(element) 및 속성(attribute)이, XML 문서 내의 컨텐츠를 기술하는데 이용되는지, 각 요소는 어느 위치에 허용되는지, 그리고 어떤 요소들이 다른 요소들 내에 나타날 수 있는지를 나타낸다. 스키마의 사용은 파일이 일관된 방법으로 구성됨을 확신케 한다. 스키마는 사용자에 의해 생성되며, XML과 같은 연관된 마크업 언어에 의해 일반적으로 지원된다. 스키마를 지원하는 XML 편집기(editor)를 사용함으로써, 사용자는 사용자가 생성한 스키마가 부착된 XML 문서를 만들 수 있으며, XML 파일을 처리할 수 있다.
일반적으로, 요소 또는 태그(tag)가 틀린 XML 문서 내에 삽입될 때 XML 편집기는 사용자가 에러를 처리하지 않고 XML 문서의 합성을 계속하는 것을 거부한다. 이러한 경우에, 상기 XML 편집기는 단순히 스키마와 관련하여 잘못된 XML 문서를 편집하는 것을 허용하지 않으므로, 편집기는 자유로운 편집을 제공하지 않게 된다. 편집기에 대한 다른 옵션(option)은 사용자가 전체 XML 문서를 만들고, 이어서 XML 문서를 온전히 그대로 검증하도록 허용하는 것이다. 전체 XML 문서를 검증할 때 발생하는 에러들은 발견되고 정정될 것이 요구된다.
본 발명은 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 요소의 트랙(track) 보관 외에, 병렬 트리는 또한 비원시 XML 요소의 문서 콘텐츠의 트랙을 보관한다. 비원시 XML 요소들의 콘텐츠는 병렬 트리에 존재하기 보다는 XML 문서 내에 존재하나, 병렬 트리는 여전히 요소들에 대한 링크를 유지한다. 필요로 할 때, 콘텐츠는 병렬 트리 검증을 위해 병렬 트리에 의해 r검색(retrieve)된다. 검증 프로세스는 그 후, 노드들 간의 병렬 트리 구조 관계 뿐만 아니라 각 노드가 그 문서 컨텐츠에 부여하는 컨텐츠 유형 제한을 검증할 수 있다.
병렬 트리는 비원시 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 문서 내의 요소들을 묘사하며 문서 내에 삽입되는 명령(command)을 나타낸다. 각 요소는 통상적으로 단지 2개의 태그, 시작 태그와 종료 태그만을 갖는다. 빈 요소(콘텐츠가 없는 경우)를 가질 수도 있으며, 이러한 경우 하나의 태그가 허용된다.
태그들 사이의 내용은 요소들의 "자식들(children) 또는 자손(descendant)"으로 고려된다. 따라서, 요소들의 콘텐츠 속에 포함된(embedded) 다른 요소들은 "자식 요소(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에 도시된다. 컴퓨터 저장 매체는 컴퓨터 판독 명령, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 어떠한 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 탈착 가능 및 탈착 불가능 매체를 포함한다. 시스템 메모리(104), 탈착 가능 저장 장치(109), 탈착 불가능 저장 장치(110)는 모두 컴퓨터 저장 매체의 예이다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, DVD 또는 기타 광 스토리지, 자기 카세트, 자기 테잎, 자기 디스크 스토리지 또는 자기 저장 장치를 포함하지만 이에 국한되는 것은 아니며, 컴퓨팅 장치(100)에 의해 액세스될 수 있으며 원하는 정보를 저장하기 위해 사용될 수 있는 기타 어떠한 매체도 포함된다. 어떠한 컴퓨터 저장 매체도 장치(100)의 부분이 될 수 있다. 컴퓨팅 장치(100)는 또한 키보드, 마우스, 펜, 음성 입력 장치, 터치 입력 장치 등과 같은 입력 장치(112)를 포함할 수 있다. 디스플레이, 스피커, 프린터 등과 같은 출력 장치(114) 또한 포함될 수 있다. 이러한 장치들은 종래 기술로서 잘 알려져 있으므로, 여기에서는 더 이상 설명하지 않는다.
컴퓨팅 장치(100)는 또한 네트워크를 통해서와 같이 장치가 다른 컴퓨팅 장치와 커뮤니케이션 할 수 있도록 하는 커뮤니케이션 연결(116)을 포함한다. 커뮤니케이션 연결(116)은 커뮤니케이션 매체의 일 예이다. 커뮤니케이션 매체는 일반적으로 컴퓨터가 판독 가능한 명령, 데이터 구조, 프로그램 모듈, 또는 반송파 또는 다른 수송 메커니즘과 같은 변조된 데이터 신호 내에 있는 다른 데이터에 의해 구현되고, 어떠한 정보 전달 매체도 포함한다. 용어 "변조된 데이터 신호"는 신호 내에 정보를 인코딩하는 방법으로 설정 또는 변경되는 하나 이상의 신호 특성을 갖는 신호를 의미한다.
예를 들어, 커뮤니케이션 매체는 유선 네트워크 또는 직접-유선 연결과 같은 유선 매체 또는 음향(acoustic), RF, 적외선 및 기타 무선 매체와 같은 무선 매체 등을 들 수 있으나 이에 제한되는 것은 아니다. 여기에서 사용되는 용어인 컴퓨터 판독 매체는 저장 매체 및 커뮤니케이션 매체 양자를 포함한다.
도 2는 본 발명을 구현하기 위한 예시적인 환경을 도시한 블록도이다. 도 2에 도시한 예시적인 환경(200)은 워드 프로세서(120), XML 문서(210), 비원시 XML 스키마(215), XML 검증 엔진(225) 및 데이터 구조(230)를 포함한다. 데이터 구조(230)는 에러 데이터(235), 병렬 트리(220) 및 싱크 데이터(sync data; 240)를 포함한다.
일 실시예에서, 워드프로세서(120)는 워드프로세서(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)내의 노드의 추가 및 삭제를 포함하여 XML 문서(210)내에서 일어나는 변경을 병렬 트리(220)와 동기화시키는 것을 돕는다. 병렬 트리(220)에 노드를 추가하기 위한 공정을 포함하는 예시적인 프로세스가 도 6과 관련하여 설명된다.
도 3은 본 발명에 따라서 유지되는 예시적인 XML 문서(210)와 병렬 트리(220)를 도시한다. XML 문서(210)는 원시 XML 요소와 비원시 XML 요소를 포함한다. 마크업 언어에서의 요소는 일반적으로 개시 태그("<" 및 ">"로 표시됨), 여러 콘텐츠 및 종료 태그("</" 및 ">"로 표시됨)를 포함한다. 본 예에 있어서, 원시 XML 스키마와 관련있는 태그들은 태그{예를들어 요소(302)}내에 "w:"를 포함하며, 비원시 XML 스키마와 관련있는 태그들은 태그{예를들어 요소(304)}내에 "r:"를 포함한다. 원시 XML과 관련있는 태그들은 워드프로세서(워드프로세서 네임스페이스)의 네임스페이스와 관련되어 참조된다. 대조적으로, 비원시 XML과 관련있는 태그들은 서로 다른 네임스페이스와 관련되어 참조되며, 본 예에서는 "resume" 네임스페이스이다. XML 문서(210)의 요소들은 나아가 콘텐츠를 포함한다. 예를 들어, "Work"는 "objective" 요소 내에 포함되며 "123 Main"은 "street" 요소 내에 포함된다. "street" 요소는 "address" 요소 내에 포함된다. 이들 요소들은 사용자 또는 다른 애플리케이션에 의해 미리 제공된 이력(resume) 네임스페이스(예를 들어, 이력 스키마)에 대응하는 비원시 XML 스키마에 따라 정의된다. "w:" 및 "r:" 프리픽스는 이들 각각의 네임스페이스를 위한 XML 속기 표시(shorthand notation)로서 작용한다.
병렬 트리(220)는 XML 문서 210 내의 각 비원시 XML 요소마다 하나의 노드(예를 들어 노드 322, 324, 326)를 포함한다. 일 실시예에서, 병렬 트리(220)는 워드 프로세서(120; 도 2 참조)와 별도로 검증 엔진(225)에 의하여 유지된다. 병렬 트리(220)는 XML 문서(210)가 변경될 때 실시간으로 갱신된다. 병렬 트리(220)는 비원시 XML 스키마(215)에 대하여 XML 문서를 검증할 때에, 워드 프로세서로 하여금 원시 XML 요소들을 실질적으로는 무시할 수 있게끔 해 준다. 즉, 병렬 트리(220)가 검증을 위해 검증 엔진에 제공되는 경우, 원시 XML 요소들은 실질적으로는 비원시 XML 요소들에 대하여 투명적(transparent)이다. 그러면 후에 도 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)에 대한)가 추가되었다. 에러는 우편 번호(zip code)인 에러 요소(432)에 의하여 나타내어져 있다. 비원시 XML 스키마(215)에 따르면, "zip" 요소는 address의 자식이거나 "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)은 또한 사용자가 에러를 교정하기 위하여 권장되는 행동들을 제안할 수도 있다. 권장되는 행동들은 대화형(interactive)이어서, 사용자로 하여금 현재의 에러에 대한 가능한 해결방법의 목록 중 선택하도록 할 수도 있다.
게다가, 아이콘(442) 위에 위치하면 툴 팁(440)과 같은 다른 정보를 사용자에게 보이게끔 할 수도 있다. "툴 팁"은 보통 사용자에게 추가적인 정보를 제공하는 비-대화형의 표시 요소를 가리킨다. 예를 들어, 보이는 툴 팁은 "zip는 street 내에 있을 수 없다"는 문자 알림을 제공한다. 일 실시예에서, 아이콘(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)에 저장된다. 또 다른 실시예에서, 가장 가까운 형제가 XML 문서 내에서 변경될 요소의 위 또는 아래에 있는지도 결정된다. 프로세스는 결정 블록(604)에서 계속된다.
결정 블록(604)에서, 변경으로 인해 병렬 트리 내에 새 노드를 생성해야 하는지를 판단한다. XML 문서 내에 새로운 비원시 XML 요소가 생성될 때에 새로운 노드가 요구된다. 새로운 노드는 XML 문서와 병렬 트리의 동기를 유지하기 위하여 실시간으로 생성된다. 새로운 노드가 요구되지 않으면, 프로세스는 블록(609)으로 이동하고, 여기서 프로세스는 프로세스(500)의 블록(503)으로 되돌아간다. 그러나, 만일 새로운 노드가 요구되면, 프로세스는 블록(605)으로 이동한다.
블록(605)에서, XML 문서 내의 새로운 요소에 해당하는 식별자가 생성된다. 식별자는 XML 문서 내의 요소를 유일하게 식별시킨다. 프로세스는 블록(606)에서 계속된다.
블록(606)에서, 부모 없는 노드가 병렬 트리 내에서 생성된다. 부모 없는 노드는 현재는 병렬 트리 내의 부모에 의하여 식별되지 않는다. 프로세스는 블록( 607)에서 계속된다.
블록(607)에서, XML 문서 내에서 생성된 요소와 관련된 식별자는 부모 없는 노드와 연관된다. 부모 없는 노드와 식별자를 연관시키는 것은 워드 프로세서로 하여금 노드를 XML 문서 내의 새로운 요소의 위치에 관련시킬 수 있도록 해준다. 일 실시예에서, XML 문서 내의 새로운 요소에 대하여 부모 및 가장 가까운 형제가 판단되고, 따라서, 병렬 트리 내의 부모 및 가장 가까운 형제도 판단된다. 프로세스는 블록(608)에서 계속된다.
블록(608)에서, XML 문서 내의 새로운 요소의 부모 요소에 해당하는 병렬 트리 내의 부모 노드는 부모 없는 노드를 채택(adopt)하도록 지시된다. 그러면 새로운 노드는 병렬 트리 내의 올바른 위치에 표시되며, 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 요소들 중 적어도 하나에 대응하는 적어도 하나의 노드를 배제하며, 상기 원시 XML 요소들 중 상기 적어도 하나는 대응하는 원시 XML 스키마와 연관되며 상기 변경된 비원시 XML 요소는 대응하는 비원시 XML 스키마와 연관되는 단계;
    상기 XML 문서 내의 상기 비원시 XML 요소에 대한 상기 변경이 발생한 상기 XML 문서의 상기 부분이 검증되도록, 상기 대응하는 비원시 XML 스키마에 대하여 상기 병렬 트리의 상기 노드를 검증하는 단계;
    상기 노드를 검증하는 단계에 응답하여 제공되는 에러 데이터로부터 상기 변경된 비원시 XML 요소 내에 에러가 존재하는지 여부를 판단하는 단계; 및
    상기 에러가 발생한 경우 상기 XML 문서 및 상기 병렬 트리 내에 에러 통지를 표시하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 비원시 XML 요소에 대한 변경의 위치를 확인하는 상기 단계는,
    상기 변경이 발생한 각 비원시 XML 요소에 대한 부모 요소(parent element)를 식별하는 단계; 및
    상기 변경이 발생한 각 비원시 XML 요소에 대한 가장 가까운 형제 요소(sibling element)를 식별하는 단계
    를 더 포함하는 방법.
  3. 제1항에 있어서, 상기 XML 문서에서 새로운 비원시 XML 요소가 생성되는 경우 상기 병렬 트리 내에 새로운 노드를 생성하는 단계를 더 포함하는 방법.
  4. 제3항에 있어서, 상기 새로운 노드를 생성하는 단계는,
    새로운 비원시 XML 요소에 대응하며, 상기 새로운 비원시 XML 요소의 부모 요소 및 형제 요소를 판단하는 식별자를 생성하는 단계;
    상기 병렬 트리 내에 부모 없는 노드(unparent node)를 생성하는 단계;
    상기 식별자를 상기 부모 없는 노드에 연관시키는 단계; 및
    상기 부모 요소에 대응하는 부모 노드로 하여금 상기 부모 없는 노드를 채택하도록 지시하는 단계
    를 더 포함하는 방법.
  5. 제1항에 있어서, 상기 병렬 트리의 상기 노드를 검증하는 단계는,
    상기 XML 문서의 상기 변경이 발생한 상기 부분과 연관되는 콘텐츠를 상기 병렬 트리로 복사하는 단계;
    상기 대응하는 비원시 XML 스키마에 대하여 상기 콘텐츠를 포함하는 노드를 검증하는 단계; 및
    상기 병렬 트리를 위한 저장 공간이 최소화 될 수 있도록 상기 병렬 트리로부터 상기 콘텐츠를 삭제하는 단계
    를 더 포함하는 방법.
  6. 제5항에 있어서, 상기 대응하는 비원시 XML 스키마에 대하여 상기 콘텐츠를 포함하는 상기 노드를 검증하는 단계는 상기 비원시 XML 스키마에 따라 XML 검증 엔진으로 상기 병렬 트리를 검사하는 단계를 포함하는 방법.
  7. 제1항에 있어서, 상기 병렬 트리의 상기 노드를 검증하는 단계에 앞서 타임아웃 또는 휴면(idle) 조건이 발생하는지를 판단하는 단계를 더 포함하는 방법.
  8. 제1항에 있어서, 상기 에러 통지를 표시하는 단계는,
    제1 표시 지시자에 의하여 상기 XML 문서의 상기 에러가 발생한 상기 부분을 지시하는 단계; 및
    제2 표시 지시자에 의하여 상기 XML 문서의 상기 에러가 발생한 상기 부분에 대응하는 상기 병렬 트리의 노드를 지시하는 단계
    를 더 포함하는 방법.
  9. 제8항에 있어서, 상기 제1 표시 지시자 및 제2 표시 지시자 중 적어도 하나에 대응하는 사용자 입력이, 상기 에러에 관한 대화형 정보(interactive information)를 제공하는 에러 표시를 생성하는 방법.
  10. 제8항에 있어서, 상기 제1 표시 지시자 및 제2 표시 지시자 중 적어도 하나에 대응하는 사용자 입력이, 상기 에러에 관한 문자 정보를 제공하는 툴 팁(tooltip)을 생성하는 방법.
  11. 컴퓨터로 실행 가능한 컴퍼넌트들(components)을 갖는 컴퓨터 판독 가능 저장 매체(computer-readable storage medium)에 있어서,
    제1 XML 스키마와 연관된 제1 유형의 요소들 및 제2 XML 스키마와 연관된 제2 유형의 요소들을 포함하는 확장성 마크업 언어(XML) 문서를 생성하고, 상기 제2 유형의 요소들 중 적어도 하나가 상기 제2 XML 스키마를 위반하는 것을 나타내는 표시자(display)를 제공하도록 구성되는 제1 컴퍼넌트 -상기 제1 유형 및 제2 유형은 각각 원시 XML 및 비원시 XML임-;
    상기 제2 유형의 요소들 및 상기 제2 XML 스키마와 연관되는 노드들을 트리 구조에 선택적으로 저장하고 상기 제1 유형의 요소들 및 상기 제1 XML 스키마와 연관되는 노드들을 배제하는 제2 컴퍼넌트 -상기 트리 구조 내의 각 노드는 상기 제1 컴퍼넌트 내의 대응 요소와 연관되고, 상기 제1 컴퍼넌트 및 상기 제2 컴퍼넌트는 동기화됨(synchronized)-; 및
    상기 트리 구조 내의 상기 노드들과 연관된 상기 요소들을 검증하고, 상기 검증에서의 위반에 응답하여 상기 제1 컴퍼넌트로 에러 데이터를 반환하도록 구성되는 제3 컴퍼넌트 -상기 요소들은 상기 트리 구조 내의 상기 노드들과 연관된 상기 제1 컴퍼넌트의 요소들에서의 변경에 응답하여 검증됨-
    를 포함하는 컴퓨터 판독 가능 저장 매체.
  12. 제11항에 있어서, 상기 XML 문서와 상기 제2 컴퍼넌트 중 적어도 하나 내에 표시되는 지시자와 사용자가 상호 작용할 때에 생성되도록 구성되는, 상기 에러 데이터에 대응하는 제4 컴퍼넌트를 더 포함하는 컴퓨터 판독 가능 저장 매체.
  13. 제12항에 있어서, 상기 제4 컴퍼넌트는 상기 에러 데이터에 대응하는 에러에 대한 정보를 표시하도록 추가로 구성되고, 상기 정보는 에러 유형, 상기 에러를 교정하기 위한 명령들 및 상기 에러의 진술 중 적어도 하나를 포함하는 컴퓨터 판독 가능 저장 매체.
  14. 삭제
  15. 삭제
  16. 삭제
  17. 원시 XML 요소들 및 비원시 XML 요소들을 포함하는 XML 문서에 대하여 스키마 위반의 검증 및 보고를 행하기 위한 컴퓨터 실행 가능 명령어들을 갖는 컴퓨터 판독 가능 저장 매체에 있어서,
    상기 명령어들은,
    상기 XML 문서 내에서의 비원시 XML 요소에 대한 변경의 위치를 확인하는 동작;
    상기 변경이 상기 XML 문서 내의 새로운 비원시 XML 요소의 생성에 해당하는 경우 병렬 트리 내에 새로운 노드를 생성하는 동작 -상기 병렬 트리는 상기 새로운 비원시 XML 요소에 대응하는 노드를 선택적으로 포함하고 상기 원시 XML 요소들 중 적어도 하나에 대응하는 적어도 하나의 노드를 배제하며, 상기 원시 XML 요소들 중 적어도 하나는 대응하는 원시 XML 스키마와 연관되고 상기 새로운 비원시 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 문서의 검증 및 스키마 위반을 보고하기 위한시스템 및 방법 KR100833538B1 (ko)

Applications Claiming Priority (2)

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

Publications (2)

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

Family

ID=27733956

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030041891A 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)

Families Citing this family (94)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6162705A (en) * 1997-05-12 2000-12-19 Silicon Genesis Corporation Controlled cleavage process and resulting device using beta annealing
US6948135B1 (en) * 2000-06-21 2005-09-20 Microsoft Corporation Method and systems of providing information to computer users
US7155667B1 (en) 2000-06-21 2006-12-26 Microsoft Corporation User interface for integrated spreadsheets and word processing tables
US7000230B1 (en) 2000-06-21 2006-02-14 Microsoft Corporation Network-based software extensions
US7191394B1 (en) 2000-06-21 2007-03-13 Microsoft Corporation Authoring arbitrary XML documents using DHTML and XSLT
US7346848B1 (en) * 2000-06-21 2008-03-18 Microsoft Corporation Single window navigation methods and systems
US6883168B1 (en) 2000-06-21 2005-04-19 Microsoft Corporation Methods, systems, architectures and data structures for delivering software via a network
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
US7275216B2 (en) * 2003-03-24 2007-09-25 Microsoft Corporation System and method for designing electronic forms and hierarchical schemas
US7415672B1 (en) * 2003-03-24 2008-08-19 Microsoft Corporation System and method for designing electronic forms
US7296017B2 (en) * 2003-03-28 2007-11-13 Microsoft Corporation Validation of XML data files
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
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 Ind 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
US7711676B2 (en) * 2004-11-12 2010-05-04 Sap Aktiengesellschaft Tracking usage of data elements in electronic business communications
US7818342B2 (en) * 2004-11-12 2010-10-19 Sap Ag 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
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
US8200975B2 (en) 2005-06-29 2012-06-12 Microsoft Corporation Digital signatures for network forms
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
US20120221319A1 (en) * 2011-02-28 2012-08-30 Andrew Trese Systems, Methods and Media for Translating Informational Content
US10140320B2 (en) 2011-02-28 2018-11-27 Sdl Inc. Systems, methods, and media for generating analytical data
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
US10592068B1 (en) 2014-03-27 2020-03-17 Amazon Technologies, Inc. Graphic composer for service integration
US10747390B1 (en) * 2014-03-27 2020-08-18 Amazon Technologies, Inc. Graphical composer for policy management
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
KR101903039B1 (ko) * 2016-11-21 2018-10-01 (주)솔트웍스 문서 통합 관리 시스템을 위한 동기화 장치
CN108959095B (zh) * 2018-07-12 2021-11-23 中国工程物理研究院计算机应用研究所 基于XML Schema验证XML文档的方法
WO2024092553A1 (en) * 2022-11-02 2024-05-10 Huawei Cloud Computing Technologies Co., Ltd. Methods and systems for model generation and instantiation of optimization models from markup documents

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6558431B1 (en) 1998-09-11 2003-05-06 Macromedia, Inc. Storing valid and invalid markup language in strict and relaxed tables respectively
US20040143792A1 (en) 2000-03-16 2004-07-22 Demopoulos Steven J. Redline extensible markup language (XML) schema

Family Cites Families (13)

* 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
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
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6558431B1 (en) 1998-09-11 2003-05-06 Macromedia, Inc. Storing valid and invalid markup language in strict and relaxed tables respectively
US20040143792A1 (en) 2000-03-16 2004-07-22 Demopoulos Steven J. Redline extensible markup language (XML) schema

Also Published As

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

Similar Documents

Publication Publication Date Title
KR100833538B1 (ko) Xml 문서의 검증 및 스키마 위반을 보고하기 위한시스템 및 방법
US9256698B2 (en) System for creating and editing mark up language forms and documents
US7730394B2 (en) Data binding in a word-processing application
US7197510B2 (en) Method, system and program for generating structure pattern candidates
US7945590B2 (en) Programmability for binding data
US7991805B2 (en) System for viewing and indexing mark up language messages, forms and documents
US7617234B2 (en) XML schema for binding data
EP3358470B1 (en) Method of preparing documents in markup languages
US20070258100A1 (en) Document Processing Device and Document Processing Method
JPWO2005098663A1 (ja) 情報管理装置
US20090083300A1 (en) Document processing device and document processing method
US20070198915A1 (en) Document Processing Device And Document Processing Method
EP1768034A1 (en) Document processing device and document processing method
US20080005662A1 (en) Server Device and Name Space Issuing Method
US20080141112A1 (en) Document Processing Device and Document Processing Method
US20090287994A1 (en) Document processing device and document processing method
US20080005085A1 (en) Server Device and Search Method
US20070220439A1 (en) Information Management Device
JP4417384B2 (ja) 文書処理装置および文書処理方法
US20090083620A1 (en) Document processing device and document processing method
US20080147957A1 (en) Archiver Device, Data Acquisition Device, and Data Acquisition Method
US20090222447A1 (en) Data processing apparatus and data processing method
US20080065979A1 (en) Document Processing Device, and Document Processing Method
EP1936491A1 (en) Data processing device

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130416

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140417

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee