codethief / virtualme (http://codeartists.org/)

No description has been added.

Clone this repository (size: 36.9 KB): HTTPS / SSH
$ hg clone http://bitbucket.org/codethief/virtualme/
commit 7: fbdcae1cf557
parent 6: a93b1d07cb10
branch: default
Worked on client intents.
Simon Hirscher / codethief
10 months ago

Changed (Δ2.9 KB):

raw changeset »

protocol/common.xsd (30 lines added, 3 lines removed)

protocol/intents/client.xsd (207 lines added, 116 lines removed)

protocol/stream.xsd (1 lines added, 1 lines removed)

Up to file-list protocol/common.xsd:

5
5
	elementFormDefault="qualified">
6
6
	
7
7
	
8
	<xs:complexType name="intent">
9
		<xs:attribute name="id" type="id" use="required"/>
10
	</xs:complexType>
8
	
11
9
	
12
10
	<xs:complexType name="user">
13
11
		<xs:attribute name="name" type="xs:string"/>
32
30
			<xs:pattern value="[a-z0-9]{6,}"/>
33
31
		</xs:restriction>
34
32
	</xs:simpleType>
33
	
34
	
35
	<xs:complexType name="intent">
36
		<xs:attribute name="id" type="id" use="required"/>
37
	</xs:complexType>
38
	
39
	<xs:simpleType name="mime">
40
		<xs:restriction base="xs:string">
41
			<xs:enumeration value="image/png"/>
42
			<xs:enumeration value="image/jpeg"/>
43
			
44
			<xs:enumeration value="text/plain"/>
45
			<xs:enumeration value="text/html"/>
46
			<xs:enumeration value="application/xhtml+xml"/>
47
		</xs:restriction>
48
	</xs:simpleType>
49
	
50
	<xs:simpleType name="encoding">
51
		<xs:restriction base="xs:string">
52
			<xs:enumeration value="ASCII"/>
53
			<xs:enumeration value="ANSI"/>
54
			<xs:enumeration value="ISO-8859-1"/>
55
			<xs:enumeration value="ISO-8859-15"/>
56
			<xs:enumeration value="UTF-8"/>
57
			<xs:enumeration value="UTF-16"/>
58
			<xs:enumeration value="UTF-32"/>
59
		</xs:restriction>
60
	</xs:simpleType>
61
	
35
62
</xs:schema>
36
63

Up to file-list protocol/intents/client.xsd:

2
2
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
3
3
	xmlns="http://codeartists.org/virtualme/protocol/1.0/intents/client"
4
4
	targetNamespace="http://codeartists.org/virtualme/protocol/1.0/intents/client"
5
	xmlns:common="http://codeartists.org/virtualme/protocol/1.0/common">
5
	xmlns:common="http://codeartists.org/virtualme/protocol/1.0/common"
6
	elementFormDefault="qualified">
6
7
	
7
8
	<xs:import namespace="http://codeartists.org/virtualme/protocol/1.0/common"
8
9
		schemaLocation="../common.xsd"/>
9
10
	
10
11
	
11
12
	
13
	
14
	<!-- NO INTENTS BEGIN -->
15
	
16
	<xs:complexType name="tag-list">
17
		<xs:sequence>
18
			<xs:element ref="tag" minOccurs="1" maxOccurs="unbounded"/>
19
		</xs:sequence>
20
	</xs:complexType>
21
	
22
	<xs:element name="tag">
23
		<xs:complexType>
24
			<xs:attribute name="name" type="xs:string" use="required"/>
25
		</xs:complexType>
26
	</xs:element>
27
	
28
	<xs:complexType name="update-tag-list">
29
		<xs:sequence>
30
			<xs:choice>
31
				<xs:element name="remove-all"/>
32
				<xs:element name="remove" type="tag-list"/>
33
			</xs:choice>
34
			
35
			<xs:element name="add" type="tag-list" minOccurs="0" maxOccurs="1"/>
36
		</xs:sequence>
37
	</xs:complexType>
38
	
39
	<!-- NO INTENTS END -->
40
	
41
	
42
	
43
	
12
44
	<xs:element name="create-contact">
45
		<xs:complexType>
46
			<xs:complexContent>
47
				<xs:extension base="common:intent">
48
					<xs:sequence>
49
						<xs:element name="id" type="common:user"/>
50
						<xs:element name="nickname" type="xs:string" minOccurs="0"/>
51
						
52
						<xs:element name="tags" type="tag-list" minOccurs="0"/>
53
					</xs:sequence>
54
				</xs:extension>
55
			</xs:complexContent>
56
		</xs:complexType>
13
57
	</xs:element>
14
58
	
15
59
	<xs:element name="update-contact">
60
		<xs:complexType>
61
			<xs:complexContent>
62
				<xs:extension base="common:intent">
63
					<xs:sequence>
64
						
65
						<xs:element name="nickname"/>
66
						
67
						<xs:element name="tags" type="update-tag-list" minOccurs="0"/>
68
						
69
					</xs:sequence>
70
				</xs:extension>
71
			</xs:complexContent>
72
		</xs:complexType>
16
73
	</xs:element>
17
74
	
18
75
	<xs:element name="delete-contact">
76
		<xs:complexType>
77
			<xs:complexContent>
78
				<xs:extension base="common:intent">
79
					<xs:sequence>
80
						<xs:element name="user" type="common:user" />
81
					</xs:sequence>
82
				</xs:extension>
83
			</xs:complexContent>
84
		</xs:complexType>
19
85
	</xs:element>
20
86
	
87
	<xs:element name="search-contact">
88
		<xs:complexType>
89
			<xs:complexContent>
90
				<xs:extension base="common:intent">
91
					
92
				</xs:extension>
93
			</xs:complexContent>
94
		</xs:complexType>
95
	</xs:element>
96
	
97
	
98
	
99
	
100
	
101
	
102
	<!-- NO INTENTS BEGIN -->
103
	
104
	<xs:element name="publish">
105
		<xs:complexType>
106
			<xs:attribute name="value" type="xs:boolean"/>
107
		</xs:complexType>
108
	</xs:element>
109
	
110
	<!-- NO INTENTS END -->
111
	
21
112
	
22
113
	<xs:element name="create-tag">
114
		<xs:complexType>
115
			<xs:complexContent>
116
				<xs:extension base="common:intent">
117
					<xs:sequence>
118
						
119
						<xs:element ref="tag" />
120
						<xs:element name="children" type="tag-list"/>
121
						<xs:element ref="publish"/>
122
						
123
					</xs:sequence>
124
				</xs:extension>
125
			</xs:complexContent>
126
		</xs:complexType>
23
127
	</xs:element>
24
128
	
25
129
	<xs:element name="update-tag">
130
		<xs:complexType>
131
			<xs:complexContent>
132
				<xs:extension base="common:intent">
133
					<xs:sequence>
134
						
135
						<xs:element ref="tag" />
136
						<xs:element name="children" type="update-tag-list" minOccurs="0"/>
137
						<xs:element ref="publish"/>
138
						
139
					</xs:sequence>
140
				</xs:extension>
141
			</xs:complexContent>
142
		</xs:complexType>
26
143
	</xs:element>
27
144
	
28
145
	<xs:element name="delete-tag">
146
		<xs:complexType>
147
			<xs:complexContent>
148
				<xs:extension base="common:intent">
149
					<xs:sequence>
150
						
151
						<xs:element name="tags" type="tag-list" />
152
						
153
					</xs:sequence>
154
				</xs:extension>
155
			</xs:complexContent>
156
		</xs:complexType>
29
157
	</xs:element>
30
158
	
31
159
	
160
	
161
	
162
	
163
	
32
164
	<xs:element name="register-service">
33
165
	</xs:element>
34
166
	
35
167
	<xs:element name="update-service">
36
168
	</xs:element>
37
169
	
38
	<xs:element name="delete-service">
170
	<xs:element name="deregister-service">
39
171
	</xs:element>
40
172
	
41
173
	
47
179
	
48
180
	
49
181
	
50
	<xs:element name="create-record" type="record" />
51
	
52
	<xs:element name="update-record">
182
	<xs:element name="create-record">
53
183
		<xs:complexType>
54
184
			<xs:complexContent>
55
				<xs:extension base="find-record">
185
				<xs:extension base="record-intent">
56
186
					<xs:sequence>
57
187
						
58
						<xs:element ref="where"/>
59
						<xs:element ref="update"/>
188
						<xs:element name="record">
189
							<xs:complexType>
190
								<xs:sequence>
191
									<xs:any/>
192
								</xs:sequence>
193
								<xs:attribute name="name" type="xs:string"/>
194
							</xs:complexType>
195
						</xs:element>
196
						
197
						<xs:element name="tags" type="tag-list" minOccurs="0"/>
60
198
						
61
199
					</xs:sequence>
62
200
				</xs:extension>
64
202
		</xs:complexType>
65
203
	</xs:element>
66
204
	
205
	<xs:element name="update-record">
206
		<xs:complexType>
207
			<xs:complexContent>
208
				<xs:extension base="record-intent">
209
					<xs:sequence>
210
						
211
						<xs:element name="record">
212
							<xs:complexType>
213
								<xs:sequence>
214
									<xs:any/>
215
								</xs:sequence>
216
								
217
								<xs:attribute name="id" use="required" type="common:id"/>
218
							</xs:complexType>
219
						</xs:element>
220
						
221
						
222
						<xs:element name="tags" type="update-tag-list"/>
223
						
224
					</xs:sequence>
225
				</xs:extension>
226
			</xs:complexContent>
227
		</xs:complexType>
228
	</xs:element>
229
	
67
230
	
68
231
	<xs:element name="delete-record" type="find-record"/>
69
	<xs:element name="get-record" type="find-record"/>
232
	<xs:element name="get-record" type="find-record"/>	
233
	
234
	
235
	
236
	
70
237
	
71
238
	
72
239
	
73
240
	<!-- NO INTENTS BEGIN -->
74
	<xs:complexType name="record">
241
	
242
	<xs:complexType name="record-intent">
75
243
		<xs:complexContent>
76
244
			<xs:extension base="common:intent">
77
245
				
83
251
	
84
252
	<xs:complexType name="find-record">
85
253
		<xs:complexContent>
86
			<xs:extension base="record">
87
				<xs:sequence>
254
			<xs:extension base="common:intent">
255
				<xs:choice>
256
					<xs:element name="records" minOccurs="1">
257
						<xs:complexType>
258
							<xs:sequence>
259
								
260
								<xs:element name="record" minOccurs="1" maxOccurs="unbounded">
261
									<xs:complexType>
262
										<xs:attribute name="id" use="required" type="common:id"/>
263
									</xs:complexType>									
264
								</xs:element>
265
								
266
							</xs:sequence>
267
						</xs:complexType>
268
					</xs:element>
88
269
					
89
					<xs:element ref="where"/>
90
					
91
				</xs:sequence>
270
					<xs:element name="tags" type="tag-list" minOccurs="1"/>
271
				</xs:choice>
92
272
			</xs:extension>
93
273
		</xs:complexContent>
94
274
	</xs:complexType>
95
275
	
96
276
	
277
	<!-- NO INTENTS END -->
97
278
	
98
279
	
99
280
	
100
	<xs:element name="where">
281
	
282
	<xs:element name="send-message">
101
283
		<xs:complexType>
102
284
			<xs:sequence>
103
				<xs:element name="ids" minOccurs="0" maxOccurs="1">
285
				<xs:element name="to" type="common:user"/>
286
				
287
				<xs:element name="message">
104
288
					<xs:complexType>
105
						<xs:sequence>
106
							
107
							<xs:element name="id" minOccurs="0" maxOccurs="unbounded">
108
								<xs:complexType>
109
									<xs:attribute name="value" type="common:id" use="required"/>
110
								</xs:complexType>
111
							</xs:element>
112
							
113
						</xs:sequence>
289
						<xs:simpleContent>
290
							<xs:extension base="xs:string">
291
								<xs:attribute name="mime" type="common:mime"/>
292
								<xs:attribute name="encoding" type="common:encoding"/>
293
							</xs:extension>
294
						</xs:simpleContent>
114
295
					</xs:complexType>
115
296
				</xs:element>
116
				
117
				<xs:element name="tags" minOccurs="0" maxOccurs="1">
118
					<xs:complexType>
119
						<xs:sequence>
120
							
121
							<xs:element ref="tag" minOccurs="1" maxOccurs="unbounded"/>
122
							
123
						</xs:sequence>
124
					</xs:complexType>
125
				</xs:element>
126
				
127
				<xs:element ref="fields" minOccurs="0" maxOccurs="1"/>
128
			</xs:sequence>
129
		</xs:complexType>
130
		
131
	</xs:element>
132
	
133
	
134
	
135
	
136
	
137
	
138
	<xs:element name="update">
139
		<xs:complexType>
140
			<xs:sequence>
141
				
142
				<xs:element name="tags">
143
					<xs:complexType>
144
						<xs:sequence>
145
							<xs:element name="remove">
146
								<xs:complexType>
147
									<xs:choice>
148
										<xs:sequence>
149
											<xs:element ref="tag" minOccurs="1" maxOccurs="unbounded"/>
150
										</xs:sequence>
151
										<xs:element name="remove-all" />
152
									</xs:choice>
153
								</xs:complexType>
154
							</xs:element>
155
							
156
							<xs:element name="add">
157
								<xs:complexType>
158
									<xs:sequence>
159
										<xs:element ref="tag" minOccurs="1" maxOccurs="unbounded"/>
160
									</xs:sequence>
161
								</xs:complexType>
162
							</xs:element>
163
							
164
						</xs:sequence>
165
					</xs:complexType>
166
				</xs:element>
167
				
168
				<xs:element ref="fields"/>
169
				
170
297
			</xs:sequence>
171
298
		</xs:complexType>
172
299
	</xs:element>
176
303
	
177
304
	
178
305
	
179
	<xs:element name="tag">
180
		<xs:complexType>
181
			<xs:attribute name="name" type="xs:string" use="required"/>
182
		</xs:complexType>
183
	</xs:element>
184
	
185
	
186
	
187
	<xs:element name="fields">
188
		<xs:complexType>
189
			<xs:sequence>
190
				
191
				<xs:element name="field" minOccurs="0" maxOccurs="unbounded">
192
					<xs:complexType>
193
						<xs:simpleContent>
194
							<xs:extension base="xs:string">
195
								<xs:attribute name="name" type="common:name" use="required"/>
196
							</xs:extension>
197
						</xs:simpleContent>
198
					</xs:complexType>
199
				</xs:element>
200
				
201
			</xs:sequence>
202
		</xs:complexType>
203
	</xs:element>
204
	
205
	<!-- NO INTENTS END -->
206
	
207
	
208
	
209
	
210
	
211
	
212
	
213
	
214
	
215
306
</xs:schema>

Up to file-list protocol/stream.xsd:

47
47
						<xs:any namespace="http://codeartists.org/virtualme/protocol/1.0/intents/server" minOccurs="0" maxOccurs="unbounded" />
48
48
					</xs:sequence>
49
49
					
50
					<!-- Peer (= server communicating with a peer) -->
50
					<!-- Peer (= server communicating with a another server) -->
51
51
					<xs:sequence>
52
52
						<xs:any namespace="http://codeartists.org/virtualme/protocol/1.0/intents/peer" minOccurs="0" maxOccurs="unbounded" />
53
53
					</xs:sequence>