Xml
- Extensible Markup Language
- 웹에서 구조화한 문서를 표현하고 전송하도록 설계한 마크업 언어.
- 문서 내용에 대한 구조와 의미를 기술하기 위한 언어.
- 다른 특수한 목적을 갖는 마크업 언어를 만드는 데 사용하도록 권장되는 다목적 마크업 언어, 메타언어다. 확장성이 뛰어나고 간단하다.
기본 개념
- 구조적인 데이터로 표현하여 작성
- HTML과 비슷해보이지만 다름. HTML은 정해진 태그를 사용하고, XML은 동적으로 생성.
- 텍스트지만 읽는 것만 의미하지는 않는다. 규칙이 엄격하고, 유효성이 검증된 텍스트다.
- 확장가능성 : 기존 구조 내에서 데이터 수를 변동할 수 있다.
- 새로운 기술이 아니라 발전한 기술이다. SGML, HTML등으로부터 장점을 가져와서 발전한 기술이다.
- HTML에서 XHTML로 발전
- 모듈식이다. 다른 포멧을 조합하거나 사용해서 새로운 문서 포멧을 정의하는 것을 허용한다.
설계 목표
- 인터넷에서 바로 사용할 수 있어야 한다.
- 다양한 종류의 애플리케이션을 지원해야 한다.
- SGML과 호환되어야 한다.
- XML문서를 처리하는 프로그램은 사용하기 쉬워야 한다.
- 선택사항이 최소여야 한다.
- 문서가 쉬워야 한다.
- 설계를 빠르게 할 수 있어야 한다.
- 설계가 정형적이고 간결해야 한다(필수).
- 문서를 만들기 쉬워야 한다.
문서 구조
- XML선언부
<?xml version="1.0" encoding="UTF-8" standalone="yes 또는 no"?>
- DTD, XML스키마 선언, 네임 스페이스 선언
- XML 태그와 데이터
- 인코딩, 독립형 여부는 선택 속성
- 인코딩 기본값은 UTF-8
- 독립성 여부 : 해당 문서를 해석할 때 외부 DTD 문서를 참조해야하는지 여부를 XML파서에게 전달할지 안할지. 기본값은 yes
XML 요소
<태그명>요소 내용</태그명>
- 요소내용 : PCDATA(Parsed Character DATA)
- 최상위 태그는 하나만 가질 수 있다. 최상위 요소는 루트요소, 문서요소라고 함.
- XML 문서 구조는 트리형식.
태그 이름 규칙
- 예약어 사용 금지
- 처음과 중간에 공백 사용 금지
- 숫자로 시작 금지. 문자나 _만 가능함.
XML attribute
- 속성 : 태그 내에 인라인으로 정보나 데이터를 표현하는 것.
- 속성은 빈 문자열도 괜찮으니 반드시 값을 가져야함.
- 속성 이름은 태그 이름 규칙을 따름
- 한 요소 내에 중복된 속성 이름 사용 금지
- 속성 값은
""
나''
로 감싼다. - 태그는 확장성이 용이함.
- 속성은 단일값을 표현하기에 적합.
- 표현하려는 데이터가 의존적인 경우 속성으로 표현하는 것을 권장.
CDATA
- PCDATA의 반댓말.(Character DATA)
- 문자 데이터를 XML데이터로 해섟하지 않고 그대로 표현하는 것.
<![CDATA[특수 문자가 포함된 문자열]]>
- 태그 내부 인라인에는 쓸 수 없음
참고자료 w3c