/
750.txt
78 lines (58 loc) · 3.13 KB
/
750.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
[5]
[DFN@en[[[ABNF]]]] ([DFN[[[Augmented Backus–Naur form]]]]) は、[[文脈自由言語]]の記述方式の一種です。
多くの [[RFC]] で[[プロトコル要素]]の構文記述のために用いられています。
細かなバリエーションがいろいろあります。
* 仕様書
[6] [[IETF]] として正式な [[ABNF]] の定義は[[インターネット標準]]である [[STD 68]]
([[RFC 5234]]) でなされています。
[7] [[ABNF]] は歴史的に様々な変種があります。 [[RFC 5234]]
に至る「標準的」な [[ABNF]] は、そもそも[[電子メイル]]の仕様である [[RFC 822]]
の一部として規定されていた構文が独立した仕様になったものです。
[FIG[
[13] [[RFC 822]] ([[STD 11]]) → [[RFC 2234]] → [[RFC 4234]] → [[RFC 5234]] ([[STD 68]])
→ [[RFC 5234]] ([[STD 68]]) + [[RFC 7405]]
]FIG]
[14] [[RFC 822]] と [[RFC 2234]] の間には多少の追加等があります
([[RFC 2234のABNF]] の項を参照。) [[RFC 2234]] 以後は [[ABNF]]
の構文そのものに変化はありませんでした。 [[RFC 7405]] で新構文が加わっています。
* 構文
[10] 他の [[BNF]] に対する [[ABNF]] の特徴は、
[FIG(list)[
- 選択に「[CODE(ABNF)[[[/]]]]」を使う
- 反復に「[CODE(ABNF)[[VAR[n]]*[VAR[m]][VAR[E]]]]」のように「[CODE(char)[[[*]]]]」を使う
]FIG]
... ということでしょう。詳しくは各変種の項を参照してください。
* 様々な ABNF
[8] [[ABNF]] の主な変種は次の通りです。各項には更にそれぞれの変種についての言及があります。
[FIG(list)[
-[[RFC 822のABNF]]
-[[HTTPのABNF]]
-[[RFC 2141のABNF]] / [[RFC 4617のABNF]]
- [[RFC 2234のABNF]] = [[RFC 4234のABNF]] = [[RFC 5234のABNF]]
- [[P3PのABNF]]
- [[拡張ABNF]]
-[[LEIRIのABNF]]
]FIG]
[15] 以上は一般の[[プロトコル要素]]の構文の記述に利用可能なものですが、
特定の[[応用]]に対象を絞ったものもあります。
[FIG(list)[
- [4] [[RFC 3588のABNF]]
-[[SRGSのABNF]]
]FIG]
* マーク付け
[11] [[RFC 2629]] の[[RFCマーク付け言語]]では [CODE(XMLe)@en[[[artwork]]]]
[[要素]]により[[図]]として[[マーク付け]]されるのが普通です。
* 限界
[16] [[BNF]] 参照。
* 関連
[9] [[BNF]]、[[EBNF]] の項も参照してください。
* メモ
- [1] [WEAK[2002-12-21 20:15]] ''[[名無しさん]]'': ''ABNF Validator'' <http://www.apps.ietf.org/abnf.html>
- [2] [WEAK[2002-12-21 20:16]] ''>>1'': 界面としてはいいとはいえない。今後に期待。
- [3] >>2 確かに [[AHL]] とか [[W3C]] の Validator に慣れてるとこれはなんかの間違いかと思うよね。
[12] [CITE@en[RFC 6381 - The \x27Codecs\x27 and \x27Profiles\x27 Parameters for "Bucket" Media Types]]
([TIME[2011-10-09 12:42:47 +09:00]] 版)
<http://tools.ietf.org/html/rfc6381>
[17] [CITE@en[Please clarify if header value should be enclosed in quotes or not · Issue #97 · w3c/webappsec-referrer-policy]]
([TIME[2017-11-06 12:47:56 +09:00]])
<https://github.com/w3c/webappsec-referrer-policy/issues/97>