You are on page 1of 150

SERVICE SUPPORT

ENVIRONMENT


INTERFACE CONTROL
DOCUMENT







Name Date Signature
Prepared by: SSE Team 26/07/11
Verified by: C. Bawin 26/07/11
Approved by: Y. Coene


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: ii



ICD.DOC



Classification Category


1 General public 1 Configured documents

2 Industry Programme 2 Non-configured documents submitted
for approval


3 Restricted dispatching programme 3 Documents submitted for acceptance

4 Confidential Programme 4 Other documents

YES Contract n :

Contractual : Contract issuer : ESRIN

NO Work package n :


Number of pages : 150 Number of appendices : 1
















Word processing Host computer Internal reference

Name : Word for windows Name : PC ICD.DOC

Issue : 97



SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: iii



ICD.DOC


INTERNAL DISTRIBUTION
Name Dept. Copies For
Approval Acceptation Information
Y. Coene 1
C. Bawin 1
M. Gilles 1
T.H. Nguyen 1
R. Smillie 1


EXTERNAL DISTRIBUTION
Name Company Copies For
Approval Acceptation Information
P.G. Marchetti ESRIN 1
S. Smolders GIM 1



















SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: iv



ICD.DOC

DOCUMENT CHANGE LOG

Issue Issue date Pages affected Relevant information
1.5draft 29/09/06 All pages. Adaptation of regions schema.
Use of specific service namespace.
Reference to version 1.4 schema.
Support for GML results returned as a
string.

1.5 26/02/07 Sections 3.2.3.9, 3.2.3.10,
4.4.1
Add information for the display file result
and embedded result through the service
stylesheet.

1.6 draft 10/10/07 All Add information on GML3.1.1 schemas.
Area of interest can be based on GM3.1.1.
A different area of interest can be associated
to each operation.
Relax conditions for Service Result shape
files
Reference schemas at
http://services.eoportal.org/schemas/1.6
Add new service result types.
Update service schema structure:
sse_basic.xsd replaces sse_common.xsd.

1.6 29/02/2008 All Various corrections.
1.7 15/10/2009/ 3.2.3.8
4.4
Add information about new order statuses.
Add information about new XSL templates
confirmRFQInput and confirmOrderInput
1.8 29/07/2010 5.1.4 Add javascript function
getMinNumberOfSelectedItems().
1.9 24/06/2011 4.4.4
5.3
Correct example stylesheet
Add example of a synchronous order service
1.10 26/07/2011 4.4.4 Correct comments in the stylesheet example


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 1



ICD.DOC

TABLE OF CONTENTS
1. INTRODUCTION ............................................................................................................................... 5
1.1 Purpose of this Document ......................................................................................................... 5
1.2 Scope ........................................................................................................................................ 5
1.3 Structure and Organisation of this Document ............................................................................ 5
1.4 Reference Documents ............................................................................................................... 6
1.5 Acronyms ................................................................................................................................. 8
2. SYSTEM OVERVIEW ...................................................................................................................... 10
2.1 Service Integration Overview .................................................................................................. 10
2.2 Communication Architecture .................................................................................................. 13
2.3 Communication Protocols ....................................................................................................... 13
2.4 Service Interaction Model ....................................................................................................... 14
2.4.1 SSE Operations ...................................................................................................... 14
2.4.2 Interaction Model ................................................................................................... 14
3. REMOTE SERVICE INTERFACES...................................................................................................... 17
3.1 Service Provider Interface Architecture ................................................................................... 17
3.2 General Principles ................................................................................................................... 17
3.2.1 Message Format ..................................................................................................... 18
3.2.2 XML Payload Conventions .................................................................................... 19
3.2.2.1 AOI Schema ...................................................................................................... 21
3.2.2.2 OpenGIS GML Schema ..................................................................................... 22
3.2.2.3 ESA EOLI Schema ............................................................................................ 23
3.2.2.4 ESRIN OI Schema ............................................................................................. 26
3.2.2.5 GML Service Result Schema ............................................................................. 26
3.2.2.6 Regions Definition Schema ................................................................................ 28
3.2.3 SSE Schema ........................................................................................................... 28
3.2.3.1 processRFQ Operation ....................................................................................... 28
3.2.3.2 sendRFQ Operation ........................................................................................... 31


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 2



ICD.DOC

3.2.3.3 returnRFQResult Operation ............................................................................... 32
3.2.3.4 processOrder Operation ..................................................................................... 32
3.2.3.5 sendOrder Operation .......................................................................................... 34
3.2.3.6 returnOrderResult Operation .............................................................................. 36
3.2.3.7 commonInput Element ....................................................................................... 36
3.2.3.8 statusInfo Element ............................................................................................. 36
3.2.3.9 viewFileResult Element ..................................................................................... 39
3.2.3.9.1 GML FileType .......................................................................................... 40
3.2.3.9.2 SHAPE FileType ...................................................................................... 40
3.2.3.9.3 WMSURL FileType ................................................................................. 40
3.2.3.9.4 WMCFileURL FileType ........................................................................... 41
3.2.3.9.5 WFSURL FileType ................................................................................... 41
3.2.3.9.6 WCSURL File Type ................................................................................. 41
3.2.3.9.7 CoverageFileURL File Type ..................................................................... 42
3.2.3.9.8 SOSURL File Type................................................................................... 42
3.2.3.10 viewEmbeddedResult Element ........................................................................... 42
3.2.3.10.1 GML Embedded Type .............................................................................. 43
3.2.3.10.2 WMC Embedded Type ............................................................................. 43
3.2.3.10.3 KML Embedded Type .............................................................................. 43
3.2.3.11 searchOutput Element ........................................................................................ 43
3.2.3.12 Authorization Messages ..................................................................................... 44
3.2.4 Service Template Schema ....................................................................................... 46
4. SERVICE GRAPHICAL INTERFACES................................................................................................. 52
4.1 Generalities ............................................................................................................................. 52
4.2 SSE Common Stylesheet ......................................................................................................... 53
4.3 Catalogue Stylesheet ............................................................................................................... 53
4.4 Service Stylesheet ................................................................................................................... 54
4.4.1 Service Stylesheet Skeleton .................................................................................... 55
4.4.2 ATSR Order Example ............................................................................................ 60
4.4.2.1 SendOrderInput ................................................................................................. 60
4.4.2.2 SendOrderInput Mode XML .............................................................................. 64
4.4.2.3 GetOrderOutput ................................................................................................. 66
4.4.3 RFQ Remarks ......................................................................................................... 70


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 3



ICD.DOC

4.4.4 Search Remarks ...................................................................................................... 70
5. SERVICE INTERFACE EXAMPLES .................................................................................................... 76
5.1 Asynchronous Order Example ................................................................................................. 76
5.1.1 Service WSDL File ................................................................................................ 76
5.1.2 Service Schema File ............................................................................................... 77
5.1.3 SOAP Messages ..................................................................................................... 82
5.1.3.1 sendOrder SOAP HTTP Request ....................................................................... 82
5.1.3.2 sendOrder SOAP HTTP Response ..................................................................... 82
5.1.3.3 returnOrderResult SOAP HTTP Request ........................................................... 82
5.1.3.4 returnOrderResult SOAP HTTP Response ......................................................... 83
5.1.4 Service Stylesheet .................................................................................................. 83
5.2 Asynchronous RFQ Example .................................................................................................. 89
5.3 Synchronous Order Example ................................................................................................... 90
5.3.1 Service WSDL File ................................................................................................ 90
5.3.2 Service Schema File ............................................................................................... 91
5.3.3 SOAP Messages ..................................................................................................... 92
5.3.3.1 ProcessOrder SOAP HTTP Request ................................................................... 92
5.3.3.2 ProcessOrder SOAP HTTP Response ................................................................ 93
5.3.4 Service Stylesheet .................................................................................................. 93
5.4 Synchronous RFQ Example .................................................................................................... 96
6. INTERFACE WITH SERVICE REPOSITORY ....................................................................................... 97
7. ANNEX A : SCHEMA FILES ............................................................................................................ 98
7.1 sse_basic.xsd .......................................................................................................................... 98
7.2 AOI Features Schema and Example ...................................................................................... 102
7.2.1 AOI Features GML212 application schema .......................................................... 102
7.2.1.1 GML212 aoifeatures.xsd .................................................................................. 102
7.2.1.2 GML212 AOI Features Example ..................................................................... 102
7.2.2 AOI Features GML311 application schema .......................................................... 104
7.2.2.1 GML311 aoifeatures.xsd .................................................................................. 104
7.2.2.2 GML311 AOI Features example ...................................................................... 105


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 4



ICD.DOC

7.3 GML Service Result Schema and Example ........................................................................... 106
7.3.1 Service Result Features GML212 application schema ........................................... 106
7.3.1.1 GML212 serviceresult.xsd ............................................................................... 106
7.3.1.2 GML 212 Service Result Example ................................................................... 107
7.3.2 Service Result Features GML 311 application schema .......................................... 108
7.3.2.1 GML311 Serviceresult.xsd............................................................................... 109
7.3.2.2 GML311 Serviceresult features example .......................................................... 110
7.4 eoli.xsd ................................................................................................................................. 112
7.5 oi.xsd .................................................................................................................................... 113
7.6 Regions Definition Schema and Example .............................................................................. 135
7.6.1 Regions Example ................................................................................................. 138
7.7 OGC Styled Layer Descriptor Language example ................................................................. 139
7.8 sse_eoli Schema .................................................................................................................... 142


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 5



ICD.DOC

1. INTRODUCTION
1.1 Purpose of this Document
This document is the Interface Control Document (ICD) for the Service Support Environment
(SSE).
1.2 Scope
The Service Support Environment (SSE) provides an enabling and open environment for the
integration of Earth Observation and GIS services.
This document defines the external interfaces of the SSE system, in particular the interfaces
between the SSE Portal and remote services hosted by SSE Service Providers.
The description of the SSE user interface is beyond the scope of the ICD document. It is described
in the SSE User Manual.
The operational SSE server deployed at ESRIN can be accessed at services.eoportal.org. A SSE
test server is available for service integration tests at services-test.eoportal.org.
1.3 Structure and Organisation of this Document
The general approach of this document is a top down approach to present the SSE Interfaces.
The chapter 1 is the usual introduction.
The chapter 2 provides an overview of the different steps to integrate a Service into SSE. It also
introduces the general principles for the communication mechanism between the SSE Portal and
the SSE Services.
The chapter 3 describes in more details the messages exchanged between the SSE Portal and the
SSE Services. It introduces the external XML schemas that are imported in the SSE schema. It
also describes the SSE XML elements and XML types that can be extended for the Service
specific needs.
The chapter 4 explains how to write the SSE stylesheet in order to generate the Service specific
user interface and also to generate the XML messages which must be valid according to the
schemas defined in chapter 3.
The chapter 5 illustrates the previous chapters by giving examples of Service WSDL file, Service
schema, SOAP messages and stylesheet.
The chapter 6 introduces the SSE Portal provided interface in order to help the integration of SSE
Services during the workflow design.


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 6



ICD.DOC

The annex A provides the listing of the XML schemas introduced in chapter 3.
1.4 Reference Documents
The following list of reference documents is for general guidance only and does not need to be
applied, but they should be given precedence over other documents covering similar topics.
[RD0] Service Support Environment Architecture, Model, and Standards,
White Paper Document, December 2004,
http://earth.esa.int/rtd/Documents/SSE_Whitepaper_2.pdf

[RD1] EARTHNET Online XML Front-End Interface Control Document
EOLI-XML-006-ICD, Issue 2, Revision 4
http://earth.esa.int/XML/eoli/documents

[RD2] Specification: Web Services Addressing (WS-Addressing)
http://www-106.ibm.com/developerworks/webservices/library/ws-add/

[RD3] Simple Object Access Protocol (SOAP) 1.1, W3C Note 08 May 2000,
http://www.w3.org/TR/2000/NOTE-SOAP-20000508/

[RD4] Hypertext Transfer Protocol -- HTTP/1.1, RFC 2616, U.C. Irvine, DEC W3C/MIT,
DEC, W3C/MIT, W3C/MIT, January 1997, http://www.normos.org/ietf/rfc/rfc2616.txt

[RD5] Web Services Description Language (WSDL) 1.1, W3C Note 15 March 2001,
http://www.w3.org/TR/wsdl

[RD6] A Busy Developer's Guide to SOAP 1.1 Interop, http://www.soapware.org/bdg,
04/02/2001.

[RD7] XML Schema, http://www.w3.org/TR/xmlschema-0/, W3C Recommendation, 2 May
2001.

[RD8] Web Services Inspection Language (WS-Inspection),
http://www.ibm.com/developerworks/library/ws-wsilspec.html, Issue 1.0, November
2001.

[RD9] Extensible Markup Language (XML) 1.0, W3C Recommendation 10 February 1998,
www.w3.org/TR/REC-xml.

[RD10] XSL Transformations (XSLT) Version 1.0, W3C Recommendation 16 November
1999, www.w3.org/TR/xslt.

[RD11] Geography Markup Language (GML) 2.1.2, OpenGIS Implementation Specification,
17 September 2002, OGC Document Number 02-069,
http://www.opengis.org/docs/01-029.pdf.



SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 7



ICD.DOC

[RD12] ISO/TC 211 N 1024, Geographic information/Geomatics, CD 19115 Geographic
information - Metadata, ISO/TC 211/WG 3/Editing committee 19115, 19/12/2000.

[RD13] Recommended Definition Data for Coordinate Reference Systems and Coordinate
Transformations, OpenGIS Project Document 01-014-r3, OpenGIS Recommendation
Paper, 5/4/2001, http://www.opengis.org/techno/specs/01-014r3.pdf

[RD14] ESRIN ordering schema oi.xsd v1.10: Centralised Users & Orders Management
System Ordering XML Interface Control Document, MEH-UO-006-ICD, Issue 1.2,
06/02/02.

[RD15] SSE Toolbox Background, Description and Download
http://toolbox.pisa.intecs.it/


[RD17] WS-I Basic Profile Version 1.0a Final Specification, Web Services Interoperability
Organization, 08 August 2003, http://www.ws-i.org/Profiles/Basic/2003-
08/BasicProfile-1.0a.htm.

[RD18] WS-I Usage Scenarios Final Specification Version 1.01, Web Services Interoperability
Organization, 09 December 2003,
http://wsi.org/SampleApplications/SupplyChainManagement/2003-
12/UsageScenarios-1.01.pdf

[RD19] Internet Assigned Number Authority, Port Numbers,
http://www.iana.org/assignments/port-numbers superseding
http://www.ietf.org/rfc/rfc1700.txt.

[RD20] Google Earth KML Documentation
http://www.keyhole.com/kml/kml_doc.html
http://earth.google.com

[RD21] OASIS UDDI Specifications
http://www.oasis-open.org/committees/uddi-spec/doc/tcspecs.htm

[RD22] OpenGIS Geography Markup Language (GML) Encoding Specification 3.1.1, , 2004-
02-07, OGC Document Number 03-105r1, http://www.opengis.org/docs/01-029.pdf.

[RD23] OpenGIS Web Map Service Specification 1.1.0, OGC Document Number 01-047r2,
2001-06-21
[RD24] OpenGIS Web Map Service Specification 1.1.1, OGC Document Number 01-068r3,
2002-01-016
[RD25] OpenGIS Web Map Context Specification 1.0.0, OGC Document Number 03-036r2,
2003-06-10
[RD26] OpenGIS Web Feature Service Specification 1.0.0, OGC Document Number 02-058r2,
2002-05-17


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 8



ICD.DOC

[RD27] OpenGIS Web Feature Service Specification 1.1.0, OGC Document Number 04-094r2,
2005-03-05
[RD28] OpenGIS GML SimpleFeatures Profile, OGC Document Number 06-049, 2006-04-25

[RD29] OpenGIS Styled Layer Descriptor Language (SLD), OGC Document Number 02-
070,Version 1.0.0, 2006-04-25
[RD30] EO Application Profile for CSW 2.0, OGC 06-079r2, version 0.1.8, 25/08/2006.
[RD31] Catalogue Services Specification 2.0 Extension Package for ebRIM (ISO/TS 15000-3)
Application Profile, OGC 06-131, version 0.1.7, 11/12/2007.
[RD32] Ordering Services for Earth Observation Products, version 1.0.4 Draft, 25/08/2006.



1.5 Acronyms
ADD Architectural Design Document
AOI Area of Interest
BPEL Business Process Execution Language
CORBA Common Object Request Broker Architecture
COTS Commercial off the Shelf tool
DTD Document Type Definition
EO Earth Observation
FR Final Review
FTP File Transfer Protocol
GML Geography Markup Language
HTML Hypertext Markup Language
HTTP Hypertext Transfer Protocol
ICD Interface Control Document
I/F Interface
JVM Java Virtual Machine
KO Kick-Off
MASS Multi-Application Support Service System renamed to SSE
QoS Quality of Service
RFQ Request for Quotation
RMI Remote Method Invocation
RPC Remote Procedure Call
SPB SPACEBEL
SLD Styled Layer Descriptor
SOAP Simple Object Access Protocol
SPMP Software Project Management Plan
SQAP Software Quality Assurance Plan
SRD System Requirements Document
SSE Service Support Environment
TN Technical Note


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 9



ICD.DOC

UDDI Universal Description, Discovery and Integration Service
UML Unified Modelling Language
URD User Requirements Document
URL Uniform Resource Locator
WCS Web Coverage Service
WFS Web Feature Service
WMS Web Map Service
WSDL Web Services Description Language
WS-I Web Services Interoperability
WSIL Web Services Inspection Language
XML eXtensible Markup Language
XSL eXtensible Style Language


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 10



ICD.DOC

2. SYSTEM OVERVIEW
There are two main ways to integrate a service on the SSE.
The SSE usual way assumes that the communication between the SSE and your service is based on
the SSE based messages structures as defined in this ICD. In this case, you will define the messages
starting from a SSE template that you will extend to fullfill the specific information needed and
returned by your service. The main steps for integrating a service on the SSE in this case are
described in the next section (2.1).
The second way assumes that your service is compliant with some predefined protocols e.g. a
catalogue compliant with EO Application profile catalogue[RD31]. That means that the operations
and messages are fixed except for some optional fields. In this case the integration work on the SSE
levels is simplified because predefined schemas, stylesheet and workflows are reused. The service
registration can be used to define/select the available options and then automatically generate the
schemas, workflows and stylesheets.
The following interfaces are currently supported by the registration wizard:
Catalogue EOLI-XML version 2.4
Catalogue CSW 2.0 EO Application Profile for EO Products (OGC 06-079r2)
Catalogue CSW 2.0 EO Extension package for ebRIM Application Profile (OGC 06-131r2
v0.1.7
Catalogue CSW 2.0.1 ISO Metadata Application Profile (OGC 04-038r4 v1.0)
OGC Ordering Service for EO Products OGC 06-141 v1.0.4

2.1 Service Integration Overview
This section gives an overview of the different steps needed to integrate a service into the SSE.
1) Define the schema of the service to be integrated into the SSE
The Service Provider should define the XML schema for his service. To do that, he has to answer
to the following questions:
- Does my service need an Area Of Interest as input parameter?
- Do my service results contain geographical information to be displayed on a Web Map viewer?
- Does my service need a Request For Quotation function in order to give some information on
price or on the different items available?


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 11



ICD.DOC

- What is the information needed by my service to be able to answer to an RFQ or an Order
request?
- What is the result of the RFQ and the Order?
- For each operation, is my system able to return immediately (synchronous communication) the
response and does it need some time to process the request (asynchronous communication)?
The answer to all these questions should be formalized in the XML service schema following the
conventions described in the current document (SSE ICD).
2) Select one of the integration mechanisms provided by the SSE Toolbox.
This step applies only to basic services integration.
The Service Provider should select the most appropriate integration mechanism among all
possibilities offered by the SSE Toolbox. This will depend on the current service implementation.
See the SSE Toolbox documentation [RD15] to answer to that question.
3) Integrate the Service with the Toolbox.
This step applies only to basic services integration.
According to the selected integration mechanism and the service schema:
- Install the SSE Toolbox
- Configure the SSE Toolbox to integrate the service
- If needed, implement the glue between the Toolbox and the service.
See the SSE Toolbox documentation [RD15] to answer to that question.
4) Become a Service Provider
If you are not yet a registered user, go on the SSE Portal:
- Register yourself on the SSE Portal
- Login on the SSE Portal
- Update your profile and apply to become a Service Provider
- After the SSE administrator e-mail confirmation, register your company on the SSE Portal.
- From now, you can follow the Monitor Orders link to login into the Workflows monitoring
tool using the same account than the one used to login on the SSE Portal.
For the details concerning these operations, see the online SSE user manual available following the
help link on the SSE site (chapters User tasks and Service Provider tasks in the tasks
section).


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 12



ICD.DOC

5) Design your service workflow.
This step only applies if your service is a chained service. If your service is a basic service, the
default workflows can be used (see next step).
- Download the BPEL Designer tool from the software section of the SSE Portal
http://services.eoportal.org/portal/DownloadUtil.jsp while logged in as Service Provider.
- Design your workflow. In the Designer tool you can connect your workflow to existing SSE
services by selecting these services WSDL files retrieved by the WS-Inspection (see chapter
6).
- Deploy you workflow on the SSE portal using the BPEL Console.
6) Register your service on the SSE Portal
In order to prepare your service registration on the SSE Portal, you should define:
- The WSDL file describing your service based on your service schema definition. The WSDL
file can be automatically generated by the SSE Toolbox. This applies only if your service is a
basic service.
- The style sheet that will allow to handle your service specific input and output parameters (as
defined in your service schema. A template for the service stylesheet is available on
services.eoportal.org/schemas/1.6/
When these files are ready, you can register your service on the SSE Portal. In the service
registration form, set the status of your service to testing so that only you can order the service.
If your service is a basic service, in the service registration page, select the SSE default ICD and
select the operations which implemented by your service (RFQ synchronous or asynchronous and
or order synchronous or asynchronous) at the first step of the service registration.
If your service is a chained service, select the SSE Custom ICD at the first step of the service
registration page, the workflows you have just deployed will appear in the workflow selection
lists. Select the workflows associated to each operations implemented by your service. Dont
forget to specify if the operations are synchronous or asynchronous.
7) Test your service on the SSE Portal
Go to the SSE service directory and check that you can retrieve your service and the associated
description.
Test the integration of your service with the SSE Portal by ordering your service following the
different steps if applicable: Search, RFQ, and Order.
8) Publish your service
When your service is operational, you can change the status of your service to enable on the
Service Update page.


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 13



ICD.DOC

2.2 Communication Architecture
The SSE architecture is described in the Service Support Environment Architecture, Model, and
Standards White Paper [RD0].
SSE has the following external interfaces:
On-line front-end interface Web Client - SSE Portal
On-line front-end interface Application Client - SSE server (e.g. workflow tools)
On-line back-end interface SSE Portal - Remote Service Providers' systems.
Off-line back-end interface SSE system - Legacy systems (e.g. Billing System)
Only the third type of interface is the subject of this ICD.
2.3 Communication Protocols
The SSE system is an open system that allows to integrate additional remote services during its
lifetime, without recompilation of redesign of the system. It is therefore impossible to list
exhaustively all messages in this ICD. However, we will describe the protocols SSE will support
and the rules that we impose for the definition of service specific messages. The definition of the
actual messages is treated as data by the SSE system, and messages are not hardwired into SSE.
The communication between SSE and the Service Providers systems is based on the SOAP over
HTTP/HTTPS protocol. FTP is also used by the Service Providers to provide access to the results
of the services. Service results can also be published using protocols such as WMS, WCS,
WFS(see sections 3.2.3.9).
In order to avoid specific firewall configuration, the standard ports according to [RD19] should be
used:
Protocol Port
http 80
https 443
ftp 21
Table 1: Standard Ports


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 14



ICD.DOC

2.4 Service Interaction Model
2.4.1 SSE Operations
In the most general case, a basic service exposes the following operations as part of its SOAP
interface. These operations are available from web pages on the SSE Portal, and from within
workflows:
Request for Quotation (RFQ): the Service Provider can define the content of an RFQ request
and RFQ result. Typically, it will return a list with possible matches, availability
information, or price information, Quicklook or sample image URL.
Order: The Service Provider can define the content of an Order request and Order result
In some cases, the complete order result information can be contained in the XML message.
In other cases, the result message will contain an FTP URL, with optional user name and
password to allow the user to download the actual result file.
To support the integration of catalogue services, two additional operations are supported:
The Search operation is used to perform a query on a remote catalogue. It returns the meta-
data available in the catalogue for images matching the search parameters such as area of
interest and time interval. The SSE Portal presents the search results in textual (list) format,
and graphically on a map.
The Present operation allows requesting detailed information about a single search result.
If all operations are defined for a given service, the operations will be triggered by the Portal with
the user interactions in the following sequence:
Present
RFQ Order Search

Figure 1: Operations Sequence
It is up to the Service Provider or Catalogue Owner to decide which of the previous operations
are needed for his service: in Figure 1, all boxes are optional. The only constraint is that a
Present will only be done on the result of a Search. For a simple service, the operations sequence
can be reduced to a single Order box.
2.4.2 Interaction Model
The SSE infrastructure does not make an assumption about the time needed by the remote
Service Provider to generate or return a service result. Some services may require days, others
such as data access may be almost instantaneous. The SSE Portal keeps results of orders (i.e. the


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 15



ICD.DOC

XML message) in a database until the user accesses the Portal again. The actual data in most
cases remains available a number of days on the Service Provider side for the user to download.
SSE supports two interaction models. The Service Provider decides at service registration time
which mechanism should be applied for each of the four operations: i.e. search, present, RFQ or
Order.
Asynchronous operations: this model is used when an operation may take too long for a user
to get the result immediately displayed in his browser. The result of the RFQ or Order is
stored in the SSE database and is available in the users order list when he logs in the next
time. This interaction model corresponds to the WS-I Basic Callback usage scenario
defined in [RD18]. The ws-addressing standard [RD2] is used to avoid content-based
correlation of the asynchronous communication.
SSE
Portal
Service
Provider
Req: Initial
Resp: Ack
Initial
Request
Req: Final
Resp: Ack
Final
Request

Figure 2: Asynchronous or Basic Callback Usage Scenario
Synchronous operations: this model can be used when the service will immediately return the
result. The SSE Portal then visualises the result on the Web page. E.g. a catalogue search
may take a number of seconds. SSE can thus display search results on the same page where
the user entered the search criteria. This interaction model corresponds to the WS-I
Synchronous Request/Response usage scenario defined in [RD18].
SSE
Portal
Service
Provider
Req
Resp
Request
Response

Figure 3: Synchronous or Request/Response Usage Scenario
The possible variations that will be supported are summarised in the table below:
Operation /
Model
Asynchronous (i.e.
response via order list)
Synchronous (i.e.
immediate response)
Search Not foreseen Yes
Present Not foreseen Yes


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 16



ICD.DOC

Request for
Quotation
Yes Yes
Order Yes Yes
Table 2: Interaction Model Variations
The naming conventions are explained hereafter.
For the Synchronous operations, the verb process is used as prefix for the different operations.
The process operations are invoked by the SSE Portal and are implemented by the Service
Provider System.
SSE
Portal
Service
Providers
system
processSearch
processPresent
processRFQ
processOrder

Figure 4: Synchronous Operations
For the Asynchronous operations, to send the request from the Portal to the Service Providers
system, the prefix send is used, while the name returnXxxResult is used as template of the
operation used by the Service Provider to return the result information when it becomes
available. All these operation names are listed in Figure 5.
The send operations are invoked by the SSE Portal and are implemented by the Service
Provider system. The return operations are invoked by the Service Provider system and are
implemented by the SSE Portal (see Figure 5).
SSE
Portal
Service
Providers
system
sendRFQ
sendOrder
returnRFQResult
returnOrderResult

Figure 5: Asynchronous Operations


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 17



ICD.DOC

3. REMOTE SERVICE INTERFACES
3.1 Service Provider Interface Architecture
To be able to connect to the SSE system, a Service Provider will have to install a web application
server supporting servlets and JSPs. This server is the interface between the SSE system and the
Service Providers existing systems that do the processing of the service.
SSE
Portal
T
O
M
C
A
T
S
O
A
P

L
I
B
.
Linux or Windows NT
JVM
WEB SERVER GATEWAY
S
O
A
P

B
a
c
k
e
n
d
Service Providers
existing system
TOOLBOX

Figure 6: Service Provider Interface Architecture

The Service Provider is responsible for the development of the software glue between the SOAP
interface and his existing system. This "glue" is called "SOAP backend" in Figure 6.
Tip
The SSE Toolbox can be used to simplify the implementation of the interface
between your existing service and the SSE Portal: it helps in this installation of the
needed environment and it also supports several mechanisms for the
implementation of the glue. Information on the SSE Toolbox can be found in
document [RD15].
3.2 General Principles
The Service Provider has to create a WSDL file that describes his SOAP interface and makes it
available to SSE. Some of the information contained in the WSDL file is fixed but the following
information has to be provided:
- selected operations according to the selected interaction model (see section 2.4)


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 18



ICD.DOC

- physical location of the services
- import of the service specific types (see section 3.2.4).
For the generation of the WSDL file, a Service Provider can use the SSE Toolbox.
The protocol stack used for communication between the SSE system and a remote Service
Provider is depicted in Figure 7.
WS-addressing is used in the case asynchronous communication in order to identify Web service
endpoints in the messages in a transport-neutral manner (see [RD2]).
WSDL
WS-Addressing
SOAP XML Schema
HTTP XML
TCP/IP
Figure 7: Protocol Layers
3.2.1 Message Format
The message format used in the communication between SSE and a remote Service Provider is
SOAP [RD3] over HTTP [RD4].
The message-based variant of SOAP will be used. This means that style="document" must be
used in the WSDL file as attribute of the <binding> element.
Each operation has an input SOAP message and a SOAP response message also called output
message in this document. Some of these messages are fixed such as the search and present
messages defined in the EOLI ICD (see chapter 3.2.2.3) and some can be extended by the
Service Provider according to the specific needs of his service.
The following tables contain for each message, the XML input and output message elements.
When the message is extensible, the tables provide the XML type to be extended. The SSE basic
XML definition types and element definitions are located in the sse_basic.xsd file. The types
which are extended by the Service Provider are defined in a Service specific schema file which is
imported in the service WSDL file.
This following table provides the information for the synchronous operations.
Operation
Name
Section Message
Direction
Element Name Type to be
extended
processSearch
Request
see 3.2.2.3
Input eoli:searchRequest None
Output eoli:response None
processPresent
Request
See 3.2.2.3
Input eoli:presentRequest None
Output eoli:response None
processRFQ see
Input processRFQInputMsg RFQInputType
Output processRFQOutputMsg RFQOutputType


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 19



ICD.DOC

processOrder see 3.2.3.4
Input processOrderInputMsg OrderInputType
Output processOrderOutputMsg OrderOutputType
Table 3: Synchronous Operations
The following table provides the information for the asynchronous operations:
Operation Name Section Message
Direction
Element Name Type to be
extended
sendRFQ see 3.2.3.2
Input sendRFQInputMsg RFQInputType
Output sendRFQOutputMsg None
returnRFQResult see 3.2.3.3
Input returnRFQResultInputMsg RFQOutputType
Output returnRFQResultOutputMsg None
sendOrder see 3.2.3.5
Input sendOrderResultInputMsg OrderInputType
Output sendOrderResultOutputMsg None
returnOrderResult see 3.2.3.6
Input returnOrderResultInputMsg OrderOutputType
Output returnOrderResultOutputMsg None
Table 4: Asynchronous Operations
3.2.2 XML Payload Conventions
In principle, any service can use its own XML vocabulary to define the procedure parameters and
return values in the XML payload inside a SOAP message. However, to facilitate comparison of
services, consistency and message translations, we recommend the use of a common XML-based
metadata language to express the XML payloads. The following XML schemas are used:
Schema Files Purpose Section
SSE Schema sse_basic.xsd Defines the types needed to support the
SSE operations.
see 7.1
AOI Schema aoifeatures.xsd Defines the types defined to support the
AOI definition.
see 7.2
Opengis GML
Schemas
GML base
schemas
Defines GML types. They are imported
by the AOI and Service Result schemas

ESRIN EOLI ICD eoli.xsd Defines the types needed for the interface
to the catalogues (Search, Present).
see 7.4
ESRIN Ordering oi.xsd Defines the ESRIN Ordering types see 7.5
GML Service
Result Schema
Serviceresult.xsd Defines the expected format to display
service results on a map. It is also based
on GML.
see 7.3
Regions Definition
Schema
regions.xsd Defines the expected format to import
regions definitions during the AOI
see 7.6


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 20



ICD.DOC

configuration of a service.
Table 5: Imported XML Schemas
The following picture shows the relationships between a hypothetical Service A WSDL file, its
specific types definitions and these various XML schemas. The SSE Schema is explained in
section3.2.3. The other XML schemas are introduced in the next sections. For a complete listing
of these schemas, see Annex A.
Tip
These schemas are also published at
http://services.eoportal.org/schemas/1.6/.

