XML 방식으로 데이터를 처리하는 목적
W3C의 XML 표준 권고안은 문법적인 측면에서 두 가지 종류의 XML 문서를 정의
1. well-formed XML (문법에 맞는 XML 문서)
DTD(Document Type Definition)나 스키마를 사용하지 않음DTD스키마 : XML이 다른 마크업 언어를 만들기 위해 해당 언어에 필요한 요소와 속성을 파악해야 하는데, 이러한 정보들의 집합DTD는 문서 타입 정의라는 뜻으로 XML 문서의 구조 및 해당 문서에서 사용할 수 있는 적법한 요소와 속성을 정의한다<!DOCTYPE food [
<!ELEMENT food (name,type,cost)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT type (#PCDATA)>
<!ELEMENT cost (#PCDATA)>
]>
<!-- <food> 요소가 <name>, <type>, <cost> 세 요소를 반드시 포함 -->| XML | HTML |
|---|---|
| 사용자가 임의로 태그를 만들 수 있음 | 미리 정의된 태그가 존재 |
| 대소문자를 구분 | 대소문자를 구분하지 않음 |
| 모든 태그를 닫아야 함 | 일부 태그에 닫는 태그가 없음 |
| 정보 전달에 중점 | 데이터 표시에 중점 |
JSON과 XML의 공통점
| XML | JSON |
|---|---|
| 비교적 구문이 긺 | 비교적 구문이 짧음 |
| 배열을 사용할 수 없음 | 배열을 사용할 수 있음 |
| 모든 태그를 닫아야 함 | 닫는 태그가 없음 |
| XML DOM을 사용해 문서에 접근 | 문자열을 바로 파싱해 처리 속도가 빠름 |
<employees>
<employee>
<firstName>John</firstName> <lastName>Doe</lastName>
</employee>
<employee>
<firstName>Anna</firstName> <lastName>Smith</lastName>
</employee>
<employee>
<firstName>Peter</firstName> <lastName>Jones</lastName>
</employee>
</employees>
{
"employees":[
{ "firstName":"John", "lastName":"Doe" },
{ "firstName":"Anna", "lastName":"Smith" },
{ "firstName":"Peter", "lastName":"Jones" }
]
}
XML 문서의 특정 요소나 속성에 접근하기 위한 경로를 지정하는 언어/를 활용해 요소를 연결하며 작성@를 사용해서 표현/html/body/div/span[@class='regular_price']
DOM(Document Object Model)이라는 객체 트리 구조로 생성
사용자 인터페이스 : 요청한 페이지를 보여주는 창을 제외한 주소 표시줄, 뒤로가기 등의 부분브라우저 엔진 : 사용자 인터페이스와 렌더링 엔진 사이의 동작을 제어렌더링 엔진 : 요청한 콘텐츠를 표시통신 : HTTP 요청과 같은 네트워크 호출UI 백엔드 : 콤보 박스 창 같은 기본적인 장치를 그림자바스크립트 해석기 : 자바스크립트 코드를 해석하고 실행자료 저장소 : 자료를 저장하는 계층
< 문자를 만나면 태그 열림 상태a-z 문자를 만나면 시작 태그 토큰을 생성 → 태그 이름 상태/ 문자를 만나면 종료 태그 토큰 생성 → 태그 이름 상태> 문자를 만나면 다시 자료 상태로 바뀜
identifier : 식별하기 위한 이름 (예시. HTML, BODY)keyword : 미리 지정한 예약어seperator : 글자를 구분하는 문자 (예시. <, >, [, ], ,)operator : 연산을 위한 심볼 (예시. +, <, =)literal : 숫자, 논리, 문자 (예시. true, NULL)comment : 줄 또는 블록 코멘터리 (예시. <!comment>)참고자료
https://d2.naver.com/helloworld/59361
http://www.tcpschool.com/xml/xml_basic_document