[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Subject: [dsml] Re: Draft 10/31 of DSML v2
I found an error in the SearchRequest example in section 5.3. The 'name' attribute should be on the 'substrings' element, and not on the 'final' element. -- Nigel Christine Tomlinson wrote: > 1) added verbage regarding use of bind requests within batchRequest. > 2) modified schema to indicate that at most a single bind can appear in > a batchRequest and it must be the first element if it occurs. > 3) miscellaneous fixes from 10/17 tele-con > > ciao, > Christine > > ------------------------------------------------------------------------ > Name: DSMLv2-draft8.doc > DSMLv2-draft8.doc Type: WINWORD File (application/msword) > Encoding: base64 > > ------------------------------------------------------------------------ > <xsd:schema targetNamespace="urn:oasis:names:tc:DSML:2:0:core" > xmlns="urn:oasis:names:tc:DSML:2:0:core" > xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> > <!-- DSML Requests --> > <xsd:group name="DSMLRequests"> > <xsd:choice> > <xsd:element name="bindRequest" type="BindRequest"/> > <xsd:group ref="BatchRequests"/> > </xsd:choice> > </xsd:group> > <xsd:group name="BatchRequests"> > <xsd:choice> > <xsd:element name="searchRequest" type="SearchRequest"/> > <xsd:element name="modifyRequest" type="ModifyRequest"/> > <xsd:element name="addRequest" type="AddRequest"/> > <xsd:element name="delRequest" type="DelRequest"/> > <xsd:element name="modDNRequest" type="ModifyDNRequest"/> > <xsd:element name="compareRequest" type="CompareRequest"/> > <xsd:element name="abandonRequest" type="AbandonRequest"/> > <xsd:element name="extendedReq" type="ExtendedRequest"/> > </xsd:choice> > </xsd:group> > <!-- DSML Responses --> > <xsd:group name="DSMLResponses"> > <xsd:choice> > <xsd:element name="bindResponse" type="LDAPResult"/> > <xsd:element name="searchResultEntry" type="SearchResultEntry"/> > <xsd:element name="searchResultReference" type="SearchResultReference"/> > <xsd:element name="searchResultDone" type="LDAPResult"/> > <xsd:element name="modifyResponse" type="LDAPResult"/> > <xsd:element name="addResponse" type="LDAPResult"/> > <xsd:element name="delResponse" type="LDAPResult"/> > <xsd:element name="modDNResponse" type="LDAPResult"/> > <xsd:element name="compareResponse" type="LDAPResult"/> > <xsd:element name="extendedResp" type="ExtendedResponse"/> > <xsd:element name="errorResponse" type="ErrorResponse"/> > </xsd:choice> > </xsd:group> > > <!-- *************** DSMLv2.0 Batch Envelopes ********************* --> > <xsd:element name="batchRequest" type="BatchRequest"/> > <xsd:element name="batchResponse" type="BatchResponse"/> > <xsd:element name="searchResponse" type="SearchResponse"/> > <!-- **** DSML Batch Request Envelope **** --> > <xsd:complexType name="BatchRequest"> > <xsd:sequence> > <xsd:element name="bindRequest" type="BindRequest" minOccurs="0" maxOccurs="1"/> > <xsd:group ref="BatchRequests" minOccurs="0" maxOccurs="unbounded"/> > </xsd:sequence> > <xsd:attribute name="requestID" type="RequestID" use="optional"/> > <xsd:attribute name="processing" use="optional" default="sequential"> > <xsd:simpleType> > <xsd:restriction base="xsd:string"> > <xsd:enumeration value="sequential"/> > <xsd:enumeration value="parallel"/> > </xsd:restriction> > </xsd:simpleType> > </xsd:attribute> > <xsd:attribute name="responseOrder" use="optional" default="sequential"> > <xsd:simpleType> > <xsd:restriction base="xsd:string"> > <xsd:enumeration value="sequential"/> > <xsd:enumeration value="unordered"/> > </xsd:restriction> > </xsd:simpleType> > </xsd:attribute> > <xsd:attribute name="onError" use="optional" default="exit"> > <xsd:simpleType> > <xsd:restriction base="xsd:string"> > <xsd:enumeration value="resume"/> > <xsd:enumeration value="exit"/> > </xsd:restriction> > </xsd:simpleType> > </xsd:attribute> > </xsd:complexType> > <!-- **** DSML Batch Response Envelope **** --> > <xsd:complexType name="BatchResponse"> > <xsd:sequence> > <xsd:group ref="DSMLBatchResponses" minOccurs="0" maxOccurs="unbounded"/> > </xsd:sequence> > <xsd:attribute name="requestID" type="RequestID" use="optional"/> > </xsd:complexType> > <!-- **** DSML Batch Responses **** --> > <xsd:group name="DSMLBatchResponses"> > <xsd:choice> > <xsd:element name="searchResponse" type="SearchResponse"/> > <xsd:element name="bindResponse" type="LDAPResult"/> > <xsd:element name="modifyResponse" type="LDAPResult"/> > <xsd:element name="addResponse" type="LDAPResult"/> > <xsd:element name="delResponse" type="LDAPResult"/> > <xsd:element name="modDNResponse" type="LDAPResult"/> > <xsd:element name="compareResponse" type="LDAPResult"/> > <xsd:element name="extendedResp" type="ExtendedResponse"/> > <xsd:element name="errorResponse" type="ErrorResponse"/> > </xsd:choice> > </xsd:group> > <!-- **** Search Response **** --> > <xsd:complexType name="SearchResponse"> > <xsd:sequence> > <xsd:element name="searchResultEntry" type="SearchResultEntry" > minOccurs="0" maxOccurs="unbounded"/> > <xsd:element name="searchResultReference" type="SearchResultReference" > minOccurs="0" maxOccurs="unbounded"/> > <xsd:element name="searchResultDone" type="LDAPResult"/> > </xsd:sequence> > <xsd:attribute name="requestID" type="RequestID" use="optional"/> > </xsd:complexType> > > <!-- ***** DsmlDN ***** --> > <xsd:simpleType name="DsmlDN"> > <xsd:restriction base="xsd:string"/> > </xsd:simpleType> > <!-- ***** DsmlRDN ***** --> > <xsd:simpleType name="DsmlRDN"> > <xsd:restriction base="xsd:string"/> > </xsd:simpleType> > <!-- ***** Request ID ***** --> > <xsd:simpleType name="RequestID"> > <xsd:restriction base="xsd:string"/> > </xsd:simpleType> > <!-- ***** OID ***** --> > <xsd:simpleType name="OID"> > <xsd:union memberTypes="NumericOID xsd:NMTOKEN"/> > </xsd:simpleType> > <xsd:simpleType name="NumericOID"> > <xsd:restriction base="xsd:string"> > <xsd:pattern value="[0-2]\.[0-9]+(\.[0-9]+)*"/> > </xsd:restriction> > </xsd:simpleType> > <!-- ***** ExtensionTypeID ***** --> > <xsd:simpleType name="ExtensionTypeID"> > <xsd:union memberTypes="NumericOID xsd:anyURI"/> > </xsd:simpleType> > <!-- ***** MAX Integer ***** --> > <xsd:simpleType name="MAXINT"> > <xsd:restriction base="xsd:unsignedInt"> > <xsd:maxInclusive value="2147483647"/> > </xsd:restriction> > </xsd:simpleType> > <!-- **** DSML Value **** --> > <xsd:simpleType name="DsmlValue"> > <xsd:union memberTypes="xsd:string xsd:base64Binary xsd:anyURI"/> > </xsd:simpleType> > <!-- **** DSML Any external XML structure **** --> > <xsd:complexType name="DsmlANY"> > <xsd:sequence> > <xsd:any/> > </xsd:sequence> > </xsd:complexType> > <!-- **** DSML Control **** --> > <xsd:complexType name="Control"> > <xsd:sequence> > <xsd:element name="controlValue" type="DsmlANY" minOccurs="0"/> > </xsd:sequence> > <xsd:attribute name="type" type="NumericOID" use="required"/> > <xsd:attribute name="criticality" type="xsd:boolean" use="optional" default="false"/> > </xsd:complexType> > <!-- **** DSML Filter **** --> > <xsd:complexType name="Filter"> > <xsd:group ref="FilterGroup"/> > </xsd:complexType> > <xsd:group name="FilterGroup"> > <xsd:sequence> > <xsd:choice> > <xsd:element name="and" type="FilterSet"/> > <xsd:element name="or" type="FilterSet"/> > <xsd:element name="not" type="Filter"/> > <xsd:element name="equalityMatch" type="AttributeValueAssertion"/> > <xsd:element name="substrings" type="SubstringFilter"/> > <xsd:element name="greaterOrEqual" type="AttributeValueAssertion"/> > <xsd:element name="lessOrEqual" type="AttributeValueAssertion"/> > <xsd:element name="present" type="AttributeDescription"/> > <xsd:element name="approxMatch" type="AttributeValueAssertion"/> > <xsd:element name="extensibleMatch" type="MatchingRuleAssertion"/> > </xsd:choice> > </xsd:sequence> > </xsd:group> > <xsd:complexType name="FilterSet"> > <xsd:sequence> > <xsd:group ref="FilterGroup" minOccurs="0" maxOccurs="unbounded"/> > </xsd:sequence> > </xsd:complexType> > <xsd:complexType name="AttributeValueAssertion"> > <xsd:sequence> > <xsd:element name="value" type="DsmlValue"/> > </xsd:sequence> > <xsd:attribute name="name" type="OID"/> > </xsd:complexType> > <xsd:complexType name="AttributeDescription"> > <xsd:attribute name="name" type="OID"/> > </xsd:complexType> > <xsd:complexType name="SubstringFilter"> > <xsd:sequence> > <xsd:element name="initial" type="DsmlValue" minOccurs="0"/> > <xsd:element name="any" type="DsmlValue" minOccurs="0" maxOccurs="unbounded"/> > <xsd:element name="final" type="DsmlValue" minOccurs="0"/> > </xsd:sequence> > <xsd:attribute name="name" type="OID"/> > </xsd:complexType> > <xsd:complexType name="MatchingRuleAssertion"> > <xsd:sequence> > <xsd:element name="value" type="DsmlValue"/> > </xsd:sequence> > <xsd:attribute name="dnAttributes" type="xsd:boolean" use="optional" default="false"/> > <xsd:attribute name="matchingRule" type="OID" use="optional"/> > <xsd:attribute name="name" type="OID" use="optional"/> > </xsd:complexType> > <!-- *************** DSML MESSAGE ******************** --> > <xsd:complexType name="DsmlMessage"> > <xsd:sequence> > <xsd:element name="control" type="Control" minOccurs="0" maxOccurs="unbounded"/> > </xsd:sequence> > <xsd:attribute name="requestID" type="RequestID" use="optional"/> > </xsd:complexType> > <!-- *************** LDAP RESULT ********************* --> > <xsd:simpleType name="LDAPResultCode"> > <xsd:restriction base="xsd:string"> > <xsd:enumeration value="success"/> > <xsd:enumeration value="operationsError"/> > <xsd:enumeration value="protocolError"/> > <xsd:enumeration value="timeLimitExceeded"/> > <xsd:enumeration value="sizeLimitExceeded"/> > <xsd:enumeration value="compareFalse"/> > <xsd:enumeration value="compareTrue"/> > <xsd:enumeration value="authMethodNotSupported"/> > <xsd:enumeration value="strongAuthRequired"/> > <xsd:enumeration value="referral"/> > <xsd:enumeration value="adminLimitExceeded"/> > <xsd:enumeration value="unavailableCriticalExtension"/> > <xsd:enumeration value="confidentialityRequired"/> > <xsd:enumeration value="saslBindInProgress"/> > <xsd:enumeration value="noSuchAttribute"/> > <xsd:enumeration value="undefinedAttributeType"/> > <xsd:enumeration value="inappropriateMatching"/> > <xsd:enumeration value="constraintViolation"/> > <xsd:enumeration value="attributeOrValueExists"/> > <xsd:enumeration value="invalidAttributeSyntax"/> > <xsd:enumeration value="noSuchObject"/> > <xsd:enumeration value="aliasProblem"/> > <xsd:enumeration value="invalidDNSyntax"/> > <xsd:enumeration value="aliasDerefencingProblem"/> > <xsd:enumeration value="inappropriateAuthentication"/> > <xsd:enumeration value="invalidCredentials"/> > <xsd:enumeration value="insufficientAccessRights"/> > <xsd:enumeration value="busy"/> > <xsd:enumeration value="unavailable"/> > <xsd:enumeration value="unwillingToPerform"/> > <xsd:enumeration value="loopDetect"/> > <xsd:enumeration value="namingViolation"/> > <xsd:enumeration value="objectClassViolation"/> > <xsd:enumeration value="notAllowedOnNonLeaf"/> > <xsd:enumeration value="notAllowedOnRDN"/> > <xsd:enumeration value="entryAlreadyExists"/> > <xsd:enumeration value="objectClassModsProhibited"/> > <xsd:enumeration value="affectMultipleDSAs"/> > <xsd:enumeration value="other"/> > </xsd:restriction> > </xsd:simpleType> > <xsd:complexType name="ResultCode"> > <xsd:attribute name="code" type="xsd:int"/> > <xsd:attribute name="descr" type="LDAPResultCode" use="optional"/> > </xsd:complexType> > <xsd:complexType name="LDAPResult"> > <xsd:complexContent> > <xsd:extension base="DsmlMessage"> > <xsd:sequence> > <xsd:element name="resultCode" type="ResultCode"/> > <xsd:element name="errorMessage" type="xsd:string" minOccurs="0"/> > <xsd:element name="referral" type="xsd:anyURI" minOccurs="0" maxOccurs="unbounded"/> > </xsd:sequence> > <xsd:attribute name="matchedDN" type="DsmlDN" use="optional"/> > </xsd:extension> > </xsd:complexContent> > </xsd:complexType> > <xsd:complexType name="ErrorResponse"> > <xsd:sequence> > <xsd:element name="message" type="xsd:string" minOccurs="0"/> > <xsd:element name="detail" minOccurs="0"> > <xsd:complexType> > <xsd:sequence> > <xsd:any/> > </xsd:sequence> > </xsd:complexType> > </xsd:element> > </xsd:sequence> > <xsd:attribute name="requestID" type="RequestID" use="optional"/> > <xsd:attribute name="type"> > <xsd:simpleType> > <xsd:restriction base="xsd:string"> > <xsd:enumeration value="notAttempted"/> > <xsd:enumeration value="couldNotConnect"/> > <xsd:enumeration value="connectionClosed"/> > <xsd:enumeration value="malformedRequest"/> > <xsd:enumeration value="gatewayInternalError"/> > <xsd:enumeration value="authenticationFailed"/> > <xsd:enumeration value="other"/> > </xsd:restriction> > </xsd:simpleType> > </xsd:attribute> > </xsd:complexType> > <!-- *************** Bind ********************* --> > <xsd:complexType name="BindRequest"> > <xsd:complexContent> > <xsd:extension base="DsmlMessage"> > <xsd:attribute name="principal" type="DsmlDN" use="required"/> > </xsd:extension> > </xsd:complexContent> > </xsd:complexType> > <!-- *************** Search ********************* --> > <xsd:complexType name="AttributeDescriptions"> > <xsd:sequence minOccurs="0" maxOccurs="unbounded"> > <xsd:element name="attribute" type="AttributeDescription"/> > </xsd:sequence> > </xsd:complexType> > <xsd:complexType name="SearchRequest"> > <xsd:complexContent> > <xsd:extension base="DsmlMessage"> > <xsd:sequence> > <xsd:element name="filter" type="Filter"/> > <xsd:element name="attributes" type="AttributeDescriptions" minOccurs="0"/> > </xsd:sequence> > <xsd:attribute name="dn" type="DsmlDN" use="required"/> > <xsd:attribute name="scope" use="required"> > <xsd:simpleType> > <xsd:restriction base="xsd:string"> > <xsd:enumeration value="baseObject"/> > <xsd:enumeration value="singleLevel"/> > <xsd:enumeration value="wholeSubtree"/> > </xsd:restriction> > </xsd:simpleType> > </xsd:attribute> > <xsd:attribute name="derefAliases" use="required"> > <xsd:simpleType> > <xsd:restriction base="xsd:string"> > <xsd:enumeration value="neverDerefAliases"/> > <xsd:enumeration value="derefInSearching"/> > <xsd:enumeration value="derefFindingBaseObj"/> > <xsd:enumeration value="derefAlways"/> > </xsd:restriction> > </xsd:simpleType> > </xsd:attribute> > <xsd:attribute name="sizeLimit" type="MAXINT" use="optional" default="0"/> > <xsd:attribute name="timeLimit" type="MAXINT" use="optional" default="0"/> > <xsd:attribute name="typesOnly" type="xsd:boolean" use="optional" default="false"/> > </xsd:extension> > </xsd:complexContent> > </xsd:complexType> > <!-- ***** Search Result Entry ***** --> > <xsd:complexType name="SearchResultEntry"> > <xsd:complexContent> > <xsd:extension base="DsmlMessage"> > <xsd:sequence> > <xsd:element name="attr" type="DsmlAttr" minOccurs="0" maxOccurs="unbounded"/> > </xsd:sequence> > <xsd:attribute name="dn" type="DsmlDN" use="required"/> > </xsd:extension> > </xsd:complexContent> > </xsd:complexType> > <xsd:complexType name="DsmlAttr"> > <xsd:sequence> > <xsd:element name="value" type="DsmlValue" minOccurs="0" maxOccurs="unbounded"/> > </xsd:sequence> > <xsd:attribute name="name" type="OID" use="required"/> > </xsd:complexType> > <xsd:complexType name="DsmlModification"> > <xsd:sequence> > <xsd:element name="value" type="DsmlValue" minOccurs="0" maxOccurs="unbounded"/> > </xsd:sequence> > <xsd:attribute name="name" type="OID" use="required"/> > <xsd:attribute name="operation" use="required"> > <xsd:simpleType> > <xsd:restriction base="xsd:string"> > <xsd:enumeration value="add"/> > <xsd:enumeration value="delete"/> > <xsd:enumeration value="replace"/> > </xsd:restriction> > </xsd:simpleType> > </xsd:attribute> > </xsd:complexType> > <!-- ***** Search Result Reference ***** --> > <xsd:complexType name="SearchResultReference"> > <xsd:complexContent> > <xsd:extension base="DsmlMessage"> > <xsd:sequence> > <xsd:element name="ref" type="xsd:anyURI" maxOccurs="unbounded"/> > </xsd:sequence> > </xsd:extension> > </xsd:complexContent> > </xsd:complexType> > <!-- ************* MODIFY ******************** --> > <xsd:complexType name="ModifyRequest"> > <xsd:complexContent> > <xsd:extension base="DsmlMessage"> > <xsd:sequence> > <xsd:element name="attr" type="DsmlModification" minOccurs="0" maxOccurs="unbounded"/> > </xsd:sequence> > <xsd:attribute name="dn" type="DsmlDN" use="required"/> > </xsd:extension> > </xsd:complexContent> > </xsd:complexType> > <!-- *************** ADD ********************* --> > <xsd:complexType name="AddRequest"> > <xsd:complexContent> > <xsd:extension base="DsmlMessage"> > <xsd:sequence> > <xsd:element name="attr" type="DsmlAttr" minOccurs="0" maxOccurs="unbounded"/> > </xsd:sequence> > <xsd:attribute name="dn" type="DsmlDN" use="required"/> > </xsd:extension> > </xsd:complexContent> > </xsd:complexType> > <!-- *************** DELETE ********************* --> > <xsd:complexType name="DelRequest"> > <xsd:complexContent> > <xsd:extension base="DsmlMessage"> > <xsd:attribute name="dn" type="DsmlDN" use="required"/> > </xsd:extension> > </xsd:complexContent> > </xsd:complexType> > <!-- *************** MODIFY DN ********************* --> > <xsd:complexType name="ModifyDNRequest"> > <xsd:complexContent> > <xsd:extension base="DsmlMessage"> > <xsd:attribute name="dn" type="DsmlDN" use="required"/> > <xsd:attribute name="newrdn" type="DsmlRDN" use="required"/> > <xsd:attribute name="deleteoldrdn" type="xsd:boolean" use="optional" default="true"/> > <xsd:attribute name="newSuperior" type="DsmlDN" use="optional"/> > </xsd:extension> > </xsd:complexContent> > </xsd:complexType> > <!-- ************* COMPARE ******************** --> > <xsd:complexType name="CompareRequest"> > <xsd:complexContent> > <xsd:extension base="DsmlMessage"> > <xsd:sequence> > <xsd:element name="attr" type="AttributeValueAssertion"/> > </xsd:sequence> > <xsd:attribute name="dn" type="DsmlDN" use="required"/> > </xsd:extension> > </xsd:complexContent> > </xsd:complexType> > <!-- ***** ABANDON ***** --> > <xsd:complexType name="AbandonRequest"> > <xsd:complexContent> > <xsd:extension base="DsmlMessage"> > <xsd:attribute name="abandonID" type="RequestID" use="required"/> > </xsd:extension> > </xsd:complexContent> > </xsd:complexType> > <!-- ************* EXTENDED OPERATION ******************** --> > <xsd:complexType name="ExtendedRequest"> > <xsd:complexContent> > <xsd:extension base="DsmlMessage"> > <xsd:sequence> > <xsd:element name="requestName" type="NumericOID"/> > <xsd:element name="requestValue" type="DsmlANY" minOccurs="0"/> > </xsd:sequence> > </xsd:extension> > </xsd:complexContent> > </xsd:complexType> > <xsd:complexType name="ExtendedResponse"> > <xsd:complexContent> > <xsd:extension base="LDAPResult"> > <xsd:sequence> > <xsd:element name="responseName" type="NumericOID" minOccurs="0"/> > <xsd:element name="response" type="DsmlANY" minOccurs="0"/> > </xsd:sequence> > </xsd:extension> > </xsd:complexContent> > </xsd:complexType> > <!-- ********************END base SCHEMA ********************* --> > </xsd:schema>
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Powered by eList eXpress LLC