Compared to the previous version of the ICD, the structure of the schemas has been modified to
take into account the fact that the Service Provider can now select the version of GML he wants
to support as output of the WebMapViewer (AOI tool). To avoid confusion with the previous
version of the SSE ICD, it has been chosen to define a new SSE schema containing the basic
SSE types: the service schema should now import the sse_basic.xsd schema instead of
sse_common.xsd: the sse_common.xsd schema has been splitted into two schemas
sse_basic.xsd and sse_eoli.xsd. The SSE system is still compatible with the previous version
of the ICD that can be found at http://services.eoportal.org/schemas/1.4./ but new providers are
encouraged to developed new services based of this new schemas structure. The
sse_eoli.xsdschema has only to be imported in the service schema if the service supports the
search operation on a EOLI catalogue.


Figure 8: UML Architecture

service_a.wsdl service_a.xsd <<import>
>
Service
A
sse_basic.xsd
oi.xsd eoli.xsd aoifeatures.
xsd
<<
im
po
rt>
>
<<
im
po
rt>
>
<<
im
po
rt>
>
ESA

<<import>>
geometry.x
sd
feature.xsd xlinks.xsd
<<include>> <<import>>
OGC

W3C

<<
im
po
rt>
>
regions.xsd
<<
im
po
rt>
>
sse_eoli.xsd


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 21



ICD.DOC

3.2.2.1 AOI Schema
The purpose of the AOI schema is to define the GML application schema for the area of
interest features . This schema defines the format that is used by the WebMapViewer/AOI tool
to export the areas of interest selected by the user. This area of interest forms the geographical
input parameter of any SSE operation. Note that the Service provider can configure the AOI
tool during the Service Registration to include only in the area of interest format the
information its service requires by e.g. either the bounding box or to the full list of coordinates.
The service provider can during service registration also define the version of the GML that he
would like to use for his Services. Two different versions of the AOI Application schema have
been defined based on the GML2.1.2 and GML3.1.1 base schemas respectivily. Both schemas
allow the same type of features to be encoded but the newer schema use the newer GML3.1.1
constructs. In addition to polygonal features with linear interpolation between the vertices, the
GML3.1.1 schema also allows the definition of circular (curved) planar geometries.
For the listing of both these schemas see section 7.2. Note that in version 3.1.1, the first
character of the AreaOfInterest element is uppercase.

Figure 9: AOI GML 2.1.2 Top Level Schema Definition


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 22



ICD.DOC


Figure 10: AOI GML 3.1.1 Top Level Schema Definition


Tip
With new versions of GML, the number of imported schemas increases. In
order to avoid the upload of all these schemas (e.g. for the installation of the
service in the toolbox), it has been decided to publish a stub of the aoifeatures
schema. As it is a stub, it is independent of the GML version. This stub is
located at http://services.eoportal.org/schemas/1.6/aoifeatures.xsd.


3.2.2.2 OpenGIS GML Schema

The Geography Markup Language (GML) is an XML encoding for the transport and storage of
geographic information, including both the geometry and properties of geographic features.
This specification defines the mechanisms and syntax that GML uses to encode geographic
information in XML.
Its primary goal is to be an interchange format for geographical Simple Features as defined
within another OpenGIS Specification: A feature is an abstraction of a real world
phenomenon; it is a geographic feature if it is associated with a location relative to the Earth."
The state of a feature is defined by a set of properties, where each property can be thought of as
a {name, type, value} triple. The number of properties a feature may have, together with their
names and types, is determined by its feature type. A feature collection is a collection of
features that can itself be regarded as a feature. Consequently a feature collection has a feature
type and thus may have properties of its own, in addition to the features it contains. A feature is
a geographic feature if it contains geographic information (f.i. a geometry property).


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 23



ICD.DOC

Several version of the GML standard exist. Version 2.1.2 of the GML standard [RD11]was
released in 2002 and is still widely used within industry. The newer standards GML3.1.1
[RD22] also provide support for 3 Dimensional, non-linear, temporal and dynamic features as
well as definition of coordinate systems and default stylings.
The base GML Schemas defined by the OpenGeoSpatial Consortium only define the base
constructs: how to model and encode features, geomtries, times, . What they do not define is
what kind of geomtries and which attributes AOI or Service Result Feature have. This gets
defined within so called GML Application schemas of which the AOI schema referenced above
is one. For the detailed GML schemas we refer to the OGC Schema repository
http://schemas.opengis.net/. They are also available together with the aoifeatures.xsd schemas
at services.eoportal.org/schemas/1.6/gml.
3.2.2.3 ESA EOLI Schema
The EOLI schema defines the messages that are exchanged between the SSE and the Service
Provider server in case of Catalogue interaction through the Search and Present operations. The
Service Provider who wants to integrate a EOLI Catalogue in the SSE has first to read the
EOLI ICD [RD1]. Predefined EOLI workflows, stylesheet and schemas for the Search and the
Present operations are available on the SSE service registration page. These predefined
workflows make the conversion between the SSE portal XML messages defined in the
sse_eoli.xsd schema and the EOLI messages (see Figure 11). The Search EOLI workflow
makes AOI format conversion and generates the GML string for the footprints display on the
map.
Note that the default search workflow can receive a request from the portal that concern several
collections depending on the service stylesheet. In this case, this workflow will submit one
search request for each collection. All these collections MUST be implemented on Service
Provider side at the same SOAP location provided in the WSDL at the service registration time.

Figure 11: Default EOLI Workflows
The information returned by the EOLI Search and Present operations depends on the value of
the EOLI Presentation element. In order to standardize the result of information on the SSE,


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 24



ICD.DOC

The summary presentation is used in a Search request and the full presentation is used in
the present request. The browse image should be returned together with the full
presentation. The sse_eoli schema is described in section 7.8.
If there is a need from a single service to access catalogue on different locations, then a specific
workflow has to be deployed that knows the Catalogue location of each collections. If there is
no SSE operation like RFQ or Order, the registration wizard can be used to register such
catalogue service.
SSE makes the following assumptions on the EOLI interface:
The collectionId are unique across all the catalogues that are integrated as single
Catalogue service into SSE: the collectionId is used inside the catalogue workflow
to identify the associated Service Provider.
For the specific case of the ESA products service, the following collectionIds are
expected:



SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 25



ICD.DOC

MUIS
ESA.EECF.EOS_MOD_xS
ESA.EECF.ERS_ALT_FDC_xS-I
ESA.EECF.ERS_ALT_OPR_xS-I
ESA.EECF.ERS_ALT_SSH_xS-I
ESA.EECF.ERS_ALT_SSHQL_xS-I
ESA.EECF.ERS_ALT_TOP_xS-I
ESA.EECF.ERS_ATS_xF
ESA.EECF.ERS_GOM_L13_1S-I
ESA.EECF.ERS_GOM_L21_2S-I
ESA.EECF.ERS_MWS_MBT_xS-I
ESA.EECF.ERS_MWS_VLC_xS-I
ESA.EECF.ERS_ORB_EGM1_xS-I
ESA.EECF.ERS_ORB_EGM2_xS-I
ESA.EECF.ERS_ORB_PRC_xS-I
ESA.EECF.ERS_ORB_PRL_xS-I
ESA.EECF.ERS_SAR_xF
ESA.EECF.ERS_SWM_xS-I
ESA.EECF.ERS_WSC_xS-I
ESA.ERS.ATSR_UBT
ESA.EECF.IRS_MOS_xS
ESA.EECF.JERS_SAR_xF-I
ESA.EECF.JERS_VNR_xF
ESA.EECF.LANDSAT_MSS_xF
ESA.EECF.LANDSAT_RBV_xF-I
ESA.EECF.LANDSAT_TM__xF
ESA.EECF.NIMBUS_CZC_xS-I
ESA.EECF.NOAA_AVH_xS
ESA.EECF.PROBA_CHR_xS
ESA.EECF.SEASTAR_SWF_xS
ESA.ENVISAT.ENVISAT_ASA_GMI_1S
ESA.ENVISAT.ENVISAT_ASA_WVx_xC
ESA.ENVISAT.ENVISAT_ASA_IMx_xS
ESA.ENVISAT.ENVISAT_ASA_APH_0S
ESA.ENVISAT.ENVISAT_ASA_APV_0S
ESA.ENVISAT.ENVISAT_ASA_APC_0S
ESA.ENVISAT.ENVISAT_ASA_WSx_xS
ESA.ENVISAT.ENVISAT_MER_FR__xS
ESA.ENVISAT.ENVISAT_MER_RR__xS
ESA.ENVISAT.ENVISAT_ATS_xxx_xS
ESA.ENVISAT.ENVISAT_MIP_NL__xC
ESA.ENVISAT.ENVISAT_SCI_C
ESA.ENVISAT.ENVISAT_RA2_MWx_2C
ESA.ENVISAT.ENVISAT_ASA_WVx_xF
ESA.ENVISAT.ENVISAT_ASA_IMx_xF
ESA.ENVISAT.ENVISAT_ASA_APH_0F
ESA.ENVISAT.ENVISAT_ASA_APV_0F
ESA.ENVISAT.ENVISAT_ASA_APC_0F
ESA.ENVISAT.ENVISAT_ASA_WSx_xF
ESA.ENVISAT.ENVISAT_MER_FR__xF
ESA.ENVISAT.ENVISAT_MER_RR__xF
ESA.ENVISAT.ENVISAT_ATS_xxx_xF
ESA.ENVISAT.ENVISAT_MIP_NL__xF
SPOT Image SPOT.20M_COLOUR
SPOT.10M_N&B
SPOT.10M_COLOUR
SPOT.5M_N&B
SPOT.2_5M_N&B


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 26



ICD.DOC

SPOT.ALL
The resTitle uniquely identifies a product across all the catalogues that are
integrated as single service into the SSE: this resTitle is used to identify a product
returned by a Search request on the Web Map viewer.
The EOLI searchRequest element optionally includes inside the
satelliteDomainConditions element a set of generic conditions specified by a couple
of (AttributeId, AttributeValue). Within the context of SSE, the same search request
will be applied to several catalogues and collections. It is expected that if some
generic conditions are not implemented in one specific catalogue, this catalogue will
be able to return the records that match the search criteria without taking into account
these unknown generic conditions: it should ignore unknown conditions.
3.2.2.4 ESRIN OI Schema
ESRIN's standard ordering schema defines types that can be used to define the XML payload.
A selection of available types is listed below but other types may be of interest. Please refer to
section 7.5 for the complete documentation of these types:
UserInformation
CreditCardInfo
FtpDelivery
PriceType
ProcessingOptions
3.2.2.5 GML Service Result Schema
The GML Service Result Schema (serviceresult.xsd) defines the expected format of the GML
service result to be displayed by the SSE Web Map viewer. For the Search and Present
operations, the GML are generated by the SSE default EOLI workflows using as input the
EOLI response element. In order to be able to display this GML, the Web Map Viewer makes
the following additional assumptions:
Warning
The GML must provide the real location of the serviceresult.xsd file
which must be read accessible by the Web Map Viewer at the moment it
displays the GML. The serviceresult.xsd is stored at:
http://services.eoportal.org/schemas/1.6/gml/GMLxxx/serviceresult.xsd.
All GML service result should reference the serviceresult.xsd file at that
location.
The GML must be returned by one of the two following mechanisms: an HTTP URL to the
SSE Portal in the viewFileResult element (see 3.2.3.9 ) which must be accessible for read
from the SSE AOI Server or it can be inserted directly in the viewEmbeddedResult element
(see 3.2.3.10 ).


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 27



ICD.DOC

In order for the value of an attributexx element to be displayed in the Identify popup
window, it is assumed to be a string composed of the attribute name following by the ,
character followed by the attribute value. These attribute names and values are the values
displayed in the Identify popup window as respectivily parameter title and value (see next
figure). Attributes that do not need to be shown in the identify window can be provided as
normal inlinevalues (without the label).
The serviceresult.xsd schema is provided in Annex A, section 7.3. Two versions of this service
result schema exist which are derived from respectively the GML2.1.2 and GML3.1.1 base
schemas.
Figure 12: GML Viewer Identify Window

Note that within GML you can only encode the data itself not the symbology (colours, linestyles,
fills, ), with which these features are to be portrayed. In order to define such styling rules, service
providers can upload an OGC Styled Layer Descriptor document (SLD) [RD29] upon service
registration. The xsd schema of SLD can be found on the OGC schema repository
http://schemas.opengis.net/. An example SLD document applied on the SSE Service Result GML
Application schema can be found within section 7.7.


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 28



ICD.DOC

3.2.2.6 Regions Definition Schema
If needed, during his service registration on the SSE Portal, the service provider can import his
own set of geographical regions that endusers of his service can select from as during the
service ordering. The purpose of the regions definition schema is to define the format expected
by the AOI tool for these regions. For more information on this schema see section 7.6.
3.2.3 SSE Schema
This SSE schema defines the minimum information that must be part of the input and output
messages associated to the standard SSE WSDL operations described in section 3.2.1. An XML
element definition is associated to each message. These elements are described hereafter,
grouped by operations. In the figures of the next subsections, big borders highlight the XML
types that can be extended by the Service Provider to add the service specific information.
The elements presented in the next subsections have to be defined in the service schema and they
have to reference the mandatory element from the sse_basic.xsd schema.
The referenced SSE elements parts of sse_basic.xsd are described at the end of this section. The
searchOuput element depends on the remote catalogue ICD. Its definition is not part of the
sse_basic.xsd. In the case of the EOLI ICD, it is defined in the sse_eoli.xsd schema. The
sse_eoli.xsd schema contains the SSE elements definitions that allows to wrap the EOLI
messages into the SSE framework: eoli search ouput as other catalogue ouputs are part of the
order input (see Figure 15).
Element Name Section
commonInput 3.2.3.7
statusInfo 3.2.3.8
viewFileResult 3.2.3.9
viewEmbeddedResult 3.2.3.10
searchOuput 3.2.3.11
id 3.2.3.1
price 3.2.3.1
sendAuthorisationInputMsg 3.2.3.12
returnAuthorisationInputMsg 3.2.3.12

3.2.3.1 processRFQ Operation
The processRFQ operation allows to submit a Request For Quotation and receives the result
as the SOAP response (synchronous call) by opposition to the sendRFQ operation which allows
the Service Provider to differ the response (asynchronous call).
Input Message Element



SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 29



ICD.DOC


Figure 13: Process RFQ Input Message Element
The following comments apply to the RFQ Input Message:
- The orderId is generated automatically by the SSE system. It can be used to make the link
between an RFQ and an order. It also allows to trace requests between the SSE Portal and
the Service Provider.
- The areaOfInterest element will only be present if the AOI has been configured for this
service operation.
- The areaOfInterest is generated by the Web Map Viewer in case of GML2 and is
replaced by AreaOfInterest in case of GML3 (see section 3.2.2.1).
- If some user information is needed, it should be part of the originPart/userInformation
element (see oi schema in section 7.5). The user information which is part of the SSE user
profile can be added with the service stylesheet (see section 4.4.2.2).
- In order to add some service specific information in the RFQ request, the RFQInputType
can be extended to add the needed information.
- If a Search operation is defined for the service, the last search input and the user selected
search output item(s) are provided in the message.
Output Message Element



SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 30



ICD.DOC


Figure 14: Process RFQ Output Message Element


A RFQ request can return several results. One or several of these results can be selected for
ordering. The type MultiRFQOutputType represents the result set of a RFQ request. The type
RFQOutputType represents one of these results. While the type MultiRFQOutputType is
fixed, the RFQOutputType can be redefined by extension as the other types RFQInputType in
order to add the service specific information.
The statusInfo indicates the status of the request. If the status is not successful, the rfqOuput
and viewFileResult will not be present.
The viewFileResult element will be present if the service returns the URL of one or several
files that need to be displayed with a specific viewer. If the viewFileResult element
represents a GML file, the id values returned in the rfqOutput elements must correspond to
the id values found in the GML file (see section 7.3). This allows the user to select the
rfqOutput on the GML viewer or in the textual part of the RFQ result. The id values should
be unique inside one processRFQOutputMsg element.
The SSE portal uses the refAmount element to compute the price of the order. It is assumed
that all amounts are given within the same currency.
The viewEmbeddedResult is similar to the viewFileResult. The difference is that the
information to be displayed is assumed to be a string part of the viewEmbeddedResult while in
the viewFileResult case, it is assumed to be the URL that points to the information to be
displayed.


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 31



ICD.DOC

3.2.3.2 sendRFQ Operation
The sendRFQ operation allows to submit a Request For Quotation in an asynchronous way.
The Service Provider system will return the RFQ result by executing the returnRFQResult
operation.
Input Message Element

Figure 15: Send RFQ Input Message Element

The sendRFQInputMsg is similar to the processRFQInputMsg.
Output Message Element

Figure 16: Send RFQ Output Message Element

The sendRFQOutputMsg contains the SSE status that indicates to SSE that the message has
been accepted or not by the Service Provider. If the status is successful, the SSE system is


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 32



ICD.DOC

going to wait for the result which is the returnRFQResultInputMsg message. If the status is
not successful, an error message is returned to the user.
3.2.3.3 returnRFQResult Operation
The returnRFQResult operation allows the Service Provider to return the RFQ result in an
asynchronous way.
Input Message Element

Figure 17: Return RFQ Input Message Element

The returnRFQResultInputMsg element is similar to the processRFQOutputMsg: it wraps the
same getRFQOuput element.
Output Message Element

Figure 18: Return RFQ Result Output Message Element
The returnRFQResultOutputMsg contains the SSE status that indicates to the Service
Provider that the returnRFQResultInputMsg message has been accepted or not by the SSE
System.
3.2.3.4 processOrder Operation
The processOrder operation allows to submit an Order request and receives the result of the
order as the SOAP response (synchronous call) by opposition to the sendOrder operation which
allows the Service Provider to differ the response (asynchronous call).
Input Message Element


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 33



ICD.DOC


Figure 19: Process Order Input Message Element
The following comments apply to the Order Input Message:
- The orderId is generated automatically by the SSE system. It can be used to make the link
between an RFQ and an Order. It also allows to trace requests between the SSE Portal and
the Service Provider.
- If a Search operation is defined for the service, the user selected search output items are
provided in the message.
- The sendRFQInput element is present if there was an RFQ before the Order. This has
been added to avoid that the Service Provider has to maintain the RFQ input information.
- The rfqOutput elements are present if there was an RFQ before the Order. These
rfqOutput elements are the ones which have been selected by the user during the Order
preparation. The user can select more than one RFQ output for the ordering. Only one order
is generated in this case.
- The sendRFQInput and rfqOuput elements are automatically added by the system: it
has not to be managed by the service stylesheet.
- The areaOfInterest element child of sendOrderInput will only be present if the Web Map
Viewer has been configured for this service operation.


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 34



ICD.DOC

- The areaOfInterest is generated in case of GML2 and is replaced by AreaOfInterest
in case of GML3 (see section 3.2.2.1).
- If some user information is needed, it will be part of the originPart/userInformation
element (see oi schema in section 7.5).
- In order to add some service specific information in the Order request, the
OrderInputType can be extended to add the needed information.
Output Message Element

Figure 20: Process Order Output Message Element

The OrderOutputType can be extended in order to add the service specific information. The
statusInfo indicates the status of the request. The viewFileResult elements will be present if
the service returns the URL of one or several files that need to be displayed with a specific
viewer. The viewEmbeddedResult element will be present if the service returns a String
which can be displayed with a specific viewer.
3.2.3.5 sendOrder Operation
The sendOrder operation allows to submit an Order in an asynchronous way. The SOAP
response contains a SSE status to confirm or not that the request has been accepted by the
Service Provider. The Service Provider system will return the Order result by executing the
returnOrderResult operation.
Input Message Element


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 35



ICD.DOC


Figure 21: Send Order Input Message Element

The sendOrderInputMsg message is similar to the processOrderInputMsg message.
Output Message Element

Figure 22: Send Order Output Message Element

The sendOrderOutputMsg contains the SSE status that indicates to SSE that the message has
been accepted or not by the Service Provider. If the status is successful, the SSE system is
going to wait for the result that is the returnOrderResultInputMsg message. If the status is not
successful, an error message is returned to the user.


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 36



ICD.DOC

3.2.3.6 returnOrderResult Operation
The returnOrderResult operation allows the Service Provider to return the Order result in an
asynchronous way.
Input Message Element

Figure 23: Return Order Input Message Element

The returnOrderResultInputMsg element is similar to the processOrderOutputMsg: it wraps
the same getOrderOuput element.
Output Message Element

Figure 24: Return Order Result Output Message Element
The returnOrderResultOutputMsg contains the SSE status that indicates to the Service
Provider that the returnOrderResultInputMsg message has been accepted or not by the SSE
System.
3.2.3.7 commonInput Element
The commonInput element represents the minimum information that is part of most input SSE
messages. It contains the orderId which allows to trace RFQ and Orders between SSE and the
Service Providers.

Figure 25: commonInput Element
3.2.3.8 statusInfo Element
An XML element is defined to contain status information on a service request execution. This
type contains two elements.


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 37



ICD.DOC

The element statusId defines an identifier (non negative integer) for the status of the request
execution. The following tables define identification codes that must be respected by all
services. If a Service provider needs to use codes that are not listed in the table, the codes must
be confirmed by the SSE administrator. The codes listed in Table 6 are applicable to non-
subscription services. And the codes listed in Table 7 are applicable to the subscription
services.

statusId Meaning
0 The request is excecuted successfully.
1 The service fails to execute the request. Errors are not defined.
2 The request is rejected by the Service.
3 The service is unable to execute the service.
4 The service aborts the request execution.
Table 6: Status Identifiers Applicable to Non-subscription Services

statusId Meaning Is subscription order
terminated
(last order result is
delivered)?
0 The request is excecuted successfully. Yes
1 The service fails to execute the
request. Errors are not defined.

Yes
2 The request is rejected by the Service.

Yes
3 The service is unable to execute the
service.

Yes
4 The service aborts the request
execution.

Yes
10 The request is excecuted successfully. No
20 The service fails to execute the
request. Errors are not defined.

No
30 The request is rejected by the Service.

No
40 The service is unable to execute the
service.

No
50 The service aborts the request
execution.

No
Table 7: Status Identifiers Applicable to Subscription Services


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 38



ICD.DOC

The following diagram depicts more details about the relations of request execution statuses
and the status identifiers.
Start
End
Preparing
Canceled
Confirming Processing
Completed
Failed
Rejected
Unable
to
execute
Aborted
Proceed
(Search)
Proceed
(Order/RFQ)
Confirm
Cancel Cancel
Proceed
(Order/RFQ)
States corresponding to the status of the
request execution at Service provider
system, as reported via the Status
Identifier values.
The labels inside the boxes represent the
service request execution state.
Arrow labels correspond to the buttons shown
on SSE HTML pages.
Internal states linked to Web page transitions

The statusMsg element contains a message explanation on the success or the error. That
message should be understandable by a SSE end user.

Figure 26: Request Status Information
The statusInfo element is part of most output messages of SSE Service operations.
If present, the statusMsg truncated to 1024 characters will be part of the e-mail sent to the User
when an Order result is received. It will also be displayed as a tooltip on the Order
Information page in case of subscription to indicate for example that no result has been
produced. See figure below.


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 39



ICD.DOC


Figure 27: OrderInformation

The SOAPFault mechanism shall not be used to communicate errors raised at the SSE, Toolbox
or Service level. This mechanism is only used for errors raised at the SOAP layer.
3.2.3.9 viewFileResult Element
There is a mechanism built in SSE to display result files specified with a URL. If an operation
result contains the optional viewFileResult element, SSE will automatically include in the
Portal associated result page the JavaScript code to display these files with a specific viewer.
This is done through the template mass:viewFileResult defined in the common stylesheet
(see 4.2). This template has to be applied explicitly in the service stylesheet in the case of the
order result (see 4.4.2.3). In the other cases (search result, rfq result), this tempate is
automatically applied by the common stylesheet.
The viewer will be selected according to the fileType.

Figure 28: View File Result Information

No data Found


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 40



ICD.DOC

3.2.3.9.1 GML FileType
A GML fileType value will have as effect to start the Map viewer. In this case, the file
specified by the fileURL must be valid according to the GML service result schema (see
sections 3.2.2.5, 7.3).
3.2.3.9.2 SHAPE FileType
A SHAPE fileType value will have also as affect to start the Map viewer. In this case, there
are constraints on the file name and on the file content.
File format and naming:
The shape file must be available as a zip file on an accessible ftp or HTTP server. The
file format must be Winzip/pkz compatible. The Zipfile must at least contain the files
X.shp, X.dbf, and X.shx where X is the name of the FeatureType. Other files (X.prj,
X.sbn, X.sbx, ..) are optional, but will be ignored. To limit upload time and server
storage space, it is advised not to include these two files.
File content:
The zip-file must contain a valid Shape format. Geometry is included in the shp-file.
Attributes are included in the dbf-file.
Attributes:
tooltip is optional
AttributeX with X a number ranging between 1 and 50 are optional
Other attributes are allowed but ignored.
To limit upload time and server storage space, we advice to remove all other
attributes. The Shape file can contain one or multiple features. The following
geometry types are allowed:
Point
PolyLine
Polygon (rectangle, polygon, circle, polygon with hole)
Multi-part polygon (feature with more than one separate polygon)
The coordinate system must be Latitude/Longitude WGS84 (EPSG:4326).
3.2.3.9.3 WMSURL FileType
A WMSURL filetype expects a valid OGC WMS getMap URL with all mandatory request
parameters encoded as KeyValue Pairs within the URL. Such a fileType value also launches the
Map Viewer. The map that is returned by such an URL is placed on top of the existing map
defined during service configuration. If the additional layer support transparancy, the layers
from the existing map will still be visible. The layer that is added in this way will not appear
within the map manager frame to the right of the map. The service and layer names will hence
not be visible to the user which may be useful in a commercial context. Basic WMS as defined
within WMS 1.1.0 [RD23] and WMS1.1.1 [RD24] are supported.
Note that any (Vendor Specific) Parameters that are added to the URL will be retained and
included in the calls that the webMapViewer makes to the Web Map Service.


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 41



ICD.DOC

3.2.3.9.4 WMCFileURL FileType
A WMCFileURL filetype expects an URL to an OGC compliant Web Map Context (WMC)
document file (V1.0.0 [RD25]). This Web Map Context replaces the existing WMC that was
configured during service registration. All services that are part of this Web Map Context are
accessible from the map manager frame and the user can hence add additional layers of these
services to his map. A WMC file can be generated by clicking the save button within the map
manager frame of the Web MapViewer.
3.2.3.9.5 WFSURL FileType
The WFSURL" file type allows the display and interrogation of Web Feature Service (WFS)
Results. It contains in fact more than just a URL. The syntax is that a ; separated string of
pipe-separated strings should be provided whereby each pipe-separated string consists of the
following elements:
an URL to the Web Feature Service (Version 1.0.0 [RD26] and Version 1.1.0 [RD27])
the layer name (FeatureType)
(optionally) a simple query criterion that selects the features that would like to return to your
users. These three parameters need to be provided within a pipe-separated string. The simple
query criterion can take the form of
propertyname1=value1&propertyname2=value2+propertyname3=value3
In which the property-names are the names of a specific property of the featureType that is
being queried and the "&" and "+" operator function as logical ANDs and ORs respectively.
When combining more than 1 criterion with the logical operators, "&" takes precedence over
"+". Apart from the = operator to compare the propertyname and the value also the <>, >
and < operators are supported.
Example: http://193.74.120.20:8080/oilspill/wfs?|cite:ships|shipname=Albatros
WFS Servers of Version 1.1.0 will reply with GML3.1. The WebMapViewer supports the
Level 0 Compliancy level subset that is defined within the Simple Features Profile of GML
[RD28].
3.2.3.9.6 WCSURL File Type
The WCSURL" file type allows the display of coverages that are supplied through OGCs
Web Coverage Service standard. The format of the string is that of the WCS base URL
followed by a set of parameters expressed as KeyValuePairs as within a GetCoverage WCS
HTTP GET request. Mandatory KeyValuePair are COVERAGE, to specify the coverage name,
and FORMAT, to specify the image format. The Bounding Box (BBOX) together with the
coordinate Reference System (CRS) may be included to limit the extent of the Coverage that is
to be shown. WIDTH/HEIGHT and RESX/RESY may be included in the URL but will not be
taken into account, as the WebMapViewer itself determines the required values. Other
parameters like TIME, interpolation method, or Vendor Specific Parameters may be included
and will be passed on to the Web Coverage Service within each request.



SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 42



ICD.DOC

3.2.3.9.7 CoverageFileURL File Type
The CoverageFileURL " file type allows the display of raster image files that are located on
HTTP or FTP servers. Specify the entire URL to the file. Note that the size of images that you
can visualise in this manner is limited to 1MB.
Default Supported format is GeoTIFF (8 bits no negative values and standard headers).
Depending on the specific SSE portal instance, other formats as GeoJP2, GMLJP2 and a range
of formats supported by the GDAL library may be supported. Check with the SSE Portal
administrator whether you can use these formats.

3.2.3.9.8 SOSURL File Type

The SOSURL allows to use Sensor Observation Services as Service Results within the SSE
Portal. SOS is a draft standard of the OGC that allows to access sensor measurements over
HTTP.
These Sensor Observation Services normally deliver their output in the OGC Observation and
Measurements (O&M) encoding (GML Application schema).
The SSE Portal currently supports the use of SOS with the following restrictions:
O&M: only CompactDiscreteTimeCoverage using the compact notation with simple
numeric value types.
Features Of Interest: only features (station locations) that are in line with Simple Feature
Profile of GML in its level 0 compliancy [RD28].

The implementation within the SSE is based on the draft schemas that were available at the
time of implementation of this functionality in the SSE (Version 0.0.31 - July 2007). A copy of
these schemas can be found on http://schemas.gim.be/cops/.

The SOSURL needs to contain a string consisting of the SOS BaseURL and the SOS
GetObservation Request. From this GetObservation request, the observation offerings will be
deduced. In addition, the filter specified in the GetObservation request will be superimposed on
observation filter defined by the end user from within the webMapViewer.
3.2.3.10 viewEmbeddedResult Element
There is a mechanism built in SSE to display specific results. If an operation result contains the
optional viewEmbeddedResult element, SSE will include in the Portal associated result page
the Javascript code to display the embedded result with a specific viewer. The viewer will be
selected according to the embeddedType value. This is done through the template
mass:viewEmbeddedResult defined in the common stylesheet (see 4.2). This template has
to be applied explicitly in the service stylesheet in the case of the order result (see 4.4.1) . In
the other cases (search result, rfq result), this tempate is automatically applied by the common
stylesheet. As the embeddedResult is passed as a parameter to a JavaScript function, it can
not contain special characters like CR, LF. If this is the case, the
<xsl:strip-space elements="*"/> can be added at the beginning of the service stylesheet to
suppress these characters.


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 43



ICD.DOC



Figure 29: viewEmbeddedResult Information

3.2.3.10.1 GML Embedded Type
A value GML for the embedded type will equally have as effect to start the Map viewer.
In this case the string itself must be valid according to the GML service result schema (see
sections 3.2.2.5, 7.3).
3.2.3.10.2 WMC Embedded Type
A WMC embedded type expects a valid OGC compliant Web Map Context (WMC)
document passed as string.
3.2.3.10.3 KML Embedded Type
A KML embedded type expects a valid KML compliant string. If provided as result of a
search result, the user will be able to display the KML string with GoogleEarth, see [RD20].
3.2.3.11 searchOutput Element
The searchOuput element is automatically added in the RFQ and in the Order input messages
by the system if the Search operation is part of the Service lifecycle. In this case, it has to be
referenced in the service schema. The search ouput element corresponds to the selected
products (metadata records) from a single collection. This element belongs to the schema built
on top of the catalogue schema: sse_eoli.xsd.



SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 44



ICD.DOC


Figure 30: sse_eoli:searchOuput

3.2.3.12 Authorization Messages

The following elements describe the interface between the SSE Portal and the BPEL workflow
engine for the authorization workflows (human workflows).


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 45



ICD.DOC


SSE
Portal
Autorisation
Workflows
mass:send
AuthorisationInputMsg
mass:return
AuthorisationInputMsg
SSE
Autorisation request
SSE
Portal
Autorisation
Workflows
mass:send
AuthorisationInputMsg
mass:return
AuthorisationInputMsg
SSE
Autorisation request

Figure 31: AuthorizationWorkflows Interface


Figure 32: Autorisation Input Message Element


Figure 33: Authorization Workflows Interface


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 46



ICD.DOC

3.2.4 Service Template Schema
In order to define your service schema, you have to customize a service template schema by:
replacing the proposed namespace by yours
adding your service specific types and elements
removing the definitions which are not used due to the operation model which is either
synchronous either asynchronous or because some operations are not used
import or not the sse_eoli definition and element references according to the fact that
your service includes or not a catalogue operation.
The following is the template schema which can also be downloaded at
http://services.eoportal.org/schemas/1.6/ServiceSchemaTemplate.xsd.

