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 6: a93b1d07cb10
parent 5: 7cbdab4f5d93
branch: default
Started working on client intents (create-record, get-record, update-record, delete-record). Outsourced static / fixed intents which are used only once in protocol/intents/static/xxx.
Simon Hirscher / codethief
11 months ago

Changed (Δ6.2 KB):

raw changeset »

protocol/client.xsd

protocol/common.xsd (22 lines added, 7 lines removed)

protocol/intents/client.xsd (172 lines added, 6 lines removed)

protocol/intents/static/client.xsd (69 lines added, 0 lines removed)

protocol/intents/static/peer.xsd (6 lines added, 0 lines removed)

protocol/intents/static/service.xsd (6 lines added, 0 lines removed)

protocol/peer.xsd

protocol/service.xsd

protocol/stream.xsd (13 lines added, 14 lines removed)

Up to file-list protocol/common.xsd:

1
1
<?xml version="1.0" encoding="UTF-8"?>
2
2
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
3
3
	targetNamespace="http://codeartists.org/virtualme/protocol/1.0/common"
4
	xmlns="http://codeartists.org/virtualme/protocol/1.0/common">
4
	xmlns="http://codeartists.org/virtualme/protocol/1.0/common"
5
	elementFormDefault="qualified">
5
6
	
6
7
	
7
	<xs:element name="user">
8
		<xs:complexType>
9
			<xs:attribute name="name" type="xs:string"/>
10
			<xs:attribute name="host" type="xs:string"/>
11
		</xs:complexType>
12
	</xs:element>
8
	<xs:complexType name="intent">
9
		<xs:attribute name="id" type="id" use="required"/>
10
	</xs:complexType>
11
	
12
	<xs:complexType name="user">
13
		<xs:attribute name="name" type="xs:string"/>
14
		<xs:attribute name="host" type="xs:string"/>
15
	</xs:complexType>
13
16
	
14
17
	
15
18
	<xs:simpleType name="version-number">
17
20
			<xs:pattern value="([0-9]+)(\.([0-9]+))+"/>
18
21
		</xs:restriction>
19
22
	</xs:simpleType>
23
	
24
	<xs:simpleType name="name">
25
		<xs:restriction base="xs:string">
26
			<xs:pattern value="[a-zA-Z0-9 ]+"/>
27
		</xs:restriction>
28
	</xs:simpleType>
29
	
30
	<xs:simpleType name="id">
31
		<xs:restriction base="xs:string">
32
			<xs:pattern value="[a-z0-9]{6,}"/>
33
		</xs:restriction>
34
	</xs:simpleType>
20
35
</xs:schema>
21
36

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

1
1
<?xml version="1.0" encoding="UTF-8"?>
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
	targetNamespace="http://codeartists.org/virtualme/protocol/1.0/intents/client">
4
	targetNamespace="http://codeartists.org/virtualme/protocol/1.0/intents/client"
5
	xmlns:common="http://codeartists.org/virtualme/protocol/1.0/common">
6
	
7
	<xs:import namespace="http://codeartists.org/virtualme/protocol/1.0/common"
8
		schemaLocation="../common.xsd"/>
9
	
5
10
	
6
11
	
7
12
	<xs:element name="create-contact">
24
29
	</xs:element>
25
30
	
26
31
	
27
	<xs:element name="create-service">
32
	<xs:element name="register-service">
28
33
	</xs:element>
29
34
	
30
35
	<xs:element name="update-service">
34
39
	</xs:element>
35
40
	
36
41
	
37
	<xs:element name="create-record">
42
	
43
	
44
	
45
	
46
	
47
	
48
	
49
	
50
	<xs:element name="create-record" type="record" />
51
	
52
	<xs:element name="update-record">
53
		<xs:complexType>
54
			<xs:complexContent>
55
				<xs:extension base="find-record">
56
					<xs:sequence>
57
						
58
						<xs:element ref="where"/>
59
						<xs:element ref="update"/>
60
						
61
					</xs:sequence>
