グラフィカルな拡張BNF表記

XMLの構文は,拡張BNF(Backus-Naur Form)で表記することになっています。構文は,つぎの形式で記号を定義します。

記号 ::= 式


記号は,正規表現で定義する場合は大文字で始め,さもなければ小文字で始めます。リテラル文字列は引用符で括ります。右辺では,つぎの式を使用します。

#xN Nは16進の整数

[a-zA-Z], [#xN-#xN] 指定した範囲の値(両端の値を含む。)をもつ任意の文字

[^a-z], [^#xN-#xN] 指定した範囲外の値をもつ任意の文字

[^abc], [^#xN#xN#xN] 指定した文字以外の値をもつ任意の文字

"文字列" 二重引用符で囲むリテラル文字列

'文字列' 一重引用符で囲むリテラル文字列

式の組合せ

拡張BNFは、難解な印象を与えるので、以下のようなグラフィカルな表記を考えてみました。

拡張BNF グラフィカルな拡張BNF 説明

A?

Aは任意

A B

AとB

A | B

AまたはB

A - B

Aと一致するがBとは一致しない任意の文字列

A+

1回以上のA

A*

0回以上のA

なお、AおよびBは式です。

その他の記法

/* ... */ コメント

[ 整形式制約: ... ] 整形式制約。生成規則に関連した,整形式の文書に関する制約を名前によって特定。

[ 妥当性制約: ... ] 妥当性制約。生成規則に関連した,妥当な文書に関する制約を名前によって特定。