반응형
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>
Why Does XML Display Like This?
- XML 문서에는 데이터를 표시하는 방법에 대한 정보가 없기 때문.
- XML 태그는 XML 문서의 작성자에 의해 "창조"되기 때문에 브라우저는 <table>과 같은 태그가 HTML 테이블을 의미하는지, 아니면 식탁을 의미하는지 알지 못한다.
- 데이터를 표시하는 방법에 대한 정보가 없으면 브라우저는 XML 문서를 그대로 표시한다.
XML 정리를 하면서 굉장히 익숙하다 싶었는데... 알고보니 JSX가 Javascript XML 이었다^^ 리액트 개발 경험이 있는 사람들은 XML을 사용하고 있었던 것!!
<참조>
반응형
'WEB' 카테고리의 다른 글
[ Web ] 브라우저의 렌더링 과정 (0) | 2022.08.21 |
---|---|
[ WEB ] 인터넷과 웹의 차이점 (0) | 2022.08.03 |