XML이란?
XML
구분된 파일은 행과 열의 2차원 구조로 구성. 프로그램간에 자료구조를 교환하기 위해 텍스트를 계층구조, 시퀀스, 셋, 또는 다른 자료구조로 인코딩.
XML은 가장 잘 알려진 마크업 형식. XML은 데이터를 구분하기 위해 태그를 사용. 다음의 간단한 menu.xml 파일 예제를 살펴보자.
<?xml version="1.0"?>
<menu>
<breakfast hours="7-11">
<item price="$6.00">breakfast burritos</item>
<item price="$4.00">pancakes</item>
</breakfast>
<lunch hours="11-3">
<item price="$5.00">hamburger</item>
</lunch>
<dinner hours="3-10">
<item price="8.00">spaghetti</item>
</dinner>
</menu>
다음은 xml의 중요한 특징이다.
- 태그는 < 문자로 시작한다. menu.xml의 태그는 menu, breakfast, lunch, dinner, item이다.
- 공백은 무시된다.
- 일반적으로
<menu>
와 같은 시작 태그는 다른 내용이 따라온다. 그러고 나서</menu>
와 같은 끝 태그가 매칭된다. - 태그 안에 태그를 중첩할 수 있다. 예제에서 item태그는 breakfast, lunch, dinner 태그의 자식이다. 또한 이 태그들은 menu 태그의 자식이다.
- 옵션 속성은 시작 태그에 나올 수 있다. 예제의 price는 item의 속성이다.
- 태그는 값을 가질 수 있다. 예제의 각 item은 값을 가진다. 예를들어 두번째 breakfast의 item은 pancakes 값을 가진다.
- thing 이라는 태그에 값이나 자식이 없다면,
<thing></thing>
과 같은 시작 태그와 끝 태그가 아닌,<thing/>
과 같은 단일 태그로 표현할 수 있다. - 속성, 값, 자식 태그의 데이터를 어디에 넣을 것인가에 대한 선택은 다소 임의적이다. 예를들어 마지막 item태그를
<item price="$8.00" food="spaghetti"/>
형식으로 쓸 수 있다.
XML은 데이터 피드와 메시지 전송에 많이 쓰인다. 그리고 RSS와 아톰 같은 하위 형식이 있다. 일부는 금융 분야와 같은 특화된 XML형식을 가진다.
XML의 두드러진 유연성은 접근법과 능력이 다른 여러 파이썬 라이브러리에 영향을 미쳤다.