|
2 | 2 |
|
3 | 3 | <!-- New WebDAV Collection Properties --> |
4 | 4 |
|
| 5 | + <!-- available push transports --> |
5 | 6 | <define name="prop-transports"> |
6 | | - <!-- available push transports --> |
7 | 7 | <element name="transports"> |
8 | 8 | <choice> |
9 | 9 | <ref name="web-push-transport"/> |
|
12 | 12 | </element> |
13 | 13 | </define> |
14 | 14 |
|
| 15 | + <!-- push topic --> |
15 | 16 | <define name="prop-topic"> |
16 | | - <!-- push topic --> |
17 | 17 | <element name="topic"> |
18 | 18 | <text/> |
19 | 19 | </element> |
20 | 20 | </define> |
21 | 21 |
|
22 | | - |
23 | | - <define name="trigger-content-update"> |
| 22 | + <define name="prop-supported-triggers-content-update"> |
24 | 23 | <element name="content-update"> |
25 | | - <optional> |
26 | | - <element ns="DAV:" name="sync-level"> <!-- defined in RFC 6578 --> |
27 | | - <choice> |
28 | | - <value>1</value> |
29 | | - <value>infinite</value> |
30 | | - </choice> |
31 | | - </element> |
32 | | - </optional> |
| 24 | + <ref name="prop-dav-sync-level"/> |
33 | 25 | </element> |
34 | 26 | </define> |
35 | | - |
36 | | - <define name="trigger-property-update"> |
| 27 | + <define name="prop-supported-triggers-property-update"> |
37 | 28 | <element name="property-update"> |
38 | | - <interleave> |
39 | | - <optional> |
40 | | - <element ns="DAV:" name="depth"> <!-- defined in WebDAV (RFC 4918) --> |
41 | | - <choice> |
42 | | - <value>0</value> |
43 | | - <value>1</value> |
44 | | - <value>infinite</value> |
45 | | - </choice> |
46 | | - </element> |
47 | | - </optional> |
48 | | - |
49 | | - <optional> |
50 | | - <element ns="DAV:" name="prop"> <!-- defined in WebDAV (RFC 4918) --> |
51 | | - <zeroOrMore> |
52 | | - <element> |
53 | | - <anyName/> |
54 | | - <empty/> |
55 | | - </element> |
56 | | - </zeroOrMore> |
57 | | - </element> |
58 | | - </optional> |
59 | | - </interleave> |
| 29 | + <ref name="prop-dav-depth"/> |
60 | 30 | </element> |
61 | 31 | </define> |
62 | | - |
| 32 | + <!-- supported triggers --> |
63 | 33 | <define name="prop-supported-triggers"> |
64 | | - <!-- supported triggers --> |
65 | 34 | <element name="supported-triggers"> |
66 | | - <zeroOrMore> |
67 | | - <ref name="trigger-content-update"/> |
68 | | - </zeroOrMore> |
69 | | - <zeroOrMore> |
70 | | - <ref name="trigger-property-update"/> |
71 | | - </zeroOrMore> |
| 35 | + <choice> |
| 36 | + <ref name="prop-supported-triggers-content-update"/> |
| 37 | + <ref name="prop-supported-triggers-property-update"/> |
| 38 | + <interleave> |
| 39 | + <ref name="prop-supported-triggers-content-update"/> |
| 40 | + <ref name="prop-supported-triggers-property-update"/> |
| 41 | + </interleave> |
| 42 | + </choice> |
72 | 43 | </element> |
73 | 44 | </define> |
74 | 45 |
|
75 | 46 |
|
76 | 47 | <!-- Subscription Registration --> |
77 | 48 |
|
| 49 | + <define name="subscription-registration-trigger-content-update"> |
| 50 | + <element name="content-update"> |
| 51 | + <!-- requested depth --> |
| 52 | + <ref name="prop-dav-sync-level"/> |
| 53 | + </element> |
| 54 | + </define> |
| 55 | + <define name="subscription-registration-trigger-property-update"> |
| 56 | + <element name="property-update"> |
| 57 | + <!-- requested depth --> |
| 58 | + <ref name="prop-dav-depth"/> |
| 59 | + <!-- interesting properties --> |
| 60 | + <optional> |
| 61 | + <element ns="DAV:" name="prop"> <!-- list of properties, as in PROPFIND request --> |
| 62 | + <zeroOrMore> |
| 63 | + <element> |
| 64 | + <anyName/> |
| 65 | + <empty/> |
| 66 | + </element> |
| 67 | + </zeroOrMore> |
| 68 | + </element> |
| 69 | + </optional> |
| 70 | + </element> |
| 71 | + </define> |
78 | 72 | <define name="subscription-registration"> |
79 | 73 | <element name="push-register"> |
80 | 74 | <!-- subscription to register --> |
|
85 | 79 | </choice> |
86 | 80 | </element> |
87 | 81 |
|
88 | | - <!-- types of events --> |
| 82 | + <!-- events that trigger a push notification --> |
89 | 83 | <optional> |
90 | 84 | <element name="trigger"> |
91 | | - <interleave> |
92 | | - <optional> |
93 | | - <ref name="trigger-content-update"/> |
94 | | - </optional> |
95 | | - <optional> |
96 | | - <ref name="trigger-property-update"/> |
97 | | - </optional> |
98 | | - </interleave> |
| 85 | + <choice> |
| 86 | + <ref name="subscription-registration-trigger-content-update"/> |
| 87 | + <ref name="subscription-registration-trigger-property-update"/> |
| 88 | + <interleave> |
| 89 | + <ref name="subscription-registration-trigger-content-update"/> |
| 90 | + <ref name="subscription-registration-trigger-property-update"/> |
| 91 | + </interleave> |
| 92 | + </choice> |
99 | 93 | </element> |
100 | 94 | </optional> |
101 | 95 |
|
|
121 | 115 | <zeroOrMore> |
122 | 116 | <element name="content-update"> |
123 | 117 | <optional> |
124 | | - <element ns="DAV:" name="sync-token"> |
125 | | - <text/> |
126 | | - </element> |
| 118 | + <ref name="prop-dav-sync-token"/> |
127 | 119 | </optional> |
128 | 120 | </element> |
129 | 121 | </zeroOrMore> |
|
183 | 175 | </element> |
184 | 176 | </define> |
185 | 177 |
|
| 178 | + |
| 179 | + <!-- External Properties --> |
| 180 | + |
| 181 | + <define name="prop-dav-depth"> <!-- defined in WebDAV (RFC 4918) --> |
| 182 | + <element ns="DAV:" name="depth"> |
| 183 | + <choice> |
| 184 | + <value>0</value> |
| 185 | + <value>1</value> |
| 186 | + <value>infinite</value> |
| 187 | + </choice> |
| 188 | + </element> |
| 189 | + </define> |
| 190 | + |
| 191 | + <define name="prop-dav-sync-level"> <!-- defined in RFC 6578 --> |
| 192 | + <element ns="DAV:" name="sync-level"> |
| 193 | + <choice> |
| 194 | + <value>1</value> |
| 195 | + <value>infinite</value> |
| 196 | + </choice> |
| 197 | + </element> |
| 198 | + </define> |
| 199 | + |
| 200 | + <define name="prop-dav-sync-token"> <!-- defined in RFC 6578 --> |
| 201 | + <element ns="DAV:" name="sync-token"> |
| 202 | + <text/> |
| 203 | + </element> |
| 204 | + </define> |
| 205 | + |
186 | 206 | </grammar> |
0 commit comments