곰돌이 놀이터

[기본] XML 이란? 본문

기본 개발 지식

[기본] XML 이란?

달나라 곰돌이 2018. 8. 15. 22:36

 XML 의 정의 


■ Extensible Markup Language 의 약자로 W3C 권고 확장성 있는 마크업 언어

■ W3C가 인간과 응용프로그램간, 혹은 응용프로그램 간에 정보를 쉽게 교환하기 위해 만든 데이터 교환 포멧

■ eXtensible : 데이터를 설명하는 태그(Tag)를 사용자 마음대로 정의할 수 있음, 다른 마크업 언어 생성 가능


 XML과 HTML의 차이 


■ XML은 data를 전달하는 데에 포커스를 맞춘 언어

■ HTML은 data를 표현하는 데에 포커스를 맞춘 언어

■ XML은 HTML과 달리, tag가 미리 정의되어 있지 않다.


 XML 언어의 특징 


■ 표준성 : 

W3C에서 표준화를 주도하며, SGML 과 HTML 의 한계를 극복하기 위하여 만든 표준 인터넷 언어

■ 분리성 : 

표현과 내용이 완전히 분리, XML 문서는 데이터의 구조와 내용을 기술하고 있으며, 스타일 시트를 이용하여 다양한 방식으로 데이터 표현

■ 단순성, 호환성 : 

XML 문서는 텍스트로 되어 있기 때문에 하드웨어나 소프트웨어에 의존하지 않고 읽어 들일 수 있다는 장점을 가지고 있으며, 이러한 특징은 다양한 시스템간에 상호 작용을 중계하는데 XML 을 이용될 수 있게 한다.

■ 수용성 : 

HTML 과 같이 현재 인터넷에서 가장 많이 사용되는 HTTP 프로토콜을 이용하여 전달

■ 확장성 :

 XML 은 확장성 있는 태그를 사용하고 있음으로써, 어떤 분야의 데이터도 정확하게 기술

■ 정보검색의 정확성 : 

XML 문서의 경우 의미가 있는 태그를 사용함으로써 원하는 데이터를 쉽게 찾음


 XML 언어의 장점 


■ 텍스트로 이뤄져 있기 때문에 어떤 시스템이든지간에 읽어 들인다

■ 문서 자체가 정보와 구조를 포함하고 있기 때문에 사람이 읽어도 그 안의 데이터의 의미를 쉽게 이해한다

■ HTML 처럼 쉬우면서도, SGML 의 강력한 기능을 갖는다. 즉, 사용하기 쉬우면서 강력하게 데이터를 정의하고 데이터를 표현한다

■ 확장성 있는 마크업 언어로 데이터를 정의하는 태그를 마음대로 정의한다

■ 새로운 마크업 언어를 만든다


 XMl 의 구조 


XML Tree Structure

XML 문서는 "root" 에서 시작해서 "leaves" 로 뻗어나가는 트리 구조 


■ The XML Prolog

XML 버전과 문자 인코딩을 정의하는 prolog

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

 XML Namespaces - The xmlns Attribute

Name conflict (여러 개의 xml 파일을 사용할 때 각각의 xml 파일에서 정의하고 있는 tag 이름이 겹쳐 충돌하는 문제) 를 해결하기 위해, XML 에서는 Prefix 를 사용할 수 있다. 

<h:table xmlns:h="http://www.w3.org/TR/html4/">
  <h:tr>
    <h:td>Apples</h:td>
    <h:td>Bananas</h:td>
  </h:tr>
</h:table>

<f:table xmlns:f="http://www.w3schools.com/furniture">
  <f:name>African Coffee Table</f:name>
  <f:width>80</f:width>
  <f:length>120</f:length>
</f:table>

Note : namespace URI 는 단지 unique name 을 위한 용도일 뿐, parser에 의해 참조되지 않는다. 하지만 실제로 namespace 정보를 담고 있는 웹 페이지 주소를 활용하는 경우도 종종 있다.


DTD( Document Type Definition )

XML 문서의 구조structure 를 정의하기 위한 문서. 

<!DOCTYPE note
[
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>

■ XML Schema

DTD 와 유사하게, XML 문서의 구조를 정의하기 위한 문서이지만, 그 자체가 XML syntax 로 쓰여진 xml 문서이다. (XML-based alternative to DTD)

<xs:element name="note">

<xs:complexType>
  <xs:sequence>
    <xs:element name="to" type="xs:string"/>
    <xs:element name="from" type="xs:string"/>
    <xs:element name="heading" type="xs:string"/>
    <xs:element name="body" type="xs:string"/>
  </xs:sequence>
</xs:complexType>

</xs:element>

XML Schema 는 DTD 보다 많은 면에서 파워풀하고, 편리하다. Data type을 지원하며, XML syntax 로 쓰여질 수 있기 때문에, (DTD 처럼) 문서 구조를 정의하기 위한 다른 언어를 배울 필요가 없다.


확장성 연결 언어

XLink 방식 : 1 대 다, 다 대 1 관계를 통해 마크업 언어를 링크시킬 수 있다.

XPointer : 문서의 특정 부분만 링크시킬 수 있다.


■ Parser

- XML 문법을 읽고 정보를 추출하는 기능을 가진 프로그램.

프로그램이 직접 XML문서에서 정보 데이터를 추출하는 것이 아니라 XML 문서에서의 정보 획득은 파서를 통해서 이루어짐.

- 파서는 프로그램에 대해 전혀 알 필요가 없으며 그 프로그램에서 사용하는 XML 문서 형식에 대해서도 알 필요가 없음.

- 하나의 파서는 한 프로그램과 그와 전혀 관련이 없는 다른 프로그램에서 똑같이 사용할 수 있음.( 플랫폼과 언어 그리고 프로그램에 상관없이 XML문서를 인식 )

- XML 문서에 사용된 언어는 파서와 전혀 관련이 없음.


 XMl 의 응용분야 


■ XHTML, MathML, SVG, XUL, RSS, 그리고 RDF 등 데이터 교환이 필요한 모든 분야에 활용될 수 있다.


 참고 


http://smiler.tistory.com/entry/XML-%EC%9D%B4%EB%9E%80

http://aiceru.blogspot.com/2016/02/xml.html

http://asfirstalways.tistory.com/98

Comments