プライマリ・コンテンツに移動
Oracle® Identity Manager Webservicesコネクタ・ガイド
リリース11.1.1
E91915-02
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

D サンプルXSD

この付録では、このガイドで説明されている手順を実行する際に使用するSPMLおよびDSMLの次のサンプルXSDを示します。

D.1 SPML XSDのサンプル

次に、SPML XSDのサンプルを示します。

<?xml version="1.0" encoding="UTF-8"?>

<!--************************************************************-->

<!-- draft_pstc_SPMLv2_core_27.xsd -->

<!-- -->

<!-- SPML v2.0コア機能のドラフト・スキーマ。 -->

<!-- -->

<!-- 編者: -->

<!-- Jeff Bohren (Jeff_Bohren@bmc.com) -->

<!-- -->

<!-- -->

<!-- Copyright (C) The Organization for the Advancement of -->

<!-- Structured Information Standards [OASIS] 2005.All Rights -->

<!-- Reserved. -->

<!--************************************************************-->

<schema targetNamespace="urn:oasis:names:tc:SPML:2:0" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:spml="urn:oasis:names:tc:SPML:2:0" elementFormDefault="qualified">

<complexType name="ExtensibleType">

<sequence>

<any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax"/>

</sequence>

<anyAttribute namespace="##other" processContents="lax"/>

</complexType>

<simpleType name="ExecutionModeType">

<restriction base="string">

<enumeration value="synchronous"/>

<enumeration value="asynchronous"/>

</restriction>

</simpleType>

<complexType name="CapabilityDataType">

<complexContent>

<extension base="spml:ExtensibleType">

<annotation>

<documentation>Contains elements specific to a capability.</documentation>

</annotation>

<attribute name="mustUnderstand" type="boolean" use="optional"/>

<attribute name="capabilityURI" type="anyURI"/>

</extension>

</complexContent>

</complexType>

<complexType name="RequestType">

<complexContent>

<extension base="spml:ExtensibleType">

<attribute name="requestID" type="xsd:ID" use="optional"/>

<attribute name="executionMode" type="spml:ExecutionModeType" use="optional"/>

</extension>

</complexContent>

</complexType>

<simpleType name="StatusCodeType">

<restriction base="string">

<enumeration value="success"/>

<enumeration value="failure"/>

<enumeration value="pending"/>

</restriction>

</simpleType>

<simpleType name="ErrorCode">

<restriction base="string">

<enumeration value="malformedRequest"/>

<enumeration value="unsupportedOperation"/>

<enumeration value="unsupportedIdentifierType"/>

<enumeration value="noSuchIdentifier"/>

<enumeration value="customError"/>

<enumeration value="unsupportedExecutionMode"/>

<enumeration value="invalidContainment"/>

<enumeration value="noSuchRequest"/>

<enumeration value="unsupportedSelectionType"/>

<enumeration value="resultSetTooLarge"/>

<enumeration value="unsupportedProfile"/>

<enumeration value="invalidIdentifier"/>

<enumeration value="alreadyExists"/>

<enumeration value="containerNotEmpty"/>

</restriction>

</simpleType>

<simpleType name="ReturnDataType">

<restriction base="string">

<enumeration value="identifier"/>

<enumeration value="data"/>

<enumeration value="everything"/>

</restriction>

</simpleType>

<complexType name="ResponseType">

<complexContent>

<extension base="spml:ExtensibleType">

<sequence>

<element name="errorMessage" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>

</sequence>

<attribute name="status" type="spml:StatusCodeType" use="required"/>

<attribute name="requestID" type="xsd:ID" use="optional"/>

<attribute name="error" type="spml:ErrorCode" use="optional"/>

</extension>

</complexContent>

</complexType>

<complexType name="IdentifierType">

<complexContent>

<extension base="spml:ExtensibleType">

<attribute name="ID" type="string" use="optional"/>

</extension>

</complexContent>

</complexType>

<complexType name="PSOIdentifierType">

<complexContent>

<extension base="spml:IdentifierType">

<sequence>

<element name="containerID" type="spml:PSOIdentifierType" minOccurs="0"/>

</sequence>

<attribute name="targetID" type="string" use="optional"/>

</extension>

</complexContent>

</complexType>

<complexType name="PSOType">

<complexContent>

<extension base="spml:ExtensibleType">

<sequence>

<element name="psoID" type="spml:PSOIdentifierType"/>

<element name="data" type="spml:ExtensibleType" minOccurs="0"/>

<element name="capabilityData" type="spml:CapabilityDataType" minOccurs="0" maxOccurs="unbounded"/>

</sequence>

</extension>

