XML - DTD& Schema

Published on: 2010. 4. 25. 20:38 by louis.dev

1. DTD & Schema
DTD와 Schema는 XML의 구조적이거나 제약조건을 명시해 주는 문서로서 DTD는 문서 내, 외에 선언가능하고 Schema는 문서 외부에만 선언 가능합니다.
이런 DTD와 Schema는 편리성을 떨어 트리기도 하지만 XML을 valid한 문서로 만들기 위해서는 꼭필요한 요소입니다.

보통 XML은 두 가지  형태로 정의합니다.
1) Well - Formed XML
2) Valid XML

먼저 Well - Formed 는 잘 만들어진 문서라는 뜻으로서 XML 스펙 1.0의 요구조건을 최소한 만족하고 있는 문서를 Well - Formed 라고 합니다.
그렇다면 XML스펙의 요구조건은 무엇이 있을까요?
- 시작태그와 끝태그가 일치 해야한다.
- Root Element는 오로지 하나만 존재해야 한다.
- 태그를 지정할 때 대소문자를 구분한다.
- 속성값은 받으시 인용부호 (" 나 ')를 사용해야 한다.
- 하나의 요소에서 속성을 반복하여 사용해서는 안된다.
- 하부 요소는 중첩 하여 사용할 수 없다.


이런 정도의 요구조건을 만족하고 있다면 Well - Formed인 문서라고 말 할 수 있습니다.
Valid한 문서라는 것은 DTD나 Schema에 선언된 내용을 잘 준수하고 있는지에 대한 내용입니다.

두 내용다 에러가 없는 문서라는 것이 일맥 상통하지만 Well - Formed 문서라고 해서 모두 Valid한 문서가 아닐수도 있습니다.

예) Well - Formed하지만 valid한 문서가 아닌 경우


다음 문서는 시작태그와 끝태그가 일치해야 한다는 Well - formed XML문서의 규칙을 지키고 있음으로 Well - formed 문서입니다.

하지만 DTD에 선언된 루트태그 이름은 "RootElement" 이지만 실제 루트 태그는 "루트" 로서 DTD문서의 선언을 따르고 있지 않기 때문에 이 XML문서는 Valid 하다고 말 할 수는 없습니다.

이렇듯 Well - formed와 valid의 의미는 다르며 보통 AJAX를 통하여 통신하거나 하는 작은 단위의 XML문서는 DTD나 Schema를 설정하지 않지만 좀더 단위가 큰 문서에서는 DTD와 Schema를 설정해 줌으로서 Valid한 문서를 만드는 것이 호환성을 더 높이는 일입니다.

'Web > XML' 카테고리의 다른 글

XML - DTD 선언하기(2)  (0) 2010.05.11
XML - DTD 선언하기  (0) 2010.05.11
XML - XML의 기초  (0) 2010.04.25