试图找出如何使用具有多个属性(?)以及名称空间或本地的jackson序列化xml有效负载。
我需要有效负载看起来像这样:
<wfs:GetFeature xmlns:wfs="http://www.opengis.net/wfs"
xmlns:ogc="http://www.opengis.net/ogc" xmlns:fade="http://www.bit-sys.com/fade" service="WFS" version="1.1.0" resultType="results" maxFeatures="150001" outputFormat="application/json">
<wfs:Query srsName="EPSG:4326" typeName="ExampleTypeName">
<Filter xmlns="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml">
...
我正在创建一个pojo,用于将此有效负载所需的数据映射到正确的位置,但却无法区分namespace
与localName
部分。到目前为止,我所拥有的pojo并没有真正产生预期的结果(即使是第一个<GetFeature />
部分。
public class MyXmlObject {
@JacksonXmlRootElement(localName = "wfs", namespace = "wfs")
class GetFeature {
@JacksonXmlProperty(isAttribute = true)
private String wfs = "http://www.opengis.net/wfs";
@JacksonXmlProperty(isAttribute = true)
private String ocg = "http://www.opengis.net/ogc";
@JacksonXmlProperty(isAttribute = true)
private String fade = "http://www.bit-sys.com/fade";
@JacksonXmlProperty(isAttribute = true)
private String service;
@JacksonXmlRootElement(localName = "wfs")
public class Query {
@JacksonXmlProperty(isAttribute = true)
private String srsName = "exampleSrsName";
@JacksonXmlProperty(isAttribute = true)
private String typeName = "exampleTypeName";
}
}
}
现在只运行一个简单的测试来查看我的xml有效负载在我工作时的外观如何产生<MyXmlObject />
,其中没有任何内容,不太确定我做错了什么。
@Test
public void whenJavaSerializedToXmlStr_thenCorrect()
throws JsonProcessingException {
XmlMapper xmlMapper = new XmlMapper();
xmlMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
String xml = xmlMapper.writeValueAsString(new MistXmlObject());
System.out.print(xml);
}