この附属書は,この標準仕様書(TS)で規定されるすべての構文の,完全なBNF文法を含む。
しかし,これ自身では,文法が完全でない。 これはRFC 822で定義される多くの構文規則を名前で参照する。 ここでそれらの文法を再生成して二つの間に意図しない違いを生じる危険を冒すのではなく,この標準仕様書(TS)は,残りの定義については,単にRFC 822を読者に参照させる。 用語が未定義である場合,それはRFC 822の定義を参照する。
boundary := 0*69>bchars< bcharsnospace
bchars := bcharsnospace / " "
bcharsnospace := DIGIT / ALPHA / "'" / "(" / ")" /
"+" / "_" / "," / "-" / "." /
"/" / ":" / "=" / "?"
body-part := <RFC 822で定義されている"message"は,
すべてのヘッダフィールドはオプションで,
指定されたdash-boundaryで始まらず,
本体部分のどこにも区切り子はない。
このテキストに記述されているように,
部分のセマンティクスはメッセージの
セマンティクスとは違うことに注意。>
close-delimiter := delimiter "--"
dash-boundary := "--" boundary
; Content-Typeフィールドの
; boundaryパラメタの値から
; 境界。
delimiter := CRLF dash-boundary
discard-text := *(*text CRLF)
; 無視又は削除してよい。
encapsulation := delimiter transport-padding
CRLF body-part
epilogue := discard-text
multipart-body := [preamble CRLF]
dash-boundary transport-padding CRLF
body-part *encapsulation
close-delimiter transport-padding
[CRLF epilogue]
preamble := discard-text
transport-padding := *LWSP-char
; 作成者は長さゼロのトランスポート
; パディングを生成してはならず,
; 受信者はメッセージトランスポート
; により加えられたパディングを
; 扱えなければならない。