@JacksonXmlRootElement(localName = "DATA_RECORD")
public class TestBean{
@JacksonXmlProperty(localName="ERROR_MESSAGE_CODE")
private String error_message_code;
@JacksonXmlProperty(localName="ERROR_MESSAGE")
private String error_message;
//...getter/setter
}
XMLサンプル
String xml = "<?xml version=\"1.0\" encoding=\"Windows-31J\" standalone=\"no\"?>"
+ "<Message xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" "
//+">"
+ "xsi:noNamespaceSchemaLocation=\"TEST.xsd\">" // if comment out this,it will work.
+ "<DATA_RECORD>"
+ "<ERROR_MESSAGE>some message</ERROR_MESSAGE>"
+ "<ERROR_MESSAGE_CODE>CODE111</ERROR_MESSAGE_CODE>"
+ "</DATA_RECORD>"
+ "</Message>";
デシリアライズ
XmlMapper xmlMapper = new XmlMapper();
//xmlMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
xmlMapper.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true);
TestBean test = xmlMapper.readValue(xml, TestBean.class);
log.debug(test.toString());
を使用して解析できませんそれJUnitのと、私のような例外を取得から:ルート名 'のnoNamespaceSchemaLocation' は期待 ( 'DATA_RECORD')を一致しません
....
私はString xml
からxsi:noNamespaceSchemaLocation="TEST.xsd"
を削除した場合、それは動作します良い。
これについて考えてみませんか?手伝ってくれてありがとう。
おかげでルート要素として、ないを取るの一部のように!!だから私は、XMLを解析することはできません動作しますか? –
fanshaoer