Java - Xml

Xml형식이 무엇인지 알아보자

Posted by Yan on April 25, 2021

Xml

  • Extensible Markup Language
  • 웹에서 구조화한 문서를 표현하고 전송하도록 설계한 마크업 언어.
  • 문서 내용에 대한 구조와 의미를 기술하기 위한 언어.
  • 다른 특수한 목적을 갖는 마크업 언어를 만드는 데 사용하도록 권장되는 다목적 마크업 언어, 메타언어다. 확장성이 뛰어나고 간단하다.

기본 개념

  • 구조적인 데이터로 표현하여 작성
  • HTML과 비슷해보이지만 다름. HTML은 정해진 태그를 사용하고, XML은 동적으로 생성.
  • 텍스트지만 읽는 것만 의미하지는 않는다. 규칙이 엄격하고, 유효성이 검증된 텍스트다.
  • 확장가능성 : 기존 구조 내에서 데이터 수를 변동할 수 있다.
  • 새로운 기술이 아니라 발전한 기술이다. SGML, HTML등으로부터 장점을 가져와서 발전한 기술이다.
  • HTML에서 XHTML로 발전
  • 모듈식이다. 다른 포멧을 조합하거나 사용해서 새로운 문서 포멧을 정의하는 것을 허용한다.

설계 목표

  1. 인터넷에서 바로 사용할 수 있어야 한다.
  2. 다양한 종류의 애플리케이션을 지원해야 한다.
  3. SGML과 호환되어야 한다.
  4. XML문서를 처리하는 프로그램은 사용하기 쉬워야 한다.
  5. 선택사항이 최소여야 한다.
  6. 문서가 쉬워야 한다.
  7. 설계를 빠르게 할 수 있어야 한다.
  8. 설계가 정형적이고 간결해야 한다(필수).
  9. 문서를 만들기 쉬워야 한다.

문서 구조

  1. XML선언부 <?xml version="1.0" encoding="UTF-8" standalone="yes 또는 no"?>
  2. DTD, XML스키마 선언, 네임 스페이스 선언
  3. XML 태그와 데이터
  • 인코딩, 독립형 여부는 선택 속성
  • 인코딩 기본값은 UTF-8
  • 독립성 여부 : 해당 문서를 해석할 때 외부 DTD 문서를 참조해야하는지 여부를 XML파서에게 전달할지 안할지. 기본값은 yes

XML 요소

  • <태그명>요소 내용</태그명>
  • 요소내용 : PCDATA(Parsed Character DATA)
  • 최상위 태그는 하나만 가질 수 있다. 최상위 요소는 루트요소, 문서요소라고 함.
  • XML 문서 구조는 트리형식.

태그 이름 규칙

  • 예약어 사용 금지
  • 처음과 중간에 공백 사용 금지
  • 숫자로 시작 금지. 문자나 _만 가능함.

XML attribute

  • 속성 : 태그 내에 인라인으로 정보나 데이터를 표현하는 것.
  • 속성은 빈 문자열도 괜찮으니 반드시 값을 가져야함.
  • 속성 이름은 태그 이름 규칙을 따름
  • 한 요소 내에 중복된 속성 이름 사용 금지
  • 속성 값은 ""''로 감싼다.
  • 태그는 확장성이 용이함.
  • 속성은 단일값을 표현하기에 적합.
  • 표현하려는 데이터가 의존적인 경우 속성으로 표현하는 것을 권장.

CDATA

  • PCDATA의 반댓말.(Character DATA)
  • 문자 데이터를 XML데이터로 해섟하지 않고 그대로 표현하는 것.
  • <![CDATA[특수 문자가 포함된 문자열]]>
  • 태그 내부 인라인에는 쓸 수 없음

참고자료 w3c