데이터교환 형식 - XML

이강용·2024년 1월 25일
0

CS

목록 보기
2/109

What is XML?

  • XML(Extensible Markup Language)은 마크업 형태를 쓰는 데이터 교환 형식

마크업 형태

  • 마크업(markup)은 태그 등을 이용하여 문서나 데이터의 구조를 나타내는 방법 (속성 부여 가능)

구성

  1. 프롤로그 : 버전, 인코딩
  2. 루트요소(단 하나만)
  3. 하위 요소들

그렇다면 HTML과 XML의 차이는 무엇인가?

  1. HTML의 용도는 데이터를 표시 / XML은 데이터를 저장 및 전송
  2. HTML에는 미리 정의된 태그가 있지만 사용자는 XML에서 고유한 태그를 만들고 정의 가능
  3. XMLdms 대/소문자를 구분하지만 HTML은 구분하지 않음
    👉🏻 대신 으로 태그를 작성하면 XML 구문 분석기에서 오류가 발생함
구분HTMLXML
목적웹 페이지 구조 및 스타일 정의, 정보 표시데이터 저장 및 전송, 시스템 간 교환 용이
유연성고정된 태그 세트 (<p>, <a> 등)사용자 정의 태그 가능, 확장성
규칙관대한 문법, 오류에 대한 유연한 동작엄격한 문법, well-formed 요구
검증DTD/스키마 불필요, 브라우저가 해석DTD/스키마 사용하여 구조 검증 가능
스타일링CSS와 결합하여 스타일/레이아웃 정의XSL, XSLT와 결합하여 XML 데이터 변환 및 스타일링
데이터 타입텍스트, 이미지, 링크 등 멀티미디어 컨텐츠다양한 데이터 타입 지원 (문자, 숫자, 날짜 등)

JSON과 XML 차이

  • JSON과 비교했을 때 닫힌 태그가 계속해서 들어가기 때문에 JSON과 비교하면 무겁다

  • Javascripte Object로 변환하기 위해서 JSON보다는 더 많은 노력이 필요하다
    👉🏻 JSON = JSON.parse()면 됨

    a.xml

    <?xml version ="1.0" encoding="UTF-8"?>
    <OSTLIST>
      <OST_ELEMENT like = "1">
          <name>마녀 배달부 키키</name>
          <song>따스함에 둘러쌓인다면</song>
      </OST_ELEMENT>
      <OST_ELEMENT like = "2">
          <name>하울의 움직이는 성</name>
          <song>세계의 약속</song>
      </OST_ELEMENT>
    </OSTLIST>

    a.js

    const fs = require('fs');
    const path = require('path');
    const parser = require('xml2json');
    let a = fs.readFileSync(path.join(__dirname,"a.xml"))
    a = parser.toJson(a)
    console.log(a)

XML의 활용

  • sitemap.xml으로 쓰임
  • 여러 언어에서도 독립적으로 쓰임

sitemap.xml

  • 서비스 내의 모든 페이지들을 리스트업한 데이터
  • 사이트가 매우 크거나 서로 링크가 종속적으로 연결되지 않은 경우 크롤러가 일부 페이지를 누락하는 일이 있는데 이를 sitemap.xml이 방지하고 모든 페이지들을 크롤링할 수 있도록 해줌 예시
    <?xml version="1.0" encoding="UTF-8"?>
    <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    <url>
      <loc>http://www.example.com/foo.html</loc>
      <lastmod>2018-06-04</lastmod>
    </url> <url>
      <loc>http://www.example.com/abc.html</loc>
      <lastmod>2018-06-04</lastmod>
    </url>
    </urlset>
profile
HW + SW = 1

0개의 댓글