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. -->
6 <xsd:group name="DSMLRequests">
8 <xsd:element name="authRequest" type="AuthRequest"/>
9 <xsd:group ref="BatchRequests"/>
12 <xsd:group name="BatchRequests">
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"/>
24 <!-- DSML Responses -->
25 <xsd:group name="DSMLResponses">
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"/>
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">
46 <xsd:element name="authRequest" type="AuthRequest" minOccurs="0" maxOccurs="1"/>
47 <xsd:group ref="BatchRequests" minOccurs="0" maxOccurs="unbounded"/>
49 <xsd:attribute name="requestID" type="RequestID" use="optional"/>
50 <xsd:attribute name="processing" use="optional" default="sequential">
52 <xsd:restriction base="xsd:string">
53 <xsd:enumeration value="sequential"/>
54 <xsd:enumeration value="parallel"/>
58 <xsd:attribute name="responseOrder" use="optional" default="sequential">
60 <xsd:restriction base="xsd:string">
61 <xsd:enumeration value="sequential"/>
62 <xsd:enumeration value="unordered"/>
66 <xsd:attribute name="onError" use="optional" default="exit">
68 <xsd:restriction base="xsd:string">
69 <xsd:enumeration value="resume"/>
70 <xsd:enumeration value="exit"/>
75 <!-- **** Batch Response Envelope **** -->
76 <xsd:complexType name="BatchResponse">
78 <xsd:group ref="BatchResponses" minOccurs="0" maxOccurs="unbounded"/>
80 <xsd:attribute name="requestID" type="RequestID" use="optional"/>
82 <!-- **** Batch Responses **** -->
83 <xsd:group name="BatchResponses">
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"/>
96 <!-- **** Search Response **** -->
97 <xsd:complexType name="SearchResponse">
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"/>
105 <xsd:attribute name="requestID" type="RequestID" use="optional"/>
107 <!-- ***** DsmlDN ***** -->
108 <xsd:simpleType name="DsmlDN">
109 <xsd:restriction base="xsd:string"/>
111 <!-- ***** DsmlRDN ***** -->
112 <xsd:simpleType name="DsmlRDN">
113 <xsd:restriction base="xsd:string"/>
115 <!-- ***** Request ID ***** -->
116 <xsd:simpleType name="RequestID">
117 <xsd:restriction base="xsd:string"/>
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]|[-])+)*)"/>
125 <xsd:simpleType name="NumericOID">
126 <xsd:restriction base="xsd:string">
127 <xsd:pattern value="[0-2]\.[0-9]+(\.[0-9]+)*"/>
130 <!-- ***** MAX Integer ***** -->
131 <xsd:simpleType name="MAXINT">
132 <xsd:restriction base="xsd:unsignedInt">
133 <xsd:maxInclusive value="2147483647"/>
136 <!-- **** DSML Value **** -->
137 <xsd:simpleType name="DsmlValue">
138 <xsd:union memberTypes="xsd:string xsd:base64Binary xsd:anyURI"/>
140 <!-- **** DSML Control **** -->
141 <xsd:complexType name="Control">
143 <xsd:element name="controlValue" type="xsd:anyType" minOccurs="0"/>
145 <xsd:attribute name="type" type="NumericOID" use="required"/>
146 <xsd:attribute name="criticality" type="xsd:boolean" use="optional" default="false"/>
148 <!-- **** DSML Filter **** -->
149 <xsd:complexType name="Filter">
150 <xsd:group ref="FilterGroup"/>
152 <xsd:group name="FilterGroup">
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"/>
168 <xsd:complexType name="FilterSet">
170 <xsd:group ref="FilterGroup" minOccurs="0" maxOccurs="unbounded"/>
173 <xsd:complexType name="AttributeValueAssertion">
175 <xsd:element name="value" type="DsmlValue"/>
177 <xsd:attribute name="name" type="AttributeDescriptionValue" use="required"/>
179 <xsd:complexType name="AttributeDescription">
180 <xsd:attribute name="name" type="AttributeDescriptionValue" use="required"/>
182 <xsd:complexType name="SubstringFilter">
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"/>
188 <xsd:attribute name="name" type="AttributeDescriptionValue" use="required"/>
190 <xsd:complexType name="MatchingRuleAssertion">
192 <xsd:element name="value" type="DsmlValue"/>
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"/>
198 <!-- *************** DSML MESSAGE ******************** -->
199 <xsd:complexType name="DsmlMessage">
201 <xsd:element name="control" type="Control" minOccurs="0" maxOccurs="unbounded"/>
203 <xsd:attribute name="requestID" type="RequestID" use="optional"/>
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"/>
249 <xsd:complexType name="ResultCode">
250 <xsd:attribute name="code" type="xsd:int" use="required"/>
251 <xsd:attribute name="descr" type="LDAPResultCode" use="optional"/>
253 <xsd:complexType name="LDAPResult">
255 <xsd:extension base="DsmlMessage">
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"/>
261 <xsd:attribute name="matchedDN" type="DsmlDN" use="optional"/>
263 </xsd:complexContent>
265 <xsd:complexType name="ErrorResponse">
267 <xsd:element name="message" type="xsd:string" minOccurs="0"/>
268 <xsd:element name="detail" minOccurs="0">
276 <xsd:attribute name="requestID" type="RequestID" use="optional"/>
277 <xsd:attribute name="type">
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"/>
292 <!-- *************** Auth ********************* -->
293 <xsd:complexType name="AuthRequest">
295 <xsd:extension base="DsmlMessage">
296 <xsd:attribute name="principal" type="xsd:string" use="required"/>
298 </xsd:complexContent>
300 <!-- *************** Search ********************* -->
301 <xsd:complexType name="AttributeDescriptions">
302 <xsd:sequence minOccurs="0" maxOccurs="unbounded">
303 <xsd:element name="attribute" type="AttributeDescription"/>
306 <xsd:complexType name="SearchRequest">
308 <xsd:extension base="DsmlMessage">
310 <xsd:element name="filter" type="Filter"/>
311 <xsd:element name="attributes" type="AttributeDescriptions" minOccurs="0"/>
313 <xsd:attribute name="dn" type="DsmlDN" use="required"/>
314 <xsd:attribute name="scope" use="required">
316 <xsd:restriction base="xsd:string">
317 <xsd:enumeration value="baseObject"/>
318 <xsd:enumeration value="singleLevel"/>
319 <xsd:enumeration value="wholeSubtree"/>
323 <xsd:attribute name="derefAliases" use="required">
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"/>
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"/>
337 </xsd:complexContent>
339 <!-- ***** Search Result Entry ***** -->
340 <xsd:complexType name="SearchResultEntry">
342 <xsd:extension base="DsmlMessage">
344 <xsd:element name="attr" type="DsmlAttr" minOccurs="0" maxOccurs="unbounded"/>
346 <xsd:attribute name="dn" type="DsmlDN" use="required"/>
348 </xsd:complexContent>
350 <xsd:complexType name="DsmlAttr">
352 <xsd:element name="value" type="DsmlValue" minOccurs="0" maxOccurs="unbounded"/>
354 <xsd:attribute name="name" type="AttributeDescriptionValue" use="required"/>
356 <xsd:complexType name="DsmlModification">
358 <xsd:element name="value" type="DsmlValue" minOccurs="0" maxOccurs="unbounded"/>
360 <xsd:attribute name="name" type="AttributeDescriptionValue" use="required"/>
361 <xsd:attribute name="operation" use="required">
363 <xsd:restriction base="xsd:string">
364 <xsd:enumeration value="add"/>
365 <xsd:enumeration value="delete"/>
366 <xsd:enumeration value="replace"/>
371 <!-- ***** Search Result Reference ***** -->
372 <xsd:complexType name="SearchResultReference">
374 <xsd:extension base="DsmlMessage">
376 <xsd:element name="ref" type="xsd:anyURI" maxOccurs="unbounded"/>
379 </xsd:complexContent>
381 <!-- ************* MODIFY ******************** -->
382 <xsd:complexType name="ModifyRequest">
384 <xsd:extension base="DsmlMessage">
386 <xsd:element name="modification" type="DsmlModification" minOccurs="0" maxOccurs="unbounded"/>
388 <xsd:attribute name="dn" type="DsmlDN" use="required"/>
390 </xsd:complexContent>
392 <!-- *************** ADD ********************* -->
393 <xsd:complexType name="AddRequest">
395 <xsd:extension base="DsmlMessage">
397 <xsd:element name="attr" type="DsmlAttr" minOccurs="0" maxOccurs="unbounded"/>
399 <xsd:attribute name="dn" type="DsmlDN" use="required"/>
401 </xsd:complexContent>
403 <!-- *************** DELETE ********************* -->
404 <xsd:complexType name="DelRequest">
406 <xsd:extension base="DsmlMessage">
407 <xsd:attribute name="dn" type="DsmlDN" use="required"/>
409 </xsd:complexContent>
411 <!-- *************** MODIFY DN ********************* -->
412 <xsd:complexType name="ModifyDNRequest">
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"/>
420 </xsd:complexContent>
422 <!-- ************* COMPARE ******************** -->
423 <xsd:complexType name="CompareRequest">
425 <xsd:extension base="DsmlMessage">
427 <xsd:element name="assertion" type="AttributeValueAssertion"/>
429 <xsd:attribute name="dn" type="DsmlDN" use="required"/>
431 </xsd:complexContent>
433 <!-- ***** ABANDON ***** -->
434 <xsd:complexType name="AbandonRequest">
436 <xsd:extension base="DsmlMessage">
437 <xsd:attribute name="abandonID" type="RequestID" use="required"/>
439 </xsd:complexContent>
441 <!-- ************* EXTENDED OPERATION ******************** -->
442 <xsd:complexType name="ExtendedRequest">
444 <xsd:extension base="DsmlMessage">
446 <xsd:element name="requestName" type="NumericOID"/>
447 <xsd:element name="requestValue" type="xsd:anyType" minOccurs="0"/>
450 </xsd:complexContent>
452 <xsd:complexType name="ExtendedResponse">
454 <xsd:extension base="LDAPResult">
456 <xsd:element name="responseName" type="NumericOID" minOccurs="0"/>
457 <xsd:element name="response" type="xsd:anyType" minOccurs="0"/>
460 </xsd:complexContent>
462 <!-- ********************END base SCHEMA ********************* -->