[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Subject: new draft spec
Attached is a new draft of the spec and schema. Changes are tracked. Change summary: 1) consolidated schemas to a single schema per 9/26 tele-con 2) added verbage to 'Values' sub-section just prior to section 5.1 to address where URIs are resolved and what URIs are permitted. 3) added verbage to end of section 6 on SOAP binding to address URIs issue for the SOAP binding. 4) changed spelling of DSMLRequest to DSMLRequests 5) changed spelling of DSMLResponse to DSMLResponses 6) reworded requestID discussion in section 4 just prior to the 'Syntax Errors' sub-section per 9/26 tele-con 7) changed "asynchronous notification" to "unsolicited notification" in 3 places in same paras as 6) above. ciao, Christine
<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: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="requestID" type="xsd:string" minOccurs="0"/> <xsd:group ref="DSMLRequests" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <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="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:element name="requestID" type="xsd:string" minOccurs="0"/> <xsd:group ref="DSMLBatchResponses" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </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> <!-- **** DSML Batch Response Envelope **** --> <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: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="LDAPErrorCode"> <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="LDAPErrorCode" 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