/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for * full list of contributors). Published under the 2-clause BSD license. * See license.txt in the OpenLayers distribution or repository for the * full text of the license. */ /** * @requires OpenLayers/Format/XML.js * @requires OpenLayers/Format/OWSCommon/v1_1_0.js * @requires OpenLayers/Format/WCSGetCoverage.js * @requires OpenLayers/Format/WFST/v1_1_0.js */ /** * Class: OpenLayers.Format.WPSExecute version 1.0.0 * * Inherits from: * - */ OpenLayers.Format.WPSExecute = OpenLayers.Class(OpenLayers.Format.XML, OpenLayers.Format.Filter.v1_1_0, { /** * Property: namespaces * {Object} Mapping of namespace aliases to namespace URIs. */ namespaces: { ows: "http://www.opengis.net/ows/1.1", gml: "http://www.opengis.net/gml", wps: "http://www.opengis.net/wps/1.0.0", wfs: "http://www.opengis.net/wfs", ogc: "http://www.opengis.net/ogc", wcs: "http://www.opengis.net/wcs", xlink: "http://www.w3.org/1999/xlink", xsi: "http://www.w3.org/2001/XMLSchema-instance" }, /** * Property: regExes * Compiled regular expressions for manipulating strings. */ regExes: { trimSpace: (/^\s*|\s*$/g), removeSpace: (/\s*/g), splitSpace: (/\s+/), trimComma: (/\s*,\s*/g) }, /** * Constant: VERSION * {String} 1.0.0 */ VERSION: "1.0.0", /** * Property: schemaLocation * {String} Schema location */ schemaLocation: "http://www.opengis.net/wps/1.0.0 http://schemas.opengis.net/wps/1.0.0/wpsAll.xsd", schemaLocationAttr: function(options) { return undefined; }, /** * Constructor: OpenLayers.Format.WPSExecute * * Parameters: * options - {Object} An optional object whose properties will be set on * this instance. */ /** * Method: write * * Parameters: * options - {Object} Optional object. * * Returns: * {String} An WPS Execute request XML string. */ write: function(options) { var doc; if (window.ActiveXObject) { doc = new ActiveXObject("Microsoft.XMLDOM"); this.xmldom = doc; } else { doc = document.implementation.createDocument("", "", null); } var node = this.writeNode("wps:Execute", options, doc); this.setAttributeNS( node, this.namespaces.xsi, "xsi:schemaLocation", this.schemaLocation ); return OpenLayers.Format.XML.prototype.write.apply(this, [node]); }, /** * APIMethod: read * Parse a WPS Execute and return an object with its information. * * Parameters: * data - {String} or {DOMElement} data to read/parse. * * Returns: * {Object} */ read: function(data) { if(typeof data == "string") { data = OpenLayers.Format.XML.prototype.read.apply(this, [data]); } if(data && data.nodeType == 9) { data = data.documentElement; } var info = {}; this.readNode(data, info); return info; }, /** * Property: writers * As a compliment to the readers property, this structure contains public * writing functions grouped by namespace alias and named like the * node names they produce. */ writers: { "wps": { "Execute": function(options) { var node = this.createElementNSPlus("wps:Execute", { attributes: { version: this.VERSION, service: 'WPS' } }); this.writeNode("ows:Identifier", options.identifier, node); this.writeNode("wps:DataInputs", options.dataInputs, node); this.writeNode("wps:ResponseForm", options.responseForm, node); return node; }, "ResponseForm": function(responseForm) { var node = this.createElementNSPlus("wps:ResponseForm", {}); if (responseForm.rawDataOutput) { this.writeNode("wps:RawDataOutput", responseForm.rawDataOutput, node); } if (responseForm.responseDocument) { this.writeNode("wps:ResponseDocument", responseForm.responseDocument, node); } return node; }, "ResponseDocument": function(responseDocument) { var node = this.createElementNSPlus("wps:ResponseDocument", { attributes: { storeExecuteResponse: responseDocument.storeExecuteResponse, lineage: responseDocument.lineage, status: responseDocument.status } }); if (responseDocument.outputs) { for (var i = 0, len = responseDocument.outputs.length; i < len; i++) { this.writeNode("wps:Output", responseDocument.outputs[i], node); } } return node; }, "Output": function(output) { var node = this.createElementNSPlus("wps:Output", { attributes: { asReference: output.asReference, mimeType: output.mimeType, encoding: output.encoding, schema: output.schema } }); this.writeNode("ows:Identifier", output.identifier, node); this.writeNode("ows:Title", output.title, node); this.writeNode("ows:Abstract", output["abstract"], node); return node; }, "RawDataOutput": function(rawDataOutput) { var node = this.createElementNSPlus("wps:RawDataOutput", { attributes: { mimeType: rawDataOutput.mimeType, encoding: rawDataOutput.encoding, schema: rawDataOutput.schema } }); this.writeNode("ows:Identifier", rawDataOutput.identifier, node); return node; }, "DataInputs": function(dataInputs) { var node = this.createElementNSPlus("wps:DataInputs", {}); for (var i=0, ii=dataInputs.length; i