XML 개요
XML의 정의
- W3C에서 웹 상의 구조화된 문서를 효율적으로 처리하도록 설계한 마크업 언어
- SGML의 실용적인 기능만을 모은 부분 집합으로, 인터넷상에서 광범위하게 사용될 차세대 언어
- 현재는 마크업 언어 보다는 데이터 교환 포멧으로 널리 사용되고 있음
XML의 특징
XML의 구성 요소
항목 | DTD | XML 스키마 |
문법 | EBNF + pseudo XML | XML 1.0 |
내용 모델
(content Mdoel) | 약함(단순한 순차적 표현 도는 리스트의 선택만을 지원) | 강력(현재 사용되는 모든 데이터 타입을 지원) |
데이터 타입 | String, Name Tokens, ID 등 | String, Numeric, Date/Time, Structure 등 |
이름 공간 | 전역적인 이름들만 이용 가능 | 전역적, 지역적 이름 모두 이용 가능 |
객체 상속 | 제공 안됨 | 제공 |
확장성 | 제한적(XML 1.0 스펙 변경) | 비제한적 |
동적인 문서 구조 | 제공되지 않음(작성된 DTD는 런타임상 읽기만 가능) | 제공(스키마들은 런타임상 선택 및 변경 가능) |
표준 언어 및 API
표준 XML 질의 및 변환 언어
Xpath
XML 문서의 구조에 대한 경로식(Path Expression) 구문을 사용하여 항목을 선택해서 검색하는 기능을 제공하는 언어
XSLT
XML을 XML로 변환하거나 XML을 HTML로 변환하기 위해 설계된 범용 변환 언어
XQuery
W3C에서 표준화하고 있는 다양한 XML 문서를 해석하고 검색하는 기능을 제공하는 범용 XML 질의 언어
SQL/XML
ISO에서 XML 데이터를 처리하기 위해 표준화하고 있는 SQL의 확장 언어
기타
- XLink : XML 문서들 간의 링크를 기술하고 만들어 내기 위해 사용하는 언어
- XPointer : XML 문서의 내부 구조 안에서 또는 외부 파싱된 Element 를 참조할 때 사용하는 언어로서, XPath 를 확장하고 XLink와 결합하여 사용
표준 XML API
XML 데이터베이스 개요
XML 데이터베이스 구현 방법
파일 관리형
XML 데이터를 파일 시스템상의 파일로 보관
RDBMS 매핑형
- XML의 계층 구조를 RDB의 관계로 표현하고, XML의 각 요소와 속성을 테이블 또는 필드로 표현하는 방식
- 현재 가장 많이 사용되고 있음
객체-지향형
- XML의 계층 구조를 객체-지향형 모델의 클래스 계층에 매핑하는 방식
- XML과 모델이 유사하므로, 대부분의 XML 데이터 구조 저장이 가능
Native XML형
- XML의 계층 구조를 계층형 데이터베이스 구조로 관리하며, 노드의 데이터나 속성을 XML 데이터로 관리하는 방식
- 가장 이상적인 방법