LANG:XML

구차니의 잡동사니 위키
이동: 둘러보기, 찾기

eXtensible Markup Language

확장 가능한 마크업 언어로 사용자가 정의하는 태그를 이용하여 데이터를 표기하며 웹에서 용이하게 파싱이 가능하여 데이터를 주고 받는데 사용한다.


목차

구성요소

<element attribute=value>

  • element - meta 데이터를 구분하는 식별자
  • attribute - meta 데이터에 부가적인 값을 위한 식별자


XML 과 DTD/XSD 개념

XML은 데이터를 표기하며 Tag는 metadata로서 데이터의 포맷이나 제약사항을 명시한다.

이러한 데이터의 적합성 검사는 DTD나 XSD 파일을 통해 검증하게 되어

데이터의 누락이나 잘못된 데이터가 추가되었는지 여부를 확인하기 용이하며

변수형에 맞지 않는 값이 들어있는지도 확인이 가능하여 처리하는 부분에서 검증에 대한 부담을 줄여

데이터 검증에 대한 소요시간을 단축시켜 준다.

이러한 확실성은 데이터를 주고 받는데 용이하여 웹 서버나 각종 데이터 전송시 사용하게 된다

그리고 일반 텍스트 파일로 사람이 읽기 쉬우며 구조화 되어 있어 디버깅이 용이한 장점을 가진다.


XML의 구조

DTD의 구조

XSD의 구조

DOM

DOM은 XML 구조를 트리구조로 만들어 트리내의 노드를 오가며 조작하는 방법이다.

DOM은 데이터를 읽어 들여 한번의 전체 파일 파싱이 종료되면 트리 구조로 메모리에 적재되며

초기 데이터 파싱과 트리구조로 생성하는 부하를 감수해야 하지만

다양한 값을 변경하거나 추가 삭제하는 경우에는 SAX 보다 유리하다.


SAX

SAX는 대개 스트림 파서로 구성되며 이벤트 방식으로 특정 엘리먼트 별로 핸들러를 호출하게 되어

직접 파서를 구성하여 원하는 값에 대해서 빠르게 파싱을 진행할 수 있다.

하지만 모든 데이터를 파악하는게 아니라 잦은 변경이나 빈번한 수정 등에는 DOM보다 성능이 좋지 않다.


약어모음

  • XML - eXtensible Markup Language
  • XSD - XML Schema Definition
  • DTD - Data Type Definition
  • DOM - Document Object Model
  • SAX - Simple API for XML


파서

  • DOM
  • SAX
    • expat
개인 도구
이름공간

변수
행위
둘러보기
도구모음