<xsd:schema xmlns="http://www.mycompanyname.com/ws/mynamespace"
xmlns:sse="http://www.esa.int/mass" xmlns:aoi="http://www.esa.int/xml/schemas/mass/aoifeatures"
xmlns:sse_eoli="http://www.esa.int/sse_eoli" xmlns:oi="http://www.esa.int/oi"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.mycompanyname.com/ws/mynamespace"
elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0">
<!--Import available types from the SSE schemas files path is relative to http://sseUrl/wsdl/-->
<xsd:import namespace="http://www.esa.int/mass"
schemaLocation="./sseSchemas/sse_basic.xsd"/>
<!--Import available types for the Area of interest-->
<!-- import version of GML you want to use for the area of interest. In this template by default, a
stub is used.
You can replace the stub by specifying the real aoifeatures referencing a specific GML features -->
<xsd:import namespace="http://www.esa.int/xml/schemas/mass/aoifeatures"
schemaLocation="./sseSchemas/aoifeatures.xsd"/>
<!--Import available types from ESA Ordering schema-->
<xsd:import namespace="http://www.esa.int/oi" schemaLocation="./sseSchemas/oi.xsd"/>
<!-- if another catalogue protocol is used than eoli, change the import here or remove if no
catalogue is used-->
<xsd:import namespace="http://www.esa.int/sse_eoli"
schemaLocation="./sseSchemas/sse_eoli.xsd"/>
<!--xml message elements exchanged between the client and services-->
<!-- according to your service lifecycle operations really used and the mode of each operation
synchronous or asynchronous
you can remove the elements which are not used -->
<!-- Synchronous RFQ -->
<xsd:element name="processRFQInputMsg">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="sse:commonInput"/>
<!--<xsd:element ref="sse:searchInput" minOccurs="0"/>-->


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 47



ICD.DOC

<xsd:element ref="sse_eoli:searchOutput" minOccurs="0"
maxOccurs="unbounded"/>
<xsd:element ref="sendRFQInput"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="processRFQOutputMsg">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="getRFQOutput"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- Asynchronous RFQ -->
<xsd:element name="sendRFQInputMsg">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="sse:commonInput"/>
<xsd:element ref="sse_eoli:searchOutput" minOccurs="0"
maxOccurs="unbounded"/>
<xsd:element ref="sendRFQInput"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="sendRFQOutputMsg">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="sse:statusInfo"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="returnRFQResultInputMsg">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="sse:commonInput"/>
<xsd:element ref="getRFQOutput"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="returnRFQResultOutputMsg">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="sse:statusInfo"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- Common RFQ -->
<xsd:element name="sendRFQInput" type="RFQInputType">
<xsd:annotation>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 48



ICD.DOC

<xsd:documentation>element that contains a service's RFQ input
parameters</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:complexType name="RFQInputType">
<xsd:annotation>
<xsd:documentation>service's rfq input parameters are in this type. The service-
specific info must be added at the end of this type definition.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element ref="oi:originPart" minOccurs="0"/>
<xsd:element ref="aoi:areaOfInterest" minOccurs="0"/>
<!-- assume GML2-->
<!--<xsd:element ref="aoi:AreaOfInterest" minOccurs="0"/> -->
<!-- if GML3-->
<!-- -->
<!-- Add you service specific RFQ Input information here -->
<!-- -->
</xsd:sequence>
</xsd:complexType>
<xsd:element name="getRFQOutput" type="MultiRFQOutputType">
<xsd:annotation>
<xsd:documentation>element contains a service's RFQ
results</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:complexType name="MultiRFQOutputType">
<xsd:annotation>
<xsd:documentation>service's RFQ can return one or more results which are the
"rfqOutput" elements. The viewFileResult or
the viewEmbeddedResult can be used to illustrate the differents "rfqOutput" elements. In some cases,
it can make sense to display each rfqOutput
on the map as a GML object.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element ref="sse:statusInfo"/>
<xsd:element ref="rfqOutput" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="sse:viewFileResult" minOccurs="0"
maxOccurs="unbounded"/>
<xsd:element ref="sse:viewEmbeddedResult" minOccurs="0"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="rfqOutput" type="RFQOutputType">
<xsd:annotation>
<xsd:documentation>element contains one RFQ result</xsd:documentation>
</xsd:annotation>
</xsd:element>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 49



ICD.DOC

<xsd:complexType name="RFQOutputType">
<xsd:annotation>
<xsd:documentation>service's rfq results are in this type. The service-specific info
must be added at the end of this type definition.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element ref="sse:id" minOccurs="0"/>
<xsd:element ref="sse:price" minOccurs="0"/>
<!-- -->
<!-- Add you service specific RFQ Output information here -->
<!-- -->
</xsd:sequence>
</xsd:complexType>
<!-- Synchronous Order -->
<xsd:element name="processOrderInputMsg">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="sse:commonInput"/>
<!--<xsd:element ref="searchInput" minOccurs="0"/>-->
<xsd:element ref="sse_eoli:searchOutput" minOccurs="0"
maxOccurs="unbounded"/>
<xsd:element ref="sendRFQInput" minOccurs="0"/>
<xsd:element ref="rfqOutput" minOccurs="0"
maxOccurs="unbounded"/>
<xsd:element ref="sendOrderInput"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="processOrderOutputMsg">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="getOrderOutput"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- Asynchronous Order -->
<xsd:element name="sendOrderInputMsg">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="sse:commonInput"/>
<!-- <xsd:element ref="sse:searchInput" minOccurs="0"/> -->
<xsd:element ref="sse_eoli:searchOutput" minOccurs="0"
maxOccurs="unbounded"/>
<xsd:element ref="sendRFQInput" minOccurs="0"/>
<xsd:element ref="rfqOutput" minOccurs="0"
maxOccurs="unbounded"/>
<xsd:element ref="sendOrderInput"/>
</xsd:sequence>
</xsd:complexType>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 50



ICD.DOC

</xsd:element>
<xsd:element name="sendOrderOutputMsg">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="sse:statusInfo"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="returnOrderResultInputMsg">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="sse:commonInput"/>
<xsd:element ref="getOrderOutput"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="returnOrderResultOutputMsg">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="sse:statusInfo"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- Common Order -->
<xsd:element name="sendOrderInput" type="OrderInputType">
<xsd:annotation>
<xsd:documentation>contains a service's order input
parameters</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:complexType name="OrderInputType">
<xsd:annotation>
<xsd:documentation>service's order input parameters are in this type. The
service-specific info must be added at the end of this type definition.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element ref="oi:originPart" minOccurs="0"/>
<xsd:element ref="aoi:areaOfInterest" minOccurs="0"/>
<!--<xsd:element ref="aoi:AreaOfInterest" minOccurs="0"/> -->
<!-- if GML3-->
<!-- -->
<!-- Add you service specific Order Input information here -->
<!-- -->
</xsd:sequence>
</xsd:complexType>
<xsd:element name="getOrderOutput" type="OrderOutputType">
<xsd:annotation>
<xsd:documentation>contains a service's order result</xsd:documentation>
</xsd:annotation>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 51



ICD.DOC

</xsd:element>
<xsd:complexType name="OrderOutputType">
<xsd:annotation>
<xsd:documentation>service's order results are in this type. Normally, the
service-specific info must be added at the end of this type definition. </xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element ref="sse:statusInfo"/>
<xsd:element ref="sse:viewFileResult" minOccurs="0"
maxOccurs="unbounded"/>
<xsd:element ref="sse:viewEmbeddedResult" minOccurs="0"
maxOccurs="unbounded"/>
<!-- -->
<!-- Add you service specific Order Output information here -->
<!-- -->
</xsd:sequence>
</xsd:complexType>
</xsd:schema>




SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 52



ICD.DOC

4. SERVICE GRAPHICAL INTERFACES
4.1 Generalities
At the service registration, the Service Provider has to provide an XSLT stylesheet file. The
purpose of the service stylesheet is twofold:
Generate the HTML lines needed, in a first time, to capture the operations (Search, Present,
RFQ, and Order) specific input parameters and, in a second time, to display the operations
(Search, Present, RFQ, and Order) results.
Generate the XML messages that are transmitted from the SSE Portal to the Workflow.
The following picture illustrates, in the case of RFQ, all these different XSLT transformations, as
yellow arrows. The pictures for the other operations are similar. These transformations will be
detailed in the next sections.



Portal Workflow
XML
Instance
HTML
RFQ
Input
XML
RFQ
Input
XML Msg
Msg
XML
RFQ
Output
HTML
RFQ
Output
RFQ
Workflow
Instance
XML Msg

HTML
RFQ
Input
Confirm

Figure 34: Overview of XSLT transformations

The service stylesheet structure depends on the approach selected for the service schema
namespace as described in section 3.2.3. In the following sections, it is assumed that the second
approach has been selected: the service schema has its own namespace.


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 53



ICD.DOC

The service stylesheet, according to the operations implemented at the service level, may need to
import the two following SSE stylesheet files:
SSE Common stylesheet in the sse_common.xsl file
Catalogue stylesheet in the massCatalogue.xsl file
The purpose of these stylesheet files is discussed in the following sections.
4.2 SSE Common Stylesheet
The SSE common stylesheet (sse_common.xsl) contains the following template definitions.
mass:viewFileResult: this template generates the statements that display the data contains
in the viewFileResult element (see 3.2.3.9)
mass:viewEmbeddedResult: this template generates the statements that display the data
contains in the viewEmbbededResult element (see 3.2.3.10)
mass:getRFQOutput: this template generates the statements that display the RFQ results.
These results are presented in a table where each row is an option that can be selected for
the ordering. This template displays the overall RFQ output table and generates the
statements for the RFQ results selection. It calls the mass:rfqOutputHeader service
templates to display the table header. It applies the template defined in the service
stylesheet to display the rfqOutput elements (see Figure 35).
The mass:getRFQOutput also applies the above mass:viewFileResult and
mass:viewEmbeddedResult templates in case the viewFileResult or/and the
viewEmbeddedResults are present in the getRFQOuput element (see Error! Reference
source not found.).
Template mass:rfqOutputHeader in service stylesheet
Template sns:rfqOutput in service stylesheet Template mass:getRFQOutput in common stylesheet
Template mass:rfqOutputHeader in service stylesheet
Template sns:rfqOutput in service stylesheet Template mass:getRFQOutput in common stylesheet

Figure 35: Common stylesheet responsibility
4.3 Catalogue Stylesheet
In the previous version of the SSE, the interface for the search and the present operation was fixed
because the only supported catalogue interface was EOLI. Now the SSE supports several types of
catalogue and the stylesheet is generated during the service registration. A catalogue stylesheet is
divided into two files. The first stylesheet part is based on a template which instantiates option


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 54



ICD.DOC

values selected by the service provider during the service registration. This first file import a
second stylesheet (e.g. eoli-v2-4-catalogue.xsl) which is used to display the catalogue search
result. The main templates that are provided by this stylesheet are
sse_eoli:sendPresentInput mode="XML": this template generates the XML message passed
to the present workflow
sse_eoli:processPresentOutputMsg: this template displays the information returned by a
present operation.
sse_eoli:multiCataloguesSearchOutputMsg: this template displays the information returned
by a search operation.
As the search input information may vary from one catalogue to another e.g. the collection
names, the available start date and end dates, the templates responsible for the display of the
search input information must be part of the service stylesheet. This is illustrated in the
following figure.

Figure 36: Catalogue stylesheet responsibility
4.4 Service Stylesheet
Tip
An advised approach for the development of a service stylesheet is a programming
by example approach. As Service Provider, you have access on the SSE Portal to
the other services XML files: stylesheet, wsdl and schema. A link to these files is
available on the Service Information page in the Other Information section.


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 55



ICD.DOC


The following sections contain a skeleton with can be used as a starting point to build your
stylesheet: it provides the overall structure of your stylesheet. It is followed by two examples of
service stylesheet. The first example is a service which allows to order a processing on a product
selected in the results of a search in a catalogue. The second example is a service which allows to
make an order after the selection of RFQ result.
4.4.1 Service Stylesheet Skeleton
This section provides a skeleton which can be used as a basis to define the service stylesheet.
As explained in the previous section, the service stylesheet has to import the SSE stylesheet
(sse_common.xsl). If the service provides the search and present operations, it has also to import
the catalogue stylesheet (massCatalogue.xsl).
At runtime, a parameter part is passed to the service stylesheet by the portal. The following
lines are the declarations of this parameter:
The part parameter allows to specify which part of the stylesheet is used in the current
transformation. This allows to have for each service only one stylesheet file that covers the
different operations and purposes listed at the beginning of this chapter (see Figure 34).
The first part of the service stylesheet is a dispatcher that invokes the templates associated to the
different values of the part parameter. These templates must only be provided if the associated
operations are used by the service.
This template is available at http://services.eoportal.org/schemas/1.6/
<!--
Replace http://www.mycompanyname.com/ws/mynamespace by your service namespace
-->
<xsl:stylesheet version="1.0" xmlns:sns="http://www.mycompanyname.com/ws/mynamespace"
xmlns:sse="http://www.esa.int/mass" xmlns:aoi="http://www.esa.int/xml/schemas/mass/aoifeatures"
xmlns:oi="http://www.esa.int/oi" xmlns:gml="http://www.opengis.net/gml"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- *********************************************************
imported stylesheets those have parts relative to http://sseURL/wsdl/
********************************************************* -->
<xsl:import href="./sse_common.xsl"/>
<!-- *********************************************************
Parameter used to specify which part of this style sheet will be applied
********************************************************* -->
<xsl:param name="part"/>
<!-- *********************************************************
Dispatching to the requested template based on the required operation
and on step e.g. display html input, preparing xml message for the workflow or
formating operation results into html format
********************************************************* -->
<xsl:template match="/*">
<xsl:choose>
<!-- RFQ operation templates -->
<!-- RFQ input html -->
<xsl:when test="$part='sendRFQInputHTML'">


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 56



ICD.DOC

<xsl:apply-templates select="sse:sendRFQInput"/>
</xsl:when>
<!--RFQ input xml: synchronous operation -->
<xsl:when test="$part='processRFQInputXML'">
<processRFQInputMsg xmlns="http://www.mycompanyname.com/ws/mynamespace"
xmlns:sns="http://www.mycompanyname.com/ws/mynamespace" xmlns:sse="http://www.esa.int/mass">
<xsl:apply-templates select="sse:sendRFQInput" mode="XML"/>
</processRFQInputMsg>
</xsl:when>
<!-- RFQ input xml: asynchronous operation-->
<xsl:when test="$part='sendRFQInputXML'">
<sendRFQInputMsg xmlns="http://www.mycompanyname.com/ws/mynamespace"
xmlns:sns="http://www.mycompanyname.com/ws/mynamespace" xmlns:sse="http://www.esa.int/mass">
<xsl:apply-templates select="sse:sendRFQInput" mode="XML"/>
</sendRFQInputMsg>
</xsl:when>
<!-- RFQ out=put html -->
<xsl:when test="$part='getRFQOutputHTML'">
<!--a common template is used which must be independent of the service namespace
That's why "apply-templates" is replaced by "call-template" and
sse namespace is used. -->
<xsl:call-template name="sse:getRFQOutput"/>
</xsl:when>
<!-- order operation templates -->
<!-- sendorderInput html -->
<xsl:when test="$part='sendOrderInputHTML'">
<xsl:apply-templates select="sse:sendOrderInput"/>
</xsl:when>
<!-- sendorderInput xml in case asynchronous order-->
<xsl:when test="$part='sendOrderInputXML'">
<sendOrderInputMsg xmlns="http://www.mycompanyname.com/ws/mynamespace"
xmlns:sns="http://www.mycompanyname.com/ws/mynamespace" xmlns:sse="http://www.esa.int/mass"
xmlns:aoi="http://www.esa.int/xml/schemas/mass/aoifeatures" xmlns:oi="http://www.esa.int/oi">
<xsl:apply-templates select="sse:sendOrderInput" mode="XML"/>
</sendOrderInputMsg>
</xsl:when>
<!-- sendorderInput xml in case synchronous order-->
<xsl:when test="$part='processOrderInputXML'">
<sns:processOrderInputMsg
xmlns:sns="http://www.mycompanyname.com/ws/mynamespace"
xmlns="http://www.mycompanyname.com/ws/mynamespace"
xmlns:aoi="http://www.esa.int/xml/schemas/mass/aoifeatures" xmlns:sse="http://www.esa.int/mass"
xmlns:oi="http://www.esa.int/oi">
<xsl:apply-templates select="sse:sendOrderInput" mode="XML"/>
</sns:processOrderInputMsg>
</xsl:when>
<!-- getOrderOutput html -->
<xsl:when test="$part='getOrderOutputHTML'">
<!--service namespace is used -->
<xsl:apply-templates select="sns:getOrderOutput"/>
</xsl:when>
<xsl:otherwise/>
</xsl:choose>
</xsl:template>
<!--RFQ operation -->
<!--RFQ input html -->
<!-- Template for the RFQ input information using HTML as output format -->
<xsl:template match="sse:sendRFQInput">
<!-- JavaScript used to validate form fields -->


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 57



ICD.DOC

<script language="JavaScript" type="text/javascript">
// Insert your Javascript code herafter in order to valid input fields values, mandatory fields
function checkMandatoryFields(form) { return true; /* return true if check ok else false */}
</script>
<!-- Insert your HTML codes hereafter -->
</xsl:template>
<!--RFQ input xml -->
<xsl:template match="sse:sendRFQInput" mode="XML">
<sse:commonInput>
<sse:orderId>
<xsl:value-of select="orderId"/>
</sse:orderId>
</sse:commonInput>
<sendRFQInput xmlns="http://www.mycompanyname.com/ws/mynamespace">
<xsl:copy-of select="AOI/*"/>
<!--only if the AOI tool is used -->
<!--<insert XSLT statements to generate valid XML according to your service schema (see Figure
15 - SSE ICD version 1.7). -->
</sendRFQInput>
</xsl:template>
<!-- Template for the RFQ input confirmation HTML Page -->
<xsl:template match="sns:confirmRFQInput">
<!--
Insert HTML codes here to present the RFQ input information on the Confirmation page.
The SSE makes accessible for all RFQ input infomration (inside element sendRFQInput) to this template, so that
Service providers can filter the information (to be shown to users).
The RFQ input information can be retrieved by using XSL function "xsl:value-of" where the value of the "select"
attribute is the name of child elements of the element "sns:sendRFQInput" that is created in the template '
match="sse:sendRFQInput" mode="XML" ' above. For example, with the following element sendRFQInput of a
service:

<sns:sendRFQInput>
<sns:outputFormat>SHAPE</sns:outputFormat>
<sns:coordinateSystem>Belgium1972</sns:coordinateSystem>
<sns:productType>IMAGE</sns:productType>
</sns:sendRFQInput>

The following XSL codes will show the outputFormat and coordinateSystem onto the RFQ confirmation page. The
value productType is not shown.
<table width="640">
<tr>
<td height="30" class="stylesheetBoldText">
Output Format:
</td>
<td height="30" class="stylesheetText">
<xsl:value-of select="sns:outputFormat"/>
</td>
</tr>
<tr>
<td height="30" class="stylesheetBoldText">
Coordinate System:
</td>
<td height="30" class="stylesheetText">
<xsl:value-of select="sns:coordinateSystem"/>
</td>
</tr>
</table>
-->
</xsl:template>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 58



ICD.DOC


<!-- Templates for the RFQ output information using HTML format-->
<!-- Template for the display of titles of the rfqOutput table using HTML format -->
<xsl:template name="sse:rfqOutputHeader">
<!--titles of the table containing RFQ results -->
<!--should be <td>column titles</td> fields -->
<!-- example
<td class="stylesheetHeader" align="left">Price</td>
<td class="stylesheetHeader" align="left">Currency</td>
<td class="stylesheetHeader" align="left">other title 1</td>
<td class="stylesheetHeader" align="left">other title 2</td>
-->
</xsl:template>
<!-- Template for the RFQ output information using HTML format -->
<xsl:template match="sns:rfqOutput">
<!--add statements to display your RFQ result data according to the Service RFQOutputType (see Figure
15) -->
<!--should be <td><xsl:value-of select=""/></<td>-->
<!-- example
<td class="stylesheetText">
<xsl:value-of select="sse:price/oi:refAmount"/>
</td>
<td class="stylesheetText">
<xsl:value-of select="sse:price/oi:refCurrency"/>
</td>
<td class="stylesheetText">
<xsl:value-of select="sns:tbd see your service schema element of "/>
</td>
<td class="stylesheetText">
<xsl:value-of select="sns:tbd see your service schema element "/>
</td>
-->
</xsl:template>
<!--Order operation -->
<!-- Template for the Order input information using HTML format -->
<xsl:template match="sse:sendOrderInput">
<script language="JavaScript" type="text/javascript">
// Insert your Javascript code herafter in order to valid input fields values, mandatory fields
function checkMandatoryFields(form) { return true;
/* return true if check ok else false
if RFQ operation before, the following function can be used to constraint the number of RFQ results
that can be selected by the user if the service is designed to return several RFQ output results
return checkSelectedRfqResults(form,x, y);
where x is the minimum and y is the maximum.
checkSelectedRfqResults(form,1, 1); wil allow the selection of one and only one result.
*/
}
</script>
<!--insert here HTML code to collect Order specific input data -->
</xsl:template>
<!-- Template for the order input information using XML format -->
<xsl:template match="sse:sendOrderInput" mode="XML">
<sse:commonInput>
<sse:orderId>
<xsl:value-of select="orderId"/>
</sse:orderId>
</sse:commonInput>
<sendOrderInput xmlns="http://www.mycompanyname.com/ws/mynamespace">
<xsl:copy-of select="AOI/*"/>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 59



ICD.DOC

<!--only if the AOI tool is used -->
<!--<insert XSLT statements to generate valid XML according to your service schema (see Figure
20). -->
</sendOrderInput>
</xsl:template>

<!-- Template for the Order input confirmation HTML Page -->
<xsl:template match="sns:confirmOrderInput">
<!--
Insert HTML codes here to present the Order input information on the Confirmation page.
The SSE makes accessible for all Order input infomration (inside element sendRFQInput) to this template, so that
Service providers can filter the information (to be shown to users).
The Order input information can be retrieved by using XSL function "xsl:value-of" where the value of the "select"
attribute is the name of child elements of the element "sns:sendOrderInput" that is created in the template '
match="sse:sendOrderInput" mode="XML" ' above. For example, with the following element sendOrderInput of a
service:

<sns:sendOrderInput>
<sns:outputFormat>SHAPE</sns:outputFormat>
<sns:coordinateSystem>Belgium1972</sns:coordinateSystem>
<sns:productType>IMAGE</sns:productType>
</sns:sendOrderInput>

The following XSL codes will show the outputFormat and coordinateSystem onto the Order confirmation page. The
value productType is not shown.
<table width="640">
<tr>
<td height="30" class="stylesheetBoldText">
Output Format:
</td>
<td height="30" class="stylesheetText">
<xsl:value-of select="sns:outputFormat"/>
</td>
</tr>
<tr>
<td height="30" class="stylesheetBoldText">
Coordinate System:
</td>
<td height="30" class="stylesheetText">
<xsl:value-of select="sns:coordinateSystem"/>
</td>
</tr>
</table>
-->
</xsl:template>

<!-- Template for the order output information using HTML format -->
<xsl:template match="sns:getOrderOutput">
<!-- insert here HTML code to display Order results according to the Service OrderOutputType definition
statement are given herafter for example-->
<xsl:choose>
<xsl:when test="not(starts-with(string(sse:statusInfo/sse:statusId) ,'0'))">
<!-- This order is invalid, display error messages -->
<table>
<tr height="30">
<td class="stylesheetBoldText">
Error: </td>
<td class="stylesheetText">
<xsl:value-of select="sse:statusInfo/sse:statusMsg"/>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 60



ICD.DOC

</td>
</tr>
</table>
</xsl:when>
<xsl:otherwise>
<!-- nominal case -->
<table>
<tr height="30">
<td class="stylesheetBoldText">
Order Result URL: </td>
<td class="stylesheetText">
<a target="_blank">
<xsl:attribute name="href"><xsl:value-of
select="sns:orderResultURL"/></xsl:attribute>
<xsl:value-of select="sns:orderResultURL"/>
</a>
</td>
</tr>
</table>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
4.4.2 ATSR Order Example
This section explains how to fill the Service Stylesheet skeleton based on the ATSR service
example. The ATSR service provides implements the search and the order operation. As most
services implement the order operation, the description of the example starts with the order
operation. Additional information for the other operations is provided after. In order to limit the
length of the examples, the most meaningful statements have been kept.
To define its stylesheet, the Service Provider needs to know what is the format of XML
instance used as input of the transformation, what is expected as output of the transformation.
This is explained in the following sections according to the three steps described in Figure 34.
4.4.2.1 SendOrderInput
The expected output of this transformation is the sequence of HTML lines that will be inserted
in the SSE Order form in order to collect the SSE End User Order data.
The SSE HTML form already provides the following fields that can be used by the Service
Provider Stylesheet:
orderId : hidden field that contains the orderId generated by SSE
submit button
reset button
The input XML instance used as input for the XSLT transformation is the same as for all
operations:
<?xml version="1.0" encoding="UTF-8"?>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 61



ICD.DOC

<service xmlns="http://www.esa.int/mass">
<commonInput/>
<sendSearchInput/>
<sendRFQInput/>
<getRFQOutput/>
<sendOrderInput/>
<getOrderOutput/>
</service>
The XSLT statements which are executed in the stylesheet dispatcher:
<xsl:when test="$part='sendOrderInputHTML'">
<xsl:apply-templates select="mass:sendOrderInput"/>
</xsl:when>

In the example of the ATSR, the sendOrderInput skeleton in the service stylesheet file
becomes:

<xsl:template match="mass:sendOrderInput">
<!-- Script for disabling view/channel selection if sadist-2 output format-->
<script type="text/javascript" language="javascript">
function checkMandatoryFields(f)
{
var message = "";
// validate the required fields
if (f.primaryApplicationDomain.selectedIndex == -1)
{
message += '- Primary application domain (please select one)\n';
}
// check other fields
if (message != "")
{
message = "Please complete the missing information\n\n" + message + "\n";
alert(message);
return false;
}
return true;
}
</script>
<table width="200">
<thead>

<tr>
<td class="stylesheetText">Please complete the following information before placing your order. Please note that
information about your intended use of the data is required by ESA for monitoring purposes.</td>
</tr>
</thead>
<tbody>
<tr>
<td CLASS="stylesheetBoldText" valign="bottom" align="left">Description:</td>
</tr>
<tr>
<td CLASS="stylesheetText" valign="top" align="left">
<textarea name="projectTitle" cols="25" rows="4" class="stylesheetText" title="Please provide a brief summary
of what you intend to do with the data.">A project to ....</textarea>
</td>
</tr>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 62



ICD.DOC

<tr>
<td CLASS="stylesheetBoldText" valign="bottom" align="left">Application Domain:</td>
</tr>
<tr>
<td CLASS="stylesheetText" valign="top" align="left">
<SELECT NAME="primaryApplicationDomain" title="What is the science area that best describes your use of the
data?">
<OPTION value="Atmosphere">Atmosphere</OPTION>
<OPTION value="Coastal Zones">Coastal Zones</OPTION>

</SELECT>
</td>
</tr>
<tr>
<td CLASS="stylesheetBoldText" valign="bottom" align="left">Application Domain:</td>
</tr>
<tr>
<td CLASS="stylesheetText" valign="top" align="left">
<SELECT NAME="SecondaryApplicationDomain" title="The second most applicable science area to your use of
the data?">
<OPTION value="Atmosphere">Atmosphere</OPTION>

</SELECT>
</td>
</tr>
<tr>
<td CLASS="stylesheetBoldText" valign="bottom" align="left">Area:</td>
</tr>
<tr>
<td CLASS="stylesheetText" valign="top" align="left">
<SELECT NAME="studyArea" title="The geographic area of your study?">
<OPTION value="Global">Global</OPTION>

</SELECT>
</td>
</tr>
<tr>
<td CLASS="stylesheetBoldText" valign="bottom" align="left">Option:</td>
</tr>
<tr>
<td CLASS="stylesheetText" valign="top" align="left">
<SELECT NAME="outputFormat" title="Please select the output format for this product"
onchange="showHideFormatOptions(this)">
<OPTION value="sadist-2" selected="selected">sadist-2 (all channels, both views)</OPTION>

</SELECT>
</td>
</tr>
</tbody>
</table>
<div style="position:relative;">
<div name="formatOptions" id="formatOptions" style="visibility:hidden;">
<table>
<tr>
<td CLASS="stylesheetBoldText" valign="bottom" align="left">:</td>
</tr>
<tr>
<td CLASS="stylesheetText" valign="top" align="left">
<SELECT NAME="outputView" size="2" multiple="true">


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 63



ICD.DOC

<OPTION value="nadir">nadir</OPTION>
<OPTION value="forward">forward</OPTION>
</SELECT>
</td>
</tr>
<tr>
<td CLASS="stylesheetBoldText" valign="bottom" align="left">:</td>
</tr>
<tr>
<td CLASS="stylesheetText" valign="top" align="left">
<SELECT NAME="outputChannel" size="7" multiple="true">
<OPTION value="B0.55">B0.55 (0.5 micron channel)</OPTION>

</SELECT>
</td>
</tr>
</table>
</div>
</div>
</xsl:template>

This stylesheet generates the highlighted part of the following picture.

Figure 37: Order Input Form For ATSR

Some recommendations:
The stylesheet should provide as far as possible default values for the input parameters.


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 64



ICD.DOC

The stylesheet should validate user input by providing a checkMandatory(massform)
Javascript function.
The stylesheet must use the predefined stylesheet css classes: stylesheetText,
stylesheetBoldText, stylesheetHeader.

Tip
A common problem happens when JavaScript is present in the stylesheet: the
Javascript comparison operators <,> is source of problem during the XSLT
transformation. One way to avoid the problem is to encapsulate the Javascript
functions with the XML CDATA instruction.
<script language="JavaScript" type="text/javascript">
<![CDATA[
function checkMandatoryFields() { if(a<b) }
]]>
</script>
4.4.2.2 SendOrderInput Mode XML

The expected output of this transformation is the SendOrderInputMsg message sent to the service
Order workflow as described in Figure 21: it must be an XML text valid according to the
service schema.
The XSLT statements that are executed at the mass.xsl level are:
<xsl:when test="$part='sendOrderInputXML'">
<sendOrderInputMsg xmlns:sns="http://www.xxx.com/ws/atsr"
xmlns="http://www.xxx.com/ws/atsr"
xmlns:mass="http://www.esa.int/mass"
xmlns:aoi="http://www.esa.int/xml/schemas/mass/aoifeatures"
xmlns:oi="http://www.esa.int/oi">
<xsl:apply-templates select="mass:sendOrderInput" mode="XML"/>
</sendOrderInputMsg>
</xsl:when>
The input XML instance used as input for the XSLT transformation looks like:
<?xml version="1.0" encoding="UTF-8"?>
<service>
<sendOrderInput>
<orderId>OrderIdValue</orderId>
<AOI>AOIValue as returned by AOI tool</AOI>
<isSubscription>false</isSubscription>
<par1Name>par1Value</par1Name>
...
<parnName>parnValue</parnName>
</sendOrderInput>
</service>

where par1Name, parnName are the service specific parameters which have been received as
part of the HTTP Order POST request. These parameters come from the SendOrderInput
stylesheet part described in the previous section.
In the example of ASTR , the par%Name parameters become projectTitle,
primaryApplicationDomain, SecondaryApplicationDomain, studyArea, outputFormat


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 65



ICD.DOC

The AOI parameter is only present if the Service Provider has configured the AOI tool during
the service registration. The SSE Portal automatically adds to this list, a set of parameters
concerning the SSE user information stored in the system at the user registration time:
userId
firstName
lastName
invoiceAddress
postCode
city
state
country
emailAddress
telNumber (if provided by user)
faxNumber (if provided by user)

Tip

Using these predefined parameters, the SSE user profile can be easily inserted
in the RFQ or Order input message by including xsl statements like
<xsl:value-of select="userId"/>. See example below.

For our current example, the sendOrderInput mode="XML template becomes:
<!-- ***************************************************************************
Template used to generate Order Input XML format
*************************************************************************** !-->
<xsl:template match="mass:sendOrderInput" mode="XML">
<mass:commonInput>
<mass:orderId>
<xsl:value-of select="orderId"/>
</mass:orderId>
</mass:commonInput>
<sendOrderInput xmlns="http://www.xxx.com/ws/atsr">
<userId>
<xsl:value-of select="userId"/>
</userId>
<ESACat1Info>
<projectTitle>
<xsl:value-of select="projectTitle"/>
</projectTitle>
<primaryApplicationDomain>
<xsl:value-of select="primaryApplicationDomain"/>
</primaryApplicationDomain>
<SecondaryApplicationDomain>
<xsl:value-of select="SecondaryApplicationDomain"/>
</SecondaryApplicationDomain>
<studyArea>
<xsl:value-of select="studyArea"/>
</studyArea>
</ESACat1Info>
<outputOptions>
<outputFormat>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 66



