KR20080066943A - 부분적 xml 검증을 수행하기 위한 방법, 관련 폼으로저장된 xml 문서 내의 데이터를 수정하기 위한 시스템및 컴퓨터 판독가능 매체 - Google Patents

부분적 xml 검증을 수행하기 위한 방법, 관련 폼으로저장된 xml 문서 내의 데이터를 수정하기 위한 시스템및 컴퓨터 판독가능 매체 Download PDF

Info

Publication number
KR20080066943A
KR20080066943A KR1020087011026A KR20087011026A KR20080066943A KR 20080066943 A KR20080066943 A KR 20080066943A KR 1020087011026 A KR1020087011026 A KR 1020087011026A KR 20087011026 A KR20087011026 A KR 20087011026A KR 20080066943 A KR20080066943 A KR 20080066943A
Authority
KR
South Korea
Prior art keywords
schema
xml document
xml
document
validation
Prior art date
Application number
KR1020087011026A
Other languages
English (en)
Inventor
드라간 토믹
샨카르 팰
기드온 샬러
이스트반 쎄리
웨이 유
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20080066943A publication Critical patent/KR20080066943A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/226Validation
    • 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]

Abstract

관련 데이터베이스에 저장된 XML 문서의 일부분을 수정하는 단계가 그 문서상의 연산을 연산자 트리로 전환하는 단계를 포함한다. 연산자 트리는 수정된 데이터를 위한 스키마의 제1 부분에 대응하는 제1 연산자 및 수정된 데이터를 위한 스키마의 제2 부분에 대응하는 제2 연산자를 포함한다. 스키마의 제1 및 제2 부분은 전체 문서 스키마로부터 추출된다. 스키마의 제1 부분을 갖는 제1 연산자를 사용하여 수정된 데이터의 제1 검증이 수행된다. 그 다음에, 스키마의 제2 부분을 갖는 부분적으로 검증된 XML 문서 부분의 제2 검증이 제2 연산자를 사용하여 수행된다. XML 문서 제약조건이 검증되고 수정된 데이터는 XML 문서로 병합되므로, 특정 XML 스키마 유형이 수정된 데이터 내에 없는 경우에는 XML 문서의 전체 검증을 회피한다.
XML 문서, 연산자 트리, XML 스키마, 검증, XML 문서 제약조건

Description

