web관련 공부들

xml 파일 이란?

초코맛 2021. 12. 27. 18:11
반응형

Java xml Parser를 사용한 일이 생겨서 다시 정리해보려고 했더니,

그전에 xml파일에 대해 짚고 넘어가는 것이 좋을 것 같아서 적는 포스팅.

 

XML이란?

eXtensible Markup Language의 약어로,

다목적 마크업 언어(태그 등을 이용하여 데이터의 구조를 기술하는 언어의 한 가지)이다.

가장 대표적 언어로는 HTML이 있지만,

DTD(Document Type Definition) 문서 형식 정의라는 것의 유무로 HTML과 XML이 나누어진다. 

DTD가 있는 게 HTML이고, DTD가 없어 자유로운 태그 정의가 가능한 게 XML이다.

DTD가 없으면, 통일성이 없어 Parsing이 어려운 것이 단점.

 

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<persons>
     <person>
           <name lastName="홍">길동</name>
           <address city="관악구"  zipcode="87211">사당동</address>
     </person>
     <person>
           <name lastName="고">길동</name>
           <address city="용산구"  zipcode="99999">남영동</address>
     </person>
</persons>

구조적인 내용으로 xml 파일을 열어보면 내용은 위 블록처럼 생겼고,

(.xml파일에서 우클릭을 통해 편집을 클릭하면 메모장으로 파일을 열 수 있다.)

맨 첫 줄에 파일에 대한 선언부(버전, 인코딩, DTD여부)를 가지고,

그 아래에 여러 태그(=노드)를 갖는다.

 

<persons></persons>이 하나의 태그이자 노드로 한 세트이고,

<persons>으로 열고, </persons>으로 닫는 것이다.

이 태그 사이에 다른 태그가 들어가게 되면,

persons태그는 부모 노드가 되어 자식 노드 person태그를 2개 갖는다고 이야기한다.

 

<name> 태그를 보면 <> 사이에 노드명이 아닌 lastName이 들어가 있는데,

lastName은 태그의 속성이라고 하며, =""으로 속성 값을 가진다. 여러 개가 들어갈 수 있다.

또한 <name> 태그의 태그가 닫히기 전 사이 값은 내용이라고 한다.

따라서, name노드의 lastName속성의 값은 '홍'이고, name노드의 내용 값은 길동이다.

 

구조는 전체적으로 이렇게 이루어져 있고,

태그명과 속성명은 xml이기 때문에 별다르게 정해져 있지는 않다.

복잡해 보이지만 단순한 구조로 익힌다면 별로 어려운 구조는 아님!

 

다음은 이 xml파일을 가지고 어떻게 데이터를 뽑는지 정리할 예정이다ㅜ

도움이 되었다면 ♥꾹! 로그인 없이도 가능해요~

반응형