Acknowledgement Payload Message element To and From

7.5 Manifest

The Manifest describes the contents of the Resource, which could be a payload of the message. This is done by using the Reference object. It makes it possible for recipients to check the content integrity and to determine whether the contents can be processed before their opening. It also helps with payload extraction. OMF requires a Manifest if there is any data associated with the message directly or indirectly. The most obvious data is found in the payload direct case, but a Manifest is also required if the message references data elsewhere through an Internet address indirect case. The Manifest shall be encoded in XML according to the OMF schema detailed below in section 9.

7.6 Reference

The key component in the Manifest is the Reference. If the Manifest exist, it must have a least one Reference. Reference may have zero or more schema associated from which the payload is defined. It could also provide a text description of the payload. The Reference refers to a URI that could the URI of a payload in the message or a data resource on the web. This class needs to be extensible to accommodate future needs. More details are given in section 9.

7.7 Schema

The schema provides the data model of a payload. The model can be described using a DTD, XML schema, RDF schema, DAML, Entity-Relation schema. The schema object gives the internet address where it can be accessed and the version of the schema if needed.

7.8 Error

ErrorList contains a list of Error messages indicate that an error occurred in a previous message. The error is a standard message sent by the OGC message service. Need more elaboration.

7.9 Acknowledgement

Acknowledgement is a standard message sent by an OGC messaging service and refers to a message by using its identifier MessageID.

7.10 Payload

If a message has a payload container it must have at least one or more payload items. Each payload item must be delineated in some way and must be uniquely identified within the message’s context. 18 © OGC 2003 – All rights reserved The OMF Specification makes no provision, nor limits in any way, the structure or content of application payloads. Payloads may be simple-plain-text objects or complex nested multipart objects. The specification of the structure and composition of payload objects is the prerogative of the organization defining the OGC service processes or information exchange using the OMF. TO DO: Need to elaborate on chunked payload © OGC 2003 – All rights reserved 19 8 Header Element Details

8.1 Message element

8.2 Header element overview

The fragment below defines the normative Header XML Schema. Normative Header XML schema definition: 20 © OGC 2003 – All rights reserved element name = Header annotation documentation Encapsulates the OMF header information. documentation annotation complexType sequence element ref = omf:From minOccurs = element ref = omf:To minOccurs = element ref = omf:MessageId minOccurs = element ref = omf:RefToMessageId minOccurs = element ref = omf:Timestamp minOccurs = element ref = omf:ExpiryTime minOccurs = element ref = omf:Action element ref = omf:Manifest minOccurs = choice element ref = omf:ErrorList minOccurs = element ref = omf:Acknowledgment minOccurs = element ref = omf:StatusRequest minOccurs = element ref = omf:StatusResponse minOccurs = any namespace = other processContents = lax minOccurs = maxOccurs = unbounded choice any namespace = other processContents = lax minOccurs = maxOccurs = unbounded sequence attributeGroup ref = omf:headerExtension.grp complexType element

8.2.1 other element

Many Header element children have a other element that allows for foreign namespace-qualified element content to be added for extensibility. The extension element must be namespace-qualified in accordance with XMLNS [XMLNS] and must belong to a foreign namespace. A foreign namespace is one that is NOT http:www.opengis.netschemaomf.xsd. The wildcard elements are provided wherever extensions might be required for private or future extension of the framework. Implementations of the message handler may ignore the namespace-qualified element and its content. The Header can be used as is, in a message or could be transformed to a specific messaging protocol such as ebXML by using a semantic mapping or a XSLT transformation. The mechanisms to publish the target messaging framework and transform the normative message to this target messaging framework are out of scope in this document. The following diagram illustrates the Header element. © OGC 2003 – All rights reserved 21

8.2.2 id attribute

Many elements of the header have an id attribute which is an XML ID that may be added to provide for the ability to uniquely identify the element within the header. This may be used when applying a digital signature to the Message as individual message extension elements can be targeted for inclusion or exclusion by specifying a URI of idvalue in the Reference element.

8.2.3 version attribute

The Header has a required version attribute indicating the version of the OGC Header Specification. Its purpose is to provide future versioning capabilities. For conformance to this specification, all of the version attributes on any extension elements defined in this specification must have a value of 1.0. In the future, an OGC message may have a version value higher than 1.0. An implementation conforming to this specification that 22 © OGC 2003 – All rights reserved receives a message with a version higher than 1.0 may process the message if it recognizes the version identified and is capable of processing it. It must respond with an error details TBD if it does not recognize the identified version. The following sections detail the Header’s children.

8.3 To and From

To and From indicates the sender and receiver of the message. The OGC framework makes these elements optional in the case of synchronous calls such as in HTTP Get. In the case of asynchronous communication, the To and From are required in order to send back the response at a later time. Both To and From are of type Actor and are defined as follows: The Actor is defined by the following XML schema fragment: © OGC 2003 – All rights reserved 23 Normative PartyId XML schema definition: element name =Actor type =omf:ActorType complexType name = ActorType sequence element ref = omf:PartyId maxOccurs = unbounded element name = Role type = string minOccurs = sequence complexType PartyId is defined as follows: Normative PartyId XML schema definition: element name =PartyId type =omf:IdentifierType complexType name = IdentifierType simpleContent extension base = omf:non-empty-string attribute name = type type = omf:non-empty-string extension simpleContent complexType The actor type contains multiple PartyId elements; all members of the list must identify the same Party. Unless a single type value refers to multiple identification systems, the value of any given type attribute must be unique within the list of PartyId elements contained within either the From or To element. This mechanism is particularly useful when transport of a message between the parties may involve multiple intermediaries. More generally, the From Party should provide identification in all domains it knows in support of intermediaries and destinations that may give preference to particular identification systems. The Actor type contains zero or one Role child element that, if present, shall immediately follow the last PartyId child element. It is recommended to use URI to define the role. The definition of the role is out of scope in this specification. It could be done for example in a Collaboration Protocol Agreement CPA or in the capabilities of the service. Example: The following fragment demonstrates usage of the From and To elements. 24 © OGC 2003 – All rights reserved omf:From omf:PartyId omf:type=urn:duns123456789omf:PartyId omf:PartyId omf:type=SCACRDWYomf:PartyId omf:Rolehttp:rosettanet.orgrolesBuyeromf:Role omf:From omf:To omf:PartyIdmailto:joeexample.comomf:PartyId omf:Rolehttp:rosettanet.orgrolesSelleromf:Role omf:To

8.4 MessageId element