epp-client 0.0.3 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (166) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +24 -0
  3. data/.simplecov +16 -0
  4. data/.travis.yml +11 -0
  5. data/.yardopts +4 -0
  6. data/Gemfile +20 -0
  7. data/Gemfile.lock +51 -0
  8. data/LICENSE +1 -1
  9. data/README.md +75 -0
  10. data/Rakefile +2 -37
  11. data/epp-client.gemspec +15 -58
  12. data/gemfiles/Gemfile.ruby18 +13 -0
  13. data/lib/epp-client.rb +94 -7
  14. data/lib/epp-client/client.rb +117 -20
  15. data/lib/epp-client/commands/check.rb +11 -0
  16. data/lib/epp-client/commands/command.rb +24 -0
  17. data/lib/epp-client/commands/create.rb +11 -0
  18. data/lib/epp-client/commands/delete.rb +11 -0
  19. data/lib/epp-client/commands/info.rb +11 -0
  20. data/lib/epp-client/commands/login.rb +40 -0
  21. data/lib/epp-client/commands/logout.rb +11 -0
  22. data/lib/epp-client/commands/poll.rb +28 -0
  23. data/lib/epp-client/commands/read_write_command.rb +18 -0
  24. data/lib/epp-client/commands/renew.rb +11 -0
  25. data/lib/epp-client/commands/transfer.rb +25 -0
  26. data/lib/epp-client/commands/update.rb +11 -0
  27. data/lib/epp-client/contact/check.rb +23 -0
  28. data/lib/epp-client/contact/check_response.rb +22 -0
  29. data/lib/epp-client/contact/command.rb +87 -0
  30. data/lib/epp-client/contact/create.rb +34 -0
  31. data/lib/epp-client/contact/create_response.rb +14 -0
  32. data/lib/epp-client/contact/delete.rb +21 -0
  33. data/lib/epp-client/contact/delete_response.rb +9 -0
  34. data/lib/epp-client/contact/info.rb +21 -0
  35. data/lib/epp-client/contact/info_response.rb +74 -0
  36. data/lib/epp-client/contact/response.rb +34 -0
  37. data/lib/epp-client/contact/transfer.rb +21 -0
  38. data/lib/epp-client/contact/transfer_response.rb +26 -0
  39. data/lib/epp-client/contact/update.rb +80 -0
  40. data/lib/epp-client/contact/update_response.rb +9 -0
  41. data/lib/epp-client/domain/check.rb +23 -0
  42. data/lib/epp-client/domain/check_response.rb +22 -0
  43. data/lib/epp-client/domain/command.rb +92 -0
  44. data/lib/epp-client/domain/create.rb +49 -0
  45. data/lib/epp-client/domain/create_response.rb +17 -0
  46. data/lib/epp-client/domain/delete.rb +21 -0
  47. data/lib/epp-client/domain/delete_response.rb +9 -0
  48. data/lib/epp-client/domain/info.rb +21 -0
  49. data/lib/epp-client/domain/info_response.rb +66 -0
  50. data/lib/epp-client/domain/renew.rb +34 -0
  51. data/lib/epp-client/domain/renew_response.rb +14 -0
  52. data/lib/epp-client/domain/response.rb +34 -0
  53. data/lib/epp-client/domain/transfer.rb +27 -0
  54. data/lib/epp-client/domain/transfer_response.rb +29 -0
  55. data/lib/epp-client/domain/update.rb +81 -0
  56. data/lib/epp-client/domain/update_response.rb +9 -0
  57. data/lib/epp-client/host/check.rb +23 -0
  58. data/lib/epp-client/host/check_response.rb +22 -0
  59. data/lib/epp-client/host/command.rb +47 -0
  60. data/lib/epp-client/host/create.rb +24 -0
  61. data/lib/epp-client/host/create_response.rb +14 -0
  62. data/lib/epp-client/host/delete.rb +21 -0
  63. data/lib/epp-client/host/delete_response.rb +9 -0
  64. data/lib/epp-client/host/info.rb +21 -0
  65. data/lib/epp-client/host/info_response.rb +42 -0
  66. data/lib/epp-client/host/response.rb +34 -0
  67. data/lib/epp-client/host/update.rb +76 -0
  68. data/lib/epp-client/host/update_response.rb +9 -0
  69. data/lib/epp-client/request.rb +29 -74
  70. data/lib/epp-client/requests/abstract.rb +30 -0
  71. data/lib/epp-client/requests/command.rb +28 -0
  72. data/lib/epp-client/requests/extension.rb +28 -0
  73. data/lib/epp-client/requests/hello.rb +12 -0
  74. data/lib/epp-client/response.rb +45 -8
  75. data/lib/epp-client/response_helper.rb +25 -0
  76. data/lib/epp-client/server.rb +167 -63
  77. data/lib/epp-client/testing.rb +59 -0
  78. data/lib/epp-client/version.rb +3 -0
  79. data/lib/epp-client/xml_helper.rb +71 -0
  80. data/test/commands/test_check_command.rb +33 -0
  81. data/test/commands/test_create_command.rb +53 -0
  82. data/test/commands/test_delete_command.rb +28 -0
  83. data/test/commands/test_info_command.rb +28 -0
  84. data/test/commands/test_login_command.rb +56 -0
  85. data/test/commands/test_logout_command.rb +22 -0
  86. data/test/commands/test_poll_command.rb +54 -0
  87. data/test/commands/test_renew_command.rb +39 -0
  88. data/test/commands/test_transfer_command.rb +37 -0
  89. data/test/commands/test_update_command.rb +60 -0
  90. data/test/contact/test_contact_check.rb +33 -0
  91. data/test/contact/test_contact_check_response.rb +38 -0
  92. data/test/contact/test_contact_create.rb +70 -0
  93. data/test/contact/test_contact_create_response.rb +33 -0
  94. data/test/contact/test_contact_delete.rb +28 -0
  95. data/test/contact/test_contact_delete_response.rb +23 -0
  96. data/test/contact/test_contact_info.rb +28 -0
  97. data/test/contact/test_contact_info_response.rb +100 -0
  98. data/test/contact/test_contact_transfer.rb +28 -0
  99. data/test/contact/test_contact_transfer_response.rb +100 -0
  100. data/test/contact/test_contact_update.rb +83 -0
  101. data/test/contact/test_contact_update_response.rb +23 -0
  102. data/test/domain/test_domain_check.rb +33 -0
  103. data/test/domain/test_domain_check_response.rb +38 -0
  104. data/test/domain/test_domain_create.rb +53 -0
  105. data/test/domain/test_domain_create_response.rb +39 -0
  106. data/test/domain/test_domain_delete.rb +28 -0
  107. data/test/domain/test_domain_delete_response.rb +23 -0
  108. data/test/domain/test_domain_info.rb +28 -0
  109. data/test/domain/test_domain_info_response.rb +107 -0
  110. data/test/domain/test_domain_renew.rb +39 -0
  111. data/test/domain/test_domain_renew_response.rb +32 -0
  112. data/test/domain/test_domain_transfer.rb +37 -0
  113. data/test/domain/test_domain_transfer_response.rb +112 -0
  114. data/test/domain/test_domain_update.rb +73 -0
  115. data/test/domain/test_domain_update_response.rb +23 -0
  116. data/test/fixtures/responses/contact/check.xml +27 -0
  117. data/test/fixtures/responses/contact/create.xml +19 -0
  118. data/test/fixtures/responses/contact/delete.xml +12 -0
  119. data/test/fixtures/responses/contact/info.xml +49 -0
  120. data/test/fixtures/responses/contact/transfer-query.xml +23 -0
  121. data/test/fixtures/responses/contact/transfer-request.xml +23 -0
  122. data/test/fixtures/responses/contact/update.xml +12 -0
  123. data/test/fixtures/responses/domain/check.xml +27 -0
  124. data/test/fixtures/responses/domain/create.xml +20 -0
  125. data/test/fixtures/responses/domain/delete.xml +12 -0
  126. data/test/fixtures/responses/domain/info-no-exDate.xml +38 -0
  127. data/test/fixtures/responses/domain/info.xml +39 -0
  128. data/test/fixtures/responses/domain/renew.xml +19 -0
  129. data/test/fixtures/responses/domain/transfer-query.xml +24 -0
  130. data/test/fixtures/responses/domain/transfer-request.xml +24 -0
  131. data/test/fixtures/responses/domain/update.xml +12 -0
  132. data/test/fixtures/responses/greeting.xml +25 -0
  133. data/test/fixtures/responses/host/check.xml +27 -0
  134. data/test/fixtures/responses/host/create.xml +19 -0
  135. data/test/fixtures/responses/host/delete.xml +12 -0
  136. data/test/fixtures/responses/host/info.xml +30 -0
  137. data/test/fixtures/responses/host/update.xml +12 -0
  138. data/test/helper.rb +89 -0
  139. data/test/host/test_host_check.rb +33 -0
  140. data/test/host/test_host_check_response.rb +38 -0
  141. data/test/host/test_host_create.rb +37 -0
  142. data/test/host/test_host_create_response.rb +33 -0
  143. data/test/host/test_host_delete.rb +28 -0
  144. data/test/host/test_host_delete_response.rb +23 -0
  145. data/test/host/test_host_info.rb +28 -0
  146. data/test/host/test_host_info_response.rb +72 -0
  147. data/test/host/test_host_update.rb +68 -0
  148. data/test/host/test_host_update_response.rb +23 -0
  149. data/test/requests/test_command_request.rb +16 -0
  150. data/test/requests/test_extension_request.rb +55 -0
  151. data/test/requests/test_hello_request.rb +15 -0
  152. data/test/support/schemas/all.xsd +21 -0
  153. data/test/support/schemas/contact-1.0.xsd +387 -0
  154. data/test/support/schemas/domain-1.0.xsd +432 -0
  155. data/test/support/schemas/epp-1.0.xsd +403 -0
  156. data/test/support/schemas/eppcom-1.0.xsd +93 -0
  157. data/test/support/schemas/host-1.0.xsd +240 -0
  158. data/test/test_client.rb +54 -0
  159. data/test/test_request.rb +15 -0
  160. data/test/test_server.rb +57 -0
  161. metadata +270 -91
  162. data/.document +0 -5
  163. data/README.rdoc +0 -17
  164. data/VERSION +0 -1
  165. data/lib/epp-client/hello_request.rb +0 -9
  166. data/test/test_epp-client.rb +0 -7