부분적 XML 검증을 수행하기 위한 방법, 관련 폼으로 저장된 XML 문서 내의 데이터를 수정하기 위한 시스템 및 컴퓨터 판독가능 매체{PARTIAL XML VALIDATION}
XML(eXtended Markup Language)은 데이터 태깅(tagging)의 표준 방식을 제공하여 데이터가 웹 브라우저 등에 의한 각종 방식으로 판독 및 해석될 수 있게 한다. XML 문서들은 데일리 트랜잭션에서 광범위하게 사용된다. XML 스키마는 XML 데이터 모델을 위한 스키마 정의 언어를 정의하는 W3C(World Wide Web Consortium) 표준이다. 스키마 정의는 XML 인스턴스 문서의 내용 및 구조를 검증하는 데 사용될 수 있다.
일반적으로, XML 스키마는 XML 문서에서 사용되는 데이터 포맷을 정의하는 데 사용된다. XML 문서가 업데이트되면, 업데이트된 정보는 연관된 스키마에 의해 문서상에 위치되는 제약조건에 따라야만 한다. XML 스키마 문서는 관련 데이터베이스 시스템의 테이블 및 행과는 다른 방식으로 표현되는 XML 문서이다. 정확성을 위해 XML 쿼리를 체크하고 XML 쿼리 및 XML 저장을 최적화하는 데 XML 스키마 문서에 공급된 유형 정보가 또한 사용될 수 있다. 따라서 XML 문서에 위치될 데이터가 스키마 제약조건을 만족하는 지의 검증은 중요한 고려사항이다. 몇몇 예에서, XML 문서의 크기가 클 수 있다. 많은 수의 고객들이 그들의 고객 번호와 하나 이상의 주소 및 기타 관련 고객 정보와 함께 열거되는 고객 목록을 예로 들 수 있다. 이 정보는 일 위치로부터 다른 위치로 XML 포맷을 통해 전달하는 데 유용할 수 있지만, 또한 관련 데이터베이스를 통해 정보를 편집 또는 사용하는 데에도 유용하다. 관련 데이터베이스에 저장된 XML 데이터는 BLOB(binary large object)로서 저장될 수 있다. 따라서, 고객 목록에 업데이트가 필요한 경우에는, 관련 데이터베이스 저장소에 저장된 데이터의 구조도 또한 스키마와 일치해야만 한다.
관련 구조에 XML 스키마 문서를 저장하는 능력을 가지면, 적어도 다음의 장점이 있다. XML 스키마 문서를 파싱(parsing)하는 대신에 관련 인덱스 구조를 사용하여 유형 정의가 효과적으로 검색될 수 있다. XML 스키마 문서의 적절한 부분(예컨대, 고객유형(CustomerType) 정의)이 XML 인스턴스의 검증을 위해 메모리 버퍼에 선택적으로 로드되어 상당한 성능 개선을 제공할 수 있다. 또한 SQL(Structured Query Language) 뷰가 관련 사용자의 관련 저장소에 제공되어 저장된 XML 스키마 문서에 관해 알 수 있다. 그러나, SQL 및 XML 사이에서 데이터를 조작하기 위한 기술은 제한적이며, 그 중 몇몇은, 문서의 일부분에만 업데이트가 이루어지는 경우에 전체 XML 문서의 검증 때문에 SQL 성능에의 과중한 사용(heavy toll)을 강요한다.
관련 데이터베이스에 저장된 XML 문서의 일부분만을 수정하는 데에는 일반적으로 전체 XML 문서 검증의 댓가를 초래한다. 본 발명은 부분적 검증만을 수행하는 기술을 제공한다. 부분적 검증은 XML 문서에서는 수정되고 전체 문서에서는 수정되지 않을 데이터에 대해서 수행된다. 본 방법은 문서 검증을 연산자 트리로 전환하는 단계를 포함한다. 연산자 트리는 XML 스키마에 따른 수정된 데이터의 검증을 위한 제1 부분에 대응하는 제1 연산자 및 XML 스키마에 따른 수정된 데이터의 부모(parent) 부분의 검증에 대응하는 제2 연산자를 포함한다. 스키마의 제1 및 제2 부분은 전체 문서 스키마에서 추출된다. 스키마의 제1 부분에 제1 연산자를 사용하여, 수정된 데이터의 제1 검증인 깊은(deep) 검증이 수행된다. 다음으로는, 스키마의 제2 부분에 제1 검증의 결과인 제2 검증인 얕은(shallow) 검증이 제2 연산자를 사용하여 수행된다. XML 문서 제약조건이 검증되고 수정된 데이터가 XML 문서로 통합되므로, XML 문서의 전체 검증은 회피한다.
도 1은 본 발명의 양태에 따른 관련 데이터베이스 내의 XML 데이터의 예시적인 포맷을 도시하는 도면;
도 2는 본 발명의 양태에 따른 부분적 검증을 위한 연산자 트리를 도시하는 기능 블록도;
도 3은 본 발명의 양태에 따른 예시적인 XML 문서 트리 구조를 도시하는 도면;
도 4는 본 발명의 양태에 따른 관련 포맷으로 된 XML 스키마 문서를 갖는 시스템의 요소를 도시하는 블록도;
도 5는 본 발명의 양태에 따른 스키마 컴포넌트를 저장하는 데 사용되는 메타-데이터 테이블을 도시하는 도면;
도 6은 본 발명의 양태에 따른 도 5에 도시된 메타-데이터 테이블을 파퓰래이팅(populating)하는 단계를 도시하는 예시적인 흐름도;
도 7은 본 발명의 양태에 따른 개선된 관련 연산자 트리를 생성하는 XML 데이터상의 데이터 수정 문구 또는 쿼리의 컴파일을 도시하는 기능 블록도;
도 8은 본 발명의 양태에 따른 XML 문서의 부분적 검증을 수행하는 예시적인 흐름도;
도 9는 본 발명의 양태가 실현될 수 있는 예시적인 컴퓨팅 환경을 도시하는 도면.
본 발명의 일 양태에서는, 관련 데이터베이스 구조로의 XML 스키마 데이터의 트랜슬레이션을 위한 메타데이터 테이블의 개선된 캐싱(caching)을 제공하는 방법이 개시된다. 일 SQL 구현예에서는, 입력(type)된 XML 열(XLM Column)이 수정 방법을 통해 수정될 때에, 새로운 값의 순응(conformity)을 보장하기 위해 발생하는 검증이 있다. 이 검증은 쿼리 실행의 일부분이며 따라서 성능면에서 그 효과가 최소한이 되는 것은 필수적이다.
전통적으로 입력된 XML 문서의 수정을 허용하는 애플리케이션은 DML(Data Modification Language) 연산의 끝까지 문서 전체를 검증하도록 할 것이다. 일부 SQL 기반 머신에서, 이는, XML 문서가 매우 클 수 있으므로(2GB 까지), 드라마틱한 성능 히트(hit)를 가져올 수 있다. 성능 저하를 경감하기 위해, 알고리즘 및 연산자가 사용될 수 있고 이는 쿼리 실행 시간에, XML 데이터 검증이 절대적으로 최소 한의 XML 서브트리를 시험하고, XML 문서의 무결성을 전체적으로 계속 유지하고 있음을 보장할 것이다.
예로서, XML 포맷의 고객들의 목록을 다음과 같이 고려한다:
<listOfCustomers>
<customer CID="123">
<billingAddress>
<street> Any Street </street>
<zipCode> 98052 </zipCode>
</billingAddress>
</customer>
</listOfCustomers>
이 데이터의 포맷은 목록에서 사용되는 데이터 유형을 정의하는 스키마에 따를 수 있다. XML 데이터 컨텐츠 내의 각각의 데이터 필드를 정의하는 데 있어 스키마 내에서 사용되는 제약조건이 존재한다. 추가 주소가 추가될 경우에는, 추가 주소 데이터는 또한 XML 포맷의 데이터를 정의하는 스키마에 따라야만 한다. 추가된 주소, 예를 들면, 배송지(shipping address) 엔트리가 다음과 같이 XML로 표현될 수 있다:
<list of customers>
<customer CID="123">
< billing address>
<street> Billing Street </street>
<zip code> 98052 </zip code>
</billing address>
<shippingAddress>
<street> Shipping Street </street>
<zip code> 98052 </zip code>
</shippingAddress>
</customer>
</list of customers>
위의 예시적인 XML은 "123"이란 고객 식별자(CID)에 대한 것이다. 그러나 그러한 엔트리들이 수천 개 존재할 수 있다. 관련 데이터베이스에 위치하는 경우에는, 단 하나의 주소 엔트리만을 위해 요구되는 재-검증(re-validation)은 데이터베이스 내의 모든 고객들의 전체 엔트리들의 재-검증을 강요할 수 있다. 장점은 모든 수천 개의 요소들의 재-검증을 회피한다는 점일 것이다. 일반적으로는, 스키마가 그 컨텐츠에 배송지 요소의 추가를 허용하고 이 배송지 요소는 올바른 구조로 되어 있음을 보장함으로써 특정한 추가된 새 배송지 요소가 유효하다고 확인하는 정도면 충분하다.
상술한 조건을 보장하기 위해 이 예에서는 "배송지(shippingAddress)" 요소의 형제들(siblings) 및 그 부모("고객(customer)" 요소)를 보는 것이면 충분하다. 쿼리 실행 머신(machinary)이, 컨텐츠 없이, 삽입된 요소의 부모 및 그 형제들을 나타내는 기록만을 흐르게(flow) 할 수 있고, 검증 연산자가 무엇이 검증되고 있는지를 알려줄 수 있다면, 일 접근법은 문서 전체를 재-검증하지 않고도 문서 전체의 검증을 보장할 최소수의 연산자를 실행하는 것이다. 이 특정한 시나리오에서는, 쿼리 실행 동안에, 검증 연산자는, 문서 전체가 검증되어야 하는 경우에 해당하는 잠재적으로, 수천 개의 행이 아니라, 20-30 개의 행을 처리할 것이다.
본 발명의 일 실시예에서는, 도 1에 도시된 바와 같이, XML 쿼리 처리는, 관련 데이터베이스 내에 BLOB(Binary Large Object)로서 자신의 포맷으로 XML 데이터를 저장하는 단계를 포함할 수 있다. XML 데이터는, 사전 정의된 형태의 행세트(rowset)로의 데이터의 주문형(on demand) 슈레딩(shredding)에 의해, 또는 이미 사전에 슈레딩된 XML 데이터의 행세트인 XML 인덱스를 액세스함으로써 관련 폼에 위치될 수 있다. 도 1은 두 개의 열(1차 키 열(110) 및 데이터 열(120))을 갖는 테이블(100)을 도시한다. 이 예에서는, 고객 ID 123에 해당하는 데이터 열에 나타나는 BLOB 데이터가 청구지(billing address)만을 포함한다. 그러나 고객 ID 456에 해당하는 데이터 열 BLOB는 청구지와 배송지 양쪽 모두를 포함한다. 새로운 배송지 데이터와 같은, 고객 ID 123에 대한 추가 정보가 요구되는 경우에는, BLOB는 업데이트되어야 하겠지만, XML 문서가 그 스키마에 따라 또한 업데이트되어야 할 것이다. 보통의 경우에, 이는 전체 문서에 대한 XML 데이터의 검증을 수반할 것이다. 그러나 이는 문서가 매우 큰 경우에는 바람직하지 않다. 본 발명의 일 양태에서는, 관련 XML 스키마의 부분만이 사용되는 경우에는 전체적인 문서 검증이 회피될 수 있다.
도 2는 부분적 검증에 의해, XML 삽입 또는 삭제 데이터 연산의 실행을 설명하는 쿼리 서브트리의 흐름도이다. 도 2의 쿼리 서브트리는 관련 데이터베이스에 저장된 XML Blob으로의 새로운 정보의 엔트리까지로 흐르는, 연산을 도시한다.
도 2를 참조하면, 고객 ID 123의 배송지와 같은, 입력될 새로운 데이터(즉, 새로운 XML 엔터티)가 획득되어(205), 검증 요청이 이루어진다(215). 검증을 받을 데이터 및 삽입 노드 정보(210)는 깊은 검증 연산(220)을 수행하는데 필요하다. 깊은 검증은 완전한 논리적 XML 엔터티(205)를 검증받게 할 순환 연산이다. 예를 들면, 깊은 검증은 <배송지>의 태그에 적용할 수 있는 선택된 스키마 제약조건으로부터의 정보를 사용하여, 그것들을 새로운 XML 엔터티의 특정 데이터에 적용하고, 스키마의 깊은 제약조건이 새로운 XML 데이터에 의해 만족되는지의 검증을 한다. 삽입 연산자(225)는 그러면, 관련 데이터베이스에 의해 사용될 수 있는 폼에 새로운 정보를 사전-삽입하는 데 사용될 수 있다.
얕은 검증 연산자(245)는 삽입 노드 정보(210)와 마찬가지로 새로운 XML 엔터티의 부모 노드, 그리고 스키마 정보(240) 양쪽 모두를 요구한다. 본원에서는, 수정되고 있는 서브 트리의 컨텐츠를 검증받게 하는데 필요한 최소한의 XML 데이터가 사용된다. 이 제한된 스키마 정보를 획득하기 위해, 관련 스키마 정보의 추출이 필요하다. 이 추출은 아래에서 더 설명된다. 그러나, 간략하게는, 쿼리 엔진은 삽입되거나 삭제되고 있는 요소들의 부모 및 그것들의 형제를 나타내는 행들만을 페치(fetch)할 것이고, 얕은 검증(250) 요청을 통해 이를 흘려보낼 것이다. XML 프로세서의 쿼리 실행 머신은 XML 전용 연산자를 이용하여 증대(augment)된다. 깊은 검증은 특수 목적 검증기에 의해 수행된다. 일 실시예에서는, 이 검증기가 복잡한 컨텐츠로 순환하지 않고 모든 단순한 데이터 유형들을 무시할 하나의 상태 머신으로 구성될 수 있다. 일단 블록(225)의 출력에서 깊은 검증이 수행되고 블록(250)의 출력에서 얕은 검증이 수행되면, 새로운 데이터는 기존의 데이터와 병합될 수 있다(260). 검증 연산자는 XML 데이터를 나타내는 관련 입력에 관하여 XML 검증을 수행할 수 있다. 깊은 검증을 실행하면 새로운 데이터의 유효성이 보장된다. 새로운 데이터의 부모의 얕은 검증은 문서의 무결성이 유지된다고 보장한다. 양쪽이 일단 완료되면, 부분적 검증이 수행된다. 부부적 검증은 시간소모적(time-intensive)일 수 있는 전체 문서의 검증을 수행하지 않고 새로운 데이터의 엔트리를 허용한다.
부분적 XML 검증은 대부분의 XML 스키마 구성에 대해 작용한다. 그러나, ID/IDREF 및 key/keyref와 같은, 일부 XML 스키마 제약조건은, 그것들의 범위로서 전체 XML 인스턴스를 갖는다. 그래서, 수정된 데이터 또는 그것의 부모 부분의 검증은 적절치 못하다. 수정된 데이터 내에서의 이러한 XML 스키마 제약조건의 발생은 전체 XML 문서로 하여금 검증을 받게 할 수 있다. 예를 들면, ID는 xs(ID 유형 속성 또는 요소)를 사용하여 식별자를 요소와 연관시키도록 허용하는 XML 스키마 피쳐이다. IDREF는 그러한 일 ID에 대한 참조이다. 본 발명의 일 양태에서는, ID는 단일의 XML 인스턴스(또는 문서 또는 BLOB) 내에서 고유하다. 따라서, <배송지>가 ID 속성을 포함하는 경우에는, ID 값은 XML 인스턴스 내에서 고유하게 유지된다. 유사하게는, <배송지>가 IDREF를 특정하려면, 스키마 검증은 IDREF의 타 겟(ID)이 동일한 XML 인스턴스 내에 존재함을 보장해야만 한다. IDREFS 는 IDREF의 시퀀스이다. IDREF 및 IEREFS 양쪽 모두 딸려있는 참고를 포함하지 않아야 한다. 즉, 비-존재 타겟(ID)을 참조해야 한다. "Key"는 키 값을 정의하고 "keyref"는 키 값에 대한 참조를 정의한다. 이들은 키 값이 XML 인스턴스 내에서 고유하고 keyref는 기존의 키 값을 참조한다는 보장을 요구한다. 유사하게는, XML 인스턴스 내에서 고유해야 하는 값들에게는 "고유한" 제약조건이 정의될 수 있다. 이들 모두는 새로운 XML 엔터티 내에서 고유성 체크 및 참조된 노드들 또는 값들의 존재를 요구한다.
본 발명의 일 양태는 부분적 검증에 필요한 스키마의 일부를 추출하기 위한 절차의 사용이다. 명칭이 Memory Cache Management in XML/Relational Data인, 공동 소유된 미국 특허 출원 제11/185,310호(2005년 7월 20일 출원)는 스키마의 관련 부분을 추출하는 방법을 교시하는 데, 본원에 그 전문이 포함되어 있다. 스키마의 관련 부분은 캐시에 저장되어 있다.
특히, XML 문서를 위한 XML 입력 스키마는 다수의 관련 테이블로 갈라지고, 가장 빈번히 사용되는 스키마의 부분만이 선택적으로 로드 및 캐시된다. 또한, 관련 레이아웃은 몇 가지의 1차 및 2차 인덱스를 포함하기 때문에, 스키마의 로딩 또한 빠를 것이다. XML 스키마가 테이블로 갈리기 때문에, XML 인스턴스 검증은 검증을 수행하는 데 필요한 컴포넌트들만을 로딩한다. 검증 중에, 스키마의 사용되는 부분만이 로딩 및 캐싱된다. 스키마 캐시는 XML 인스턴스 검증을 위해 최적화된 XML 스키마의 인-메모리(in-memory) 제시를 저장한다. XML 스키마 컴포넌트들 은 판독 전용 개체로서 메타데이터로부터 주 메모리로 로딩되어서, 다수의 사용자들이 검증을 위해 인-메모리 개체를 사용할 수 있다. XML 스키마가 연산 중에 변하는 경우에는, 스키마 캐시 엔트리들이 무효화(invalidated)된다.
요청된 스키마가 관련 테이블 내에 일단 위치하면, 유형(Type), 속성(Attribute), 또는 요소(Element) 정의에 관련하는 부분들이 XSD 타입 캐시에 추가될 것이다. 구현예에서, 스키마 가져오기(schema import)로부터의 역 메커니즘이 사용된다(우선, 심볼 테이블이 생성되고, 그 후 캐시된 검증 구조들이 유도됨).
도 4는 캐시 및 메모리 관리를 갖는 트랜슬레이션을 용이하게 하는 시스템(400) 및 그것의 내부 모습을 도시한다. 트랜슬레이션 컴포넌트(402)는 관련 데이터 구조에 대한 XML 데이터의 인터페이싱을 용이하게 하기 위해 선택적으로 액세스 될 수 있는 메타데이터의 테이블로 스키마 구조(예컨대, XML 스키마)를 분해함으로써 트랜슬레이션 기능을 제공한다. 사용자는 XML 스키마를 따르는 데이터를 제공한다. 시스템(400)은 사용자-공급 데이터가 XML 스키마를 실제로 따르는지를 검증한다. 다시 말해, 데이터베이스 엔진이 사용자-공급 데이터 및 스키마 양쪽 모두를 주시하고, 데이터를 어떻게 효과적으로 검증할지를 결정한다. 데이터는 원래의(native) 또는 원시(raw) 이진 폼(binary form)으로 저장되어 있지 않다. 캐시 메모리 및 메모리 관리 인터페이스(MMI) 컴포넌트(404)는 필요한 XML 컴포넌트들 만을 빠르게 액세스하기 위해 메타데이터의 테이블을 캐시 메모리에 저장하는 것을 돕는다. 검증 컴포넌트(406)는 스키마의 사용되는 부분만을 로딩 및 캐싱하도록 용이하게 한다. 뷰 컴포넌트(408)는 사용자로 하여금 표모양 포맷의 내부 메 타데이터 테이블을 보게 해준다. 비록 도 4에는 관련 맵핑을 위해 입력 XML 스키마와 관련하여 캐시 및 메모리 관리가 도시되었지만, 개시되는 캐싱 관리 아키텍쳐는 그것에 제한되는 것이 아니라, 임의의 입력 스키마와 관련 구조 간의 트랜슬레이션의 응용이 발견됨에 유념해야 하겠다.
XML 스키마들이 테이블로 갈라지기 때문에, XML 인스턴스 검증은 검증을 수행하는 데 필요한 컴포넌트들만을 로딩한다. 검증 동안에, 스키마의 사용되는 부분만이 로딩 및 캐싱된다. 스키마 캐시는 XML 인스턴스 검증을 위해 최적화된 XML 스키마의 인-메모리 제시를 저장한다. XML 스키마 컴포넌트들을 판독전용 개체로서 메타데이터로부터 주 메모리로 로딩되어서 다수의 사용자들이 검증을 위해 인-메모리 개체를 사용할 수 있다. 연산 중에 XML 스키마가 변화하는 경우에는, 스키마 캐시 전체가 무효화된다.
지속되는 데이터의 최종 파싱 동안에는, 노블(novel) 코드가 XML 스키마 유형들의 구조를 설명하는 메타데이터 테이블을 파퓰레이트 한다. 도 5는 XML 스키마 데이터(502)가 갈라져 들어가 있는 테이블의 시스템(500)을 도시한다. 일 구현예에서, XML 스키마 데이터(502)는 몇 개의 테이블: 컴포넌트 테이블(504), 참조 테이블(506), 위치지정 테이블(508), 패세트(facet) 테이블(510), 및 퀄리파이드 네임(qualified name) 테이블(512)) 내의 매타데이터로서 지속(persist)된다. 식별자(예를 들면, 컴포넌트 ID)를 그것의 컴포넌트들 각각에 할당하기 위해 ID 컴포넌트(514)는 XML 스키마 데이터(502)에 인터페이싱한다. 캐시 메모리(516)는 각각의 테이블(504, 506, 508, 510, 및 512)에 인터페이싱하여, 임의의 단일한 테이블 또는 테이블들의 조합의 컨텐츠에 액세스하여 그 내부에서 지속함으로써 관련 데이터베이스(518)에의 개선된 데이터 액세스를 제공할 수 있다.
따라서, 도 6은 XML 스키마 데이터를 테이블로 처리하는 방법론(600)을 도시한다. 단계(601)에서, XML 스키마 데이터는 ID가 할당된 관련 XML 스키마 컴포넌트들로 분해된다. 단계(602)에서, XML 스키마는 테이블 내의 메타데이터로서 지속된다. 단계(604)에서, 검증 프로세스는 사용되고 있는 필요한 스키마 컴포넌트들만을 로딩 및 캐싱한다. 단계(606)에서, 테이블들은 XML 스키마 유형들의 구조를 설명하는 데이터들로 파퓰레이트된다.
본 발명의 일 양태에서는, 노드들이 XML 문서 내에서 식별된다. 노드들의 식별은 깊은 및 얕은 검증의 프로세스에서 XML 문서상의 쿼리 및 데이터 수정의 연산 트리로의 트랜슬레이션 및 노드 특정 정보의 후속 삽입을 가능하게 한다. 발명의 명칭이 System And Method For Compiling An Extensible Markup Language Based Query인 공동 소유된 미국 특허 출원 제10/803,283호(2004년 3월 18일 출원)는 쿼리 프로세서에 의한 실행을 위해 XML 데이터상의 쿼리 및 데이터 수정을 연산자 트리로 전환하는 방법을 교시하고, 본원에 그 전문이 참조로서 포함되어 있다.
본 발명의 일 양태는 XML 문서의 트리 구조로의 트랜슬레이션(translation)을 포함한다. 이러한 구조는 도 3에 도시된다. XML 구조의 트리로의 트랜슬레이션은 이하에서 더 설명될 것이다. 트리 구조는 태그(tag), 데이터 및 제약조건들이 노드 구조에 반영되어 있는 XML 문서의 구조를 그대로 비추고 있다. 도 3의 구조에서는, 부모 및 형제 노드들(390)이 도시된다. 최상위 노드(371)는 노드 들(373, 380, 및 374)에 대한 부모 노드인 서브노드(372)를 갖고, 노드(374)는 노드들(376 및 378)에 대한 부모 노드이다. 노드(380)는 노드들(382 및 384)에 대한 부모 노드이다. 노드(384)는 노드들(385 및 386)에 대한 부모 노드이고, 노드(385)는 노드들(387 및 388)에 대한 부모 노드이다. 본 발명의 양태에서는, 노드(380)가 트리 구조에 나타나지는 않지만, 그 구조에 추가되는 것이 바람직한 경우에는, XML 문서를 정의하는 XML 스키마의 구조 및 제약조건이 관찰되어야 한다. XML 문서가 컴파일되는 경우에 노드 구조가 XML 문서를 위해 생성될 수 있다.
간략하게는, XML 기반의 쿼리를 컴파일하기 위한 방법은 데이터베이스 엔진 프론트 엔드에 의한 XML 표현을 수신하는 단계를 포함한다. 쿼리는 관련 쿼리 파서(parser)에 의해 파싱되고 내포된 XML 표현은 XML 파서로 전송된다. XML 표현은 XML 파서에 의해 파싱되어 추상적 구문(syntax) 트리를 산출한다. 추상적 구문 트리는 그 후 XML 연산 생성기로 전송되는데, 이는 추상적 구문 트리를 XML 알지브라 연산자를 포함하는 통합된 트리로 변환한다. 통합된 트리는 그 후 XML 알지브라이저로 전송되는데, 이는 통합된 트리를, 개선된 관련 알지브라 연산을 포함하는 관련 트리로 전환한다. 관련 트리는 폐쇄형(enclosed) 관련 쿼리를 위해 생성되는 로그-op 트리로 접목된다. 로그-op 트리는 쿼리 프로세서에서의 쿼리의 실행 및 최적화를 위해 쿼리 프로세서로 전송되는 쿼리 플랜을 낳는다.
도 7을 참조하면, XML 표현(715)을 포함하는 쿼리(705)는 쿼리(705)를 실행하기 위한 쿼리 플랜(755)을 생성하기 위해 프론트 엔드(710)에 의해 수신 및 조작될 수 있다. 관련 추상적 구문 트리(725a)를 산출하기 위해 쿼리(705)를 파싱하는 것 이외에도, 관련 파서(722)가 쿼리(705)로부터 XML 파서(732)로 XML 표현(715)을 전달할 수 있다. XML 파서(732)는 그러면 XML 표현(715)을 파싱하여 XML 추상적 구문 트리(725b)를 생성한다.
XML 알지브라이저(736)는 통합된 트리 구조(735b) 내의 XML 연산을 개선된 관련 연산을 포함하는 관련 로그-op 트리(745)로 전환한다. XML 알지브라이저(736)는 통합된 트리(735b)를 순환적으로 트래버스(traverse)한다. 통합된 트리(735b)의 각각의 노드에 대해, 대응하는 관련 서브트리가 생성된다. 각각의 이러한 관련 서브트리는 그것의 관련되는 통합된 트리 노드에서 XML 알지브라 연산을 수행하는데 요구되는 수많은 개선된 관련 알지브라(algebra) 연산을 포함한다. 관련 서브트리들은 그 후 관련 트리(745)에 삽입된다. XML 연산 생성기(734)는 XML 추상적 구문 트리(725b)를 XML 알지브라 연산을 포함하는 XML 통합 트리 구조(735b)로 변환한다.
XML 알지브라(736)는 통합 트리 구조(735b) 내의 XML 연산을 관련 로그-op 트리(745)로 전환한다. 종래의 관련 알지브라 연산들은 계층적 데이터를 액세스하는 XML 연산을 설명하기에 부적합하다. 따라서, 본 발명에 따른 XML 알지브리제이션은 XML 연산들을 개선된 관련 알지브라 연산들로 전환한다. 관련 로그-op 트리(745)는 그 후 쿼리 플랜(755)을 위한 기초가 된다.
도 8은 본 발명의 양태들을 갖는 예시적인 방법(800)에 대한 흐름도를 도시한다. 처음에는, 쿼리 프로세서를 포함하는 컴퓨팅 장치가 XML 문서를 수정하라는 요청을 수신한다(단계 810). XML 문서에 대한 수정은 XML 문서 내의 데이터의 추 가, 삭제, 또는 수정일 수 있다. XML 문서는 문서 내의 데이터에 대한 포맷 및 데이터 컨텐츠 제약조건을 정의하는 XML 스키마에 의해 정상적으로 지배된다. 본 발명의 일 양태에서는, XML 데이터는 관련 포맷(즉, 관련 데이터베이스 포맷)으로 저장되지만, XML 문서에 대한 임의의 유효한 수정은 그 문서에 대한 XML 스키마의 제약조건에 따른다.
사전에, 또는 방법(800)의 일부로서, XML 문서는 연산자 트리 구조로 전환된다(단계 820). 연산자 트리 구조의 전환은 XML 문서를 추상적 구문 트리로 파싱하는 단계, 추상적 구문 트리를 통합된 트리로 변환하는 단계, 및 통합 트리를 연산자 트리 구조로 전환하는 단계를 포함한다.
수정된 XML 데이터는 단지 데이터 및 그것의 속성(때때로는 메타데이터에 저장되어 있음)을 XML 문서 내 바람직한 위치와 연관되는 스키마의 특정 부분과 비교함으로써 검증될 수 있다. 따라서, XML 스키마의 제1 부분이 추출된다(단계 830). 이 제1 부분은 수정될 데이터와 연관된다. 깊은 검증이 수행될 수도 있다(단계 840). 깊은 검증은 삽입된 데이터의 검증이다. 깊은 검증은 XML 데이터의 제1 부분의 포맷 및 제약조건에 비교하여 수정된 부분을 체크한다. 깊은 검증은 수정된 데이터의 완전한 논리적 엔터티를 순환적으로 검증하는 것을 포함한다. 따라서, 깊은 검증은 수정된 데이터 엔터티별로(예를 들면, 단어별 또는 숫자별로) 이루어질 수 있고 XML 스키마의 추출된 제1 부분에 비교하여 데이터를 검증할 수 있다. 일단 깊은 검증이 완료되면, 부분적 검증이 완료된다. 부분적 검증은 XML 스키마의 제1 부분에 비교하여 이루어지는 수정된 데이터만의 검증이다.
그러나, 부모 제약조건이 또한 수정될 데이터의 검증에 제한을 둘 수 있다. 이러한 부모 제약조건은 XML 스키마의 제1 부분과 관련되는 XML 스키마의 부모 부분에서 실시될 수 있다. 따라서, XML 스키마의 제2 부분이 추출된다(단계 850). 이 제2 부분은 XML 스키마의 제1 부분인 부모 부분이다. XML 문서 스키마의 일부분을 추출하는 단계는 XML 스키마를 스키마 컴포넌트들의 테이블로 분해하는 단계 및 캐시에 테이블을 저장하는 단계를 포함한다. 테이블은 관련 포맷으로 저장될 수 있다.
얕은 검증이 수행된다(단계 860). 얕은 검증은 부분적 검증 결과를 스키마의 제2 부분에 비교함으로써 검증 프로세스를 완료한다. 스키마의 제2 부분은 스키마가 수정된 데이터에 대해 가지고 있는 부모 데이터 제약조건을 나타낸다. 비록 부분적 검증 결과, 수정된 데이터 포맷 및 컨텐츠가 스키마의 제1 부분에 대해 정확하다고 나타낸다 해도(깊은 검증), 얕은 검증이, 수정이 제2, 즉 부모 스키마 정보의 하이 레벨 제약조건과 맞는지를 체크한다. 예를 들면, 얕은 검증은 부모 스키마 정보가 수정된 데이터의 다수의 발생, 유형 및 포맷을 허용한다고 확인할 수 있다.
얕은 검증이 부모 스키마 제약조건에 맞지 않는 경우에는(단계 870), 본 방법은 수정된 데이터를 거절함으로써 종료한다. 수정된 데이터가 제1 및 제2 추출된 XML 스키마에 적합한 경우에는, 문서의 수정된 부분은 전체 XML 스키마로 병합될 수 있다(단계 880). 이 병합이 관련 포맷으로 저장된 XML 데이터의 수정일 수 있음에 유념해야 하겠다. 다른 방법의 실시예에서, XML 스키마의 제2 부분을 추출 하는 단계(단계 850)는, XML 스키마의 제2 부분의 식별에 관한 사전 지식이 단계(830)에서 공지되는 경우에, XML 스키마의 제1 부분을 추출하는 단계와 결합될 수 있다(단계 830).
몇몇 예에서, 방법(800)은 단계(880)에서 완료될 수 있다. ID/IDREF 또는 key/keyref의 예가 존재하는 등의 다른 예에서는, 보다 광범위한 검증이 필요할 수 있다(단계 890). 수정된 부분 내에 추가의 참조가 존재하지 않는 경우에는, 프로세스가 중단된다. 수정된 부분에 추가의 제약조건이 있는 경우에는, 특수 XSD 컴포넌트들을 위한 문서 전반의 검증이 수행된다(단계 895).
예시적인 컴퓨팅 장치
도 9 및 다음의 논의를 본 발명이 구현되기에 적합한 컴퓨팅 시스템 환경의 간략한 일반적 설명을 제공하기 위한 것이다. 범용 컴퓨터가 아래에 설명되고 있지만, 이는 하나의 단일한 프로세서 예는 아니며, 복수의 프로세서를 포함하는 본 발명의 실시예는 네트워크/버스 상호동작성(interoperbility) 및 상호작용을 갖는 클라이언트 등의, 기타 컴퓨팅 장치로 구현될 수 있다. 따라서, 본 발명의 실시예는 매우 적거나 최소한의 클라이언트 리소스가 내포된 네트워크된 호스트형 서비스의 환경(예컨대, 클라이언트 장치가, 어플리언스에 위치한 개체, 또는 기타 컴퓨팅 장치 및 개체 등과 같은, 네트워크/버스에 대한 인터페이스의 역할을 할 뿐인 네트워크된 환경)에서 구현될 수 있다. 본질적으로, 데이터가 저장되고 검색될 수 있는 곳이라면, 어느 곳이라도 동작에 바람직한 또는 적합한 환경이다.
비록 요구되지는 않지만, 본 발명의 실시예는, 장치 또는 개체에 대한 서비 스 개발자에 의해 사용될 목적으로, 및/또는 애플리케이션 소프트웨어 내에 포함되는, 운영 체제를 통해 구현될 수도 있다. 소프트웨어가, 클라이언트 워크 스테이션, 서버, 또는 기타 장치 등의, 하나 이상의 컴퓨터에 의해 실행되는 프로그램 모듈과 같은, 컴퓨터-실행가능 명령어의 일반적 문맥으로 설명될 수 있다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 개체, 컴포넌트, 데이터 구조 등을 포함한다. 일반적으로, 프로그램 모듈의 기능은 각종 실시예에서 바람직하도록 조합 또는 분산될 수 있다. 또한, 당업자는 기타 컴퓨터 구성으로 본 발명의 각종 실시예가 실현될 수 있음을 이해할 것이다. 퍼스널 컴퓨터(PC), 자동화된 텔러 머신, 서버 컴퓨터, 헨드-헬드 또는 랩탑 장치, 멀티-프로세서 시스템, 마이크로스로세서 기반 시스템, 프로그램가능한 가전 제품, 네트워크 PC, 어플라이언스, 조명, 환경 제어 소자, 미니컴퓨터, 메인프레임 컴퓨터 등을 포함하는 기타 공지된 컴퓨팅 시스템, 환경, 및/또는 구성이 적합할 수 있지만, 이에 제한되는 것은 아니다. 본 발명의 실시예들은 또한 통신 네트워크/버스 또는 기타 전달 매체를 통해 연결되어 있는 원격 처리 장치들에 의해 태스크가 수행되는 분산 컴퓨팅 환경에서 실시될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 메모리 저장 장치를 포함하는 로컬 및 원격 컴퓨터 저장 매체 둘 다에 위치할 수 있고, 클라이언트 노드들은 서버 노드로서 동작할 수 있다.
도 9와 관련하여, 본 발명의 실시예를 구현하는 예시적인 시스템은 컴퓨터 시스템(910) 형태의 범용 컴퓨팅 장치를 포함한다. 컴퓨터 시스템(910)의 컴포넌 트들은 처리 장치(920), 시스템 메모리(930), 및 시스템 메모리를 비롯한 각종 시스템 컴포넌트들을 처리 장치(920)에 연결시키는 시스템 버스(921)를 포함하지만 이에 제한되는 것은 아니다. 시스템 버스(921)는 메모리 버스 또는 메모리 컨트롤러, 주변 장치 버스 및 각종 버스 아키텍처 중 임의의 것을 이용하는 로컬 버스를 비롯한 몇몇 유형의 버스 구조 중 어느 것이라도 될 수 있다. 예로서, 이러한 아키텍처는 ISA(Industry Standard Architecture) 버스, MCA(Micro Channel Architecture) 버스, EISA(Enhanced ISA) 버스, VESA(Video Electronics Standard Association) 로컬 버스, 그리고 메자닌 버스(Mezzanine bus)로도 알려진 PCI(Peripheral Component Interconnect) 버스 등을 포함하지만 이에 제한되는 것은 아니다.
컴퓨터 시스템(910)은 통상적으로 각종 컴퓨터 판독가능 매체를 포함한다. 컴퓨터 시스템(910)에 의해 액세스 가능한 매체는 그 어떤 것이든지 컴퓨터 판독가능 매체가 될 수 있고, 이러한 컴퓨터 판독가능 매체는 휘발성 및 비휘발성 매체, 이동식 및 비이동식 매체를 포함한다. 예로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함하지만 이에 제한되는 것은 아니다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보를 저장하는 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 이동식 및 비이동식 매체를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, CDRW(compact disc-rewritable), DVD(digital versatile disk) 또는 기타 광 디스크 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 컴퓨터 시스템(910)에 의해 액세스되고 원하는 정보를 저장할 수 있는 임의의 기타 매체를 포함하지만 이에 제한되는 것은 아니다. 통신 매체는 통상적으로 반송파(carrier wave) 또는 기타 전송 메커니즘(transport mechanism)과 같은 피변조 데이터 신호(modulated data signal)에 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터 등을 구현하고 모든 정보 전달 매체를 포함한다. "피변조 데이터 신호"라는 용어는, 신호 내에 정보를 인코딩하도록 그 신호의 특성들 중 하나 이상을 설정 또는 수정시킨 신호를 의미한다. 예로서, 통신 매체는 유선 네트워크 또는 직접 배선 접속(direct-wired connection)과 같은 유선 매체, 그리고 음향, RF, 적외선, 기타 무선 매체와 같은 무선 매체를 포함하지만 이에 제한되는 것은 아니다. 상술된 매체들의 모든 조합이 또한 컴퓨터 판독가능 매체의 영역 안에 포함되는 것으로 한다.
시스템 메모리(930)는 판독 전용 메모리(ROM)(931) 및 랜덤 액세스 메모리(RAM)(932)와 같은 휘발성 및/또는 비휘발성 메모리 형태의 컴퓨터 저장 매체를 포함한다. 시동 중과 같은 때에, 컴퓨터 시스템(910) 내의 구성요소들 사이의 정보 전송을 돕는 기본 루틴을 포함하는 기본 입/출력 시스템(BIOS)(933)은 통상적으로 ROM(931)에 저장되어 있다. RAM(932)은 통상적으로 처리 장치(920)가 즉시 액세스 할 수 있고 및/또는 현재 동작시키고 있는 데이터 및/또는 프로그램 모듈을 포함한다. 예로서, 도 9는 운영 체제(934), 애플리케이션 프로그램(935), 기타 프로그램 모듈(936) 및 프로그램 데이터(937)를 도시하고 있지만 이에 제한되는 것은 아니다.
컴퓨터 시스템(910)은 또한 기타 이동식/비이동식, 휘발성/비휘발성 컴퓨터 저장매체를 포함한다. 단지 예로서, 도 9는 비이동식·비휘발성 자기 매체에 기록을 하거나 그로부터 판독을 하는 하드 디스크 드라이브(941), 이동식·비휘발성 자기 디스크(952)에 기록을 하거나 그로부터 판독을 하는 자기 디스크 드라이브(951), CD-ROM, CDRW, DVD 또는 기타 광 매체 등의 이동식·비휘발성 광 디스크(956)에 기록을 하거나 그로부터 판독을 하는 광 디스크 드라이브(955)를 포함한다. 예시적인 운영 환경에서 사용될 수 있는 기타 이동식/비이동식, 휘발성/비휘발성 컴퓨터 기억 매체로는 자기 테이프 카세트, 플래시 메모리 카드, DVD, 디지털 비디오 테이프, 고상(solid state) RAM, 고상 ROM 등이 있지만 이에 제한되는 것은 아니다. 하드 디스크 드라이브(941)는 통상적으로 인터페이스(940)와 같은 비이동식 메모리 인터페이스를 통해 시스템 버스(921)에 접속되고, 자기 디스크 드라이브(951) 및 광 디스크 드라이브(955)는 통상적으로 인터페이스(950)와 같은 이동식 메모리 인터페이스에 의해 시스템 버스(921)에 접속된다.
위에서 설명되고 도 9에 도시된 드라이브들 및 이들과 관련된 컴퓨터 저장 매체는, 컴퓨터 시스템(910)을 위해, 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 및 기타 데이터를 저장을 제공한다. 도 9에서, 예를 들어, 하드 디스크 드라이브(941)는 운영 체제(944), 애플리케이션 프로그램(945), 기타 프로그램 모듈(946), 및 프로그램 데이터(947)를 저장하는 것으로 도시되어 있다. 여기서 주의할 점은 이들 컴포넌트가 운영 체제(934), 애플리케이션 프로그램(935), 기타 프 로그램 모듈(936), 및 프로그램 데이터(937)와 동일하거나 그와 다를 수 있다는 것이다. 이에 관해, 운영 체제(944), 애플리케이션 프로그램(945), 기타 프로그램 모듈(946) 및 프로그램 데이터(947)에 다른 번호가 부여되어 있다는 것은 적어도 이들이 다른 사본(copy)이라는 것을 나타내기 위한 것이다. 사용자는 키보드(962) 및 마우스, 트랙볼(trackball) 또는 터치 패드와 같은 포인팅 장치(961) 등의 입력 장치를 통해 명령 및 정보를 컴퓨터 시스템(910)에 입력할 수 있다. 다른 입력 장치(도시 생략)로는 마이크, 조이스틱, 게임 패드, 위성 안테나, 스캐너 등을 포함할 수 있다. 이들 및 기타 입력 장치는 종종 시스템 버스(921)에 결합된 사용자 입력 인터페이스(960)를 통해 처리 장치(920)에 접속되지만, 병렬 포트, 게임 포트 또는 USB(universal serial bus) 등의 다른 인터페이스 및 버스 구조에 의해 접속될 수도 있다. 모니터(991) 또는 다른 유형의 디스플레이 장치도, 비디오 메모리(도시 생략)와 통신할 수 있는 비디오 인터페이스(990) 등의 인터페이스를 통해 시스템 버스(921)에 접속될 수 있다. 모니터(991) 외에, 컴퓨터 시스템은 스피커(997) 및 프린터(996) 등의 기타 주변 출력 장치를 포함할 수 있고, 이들은 출력 주변장치 인터페이스(995)를 통해 접속될 수 있다.
컴퓨터 시스템(910)은 원격 컴퓨터(980)와 같은 하나 이상의 원격 컴퓨터로의 논리적 접속을 사용하여 네트워크화되거나 분산된 환경에서 동작할 수 있다. 원격 컴퓨터(980)는, 도 9에는 단 하나의 메모리 저장 장치(981)만이 도시되어 있지만, 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 장치 또는 기타 통상의 네트워크 노드일 수 있고, 통상적으로 컴퓨터 시스템(910)과 관련하여 상술된 구성요 소들의 대부분 또는 그 전부를 포함한다. 도 9에 도시된 논리적 접속으로는 LAN(971) 및 WAN(973)이 있지만, 기타 네트워크를 포함할 수도 있다. 이러한 네트워킹 환경은 가정, 사무실, 전사적 컴퓨터 네트워크(enterprise-wide computer network), 인트라넷, 및 인터넷에서 일반적인 것이다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터 시스템(910)은 네트워크 인터페이스 또는 어댑터(970)를 통해 LAN(971)에 접속된다. WAN 네트워킹 환경에서 사용될 때, 컴퓨터 시스템(910)은 통상적으로 인터넷과 같은 WAN(973)을 통해 통신을 구축하기 위해 모뎀(972) 또는 기타 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(972)은 사용자 입력 인터페이스(960) 또는 기타 적절한 메커니즘을 통해 시스템 버스(921)에 접속된다. 네트워크화된 환경에서, 컴퓨터 시스템(910) 또는 그의 일부와 관련하여 도시된 프로그램 모듈은 원격 메모리 저장 장치에 저장될 수 있다. 예로서, 도 9는 원격 애플리케이션 프로그램(985)이 메모리 장치(981)에 상주하는 것으로 도시하고 있지만 이에 제한되는 것은 아니다. 도시된 네트워크 접속은 예시적인 것이며 이 컴퓨터들 사이에 통신 링크를 구축하는 기타 수단이 사용될 수 있다는 것을 이해할 것이다.
각종 분산 컴퓨팅 프레임워크가 퍼스널 컴퓨팅 및 인터넷의 수렴을 고려하여 개발되었고 개발되고 있다. 개인 및 사업자들 모두에게, 애플리케이션 및 컴퓨팅 장치를 위한 심리스(seamlessly)하게 상호작용가능한 웹-가능 인터페이스가 제공되어, 컴퓨팅 액티비티를 점점 더 웹 브라우저 또는 네트워크 지향되게 한다.
예를 들면, 마이크로소프트사로부터 입수 가능한 마이크로소프트의 NETTM 플랫폼은 웹 기반 데이터 저장과 같은 빌딩 블록(building-block) 서비스, 서버, 및 다운로드가능한 장치 소프트웨어를 포함한다. 본원에서 예시적인 실시예가 컴퓨팅 장치에 상주하는 소프트웨어와 관련하여 설명되었지만, 본 발명의 하나 이상의 실시예는 또한 운영 체제, 애플리케이션 프로그래밍 인터페이스(API) 또는 코프로세서, 디스플레이 장치, 및 요청 개체 중 임의의 것들 간의 "중간자(middle man)" 개체를 통해 구현될 수 있어서, 기타 분산된 컴퓨팅 프레임워크 내에서와 마찬가지로 NETTM의 언어 및 서비스 모두를 통해 지원되고 액세스됨으로써 동작이 수행될 수 있다.
상술한 바와 같이, 본 발명의 예시적인 실시예들이 각종 컴퓨팅 장치 및 네트워크 아키텍쳐에 관하여 설명되었지만, 기본적인 컨셉은 XML 부분적 검증 스키마를 구현하는 데 바람직한 임의의 컴퓨팅 장치 또는 시스템에 적용될 수 있다. 따라서, 본 발명의 실시예에 관련하여 설명된 방법 및 시스템은 각종 애플리케이션 및 장치에 적용될 수 있다. 예시적인 프로그래밍 언어, 이름, 및 예들이 각종 선택들을 대표하여 본원에서 선택되었지만, 이러한 언어, 이름, 및 예들은 이에 제한되는 것은 아니다. 당업자는 본 발명의 실시예에 의해 달성되는 동일하거나, 유사한, 또는 동등한 시스템 및 방법들을 달성하는 개체 코드를 제공하는 수많은 방법이 존재함을 이해할 것이다.
본원에 설명된 각종 기술들은 하드웨어나 소프트웨어, 또는 적절한 경우 그 것들의 조합에 관련하여 구현될 수 있다. 따라서, 본 발명의 방법 및 장치들, 또는 특정 양태들이나 그것들의 일부는, 플로피 디스크, CD-ROM, 하드 드라이브, 또는 임의의 기타 기계-판독가능 저장 매체와 같은, 유형의 매체에서 실현되는 프로그램 코드(즉, 명령어)의 형태를 취할 수 있는데, 여기서 프로그램 코드가 컴퓨터 등의 기계에 의해 로드 및 실행되는 경우에, 기계는 본 발명을 실현하는 장비가 된다.
본 발명의 양태가 각종 피겨들의 선호되는 실시예과 관련하여 설명되었지만, 본 발명의 동일한 기능을 수행하기 위해 그로부터 일탈함이 없이 기타 유사한 실시예들이 사용될 수 있거나 설명된 실시예에 변경 및 추가가 만들어질 수 있음이 이해될 것이다. 또한, 특히 계속 양산되는 무선 네트워크된 장치들의 개수 만큼, 핸드헬드 장치 운영 체제 및 기타 애플리케이션 전용 운영 체제를 포함하는, 각종 컴퓨터 플랫폼이 고려되고 있음이 강조되어야 한다. 따라서, 청구된 발명은 임의의 단일한 실시예에 제한되어서는 안되고, 대신에 첨부된 청구의 범위와 관련하는 요지 및 범위 내에서 해석되어야 한다.