ICD.DOC

<xsl:value-of select="outputFormat"/>
</outputFormat>
<xsl:if test="outputFormat[. = 'geotiff']">
<outputViewSet>
<xsl:for-each select="outputView">
<outputView>
<xsl:value-of select="."/>
</outputView>
</xsl:for-each>
</outputViewSet>
<outputChannelSet>
<xsl:for-each select="outputChannel">
<outputChannel>
<xsl:value-of select="."/>
</outputChannel>
</xsl:for-each>
</outputChannelSet>
</xsl:if>
</outputOptions>
</sendOrderInput>
</xsl:template>

4.4.2.3 GetOrderOutput
The expected output of that transformation is the HTML text that will be added in the SSE
Order result page to display the service specific information getOrderOutput part of the
message received from the Order workflow (see Figure 20).
The input XML instance used as input for the XSLT transformation has the following structure:
<returnOrderResultInputMsg xmlns="http://www.xxx.com/ws/atsr"
xmlns:aoi="http://www.esa.int/xml/schemas/mass/aoifeatures" xmlns:mass="http://www.esa.int/mass"
xmlns:oi="http://www.esa.int/oi" >
<mass:commonInput>
<orderId xmlns="http://www.esa.int/mass">...</orderId>
</mass:commonInput>
<getOrderOutput>
<mass:statusInfo>
<mass:statusId></mass:statusId>
<mass:statusMsg>.</mass:statusMsg>
</mass:statusInfo>
<!XML part defined by the service schema
</getOrderOutput>
</returnOrderResultInputMsg>
The following XML text is received from the workflow for our current example:
<returnOrderResultInputMsg xmlns="http://www.xxx.com/ws/atsr"
xmlns:aoi="http://www.esa.int/xml/schemas/mass/aoifeatures" xmlns:mass="http://www.esa.int/mass"
xmlns:oi="http://www.esa.int/oi" >
<mass:commonInput>
<orderId xmlns="http://www.esa.int/mass">B980F880</orderId>
</mass:commonInput>
<getOrderOutput>
<mass:statusInfo>
<mass:statusId>0</mass:statusId>
<mass:statusMsg>Successful</mass:statusMsg>
</mass:statusInfo>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 67



ICD.DOC

<mass:viewFileResult>
<mass:fileURL>http://</mass:fileURL>
<mass:fileType>gml</mass:fileType>
</mass:viewFileResult>
<userName></userName>
<password></password>
<timePeriodOfService>5</timePeriodOfService>
<orderResultSet>
<orderResult>
<orderResultURL></orderResultURL>
<productSize>7537</productSize>
</orderResult>
</orderResultSet>
</getOrderOutput>
</returnOrderResultInputMsg>
The following stylesheet allows to convert the getOrderOutput part of the previous XML text to
HTML text inserted in the Order result page:
<xsl:template match="sns:getOrderOutput">
<table border="1">
<xsl:choose>
<xsl:when test="sns:timePeriodOfService">
<tr height="30">
<th class="stylesheetHeader">
period
</th>
<td class="stylesheetText">
<xsl:value-of select="sns:timePeriodOfService"/> days
</td>
</tr>
</xsl:when>
</xsl:choose>
<tr>
<th class="stylesheetHeader">Result</th>
<td>
<xsl:for-each select="sns:orderResultSet/sns:orderResult">
<table border="1">
<tbody>
<xsl:choose>
<xsl:when test="mass:view">
<tr height="30">
<th class="stylesheetHeader">
channel
</th>
<td class="stylesheetText">
<xsl:value-of select="sns:view"/>
</td>
</tr>
</xsl:when>
</xsl:choose>
<xsl:choose>
<xsl:when test="sns:channel">
<tr height="30">
<th class="stylesheetHeader">
channel
</th>
<td class="stylesheetText">


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 68



ICD.DOC

<xsl:value-of select="sns:view"/>
</td>
</tr>
</xsl:when>
</xsl:choose>
<xsl:choose>
<xsl:when test="sns:orderResultURL">
<tr height="30">
<th class="stylesheetHeader">
Result File:
</th>
<td class="stylesheetText">
<a target="_blank">
<xsl:attribute name="href">ftp://<xsl:value-of select="../../sns:userName"/>:<xsl:value-of
select="../../sns:password"/>@<xsl:value-of select="substring-
after(sns:orderResultURL,'//')"/></xsl:attribute>ftp://<xsl:value-of select="../../sns:userName"/>:<xsl:value-of
select="../../sns:password"/>@<xsl:value-of select="substring-after(sns:orderResultURL,'//')"/>
</a>
</td>
</tr>
</xsl:when>
</xsl:choose>
<xsl:choose>
<xsl:when test="mass:productSize">
<tr height="30">
<th class="stylesheetHeader">
size (kb)
</th>
<td class="stylesheetText">
<xsl:value-of select="sns:productSize"/>
</td>
</tr>
</xsl:when>
</xsl:choose>
<xsl:choose>
<xsl:when test="sns:failureMessage">
<tr height="30">
<th class="stylesheetHeader">
Message:
</th>
<td class="stylesheetText">
<xsl:value-of select="sns:failureMessage"/>
</td>
</tr>
</xsl:when>
</xsl:choose>
</tbody>
</table>
</xsl:for-each>
</td>
</tr>
<!-- Display GML footprint if present -->
<xsl:if test="//mass:viewFileResult">
<xsl:apply-templates select="//mass:viewFileResult"/>
<tr>
<th class="stylesheetHeader">viewFileResult URL</th>
<td class="stylesheetText">
<a>
<xsl:attribute name="href"><xsl:value-of select="//mass:fileURL"/></xsl:attribute>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 69



ICD.DOC

<xsl:value-of select="//mass:fileURL"/>
</a>
</td>
</tr>
</xsl:if>
<xsl:choose>
<xsl:when test="mass:statusInfo/mass:statusMsg">
<tr height="30">
<th class="stylesheetHeader">
Status:
</th>
<td class="stylesheetText">
<xsl:value-of select="mass:statusInfo/mass:statusMsg"/>
</td>
</tr>
</xsl:when>
</xsl:choose>
</table>
</xsl:template>

This stylesheet generates the highlighted part of the following picture.

Figure 38: Order Result Information

As the service order result contains the reference of a GML result file to be displayed by the
GML viewer, the following statement has been added in the getOrderOuput template
<xsl:apply-templates select="mass:viewFileResult" />



SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 70



ICD.DOC

4.4.3 RFQ Remarks
The service stylesheet templates for the RFQ input (see steps 1 and 2 in Figure 34) are similar to
the Order template. The RFQ Ouput requires some specific comments.
A RFQ result can contain several rfqOutput elements (see mass schema Error! Reference
source not found.). At run time, when the RFQ results are displayed, the user can select one or
several of the rfqOuput elements which become automatically part of the Order Input message.
To allow that, the RFQ result is displayed as a table which contains a checkbox for each
rfqOutput element. The SSE stylesheet is responsible for the display of the table and the
checkboxes. The service stylesheet is responsible for the display of the table columns headers and
for the display of the cells of the table body.

<!-- Template for the display of titles of the rfqOutput table using HTML format -->
<xsl:template name="mass:rfqOutputHeader">

<td class="stylesheetHeader" >Price</td>
<td class="stylesheetHeader" >Currency</td>
<td class="stylesheetHeader" >Area</td>
<td class="stylesheetHeader" >Validity period</td>

</xsl:template>

<!-- Template for the RFQ output information using HTML format-->
<xsl:template match="mass:rfqOutput">

<td class="stylesheetText"><xsl:value-of select="mass:price/oi:refAmount"/></td>
<td class="stylesheetText"><xsl:value-of select="mass:price/oi:refCurrency"/></td>
<td class="stylesheetText"><xsl:value-of select="sns:area"/></td>
<td class="stylesheetText"><xsl:value-of select="sns:validityPeriod"/></td>

</xsl:template>

Warning
Do not provide a template for the getRFQOutput element in the service
stylesheet. It is already defined in the SSE stylesheet and it should not be
replaced by the service stylesheet.

If your service provides a RFQ operation which can return several rfqOutput elements and
you want to limit the number of rfqOutput elements that the user can select during the Order
preparation, you can call the checkSelectedRfqResults javascript function as shown in the
following example.
<xsl:template match="mass:sendOrderInput">
<script language="JavaScript" type="text/javascript">
function checkMandatoryFields(form)
{// check that 1<= nbr of select RFQ outputs <= 2
return checkSelectedRfqResults(form,1, 2);
}
</script>

</xsl:template>
4.4.4 Search Remarks



SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 71



ICD.DOC

The interface for the Search and Present operations are fixed by the EOLI ICD. Nevertheless, the
search input parameters may vary from one catalogue to the others: available dates may be
different, clouds coverage parameter can be used or not. The names and number of collections
will be different. Depending on the service, there can be, in some cases, only one collection
available. In that case, the collection name can be hard coded in the sendSearchInput mode XML
template.
The following is an example where there is only one collection and the clouds coverage is not
used.
<!-- ***************************************************************************
Templates used to display the HTML input fields needed for the Search
*************************************************************************** !-->
<xsl:template match="mass:sendSearchInput">
<!--JavaScript used to validate forms-->
<script language="JavaScript" type="text/javascript">
function updateCursor(form)
{// to implement the next button which returns the next records...
form.cursor.value = parseInt(form.cursor.value) + parseInt(form.iteratorSize.value);
}
function checkMandatoryFields(form)
{
if(checkTimeFrame(form))
{
if( checkPositiveValue(form.iteratorSize,"Number of metadata"))
{
if (checkPositiveValue(form.cursor,"Starting number"))
{
if (form.cloudCoverPerc.value != '')
{
return checkFloatInRange(form.cloudCoverPerc,"0.0","100.01","Cloud coverage");
}
else
{
return true;
}
}//if( checkPositiveValue(form.iteratorSize,"Number of metadata"))
}
return false;
}//if(checkTimeFrame(form))
else
{
// alert("Bad time frame");
return false;
}//if(checkTimeFrame(form))
}
function checkPositiveValue(field,fieldName)
{
if ( isNaN(field.value) || isShorter(field.value,1) )
{
alert(fieldName + " should be a positive number !");
field.focus();
return false;
}
return true;
}
function checkFloatInRange(field,valMinStr,valMaxStr,fieldName)
{
if( isGreaterThanOrEqualToIntegerStr(field.value, valMinStr) )
{ if (isLessThanFloatStr(field.value, valMaxStr) ) return true; }
alert(fieldName + " should be a percentage float value !");
field.focus();
return false;
}
function checkTimeFrame(form)
{


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 72



ICD.DOC

if( ! isDate(form.startDay.value,form.startMonth.value,form.startYear.value) )
{ alert("Start date is not valid !");
return false;
}
if( ! isDate(form.endDay.value,form.endMonth.value,form.endYear.value) )
{ alert("End date is not valid !");
return false;
}
if( checkDateStartBeforeEnd(form))
return true;
else
{
alert("Start date should be before end date !");
return false;
}
}
function checkDateStartBeforeEnd(form)
{

var intStartYear = parseInt(form.startYear.value,10);
var intStartMonth = parseInt(form.startMonth.value,10);
var intStartDay = parseInt(form.startDay.value,10); var intEndYear = parseInt(form.endYear.value,10);
var intEndMonth = parseInt(form.endMonth.value,10);
var intEndDay = parseInt(form.endDay.value,10);
if (isLessThanNumber(intStartYear, intEndYear)) return true;
if (isLessThanNumber(intEndYear, intStartYear)) return false;
if (isLessThanNumber(intStartMonth, intEndMonth)) return true;
if (isLessThanNumber(intEndMonth, intStartMonth)) return false;
if (isLessThanNumber(intStartDay, intEndDay)) return true;
if (isLessThanNumber(intEndDay, intStartDay)) return false;
return true;
}
</script>
<!-- ======================================================== -->
<table width="200" height="325" border="0">
<tbody>
<tr>
<td>
<table border="0">
<!-- <tbody CLASS="pgttl"> -->
<tr>
<td CLASS="stylesheetBoldText" colspan="2">Date:
</td>
</tr>
<tr>
<td CLASS="stylesheetBoldText">From: </td>
<td align="left" valign="top">
<select size="1" name="startYear">
<option value="2003">2003</option>
<option value="2004">2004</option>
<option value="2005">2005</option>
</select>
<select size="1" name="startMonth">
<option value="01">Jan</option>
<option value="02">Feb</option>
<option value="03">Mar</option>
<option value="04">Apr</option>
<option value="05">May</option>
<option value="06">Jun</option>
<option value="07">Jul</option>
<option value="08">Aug</option>
<option value="09">Sep</option>
<option value="10">Oct</option>
<option value="11">Nov</option>
<option value="12">Dec</option>
</select>
<select size="1" name="startDay">
<option value="01">01</option>
<option value="02">02</option>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 73



ICD.DOC

<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>
</td>
</tr>
<tr>
<td CLASS="stylesheetBoldText" width="50" align="right">To:
</td>
<td align="left">
<select size="1" name="endYear">
<option value="2003">2003</option>
<option value="2004">2004</option>
<option value="2005">2005</option>
</select>
<select size="1" name="endMonth">
<option value="01">Jan</option>
<option value="02">Feb</option>
<option value="03">Mar</option>
<option value="04">Apr</option>
<option value="05">May</option>
<option value="06">Jun</option>
<option value="07">Jul</option>
<option value="08">Aug</option>
<option value="09">Sep</option>
<option value="10">Oct</option>
<option value="11">Nov</option>
<option value="12">Dec</option>
</select>
<select size="1" name="endDay">
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 74



ICD.DOC

<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>
</td>
</tr>
<!-- </tbody> -->
</table>
<script type="text/javascript" LANGUAGE="JavaScript">
setCurrentDate(document.MASS.startYear, document.MASS.startMonth,document.MASS.startDay);
setCurrentDate(document.MASS.endYear, document.MASS.endMonth,document.MASS.endDay);
</script>
</td>
</tr>
<!-- <tr>
<td CLASS="stylesheetBoldText" valign="bottom" >Cloud Cover Percentage:
</td>
</tr>
<tr>
<td valign="top" align="left" >
<input type="text" name="cloudCoverPerc" maxlength="5" size="5"/>
</td>
</tr>-->
<input type="hidden" name="cloudCoverPerc" value="100"/>
<tr>
<td CLASS="stylesheetBoldText" height="30">
Retrieve
<input type="text" name="iteratorSize" maxlength="3" size="3" value="10"/>
metadata
</td>
</tr>
<tr>
<td CLASS="stylesheetBoldText" height="30">
Starting from <input type="text" name="cursor" maxlength="3" size="3" value="1"/>
</td>
</tr>
</tbody>
</table>
</xsl:template>
<!-- ***************************************************************************
Templates used to generate Search input information using XML format
This information is needed by the multi catalogue workflow to generate the
SOAP message for the individual collections
*************************************************************************** !-->
<xsl:template match="mass:sendSearchInput" mode="XML">
<mass:searchCollections>
<!-- in this case, there is only one collection which is thus hardcoded..
If there are several collections, replace by
<xsl:for-each select="collectionId">
<mass:parentId><xsl:value-of select="." /></mass:parentId>
The workflow has to generate one request by collection-->
<mass:parentId>ESA.ERS.ATSR.UBT</mass:parentId>
</mass:searchCollections>
<xsl:copy-of select="AOI/*"/>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 75



ICD.DOC

<eoli:searchRequest>
<eoli:simpleQuery>
<eoli:dataExt>
<eoli:tempEle operator="OVERLAP">
<eoli:exTemp>
<eoli:beginEnd>
<eoli:begin>
<xsl:value-of select="startYear"/>-<xsl:value-of select="startMonth"/>-<xsl:value-of select="startDay"/>
</eoli:begin>
<eoli:end>
<xsl:value-of select="endYear"/>-<xsl:value-of select="endMonth"/>-<xsl:value-of select="endDay"/>
</eoli:end>
</eoli:beginEnd>
</eoli:exTemp>
</eoli:tempEle>
</eoli:dataExt>
<xsl:if test="cloudCoverPerc != '' ">
<eoli:satelliteDomainConditions>
<eoli:cloudCoverCondition operator="LESS EQUAL">
<eoli:cloudCovePerc>
<xsl:value-of select="cloudCoverPerc"/>
</eoli:cloudCovePerc>
</eoli:cloudCoverCondition>
</eoli:satelliteDomainConditions>
</xsl:if>
</eoli:simpleQuery>
<eoli:resultType>results</eoli:resultType>
<eoli:iteratorSize>
<xsl:value-of select="iteratorSize"/>
</eoli:iteratorSize>
<eoli:cursor>
<xsl:value-of select="cursor"/>
</eoli:cursor>
<!-- the presentation is fixed : for the search it is the summary which returns the interesting information
see EOLI ICD -->
<eoli:presentation>summary</eoli:presentation>
<!-- do not change this line, it is just a placeholder for the workflow -->
<eoli:collectionId>NoCollection</eoli:collectionId>
</eoli:searchRequest>
</xsl:template>





SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 76



ICD.DOC

5. SERVICE INTERFACE EXAMPLES
The purpose of this chapter is to provide examples of SSE compliant WSDL files and the associated
SOAP messages that are generated using on the SSE Portal the release RC4 of the workflow tool
and on the Service Provider side the SSE Toolbox. The provided example concerns the Order
asynchronous operation.
The SOAP interaction with the SSE Toolbox is based on the Apache AXIS framework but the
BPEL engine is supporting other Web Service publishing environments such as Microsoft .NET,
Systinet WASP, BEA Workshop.
5.1 Asynchronous Order Example
The following example is based on a service installed behind the SSE Toolbox. Due to the
asynchronous communication WS-Addressing information has to be added in the messages
definitions, and the SSE Portal has also a role in the communication ServiceRequester because it
has to provide the callback to return the results. In this case, the callback location is provided at
runtime (see 5.1.3.1). Thats the reason why a dummy callback location is written in the WSDL
file.
Note that the PartnerLinkType is required by BPEL. In order to harmonize the BPEL workflows
and WSDL files between services, we follow the convention: role names are composed by the
service name with suffix ServiceProvider and ServiceRequester. The portType names must be
the ports previously defined in the WSDL file.
5.1.1 Service WSDL File
<?xml version="1.0" encoding="UTF-8"?>
<!--atsr.wsdl-->
<definitions targetNamespace= "http://www.xxx.com/ws/atsr" xmlns:tns="http://www.xxx.com/ws/atsr"
xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
xmlns:wsa="http://schemas.xmlsoap.org/ws/2003/03/addressing">
<types>
<schema attributeFormDefault="qualified" elementFormDefault="qualified"
targetNamespace="http://schemas.xmlsoap.org/wsdl/" xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://www.xxx.com/ws/atsr" schemaLocation="ATSRBasic.xsd"/>
<import namespace="http://schemas.xmlsoap.org/ws/2003/03/addressing" schemaLocation="ws-
addressing.xsd"/>
</schema>
</types>
<!-- For WS-Addressing supports-->
<message name="StartHeader">
<part name="MessageID" element="wsa:MessageID"/>
<part name="ReplyTo" element="wsa:ReplyTo"/>
</message>
<message name="ContinueHeader">
<part name="RelatesTo" element="wsa:RelatesTo"/>
</message>
<message name="sendOrderInput">
<part name="parameters" element="tns:sendOrderInputMsg"/>
</message>
<message name="sendOrderOutput">
<part name="parameters" element="tns:sendOrderOutputMsg"/>
</message>
<message name="returnOrderResultInput">
<part name="parameters" element="tns:returnOrderResultInputMsg"/>
</message>
<message name="returnOrderResultOutput">
<part name="parameters" element="tns:returnOrderResultOutputMsg"/>
</message>
<portType name="ATSRBasicService">
<operation name="sendOrder">
<input name="sendOrderInput" message="tns:sendOrderInput"/>
<output name="sendOrderOutput" message="tns:sendOrderOutput"/>
</operation>
</portType>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 77



ICD.DOC

<portType name="ATSRBasicServiceCallback">
<operation name="returnOrderResult">
<input name="returnOrderResultInput" message="tns:returnOrderResultInput"/>
<output name="returnOrderResultOutput" message="tns:returnOrderResultOutput"/>
</operation>
</portType>
<binding name="ATSRBasicServiceSoapBinding" type="tns:ATSRBasicService">
<wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="sendOrder">
<wsdlsoap:operation soapAction="sendOrder"/>
<input name="sendOrderInput">
<wsdlsoap:header required="false" message="tns:StartHeader" part="MessageID"
use="literal"/>
<wsdlsoap:body use="literal"/>
</input>
<output name="sendOrderOutput">
<wsdlsoap:body use="literal"/>
</output>
</operation>
</binding>
<binding name="ATSRBasicServiceCallbackSoapBinding" type="tns:ATSRBasicServiceCallback">
<wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="returnOrderResult">
<wsdlsoap:operation soapAction="returnOrderResult"/>
<input name="returnOrderResultInput">
<wsdlsoap:header required="true" message="tns:ContinueHeader" part="RelatesTo"
use="literal"/>
<wsdlsoap:body use="literal"/>
</input>
<output name="returnOrderResultOutput">
<wsdlsoap:body use="literal"/>
</output>
</operation>
</binding>
<service name="ATSRBasicService">
<port binding="tns:ATSRBasicServiceSoapBinding" name="ATSRBasicService">
<wsdlsoap:address location="http://urlxxx/TOOLBOX/services/ATSR"/>
</port>
</service>
<service name="ATSRBasicServiceCallbackService">
<port name="ATSRBasicServiceCallback" binding="tns:ATSRBasicServiceCallbackSoapBinding">
<wsdlsoap:address location="http://openuri.org"/>
</port>
</service>
<plnk:partnerLinkType name="ATSRBasicService">
<plnk:role name="ATSRBasicServiceProvider">
<plnk:portType name="tns:ATSRBasicService"/>
</plnk:role>
<plnk:role name="ATSRBasicServiceRequester">
<plnk:portType name="tns:ATSRBasicServiceCallback"/>
</plnk:role>
</plnk:partnerLinkType>
</definitions>
5.1.2 Service Schema File
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns="http://www.xxx.com/ws/atsr" xmlns:mass="http://www.esa.int/mass"
xmlns:aoi="http://www.esa.int/xml/schemas/mass/aoifeatures" xmlns:oi="http://www.esa.int/oi"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.xxx.com/ws/atsr"
elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0">
<!--Import available types from the SSE schemas files-->
<xsd:import namespace="http://www.esa.int/mass" schemaLocation="./ sseSchemas/sse_basic.xsd"/>
<xsd:import namespace="http://www.esa.int/sse_eoli" schemaLocation="./sseSchemas/sse_eoli.xsd"/>

<!--Import available types for the Area of interest-->
<xsd:import namespace="http://www.esa.int/xml/schemas/mass/aoifeatures" schemaLocation="./
sseSchemas/aoifeatures.xsd"/>
<!--Import available types from ESA Ordering schema-->
<xsd:import namespace="http://www.esa.int/oi" schemaLocation=" sseSchemas/oi.xsd"/>
<!--xml message elements exchanged between the client and services-->
<!-- Asynchronous Order -->
<xsd:element name="sendOrderInputMsg">
<xsd:complexType>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 78



ICD.DOC

<xsd:sequence>
<xsd:element ref="mass:commonInput"/>
<xsd:element ref="sse_eoli:searchOutput" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="sendOrderInput"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="sendOrderOutputMsg">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="mass:statusInfo"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="returnOrderResultInputMsg">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="mass:commonInput"/>
<xsd:element ref="getOrderOutput"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="returnOrderResultOutputMsg">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="mass:statusInfo"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- Common Order -->
<xsd:element name="sendOrderInput" type="OrderInputType">
<xsd:annotation>
<xsd:documentation>contains a service's order input parameters</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:complexType name="OrderInputType">
<xsd:annotation>
<xsd:documentation>service's order input parameters are in this type. The service-specific info must be added at the end of
this type definition.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element ref="oi:originPart" minOccurs="0"/>
<xsd:element ref="aoi:areaOfInterest" minOccurs="0"/>
<!-- -->
<!-- Add you service specific Order Input information here -->
<!-- -->
<xsd:element name="ESACat1Info">
<xsd:annotation>
<xsd:documentation>Information pertaining to ESA Category-1 status of order. To be collated and reported to ESA for
monitoring purposes.</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:all>
<xsd:element name="projectTitle" type="xsd:string">
<xsd:annotation>
<xsd:documentation>Free text field for project title </xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="primaryApplicationDomain" type="AppDomainType"/>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 79



ICD.DOC

<xsd:element name="SecondaryApplicationDomain" type="AppDomainType"/>
<xsd:element name="studyArea" type="StudyAreaType"/>
</xsd:all>
</xsd:complexType>
</xsd:element>
<xsd:element name="outputOptions">
<xsd:annotation>
<xsd:documentation>Options for delivery of output products. Choice of native (sadist-2) or geotiff format output. Geotiff
output only supports 1 view and 1 channel per file, but service should be able to provide mutliple geotiff output files from 1
original ATSR product. </xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:all>
<xsd:element name="outputFormat" type="ATSRFormatType"/>
<xsd:element name="outputViewSet" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="outputView" type="ATSRViewType" maxOccurs="2"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="outputChannelSet" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="outputChannel" type="ATSRChannelType" maxOccurs="7"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:all>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="getOrderOutput" type="OrderOutputType">
<xsd:annotation>
<xsd:documentation>contains a service's order result</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:complexType name="OrderOutputType">
<xsd:annotation>
<xsd:documentation>service's order results are in this type. Normally, the service-specific info must be added at the end of
this type definition. </xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element ref="mass:statusInfo"/>
<xsd:element ref="mass:viewFileResult" minOccurs="0"/>
<xsd:element ref="mass:viewEmbeddedResult" minOccurs="0" maxOccurs="unbounded"/>
<!-- -->
<!-- Add you service specific Order Output information here -->
<!-- -->
<xsd:sequence minOccurs="0">
<xsd:element name="userName" minOccurs="0">
<xsd:annotation>
<xsd:documentation>User name to be used for the download.</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:minLength value="3"/>
<xsd:maxLength value="100"/>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 80



ICD.DOC

</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="password" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Password to be used for the download.</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:minLength value="8"/>
<xsd:maxLength value="20"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="timePeriodOfService" type="xsd:positiveInteger">
<xsd:annotation>
<xsd:documentation>Period in which the User will be able to download the ordered product.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="orderResultSet">
<xsd:annotation>
<xsd:documentation>set of results containing either URLs pointing to output products to download, or error message
explaining why not.</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="orderResult" maxOccurs="14">
<xsd:annotation>
<xsd:documentation>One for each channel/view combination, if using geotiff format output. Just 1 if using sadist-2 format
output.</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="view" type="ATSRViewType" minOccurs="0">
<xsd:annotation>
<xsd:documentation>The view (forward or nadir) to which the orderResult information relates</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="channel" type="ATSRChannelType" minOccurs="0">
<xsd:annotation>
<xsd:documentation>The ATSR channel to which the orderResult information relates</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:choice>
<xsd:sequence>
<xsd:element name="orderResultURL" type="xsd:anyURI">
<xsd:annotation>
<xsd:documentation>URL to be used for the data download.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="productSize" type="xsd:float">
<xsd:annotation>
<xsd:documentation>This represents the size of a product required expressed in MB.</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:element name="failureMessage" type="xsd:string">
<xsd:annotation>
<xsd:documentation>Reson why a particular view/channel cannot be delivered as geotiff</xsd:documentation>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 81



ICD.DOC

</xsd:annotation>
</xsd:element>
</xsd:choice>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:sequence>
</xsd:complexType>
<!--Custom types -->
<xsd:simpleType name="AppDomainType">
<xsd:annotation>
<xsd:documentation>Application domains for ESA Category-1 proposals from http://eopi.esa.int</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Atmosphere"/>

</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="StudyAreaType">
<xsd:annotation>
<xsd:documentation>Study areas for ESA Category-1 proposals from http://eopi.esa.int</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Global"/>

</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="ATSRChannelType">
<xsd:annotation>
<xsd:documentation>Band identifier</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="B0.55"/>

</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="ATSRFormatType">
<xsd:annotation>
<xsd:documentation>Selection of format for output product</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="sadist-2"/>
<xsd:enumeration value="geotiff"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="ATSRViewType">
<xsd:annotation>
<xsd:documentation>Selection of view for output product</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="nadir"/>
<xsd:enumeration value="forward"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 82



ICD.DOC


