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

Icd

Embed Size (px)

Citation preview

Page 1: Icd

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

Page 2: Icd

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

Page 3: Icd

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 � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �

Page 4: Icd

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

Page 5: Icd

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�

Page 6: Icd

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�

Page 7: Icd

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�

Page 8: Icd

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�

Page 9: Icd

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.

Page 10: Icd

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.

Page 11: Icd

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

Page 12: Icd

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

Page 13: Icd

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

Page 14: Icd

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?

Page 15: Icd

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).

Page 16: Icd

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. Don’t 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.

Page 17: Icd

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

Page 18: Icd

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 OrderSearch

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

Page 19: Icd

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 user’s 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.

SSEPortal

ServiceProvider

Req: Initial

Resp: Ack

InitialRequest

Req: Final

Resp: Ack

FinalRequest

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].

SSEPortal

ServiceProvider

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

Page 20: Icd

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.

SSEPortal

Service Provider’s

system

processSearch

processPresent

processRFQ

processOrder

Figure 4: Synchronous Operations

For the Asynchronous operations, to send the request from the Portal to the Service Provider’s 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).

SSEPortal

ServiceProvider’s

system

sendRFQ

sendOrder

returnRFQResult

returnOrderResult

Figure 5: Asynchronous Operations

Page 21: Icd

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 Provider’s existing systems that do the processing of the service.

SSEPortal

TO

MC

AT

SOA

P L

IB.

Linux or Windows NT

JVM

WEB SERVER GATEWAY

SOA

P B

acke

ndService Provider’s

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)

Page 22: Icd

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

processSearchRequest

see 3.2.2.3 Input eoli:searchRequest None

Output eoli:response None

processPresentRequest

See 3.2.2.3 Input eoli:presentRequest None

Output eoli:response None

processRFQ see Input processRFQInputMsg RFQInputType

Output processRFQOutputMsg RFQOutputType

Page 23: Icd

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

Page 24: Icd

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.xsd“schema 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

<<import>>

<<import>>

<<import>>

“ESA”

<<import>>

geometry.xsd feature.xsd xlinks.xsd <<include>> <<import>>

“OGC”

“W3C”

<<import>>

regions.xsd

<<import>>

sse_eoli.xsd

Page 25: Icd

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

Page 26: Icd

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).

Page 27: Icd

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,

Page 28: Icd

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:

Page 29: Icd

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

Page 30: Icd

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 ).

Page 31: Icd

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.

Page 32: Icd

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

Page 33: Icd

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

Page 34: Icd

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.

Page 35: Icd

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

Page 36: Icd

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

Page 37: Icd

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.

Page 38: Icd

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

Page 39: Icd

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.

Page 40: Icd

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.

Page 41: Icd

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

Page 42: Icd

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

EndPreparing

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.

Page 43: Icd

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

Page 44: Icd

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.

Page 45: Icd

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 OGC’s 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.

Page 46: Icd

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.

Page 47: Icd

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.

Page 48: Icd

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).

Page 49: Icd

SSE ICD

Ref. Issue Rev. Page

: ME-ICD-0001-SPB : 1-13/02/04 : 10-26/07/11 : 45

ICD.DOC

SSEPortal

AutorisationWorkflows

mass:sendAuthorisationInputMsg

mass:returnAuthorisationInputMsg

SSE

Autorisation request

SSEPortal

AutorisationWorkflows

mass:sendAuthorisationInputMsg

mass:returnAuthorisationInputMsg

SSE

Autorisation request

Figure 31: AuthorizationWorkflows Interface

Figure 32: Autorisation Input Message Element

Figure 33: Authorization Workflows Interface

Page 50: Icd

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"/>-->

Page 51: Icd

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>

Page 52: Icd

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>

Page 53: Icd

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>

Page 54: Icd

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>

Page 55: Icd

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>

Page 56: Icd

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 Workf low 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.

Page 57: Icd

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 stylesheetTemplate mass:getRFQOutput in common stylesheet

Template mass:rfqOutputHeader in service stylesheet

Template sns:rfqOutput in service stylesheetTemplate 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

Page 58: Icd

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.

Page 59: Icd

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'">

Page 60: Icd

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 -->

Page 61: Icd

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 f ields… 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>

