2013-11-15

GML versions - why WCMP 1.3 specifies GML 3.2 only?

Question:
Why the WMO Core Metadata Profile (WCMP) v1.3 tells only GML 3.2 must be used?  Isn't it good to make it open-ended?   GML 3.3 is already published as OGC standard, and further development might be coming.

Answer:
We need clear guidance on validation using XSD (W3C XML Schema) from an official source.  That was (still is) only official version published by ISO.



Let me begin with the need for validation.  The ISO 19139 (metadata XSD) is a complex standard, and it is easy for metadata creators to create a bug to generate incorrect XML structure.  It was soon deemed necessary in the very early stage of WIS development that GISCs must ensure that all incoming metadata records be validated against XSD.

But the development of WIS went in parallel with ISO 19115/19136/19139.  That caused some (maybe great) trouble.

At the very beginning ISO 19115 was only UML and the WIS community developed its own version of XSD with some extensions.  The first comprehensive XSD for ISO 19139 was published by ISO TC211 around July 2006 (probably; judging from timestamp of http://www.isotc211.org/2005/).  WMO community migrated to that XSD  They did even throw their extension away with expectation of standardization for interoperability.  Some software, for example Geonetwork used that version of XSD.

Unfortunately the GML (ISO 19136) was in state of DIS (draft international standard) at that time.  Metadata people published the XSD of GML together with 19139 as a temporary measure for comvenience.  That XSD used the namespace "http://www.opengis.net/gml" and is now called GML 3.2.0 unofficially.

Later the XSD of GML was published after approval as ISO standard (now available at http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19136_Schemas/), but that was different.  The greatest change was the namespace "http://www.opengis.net/gml/3.2" and that is called GML 3.2.1 (this is official version).  That version was firstly made available in 2007 but got popular a couple of years later.

For XSD validation, the same XML elements with slightly different namespace URI is totally different.  Unfortunately it is impossible to write a set of XSD that accepts both GML 3.2.0 and 3.2.1.  That caused great trouble of incompatibility among WIS catalogues, but finally the implementation community agreed to use official version i.e. GML 3.2.1 (now the Requirement 6.3.1 of WCMP 1.3.).  The memory of trouble was so bitter for the community that they agreed that the change of XSD version or namespace must be agreed as an amendment of WCMP to be discussed on the seesion of CBS not through the fast track by communication (I've posted the amendment procedure before).

Now the latest version of GML (as OGC standard) is 3.3.  But luckily enough, that version still uses the 3.2 namespace.   They chose to extend GML 3.2.1 instead of throwing away past schema.  So there is little worry at least about adopting to GML 3.3 - actually no change is needed because ISO 19139 uses unchanged part.

The revision of ISO 19139 will not be like this.  We'll have to develop and agree on migration plan and authorize it through formal step of CBS session.

No comments :

Post a Comment