xml 이란?
Extensible Markup Language
마크업 언어를 정의하기 위한 언어, 확장이 가능한 언어이다.
HTML 이 데이터를 표현하는 마크업 언어라면, XML 은 Tag를 정의할 수 있고 데이터를 기술하는 마크업 언어
- 텍스트 기반이며 간결한 데이터형
- 마크업언어(HTML)가 아니라 마크업언어를 정의하기 위한 언어.
- XML은 데이터를 기술하고 구조화시키는데 사용(데이터 교환)
- HTML은 동일한 데이터를 표시하고 꾸미는데 사용
주요 용어
-
(유니코드) 문자 정의 상, XML 문서는 문자로 이루어진 문자열이다. 거의 모든 올바른 유니코드 문자는 XML 문서에 나타날 수 있다.
프로세서(processor)와 애플리케이션(application)
프로세서는 마크업을 분석하고 구조화된 정보를 애플리케이션에 넘긴다. 이 명세는 XML 프로세서가 무엇을 해야하고 하지 말아야 하는지 제시하지만, 애플리케이션에 대해서는 다루지 않는다. 이 프로세서(명세가 부르기를)는 흔히 XML parser라 불린다. -
마크업(markup)과 내용(content) XML 문서를 구성하는 문자들은 마크업과 내용으로 나뉘는데, 그 구분은 간단한 문법 규칙으로 이루어진다. 일반적으로 마크업을 구성하는 문자열은 문자 <로 시작하여="" 문자="">로 끝나거나, 문자 &로 시작하여 문자 ;로 끝나며, 마크업이 아닌 문자열은 내용이다. 그러나, CDATA 절에서, 구분자 <![CDATA[와 ]]>는 마크업으로 분류되고, 그들 사이의 텍스트는 내용으로 구분된다. 추가로, 가장 바깥 엘리먼트의 앞과 뒤의 공백(whitespace)은 마크업으로 분류된다.로>
- 태그(tag)
- <로 시작하여="">로 끝나는 마크업 구조. 태그는 세 가지 종류가 있다: 로>
- 시작 태그(start-tag); 예: <section>
- 끝 태그(end-tag); 예: </section>
- 빈 엘리먼트(empty-element) 태그; 예:
-
엘리먼트(element) 문서의 논리 요소로서, 시작 태그로 시작하여 짝이 되는 끝 태그로 끝나거나, 빈 엘리먼트 태그만으로 이루어진다. 시작 태그와 끝 태그 사이의 문자들은(있다면) 엘리먼트의 내용이고, 마크업을 포함할 수 있다. 이 마크업은 자식 엘리먼트(child elements)라 부르는 다른 엘리먼트들을 포함할 수도 있다. 엘리먼트의 예는
Hello, world. (see hello world). 다른 예는. - 애트리뷰트(Attribute)
이름/값 짝으로 이루어진 마크업 구조로 시작 태그 또는 빈 엘리먼트 태그 속에 위치한다. 다음 예에서 엘리먼트 img는 src와 alt의 두 애트리뷰트를 갖는다:
다른 예로
Connect A to B. 에서 애트리뷰트 이름은 “number”이고 값은 “3”이다.
- XML 선언
XML 문서는 다음과 같이 자신에 대한 정보 일부를 선언하는 것으로 시작할 수 있다:
<?xml version=”1.0” encoding=”UTF-8” ?>