언어/html

xml

조규현15 2015. 1. 10. 14:13
반응형

XML  (extensible markup Language)

은 HTML (hyper text markup language)와 유사한 SGML (Standard generalized markup language)의 자식이다.


HTML과 유사하지만 HTML의 단점을 보완하기 위해 개발되었으며 아래와 같은 예로써 그 차이를 살펴본다.

HTML


XML

둘 다 표현방식으로 <h2> 같은 태그를 사용한다. 이 둘은 마크업 언어로서, 내용과 그 내용의 역할을 기록할 수 있다.
HTML은 태그에 기초하여 중첩될 수 있다. 또 <Br> 같은 태그는 열린채로 쓰일 수 있지만 XML은 꼭 닫혀야 한다.

> XHTML은 HTML을 XML과 좀 더 유사하게 발전시킨 것이다.


TML과 XML 둘 모두 사람이 읽기에 무리가 없다. 다만, HTML같은 경우 내용에 대한 명시적인 정보가 없다. 이런 문제는 HTML 문서가 구조 정보, 문서의 구성 요소들과 그들 사이의 관계에 대한 정보를 포함하고 있지 않기 때문에 발생한다.

대조적으로 XML 문서에서는 정보의 모든 내용이 설명되며 그들의 관계의 일부 형태 역시 중첩 구조를 통해서 정의된다.

 물론, HTML 표현 방식이 XML 보다 더 많은 사항을 알려 주지만 약점이 될 수 있다. HTML은 반드시 서식을 규정해야한다. XML은 내용을 서식과 분리시킨다. 즉, 내용은 표시하고 다른 용도로도 사용될 수 있다.


XML은 마크업을 위한 메타 언어로써 자신만의 태그를 정의하는 것을 허용한다. XML이 어플리케이션 간의 표준 데이터 교환 형식이 될 수 있다는 점이 중요하며 XML의 사용이 문서 마크업 언어라는 용도 보다 데이터 교환 형식으로써 사용되고 있다. 이러한 특징은 데이터 교환시 데이터의 독립성을 보장한다.


XML은 프롤로그, 여러 개의 요소, 그리고 선택적인 구성 요소인 에필로그로 구성된다.


> 프롤로그는 XML 선언과 선택적인 외부 구조화 문서 참조로 이루어져 있다.

<?xml version="1.0" encoding="UTF-16"?>


외부 구조화 문서 참조는 다음과 같다.

<!DOCTYPE book SYSTEM "book.dtd">

> 로컬파일 이름과 URL 모두를 사용하고자 한다면 PUBLIC 레이블을 사용해야 한다.


> 요소는 아래와 같다


빈요소는 <game/>으로 쓰인다.


> 속성은 아래와 같다.

<game name="LOL" style="AOS"></game>

속성의 유무는 자유이다. 속성은 중첩될 수 없다.


1. DTD 와 XML 스키마

XML 스키마는 XML 문서의 구조를 정의하는 데 있어서 중요하다. XML 스키마의 특징은 그 문법이 XML 자체를 기초로 하고 있다는 것이다. 이와 같은 설계는 가독성을 높여주며 기술의 재사용을 가능하게 한다.

DTD에서처럼 별도의 문법을 사용하기 위해 별도의 파서나 편집기가 필요없다. XML 스키마에는 어떤 종류의 XML도 적용된다.

XML 스키마에서 이미 존재하는 타입을 확장하거나 제한함으로써 새로운 타입을 정의 할 수 있다. 이러한 특징은 새로운 스키마를 구축하는 것을 가능하게 하여 업무량을 줄여 준다. XML 문서에서 사용될 수 있는 상세한 데이터 타입들을 제공한다(DTD는 문자열만을 다룰 수 있다.)



xmlns 속성에서 접두사는 생략이 가능하다(기본 설정으로 사용한다는 것을 명시한다)


요소

<element name ="..."/>

유소 유형은 type과 같은 여러 개의 선택적 속성

type="..."또는 카디날리티 제약 조건을 가질 수 있다.

1. minOccurs ="x"(x는 임의의 자연수 (0 포함))

2. maxOccurs ="x"(x는 임의의 자연수 (0 포함) 또는 unbounded(무한))

위 둘은 DTD에서의 ?, *, +와 같은 카디날리티 연산자이다.

ex

<element name="head" minOccurs="1" maxOccurs="!"/>


속성

<attribute name="..."/>

type="..."

또는 존재 여부 use="x" (x는 optional 또는 required 또는 prohibited)

ex

<attribute name="id" type="ID" use="required"/>


데이터 타입

1. 숫자 : interger, short, byte, long, float, decimal

2. 문자열 :string, ID, IDREF, CDATA, language

3. 날짜, 시간 : time, date, gMonth, gYear


이 외에도 sequence, all, choice가 있다.



네임스페이스

 

 xmlns="locatiopn" location은 DTD, 스키마의 주소이다.



2. XPath


반응형