Johannes,
Does resolving of xlink:href by the GML driver (when
GML_SKIP_RESOLVE_ELEMS is used, i.e., set to NONE or HUGE) simply mean
that the referenced resource is copied into the XML element that
contains the xlink:href XML attribute? Tests seem to support this, but
I’d really like to double-check on this list.
Yes, that's my recollection of how it works.
My somewhat naive assumption was that if the reference pointed to
another GML object, then that would be recognized somehow (though the
exact “how” is probably the issue; document-internal reference via
@gml:id could work, but not an external reference), and duplication of
objects avoided. The resolving also seems to remove the xlink:href
attributes for resolved references, and the gml:id attributes on the
elements that are copied into the main GML file. That, in fact,
creates duplicate objects in my test case.
Complex GML is a pain to deal with and the "classic" GML driver is close
its maximum potential. I believe the GML_SKIP_RESOLVE_ELEMS feature was
mostly used to deal with geometry elements (like part of a boundary
being used in different geometries, in particular use of GML topology
elements), for which the current copy&paste strategy is fine to
reconstruct a simple feature geometry. When xlink:href points at
objects/features, then the ideal strategy is indeed much harder to define.
For anything advanced, using GMLAS
(https://gdal.org/drivers/vector/gmlas.html#vector-gmlas) is suggested.
I won't say recommended to avoid people complaining that it goes to the
other extreme of returning an output that is (supposed to be) fully
lossless regarding the original content but hard to comprehend.
Even
--
http://www.spatialys.com
My software is free, but my time generally not.
_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/gdal-dev