5.1.3 SOAP Messages
The following dumps are the SOAP messages generated by the sendOrder and returnOrderResult
operations.
5.1.3.1 sendOrder SOAP HTTP Request
POST /TOOLBOX/services/ATSR HTTP/1.0
Content-Type: text/xml; charset=utf-8
Accept: application/soap+xml, application/dime, multipart/related, text/*
User-Agent: Axis/1.0
Host: www.xxx.com
Cache-Control: no-cache
Pragma: no-cache
SOAPAction: "sendOrder"
Content-Length: 1291
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance">
<soapenv:Header>
<ns1:MessageID
xmlns:ns1="http://schemas.xmlsoap.org/ws/2003/03/addressing">bpel://localhost/default/ATSRBasicOr
derFlow~1.0/203-BpInv0-BpSeq0.3-3</ns1:MessageID>
<!callback location
<ns2:ReplyTo xmlns:ns2="http://schemas.xmlsoap.org/ws/2003/03/addressing">

<ns2:Address>http://mass.spacebel.be/collaxa/default/ATSRBasicOrderFlow/1.0/ATSRBasicService/ATSR
BasicServiceRequester</ns2:Address>
<ns2:PortType
xmlns:ns3="http://www.xxx.com/ws/atsr">ns3:ATSRBasicServiceCallback</ns2:PortType>
<ns2:ServiceName
xmlns:ns4="http://www.xxx.com/ws/atsr">ns4:ATSRBasicServiceCallbackService</ns2:ServiceName>
</ns2:ReplyTo>
</soapenv:Header>
<soapenv:Body>
<sendOrderInputMsg xmlns="http://www.xxx.com/ws/atsr" xmlns:mass="http://www.esa.int/mass"
xmlns:aoi="http://www.esa.int/xml/schemas/mass/aoifeatures"
xmlns:gml="http://www.opengis.net/gml" xmlns:oi="http://www.esa.int/oi">
<mass:commonInput>
<mass:orderId>12345678</mass:orderId>
</mass:commonInput>
<sendOrderInput>
<userId>String</userId>
<date>1998-01-01</date>
<format>HDF</format>
</sendOrderInput>
</sendOrderInputMsg>
</soapenv:Body>
</soapenv:Envelope>
5.1.3.2 sendOrder SOAP HTTP Response
HTTP/1.1 200 OK
Date: Wed, 25 Feb 2004 08:44:21 GMT
Server: Apache Coyote HTTP/1.1 Connector [1.0]
Content-Type: text/xml
<?xml version="1.0" encoding="UTF-8"?>
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
<soap-env:Header/>
<soap-env:Body>
<sendOrderOutputMsg xmlns="http://www.xxx.com/ws/atsr"
xmlns:mass="http://www.esa.int/mass">
<mass:statusInfo>
<mass:statusId>0</mass:statusId>
</mass:statusInfo>
</sendOrderOutputMsg>
</soap-env:Body>
</soap-env:Envelope>
5.1.3.3 returnOrderResult SOAP HTTP Request
POST /collaxa/default/ATSRBasicOrderFlow/1.0/ATSRBasicService/ATSRBasicServiceRequester
HTTP/1.0
Content-Type: text/xml; charset=utf-8
Accept: application/soap+xml, application/dime, multipart/related, text/*
User-Agent: Axis/1.1
Host: 194.7.127.147


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 83



ICD.DOC

Cache-Control: no-cache
Pragma: no-cache
SOAPAction: "returnOrderResult"
Content-Length: 1115
<?xml version="1.0" encoding="UTF-8"?>
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
<soap-env:Header>
<wsa:RelatesTo soap-env:mustUnderstand="0" xsi:type="xsd:string"
xmlns:wsa="http://schemas.xmlsoap.org/ws/2003/03/addressing"
xmlns:xsd="www.w3.org/2001/XMLSchema" xmlns:xsi="www.w3.org/2001/XMLSchema-
instance">bpel://localhost/default/ATSRBasicOrderFlow~1.0/203-BpInv0-BpSeq0.3-
3</wsa:RelatesTo>
</soap-env:Header>
<soap-env:Body>
<returnOrderResultInputMsg xmlns="http://www.xxx.com/ws/atsr"
xmlns:mass="http://www.esa.int/mass">
<mass:commonInput>
<mass:orderId>12345678</mass:orderId>
</mass:commonInput>
<getOrderOutput>
<mass:statusInfo>
<mass:statusId>0</mass:statusId>
<mass:statusMsg>Successful</mass:statusMsg>
</mass:statusInfo>
<mass:viewFileResult>
<mass:fileURL>http://xxx/atsr/gml/FF808881.gml</mass:fileURL>
<mass:fileType>gml</mass:fileType>
</mass:viewFileResult>
<userName>xxx</userName>
<password>yyy</password>
<timePeriodOfService>5</timePeriodOfService>
<orderResultSet>
<orderResult>
<orderResultURL>ftp://xxx/ralubt-9610130956-16136-031211-2av350.ubt-tvl.gz</orderResultURL>
<productSize>7537</productSize>
</orderResult>
</orderResultSet>
</getOrderOutput>
</returnOrderResultInputMsg>
</soap-env:Body>
</soap-env:Envelope>
5.1.3.4 returnOrderResult SOAP HTTP Response
HTTP/1.1 200 OK
Date: Wed, 25 Feb 2004 08:51:55 GMT
Server: Jetty/4.2.11 (Linux/2.4.18-14 i386 java/1.4.2_01)
Content-Type: text/xml; charset=utf-8
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance">
<soapenv:Body>
<returnOrderResultOutputMsg xmlns="http://www.xxx.com/ws/atsr"
xmlns:mass="http://www.esa.int/mass">
<mass:statusInfo>
<mass:statusId>0</mass:statusId>
<mass:statusMsg>successfully</mass:statusMsg>
</mass:statusInfo>
</returnOrderResultOutputMsg>
</soapenv:Body>
</soapenv:Envelope>
5.1.4 Service Stylesheet
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:sns="http://www.xxx.com/ws/atsr" xmlns:mass="http://www.esa.int/mass" xmlns="http://www.esa.int/mass"
xmlns:aoi="http://www.esa.int/xml/schemas/mass/aoifeatures" xmlns:gml="http://www.opengis.net/gml"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- *********************************************************
imported stylesheets
********************************************************* -->
<xsl:import href="./sse_common.xsl"/>
<!-- *********************************************************
Parameter used to specify which part of this style sheet will be applied
********************************************************* -->
<xsl:param name="part"/>
<!-- *********************************************************
Dispatching to the requested template based on the required operation


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 84



ICD.DOC

and on step e.g. display html input, preparing xml message for the workflow or
formating operation results into html format
********************************************************* -->
<xsl:template match="/*">
<xsl:choose>
<!-- Used to prepare order input form page -->
<!-- sendorderInput html -->
<xsl:when test="$part='sendOrderInputHTML'">
<xsl:apply-templates select="mass:sendOrderInput"/>
</xsl:when>
<!-- sendorderInput xml -->
<!-- Used to compose order input xml message, that will be sent to the service soap server (toolbox) -->
<xsl:when test="$part='sendOrderInputXML'">
<sendOrderInputMsg xmlns:sns="http://www.xxx.com/ws/atsr" xmlns="http://www.xxx.com/ws/atsr" xmlns:mass="http://www.esa.int/mass"
xmlns:aoi="http://www.esa.int/xml/schemas/mass/aoifeatures" xmlns:oi="http://www.esa.int/oi">
<xsl:apply-templates select="mass:sendOrderInput" mode="XML"/>
</sendOrderInputMsg>
</xsl:when>
<!-- getOrderOutput html -->
<!-- Used to show the Order output to end user-->
<xsl:when test="$part='getOrderOutputHTML'">
<xsl:apply-templates select="sns:getOrderOutput"/>
</xsl:when>
<xsl:otherwise/>
</xsl:choose>
</xsl:template>
<xsl:template name="mass:getMaxNbrOfItemsTemplate">
<script language="JavaScript">
function getMaxNumberOfSelectedItems() {return 100; /* this value is to set the upper limit for the number of products included in an order
request - an order request cannot include more than 100 products */}
function getMinNumberOfSelectedItems() {return 1;/* this value is to set the lower limit for the number of products included in and order
request - an order request must include at least 1 item */;}
</script>
</xsl:template>
<!-- ***************************************************************************
Templates used to generate Order Input HTML format
*************************************************************************** !-->
<!-- Used to prepare service Order Input Form HTML page-->
<xsl:template match="mass:sendOrderInput">
<!-- Script for disabling view/channel selection if sadist-2 output format-->
<script type="text/javascript" language="javascript">
<xsl:text disable-output-escaping="yes">
&lt;!--
function checkMandatoryFields(f)
{
var message = "";

// validate the required fields
if (f.primaryApplicationDomain.selectedIndex == -1)
{
message += '- Primary application domain (please select one)\n';
}
if (f.SecondaryApplicationDomain.selectedIndex == -1)
{
message += '- Secondary application domain (please select one)\n';
}
if (f.studyArea.selectedIndex == -1)
{
message += '- Study area (please select one)\n';
}
if (f.projectTitle.value == "A project to ....")
{
message += '- Project Title\n'
}

if (f.outputFormat.selectedIndex == 1) //geotiff selected
{
(f.outputView.selectedIndex == -1)
{
+= '- View(s) for conversion to geotiff\n';
}

(f.outputChannel.selectedIndex == -1)
{


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 85



ICD.DOC

+= '- Channel(s) for conversion to geotiff\n';
}
}

if (message != "")
{
message = "Please complete the missing information\n\n" + message + "\n";
alert(message);
return false;
}

return true;
}

.
}
//--&gt;
</xsl:text>
</script>
<table width="200">
<thead>
<tr>
<th>
<a href="http://www.xxx.rl.ac.uk/" target="_blank">
<img src="http://... " alt="xxx" height="20" width="57" border="0"/>
</a>
</th>
</tr>
<tr>
<td class="stylesheetText">Please complete the following information before placing your order. Please note that information about your intended use of the
data is required by ESA for monitoring purposes.</td>
</tr>
</thead>
<tbody>
<tr>
<td CLASS="stylesheetBoldText" valign="bottom" align="left">
Description:
</td>
</tr>
<tr>
<td CLASS="stylesheetText" valign="top" align="left">
<textarea name="projectTitle" cols="25" rows="4" class="stylesheetText" title="Please provide a brief summary of what you intend to do with the data.">A
project to ....</textarea>
</td>
</tr>
<tr>
<td CLASS="stylesheetBoldText" valign="bottom" align="left">
Application Domain:
</td>
</tr>
<tr>
<td CLASS="stylesheetText" valign="top" align="left">
<SELECT NAME="primaryApplicationDomain" title="What is the science area that best describes your use of the data?">
<OPTION value="Atmosphere">Atmosphere</OPTION>
<OPTION value="Coastal Zones">Coastal Zones</OPTION>
<OPTION value="Geodesy">Geodesy</OPTION>
<OPTION value="Geology">Geology</OPTION>
<OPTION value="Hazards">Hazards </OPTION>
<OPTION value="Hydrology">Hydrology</OPTION>
<OPTION value="Ice">Ice </OPTION>
<OPTION value="Land Environment">Land Environment</OPTION>
<OPTION value="Methods">Methods</OPTION>
<OPTION value="Oceanography">Oceanography</OPTION>
<OPTION value="Renewable Resources">Renewable Resources</OPTION>
<OPTION value="Topographic Mapping">Topographic Mapping</OPTION>
<OPTION value="Other">Other </OPTION>
<OPTION value="Calibration/Validation">Calibration/Validation</OPTION>
<OPTION value="Sea-Ice">Sea-Ice </OPTION>
<OPTION value="Climate">Climate</OPTION>
</SELECT>
</td>
</tr>
<tr>
<td CLASS="stylesheetBoldText" valign="bottom" align="left">


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 86



ICD.DOC

Application Domain:
</td>
</tr>
<tr>
<td CLASS="stylesheetText" valign="top" align="left">
<SELECT NAME="SecondaryApplicationDomain" title="The second most applicable science area to your use of the data?">
<OPTION value="Atmosphere">Atmosphere</OPTION>
<OPTION value="Coastal Zones">Coastal Zones</OPTION>
<OPTION value="Geodesy">Geodesy</OPTION>
<OPTION value="Geology">Geology</OPTION>
<OPTION value="Hazards">Hazards </OPTION>
<OPTION value="Hydrology">Hydrology</OPTION>
<OPTION value="Ice">Ice </OPTION>
<OPTION value="Land Environment">Land Environment</OPTION>
<OPTION value="Methods">Methods</OPTION>
<OPTION value="Oceanography">Oceanography</OPTION>
<OPTION value="Renewable Resources">Renewable Resources</OPTION>
<OPTION value="Topographic Mapping">Topographic Mapping</OPTION>
<OPTION value="Other">Other </OPTION>
<OPTION value="Calibration/Validation">Calibration/Validation</OPTION>
<OPTION value="Sea-Ice">Sea-Ice </OPTION>
<OPTION value="Climate">Climate</OPTION>
</SELECT>
</td>
</tr>
<tr>
<td CLASS="stylesheetBoldText" valign="bottom" align="left">
Area:
</td>
</tr>
<tr>
<td CLASS="stylesheetText" valign="top" align="left">
<SELECT NAME="studyArea" title="The geographic area of your study?">
<OPTION value="Global">Global</OPTION>
<OPTION value="Various">Various</OPTION>
<OPTION value="Asia">Asia</OPTION>
<OPTION value="Europe">Europe</OPTION>
<OPTION value="Africa">Africa</OPTION>
<OPTION value="Australasia">Australasia</OPTION>
<OPTION value="North/Central America">North/Central America</OPTION>
<OPTION value="South America">South America</OPTION>
<OPTION value="Arctic/Anctartic/Grenland">Arctic/Anctartic/Grenland</OPTION>
<OPTION value="Pacific Ocean">Pacific Ocean</OPTION>
<OPTION value="Atlantic Ocean">Atlantic Ocean</OPTION>
<OPTION value="Indian Ocean">Indian Ocean</OPTION>
<OPTION value="Internal seas">Internal seas</OPTION>
</SELECT>
</td>
</tr>
<tr>
<td CLASS="stylesheetBoldText" valign="bottom" align="left">
Option:
</td>
</tr>
<tr>
<td CLASS="stylesheetText" valign="top" align="left">
<SELECT NAME="outputFormat" title="Please select the output format for this product" onchange="showHideFormatOptions(this)">
<OPTION value="sadist-2" selected="selected">sadist-2 (all channels, both views)</OPTION>
<OPTION value="geotiff">geotiff (1 channel/view per output file)</OPTION>
</SELECT>
</td>
</tr>
<tr>
<th class="stylesheetBoldText">Note</th>
</tr>
<tr>
<td class="stylesheetSmText">If you select geotiff output format, you can select the view and channel combinations you want to be delivered as output
geotiff files. If you select sadist-2 as the output format, these options will be ignored as the output product contains both views and all available channels.
Use CTRL for mutliple selections.</td>
</tr>
</tbody>
</table>
<div style="position:relative;">
<div name="formatOptions" id="formatOptions" style="visibility:hidden;">


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 87



ICD.DOC

<table>
<tr>
<td CLASS="stylesheetBoldText" valign="bottom" align="left">
:
</td>
</tr>
<tr>
<td CLASS="stylesheetText" valign="top" align="left">
<SELECT NAME="outputView" size="2" multiple="true">
<OPTION value="nadir">nadir</OPTION>
<OPTION value="forward">forward</OPTION>
</SELECT>
</td>
</tr>
<tr>
<td CLASS="stylesheetBoldText" valign="bottom" align="left">
:
</td>
</tr>
<tr>
<td CLASS="stylesheetText" valign="top" align="left">
<SELECT NAME="outputChannel" size="7" multiple="true">
<OPTION value="B0.55">B0.55 (0.5 micron channel)</OPTION>
<OPTION value="B0.67">B0.67 (0.67 micron channel)</OPTION>
<OPTION value="B0.87">B0.87 (0.87 micron channel)</OPTION>
<OPTION value="B1.60">B1.60 (1.6 micron channel)</OPTION>
<OPTION value="B3.70">B3.70 (3.7 micron channel)</OPTION>
<OPTION value="B10.8">B10.8 (10.8 micron channel)</OPTION>
<OPTION value="B12.0">B12.0 (12.0 micron channel)</OPTION>
</SELECT>
</td>
</tr>
</table>
</div>
</div>
</xsl:template>
<!-- ***************************************************************************
Template used to generate Order Input XML format
*************************************************************************** !-->
<xsl:template match="mass:sendOrderInput" mode="XML">
<mass:commonInput>
<mass:orderId>
<xsl:value-of select="orderId"/>
</mass:orderId>
</mass:commonInput>
<sendOrderInput xmlns="http://www.xxx.com/ws/atsr">
<userId>
<xsl:value-of select="userId"/>
</userId>
<resTitle>
<xsl:value-of select="selectedItem"/>
</resTitle>-->
<ESACat1Info>
<projectTitle>
<xsl:value-of select="projectTitle"/>
</projectTitle>
<primaryApplicationDomain>
<xsl:value-of select="primaryApplicationDomain"/>
</primaryApplicationDomain>
<SecondaryApplicationDomain>
<xsl:value-of select="SecondaryApplicationDomain"/>
</SecondaryApplicationDomain>
<studyArea>
<xsl:value-of select="studyArea"/>
</studyArea>
</ESACat1Info>
<outputOptions>
<outputFormat>
<xsl:value-of select="outputFormat"/>
</outputFormat>
<xsl:if test="outputFormat[. = 'geotiff']">
<outputViewSet>
<xsl:for-each select="outputView">
<outputView>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 88



ICD.DOC

<xsl:value-of select="."/>
</outputView>
</xsl:for-each>
</outputViewSet>
<outputChannelSet>
<xsl:for-each select="outputChannel">
<outputChannel>
<xsl:value-of select="."/>
</outputChannel>
</xsl:for-each>
</outputChannelSet>
</xsl:if>
</outputOptions>
</sendOrderInput>
</xsl:template>
<!-- ***************************************************************************
Template used to generate Order Output HTML format
*************************************************************************** !-->
<xsl:template match="sns:getOrderOutput">
<table border="1">
<xsl:choose>
<xsl:when test="sns:timePeriodOfService">
<tr height="30">
<th class="stylesheetHeader">
period
</th>
<td class="stylesheetText">
<xsl:value-of select="sns:timePeriodOfService"/> days
</td>
</tr>
</xsl:when>
</xsl:choose>
<tr>
<th class="stylesheetHeader">Result</th>
<td>
<xsl:for-each select="sns:orderResultSet/sns:orderResult">
<table border="1">
<tbody>
<xsl:choose>
<xsl:when test="mass:view">
<tr height="30">
<th class="stylesheetHeader">
channel
</th>
<td class="stylesheetText">
<xsl:value-of select="sns:view"/>
</td>
</tr>
</xsl:when>
</xsl:choose>
<xsl:choose>
<xsl:when test="sns:channel">
<tr height="30">
<th class="stylesheetHeader">
channel
</th>
<td class="stylesheetText">
<xsl:value-of select="sns:view"/>
</td>
</tr>
</xsl:when>
</xsl:choose>
<xsl:choose>
<xsl:when test="sns:orderResultURL">
<tr height="30">
<th class="stylesheetHeader">
Result File:
</th>
<td class="stylesheetText">
<a target="_blank">
<xsl:attribute name="href">ftp://<xsl:value-of select="../../sns:userName"/>:<xsl:value-of select="../../sns:password"/>@<xsl:value-of select="substring-
after(sns:orderResultURL,'//')"/></xsl:attribute>ftp://<xsl:value-of select="../../sns:userName"/>:<xsl:value-of select="../../sns:password"/>@<xsl:value-of
select="substring-after(sns:orderResultURL,'//')"/>
</a>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 89



ICD.DOC

</td>
</tr>
</xsl:when>
</xsl:choose>
<xsl:choose>
<xsl:when test="mass:productSize">
<tr height="30">
<th class="stylesheetHeader">
size (kb)
</th>
<td class="stylesheetText">
<xsl:value-of select="sns:productSize"/>
</td>
</tr>
</xsl:when>
</xsl:choose>
<xsl:choose>
<xsl:when test="sns:failureMessage">
<tr height="30">
<th class="stylesheetHeader">
Message:
</th>
<td class="stylesheetText">
<xsl:value-of select="sns:failureMessage"/>
</td>
</tr>
</xsl:when>
</xsl:choose>
</tbody>
</table>
</xsl:for-each>
</td>
</tr>
<!-- Display GML footprint if present -->
<xsl:if test="//mass:viewFileResult">
<xsl:apply-templates select="//mass:viewFileResult"/>
<tr>
<th class="stylesheetHeader">viewFileResult URL</th>
<td class="stylesheetText">
<a>
<xsl:attribute name="href"><xsl:value-of select="//mass:fileURL"/></xsl:attribute>
<xsl:value-of select="//mass:fileURL"/>
</a>
</td>
</tr>
</xsl:if>
<xsl:choose>
<xsl:when test="mass:statusInfo/mass:statusMsg">
<tr height="30">
<th class="stylesheetHeader">
Status:
</th>
<td class="stylesheetText">
<xsl:value-of select="mass:statusInfo/mass:statusMsg"/>
</td>
</tr>
</xsl:when>
</xsl:choose>
</table>
</xsl:template>
</xsl:stylesheet>
5.2 Asynchronous RFQ Example
See 5.1 with Order replaced by RFQ: e.g. the callback SOAP action becomes
returnRFQResult.


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 90



ICD.DOC

5.3 Synchronous Order Example
The following example is based on an example service installed behind the Apache Axis 1.2
webservice framework. The service can be registered to the SSE via the Service Registration
wizard, using Order Interface: Default SSE synchronous and asynchronous Order Registration
(Version: 1.6+ ) interface and the service description files to be described in the following
subsections. This example demonstrates how to get input from Users (to process an order request),
and return the order results to Users via the SSE. And this communication is done synchronously.

5.3.1 Service WSDL File
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:sse="http://www.esa.int/mass"
xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
xmlns:tns="http://www.mycompanyname.com/ws/mynamespace"
xmlns:wsa="http://schemas.xmlsoap.org/ws/2003/03/addressing"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
targetNamespace="http://www.mycompanyname.com/ws/mynamespace">
<types>
<schema attributeFormDefault="qualified" elementFormDefault="qualified"
targetNamespace="http://schemas.xmlsoap.org/wsdl/"
xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://www.mycompanyname.com/ws/mynamespace"
schemaLocation="./processOrder.xsd"/>
<import namespace="http://schemas.xmlsoap.org/ws/2003/03/addressing"
schemaLocation="http://services.eoportal.org/schemas/1.6/sseSchemas/ws-addressing.xsd"/>
</schema>
</types>
<message name="processOrderRequestMsg">
<part name="parameters" element="tns:processOrderInputMsg"/>
</message>
<message name="processOrderResponseMsg">
<part name="parameters" element="tns:processOrderOutputMsg"/>
</message>
<portType name="ExampleSynchronousOrderService">
<operation name="processOrder">
<input name="processOrderRequestMsg"
message="tns:processOrderRequestMsg"/>
<output name="processOrderResponseMsg"
message="tns:processOrderResponseMsg"/>
</operation>
</portType>
<binding name="ExampleSynchronousOrderServiceSoapBinding"
type="tns:ExampleSynchronousOrderService">
<wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="processOrder">
<wsdlsoap:operation soapAction="processOrder"/>
<input>
<wsdlsoap:body use="literal"/>
</input>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 91



ICD.DOC

<output>
<wsdlsoap:body use="literal"/>
</output>
</operation>
</binding>
<service name="ExampleSynchronousOrderService">
<port name="ExampleSynchronousOrderService"
binding="tns:ExampleSynchronousOrderServiceSoapBinding">
<wsdlsoap:address location="http://localhost:8080/axis/services/ESyncOrder"/>
</port>
</service>
</definitions>
5.3.2 Service Schema File
<xsd:schema xmlns="http://www.mycompanyname.com/ws/mynamespace"
xmlns:sse="http://www.esa.int/mass"
xmlns:aoi="http://www.esa.int/xml/schemas/mass/aoifeatures"
xmlns:sse_eoli="http://www.esa.int/sse_eoli" xmlns:oi="http://www.esa.int/oi"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.mycompanyname.com/ws/mynamespace"
elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0">
<xsd:import namespace="http://www.esa.int/mass"
schemaLocation="http://services.eoportal.org/schemas/1.6/sseSchemas/sse_basic.xsd"/>
<xsd:import namespace="http://www.esa.int/xml/schemas/mass/aoifeatures"
schemaLocation="http://services.eoportal.org/schemas/1.6/sseSchemas/aoifeatures.xsd"/>
<xsd:import namespace="http://www.esa.int/sse_eoli"
schemaLocation="http://services.eoportal.org/schemas/1.6/sseSchemas/eoli/2.4/sse_eoli.xsd"/>
<xsd:import namespace="http://www.esa.int/oi"
schemaLocation="http://services.eoportal.org/schemas/1.6/sseSchemas/oi.xsd"/>
<!-- Synchronous Order -->
<xsd:element name="processOrderInputMsg">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="sse:commonInput"/>
<!--<xsd:element ref="searchInput" minOccurs="0"/>-->
<xsd:element ref="sse_eoli:searchOutput" minOccurs="0"
maxOccurs="unbounded"/>
<xsd:element ref="sendOrderInput"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="processOrderOutputMsg">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="getOrderOutput"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- Common Order -->


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 92



ICD.DOC

