[Study] XML

productuidev·2022년 1월 15일
0

FE Study

목록 보기
6/67
post-thumbnail

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">
&lt;f:table xmlns:f="http://www.w3schools.com/furniture"&gt;
  &lt;f:name&gt;African Coffee Table&lt;/f:name&gt;
  &lt;f:width&gt;80&lt;/f:width&gt;
  &lt;f:length&gt;120&lt;/f:length&gt;
&lt;/f:table&gt;
</f:table>
  • 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">&lt;xs:element name="note"&gt;

&lt;xs:complexType&gt;
  &lt;xs:sequence&gt;
    &lt;xs:element name="to" type="xs:string"/&gt;
    &lt;xs:element name="from" type="xs:string"/&gt;
    &lt;xs:element name="heading" type="xs:string"/&gt;
    &lt;xs:element name="body" type="xs:string"/&gt;
  &lt;/xs:sequence&gt;
&lt;/xs:complexType&gt;

&lt;/xs:element&gt;
</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 등
데이터 교환이 필요한 모든 분야에 활용


출처 - https://helloworld-88.tistory.com/67

profile
필요한 내용을 공부하고 저장합니다.

0개의 댓글