[XML]

[XML] - Content

Jelly-fish 2024. 1. 31. 10:13
■■■ XML(eXtensible Markup Language) ■■■

(마크업 언어(markup 言語, markup language)는
태그 등을 이용하여 문서나 데이터의 구조를 명기하는 언어의 한 가지이다.)

○ 개요

    마크업이란 문서 내용 이외에 문서 구조를 정의하거나 표현하기 위해 정의한
    부가적인 정보라 할 수 있으며, 마크업의 표현은 각 어플리케이션에서 정의한
    고유한 방식으로 이루어진다.
    즉, 문서 편집기마다 마크업을 표현하는 방법이 서로 다르다는 의미이다.


aflvekdc 45 99443304221
vleockde 49 99530219432

01022256694
(같은 문화권일 경우, 바로 전화번호임을 알 수 있지만 다른 문화권이면 전화번호 항목인지 알 수 없다. 따라서 태그로 구분하는 것.)

<people>
    <person sid="1">
    	<name>aflvekdc</name>
    	<age>45</age>
    	<tel>99443304221</tel>
    </person>
    <person sid="2">
    	<name>vleockde</name>
    	<age>49</age>
    	<tel>99530219432</tel>
    </person>
</people>​


※ 참고

   1) SGML(Standard Generalized Markup Language)
       SGML 은 기술적 문서 마크업을 생성하는 기법을 제공하는 표준 일반화
       마크업 언어로 디지털 문서를 플랫폼에 상관없이 사용하기 위한 목적으로
       만들어졌으며, 1986년에 ISO-8897 표준으로 제정되었고 문서의 논리적
       구조와 내용을 기술하기 위한 마크업이다.

       장점 : 시스템과 플랫폼에 독립적 / 재사용성 / 공개 표준
       단점 : - 작성 규칙의 복잡성으로 인해 전문가들만을 위한 언어
                 - 관련 업계의 범용적인 지원 미비

       → 이와 같은 단점을 어느정도 해결하고자 만들어진 마크업 언어
           바로 HTML 이다.

   2) HTML(Hyper Text Markup Language)
      HTML 은 웹에서 정보를 표현할 목적으로 제안한 마크업 언어
      SGML 태그 중 일부를 미리 정의해서 사용하기 쉽게 만든 것이 바로 HTML 이다.
      이러한 HTML 은 인터넷의 빠른 보급과 확장으로 급성장하였고
      현재 가장 많이 사용되는 마크업 언어이다.

      장점 : 웹 정보를 표현하는데 있어서 매우 범용적이다.
      단점 : - 사용할 수 있는 태그가 제한적이다.
               - 문서의 내용과 이를 화면에 표현하기 위한 정보만 존재한다.
                 따라서 태그 내의 내용이 어떤 의미의 데이터를 포함하는지 알 수 없다.
              - 문서에 포함된 정보 간에 연관성을 표현할 수 없고,
                관련 있는 정보를 탐색하기 어렵다.
              - 문서의 유효성을 검증하기 어렵다.
              - 전체 문서만 표현할 수 있다.


   3) XML (Extensible Markup Language)
      XML 은 SGML 과 HTML 의 문제점을 해결할 목적으로 개발된 언어로
     SGML 로 부터 정보의 구조적 기술과 정보 내용과 표시 정보를 분리한 구조를 이어받고
     HTML 로 부터 인터넷의 이용 환경을 이어받았다.
     즉, XML 은 웹에서 구조화된 문서를 표현하고 전송할 수 있도록 설계된 마크업 언어로
     기존 HTML 의 한계와 SGML 의 복잡함을 해결하기 위한 방안으로 제시된 마크업 언어로
     다양한 표현이 가능하고 확장성이 뛰어나며 간단하다.
     또한, 플랫폼 독립적이며, 웹은 물론 어플리케이션에서도 사용이 가능하다.

     HTML 은 정해진 태그만을 사용하고 태그의 숫자도 제한을 두어서
     사용이 편리하긴 하지만 태그가 미리 정해져있다는 단점이 있다.
     즉, 시시각각으로 변하는 인터넷 사용자들의 데이터 표현에 대한 요구를 수용하기 위해서는
     태그도 그에 따라 새로운 태그가 필요할 때가 있기 마련인데
     새로운 태그를 만들 수 없는 것이다.

     그래서 정해진 태그가 아니라 필요할 때 마다 태그를 만들어서 사용할 수 있는 요구가
     일어나기 시작했고, 이 요구에 대한 수용이 바로 XML 이다.
     결국 XML 은 SGML(표준화된 일반 마크업 언어)이 가지고 있는 장점인
     문서의 구조와 속성을 그대로 가지고 있으며,
     HTML 의 단점인 정해진 태그밖에 사용할 수 없다는 것을 보완해서 나오게 된 것이다.


○ XML / HTML / SGML 비교

------------------------------------------------------------------------------------------------------------------------------------
   구분           HTML                                     SGML                                    XML
------------------------------------------------------------------------------------------------------------------------------------
   태그          내장된 DTD 정의 /                    사용자정의 태그 사용                사용자정의 태그 사용   
                   사용자 정의 불가능
