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
transmissionMode
property is ignored in output specification in execute
requests.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