주 메뉴 열기

바뀜

101 바이트 제거됨 ,  6년 전
편집 요약 없음
}}
 
[[File파일:RecipeBook XML Example.svg|thumb|325px|XML 예제]]
'''XML'''(Extensible Markup Language)은 [[W3C]]에서 다른 특수 목적의 [[마크업 언어]]를 만드는 용도에서 권장되는 다목적 [[마크업 언어]]이다. XML은 [[SGML]]의 단순화된 부분집합이지만, 수많은 종류의 데이터를 기술하는 데 적용할 수 있다. XML은 주로 다른 시스템, 특히 [[인터넷]]에 연결된 시스템끼리 데이터를 쉽게 주고 받을 수 있게 하여 HTML의 한계를 극복할 목적으로 만들어졌다.
 
XML은 [[마크업 언어]]의 일종으로, 문서를 [[:en:human-readable medium|사람]]과 [[Machine-readable data|기계]] 모두가 읽을 수 있는 [[파일 형식|형식]]으로 [[encoding|부호화]]하는 규칙의 집합을 정의한다. [[W3C]]가 만든 XML 1.0 Specification<ref>{{cite web인용|url=http://www.w3.org/TR/REC-xml |title제목=XML 1.0 Specification |publisher=World Wide Web Consortium |date= |accessdate=2010-08-22}}</ref>과 몇몇 다른 관련 명세들<ref>{{cite web인용|url=http://www.dblab.ntua.gr/~bikakis/XML%20and%20Semantic%20Web%20W3C%20Standards%20Timeline-History.pdf |format = PDF|title제목=XML and Semantic Web W3C Standards Timeline|date=2012-02-04}}</ref>과 모든 자유 [[개방형 표준]]<ref>{{웹 인용|제목=W3C DOCUMENT LICENSE|url=http://www.w3.org/Consortium/Legal/2002/copyright-documents-20021231}}</ref>에서 정의되었다.
|date=2012-02-04}}</ref>과 모든 자유 [[개방형 표준]]<ref>{{cite web|title=W3C DOCUMENT LICENSE|url=http://www.w3.org/Consortium/Legal/2002/copyright-documents-20021231}}</ref>에서 정의되었다.
 
XML의 설계 목표는 단순성, 일반성, [[인터넷]]을 통한 사용가능성을 강조하였다.<ref name="XML Goals">{{cite web인용|title제목=XML 1.0 Origin and Goals|url=http://www.w3.org/TR/REC-xml/#sec-origin-goals|accessdate=July 2009}}</ref> XML은 텍스트 데이터 형식으로 [[유니코드]]를 통해 전 세계 언어를 지원한다. XML 설계가 문서에 집중하지만, 임의의 [[자료구조]]를 나타내는 데 널리 쓰이고 있다. 예를 들어 [[웹 서비스]]가 그렇다.
 
많은 [[API]] (application programming interfaces)가 XML 데이터를 처리하는 소프트웨어 개발자를 지원하기 위해 개발되었다. 또한, XML 기반 언어의 정의를 돕기 위한 여러 가지 [[XML schema스키마|schema스키마 systems시스템]] 존재한다.
 
== 기본 개념 ==
 
===인코딩 감지===
유니코드 문자셋은문자 집합은 저장 또는 전송을 위해 여러 방법으로 부호화될 수 있다("인코딩"). Unicode itself defines encodings that cover the entire repertoire; 잘 알려진 것으로 [[UTF-8]]과 [[UTF-16]]이 있다.<ref>{{cite web인용|url=http://www.tbray.org/ongoing/When/200x/2003/04/26/UTF|title제목=Characters vs. Bytes}}</ref> 유니코드 이전에 [[ASCII]]나 [[ISO/IEC 8859]] 같은, 많은 텍스트 인코딩 방식이 있었다. 이들의 문자 집합은 대개 유니코드 문자 집합의 부분집합이다.
 
XML은 유니코드가 정의한 어떤 인코딩이든 사용하는 것을 허용하며, 문자들이 유니코드에 나타나는 다른 인코딩도 사용할 수 있다. XML은 또한 XML 프로세서가 안정적으로, 사전지식 없이, 어느 인코딩이 사용되고 있는지 결정하는 메커니즘을 제공한다.<ref>{{cite web인용|url=http://www.w3.org/TR/REC-xml/#sec-guessing|title제목=Autodetection of Character Encodings}}</ref> UTF-8 또는 UTF-16이 아닌 인코딩은 XML 파서에 인식되지 못할 가능성이 있다.
 
===주석===
 
DTD의 제한점:
* XML의 새로운 [[:en:feature (software design)|기능]]들에 대한 직접적인 지원이 없다. 가장 중요하게는 [[XML Namespace]].
* 표현성이 떨어진다. XML DTD는 SGML DTD보다 간단해서 정규 문법으로는 표현하지 못하는 구조가 있다. DTD는 rudimentary datatype만을 지원한다.
* 가독성이 떨어진다. DTD 설계자는 전형적으로 파라미터 엔티티를 많이 사용한다(텍스트 [[매크로]]처럼 동작하는). 이로써 복잡한 문법을 정의하기는 쉬워지지만 명료성이 떨어진다.
 
===XML 스키마===
{{Main|XML Schema스키마 (W3C)}}
DTD의 후계자로서 W3C에 의해 기술된 새로운 스키마 언어가 [[XML Schema (W3C)|XML Schema]]이다. often referred to by the [[initialism]] for XML Schema instances, XSD (XML Schema Definition). XSD는 DTD보다 XML 언어 기술에 훨씬 강력하다. 더 풍부한 [[Data type|datatyping]] 시스템을 사용하며 XML 문서 논리 구조에 더 세세한 제약을 가할 수 있다. XSD도 XML-기반 형식을 사용하므로, 일반적인 XML 도구로 처리할 수 있다.
 
 
== 같이 보기 ==