Axis order in coordinate systems and in GML is a complicated thing. The issue is all too complicated to be handled as a gis.stacexchange answer but I recommend to start by reading this https://wiki.osgeo.org/wiki/Axis_Order_Confusion and also the relevant parts of GDAL GML manual page https://www.gdal.org/drv_gml.html.
It is a bit difficult to find information about EPSG:3908 because it seems to be just deprecated in EPSG database version 9.5 with release notes "Significant revision to data for Canada and former Yugoslavia (Boznia and Herzegovina, Croatia, FYR Macedonia, Montenegro, Serbia, Slovenia)." Probably because of that I can't find a projected coordinate system with that code from the EPSG site http://epsg-registry.org/.
However, if we trust the info from http://www.opengis.net/def/crs/EPSG/0/3908 it feels certain that if you have a point at Lon = 19°25', and Lat = 43°34' and you want to express it as GML3 by giving the srsName reference as srsName="urn:ogc:def:crs:EPSG:3908" you must follow the official axis order which is northing-easting. Thus valid GML must look like
<gml:Point srsName="urn:ogc:def:crs:EPSG::3908"><gml:pos>4825580.27 6614600.56</gml:pos></gml:Point>
QGIS handles coordinater internally in easting-northing of longitude-latitude order and flips the coordinates. That's right and your original GML data is wrong.
If you remove the srsName definition then QGIS (or GDAL behind it) considers that axis order is the common GIS order easting-northing. Therefore it does not flip the coordinates and the result satisfies you. I think that it is a usable workaround but you most give the CRS code manually for QGIS.
The long urn format "urn:ogc:def:crs:EPSG:3908" was introdoced with GML3. Before that in GML2 a short format "EPSG:3908" was used and axis order was always easting-northing or longitude-latitude. For remaining some backwards compatibility GDAL continues to interpret the short CRS in a similar way also with GML3. So for GDAL this means the same point as before
<gml:Point srsName="EPSG:3908"><gml:pos>6614600.56 4825580.27</gml:pos></gml:Point>
You have a few options:
- Keep the urn-format for CRS and flip the coordinates in GML for making it valid.
- Keep the coordinate order but use short format "EPSG:3908" for srsName. QGIS should then open the data without flipping the coordinates (not tested).
- Convert data with ogr2ogr and fix the axis order with the options provided by the GML driver https://www.gdal.org/drv_gml.html and open the converted data into QGIS.
- The best option would be to configure Hale studio to produce valid GML but I do not know if it is possible.
Cartesian 2D CS. Axes: northing, easting (X,Y). Orientations: north, east. UoM: m.
What QGIS does for your data? Does it show coordinates "6614600.56 4825580.27" as easting-northing even they are really northing-easting? – user30184 Sep 18 '18 at 4:14Lat= Lon=
so there is no place for misunderstanding. – user30184 Sep 19 '18 at 13:45