본문 바로가기

WEB

[ WEB ] XML이란

반응형

XML에 대해 많이 들어봤지만 정작 어떤 개념인지는 몰라서 간단하게 정리하려고 이 글을 쓰게 되었다. 모든 내용은 w3schools 자료를 참고하였다. 

 

💡 XML은 데이터를 저장하고 전송하기 위한 소프트웨어 및 하드웨어 독립적인 도구다.

 

 

 

XML이란?

 

  • XML은 확장 가능한 마크업 언어다.
  • XML은 데이터를 저장하고 전송하도록 설계되었다.
  • XML은 사람이 읽을 수도 있고 기계가 읽을 수도 있도록 설계되었다.
  • XML은 자가 기술할 수 있도록 설계되었다. 
자가 기술(self-descriptive)이란?

작성자가 온전히 설계할 수 있음을 의미한다. XML은 HTML과 비슷하게 태그(tag)들로 이루어져 있는데 모든 태그는 작성자가 직접 생성할 수 있다. 따라서 XML 자체는 아무 것도 하지 않으며, XML은 태그로 포장된 정보일 뿐이다. 

 

 

 

XML과 HTML의 차이

 

  • XML은 데이터를 전달하도록 설계되었으며 데이터란 무엇인가에 초점을 맞춤.
  • HTML은 데이터를 표시하도록 설계되었으며 데이터의 모양에 초점을 맞춤.
  • XML 태그들은 HTML 태그와 달리 미리 정의되어 있지 않다. 따라서 XML을 사용하려면 작성자는 태그와 문서 구조를 모두 정의해야 한다.
  • XML은 데이터를 저장하거나 전송하는 데 사용되고, HTML은 데이터를 포맷하고 표시하는 데 사용된다.

 

XML 특징

 

1. 확장 가능성

  • 대부분의 XML 응용프로그램은 새 데이터가 추가되거나 제거되더라도 예상대로 동작한다.

2. 뛰어난 호환성

  • XML은 데이터를 일반 텍스트 형식으로 저장합니다. 이로써 소프트웨어 및 하드웨어에 구애받지 않고 데이터를 저장, 전송 및 공유할 수 있게 한다.
  • 또한 XML을 사용하면 데이터를 손실하지 않고 새 운영체제, 새 응용 프로그램 또는 새 브라우저로 쉽게 확장하거나 업그레이드할 수 있다.

 

XML 문법 규칙

 

  • 반드시 루트 요소가 존재해야 된다.
  • XML Prolog은 문서의 첫 줄에 써야 한다. 생략 가능하다.
  • 모든 XML 태그는 반드시 닫혀있어야 한다.
  • 태그는 대소문자를 구분한다.
  • XML 요소는 올바르게 중첩되어 있어야 한다. (열린 태그 안에서 닫혀야 함)
  • XML 속성값은 항상 따옴표로 묶어야 한다.
  • <>&’” 는 특수 문자로 간주하기 때문에 entity reference로 대체해야 한다.
  • 공백이 보존된다. (HTML은 보존 안됨)
  • 새 줄은 LF로 저장된다.
    • window: CR + LF
    • Unix & macOS: LF

 

XML Namespaces

 

  • XML 태그 이름의 충돌을 방지하기 위해 태그의 namespace를 정의할 수 있다.
  • namespace는 요소의 시작이 되는 태그에 ‘xmlns’라는 속성으로 정의할 수 있다.
  • namespace 선언 구문: xmlns:prefix=”URI”
  • URI를 사용하는 목적은 네임스페이스에 고유한 이름을 지정하기 위함이다. parser가 정보를 검색하는 데 사용되지 않는다.
<table xmlns="https://www.w3schools.com/furniture">
  <name>African Coffee Table</name>
  <width>80</width>
  <length>120</length>
</table>

 

 

 

 

XML 파일 예시 보기 

 

Why Does XML Display Like This?

 

  • XML 문서에는 데이터를 표시하는 방법에 대한 정보가 없기 때문.
  • XML 태그는 XML 문서의 작성자에 의해 "창조"되기 때문에 브라우저는 <table>과 같은 태그가 HTML 테이블을 의미하는지, 아니면 식탁을 의미하는지 알지 못한다.
  • 데이터를 표시하는 방법에 대한 정보가 없으면 브라우저는 XML 문서를 그대로 표시한다.

 

 

 

XML 정리를 하면서 굉장히 익숙하다 싶었는데... 알고보니 JSX가 Javascript XML 이었다^^ 리액트 개발 경험이 있는 사람들은 XML을 사용하고 있었던 것!! 

 

 

 

<참조>

https://www.w3schools.com/xml/default.asp

반응형

'WEB' 카테고리의 다른 글

[ Web ] 브라우저의 렌더링 과정  (0) 2022.08.21
[ WEB ] 인터넷과 웹의 차이점  (0) 2022.08.03