1 |
wakaba |
1.1 |
* [CODE(ABNF)[phrase]] (822)
|
2 |
|
|
**RFC 2822 から
|
3 |
|
|
-[1] word = atom / quoted-string ;; RFC 2822 3.2.6
|
4 |
|
|
-[2] phrase = 1*word / obs-phrase ;; RFC 2822 3.2.6
|
5 |
|
|
-[3] obs-phrase = word *(word / "." / CFWS) ;; RFC 2822 4.1
|
6 |
|
|
|
7 |
|
|
[4] [CODE(ABNF)[obs-phrase]] に [CODE(ABNF)["."]]
|
8 |
|
|
が含まれているのは、名前の頭文字などで [CODE(ABNF)[quoted-string]]
|
9 |
|
|
の外で使う [[DQN]] が多かったせいです (4.1)。
|
10 |
|
|
|
11 |
|
|
- [5] [[quoted-string]] も [[atom]] も周りの [[CFWS]] は省略可能ですから、 [SAMP[atom1"quoted-string1"atom2]] とか [SAMP["quoted-string1""quoted-string2"]] とかもありですね。意味があるのかと問われればないと思いますけど、 parser はこういうのも覚悟しないといけないということで。
|
12 |
|
|
[[#comment]]
|
13 |
|
|
**MIME
|
14 |
|
|
|
15 |
|
|
[6] [[RFC 2047]] 5. (3) が最新の定義です。次のようにあります。
|
16 |
|
|
また、説明によると [[encoded-word]] は必ず隣接する他のものと [[linear-white-space]]
|
17 |
|
|
で区切られる必要があります。
|
18 |
|
|
-[7] phrase = 1*( encoded-word / word )
|
19 |
|
|
|
20 |
|
|
[8] >>1-3,>>6-7 を考慮に [[ABNF]] で書き直すと、
|
21 |
|
|
-[9] phrase = 1*(word / encoded-word) / obs-phrase
|
22 |
|
|
-[10] encoded-word = CFWS <RFC 2047 encoded-word> CFWS
|
23 |
|
|
|
24 |
|
|
但し [CODE(ABNF)[phrase]] が行全体の初めや終わりに来る場合は [[CFWS]]
|
25 |
|
|
は要りませんから、この部分だけ ABNF で表すのは無理ですね...
|
26 |
|
|
[[#comment]]
|
27 |
|
|
** メモ
|
28 |
|
|
|
29 |
|
|
[[#comment]]
|
30 |
|
|
|
31 |
|
|
* 要素型級 [CODE(SGML)[%phrase]] (HTML)
|
32 |
|
|
|
33 |
|
|
[11] [[HTML 4]] の[[要素型級]] [DFN[[CODE(SGML)[%phrase]]]]:
|
34 |
|
|
- [CODE(HTMLe)[[[abbr]]]]
|
35 |
|
|
- [CODE(HTMLe)[[[acronym]]]]
|
36 |
|
|
- [CODE(HTMLe)[[[cite]]]]
|
37 |
|
|
- [CODE(HTMLe)[[[code]]]]
|
38 |
|
|
- [CODE(HTMLe)[[[dfn]]]]
|
39 |
|
|
- [CODE(HTMLe)[[[em]]]]
|
40 |
|
|
- [CODE(HTMLe)[[[kbd]]]]
|
41 |
|
|
- [CODE(HTMLe)[[[samp]]]]
|
42 |
|
|
- [CODE(HTMLe)[[[strong]]]]
|
43 |
|
|
- [CODE(HTMLe)[[[var]]]]
|
44 |
|
|
|
45 |
|
|
仕様書:
|
46 |
|
|
- [[HTML 4]]
|
47 |
|
|
-- [[厳密DTD]]: <IW:HTML4:"sgml/dtd.html#phrase">
|
48 |
|
|
-- [[移行用DTD]]: <IW:HTML4:"sgml/loosedtd.html#phrase">
|
49 |
|
|
|
50 |
|
|
[[#comment]]
|
51 |
|
|
|
52 |
|
|
*メモ
|