XML 스키마
IT 위키
- XML Schema; XSD; XML Schema Definition
- XML 문서의 구조와 데이터 타입을 정의하는 W3C 표준 스키마 언어
문서가 형식에 맞는가(Well-formed)를 넘어 정해진 규칙에 맞는가(Valid)를 검증한다.
| 구분 | DTD | XML 스키마(XSD) |
|---|---|---|
| 문법 | 독자 문법 | XML 문법 자체 — 같은 파서로 다룰 수 있다 |
| 데이터 타입 | 사실상 없다 (문자열뿐) | 44개 내장 타입 + 사용자 정의 타입 |
| 이름공간 | 지원하지 않는다 | 네임스페이스 완전 지원 |
| 개수 지정 | ?, *, + 뿐 | minOccurs / maxOccurs 로 정확한 개수 지정 |
| 상속·재사용 | 불가 | 확장(extension)과 제한(restriction)으로 타입 상속 |
| 표현력 | 제한적 | 값 범위, 정규식(pattern), 열거 등 세밀한 제약 |
- xs:element — 요소 정의
- xs:attribute — 속성 정의
- xs:simpleType — 자식이나 속성이 없는 타입. 제약(facet)으로 값을 좁힌다
- xs:complexType — 자식 요소나 속성을 갖는 타입
- 순서 지정자 : xs:sequence(순서대로), xs:choice(택일), xs:all(순서 무관)
- xs:restriction / xs:extension — 타입 파생
string, boolean, decimal, integer, float, double, date, time, dateTime, duration, anyURI, QName, ID, IDREF 등
minInclusive, maxInclusive, minLength, maxLength, pattern(정규식), enumeration(열거), totalDigits, fractionDigits, whiteSpace
- RELAX NG — 더 간결하고 배우기 쉽다. 데이터 타입은 XSD 것을 빌려 쓴다
- Schematron — 규칙(assertion) 기반. XSD 로 표현하기 어려운 업무 규칙 검증에 보완적으로 쓴다
