我有一個很大的XML文件,我想對照XSD進行驗證。但是從大的XML文件,我只想要一個元素如何通過驗證在JAXB中部分解析xml?
這是我的示例XML
<Something>
<Element1>element</Element1>
<IDontWantThis>element</IDontWantThis>
<Something>
這是我的POJO,所以我不包括IDontWantThis
@XmlRootElement(name = "Something")
@XmlAccessorType(XmlAccessType.FIELD)
public class Something {
@XmlElement(name = "Element1")
private String element1;
}
這是我怎麼解析我的XML
StreamSource source = new StreamSource(filePath);
SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = sf.newSchema(new File(XSD));
Unmarshaller u = JAXBContext.newInstance(Something.class).createUnmarshaller();
u.setSchema(schema);
u.setEventHandler(new MyValidationEventHandler());
Products products = u.unmarshal(source, Something.class).getValue();
但是當我運行我的應用程序得到這個錯誤
unexpected element (uri:"urn:blah", local:"IDontWantThis"). Expected elements are <{urn:blah}Element1>,<{urn:blah}Element1>
我該如何解析partial元素,因爲我的xml非常大,並且包含很多我不需要使用的元素。
更改您的架構以適應[anyelement](http://www.w3schools.com/schema/schema_complex_any.asp) – Yaneeve