Features - GMLspecstableimplcandidate
Kodierung von Features als GML.
Umfang
Bei einem WFS-Feature-Provider werden die Features als GML vom WFS abgerufen und in die Antwort umgeschrieben. Im Falle von Features ist das Wurzelelement sf:FeatureCollection
.
Bei einem SQL-Feature-Provider werden die Features auf der Grundlage des Provider-Schemas auf GML-Objekt- und Eigenschaftselemente abgebildet. Es gibt eine Reihe von Konfigurationsoptionen, um zu steuern, wie die Merkmale auf XML abgebildet werden.
Alle Konfigurationsoptionen dieses Moduls mit Ausnahme von "gmlSfLevel" sind nur für Collections mit einem SQL-Feature-Provider anwendbar. Für Collections mit einem WFS-Feature-Provider werden alle anderen Konfigurationsoptionen ignoriert.
Die folgenden Beschreibungen gelten alle nur für Collections mit einem SQL-Feature-Provider:
- Die Feature-Eigenschaft mit der Rolle
ID
im Provider-Schema wird auf das Attributgml:id
des Features abgebildet. Diese Eigenschaften müssen eine direkte Eigenschaft des Featuretyps
sein. - Geometrieeigenschaften werden auf die entsprechende GML 3.2 Geometrie abgebildet (
gml:Point
undgml:MultiPoint
mitgml:pos
;gml:LineString
,gml:MultiCurve
,gml:Polygon
undgml:MultiSurface
mitgml:posList
). Das Attributgml:id
wird den Geometrieelementen
nicht hinzugefügt. Das Attribut "srsName" wird in jeder Geometrie gesetzt. - Eigenschaften, die
OBJECT
s mit dem ObjekttypLink
sind, werden auf einengml:Reference
-
Wert mit den Attributenxlink:href
undxmlnk:title
abgebildet, falls gesetzt. - Eigenschaften, die
OBJECT
s mit dem ObjekttypMeasure
sind, werden auf einengml:MeasureType
-Wert abgebildet. Das Objekt muss die Eigenschaftenvalue
unduom
haben, die beide in den Daten vorhanden sein müssen. - Eigenschaften, die
FLOAT
- oderINTEGER
-Werte mit einerunit
-Eigenschaft im
Provider-Schema sind, werden ebenfalls auf einengml:MeasureType
-Wert abgebildet.
Der Wert vonunit
wird auf das Attributuom
abgebildet.
Konformitätsklassen
Im Allgemeinen implementiert Features GML alle Anforderungen der Konformitätsklassen Geography Markup Language (GML), Simple Features Profile, Level 0 und Geography Markup Language (GML), Simple Features Profile, Level 2 aus OGC API - Features - Part 1: Core 1.0. Die Konformität hängt jedoch von der Konformität des GML-Anwendungsschemas mit dem GML Simple Features Standard ab. Da das GML-Anwendungsschema nicht von ldproxy kontrolliert wird, muss die Einstufung der Konformität als Teil der Konfiguration deklariert werden.
Für SQL-Feature-Provider kann außerdem ein anderes Root-Element als sf:FeatureCollection
für die Features-Ressource konfiguriert werden. In diesem Fall kann die API nicht konform zu einer der GML-Konformitätsklassen von OGC API Features sein.
Konfiguration
Standardmäßig erhält jedes GML-Eigenschaftselement den Eigenschaftsnamen aus dem Feature-Schema. Das heißt, das Element wird im Standard-Namensraum liegen. Ein anderer Name kann mit der Transformation rename
festgelegt werden, die zum Ändern des Namens verwendet werden kann, aber auch das Hinzufügen eines Namensraumpräfixes unterstützt.
Optionen
Name | Default | Beschreibung | Typ | Seit |
---|---|---|---|---|
buildingBlock | Immer GML . | string | v2.0 | |
extensionType | Deprecated Siehe buildingBlock . | string | v2.0 | |
enabled | false | Soll das Modul aktiviert werden? | boolean | v2.0 |
transformations | {} | Property-Transformationen erfolgen bei der Aufbereitung der Daten für die Rückgabe über die API. Die Datenhaltung selbst bleibt unverändert. Alle Filterausdrücke (siehe queryables in Features) wirken unabhängig von etwaigen Transformationen bei der Ausgabe und müssen auf der Basis der Werte in der Datenhaltung formuliert sein - die Transformationen sind i.A. nicht umkehrbar und eine Berücksichtigung der inversen Transformationen bei Filterausdrücken wäre kompliziert und nur unvollständig möglich. Insofern sollten Eigenschaften, die queryable sein sollen, möglichst bereits in der Datenquelle transformiert sein. Eine Ausnahme sind typischerweise Transformationen in der HTML-Ausgabe, wo direkte Lesbarkeit i.d.R. wichtiger ist als die Filtermöglichkeit. | object | v2.0 |
gmlVersion | GML32 | Bestimmt die zu verwendende GML-Version: GML32 für GML 3.2, GML31 für GML 3.1 und GML21 für GML 2.1. | string | v3.3 |
gmlSfLevel | null | Der Standardwert null erklärt, dass die GML-Unterstützung nicht alle Anforderungen der Konformitätsklassen Geography Markup Language (GML), Simple Features Profile, Level 0 oder der Geography Markup Language (GML), Simple Features Profile, Level 2 aus OGC API - Features - Part 1: Core 1.0 erfüllt. Wenn der Wert auf 0 , 1 oder 2 gesetzt wird, wird die Konformität in der Conformance Declaration Ressource angegeben. Wenn für eine Sammlung von einem SQL-Feature-Provider ein anderes Root-Element als sf:FeatureCollection in featureCollectionElementName konfiguriert ist, wird der Wert ignoriert und es wird keine Konformität zu einer GML-Konformitätsklasse erklärt. | number | v3.3 |
conformance | string | v2.0 | ||
applicationNamespaces | {} | Jedes XML-Element hat einen XML-Namensraum und jedes XML-Attribut kann einen XML-Namensraum haben. Um die Lesbarkeit der XML-Dokumente zu verbessern, wird für jeden Namespace ein Namespace-Präfix deklariert. Gängige Namespaces und Präfixe sind vordefiniert, diese sind: gml (GML 3.2), xlink (XLink), xml (XML), sf (OGC API Features Core 1.0, Core-SF), wfs (WFS 2.0), und xsi (XML Schema Information). Weitere Namespaces, die in den Daten verwendet werden (deklariert in GML-Anwendungsschemata und importierten Schemata), werden mit ihren Präfixen konfiguriert. Da Feature-Daten immer Elemente in anwendungsschemaspezifischen Namespaces verwenden, muss dieser Konfigurationsparameter immer angegeben werden. | object | v3.3 |
defaultNamespace | null | Mit diesem Konfigurationsparameter kann ein Standard-Namespace angegeben werden, der für XML-Elemente verwendet wird, wenn kein anderer Namespace angegeben ist. Der Wert ist der Namespace-Präfix. Es muss entweder ein vordefiniertes Präfix oder ein in applicationNamespaces deklariertes Präfix sein. Dieser Namespace wird als Standard-Namespace des XML-Dokuments deklariert. | string | v3.3 |
schemaLocations | null | Wenn ein Anwendungsnamensraum in das Attribut xsi:schemaLocation des Root-Elements aufgenommen werden soll, müssen die Dokument-URIs angegeben werden. Außerdem wird die Schema-URL des Namespaces des Root-Elements hinzugefügt, falls bekannt. Für die vordefinierten Namespaces (gml , sf und wfs ) wird die kanonische Schema-URL im OGC-Schema-Repository verwendet, sofern keine andere Schema-URL für den Namespace konfiguriert ist. Beachten Sie, dass der Namespace des Root-Elements im Attribut xsi:schemaLocation deklariert werden muss, um den XML-Schema-Validierungsanforderungen zu entsprechen, auch wenn der Namespace von einem anderen Schema importiert wird. | object | v3.3 |
objectTypeNamespaces | {} | Alle Objekt/Datentyp-Instanzen werden durch ein GML-Objektelement dargestellt. Im Provider-Schema muss für jedes OBJEKT in der Eigenschaft objectType ein Name angegeben werden, auch für den Feature-Typ selbst. Standardmäßig wird dieser Name für den unqualifizierten Namen des GML-Objektelements verwendet. Wenn das GML-Objektelement nicht im Standard-Namensraum liegt, spezifiziert dieser Konfigurationsparameter den Namensraumpräfix zu einem Objekttyp. | object | v3.3 |
variableObjectElementNames | {} | Es kann auch Fälle geben, insbesondere wenn im zugrunde liegenden Anwendungsschema Vererbung verwendet wird, in denen mehrere Objekttypen in derselben Tabelle geführt werden, mit einem Attribut, das den Namen des Merkmals/Objekttyps angibt. Dieser Konfigurationsparameter bietet die Möglichkeit, diese Eigenschaften zu identifizieren und die Werte auf qualifizierte Namen für das GML-Objektelement abzubilden. Im Beispiel ist _type die Feature-Eigenschaft mit drei verschiedenen Werten, die auf den qualifizierten Elementnamen abgebildet werden. | object | v3.3 |
featureCollectionElementName | sf:FeatureCollection | Es werden verschiedene Feature-Collection-Elemente verwendet und manchmal werden zusätzliche Elemente in GML-Anwendungsschemata definiert. Der Standard ist sf:FeatureCollection , wie von OGC API Features spezifiziert. Dieser Konfigurationsparameter bietet die Möglichkeit, dass ein anderes Feature-Collection-Element in der Rückgabe verwendet wird. | string | v3.3 |
featureMemberElementName | sf:featureMember | Das in featureCollectionElementName referenzierte Feature-Collection-Element hat ein untergeordnetes Eigenschaftselement, das wiederum jedes Feature enthält. Der Standardwert ist sf:featureMember , wie von OGC API Features definiert. Dieser Konfigurationsparameter bietet die Möglichkeit, den Elementnamen für das konfigurierte Feature-Collection-Element zu spezifizieren. | string | v3.3 |
supportsStandardResponseParameters | false | Das Feature-Collection-Element, auf das in featureCollectionElementName verwiesen wird, kann die WFS-2.0-Standardantwortparameter (timeStamp , numberMatched , numberReturned ) unterstützen. Dieser Konfigurationsparameter steuert, ob die Attribute als XML-Attribute in das Feature-Collection-Element aufgenommen werden. | boolean | v3.3 |
xmlAttributes | [] | Eigenschaften werden standardmäßig als XML-Kindelement (GML-Eigenschaftselement) des XML-Elements dargestellt, das das Objekt repräsentiert (GML-Objektelement). Alternativ kann die Eigenschaft auch als XML-Attribut des übergeordneten GML-Objektelements dargestellt werden. Dies ist nur für Eigenschaften vom Typ STRING, FLOAT, INTEGER oder BOOLEAN möglich. | array | v3.3 |
gmlIdPrefix | null | Die Feature-Eigenschaft mit der Rolle ID im Provider-Schema wird auf das Attribut gml:id des Merkmals abgebildet. Diese Eigenschaften müssen eine direkte Eigenschaft des Feature-Typs sein. Wenn die Werte die Regel für XML-IDs verletzen, z. B. wenn sie mit einer Ziffer beginnen können, kann dieser Konfigurationsparameter verwendet werden, um ein konsistentes Präfix hinzuzufügen, um alle Werte auf gültige XML-IDs abzubilden. | string | v3.3 |
Beispiele
- buildingBlock: GML
enabled: true
applicationNamespaces:
ns1: http://www.example.com/ns/ns1/1.0
ns2: http://www.example.com/ns/ns2/1.0
defaultNamespace: ns1
schemaLocations:
ns1: '{{serviceUrl}}/resources/ns1.xsd'
ns2: '{{serviceUrl}}/resources/ns2.xsd'
gmlIdPrefix: '_'
collections:
some_type:
...
api:
- buildingBlock: GML
xmlAttributes:
- someAtt
transformations:
someOtherAtt:
rename: 'ns2:someOtherAtt'