본문 바로가기
IT/단어

XML 이란?

by 하요 2022. 4. 13.
반응형

정의

  • eXtensible Markup Language 약자이다.
  • W3C에서 개발된, 다른 특수한 목적을 갖는 마크업 언어를 만드는데 사용하도록 권장하는 다목적 마크업 언어이다.
  • SGML의 단순화된 부분집합으로, 다른 많은 종류의 데이터를 기술하는 데 사용할 수 있다.

 

XML vs HTML

  xml html
data 포커스 data 전달 data 표현
태그(tag) 사용 미정의 정의

 

특징

  • 표준성
    W3C에서 표준화를 주도하며, SGML과 HTML의 한계를 극복하기 위하여 만든 표준 인터넷 언어.
  • 분리성
    표현과 내용이 완전히 분리, XML 문서는 데이터의 구조와 내용을 기술하고 있으며, 스타일 시트를 이용하여 다양한 방식으로 데이터를 표현.
  • 단순성, 호환성
    XML 문서는 텍스트로 되어 있기 때문에 하드웨어나 소프트웨어에 의존하지 않고 읽어 들일 수 있다는 장점을 가지고 있으며, 이러한 특징은 다양한 시스템간에 상호 작용을 중계하는데 XML을 이용될 수 있게 한다.
  • 수용성
    HTML과 같이 현재 인터넷에서 가장 많이 사용되는 HTTP 프로토콜을 이용하여 전달.
  • 확장성
    XML은 확장성 있는 태그를 사용하고 있음으로써, 어떤 분야의 데이터도 정확하게 기술.
  • 정보검색의 정확성
    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>Aples</h:td>
        <h:td>Bananas</h:td>
	</h:tr>
<h:table>
<f:table xmlns:f="http://www.w3schools.com/funiture">
	<f:name>African Table<f:name>
    <f:width>80</f:width>
    <f:length>120</f:length>
<f:table>

 

Prefix

* 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 Structure

  • XML Schema : DTD와 유사하게, XML 문서의 구조를 정의하기 위한 문서지만, 그 자체가 XML Syntax로 쓰여진 XML 문서입니다.(XML-based alternative to DTD)
<xs:element name="note">

<xs:complexType>
	<xs:sequenxe>
    	<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:sequenxe>
</xs:complexType>
</xs:element>

XML Schema

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

 

 

  • 확장성 연결 언어
    - XLink 방식으로 1대 다, 다 대 1 관계를 통해 마크업 언어를 링크시킬 수 있습니다. 또한 Xpointer를 이용해 문서의 특정 부분만 링크시킬 수 있다.
  • Parser
    -XML 문법을 읽고 정보를 추출하는 기능을 가진 프로그램.
    (프로그램이 직접 XML 문서에서 정보 데이터를 추출하는 것이 아니라 XML 문서에서의 정보 획득은 파서(Parser)를 통해서 이루어집니다.)
    -파서는 프로그램에 대해 전혀 알 필요가 없으며 그 프로그램에서 사용하는 XML 문서 형식에 대해서도 알 필요가 없습니다.
    -하나의 파서는 한 프로그램과 그와 전혀 관련이 없는 다른 프로그램에서 똑같이 사용할 수 있다.
    (플랫폼과 언어 그리고 프로그램에 상관없이 XML문서를 인식.)
    -XML 문서에 사용된 언어는 파서와 전혀 관련이 없다.
반응형

'IT > 단어' 카테고리의 다른 글

myBatis란?  (0) 2022.04.18
Hosts 파일 위치 및 수정  (0) 2022.04.16
RSS란?  (0) 2022.04.12
Maven 이란?  (0) 2022.03.31
Manifest 파일이란?  (0) 2021.04.14

댓글