Features - GML
specstableimplcandidateKodierung 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 Bausteins 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
IDim Provider-Schema wird auf das Attributgml:id
des Features abgebildet. Diese Eigenschaften müssen eine direkte Eigenschaft des Featuretyps
sein. WenngmlIdPrefixgesetzt ist, wird das Präfix jedemgml:id-Wert vorangestellt,
um gültige XML-IDs zu gewährleisten. WennappendTemporalSuffixToGmlId: truegesetzt ist
und derdatetime-Parameter der Anfrage ein Intervall ist, wird der Wert der primären
zeitlichen Eigenschaft im FormatyyyyMMddTHHmmssXan diegml:idangehängt. - Wenn
gmlIdentifierkonfiguriert ist, wird eingml:identifier-Element als erstes
Kindelement jedes Features ausgegeben, mit dem konfiguriertencodeSpace-Attribut und
der Feature-ID (optional eingesetzt invalueTemplate) als Textinhalt. - Geometrieeigenschaften werden je nach Geometrietyp auf GML-3.2-Elemente abgebildet:
Pointwird aufgml:Point(mitgml:pos) abgebildet;MultiPointaufgml:MultiPoint;LineStringaufgml:LineString(mitgml:posList);CircularString
aufgml:Curvemit einemgml:Arc-Segment (drei Kontrollpunkte) odergml:ArcString-Segment (mehr als drei Kontrollpunkte);CompoundCurveaufgml:Curve
mit mehreren Segmenten;MultiLineStringundMultiCurveaufgml:MultiCurve;PolygonundCurvePolygonaufgml:Polygonmitgml:LinearRing-Ringen;MultiPolygonundMultiSurfaceaufgml:MultiSurface;PolyhedralSurfaceaufgml:Solid(wenn geschlossen) odergml:PolyhedralSurface(wenn offen); undGeometryCollectionaufgml:MultiGeometry.
MituseSurfaceAndCurve: truewerden folgende alternative Kodierungen verwendet:
einfache Linienzüge alsgml:Curvemit einemgml:LineStringSegment; einfache Polygone
(undCurvePolygon) alsgml:Surfacemit einemgml:PolygonPatch; CompoundCurves alsgml:CompositeCurve; und alle Ringe innerhalb von Polygonen alsgml:Ringmit einem
oder mehrerengml:LineStringSegment-Curve-Membern stattgml:LinearRing. Das Attributgml:idwird den Geometrieelementen nicht hinzugefügt, sofern nichtgmlIdOnGeometries: truegesetzt ist. Das AttributsrsNamewird in jeder Geometrie
gesetzt; mitsrsNameStyle: TEMPLATEwird der Wert aussrsNameMappingsübernommen
statt der OGC-URI-Form. MitsrsDimension: truewird zusätzlich einsrsDimension-Attribut beiposundposListhinzugefügt. - Eigenschaften, die
OBJECTs mit dem ObjekttypLinksind, werden auf einengml:Reference-Wert mit den Attributenxlink:hrefundxlink:titleabgebildet, falls
gesetzt. Für Feature-Referenz-Eigenschaften (mitrefTypedeklariert) kannfeatureRefTemplatexlink:hrefzu einem URN-Bezeichner umschreiben (z.B.urn:adv:oid:{{value}}). - Eigenschaften, die
OBJECTs mit dem ObjekttypMeasuresind, werden auf einengml:MeasureType-Wert abgebildet. Das Objekt muss die Eigenschaftenvalueunduom
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 vonunitwird auf das Attributuomabgebildet. MituomStyle: TEMPLATE
wird die Einheit überuomMappingsaufgelöst. - Eigenschaften, die in
codelistPropertiesaufgeführt sind, werden als leere
XML-Elemente mitxlink:href(auscodelistUriTemplateaufgebaut) undxlink:title
(das Codelist-Label, ersatzweise der Rohwert) kodiert, statt den rohen Wert als
Elementtext zu schreiben. - Jedes Eigenschaftselement erhält den Namen der Eigenschaft aus dem Feature-Schema; mit
useAlias: truewerden Eigenschaften, die einenaliasdeklarieren, unter diesem Alias
kodiert. Das Element wird im Namensraum seines übergeordneten Objekttyps platziert, wie
inobjectTypeNamespacesdeklariert. Ein explizit angegebenesprefix:nameim Schema
oder einerename-Transformation hat Vorrang vor dem geerbten Namensraum und dem Alias. - Eigenschaften, die in
valueWrapaufgeführt sind, haben ihren skalaren Wert in ein oder
mehrere geschachtelte XML-Elemente eingebettet, die in der Konfiguration deklariert sind
(von außen nach innen); der Wert steht innerhalb des innersten Wrappers. Dies ist
nützlich für Anwendungsschemata, die atomare Werte in Wrappertypen einbetten.
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 Element liegt im Namensraum seines übergeordneten Objekttyps (deklariert über objectTypeNamespaces); ist für den übergeordneten Objekttyp kein Namensraum-Mapping definiert, verbleibt das Element im Standard-Namensraum. Ein anderer Name oder ein expliziter Namensraum kann mit der Transformation rename festgelegt werden, die Vorrang vor dem geerbten Namensraum hat.
Wenn der CRUD-Baustein aktiviert ist, werden die für die GML-Ausgabe wirksamen Optionen beim Decodieren von GML-POST/PUT-Anfrage-Bodies symmetrisch berücksichtigt: applicationNamespaces, defaultNamespace, objectTypeNamespaces, useAlias, gmlIdPrefix, srsNameMappings, uomMappings, codelistProperties, codelistUriTemplate, featureRefTemplate, valueWrap, xmlAttributes, variableObjectElementNames, featureCollectionElementName, featureMemberElementName. Die übrigen Optionen wirken sich ausschließlich auf die Ausgabe aus \u2014 schemaLocations (XSD-Referenzen), srsNameStyle, uomStyle, gmlIdentifier, appendTemporalSuffixToGmlId, gmlSfLevel, useSurfaceAndCurve, defaultProfiles \u2014 entweder weil sie Formatierungsentscheidungen des Encoders ohne Eingabe-Pendant steuern oder weil der Decoder bei jeder äquivalenten Eingabeform permissiv ist.
Optionen
| Name | Default | Beschreibung | Typ | Seit |
|---|---|---|---|---|
buildingBlock | Immer GML. | string | v2.0 | |
enabled | false | Soll der Baustein 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 |
useAlias | false | Wenn true, werden Eigenschaften des Feature-Schemas, für die ein alias angegeben ist, unter dem Alias anstelle des Schemanamens kodiert. Hilfreich für Anwendungsschemata, in denen jede Eigenschaft sowohl einen kurzen technischen Namen als auch einen längeren eingängigen Namen hat (z.B. AdV-NAS: arf / artDerFlurstuecksgrenze). Eine explizite rename-Transformation für eine Eigenschaft hat weiterhin Vorrang vor dem Alias. Die Option wirkt nur auf die Feature-Kodierung; Queryables, Sortables und andere Schema-Ableitungen verwenden immer die Schemanamen. | boolean | 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. Der zugeordnete Präfix wird auch auf die Eigenschaftselemente angewendet, die dieser Objekttyp deklariert (seine Kindelemente im Schema-Baum). Das entspricht der XML-Schema- Konvention elementFormDefault="qualified": ein Eigenschaftselement liegt im Ziel-Namensraum des komplexen Typs, der es deklariert. Eigenschaftsnamen (bzw. ihre Aliase) sollten daher im Provider-Schema ohne Präfix angegeben werden; der Namensraum wird automatisch aus dem Mapping des übergeordneten Objekttyps ergänzt. Ein explizit angegebenes prefix:name im Schema-Namen oder Alias hat weiterhin Vorrang. | 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 featureCollectionElementNamereferenzierte 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 |
gmlIdOnGeometries | false | Diese Option fügt ein gml:id-Attribut zu allen GML-Geometrieelementen hinzu. Das id-Attribut war in GML 3.2 bis 2016 verpflichtend, ältere Kopien des GML-Schemas können das Attribut noch benötigen. Diese Option ermöglicht es, Instanzen zu erstellen, die für solche Schemas gültig sind. | boolean | v4.0 |
srsDimension | false | Diese Option fügt ein srsDimension-Attribut bei allen posList und pos-Elementen hinzu. Einige GML-Reader erwarten diese Information, insbesondere für 3D-Koordinaten. | boolean | v4.6 |
useSurfaceAndCurve | false | Wenn aktiviert, werden einfache Polygone statt als {@code gml:Polygon} als {@code gml:Surface} mit genau einem {@code gml:PolygonPatch} kodiert, und einfache Linienzüge statt als {@code gml:LineString} als {@code gml:Curve} mit genau einem {@code gml:LineStringSegment}. Alle Ringe werden als {@code gml:Ring} mit genau einem {@code gml:LineStringSegment} als Curve-Member statt als {@code gml:LinearRing} kodiert. Diese Option ist nützlich, wenn das Ziel-GML-Anwendungsschema diese Geometrietypen erfordert. | boolean | v4.8 |
defaultProfiles | {"rel": "rel-as-link", "val": "val-as-code"} | Spezifiziert den Standardwert des Profile-Parameters für Features. Der Wert ist ein Objekt, bei dem der Schlüssel die ID eines Profilsatzes ist und der Wert das Standardprofil für den Profilsatz. Diese Vorgaben haben Vorrang vor den im Features-Baustein angegebenen Standardprofilen. Für GML sind die folgenden Standardprofile gesetzt: "rel-as-link" für Feature-Beziehungen und "val-as-code" für Eigenschaften mit codierten Werten. Ein Ändern dieser Profile führt wahrscheinlich zu einer GML-Kodierung, die nicht gegen das GML-Anwendungsschema valide ist, das typischerweise keine Variationen der Kodierung unterstützt. | object | v4.2 |
srsNameStyle | OGC | Steuert, wie das {@code srsName}-Attribut von Geometrien gerendert wird. {@code OGC} (Standard) erzeugt die OGC-URI-Form (z.B. {@code http://www.opengis.net/def/crs/EPSG/0/25832}). {@code TEMPLATE} sucht das CRS in {@code srsNameMappings} und verwendet den zugeordneten Wert; CRS ohne Mapping fallen auf die {@code OGC}-Form zurück. | string | v4.9 |
srsNameMappings | [] | Mapping-Liste für {@code srsNameStyle: TEMPLATE}. Jeder Eintrag bindet ein CRS an einen festen {@code srsName}-Wert. Nützlich für Anwendungsschemata, die Nicht-OGC-URIs verlangen (z.B. AdV: {@code urn:adv:crs:ETRS89_UTM32}). | array | v4.9 |
uomStyle | RAW | Steuert, wie das {@code uom}-Attribut bei Measure-Eigenschaften gerendert wird. {@code RAW} (Standard) schreibt den Einheitenwert aus dem Provider-Schema unverändert. {@code TEMPLATE} sucht die Einheit in {@code uomMappings} und verwendet den zugeordneten Wert; Einheiten ohne Mapping fallen auf den Rohwert zurück. | string | v4.9 |
uomMappings | [] | Mapping-Liste für {@code uomStyle: TEMPLATE}. Jeder Eintrag bindet einen Einheiten-String an einen festen {@code uom}-Wert. Nützlich für Anwendungsschemata, die Nicht-UCUM-Bezeichner verlangen (z.B. AdV: {@code urn:adv:uom:m}). | array | v4.9 |
featureRefTemplate | null | URI/URN-Template für {@code xlink:href} von Feature-Referenz-Eigenschaften (d.h. Properties mit {@code refType}). Der Platzhalter {@code } wird durch die referenzierte Feature-ID (das Segment nach {@code /items/} in der Original-URL) ersetzt. Standardwert {@code null} belässt die Original-URL. Nützlich für Anwendungsschemata, die URN-Referenzen verlangen (z.B. AdV: {@code urn:adv:oid:}). Wirkt nicht auf Links in generischen {@code Link}-Objekten. | string | v4.9 |
gmlIdentifier | null | Wenn gesetzt, wird ein {@code gml:identifier}-Kindelement als erstes Kind jedes Features mit dem konfigurierten {@code codeSpace}-Attribut ausgegeben. Der Textinhalt des Elements ist die rohe Feature-ID aus dem Provider, optional eingesetzt in {@code valueTemplate} (wobei {@code } durch die rohe ID ersetzt wird). Nützlich für Anwendungsschemata, die {@code gml:identifier} verlangen (z.B. AdV NAS). | object | v4.9 |
appendTemporalSuffixToGmlId | false | Wenn {@code true} und der {@code datetime}-Parameter der Anfrage ein Intervall ist (enthält {@code /}), wird die {@code gml:id} jedes Features um den Wert der primären zeitlichen Eigenschaft formatiert als {@code yyyyMMddTHHmmssX} ergänzt. Quelle ist die Eigenschaft mit Rolle {@code PRIMARY_INSTANT}, ersatzweise {@code PRIMARY_INTERVAL_START}. Nützlich für Anwendungsschemata, die je Feature-Version eine eindeutige {@code gml:id} verlangen (z.B. AdV NAS Zeitreihen-Anfragen). Wirkt nicht auf {@code gml:identifier}. | boolean | v4.9 |
codelistUriTemplate | null | URI-Template zum Aufbau des {@code xlink:href} für Eigenschaften mit Codelist-Werten. Das Template darf die Platzhalter {@code } (ersetzt durch die Codelist-ID aus {@code codelistProperties}) und {@code } (ersetzt durch den rohen Eigenschaftswert) enthalten. Wenn zusammen mit {@code codelistProperties} gesetzt, wird die betroffene Eigenschaft als leeres Element {@code } kodiert, wobei {@code xlink:title} das Codelist-Label aus der aufgelösten Codelist ist (Fallback ist der rohe Wert, wenn kein Label gefunden wird). | string | v4.9 |
codelistProperties | {} | Bildet Eigenschaftspfade (entsprechend {@code FeatureSchema#getFullPathAsString()}) auf eine Codelist-ID ab. Hier aufgeführte Eigenschaften werden als xlink-Elemente mittels {@code codelistUriTemplate} kodiert anstatt den rohen Wert als Elementtext zu schreiben. Auf Building-Block-Ebene (API) definierte Einträge gelten für alle Collections; Einträge auf Collection-Ebene werden ergänzt. | object | v4.9 |
valueWrap | {} | Bildet Eigenschaftspfade (entsprechend {@code FeatureSchema#getFullPathAsString()} zum Kodierungszeitpunkt, d.h. nach eventuellen {@code rename}-Transformationen) auf eine Liste von XML-Elementnamen ab (von außen nach innen), die den skalaren Wert einschließen. Bei einem Treffer wird der Inhalt des Eigenschaftselements als {@code } statt als reiner Wert kodiert. Elementnamen können Namespace-Präfixe tragen (z.B. {@code gco:DateTime}), sofern das Präfix in {@code applicationNamespaces} deklariert ist. | object | v4.9 |
Dieses Modul benötigt bzw. unterstützt keine zusätzlichen Konfigurationsdateien.
Beispiele
Das folgende Beispiel zeigt eine grundlegende Deklaration von Namespaces und deren Schema-Speicherorten, die Konfiguration eines gml:id-Präfixes zur Gewährleistung der XML-ID-Kompatibilität sowie spezifische Konfigurationsoptionen für eine Objektart.
- 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'
Das folgende Beispiel kombiniert alle Optionen, die üblicherweise benötigt werden, um Daten gemäß dem AdV-GeoInfoDok-/AFIS-ALKIS-ATKIS-NAS-Anwendungsschema bereitzustellen. Jede Option ist einzeln aktivierbar und auch für andere GML-Anwendungsschemata nutzbar.
Die Option useAlias: true bewirkt, dass jede Eigenschaft des Feature-Schemas, für die ein alias angegeben ist (siehe das alias-Feld im Provider-Schema), unter ihrem Alias anstelle des Attributcodes aus drei Zeichen kodiert wird, sofern der Code im Provider-Schema verwendet wird. Dies ist die bevorzugte Methode, um NAS-Daten mit den mnemotechnischen Eigenschaftsnamen (z.B. anlass statt anl) bereitzustellen, ohne eine umfangreiche rename-Transformationsliste pro Eigenschaft pflegen zu müssen.
- buildingBlock: GML
enabled: true
useAlias: true
useSurfaceAndCurve: true
applicationNamespaces:
aaa: 'http://www.adv-online.de/namespaces/adv/gid/7.1'
defaultNamespace: aaa
schemaLocations:
aaa: 'https://repository.gdi-de.org/schemas/adv/nas/7.1/aaa.xsd'
featureRefTemplate: 'urn:adv:oid:{{value}}'
gmlIdentifier:
codeSpace: 'http://www.adv-online.de/'
valueTemplate: 'urn:adv:oid:{{value}}'
appendTemporalSuffixToGmlId: true
srsNameStyle: TEMPLATE
srsNameMappings:
- crs:
code: 25832
forceAxisOrder: NONE
value: 'urn:adv:crs:ETRS89_UTM32'
- crs:
code: 25833
forceAxisOrder: NONE
value: 'urn:adv:crs:ETRS89_UTM33'
- crs:
code: 4326
forceAxisOrder: NONE
value: 'urn:adv:crs:WGS84_Lat-Lon'
- crs:
code: 4326
forceAxisOrder: LON_LAT
value: 'urn:adv:crs:WGS84_Lon-Lat'
uomStyle: TEMPLATE
uomMappings:
- uom: 'm'
value: 'urn:adv:uom:m'
- uom: 'grad'
value: 'urn:adv:uom:grad'
codelistUriTemplate: 'https://registry.gdi-de.org/codelist/de.adv-online.gid/{{codelistId}}/{{value}}'
codelistProperties:
anlass: AX_Anlassart
objectTypeNamespaces:
LI_Lineage: gmd
LI_ProcessStep: gmd
LI_Source: gmd
valueWrap:
lebenszeitintervall:
- AA_Lebenszeitintervall
- beginnt
qualitaetsangaben.herkunft.processStep.description:
- AX_LI_ProcessStep_Punktort_Description
qualitaetsangaben.herkunft.processStep.dateTime:
- gco:DateTime
qualitaetsangaben.herkunft.processStep.source.description:
- AX_Datenerhebung_Punktort