[1] [DFN[[[RFC 2234]]]] の [DFN[[[ABNF]]]] (増補 BNF) は、非常によく用いられていた [[RFC 822]] の ABNF を整理・拡張して独立な仕様としたものです。 RFC 2234 は [[IETF]] の[[提案標準]]となっており、 新しい IETF の規格を中心によく利用されています。 [2] 仕様書: - [[RFC 2234]] [12] 改訂版の [[RFC 4234]] が発行されました。 ([[名無しさん]] [WEAK[2005-10-16 05:55:41 +00:00]]) [16] [PRE[ [URL=http://givmhnyw.com]jfutvaad[/URL] xprihpkj http://qtjqqezq.com dqmijnsw kvnjcywn oinnrcob ([[ylqyrdcs]] [jzgvqpof@tyazqvca.com] [WEAK[2008-05-01 18:03:03 +00:00]]) ]PRE] [17] [URL=http://snsdogmx.com]lhwtncby[/URL] ipxleitr http://ffcyylaj.com oitdxsjz atxcydjm oqqwruoo ([[uweqywli]] [llxfnylk@zhofbwhs.com] [WEAK[2008-05-01 18:04:01 +00:00]]) [[#comment]] * 変種 [5] RFC 2234 では[[二重引用符]]で括った[[引用文字列]]は大文字・ 小文字を区別しないと定義していますが、その解釈を変えて、 大文字・小文字は区別するとしている仕様書もあります。 - [[RFC 3862]] ([[CPIM]]) [6] [[P3P]] で使われている ABNF は RFC 2234 の ABNF の変種です。 [10] [[RFC 3391]] は [SAMP(ABNF)[0..2147483647]] のように、整数の範囲指定が使われています。 ちなみに、 RFC 3391 は [[MIME]] 式の ABNF も使っています。 [9] [[RFC 3981]] など [[IRIS]] RFC では [PRE(ABNF example)[ unreserved = // as specified by RFC2396 ]PRE] のように他の規格で定義されていることを表す表現が [WEAK[(undocumented で)]] 使われています。 [[#comment]] * 意味的な変種 [3] RFC 2234 では ABNF によって定義されるものが ([CODE(charset)[[[US-ASCII]]]] を用いた) [[オクテット列]]または[[ビット列]]としています。 しかし、[[符号化文字集合]]とは独立に[[文字列]]だけを定義したい場合や、 符号化文字集合が [[ASCII]] 以外である場合にも ABNF を使いたいという要求があります。そのため、 RFC 2234 を参照しながらもこの辺の解釈を変えている仕様書も少なからずあります。 [4] [[RFC 3986]] ([[URI]] 4[SUP[th]]) は、 [[URI]] は符号化からは独立した文字列として定義されるとしています。 RFC 3986 における ABNF は、それによって定義されるオクテット列 [WEAK[(の集合)]] に ASCII で対応する文字列 [WEAK[(の集合)]] であるとしています。 [8] 同様に [[RFC 3987]] ([[IRI]]) は ABNF の終端を [[UCS]] としています。 [6] [[RFC 3676]] ([CODE(MIME)[[[text/plain]]; [[format]]=[[flowed]]]]) は [CODE(MIME)[[[charset]]]] 引数によって実際の[[オクテット列]]は変わってくることを指摘しています [WEAK[(が不完全です)]]。 [7] この他、元の仕様が厳密に意味的に RFC 2234 に従って US-ASCII のオクテット列として定義していても、 それを引用している仕様がそうでなかったりすることもあります。 例えば [[RFC 3066]] の[[言語札]]の構文は RFC 2234 の ABNF で記述されていますが、言語札を採用している仕様がすべて US-ASCII のオクテット列による表現を使っているわけではありません。 ほとんどの場合、そのような違いは読めばわかるからか明確に規定されていることはありません。 [15] [[RFC 4646]] ([[言語札]]) は [[RFC 4234]] を参照していますが、 終端は[[オクテット]]ではなく、[[文字]]だとしています。 ([[名無しさん]]) [[#comment]] * メモ [11] RFC 2234 ABNF を使う場合で、終端として文字列表記 (引用文字列) を使う時は、大文字・小文字の区別の有無を [WEAK[(区別ありであれ、なしであれ)]] 明記しておいた方が安全です。 [13] [[RFC 3986]] では[[空文字列]]たることを明示するために [CODE(ABNF example)@en[0]] のような表現を使っています。 ([[名無しさん]] [sage]) [14] dsfdf ([[Mr.Anonymous]] [WEAK[2007-05-24 11:18:27 +00:00]])