Many have asked me why GML offers application schemas. Would it not be simpler, they say, if GML just provided one single schema, and we used that for all of our geographic information? Isn't interoperability hindered by this open ended nature of GML application schemas? One even sees these kinds of remarks in OGC discussion papers (e.g. SOS).
One response to this is to consider interoperation between relational databases. They all understand SQL, and they all understand relational schemas. The relational schemas are different from one implementation to another – no one requires that all RDBMS support the same schema – in fact the idea is silly from the outset – after all the different DBMS instances are all supporting different applications – different domains of interest. It is of course, exactly the same for GML. GML application schemas apply to different domains of interest, and are different in just the same way that relational schemas are.
For some this is still not sufficient. They still seem to think that some sort of closed GML schema is sufficient. One can respond in two ways. Yes and No. Yes they are right in the sense that there are some things we ALL might agree upon (i.e. hold across multiple application domains) – for these GML has provided standard explicit encodings. These include MOST of the base things that people need to share like geometry, topology, observations, coverages, coordinate reference systems, units of measure, time and direction. These items are covered by FIXED schema components. No, in that GML does not want to invent yet another schema language ,and this is exactly what is required if we are to have a single GML schema that covers a broad range of application domains. For schema definition we have elected (at least for the near term) XML Schema. Readers may note that GML has used other schema languages in the past such as DTD and RDF – other schema languages may be used in the future – but it does not make sense to try and create yet another one within the boundaries of GML.