</complexContent>

</complexType>

<complexType name="AddRequestType">

<complexContent>

<extension base="spml:RequestType">

<sequence>

<element name="psoID" type="spml:PSOIdentifierType" minOccurs="0" />

<element name="containerID" type="spml:PSOIdentifierType" minOccurs="0" />

<element name="data" type="spml:ExtensibleType"/>

<element name="capabilityData" type="spml:CapabilityDataType" minOccurs="0" maxOccurs="unbounded" />

</sequence>

<attribute name="targetID" type="string" use="optional"/>

<attribute name="returnData" type="spml:ReturnDataType" use="optional" default="everything"/>

</extension>

</complexContent>

</complexType>

<complexType name="AddResponseType">

<complexContent>

<extension base="spml:ResponseType">

<sequence>

<element name="pso" type="spml:PSOType" minOccurs="0"/>

</sequence>

</extension>

</complexContent>

</complexType>

<simpleType name="ModificationModeType">

<restriction base="string">

<enumeration value="add"/>

<enumeration value="replace"/>

<enumeration value="delete"/>

</restriction>

</simpleType>

<complexType name="NamespacePrefixMappingType">

<complexContent>

<extension base="spml:ExtensibleType">

<attribute name="prefix" type="string" use="required"/>

<attribute name="namespace" type="string" use="required"/>

</extension>

</complexContent>

</complexType>

<complexType name="QueryClauseType">

<complexContent>

<extension base="spml:ExtensibleType">

</extension>

</complexContent>

</complexType>

<complexType name="SelectionType">

<complexContent>

<extension base="spml:QueryClauseType">

<sequence>

<element name="namespacePrefixMap" type="spml:NamespacePrefixMappingType" minOccurs="0" maxOccurs="unbounded"/>

</sequence>

<attribute name="path" type="string" use="required"/>

<attribute name="namespaceURI" type="string" use="required"/>

</extension>

</complexContent>

</complexType>

<complexType name="ModificationType">

<complexContent>

<extension base="spml:ExtensibleType">

<sequence>

<element name="component" type="spml:SelectionType" minOccurs="0"/>

<element name="data" type="spml:ExtensibleType" minOccurs="0"/>

<element name="capabilityData" type="spml:CapabilityDataType" minOccurs="0" maxOccurs="unbounded"/>

</sequence>

<attribute name="modificationMode" type="spml:ModificationModeType" use="optional"/>

</extension>

</complexContent>

</complexType>

<complexType name="ModifyRequestType">

<complexContent>

<extension base="spml:RequestType">

<sequence>

<element name="psoID" type="spml:PSOIdentifierType"/>

<element name="modification" type="spml:ModificationType" maxOccurs="unbounded"/>

</sequence>

<attribute name="returnData" type="spml:ReturnDataType" use="optional" default="everything"/>

</extension>

</complexContent>

</complexType>

<complexType name="ModifyResponseType">

<complexContent>

<extension base="spml:ResponseType">

<sequence>

<element name="pso" type="spml:PSOType" minOccurs="0"/>

</sequence>

</extension>

</complexContent>

</complexType>

<complexType name="DeleteRequestType">

<complexContent>

<extension base="spml:RequestType">

<sequence>

<element name="psoID" type="spml:PSOIdentifierType"/>

</sequence>

<attribute name="recursive" type="xsd:boolean" use="optional" default="false"/>

</extension>

</complexContent>

</complexType>

<complexType name="LookupRequestType">

<complexContent>

<extension base="spml:RequestType">

<sequence>

<element name="psoID" type="spml:PSOIdentifierType"/>

</sequence>

<attribute name="returnData" type="spml:ReturnDataType" use="optional" default="everything"/>

</extension>

</complexContent>

</complexType>

<complexType name="LookupResponseType">

<complexContent>

<extension base="spml:ResponseType">

<sequence>

<element name="pso" type="spml:PSOType" minOccurs="0" />

</sequence>

</extension>

</complexContent>

</complexType>

<complexType name="SchemaType">

<complexContent>

<extension base="spml:ExtensibleType">

<sequence>

<annotation>

<documentation>Profile specific schema elements should be included here</documentation>

</annotation>

<element name="supportedSchemaEntity" type="spml:SchemaEntityRefType" minOccurs="0" maxOccurs="unbounded"/>

</sequence>

<attribute name="ref" type="anyURI" use="optional"/>

</extension>

</complexContent>

</complexType>

<complexType name="SchemaEntityRefType">

<complexContent>

<extension base="spml:ExtensibleType">

<attribute name="targetID" type="string" use="optional"/>

<attribute name="entityName" type="string" use="optional"/>

