Closed mgoberfield closed 6 years ago
As mentioned above this appears to be a limitation of the AIXM AirspaceVolumePropertyType, which restricts the nilReason contents. The ready solution would be to create our own PropertyType for the rest of the AIXM types, including AirspaceVolumePropertyType.
These are the differences:
As mentioned by Aaron our current solution is to short-circuit the reference to the AIXM Property Type to one defined in common.xsd which includes gml:AssociationAttributeGroup that has the default gml:NilReason definitions.
Should we contact Eddy to consider adding
I remember Aaron had already brought this to the attention of the AIXM folks some time ago. This is a matter of design philosophy, but we are not too sure why they choose to deviate from the default GML nilReason serialization. In fact, from the ISO 19136 standard:
gml:NilReasonEnumeration has never been used alone but always in union with anyURI.
I submitted an issue to the AIXM CCB to add support for PropertyTypes for more AIXM types (in IWXXM 2 we only used one of their PropertyTypes because that is all that was available) but they are not aware of this particular issue yet with nilReason. I should augment the existing AIXM issue with this new information.
I think the va-advisory-A2-1.xml example should be corrected. As Mark mentioned there is rule in TAC-to-XML-Guidance.txt
'NO VA EXP' When no volcanic ash is expected it shall be indicated with a "ashCloudExtent" with a nilReason of "http://codes.wmo.int/common/nil/nothingOfOperationalSignificance" but the last forecast +18 HR is translated as
<iwxxm:analysis> <iwxxm:VolcanicAshConditions gml:id="uuid.e453c86f-6912-47f0-9649-19d656b1bd1f"> <iwxxm:phenomenonTime> <gml:TimeInstant gml:id="uuid.9b7632de-7591-4c3a-a876-99304e3d9d51"> <gml:timePosition>2008-09-23T19:00:00Z</gml:timePosition> </gml:TimeInstant> </iwxxm:phenomenonTime> <iwxxm:ashCloud nilReason="http://codes.wmo.int/common/nil/nothingOfOperationalSignificance"/> </iwxxm:VolcanicAshConditions> </iwxxm:analysis>.
I believe it should be
<iwxxm:analysis> <iwxxm:VolcanicAshConditions gml:id="uuid.e453c86f-6912-47f0-9649-19d656b1bd1f"> <iwxxm:phenomenonTime> <gml:TimeInstant gml:id="uuid.9b7632de-7591-4c3a-a876-99304e3d9d51"> <gml:timePosition>2008-09-23T19:00:00Z</gml:timePosition> </gml:TimeInstant> </iwxxm:phenomenonTime> <iwxxm:ashCloud> <iwxxm:VolcanicAshCloud gml:id="uuid.bcc01180-95c0-4ac1-8f13-53bbbfa430b7"> <iwxxm:ashCloudExtent nilReason="http://codes.wmo.int/common/nil/nothingOfOperationalSignificance"> </iwxxm:VolcanicAshCloud> </iwxxm:ashCloud> </iwxxm:VolcanicAshConditions> </iwxxm:analysis>
Thanks Jan for pointing out. In IWXXM 3.0.0RC2, iwxxm:ashCloud should be absent under VA NOT EXP condition:
<!-- 23/1900Z NO VA EXP -->
<iwxxm:forecast>
<iwxxm:VolcanicAshForecastConditions gml:id="uuid.e453c86f-6912-47f0-9649-19d656b1bd1f" status="NO_VOLCANIC_ASH_EXPECTED">
<iwxxm:phenomenonTime>
<gml:TimeInstant gml:id="uuid.9b7632de-7591-4c3a-a876-99304e3d9d51">
<gml:timePosition>2008-09-23T19:00:00Z</gml:timePosition>
</gml:TimeInstant>
</iwxxm:phenomenonTime>
</iwxxm:VolcanicAshForecastConditions>
</iwxxm:forecast>
I have also marked your finding in the 'Know Issue' section of the Wiki of this repository.
From TAC-to-XML Guidance document:
'NO VA EXP' When no volcanic ash is expected it shall be indicated with a nil "ashCloudExtent" and a nil reason of "http://codes.wmo.int/common/nil/nothingOfOperationalSignificance"
results in a validation error.
Aaron writes: