2017-05-29 60 views
0

給定一個XML及相關產生 XSD文件,我在解編與JAXB的XML問題。JAXB:缺少「XSI型」屬性在解組XML

考慮以下代碼:

JAXBContext jaxbContext = JAXBContext.newInstance(ObjectFactory.class); 
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); 
Envelope envelope = ((JAXBElement<Envelope>) jaxbUnmarshaller.unmarshal(file)).getValue(); 

XML文件是正確的解組,但我失去了對每一個信息 「的xsi:type」 屬性。

在生成的類中,沒有任何可以匹配該信息的「類型」字段。

回答

0

的解決方案是增加的代碼這兩條線在生成的類:

@XmlAttribute(name = "type", namespace = "http://www.w3.org/2001/XMLSchema-instance") 
protected java.lang.String type; 

還要添加getter/setter方法。

以這種方式,正確讀取「xsi:type」屬性。