-
Notifications
You must be signed in to change notification settings - Fork 4
/
286.txt
79 lines (66 loc) · 2.52 KB
/
286.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
79
[2] [[URI雛形]]の[DFN[[RUBYB[式]@en[expression]]]]は、 [CODE[{]] と [CODE[}]]
で囲まれた部分と [CODE[{]]、[CODE[}]] です [SRC[>>1]]。
* 仕様書
[REFS[
- [1] [CITE@en[RFC 6570 - URI Template]] ([TIME[2014-10-27 23:08:55 +09:00]] 版) <http://tools.ietf.org/html/rfc6570#section-1.1>
- [3] [CITE@en[RFC 6570 - URI Template]] ([TIME[2014-10-27 23:08:55 +09:00]] 版) <http://tools.ietf.org/html/rfc6570#section-1.2>
- [11] [CITE@en[RFC 6570 - URI Template]] ([TIME[2014-10-27 23:08:55 +09:00]] 版) <http://tools.ietf.org/html/rfc6570#section-2>
- [13] [CITE@en[RFC 6570 - URI Template]] ([TIME[2014-10-27 23:08:55 +09:00]] 版) <http://tools.ietf.org/html/rfc6570#section-2.2>
]REFS]
* 構文
[14] [[式]]は、 [CODE[[[{]]]]、[[演算子]]、[[変数リスト]]、[CODE[[[}]]]]
で構成されます。ただし[[演算子]]は省略できます。 [SRC[>>13]]
[FIG(railroad)[
= [CODE(URI)[[[{]]]]
= ?
== [[演算子]]
= [[変数リスト]]
= [CODE(URI)[[[}]]]]
]FIG]
* 演算子と式型
[4] [[式]]の[[展開]]の過程は、[DFN[[RUBYB[式型]@en[expression type]]]]により決まります
[SRC[>>3, >>13]]。[[式型]]は[[演算子]]によって表されます [SRC[>>13]]。
[5] [[演算子]]が省略された場合の[[式型]]は[[単純文字列展開]]です [SRC[>>3, >>13]]。
[15] [[演算子]]には次のものがあります。
[FIG(short list)[
- [CODE[[[+]]]]
- [CODE[[[''#'']]]]
- [CODE[[[.]]]]
- [CODE[[[/]]]]
- [CODE[[[;]]]]
- [CODE[[[?]]]]
- [CODE[[[&]]]]
]FIG]
[16] 次の[[演算子]]は予約されています [SRC[>>13]]。
[FIG(short list)[
- [CODE[[[=]]]]
- [CODE[[[,]]]]
- [CODE[[[!]]]]
- [CODE[[[@]]]]
- [CODE[[[|]]]]
]FIG]
* 実装水準
[6] [[URI雛形]]では[[式型]]の[[集合]]を[DFN[[RUBYB[水準]@en[level]]]]と呼んでいます。
[[水準1]]から[[水準4]]までがあります。
[FIG(list short)[
- [7] [DFN[[RUBYB[水準1]@en[Level 1]]]]
-- [[単純文字列展開]]
- [8] [DFN[[RUBYB[水準2]@en[Level 2]]]]
-- [[水準1]]
-- [CODE[[[+]]]]
-- [CODE[[[''#'']]]]
- [9] [DFN[[RUBYB[水準3]@en[Level 3]]]]
-- [[水準2]]
-- [CODE[[[.]]]]
-- [CODE[[[/]]]]
-- [CODE[[[;]]]]
-- [CODE[[[?]]]]
-- [CODE[[[&]]]]
-- [CODE[[[,]]]]
- [10] [DFN[[RUBYB[水準3]@en[Level 4]]]]
-- [[水準3]]
-- [CODE[[[:]]]]
-- [CODE[[[*]]]]
]FIG]
[12] 低水準の実装は、より高水準の構文に対応しなくても構いませんが、
対応して[[利用者]]に未対応である旨を伝える[['''べきです''']] [SRC[>>11]]。