[1] [[DocBook]] には [[EBNF]] をマークするための optional
な語彙があります。

- [CODE(SGMLe)[[[productionset]]]] (共通属性; [CODE(SGML)[(([CODE(SGMLe)[[[title]]]], [CODE(SGMLe)[[[titleabbrev]]]]?)?, ([CODE(SGMLe)[production]] | [CODE(SGMLe)[[[productionrecap]]]])+)]]):
生成規則集合。
-- [CODE(SGMLe)[[[production]]]] (共通属性;
[CODE(SGML)[([CODE(SGMLe)[lhs]], [CODE(SGMLe)[rhs]], [CODE(SGMLe)[constraint]]*)]]):
生成規則を表します。
--- [CODE(SGMLe)[[[lhs]]]] (共通属性; [CODE(SGML)[[[PCDATA]]]]: 非終端記号名):
左辺を記述します。
--- [CODE(SGMLe)[[[rhs]]]] (共通属性; [CODE(SGML)[(#[[PCDATA]] | [CODE(SGMLe)[lineannotation]] | [CODE(SGMLe)[nonterminal]] | [CODE(SGMLe)[[[sbr]]]])*]]):
右辺を記述します。注釈は [CODE(SGMLe)[lineannotation]] で、
非終端記号は [CODE(SGMLe)[nonterminal]] で、
改行候補箇所は [CODE(SGMLe)[sbr]] で記述します。
それ以外は直接[[文字データ]]として記述します。
---- [CODE(SGMLe)[[[nonterminal]]]] (@[CODE(SGMLa)[[[def]]]]=[[URI参照]]: 
必須: 定義への参照, 共通属性; [CODE(SGML)[[[PCDATA]]]]: 非終端記号名):
非終端記号を表します。文法規則外の文章でも使えます。
--- [CODE(SGMLe)[[[constraint]]]] (@[CODE(SGMLa)[[[linkend]]]]=[CODE(SGML)[[[IDREF]]]]: 必須, 共通属性; 強制空要素):
文法的に表現できない制約を参照します。
-- [CODE(SGMLe)[[[productionrecap]]]] (@[CODE(SGMLa)[[[linkend]]]]=[CODE(SGML)[[[IDREF]]]]: 必須: [CODE(SGMLe)[production]], 共通属性; 強制空要素):
生成規則の複製を挿入します (主として読者の理解のための再掲)。
- [CODE(SGMLe)[[[constraintdef]]]] (共通属性; [CODE(SGML)[([CODE(SGMLe)[[[title]]]], [VAR[ブロック系]])]]):
文法的に表現できない制約を記述します。
文法規則外の文章の一部として記述できます。内容も普通の文章です。



