XML은 eXtensible Markup Language의 약어로, 여러 목적을 가진 마크업 언어이다. 태그를 이용하여 데이터 구조를 표현한다. 어떤 것이 데이터의 이름이고 어떤 것이 데이터의 값인지 표현이 가능하기 때문에, 데이터에 의미를 부여하는 메타데이터를 작성할 수도 있다.
HTML과 매우 비슷한 형태이지만 데이터를 보여주는 목적이 아닌 웹에서 데이터를 저장하고 주고받을 목적으로 만들어졌는데, 일반 TCP/IP 네트워크 통신을 할 때도 사용되기도 한다. 선언 헤더, 열고 닫는 태그 구조 등 여러 이유로 실제 데이터에 비해서 용량이 크기 때문에 웹에서는 더 가벼운 JSON 포맷을 사용할 수도 있다.
XML과 JSON은 모두 문자열에 기반했고 메모리를 변환해서 전송하고 다시 전송받은 데이터를 메모리에 변환해서 넣는 오버헤드(간접적인 처리 시간과 메모리 등)가 있다. 둘다 사람도 쉽게 읽을 수 있는 형태의 계층적인 데이터 구조를 가졌다는 장점이 있다.
JSON 장점:
XML 장점:
대부분의 주요 웹 브라우저는 XML문서에 접근하고 조작하기 위한 XML 파서를 별도로 내장하고 있다. XML 파서는 XML 문서의 평문(plain text) 데이터를 읽어 들여, 그것을 XML DOM 객체로 반환해 준다.