私の以前の投稿への参照。ファイルから XML を読み取る次のコードがあります。
logger.log(Level.INFO, "testSchemaChange");
JAXBContext jaxbContext = JAXBContext.newInstance("com.store.web.ws.v1.model");
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
JAXBElement<BookType> jeBookType = (JAXBElement<BookType>) unmarshaller.unmarshal(new File (BOOK_XML));
BookType bookType = jeBookType.getValue();
logger.log(Level.INFO, "Book recieved: " + bookType.getISBN());
Book
の代わりにルート要素としてXML をシードしていますBookList
。この例は、パッケージのフル パスをJAXBContext.newInstance
.
すぐに、私は変わりましたか
JAXBContext jaxbContext = JAXBContext.newInstance("com.store.web.ws.v1.model");
に
JAXBContext jaxbContext = JAXBContext.newInstance(BookType.class);
例外が発生し始めましたSEVERE: unexpected element (uri:"", local:"book"). Expected elements are (none)
誰かがこの動作の理由を説明できますか?
PS: 便宜上、テスト クラスと JAXB 生成クラスは同じパッケージに含まれています。com.store.web.ws.v1.model