wstring value;
DomainValueDef valuesDef;
wstring title;
wstring description;
wstring metadataURL;
}; typedef sequenceDomainValue DomainValueSeq;
Descriptions of domain of one requested metadata properties or request parameter
struct Domain {
wstring
attributeName; DomainDef
domainDef; DomainValueSeq
domainValue; };
typedef sequenceDomain DomainSeq;
9.6.4 Definitions for brokered access
The General Model defines some code-lists and structures for brokered access. These definitions are directly translated into their CORBA counterparts:
enum BrokeredAccessRequestType {orderEstimate, orderQuoteAndSubmit, orderMonitor,
orderCancel}; struct OrderItem
{ Note: datatypes not provided by GM
any productID;
any productPrice;
any productDeliveryOptions;
any processingOptions;
any sceneSelectionOptions;
}; struct OrderSpecification
{ Note: datatypes not provided by GM
any orderCentreID;
any orderPrice;
any orderDeliveryDate;
any orderCancellationDate;
any deliveryMethod;
any package;
}; enum OrderStatus {orderBeingEstimated, orderEstimated,
orderBeingQuoted, orderBeingProcessed,
orderCompleted, orderNotValid, orderCancelled}; enum PackagingType {predefinedPackage, adhocPackage};
struct PackageSpecification {
Note: datatypes not provided by GM any
packageId; any
packagePrice; PackagingType
package; any
packageMedium;
92
Copyright © 2007 Open Geospatial Consortium, Inc. All Rights Reserved.
long packageSize;
}; enum PaymentMethod {credit, cash, purchaseOrder};
enum StatusUpdateType {manual, automatic}; struct UserInformation
{ wstring
userName; wstring
userAddress; wstring
phoneNumber; wstring
faxNumber; wstring
emailAddress; wstring
netAddress; PaymentMethod
paymentMethod; };
9.6.5 Capabilities
The capabilities in the General Model are designed with inheritance. In CORBA designing capabilities as interfaces can reflect this, but this is not useful. Capabilities like
messages see below have to be transferred over the network. Therefore, they are defined as either type definitions or structures.
typedef boolean AllSupportedRequest; typedef boolean Defaults;
struct DefaultTimeOut {
unsigned long long timeOut; used to be OGC_Basic::UomTime, but OGC_Basic is no longer
maintained as normative part of the Catalogue Services Specification };
typedef boolean Explain; struct Messaging
{ CharacterSet
characterSet; MessageFormat
messageFormat; };
struct Query {
wstring version;
CharacterSet characterSet;
QueryLanguage queryLanguage;
}; struct Session
{ wstring
language; wstring
catalogSpecificationVersion; CharacterSet
characterSet; };
struct SoftwareInformation {
wstring vendor;
wstring SVversionNumber;
wstring IFversionNumber;
}; typedef sequenceCollectionName SupportedCollections;
Copyright © 2007 Open Geospatial Consortium, Inc. All Rights Reserved.
93
To be able to make a sequence of different capabilities, a union Capability is created, encompassing all derived capabilities.
A union normally has a discriminator. This can be a long value, but this is generally not preferred because you have to remember the value indicating the intended capability.
Therefore, an enumeration of capabilities is included in the CORBA profile.
enum CapabilityType { ctAllSupportedRequest, ctDefaults, ctDefaultTimeOut, ctExplain,
ctMessaging, ctQuery, ctSession, ctSoftwareInformation, ctSupportedCollections
}; union Capability
switchCapabilityType {
case ctAllSupportedRequest : AllSupportedRequest allSupportedRequest;
case ctDefaults : Defaults defaults; case ctDefaultTimeOut : DefaultTimeOut timeOut;
case ctExplain : Explain explain; case ctMessaging : Messaging messaging;
case ctQuery : Query query; case ctSession : Session session;
case ctSoftwareInformation : SoftwareInformation softwareInformation;
case ctSupportedCollections : SupportedCollections supportedCollections;
};
9.6.6 General messages