62
				</xs:extension>
63
			</xs:complexContent>
64
		</xs:complexType>
38
65
	</xs:element>
39
66
	
40
	<xs:element name="update-record">
67
	
68
	<xs:element name="delete-record" type="find-record"/>
69
	<xs:element name="get-record" type="find-record"/>
70
	
71
	
72
	
73
	<!-- NO INTENTS BEGIN -->
74
	<xs:complexType name="record">
75
		<xs:complexContent>
76
			<xs:extension base="common:intent">
77
				
78
				<xs:attribute name="type" type="common:name"/>
79
				
80
			</xs:extension>
81
		</xs:complexContent>
82
	</xs:complexType>
83
	
84
	<xs:complexType name="find-record">
85
		<xs:complexContent>
86
			<xs:extension base="record">
87
				<xs:sequence>
88
					
89
					<xs:element ref="where"/>
90
					
91
				</xs:sequence>
92
			</xs:extension>
93
		</xs:complexContent>
94
	</xs:complexType>
95
	
96
	
97
	
98
	
99
	
100
	<xs:element name="where">
101
		<xs:complexType>
102
			<xs:sequence>
103
				<xs:element name="ids" minOccurs="0" maxOccurs="1">
104
					<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>
114
					</xs:complexType>
115
				</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
		
41
131
	</xs:element>
42
132
	
43
	<xs:element name="delete-record">
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
			</xs:sequence>
171
		</xs:complexType>
44
172
	</xs:element>
45
173
	
46
	<xs:element name="get-record">
174
	
175
	
176
	
177
	
178
	
179
	<xs:element name="tag">
180
		<xs:complexType>
181
			<xs:attribute name="name" type="xs:string" use="required"/>
182
		</xs:complexType>
47
183
	</xs:element>
48
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
	
49
215
</xs:schema>

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

1
<?xml version="1.0" encoding="UTF-8"?>
2
3
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
4
	xmlns="http://codeartists.org/virtualme/protocol/1.0/intents/static/client"
5
	targetNamespace="http://codeartists.org/virtualme/protocol/1.0/intents/static/client"
6
	elementFormDefault="qualified"
7
	xmlns:common="http://codeartists.org/virtualme/protocol/1.0/common"
8
	
9
	
10
	
11
	<xs:import namespace="http://codeartists.org/virtualme/protocol/1.0/common"
12
		schemaLocation="../../common.xsd"/>
13
	
14
	
15
	
16
	<xs:element name="register">
17
		<xs:complexType>
18
			<xs:complexContent>
19
				<xs:extension base="common:intent">
20
					
21
					<xs:sequence>
22
						<xs:element name="user" type="common:user"/>
23
						<xs:element name="password" type="xs:string" minOccurs="1" maxOccurs="1"/>
24
						<xs:element name="public-key" type="xs:string" minOccurs="0" maxOccurs="1"/>
25
					</xs:sequence>
26
					
27
				</xs:extension>
28
			</xs:complexContent>
29
		</xs:complexType>
30
	</xs:element>
31
	
32
	
33
	<xs:element name="authenticate">
34
		<xs:complexType>
35
			<xs:complexContent>
36
				<xs:extension base="common:intent">
37
					<xs:sequence>
38
						
39
						<xs:element name="user">
40
							<xs:complexType>
41
								<xs:complexContent>
42
									<xs:extension base="common:user">
43
										<xs:attribute name="resource" type="xs:string" use="required"/>
44
									</xs:extension>
45
								</xs:complexContent>
46
							</xs:complexType>
47
						</xs:element>
48
						
49
						<xs:choice>
50
							<xs:element name="password" type="xs:string"/>
51
							<xs:element name="key-encrypted">
52
								<xs:complexType>
53
									<xs:simpleContent>
54
										<xs:extension base="xs:string">
55
											<xs:attribute name="plain-value" type="xs:string" use="optional"/>
56
										</xs:extension>
57
									</xs:simpleContent>
58
								</xs:complexType>
