본문 바로가기
웹 개발/웹프로그래밍

XML 기초 특징 구조

by KISCH 2020. 9. 29.
반응형

 

 

기초  

 

개요

XML (EXtensible Markup Language) — 데이터를 저장하고 전달할 목적으로 데이터의 구조를 기술하기 위한 언어

  • 다른 시스템끼리 다양한 종류의 데이터를 손쉽게 교환 (Html 의 한계 극복)
  • 확장성 : 새로운 태그 만들어 추가할 수 있습니다. 
  • 데이터를 전달하고 저장하는 것을 목적으로 합니다.

 

XML 특징

 

Html 문서의 데이터를 XML 파일로 따로 저장하고 간단하게 읽어 들여 이용할 수 있습니다.

홈페이지 구축기능, 검색기능 향상, 웹 페이지의 추가와 작성이 편리

단점 : 복잡하고 응답 시간이 느립니다.

 

 

 

기본   

 

구조

 

1
<?xml version="1.0" encoding="UTF-8"?>
cs

version : XML 버전

encoding : 문자셋

standalone : 외부 소스의 데이터에 의존하고 있는 문서인지 아닌지 xml 파서에 알려주는 역할

 

문법

 

1. 모든 xml 요소는 종료태그를 가져야 합니다.

<h1> xml </h1>

<hr />

 

2. 대소문자를 구분 : 다른 태그로 인식하므로 시작태그와 종료태그가 대소문자까지 같아야합니다.

 

3. 시작태그와 종료태그가 순서가 맞아야 합니다.

<p><strong> 순서 </strong> </p> <!-- strong과 p 종료태그의 순서가 바뀌면 안 됩니다. -->

 

4. 속성값은 따옴표

 

5. 띄어쓰기 인식

 

엔티티 (Entity)

 

기호를 기존에 사용하던 의미 그대로 사용하기 위해서 만든 문자셋

1. < 는 &lt;

2. > 는 &gt;

3. & 는 &amp;

4. " 는 &quot;

5. ' 는 &apos;

 

요소

 

xml 문서는 xml 프롤로그 부분봐 xml 요소 부분으로 나뉩니다.

xml 요소 : 시작 태그부터 종료 태그까지의 모든 것

 

속성

 

<student>

<name> John Doe </name>

</student>

 

<student name="John Doe">

 

위의 두 xml은 같은 정보를 갖고 있지만 위는 요소 아래는 속성으로 값을 갖고 있습니다.

 

네임스페이스

 

요소 간의 이름에 대한 충돌을 방지해 주는 방법을 제공

<요소이름 xmlns:prefix="URI"> <!-- URI는 인터넷에 있는 자원을 나타내는 유일한 주소 -->

 

 

 

 

 

 

 

 

 

 

XSLT   

 

XSL

XML 문서를 위한 스타일 시트 언어라고 볼 수 있습니다. 각각의 장치가 전달받은 xml 문서를 자신이 사용하는 데이터 구조로 변화 시 필요한 규칙 명세를 작성할 수 있는 언어입니다.
 
XSLT : xml 문서를 다른 구조의 문서로 변환시키기 위한 언어
XPath : xml 문서의 특정 요소나 속성에 접근하기 위한 경로를 지정하는 언어
XSL-FO : 데이터를 출력하기 위한 목적으로 설계된 언어로 CSS3로 대체
 

XSLT 변환 과정

1. 변환 (Transformation) : xml 문서를 다른 구조의 xml 분서로 변환하는 과정
2. 서식 설정 : xml 문서를 특정 데이터 구조의 비 xml 문서로 변환하는 과정
 
XSLT 문서 작성
XML 문서를 XSLT 문서를 연결
웹 브라우저에서 XML문서 확인
 

XPath

XML 문서의 일부분을 선택하고 처리하기 위해 만들어진 언어
XPath 표현식 
  • 위치 경로 (location path) : xml 문서의 각 노드의 위치를 지정하기 위한 XPath 표현식
  • 경로 표현식 : 검색방향::노드테스트[필터표현식]
  • 필터 표현식 : 특정 노드나 특정 값을 포함하는 노드를 선택
XPath 함수
position() : 현재 노드셋 안에서의 노드의 위치를 반환
last() 현재 노드셋의 마지막 노드를 반환
count(위치경로) : 지정된 노드셋의 총 노드 개수를 반환
name() : 현재 노드의 이름을 반환
name(위치경로) : 지정된 노드셋의 첫 번째 노드를 반환함
 
 

 

XML DOM  

 

DOM

XML 이나 HTML 문서에 접근하기 위한 API
 

XML DOM