@@ -0,0 +1,432 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+
3
+ <schema targetNamespace="urn:ietf:params:xml:ns:domain-1.0"
4
+ xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"
5
+ xmlns:host="urn:ietf:params:xml:ns:host-1.0"
6
+ xmlns:epp="urn:ietf:params:xml:ns:epp-1.0"
7
+ xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0"
8
+ xmlns="http://www.w3.org/2001/XMLSchema"
9
+ elementFormDefault="qualified">
10
+
11
+ <!--
12
+ Import common element types.
13
+ -->
14
+ <import namespace="urn:ietf:params:xml:ns:eppcom-1.0" schemaLocation="eppcom-1.0.xsd"/>
15
+ <import namespace="urn:ietf:params:xml:ns:epp-1.0" schemaLocation="epp-1.0.xsd"/>
16
+ <import namespace="urn:ietf:params:xml:ns:host-1.0" schemaLocation="host-1.0.xsd"/>
17
+
18
+ <annotation>
19
+ <documentation>
20
+ Extensible Provisioning Protocol v1.0
21
+ domain provisioning schema.
22
+ </documentation>
23
+ </annotation>
24
+
25
+ <!--
26
+ Child elements found in EPP commands.
27
+ -->
28
+ <element name="check" type="domain:mNameType"/>
29
+ <element name="create" type="domain:createType"/>
30
+ <element name="delete" type="domain:sNameType"/>
31
+ <element name="info" type="domain:infoType"/>
32
+ <element name="renew" type="domain:renewType"/>
33
+ <element name="transfer" type="domain:transferType"/>
34
+ <element name="update" type="domain:updateType"/>
35
+
36
+ <!--
37
+ Child elements of the <create> command.
38
+ -->
39
+ <complexType name="createType">
40
+ <sequence>
41
+ <element name="name" type="eppcom:labelType"/>
42
+ <element name="period" type="domain:periodType"
43
+ minOccurs="0"/>
44
+ <element name="ns" type="domain:nsType"
45
+ minOccurs="0"/>
46
+ <element name="registrant" type="eppcom:clIDType"
47
+ minOccurs="0"/>
48
+ <element name="contact" type="domain:contactType"
49
+ minOccurs="0" maxOccurs="unbounded"/>
50
+ <element name="authInfo" type="domain:authInfoType"/>
51
+ </sequence>
52
+ </complexType>
53
+
54
+ <complexType name="periodType">
55
+ <simpleContent>
56
+ <extension base="domain:pLimitType">
57
+ <attribute name="unit" type="domain:pUnitType"
58
+ use="required"/>
59
+ </extension>
60
+ </simpleContent>
61
+ </complexType>
62
+
63
+ <simpleType name="pLimitType">
64
+ <restriction base="unsignedShort">
65
+ <minInclusive value="1"/>
66
+ <maxInclusive value="99"/>
67
+ </restriction>
68
+ </simpleType>
69
+
70
+ <simpleType name="pUnitType">
71
+ <restriction base="token">
72
+ <enumeration value="y"/>
73
+ <enumeration value="m"/>
74
+ </restriction>
75
+ </simpleType>
76
+
77
+ <complexType name="nsType">
78
+ <choice>
79
+ <element name="hostObj" type="eppcom:labelType"
80
+ maxOccurs="unbounded"/>
81
+ <element name="hostAttr" type="domain:hostAttrType"
82
+ maxOccurs="unbounded"/>
83
+ </choice>
84
+ </complexType>
85
+ <!--
86
+ Name servers are either host objects or attributes.
87
+ -->
88
+ <complexType name="hostAttrType">
89
+ <sequence>
90
+ <element name="hostName" type="eppcom:labelType"/>
91
+ <element name="hostAddr" type="host:addrType"
92
+ minOccurs="0" maxOccurs="unbounded"/>
93
+ </sequence>
94
+ </complexType>
95
+ <!--
96
+ If attributes, addresses are optional and follow the
97
+ structure defined in the host mapping.
98
+ -->
99
+
100
+ <complexType name="contactType">
101
+ <simpleContent>
102
+ <extension base="eppcom:clIDType">
103
+ <attribute name="type" type="domain:contactAttrType"/>
104
+ </extension>
105
+ </simpleContent>
106
+ </complexType>
107
+
108
+ <simpleType name="contactAttrType">
109
+ <restriction base="token">
110
+ <enumeration value="admin"/>
111
+ <enumeration value="billing"/>
112
+ <enumeration value="tech"/>
113
+ </restriction>
114
+ </simpleType>
115
+
116
+ <complexType name="authInfoType">
117
+ <choice>
118
+ <element name="pw" type="eppcom:pwAuthInfoType"/>
119
+ <element name="ext" type="eppcom:extAuthInfoType"/>
120
+ </choice>
121
+ </complexType>
122
+
123
+ <!--
124
+ Child element of commands that require a single name.
125
+ -->
126
+ <complexType name="sNameType">
127
+ <sequence>
128
+ <element name="name" type="eppcom:labelType"/>
129
+ </sequence>
130
+ </complexType>
131
+ <!--
132
+ Child element of commands that accept multiple names.
133
+ -->
134
+ <complexType name="mNameType">
135
+ <sequence>
136
+ <element name="name" type="eppcom:labelType"
137
+ maxOccurs="unbounded"/>
138
+ </sequence>
139
+ </complexType>
140
+
141
+ <!--
142
+ Child elements of the <info> command.
143
+ -->
144
+ <complexType name="infoType">
145
+ <sequence>
146
+ <element name="name" type="domain:infoNameType"/>
147
+ <element name="authInfo" type="domain:authInfoType"
148
+ minOccurs="0"/>
149
+ </sequence>
150
+ </complexType>
151
+
152
+ <complexType name="infoNameType">
153
+ <simpleContent>
154
+ <extension base = "eppcom:labelType">
155
+ <attribute name="hosts" type="domain:hostsType"
156
+ default="all"/>
157
+ </extension>
158
+ </simpleContent>
159
+ </complexType>
160
+
161
+ <simpleType name="hostsType">
162
+ <restriction base="token">
163
+ <enumeration value="all"/>
164
+ <enumeration value="del"/>
165
+ <enumeration value="none"/>
166
+ <enumeration value="sub"/>
167
+ </restriction>
168
+ </simpleType>
169
+
170
+ <!--
171
+ Child elements of the <renew> command.
172
+ -->
173
+ <complexType name="renewType">
174
+ <sequence>
175
+ <element name="name" type="eppcom:labelType"/>
176
+ <element name="curExpDate" type="date"/>
177
+ <element name="period" type="domain:periodType"
178
+ minOccurs="0"/>
179
+ </sequence>
180
+ </complexType>
181
+
182
+ <!--
183
+ Child elements of the <transfer> command.
184
+ -->
185
+ <complexType name="transferType">
186
+ <sequence>
187
+ <element name="name" type="eppcom:labelType"/>
188
+ <element name="period" type="domain:periodType"
189
+ minOccurs="0"/>
190
+ <element name="authInfo" type="domain:authInfoType"
191
+ minOccurs="0"/>
192
+ </sequence>
193
+ </complexType>
194
+
195
+ <!--
196
+ Child elements of the <update> command.
197
+ -->
198
+ <complexType name="updateType">
199
+ <sequence>
200
+ <element name="name" type="eppcom:labelType"/>
201
+ <element name="add" type="domain:addRemType"
202
+ minOccurs="0"/>
203
+ <element name="rem" type="domain:addRemType"
204
+ minOccurs="0"/>
205
+ <element name="chg" type="domain:chgType"
206
+ minOccurs="0"/>
207
+ </sequence>
208
+ </complexType>
209
+
210
+ <!--
211
+ Data elements that can be added or removed.
212
+ -->
213
+ <complexType name="addRemType">
214
+ <sequence>
215
+ <element name="ns" type="domain:nsType"
216
+ minOccurs="0"/>
217
+ <element name="contact" type="domain:contactType"
218
+ minOccurs="0" maxOccurs="unbounded"/>
219
+ <element name="status" type="domain:statusType"
220
+ minOccurs="0" maxOccurs="11"/>
221
+ </sequence>
222
+ </complexType>
223
+
224
+ <!--
225
+ Data elements that can be changed.
226
+ -->
227
+ <complexType name="chgType">
228
+ <sequence>
229
+ <element name="registrant" type="domain:clIDChgType"
230
+ minOccurs="0"/>
231
+ <element name="authInfo" type="domain:authInfoChgType"
232
+ minOccurs="0"/>
233
+ </sequence>
234
+ </complexType>
235
+
236
+ <!--
237
+ Allow the registrant value to be nullified by changing the
238
+ minLength restriction to "0".
239
+ -->
240
+ <simpleType name="clIDChgType">
241
+ <restriction base="token">
242
+ <minLength value="0"/>
243
+ <maxLength value="16"/>
244
+ </restriction>
245
+ </simpleType>
246
+
247
+ <!--
248
+ Allow the authInfo value to be nullified by including an
249
+ empty element within the choice.
250
+ -->
251
+ <complexType name="authInfoChgType">
252
+ <choice>
253
+ <element name="pw" type="eppcom:pwAuthInfoType"/>
254
+ <element name="ext" type="eppcom:extAuthInfoType"/>
255
+ <element name="null"/>
256
+ </choice>
257
+ </complexType>
258
+
259
+ <!--
260
+ Child response elements.
261
+ -->
262
+ <element name="chkData" type="domain:chkDataType"/>
263
+ <element name="creData" type="domain:creDataType"/>
264
+ <element name="infData" type="domain:infDataType"/>
265
+ <element name="panData" type="domain:panDataType"/>
266
+ <element name="renData" type="domain:renDataType"/>
267
+ <element name="trnData" type="domain:trnDataType"/>
268
+
269
+ <!--
270
+ <check> response elements.
271
+ -->
272
+ <complexType name="chkDataType">
273
+ <sequence>
274
+ <element name="cd" type="domain:checkType"
275
+ maxOccurs="unbounded"/>
276
+ </sequence>
277
+ </complexType>
278
+
279
+ <complexType name="checkType">
280
+ <sequence>
281
+ <element name="name" type="domain:checkNameType"/>
282
+ <element name="reason" type="eppcom:reasonType"
283
+ minOccurs="0"/>
284
+ </sequence>
285
+ </complexType>
286
+
287
+ <complexType name="checkNameType">
288
+ <simpleContent>
289
+ <extension base="eppcom:labelType">
290
+ <attribute name="avail" type="boolean"
291
+ use="required"/>
292
+ </extension>
293
+ </simpleContent>
294
+ </complexType>
295
+
296
+ <!--
297
+ <create> response elements.
298
+ -->
299
+ <complexType name="creDataType">
300
+ <sequence>
301
+ <element name="name" type="eppcom:labelType"/>
302
+ <element name="crDate" type="dateTime"/>
303
+ <element name="exDate" type="dateTime"
304
+ minOccurs="0"/>
305
+ </sequence>
306
+ </complexType>
307
+
308
+ <!--
309
+ <info> response elements.
310
+ -->
311
+ <complexType name="infDataType">
312
+ <sequence>
313
+ <element name="name" type="eppcom:labelType"/>
314
+ <element name="roid" type="eppcom:roidType"/>
315
+ <element name="status" type="domain:statusType"
316
+ minOccurs="0" maxOccurs="11"/>
317
+ <element name="registrant" type="eppcom:clIDType"
318
+ minOccurs="0"/>
319
+ <element name="contact" type="domain:contactType"
320
+ minOccurs="0" maxOccurs="unbounded"/>
321
+ <element name="ns" type="domain:nsType"
322
+ minOccurs="0"/>
323
+ <element name="host" type="eppcom:labelType"
324
+ minOccurs="0" maxOccurs="unbounded"/>
325
+ <element name="clID" type="eppcom:clIDType"/>
326
+ <element name="crID" type="eppcom:clIDType"
327
+ minOccurs="0"/>
328
+ <element name="crDate" type="dateTime"
329
+ minOccurs="0"/>
330
+ <element name="upID" type="eppcom:clIDType"
331
+ minOccurs="0"/>
332
+ <element name="upDate" type="dateTime"
333
+ minOccurs="0"/>
334
+ <element name="exDate" type="dateTime"
335
+ minOccurs="0"/>
336
+ <element name="trDate" type="dateTime"
337
+ minOccurs="0"/>
338
+ <element name="authInfo" type="domain:authInfoType"
339
+ minOccurs="0"/>
340
+ </sequence>
341
+ </complexType>
342
+
343
+ <!--
344
+ Status is a combination of attributes and an optional
345
+ human-readable message that may be expressed in languages other
346
+ than English.
347
+ -->
348
+ <complexType name="statusType">
349
+ <simpleContent>
350
+ <extension base="normalizedString">
351
+ <attribute name="s" type="domain:statusValueType"
352
+ use="required"/>
353
+ <attribute name="lang" type="language"
354
+ default="en"/>
355
+ </extension>
356
+ </simpleContent>
357
+ </complexType>
358
+
359
+ <simpleType name="statusValueType">
360
+ <restriction base="token">
361
+ <enumeration value="clientDeleteProhibited"/>
362
+ <enumeration value="clientHold"/>
363
+ <enumeration value="clientRenewProhibited"/>
364
+ <enumeration value="clientTransferProhibited"/>
365
+ <enumeration value="clientUpdateProhibited"/>
366
+ <enumeration value="inactive"/>
367
+ <enumeration value="ok"/>
368
+ <enumeration value="pendingCreate"/>
369
+ <enumeration value="pendingDelete"/>
370
+ <enumeration value="pendingRenew"/>
371
+ <enumeration value="pendingTransfer"/>
372
+ <enumeration value="pendingUpdate"/>
373
+ <enumeration value="serverDeleteProhibited"/>
374
+ <enumeration value="serverHold"/>
375
+ <enumeration value="serverRenewProhibited"/>
376
+ <enumeration value="serverTransferProhibited"/>
377
+ <enumeration value="serverUpdateProhibited"/>
378
+ </restriction>
379
+ </simpleType>
380
+
381
+ <!--
382
+ Pending action notification response elements.
383
+ -->
384
+ <complexType name="panDataType">
385
+ <sequence>
386
+ <element name="name" type="domain:paNameType"/>
387
+ <element name="paTRID" type="epp:trIDType"/>
388
+ <element name="paDate" type="dateTime"/>
389
+ </sequence>
390
+ </complexType>
391
+
392
+ <complexType name="paNameType">
393
+ <simpleContent>
394
+ <extension base="eppcom:labelType">
395
+ <attribute name="paResult" type="boolean"
396
+ use="required"/>
397
+ </extension>
398
+ </simpleContent>
399
+ </complexType>
400
+
401
+ <!--
402
+ <renew> response elements.
403
+ -->
404
+ <complexType name="renDataType">
405
+ <sequence>
406
+ <element name="name" type="eppcom:labelType"/>
407
+ <element name="exDate" type="dateTime"
408
+ minOccurs="0"/>
409
+ </sequence>
410
+ </complexType>
411
+
412
+ <!--
413
+ <transfer> response elements.
414
+ -->
415
+ <complexType name="trnDataType">
416
+ <sequence>
417
+ <element name="name" type="eppcom:labelType"/>
418
+ <element name="trStatus" type="eppcom:trStatusType"/>
419
+ <element name="reID" type="eppcom:clIDType"/>
420
+ <element name="reDate" type="dateTime"/>
421
+ <element name="acID" type="eppcom:clIDType"/>
422
+ <element name="acDate" type="dateTime"/>
423
+ <element name="exDate" type="dateTime"
424
+ minOccurs="0"/>
425
+ </sequence>
426
+ </complexType>
427
+
428
+ <!--
429
+ End of schema.
430
+ -->
431
+ </schema>
432
+
@@ -0,0 +1,403 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <schema targetNamespace="urn:ietf:params:xml:ns:epp-1.0"
3
+ xmlns:epp="urn:ietf:params:xml:ns:epp-1.0"
4
+ xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0"
5
+ xmlns="http://www.w3.org/2001/XMLSchema"
6
+ elementFormDefault="qualified">
7
+ <!--
8
+ Import common element types.
9
+ -->
10
+ <import namespace="urn:ietf:params:xml:ns:eppcom-1.0" schemaLocation="eppcom-1.0.xsd"/>
11
+
12
+ <annotation>
13
+ <documentation>
14
+ Extensible Provisioning Protocol v1.0 schema.
15
+ </documentation>
16
+ </annotation>
17
+ <!--
18
+ Every EPP XML instance must begin with this element.
19
+ -->
20
+ <element name="epp" type="epp:eppType"/>
21
+ <!--
22
+ An EPP XML instance must contain a greeting, hello, command,
23
+ response, or extension.
24
+ -->
25
+ <complexType name="eppType">
26
+ <choice>
27
+ <element name="greeting" type="epp:greetingType"/>
28
+ <element name="hello"/>
29
+ <element name="command" type="epp:commandType"/>
30
+ <element name="response" type="epp:responseType"/>
31
+ <element name="extension" type="epp:extAnyType"/>
32
+ </choice>
33
+ </complexType>
34
+ <!--
35
+ A greeting is sent by a server in response to a client connection
36
+ or <hello>.
37
+ -->
38
+ <complexType name="greetingType">
39
+ <sequence>
40
+ <element name="svID" type="epp:sIDType"/>
41
+ <element name="svDate" type="dateTime"/>
42
+ <element name="svcMenu" type="epp:svcMenuType"/>
43
+ <element name="dcp" type="epp:dcpType"/>
44
+ </sequence>
45
+ </complexType>
46
+ <!--
47
+ Server IDs are strings with minimum and maximum length restrictions.
48
+ -->
49
+ <simpleType name="sIDType">
50
+ <restriction base="normalizedString">
51
+ <minLength value="3"/>
52
+ <maxLength value="64"/>
53
+ </restriction>
54
+ </simpleType>
55
+ <!--
56
+ A server greeting identifies available object services.
57
+ -->
58
+ <complexType name="svcMenuType">
59
+ <sequence>
60
+ <element name="version" type="epp:versionType"
61
+ maxOccurs="unbounded"/>
62
+ <element name="lang" type="language"
63
+ maxOccurs="unbounded"/>
64
+ <element name="objURI" type="anyURI"
65
+ maxOccurs="unbounded"/>
66
+ <element name="svcExtension" type="epp:extURIType"
67
+ minOccurs="0"/>
68
+ </sequence>
69
+ </complexType>
70
+ <!--
71
+ Data Collection Policy types.
72
+ -->
73
+ <complexType name="dcpType">
74
+ <sequence>
75
+ <element name="access" type="epp:dcpAccessType"/>
76
+ <element name="statement" type="epp:dcpStatementType"
77
+ maxOccurs="unbounded"/>
78
+ <element name="expiry" type="epp:dcpExpiryType"
79
+ minOccurs="0"/>
80
+ </sequence>
81
+ </complexType>
82
+ <complexType name="dcpAccessType">
83
+ <choice>
84
+ <element name="all"/>
85
+ <element name="none"/>
86
+ <element name="null"/>
87
+ <element name="other"/>
88
+ <element name="personal"/>
89
+ <element name="personalAndOther"/>
90
+ </choice>
91
+ </complexType>
92
+ <complexType name="dcpStatementType">
93
+ <sequence>
94
+ <element name="purpose" type="epp:dcpPurposeType"/>
95
+ <element name="recipient" type="epp:dcpRecipientType"/>
96
+ <element name="retention" type="epp:dcpRetentionType"/>
97
+ </sequence>
98
+ </complexType>
99
+ <complexType name="dcpPurposeType">
100
+ <sequence>
101
+ <element name="admin"
102
+ minOccurs="0"/>
103
+ <element name="contact"
104
+ minOccurs="0"/>
105
+ <element name="other"
106
+ minOccurs="0"/>
107
+ <element name="prov"
108
+ minOccurs="0"/>
109
+ </sequence>
110
+ </complexType>
111
+ <complexType name="dcpRecipientType">
112
+ <sequence>
113
+ <element name="other"
114
+ minOccurs="0"/>
115
+ <element name="ours" type="epp:dcpOursType"
116
+ minOccurs="0" maxOccurs="unbounded"/>
117
+ <element name="public"
118
+ minOccurs="0"/>
119
+ <element name="same"
120
+ minOccurs="0"/>
121
+ <element name="unrelated"
122
+ minOccurs="0"/>
123
+ </sequence>
124
+ </complexType>
125
+ <complexType name="dcpOursType">
126
+ <sequence>
127
+ <element name="recDesc" type="epp:dcpRecDescType"
128
+ minOccurs="0"/>
129
+ </sequence>
130
+ </complexType>
131
+ <simpleType name="dcpRecDescType">
132
+ <restriction base="token">
133
+ <minLength value="1"/>
134
+ <maxLength value="255"/>
135
+ </restriction>
136
+ </simpleType>
137
+ <complexType name="dcpRetentionType">
138
+ <choice>
139
+ <element name="business"/>
140
+ <element name="indefinite"/>
141
+ <element name="legal"/>
142
+ <element name="none"/>
143
+ <element name="stated"/>
144
+ </choice>
145
+ </complexType>
146
+ <complexType name="dcpExpiryType">
147
+ <choice>
148
+ <element name="absolute" type="dateTime"/>
149
+ <element name="relative" type="duration"/>
150
+ </choice>
151
+ </complexType>
152
+ <!--
153
+ Extension framework types.
154
+ -->
155
+ <complexType name="extAnyType">
156
+ <sequence>
157
+ <any namespace="##other"
158
+ maxOccurs="unbounded"/>
159
+ </sequence>
160
+ </complexType>
161
+ <complexType name="extURIType">
162
+ <sequence>
163
+ <element name="extURI" type="anyURI"
164
+ maxOccurs="unbounded"/>
165
+ </sequence>
166
+ </complexType>
167
+ <!--
168
+ An EPP version number is a dotted pair of decimal numbers.
169
+ -->
170
+ <simpleType name="versionType">
171
+ <restriction base="token">
172
+ <pattern value="[1-9]+\.[0-9]+"/>
173
+ <enumeration value="1.0"/>
174
+ </restriction>
175
+ </simpleType>
176
+ <!--
177
+ Command types.
178
+ -->
179
+ <complexType name="commandType">
180
+ <sequence>
181
+ <choice>
182
+ <element name="check" type="epp:readWriteType"/>
183
+ <element name="create" type="epp:readWriteType"/>
184
+ <element name="delete" type="epp:readWriteType"/>
185
+ <element name="info" type="epp:readWriteType"/>
186
+ <element name="login" type="epp:loginType"/>
187
+ <element name="logout"/>
188
+ <element name="poll" type="epp:pollType"/>
189
+ <element name="renew" type="epp:readWriteType"/>
190
+ <element name="transfer" type="epp:transferType"/>
191
+ <element name="update" type="epp:readWriteType"/>
192
+ </choice>
193
+ <element name="extension" type="epp:extAnyType"
194
+ minOccurs="0"/>
195
+ <element name="clTRID" type="epp:trIDStringType"
196
+ minOccurs="0"/>
197
+ </sequence>
198
+ </complexType>
199
+ <!--
200
+ The <login> command.
201
+ -->
202
+ <complexType name="loginType">
203
+ <sequence>
204
+ <element name="clID" type="eppcom:clIDType"/>
205
+ <element name="pw" type="epp:pwType"/>
206
+ <element name="newPW" type="epp:pwType"
207
+ minOccurs="0"/>
208
+ <element name="options" type="epp:credsOptionsType"/>
209
+ <element name="svcs" type="epp:loginSvcType"/>
210
+ </sequence>
211
+ </complexType>
212
+ <complexType name="credsOptionsType">
213
+ <sequence>
214
+ <element name="version" type="epp:versionType"/>
215
+ <element name="lang" type="language"/>
216
+ </sequence>
217
+ </complexType>
218
+ <simpleType name="pwType">
219
+ <restriction base="token">
220
+ <minLength value="6"/>
221
+ <maxLength value="16"/>
222
+ </restriction>
223
+ </simpleType>
224
+ <complexType name="loginSvcType">
225
+ <sequence>
226
+ <element name="objURI" type="anyURI"
227
+ maxOccurs="unbounded"/>
228
+ <element name="svcExtension" type="epp:extURIType"
229
+ minOccurs="0"/>
230
+ </sequence>
231
+ </complexType>
232
+ <!--
233
+ The <poll> command.
234
+ -->
235
+ <complexType name="pollType">
236
+ <attribute name="op" type="epp:pollOpType"
237
+ use="required"/>
238
+ <attribute name="msgID" type="token"/>
239
+ </complexType>
240
+ <simpleType name="pollOpType">
241
+ <restriction base="token">
242
+ <enumeration value="ack"/>
243
+ <enumeration value="req"/>
244
+ </restriction>
245
+ </simpleType>
246
+ <!--
247
+ The <transfer> command. This is object-specific, and uses attributes
248
+ to identify the requested operation.
249
+ -->
250
+ <complexType name="transferType">
251
+ <sequence>
252
+ <any namespace="##other"/>
253
+ </sequence>
254
+ <attribute name="op" type="epp:transferOpType"
255
+ use="required"/>
256
+ </complexType>
257
+ <simpleType name="transferOpType">
258
+ <restriction base="token">
259
+ <enumeration value="approve"/>
260
+ <enumeration value="cancel"/>
261
+ <enumeration value="query"/>
262
+ <enumeration value="reject"/>
263
+ <enumeration value="request"/>
264
+ </restriction>
265
+ </simpleType>
266
+ <!--
267
+ All other object-centric commands. EPP doesn't specify the syntax or
268
+ semantics of object-centric command elements. The elements MUST be
269
+ described in detail in another schema specific to the object.
270
+ -->
271
+ <complexType name="readWriteType">
272
+ <sequence>
273
+ <any namespace="##other"/>
274
+ </sequence>
275
+ </complexType>
276
+ <complexType name="trIDType">
277
+ <sequence>
278
+ <element name="clTRID" type="epp:trIDStringType"
279
+ minOccurs="0"/>
280
+ <element name="svTRID" type="epp:trIDStringType"/>
281
+ </sequence>
282
+ </complexType>
283
+ <simpleType name="trIDStringType">
284
+ <restriction base="token">
285
+ <minLength value="3"/>
286
+ <maxLength value="64"/>
287
+ </restriction>
288
+ </simpleType>
289
+ <!--
290
+ Response types.
291
+ -->
292
+ <complexType name="responseType">
293
+ <sequence>
294
+ <element name="result" type="epp:resultType"
295
+ maxOccurs="unbounded"/>
296
+ <element name="msgQ" type="epp:msgQType"
297
+ minOccurs="0"/>
298
+ <element name="resData" type="epp:extAnyType"
299
+ minOccurs="0"/>
300
+ <element name="extension" type="epp:extAnyType"
301
+ minOccurs="0"/>
302
+ <element name="trID" type="epp:trIDType"/>
303
+ </sequence>
304
+ </complexType>
305
+ <complexType name="resultType">
306
+ <sequence>
307
+ <element name="msg" type="epp:msgType"/>
308
+ <choice minOccurs="0" maxOccurs="unbounded">
309
+ <element name="value" type="epp:errValueType"/>
310
+ <element name="extValue" type="epp:extErrValueType"/>
311
+ </choice>
312
+ </sequence>
313
+ <attribute name="code" type="epp:resultCodeType"
314
+ use="required"/>
315
+ </complexType>
316
+ <complexType name="errValueType" mixed="true">
317
+ <sequence>
318
+ <any namespace="##any" processContents="skip"/>
319
+ </sequence>
320
+ <anyAttribute namespace="##any" processContents="skip"/>
321
+ </complexType>
322
+ <complexType name="extErrValueType">
323
+ <sequence>
324
+ <element name="value" type="epp:errValueType"/>
325
+ <element name="reason" type="epp:msgType"/>
326
+ </sequence>
327
+ </complexType>
328
+ <complexType name="msgQType">
329
+ <sequence>
330
+ <element name="qDate" type="dateTime"
331
+ minOccurs="0"/>
332
+ <element name="msg" type="epp:mixedMsgType"
333
+ minOccurs="0"/>
334
+ </sequence>
335
+ <attribute name="count" type="unsignedLong"
336
+ use="required"/>
337
+ <attribute name="id" type="eppcom:minTokenType"
338
+ use="required"/>
339
+ </complexType>
340
+ <complexType name="mixedMsgType" mixed="true">
341
+ <sequence>
342
+ <any processContents="skip"
343
+ minOccurs="0" maxOccurs="unbounded"/>
344
+ </sequence>
345
+ <attribute name="lang" type="language"
346
+ default="en"/>
347
+ </complexType>
348
+ <!--
349
+ Human-readable text may be expressed in languages other than English.
350
+ -->
351
+ <complexType name="msgType">
352
+ <simpleContent>
353
+ <extension base="normalizedString">
354
+ <attribute name="lang" type="language"
355
+ default="en"/>
356
+ </extension>
357
+ </simpleContent>
358
+ </complexType>
359
+ <!--
360
+ EPP result codes.
361
+ -->
362
+ <simpleType name="resultCodeType">
363
+ <restriction base="unsignedShort">
364
+ <enumeration value="1000"/>
365
+ <enumeration value="1001"/>
366
+ <enumeration value="1300"/>
367
+ <enumeration value="1301"/>
368
+ <enumeration value="1500"/>
369
+ <enumeration value="2000"/>
370
+ <enumeration value="2001"/>
371
+ <enumeration value="2002"/>
372
+ <enumeration value="2003"/>
373
+ <enumeration value="2004"/>
374
+ <enumeration value="2005"/>
375
+ <enumeration value="2100"/>
376
+ <enumeration value="2101"/>
377
+ <enumeration value="2102"/>
378
+ <enumeration value="2103"/>
379
+ <enumeration value="2104"/>
380
+ <enumeration value="2105"/>
381
+ <enumeration value="2106"/>
382
+ <enumeration value="2200"/>
383
+ <enumeration value="2201"/>
384
+ <enumeration value="2202"/>
385
+ <enumeration value="2300"/>
386
+ <enumeration value="2301"/>
387
+ <enumeration value="2302"/>
388
+ <enumeration value="2303"/>
389
+ <enumeration value="2304"/>
390
+ <enumeration value="2305"/>
391
+ <enumeration value="2306"/>
392
+ <enumeration value="2307"/>
393
+ <enumeration value="2308"/>
394
+ <enumeration value="2400"/>
395
+ <enumeration value="2500"/>
396
+ <enumeration value="2501"/>
397
+ <enumeration value="2502"/>
398
+ </restriction>
399
+ </simpleType>
400
+ <!--
401
+ End of schema.
402
+ -->
403
+ </schema>