모든 XML 문서는 논리적 구조(logical structure)와 물리적 구조(physical structure)를 갖고 있다. 물리적으로 XML 문서는 엔티티(entity)라는 요소들로 이루어진다. 엔티티는 다른 엔티티들을 참조해 그것들을 문서 안에 포함시킬 수 있다. 논리적으로 XML문서는 선언들(declarations), 엘리먼트들(element), 주석들(comments) , 문자 참조들(character references) 그리고 처리명령어들(processing instructions)로 구성이 되며 명시된 마크업에 의해 문서 안에 표시된다. 이 두 구조는 올바르게 중첩되어야 한다.
1. 잘 구성된(well-formed) , 유효한(valid) XML 문서들
잘 구성된 XML 문서는 문법 상에는 오류가 없지만 전체 논리 구조는 문서와 관련된 DTD에 대해서 유효하지 않은 문서를 말한다. 이 개념이 XML에 제공되는 것은 DTD를 읽는 데에는 시간과 대역폭이 필요하고 XML문서를 DTD에 대해서 검사하는 것은 더 많은 시간이 필요하기 때문이다. 만일 XML문서의 서버가 이미 그 문서가 모두 유효하며 손상되지 않았다는 것을 보장한다면 각각의 클라이언트가 동일한 일을 하게 되는 것은 불필요하기 때문이다.
다음의 조건을 만족하는 텍스트 객체는 잘 구성된(well-formed) XML 문서이다
-- 전체적으로 문서의 양식과 맞아야 한다.
-- 스펙에 서술된 모든 well-formed 규약을 만족한다.
-- 문서 내에서 직간접적으로 참조되는 파싱된 엔티티들이 잘 구성돼 있어야 한다.
문서의 양식과 맞아야 한다는 것은 다음을 의미한다.
-- 하나 또는 그 이상의 엘리먼트들을 포함하고 있다.
-- 최상위에는 루트(root) 또는 문서 엘리먼트(document element)라 불리는 정확히 하나의 엘리먼트만 나타날 수 있다. 모든 엘리먼트들에 대…(생략)
|