Compliance to OGC standards

The currrent implementation follow the schemas described in the actual unreleased version of the standard.

That means that it may not be compliant for most of actual OGC api compliance validators which are strictly based on the version 1.0.0 of the standards.

Notes on schemas

Inputs and outputs value descriptions are described as json schemas. That is, the schema determines completely the syntax of the value.

produced schemas are compliant to the following specifications

Value passing and transmission mode

The value passing method is bound to each input with the valuePassing property.

Note

The current implementation does not allow client to specify the transmission mode for outputs.
That means that the transmissionMode property is ignored in output specification in execute requests.
Instead each output individually requires to be passed either by value or by reference as as server-side decision.

For informative purpose, a non-standard optional valuePassing property may be added to the output description.

In all cases, references use links as output value.

Inlines output value are returned either directly as described by their schema or as qualified value.

Qualified input and output values

Qualified values are used for encoding non Json strings.

For input values: a qualified value must be returned if the input schema has the contentMediaType keyword.

For output values: a qualified value will be returned if the output schema has the contentMediaType keyword.

Multiple media types

Inputs and outputs may describe multiple media types an inputs and outputs in oneOf composite schema.

Consider the following example for return a geometry:

Example:

"schema": {
  "anyOf": [
    {
      "type": "string",
      "contentMediaType": "application/wkt"
    },
    {
      "type": "string",
      "contentMediaType": "application/gml+xml"
    },
    {
      "format": "geojson-geometry"
      "$ref": "http://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/geometryGeoJSON.yaml"
    },
  ]
}

One possible response would be:

{
  "value": "....."
  "mediaType": "application/wkt"
}

Warning

In the example above, the geojson response must not be returned as qualified value since it deos not have a contentMediaType annotation.

Formats

In the example above we have used the keyword format in the geojson schema description.

The format keyword is used for providing additonal semantic context that can help the interpretation and validation of process input or output in an execute request.

While the JsonSchema specification use the format keyword for strings only, the OGC standards extend its usage to any object.

Check the built-in json schemas formats

The OGC standards defines additional formats:

geojson-feature-collection:

Indicates that the object is an instance of a GeoJSON feature collection

geojson-feature:

Indicates that the object is an instance of a GeoJSON feature

geojson-geometry:

Indicates that the object is an instance of a GeoJSON geometry

ogc-bbox:

Indicates that the object is an instance of an OGC bounding box

Additional formats

According to JsonSchema specification, additional schema properties start with an x-* prefix

Additional OGC specific properties are prefixed with x-ogc-*.

Using x-ogc-* is a OGC standart proposal described in https://github.com/opengeospatial/ogcapi-features/issues/838 for the features api.

The following additional formats are used in Qjazz-Processes:

x-ogc-crs:

Indicate that an string or object is a CRS definition

x-range:

A 2-tuple of numbers indicating a inclusive range

x-range-exclude:

A 2-tuple of numbers indicating a exclusive range

x-range-exclude-left:

2-tuple of numbers indicating a left exclusive range

x-range-exclude-right:

A 2-tuple of numbers indicating a right exclusive range

x-feature-source:

A source name with optional attributes for selecting features