본문 바로가기
CS/WEB

XML

by I move forward every day. 2024. 5. 10.

출처 : http://wiki.hash.kr/index.php/XML

XML 이란?


XML(Extensible Markup Language)은 마크업 형태를 쓰는 데이터 교환 형식이다. JSON과 같은 역할을 한다.

마크업형태
마크업(markup)은 태그 등을 이용하여 문서나 데이터의 구조를 나타내는 방법이다.(속성부여 가능)
<?xml varsion="1.0" encoding="UTF-8"?>
<playlist>
    <music>
    	<name>아이유</name> <song>하루끝</song>
    </music>
    <music>
    	<name>아이유</name> <song>좋은날</song>
    </music>
</playlist>

 

XML 구조


XML 데이터는 다음과 같이 데이터를 표현한다.

  • 프롤로그: 버전, 인코딩
  • 루트요소(단 하나만)
  • 하위 요소들
<?xml varsion="1.0" encoding="UTF-8"?> // 프롤로그
<playlist> // 루트요소
    <music> // 하위요소들
    	<name>아이유</name> <song>하루끝</song>
    </music>
</playlist>

 

HTML과 XML의 차이


 

태그

HTML에서는 미리 정의된 태그가 있다. 반면 XML은 미리 정해진 태그가 없어 사용자가 직접 고유한 태그를 만들고 정의할 수 있다.

대/소문자 구분

HTML은 대소문자를 구분하지 않는다. 반면 XML은 대/소문자를 구분한다. XML에서 <Name> 대신 <name>으로 태그를 작성하면 XML 구문 분석기에서 오류가 발생한다. 다음 <Music></music> 태그의 여는 태그와 닫는 태그의 대/소문자를 다르게 했을 경우 아래와 같이 mismatched tag 애러가 발생하는 것을 볼 수 있다.

용도

HTML의 용도는 화면상에 데이터를 표시하는데 있고, XML은 단순히 데이터를 저장 및 전송하는 포맷 용도로 사용된다.

 

JSON과 XML의 차이


닫는 태그

xml과 json을 비교했을 때 json은 key:value 형태로 값을 표현할 수 있는 반면, xml은 닫는 태그가 계속해서 들어가기 때문에 json에 비교하면 무겁다. 

// JSON
{ "name": "JSON" } // key:value로 간단하게 표현

// XML
<name> xml </name> // 닫는 태그 사용

추가적인 모듈

javascript에서 json을 사용할 경우 기본제공 함수인 JSON.parse()를 사용할 수 있다. 반면 xml을 사용하기 위해서는 추가적인 모듈을 받아 사용하거나 직접 구현해야 한다.

const fs = require("fs"); // node.js 기본제공 모듈
const path = require("path"); // node.js 기본제공 모듈
const parser = require("xml2json"); // xml을 사용하기 위해 추가한 모듈
const xmlData = fs.readFileSync(path.join(__dirname, "example.xml"));
const xml = parser.toJson(xmlData);

 

 

XML의 활용


xml은 주로 sitemap.xml에 사용된다. sitemap.xml이란 어떠한 사이트를 만들었을 경우 검색엔진에 해당 사이트에 대한 정보를 노출할 필요가 있다. 그때 sitemap.xml을 작성하여 필요한 정보를 노출시킬 수 있다.

 

참조


CS 지식의 정석(큰돌)

'CS > WEB' 카테고리의 다른 글

가상머신  (0) 2024.05.12
API  (0) 2024.05.11
JSON  (0) 2024.05.09