Question

Support for writing GML 3.3 ?


Userlevel 1
Badge +22

Hi.

Do the later versions of FME support writing GML 3.3 ?

I've read in the "Implementation Standard Revision Notes" from OGC, that "GML 3.3 builds on GML 3.2.1" (which is supported by FME), and that "All extensions are made in seperate XML namespaces".

I hope that this means, that a GML 3.2.1 file is a GML 3.3 compliant file. And so I can use 3.2.1 in place of 3.3 whenever this is required.

Can anyone verify this ?

Cheers.


3 replies

Userlevel 2
Badge +6

Hi @Lars I Nielsen​, we do support GML 3.2.1 and by extension 3.3. This article goes over how you can write to GML using the OGC GML writer. I hope this helps get you started and please let me know if you have any other questions!

Userlevel 1
Badge +22

Hi @Lars I Nielsen​, we do support GML 3.2.1 and by extension 3.3. This article goes over how you can write to GML using the OGC GML writer. I hope this helps get you started and please let me know if you have any other questions!

Hi Sara.

Hmm, the article contains nothing related to my question as far as I can see.

But I assume that you're saying, that GML 3.2.1 is compatable with GML 3.3 ( by saying "and by extension") ?

 

Badge +6

Hi - let me clarify as there are several levels to consider in order to fully answer this. It is correct that GML 3.3 is essentially an extension of 3.2.1, so it more or less adds to 3.2.1 and doesn't fundamentally change much of the existing spec. Also, the way we support 3.3.1 is via application schema. So for the writer, you should not explicitly set the GML version setting on the writer, which only has settings for 3.1.1 and 3.2.1. Rather you need to set the GML version to 'application schema'. This will instead use the namespaces and schemas defined in the application schema, including 3.3 if present. The tutorial link Sara provided shows an example of how to use this application schema mode. For the reader you will need to specify the application schema in the reader parameters which will automatically include any 3.3 references.

 

Beyond this things get a little more complicated. In general, the GML specifications are massive. That is, the spec contains many types most software tools have never implemented. GML 3.3 is no different. Many complex new types were introduced that most tools do not yet support. We ran into GML 3.3 a few years ago when we started to see the 3.3 namespace in GML headers. Initially our reader did not recognize this as GML and so simply did not read it. So to date what we have done is added the GML 3.3 schemas to FME. This allows us to process types that already existed in 3.2 but are currently using the 3.3 namespace to be read or written. However, most new types that are only defined in 3.3 and not in 3.2 are not yet supported. We have added support for some 3.3 unique types like TIN. This was needed to support newer schemas such as InfraGML. Other GML profiles such as S-121 GML include 3.3 namespaces even though they use few if any new 3.3 types.

 

So my general recommendation is to use application schema mode and point to your own 3.3 application schemas. FME should read anything it recognizes and will ignore those types that are as yet undefined. If you come across a type that we dont support feel free to contact support and file an enhancement request. Please supply references to whatever standard you are using if it is not a custom app schema.

Reply