59
							</xs:element>
60
						</xs:choice>
61
						
62
					</xs:sequence>
63
				</xs:extension>
64
			</xs:complexContent>
65
		</xs:complexType>
66
	</xs:element>
67
	
68
	
69
</xs:schema>

Up to file-list protocol/intents/static/peer.xsd:

1
<?xml version="1.0" encoding="UTF-8"?>
2
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
3
	xmlns="http://codeartists.org/virtualme/protocol/1.0/intents/static/peer"
4
	targetNamespace="http://codeartists.org/virtualme/protocol/1.0/intents/static/peer">
5
6
</xs:schema>

Up to file-list protocol/intents/static/service.xsd:

1
<?xml version="1.0" encoding="UTF-8"?>
2
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
3
	xmlns="http://codeartists.org/virtualme/protocol/1.0/intents/static/service"
4
	targetNamespace="http://codeartists.org/virtualme/protocol/1.0/intents/static/service">
5
6
</xs:schema>

Up to file-list protocol/stream.xsd:

4
4
	targetNamespace="http://codeartists.org/virtualme/protocol/1.0/stream"
5
5
	elementFormDefault="qualified"
6
6
	xmlns:common="http://codeartists.org/virtualme/protocol/1.0/common"
7
	xmlns:client="http://codeartists.org/virtualme/protocol/1.0/client">
7
	xmlns:client-static="http://codeartists.org/virtualme/protocol/1.0/intents/static/client">
8
8
	
9
9
	<xs:import namespace="http://codeartists.org/virtualme/protocol/1.0/common" 
10
10
		schemaLocation="common.xsd" />
11
		<!-- http://codeartists.org/virtualme/schema/1.0/common -->
11
	<!-- http://codeartists.org/virtualme/schema/1.0/common -->
12
12
	
13
	<xs:import namespace="http://codeartists.org/virtualme/protocol/1.0/client"
14
		schemaLocation="client.xsd" />
15
	<!-- http://codeartists.org/virtualme/schema/1.0/client.xsd -->
13
	<xs:import namespace="http://codeartists.org/virtualme/protocol/1.0/intents/static/client"
14
		schemaLocation="intents/static/client.xsd" />
15
	<!-- http://codeartists.org/virtualme/schema/1.0/intents/static/client.xsd -->
16
16
	
17
	<xs:import namespace="http://codeartists.org/virtualme/protocol/1.0/peer"
18
		schemaLocation="peer.xsd" />
19
		<!-- http://codeartists.org/virtualme/schema/1.0/peer.xsd -->
17
	<xs:import namespace="http://codeartists.org/virtualme/protocol/1.0/intents/static/peer"
18
		schemaLocation="intents/static/peer.xsd" />
19
	<!-- http://codeartists.org/virtualme/schema/1.0/intents/static/peer.xsd -->
20
20
	
21
	<xs:import namespace="http://codeartists.org/virtualme/protocol/1.0/service"
22
		schemaLocation="service.xsd" />
23
		<!-- http://codeartists.org/virtualme/schema/1.0/service.xsd -->
24
	
21
	<xs:import namespace="http://codeartists.org/virtualme/protocol/1.0/intents/static/service"
22
		schemaLocation="intents/static/service.xsd" />
23
	<!-- http://codeartists.org/virtualme/schema/1.0/intents/static/service.xsd -->
25
24
	
26
25
	<xs:element name="stream">
27
26
		
34
33
					<xs:sequence>
35
34
						<xs:choice>
36
35
							<xs:sequence>
37
								<xs:element ref="client:register"/>
38
								<xs:element ref="client:authenticate" minOccurs="0" maxOccurs="unbounded"/>
36
								<xs:element ref="client-static:register"/>
37
								<xs:element ref="client-static:authenticate" minOccurs="0" maxOccurs="unbounded"/>
39
38
							</xs:sequence>
40
39
							<xs:element ref="client:authenticate" minOccurs="1" maxOccurs="unbounded"/>
41
40
						</xs:choice>