------------------------------------------------------------------------------------------------------------------------------------
  문서 재사용 불가능                                     가능                                      가능
------------------------------------------------------------------------------------------------------------------------------------

  응용          단순한 문서의                           복잡한 구조의 문서 및              SGML 과 동일 /
                  Presentation                             방대한 내용을 요구하는            웹에서 정보 교환
                                                                      문서
------------------------------------------------------------------------------------------------------------------------------------
  난이도        쉬움                                        복잡하고 어려움                      중간 정도(SGML 의 단순화)
------------------------------------------------------------------------------------------------------------------------------------
  검색                검색 어려움                              자료의 표현과 내용이               SGML 과 동일
                        (검색 엔진 필요)                        분리되어 정확한 검색이
                                                                      가능
------------------------------------------------------------------------------------------------------------------------------------
  출력방식     CSS                                        DSSSL                                     XSL
------------------------------------------------------------------------------------------------------------------------------------
  데이터 교환   교환 시 부가되는                      표현부와 내용부가                    SGML 과 동일
                        작업량이 방대함                       분리되어 교환이 용이함
------------------------------------------------------------------------------------------------------------------------------------

○ XML 응용 분야

    분야 기술 내용
------------------------------------------------------------------------------------------------------------------------------------
    웹/인터넷 CDF 웹 캐스팅(web casting)을 위한 메타 데이터를 기술하는 형식
                                                         마이크로소프트의 액티브 채널을 위한 언어
OSD 소프트웨어 배포와 설치를 위한 정보를 기술하기 위한 형식
------------------------------------------------------------------------------------------------------------------------------------
    메타 데이터 RDF 메타 데이터를 기술하기 위한 범용적 데이터 기술 방법
기존의 메타 데이터 기술 방법을 모두 포함
최근에는 시맨틱 웹을 구현하기 위한 기술 언어로 사용
MCF 넷스케이프에서 제안한 메타 데이터 기술 방법
------------------------------------------------------------------------------------------------------------------------------------
    멀티미디어 SML 멀티미디어 데이터의 동기화를 위한 언어
    / 그래픽 PGML 2D 그래픽 데이터를 텍스트 형태로 표현하는 언어
    / 스피치 MusicML 음악 악보를 위한 언어
악보에 쓰이는 다양한 기호를 표시하기 위한 언어
JSML 문서화한 정보를 스피커로 듣기 위해서 SUN 에서 발표했던
XML 어플리케이션 언어
------------------------------------------------------------------------------------------------------------------------------------
   비즈니스 OFK 금융 정보(화폐 정보)를 교환하기 위한 언어
   / 금융 ML/EDI 서로 다른 환경에서 데이터를 주고받기 위한 프레임워크를
제공하기 위해 제안된 언어
OTP 거래와 관련한 프로토콜 정의
ICE 비즈니스 업계의 정보를 주고받기 위한 표준
------------------------------------------------------------------------------------------------------------------------------------
   과학 MathML 수학 기호를 표시하기 위한 언어
CML 화학식 표기를 위한 언어
BSML DNA 구조와 같은 정보를 인코딩하고 디스플레이하기 위한 언어
------------------------------------------------------------------------------------------------------------------------------------


○ 마크업 언어
    - 태그를 가지고 데이터를 표현하는 언어 
    - <시작태그>데이터</끝태그> → 엘리먼트

    - HTML 은 데이터를 표현하는 태그의 종류가 미리 지정되어 있는 상태이다.
      <div>, <table>, <br> 태그 등이 존재한다.

    - XML 은 데이터 형식을 표현하는 언어이다.
      태그의 종류를 사용자 스스로 선택, 결정한다.
      <이름>노은하</이름>
      <전화번호>010-1212-3434</전화번호>


○ HTML 과 XML 문서의 내용 비교
    
    - 이름, 전화번호, 이메일 등의 데이터를 다루는 과정을
      HTML 방식으로 보면 다음과 같다.

      <table>
               <tr>
                     <td>이주형</td>
                     <td>010-1212-3434</td>
                     <td>ljh@test.com</td>
               </tr>
      </table>

- XML 방식으로 보면 다음과 같다.

 <memberInfo mid="1">
<name>이주형</name>
<tel>010-1212-3434</tel>
<email>ljh@test.com</email>
 </memberInfo>

○ XML 문서 작성의 기본 규칙

   - XML 문서 상단에서 선언부 작성
    <?xml version="1.0"?>
    <?xml version="1.0" encoding="UTF-8"?>

   - 루트 엘리먼트 지정
     루트 엘리먼트의 이름은 사용자 스스로 결정.
     나머지 모든 엘리먼트는 루트 엘리먼트 하위에만 존재할 수 있다.
     <?xml version="1.0" encoding="UTF-8"?>
     <루트>
     </루트>

  - 물리적으로 저장할 때 확장자 『.xml』 사용.

  - 시작 태그와 끝 태그를 짝을 맞추어 사용.

  - 태그 간의 포함 관계를 이루어야 한다.
    (즉, 부모 자식 관계 성립)

  - 태그에는 속성 표현이 가능하다.
    (『속성="값"』 형태로 표기한다.)