]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms/src/org/argeo/cms/acr/schemas/DSMLv2.xsd
Introduce CMS JShell
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / acr / schemas / DSMLv2.xsd
1 <xsd:schema targetNamespace="urn:oasis:names:tc:DSML:2:0:core"
2 xmlns="urn:oasis:names:tc:DSML:2:0:core"
3 xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
4 <!-- Copyright (C) The Organization for the Advancement of Structured Information Standards [OASIS] 2001. All Rights Reserved. -->
5 <!-- DSML Requests -->
6 <xsd:group name="DSMLRequests">
7 <xsd:choice>
8 <xsd:element name="authRequest" type="AuthRequest"/>
9 <xsd:group ref="BatchRequests"/>
10 </xsd:choice>
11 </xsd:group>
12 <xsd:group name="BatchRequests">
13 <xsd:choice>
14 <xsd:element name="searchRequest" type="SearchRequest"/>
15 <xsd:element name="modifyRequest" type="ModifyRequest"/>
16 <xsd:element name="addRequest" type="AddRequest"/>
17 <xsd:element name="delRequest" type="DelRequest"/>
18 <xsd:element name="modDNRequest" type="ModifyDNRequest"/>
19 <xsd:element name="compareRequest" type="CompareRequest"/>
20 <xsd:element name="abandonRequest" type="AbandonRequest"/>
21 <xsd:element name="extendedRequest" type="ExtendedRequest"/>
22 </xsd:choice>
23 </xsd:group>
24 <!-- DSML Responses -->
25 <xsd:group name="DSMLResponses">
26 <xsd:choice>
27 <xsd:element name="authResponse" type="LDAPResult"/>
28 <xsd:element name="searchResultEntry" type="SearchResultEntry"/>
29 <xsd:element name="searchResultReference" type="SearchResultReference"/>
30 <xsd:element name="searchResultDone" type="LDAPResult"/>
31 <xsd:element name="modifyResponse" type="LDAPResult"/>
32 <xsd:element name="addResponse" type="LDAPResult"/>
33 <xsd:element name="delResponse" type="LDAPResult"/>
34 <xsd:element name="modDNResponse" type="LDAPResult"/>
35 <xsd:element name="compareResponse" type="LDAPResult"/>
36 <xsd:element name="extendedResponse" type="ExtendedResponse"/>
37 <xsd:element name="errorResponse" type="ErrorResponse"/>
38 </xsd:choice>
39 </xsd:group>
40 <!-- *************** Batch Envelopes ********************* -->
41 <xsd:element name="batchRequest" type="BatchRequest"/>
42 <xsd:element name="batchResponse" type="BatchResponse"/>
43 <!-- **** Batch Request Envelope **** -->
44 <xsd:complexType name="BatchRequest">
45 <xsd:sequence>
46 <xsd:element name="authRequest" type="AuthRequest" minOccurs="0" maxOccurs="1"/>
47 <xsd:group ref="BatchRequests" minOccurs="0" maxOccurs="unbounded"/>
48 </xsd:sequence>
49 <xsd:attribute name="requestID" type="RequestID" use="optional"/>
50 <xsd:attribute name="processing" use="optional" default="sequential">
51 <xsd:simpleType>
52 <xsd:restriction base="xsd:string">
53 <xsd:enumeration value="sequential"/>
54 <xsd:enumeration value="parallel"/>
55 </xsd:restriction>
56 </xsd:simpleType>
57 </xsd:attribute>
58 <xsd:attribute name="responseOrder" use="optional" default="sequential">
59 <xsd:simpleType>
60 <xsd:restriction base="xsd:string">
61 <xsd:enumeration value="sequential"/>
62 <xsd:enumeration value="unordered"/>
63 </xsd:restriction>
64 </xsd:simpleType>
65 </xsd:attribute>
66 <xsd:attribute name="onError" use="optional" default="exit">
67 <xsd:simpleType>
68 <xsd:restriction base="xsd:string">
69 <xsd:enumeration value="resume"/>
70 <xsd:enumeration value="exit"/>
71 </xsd:restriction>
72 </xsd:simpleType>
73 </xsd:attribute>
74 </xsd:complexType>
75 <!-- **** Batch Response Envelope **** -->
76 <xsd:complexType name="BatchResponse">
77 <xsd:sequence>
78 <xsd:group ref="BatchResponses" minOccurs="0" maxOccurs="unbounded"/>
79 </xsd:sequence>
80 <xsd:attribute name="requestID" type="RequestID" use="optional"/>
81 </xsd:complexType>
82 <!-- **** Batch Responses **** -->
83 <xsd:group name="BatchResponses">
84 <xsd:choice>
85 <xsd:element name="searchResponse" type="SearchResponse"/>
86 <xsd:element name="authResponse" type="LDAPResult"/>
87 <xsd:element name="modifyResponse" type="LDAPResult"/>
88 <xsd:element name="addResponse" type="LDAPResult"/>
89 <xsd:element name="delResponse" type="LDAPResult"/>
90 <xsd:element name="modDNResponse" type="LDAPResult"/>
91 <xsd:element name="compareResponse" type="LDAPResult"/>
92 <xsd:element name="extendedResponse" type="ExtendedResponse"/>
93 <xsd:element name="errorResponse" type="ErrorResponse"/>
94 </xsd:choice>
95 </xsd:group>
96 <!-- **** Search Response **** -->
97 <xsd:complexType name="SearchResponse">
98 <xsd:sequence>
99 <xsd:element name="searchResultEntry" type="SearchResultEntry"
100 minOccurs="0" maxOccurs="unbounded"/>
101 <xsd:element name="searchResultReference" type="SearchResultReference"
102 minOccurs="0" maxOccurs="unbounded"/>
103 <xsd:element name="searchResultDone" type="LDAPResult"/>
104 </xsd:sequence>
105 <xsd:attribute name="requestID" type="RequestID" use="optional"/>
106 </xsd:complexType>
107 <!-- ***** DsmlDN ***** -->
108 <xsd:simpleType name="DsmlDN">
109 <xsd:restriction base="xsd:string"/>
110 </xsd:simpleType>
111 <!-- ***** DsmlRDN ***** -->
112 <xsd:simpleType name="DsmlRDN">
113 <xsd:restriction base="xsd:string"/>
114 </xsd:simpleType>
115 <!-- ***** Request ID ***** -->
116 <xsd:simpleType name="RequestID">
117 <xsd:restriction base="xsd:string"/>
118 </xsd:simpleType>
119 <!-- ***** AttributeDescriptionValue ***** -->
120 <xsd:simpleType name="AttributeDescriptionValue">
121 <xsd:restriction base="xsd:string">
122 <xsd:pattern value="((([0-2](\.[0-9]+)+)|([a-zA-Z]+([a-zA-Z0-9]|[-])*))(;([a-zA-Z0-9]|[-])+)*)"/>
123 </xsd:restriction>
124 </xsd:simpleType>
125 <xsd:simpleType name="NumericOID">
126 <xsd:restriction base="xsd:string">
127 <xsd:pattern value="[0-2]\.[0-9]+(\.[0-9]+)*"/>
128 </xsd:restriction>
129 </xsd:simpleType>
130 <!-- ***** MAX Integer ***** -->
131 <xsd:simpleType name="MAXINT">
132 <xsd:restriction base="xsd:unsignedInt">
133 <xsd:maxInclusive value="2147483647"/>
134 </xsd:restriction>
135 </xsd:simpleType>
136 <!-- **** DSML Value **** -->
137 <xsd:simpleType name="DsmlValue">
138 <xsd:union memberTypes="xsd:string xsd:base64Binary xsd:anyURI"/>
139 </xsd:simpleType>
140 <!-- **** DSML Control **** -->
141 <xsd:complexType name="Control">
142 <xsd:sequence>
143 <xsd:element name="controlValue" type="xsd:anyType" minOccurs="0"/>
144 </xsd:sequence>
145 <xsd:attribute name="type" type="NumericOID" use="required"/>
146 <xsd:attribute name="criticality" type="xsd:boolean" use="optional" default="false"/>
147 </xsd:complexType>
148 <!-- **** DSML Filter **** -->
149 <xsd:complexType name="Filter">
150 <xsd:group ref="FilterGroup"/>
151 </xsd:complexType>
152 <xsd:group name="FilterGroup">
153 <xsd:sequence>
154 <xsd:choice>
155 <xsd:element name="and" type="FilterSet"/>
156 <xsd:element name="or" type="FilterSet"/>
157 <xsd:element name="not" type="Filter"/>
158 <xsd:element name="equalityMatch" type="AttributeValueAssertion"/>
159 <xsd:element name="substrings" type="SubstringFilter"/>
160 <xsd:element name="greaterOrEqual" type="AttributeValueAssertion"/>
161 <xsd:element name="lessOrEqual" type="AttributeValueAssertion"/>
162 <xsd:element name="present" type="AttributeDescription"/>
163 <xsd:element name="approxMatch" type="AttributeValueAssertion"/>
164 <xsd:element name="extensibleMatch" type="MatchingRuleAssertion"/>
165 </xsd:choice>
166 </xsd:sequence>
167 </xsd:group>
168 <xsd:complexType name="FilterSet">
169 <xsd:sequence>
170 <xsd:group ref="FilterGroup" minOccurs="0" maxOccurs="unbounded"/>
171 </xsd:sequence>
172 </xsd:complexType>
173 <xsd:complexType name="AttributeValueAssertion">
174 <xsd:sequence>
175 <xsd:element name="value" type="DsmlValue"/>
176 </xsd:sequence>
177 <xsd:attribute name="name" type="AttributeDescriptionValue" use="required"/>
178 </xsd:complexType>
179 <xsd:complexType name="AttributeDescription">
180 <xsd:attribute name="name" type="AttributeDescriptionValue" use="required"/>
181 </xsd:complexType>
182 <xsd:complexType name="SubstringFilter">
183 <xsd:sequence>
184 <xsd:element name="initial" type="DsmlValue" minOccurs="0"/>
185 <xsd:element name="any" type="DsmlValue" minOccurs="0" maxOccurs="unbounded"/>
186 <xsd:element name="final" type="DsmlValue" minOccurs="0"/>
187 </xsd:sequence>
188 <xsd:attribute name="name" type="AttributeDescriptionValue" use="required"/>
189 </xsd:complexType>
190 <xsd:complexType name="MatchingRuleAssertion">
191 <xsd:sequence>
192 <xsd:element name="value" type="DsmlValue"/>
193 </xsd:sequence>
194 <xsd:attribute name="dnAttributes" type="xsd:boolean" use="optional" default="false"/>
195 <xsd:attribute name="matchingRule" type="xsd:string" use="optional"/>
196 <xsd:attribute name="name" type="AttributeDescriptionValue" use="optional"/>
197 </xsd:complexType>
198 <!-- *************** DSML MESSAGE ******************** -->
199 <xsd:complexType name="DsmlMessage">
200 <xsd:sequence>
201 <xsd:element name="control" type="Control" minOccurs="0" maxOccurs="unbounded"/>
202 </xsd:sequence>
203 <xsd:attribute name="requestID" type="RequestID" use="optional"/>
204 </xsd:complexType>
205 <!-- *************** LDAP RESULT ********************* -->
206 <xsd:simpleType name="LDAPResultCode">
207 <xsd:restriction base="xsd:string">
208 <xsd:enumeration value="success"/>
209 <xsd:enumeration value="operationsError"/>
210 <xsd:enumeration value="protocolError"/>
211 <xsd:enumeration value="timeLimitExceeded"/>
212 <xsd:enumeration value="sizeLimitExceeded"/>
213 <xsd:enumeration value="compareFalse"/>
214 <xsd:enumeration value="compareTrue"/>
215 <xsd:enumeration value="authMethodNotSupported"/>
216 <xsd:enumeration value="strongAuthRequired"/>
217 <xsd:enumeration value="referral"/>
218 <xsd:enumeration value="adminLimitExceeded"/>
219 <xsd:enumeration value="unavailableCriticalExtension"/>
220 <xsd:enumeration value="confidentialityRequired"/>
221 <xsd:enumeration value="saslBindInProgress"/>
222 <xsd:enumeration value="noSuchAttribute"/>
223 <xsd:enumeration value="undefinedAttributeType"/>
224 <xsd:enumeration value="inappropriateMatching"/>
225 <xsd:enumeration value="constraintViolation"/>
226 <xsd:enumeration value="attributeOrValueExists"/>
227 <xsd:enumeration value="invalidAttributeSyntax"/>
228 <xsd:enumeration value="noSuchObject"/>
229 <xsd:enumeration value="aliasProblem"/>
230 <xsd:enumeration value="invalidDNSyntax"/>
231 <xsd:enumeration value="aliasDerefencingProblem"/>
232 <xsd:enumeration value="inappropriateAuthentication"/>
233 <xsd:enumeration value="invalidCredentials"/>
234 <xsd:enumeration value="insufficientAccessRights"/>
235 <xsd:enumeration value="busy"/>
236 <xsd:enumeration value="unavailable"/>
237 <xsd:enumeration value="unwillingToPerform"/>
238 <xsd:enumeration value="loopDetect"/>
239 <xsd:enumeration value="namingViolation"/>
240 <xsd:enumeration value="objectClassViolation"/>
241 <xsd:enumeration value="notAllowedOnNonLeaf"/>
242 <xsd:enumeration value="notAllowedOnRDN"/>
243 <xsd:enumeration value="entryAlreadyExists"/>
244 <xsd:enumeration value="objectClassModsProhibited"/>
245 <xsd:enumeration value="affectMultipleDSAs"/>
246 <xsd:enumeration value="other"/>
247 </xsd:restriction>
248 </xsd:simpleType>
249 <xsd:complexType name="ResultCode">
250 <xsd:attribute name="code" type="xsd:int" use="required"/>
251 <xsd:attribute name="descr" type="LDAPResultCode" use="optional"/>
252 </xsd:complexType>
253 <xsd:complexType name="LDAPResult">
254 <xsd:complexContent>
255 <xsd:extension base="DsmlMessage">
256 <xsd:sequence>
257 <xsd:element name="resultCode" type="ResultCode"/>
258 <xsd:element name="errorMessage" type="xsd:string" minOccurs="0"/>
259 <xsd:element name="referral" type="xsd:anyURI" minOccurs="0" maxOccurs="unbounded"/>
260 </xsd:sequence>
261 <xsd:attribute name="matchedDN" type="DsmlDN" use="optional"/>
262 </xsd:extension>
263 </xsd:complexContent>
264 </xsd:complexType>
265 <xsd:complexType name="ErrorResponse">
266 <xsd:sequence>
267 <xsd:element name="message" type="xsd:string" minOccurs="0"/>
268 <xsd:element name="detail" minOccurs="0">
269 <xsd:complexType>
270 <xsd:sequence>
271 <xsd:any/>
272 </xsd:sequence>
273 </xsd:complexType>
274 </xsd:element>
275 </xsd:sequence>
276 <xsd:attribute name="requestID" type="RequestID" use="optional"/>
277 <xsd:attribute name="type">
278 <xsd:simpleType>
279 <xsd:restriction base="xsd:string">
280 <xsd:enumeration value="notAttempted"/>
281 <xsd:enumeration value="couldNotConnect"/>
282 <xsd:enumeration value="connectionClosed"/>
283 <xsd:enumeration value="malformedRequest"/>
284 <xsd:enumeration value="gatewayInternalError"/>
285 <xsd:enumeration value="authenticationFailed"/>
286 <xsd:enumeration value="unresolvableURI"/>
287 <xsd:enumeration value="other"/>
288 </xsd:restriction>
289 </xsd:simpleType>
290 </xsd:attribute>
291 </xsd:complexType>
292 <!-- *************** Auth ********************* -->
293 <xsd:complexType name="AuthRequest">
294 <xsd:complexContent>
295 <xsd:extension base="DsmlMessage">
296 <xsd:attribute name="principal" type="xsd:string" use="required"/>
297 </xsd:extension>
298 </xsd:complexContent>
299 </xsd:complexType>
300 <!-- *************** Search ********************* -->
301 <xsd:complexType name="AttributeDescriptions">
302 <xsd:sequence minOccurs="0" maxOccurs="unbounded">
303 <xsd:element name="attribute" type="AttributeDescription"/>
304 </xsd:sequence>
305 </xsd:complexType>
306 <xsd:complexType name="SearchRequest">
307 <xsd:complexContent>
308 <xsd:extension base="DsmlMessage">
309 <xsd:sequence>
310 <xsd:element name="filter" type="Filter"/>
311 <xsd:element name="attributes" type="AttributeDescriptions" minOccurs="0"/>
312 </xsd:sequence>
313 <xsd:attribute name="dn" type="DsmlDN" use="required"/>
314 <xsd:attribute name="scope" use="required">
315 <xsd:simpleType>
316 <xsd:restriction base="xsd:string">
317 <xsd:enumeration value="baseObject"/>
318 <xsd:enumeration value="singleLevel"/>
319 <xsd:enumeration value="wholeSubtree"/>
320 </xsd:restriction>
321 </xsd:simpleType>
322 </xsd:attribute>
323 <xsd:attribute name="derefAliases" use="required">
324 <xsd:simpleType>
325 <xsd:restriction base="xsd:string">
326 <xsd:enumeration value="neverDerefAliases"/>
327 <xsd:enumeration value="derefInSearching"/>
328 <xsd:enumeration value="derefFindingBaseObj"/>
329 <xsd:enumeration value="derefAlways"/>
330 </xsd:restriction>
331 </xsd:simpleType>
332 </xsd:attribute>
333 <xsd:attribute name="sizeLimit" type="MAXINT" use="optional" default="0"/>
334 <xsd:attribute name="timeLimit" type="MAXINT" use="optional" default="0"/>
335 <xsd:attribute name="typesOnly" type="xsd:boolean" use="optional" default="false"/>
336 </xsd:extension>
337 </xsd:complexContent>
338 </xsd:complexType>
339 <!-- ***** Search Result Entry ***** -->
340 <xsd:complexType name="SearchResultEntry">
341 <xsd:complexContent>
342 <xsd:extension base="DsmlMessage">
343 <xsd:sequence>
344 <xsd:element name="attr" type="DsmlAttr" minOccurs="0" maxOccurs="unbounded"/>
345 </xsd:sequence>
346 <xsd:attribute name="dn" type="DsmlDN" use="required"/>
347 </xsd:extension>
348 </xsd:complexContent>
349 </xsd:complexType>
350 <xsd:complexType name="DsmlAttr">
351 <xsd:sequence>
352 <xsd:element name="value" type="DsmlValue" minOccurs="0" maxOccurs="unbounded"/>
353 </xsd:sequence>
354 <xsd:attribute name="name" type="AttributeDescriptionValue" use="required"/>
355 </xsd:complexType>
356 <xsd:complexType name="DsmlModification">
357 <xsd:sequence>
358 <xsd:element name="value" type="DsmlValue" minOccurs="0" maxOccurs="unbounded"/>
359 </xsd:sequence>
360 <xsd:attribute name="name" type="AttributeDescriptionValue" use="required"/>
361 <xsd:attribute name="operation" use="required">
362 <xsd:simpleType>
363 <xsd:restriction base="xsd:string">
364 <xsd:enumeration value="add"/>
365 <xsd:enumeration value="delete"/>
366 <xsd:enumeration value="replace"/>
367 </xsd:restriction>
368 </xsd:simpleType>
369 </xsd:attribute>
370 </xsd:complexType>
371 <!-- ***** Search Result Reference ***** -->
372 <xsd:complexType name="SearchResultReference">
373 <xsd:complexContent>
374 <xsd:extension base="DsmlMessage">
375 <xsd:sequence>
376 <xsd:element name="ref" type="xsd:anyURI" maxOccurs="unbounded"/>
377 </xsd:sequence>
378 </xsd:extension>
379 </xsd:complexContent>
380 </xsd:complexType>
381 <!-- ************* MODIFY ******************** -->
382 <xsd:complexType name="ModifyRequest">
383 <xsd:complexContent>
384 <xsd:extension base="DsmlMessage">
385 <xsd:sequence>
386 <xsd:element name="modification" type="DsmlModification" minOccurs="0" maxOccurs="unbounded"/>
387 </xsd:sequence>
388 <xsd:attribute name="dn" type="DsmlDN" use="required"/>
389 </xsd:extension>
390 </xsd:complexContent>
391 </xsd:complexType>
392 <!-- *************** ADD ********************* -->
393 <xsd:complexType name="AddRequest">
394 <xsd:complexContent>
395 <xsd:extension base="DsmlMessage">
396 <xsd:sequence>
397 <xsd:element name="attr" type="DsmlAttr" minOccurs="0" maxOccurs="unbounded"/>
398 </xsd:sequence>
399 <xsd:attribute name="dn" type="DsmlDN" use="required"/>
400 </xsd:extension>
401 </xsd:complexContent>
402 </xsd:complexType>
403 <!-- *************** DELETE ********************* -->
404 <xsd:complexType name="DelRequest">
405 <xsd:complexContent>
406 <xsd:extension base="DsmlMessage">
407 <xsd:attribute name="dn" type="DsmlDN" use="required"/>
408 </xsd:extension>
409 </xsd:complexContent>
410 </xsd:complexType>
411 <!-- *************** MODIFY DN ********************* -->
412 <xsd:complexType name="ModifyDNRequest">
413 <xsd:complexContent>
414 <xsd:extension base="DsmlMessage">
415 <xsd:attribute name="dn" type="DsmlDN" use="required"/>
416 <xsd:attribute name="newrdn" type="DsmlRDN" use="required"/>
417 <xsd:attribute name="deleteoldrdn" type="xsd:boolean" use="optional" default="true"/>
418 <xsd:attribute name="newSuperior" type="DsmlDN" use="optional"/>
419 </xsd:extension>
420 </xsd:complexContent>
421 </xsd:complexType>
422 <!-- ************* COMPARE ******************** -->
423 <xsd:complexType name="CompareRequest">
424 <xsd:complexContent>
425 <xsd:extension base="DsmlMessage">
426 <xsd:sequence>
427 <xsd:element name="assertion" type="AttributeValueAssertion"/>
428 </xsd:sequence>
429 <xsd:attribute name="dn" type="DsmlDN" use="required"/>
430 </xsd:extension>
431 </xsd:complexContent>
432 </xsd:complexType>
433 <!-- ***** ABANDON ***** -->
434 <xsd:complexType name="AbandonRequest">
435 <xsd:complexContent>
436 <xsd:extension base="DsmlMessage">
437 <xsd:attribute name="abandonID" type="RequestID" use="required"/>
438 </xsd:extension>
439 </xsd:complexContent>
440 </xsd:complexType>
441 <!-- ************* EXTENDED OPERATION ******************** -->
442 <xsd:complexType name="ExtendedRequest">
443 <xsd:complexContent>
444 <xsd:extension base="DsmlMessage">
445 <xsd:sequence>
446 <xsd:element name="requestName" type="NumericOID"/>
447 <xsd:element name="requestValue" type="xsd:anyType" minOccurs="0"/>
448 </xsd:sequence>
449 </xsd:extension>
450 </xsd:complexContent>
451 </xsd:complexType>
452 <xsd:complexType name="ExtendedResponse">
453 <xsd:complexContent>
454 <xsd:extension base="LDAPResult">
455 <xsd:sequence>
456 <xsd:element name="responseName" type="NumericOID" minOccurs="0"/>
457 <xsd:element name="response" type="xsd:anyType" minOccurs="0"/>
458 </xsd:sequence>
459 </xsd:extension>
460 </xsd:complexContent>
461 </xsd:complexType>
462 <!-- ********************END base SCHEMA ********************* -->
463 </xsd:schema>