본문 바로가기

Programming/XML

EBNF 표기법

 (1) EBNF 문법 형태

XML 1.0 권고안의 공식 문법은 간단한 EBNF(Extended Backus-Naur Form) 표기법을 사용한다. XML을 사용하는 개발자들은 EBNF 표기법을 잘 알고 있어야 XMK 스펙을 이해할 수 있게 되고, 보다 쉽게 XMK을 활용할 수 있게 된다.

 

다음은  EBNF 문법 표기법이다.

기호 ::= 표현식 (Symbol ::= Expression) 

다음은 기호 Char1이 소문자 a에서 z까지 한 문자를 갖는 표현식이다.

문법    char1 ::= [a-z]

다음은 기호 VersionNum가 숫자 0에서 9까지 한 문자를 갖는 표현식이다.

문법    VersionNum ::= [0-9]

다음은 기호 Word1이 "version"이라는 고정 문자열을 갖는 표현식이다.

문법    Word1 ::= "version"

 

(2) 패턴 결합

표현식은 다음과 같은 패턴과 결합되어 좀더 복잡한 형태를 가질 수 있다. 여기서 A와 B는 표현식 중의 하나라고 생각하면 된다.

패턴 설명
 A?  A 표현이 올 수도 안 올수도 있다(옵션).
 A B  A 표현이 먼저 오고 B 표현이 나중에 온다.(순차).
 A|B  A와 B 표현 중 하나만 와야 한다.(선택).
 A-B  A 표현이 와야 되지만 B 표현과는 일치되지 않아야 한다.
 A+  A 표현이 최소한 한 개 이상이 와야 한다.
 A*  A 표현이 안 올 수 있고, 한 개 이상이 와도 된다.

 다음은 기호 Eq(Equal)이 빈 문자열(문자가 없는 공백)을 뜻하는 표현식인 'S'가 사용되어 "=", " =", "= ", " = " 의 형태를 갖는 표현식이다. 이 때 S? 는 빈 문자열을 하나 가질 수도 있고 없을 수도 있다는 뜻이다.

문법    Eq ::= S? '=' S? 

 다음은 기호 VersionNum이 영소문자 모두, 영대문자 모두 그리고 0에서 9까지의 문자 중 한 문자를 같는 표현식이다.

문법    VersionNum ::= [a-zA-Z0-9]

 

이 글은 스프링노트에서 작성되었습니다.