1

我正在尝试使用 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 ,它似乎都没有区别。有什么我从根本上误解的东西吗?

在此处输入图像描述.

在此处输入图像描述

来自 Botts-Geo 的 SOS GetCapabilities xml

Sensiasoft 的 SOS GetCapabilities xml

4

1 回答 1

1

问题出在SWES_2_0映射中。该类型的abstractOffering属性成为“元素”属性:SWES_2_0.AbstractContentsType.Offering

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

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

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

于 2016-06-12T17:31:53.957 回答