Constraints
Schema constraints can be documented in the configuration of the feature types in the feature provider. These are used, for example, when generating JSON schema documents.
Name | Default | Description | Type | Since |
---|---|---|---|---|
codelist | Identifies a codelist that applies to the property. Meaningful only for string or integer properties. | string | v2.0 | |
enum | List of permitted values for the property. Meaningful only for string or integer properties. | array | v2.0 | |
regex | A regular expression that must be fulfilled by all values. Meaningful only for string properties. | string | v2.0 | |
required | A property can be qualified as a mandatory property that must be set in all instances. | boolean | v2.0 | |
min | Minimum value for all instances. Meaningful only for numerical properties. | number | v2.0 | |
max | Maximum value for all instances. Meaningful only for numerical properties. | number | v2.0 | |
minOccurrence | Minimum number of values for all instances. Meaningful only for array properties. | number | v2.0 | |
maxOccurrence | Maximum number of values for all instances. Meaningful only for array properties. | number | v2.0 | |
composite | Flag to indicate that all geometry components are connected. Only relevant for properties with MultiLineString and MultiPolygon geometries. | boolean | v2.0 | |
closed | Flag to indicate that all geometry values are closed. Only relevant for geometry properties. | boolean | v2.0 |
As an example, here are the properties of the road sections/branch features (Abschnitt/Ast) in the API Road network and accidents in NRW with constraints:
types:
abschnitteaeste:
label: Abschnitte und Äste
sourcePath: /abschnitteaeste
type: OBJECT
properties:
kennung:
label: Kennung
description: 16-stellige Kennung des Abschnittes oder Astes
sourcePath: abs
type: STRING
role: ID
constraints:
regex: '^[0-9]{7}[A-Z][0-9]{7}[A-Z]$'
strasse:
label: Straße
type: OBJECT
objectType: Strasse
properties:
bez:
label: Straßenbezeichnung
sourcePath: strbez
type: STRING
klasse:
label: Straßenklasse
sourcePath: strkl
type: STRING
constraints:
enum:
- A
- B
- L
- K
nummer:
label: Straßennummer
sourcePath: strnr
type: INTEGER
constraints:
min: 1
max: 9999
zusatz:
label: Buchstabenzusatz
description: Buchstabenzusatz zur Straßennummer
sourcePath: strzus
type: STRING
constraints:
regex: '^[A-Z]$'
...
absast:
label: Art
description: Art des Abschnittes oder Astes
sourcePath: absast
type: STRING
constraints:
enum:
- Abschnitt
- Ast
...
laenge_m:
label: Länge [m]
description: Länge des Abschnittes oder Astes (m)
sourcePath: laenge
type: INTEGER
constraints:
min: 0