Access messages Exceptions Interface definition - IDL

Structure for the content of a single manipulation in a transaction union MetadataManipulation switchMetadataManipulationType { case ctInsert : InsertMetadata insertData; case ctUpdate : UpdateMetadata updateData; case ctDelete : DeleteMetadata deleteData; }; typedef sequenceMetadataManipulation MetadataManipulationSeq; Struct of a transaction, as a sequence of single manipulations struct Transaction { MetadataManipulationSeq manipulations; }; struct TransactionRequest { Message base; Transaction transactionData; }; struct TransactionResponse { Message base; Status status; value of -1 means not calculated long totalInserted; long totalUpdated; long totalDeleted; List of newly generated catalogue entry identifiers assigned to the new catalogue entry instances NameValuePairSeqSeq newKeyList; };

9.6.9 Access messages

The General Model specifies direct access and brokered access. Direct access is provided by interfaces such as the OGC Simple Features and Coverage interfaces for CORBA. If a catalogue entry denotes an OGC Feature, a Feature Collection or a Coverage, the meta- information of this entry can be populated with an ior interoperable object reference. This meta-information entity is called ior and is filled with the standard representation of an ior, specified by the OMG Object Management Group, the creators of CORBA. In XML this looks like the following abbreviated example: iorIOR:010631002800000049444c3a6f6d672e6f...ior Brokered access is specified by a request and a response message, conform all operations of the General Model. The messages are listed below. struct BrokeredAccessRequest { Message base; Copyright © 2007 Open Geospatial Consortium, Inc. All Rights Reserved. 99 wstring productHandle; OrderSpecification orderInformation; wstring orderID; BrokeredAccessRequestType requestType; UserInformation userInformation; StatusUpdateType statusOrderUpdateType; PackageSpecification packageSpecification; }; typedef sequencelong LongSeq; struct BrokeredAccessResponse { Message base; OrderStatus orderStatus; LongSeq resourceEstimate; CollectionName order; wstring orderID; Status status; BrokeredAccessRequestType requestType; };

9.6.10 Exceptions

Exceptions are not specified in the General Model because they are profile specific. In CORBA exceptions are considered as an appropriate way to notify error situations to clients. The CORBA profile specifies exceptions. The diagnostic structure member of the response messages are not used in the CORBA profile, their role is taken over by the exceptions. Some exceptions specify the diagnostic w string as an exception parameter. By other exceptions this is not necessary, as the exceptions are self-explaining. exception InvalidRequest{}; exception InvalidSession{}; exception InvalidCollection{ wstring diagnostic; }; The exception InvalidQuery is thrown if the client specifies an invalid query. NOTE The exception is not thrown if the resultType field is set to validate. exception InvalidQuery{ wstring diagnostic; }; The exception NotImplemented is defined in cases where the client asks for not- implemented behaviour. This might occur by requesting the optional access or management services. exception NotImplemented{ wstring diagnostic; }; The NotSupported exception is thrown if the client specifies something in a request parameter that is not implemented by the server. For example the client can specify its query in Z3950_TypeOne, but the server can only interpret OGC_Common queries. exception NotSupported{ wstring diagnostic; }; The last exception, CatalogError, indicates an error when none of the above exceptions is appropriate. 100 Copyright © 2007 Open Geospatial Consortium, Inc. All Rights Reserved. exception CatalogError{ wstring diagnostic; };

9.6.11 Catalogue Service interfaces