메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

IT/모바일

XML Spec에 대하여

한빛미디어

|

2003-04-24

|

by HANBIT

11,170

저자: 김대곤

이 기사를 쓰려고 머리 속에 생각했을 때부터 하나의 사실과 어느 강사의 말이 맴돌았다. 정확하게 기억할 수는 없지만 어떤 강사가 개발자는 두 부류를 나누어진다고 했다. 영어가 되는 개발자영어가 안 되는 개발자… 그래서 누군가가 번역해 주기를 기다려야만 하는 개발자! 이 주장의 사실 여부를 떠나서 영어로 된 자료들은 기하급수적으로 늘어나고 있고, 자료의 질 또한 좋은 것이 사실이다. 그 중, 모든 XML 관련 서적 및 기사 관련 참고 리스트에 빠지지 않고 등장하는 자료가 있으니, 바로 W3C의 XML Spec이 그것이다. 그리고 항상 다음과 같은 말들이 따라온다. "어렵지 않다", "XML에 관한 가장 좋은 자료", "XML 공부를 어떻게, 어디서 시작해야 하는지 알려준다", 기타 등등… 그럼에도 불구하고 XML Spec 자체를 설명하는 글은 본 적이 없다. 너무 쉬워서인지는 몰라도.


[그림] Extensible Markup Language (XML) 1.0 (Second Edition)

XML Spec이 쉬운지 어려운지 그건 필자가 판단할 문제 아니지만 분명한 것은 XML Spec이 영어로 설명되어 있다는 점이다. 따라서 본 기사에서는 XML Spec의 한국어 번역이나 특정 용어설명에 그치기 보다는 직접 Spec을 읽는데 도움이 되도록 Spec이 가진 구조와 그 개요를 살펴보고 소개할 생각이다.

Spec은 크게 세 부분으로 구성되어 있다. 목차를 중심으로 목차 이전, 목차 이후부터 Appendix전까지, 그리고 Appendix이다. 미리 밝혀두자면 본 기사에서는 Appendix에 대해 다루지 않을 것이다.

먼저, 목차 이전은 Abstract와 Status of this document로 되어 있다.

Abstract에 따르면
  1. XML은 SGML의 부분 집합이며
  2. XML Spec은 XML에 대하여 완벽하게 설명하고 있고
  3. XML의 목표는 웹에서 SGML이 현재 HTML처럼 송수신되고 처리되는 것이며
  4. XML은 구현이 쉽도록, SGML, HTML 모두와 상호운용 할 수 있도록 설계되었다
정규 표현식 완전 해부와 실습(개정판)


목차부터 Appendix 전까지는 6개의 챕터(Introduction, Documents, Logical Structures, Physical Structures, Conformance, Notation)로 구성되어 있으며, 이 부분을 이해하기 위해서는 Regular Expression(정규 표현식)에 대한 이해가 필요하다. 정규 표현식에 익숙하지 하지 않은 사람들은 EBNF에 대한 간략한 설명이 6장 Notation에 있으니 6장부터 보는 것이 이해하는데 무리가 없을 것이다. 대괄호 안에 있는 번호로 시작하는 표현들이 모두 EBNF로 되어 있다. 대괄호로 시작되는 표현식만을 나열하면 각 표현들이 더욱 이해하기 쉬울 것이다.

Introduction에 따르면
  1. XML Spec은 XML Documents라고 불리는 data object의 일종을 설명하고
  2. 또한 XML Documents를 처리하는 컴퓨터 프로그램의 행동양식을 규정하고 있다
  3. XML은 application profile 또는 특정한 종류의 SGML이며
  4. XML은 Entities라는 Storage units으로 구성되어 있다
  5. Entities는 parsed data와 unparsed data로 구성되어 있다
  6. parsed data는 character data와 markup으로 구성되어 있다
  7. markup은 document의 Storage layout과 logical structure을 표시하고 있다
  8. XML Processor는 Application이 XML Document를 읽고 그 내용과 구조에 접근할 수 있도록 하기 위해 만들어진 소프트웨어이다
