XML
- Markup Language
- 태그 등을 이용하여 문서나 데이터의 구조를 명기하는 언어
- ex) HTML, SGML, …
- XML : Extensible Markup Language
- HTML과 달리 필요한 태그를 확장해서 사용 가능, 정확한 문법을 지켜야 동작 ( Well Formed)
기본 문법
- 문서의 시작은 <?xml version =“1.0” encoding=”UTF-8”?>로 한다.
- 반드시 root element가 존재해야 한다.
- 시작 태그와 종료 태그는 일치해야 한다.
- 시작 태그는 key-value 구조의 속성을 가질 수 있다.
- 태그는 대소문자를 구별한다.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ssafy SYSTEM "./student.dtd">
<ssafy>
<student no="12345">
<name>홍길동</name>
<loc>광주</loc>
<phone>010-222-3333</phone>
</student>
<student no="23456">
<name>장길산</name>
<loc>서울</loc>
<phone>010-333-4444</phone>
</student>
<student no="34567">
<name>임꺽정</name>
<loc>대전</loc>
</student>
</ssafy>
Parsing
- 문서에서 필요한 정보를 얻기 위해 태그를 구별하고 내용을 추출하는 과정 (전문적인 parser 활용)
- SAX parser
- Simple API for XML parser
- 문서를 읽으면서 태그의 시작, 종료 등 이벤트 기반으로 처리하는 방식
- DOM parser
- Document Object Model
- 문서를 다 읽고 난 후 문서 구조 전체를 자료구조에 저장하여 탐색하는 방식
- SAX는 빠르고 한번에 처리하기 때문에 다양한 탐색이 어렵다
- DOM은 다양한 탐색이 가능하지만 느리고 무거우며 큰 문서를 처리하기 어렵다.