<attribute name="isContainer" type="xsd:boolean" use="optional"/>

</extension>

</complexContent>

</complexType>

<complexType name="CapabilityType">

<complexContent>

<extension base="spml:ExtensibleType">

<sequence>

<element name="appliesTo" type="spml:SchemaEntityRefType" minOccurs="0" maxOccurs="unbounded"/>

</sequence>

<attribute name="namespaceURI" type="anyURI"/>

<attribute name="location" type="anyURI" use="optional"/>

</extension>

</complexContent>

</complexType>

<complexType name="CapabilitiesListType">

<complexContent>

<extension base="spml:ExtensibleType">

<sequence>

<element name="capability" type="spml:CapabilityType" minOccurs="0" maxOccurs="unbounded"/>

</sequence>

</extension>

</complexContent>

</complexType>

<complexType name="TargetType">

<complexContent>

<extension base="spml:ExtensibleType">

<sequence>

<element name="schema" type="spml:SchemaType" maxOccurs="unbounded"/>

<element name="capabilities" type="spml:CapabilitiesListType" minOccurs="0"/>

</sequence>

<attribute name="targetID" type="string" use="optional"/>

<attribute name="profile" type="anyURI" use="optional"/>

</extension>

</complexContent>

</complexType>

<complexType name="ListTargetsRequestType">

<complexContent>

<extension base="spml:RequestType">

</extension>

<attribute name="profile" type="anyURI" use="optional"/>

</complexContent>

</complexType>

<complexType name="ListTargetsResponseType">

<complexContent>

<extension base="spml:ResponseType">

<sequence>

<element name="target" type="spml:TargetType" minOccurs="0" maxOccurs="unbounded"/>

</sequence>

</extension>

</complexContent>

</complexType>

<element name="select" type="spml:SelectionType"/>

<element name="addRequest" type="spml:AddRequestType"/>

<element name="addResponse" type="spml:AddResponseType"/>

<element name="modifyRequest" type="spml:ModifyRequestType"/>

<element name="modifyResponse" type="spml:ModifyResponseType"/>

<element name="deleteRequest" type="spml:DeleteRequestType"/>

<element name="deleteResponse" type="spml:ResponseType"/>

<element name="lookupRequest" type="spml:LookupRequestType"/>

<element name="lookupResponse" type="spml:LookupResponseType"/>

<element name="listTargetsRequest" type="spml:ListTargetsRequestType"/>

<element name="listTargetsResponse" type="spml:ListTargetsResponseType"/>

</schema>

D.2 DSML XSDのサンプル

次に、DSML XSDのサンプルを示します。

<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">

<!-- Copyright (C) The Organization for the Advancement of Structured Information Standards [OASIS] 2001.All Rights Reserved. -->

<!-- DSMLリクエスト -->

<xsd:group name="DSMLRequests">

<xsd:choice>

<xsd:element name="authRequest" type="AuthRequest"/>

<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="extendedRequest" type="ExtendedRequest"/>

</xsd:choice>

</xsd:group>

<!-- DSMLレスポンス -->

<xsd:group name="DSMLResponses">

<xsd:choice>

<xsd:element name="authResponse" 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="extendedResponse" type="ExtendedResponse"/>

<xsd:element name="errorResponse" type="ErrorResponse"/>

</xsd:choice>

</xsd:group>

<!-- *************** バッチ・エンベロープ ********************* -->

<xsd:element name="batchRequest" type="BatchRequest"/>

<xsd:element name="batchResponse" type="BatchResponse"/>

<!-- **** バッチ・リクエスト・エンベロープ **** -->

<xsd:complexType name="BatchRequest">

<xsd:sequence>

<xsd:element name="authRequest" type="AuthRequest" 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>

<!-- **** バッチ・レスポンス・エンベロープ **** -->

<xsd:complexType name="BatchResponse">

<xsd:sequence>

<xsd:group ref="BatchResponses" minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

<xsd:attribute name="requestID" type="RequestID" use="optional"/>

</xsd:complexType>

<!-- **** バッチ・レスポンス **** -->

<xsd:group name="BatchResponses">

<xsd:choice>

<xsd:element name="searchResponse" type="SearchResponse"/>

<xsd:element name="authResponse" 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="extendedResponse" type="ExtendedResponse"/>

<xsd:element name="errorResponse" type="ErrorResponse"/>

</xsd:choice>

</xsd:group>

<!-- **** 検索レスポンス **** -->

<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>

<!-- ***** リクエストID ***** -->

<xsd:simpleType name="RequestID">

<xsd:restriction base="xsd:string"/>

</xsd:simpleType>