XML 문서에 접근하여 해당 문서를 조작할 수 있는 표준화된 방법을 정의
 
 

 

XMLHttpRequest 

 

XMLHttpRequest 객체

대부분의 주요 웹 브라우저는 서버에 데이터를 요청하기 위한 XMLHttpRequest 객체를 내장
서버로부터 XML 데이터를 전송받아 처리하는 데 사용됩니다.
 
객체 생성 : var xmlHttp = new XMLHttpRequest();
 

프로퍼티

readyState 프로퍼티 : XMLHttpRequest 객체의 현재 상태
  • UNSENT (숫자 0) : 객체 생성
  • OPENED (숫자 1) : open 메서드가 성공적으로 실행
  • HEADERS_RECEIVED (숫자 2) : 모든 요청에 대한 응답이 도착
  • LOADING (숫자 3) : 요청한 데이터를 처리
  • DONE (숫자 4) : 요청한 데이터의 처리가 완료되어 응답할 준비 완료
 
status 프로퍼티 : 서버의 문서 상태
responseText 프로퍼티 : 서버에 요청하여 응답으로 받은 데이터를 문자열로 저장
responseXML 프로퍼티 : 서버에 요청하여 응답으로 받은 데이터를 XML DOM 객체로 저장
 
 

 

노드

 

노드

노드의 종류 : 문서노드, 요소노드, 속성노드, 텍스트노드, 주석노드
노드 트리 : 노드 트리는 노드들의 집합으로 노드 간의 관계를 나타냄
노드 관계 : 노드 트리의 모든 노드들은 서로 계층적 관계
 

노드 접근

getElementsByTagName() 메소드 이용 : 노드이름.getElementsByTagName("태그이름")
노드 트리를 연속적으로 탐색하여 접근
노드 간의 관계를 이용하여 접근 : parentNode, childNodes, firstChild, lastChild, nextSibling(다음 형제 노드), previousSibling(이전 형제 노드)
 

노드 리스트

getElementsByTagName() 메소드나 childNodes 속성값으로 반환되는 객체
 

노드 정보

노드에 대한 정보에는 프로퍼티를 사용하여 접근
 
1. nodeType
2. nodeName
3. nodeValue
 

노드의 조작

nodeValue 프로퍼티를 사용하여 특정 노드의 값을 확인
getAttribute() 메서드 : 속성 노드의 속성값을 반환
getAttributeNode() 메서드 : 특정 노드에 포함된 속성 노드 자체를 반환
setAttribute() 메서드 : 속성 노드의 속성값을 변경
replaceChild() 메서드 : 특정 노드 자체를 다른 노드로 바꿀 수 있습니다.
replaceData() 메서드 : 텍스트 노드의 텍스트 데이터를 바꿀 수 있습니다.
 

노드의 관리

appendChild() : 새로운 노드를 해당 노드의 자식 리스트의 맨 마지막에 추가
insertBefore() : 새로운 노드를 특정 자식 노드 바로 앞에 추가
insertData() : 텍스트 노드의 텍스트 데이터에 새로운 텍스트를 추가
 

노드의 생성

createElement() : 새로운 요소 노드 생성
createAttribute() : 속성 노드의 생성
createTextNode() : 텍스트 노드 생성
 

노드의 제거

removeChild() : 특정 노드를 제거
removeAttribute() : 자식 노드 리스트에서 특정 자식 노드를 제거
 

노드의 복제

cloneNode() : 특정 노드를 복제
 
 

 

DTD

 

스키마

다른 언어를 정의하기 위해 해당 언어에 필요한 요소와 속성 등 정보들의 집합
 

DTD (Document Type Definition)

xml 문서의 구조 및 해당 문서에서 사용할 수 있는 적법한 요소와 속성을 정의
 

XML 문서의 구성 요소

DTD 에서는 모든 XML 문서가 다음과 같은 구성 요소로 이루어져 있다고 봅니다.
 
1. 요소 : XML 문서를 구성하는 가장 중요한 요소
2. 속성 : 요소에 대한 추가적인 정보를 제공
3. 엔티티 : 다섯 개의 기호
4. PCDATA : 파서에 의해 분석될 문자 데이터
5. CDATA : 파서가 분석하지 않는 문자 데이터
 
 

 

XSD

 

DTD 단점

네임스페이스를 지원하지 않고 xml 문법이 아닌 별도의 문법으로 작성, 제한된 타입, 재사용과 확장이 불가능하다는 단점을 갖고 있습니다.
 

XSD

XML 스키마 정의를 의미하며, XML 문서의 구조 및 해당 문서가 포함할 수 있는 적법한 요소와 속성을 명시
 
 
 

 

 

 

관련포스트

xml

 

 

반응형

댓글