태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.
   情  
Front Page
Tag | Location | Media | Guestbook | Admin   
 
'ebnf'에 해당하는 글(1)
2008.08.30   XML 기초 1


XML 기초 1

XML 이란?

  • 확장가능한 마크업 언어(Extensible markup Language)
  • Markup Language란, 문서의 내용에 추가적인 정보를 표시할 수 있는 언어를 뜻한다. 각 태그Markup이 되며, 태그에 포함된 내용들에 관한 추가적인 정보를 표현하는 역할을 한다.
  • Extensible에서 의미하는 바와 같이, XML은 필요에 따른 새로운 Markup Language를 생성할 수 있는 메타 언어이다. 메타 언어란, 다른언어를 기술하거나 분석하는데 쓰이는 언어라는 의미이다. 즉 XML을 이용해 문서를 작성한다라는 뜻은, XML로 제작된 언어로 문서를 작성한다는 의미로 보면 된다.
  • 메타언어에는 SGML(Standard Generated Markup Language)이 대표적이다. SGML로 만들어진 언어는 HTML이 있으며, XML은 SGML을 보다 단순하고 사용하기 쉽도록 한 언어로 보면된다. 즉 XML은 SGML의 부분집합이다.
  • XML은 데이터 전달을 목적으로 많이 사용되는데, 예를 들어 특정 언어에서 다른 언어, 다른 시스템으로 데이터를 전송하는데 있어서 가장 보편적으로 사용되고 있다. 즉 특정분야의 필요에 맞게 XML을 이용하여 언어를 만들고, 그 언어 규격에 맞게 XML을 이용해 서로 데이터를 전송하고 관리할 수 있게 된다. 특정 프로그램에서 다른 프로그램, 출판 분야, 고객 정보 관리, 데이터베이스 관리, 백업 등 데이터를 다루는 거의 모든 분야에서 사용가능하며 사용되어지고 있다.
  • XML이 HTML을 대체할 수 있다고 생각하는 사람이 있는데, XML과 HTML은 서로 다른 분야로서, XML이 HTML이 하는 역할을 할 수 없고, HTML이 XML의 기능을 대신할 수 없다.
  • Well- Formed XML Document : W3C의 XML 1.0권고안의 문법을 잘 지켜서 작성된 문서를 말한다. XML은 HTML과 달리 문법을 잘 지켜서 작성해야하며 그렇지 않을 경우, XML문서로 취급되지 않으며 작동하지 않는다.
  • Valid/Invalid Document : XML로 만들어진 특정 Markup Language에 맞게 작성된 문서이다. 'XML 문서에 대해 유효성 검사를 한다'라는 것은 XML로 개발된 특정 언어의 규칙과 구조에 맞는지 검증한다는 의미이다.

XML 문서 구조

  • Prolog : XML선언 및 문서 유형 선언(DTD::=Document Type Definition), 프로세싱 지시자(Processing Instruction)가 이 영역에 포함될 수 있다.
  • Element : 하나의 루트 엘리먼트와 하위 엘리먼트로 구성된다.
  • Misc : 문서 마지막에 위치하며 보통 생략되는 부분으로서 주석이나 Processing Instruction 등이 위치하는 경우가 많다.

XML 선언

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

  1. 이 문장은 생략될 수 있지만, 기본적으로 xml문서에 기술되는 것이 권장된다.
  2. 반드시 문서 첫번째 라인에 위치해야하며, 주석도 이 문장 이전에 위치할 수 없다.
  3. '<?xml' 사이에 공백은 허용되지 않는다.
  4. encoding부분은 생략될 수 있으며, default는 UTF-8이다. 실제로 문서의 인코딩 타입과 일치하지 않을 경우 에러를 출력한다.
  5. standalone부분은 dtd부분이 xml문서에 포함되는건지, 외부 dtd를 참조하는건지에 따라 yes 또는 no를 설정하면 된다. 생략 가능한 부분으로 default값은 no로 작동된다. 이 부분을 생략하고 dtd부분을 xml문서에 포함 시켜도 아무 문제가 없으므로, 대부분의 경우 생략되는 부분이다.

기초문법

  • XML을 사용하기 위해 기본적으로 알야아하는 문법으로서 EBNF(Extended Backus-Naur Form)가 있다.

Symbol ::= Expression

  • CharA ::= [a-zA-Z0-9]은 CharA는 대소문자 a부터 z까지, 숫자 0부터 9까지 중 하나의 문자라는 의미이다.
  • 문자 표현은 ' 또는 " 문자 사이에 위치해야하며 대소문자를 구별한다.
  • 패턴 결합을 통해 보다 다양하고 복잡한 형태의 EBNF를 사용할 수 있다.
    • A : One, A표현은 한번만 기술되어야 한다.
    • A? : One or Zero, A표현은 기술되지 않거나 한번만 기술되어야 한다.
    • AB : A and B, A표현식과 B표현식은 순차적으로 기술되어야 한다.
    • A|B : A or B, A표현식과 B표현식 중 하나만 표현되어야 한다.
    • A-B : A without B, B표현식에 일치하지 않는 A표현식
    • A+ : One or More, A표현식은 1번 이상 기술 되어야 한다.
    • A* : Zero or More, A표현식은 기술되지 않거나 하나 이상 표현될 수 있다.

Version ::= 'version ' vnumber

vnumber ::= [a-zA-Z0-9.]+

  • 위의 표현식은 다음과 같다.
    Version = 'version 1.0z'
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Tag : ,

name    password    homepage
 hidden


 Category
분류 전체보기 (95)
Netwrok & Security (6)
Web Development (61)
Database (5)
Framework (6)
Others (17)
About (0)
 TAGS
WCF data tier maxRecievedMessageSize class id 차이 SourceSafe2005 리눅스 ie6 자바스크립트 버그 It's me 오라클 ASP php c#.net 영국 학원 linux DTD 특수문자 UpdateProgress exception id name 차이 smarty RFC 4180 ASP.NET 영국 인턴쉽 MS SQL Server Blog API ajax XML PHP 강좌 ATRIX mantis bug tracker mantis SourceSafe Internet Silverlight 오라클 구조 application error #401 web tier ebnf LiveMail 자바스크립트 영국 홈스테이
 Calendar
«   2017/06   »
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  
 Visitor Statistics
Total : 241,119
Today : 2
Yesterday : 56
rss
 

티스토리 툴바