通过 JSONIX 解组 SOS GetCapabilities 仅产生抽象产品数据

Unmarshalling SOS GetCapabilities via JSONIX yields only abstract offering data

我正在尝试使用 jsonix 解组来自 SOS_2_0 的 GetCapabilities 响应。下面是我编写的用于解组 xml 字符串的代码。它似乎工作正常,但并非所有元素都已正确映射。

function jsonixParseSensors(xmlStr) {
      var module = SOS_2_0_Module_Factory();
      var context = new Jsonix.Context([XLink_1_0, GML_3_2_1, OWS_1_1_0, SWE_2_0, SWES_2_0, WSN_T_1, WS_Addr_1_0_Core, OM_2_0, ISO19139_GMD_20070417, ISO19139_GCO_20070417, ISO19139_GSS_20070417, ISO19139_GTS_20070417, ISO19139_GSR_20070417, Filter_2_0, SOS_2_0]);
      var unmarshaller = context.createUnmarshaller();
      var data = unmarshaller.unmarshalString(xmlStr);
      return data;
}

在下面的屏幕截图中,显然 'contents' 中的所有 'offerings' 都默认为抽象类型 (SWES_2_0.AbstractContentsType.Offering),并且没有关于 sensor/observation 的信息在他们提供。这很奇怪,因为 'filtercapabilities' 等其他元素也包含所有信息和属性。无论是否将命名空间参数传递给 unmarshallString,我都试过了,它似乎没有什么不同。我有什么根本上的误解吗?

SOS GetCapabilities xml from Botts-Geo

SOS GetCapabilities xml from Sensiasoft

问题出在 SWES_2_0 映射中。 SWES_2_0.AbstractContentsType.Offering 类型的 abstractOffering 属性 是 generated as "element" 属性:

  {
    ln: 'AbstractContentsType.Offering',
    tn: null,
    ps: [{
        n: 'abstractOffering',
        rq: true,
        en: 'AbstractOffering',
        ti: '.AbstractOfferingType'
      }]
  }

这应该是 "element reference" 属性 以允许 swes:AbstractOffering 元素通过替换组被其他元素替换。

现在应该在 ogc-schemas trunk, see the test 中修复此问题。