TCP School의 XML 개요 글을 읽고 정리한 내용입니다. (http://www.tcpschool.com/xml/intro)
XML이란?
XML은 HTML과 비슷한 문자 기반의 마크업 언어이다.
XML은 사람과 기계가 동시에 읽기 편한 구조로 되어 있다.
HTML과 다른 점은 데이터를 보여주는 목적이 아닌, 데이터를 저장하고 전달할 목적으로 만들어졌다는 것이다.
또한, XML 태그는 HTML 태그처럼 미리 정의되어 있지 않고, 사용자가 직접 정의할 수 있다.
XML의 특징
- XML은 다른 목적의 마크업 언어를 만드는 데 사용되는 다목적 마크업 언어이다.
- 다른 시스템끼리 다양한 종류의 데이터를 손쉽게 교환할 수 있도록 해준다.
- 새로운 태그를 만들어 추가해도 계속해서 동작하기 때문에 확장성이 좋다.
- 데이터를 보여주지 않고, 데이터를 전달하고 저장하는 것을 목적으로 한다.
- 테그스트 데이터 형식의 언어로 모든 XML 문서는 유니코드 문자로만 이루어진다.
XML 문서 구조
<?xml version="1.0" encoding="UTF-8"?>
<shop city="서울" type="마트">
<food>
<name>귤</name>
<sort>과일</sort>
<cost>3000</cost>
</food>
<food>
<name>상추</name>
<sort>야채</sort>
<cost>2000</cost>
</food>
</shop>
XML 문서는 맨 첫줄에 태그를 사용하여 XML 문서임을 명시해야 한다.
<?xml version="1.0" encoding="UTF-8"?>
그 다음에는 XML 문서에 단 하나만이 존재하는 루트(root) 요소를 생산한다.
이 루트 요소는 XML 문서에 존재하는 모든 요소의 조상 요소가 된다.
<shop city="서울" type="마트">
위의 예제에서 루트 요소는 자식(child) 요소로 두 개의 <food> 요소를 가진다.
<shop city="서울" type="마트">
<food>
...
</food>
<food>
...
</food>
</shop>
<food> 요소는 <name>, <sort>, <cost> 총 세 개의 자식 요소를 가진다.
<food>
<name>귤</name>
<sort>과일</sort>
<cost>3000</cost>
</food>
위의 XML 문서는 상점에서 판매하는 식품에 관한 정보를 담고 있는 문서라는 것을 알 수 있다.
요소의 이름만으로도 데이터의 내용을 짐작할 수 있다.
XML 문법
XML 선언
XML 문서는 첫 줄에 <xml> 태그를 사용하여 XML 문서임을 명시해야 한다.
이를 XML 프롤로그라고 하며, 이 때 사용되는 <xml> 태그의 이름은 소문자 xml로만 사용해야 한다.
<?xml version="XML문서버전" encoding="문자셋" standalone="yes|no"?>
<?xml version="1.0" encoding="UTF-8"?>
- version : XML 문서에 사용된 XML의 버전을 명시한다.
- encoding : XML 문서의 문자셋을 명시하며, 기본값은 UTF-8로 설정된다.
- standalone : XML 문서가 외부 DTD(Document Type Definition)와 같은 외부 소스의 데이터에 의존하고 있는 문서인지 아닌지를 XML 파서(parser)에 알려주는 역할을 한다. 기본값은 no이고, 파싱할 때 참조해야 할 외부 소스가 없다면 yes로 설정해줘야 한다.
XML 문법
1. 모든 XML 요소는 종료 태그를 가져야 한다.
HTML에서는 종료 태그를 생략거나 빈 태그를 사용해도 문제없이 동작한다.
하지만 XML에서는 종료 태그가 생략되면 오류가 발생한다.
또한, 빈 태그도 반드시 슬래시(/)를 사용한 self-closing를 해야만 오류가 발생하지 않는다.
// HTML
<h1>XML
<hr>
// XML
<h1>XML</h1>
<hr />
2. XML 태그는 대소문자를 구분한다.
HTML에서는 태그 이름에 대소문자를 구분하지 않는다.
하지만 XML에서는 태그 이름에 대소문자를 구분하므로, 대소문자가 다르면 다른 요소로 인식한다.
<lecture>이 요소는 lecture 요소입니다.</lecture>
<Lecture>이 요소는 Lecture 요소입니다.</Lecture>
3. XML에서는 시작 태그와 종료 태그가 모두 대소문자까지 같아야 한다.
XML에서는 태그 이름에 대소문자를 구분하므로, 시작 태그와 종료 태그의 대소문자가 모두 같아야 한다.
<lecture>이 요소는 lecture 요소입니다.</lecture> // O
<Lecture>이 구문은 오류를 발생합니다.</lecture> // X
4. XML 태그의 여닫는 순서는 반드시 지켜져야 한다.
먼저 열린 태그는 그 안의 모든 태그가 닫힌 후에야 닫힐 수 있다.
<p><strong>이 구문이 정확한 순서입니다.</strong></p> // O
<p><strong>이 구문은 오류를 발생합니다.</p></strong> // X
5. XML에서 속성값은 반드시 따옴표로 감싸야 한다.
HTML에서는 속성값을 따옴표로 감싸지 않아도 큰 문제없이 동작한다.
하지만 XML에서는 속성값을 따옴표로 감싸지 않으면 오류가 발생한다.
<student name="이순신"> // O
<student name=홍길동> // X
6. XML에서는 띄어쓰기를 인식한다.
HTML에서는 띄어쓰기를 따로 인식하지 않는다. 하지만 XML에서는 여러 번의 띄어쓰기를 그대로 인식한다.
<P>띄 어 쓰 기</p>
띄어쓰기 // HTML
띄 어 쓰 기 //XML
7. 주석
XML의 주석은 <!--로 시작해서 -->로 끝난다.
<!-- 주석 내용 -->
'etc' 카테고리의 다른 글
티스토리 - hELLO 스킨 '카테고리의 다른 글' 2중 노출 되는 문제 해결 방법 (0) | 2024.07.18 |
---|---|
QA - Test Case를 통한 QA 테스트 (1) | 2024.07.18 |
Linux - 리눅스 필수 명령어 (0) | 2023.07.17 |