XML 스키마

IT 위키
XML Schema; XSD; XML Schema Definition
XML 문서의 구조와 데이터 타입을 정의하는 W3C 표준 스키마 언어

문서가 형식에 맞는가(Well-formed)를 넘어 정해진 규칙에 맞는가(Valid)를 검증한다.

DTD 와 비교

[편집 | 원본 편집]
구분 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 등

제약(Facet)

[편집 | 원본 편집]

minInclusive, maxInclusive, minLength, maxLength, pattern(정규식), enumeration(열거), totalDigits, fractionDigits, whiteSpace

다른 스키마 언어

[편집 | 원본 편집]
  • RELAX NG — 더 간결하고 배우기 쉽다. 데이터 타입은 XSD 것을 빌려 쓴다
  • Schematron — 규칙(assertion) 기반. XSD 로 표현하기 어려운 업무 규칙 검증에 보완적으로 쓴다

같이 보기

[편집 | 원본 편집]