1<?xml version="1.0" encoding="UTF-8"?>
2<!--
3 Copyright (c) 2009 IETF Trust and the persons identified as authors
4 of the code. All rights reserved.
5
6 Redistribution and use in source and binary forms, with or without
7 modification, are permitted provided that the following conditions
8 are met:
9
10 o Redistributions of source code must retain the above copyright
11 notice, this list of conditions and the following disclaimer.
12
13 o Redistributions in binary form must reproduce the above copyright
14 notice, this list of conditions and the following disclaimer in
15 the documentation and/or other materials provided with the
16 distribution.
17
18 o Neither the name of Internet Society, IETF or IETF Trust, nor the
19 names of specific contributors, may be used to endorse or promote
20 products derived from this software without specific prior written
21 permission.
22
23 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
26 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
27 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
28 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
29 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
30 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
31 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
32 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
33 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34-->
35<schema targetNamespace="urn:ietf:params:xml:ns:host-1.0"
36 xmlns:host="urn:ietf:params:xml:ns:host-1.0"
37 xmlns:epp="urn:ietf:params:xml:ns:epp-1.0"
38 xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0"
39 xmlns="http://www.w3.org/2001/XMLSchema"
40 elementFormDefault="qualified">
41
42 <!--
43 Import common element types.
44 -->
45 <import namespace="urn:ietf:params:xml:ns:eppcom-1.0"
46 schemaLocation="eppcom-1.0.xsd"/>
47 <import namespace="urn:ietf:params:xml:ns:epp-1.0"
48 schemaLocation="epp-1.0.xsd"/>
49
50 <annotation>
51 <documentation>
52 Extensible Provisioning Protocol v1.0
53 host provisioning schema.
54 </documentation>
55 </annotation>
56
57 <!--
58 Child elements found in EPP commands.
59 -->
60 <element name="check" type="host:mNameType"/>
61 <element name="create" type="host:createType"/>
62 <element name="delete" type="host:sNameType"/>
63 <element name="info" type="host:sNameType"/>
64 <element name="update" type="host:updateType"/>
65
66 <!--
67 Child elements of the <create> command.
68 -->
69 <complexType name="createType">
70 <sequence>
71 <element name="name" type="eppcom:labelType"/>
72 <element name="addr" type="host:addrType"
73 minOccurs="0" maxOccurs="unbounded"/>
74 </sequence>
75 </complexType>
76
77 <complexType name="addrType">
78 <simpleContent>
79 <extension base="host:addrStringType">
80 <attribute name="ip" type="host:ipType"
81 default="v4"/>
82 </extension>
83 </simpleContent>
84 </complexType>
85
86 <simpleType name="addrStringType">
87 <restriction base="token">
88 <minLength value="3"/>
89 <maxLength value="45"/>
90 </restriction>
91 </simpleType>
92
93 <simpleType name="ipType">
94 <restriction base="token">
95 <enumeration value="v4"/>
96 <enumeration value="v6"/>
97 </restriction>
98 </simpleType>
99
100 <!--
101 Child elements of the <delete> and <info> commands.
102 -->
103 <complexType name="sNameType">
104 <sequence>
105 <element name="name" type="eppcom:labelType"/>
106 </sequence>
107 </complexType>
108
109 <!--
110 Child element of commands that accept multiple names.
111 -->
112 <complexType name="mNameType">
113 <sequence>
114 <element name="name" type="eppcom:labelType"
115 maxOccurs="unbounded"/>
116 </sequence>
117 </complexType>
118 <!--
119 Child elements of the <update> command.
120 -->
121 <complexType name="updateType">
122 <sequence>
123 <element name="name" type="eppcom:labelType"/>
124 <element name="add" type="host:addRemType"
125 minOccurs="0"/>
126 <element name="rem" type="host:addRemType"
127 minOccurs="0"/>
128 <element name="chg" type="host:chgType"
129 minOccurs="0"/>
130 </sequence>
131 </complexType>
132
133 <!--
134 Data elements that can be added or removed.
135 -->
136 <complexType name="addRemType">
137 <sequence>
138 <element name="addr" type="host:addrType"
139 minOccurs="0" maxOccurs="unbounded"/>
140 <element name="status" type="host:statusType"
141 minOccurs="0" maxOccurs="7"/>
142 </sequence>
143 </complexType>
144
145 <!--
146 Data elements that can be changed.
147 -->
148 <complexType name="chgType">
149 <sequence>
150 <element name="name" type="eppcom:labelType"/>
151 </sequence>
152 </complexType>
153
154 <!--
155 Child response elements.
156 -->
157 <element name="chkData" type="host:chkDataType"/>
158 <element name="creData" type="host:creDataType"/>
159 <element name="infData" type="host:infDataType"/>
160 <element name="panData" type="host:panDataType"/>
161
162 <!--
163 <check> response elements.
164 -->
165 <complexType name="chkDataType">
166 <sequence>
167 <element name="cd" type="host:checkType"
168 maxOccurs="unbounded"/>
169 </sequence>
170 </complexType>
171
172 <complexType name="checkType">
173 <sequence>
174 <element name="name" type="host:checkNameType"/>
175 <element name="reason" type="eppcom:reasonType"
176 minOccurs="0"/>
177 </sequence>
178 </complexType>
179
180 <complexType name="checkNameType">
181 <simpleContent>
182 <extension base="eppcom:labelType">
183 <attribute name="avail" type="boolean"
184 use="required"/>
185 </extension>
186 </simpleContent>
187 </complexType>
188
189 <!--
190 <create> response elements.
191 -->
192 <complexType name="creDataType">
193 <sequence>
194 <element name="name" type="eppcom:labelType"/>
195 <element name="crDate" type="dateTime"/>
196 </sequence>
197 </complexType>
198
199 <!--
200 <info> response elements.
201 -->
202 <complexType name="infDataType">
203 <sequence>
204 <element name="name" type="eppcom:labelType"/>
205 <element name="roid" type="eppcom:roidType"/>
206 <element name="status" type="host:statusType"
207 maxOccurs="7"/>
208 <element name="addr" type="host:addrType"
209 minOccurs="0" maxOccurs="unbounded"/>
210 <element name="clID" type="eppcom:clIDType"/>
211 <element name="crID" type="eppcom:clIDType"/>
212 <element name="crDate" type="dateTime"/>
213 <element name="upID" type="eppcom:clIDType"
214 minOccurs="0"/>
215 <element name="upDate" type="dateTime"
216 minOccurs="0"/>
217 <element name="trDate" type="dateTime"
218 minOccurs="0"/>
219 </sequence>
220 </complexType>
221
222 <!--
223 Status is a combination of attributes and an optional human-readable
224 message that may be expressed in languages other than English.
225 -->
226 <complexType name="statusType">
227 <simpleContent>
228 <extension base="normalizedString">
229 <attribute name="s" type="host:statusValueType"
230 use="required"/>
231 <attribute name="lang" type="language"
232 default="en"/>
233 </extension>
234 </simpleContent>
235 </complexType>
236
237 <simpleType name="statusValueType">
238 <restriction base="token">
239 <enumeration value="clientDeleteProhibited"/>
240 <enumeration value="clientUpdateProhibited"/>
241 <enumeration value="linked"/>
242 <enumeration value="ok"/>
243 <enumeration value="pendingCreate"/>
244 <enumeration value="pendingDelete"/>
245 <enumeration value="pendingTransfer"/>
246 <enumeration value="pendingUpdate"/>
247 <enumeration value="serverDeleteProhibited"/>
248 <enumeration value="serverUpdateProhibited"/>
249 </restriction>
250 </simpleType>
251
252 <!--
253 Pending action notification response elements.
254 -->
255 <complexType name="panDataType">
256 <sequence>
257 <element name="name" type="host:paNameType"/>
258 <element name="paTRID" type="epp:trIDType"/>
259 <element name="paDate" type="dateTime"/>
260 </sequence>
261 </complexType>
262 <complexType name="paNameType">
263 <simpleContent>
264 <extension base="eppcom:labelType">
265 <attribute name="paResult" type="boolean"
266 use="required"/>
267 </extension>
268 </simpleContent>
269 </complexType>
270
271 <!--
272 End of schema.
273 -->
274</schema>
275
276