Claims (20)

  1. XML 문서의 부분적 XML 검증(validation)을 수행하기 위한 방법으로서,
    (a) XML 문서의 데이터를 수정하라는 사용자 요청을 수신하는 단계(810)-상기 문서는 문서 스키마에 의해 정의되고, 상기 데이터는 상기 문서 스키마의 제1 부분에 의해 제약을 받고, 상기 스키마의 제2 부분은 상기 제1 부분의 부모(parent) 부분을 포함하며, 상기 부모 부분은 상기 제1 부분에 관한 제약조건을 포함함-;
    (b) 쿼리 프로세서에 의한 실행을 위해 상기 요청과 연관된 XML 문서를 연산자 트리 구조로 전환(converting)하는 단계(820)-상기 연산자 트리는 상기 스키마의 상기 제1 부분에 대응하는 제1 연산자 및 상기 스키마의 상기 부모 부분에 대응하는 제2 연산자를 가짐-;
    (c) 상기 스키마의 제1 부분을 추출하는 단계(830);
    (d) 부분적으로 검증된 XML 문서 부분을 형성하는 상기 스키마의 상기 제1 부분에 대해 상기 제1 연산자를 이용하여 수정된 상기 데이터의 검증을 수행하는 단계(840);
    (e) 상기 스키마의 제2 부분을 추출하는 단계(850);
    (f) 상기 제2 연산자를 사용하여 상기 스키마의 상기 제2 부분에 대해 상기 부분적으로 검증된 XML 문서 부분의 검증을 수행하는 단계(860);
    (g) 상기 부분적으로 검증된 XML 문서 부분이 상기 스키마의 상기 제2 부분 의 제약조건에 따르는지를 검증하는 단계(870); 및
    (h) 상기 수정된 데이터를 상기 XML 문서로 병합(merge)하는 단계(880)-상기 XML 문서의 전체(full) 검증은 회피됨-;
    를 포함하는 XML 문서의 부분적 XML 검증을 수행하기 위한 방법.
  2. 제1항에 있어서, 쿼리 프로세서에 의한 실행을 위해 상기 XML 문서를 연산자 트리 구조로 전환하는 상기 단계는,
    상기 XML 문서를 파싱(parsing)하여 추상적 구문 트리(abstract syntax tree)를 산출하는 단계;
    상기 추상적 구문 트리를 통합 트리(unified tree)로 변환(transform)하는 단계; 및
    상기 통합 트리를 상기 연산자 트리 구조로 전환하는 단계
    를 포함하는, XML 문서의 부분적 XML 검증을 수행하기 위한 방법.
  3. 제1항에 있어서, 스키마의 제1 부분을 추출하는 단계 및 스키마의 제2 부분을 추출하는 단계는,
    상기 문서 스키마를 스키마 컴포넌트들의 테이블들로 분해하는 단계; 및
    상기 문서의 상기 제1 부분을 캐시 메모리에 저장하는 단계
    를 포함하는, XML 문서의 부분적 XML 검증을 수행하기 위한 방법.
  4. 제1항에 있어서, 부분적으로 검증된 XML 문서 부분을 형성하는 상기 스키마의 상기 제1 부분에 대해 상기 제1 연산자를 사용하여 상기 수정된 데이터의 검증을 수행하는 단계는, 상기 수정된 데이터의 깊은(deep) 검증을 수행하는 단계를 포함하고,
    상기 수정된 데이터는 상기 스키마의 상기 제1 부분의 제약조건에 비교하여 체크되는,
    XML 문서의 부분적 XML 검증을 수행하기 위한 방법.
  5. 제4항에 있어서, 깊은 검증을 수행하는 상기 단계는, 상기 수정된 데이터의 완전한 논리적 엔터티를 순환적(recursively)으로 검증하는 단계를 포함하는, XML 문서의 부분적 XML 검증을 수행하기 위한 방법.
  6. 제1항에 있어서, 상기 제2 연산자를 사용하여 상기 스키마의 상기 제2 부분에 대해 상기 부분적으로 검증된 XML 문서 부분의 검증을 수행하는 단계는, 부분적으로 검증된 XML 문서의 얕은(shallow) 검증을 수행하는 단계를 포함하는, XML 문서의 부분적 XML 검증을 수행하기 위한 방법.
  7. 제6항에 있어서, 상기 부분적으로 검증된 XML 문서의 얕은 검증을 수행하는 단계는, 상기 제2 연산자의 상기 부모 노드 정보를 사용하여 검증을 수행하는 단계를 포함하는, XML 문서의 부분적 XML 검증을 수행하기 위한 방법.
  8. 제1항에 있어서, 상기 수정된 데이터를 상기 XML 문서로 병합하는 단계-상기 XML 문서의 완전한 검증이 회피됨-는, 상기 수정된 데이터를 상기 XML 문서로 병합하는 단계 및 ID/IDREF, key/keyref 및 고유한 제약조건 중 어느 것도 상기 수정된 데이터 내에 존재하지 않는 경우에는 전체 검증을 회피하는 단계를 포함하는, XML 문서의 부분적 XML 검증을 수행하기 위한 방법.
  9. 관련 폼(relational form)으로 저장된 XML 문서 내의 데이터를 수정하기 위한 시스템으로서,
    관련 데이터베이스에 저장된 XML 문서에 대응하는 XML 스키마;
    상기 XML 문서를 부분적으로 검증하는 방법을 수행하기 위한 쿼리 프로세서(920); 및
    상기 XML 문서 내의 데이터에 대한 수정을 나타내는 데이터를 수신하기 위한 사용자 인터페이스(960)
    를 포함하는, 관련 폼으로 저장된 XML 문서 내의 데이터를 수정하기 위한 시스템.
  10. 제9항에 있어서, 상기 사용자 인터페이스는 상기 XML 문서를 시험하기 위한 뷰어를 더 포함하는, 관련 폼으로 저장된 XML 문서 내의 데이터를 변경하기 위한 시스템.
  11. 제9항에 있어서, 상기 쿼리 프로세서는,
    상기 데이터를 수정하라는 요청을 수신하는 단계;
    상기 요청과 연관된 XML 문서를, 실행을 위해 연산자 트리 구조로 전환하는 단계;
    상기 스키마의 제1 부분 및 제2 부분을 추출하는 단계;
    부분적으로 검증된 XML 문서 부분을 형성하는 상기 스키마의 상기 제1 부분에 대해 상기 제1 연산자를 사용하여 상기 수정된 데이터의 검증을 수행하는 단계;
    상기 제2 연산자를 사용하여 상기 스키마의 상기 제2 부분에 상기 부분적으로 검증된 XML 문서 부분의 검증을 수행하는 단계;
    상기 부분적으로 검증된 XML 문서 부분이 상기 스키마의 상기 제2 부분의 제약조건에 따르는지 검증하는 단계; 및
    상기 수정된 데이터를 상기 XML 문서로 병합하는 단계-상기 XML 문서의 전체 검증은 회피됨-;
    를 수행하는, 관련 폼에 저장된 XML 문서 내의 데이터를 변경하기 위한 시스템.
  12. 제10항에 있어서, 스키마의 제1 부분 및 제2 부분을 추출하는 단계는,
    상기 문서 스키마를 스키마 컴포넌트들의 테이블들로 분해하는 단계; 및
    상기 문서 스키마의 상기 제1 부분 및 상기 문서 스키마의 상기 제2 부분을 캐시 메모리에 저장하는 단계
    를 포함하는, 관련 폼에 저장된 XML 문서 내의 데이터를 변경하기 위한 시스템.
  13. 관련 폼으로 저장된 수정된 XML 문서를 검증하는 방법을 수행하기 위한 컴퓨터 실행가능 명령어를 갖는 컴퓨터 판독가능 매체로서, 상기 방법은,
    (a) XML 문서의 데이터를 수정하라는 사용자 요청을 수신하는 단계(810)-상기 문서는 문서 스키마에 의해 정의되고, 상기 데이터는 상기 문서 스키마의 제1 부분에 의해 제약을 받고, 상기 스키마의 제2 부분은 상기 제1 부분의 부모 부분을 포함하며, 상기 부모 부분은 상기 제1 부분에 관한 제약조건을 포함함-;
    (b) 쿼리 프로세서에 의한 실행을 위해 상기 요청과 연관된 상기 XML 문서를 연산자 트리 구조로 전환하는 단계(820)-상기 연산자 트리는 상기 스키마의 상기 제1 부분에 대응하는 제1 연산자 및 상기 스키마의 상기 부모 부분에 대응하는 제2 연산자를 가짐-;
    (c) 상기 스키마의 제1 부분 및 제2 부분을 추출하는 단계(830, 850);
    (d) 부분적으로 검증된 XML 문서 부분을 형성하는 상기 스키마의 상기 제1 부분에 대해 상기 제1 연산자를 사용하여 상기 수정된 데이터의 검증을 수행하는 단계(840);
    (e) 상기 제2 연산자를 사용하여 상기 스키마의 상기 제2 부분에 대해 상기 부분적으로 검증된 XML 문서 부분의 검증을 수행하는 단계(860);
    (f) 상기 부분적으로 검증된 XML 문서 부분이 상기 스키마의 상기 제2 부분의 제약조건을 따르는지를 검증하는 단계(870); 및
    (g) 상기 수정된 데이터를 상기 XML 문서로 병합하는 단계(880)- 여기서 상기 XML 문서의 전체 검증은 회피됨-
    를 포함하는 방법을 수행하기 위한 컴퓨터 실행가능 명령어를 갖는 컴퓨터 판독가능 매체.
  14. 제13항에 있어서, 쿼리 프로세서에 의한 실행을 위해 상기 XML 문서를 연산자 트리 구조로 전환하는 단계는,
    상기 XML 문서를 파싱하여 추상적 구문 트리를 산출하는 단계;
    상기 추상적 구문 트리를 통합 트리로 변환하는 단계; 및
    상기 통합 트리를 상기 연산자 트리 구조로 전환하는 단계
    를 포함하는, 컴퓨터 실행가능 명령어를 갖는 컴퓨터 판독가능 매체.
  15. 제13항에 있어서, 상기 스키마의 제1 부분 및 제2 부분을 추출하는 단계는,
    상기 문서 스키마를 스키마 컴포넌트들의 테이블들로 분해하는 단계; 및
    상기 문서 스키마의 상기 제1 부분을 캐시 메모리에 저장하고, 상기 문서 스키마의 상기 제2 부분을 관련 포맷으로 저장하는 단계
    를 포함하는, 컴퓨터 실행가능 명령어를 갖는 컴퓨터 판독가능 매체.
  16. 제13항에 있어서, 제1의 부분적으로 검증된 XML 문서 부분을 형성하는 상기 스키마의 상기 제1 부분에 대해 상기 제1 연산자를 사용하여 상기 수정된 데이터의 검증을 수행하는 단계는, 상기 수정된 데이터에 대해 깊은 검증을 수행하는 단계를 포함하고, 상기 수정된 데이터는 상기 스키마의 상기 제1 부분의 제약조건에 비교하여 체크되는,
    컴퓨터 실행가능 명령어를 갖는 컴퓨터 판독가능 매체.
  17. 제16항에 있어서, 상기 깊은 검증을 수행하는 단계는 상기 수정된 데이터의 완전한 논리적 엔터티를 순환적으로 검증하는 단계를 포함하는, 컴퓨터 실행가능 명령어를 갖는 컴퓨터 판독가능 매체.
  18. 제13항에 있어서, 상기 제2 연산자를 사용하여 상기 스키마의 상기 제2 부분에 대해 상기 부분적으로 검증된 XML 문서 부분의 검증을 수행하는 단계는, 부분적으로 검증된 XML 문서의 얕은 검증을 수행하는 단계를 포함하는, 컴퓨터 실행가능 명령어를 갖는 컴퓨터 판독가능 매체.
  19. 제18항에 있어서, 상기 부분적으로 검증된 XML 문서의 얕은 검증을 수행하는 단계는, 상기 제2 연산자의 상기 부모 노드 정보를 사용하여 검증을 수행하는 단계를 포함하는, 컴퓨터 실행가능 명령어를 갖는 컴퓨터 판독가능 매체.
  20. 제13항에 있어서,
    상기 수정된 데이터를 상기 XML 문서로 병합하는 단계-상기 XML 문서의 완전한 검증이 회피됨-는, 상기 수정된 데이터를 상기 XML 문서로 병합하는 단계 및 ID/IDREF, key/keyref 및 고유한 제약 중 어느 것도 상기 수정된 데이터 내에 존재하지 않는 경우에는 전체 검증을 회피하는 단계를 포함하는, 컴퓨터 실행가능 명령어를 갖는 컴퓨터 판독가능 매체.
