(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]
이 글은 스프링노트에서 작성되었습니다.