Interface CompoundRequest

All Superinterfaces:
XMessageAbstractType, XRequestAbstractType

public interface CompoundRequest
extends XRequestAbstractType

Make multiple XKMS requests at the same time.

[77] An XKMS service MAY support processing of Compound Requests. A compound request permits multiple XKMS requests to be made at the same time. A compound request consists of an outer request and one or more inner requests. There is no ordering implicit in the inner requests. The semantics of making a set of requests as a compound request are exactly the same as if each individual request in the set had been made separately and simultaneously.

[83] Since the semantics of a compound request are exactly the same as if each inner request were made separately a client MAY issue separate pending requests to obtain the results of the inner requests of a previous compound request.

[127] The compound request mechanism allows multiple requests and the corresponding responses to be sent in a single request message. This allows considerable processing resources to be saved as a single signature on the compound message may be used in place of multiple signatures on the individual requests or responses. There are no constraints on the type of request that may be made within a single compound request. A compound request may contain multiple instances of the same type of request, a mixture of different types of request or both.

Element <CompoundRequest>
[128] The <CompoundRequest> element is used to issue multiple requests at the same time. The <CompoundRequest> element inherits the element and attributes of XRequestAbstractType together with the following elements in any order:
<LocateRequest> [Any Number]
An XKMS Locate Request.
<ValidateRequest> [Any Number]
An XKMS Validate Request.
<RegisterRequest> [Any Number]
An XKMS Register Request.
<ReissueRequest> [Any Number]
An XKMS Reissue Request.
<RecoverRequest> [Any Number]
An XKMS Recover Request.
<RevokeRequest> [Any Number]
An XKMS Revoke Request.

[128a] The RespondWith element MUST NOT be a direct child of a CompoundRequest element. Each request that is encapsulated inside a CompoundRequest element may or may not have its own RespondWith element child.

Method Summary
 void addRequest(XRequestAbstractType request)
          Adds another request to this CompoundRequest.
 int getNumRequests()
          Gets number of requests.
 List<XRequestAbstractType> getRequests()
          Gets a list of contained requests.
Methods inherited from interface XRequestAbstractType
acceptPending, acceptRepresent, acceptRequestSignatureValue, addRespondWith, addResponseMechanism, getOriginalRequestId, getPendingNotification, getRespondWith, getResponseLimit, getResponseMechanism, removeRespondWith, removeResponseMechanism, setOriginalRequestId, setPendingNotification, setResponseLimit
Methods inherited from interface XMessageAbstractType
addDefaults, addOpaqueClientData, clearOpaqueClientData, getId, getMessageName, getNonce, getOpaqueClientData, getRequestSignatureValue, getService, getSignatureCertificate, hasSignature, isValid, setId, setNonce, setService, setSignature, toString

Method Detail


void addRequest(XRequestAbstractType request)
                throws XKMSException
Adds another request to this CompoundRequest.

request - request to add
XKMSException - if wrong request message was supplied


List<XRequestAbstractType> getRequests()
Gets a list of contained requests.

Note: This returns a copy of the internal list.

a copy of the List of Request objects


int getNumRequests()
Gets number of requests.

number of requests