The explain server messages add sequence of capabilities to the base message. The capability-type sequence can be filled with capability-types to specify which capabilities
are requested from the server. The server responds with reporting each capability in a sequence of capabilities.
typedef sequenceCapabilityType CapabilityTypeSeq; struct
ExplainServerRequest {
Message base;
CapabilityTypeSeq capabilities;
}; struct
ExplainServerResponse {
Message base;
CapabilityTypeSeq capabilities;
};
9.6.7 Discovery messages
There are four requestresponse message pairs in the discovery service. To enhance distributed searching, an additional structure member for the query message is provided.
This member is not included in the General Model. This structure member asynchronous can be set to true to force asynchronous searching. The query method will return
immediately, setting structure member hits in the response to zero. Query results can be retrieved later on, when the query is ready. The progress of the query can be examined
with the status messages. The query can be cancelled with the cancel messages.
NOTE 1 This asynchronous behaviour is only specified for the query request message. All other operations e.g.
init, terminate, status, cancel, explain, present are not considered as time-consuming and return immediately after processing.
Another structure member, maxLevel, is added to have more control in the range of the distribution. If one catalogue contains another one, that other one contains a third one,
and so on, you will possibly specify that only two levels of sub-catalogs will be searched. Setting the maxLevel member to two will force this. Setting maxLevel to -1 forces
searching all sub-catalogs.
NOTE 2 If the queryScope is Local there is no distributed search at all.
typedef sequenceSortField SortFieldSeq; struct QueryRequest
{ Message
base; QueryExpression
queryExpression; ResultType
resultType; long
iteratorSize; long
cursor; MessageFormat
returnFormat; PresentationDescription
presentation; SortFieldSeq
sortField; QueryScope
queryScope; CollectionName
collectionID; CatalogEntryType
resourceType;
96
Copyright © 2007 Open Geospatial Consortium, Inc. All Rights Reserved.
boolean asynchronous;
long maxLevel;
}; struct QueryResponse
{ Message
base; ReturnData
retrievedData; CollectionName
resultSetID; Status
status; long
hits; long
cursor; };
struct PresentRequest {
Message base;
CollectionName resultSetID;
PresentationDescription presentation;
SortFieldSeq sortField;
MessageFormat returnFormat;
long iteratorSize;
long cursor;
}; struct PresentResponse
{ Message
base; ReturnData
retrievedData; long
cursor; long
hits; Status
status; };
struct ExplainCollectionRequest {
Message base;
AttributeCategory attributeCategory;
CollectionName collectionID;
MessageFormat returnFormat;
}; struct ExplainCollectionResponse
{ Message
base; CollectionName
collectionID; SchemaID
dataModel; Status
status; };
struct GetDomainRequest {
Message base;
StringSeq attributes;
}; struct GetDomainResponse
{ Message
base; DomainSeq
attributeDomains; };
Copyright © 2007 Open Geospatial Consortium, Inc. All Rights Reserved.
97
9.6.8 Management messages