UNPKG

wps-js-52-north

Version:

Web Processing Service JavaScrict library

210 lines (174 loc) 7.23 kB
/** * */ var ExecuteRequest_v2 = ExecuteRequest .extend({ /** * will adjust the templates stored in ExecuteRequest.js file to * reflect the WPS 2.0 request POST body */ overrideTemplates : function() { /* * TODO ${responseForm} might be changed in WPS 2.0! check that! */ EXECUTE_REQUEST_XML_START = '<wps:Execute service="WPS" version="2.0.0" \ xmlns:wps="http://www.opengis.net/wps/2.0" \ xmlns:ows="http://www.opengis.net/ows/2.0" \ xmlns:xlink="http://www.w3.org/1999/xlink" \ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \ xsi:schemaLocation="http://www.opengis.net/wps/2.0 \ http://schemas.opengis.net/wps/2.0/wpsExecute.xsd" \ response="${responseFormat}" mode="${executionMode}"> \ <ows:Identifier>${processIdentifier}</ows:Identifier>\ ${dataInputs}\ ${responseForm}\ </wps:Execute>'; EXECUTE_REQUEST_XML_COMPLEX_DATA_ALL_INPUT = '<wps:Input id="${identifier}">\ <wps:Data schema="${schema}" mimeType="${mimeType}" encoding="${encoding}">\ ${complexPayload}\ </wps:Data>\ </wps:Input>'; EXECUTE_REQUEST_XML_COMPLEX_DATA_MIME_TYPE_INPUT = '<wps:Input id="${identifier}">\ <wps:Data mimeType="${mimeType}">\ ${complexPayload}\ </wps:Data>\ </wps:Input>'; EXECUTE_REQUEST_XML_COMPLEX_DATA_SCHEMA_INPUT = '<wps:Input id="${identifier}">\ <wps:Data schema="${schema}" mimeType="${mimeType}">\ ${complexPayload}\ </wps:Data>\ </wps:Input>'; EXECUTE_REQUEST_XML_COMPLEX_DATA_ENCODING_INPUT = '<wps:Input id="${identifier}">\ <wps:Data mimeType="${mimeType}" encoding="${encoding}">\ ${complexPayload}\ </wps:Data>\ </wps:Input>'; EXECUTE_REQUEST_XML_COMPLEX_DATA_BY_REFERENCE_ALL_INPUT = '<wps:Input id="${identifier}">\ <wps:Reference schema="${schema}" mimeType="${mimeType}" encoding="${encoding}" \ xlink:href="${complexPayload}"/>\ </wps:Input>'; EXECUTE_REQUEST_XML_COMPLEX_DATA_BY_REFERENCE_SCHEMA_INPUT = '<wps:Input id="${identifier}">\ <wps:Reference schema="${schema}" mimeType="${mimeType}" \ xlink:href="${complexPayload}"/>\ </wps:Input>'; EXECUTE_REQUEST_XML_COMPLEX_DATA_BY_REFERENCE_ENCODING_INPUT = '<wps:Input id="${identifier}">\ <wps:Reference mimeType="${mimeType}" encoding="${encoding}" \ xlink:href="${complexPayload}"/>\ </wps:Input>'; EXECUTE_REQUEST_XML_COMPLEX_DATA_BY_REFERENCE_INPUT = '<wps:Input id="${identifier}">\ <wps:Reference mimeType="${mimeType}" xlink:href="${complexPayload}"/>\ </wps:Input>'; /* * These are the CORRECT values, currently the 52N WPS is * implemented wrongly wrt literalValue * */ EXECUTE_REQUEST_XML_LITERAL_DATA_INPUT_TYPE = '<wps:Input id="${identifier}">\ <wps:Data mimeType="text/xml">\ <wps:LiteralValue dataType="${dataType}">${value}</wps:LiteralValue>\ </wps:Data>\ </wps:Input>'; EXECUTE_REQUEST_XML_LITERAL_DATA_INPUT_ALL = '<wps:Input id="${identifier}">\ <wps:Data mimeType="text/xml">\ <wps:LiteralValue dataType="${dataType}" uom="${uom}">${value}</wps:LiteralValue>\ </wps:Data>\ </wps:Input>'; EXECUTE_REQUEST_XML_LITERAL_DATA_NO_TYPE_INPUT = '<wps:Input id="${identifier}">\ <wps:Data mimeType="text/xml">\ <wps:LiteralValue>${value}</wps:LiteralValue>\ </wps:Data>\ </wps:Input>'; /* * The follwing 3 are NOT CORRECT, but work currently with the * 52°North WPS 2.0, which contains a false implmenetation wrt * literalValues */ /* EXECUTE_REQUEST_XML_LITERAL_DATA_INPUT_TYPE = '<wps:Input id="${identifier}">\ <wps:Data>\ ${value}\ </wps:Data>\ </wps:Input>'; EXECUTE_REQUEST_XML_LITERAL_DATA_INPUT_ALL = '<wps:Input id="${identifier}">\ <wps:Data>\ ${value}\ </wps:Data>\ </wps:Input>'; EXECUTE_REQUEST_XML_LITERAL_DATA_NO_TYPE_INPUT = '<wps:Input id="${identifier}">\ <wps:Data>\ ${value}\ </wps:Data>\ </wps:Input>'; */ EXECUTE_REQUEST_XML_BOUNDING_BOX_INPUT = '<wps:Input id="${identifier}">\ <wps:Data>\ <ows:BoundingBox crs="${crs}" dimensions="${dimension}">\ <ows:LowerCorner>${lowerCorner}</ows:LowerCorner>\ <ows:UpperCorner>${upperCorner}</ows:UpperCorner>\ </ows:BoundingBox>\ </wps:Data>\ </wps:Input>'; /* * for WPS 2.0 there is no wrapping element around the outputs! */ EXECUTE_REQUEST_XML_RESPONSE_FORM_DOCUMENT = '${outputs}'; EXECUTE_REQUEST_XML_COMPLEX_ALL_OUTPUT = '<wps:Output id="${identifier}" \ transmission="${transmission}" schema="${schema}" mimeType="${mimeType}" encoding="${encoding}">\ </wps:Output>'; EXECUTE_REQUEST_XML_COMPLEX_OUTPUT = '<wps:Output id="${identifier}"\ transmission="${transmission}">\ </wps:Output>'; EXECUTE_REQUEST_XML_COMPLEX_MIME_TYPE_OUTPUT = '<wps:Output id="${identifier}" \ transmission="${transmission}" mimeType="${mimeType}">\ </wps:Output>'; EXECUTE_REQUEST_XML_COMPLEX_SCHEMA_OUTPUT = '<wps:Output id="${identifier}" \ transmission="${transmission}" schema="${schema}" mimeType="${mimeType}">\ </wps:Output>'; EXECUTE_REQUEST_XML_COMPLEX_ENCODING_OUTPUT = '<wps:Output id="${identifier}" \ transmission="${transmission}" mimeType="${mimeType}" encoding="${encoding}">\ </wps:Output>'; EXECUTE_REQUEST_XML_LITERAL_OUTPUT = '<wps:Output id="${identifier}" transmission="${transmission}">\ </wps:Output>'; /* * raw output * * in WPS 2.0 there is no special wrapping element for raw * outputs, hence we just use the already specified output * templates * * also in WPS 2.0 there is no specification of UOM anymore. so * simply ignore uom. */ EXECUTE_REQUEST_XML_RESPONSE_FORM_RAW_ALL = EXECUTE_REQUEST_XML_COMPLEX_ALL_OUTPUT; EXECUTE_REQUEST_XML_RESPONSE_FORM_RAW_TYPE_ENCODING_UOM = EXECUTE_REQUEST_XML_COMPLEX_ENCODING_OUTPUT; EXECUTE_REQUEST_XML_RESPONSE_FORM_RAW_TYPE_UOM = EXECUTE_REQUEST_XML_COMPLEX_MIME_TYPE_OUTPUT; EXECUTE_REQUEST_XML_RESPONSE_FORM_RAW_TYPE = EXECUTE_REQUEST_XML_COMPLEX_MIME_TYPE_OUTPUT; }, /** * used to analyze the given request parameters and, if needed, add * additional parameters to properly instantiate the templates. */ addVersionDependentProperties : function() { if (!this.settings.executionMode) this.settings.executionMode = "async"; if (!this.settings.responseFormat) this.settings.responseFormat = "document"; /* * needed object to properly instantiate the outputs * (responseForm template) */ this.settings.outputStyle = new Object(); }, /** * add certain parameters, if necessary, to the given object */ addVersionDependentPropertiesToFinalExecuteProperties : function( finalExecuteProperties) { /* * override in child classes */ finalExecuteProperties.responseFormat = this.settings.responseFormat; finalExecuteProperties.executionMode = this.settings.executionMode; return finalExecuteProperties; }, });