Introduction 아래에는 유명한 XML의 10가지 설계 목표가 들어있는"Origin and Goals"와 용어를 설명한 Terminology가 있다.

Documents라는 제목의 2장은 이렇게 시작한다. "A data object is an XML document if it is well-formed, as defined in this specification" 즉 well-formed는 XML이 만족해야 하는 별도의 규칙이 아니라 well-formed가 아닌 것은 XML이 아닌 하나의 data object일 뿐이다. (적어도 XML Spec에 따르면 그렇다는 말이다.) 특정 제약조건을 더 만족하면 valid가 된다. 여기에서는 XML Document에 등장하는 여러 가지 것들에 대해 설명하고 있다. Comments, Processing Instructions에 대한 설명이 나와 있다. 또한 XML Documents는 논리적 구조와 물리적 구조를 가지고 있는데, 물리적으로는 엔티티(entity)라는 단위로 구성되어 있으며 엔티티는 다른 엔티티를 참조할 수 있고 XML documents는 root entity(document entity)로 시작한다. 논리적으로는 Declaration, Elements, Comments, Character references, Processing instructions으로 구성되어 있으며, 이러한 내용들은 Markup에 의해 명시적으로 구분되어 쉽게 알 수 있다.

2장에 이은 3장에서는 Logical structures에 대한 설명을 하고 있다. 여기서는 Elements에 대한 설명만 하고 있으며, Comments와 같은 다른 요소들은 이미 2장에 설명되어 있다. XML documents는 하나 또는 그 이상의 Elements로 구성되어 있으며, , 또는 로 Elements의 범위가 구분된다. Elements는 이름으로 구별되는 type을 가지고 있으며, Attribute specifications도 가질 수 있다. Attribute specification은 name과 value를 가지고 있다.

4장에서는 Physical structures에 대한 설명을 하고 있으며, 개인적으로는 적어도 이 부분이 가장 이해하기 힘든 부분이다. 4장에 따르면, XML documents는 하나 또는 그 이상의 storage unit으로 구성되어 있으며, 그것을 Entities라고 부른다. Entities는 모두 Contents을 가지며, Document Entity와 External DTD Subset을 제외하고는 Entity name으로 구별된다. XML Documents는 XML Processor가 시작점으로 인식하는 하나의 Document Entity을 가지고 있다. 여기에 대한 부분은 아마도 다른 기사를 통해 좀 더 자세히 살펴보게 될 것이다.

5장에서는 XML Processor의 두 종류에 대한 설명이 나오며, 6장에는 문서에서 사용한 표기법에 대한 설명이 나온다. 읽지 않아도 무방한 부분으로 생각한다.

그리고 나서 Appendix가 나온다. 마지막으로 XML Spec을 읽을 때 유용한 팁을 하나 소개하자면, 브라우저 상에서 직접 읽는 것이다. 문서 내부 링크를 많이 사용하고 있어 수시로 용어를 참조해 볼 수 있기 때문이다.

다시 처음으로 돌아가서, "영어가 된다", "안 된다"라는 식의 구분은 언어가 주는 혼란이고, 대부분의 개발자들은 그 중간 어디에 있는 영어를 좀 하는, 읽긴 읽지만 머리에는 잘 안 들어오는 사람들일 것이다. 이 글이 몇 번을 읽어야 제대로 뜻이 머리에 들어오기 시작하는 사람들에게, 읽어보다가 머리가 아파서 그만 둔 사람들에게 도움이 되기를 바란다.

최근에 한빛미디어에서 『정규 표현식 완전 해부와 실습(개정판)』이 출간되었다. 정규 표현식에 대한 기본 개념과 사용법을 자세하게 설명하고 있어, XML Spec을 이해하는 큰 도움이 되리라 생각된다.

참고자료
TAG :
댓글 입력
자료실

최근 본 상품0