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