Page 62: Icd

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 f ields 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/* "/>

Page 63: Icd

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"/>

Page 64: Icd

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"?>

Page 65: Icd

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>

Page 66: Icd

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">

Page 67: Icd

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.

Page 68: Icd

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: st y l esheet Text , st y l esheet Bol dText , st y l esheet Header .

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…

Page 69: Icd

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>

Page 70: Icd

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>

Page 71: Icd

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">

Page 72: Icd

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>

Page 73: Icd

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" />

Page 74: Icd

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

Page 75: Icd

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) {

Page 76: Icd

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>

Page 77: Icd

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>

Page 78: Icd

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/*"/>

Page 79: Icd

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>

Page 80: Icd

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). That’s 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 ver si on=" 1. 0" encodi ng=" UTF- 8" ?> <! - - at sr . wsdl - - > <def i ni t i ons t ar get Namespace= " ht t p: / / www. xxx. com/ ws/ at sr " xml ns: t ns=" ht t p: / / www. xxx. com/ ws/ at sr " xml ns=" ht t p: / / schemas. xml soap. or g/ wsdl / " xml ns: wsdl soap=" ht t p: / / schemas. xml soap. or g/ wsdl / soap/ " xml ns: pl nk=" ht t p: / / schemas. xml soap. or g/ ws/ 2003/ 05/ par t ner - l i nk/ " xml ns: wsa=" ht t p: / / schemas. xml soap. or g/ ws/ 2003/ 03/ addr essi ng" > <t ypes> <schema at t r i but eFor mDef aul t =" qual i f i ed" el ement For mDef aul t =" qual i f i ed" t ar get Namespace=" ht t p: / / schemas. xml soap. or g/ wsdl / " xml ns=" ht t p: / / www. w3. or g/ 2001/ XMLSchema" > <i mpor t namespace=" ht t p: / / www. xxx. com/ ws/ at sr " schemaLocat i on=" ATSRBasi c. xsd" / > <i mpor t namespace=" ht t p: / / schemas. xml soap. or g/ ws/ 2003/ 03/ addr essi ng" schemaLocat i on=" ws-addr essi ng. xsd" / > </ schema> </ t ypes> <! - - For WS- Addr essi ng suppor t s- - > <message name=" St ar t Header " > <par t name=" MessageI D" el ement =" wsa: MessageI D" / > <par t name=" Repl yTo" el ement =" wsa: Repl yTo" / > </ message> <message name=" Cont i nueHeader " > <par t name=" Rel at esTo" el ement =" wsa: Rel at esTo" / > </ message> <message name=" sendOr der I nput " > <par t name=" par amet er s" el ement =" t ns: sendOr der I nput Msg" / > </ message> <message name=" sendOr der Out put " > <par t name=" par amet er s" el ement =" t ns: sendOr der Out put Msg" / > </ message> <message name=" r et ur nOr der Resul t I nput " > <par t name=" par amet er s" el ement =" t ns: r et ur nOr der Resul t I nput Msg" / > </ message> <message name=" r et ur nOr der Resul t Out put " > <par t name=" par amet er s" el ement =" t ns: r et ur nOr der Resul t Out put Msg" / > </ message> <por t Type name=" ATSRBasi cSer v i ce" > <oper at i on name=" sendOr der " > <i nput name=" sendOr der I nput " message=" t ns: sendOr der I nput " / > <out put name=" sendOr der Out put " message=" t ns: sendOr der Out put " / > </ oper at i on> </ por t Type>

Page 81: Icd

SSE ICD

Ref. Issue Rev. Page

: ME-ICD-0001-SPB : 1-13/02/04 : 10-26/07/11 : 77

ICD.DOC

<por t Type name=" ATSRBasi cSer v i ceCal l back" > <oper at i on name=" r et ur nOr der Resul t " > <i nput name=" r et ur nOr der Resul t I nput " message=" t ns: r et ur nOr der Resul t I nput " / > <out put name=" r et ur nOr der Resul t Out put " message=" t ns: r et ur nOr der Resul t Out put " / > </ oper at i on> </ por t Type> <bi ndi ng name=" ATSRBasi cSer vi ceSoapBi ndi ng" t ype=" t ns: ATSRBasi cSer v i ce" > <wsdl soap: bi ndi ng st yl e=" document " t r anspor t =" ht t p: / / schemas. xml soap. or g/ soap/ ht t p" / > <oper at i on name=" sendOr der " > <wsdl soap: oper at i on soapAct i on=" sendOr der " / > <i nput name=" sendOr der I nput " > <wsdl soap: header r equi r ed=" f al se" message=" t ns: St ar t Header " par t =" MessageI D" use=" l i t er al " / > <wsdl soap: body use=" l i t er al " / > </ i nput > <out put name=" sendOr der Out put " > <wsdl soap: body use=" l i t er al " / > </ out put > </ oper at i on> </ bi ndi ng> <bi ndi ng name=" ATSRBasi cSer vi ceCal l backSoapBi ndi ng" t ype=" t ns: ATSRBasi cSer v i ceCal l back" > <wsdl soap: bi ndi ng st yl e=" document " t r anspor t =" ht t p: / / schemas. xml soap. or g/ soap/ ht t p" / > <oper at i on name=" r et ur nOr der Resul t " > <wsdl soap: oper at i on soapAct i on=" r et ur nOr der Resul t " / > <i nput name=" r et ur nOr der Resul t I nput " > <wsdl soap: header r equi r ed=" t r ue" message=" t ns: Cont i nueHeader " par t =" Rel at esTo" use=" l i t er al " / > <wsdl soap: body use=" l i t er al " / > </ i nput > <out put name=" r et ur nOr der Resul t Out put " > <wsdl soap: body use=" l i t er al " / > </ out put > </ oper at i on> </ bi ndi ng> <ser v i ce name=" ATSRBasi cSer vi ce" > <por t bi ndi ng=" t ns: ATSRBasi cSer v i ceSoapBi ndi ng" name=" ATSRBasi cSer v i ce" > <wsdl soap: addr ess l ocat i on=" ht t p: / / ur l xxx/ TOOLBOX/ ser vi ces/ ATSR" / > </ por t > </ ser vi ce> <ser v i ce name=" ATSRBasi cSer vi ceCal l backSer vi ce" > <por t name=" ATSRBasi cSer v i ceCal l back" bi ndi ng=" t ns: ATSRBasi cSer vi ceCal l backSoapBi ndi ng" > <wsdl soap: addr ess l ocat i on=" ht t p: / / openur i . or g" / > </ por t > </ ser vi ce> <pl nk: par t ner Li nkType name=" ATSRBasi cSer vi ce" > <pl nk: r ol e name=" ATSRBasi cSer v i cePr ovi der " > <pl nk: por t Type name=" t ns: ATSRBasi cSer v i ce" / > </ pl nk: r ol e> <pl nk: r ol e name=" ATSRBasi cSer v i ceRequest er " > <pl nk: por t Type name=" t ns: ATSRBasi cSer v i ceCal l back" / > </ pl nk: r ol e> </ pl nk: par t ner Li nkType>

</ def i ni t i ons>

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>

Page 82: Icd

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"/>

Page 83: Icd

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"/>

Page 84: Icd

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>

Page 85: Icd

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>

Page 86: Icd

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/ ser vi ces/ ATSR HTTP/ 1. 0 Cont ent - Type: t ext / xml ; char set =ut f - 8 Accept : appl i cat i on/ soap+xml , appl i cat i on/ di me, mul t i par t / r el at ed, t ext / * User - Agent : Axi s/ 1. 0 Host : www. xxx. com Cache- Cont r ol : no- cache Pr agma: no- cache SOAPAct i on: " sendOr der " Cont ent - Lengt h: 1291 <?xml ver si on=" 1. 0" encodi ng=" UTF- 8" ?> <soapenv: Envel ope xml ns: soapenv=" ht t p: / / schemas. xml soap. or g/ soap/ envel ope/ " xml ns: xsd=" ht t p: / / www. w3. or g/ 2001/ XMLSchema" xml ns: xsi =" ht t p: / / www. w3. or g/ 2001/ XMLSchema-i nst ance" > <soapenv: Header > <ns1: MessageI D xml ns: ns1=" ht t p: / / schemas. xml soap. or g/ ws/ 2003/ 03/ addr essi ng" >bpel : / / l ocal host / def aul t / ATSRBasi cOrder Fl ow~1. 0/ 203- BpI nv0- BpSeq0. 3- 3</ ns1: MessageI D> <! —cal l back l ocat i on���� <ns2: Repl yTo xml ns: ns2=" ht t p: / / schemas. xml soap. or g/ ws/ 2003/ 03/ addr essi ng" > <ns2: Addr ess>ht t p: / / mass. spacebel . be/ col l axa/ def aul t / ATSRBasi cOr der Fl ow/ 1. 0/ ATSRBasi cSer v i ce/ ATSRBasi cSer v i ceRequest er </ ns2: Addr ess> <ns2: Por t Type xml ns: ns3=" ht t p: / / www. xxx. com/ ws/ at sr " >ns3: ATSRBasi cSer v i ceCal l back</ ns2: Por t Type> <ns2: Ser vi ceName xml ns: ns4=" ht t p: / / www. xxx. com/ ws/ at sr " >ns4: ATSRBasi cSer v i ceCal l backSer vi ce</ ns2: Ser v i ceName> </ ns2: Repl yTo> </ soapenv: Header > <soapenv: Body> <sendOr der I nput Msg xml ns=" ht t p: / / www. xxx. com/ ws/ at sr " xml ns: mass=" ht t p: / / www. esa. i nt / mass" xml ns: aoi =" ht t p: / / www. esa. i nt / xml / schemas/ mass/ aoi f eat ur es" xml ns: gml =" ht t p: / / www. opengi s. net / gml " xml ns: oi =" ht t p: / / www. esa. i nt / oi " > <mass: commonI nput > <mass: or der I d>12345678</ mass: or der I d> </ mass: commonI nput > <sendOr der I nput > <user I d>St r i ng</ user I d> <dat e>1998- 01- 01</ dat e> <f or mat >HDF</ f or mat > </ sendOr der I nput > </ sendOr der I nput Msg> </ soapenv: Body> </ soapenv: Envel ope>

5.1.3.2 sendOrder SOAP HTTP Response HTTP/ 1. 1 200 OK Dat e: Wed, 25 Feb 2004 08: 44: 21 GMT Ser ver : Apache Coyot e HTTP/ 1. 1 Connect or [ 1. 0] Cont ent - Type: t ext / xml <?xml ver s i on=" 1. 0" encodi ng=" UTF- 8" ?> <soap- env: Envel ope xml ns: soap- env=" ht t p: / / schemas. xml soap. or g/ soap/ envel ope/ " > <soap- env: Header / > <soap- env: Body> <sendOr der Out put Msg xml ns=" ht t p: / / www. xxx. com/ ws/ at sr " xml ns: mass=" ht t p: / / www. esa. i nt / mass" > <mass: st at usI nf o> <mass: st at usI d>0</ mass: st at usI d> </ mass: st at usI nf o> </ sendOr der Out put Msg> </ soap- env: Body> </ soap- env: Envel ope>

5.1.3.3 returnOrderResult SOAP HTTP Request POST / col l axa/ def aul t / ATSRBasi cOr der Fl ow/ 1. 0/ ATSRBasi cSer v i ce/ ATSRBasi cSer v i ceRequest er HTTP/ 1. 0 Cont ent - Type: t ext / xml ; char set =ut f - 8 Accept : appl i cat i on/ soap+xml , appl i cat i on/ di me, mul t i par t / r el at ed, t ext / * User - Agent : Axi s/ 1. 1 Host : 194. 7. 127. 147

Page 87: Icd

SSE ICD

Ref. Issue Rev. Page

: ME-ICD-0001-SPB : 1-13/02/04 : 10-26/07/11 : 83

ICD.DOC

Cache- Cont r ol : no- cache Pr agma: no- cache SOAPAct i on: " r et ur nOr der Resul t " Cont ent - Lengt h: 1115 <?xml ver s i on=" 1. 0" encodi ng=" UTF- 8" ?> <soap- env: Envel ope xml ns: soap- env=" ht t p: / / schemas. xml soap. or g/ soap/ envel ope/ " > <soap- env: Header > <wsa: Rel at esTo soap- env: must Under st and=" 0" xsi : t ype=" xsd: st r i ng" xml ns: wsa=" ht t p: / / schemas. xml soap. or g/ ws/ 2003/ 03/ addr essi ng" xml ns: xsd=" www. w3. or g/ 2001/ XMLSchema" xml ns: xsi =" www. w3. or g/ 2001/ XMLSchema-i nst ance" >bpel : / / l ocal host / def aul t / ATSRBasi cOr der Fl ow~1. 0/ 203- BpI nv0- BpSeq0. 3-3</ wsa: Rel at esTo> </ soap- env: Header > <soap- env: Body> <r et ur nOr der Resul t I nput Msg xml ns=" ht t p: / / www. xxx. com/ ws/ at sr " xml ns: mass=" ht t p: / / www. esa. i nt / mass" > <mass: commonI nput > <mass: or der I d>12345678</ mass: or der I d> </ mass: commonI nput > <get Or der Out put > <mass: st at usI nf o> <mass: st at usI d>0</ mass: st at usI d> <mass: st at usMsg>Successf ul </ mass: st at usMsg> </ mass: st at usI nf o>

<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> </ get Or der Out put > </ r et ur nOr der Resul t I nput Msg> </ soap- env: Body>

</ soap- env: Envel ope>

5.1.3.4 returnOrderResult SOAP HTTP Response HTTP/ 1. 1 200 OK Dat e: Wed, 25 Feb 2004 08: 51: 55 GMT Ser ver : Jet t y / 4. 2. 11 ( Li nux/ 2. 4. 18- 14 i 386 j ava/ 1. 4. 2_01) Cont ent - Type: t ext / xml ; char set =ut f - 8 <?xml ver s i on=" 1. 0" encodi ng=" UTF- 8" ?> <soapenv: Envel ope xml ns: soapenv=" ht t p: / / schemas. xml soap. or g/ soap/ envel ope/ " xml ns: xsd=" ht t p: / / www. w3. or g/ 2001/ XMLSchema" xml ns: xs i =" ht t p: / / www. w3. or g/ 2001/ XMLSchema-i nst ance" > <soapenv: Body> <r et ur nOr der Resul t Out put Msg xml ns=" ht t p: / / www. xxx. com/ ws/ at sr " xml ns: mass=" ht t p: / / www. esa. i nt / mass" > <mass: st at usI nf o> <mass: st at usI d>0</ mass: st at usI d> <mass: st at usMsg>successf ul l y</ mass: st at usMsg> </ mass: st at usI nf o> </ r et ur nOr der Resul t Out put Msg> </ soapenv: Body> </ soapenv: Envel ope>

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

Page 88: Icd

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) {

Page 89: Icd

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">

Page 90: Icd

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;">

Page 91: Icd

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>

Page 92: Icd

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>

Page 93: Icd

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.

Page 94: Icd

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>

Page 95: Icd

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 -->

Page 96: Icd

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

Page 97: Icd

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><sendOrderInput><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"

Page 98: Icd

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>

Page 99: Icd

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>

Page 100: Icd

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”.

Page 101: Icd

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” .

Page 102: Icd

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">

Page 103: Icd

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"/>

Page 104: Icd

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"/>

Page 105: Icd

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>

Page 106: Icd

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>

Page 107: Icd

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

Page 108: Icd

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">

Page 109: Icd

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>

Page 110: Icd

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

Page 111: Icd

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>

Page 112: Icd

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

Page 113: Icd

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 ver si on=" 1. 0" encodi ng=" UTF- 8" ?> <! - - ============================================================== Fi l e: ser vi cer esul t . xsd Ver si on: v4. 0. 0 2006- 09- 28 Aut hor : St ef aan Desender Company: G. I . M. Geogr aphi c I nf or mat i on Management nv ==============================================================- - > <xsd: schema t ar get Namespace=" ht t p: / / www. esa. i nt / xml / schemas/ mass/ ser v i cer esul t " el ement For mDef aul t =" qual i f i ed" ver si on=" 1. 0" xml ns: xsd=" ht t p: / / www. w3. or g/ 2001/ XMLSchema" xml ns: sr =" ht t p: / / www. esa. i nt / xml / schemas/ mass/ ser vi cer esul t " xml ns: gml =" ht t p: / / www. opengi s. net / gml " xml ns: gml sf =" ht t p: / / www. opengi s. net / gml sf " xml ns: xs i =" ht t p: / / www. w3. or g/ 2001/ XMLSchema- i nst ance" > <xsd: annot at i on> <xsd: appi nf o>sr f eat ur es. xsd v4. 0. 0 2006- 09- 28</ xsd: appi nf o> <xsd: appi nf o sour ce=" gml / pr of i l es/ gml sf Pr of i l e/ gml sf Level s. xsd" > <gml sf : Compl i anceLevel >0</ gml sf : Compl i anceLevel > </ xsd: appi nf o> <xsd: document at i on>GML v3 Schema f or Ser v i ce Resul t f eat ur es. </ xsd: document at i on> </ xsd: annot at i on> <! - - ============================================================== I mpor t const r uct s f r om t he GML Feat ur e and Geomet r y schemas ==============================================================- - > <xsd: i mpor t namespace=" ht t p: / / www. opengi s. net / gml " schemaLocat i on=" gml / 3. 1. 1/ base/ gml . xsd" / > <! - - ============================================================== Gl obal el ement Decl ar at i ons ==============================================================- - > <xsd: el ement name=" Ser v i ceResul t " t ype=" sr : Ser v i ceResul t Type" subst i t ut i onGr oup=" gml : _Feat ur eCol l ect i on" / > <! - - ============================================================== Pr i vat e el ement Decl ar at i ons ==============================================================- - > <xsd: el ement name=" Feat ur e" t ype=" sr : Feat ur eType" subst i t ut i onGr oup=" gml : _Feat ur e" / > <! - - ============================================================== Type def i ni t i ons ==============================================================- - > <xsd: compl exType name=" Ser v i ceResul t Type" > <xsd: compl exCont ent > <xsd: r est r i c t i on base=" gml : Abst r act Feat ur eCol l ect i onType" > <xsd: sequence> <xsd: el ement r ef =" gml : boundedBy" mi nOccur s=" 0" / > <xsd: el ement r ef =" gml : f eat ur eMember " mi nOccur s=" 0" maxOccur s=" unbounded" / > </ xsd: sequence> <xsd: at t r i but e r ef =" gml : i d" use=" r equi r ed" / > </ xsd: r est r i c t i on> </ xsd: compl exCont ent > </ xsd: compl exType> <xsd: el ement name=" f eat ur eMember " subst i t ut i onGr oup=" gml : f eat ur eMember " > <xsd: compl exType> <xsd: compl exCont ent > <xsd: r est r i c t i on base=" gml : Feat ur ePr oper t yType" > <xsd: sequence> <xsd: el ement r ef =" sr : Feat ur e" / > </ xsd: sequence> </ xsd: r est r i ct i on> </ xsd: compl exCont ent > </ xsd: compl exType> </ xsd: el ement > <xsd: compl exType name=" Rest r i c t edAbst r act Feat ur eType" abst r act =" t r ue" > <xsd: compl exCont ent > <xsd: r est r i c t i on base=" gml : Abst r act Feat ur eType" > <xsd: sequence> <xsd: el ement r ef =" gml : boundedBy" mi nOccur s=" 0" / > </ xsd: sequence> <xsd: at t r i but e r ef =" gml : i d" use=" r equi r ed" / > </ xsd: r est r i c t i on> </ xsd: compl exCont ent > </ xsd: compl exType> <xsd: compl exType name=" Feat ur eType" > <xsd: compl exCont ent > <xsd: ext ensi on base=" sr : Rest r i ct edAbst r act Feat ur eType" > <xsd: sequence> <xsd: el ement name=" i d" t ype=" xsd: t oken" mi nOccur s=" 0" / > <xsd: el ement name=" t ool t i p" t ype=" xsd: nor mal i zedSt r i ng" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e1" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e2" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e3" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e4" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e5" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e6" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e7" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e8" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e9" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e10" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e11" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / >

Page 114: Icd

SSE ICD

Ref. Issue Rev. Page

: ME-ICD-0001-SPB : 1-13/02/04 : 10-26/07/11 : 110

ICD.DOC

<xsd: el ement name=" at t r i but e12" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e13" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e14" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e15" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e16" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e17" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e18" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e19" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e20" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e21" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e22" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e23" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e24" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e25" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e26" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e27" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e28" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e29" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e30" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e31" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e32" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e33" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e34" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e35" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e36" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e37" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e38" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e39" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e40" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e41" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e42" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e43" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e44" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e45" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e46" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e47" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e48" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e49" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" at t r i but e50" t ype=" sr : At t r i but eType" mi nOccur s=" 0" / > <xsd: el ement name=" geomet r y" t ype=" sr : Geomet r yPr oper t yType" / > </ xsd: sequence> </ xsd: ext ensi on> </ xsd: compl exCont ent > </ xsd: compl exType> <xsd: compl exType name=" Geomet r yPr oper t yType" > <xsd: sequence> <xsd: choi ce> <xsd: el ement r ef =" gml : Poi nt " / > <xsd: el ement r ef =" gml : Mul t i Poi nt " / > <xsd: el ement r ef =" gml : Li neSt r i ng" / > <xsd: el ement r ef =" gml : Mul t i Cur ve" / > <xsd: el ement r ef =" gml : Pol ygon" / > <xsd: el ement r ef =" gml : Mul t i Sur f ace" / > </ xsd: choi ce> </ xsd: sequence> </ xsd: compl exType> <xsd: compl exType name=" At t r i but eType" > <xsd: s i mpl eCont ent > <xsd: ext ensi on base=" xsd: nor mal i zedSt r i ng" > <xsd: at t r i but e name=" l abel " t ype=" xsd: nor mal i zedSt r i ng" use=" opt i onal " / > </ xsd: ext ensi on> </ xsd: s i mpl eCont ent > </ xsd: compl exType> </ 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>

Page 115: Icd

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>

Page 116: Icd

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.

Page 117: Icd

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 ver si on=" 1. 0" encodi ng=" UTF- 8" ?> <! - - edi t ed wi t h XML Spy v4. 2 U ( ht t p: / / www. xml spy. com) by F. Di Lor et o ( DATAMAT) ( ESA - Eur opean Space Agency) - - > <xsd: schema t ar get Namespace=" ht t p: / / www. esa. i nt / oi " xml ns=" ht t p: / / www. esa. i nt / oi " xml ns: xsd=" ht t p: / / www. w3. or g/ 2001/ XMLSchema" el ement For mDef aul t =" qual i f i ed" at t r i but eFor mDef aul t =" unqual i f i ed" ver s i on=" V1. 7" > <! - - XML OpenGI S ext ended f or UOS v 1. 10- - > <! - - ===================================== Root el ement - - > <xsd: el ement name=" or i gi nPar t " > <xsd: annot at i on> <xsd: document at i on>Thi s r epr esent t he t ar get Par t el ement s wi t hi n t he Z39. 50- CI P- Or der Ext endedRequest </ xsd: document at i on> </ xsd: annot at i on> <xsd: compl exType> <xsd: sequence> <xsd: el ement name=" act i on" > <xsd: annot at i on> <xsd: document at i on>I ndi cat es t he t ype of oper at i on t hat i s r equest ed t o be per f or med f or t he or der r equest . I t has associ at ed a l i s t of enumer at i ves def i ni ng 5 possi bl e ki nds of or der r equest s</ xsd: document at i on> </ xsd: annot at i on> <xsd: s i mpl eType> <xsd: r est r i c t i on base=" Act i onEnum" / > </ xsd: si mpl eType> </ xsd: el ement > <xsd: el ement name=" or der Speci f i cat i on" t ype=" Or der Speci f i cat i on" > <xsd: annot at i on> <xsd: document at i on>Thi s l evel cor r esponds t o t he Or der Descr i pt or l evel of MUI S- C and t o Det ai l Or der Level of DE. </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" or der I d" t ype=" xsd: st r i ng" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t maps MUI S- C Or der Descr i pt or ' Or der I d' and DE i mpl i ci t or der ' Pr oj ect +Or dCt r +Ref DuI D' . I t coi nci des wi t h OHS_Or der I d f or or der di r ect ed f r om OHS t owar ds CUS ( i . e. composed wi t h Account +sequent i al number i nt er nal t o t he account f or MUI S and N/ A f or DE I nt er f ace) . I t coi nci des agai n wi t h OHS_Or der I d f or or der di r ect ed f r om OHS t owar ds PROMI SE ( i . e. composed wi t h Account +MUI S- C Or der Descr i pt or ' Or der I d' f or MUI S, Pr oj ect +Or dCt r DuI D f or DE) . </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" st at usUpdat eOpt i on" t ype=" St at usUpdat eOpt i onEnum" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>Speci f y i f t he updat e of t he st at us shal l be not i f i ed aut omat i cal l y or manual l y . I t shal l be used t o i mpl ement DE f unct i onal i t y of r equest i ng a st at us. For MUI S- C t he opt i on wi l l al ways be set t o aut omat i c wi t h val ue ' OGC_i nt er f ace' </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" user I nf or mat i on" t ype=" User I nf or mat i on" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>Onl y t he user I d and t he Bi l l i ng. Cust omer Ref er ence ar e used i n t hi s cont ext . That i s because onl y t he shi ppi ng addr ess i s needed, not at t hi s l evel but at Del i ver yUni t l evel </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" ot her I nf o" mi nOccur s=" 0" > <xsd: compl exType> <xsd: sequence> <xsd: el ement name=" sour ceUser I d" t ype=" xsd: st r i ng" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t maps MUI S- C Or der Descr i pt or ' User I d' par amet er </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" or der Account " mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t maps t he DE #UORD ' Pr oj ect ' par amet er and t he MUI S- C Or der Descr i pt or ' Or der Account ' par amet er . </ xsd: document at i on> </ xsd: annot at i on> <xsd: si mpl eType> <xsd: r est r i ct i on base=" xsd: st r i ng" > <xsd: maxLengt h val ue=" 20" / > </ xsd: r est r i c t i on>

Page 118: Icd

SSE ICD

Ref. Issue Rev. Page

: ME-ICD-0001-SPB : 1-13/02/04 : 10-26/07/11 : 114

ICD.DOC

</ xsd: s i mpl eType> </ xsd: el ement > <xsd: el ement name=" answer Count er " t ype=" xsd: i nt " mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>Count s t he Pr ovi der Or der St at us f i l es sent t o DE f or t hi s det ai l or der </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > </ xsd: sequence> </ xsd: compl exType> </ xsd: el ement > </ xsd: sequence> </ xsd: compl exType> </ xsd: el ement > <! - - ===================================== Or der l evel - - > <xsd: compl exType name=" Or der Speci f i cat i on" > <xsd: annot at i on> <xsd: document at i on>Thi s t ype maps mai l ny MUI S- C Or der Descr i pt or s t r uct ur e and DE #DORD ( Det ai l ed Or der def i ni t i on) i nt er f ace. </ xsd: document at i on> </ xsd: annot at i on> <xsd: sequence> <xsd: el ement name=" i dent i f i cat i onI nf o" t ype=" I dent i f i cat i onI nf or mat i on" > <xsd: annot at i on> <xsd: document at i on>I t cont ai ns i dent i f i cat or s of t he or der </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" or der i ngCent r eI d" t ype=" xsd: st r i ng" > <xsd: annot at i on> <xsd: document at i on>Al ways ESA/ UOS f or MEH pur poses</ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" del i ver yUni t s" maxOccur s=" unbounded" > <xsd: annot at i on> <xsd: document at i on>Li st of Del i ver y Uni t s associ at ed t o t he or der </ xsd: document at i on> </ xsd: annot at i on> <xsd: compl exType> <xsd: compl exCont ent > <xsd: ext ensi on base=" Del i ver yUni t Spec" / > </ xsd: compl exCont ent > </ xsd: compl exType> </ xsd: el ement > <xsd: el ement name=" or der Pr i ce" t ype=" Pr i ceI nf o" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>At t hi s l evel MUI S- C maps Or der Descr i pt or ' Or der Pr i ce' , ' Or der Li st Pr i ce' and ' Or der Expect edPr i ce' . DE maps onl y t he expect edPr i ce i n t he #DORD i nt er f ace. </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" or der Cancel l at i onDat e" t ype=" Dat eTi me. i so8601" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>Maps t he MUI S- C Or der Descr i pt or Lat est Cancel Dat e. NOt pr esent i n DE i nt er f aces. </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" ot her I nf o" mi nOccur s=" 0" > <xsd: compl exType> <xsd: sequence> <xsd: el ement name=" or der Type" t ype=" Or der TypeEnum" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>i t Maps MUI S- C Or der Descr i pt or ' Or der Type' . Not used i n DE i nt er f aces. </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" or der Cl ass" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t maps MUI S- C Or der Descr i pt or " Or der Cl ass" </ xsd: document at i on> </ xsd: annot at i on> <xsd: si mpl eType> <xsd: r est r i c t i on base=" xsd: st r i ng" > <xsd: maxLengt h val ue=" 20" / > </ xsd: r est r i c t i on> </ xsd: s i mpl eType> </ xsd: el ement > <xsd: el ement name=" or der Scope" t ype=" Or der ScopeEnum" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>Scope of t he or der . Not pr esent i n MUI S- C. Used i n DE wi t hi n #DORD t o i mpr ove ser v i ce ( " Scope" ) . </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" appl i cat i onType" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t maps t he DE #DORD ' Appl Type' par amet er </ xsd: document at i on> </ xsd: annot at i on> <xsd: si mpl eType> <xsd: r est r i c t i on base=" xsd: st r i ng" >

Page 119: Icd

SSE ICD

Ref. Issue Rev. Page

: ME-ICD-0001-SPB : 1-13/02/04 : 10-26/07/11 : 115

ICD.DOC

<xsd: maxLengt h val ue=" 3" / > </ xsd: r est r i c t i on> </ xsd: s i mpl eType> </ xsd: el ement > <xsd: el ement name=" or der Sour ce" t ype=" Or der Sour ceEnum" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>The Syst em f r om whi ch t he or der has been post ed. I t maps t he MUI S- C Or der Descr i pt or ' Or der Sour ce[ - Col l ect i onI d] ' and DE UORD ' Pr ov ' par amet er . The Col l ect i onI d i s a MUI S- C par amet er gi ven wi t hi n Tar get Ser vi ce compound par amat er . The gi ven enumer at i ve l i s t i s ext ensi bl e. </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" or der Dat eTi me" t ype=" Dat eTi me. i so8601" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>Maps MUI S- C Or der Descr i pt or " Or der Dat eTi me" and DE #DORD " Dat e/ Ti me: " . </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" or der St at usI nf o" t ype=" Or der St at usI nf o" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t maps MUI S- C Or der I t em ' Or der St at us' and ' Or der St at usDescr i pt i on' par amet er s</ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" or der Remar k" t ype=" xsd: st r i ng" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t maps i nf or mat i on dependi ng on t he i nt er f aces: 1) cust omer 2or der Desk 2) or der Desk2Cust omer 3) or der Desk2Pr ocessi ng 4) pr ocessi ng2Or der Desk. I t maps MUI S- C " Or der User Remar ks" i n Or der Descr i pt or and DE #UORD ' Remar ks ' </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" or der Condi t i on" t ype=" Or der Condi t i on" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>Logi cal condi t i on t o be appl i ed t o al l or der i t ems. Pr esent onl y i n MUI S- C Or der Descr i pt or </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" par t i al Del i ver yAccept ed" t ype=" xsd: bool ean" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>Tr ue i f Del i ver yUni t s can be del i ver ed separ at el y. Pr esent i n MUI S- C Or der Descr i pt or and i n DE #DORD i nt er f ace ( " PD" ) . </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" par t i al Ful f i l l ment Per cent age" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>Di f f er ent f r om 100 i f par t i al f ul l f i l l ment i s accept abl e f or t he user . Al l owed val ues ar e f r om 0 t o 100, 100 means MUI S- C ' FALSE' ( 100% have t o be f ul f i l l ed, no pr t i al f ul f i l ment accept ed) , any ot her val ue means MUI S- C ' TRUE' . I n DE i t expr esses t he mi ni mum per cent age of compl et eness of t he or der t o consi der t he or der as f ul f i l l ed. </ xsd: document at i on> </ xsd: annot at i on> <xsd: si mpl eType> <xsd: r est r i c t i on base=" xsd: i nt eger " > <xsd: mi nI ncl usi ve val ue=" 1" / > <xsd: maxI ncl usi ve val ue=" 100" / > </ xsd: r est r i c t i on> </ xsd: s i mpl eType> </ xsd: el ement > <xsd: el ement name=" cont act Poi nt " t ype=" xsd: st r i ng" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t mappi ng depends on usage: 1) cust omer ( DE, cat 1) t o OHS: cust omer Cont act Poi nt ( DE #DORD ' CD' ( Pr ov_Who) ) 2) OHS 2 cust omer : or der DeskCont act Poi nt ( DE #DORD ' SD' ( Suppl i er Deput y) ) 3) OHS 2 pr ocessi ng: ( CUS/ PROMI SE/ ENVI SAT) : or der DeskCont act Poi nt 4) pr ocessi ng 2 OHS: pr ocessi ngCont act Poi nt </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > </ xsd: sequence> </ xsd: compl exType> </ xsd: el ement > </ xsd: sequence> </ xsd: compl exType> <xsd: compl exType name=" Or der Condi t i on" > <xsd: annot at i on> <xsd: document at i on>Descr i bes a l ogi cal condi t i on t o be appl i ed t o al l or der i t ems. I t maps MUI S- C Or der Descr i pt or " Or der Condi t i on" </ xsd: document at i on> </ xsd: annot at i on> <xsd: sequence> <xsd: el ement name=" st ar t Dat e" t ype=" Dat eTi me. i so8601" mi nOccur s=" 0" / > <xsd: el ement name=" endDat e" t ype=" Dat eTi me. i so8601" mi nOccur s=" 0" / > <xsd: el ement name=" obser vat i onI nt er val " mi nOccur s=" 0" > <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: unsi gnedLong" > <xsd: maxI ncl usi ve val ue=" 4294967296" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType>

Page 120: Icd

SSE ICD

Ref. Issue Rev. Page

: ME-ICD-0001-SPB : 1-13/02/04 : 10-26/07/11 : 116

ICD.DOC

</ xsd: el ement > <xsd: el ement name=" number Of Obser vat i ons" mi nOccur s=" 0" > <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: unsi gnedLong" > <xsd: maxI ncl usi ve val ue=" 4294967296" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > <xsd: el ement name=" ar eaOf I nt er est " mi nOccur s=" 0" > <xsd: compl exType> <xsd: sequence> <xsd: choi ce> <xsd: el ement name=" gPol ygon" t ype=" GPol ygon" / > <xsd: el ement name=" ci r cl e" t ype=" Ci r c l e" > <xsd: annot at i on> <xsd: document at i on>I t maps t he DE #AREA ' Radi us' par amet er </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > </ xsd: choi ce> <xsd: el ement name=" cl ust er Ar eaName" t ype=" xsd: st r i ng" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t maps DE #AREA Ar ea( s) ( Cl ust er _Ar ea_Name) . I t i s not used i n MUI S- C</ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" ar eaName" t ype=" xsd: st r i ng" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t maps DE #AREA Ar ea( s) ( Ar ea_Name) . I t i s not used i n MUI S-C</ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > </ xsd: sequence> </ xsd: compl exType> </ xsd: el ement > <xsd: el ement name=" t hemat i cKeywor d" mi nOccur s=" 0" > <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: st r i ng" > <xsd: maxLengt h val ue=" 40" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > <xsd: el ement name=" pr oduct CodeI d" t ype=" Pr oduct CodeEnum" mi nOccur s=" 0" / > <xsd: el ement name=" cover ageRequi r ed" t ype=" Cover ageRequi r edEnum" mi nOccur s=" 0" / > <xsd: el ement name=" maxNumOf Pr oduct sPer Obser vat i on" mi nOccur s=" 0" > <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: unsi gnedI nt " > <xsd: maxI ncl usi ve val ue=" 65535" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > <xsd: el ement name=" del i ver yPol i cy" t ype=" Del i ver yPol i cyEnum" mi nOccur s=" 0" / > <xsd: el ement name=" speci f i cCondi t i ons" mi nOccur s=" 0" maxOccur s=" unbounded" > <xsd: annot at i on> <xsd: document at i on>Spl i t MUI S- C SPECI FI C_CONDI TI ONS si ngl e st r i ng at each ' \ n' encount er ed def i ni ng mul t i pl e st r i ngs. </ xsd: document at i on> </ xsd: annot at i on> <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: st r i ng" > <xsd: mi nLengt h val ue=" 0" / > <xsd: maxLengt h val ue=" 1023" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > <xsd: el ement name=" cor r el at i onCondi t i ons" mi nOccur s=" 0" maxOccur s=" unbounded" > <xsd: annot at i on> <xsd: document at i on>Spl i t MUI S- C CORRELATI ON_CONDI TI ONS st r i ng at ' \ n' </ xsd: document at i on> </ xsd: annot at i on> <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: st r i ng" > <xsd: mi nLengt h val ue=" 0" / > <xsd: maxLengt h val ue=" 1023" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > </ xsd: sequence> </ xsd: compl exType> <! - - ===================================== Del i ver yUni t l evel - - > <xsd: compl exType name=" Del i ver yUni t Spec" > <xsd: annot at i on> <xsd: document at i on>Thi s sect i on maps MUI S- C Del i ver yUni t Descr i pt or s t r uct ur e. DE i nt er f ace does not have a speci f i c s t r uct ur e mappi ng t hi s sect i on and most of t he r el evant i nf or mat i on cont ai ned her e can be f ound i n #DORD i nt er f ace. </ xsd: document at i on> </ xsd: annot at i on> <xsd: sequence> <xsd: el ement name=" del i ver yUni t I d" t ype=" Del i ver yUni t I d" >

Page 121: Icd

SSE ICD

Ref. Issue Rev. Page

: ME-ICD-0001-SPB : 1-13/02/04 : 10-26/07/11 : 117

ICD.DOC

<xsd: annot at i on> <xsd: document at i on>I dent i f i er of t he Del i ver yUni t . I t maps MUI S- C Del i ver yUni t Descr i pt or " Del i ver yUni t I d" and DE #DORD " Ref DuI d#" . </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" del i ver yUni t Pr i ce" t ype=" Pr i ceI nf oLowLevel " mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>At t hi s l evel MUI S- C maps del i ver y f i r mPr i ce, l i st Pr i ce and expect edPr i ce. DE does not maps t hi s i nf or mat i on at t hi s l evel . </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" del i ver yMet hod" t ype=" Del i ver yMet hod" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>Repr esent s t he del i ver y met hod r equest ed f or t he Del i ver yUni t . I t maps MUI S- C Del i ver yUni t descr i pt or " Del i ver yMet hod" pl us t he r el evant User I nf or mat i on ( Del i ver yAddr ess / Del i ver yEmai l Addr ess / et c. . ) . I n DE t hi s i nf or mat i on ar e pr esent ed at #DORD l evel f or what concer n t he i nf or mat i on r el at ed t o FTP addr ess an mai l / emai l addr ess, at #I TEM l evel f or what concer n t he del i ver y met hod t hat shal l be used. </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" bi l l i ng" t ype=" Bi l l i ng" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I nf or mat i on r el at ed t o bi l l i ng met hod. I t maps MUI S- C Del i ver yUni t descr i pt or Payment Met hod pl us r el at ed payment i onf or mat i on such as Cr edi t car d i nf o. DE does not have t hi s ki nd of i nf or mat i on i n i t s i nt er f aces. </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" packages" t ype=" PackageSpec" mi nOccur s=" 0" maxOccur s=" unbounded" / > <xsd: el ement name=" ot her I nf o" mi nOccur s=" 0" > <xsd: compl exType> <xsd: sequence> <xsd: el ement name=" del i ver yUni t St at us" t ype=" Or der St at usI nf o" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t maps MUI S- C Del i ver yUni t Descr i pt or ' Del i ver yUni t St at us' and ' Del i ver yUni t St at usDescr i pt i on' par amet er s</ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" del i ver yUni t Remar k" t ype=" xsd: st r i ng" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t s mappi ng depends on t he i nt er f ace: 1) cust omer 2Or der Desk 2) or der Desk2Cust omer 3) or der Desk2Pr ocessi ng 4) pr ocessi ng2Or der Desk. Wi t h t he f i r s t meani ng i t maps al so DE #DORD ' Remar ks' </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" f or eseenDel i ver yDat e" t ype=" Dat eTi me. i so8601" mi nOccur s=" 0" / > <xsd: el ement name=" l at est Accept edDel i ver yDat e" t ype=" Dat eTi me. i so8601" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>Dat e by when t he del i ver y uni t has t o be del i ver ed. I t maps MUI S- C Del i ver yUni t Descr i pt or " Lat est Accept edDel i ver yDat e" and DE #I TEM " Deadl i ne" </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" addi t i onal Par cel Label I nf o" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>Addi t i onal i nf o t o be i nser t ed on t he physi cal package. Used onl y by DE #DORD i nt er f ace. </ xsd: document at i on> </ xsd: annot at i on> <xsd: si mpl eType> <xsd: r est r i c t i on base=" xsd: st r i ng" / > </ xsd: s i mpl eType> </ xsd: el ement > <xsd: el ement name=" qual i t yOf Ser v i ce" t ype=" xsd: st r i ng" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t maps DE #I TEM ' SL' ( Ser vi ceLevel ) </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" pr i or i t y" t ype=" xsd: i nt " mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>Pr i or i t y of t he or der . I t maps MUI S- C Or der I t em " Or der I t emPr i or i t y" and DE #I TEM " Pr " . </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" user Code" t ype=" xsd: st r i ng" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I f pr esent i t wi l l be passed t o CUS i n or der t o manage mul t i pl e addr esses f or t he same user . </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" addr essNumber " t ype=" xsd: st r i ng" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I f pr esent i t wi l l be passed t o CUS i n or der t o manage mul t i pl e addr esses f or t he same user . </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > </ xsd: sequence>

Page 122: Icd

SSE ICD

Ref. Issue Rev. Page

: ME-ICD-0001-SPB : 1-13/02/04 : 10-26/07/11 : 118

ICD.DOC

</ xsd: compl exType> </ xsd: el ement > </ xsd: sequence> </ xsd: compl exType> <! - - ===================================== Package l evel - - > <xsd: compl exType name=" PackageSpec" > <xsd: sequence> <xsd: el ement name=" packageI d" t ype=" PackageI d" > <xsd: annot at i on> <xsd: document at i on>I dent i f y t he speci f i c package. I t maps MUI S- C PackageDescr i pt or PackageI d. DE does not have t he package l evel wi t hi n i t s i nt er f ace but i t maps DE #I TEM ' Set ' . </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" package" > <xsd: compl exType> <xsd: choi ce> <xsd: el ement name=" pr edef i nedPackage" t ype=" Pr edef i nedPackage" > <xsd: annot at i on> <xsd: document at i on>I t i s not used f or MEH. </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" adHocPackage" t ype=" AdHocPackage" / > </ xsd: choi ce> </ xsd: compl exType> </ xsd: el ement > <xsd: el ement name=" packageMedi um" t ype=" xsd: st r i ng" > <xsd: annot at i on> <xsd: document at i on>I dent i f i cat i on of a medi um. I t maps MUI S- C ' Del i ver yMedi um' and ' Medi umFor mat t i ngOpt i on' i n Or der I t emDescr i pt or and DE #I TEM " Med" </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" packageKByt eSi ze" t ype=" xsd: i nt eger " mi nOccur s=" 0" / > <xsd: el ement name=" packagePr i ce" t ype=" Pr i ceI nf oLowLevel " mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>Package pr i ce </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" ot her I nf o" mi nOccur s=" 0" > <xsd: compl exType> <xsd: sequence> <xsd: el ement name=" packageRemar k" t ype=" xsd: st r i ng" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t s mappi ng depends on t he i nt er f ace: 1) cust omer 2or der Desk 2) or der Desk2Cust omer 3) or der Desk2Pr ocessi ng 4) pr ocessi ng2Or der Desk</ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" packageLabel " t ype=" xsd: st r i ng" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t maps DE #DORD ' Addi t i onal medi a l abel ' . </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" packageCopi es" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t maps MUI S- C PackageDescr i pt or ' packageCopi es' and t he number t hat coul d be i nsi de DE #I TEM ' Set ' par amet er </ xsd: document at i on> </ xsd: annot at i on> <xsd: si mpl eType> <xsd: r est r i c t i on base=" xsd: i nt eger " > <xsd: mi nI ncl usi ve val ue=" 1" / > </ xsd: r est r i c t i on> </ xsd: s i mpl eType> </ xsd: el ement > <xsd: el ement name=" medi aI nPackage" mi nOccur s=" 0" > <xsd: si mpl eType> <xsd: r est r i c t i on base=" xsd: i nt eger " > <xsd: mi nI ncl usi ve val ue=" 1" / > </ xsd: r est r i c t i on> </ xsd: s i mpl eType> </ xsd: el ement > </ xsd: sequence> </ xsd: compl exType> </ xsd: el ement > </ xsd: sequence> </ xsd: compl exType> <xsd: compl exType name=" AdHocPackage" > <xsd: sequence> <xsd: el ement name=" or der I t em" t ype=" Or der I t em" maxOccur s=" unbounded" / > </ xsd: sequence> </ xsd: compl exType> <xsd: compl exType name=" Pr edef i nedPackage" > <xsd: sequence> <xsd: el ement name=" col l ect i onI d" t ype=" xsd: st r i ng" / > <xsd: el ement name=" or der I t em" maxOccur s=" unbounded" > <xsd: compl exType>

Page 123: Icd

SSE ICD

Ref. Issue Rev. Page

: ME-ICD-0001-SPB : 1-13/02/04 : 10-26/07/11 : 119

ICD.DOC

<xsd: compl exCont ent > <xsd: ext ensi on base=" Or der I t em" / > </ xsd: compl exCont ent > </ xsd: compl exType> </ xsd: el ement > <xsd: el ement name=" ot her I nf o" mi nOccur s=" 0" / > </ xsd: sequence> </ xsd: compl exType> <! - - ===================================== Or der I t em l evel - - > <xsd: compl exType name=" Or der I t em" > <xsd: sequence> <xsd: el ement name=" or der I t emI d" t ype=" Or der I t emI d" / > <xsd: el ement name=" pr oduct I d" t ype=" Pr oduct I d" > <xsd: annot at i on> <xsd: document at i on>I t i dent i f i es t he or der ed pr oduct . </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" pr oduct Pr i ce" t ype=" Pr i ceI nf oLowLevel " mi nOccur s=" 0" / > <xsd: el ement name=" pr oduct Del i ver yOpt i ons" t ype=" Pr oduct Del i ver yOpt i ons" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t cont ai ns del i ver y opt i ons f or t he pr oduct . </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" pr ocessi ngOpt i ons" t ype=" Pr ocessi ngOpt i ons" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t speci f i es t he pr ocessi ng opt i ons t o be appl i ed on t he pr oduct bef or e del i ver y. </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" sceneSel ect i onOpt i ons" t ype=" SceneSel ect i onOpt i ons" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t speci f i es t he sel ect i on of t he scene f r om t he pr oduct t hat i s t o be del i ver ed. </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" or der St at usI nf o" t ype=" Or der I t emSt at usI nf o" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t i ndi cat es t he st at us of t he or der i t em</ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" ot her I nf o" mi nOccur s=" 0" > <xsd: compl exType> <xsd: sequence> <xsd: el ement name=" pr oduct I nf o" mi nOccur s=" 0" > <xsd: compl exType> <xsd: sequence> <xsd: el ement name=" acqui s i t i onSt at i on" mi nOccur s=" 0" maxOccur s=" unbounded" > <xsd: annot at i on> <xsd: document at i on>Acqui si t i on st at i on code. I t maps MUI S- C Acqui s i t i onDescr i pt or " Acqui s i t i onSt at i on" and DE #I TEM " St at i on( s) " </ xsd: document at i on> </ xsd: annot at i on> <xsd: s i mpl eType> <xsd: r est r i c t i on base=" xsd: st r i ng" > <xsd: maxLengt h val ue=" 2" / > </ xsd: r est r i ct i on> </ xsd: si mpl eType> </ xsd: el ement > <xsd: el ement name=" spat i al Cover age" t ype=" Spat i al Cover age" mi nOccur s=" 0" / > <xsd: el ement name=" passCover age" t ype=" PassCover age" mi nOccur s=" 0" / > <xsd: el ement name=" passEquat or XLongi t ude" t ype=" xsd: f l oat " mi nOccur s=" 0" / > <xsd: el ement name=" passDi r ect i on" t ype=" PassDi r ect i onEnum" mi nOccur s=" 0" / > <xsd: el ement name=" ver t i cal Cover age" t ype=" Ver t i cal Sel ect i on" mi nOccur s=" 0" / > <xsd: el ement name=" r egi onI d" mi nOccur s=" 0" > <xsd: s i mpl eType> <xsd: r est r i c t i on base=" xsd: st r i ng" > <xsd: maxLengt h val ue=" 20" / > </ xsd: r est r i ct i on> </ xsd: si mpl eType> </ xsd: el ement > <xsd: el ement name=" mi ssi onPhaseI d" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I ndi cat i on of t he mi ssi on phase. I t maps MUI S- C Acqui s i t i onDescr i pt or " Mi ssi onPhaseI d" and l ast char of DE #I TEM " Mi ssi on" </ xsd: document at i on> </ xsd: annot at i on> <xsd: s i mpl eType> <xsd: r est r i c t i on base=" xsd: st r i ng" > <xsd: maxLengt h val ue=" 2" / > </ xsd: r est r i ct i on> </ xsd: si mpl eType> </ xsd: el ement > </ xsd: sequence> </ xsd: compl exType> </ xsd: el ement > <xsd: el ement name=" pr oduct St at us" t ype=" Pr oduct St at usEnum" mi nOccur s=" 0" > <xsd: annot at i on>

Page 124: Icd

SSE ICD

Ref. Issue Rev. Page

: ME-ICD-0001-SPB : 1-13/02/04 : 10-26/07/11 : 120

ICD.DOC

<xsd: document at i on>St at us of t he pr oduct : I t maps MUI S- C Or der I t em " Pr oduct St at us" </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" pr oduct Sour ce" t ype=" Pr oduct Sour ce" mi nOccur s=" 0" maxOccur s=" unbounded" > <xsd: annot at i on> <xsd: document at i on>Sour ce ( t er mi nal Col l ect i onI d/ Suppl i er ) f or t he pr oduct . I t maps MUI S- C Or der I t emDescr i pt or " Pr oduct Sour ce" </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" r ej ect i onI nf o" t ype=" Rej ect i onI nf o" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t maps DE #I TEM ' Rej C' and ' Rej N' </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" r epl acement I nf o" t ype=" xsd: st r i ng" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t cont ai ns an cust omer Or der I t emI d</ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" r epl acesI nf o" t ype=" xsd: st r i ng" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t cont ai ns an OHS_Or der I t emI d</ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" pr ocessi ngFaci l i t y" t ype=" xsd: st r i ng" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>Suggest ed f ac i l i t y</ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" or der I t emRemar k" t ype=" xsd: st r i ng" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t s mappi ng depends on t he i nt er f ace: 1) cust omer 2Or der Desk 2) or der Desk2Cust omer 3) or der Desk2Pr ocessi ng 4) pr ocessi ng2Or der Desk</ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" qual i t yLevel " t ype=" xsd: st r i ng" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>Qual i t y i nf or mat i on. I t maps DE #DORD ' I CUD D' ( Qual i t y_Level ) </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > </ xsd: sequence> </ xsd: compl exType> </ xsd: el ement > </ xsd: sequence> </ xsd: compl exType> <! - - ===================================== User l evel - - > <xsd: compl exType name=" User I nf or mat i on" > <xsd: sequence> <xsd: el ement name=" user I d" > <xsd: annot at i on> <xsd: document at i on>I t maps t he DE #UORD ' User I d' par amet er and t he MUI S- C Or der Descr i pt or ' Cust omer I d' </ xsd: document at i on> </ xsd: annot at i on> <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: st r i ng" > <xsd: maxLengt h val ue=" 20" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > <xsd: el ement name=" user Name" t ype=" Name" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>Not needed by MUI S- C. Used by DE i n #DORD</ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" user Addr ess" t ype=" Post al Addr ess" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>Not needed i n MUI S- C at Or der Descr i pt or l evel . used by DE #DORD i nt er f ace. </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" companyRef " t ype=" CompanyRef er ence" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on> Not needed i n MUI S- C. used by DE #DORD i nt er f ace. For i t s def i ni t i on t he MUI S- C r el at ed at t r i but e l engt h has been used. </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" t el Number " mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>Tel ephone Number </ xsd: document at i on> </ xsd: annot at i on> <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: st r i ng" >

Page 125: Icd

SSE ICD

Ref. Issue Rev. Page

: ME-ICD-0001-SPB : 1-13/02/04 : 10-26/07/11 : 121

ICD.DOC

<xsd: maxLengt h val ue=" 18" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > <xsd: el ement name=" f axNumber " mi nOccur s=" 0" > <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: st r i ng" > <xsd: maxLengt h val ue=" 18" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > <xsd: el ement name=" emai l Addr ess" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on/ > </ xsd: annot at i on> <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: st r i ng" > <xsd: maxLengt h val ue=" 72" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > <xsd: el ement name=" net wor kAddr ess" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>Not used at t hi s l evel </ xsd: document at i on> </ xsd: annot at i on> <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: st r i ng" / > </ xsd: si mpl eType> </ xsd: el ement > <xsd: el ement name=" vat Regi st r at i onNo" t ype=" Vat Regi st r at i onNo" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t maps DE #DORD ' VAT' par amet er </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > </ xsd: sequence> </ xsd: compl exType> <! - - ===================================== Compl ex t ypes def i ni t i on - - > <xsd: compl exType name=" Al ongShi f t Speci f i cat i on" > <xsd: sequence> <xsd: el ement name=" shi f t Uni t I d" t ype=" xsd: st r i ng" > <xsd: annot at i on> <xsd: document at i on>A=Absol ut e, S=Seconds</ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" shi f t " t ype=" xsd: i nt eger " / > </ xsd: sequence> </ xsd: compl exType> <xsd: compl exType name=" Al ongSi zeSpeci f i cat i on" > <xsd: sequence> <xsd: el ement name=" al ongSi zeUni t I d" t ype=" xsd: st r i ng" > <xsd: annot at i on> <xsd: document at i on>A=Absol ut e, S=Seconds</ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" al ongSi ze" t ype=" xsd: i nt eger " / > </ xsd: sequence> </ xsd: compl exType> <xsd: compl exType name=" Bi l l i ng" > <xsd: sequence> <xsd: el ement name=" payment Met hod" > <xsd: compl exType> <xsd: compl exCont ent > <xsd: ext ensi on base=" Payment Met hod" / > </ xsd: compl exCont ent > </ xsd: compl exType> </ xsd: el ement > <xsd: el ement name=" cust omer PONumber " t ype=" xsd: st r i ng" mi nOccur s=" 0" / > <xsd: el ement name=" VATRegi st r at i onNo" t ype=" Vat Regi st r at i onNo" mi nOccur s=" 0" / > </ xsd: sequence> </ xsd: compl exType> <xsd: compl exType name=" Boundi ngRect angl e" > <xsd: sequence> <xsd: el ement name=" nor t hWest Poi nt " t ype=" Poi nt " / > <xsd: el ement name=" sout hEast Poi nt " t ype=" Poi nt " / > </ xsd: sequence> </ xsd: compl exType> <xsd: compl exType name=" Boundi ngRect angl eSel ect i on" > <xsd: sequence> <xsd: el ement name=" west Boundi ngCoor di nat e" t ype=" xsd: st r i ng" / > <xsd: el ement name=" east Boundi ngCoor di nat e" t ype=" xsd: st r i ng" / > <xsd: el ement name=" nor t hBoundi ngCoor di nat e" t ype=" xsd: st r i ng" / > <xsd: el ement name=" sout hBoundi ngCoor di nat e" t ype=" xsd: st r i ng" / > </ xsd: sequence> </ xsd: compl exType> <xsd: compl exType name=" Ci r c l e" >

Page 126: Icd

SSE ICD

Ref. Issue Rev. Page

: ME-ICD-0001-SPB : 1-13/02/04 : 10-26/07/11 : 122

ICD.DOC

<xsd: sequence> <xsd: el ement name=" cent er " t ype=" Poi nt " / > <xsd: el ement name=" r adi us" t ype=" xsd: i nt eger " > <xsd: annot at i on> <xsd: document at i on>The uni t f or r adi us i s t he ki l omet er ( ' km' ) </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > </ xsd: sequence> </ xsd: compl exType> <xsd: compl exType name=" CompanyRef er ence" > <xsd: sequence> <xsd: el ement name=" or gani sat i on" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>Or gani sat i on Name</ xsd: document at i on> </ xsd: annot at i on> <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: st r i ng" > <xsd: mi nLengt h val ue=" 0" / > <xsd: maxLengt h val ue=" 40" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > <xsd: el ement name=" depar t ment " mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>Depar t ment or Sect i on</ xsd: document at i on> </ xsd: annot at i on> <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: st r i ng" > <xsd: mi nLengt h val ue=" 0" / > <xsd: maxLengt h val ue=" 40" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > </ xsd: sequence> </ xsd: compl exType> <xsd: compl exType name=" Cr edi t Car dI nf o" > <xsd: sequence> <xsd: el ement name=" cr edi t Car dI nst i t ut e" > <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: st r i ng" > <xsd: maxLengt h val ue=" 40" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > <xsd: el ement name=" nameOf Car d" > <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: st r i ng" > <xsd: maxLengt h val ue=" 40" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > <xsd: el ement name=" car dNumber " > <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: st r i ng" > <xsd: maxLengt h val ue=" 40" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > <xsd: el ement name=" expi r at i onDat e" t ype=" Dat eTi me. i so8601" / > </ xsd: sequence> </ xsd: compl exType> <xsd: compl exType name=" Del i ver yMet hod" > <xsd: choi ce> <xsd: el ement name=" eMai l " t ype=" Emai l I nf o" / > <xsd: el ement name=" f t p" t ype=" Ft pDel i ver y" / > <xsd: el ement name=" mai l " t ype=" Del i ver yAddr ess" / > <xsd: el ement name=" on- l i ne" t ype=" xsd: st r i ng" / > <xsd: el ement name=" ot her I nf o" t ype=" xsd: st r i ng" / > </ xsd: choi ce> </ xsd: compl exType> <xsd: compl exType name=" Del i ver yUni t I d" > <xsd: sequence> <xsd: el ement name=" OHS_Del i ver yUni t I d" t ype=" xsd: st r i ng" mi nOccur s=" 0" / > <xsd: el ement name=" cust omer Del i ver yUni t I d" t ype=" xsd: st r i ng" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t maps t he MUI S- C Del i ver yUni t Descr i pt or ' Del i ver yUni t I d' par amet er </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" pr ocessi ngDel i ver yUni t I d" t ype=" xsd: st r i ng" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t i s t he Pr ocessi ngDel i ver yUni t I d. The i dent i f i cat or assi gned by pr ocessi ng f ac i l i t y . </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement >

Page 127: Icd

SSE ICD

Ref. Issue Rev. Page

: ME-ICD-0001-SPB : 1-13/02/04 : 10-26/07/11 : 123

ICD.DOC

</ xsd: sequence> </ xsd: compl exType> <xsd: compl exType name=" Del i ver yAddr ess" > <xsd: sequence> <xsd: el ement name=" post al Addr ess" t ype=" Post al Addr ess" / > <xsd: el ement name=" r eci pi ent " t ype=" Name" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t maps MUI S- C Dei ver yAddr ess ' c / o' and I nvoi ceAddr ess ' c/ o' . </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" companyRef " t ype=" CompanyRef er ence" mi nOccur s=" 0" / > <xsd: el ement name=" t el Number " mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>Tel ephone Number </ xsd: document at i on> </ xsd: annot at i on> <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: st r i ng" > <xsd: maxLengt h val ue=" 18" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > </ xsd: sequence> </ xsd: compl exType> <xsd: compl exType name=" Emai l I nf o" > <xsd: sequence> <xsd: el ement name=" addr ess" > <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: st r i ng" > <xsd: maxLengt h val ue=" 72" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > <xsd: el ement name=" at t achment Type" t ype=" At t achment TypeEnum" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>Maps di f f er ent t ypes of at t achment suppor t ed by DE</ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > </ xsd: sequence> </ xsd: compl exType> <xsd: compl exType name=" For mat t edSceneSel ect i onOpt i ons" > <xsd: annot at i on> <xsd: document at i on> Scene sel ect ed over a br owse i mage</ xsd: document at i on> </ xsd: annot at i on> <xsd: sequence> <xsd: el ement name=" sceneType" t ype=" xsd: st r i ng" > <xsd: annot at i on> <xsd: document at i on>I t i s an ext ensi bl e l i st </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" hor i zont al Sel ect i on" mi nOccur s=" 0" > <xsd: compl exType> <xsd: compl exCont ent > <xsd: ext ensi on base=" Hor i zont al Sel ect i on" / > </ xsd: compl exCont ent > </ xsd: compl exType> </ xsd: el ement > <xsd: el ement name=" ver t i cal Sel ect i on" t ype=" Ver t i cal Sel ect i on" mi nOccur s=" 0" / > <xsd: el ement name=" t empor al Sel ect i on" t ype=" Tempor al Sel ect i on" mi nOccur s=" 0" / > </ xsd: sequence> </ xsd: compl exType> <xsd: compl exType name=" Ft pDel i ver y" > <xsd: sequence> <xsd: el ement name=" t r ansf er Di r ect i on" t ype=" Tr ansf er Di r ect i onEnum" / > <xsd: el ement name=" f t pAddr ess" > <xsd: annot at i on> <xsd: document at i on>f t p URL cont ai ni ng al so DE i nt er f ace di r ect or y, user name, passwor d i nf or mat i on</ xsd: document at i on> </ xsd: annot at i on> <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: st r i ng" > <xsd: maxLengt h val ue=" 255" / > <xsd: mi nLengt h val ue=" 0" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > <xsd: el ement name=" emai l Not i f i cat i onAddr ess" mi nOccur s=" 0" / > </ xsd: sequence> </ xsd: compl exType> <xsd: compl exType name=" GPol ygon" > <xsd: sequence> <xsd: el ement name=" poi nt " t ype=" Poi nt " mi nOccur s=" 3" maxOccur s=" unbounded" / > </ xsd: sequence> </ xsd: compl exType> <xsd: compl exType name=" Hor i zont al Sel ect i on" >

Page 128: Icd

SSE ICD

Ref. Issue Rev. Page

: ME-ICD-0001-SPB : 1-13/02/04 : 10-26/07/11 : 124

ICD.DOC

<xsd: choi ce> <xsd: el ement name=" r ect angl eSceneSel ect i on" t ype=" Rect angl eSceneSel ect i on" / > <xsd: el ement name=" boundi ngRect angl eSel ect i on" t ype=" Boundi ngRect angl eSel ect i on" > <xsd: annot at i on> <xsd: document at i on>Not used f or MEH</ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" pol ygonSel ect i on" t ype=" Pol ygonSel ect i on" / > <xsd: el ement name=" ci r c l eSel ect i on" t ype=" Ci r cl e" > <xsd: annot at i on> <xsd: document at i on>Not used f or MEH</ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > </ xsd: choi ce> </ xsd: compl exType> <xsd: compl exType name=" I dent i f i cat i onI nf or mat i on" > <xsd: sequence> <xsd: el ement name=" cust omer Or der I d" t ype=" xsd: st r i ng" > <xsd: annot at i on> <xsd: document at i on>I t maps MUI S- C Or der Descr i pt or ' Or der I d' and DE #DORD ' Ref DuI d#' par amet er </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" OHS_Or der I d" t ype=" xsd: st r i ng" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t i dent i f i es t he or der i n OHS</ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" or der User Ref er ence" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t maps t he MUI S- C Or der Descr i pt or ' Or der User Ref er ence' ( i t i s t he end user or der I d) </ xsd: document at i on> </ xsd: annot at i on> <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: st r i ng" > <xsd: maxLengt h val ue=" 20" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > <xsd: el ement name=" or der Name" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t maps t he MUI S- C Or der Descr i pt or ' Or der Name' par amet er </ xsd: document at i on> </ xsd: annot at i on> <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: st r i ng" > <xsd: maxLengt h val ue=" 30" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > <xsd: el ement name=" pr ocessi ngOr der I d" t ype=" xsd: st r i ng" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t i s i dent i f i cat or assi gned by pr ocessi ng f ac i l i t y . </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > </ xsd: sequence> </ xsd: compl exType> <xsd: compl exType name=" Or der I t emI d" > <xsd: sequence> <xsd: el ement name=" OHS_Or der I t emI d" t ype=" xsd: st r i ng" / > <xsd: el ement name=" cust omer Or der I t emI d" t ype=" xsd: st r i ng" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on> I t map t he MUI S- C Or der I t emDescr i pt or " Or der I t emI d" and t he DE #I TEM " I t em" . </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" pr ocessi ngOr der I t emI d" t ype=" xsd: st r i ng" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t i s pr ocessi ngOr der I t emI d, t he i dent i f i er of t he or der I t em i ns i de t he pr ocessi ng syst em. </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > </ xsd: sequence> </ xsd: compl exType> <xsd: compl exType name=" Or der St at usI nf o" > <xsd: sequence> <xsd: el ement name=" or der St at e" t ype=" Or der St at usEnum" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t maps MUI S- C St at us </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" addi t i onal St at usI nf o" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>i t maps MUI S- C St at usDescr i pt i on </ xsd: document at i on>

Page 129: Icd

SSE ICD

Ref. Issue Rev. Page

: ME-ICD-0001-SPB : 1-13/02/04 : 10-26/07/11 : 125

ICD.DOC

</ xsd: annot at i on> <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: st r i ng" > <xsd: mi nLengt h val ue=" 0" / > <xsd: maxLengt h val ue=" 255" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > </ xsd: sequence> </ xsd: compl exType> <xsd: compl exType name=" Or der I t emSt at usI nf o" > <xsd: sequence> <xsd: el ement name=" or der St at e" > <xsd: annot at i on> <xsd: document at i on>I t maps t he MUI S- C st at us and DE #I TEM ' St ' ( St at us) </ xsd: document at i on> </ xsd: annot at i on> <xsd: compl exType> <xsd: choi ce> <xsd: el ement name=" st at i cSt at e" t ype=" Or der I t emSt at usSt at i cEnum" / > <xsd: el ement name=" dynami cSt at e" t ype=" Or der I t emSt at usDynami cEnum" / > </ xsd: choi ce> </ xsd: compl exType> </ xsd: el ement > <xsd: el ement name=" addi t i onal St at usI nf o" t ype=" xsd: st r i ng" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t maps MUI S- C Or der I t emDescr i pt or " Or der I t emSt at usDescr i pt i on" and DE #I TEM " Rej N" ( Rej ect i onNot e) </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" t i meSt at usUpdat e" t ype=" Dat eTi me. i so8601" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>Dat e/ Ti me of t hi s st at us change</ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > </ xsd: sequence> </ xsd: compl exType> <xsd: compl exType name=" PackageI d" > <xsd: sequence> <xsd: el ement name=" OHS_PackageI d" t ype=" xsd: st r i ng" mi nOccur s=" 0" / > <xsd: el ement name=" cust omer PackageI d" t ype=" xsd: st r i ng" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t maps t he MUI S- C PackageDescr i pt or PackageI d' par amet er </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" pr ocessi ngPackageI d" t ype=" xsd: st r i ng" mi nOccur s=" 0" / > </ xsd: sequence> </ xsd: compl exType> <xsd: compl exType name=" PassCover age" > <xsd: sequence> <xsd: el ement name=" passSt ar t Equat or XDel t aTi me" > <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: i nt " > <xsd: mi nI ncl usi ve val ue=" - 2147483648" / > <xsd: maxI ncl usi ve val ue=" 2147483647" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > <xsd: el ement name=" passSt opEquat or XDel t aTi me" > <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: i nt " > <xsd: mi nI ncl usi ve val ue=" - 2147483648" / > <xsd: maxI ncl usi ve val ue=" 2147483647" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > </ xsd: sequence> </ xsd: compl exType> <xsd: compl exType name=" Payment Met hod" > <xsd: sequence> <xsd: el ement name=" bi l l I nvoi ce" t ype=" Del i ver yAddr ess" mi nOccur s=" 0" / > <xsd: choi ce mi nOccur s=" 0" > <xsd: el ement name=" pr epay" t ype=" xsd: st r i ng" / > <xsd: el ement name=" deposi t Account " t ype=" xsd: st r i ng" / > <xsd: el ement name=" pr i vat eKnown" t ype=" xsd: st r i ng" / > <xsd: el ement name=" pr i vat eNot Known" t ype=" xsd: st r i ng" / > <xsd: el ement name=" cr edi t Car d" > <xsd: compl exType> <xsd: compl exCont ent > <xsd: ext ensi on base=" Cr edi t Car dI nf o" / > </ xsd: compl exCont ent > </ xsd: compl exType> </ xsd: el ement > <xsd: el ement name=" cr edi t Car d- pr e- suppl i ed" t ype=" xsd: st r i ng" / >

Page 130: Icd

SSE ICD

Ref. Issue Rev. Page

: ME-ICD-0001-SPB : 1-13/02/04 : 10-26/07/11 : 126

ICD.DOC

<xsd: el ement name=" quot a" t ype=" xsd: st r i ng" / > </ xsd: choi ce> </ xsd: sequence> </ xsd: compl exType> <xsd: compl exType name=" Poi nt " > <xsd: sequence> <xsd: el ement name=" l at i t ude" t ype=" xsd: st r i ng" > <xsd: annot at i on> <xsd: document at i on>I t s f or mat i s: [ +| - ] nn. nn </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" l ongi t ude" t ype=" xsd: st r i ng" > <xsd: annot at i on> <xsd: document at i on>I t s f or mat i s: nnn. nn</ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > </ xsd: sequence> </ xsd: compl exType> <xsd: compl exType name=" Pol ygonSel ect i on" > <xsd: sequence> <xsd: el ement name=" geoPol ygon" t ype=" GPol ygon" mi nOccur s=" 0" / > <xsd: el ement name=" mapPr oj ect i on" t ype=" MapPr oj ect i onEnum" mi nOccur s=" 0" / > </ xsd: sequence> </ xsd: compl exType> <xsd: compl exType name=" Post al Addr ess" > <xsd: sequence> <xsd: el ement name=" st r eet Addr ess" > <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: st r i ng" > <xsd: maxLengt h val ue=" 40" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > <xsd: el ement name=" ci t y" > <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: st r i ng" > <xsd: maxLengt h val ue=" 40" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > <xsd: el ement name=" st at e" > <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: st r i ng" > <xsd: maxLengt h val ue=" 40" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > <xsd: el ement name=" post al Code" > <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: st r i ng" > <xsd: maxLengt h val ue=" 12" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > <xsd: el ement name=" count r y" > <xsd: annot at i on> <xsd: document at i on>I SO- 3166 2- char i s used ( even i f 3 char s ar e avai l abl e) </ xsd: document at i on> </ xsd: annot at i on> <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: st r i ng" > <xsd: maxLengt h val ue=" 3" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > <xsd: el ement name=" post Box" mi nOccur s=" 0" > <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: st r i ng" > <xsd: maxLengt h val ue=" 12" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > </ xsd: sequence> </ xsd: compl exType> <xsd: compl exType name=" Pr i ceI nf o" > <xsd: annot at i on> <xsd: document at i on>Pr i ce I nf or mat i on. I t maps bot h MUI S- C pr i ce ( Or der , Del i ver yUni t , Package or Or der I t em) and DE ( #DORD, #I TEM) pr i ce and r oyal t y i nf or mat i on. </ xsd: document at i on> </ xsd: annot at i on> <xsd: sequence> <xsd: el ement name=" pr i ceExpi r at i onDat e" t ype=" Dat eTi me. i so8601" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t maps MUI S- C Or der Descr i pt or ' Of f er Expi r at i onDat e' par amet er </ xsd: document at i on> </ xsd: annot at i on>

Page 131: Icd

SSE ICD

Ref. Issue Rev. Page

: ME-ICD-0001-SPB : 1-13/02/04 : 10-26/07/11 : 127

ICD.DOC

</ xsd: el ement > <xsd: el ement name=" addi t i onal Pr i ceI nf o" t ype=" xsd: st r i ng" mi nOccur s=" 0" / > <xsd: el ement name=" pr i ce" t ype=" Pr i ceType" mi nOccur s=" 0" / > <xsd: el ement name=" l i s t Pr i ce" t ype=" Pr i ceType" mi nOccur s=" 0" / > <xsd: el ement name=" expect edPr i ce" t ype=" Pr i ceType" mi nOccur s=" 0" / > </ xsd: sequence> </ xsd: compl exType> <xsd: compl exType name=" Pr i ceI nf oLowLevel " > <xsd: sequence> <xsd: el ement name=" addi t i onal Pr i ceI nf o" t ype=" xsd: st r i ng" mi nOccur s=" 0" / > <xsd: el ement name=" pr i ce" t ype=" Pr i ceType" mi nOccur s=" 0" / > <xsd: el ement name=" l i s t Pr i ce" t ype=" Pr i ceType" mi nOccur s=" 0" / > <xsd: el ement name=" expect edPr i ce" t ype=" Pr i ceType" mi nOccur s=" 0" / > </ xsd: sequence> </ xsd: compl exType> <xsd: compl exType name=" Pr i ceType" > <xsd: sequence> <xsd: el ement name=" r ef Cur r ency" t ype=" Cur r ency. i so4217" / > <xsd: el ement name=" r ef Amount " > <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: unsi gnedLong" > <xsd: maxI ncl usi ve val ue=" 4294967296" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > <xsd: el ement name=" user Cur r ency" t ype=" Cur r ency. i so4217" mi nOccur s=" 0" / > <xsd: el ement name=" user Amount " mi nOccur s=" 0" > <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: unsi gnedLong" > <xsd: maxI ncl usi ve val ue=" 4294967296" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > </ xsd: sequence> </ xsd: compl exType> <xsd: compl exType name=" Pr ocessi ngOpt i ons" > <xsd: choi ce> <xsd: el ement name=" f or mat t edPr ocessi ngOpt i ons" t ype=" Pr ocessi ngOpt i onSel ect i on" maxOccur s=" unbounded" / > </ xsd: choi ce> </ xsd: compl exType> <xsd: compl exType name=" Pr ocessi ngOpt i onSel ect i on" > <xsd: sequence> <xsd: el ement name=" pr ocessi ngOpt i onName" t ype=" xsd: st r i ng" / > <xsd: el ement name=" pr ocessi ngOpt i onSel ect edVal ues" t ype=" xsd: st r i ng" maxOccur s=" unbounded" / > </ xsd: sequence> </ xsd: compl exType> <xsd: compl exType name=" Pr oduct Del i ver yOpt i ons" > <xsd: sequence> <xsd: el ement name=" pr oduct Byt eSi ze" t ype=" xsd: i nt eger " mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t cont ai ns t he s i ze of t he pr oduct i n byt es. I t maps t he MUI S- C par amet er " Dat aSi ze" i n Or der I t emDescr i pt or </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" pr oduct For mat " t ype=" xsd: st r i ng" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t cont ai ns t he MUI S- C " For mat " Pr ocessi ng Opt i on</ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" pr oduct Compr essi on" t ype=" xsd: st r i ng" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t cont ai ns t he MUI S- C " Compr essi on" Pr ocessi ng Opt i on. </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" ot her I nf o" t ype=" xsd: st r i ng" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>Not Used</ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > </ xsd: sequence> </ xsd: compl exType> <xsd: compl exType name=" Pr oduct I d" > <xsd: sequence> <xsd: el ement name=" pr oduct CodeI d" t ype=" Pr oduct CodeEnum" > <xsd: annot at i on> <xsd: document at i on>Pr oduct t ype code. I t maps MUI S- C Acqui s i t i onDescr i pt or " Pr oduct CodeI d" and DE #I TEM " Pr oduct Code" </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" mi ssi onI d" t ype=" Mi ssi onI dEnum" mi nOccur s=" 0" > <xsd: annot at i on>

Page 132: Icd

SSE ICD

Ref. Issue Rev. Page

: ME-ICD-0001-SPB : 1-13/02/04 : 10-26/07/11 : 128

ICD.DOC

<xsd: document at i on>Uni que code f or t he sat el l i t e/ mi ssi on. I t maps t he MUI S- C Acqui s i t i ondescr i pt or ' Sat el l i t e' ( Pl at f or mI d, Sat el l i t eNumber ) and DE #I TEM ' Mi ssi on' </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" sensor I d" t ype=" Sensor I dEnum" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I dent i f i cat i on of t he sensor . I t maps MUI S- C Acqui s i t i onDescr i pt or " Sensor I d" and t he second par t of DE #I TEM " Mi ssi on" </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" or bi t " mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>Absol ut e or bi t number . I t maps MUI S- C Acqui s i t i onDescr i pt or " Or bi t " and DE #I TEM " Or bi t " </ xsd: document at i on> </ xsd: annot at i on> <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: unsi gnedI nt " > <xsd: maxI ncl usi ve val ue=" 16777216" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > <xsd: el ement name=" t r ack" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>WRS Tr ack number . I t maps MUI S- C Acqui s i t i onDescr i pt or " Tr ack" and DE #I TEM " Tr ack" </ xsd: document at i on> </ xsd: annot at i on> <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: unsi gnedI nt " > <xsd: maxI ncl usi ve val ue=" 65535" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > <xsd: el ement name=" f r ame" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>WRS f r ame number . I t maps MUI S- C Acqui s i t i onDescr i pt or " Fr ame" and DE #I TEM " Fr ame" </ xsd: document at i on> </ xsd: annot at i on> <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: unsi gnedI nt " > <xsd: maxI ncl usi ve val ue=" 65535" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > <xsd: el ement name=" swat hI d" mi nOccur s=" 0" > <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: st r i ng" > <xsd: maxLengt h val ue=" 2" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > <xsd: el ement name=" t empor al Cover age" t ype=" Tempor al Sel ect i on" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>St ar t dat e/ t i me f or t he t empor al cover age. I t maps MUI S- C Acqui s i t i onDescr i pt or " Tempor al Cover age( St ar t ) " and DE #I TEM " Dat e" </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" sceneCent r e" t ype=" Poi nt " mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>Sel ect ed scene cent r e coor di nat es. </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" pr oduct Or der I d" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t maps MUI S- C Acqui si t i onDescr i pt or ' Pr oduct Or der I d' and DE #I TEM ' Scene' </ xsd: document at i on> </ xsd: annot at i on> <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: st r i ng" > <xsd: maxLengt h val ue=" 255" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > </ xsd: sequence> </ xsd: compl exType> <xsd: compl exType name=" Pr oduct Sour ce" > <xsd: sequence> <xsd: el ement name=" pr ovi der " mi nOccur s=" 0" > <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: st r i ng" > <xsd: maxLengt h val ue=" 20" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > <xsd: el ement name=" f aci l i t y" mi nOccur s=" 0" >

Page 133: Icd

SSE ICD

Ref. Issue Rev. Page

: ME-ICD-0001-SPB : 1-13/02/04 : 10-26/07/11 : 129

ICD.DOC

<xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: st r i ng" > <xsd: maxLengt h val ue=" 20" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > <xsd: el ement name=" col l ect i onI d" mi nOccur s=" 0" > <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: st r i ng" > <xsd: maxLengt h val ue=" 20" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > <xsd: el ement name=" suppl i er " mi nOccur s=" 0" > <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: st r i ng" > <xsd: maxLengt h val ue=" 20" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > </ xsd: sequence> </ xsd: compl exType> <xsd: compl exType name=" Name" > <xsd: sequence> <xsd: el ement name=" t i t l e" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t maps DE #DORD ' TI TLE' par amet er </ xsd: document at i on> </ xsd: annot at i on> <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: st r i ng" > <xsd: maxLengt h val ue=" 15" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > <xsd: el ement name=" f i r s t Name" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t maps DE #DORD ' FI RST_NAME' par amet er </ xsd: document at i on> </ xsd: annot at i on> <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: st r i ng" > <xsd: maxLengt h val ue=" 40" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > <xsd: el ement name=" l ast Name" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t maps DE #DORD ' LAST_NAME' par amet er </ xsd: document at i on> </ xsd: annot at i on> <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: st r i ng" > <xsd: maxLengt h val ue=" 40" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > </ xsd: sequence> </ xsd: compl exType> <xsd: compl exType name=" Rect angl eSceneSel ect i on" > <xsd: sequence> <xsd: el ement name=" acr ossGr i d" > <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: i nt " > <xsd: mi nI ncl usi ve val ue=" - 2147483648" / > <xsd: maxI ncl usi ve val ue=" 2147483647" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > <xsd: el ement name=" al ongGr i dUni t Type" t ype=" xsd: st r i ng" / > <xsd: el ement name=" al ongGr i d" > <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: i nt " > <xsd: mi nI ncl usi ve val ue=" - 2147483648" / > <xsd: maxI ncl usi ve val ue=" 2147483647" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > <xsd: el ement name=" acr ossSi ze" > <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: i nt " > <xsd: mi nI ncl usi ve val ue=" - 2147483648" / > <xsd: maxI ncl usi ve val ue=" 2147483647" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > <xsd: el ement name=" al ongSi ze" > <xsd: s i mpl eType>

Page 134: Icd

SSE ICD

Ref. Issue Rev. Page

: ME-ICD-0001-SPB : 1-13/02/04 : 10-26/07/11 : 130

ICD.DOC

<xsd: r est r i ct i on base=" xsd: i nt " > <xsd: mi nI ncl usi ve val ue=" - 2147483648" / > <xsd: maxI ncl usi ve val ue=" 2147483647" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > <xsd: el ement name=" acr ossCent er " > <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: i nt " > <xsd: mi nI ncl usi ve val ue=" - 2147483648" / > <xsd: maxI ncl usi ve val ue=" 2147483647" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > <xsd: el ement name=" al ongCent er " > <xsd: s i mpl eType> <xsd: r est r i ct i on base=" xsd: i nt " > <xsd: mi nI ncl usi ve val ue=" - 2147483648" / > <xsd: maxI ncl usi ve val ue=" 2147483647" / > </ xsd: r est r i c t i on> </ xsd: si mpl eType> </ xsd: el ement > <xsd: el ement name=" al ongOr i gi n" t ype=" Al ongOr i gi nEnum" def aul t =" 0" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>Used onl y by MUI S- C </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > </ xsd: sequence> </ xsd: compl exType> <xsd: compl exType name=" Rej ect i onI nf o" > <xsd: annot at i on> <xsd: document at i on>I t maps DE #I TEM ' Rej C' and ' Rej N' </ xsd: document at i on> </ xsd: annot at i on> <xsd: sequence> <xsd: el ement name=" r ej ect i onCode" t ype=" xsd: st r i ng" mi nOccur s=" 0" / > <xsd: el ement name=" r ej ect i onNot e" t ype=" xsd: st r i ng" mi nOccur s=" 0" / > </ xsd: sequence> </ xsd: compl exType> <xsd: compl exType name=" SceneSel ect i onOpt i ons" > <xsd: sequence> <xsd: el ement name=" f or mat t edSceneSel ect i onOpt i ons" t ype=" For mat t edSceneSel ect i onOpt i ons" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>Scene sel ect ed over a br owse i mage</ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" unf or mat t edSceneSel ect i onOpt i ons" t ype=" Unf or mat t edSceneSel ect i onOpt i ons" mi nOccur s=" 0" / > </ xsd: sequence> </ xsd: compl exType> <xsd: compl exType name=" Spat i al Cover age" > <xsd: choi ce> <xsd: el ement name=" boundi ngRect angl e" t ype=" Boundi ngRect angl e" / > <xsd: el ement name=" ci r c l e" t ype=" Ci r c l e" / > <xsd: el ement name=" gPol ygon" t ype=" GPol ygon" / > </ xsd: choi ce> </ xsd: compl exType> <xsd: compl exType name=" Tempor al Sel ect i on" > <xsd: sequence> <xsd: el ement name=" st ar t Dat eTi me" > <xsd: s i mpl eType> <xsd: r est r i ct i on base=" Dat eTi me. i so8601" / > </ xsd: si mpl eType> </ xsd: el ement > <xsd: el ement name=" endDat eTi me" t ype=" Dat eTi me. i so8601" / > </ xsd: sequence> </ xsd: compl exType> <xsd: compl exType name=" Unf or mat t edSceneSel ect i onOpt i ons" > <xsd: sequence> <xsd: el ement name=" sceneCent r e" t ype=" Poi nt " mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t maps #I TEM ' Lat ' and ' Long' ( Cent r e Lat i t ude and Longi t ude of f l oat i ng f r ame) and t he MUI S- C Or der I t emDescr i pt or ' Or der I t emSceneCent r e' </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" subSceneI dent i f i cat i on" t ype=" xsd: st r i ng" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>( e. g. ' quar t er number ' ) </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" al ongShi f t Speci f i cat i on" t ype=" Al ongShi f t Speci f i cat i on" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>I t maps DE #I TEM ' DN' </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement >

Page 135: Icd

SSE ICD

Ref. Issue Rev. Page

: ME-ICD-0001-SPB : 1-13/02/04 : 10-26/07/11 : 131

ICD.DOC

<xsd: el ement name=" al ongSi zeSpeci f i cat i on" t ype=" Al ongSi zeSpeci f i cat i on" mi nOccur s=" 0" > <xsd: annot at i on> <xsd: document at i on>Used f or mul t i - scenes pr oduct . I t maps DE #I TEM ' NOF' ( Number _Of _f r ames) </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > </ xsd: sequence> </ xsd: compl exType> <xsd: compl exType name=" Ver t i cal Sel ect i on" > <xsd: sequence> <xsd: el ement name=" l owAl t i t ude" t ype=" xsd: i nt " > <xsd: annot at i on> <xsd: document at i on>The uni t f or l owAl t i t ude i s t he Met er ( ' m' ) </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > <xsd: el ement name=" hi ghAl t i t ude" t ype=" xsd: i nt " > <xsd: annot at i on> <xsd: document at i on>The uni t f or hi ghAl t i t ude i s t he Met er ( ' m' ) </ xsd: document at i on> </ xsd: annot at i on> </ xsd: el ement > </ xsd: sequence> </ xsd: compl exType> <! - - ===================================== Si mpl e t ypes def i ni t i on - - > <xsd: s i mpl eType name=" Cur r ency. i so4217" > <xsd: r est r i c t i on base=" xsd: st r i ng" > <xsd: maxLengt h val ue=" 3" / > </ xsd: r est r i ct i on> </ xsd: s i mpl eType> <xsd: s i mpl eType name=" Dat eTi me. i so8601" > <xsd: r est r i c t i on base=" xsd: st r i ng" / > </ xsd: s i mpl eType> <xsd: s i mpl eType name=" Vat Regi st r at i onNo" > <xsd: r est r i c t i on base=" xsd: st r i ng" > <xsd: maxLengt h val ue=" 30" / > </ xsd: r est r i ct i on> </ xsd: s i mpl eType> <! - - El ement Sect i on- - > <! - - ===================================== Si mpl e t ypes and base el ement s st ar t f r om her e af t er - - > <xsd: s i mpl eType name=" Act i onEnum" > <xsd: annot at i on> <xsd: document at i on>Li st of val i d act i ons al l owed</ xsd: document at i on> </ xsd: annot at i on> <xsd: r est r i c t i on base=" xsd: st r i ng" > <xsd: enumer at i on val ue=" or der Est i mat e" / > <xsd: enumer at i on val ue=" or der Quot eAndSubmi t " / > <xsd: enumer at i on val ue=" or der Moni t or " / > <xsd: enumer at i on val ue=" or der Cancel " / > <xsd: enumer at i on val ue=" or der Det ai l " / > <xsd: enumer at i on val ue=" or der Account " / > </ xsd: r est r i ct i on> </ xsd: s i mpl eType> <xsd: s i mpl eType name=" Al ongOr i gi nEnum" > <xsd: r est r i c t i on base=" xsd: st r i ng" > <xsd: enumer at i on val ue=" 0" / > <xsd: enumer at i on val ue=" s" / > </ xsd: r est r i ct i on> </ xsd: s i mpl eType> <xsd: s i mpl eType name=" At t achment TypeEnum" > <xsd: r est r i c t i on base=" xsd: st r i ng" > <xsd: enumer at i on val ue=" Mi me" / > <xsd: enumer at i on val ue=" Uuencoded" / > </ xsd: r est r i ct i on> </ xsd: s i mpl eType> <xsd: s i mpl eType name=" Cover ageRequi r edEnum" > <xsd: r est r i c t i on base=" xsd: st r i ng" > <xsd: enumer at i on val ue=" Ful l opt i mi zed ( best ) cover age" / > <xsd: enumer at i on val ue=" Ful l cover age r equi r ed" / > <xsd: enumer at i on val ue=" any cover age" / > </ xsd: r est r i ct i on> </ xsd: s i mpl eType> <xsd: s i mpl eType name=" Del i ver yPol i cyEnum" > <xsd: r est r i c t i on base=" xsd: st r i ng" > <xsd: enumer at i on val ue=" Onl y at end of l ast obser vat i on" / > <xsd: enumer at i on val ue=" At end of each obser vat i on" / > <xsd: enumer at i on val ue=" As pr oduct ar e becomi ng avai l abl e" / > </ xsd: r est r i ct i on> </ xsd: s i mpl eType> <xsd: s i mpl eType name=" MapPr oj ect i onEnum" > <xsd: r est r i c t i on base=" xsd: st r i ng" > <xsd: enumer at i on val ue=" Pl at e- Car ee" / > <xsd: enumer at i on val ue=" Geodesi c" / > <xsd: enumer at i on val ue=" Acqui s i t i onFoot pr i nt " / > <xsd: enumer at i on val ue=" UTM" / > <xsd: enumer at i on val ue=" GAUSS_CONFORMAL" / >

Page 136: Icd

SSE ICD

Ref. Issue Rev. Page

: ME-ICD-0001-SPB : 1-13/02/04 : 10-26/07/11 : 132

ICD.DOC

<xsd: enumer at i on val ue=" GAUSS_KRUGER" / > <xsd: enumer at i on val ue=" NONE" / > </ xsd: r est r i ct i on> </ xsd: s i mpl eType> <xsd: s i mpl eType name=" Mi ssi onI dEnum" > <xsd: r est r i c t i on base=" xsd: st r i ng" > <xsd: enumer at i on val ue=" ENVI SAT" / > <xsd: enumer at i on val ue=" ERS- 1" / > <xsd: enumer at i on val ue=" ERS- 2" / > <xsd: enumer at i on val ue=" JERS- 1" / > <xsd: enumer at i on val ue=" Landsat - 1" / > <xsd: enumer at i on val ue=" Landsat - 2" / > <xsd: enumer at i on val ue=" Landsat - 3" / > <xsd: enumer at i on val ue=" Landsat - 4" / > <xsd: enumer at i on val ue=" Landsat - 5" / > <xsd: enumer at i on val ue=" Landsat - 7" / > <xsd: enumer at i on val ue=" MOS- 1B" / > <xsd: enumer at i on val ue=" NI MBUS- 7" / > <xsd: enumer at i on val ue=" NOAA- 7" / > <xsd: enumer at i on val ue=" NOAA- 8" / > <xsd: enumer at i on val ue=" NOAA- 9" / > <xsd: enumer at i on val ue=" NOAA- 10" / > <xsd: enumer at i on val ue=" NOAA- 11" / > <xsd: enumer at i on val ue=" NOAA- 12" / > <xsd: enumer at i on val ue=" NOAA- 14" / > <xsd: enumer at i on val ue=" NOAA- 15" / > <xsd: enumer at i on val ue=" NOAA- 16" / > <xsd: enumer at i on val ue=" NOAA- 17" / > <xsd: enumer at i on val ue=" NOAA- 18" / > <xsd: enumer at i on val ue=" SeaSt ar " / > <xsd: enumer at i on val ue=" I RS- P3" / > <xsd: enumer at i on val ue=" AQUA" / > <xsd: enumer at i on val ue=" TERRA" / > <xsd: enumer at i on val ue=" SPOT- 4" / > </ xsd: r est r i ct i on> </ xsd: s i mpl eType> <xsd: s i mpl eType name=" Or der I t emSt at usDynami cEnum" > <xsd: r est r i c t i on base=" xsd: st r i ng" > <xsd: enumer at i on val ue=" Bei ngEst i mat ed" / > <xsd: enumer at i on val ue=" Bei ngQuot ed" / > <xsd: enumer at i on val ue=" Bei ngPr ocessed" / > <xsd: enumer at i on val ue=" Bei ngCancel l ed" / > <xsd: enumer at i on val ue=" Bei ngOnHol d" / > <xsd: enumer at i on val ue=" Bei ngDel et ed" / > <xsd: enumer at i on val ue=" Bei ngPr ocessed ( Wai t Schedul i ng) " / > <xsd: enumer at i on val ue=" Bei ngPr ocessed ( Pl anned) " / > <xsd: enumer at i on val ue=" Bei ngPr ocessed ( Wai t Pl anni ng) " / > <xsd: enumer at i on val ue=" Bei ngPr ocessed ( Acqui r ed) " / > <xsd: enumer at i on val ue=" Bei ngPr ocessed ( Dat aBei ngTr ansf er r ed) " / > <xsd: enumer at i on val ue=" Bei ngPr ocessed ( Dat aReadyAt Pr ocessi ngFaci l i t y) " / > <xsd: enumer at i on val ue=" Bei ngPr ocessed ( Wai t Pr oduct i on) " / > <xsd: enumer at i on val ue=" Bei ngPr ocessed ( I nPr oduct i on) " / > <xsd: enumer at i on val ue=" Bei ngPr ocessed ( Pr oduct i onCompl et ed) " / > <xsd: enumer at i on val ue=" Bei ngPr ocessed ( Bei ngShi pped) " / > <xsd: enumer at i on val ue=" Bei ngPr ocessed ( Rej ect Bei ngAnal ysed) " / > <xsd: enumer at i on val ue=" Bei ngPr ocessed ( Qual i t yCont r ol ) " / > </ xsd: r est r i ct i on> </ xsd: s i mpl eType> <xsd: s i mpl eType name=" Or der I t emSt at usSt at i cEnum" > <xsd: r est r i c t i on base=" xsd: st r i ng" > <xsd: enumer at i on val ue=" Est i mat ed" / > <xsd: enumer at i on val ue=" Not Val i d" / > <xsd: enumer at i on val ue=" Cancel l ed" / > <xsd: enumer at i on val ue=" Compl et ed" / > <xsd: enumer at i on val ue=" Ter mi nat ed" / > <xsd: enumer at i on val ue=" Del et ed" / > </ xsd: r est r i ct i on> </ xsd: s i mpl eType> <xsd: s i mpl eType name=" Or der ScopeEnum" > <xsd: r est r i c t i on base=" xsd: st r i ng" > <xsd: maxLengt h val ue=" 40" / > <xsd: enumer at i on val ue=" i nt er f er omet r y" / > <xsd: enumer at i on val ue=" mul t i - t empor al " / > <xsd: enumer at i on val ue=" mosai c" / > </ xsd: r est r i ct i on> </ xsd: s i mpl eType> <xsd: s i mpl eType name=" Or der Sour ceEnum" > <xsd: annot at i on> <xsd: document at i on>Li st of syst ems f r om whi ch t he or der can be post ed. Thi s l i st i s ext ensi bl e</ xsd: document at i on> </ xsd: annot at i on> <xsd: r est r i c t i on base=" xsd: st r i ng" > <xsd: enumer at i on val ue=" MUI S" / > <xsd: enumer at i on val ue=" OHS" / > <xsd: enumer at i on val ue=" DESCW" / >

Page 137: Icd

SSE ICD

Ref. Issue Rev. Page

: ME-ICD-0001-SPB : 1-13/02/04 : 10-26/07/11 : 133

ICD.DOC

<xsd: enumer at i on val ue=" Eur i mage" / > <xsd: enumer at i on val ue=" Spot i mage" / > <xsd: enumer at i on val ue=" EMMA" / > <xsd: enumer at i on val ue=" SARCOM" / > </ xsd: r est r i ct i on> </ xsd: s i mpl eType> <xsd: s i mpl eType name=" Or der St at usEnum" > <xsd: annot at i on> <xsd: document at i on>Li st of Val i d St at i i f or t he Del i ver y Uni t as def i ned i n MUI S-C</ xsd: document at i on> </ xsd: annot at i on> <xsd: r est r i c t i on base=" xsd: st r i ng" > <xsd: enumer at i on val ue=" Bei ngEst i mat ed" / > <xsd: enumer at i on val ue=" Est i mat ed" / > <xsd: enumer at i on val ue=" Bei ngQuot ed" / > <xsd: enumer at i on val ue=" Not Val i d" / > <xsd: enumer at i on val ue=" Bei ngPr ocessed" / > <xsd: enumer at i on val ue=" Cancel l ed" / > <xsd: enumer at i on val ue=" Bei ngCancel l ed" / > <xsd: enumer at i on val ue=" Compl et ed" / > <xsd: enumer at i on val ue=" Bei ngOnHol d" / > <xsd: enumer at i on val ue=" Ter mi nat ed" / > </ xsd: r est r i ct i on> </ xsd: s i mpl eType> <xsd: s i mpl eType name=" Or der TypeEnum" > <xsd: r est r i c t i on base=" xsd: st r i ng" > <xsd: enumer at i on val ue=" pr oduct or der " / > <xsd: enumer at i on val ue=" open or der " / > <xsd: enumer at i on val ue=" acqui s i t i on r equest " / > <xsd: enumer at i on val ue=" account i ng" / > </ xsd: r est r i ct i on> </ xsd: s i mpl eType> <xsd: s i mpl eType name=" PassDi r ect i onEnum" > <xsd: annot at i on> <xsd: document at i on>Li st of val i d Pass Di r ect i on Val ues</ xsd: document at i on> </ xsd: annot at i on> <xsd: r est r i c t i on base=" xsd: st r i ng" > <xsd: enumer at i on val ue=" A" / > <xsd: enumer at i on val ue=" D" / > </ xsd: r est r i ct i on> </ xsd: s i mpl eType> <xsd: s i mpl eType name=" Pr oduct CodeEnum" > <xsd: annot at i on> <xsd: document at i on>Li st of Pr oduct CodeI d ( t o be pr ovi ded by ESA) </ xsd: document at i on> </ xsd: annot at i on> <xsd: r est r i c t i on base=" xsd: st r i ng" > <xsd: enumer at i on val ue=" SAR" / > <xsd: enumer at i on val ue=" SAR_RAW" / > <xsd: enumer at i on val ue=" SAR_PRI " / > <xsd: enumer at i on val ue=" SAR_GEC" / > <xsd: enumer at i on val ue=" SAR_GTC" / > <xsd: enumer at i on val ue=" SAR_SLC" / > <xsd: enumer at i on val ue=" ATS_GBT" / > <xsd: enumer at i on val ue=" ATS_GST" / > <xsd: enumer at i on val ue=" ATS_PST" / > <xsd: enumer at i on val ue=" SWM_FDC" / > <xsd: enumer at i on val ue=" WSC_FDC" / > <xsd: enumer at i on val ue=" ALT_FDC" / > <xsd: enumer at i on val ue=" ALT_OPR" / > <xsd: enumer at i on val ue=" ALT_WAP" / > <xsd: enumer at i on val ue=" ALT_SSH" / > <xsd: enumer at i on val ue=" ALT_TOP" / > <xsd: enumer at i on val ue=" ORB_PRL" / > <xsd: enumer at i on val ue=" ORB_PRC" / > <xsd: enumer at i on val ue=" ORB_EGM" / > <xsd: enumer at i on val ue=" MWS_VLC" / > <xsd: enumer at i on val ue=" MWS_MBT" / > <xsd: enumer at i on val ue=" GOM_L13" / > <xsd: enumer at i on val ue=" GOM_L22" / > <xsd: enumer at i on val ue=" JSAR" / > <xsd: enumer at i on val ue=" OPS" / > <xsd: enumer at i on val ue=" TM" / > <xsd: enumer at i on val ue=" ETM" / > <xsd: enumer at i on val ue=" MSS_SYC" / > <xsd: enumer at i on val ue=" AVHRR" / > <xsd: enumer at i on val ue=" CZCS" / > <xsd: enumer at i on val ue=" SeaWi FS" / > <xsd: enumer at i on val ue=" MOS_1B" / > <xsd: enumer at i on val ue=" MODI S_1B" / > <xsd: enumer at i on val ue=" ASA_EC__0P" / > <xsd: enumer at i on val ue=" ASA_MS__0P" / > <xsd: enumer at i on val ue=" ASA_I M" / > <xsd: enumer at i on val ue=" ASA_I M__0P" / > <xsd: enumer at i on val ue=" ASA_I MS_1P" / > <xsd: enumer at i on val ue=" ASA_I MP_1P" / >

Page 138: Icd

SSE ICD

Ref. Issue Rev. Page

: ME-ICD-0001-SPB : 1-13/02/04 : 10-26/07/11 : 134

ICD.DOC

<xsd: enumer at i on val ue=" ASA_I MG_1P" / > <xsd: enumer at i on val ue=" ASA_I MM_1P" / > <xsd: enumer at i on val ue=" ASA_I M__BP" / > <xsd: enumer at i on val ue=" ASAR_WS" / > <xsd: enumer at i on val ue=" ASA_WS__0P" / > <xsd: enumer at i on val ue=" ASA_WSM_1P" / > <xsd: enumer at i on val ue=" ASA_WS__BP" / > <xsd: enumer at i on val ue=" ASA_GM" / > <xsd: enumer at i on val ue=" ASA_GM__0P" / > <xsd: enumer at i on val ue=" ASA_GM1_1P" / > <xsd: enumer at i on val ue=" ASA_GM__BP" / > <xsd: enumer at i on val ue=" ASA_AP" / > <xsd: enumer at i on val ue=" ASA_APH_0P" / > <xsd: enumer at i on val ue=" ASA_APV_0P" / > <xsd: enumer at i on val ue=" ASA_APC_0P" / > <xsd: enumer at i on val ue=" ASA_APM_1P" / > <xsd: enumer at i on val ue=" ASA_APS_1P" / > <xsd: enumer at i on val ue=" ASA_APP_1P" / > <xsd: enumer at i on val ue=" ASA_APG_1P" / > <xsd: enumer at i on val ue=" ASA_AP__BP" / > <xsd: enumer at i on val ue=" ASA_WV" / > <xsd: enumer at i on val ue=" ASA_WV__0P" / > <xsd: enumer at i on val ue=" ASA_WVI _1P" / > <xsd: enumer at i on val ue=" ASA_WVS_1P" / > <xsd: enumer at i on val ue=" ASA_WVW_2P" / > <xsd: enumer at i on val ue=" ATS_NL__0P" / > <xsd: enumer at i on val ue=" ATS_TOA_1P" / > <xsd: enumer at i on val ue=" ATS_NR__2P" / > <xsd: enumer at i on val ue=" ATS_AR__2P" / > <xsd: enumer at i on val ue=" ATS_MET_2P" / > <xsd: enumer at i on val ue=" ATS_AST_BP" / > <xsd: enumer at i on val ue=" RA2_CAL_0P" / > <xsd: enumer at i on val ue=" RA2_ME__0P" / > <xsd: enumer at i on val ue=" RA2_MW" / > <xsd: enumer at i on val ue=" RA2_MW__1P" / > <xsd: enumer at i on val ue=" RA2_MWS_2P" / > <xsd: enumer at i on val ue=" RA2_MWG_2P" / > <xsd: enumer at i on val ue=" RA2_WWV_2PR" / > <xsd: enumer at i on val ue=" RA2_FDG_2P" / > <xsd: enumer at i on val ue=" RA2_I DG_2P" / > <xsd: enumer at i on val ue=" RA2_GDR_2P" / > <xsd: enumer at i on val ue=" MWR_NL__0P" / > <xsd: enumer at i on val ue=" GOM_" / > <xsd: enumer at i on val ue=" GOM_NL__0P" / > <xsd: enumer at i on val ue=" GOM_MM__0P" / > <xsd: enumer at i on val ue=" GOM_TRA_1P" / > <xsd: enumer at i on val ue=" GOM_LI M_1P" / > <xsd: enumer at i on val ue=" GOM_RR__2P" / > <xsd: enumer at i on val ue=" GOM_EXT_2P" / > <xsd: enumer at i on val ue=" GOM_NL__2P" / > <xsd: enumer at i on val ue=" MER_CA__0P" / > <xsd: enumer at i on val ue=" MER_RV__0P" / > <xsd: enumer at i on val ue=" MER_RR" / > <xsd: enumer at i on val ue=" MER_RR__0P" / > <xsd: enumer at i on val ue=" MER_RR__1P" / > <xsd: enumer at i on val ue=" MER_RR__2P" / > <xsd: enumer at i on val ue=" MER_LRC_2P" / > <xsd: enumer at i on val ue=" MER_RRC_2P" / > <xsd: enumer at i on val ue=" MER_RRV_2P" / > <xsd: enumer at i on val ue=" MER_RR__BP" / > <xsd: enumer at i on val ue=" MER_FR" / > <xsd: enumer at i on val ue=" MER_FR__0P" / > <xsd: enumer at i on val ue=" MER_FR__1P" / > <xsd: enumer at i on val ue=" MER_FR__2P" / > <xsd: enumer at i on val ue=" MI P_RW__0P" / > <xsd: enumer at i on val ue=" MI P_LS__0P" / > <xsd: enumer at i on val ue=" MI P_NL" / > <xsd: enumer at i on val ue=" MI P_NL__0P" / > <xsd: enumer at i on val ue=" MI P_NL__1P" / > <xsd: enumer at i on val ue=" MI P_NL__2P" / > <xsd: enumer at i on val ue=" MI P_NLE_2P" / > <xsd: enumer at i on val ue=" SCI _NL" / > <xsd: enumer at i on val ue=" SCI _NL__0P" / > <xsd: enumer at i on val ue=" SCI _NL__1P" / > <xsd: enumer at i on val ue=" SCI _NL__2P" / > <xsd: enumer at i on val ue=" SCI _OL__2P" / > <xsd: enumer at i on val ue=" SCI _RV__2P" / > <xsd: enumer at i on val ue=" DOR_NAV_0P" / > <xsd: enumer at i on val ue=" DOR_DOP_0P" / > <xsd: enumer at i on val ue=" DOR_DOP_1P" / > <xsd: enumer at i on val ue=" TLM_HK__0P" / > </ xsd: r est r i ct i on> </ xsd: s i mpl eType> <xsd: s i mpl eType name=" Pr oduct St at usEnum" > <xsd: annot at i on>

Page 139: Icd

SSE ICD

Ref. Issue Rev. Page

: ME-ICD-0001-SPB : 1-13/02/04 : 10-26/07/11 : 135

ICD.DOC

<xsd: document at i on>Li t of val i d Pr oduct St at us suppor t ed</ xsd: document at i on> </ xsd: annot at i on> <xsd: r est r i c t i on base=" xsd: st r i ng" > <xsd: enumer at i on val ue=" Vi s i bl e" / > <xsd: enumer at i on val ue=" Pl anned" / > <xsd: enumer at i on val ue=" Acqui r ed" / > <xsd: enumer at i on val ue=" Ar chi ved" / > <xsd: enumer at i on val ue=" Pr oduced" / > </ xsd: r est r i ct i on> </ xsd: s i mpl eType> <xsd: s i mpl eType name=" Sensor I dEnum" > <xsd: r est r i c t i on base=" xsd: st r i ng" > <xsd: enumer at i on val ue=" AATSR" / > <xsd: enumer at i on val ue=" AMI / SAR/ I mage" / > <xsd: enumer at i on val ue=" AMI / SAR/ wave" / > <xsd: enumer at i on val ue=" AMI / scat t er omet er " / > <xsd: enumer at i on val ue=" ASAR" / > <xsd: enumer at i on val ue=" ASAR/ I M ( I mage Mode) " / > <xsd: enumer at i on val ue=" ASAR/ AP ( Al t er nat i ng Pol ar i zat i on Mode) " / > <xsd: enumer at i on val ue=" ASAR/ WS ( Wi de Swat h Mode) " / > <xsd: enumer at i on val ue=" ASAR/ GM ( Gl obal Moni t or i ng Mode) " / > <xsd: enumer at i on val ue=" ASAR/ WV ( Wave Mode) " / > <xsd: enumer at i on val ue=" ATSR" / > <xsd: enumer at i on val ue=" ATSR- 2" / > <xsd: enumer at i on val ue=" AVHRR" / > <xsd: enumer at i on val ue=" CZCS" / > <xsd: enumer at i on val ue=" DORI S" / > <xsd: enumer at i on val ue=" ETM+" / > <xsd: enumer at i on val ue=" GOME" / > <xsd: enumer at i on val ue=" GOMOS" / > <xsd: enumer at i on val ue=" HRVI R" / > <xsd: enumer at i on val ue=" JERS SAR" / > <xsd: enumer at i on val ue=" MERI S" / > <xsd: enumer at i on val ue=" MESSR" / > <xsd: enumer at i on val ue=" MI PAS" / > <xsd: enumer at i on val ue=" MODI S" / > <xsd: enumer at i on val ue=" MOS" / > <xsd: enumer at i on val ue=" MSR" / > <xsd: enumer at i on val ue=" MSS" / > <xsd: enumer at i on val ue=" OPS" / > <xsd: enumer at i on val ue=" RA- 2/ MWR" / > <xsd: enumer at i on val ue=" RA/ LRR" / > <xsd: enumer at i on val ue=" RA/ MWR" / > <xsd: enumer at i on val ue=" RBV" / > <xsd: enumer at i on val ue=" SCI AMACHY" / > <xsd: enumer at i on val ue=" SeaWi FS" / > <xsd: enumer at i on val ue=" TM" / > <xsd: enumer at i on val ue=" VTI R" / > </ xsd: r est r i ct i on> </ xsd: s i mpl eType> <xsd: s i mpl eType name=" St at usUpdat eOpt i onEnum" > <xsd: r est r i c t i on base=" xsd: st r i ng" > <xsd: enumer at i on val ue=" manual " / > <xsd: enumer at i on val ue=" aut omat i c" / > </ xsd: r est r i ct i on> </ xsd: s i mpl eType> <xsd: s i mpl eType name=" Tr ansf er Di r ect i onEnum" > <xsd: r est r i c t i on base=" xsd: st r i ng" > <xsd: enumer at i on val ue=" push" / > <xsd: enumer at i on val ue=" pul l " / > </ xsd: r est r i ct i on> </ xsd: s i mpl eType> </ 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

Page 140: Icd

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">

Page 141: Icd

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>

Page 142: Icd

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="...">

Page 143: Icd

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

<St y l edLayer Descr i pt or ver s i on=" 1. 0. 0" xml ns: s l d=" ht t p: / / www. opengi s. net / s l d" xml ns: ogc=" ht t p: / / www. opengi s. net / ogc" xml ns: xsi =" ht t p: / / www. w3. or g/ 2001/ XMLSchema- i nst ance" > <! - - a named l ayer i s t he basi c bui l di ng bl ock of an s l d document - - > <NamedLayer > <Name>sr </ Name> <t i t l e>Exampl e SLD document appl i cabl e t o Ser v i ce Resul t Feat ur es of t he Ser v i ce Suppor t Envi r onment </ t i t l e> <abst r act >Thi s i s f or t est i ng onl y. </ abst r act > <User St yl e> <Feat ur eTypeSt y l e> <Feat ur eTypeName>Poi nt </ Feat ur eTypeName> <Rul e> <Mi nScal eDenomi nat or >1000000</ Mi nScal eDenomi nat or > <MaxScal eDenomi nat or >100000000</ MaxScal eDenomi nat or > <Name>Al l </ Name> <Poi nt Symbol i zer > <Gr aphi c> <Mar k> <Wel l KnownName>st ar </ Wel l KnownName> <Fi l l > <CssPar amet er name=" f i l l " >#FFFF00</ CssPar amet er > <CssPar amet er name=" f i l l - opaci t y" >1</ CssPar amet er > </ Fi l l > <St r oke> <CssPar amet er name=" st r oke" >#0000FF</ CssPar amet er > <CssPar amet er name=" st r oke- wi dt h" >0. 7</ CssPar amet er > </ St r oke> </ Mar k> <Si ze>20</ Si ze> </ Gr aphi c> </ Poi nt Symbol i zer > </ Rul e> <Rul e> <Name>SPACEBEL</ Name> <MaxScal eDenomi nat or >1000000</ MaxScal eDenomi nat or > <ogc: Fi l t er > <ogc: Pr oper t yI sEqual To> <ogc: Pr oper t yName>i d</ ogc: Pr oper t yName> <ogc: Li t er al >SPACEBEL</ ogc: Li t er al > </ ogc: Pr oper t yI sEqual To> </ ogc: Fi l t er > <Poi nt Symbol i zer > <Gr aphi c> <Si ze> <ogc: Li t er al >100</ ogc: Li t er al > </ Si ze>

Page 144: Icd

SSE ICD

Ref. Issue Rev. Page

: ME-ICD-0001-SPB : 1-13/02/04 : 10-26/07/11 : 140

ICD.DOC

<Opaci t y> <ogc: Li t er al >1. 0</ ogc: Li t er al > </ Opaci t y> <Rot at i on> <ogc: Li t er al >0. 0</ ogc: Li t er al > </ Rot at i on> <Ext er nal Gr aphi c> <For mat >i mage/ gi f </ For mat > <Onl i neResour ce xml ns: x l i nk=" ht t p: / / www. w3. or g/ 1999/ x l i nk" xl i nk: t ype=" si mpl e" xl i nk: hr ef =" ht t p: / / schemas. gi m. be/ mass/ 3. 0/ Sampl es/ spacebel . gi f " / > </ Ext er nal Gr aphi c> </ Gr aphi c> </ Poi nt Symbol i zer > </ Rul e> <Rul e> <Name> GI M</ Name> <MaxScal eDenomi nat or >1000000</ MaxScal eDenomi nat or > <ogc: Fi l t er > <ogc: Pr oper t yI sEqual To> <ogc: Pr oper t yName>i d</ ogc: Pr oper t yName> <ogc: Li t er al >GI M</ ogc: Li t er al > </ ogc: Pr oper t yI sEqual To> </ ogc: Fi l t er > <Poi nt Symbol i zer > <Gr aphi c> <Si ze> <ogc: Li t er al >100</ ogc: Li t er al > </ Si ze> <Opaci t y> <ogc: Li t er al >1. 0</ ogc: Li t er al > </ Opaci t y> <Rot at i on> <ogc: Li t er al >0. 0</ ogc: Li t er al > </ Rot at i on> <Ext er nal Gr aphi c> <For mat >i mage/ gi f </ For mat > <Onl i neResour ce xml ns: x l i nk=" ht t p: / / www. w3. or g/ 1999/ x l i nk" xl i nk: t ype=" si mpl e" xl i nk: hr ef =" ht t p: / / schemas. gi m. be/ mass/ 3. 0/ Sampl es/ gi m. gi f " / > </ Ext er nal Gr aphi c> </ Gr aphi c> </ Poi nt Symbol i zer > </ Rul e> <Rul e> <Name>ESRI N</ Name> <MaxScal eDenomi nat or >5000000</ MaxScal eDenomi nat or > <ogc: Fi l t er > <ogc: Pr oper t yI sEqual To> <ogc: Pr oper t yName>i d</ ogc: Pr oper t yName> <ogc: Li t er al >ESRI N</ ogc: Li t er al > </ ogc: Pr oper t yI sEqual To> </ ogc: Fi l t er > <Poi nt Symbol i zer > <Gr aphi c> <Si ze> <ogc: Li t er al >200</ ogc: Li t er al > </ Si ze> <Opaci t y> <ogc: Li t er al >1. 0</ ogc: Li t er al > </ Opaci t y> <Rot at i on> <ogc: Li t er al >0. 0</ ogc: Li t er al > </ Rot at i on> <Ext er nal Gr aphi c> <For mat >i mage/ gi f </ For mat > <Onl i neResour ce xml ns: x l i nk=" ht t p: / / www. w3. or g/ 1999/ x l i nk" xl i nk: t ype=" si mpl e" xl i nk: hr ef =" ht t p: / / schemas. gi m. be/ mass/ 3. 0/ Sampl es/ esr i n. gi f " / > </ Ext er nal Gr aphi c> </ Gr aphi c> </ Poi nt Symbol i zer > </ Rul e> <Rul e> <Name>CSE</ Name> <MaxScal eDenomi nat or >5000000</ MaxScal eDenomi nat or > <ogc: Fi l t er > <ogc: Pr oper t yI sEqual To> <ogc: Pr oper t yName>i d</ ogc: Pr oper t yName> <ogc: Li t er al >CSE</ ogc: Li t er al > </ ogc: Pr oper t yI sEqual To>

Page 145: Icd

SSE ICD

Ref. Issue Rev. Page

: ME-ICD-0001-SPB : 1-13/02/04 : 10-26/07/11 : 141

ICD.DOC

</ ogc: Fi l t er > <Poi nt Symbol i zer > <Gr aphi c> <Si ze> <ogc: Li t er al >100</ ogc: Li t er al > </ Si ze> <Opaci t y> <ogc: Li t er al >1. 0</ ogc: Li t er al > </ Opaci t y> <Rot at i on> <ogc: Li t er al >0. 0</ ogc: Li t er al > </ Rot at i on> <Ext er nal Gr aphi c> <For mat >i mage/ gi f </ For mat > <Onl i neResour ce xml ns: x l i nk=" ht t p: / / www. w3. or g/ 1999/ x l i nk" xl i nk: t ype=" si mpl e" xl i nk: hr ef =" ht t p: / / schemas. gi m. be/ mass/ 3. 0/ Sampl es/ cse. gi f " / > </ Ext er nal Gr aphi c> </ Gr aphi c> </ Poi nt Symbol i zer > </ Rul e> <Rul e> <Name>VI TO</ Name> <MaxScal eDenomi nat or >1000000</ MaxScal eDenomi nat or > <ogc: Fi l t er > <ogc: Pr oper t yI sEqual To> <ogc: Pr oper t yName>i d</ ogc: Pr oper t yName> <ogc: Li t er al >VI TO</ ogc: Li t er al > </ ogc: Pr oper t yI sEqual To> </ ogc: Fi l t er > <Poi nt Symbol i zer > <Gr aphi c> <Si ze> <ogc: Li t er al >200</ ogc: Li t er al > </ Si ze> <Opaci t y> <ogc: Li t er al >1. 0</ ogc: Li t er al > </ Opaci t y> <Rot at i on> <ogc: Li t er al >0. 0</ ogc: Li t er al > </ Rot at i on> <Ext er nal Gr aphi c> <For mat >i mage/ gi f </ For mat > <Onl i neResour ce xml ns: x l i nk=" ht t p: / / www. w3. or g/ 1999/ x l i nk" xl i nk: t ype=" si mpl e" xl i nk: hr ef =" ht t p: / / schemas. gi m. be/ mass/ 3. 0/ Sampl es/ v i t o. gi f " / > </ Ext er nal Gr aphi c> </ Gr aphi c> </ Poi nt Symbol i zer > </ Rul e> <Rul e> <Name>Sel ect ed</ Name> <Poi nt Symbol i zer > <Gr aphi c> <Mar k> <Wel l KnownName>ci r cl e</ Wel l KnownName> <Fi l l > <CssPar amet er name=" f i l l " >#FF0000</ CssPar amet er > <CssPar amet er name=" f i l l - opaci t y" >1</ CssPar amet er > </ Fi l l > <St r oke> <CssPar amet er name=" st r oke" >#FF0000</ CssPar amet er > <CssPar amet er name=" st r oke- wi dt h" >1</ CssPar amet er > </ St r oke> </ Mar k> <Si ze>50</ Si ze> </ Gr aphi c> </ Poi nt Symbol i zer > </ Rul e> </ Feat ur eTypeSt y l e> </ User St yl e> </ NamedLayer > </ St yl edLayer Descr i pt or >

Page 146: Icd

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.

Page 147: Icd

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” .

Page 148: Icd

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>

Page 149: Icd

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>

Page 150: Icd

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>