KR1020087011026A 2005-11-07 2006-11-06 부분적 xml 검증을 수행하기 위한 방법, 관련 폼으로저장된 xml 문서 내의 데이터를 수정하기 위한 시스템및 컴퓨터 판독가능 매체 KR20080066943A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/268,090 2005-11-07
US11/268,090 US7774321B2 (en) 2005-11-07 2005-11-07 Partial XML validation

Publications (1)

Publication Number Publication Date
KR20080066943A true KR20080066943A (ko) 2008-07-17

Family

ID=38023598

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087011026A KR20080066943A (ko) 2005-11-07 2006-11-06 부분적 xml 검증을 수행하기 위한 방법, 관련 폼으로저장된 xml 문서 내의 데이터를 수정하기 위한 시스템및 컴퓨터 판독가능 매체

Country Status (4)

Country Link
US (1) US7774321B2 (ko)
KR (1) KR20080066943A (ko)
CN (1) CN101300577B (ko)
WO (1) WO2007056412A1 (ko)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9460129B2 (en) 2013-10-01 2016-10-04 Vmware, Inc. Method for tracking a schema in a schema-less database
WO2007013079A2 (en) * 2005-07-27 2007-02-01 Technion Research & Development Foundation Ltd. Incremental validation of key and keyref constraints
US7676746B1 (en) * 2005-12-06 2010-03-09 Vlad Alexander System and method for in-context authoring of alternate content for non-textual objects
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
US9460064B2 (en) * 2006-05-18 2016-10-04 Oracle International Corporation Efficient piece-wise updates of binary encoded XML data
US7996855B2 (en) * 2006-09-15 2011-08-09 Oracle International Corporation Personal messaging application programming interface for integrating an application with groupware systems
US8463852B2 (en) * 2006-10-06 2013-06-11 Oracle International Corporation Groupware portlets for integrating a portal with groupware systems
US9292477B1 (en) * 2007-06-11 2016-03-22 Oracle America Inc. Method and system for data validation
WO2009014845A2 (en) * 2007-06-28 2009-01-29 Ultralife Corporation High capacity and high rate lithium cells with cfx-mno2 hybrid cathode
GB0712935D0 (en) * 2007-07-04 2007-08-15 Deltamxl Ltd Representation of multiple markup language files in one file for the productionof new new markup language files
KR100953714B1 (ko) 2007-12-17 2010-04-19 고려대학교 산학협력단 Axml 기반의 접근 통제 모델의 정형 명세 방법, 그장치 및 이를 기록한 기록 매체
KR100888678B1 (ko) 2007-12-17 2009-03-13 고려대학교 산학협력단 Xml 기반의 접근 통제 모델의 정형 명세 방법, 그 장치및 이를 기록한 기록 매체
US8719693B2 (en) * 2008-02-22 2014-05-06 International Business Machines Corporation Method for storing localized XML document values
KR100912471B1 (ko) 2008-02-29 2009-08-14 충남대학교산학협력단 히스토그램과 평면적 크기 계산을 이용한 xml 스키마매칭 과정에서의 변환 질의의 적합성 검사 방법
US8868482B2 (en) * 2008-03-20 2014-10-21 Oracle International Corporation Inferring schemas from XML document collections
US8595263B2 (en) * 2008-06-02 2013-11-26 Microsoft Corporation Processing identity constraints in a data store
US8108419B2 (en) 2008-06-13 2012-01-31 International Business Machines Corporation Virtually applying modifications
US8024325B2 (en) 2008-06-25 2011-09-20 Oracle International Corporation Estimating the cost of XML operators for binary XML storage
US8165999B2 (en) * 2008-07-25 2012-04-24 International Business Machines Corporation XML/database/XML layer analysis
US8073843B2 (en) * 2008-07-29 2011-12-06 Oracle International Corporation Mechanism for deferred rewrite of multiple XPath evaluations over binary XML
US20100030727A1 (en) * 2008-07-29 2010-02-04 Sivasankaran Chandrasekar Technique For Using Occurrence Constraints To Optimize XML Index Access
DE102008059197A1 (de) * 2008-11-27 2010-06-02 Bayerische Motoren Werke Aktiengesellschaft Verfahren und Vorrichtung zur verteilten Konfiguration von Telematik-Diensten in Kraftfahrzeug-Systemen
US8200714B2 (en) * 2009-05-08 2012-06-12 Oracle America, Inc. Apparatus, systems and methods for configurable defaults for XML data
US8473506B2 (en) * 2009-05-20 2013-06-25 Oracle International Corporation Type system for building extensible business applications
US20110010394A1 (en) * 2009-07-08 2011-01-13 International Business Machines Corporation Client-specific data customization for shared databases
US8255427B2 (en) * 2009-08-18 2012-08-28 Raytheon Company Generating modified schemas
US8255372B2 (en) 2010-01-18 2012-08-28 Oracle International Corporation Efficient validation of binary XML data
US8938668B2 (en) 2011-08-30 2015-01-20 Oracle International Corporation Validation based on decentralized schemas
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
US8407235B2 (en) * 2011-03-09 2013-03-26 Microsoft Corporation Exposing and using metadata and meta-metadata
US9507874B2 (en) 2011-06-30 2016-11-29 International Business Machines Corporation Validation of schema and schema conformance verification
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
US10756759B2 (en) 2011-09-02 2020-08-25 Oracle International Corporation Column domain dictionary compression
US9971849B2 (en) * 2011-09-29 2018-05-15 International Business Machines Corporation Method and system for retrieving legal data for user interface form generation by merging syntactic and semantic contraints
US9626368B2 (en) * 2012-01-27 2017-04-18 International Business Machines Corporation Document merge based on knowledge of document schema
US20130282894A1 (en) * 2012-04-23 2013-10-24 Sap Portals Israel Ltd Validating content for a web portal
US9317513B1 (en) * 2012-06-27 2016-04-19 Netapp, Inc. Content database for storing extracted content
US9355150B1 (en) 2012-06-27 2016-05-31 Bryan R. Bell Content database for producing solution documents
TWI460598B (zh) * 2012-07-06 2014-11-11 Univ Nat Chunghsing 分支映射編碼處理方法
US8812523B2 (en) 2012-09-28 2014-08-19 Oracle International Corporation Predicate result cache
US9916306B2 (en) 2012-10-19 2018-03-13 Sdl Inc. Statistical linguistic analysis of source content
US10572442B2 (en) * 2014-11-26 2020-02-25 Microsoft Technology Licensing, Llc Systems and methods for providing distributed tree traversal using hardware-based processing
US10713232B2 (en) * 2018-04-16 2020-07-14 Computational Systems, Inc. Efficient data processing
US11016900B1 (en) * 2020-01-06 2021-05-25 International Business Machines Corporation Limiting table-of-contents prefetching consequent to symbol table requests

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19753665C2 (de) * 1997-12-03 2000-05-18 Johnson & Johnson Gmbh Tampon für die Frauenhygiene oder medizinische Zwecke sowie Verfahren zur Herstellung desselben
US7031956B1 (en) * 2000-02-16 2006-04-18 Verizon Laboratories Inc. System and method for synchronizing and/or updating an existing relational database with supplemental XML data
US6654734B1 (en) * 2000-08-30 2003-11-25 International Business Machines Corporation System and method for query processing and optimization for XML repositories
US6985902B2 (en) * 2001-02-05 2006-01-10 Threewide.Com, Inc. Method, system and apparatus for creating and accessing a hierarchical database in a format optimally suited to real estate listings
JP2003084987A (ja) * 2001-09-11 2003-03-20 Internatl Business Mach Corp <Ibm> Xml文書の妥当性を検証するためのオートマトンの生成方法、xml文書の妥当性検証方法、xml文書の妥当性を検証するためのオートマトンの生成システム、xml文書の妥当性検証システムおよびプログラム
US7210097B1 (en) * 2002-05-22 2007-04-24 Pitney Bowes Inc. Method for loading large XML documents on demand
US7036073B2 (en) 2002-06-27 2006-04-25 Microsoft Corporation System and method for supporting non-native XML in native XML of a word-processor document
US7373595B2 (en) * 2002-06-27 2008-05-13 Microsoft Corporation System and method for validating an XML document and reporting schema violations
US7346598B2 (en) * 2002-06-28 2008-03-18 Microsoft Corporation Schemaless dataflow within an XML storage solution
US7493603B2 (en) 2002-10-15 2009-02-17 International Business Machines Corporation Annotated automaton encoding of XML schema for high performance schema validation
JP2004364070A (ja) * 2003-06-06 2004-12-24 Hitachi Ltd マスキング可能な署名技術を用いた電子文書管理システム
EP1646942B1 (en) 2003-07-11 2012-12-26 Google, Inc. Xml validation processing
CN1829960A (zh) 2003-08-05 2006-09-06 皇家飞利浦电子股份有限公司 可扩展标记语言文档的基于概率的确认的方法和系统
US7130862B2 (en) * 2003-08-15 2006-10-31 International Business Machines Corporation Methods, systems and computer program prodcuts for validation of XML instance documents using Java classloaders
US8041687B2 (en) * 2003-09-30 2011-10-18 International Business Machines Corporation Dynamic generation of XML Schema for backend driven data validation
US7437374B2 (en) 2004-02-10 2008-10-14 International Business Machines Corporation Efficient XML schema validation of XML fragments using annotated automaton encoding
US7318063B2 (en) * 2004-02-19 2008-01-08 Microsoft Corporation Managing XML documents containing hierarchical database information
US7386541B2 (en) * 2004-03-18 2008-06-10 Microsoft Corporation System and method for compiling an extensible markup language based query
US20060004729A1 (en) * 2004-06-30 2006-01-05 Reactivity, Inc. Accelerated schema-based validation
CN1622095A (zh) * 2004-12-27 2005-06-01 中国科学院软件研究所 可扩展标记语言文件存储及插入关系数据库表的方法