<!-- ***** AttributeDescriptionValue ***** -->

<xsd:simpleType name="AttributeDescriptionValue">

<xsd:restriction base="xsd:string">

<xsd:pattern value="((([0-2](\.[0-9]+)+)|([a-zA-Z]+([a-zA-Z0-9]|[-])*))(;([a-zA-Z0-9]|[-])+)*)"/>

</xsd:restriction>

</xsd:simpleType>

<xsd:simpleType name="NumericOID">

<xsd:restriction base="xsd:string">

<xsd:pattern value="[0-2]\.[0-9]+(\.[0-9]+)*"/>

</xsd:restriction>

</xsd:simpleType>

<!-- ***** 最大整数 ***** -->

<xsd:simpleType name="MAXINT">

<xsd:restriction base="xsd:unsignedInt">

<xsd:maxInclusive value="2147483647"/>

</xsd:restriction>

</xsd:simpleType>

<!-- **** DSML値 **** -->

<xsd:simpleType name="DsmlValue">

<xsd:union memberTypes="xsd:string xsd:base64Binary xsd:anyURI"/>

</xsd:simpleType>

<!-- **** DSML制御 **** -->

<xsd:complexType name="Control">

<xsd:sequence>

<xsd:element name="controlValue" type="xsd:anyType" 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フィルタ **** -->

<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="AttributeDescriptionValue" use="required"/>

</xsd:complexType>

<xsd:complexType name="AttributeDescription">

<xsd:attribute name="name" type="AttributeDescriptionValue" use="required"/>

</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="AttributeDescriptionValue" use="required"/>

</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="xsd:string" use="optional"/>

<xsd:attribute name="name" type="AttributeDescriptionValue" use="optional"/>

</xsd:complexType>

<!-- *************** DSMLメッセージ ******************** -->

<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結果 ********************* -->

<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" use="required"/>

<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="unresolvableURI"/>

<xsd:enumeration value="other"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:attribute>

</xsd:complexType>

<!-- *************** Auth ********************* -->

<xsd:complexType name="AuthRequest">

<xsd:complexContent>

<xsd:extension base="DsmlMessage">

<xsd:attribute name="principal" type="xsd:string" use="required"/>

</xsd:extension>

</xsd:complexContent>

</xsd:complexType>

<!-- *************** 検索 ********************* -->

<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>

<!-- ***** 検索結果エントリ ***** -->

<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="AttributeDescriptionValue" 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="AttributeDescriptionValue" 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>

<!-- ***** 検索結果リファレンス ***** -->

<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>

<!-- ************* 変更 ******************** -->

<xsd:complexType name="ModifyRequest">

<xsd:complexContent>

<xsd:extension base="DsmlMessage">

<xsd:sequence>

<xsd:element name="modification" type="DsmlModification" minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

<xsd:attribute name="dn" type="DsmlDN" use="required"/>

</xsd:extension>

</xsd:complexContent>

</xsd:complexType>

<!-- *************** 追加 ********************* -->

<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>

<!-- *************** 削除 ********************* -->

<xsd:complexType name="DelRequest">

<xsd:complexContent>

<xsd:extension base="DsmlMessage">

<xsd:attribute name="dn" type="DsmlDN" use="required"/>

</xsd:extension>

</xsd:complexContent>

</xsd:complexType>

<!-- *************** 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>

<!-- ************* 比較 ******************** -->

<xsd:complexType name="CompareRequest">

<xsd:complexContent>

<xsd:extension base="DsmlMessage">

<xsd:sequence>

<xsd:element name="assertion" type="AttributeValueAssertion"/>

</xsd:sequence>

<xsd:attribute name="dn" type="DsmlDN" use="required"/>

</xsd:extension>

</xsd:complexContent>

</xsd:complexType>

<!-- ***** 中止 ***** -->

<xsd:complexType name="AbandonRequest">

<xsd:complexContent>

<xsd:extension base="DsmlMessage">

<xsd:attribute name="abandonID" type="RequestID" use="required"/>

</xsd:extension>

</xsd:complexContent>

</xsd:complexType>

<!-- ************* 拡張操作 ******************** -->

<xsd:complexType name="ExtendedRequest">

<xsd:complexContent>

<xsd:extension base="DsmlMessage">

<xsd:sequence>

<xsd:element name="requestName" type="NumericOID"/>

<xsd:element name="requestValue" type="xsd:anyType" 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="xsd:anyType" minOccurs="0"/>

</xsd:sequence>

</xsd:extension>

</xsd:complexContent>

</xsd:complexType>

<!-- ********************ベース・スキーマ終了 ********************* -->

</xsd:schema>