<xsd:element name="sendOrderInput" type="OrderInputType">
<xsd:annotation>
<xsd:documentation>contains a service's order input
parameters</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:complexType name="OrderInputType">
<xsd:annotation>
<xsd:documentation>service's order input parameters are in this type. The
service-specific info must be added at the end of this type definition.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element ref="oi:originPart" minOccurs="0"/>
<xsd:element ref="aoi:areaOfInterest" minOccurs="0"/>
<xsd:element name="serviceSpecificInputAttribute"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="getOrderOutput" type="OrderOutputType">
<xsd:annotation>
<xsd:documentation>contains a service's order result</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:complexType name="OrderOutputType">
<xsd:annotation>
<xsd:documentation>service's order results are in this type. Normally, the
service-specific info must be added at the end of this type definition. </xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element ref="sse:statusInfo"/>
<xsd:element ref="sse:viewFileResult" minOccurs="0"
maxOccurs="unbounded"/>
<xsd:element ref="sse:viewEmbeddedResult" minOccurs="0"
maxOccurs="unbounded"/>
<xsd:element name="serviceSpecificOutputAttribute"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
5.3.3 SOAP Messages
5.3.3.1 ProcessOrder SOAP HTTP Request
POST /axis/services/ESyncOrder HTTP/1.0
Content-Type: text/xml; charset=utf-8
Accept: application/soap+xml, application/dime, multipart/related, text/*
User-Agent: Axis/#axisVersion#
Host: 127.0.0.1:9999
Cache-Control: no-cache
Pragma: no-cache


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 93



ICD.DOC

SOAPAction: "processOrder"
Content-Length: 695
Connection: close

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance"><soapenv:Body><processOrderInputMsg
xmlns="http://www.mycompanyname.com/ws/mynamespace"
xmlns:aoi="http://www.esa.int/xml/schemas/mass/aoifeatures"
xmlns:gml="http://www.opengis.net/gml" xmlns:oi="http://www.esa.int/oi"
xmlns:sse="http://www.esa.int/mass"><commonInput
xmlns="http://www.esa.int/mass"><orderId>05811D80</orderId></commonInput><sendOrder
Input><serviceSpecificInputAttribute1>input attribute 1
value</serviceSpecificInputAttribute1></sendOrderInput></processOrderInputMsg></soapenv
:Body></soapenv:Envelope>
5.3.3.2 ProcessOrder SOAP HTTP Response
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/xml;charset=utf-8
Date: Mon, 20 Jun 2011 14:05:03 GMT
Connection: close

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body><processOrderOutputMsg
xmlns="http://www.mycompanyname.com/ws/mynamespace"
xmlns:aoi="http://www.esa.int/xml/schemas/sse/aoifeatures" xmlns:oi="http://www.esa.int/oi"
xmlns:sse="http://www.esa.int/mass">
<getOrderOutput>
<sse:statusInfo>
<sse:statusId>0</sse:statusId>
<sse:statusMsg>Success</sse:statusMsg>
</sse:statusInfo>
<serviceSpecificOutputAttribute1>Service specific output attribute 1
value</serviceSpecificOutputAttribute1>
</getOrderOutput>
</processOrderOutputMsg> </soapenv:Body>
</soapenv:Envelope>
5.3.4 Service Stylesheet
<xsl:stylesheet version="1.0" xmlns:sns="http://www.mycompanyname.com/ws/mynamespace"
xmlns:sse="http://www.esa.int/mass"
xmlns:aoi="http://www.esa.int/xml/schemas/mass/aoifeatures" xmlns:oi="http://www.esa.int/oi"


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 94



ICD.DOC

xmlns:gml="http://www.opengis.net/gml"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- *********************************************************
imported stylesheets those have parts relative to http://sseURL/wsdl/
********************************************************* -->
<xsl:import href="./sse_common.xsl"/>
<!-- *********************************************************
Parameter used to specify which part of this style sheet will be applied
********************************************************* -->
<xsl:param name="part"/>
<!-- *********************************************************
Dispatching to the requested template based on the required operation
and on step e.g. display html input, preparing xml message for the workflow or
formating operation results into html format
********************************************************* -->
<xsl:template match="/*">
<xsl:choose>
<!-- order input form html -->
<xsl:when test="$part='sendOrderInputHTML'">
<xsl:apply-templates select="sse:sendOrderInput"/>
</xsl:when>
<!-- build processOrderInputMsg to send to remote endpoint-->
<xsl:when test="$part='processOrderInputXML'">
<sns:processOrderInputMsg
xmlns:sns="http://www.mycompanyname.com/ws/mynamespace"
xmlns="http://www.mycompanyname.com/ws/mynamespace"
xmlns:aoi="http://www.esa.int/xml/schemas/mass/aoifeatures"
xmlns:sse="http://www.esa.int/mass" xmlns:oi="http://www.esa.int/oi">
<xsl:apply-templates select="sse:sendOrderInput" mode="XML"/>
</sns:processOrderInputMsg>
</xsl:when>
<!-- order result html -->
<xsl:when test="$part='getOrderOutputHTML'">
<!--service namespace is used -->
<xsl:apply-templates select="sns:getOrderOutput"/>
</xsl:when>
<xsl:otherwise/>
</xsl:choose>
</xsl:template>
<!-- Template for the Order input information using HTML format -->
<xsl:template match="sse:sendOrderInput">
<!--insert here HTML code to collect Order specific input data -->
<table border="0" cellpadding="0" cellspacing="0" class="celltablesm" width="100%">

<tr>
<td class="stylesheetBoldText">Service specific input attribute 1: </td>
<td class="stylesheetText">
<input name="serviceSpecificInputAttribute1" type="text"/>
</td>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 95



ICD.DOC

</tr>
</table>
</xsl:template>
<!-- Template for the order input information using XML format -->
<xsl:template match="sse:sendOrderInput" mode="XML">
<sse:commonInput>
<sse:orderId>
<xsl:value-of select="orderId"/>
</sse:orderId>
</sse:commonInput>
<sendOrderInput xmlns="http://www.mycompanyname.com/ws/mynamespace">
<xsl:copy-of select="AOI/*"/>
<serviceSpecificInputAttribute1>
<xsl:value-of select="serviceSpecificInputAttribute1"/>
</serviceSpecificInputAttribute1>
</sendOrderInput>
</xsl:template>
<!-- Template for the order output information using HTML format -->
<xsl:template match="sns:getOrderOutput">
<!-- insert here HTML code to display Order results according to the Service
OrderOutputType definition
statement are given herafter for example-->
<xsl:choose>
<xsl:when test="not(starts-with(string(sse:statusInfo/sse:statusId) ,'0'))">
<!-- This order is invalid, display error messages -->
<table>
<tr height="30">
<td class="stylesheetBoldText">
Error: </td>
<td class="stylesheetText">
<xsl:value-of
select="sse:statusInfo/sse:statusMsg"/>
</td>
</tr>
</table>
</xsl:when>
<xsl:otherwise>
<!-- nominal case -->
<table>
<tr height="30">
<td class="stylesheetBoldText">Service specific output
attribute 1: </td>
<td class="stylesheetText">
<xsl:value-of
select="sns:serviceSpecificOutputAttribute1"/>
</td>
</tr>
</table>
</xsl:otherwise>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 96



ICD.DOC

</xsl:choose>
</xsl:template>
</xsl:stylesheet>

5.4 Synchronous RFQ Example
See 5.3 with Order replaced by RFQ.


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 97



ICD.DOC

6. INTERFACE WITH SERVICE REPOSITORY
The SSE Portal provides two interfaces to his Services repository:
a WS-Inspection (see [RD8]) compliant interface
an optional UDDI compliant interface: this interface is not systematically deployed on
all SSE instances.
As already mentioned in section 2.1, the BPEL Designer tool allows to define the workflows that
can be deployed on the SSE Portal. While designing workflows, the Service Provider may need to
specify calls to existing SSE basic services. In order to help the Service Provider in this task, the
SSE Portal has implemented a WS-Inspection compliant interface. In order to take advantage of this
interface, the Service Provider has to specify the SSE Portal WS-Inspection URL in the BPEL
designer tool configuration. Having done that, the WSDL files of the services already deployed on
the SSE Portal, will become available for selection in the BPEL designer tool.
The SSE Portal WS-Inspection URL, depending on the SSE Portal host, looks like
http://services.eoportal.org/inspection.wsil.
The interface to UDDI registry is not yet supported bythe BPEL Designer tool.
When deployed, the SSE UDDI registry, depending on the SSE Portal host, looks like
http://services.eoportal.org/juddi/inquiry.













SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 98



ICD.DOC

7. ANNEX A : SCHEMA FILES
The following schema files are available for download at http://services.eoportal.org/schemas/1.6/.
7.1 sse_basic.xsd
The sse_basic schema contains the basic elements referenced by the service schema. It replaces the
sse_common.xsd: the purpose is to make this basic schema independent of the catalogue protocol
and of the aoifeatures schema.
<xsd:schema xmlns="http://www.esa.int/mass" xmlns:oi="http://www.esa.int/oi"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.esa.int/mass"
elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0">
<xsd:import namespace="http://www.esa.int/oi" schemaLocation="oi.xsd"/>
<!--standard/common basic elements -->
<xsd:complexType name="CommonInputType">
<xsd:annotation>
<xsd:documentation>Common input for all business functions</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="orderId" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="StatusInfoType">
<xsd:annotation>
<xsd:documentation>status info of the processing of a service's business functions is in this type.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="statusId" type="xsd:nonNegativeInteger" default="0">
<xsd:annotation>
<xsd:documentation>0 for nominal status</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="statusMsg" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="commonInput" type="CommonInputType">
<xsd:annotation>
<xsd:documentation>contains common info of a service business function</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="statusInfo" type="StatusInfoType">
<xsd:annotation>
<xsd:documentation>contains status info about the processing of a service's business functions</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="id" type="xsd:string"/>
<xsd:element name="price" type="oi:PriceType"/>
<!-- View Result -->
<xsd:element name="viewEmbeddedResult" type="EmbeddedResultType">
<xsd:annotation>
<xsd:documentation>Represent a file URL, file which can be displayed by a SSE viewer</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:complexType name="EmbeddedResultType">


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 99



ICD.DOC

<xsd:annotation>
<xsd:documentation>Data to be displayed and also embedded type information so that a viewer can be
associated</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="embeddedResult" type="xsd:anyType">
<xsd:annotation>
<xsd:documentation>content to be displayed</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="embeddedType" type="xsd:string">
<xsd:annotation>
<xsd:documentation>String that is used to determine which viewer will be used e.g GML, KML</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="viewFileResult" type="FileResultType">
<xsd:annotation>
<xsd:documentation>Represent a file URL, file which can be displayed by a SSE viewer</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:complexType name="FileResultType">
<xsd:annotation>
<xsd:documentation>File location that also includes a file type information so that a file viewer can be
associated</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="fileURL" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>URL of the file : for the GML viewer it must be a http URL</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="fileType" type="xsd:string">
<xsd:annotation>
<xsd:documentation>String that is used to determine which viewer will be used e.g GML, SHAPE, WMSURL,
WMCFileURL, WFSURL.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="conversationId" type="xsd:string">
<xsd:annotation>
<xsd:documentation> id to trace the request and response of an asynchronous in SSE</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="parentId" type="xsd:string"/>
<xsd:element name="searchCollections" type="SearchCollectionsType">
<xsd:annotation>
<xsd:documentation>element that contains the CollectionIds that will be searched for</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:complexType name="SearchCollectionsType">
<xsd:annotation>
<xsd:documentation>type of the ouput message of a service's process Search soap operation</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element ref="parentId" maxOccurs="unbounded"/>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 100



ICD.DOC

</xsd:sequence>
</xsd:complexType>
<xsd:element name="overlap" type="xsd:string"/>
<!--
types needed for the internal interface between the portal and the authorisation workflow
-->
<xsd:element name="authorisationState">
<xsd:annotation>
<xsd:documentation> status of the authorisation from the authorising team</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="ACCEPTED"/>
<xsd:enumeration value="REJECTED"/>
<xsd:enumeration value="TBD"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<!--sample complete business action messages-->
<xsd:element name="sendAuthorisationInputMsg">
<xsd:annotation>
<xsd:documentation>contains the sending Authorisation Input Msg</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="conversationId"/>
<xsd:element name="authorisationInput">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="userInfo">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="portalUserID" type="xsd:string"/>
<xsd:element name="portalFirstName" type="xsd:string"/>
<xsd:element name="portalLastName" type="xsd:string"/>
<xsd:element name="portalEmail" type="xsd:string"/>
<xsd:element name="portalAddress" type="xsd:string"/>
<xsd:element name="portalPhone" type="xsd:string"/>
<xsd:element name="portalDdsAddress" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="returnAuthorisationInputMsg">
<xsd:annotation>
<xsd:documentation>contains the returned Authorisation Input Msg</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="conversationId"/>
<xsd:element name="authorisationOutput">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="authorisationState"/>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 101



ICD.DOC

</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>





SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 102



ICD.DOC


7.2 AOI Features Schema and Example
The AOI and gml schemas listed in this section are available at
http://services.eoportal.org/schemas/1.6/gml/.
7.2.1 AOI Features GML212 application schema
7.2.1.1 GML212 aoifeatures.xsd

<?xml version="1.0" encoding="UTF-8"?>
<!--==============================================================
File: aoifeatures.xsd
Version: v3.0.2 2004-06-01
Author: Kristof Vydt
Company: G.I.M. Geographic Information Management nv
==============================================================-->
<xsd:schema targetNamespace="http://www.esa.int/xml/schemas/mass/aoifeatures" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:aoi="http://www.esa.int/xml/schemas/mass/aoifeatures" xmlns:gml="http://www.opengis.net/gml" elementFormDefault="qualified" version="1.0">
<xsd:annotation>
<xsd:appinfo>aoifeatures.xsd v3.0.2 2004-06-01</xsd:appinfo>
<xsd:documentation>GML v2 Schema for AOI features.</xsd:documentation>
</xsd:annotation>
<!--==============================================================
Import constructs from the GML Feature and Geometry schemas
==============================================================-->
<xsd:import namespace="http://www.opengis.net/gml" schemaLocation="feature.xsd"/>
<!--================================================================
Global element Declarations
================================================================-->
<xsd:element name="areaOfInterest" type="aoi:AreaOfInterestType" substitutionGroup="gml:_FeatureCollection"/>
<!--================================================================
Privat element Declarations
================================================================-->
<xsd:element name="Feature" type="aoi:FeatureType" substitutionGroup="gml:_Feature"/>
<!--==============================================================
Type definitions
==============================================================-->
<xsd:complexType name="AreaOfInterestType">
<xsd:complexContent>
<xsd:extension base="gml:AbstractFeatureCollectionType"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="GeometryType">
<xsd:sequence>
<xsd:choice>
<xsd:element ref="gml:Polygon"/>
<xsd:element ref="gml:MultiPolygon"/>
</xsd:choice>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="FeatureType">
<xsd:complexContent>
<xsd:extension base="gml:AbstractFeatureType">
<xsd:sequence>
<xsd:element name="Code" type="xsd:string" minOccurs="0"/>
<xsd:element name="Label" type="xsd:string" minOccurs="0"/>
<xsd:element name="Geometry" type="aoi:GeometryType"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:schema>


7.2.1.2 GML212 AOI Features Example
<?xml version="1.0" encoding="UTF-8"?>
<areaOfInterest xmlns="http://www.esa.int/xml/schemas/mass/aoifeatures" xmlns:gml="http://www.opengis.net/gml"
xmlns:aoi="http://www.esa.int/xml/schemas/mass/aoifeatures" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.esa.int/xml/schemas/mass/aoifeatures http://services.eoportal.org/schemas/1.6/gml/GML2/aoifeatures.xsd">
<gml:boundedBy>
<gml:Box srsName="EPSG:4326">
<gml:coordinates>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 103



ICD.DOC

-14.6751008026815,-2.85467688605412
105.727430782956,60.5150765800706
</gml:coordinates>
</gml:Box>
</gml:boundedBy>
<!-- example of a rectangle -->
<gml:featureMember>
<aoi:Feature>
<gml:boundedBy>
<gml:Box srsName="EPSG:4326">
<gml:coordinates>
43.3571022621025,21.4926494456675
58.3668781924833,40.837675558476
</gml:coordinates>
</gml:Box>
</gml:boundedBy>
<aoi:Code>Some code 1</aoi:Code>
<aoi:Label>Some label 1</aoi:Label>
<aoi:Geometry>
<gml:Polygon srsName="EPSG:4326">
<gml:outerBoundaryIs>
<gml:LinearRing>
<gml:coordinates>
43.3571022621025,40.837675558476
43.3571022621025,21.4926494456675
58.3668781924833,21.4926494456675
58.3668781924833,40.837675558476
43.3571022621025,40.837675558476
</gml:coordinates>
</gml:LinearRing>
</gml:outerBoundaryIs>
</gml:Polygon>
</aoi:Geometry>
</aoi:Feature>
</gml:featureMember>
<!-- example of a multipolygon with hole -->
<gml:featureMember>
<aoi:Feature>
<gml:boundedBy>
<gml:Box srsName="EPSG:4326">
<gml:coordinates>
-14.6751008026815,-2.85467688605412
105.727430782956,60.5150765800706
</gml:coordinates>
</gml:Box>
</gml:boundedBy>
<aoi:Code>Some code 2</aoi:Code>
<aoi:Label>Some label 2</aoi:Label>
<aoi:Geometry>
<gml:MultiPolygon srsName="EPSG:4326">
<gml:polygonMember>
<gml:Polygon srsName="EPSG:4326">
<gml:outerBoundaryIs>
<gml:LinearRing>
<gml:coordinates>
24.6808513499644,43.8388256679325
22.6797012405078,21.8261744639103
46.3599775357439,-2.52115186781135
86.0494547066326,-2.85467688605412
105.727430782956,41.1706255219905
73.7090290316504,60.5150765800706
37.6883270614321,57.8468764341285
24.6808513499644,43.8388256679325
</gml:coordinates>
</gml:LinearRing>
</gml:outerBoundaryIs>
<gml:innerBoundaryIs>
<gml:LinearRing>
<gml:coordinates>
58.7004032107261,45.1729257409036
42.024152298588,41.837675558476
41.3571022621025,21.4926494456675
58.3668781924833,8.15164871595702
80.0460043782628,13.821574026084
83.3812545606905,32.4989750476786
58.7004032107261,45.1729257409036
</gml:coordinates>
</gml:LinearRing>
</gml:innerBoundaryIs>
</gml:Polygon>
</gml:polygonMember>
<gml:polygonMember>
<gml:Polygon srsName="EPSG:4326">
<gml:outerBoundaryIs>
<gml:LinearRing>
<gml:coordinates>
2.66820014594208,47.5076008686029
-7.67107541958353,48.841700941574
-14.6751008026815,42.8382506132043
-14.3415757844388,34.5001251571352
-5.33640029188419,29.4972498834938


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 104



ICD.DOC

2.66820014594208,30.4978249382221
9.67222552904008,37.1683253030773
8.6716504743118,43.5053006496898
2.66820014594208,47.5076008686029
</gml:coordinates>
</gml:LinearRing>
</gml:outerBoundaryIs>
</gml:Polygon>
</gml:polygonMember>
</gml:MultiPolygon>
</aoi:Geometry>
</aoi:Feature>
</gml:featureMember>
</areaOfInterest>


7.2.2 AOI Features GML311 application schema
7.2.2.1 GML311 aoifeatures.xsd

<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v2004 rel. 4 U (http://www.xmlspy.com) by Joeri Theelen (GIM NV) -->
<!--==============================================================
File: aoifeatures.xsd
Version: v4.4.0 2007-08-21
Author: Stefaan Desender
Company: GIM Geographic Information Management nv
==============================================================-->
<xsd:schema targetNamespace="http://www.esa.int/xml/schemas/mass/aoifeatures" elementFormDefault="qualified" version="1.0"
xmlns:gml="http://www.opengis.net/gml" xmlns:aoi="http://www.esa.int/xml/schemas/mass/aoifeatures"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:annotation>
<xsd:appinfo>aoifeatures.xsd v4.4.0 2007-08-21</xsd:appinfo>
<xsd:documentation>GML v3 Schema for AOI features.</xsd:documentation>
</xsd:annotation>
<!--==============================================================
Import constructs from the GML Feature and Geometry schemas
==============================================================-->
<xsd:import namespace="http://www.opengis.net/gml" schemaLocation="gml/3.1.1/base/gml.xsd"/>
<!--================================================================
Global element Declarations
================================================================-->
<xsd:element name="AreaOfInterest" type="aoi:AreaOfInterestType" substitutionGroup="gml:_FeatureCollection"/>
<!--================================================================
Private element Declarations
================================================================-->
<xsd:element name="Feature" type="aoi:FeatureType" substitutionGroup="gml:_Feature"/>
<!--==============================================================
Type definitions
==============================================================-->
<xsd:complexType name="AreaOfInterestType">
<xsd:complexContent>
<xsd:restriction base="gml:AbstractFeatureCollectionType">
<xsd:sequence>
<xsd:element ref="gml:boundedBy" minOccurs="0"/>
<xsd:element ref="gml:featureMember" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute ref="gml:id" use="required"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="featureMember" substitutionGroup="gml:featureMember">
<xsd:complexType>
<xsd:complexContent>
<xsd:restriction base="gml:FeaturePropertyType">
<xsd:sequence>
<xsd:element ref="aoi:Feature"/>
</xsd:sequence>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="RestrictedAbstractFeatureType" abstract="true">


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 105



ICD.DOC

<xsd:complexContent>
<xsd:restriction base="gml:AbstractFeatureType">
<xsd:sequence>
<xsd:element ref="gml:boundedBy" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute ref="gml:id" use="required"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="FeatureType">
<xsd:complexContent>
<xsd:extension base="aoi:RestrictedAbstractFeatureType">
<xsd:sequence>
<xsd:element name="code" type="xsd:token" minOccurs="0"/>
<xsd:element name="label" type="xsd:normalizedString" minOccurs="0"/>
<xsd:element name="geometry" type="aoi:GeometryPropertyType"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="GeometryPropertyType">
<xsd:sequence>
<xsd:choice>
<xsd:element ref="gml:Point"/>
<xsd:element ref="gml:MultiPoint"/>
<xsd:element ref="gml:LineString"/>
<xsd:element ref="gml:MultiCurve"/>
<xsd:element ref="gml:Polygon"/>
<xsd:element ref="gml:MultiSurface"/>
</xsd:choice>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>

7.2.2.2 GML311 AOI Features example

<AreaOfInterest xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sch="http://www.ascc.net/xml/schematron"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" gml:id="SSEAOI20061110125055" xsi:schemaLocation="http://www.esa.int/xml/schemas/mass/aoifeatures
http://services.eoportal.org/schemas/1.6/gml/GML3.1.1/aoifeatures.xsd" xmlns:aoi="http://www.esa.int/xml/schemas/mass/aoifeatures"
xmlns="http://www.esa.int/xml/schemas/mass/aoifeatures">
<gml:boundedBy>
<gml:Envelope srsName="EPSG:4326">
<gml:lowerCorner>0.0000 48.0000</gml:lowerCorner>
<gml:upperCorner>5.7164 52.1467</gml:upperCorner>
</gml:Envelope>
</gml:boundedBy>
<gml:featureMember>
<aoi:Feature gml:id="SSEAOI20061110125055.11413158">
<gml:boundedBy>
<gml:Envelope srsName="EPSG:4326">
<gml:lowerCorner>3.8526 51.0509</gml:lowerCorner>
<gml:upperCorner>4.6382 51.8140</gml:upperCorner>
</gml:Envelope>
</gml:boundedBy>
<aoi:geometry>
<gml:Polygon gml:id="polygon.23828777" srsName="EPSG:4326">
<gml:exterior>
<gml:LinearRing>
<gml:pos>3.8526 51.0509</gml:pos>
<gml:pos>3.8526 51.8140</gml:pos>
<gml:pos>4.6382 51.8140</gml:pos>
<gml:pos>4.6382 51.0509</gml:pos>
<gml:pos>3.8526 51.0509</gml:pos>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</aoi:geometry>
</aoi:Feature>
</gml:featureMember>
<gml:featureMember>
<aoi:Feature gml:id="SSEAOI20061110125055.25561931">
<gml:boundedBy>
<gml:Envelope srsName="EPSG:4326">
<gml:lowerCorner>4.1444 50.5796</gml:lowerCorner>
<gml:upperCorner>4.8402 50.9499</gml:upperCorner>
</gml:Envelope>
</gml:boundedBy>
<aoi:geometry>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 106



ICD.DOC

<gml:Polygon gml:id="polygon.21994751" srsName="EPSG:4326">
<gml:exterior>
<gml:LinearRing>
<gml:pos>4.2229 50.9163</gml:pos>
<gml:pos>4.8402 50.9499</gml:pos>
<gml:pos>4.7279 50.6694</gml:pos>
<gml:pos>4.3015 50.5796</gml:pos>
<gml:pos>4.1444 50.6806</gml:pos>
<gml:pos>4.1444 50.8153</gml:pos>
<gml:pos>4.2229 50.9163</gml:pos>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</aoi:geometry>
</aoi:Feature>
</gml:featureMember>
<gml:featureMember>
<aoi:Feature gml:id="SSEAOI20061110125055.30764650">
<gml:boundedBy>
<gml:Envelope srsName="EPSG:4326">
<gml:lowerCorner>5.1535 50.8368</gml:lowerCorner>
<gml:upperCorner>5.7164 51.3997</gml:upperCorner>
</gml:Envelope>
</gml:boundedBy>
<aoi:geometry>
<gml:Polygon gml:id="circle.21230365" srsName="EPSG:4326">
<gml:exterior>
<gml:Ring>
<gml:curveMember>
<gml:Curve gml:id="curve.21230365">
<gml:segments>
<gml:CircleByCenterPoint numArc="1">
<gml:pos>5.4349 51.1183</gml:pos>
<gml:radius uom="urn:ogc:def:uom:OGC:degree">0.2814477287827705</gml:radius>
</gml:CircleByCenterPoint>
</gml:segments>
</gml:Curve>
</gml:curveMember>
</gml:Ring>
</gml:exterior>
</gml:Polygon>
</aoi:geometry>
</aoi:Feature>
</gml:featureMember>
</AreaOfInterest>

7.3 GML Service Result Schema and Example
7.3.1 Service Result Features GML212 application schema
7.3.1.1 GML212 serviceresult.xsd

<?xml version="1.0" encoding="UTF-8"?>
<!--==============================================================
File: serviceresult.xsd
Version: v3.0 2004-04
Author: Kristof Vydt
Company: G.I.M. Geographic Information Management nv
==============================================================-->
<xsd:schema targetNamespace="http://www.esa.int/xml/schemas/mass/serviceresult"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sr="http://www.esa.int/xml/schemas/mass/serviceresult"
xmlns:gml="http://www.opengis.net/gml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
elementFormDefault="qualified"
version="1.0">

<xsd:annotation>
<xsd:appinfo>srfeatures.xsd v3.0 2004-04</xsd:appinfo>
<xsd:documentation>GML v2 Schema for Service Result features.</xsd:documentation>
</xsd:annotation>

<!--==============================================================
Import constructs from the GML Feature and Geometry schemas
==============================================================-->
<xsd:import namespace="http://www.opengis.net/gml" schemaLocation="feature.xsd"/>

<!--==============================================================
Type definitions


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 107



ICD.DOC

==============================================================-->
<xsd:element name="featureCollection" type="sr:featureCollectionType" substitutionGroup="gml:_FeatureCollection"/>

<!--==============================================================
Privat element Declarations
==============================================================-->
<xsd:element name="Feature" type="sr:FeatureType" substitutionGroup="gml:_Feature"/>

<!--==============================================================
Type definitions
==============================================================-->
<xsd:complexType name="featureCollectionType">
<xsd:complexContent>
<xsd:extension base="gml:AbstractFeatureCollectionType"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="FeatureType">
<xsd:complexContent>
<xsd:extension base="gml:AbstractFeatureType">
<xsd:sequence>
<xsd:element name="id" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="tooltip" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute1" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute2" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute3" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute4" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute5" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute6" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute7" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute8" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute9" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute10" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute11" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute12" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute13" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute14" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute15" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute16" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute17" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute18" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute19" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute20" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute21" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute22" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute23" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute24" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute25" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute26" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute27" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute28" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute29" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute30" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute31" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute32" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute33" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute34" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute35" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute36" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute37" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute38" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute39" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute40" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute41" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute42" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute43" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute44" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute45" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute46" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute47" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute48" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute49" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="attribute50" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="Geometry" type="gml:GeometryPropertyType" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:schema>


7.3.1.2 GML 212 Service Result Example

<?xml version="1.0" encoding="UTF-8"?>
<featureCollection xmlns=" http://www.esa.int/xml/schemas/mass/serviceresult" xmlns:sr=" http://www.esa.int/xml/schemas/mass/serviceresult"
xmlns:gml="http://www.opengis.net/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.esa.int/xml/schemas/mass/serviceresult
http://services.eoportal.org/schemas/1.6/gml/GML2/serviceresult.xsd">
<!-- location of serviceresult tbc
<gml:boundedBy>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 108



ICD.DOC

<gml:Box srsName="EPSG:4326">
<gml:coordinates>
30.1164,27.1715
30.9852,28.2876
</gml:coordinates>
</gml:Box>
</gml:boundedBy>
<gml:featureMember>
<sr:Feature>
<sr:id>21122940201010846021X1353814</sr:id>
<sr:attribute1>Platform,SPOT</sr:attribute1>
<sr:attribute2>Satellite Number,2</sr:attribute2>
<sr:attribute3>Sensor Id,1</sr:attribute3>
<sr:attribute4>Orbit,155</sr:attribute4>
<sr:attribute5>Orbit Direction,descending</sr:attribute5>
<sr:attribute6>Frame,112</sr:attribute6>
<sr:attribute7>Track,294</sr:attribute7>
<sr:attribute8>Short Name,21122940201010846021X1353814</sr:attribute8>
<sr:attribute9>Start Date,2002-01-01T08:46:58Z</sr:attribute9>
<sr:attribute10>End Date,2002-01-01T08:46:06Z</sr:attribute10>
<sr:Geometry>
<gml:Polygon srsName="EPSG:4326">
<gml:outerBoundaryIs>
<gml:LinearRing>
<gml:coordinates>
30.8422,27.6679
30.9852,28.1949
30.3877,28.2876
30.2476,27.7602
30.8422,27.6679
</gml:coordinates>
</gml:LinearRing>
</gml:outerBoundaryIs>
</gml:Polygon>
</sr:Geometry>
</sr:Feature>
</gml:featureMember>
<gml:featureMember>
<sr:Feature>
<sr:id>21122950201010846101X1353814</sr:id>
<sr:attribute1>Platform,SPOT</sr:attribute1>
<sr:attribute2>Satellite Number,2</sr:attribute2>
<sr:attribute3>Sensor Id,1</sr:attribute3>
<sr:attribute4>Orbit,155</sr:attribute4>
<sr:attribute5>Orbit Direction,descending</sr:attribute5>
<sr:attribute6>Frame,112</sr:attribute6>
<sr:attribute7>Track,295</sr:attribute7>
<sr:attribute8>Short Name,21122950201010846101X1353814</sr:attribute8>
<sr:attribute9>Start Date,2002-01-01T08:46:06Z</sr:attribute9>
<sr:attribute10>End Date,2002-01-01T08:46:14Z</sr:attribute10>
<sr:Geometry>
<gml:Polygon srsName="EPSG:4326">
<gml:outerBoundaryIs>
<gml:LinearRing>
<gml:coordinates>
30.7084,27.1715
30.8505,27.6985
30.2557,27.7909
30.1164,27.2634
30.7084,27.1715
</gml:coordinates>
</gml:LinearRing>
</gml:outerBoundaryIs>
</gml:Polygon>
</sr:Geometry>
</sr:Feature>
</gml:featureMember>
<gml:featureMember>
<sr:Feature>
<sr:id>21185690201010846101X1353814</sr:id>
<sr:attribute1>Platform,GPS</sr:attribute1>
<sr:Geometry>
<gml:Point srsName="EPSG:4326">
<gml:coordinates>
30.9,27.8
</gml:coordinates>
</gml:Point>
</sr:Geometry>
</sr:Feature>
</gml:featureMember>
</featureCollection>

7.3.2 Service Result Features GML 311 application schema



SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 109



ICD.DOC

7.3.2.1 GML311 Serviceresult.xsd
<?xml version="1.0" encoding="UTF-8"?>
<!--==============================================================
File: serviceresult.xsd
Version: v4.0.0 2006-09-28
Author: Stefaan Desender
Company: G.I.M. Geographic Information Management nv
==============================================================-->
<xsd:schema targetNamespace="http://www.esa.int/xml/schemas/mass/serviceresult"
elementFormDefault="qualified" version="1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sr="http://www.esa.int/xml/schemas/mass/serviceresult" xmlns:gml="http://www.opengis.net/gml"
xmlns:gmlsf="http://www.opengis.net/gmlsf" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<xsd:annotation>
<xsd:appinfo>srfeatures.xsd v4.0.0 2006-09-28</xsd:appinfo>
<xsd:appinfo source="gml/profiles/gmlsfProfile/gmlsfLevels.xsd">
<gmlsf:ComplianceLevel>0</gmlsf:ComplianceLevel>
</xsd:appinfo>
<xsd:documentation>GML v3 Schema for Service Result features.</xsd:documentation>
</xsd:annotation>
<!--==============================================================
Import constructs from the GML Feature and Geometry schemas
==============================================================-->
<xsd:import namespace="http://www.opengis.net/gml" schemaLocation="gml/3.1.1/base/gml.xsd"/>
<!--==============================================================
Global element Declarations
==============================================================-->
<xsd:element name="ServiceResult" type="sr:ServiceResultType"
substitutionGroup="gml:_FeatureCollection"/>
<!--==============================================================
Private element Declarations
==============================================================-->
<xsd:element name="Feature" type="sr:FeatureType" substitutionGroup="gml:_Feature"/>
<!--==============================================================
Type definitions
==============================================================-->
<xsd:complexType name="ServiceResultType">
<xsd:complexContent>
<xsd:restriction base="gml:AbstractFeatureCollectionType">
<xsd:sequence>
<xsd:element ref="gml:boundedBy" minOccurs="0"/>
<xsd:element ref="gml:featureMember" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute ref="gml:id" use="required"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="featureMember" substitutionGroup="gml:featureMember">
<xsd:complexType>
<xsd:complexContent>
<xsd:restriction base="gml:FeaturePropertyType">
<xsd:sequence>
<xsd:element ref="sr:Feature"/>
</xsd:sequence>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="RestrictedAbstractFeatureType" abstract="true">
<xsd:complexContent>
<xsd:restriction base="gml:AbstractFeatureType">
<xsd:sequence>
<xsd:element ref="gml:boundedBy" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute ref="gml:id" use="required"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="FeatureType">
<xsd:complexContent>
<xsd:extension base="sr:RestrictedAbstractFeatureType">
<xsd:sequence>
<xsd:element name="id" type="xsd:token" minOccurs="0"/>
<xsd:element name="tooltip" type="xsd:normalizedString" minOccurs="0"/>
<xsd:element name="attribute1" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute2" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute3" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute4" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute5" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute6" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute7" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute8" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute9" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute10" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute11" type="sr:AttributeType" minOccurs="0"/>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 110



ICD.DOC

<xsd:element name="attribute12" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute13" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute14" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute15" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute16" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute17" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute18" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute19" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute20" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute21" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute22" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute23" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute24" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute25" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute26" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute27" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute28" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute29" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute30" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute31" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute32" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute33" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute34" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute35" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute36" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute37" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute38" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute39" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute40" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute41" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute42" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute43" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute44" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute45" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute46" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute47" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute48" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute49" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="attribute50" type="sr:AttributeType" minOccurs="0"/>
<xsd:element name="geometry" type="sr:GeometryPropertyType"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="GeometryPropertyType">
<xsd:sequence>
<xsd:choice>
<xsd:element ref="gml:Point"/>
<xsd:element ref="gml:MultiPoint"/>
<xsd:element ref="gml:LineString"/>
<xsd:element ref="gml:MultiCurve"/>
<xsd:element ref="gml:Polygon"/>
<xsd:element ref="gml:MultiSurface"/>
</xsd:choice>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="AttributeType">
<xsd:simpleContent>
<xsd:extension base="xsd:normalizedString">
<xsd:attribute name="label" type="xsd:normalizedString" use="optional"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:schema>



7.3.2.2 GML311 Serviceresult features example

<?xml version="1.0" encoding="UTF-8"?>
<ServiceResult xmlns="http://www.esa.int/xml/schemas/mass/serviceresult" xmlns:sr="http://www.esa.int/xml/schemas/mass/serviceresult"
xmlns:gml="http://www.opengis.net/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.esa.int/xml/schemas/mass/serviceresult http://services.eoportal.org/schemas/1.6/gml/GML3.1.1/aoifeatures.xsd"
gml:id="ServiceResultCollection1">
<gml:boundedBy>
<gml:Envelope srsName="EPSG:4326">
<gml:pos>30.1164 27.1715</gml:pos>
<gml:pos>30.9852 28.2876</gml:pos>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 111



ICD.DOC

</gml:Envelope>
</gml:boundedBy>
<gml:featureMember>
<sr:Feature gml:id="F21122940201010846021X1353814">
<sr:id>21122940201010846021X1353814</sr:id>
<sr:tooltip>SPOT: 21122940201010846021X1353814</sr:tooltip>
<sr:attribute1>Platform,SPOT</sr:attribute1>
<sr:attribute2>Satellite Number,2</sr:attribute2>
<sr:attribute3>Sensor Id,1</sr:attribute3>
<sr:attribute4>Orbit,155</sr:attribute4>
<sr:attribute5>Orbit Direction,descending</sr:attribute5>
<sr:attribute6>Frame,112</sr:attribute6>
<sr:attribute7>Track,294</sr:attribute7>
<sr:attribute8>Short Name,21122940201010846021X1353814</sr:attribute8>
<sr:attribute9>Start Date,2002-01-01T08:46:58Z</sr:attribute9>
<sr:attribute10>End Date,2002-01-01T08:46:06Z</sr:attribute10>
<sr:geometry>
<gml:Polygon srsName="EPSG:4326" gml:id="P1">
<gml:exterior>
<gml:LinearRing>
<gml:pos>30.8422 27.6679 </gml:pos>
<gml:pos>30.9852 28.1949 </gml:pos>
<gml:pos>30.3877 28.2876 </gml:pos>
<gml:pos>30.2476 27.7602 </gml:pos>
<gml:pos>30.8422 27.6679 </gml:pos>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</sr:geometry>
</sr:Feature>
</gml:featureMember>
<gml:featureMember>
<sr:Feature gml:id="F21122950201010846101X1353814">
<sr:id>21122950201010846101X1353814</sr:id>
<sr:tooltip>ENVISAT: 21122950201010846101X1353814</sr:tooltip>
<sr:attribute1>Platform,ENVISAT</sr:attribute1>
<sr:attribute2>Satellite Number,2</sr:attribute2>
<sr:attribute3>Sensor Id,1</sr:attribute3>
<sr:attribute4>Orbit,155</sr:attribute4>
<sr:attribute5>Orbit Direction,descending</sr:attribute5>
<sr:attribute6>Frame,112</sr:attribute6>
<sr:attribute7>Track,295</sr:attribute7>
<sr:attribute8>Short Name,21122950201010846101X1353814</sr:attribute8>
<sr:attribute9>Start Date,2002-01-01T08:46:06Z</sr:attribute9>
<sr:attribute10>End Date,2002-01-01T08:46:14Z</sr:attribute10>
<sr:geometry>
<gml:Polygon srsName="EPSG:4326" gml:id="P2">
<gml:exterior>
<gml:LinearRing>
<gml:posList srsDimension="2">
30.7084 27.1715
30.8505 27.6985
30.2557 27.7909
30.1164 27.2634
30.7084 27.1715
</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</sr:geometry>
</sr:Feature>
</gml:featureMember>
</ServiceResult>






SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 112



ICD.DOC


7.4 eoli.xsd
The eoli 2.6 schema has been defined by ESA. See [RD1] for the online reference.



SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 113



ICD.DOC


7.5 oi.xsd
The following schema has been defined by ESA [RD14]. It is also available on
services.eoportal.org/schemas/.
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XML Spy v4.2 U (http://www.xmlspy.com) by F. Di Loreto (DATAMAT) (ESA - European
Space Agency) -->
<xsd:schema targetNamespace="http://www.esa.int/oi" xmlns="http://www.esa.int/oi"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
attributeFormDefault="unqualified" version="V1.7">
<!--XML OpenGIS extended for UOS v 1.10-->
<!--===================================== Root element-->
<xsd:element name="originPart">
<xsd:annotation>
<xsd:documentation>This represent the targetPart elements within the Z39.50- CIP- Order
ExtendedRequest</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="action">
<xsd:annotation>
<xsd:documentation>Indicates the type of operation that is requested to be performed
for the order request. It has associated a list of enumeratives defining 5 possible kinds of order
requests</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="ActionEnum"/>
</xsd:simpleType>
</xsd:element>
<xsd:element name="orderSpecification" type="OrderSpecification">
<xsd:annotation>
<xsd:documentation>This level corresponds to the OrderDescriptor level of MUIS-C and to
Detail Order Level of DE.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="orderId" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>It maps MUIS-C OrderDescriptor 'OrderId' and DE implicit order
'Project+OrdCtr+RefDuID'. It coincides with OHS_OrderId for order directed from OHS towards CUS
(i.e. composed with Account+sequential number internal to the account for MUIS and N/A for DE
Interface). It coincides again with OHS_OrderId for order directed from OHS towards PROMISE ( i.e.
composed with Account+MUIS-C OrderDescriptor 'OrderId' for MUIS, Project+OrdCtrDuID for DE).
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="statusUpdateOption" type="StatusUpdateOptionEnum" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Specify if the update of the status shall be notified automatically
or manually. It shall be used to implement DE functionality of requesting a status. For MUIS-C the
option will always be set to automatic with value 'OGC_interface'</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="userInformation" type="UserInformation" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Only the userId and the Billing.CustomerReference are used in this
context. That is because only the shipping address is needed, not at this level but at
DeliveryUnit level</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="otherInfo" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="sourceUserId" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>It maps MUIS-C OrderDescriptor 'UserId'
parameter</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="orderAccount" minOccurs="0">
<xsd:annotation>
<xsd:documentation>It maps the DE #UORD 'Project' parameter and the MUIS-C
OrderDescriptor 'OrderAccount' parameter.</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="20"/>
</xsd:restriction>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 114



ICD.DOC

</xsd:simpleType>
</xsd:element>
<xsd:element name="answerCounter" type="xsd:int" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Counts the Provider Order Status files sent to DE for this
detail order</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!--===================================== Order level -->
<xsd:complexType name="OrderSpecification">
<xsd:annotation>
<xsd:documentation>This type maps mailny MUIS-C OrderDescriptor structure and DE #DORD
(Detailed Order definition) interface.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="identificationInfo" type="IdentificationInformation">
<xsd:annotation>
<xsd:documentation>It contains identificators of the order</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="orderingCentreId" type="xsd:string">
<xsd:annotation>
<xsd:documentation>Always ESA/UOS for MEH purposes</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="deliveryUnits" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>List of Delivery Units associated to the order</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="DeliveryUnitSpec"/>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="orderPrice" type="PriceInfo" minOccurs="0">
<xsd:annotation>
<xsd:documentation>At this level MUIS-C maps OrderDescriptor 'OrderPrice',
'OrderListPrice' and 'OrderExpectedPrice'. DE maps only the expectedPrice in the #DORD
interface.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="orderCancellationDate" type="DateTime.iso8601" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Maps the MUIS-C OrderDescriptor LatestCancelDate. NOt present in DE
interfaces.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="otherInfo" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="orderType" type="OrderTypeEnum" minOccurs="0">
<xsd:annotation>
<xsd:documentation>it Maps MUIS-C OrderDescriptor 'OrderType'. Not used in DE
interfaces.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="orderClass" minOccurs="0">
<xsd:annotation>
<xsd:documentation>It maps MUIS-C OrderDescriptor "OrderClass"</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="20"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="orderScope" type="OrderScopeEnum" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Scope of the order. Not present in MUIS-C. Used in DE within
#DORD to improve service ("Scope").</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="applicationType" minOccurs="0">
<xsd:annotation>
<xsd:documentation>It maps the DE #DORD 'Appl Type' parameter</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 115



ICD.DOC

<xsd:maxLength value="3"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="orderSource" type="OrderSourceEnum" minOccurs="0">
<xsd:annotation>
<xsd:documentation>The System from which the order has been posted. It maps the
MUIS-C OrderDescriptor 'OrderSource[-CollectionId]' and DE UORD 'Prov' parameter. The CollectionId
is a MUIS-C parameter given within TargetService compound paramater. The given enumerative list is
extensible.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="orderDateTime" type="DateTime.iso8601" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Maps MUIS-C OrderDescriptor "OrderDateTime" and DE #DORD
"Date/Time:".</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="orderStatusInfo" type="OrderStatusInfo" minOccurs="0">
<xsd:annotation>
<xsd:documentation>It maps MUIS-C OrderItem 'OrderStatus' and
'OrderStatusDescription' parameters</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="orderRemark" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>It maps information depending on the interfaces: 1)
customer2orderDesk 2) orderDesk2Customer 3) orderDesk2Processing 4) processing2OrderDesk. It maps
MUIS-C "OrderUserRemarks" in OrderDescriptor and DE #UORD 'Remarks'</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="orderCondition" type="OrderCondition" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Logical condition to be applied to all order items. Present only
in MUIS-C OrderDescriptor</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="partialDeliveryAccepted" type="xsd:boolean" minOccurs="0">
<xsd:annotation>
<xsd:documentation>True if DeliveryUnits can be delivered separately. Present in
MUIS-C OrderDescriptor and in DE #DORD interface ("PD").</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="partialFulfillmentPercentage" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Different from 100 if partial fullfillment is acceptable for
the user. Allowed values are from 0 to 100, 100 means MUIS-C 'FALSE' (100% have to be fulfilled, no
prtial fulfilment accepted), any other value means MUIS-C 'TRUE'. In DE it expresses the minimum
percentage of completeness of the order to consider the order as fulfilled.</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:integer">
<xsd:minInclusive value="1"/>
<xsd:maxInclusive value="100"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="contactPoint" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>It mapping depends on usage: 1)
customer (DE, cat1) to OHS: customerContactPoint (DE #DORD 'CD' (Prov_Who))
2) OHS 2 customer: orderDeskContactPoint (DE #DORD 'SD' (Supplier Deputy))
3) OHS 2 processing: (CUS/PROMISE/ENVISAT): orderDeskContactPoint 4) processing 2 OHS:
processingContactPoint</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="OrderCondition">
<xsd:annotation>
<xsd:documentation>Describes a logical condition to be applied to all order items. It maps
MUIS-C OrderDescriptor "OrderCondition"</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="startDate" type="DateTime.iso8601" minOccurs="0"/>
<xsd:element name="endDate" type="DateTime.iso8601" minOccurs="0"/>
<xsd:element name="observationInterval" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:unsignedLong">
<xsd:maxInclusive value="4294967296"/>
</xsd:restriction>
</xsd:simpleType>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 116



ICD.DOC

</xsd:element>
<xsd:element name="numberOfObservations" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:unsignedLong">
<xsd:maxInclusive value="4294967296"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="areaOfInterest" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:choice>
<xsd:element name="gPolygon" type="GPolygon"/>
<xsd:element name="circle" type="Circle">
<xsd:annotation>
<xsd:documentation>It maps the DE #AREA 'Radius' parameter</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:choice>
<xsd:element name="clusterAreaName" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>It maps DE #AREA Area(s) (Cluster_Area_Name). It is not used in
MUIS-C</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="areaName" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>It maps DE #AREA Area(s) (Area_Name). It is not used in MUIS-
C</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="thematicKeyword" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="40"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="productCodeId" type="ProductCodeEnum" minOccurs="0"/>
<xsd:element name="coverageRequired" type="CoverageRequiredEnum" minOccurs="0"/>
<xsd:element name="maxNumOfProductsPerObservation" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:unsignedInt">
<xsd:maxInclusive value="65535"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="deliveryPolicy" type="DeliveryPolicyEnum" minOccurs="0"/>
<xsd:element name="specificConditions" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>Split MUIS-C SPECIFIC_CONDITIONS single string at each '\n'
encountered defining multiple strings.</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:minLength value="0"/>
<xsd:maxLength value="1023"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="correlationConditions" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>Split MUIS-C CORRELATION_CONDITIONS string at '\n'</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:minLength value="0"/>
<xsd:maxLength value="1023"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<!--===================================== DeliveryUnit level -->
<xsd:complexType name="DeliveryUnitSpec">
<xsd:annotation>
<xsd:documentation>This section maps MUIS-C DeliveryUnitDescriptor structure. DE interface
does not have a specific structure mapping this section and most of the relevant information
contained here can be found in #DORD interface.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="deliveryUnitId" type="DeliveryUnitId">


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 117



ICD.DOC

<xsd:annotation>
<xsd:documentation>Identifier of the DeliveryUnit. It maps MUIS-C DeliveryUnitDescriptor
"DeliveryUnitId" and DE #DORD "Ref DuId#".</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="deliveryUnitPrice" type="PriceInfoLowLevel" minOccurs="0">
<xsd:annotation>
<xsd:documentation>At this level MUIS-C maps delivery firmPrice, listPrice and
expectedPrice. DE does not maps this information at this level.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="deliveryMethod" type="DeliveryMethod" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Represents the delivery method requested for the DeliveryUnit. It maps
MUIS-C DeliveryUnitdescriptor "DeliveryMethod" plus the relevant UserInformation (DeliveryAddress /
DeliveryEmailAddress / etc..). In DE this information are presented at #DORD level for what
concern the information related to FTP address an mail / email address, at #ITEM level for what
concern the delivery method that shall be used.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="billing" type="Billing" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Information related to billing method. It maps MUIS-C
DeliveryUnitdescriptor PaymentMethod plus related payment ionformation such as Credit card info. DE
does not have this kind of information in its interfaces.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="packages" type="PackageSpec" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="otherInfo" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="deliveryUnitStatus" type="OrderStatusInfo" minOccurs="0">
<xsd:annotation>
<xsd:documentation>It maps MUIS-C DeliveryUnitDescriptor 'DeliveryUnitStatus' and
'DeliveryUnitStatusDescription' parameters</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="deliveryUnitRemark" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Its mapping depends on the interface: 1)customer2OrderDesk
2)orderDesk2Customer 3)orderDesk2Processing 4)processing2OrderDesk. With the first meaning it
maps also DE #DORD 'Remarks'</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="foreseenDeliveryDate" type="DateTime.iso8601" minOccurs="0"/>
<xsd:element name="latestAcceptedDeliveryDate" type="DateTime.iso8601" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Date by when the delivery unit has to be delivered. It maps
MUIS-C DeliveryUnitDescriptor "LatestAcceptedDeliveryDate" and DE #ITEM
"Deadline"</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="additionalParcelLabelInfo" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Additional info to be inserted on the physical package. Used
only by DE #DORD interface.</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
</xsd:element>
<xsd:element name="qualityOfService" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>It maps DE #ITEM 'SL' (ServiceLevel)</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="priority" type="xsd:int" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Priority of the order. It maps MUIS-C OrderItem
"OrderItemPriority" and DE #ITEM "Pr".</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="userCode" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>If present it will be passed to CUS in order to manage multiple
addresses for the same user.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="addressNumber" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>If present it will be passed to CUS in order to manage multiple
addresses for the same user.</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 118



ICD.DOC

</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<!--===================================== Package level-->
<xsd:complexType name="PackageSpec">
<xsd:sequence>
<xsd:element name="packageId" type="PackageId">
<xsd:annotation>
<xsd:documentation>Identify the specific package. It maps MUIS-C PackageDescriptor
PackageId. DE does not have the package level within its interface but it maps DE #ITEM
'Set'.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="package">
<xsd:complexType>
<xsd:choice>
<xsd:element name="predefinedPackage" type="PredefinedPackage">
<xsd:annotation>
<xsd:documentation>It is not used for MEH.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="adHocPackage" type="AdHocPackage"/>
</xsd:choice>
</xsd:complexType>
</xsd:element>
<xsd:element name="packageMedium" type="xsd:string">
<xsd:annotation>
<xsd:documentation>Identification of a medium. It maps MUIS-C 'DeliveryMedium' and
'MediumFormattingOption' in OrderItemDescriptor and DE #ITEM "Med"</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="packageKByteSize" type="xsd:integer" minOccurs="0"/>
<xsd:element name="packagePrice" type="PriceInfoLowLevel" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Package price </xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="otherInfo" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="packageRemark" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Its mapping depends on the interface: 1)customer2orderDesk
2)orderDesk2Customer 3)orderDesk2Processing 4)processing2OrderDesk</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="packageLabel" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>It maps DE #DORD 'Additional media label'.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="packageCopies" minOccurs="0">
<xsd:annotation>
<xsd:documentation>It maps MUIS-C PackageDescriptor 'packageCopies' and the number
that could be inside DE #ITEM 'Set' parameter</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:integer">
<xsd:minInclusive value="1"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="mediaInPackage" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:integer">
<xsd:minInclusive value="1"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="AdHocPackage">
<xsd:sequence>
<xsd:element name="orderItem" type="OrderItem" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="PredefinedPackage">
<xsd:sequence>
<xsd:element name="collectionId" type="xsd:string"/>
<xsd:element name="orderItem" maxOccurs="unbounded">
<xsd:complexType>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 119



ICD.DOC

<xsd:complexContent>
<xsd:extension base="OrderItem"/>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="otherInfo" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<!--===================================== OrderItem level -->
<xsd:complexType name="OrderItem">
<xsd:sequence>
<xsd:element name="orderItemId" type="OrderItemId"/>
<xsd:element name="productId" type="ProductId">
<xsd:annotation>
<xsd:documentation>It identifies the ordered product.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="productPrice" type="PriceInfoLowLevel" minOccurs="0"/>
<xsd:element name="productDeliveryOptions" type="ProductDeliveryOptions" minOccurs="0">
<xsd:annotation>
<xsd:documentation>It contains delivery options for the product.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="processingOptions" type="ProcessingOptions" minOccurs="0">
<xsd:annotation>
<xsd:documentation>It specifies the processing options to be applied on the product
before delivery.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="sceneSelectionOptions" type="SceneSelectionOptions" minOccurs="0">
<xsd:annotation>
<xsd:documentation>It specifies the selection of the scene from the product that is to be
delivered.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="orderStatusInfo" type="OrderItemStatusInfo" minOccurs="0">
<xsd:annotation>
<xsd:documentation>It indicates the status of the order item</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="otherInfo" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="productInfo" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="acquisitionStation" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>Acquisition station code. It maps MUIS-C
AcquisitionDescriptor "AcquisitionStation" and DE #ITEM "Station(s)" </xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="2"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="spatialCoverage" type="SpatialCoverage" minOccurs="0"/>
<xsd:element name="passCoverage" type="PassCoverage" minOccurs="0"/>
<xsd:element name="passEquatorXLongitude" type="xsd:float" minOccurs="0"/>
<xsd:element name="passDirection" type="PassDirectionEnum" minOccurs="0"/>
<xsd:element name="verticalCoverage" type="VerticalSelection" minOccurs="0"/>
<xsd:element name="regionId" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="20"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="missionPhaseId" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Indication of the mission phase. It maps MUIS-C
AcquisitionDescriptor "MissionPhaseId" and last char of DE #ITEM "Mission"</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="2"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="productStatus" type="ProductStatusEnum" minOccurs="0">
<xsd:annotation>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 120



ICD.DOC

<xsd:documentation>Status of the product: It maps MUIS-C OrderItem
"ProductStatus"</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="productSource" type="ProductSource" minOccurs="0"
maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>Source (terminalCollectionId/Supplier) for the product. It maps
MUIS-C OrderItemDescriptor "ProductSource"</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="rejectionInfo" type="RejectionInfo" minOccurs="0">
<xsd:annotation>
<xsd:documentation>It maps DE #ITEM 'RejC' and 'RejN'</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="replacementInfo" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>It contains an customerOrderItemId</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="replacesInfo" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>It contains an OHS_OrderItemId</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="processingFacility" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Suggested facility</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="orderItemRemark" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Its mapping depends on the interface: 1)customer2OrderDesk
2)orderDesk2Customer 3)orderDesk2Processing 4)processing2OrderDesk</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="qualityLevel" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Quality information. It maps DE #DORD 'ICUD D'
(Quality_Level)</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<!--===================================== User level -->
<xsd:complexType name="UserInformation">
<xsd:sequence>
<xsd:element name="userId">
<xsd:annotation>
<xsd:documentation>It maps the DE #UORD 'User Id' parameter and the MUIS-C
OrderDescriptor 'CustomerId'</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="20"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="userName" type="Name" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Not needed by MUIS-C. Used by DE in #DORD</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="userAddress" type="PostalAddress" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Not needed in MUIS-C at OrderDescriptor level. used by DE #DORD
interface. </xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="companyRef" type="CompanyReference" minOccurs="0">
<xsd:annotation>
<xsd:documentation> Not needed in MUIS-C. used by DE #DORD interface. For its definition
the MUIS-C related attribute length has been used. </xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="telNumber" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Telephone Number</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 121



ICD.DOC

<xsd:maxLength value="18"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="faxNumber" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="18"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="emailAddress" minOccurs="0">
<xsd:annotation>
<xsd:documentation/>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="72"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="networkAddress" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Not used at this level</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
</xsd:element>
<xsd:element name="vatRegistrationNo" type="VatRegistrationNo" minOccurs="0">
<xsd:annotation>
<xsd:documentation>It maps DE #DORD 'VAT' parameter</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<!--===================================== Complex types definition -->
<xsd:complexType name="AlongShiftSpecification">
<xsd:sequence>
<xsd:element name="shiftUnitId" type="xsd:string">
<xsd:annotation>
<xsd:documentation>A=Absolute, S=Seconds</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="shift" type="xsd:integer"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="AlongSizeSpecification">
<xsd:sequence>
<xsd:element name="alongSizeUnitId" type="xsd:string">
<xsd:annotation>
<xsd:documentation>A=Absolute, S=Seconds</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="alongSize" type="xsd:integer"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Billing">
<xsd:sequence>
<xsd:element name="paymentMethod">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="PaymentMethod"/>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="customerPONumber" type="xsd:string" minOccurs="0"/>
<xsd:element name="VATRegistrationNo" type="VatRegistrationNo" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="BoundingRectangle">
<xsd:sequence>
<xsd:element name="northWestPoint" type="Point"/>
<xsd:element name="southEastPoint" type="Point"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="BoundingRectangleSelection">
<xsd:sequence>
<xsd:element name="westBoundingCoordinate" type="xsd:string"/>
<xsd:element name="eastBoundingCoordinate" type="xsd:string"/>
<xsd:element name="northBoundingCoordinate" type="xsd:string"/>
<xsd:element name="southBoundingCoordinate" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Circle">


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 122



ICD.DOC

<xsd:sequence>
<xsd:element name="center" type="Point"/>
<xsd:element name="radius" type="xsd:integer">
<xsd:annotation>
<xsd:documentation>The unit for radius is the kilometer ('km')</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="CompanyReference">
<xsd:sequence>
<xsd:element name="organisation" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Organisation Name</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:minLength value="0"/>
<xsd:maxLength value="40"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="department" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Department or Section</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:minLength value="0"/>
<xsd:maxLength value="40"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="CreditCardInfo">
<xsd:sequence>
<xsd:element name="creditCardInstitute">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="40"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="nameOfCard">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="40"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="cardNumber">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="40"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="expirationDate" type="DateTime.iso8601"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="DeliveryMethod">
<xsd:choice>
<xsd:element name="eMail" type="EmailInfo"/>
<xsd:element name="ftp" type="FtpDelivery"/>
<xsd:element name="mail" type="DeliveryAddress"/>
<xsd:element name="on-line" type="xsd:string"/>
<xsd:element name="otherInfo" type="xsd:string"/>
</xsd:choice>
</xsd:complexType>
<xsd:complexType name="DeliveryUnitId">
<xsd:sequence>
<xsd:element name="OHS_DeliveryUnitId" type="xsd:string" minOccurs="0"/>
<xsd:element name="customerDeliveryUnitId" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>It maps the MUIS-C DeliveryUnitDescriptor 'DeliveryUnitId'
parameter</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="processingDeliveryUnitId" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>It is the ProcessingDeliveryUnitId. The identificator assigned by
processing facility.</xsd:documentation>
</xsd:annotation>
</xsd:element>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 123



ICD.DOC

</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="DeliveryAddress">
<xsd:sequence>
<xsd:element name="postalAddress" type="PostalAddress"/>
<xsd:element name="recipient" type="Name" minOccurs="0">
<xsd:annotation>
<xsd:documentation>It maps MUIS-C DeiveryAddress 'c/o' and InvoiceAddress
'c/o'.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="companyRef" type="CompanyReference" minOccurs="0"/>
<xsd:element name="telNumber" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Telephone Number</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="18"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="EmailInfo">
<xsd:sequence>
<xsd:element name="address">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="72"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="attachmentType" type="AttachmentTypeEnum" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Maps different types of attachment supported by DE</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="FormattedSceneSelectionOptions">
<xsd:annotation>
<xsd:documentation> Scene selected over a browse image</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="sceneType" type="xsd:string">
<xsd:annotation>
<xsd:documentation>It is an extensible list</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="horizontalSelection" minOccurs="0">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="HorizontalSelection"/>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="verticalSelection" type="VerticalSelection" minOccurs="0"/>
<xsd:element name="temporalSelection" type="TemporalSelection" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="FtpDelivery">
<xsd:sequence>
<xsd:element name="transferDirection" type="TransferDirectionEnum"/>
<xsd:element name="ftpAddress">
<xsd:annotation>
<xsd:documentation>ftp URL containing also DE interface directory, username, password
information</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="255"/>
<xsd:minLength value="0"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="emailNotificationAddress" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="GPolygon">
<xsd:sequence>
<xsd:element name="point" type="Point" minOccurs="3" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="HorizontalSelection">


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 124



ICD.DOC

<xsd:choice>
<xsd:element name="rectangleSceneSelection" type="RectangleSceneSelection"/>
<xsd:element name="boundingRectangleSelection" type="BoundingRectangleSelection">
<xsd:annotation>
<xsd:documentation>Not used for MEH</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="polygonSelection" type="PolygonSelection"/>
<xsd:element name="circleSelection" type="Circle">
<xsd:annotation>
<xsd:documentation>Not used for MEH</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:choice>
</xsd:complexType>
<xsd:complexType name="IdentificationInformation">
<xsd:sequence>
<xsd:element name="customerOrderId" type="xsd:string">
<xsd:annotation>
<xsd:documentation>It maps MUIS-C OrderDescriptor 'OrderId' and DE #DORD 'Ref DuId#'
parameter</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="OHS_OrderId" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>It identifies the order in OHS</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="orderUserReference" minOccurs="0">
<xsd:annotation>
<xsd:documentation>It maps the MUIS-C OrderDescriptor 'OrderUserReference' (it is the end
user orderId)</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="20"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="orderName" minOccurs="0">
<xsd:annotation>
<xsd:documentation>It maps the MUIS-C OrderDescriptor 'OrderName'
parameter</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="30"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="processingOrderId" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>It is identificator assigned by processing
facility.</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="OrderItemId">
<xsd:sequence>
<xsd:element name="OHS_OrderItemId" type="xsd:string"/>
<xsd:element name="customerOrderItemId" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation> It map the MUIS-C OrderItemDescriptor "OrderItemId" and the DE #ITEM
"Item".</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="processingOrderItemId" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>It is processingOrderItemId, the identifier of the orderItem inside
the processing system.</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="OrderStatusInfo">
<xsd:sequence>
<xsd:element name="orderState" type="OrderStatusEnum" minOccurs="0">
<xsd:annotation>
<xsd:documentation>It maps MUIS-C Status </xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="additionalStatusInfo" minOccurs="0">
<xsd:annotation>
<xsd:documentation>it maps MUIS-C StatusDescription </xsd:documentation>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 125



ICD.DOC

</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:minLength value="0"/>
<xsd:maxLength value="255"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="OrderItemStatusInfo">
<xsd:sequence>
<xsd:element name="orderState">
<xsd:annotation>
<xsd:documentation>It maps the MUIS-C status and DE #ITEM 'St'
(Status)</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:choice>
<xsd:element name="staticState" type="OrderItemStatusStaticEnum"/>
<xsd:element name="dynamicState" type="OrderItemStatusDynamicEnum"/>
</xsd:choice>
</xsd:complexType>
</xsd:element>
<xsd:element name="additionalStatusInfo" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>It maps MUIS-C OrderItemDescriptor "OrderItemStatusDescription" and DE
#ITEM "RejN" (RejectionNote)</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="timeStatusUpdate" type="DateTime.iso8601" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Date/Time of this status change</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="PackageId">
<xsd:sequence>
<xsd:element name="OHS_PackageId" type="xsd:string" minOccurs="0"/>
<xsd:element name="customerPackageId" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>It maps the MUIS-C PackageDescriptor PackageId'
parameter</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="processingPackageId" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="PassCoverage">
<xsd:sequence>
<xsd:element name="passStartEquatorXDeltaTime">
<xsd:simpleType>
<xsd:restriction base="xsd:int">
<xsd:minInclusive value="-2147483648"/>
<xsd:maxInclusive value="2147483647"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="passStopEquatorXDeltaTime">
<xsd:simpleType>
<xsd:restriction base="xsd:int">
<xsd:minInclusive value="-2147483648"/>
<xsd:maxInclusive value="2147483647"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="PaymentMethod">
<xsd:sequence>
<xsd:element name="billInvoice" type="DeliveryAddress" minOccurs="0"/>
<xsd:choice minOccurs="0">
<xsd:element name="prepay" type="xsd:string"/>
<xsd:element name="depositAccount" type="xsd:string"/>
<xsd:element name="privateKnown" type="xsd:string"/>
<xsd:element name="privateNotKnown" type="xsd:string"/>
<xsd:element name="creditCard">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="CreditCardInfo"/>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="creditCard-pre-supplied" type="xsd:string"/>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 126



ICD.DOC

<xsd:element name="quota" type="xsd:string"/>
</xsd:choice>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Point">
<xsd:sequence>
<xsd:element name="latitude" type="xsd:string">
<xsd:annotation>
<xsd:documentation>Its format is: [+|-]nn.nn </xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="longitude" type="xsd:string">
<xsd:annotation>
<xsd:documentation>Its format is: nnn.nn</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="PolygonSelection">
<xsd:sequence>
<xsd:element name="geoPolygon" type="GPolygon" minOccurs="0"/>
<xsd:element name="mapProjection" type="MapProjectionEnum" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="PostalAddress">
<xsd:sequence>
<xsd:element name="streetAddress">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="40"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="city">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="40"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="state">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="40"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="postalCode">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="12"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="country">
<xsd:annotation>
<xsd:documentation>ISO-3166 2-char is used (even if 3 chars are
available)</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="3"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="postBox" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="12"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="PriceInfo">
<xsd:annotation>
<xsd:documentation>Price Information. It maps both MUIS-C price (Order, DeliveryUnit,
Package or OrderItem) and DE (#DORD, #ITEM) price and royalty information. </xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="priceExpirationDate" type="DateTime.iso8601" minOccurs="0">
<xsd:annotation>
<xsd:documentation>It maps MUIS-C OrderDescriptor 'OfferExpirationDate'
parameter</xsd:documentation>
</xsd:annotation>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 127



ICD.DOC

</xsd:element>
<xsd:element name="additionalPriceInfo" type="xsd:string" minOccurs="0"/>
<xsd:element name="price" type="PriceType" minOccurs="0"/>
<xsd:element name="listPrice" type="PriceType" minOccurs="0"/>
<xsd:element name="expectedPrice" type="PriceType" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="PriceInfoLowLevel">
<xsd:sequence>
<xsd:element name="additionalPriceInfo" type="xsd:string" minOccurs="0"/>
<xsd:element name="price" type="PriceType" minOccurs="0"/>
<xsd:element name="listPrice" type="PriceType" minOccurs="0"/>
<xsd:element name="expectedPrice" type="PriceType" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="PriceType">
<xsd:sequence>
<xsd:element name="refCurrency" type="Currency.iso4217"/>
<xsd:element name="refAmount">
<xsd:simpleType>
<xsd:restriction base="xsd:unsignedLong">
<xsd:maxInclusive value="4294967296"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="userCurrency" type="Currency.iso4217" minOccurs="0"/>
<xsd:element name="userAmount" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:unsignedLong">
<xsd:maxInclusive value="4294967296"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ProcessingOptions">
<xsd:choice>
<xsd:element name="formattedProcessingOptions" type="ProcessingOptionSelection"
maxOccurs="unbounded"/>
</xsd:choice>
</xsd:complexType>
<xsd:complexType name="ProcessingOptionSelection">
<xsd:sequence>
<xsd:element name="processingOptionName" type="xsd:string"/>
<xsd:element name="processingOptionSelectedValues" type="xsd:string" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ProductDeliveryOptions">
<xsd:sequence>
<xsd:element name="productByteSize" type="xsd:integer" minOccurs="0">
<xsd:annotation>
<xsd:documentation>It contains the size of the product in bytes. It maps the MUIS-C
parameter "DataSize" in OrderItemDescriptor</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="productFormat" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>It contains the MUIS-C "Format" Processing Option</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="productCompression" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>It contains the MUIS-C "Compression" Processing
Option.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="otherInfo" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Not Used</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ProductId">
<xsd:sequence>
<xsd:element name="productCodeId" type="ProductCodeEnum">
<xsd:annotation>
<xsd:documentation>Product type code. It maps MUIS-C AcquisitionDescriptor
"ProductCodeId" and DE #ITEM "Product Code"</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="missionId" type="MissionIdEnum" minOccurs="0">
<xsd:annotation>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 128



ICD.DOC

<xsd:documentation>Unique code for the satellite/mission. It maps the MUIS-C
Acquisitiondescriptor 'Satellite' (PlatformId,SatelliteNumber) and DE #ITEM
'Mission'</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="sensorId" type="SensorIdEnum" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Identification of the sensor. It maps MUIS-C AcquisitionDescriptor
"SensorId" and the second part of DE #ITEM "Mission" </xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="orbit" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Absolute orbit number. It maps MUIS-C AcquisitionDescriptor "Orbit"
and DE #ITEM "Orbit" </xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:unsignedInt">
<xsd:maxInclusive value="16777216"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="track" minOccurs="0">
<xsd:annotation>
<xsd:documentation>WRS Track number. It maps MUIS-C AcquisitionDescriptor "Track" and DE
#ITEM "Track"</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:unsignedInt">
<xsd:maxInclusive value="65535"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="frame" minOccurs="0">
<xsd:annotation>
<xsd:documentation>WRS frame number. It maps MUIS-C AcquisitionDescriptor "Frame" and DE
#ITEM "Frame" </xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:unsignedInt">
<xsd:maxInclusive value="65535"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="swathId" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="2"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="temporalCoverage" type="TemporalSelection" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Start date/time for the temporal coverage. It maps MUIS-C
AcquisitionDescriptor "TemporalCoverage(Start)" and DE #ITEM "Date"</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="sceneCentre" type="Point" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Selected scene centre coordinates.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="productOrderId" minOccurs="0">
<xsd:annotation>
<xsd:documentation>It maps MUIS-C AcquisitionDescriptor 'ProductOrderId' and DE #ITEM
'Scene'</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="255"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ProductSource">
<xsd:sequence>
<xsd:element name="provider" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="20"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="facility" minOccurs="0">


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 129



ICD.DOC

<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="20"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="collectionId" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="20"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="supplier" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="20"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Name">
<xsd:sequence>
<xsd:element name="title" minOccurs="0">
<xsd:annotation>
<xsd:documentation>It maps DE #DORD 'TITLE' parameter</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="15"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="firstName" minOccurs="0">
<xsd:annotation>
<xsd:documentation>It maps DE #DORD 'FIRST_NAME' parameter</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="40"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="lastName" minOccurs="0">
<xsd:annotation>
<xsd:documentation>It maps DE #DORD 'LAST_NAME' parameter</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="40"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="RectangleSceneSelection">
<xsd:sequence>
<xsd:element name="acrossGrid">
<xsd:simpleType>
<xsd:restriction base="xsd:int">
<xsd:minInclusive value="-2147483648"/>
<xsd:maxInclusive value="2147483647"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="alongGridUnitType" type="xsd:string"/>
<xsd:element name="alongGrid">
<xsd:simpleType>
<xsd:restriction base="xsd:int">
<xsd:minInclusive value="-2147483648"/>
<xsd:maxInclusive value="2147483647"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="acrossSize">
<xsd:simpleType>
<xsd:restriction base="xsd:int">
<xsd:minInclusive value="-2147483648"/>
<xsd:maxInclusive value="2147483647"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="alongSize">
<xsd:simpleType>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 130



ICD.DOC

<xsd:restriction base="xsd:int">
<xsd:minInclusive value="-2147483648"/>
<xsd:maxInclusive value="2147483647"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="acrossCenter">
<xsd:simpleType>
<xsd:restriction base="xsd:int">
<xsd:minInclusive value="-2147483648"/>
<xsd:maxInclusive value="2147483647"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="alongCenter">
<xsd:simpleType>
<xsd:restriction base="xsd:int">
<xsd:minInclusive value="-2147483648"/>
<xsd:maxInclusive value="2147483647"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="alongOrigin" type="AlongOriginEnum" default="0" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Used only by MUIS-C </xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="RejectionInfo">
<xsd:annotation>
<xsd:documentation>It maps DE #ITEM 'RejC' and 'RejN'</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="rejectionCode" type="xsd:string" minOccurs="0"/>
<xsd:element name="rejectionNote" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="SceneSelectionOptions">
<xsd:sequence>
<xsd:element name="formattedSceneSelectionOptions" type="FormattedSceneSelectionOptions"
minOccurs="0">
<xsd:annotation>
<xsd:documentation>Scene selected over a browse image</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="unformattedSceneSelectionOptions" type="UnformattedSceneSelectionOptions"
minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="SpatialCoverage">
<xsd:choice>
<xsd:element name="boundingRectangle" type="BoundingRectangle"/>
<xsd:element name="circle" type="Circle"/>
<xsd:element name="gPolygon" type="GPolygon"/>
</xsd:choice>
</xsd:complexType>
<xsd:complexType name="TemporalSelection">
<xsd:sequence>
<xsd:element name="startDateTime">
<xsd:simpleType>
<xsd:restriction base="DateTime.iso8601"/>
</xsd:simpleType>
</xsd:element>
<xsd:element name="endDateTime" type="DateTime.iso8601"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="UnformattedSceneSelectionOptions">
<xsd:sequence>
<xsd:element name="sceneCentre" type="Point" minOccurs="0">
<xsd:annotation>
<xsd:documentation>It maps #ITEM 'Lat' and 'Long' (Centre Latitude and Longitude of
floating frame) and the MUIS-C OrderItemDescriptor 'OrderItemSceneCentre'</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="subSceneIdentification" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>(e.g. 'quarter number')</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="alongShiftSpecification" type="AlongShiftSpecification" minOccurs="0">
<xsd:annotation>
<xsd:documentation>It maps DE #ITEM 'DN' </xsd:documentation>
</xsd:annotation>
</xsd:element>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 131



ICD.DOC

<xsd:element name="alongSizeSpecification" type="AlongSizeSpecification" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Used for multi-scenes product. It maps DE #ITEM 'NOF'
(Number_Of_frames)</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="VerticalSelection">
<xsd:sequence>
<xsd:element name="lowAltitude" type="xsd:int">
<xsd:annotation>
<xsd:documentation>The unit for lowAltitude is the Meter ('m')</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="highAltitude" type="xsd:int">
<xsd:annotation>
<xsd:documentation>The unit for highAltitude is the Meter ('m')</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<!--===================================== Simple types definition -->
<xsd:simpleType name="Currency.iso4217">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="3"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="DateTime.iso8601">
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
<xsd:simpleType name="VatRegistrationNo">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="30"/>
</xsd:restriction>
</xsd:simpleType>
<!--Element Section-->
<!--===================================== Simple types and base elements start from here after
-->
<xsd:simpleType name="ActionEnum">
<xsd:annotation>
<xsd:documentation>List of valid actions allowed</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="orderEstimate"/>
<xsd:enumeration value="orderQuoteAndSubmit"/>
<xsd:enumeration value="orderMonitor"/>
<xsd:enumeration value="orderCancel"/>
<xsd:enumeration value="orderDetail"/>
<xsd:enumeration value="orderAccount"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="AlongOriginEnum">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="0"/>
<xsd:enumeration value="s"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="AttachmentTypeEnum">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Mime"/>
<xsd:enumeration value="Uuencoded"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="CoverageRequiredEnum">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Full optimized (best) coverage"/>
<xsd:enumeration value="Full coverage required"/>
<xsd:enumeration value="any coverage"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="DeliveryPolicyEnum">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Only at end of last observation"/>
<xsd:enumeration value="At end of each observation"/>
<xsd:enumeration value="As product are becoming available"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="MapProjectionEnum">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Plate-Caree"/>
<xsd:enumeration value="Geodesic"/>
<xsd:enumeration value="AcquisitionFootprint"/>
<xsd:enumeration value="UTM"/>
<xsd:enumeration value="GAUSS_CONFORMAL"/>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 132



ICD.DOC

<xsd:enumeration value="GAUSS_KRUGER"/>
<xsd:enumeration value="NONE"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="MissionIdEnum">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="ENVISAT"/>
<xsd:enumeration value="ERS-1"/>
<xsd:enumeration value="ERS-2"/>
<xsd:enumeration value="JERS-1"/>
<xsd:enumeration value="Landsat-1"/>
<xsd:enumeration value="Landsat-2"/>
<xsd:enumeration value="Landsat-3"/>
<xsd:enumeration value="Landsat-4"/>
<xsd:enumeration value="Landsat-5"/>
<xsd:enumeration value="Landsat-7"/>
<xsd:enumeration value="MOS-1B"/>
<xsd:enumeration value="NIMBUS-7"/>
<xsd:enumeration value="NOAA-7"/>
<xsd:enumeration value="NOAA-8"/>
<xsd:enumeration value="NOAA-9"/>
<xsd:enumeration value="NOAA-10"/>
<xsd:enumeration value="NOAA-11"/>
<xsd:enumeration value="NOAA-12"/>
<xsd:enumeration value="NOAA-14"/>
<xsd:enumeration value="NOAA-15"/>
<xsd:enumeration value="NOAA-16"/>
<xsd:enumeration value="NOAA-17"/>
<xsd:enumeration value="NOAA-18"/>
<xsd:enumeration value="SeaStar"/>
<xsd:enumeration value="IRS-P3"/>
<xsd:enumeration value="AQUA"/>
<xsd:enumeration value="TERRA"/>
<xsd:enumeration value="SPOT-4"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="OrderItemStatusDynamicEnum">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="BeingEstimated"/>
<xsd:enumeration value="BeingQuoted"/>
<xsd:enumeration value="BeingProcessed"/>
<xsd:enumeration value="BeingCancelled"/>
<xsd:enumeration value="BeingOnHold"/>
<xsd:enumeration value="BeingDeleted"/>
<xsd:enumeration value="BeingProcessed (WaitScheduling)"/>
<xsd:enumeration value="BeingProcessed (Planned)"/>
<xsd:enumeration value="BeingProcessed (WaitPlanning)"/>
<xsd:enumeration value="BeingProcessed (Acquired)"/>
<xsd:enumeration value="BeingProcessed (DataBeingTransferred)"/>
<xsd:enumeration value="BeingProcessed (DataReadyAtProcessingFacility)"/>
<xsd:enumeration value="BeingProcessed (WaitProduction)"/>
<xsd:enumeration value="BeingProcessed (InProduction)"/>
<xsd:enumeration value="BeingProcessed (ProductionCompleted)"/>
<xsd:enumeration value="BeingProcessed (BeingShipped)"/>
<xsd:enumeration value="BeingProcessed (RejectBeingAnalysed)"/>
<xsd:enumeration value="BeingProcessed (QualityControl)"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="OrderItemStatusStaticEnum">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Estimated"/>
<xsd:enumeration value="NotValid"/>
<xsd:enumeration value="Cancelled"/>
<xsd:enumeration value="Completed"/>
<xsd:enumeration value="Terminated"/>
<xsd:enumeration value="Deleted"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="OrderScopeEnum">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="40"/>
<xsd:enumeration value="interferometry"/>
<xsd:enumeration value="multi-temporal"/>
<xsd:enumeration value="mosaic"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="OrderSourceEnum">
<xsd:annotation>
<xsd:documentation>List of systems from which the order can be posted. This list is
extensible</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="MUIS"/>
<xsd:enumeration value="OHS"/>
<xsd:enumeration value="DESCW"/>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 133



ICD.DOC

<xsd:enumeration value="Eurimage"/>
<xsd:enumeration value="Spotimage"/>
<xsd:enumeration value="EMMA"/>
<xsd:enumeration value="SARCOM"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="OrderStatusEnum">
<xsd:annotation>
<xsd:documentation>List of Valid Statii for the Delivery Unit as defined in MUIS-
C</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="BeingEstimated"/>
<xsd:enumeration value="Estimated"/>
<xsd:enumeration value="BeingQuoted"/>
<xsd:enumeration value="NotValid"/>
<xsd:enumeration value="BeingProcessed"/>
<xsd:enumeration value="Cancelled"/>
<xsd:enumeration value="BeingCancelled"/>
<xsd:enumeration value="Completed"/>
<xsd:enumeration value="BeingOnHold"/>
<xsd:enumeration value="Terminated"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="OrderTypeEnum">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="product order"/>
<xsd:enumeration value="open order"/>
<xsd:enumeration value="acquisition request"/>
<xsd:enumeration value="accounting"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="PassDirectionEnum">
<xsd:annotation>
<xsd:documentation>List of valid Pass Direction Values</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="A"/>
<xsd:enumeration value="D"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="ProductCodeEnum">
<xsd:annotation>
<xsd:documentation>List of ProductCodeId (to be provided by ESA)</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="SAR"/>
<xsd:enumeration value="SAR_RAW"/>
<xsd:enumeration value="SAR_PRI"/>
<xsd:enumeration value="SAR_GEC"/>
<xsd:enumeration value="SAR_GTC"/>
<xsd:enumeration value="SAR_SLC"/>
<xsd:enumeration value="ATS_GBT"/>
<xsd:enumeration value="ATS_GST"/>
<xsd:enumeration value="ATS_PST"/>
<xsd:enumeration value="SWM_FDC"/>
<xsd:enumeration value="WSC_FDC"/>
<xsd:enumeration value="ALT_FDC"/>
<xsd:enumeration value="ALT_OPR"/>
<xsd:enumeration value="ALT_WAP"/>
<xsd:enumeration value="ALT_SSH"/>
<xsd:enumeration value="ALT_TOP"/>
<xsd:enumeration value="ORB_PRL"/>
<xsd:enumeration value="ORB_PRC"/>
<xsd:enumeration value="ORB_EGM"/>
<xsd:enumeration value="MWS_VLC"/>
<xsd:enumeration value="MWS_MBT"/>
<xsd:enumeration value="GOM_L13"/>
<xsd:enumeration value="GOM_L22"/>
<xsd:enumeration value="JSAR"/>
<xsd:enumeration value="OPS"/>
<xsd:enumeration value="TM"/>
<xsd:enumeration value="ETM"/>
<xsd:enumeration value="MSS_SYC"/>
<xsd:enumeration value="AVHRR"/>
<xsd:enumeration value="CZCS"/>
<xsd:enumeration value="SeaWiFS"/>
<xsd:enumeration value="MOS_1B"/>
<xsd:enumeration value="MODIS_1B"/>
<xsd:enumeration value="ASA_EC__0P"/>
<xsd:enumeration value="ASA_MS__0P"/>
<xsd:enumeration value="ASA_IM"/>
<xsd:enumeration value="ASA_IM__0P"/>
<xsd:enumeration value="ASA_IMS_1P"/>
<xsd:enumeration value="ASA_IMP_1P"/>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 134



ICD.DOC

<xsd:enumeration value="ASA_IMG_1P"/>
<xsd:enumeration value="ASA_IMM_1P"/>
<xsd:enumeration value="ASA_IM__BP"/>
<xsd:enumeration value="ASAR_WS"/>
<xsd:enumeration value="ASA_WS__0P"/>
<xsd:enumeration value="ASA_WSM_1P"/>
<xsd:enumeration value="ASA_WS__BP"/>
<xsd:enumeration value="ASA_GM"/>
<xsd:enumeration value="ASA_GM__0P"/>
<xsd:enumeration value="ASA_GM1_1P"/>
<xsd:enumeration value="ASA_GM__BP"/>
<xsd:enumeration value="ASA_AP"/>
<xsd:enumeration value="ASA_APH_0P"/>
<xsd:enumeration value="ASA_APV_0P"/>
<xsd:enumeration value="ASA_APC_0P"/>
<xsd:enumeration value="ASA_APM_1P"/>
<xsd:enumeration value="ASA_APS_1P"/>
<xsd:enumeration value="ASA_APP_1P"/>
<xsd:enumeration value="ASA_APG_1P"/>
<xsd:enumeration value="ASA_AP__BP"/>
<xsd:enumeration value="ASA_WV"/>
<xsd:enumeration value="ASA_WV__0P"/>
<xsd:enumeration value="ASA_WVI_1P"/>
<xsd:enumeration value="ASA_WVS_1P"/>
<xsd:enumeration value="ASA_WVW_2P"/>
<xsd:enumeration value="ATS_NL__0P"/>
<xsd:enumeration value="ATS_TOA_1P"/>
<xsd:enumeration value="ATS_NR__2P"/>
<xsd:enumeration value="ATS_AR__2P"/>
<xsd:enumeration value="ATS_MET_2P"/>
<xsd:enumeration value="ATS_AST_BP"/>
<xsd:enumeration value="RA2_CAL_0P"/>
<xsd:enumeration value="RA2_ME__0P"/>
<xsd:enumeration value="RA2_MW"/>
<xsd:enumeration value="RA2_MW__1P"/>
<xsd:enumeration value="RA2_MWS_2P"/>
<xsd:enumeration value="RA2_MWG_2P"/>
<xsd:enumeration value="RA2_WWV_2PR"/>
<xsd:enumeration value="RA2_FDG_2P"/>
<xsd:enumeration value="RA2_IDG_2P"/>
<xsd:enumeration value="RA2_GDR_2P"/>
<xsd:enumeration value="MWR_NL__0P"/>
<xsd:enumeration value="GOM_"/>
<xsd:enumeration value="GOM_NL__0P"/>
<xsd:enumeration value="GOM_MM__0P"/>
<xsd:enumeration value="GOM_TRA_1P"/>
<xsd:enumeration value="GOM_LIM_1P"/>
<xsd:enumeration value="GOM_RR__2P"/>
<xsd:enumeration value="GOM_EXT_2P"/>
<xsd:enumeration value="GOM_NL__2P"/>
<xsd:enumeration value="MER_CA__0P"/>
<xsd:enumeration value="MER_RV__0P"/>
<xsd:enumeration value="MER_RR"/>
<xsd:enumeration value="MER_RR__0P"/>
<xsd:enumeration value="MER_RR__1P"/>
<xsd:enumeration value="MER_RR__2P"/>
<xsd:enumeration value="MER_LRC_2P"/>
<xsd:enumeration value="MER_RRC_2P"/>
<xsd:enumeration value="MER_RRV_2P"/>
<xsd:enumeration value="MER_RR__BP"/>
<xsd:enumeration value="MER_FR"/>
<xsd:enumeration value="MER_FR__0P"/>
<xsd:enumeration value="MER_FR__1P"/>
<xsd:enumeration value="MER_FR__2P"/>
<xsd:enumeration value="MIP_RW__0P"/>
<xsd:enumeration value="MIP_LS__0P"/>
<xsd:enumeration value="MIP_NL"/>
<xsd:enumeration value="MIP_NL__0P"/>
<xsd:enumeration value="MIP_NL__1P"/>
<xsd:enumeration value="MIP_NL__2P"/>
<xsd:enumeration value="MIP_NLE_2P"/>
<xsd:enumeration value="SCI_NL"/>
<xsd:enumeration value="SCI_NL__0P"/>
<xsd:enumeration value="SCI_NL__1P"/>
<xsd:enumeration value="SCI_NL__2P"/>
<xsd:enumeration value="SCI_OL__2P"/>
<xsd:enumeration value="SCI_RV__2P"/>
<xsd:enumeration value="DOR_NAV_0P"/>
<xsd:enumeration value="DOR_DOP_0P"/>
<xsd:enumeration value="DOR_DOP_1P"/>
<xsd:enumeration value="TLM_HK__0P"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="ProductStatusEnum">
<xsd:annotation>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 135



ICD.DOC

<xsd:documentation>Lit of valid Product Status supported</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Visible"/>
<xsd:enumeration value="Planned"/>
<xsd:enumeration value="Acquired"/>
<xsd:enumeration value="Archived"/>
<xsd:enumeration value="Produced"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="SensorIdEnum">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="AATSR"/>
<xsd:enumeration value="AMI/SAR/Image"/>
<xsd:enumeration value="AMI/SAR/wave"/>
<xsd:enumeration value="AMI/scatterometer"/>
<xsd:enumeration value="ASAR"/>
<xsd:enumeration value="ASAR/IM (Image Mode)"/>
<xsd:enumeration value="ASAR/AP (Alternating Polarization Mode)"/>
<xsd:enumeration value="ASAR/WS (Wide Swath Mode)"/>
<xsd:enumeration value="ASAR/GM (Global Monitoring Mode)"/>
<xsd:enumeration value="ASAR/WV (Wave Mode)"/>
<xsd:enumeration value="ATSR"/>
<xsd:enumeration value="ATSR-2"/>
<xsd:enumeration value="AVHRR"/>
<xsd:enumeration value="CZCS"/>
<xsd:enumeration value="DORIS"/>
<xsd:enumeration value="ETM+"/>
<xsd:enumeration value="GOME"/>
<xsd:enumeration value="GOMOS"/>
<xsd:enumeration value="HRVIR"/>
<xsd:enumeration value="JERS SAR"/>
<xsd:enumeration value="MERIS"/>
<xsd:enumeration value="MESSR"/>
<xsd:enumeration value="MIPAS"/>
<xsd:enumeration value="MODIS"/>
<xsd:enumeration value="MOS"/>
<xsd:enumeration value="MSR"/>
<xsd:enumeration value="MSS"/>
<xsd:enumeration value="OPS"/>
<xsd:enumeration value="RA-2/MWR"/>
<xsd:enumeration value="RA/LRR"/>
<xsd:enumeration value="RA/MWR"/>
<xsd:enumeration value="RBV"/>
<xsd:enumeration value="SCIAMACHY"/>
<xsd:enumeration value="SeaWiFS"/>
<xsd:enumeration value="TM"/>
<xsd:enumeration value="VTIR"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="StatusUpdateOptionEnum">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="manual"/>
<xsd:enumeration value="automatic"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="TransferDirectionEnum">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="push"/>
<xsd:enumeration value="pull"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>


7.6 Regions Definition Schema and Example
As a service provider you can define your own set of geographical regions from which a user can
select one to serve as his Area Of Interest (AOI).
The user can either select the region on the map display or from a set of list boxes. The regions can
optionally be hierarchically structured in a set of layers or levels (e.g. Level 1 = Top Level are the
continents, Level 2 refers to individual countries, Level 3 to provinces and Level 4 to communes).
For each of these layers you can set the map scale range for which this level is visible. You can
upload your custom regions list during the configuration of the service in the SSE Portal. If you do


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 136



ICD.DOC

not specify your own custom list, the SSE portal's default regions list containing the administrative
boundaries will be used.
The custom regions list needs to be provided as one zipped file containing a series of shape files
and one XML file adhering to the regions.xsd schema.
The ZIP file should not have relative paths for the files it contains. The size of the ZIP file is
limited to 10MB. The XML file contains two sections: the layerCollection describes how
(symbology) and when to display each layer (= level- scale-dependent display), while the
regionCollection holds the name, level every region, together with the mutual hierarchical
relationships. One region can have multiple parent-regions and multiple child-regions with the
limitation that each region can only be part of one level. For describing the geometry, there needs
to be a single shape files for each level. Polygon and MultiPolygon feature types are allowed in
the EPSG:4326 coordinate reference system. The .shp, .shx and .dbf files should all be
present. Other shape-related files like .prx may be present but will be ignored. The shape files
should contain the following attributes: code, label (=name) and level whereby the code of each
feature should correspond to the fid attributes within the XML file. The label and level also present
within the XML file are duplicated as shape attributes for operational performance
reasons.regions.xsd

<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v2004 rel. 3 U (http://www.xmlspy.com) by GIM (GIM) -->
<!--==============================================================
File: regions.xsd
Version: v1.1.0 2005-04-01
Author: Kristof Vydt
Company: G.I.M. Geographic Information Management nv
==============================================================-->
<xs:schema xmlns:gml="http://www.opengis.net/gml" xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:annotation>
<xs:appinfo>regions.xsd v1.1.0 2005-04-01</xs:appinfo>
<xs:documentation>XML Schema for AOI Tool upload of hierarchical regions</xs:documentation>
</xs:annotation>
<!--==============================================================
Import constructs from the GML Feature and Geometry schemas
==============================================================-->
<xs:import namespace="http://www.opengis.net/gml" schemaLocation="feature.xsd"/>
<!--==============================================================
Global element Declarations
==============================================================-->
<!-- REGION DOCUMENT -->
<xs:element name="regionsDocument">
<xs:annotation>
<xs:documentation>Combine all info for a hierarchical list of regions.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="layerCollection" type="layerCollectionType"/>
<xs:element name="regionCollection" type="regionCollectionType"/>
</xs:sequence>
<xs:attribute name="timeStamp" type="xs:dateTime" use="optional"/>
<xs:attribute name="resourceLabel" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
<!--==============================================================
Type definitions
==============================================================-->
<!-- LAYER COLLECTION -->
<xs:complexType name="layerCollectionType">


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 137



ICD.DOC

<xs:annotation>
<xs:documentation>Combines all configuration settings.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="layer" type="layerType" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<!-- LAYER -->
<xs:complexType name="layerType">
<xs:annotation>
<xs:documentation>Holds the settings for one hierarchical level.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="minmaprange" type="xs:decimal" default="0" minOccurs="0"/>
<xs:element name="maxmaprange" type="xs:decimal" default="200" minOccurs="0"/>
<xs:element name="color" type="colorType" default="0" minOccurs="0"/>
<xs:element name="fillcolor" type="colorType" default="-1" minOccurs="0"/>
<xs:element name="style" type="styleType" default="0" minOccurs="0"/>
<xs:element name="weight" type="weightType" default="1" minOccurs="0"/>
<xs:element name="hscolor" type="colorType" default="65280" minOccurs="0"/>
<xs:element name="hsfillcolor" type="colorType" default="-1" minOccurs="0"/>
<xs:element name="hsstyle" type="styleType" default="0" minOccurs="0"/>
<xs:element name="hsweight" type="weightType" default="2" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="level" type="xs:unsignedByte" use="required"/>
<xs:attribute name="label" type="xs:string" use="optional"/>
<!-- new since v1.1.0: use geometry tags in regionType or (file)name attribute in layerType -->
<xs:attribute name="name" type="xs:string" use="optional"/>
<xs:attribute name="filename" type="xs:string" use="optional"/>
</xs:complexType>
<!-- COLOR -->
<xs:simpleType name="colorType">
<xs:annotation>
<xs:documentation>Positive integer for colored, 0 for black, -1 for transparant.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:integer">
<xs:minInclusive value="-1"/>
<xs:maxInclusive value="16777215"/>
</xs:restriction>
</xs:simpleType>
<!-- STYLE -->
<xs:simpleType name="styleType">
<xs:annotation>
<xs:documentation>GeoMedia style value.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:integer">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="10"/>
</xs:restriction>
</xs:simpleType>
<!-- WEIGHT -->
<xs:simpleType name="weightType">
<xs:annotation>
<xs:documentation>Thickness of lines and points.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:integer">
<xs:minInclusive value="1"/>
<xs:maxInclusive value="10"/>
</xs:restriction>
</xs:simpleType>
<!-- REGION COLLECTION -->
<xs:complexType name="regionCollectionType">
<xs:annotation>
<xs:documentation>Combines all region features.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="featureMember" type="featureMemberType" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 138



ICD.DOC

<!-- FEATURE MEMBER -->
<xs:complexType name="featureMemberType">
<xs:annotation>
<xs:documentation>Based on GML.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="region" type="regionType"/>
</xs:sequence>
</xs:complexType>
<!-- REGION -->
<xs:complexType name="regionType">
<xs:annotation>
<xs:documentation>Holds one region.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="level" type="xs:unsignedByte"/>
<!-- new since v1.1.0: use geometry tags in regionType or (file)name attribute in layerType -->
<xs:element name="geometry" minOccurs="0">
<xs:complexType>
<xs:choice>
<xs:element ref="gml:Polygon"/>
<xs:element ref="gml:MultiPolygon"/>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="relationships" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="relationship" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="relation" type="xs:string" use="required" fixed="part-of"/>
<xs:attribute name="target-name" type="xs:string" use="optional"/>
<xs:attribute name="target-identifier" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<!--TODO:make geometry type gml:geometryProperty -->
<!-- relationships is based on ADL Gazetteer Protocol gazetteer-standard-report.xsd -->
</xs:sequence>
<xs:attribute name="fid" type="xs:string" use="required"/>
</xs:complexType>
</xs:schema>


7.6.1 Regions Example

<regionsDocument timeStamp="2004-10-25T10:54:14" resourceLabel="Fishing areas"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://schemas.gim.be/mass/X/regions.xsd">
<layerCollection>
<layer level="1" label="Level 1" name = Level 1 filename = Level1.shp>
<minmaprange>55</minmaprange>
<maxmaprange>1000</maxmaprange>
<color>0</color>
<fillcolor>-1</fillcolor>
<style>0</style>
<weight>1</weight>
<hscolor>65280</hscolor>
<hsfillcolor>-1</hsfillcolor>
<hsstyle>0</hsstyle>
<hsweight>2</hsweight>
</layer>
<layer level="2" label="...">


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 139



ICD.DOC

...
</layer>
...
</layerCollection>
<regionCollection>
<featureMember>
<region fid="2701">
<name>BARENTS SEA</name>
<level>2</level>
<relationships>
<relationship relation="part-of" target-identifier="27"/>
</relationships>
</region>
</featureMember>
<featureMember>
...
</featureMember>
...
</regionCollection>
</regionsDocument>


7.7 OGC Styled Layer Descriptor Language example
<StyledLayerDescriptor version="1.0.0" xmlns:sld="http://www.opengis.net/sld"
xmlns:ogc="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- a named layer is the basic building block of an sld document -->
<NamedLayer>
<Name>sr</Name>
<title>Example SLD document applicable to Service Result Features of the Service Support
Environment</title>
<abstract>This is for testing only.</abstract>

<UserStyle>
<FeatureTypeStyle>

<FeatureTypeName>Point</FeatureTypeName>
<Rule>
<MinScaleDenominator>1000000</MinScaleDenominator>
<MaxScaleDenominator>100000000</MaxScaleDenominator>
<Name>All</Name>
<PointSymbolizer>
<Graphic>
<Mark>
<WellKnownName>star</WellKnownName>
<Fill>
<CssParameter name="fill">#FFFF00</CssParameter>
<CssParameter name="fill-opacity">1</CssParameter>
</Fill>
<Stroke>
<CssParameter name="stroke">#0000FF</CssParameter>
<CssParameter name="stroke-width">0.7</CssParameter>
</Stroke>
</Mark>
<Size>20</Size>
</Graphic>
</PointSymbolizer>
</Rule>




<Rule>
<Name>SPACEBEL</Name>
<MaxScaleDenominator>1000000</MaxScaleDenominator>
<ogc:Filter>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>id</ogc:PropertyName>
<ogc:Literal>SPACEBEL</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Filter>
<PointSymbolizer>
<Graphic>
<Size>
<ogc:Literal>100</ogc:Literal>
</Size>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 140



ICD.DOC

<Opacity>
<ogc:Literal>1.0</ogc:Literal>
</Opacity>
<Rotation>
<ogc:Literal>0.0</ogc:Literal>
</Rotation>
<ExternalGraphic>
<Format>image/gif</Format>
<OnlineResource
xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="simple"
xlink:href="http://schemas.gim.be/mass/3.0/Samples/spacebel.gif"/>
</ExternalGraphic>
</Graphic>
</PointSymbolizer>
</Rule>
<Rule>
<Name> GIM</Name>
<MaxScaleDenominator>1000000</MaxScaleDenominator>
<ogc:Filter>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>id</ogc:PropertyName>
<ogc:Literal>GIM</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Filter>
<PointSymbolizer>
<Graphic>
<Size>
<ogc:Literal>100</ogc:Literal>
</Size>
<Opacity>
<ogc:Literal>1.0</ogc:Literal>
</Opacity>
<Rotation>
<ogc:Literal>0.0</ogc:Literal>
</Rotation>
<ExternalGraphic>
<Format>image/gif</Format>
<OnlineResource
xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="simple"
xlink:href="http://schemas.gim.be/mass/3.0/Samples/gim.gif"/>
</ExternalGraphic>
</Graphic>
</PointSymbolizer>
</Rule>
<Rule>

<Name>ESRIN</Name>
<MaxScaleDenominator>5000000</MaxScaleDenominator>
<ogc:Filter>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>id</ogc:PropertyName>
<ogc:Literal>ESRIN</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Filter>
<PointSymbolizer>
<Graphic>
<Size>
<ogc:Literal>200</ogc:Literal>
</Size>
<Opacity>
<ogc:Literal>1.0</ogc:Literal>
</Opacity>
<Rotation>
<ogc:Literal>0.0</ogc:Literal>
</Rotation>
<ExternalGraphic>
<Format>image/gif</Format>
<OnlineResource
xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="simple"
xlink:href="http://schemas.gim.be/mass/3.0/Samples/esrin.gif"/>
</ExternalGraphic>
</Graphic>
</PointSymbolizer>
</Rule>
<Rule>
<Name>CSE</Name>
<MaxScaleDenominator>5000000</MaxScaleDenominator>
<ogc:Filter>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>id</ogc:PropertyName>
<ogc:Literal>CSE</ogc:Literal>
</ogc:PropertyIsEqualTo>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 141



ICD.DOC

</ogc:Filter>
<PointSymbolizer>
<Graphic>
<Size>
<ogc:Literal>100</ogc:Literal>
</Size>
<Opacity>
<ogc:Literal>1.0</ogc:Literal>
</Opacity>
<Rotation>
<ogc:Literal>0.0</ogc:Literal>
</Rotation>
<ExternalGraphic>
<Format>image/gif</Format>
<OnlineResource
xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="simple"
xlink:href="http://schemas.gim.be/mass/3.0/Samples/cse.gif"/>
</ExternalGraphic>
</Graphic>
</PointSymbolizer>
</Rule>
<Rule>
<Name>VITO</Name>
<MaxScaleDenominator>1000000</MaxScaleDenominator>
<ogc:Filter>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>id</ogc:PropertyName>
<ogc:Literal>VITO</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Filter>
<PointSymbolizer>
<Graphic>
<Size>
<ogc:Literal>200</ogc:Literal>
</Size>
<Opacity>
<ogc:Literal>1.0</ogc:Literal>
</Opacity>
<Rotation>
<ogc:Literal>0.0</ogc:Literal>
</Rotation>
<ExternalGraphic>
<Format>image/gif</Format>
<OnlineResource
xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="simple"
xlink:href="http://schemas.gim.be/mass/3.0/Samples/vito.gif"/>
</ExternalGraphic>
</Graphic>
</PointSymbolizer>
</Rule>

<Rule>
<Name>Selected</Name>
<PointSymbolizer>
<Graphic>
<Mark>
<WellKnownName>circle</WellKnownName>
<Fill>
<CssParameter name="fill">#FF0000</CssParameter>
<CssParameter name="fill-opacity">1</CssParameter>
</Fill>
<Stroke>
<CssParameter name="stroke">#FF0000</CssParameter>
<CssParameter name="stroke-width">1</CssParameter>
</Stroke>
</Mark>
<Size>50</Size>
</Graphic>
</PointSymbolizer>
</Rule>

</FeatureTypeStyle>
</UserStyle>
</NamedLayer>
</StyledLayerDescriptor>



SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 142



ICD.DOC

7.8 sse_eoli Schema
As described in section 3.2.2.3, the sse_eoli schema defines the messages exchanged between the
portal and the eoli worflows. These messages encapsulate the EOLI messages in a generic
structure.
The multiCataloguesInputOutput message from portal to the workflow contains the eoli
searchRequest message, the different collections for which this request has to be submitted and the
area of interest as provided by the WebMapViewer (see Figure 39). The search EOLI workflow
integrates the area of interest information inside eoli searchRequest message. The parentedId
element contains the collection identifier.

Figure 39: multiCataloguesSearchInputMsg

In the other direction (workflow to portal), the EOLI workflow merges the different records
(metadata) returned for the different collections into a single structure
multiCataloguesSearchOutputMsg (see Figure 40). It also generates the WebMapViewer GML
representation of the returned records in the viewEmbeddedResult element.



SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 143



ICD.DOC


Figure 40: multiCataloguesSearchoutputMsg

The retrievedData element (see Figure 41) is a generic structure to encapsulate the specific
records of the remote catalogue, EOLI in this case. The workflow copies in a common place
independent of the catalogue protocol, the product id (sse:id) and the catalogue id (sse:parented).
These elements are needed by the SSE portal to identify the product in a generic way. The
sse:overlap element is computed by the portal based on GML stored in the
viewEmbeddedResultElement.




SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 144



ICD.DOC


Figure 41: retrievedData

The approach of defining an internal schema on top of the remote catalogue schema has been
applied following the same canevas for the other catalogues icds supported by the service
registration such as the OGC catalogues defined for EO products [RD30] and [RD31]. For each of
these catalogues interface, there are two defined schemas file. One is a stub of the other. This
avoids to import all subschemas (e.g. GML schemas) in the SSE toolbox.
The sub schemas are published at services.eoportal.org/schemas/1.6. The full schemas are
present on each SSE servers in the http://sse_url/wsdl/sseSchemas/internalIcd/catalogue/
The following schema is the sse_eoli schema:
<xsd:schema xmlns="http://www.esa.int/sse_eoli" xmlns:sse="http://www.esa.int/mass"
xmlns:aoi="http://www.esa.int/xml/schemas/mass/aoifeatures" xmlns:eoli="http://earth.esa.int/XML/eoli"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.esa.int/sse_eoli"
elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0">
<xsd:import namespace="http://www.esa.int/mass" schemaLocation="sse_basic.xsd"/>
<xsd:import namespace="http://www.esa.int/xml/schemas/mass/aoifeatures"
schemaLocation="../../gml/WebmapViewer/GML2/aoifeatures.xsd"/>
<xsd:import namespace="http://earth.esa.int/XML/eoli" schemaLocation="eoli.xsd"/>
<!--standard/common basic elements -->
<!-- Search types -->
<xsd:element name="searchOutput" type="SearchOutputType">
<xsd:annotation>
<xsd:documentation>element that contains the Search/Present Results</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:complexType name="SearchOutputType">
<xsd:annotation>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 145



ICD.DOC

<xsd:documentation>standard information that contains the specific output of a Search or Present
operation</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element ref="sse:statusInfo"/>
<xsd:element name="hits" type="xsd:nonNegativeInteger" default="0" minOccurs="0"/>
<xsd:element name="cursor" type="xsd:positiveInteger" nillable="false" minOccurs="0"/>
<xsd:element ref="sse:parentId" minOccurs="0"/>
<xsd:element ref="retrievedData" minOccurs="0"/>
<xsd:element ref="sse:viewEmbeddedResult" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="retrievedData" type="RetrievedDataType">
<xsd:annotation>
<xsd:documentation>element that represents the collection of retrieved data from a Search or a
Present</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:complexType name="PortalMetadataType">
<xsd:sequence>
<xsd:element ref="sse:id"/>
<xsd:element ref="sse:parentId"/>
<xsd:element name="metadata" type="eoli:MetadataType"/>
<xsd:element ref="sse:overlap"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="RetrievedDataType">
<xsd:annotation>
<xsd:documentation>type of the retrieved data</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="portalMetadata" type="PortalMetadataType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="presentation" type="eoli:PresentationType"/>
</xsd:complexType>
<!--
types needed for the internal interface between the portal and the search/present workflow
-->
<xsd:element name="multiCataloguesSearchInputMsg" type="MultiCataloguesSearchInputType"/>
<xsd:complexType name="MultiCataloguesSearchInputType">
<xsd:annotation>
<xsd:documentation>type for input xml message used to do search on multiple catalogues</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element ref="sse:searchCollections"/>
<xsd:element ref="aoi:areaOfInterest" minOccurs="0"/>
<xsd:element ref="eoli:searchRequest" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="multiCataloguesSearchOutputMsg" type="MultiCataloguesSearchOutputType"/>
<xsd:complexType name="MultiCataloguesSearchOutputType">
<xsd:annotation>
<xsd:documentation>type for ouput xml message resulted from a multiple search</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element ref="sse:statusInfo"/>
<xsd:element ref="searchOutput" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>


SSE ICD

Ref.
Issue
Rev.
Page
: ME-ICD-0001-SPB
: 1-13/02/04
: 10-26/07/11
: 146



ICD.DOC

<xsd:element name="searchOutputs">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="eoli:collectionId"/>
<xsd:element ref="searchOutput"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!--
internal interface for present operation
-->
<xsd:element name="processPresentInputMsg" type="ProcessPresentInputType">
<xsd:annotation>
<xsd:documentation>input message element for the processPresent SOAP request</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:complexType name="ProcessPresentInputType">
<xsd:annotation>
<xsd:documentation>type of the input message of a service's processPresent soap operation</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element ref="eoli:presentRequest"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="processPresentOutputMsg" type="ProcessPresentOutputType">
<xsd:annotation>
<xsd:documentation>output message element for the processPresent SOAP response</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:complexType name="ProcessPresentOutputType">
<xsd:annotation>
<xsd:documentation>type of the ouput message of a service's present soap operation</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element ref="searchOutput"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>

You might also like