Open dstenger opened 5 months ago
I understand the confusion. You probably understand what is going on here, but I will describe it from my point of view. The 17 conformance classes relate to the actual schemata and their structure. I call the set of 17 "structural modules". The Global (18th) class reflects constraints that can and should be tested. Implementation of some of the tests may require either further assumptions or examination of the contents of referenced elements. We arrived at many of the Global requirements by consideration of modelling and processing requirements - for example, the ability to interpret an instance of arbitrary size, where buffering everything in memory might not be possible. The structural modules define and constrain the structure of the representation. As the document states, there must always be conformance with Global. It would be possible to implement just Core, and that would require conformance with Global. Note that conforming to Global and Core is allowed. That would be the smallest/simplest implementation (but useless). Conforming with Building, Bridge, or Tunnel will also require conformance with Construction and Core. Some Modules, like Versioning, are disjoint and often not implemented. Finding all of the dependencies is not trivial. Testing a claim of conformance with a subset of the 17 structural modules might be complicated by an implementation within one module avoids references to selected other modules. In other words, the schema indicates a dependence, but the actual instances never populate elements having those dependencies.
We are currently developing a test suite for this standard.
It is not clear to us if the
Global
conformance class is mandatory or not.The specification states this:
... 2.2. Conformance Classes
This standard identifies seventeen (17) conformance classes. One conformance class is defined for each GML schema. Each conformance class is defined by one requirements class. The tests in Annex A are organized by requirements class. So an implementation of the Core conformance class must pass all tests specified in Annex A for the Core requirements class.
Of these seventeen conformance classes, only the Core conformance class is mandatory. All other conformance classes are optional. In the case where a conformance class has a dependency on another conformance class, that conformance class should also be implemented. ...
This section names 17 conformance classes but the standard defines 18 (see Annex A). Although only
Core
is defined as mandatory, this section states that all depending conformance classes should also be implemented.The specification also says:
... 6.1. Global Requirements
This chapter defines general requirements which are valid for all Conformance Classes and cannot be derived from the GML schemas. ...
Doesn't this mean that the requirements of
Global
are also valid forCore
and thus, following the dependency, mandatory?