通过JSONIX解组SOS GetCapabilities只会产生抽象的提供数据

时间:2016-06-08 23:55:46

标签: jsonix

我正在尝试使用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;
}

在下面的屏幕截图中,很明显“内容”中的所有“产品”都默认为抽象类型(SWES_2_0.AbstractContentsType.Offering),并且没有关于传感器/观察产品的信息。这很奇怪,因为其他元素如'filtercapabilities'也包含所有信息和属性。无论是否将命名空间参数传递给unmarshallString,我都尝试了这一点,它似乎没有什么区别。有什么我从根本上误解了吗?

enter image description here

enter image description here

SOS GetCapabilities xml from Botts-Geo

SOS GetCapabilities xml from Sensiasoft

1 个答案:

答案 0 :(得分:1)

问题出在SWES_2_0映射中。 abstractOffering类型的SWES_2_0.AbstractContentsType.Offering属性为generated为“element”属性:

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

这应该是一个“元素引用”属性,允许swes:AbstractOffering元素通过替换组替换为其他元素。

现在应该在ogc-schemas主干中修复此问题,请参阅test