Also Published As

Publication number Publication date
CN101300577A (zh) 2008-11-05
US20070112851A1 (en) 2007-05-17
CN101300577B (zh) 2011-03-16
US7774321B2 (en) 2010-08-10
WO2007056412A1 (en) 2007-05-18

Similar Documents

Publication Publication Date Title
US7774321B2 (en) Partial XML validation
US6487566B1 (en) Transforming documents using pattern matching and a replacement language
US6912538B2 (en) System and method for dynamic generation of structured documents
US20170364498A1 (en) Registry driven interoperability and exchange of documents
US7496599B2 (en) System and method for viewing relational data using a hierarchical schema
US7386541B2 (en) System and method for compiling an extensible markup language based query
US20020078041A1 (en) System and method of translating a universal query language to SQL
US20040205562A1 (en) System and method for transforming documents to and from an XML format
US20130103705A1 (en) Schema mapping and data transformation on the basis of a conceptual model
US20070219959A1 (en) Computer product, database integration reference method, and database integration reference apparatus
US20050091188A1 (en) Indexing XML datatype content system and method
US6915303B2 (en) Code generator system for digital libraries
KR100701104B1 (ko) 분산된 정보들의 통합 뷰 생성을 위한 데이터베이스스키마 생성 방법 및 정보 통합 시스템
US7457812B2 (en) System and method for managing structured document
US20100030726A1 (en) Mechanism For Deferred Rewrite Of Multiple Xpath Evaluations Over Binary XML
US20090327253A1 (en) Indexing and querying xml documents stored in a relational database
US8161376B2 (en) Converting a heterogeneous document
US20090210400A1 (en) Translating Identifier in Request into Data Structure
KR100691261B1 (ko) 확장성 생성 언어 변경 처리 시스템 및 그 방법
US8407209B2 (en) Utilizing path IDs for name and namespace searches
US7805424B2 (en) Querying nested documents embedded in compound XML documents
US20080040369A1 (en) Using XML for flexible replication of complex types
US9361400B2 (en) Method of improved hierarchical XML databases
KR20040056298A (ko) 엑스퀘리를 사용하여 통합 스키마를 정의하는 데이터 통합시스템 및 그 방법
Rose et al. Phantom XML

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid