1 16 package org.outerj.daisy.books.store.impl; 17 18 import org.outerj.daisy.books.store.BookInstanceMetaData; 19 import org.outerj.daisy.xmlutil.LocalSAXParserFactory; 20 import org.outerx.daisy.x10Bookstoremeta.BookInstanceMetaDataDocument; 21 import org.apache.xmlbeans.XmlOptions; 22 23 import java.io.InputStream ; 24 25 28 public class BookInstanceMetaDataBuilder { 29 public static BookInstanceMetaData build(InputStream is) throws Exception { 30 try { 31 XmlOptions xmlOptions = new XmlOptions().setLoadUseXMLReader(LocalSAXParserFactory.newXmlReader()); 32 return build(BookInstanceMetaDataDocument.Factory.parse(is, xmlOptions)); 33 } finally { 34 is.close(); 35 } 36 } 37 38 public static BookInstanceMetaData build(BookInstanceMetaDataDocument document) throws Exception { 39 String errors = XmlUtil.validate(document); 40 if (errors != null) 41 throw new Exception ("The meta data XML is not valid according to its XML Schema, encountered errors: " + errors); 42 43 BookInstanceMetaDataDocument.BookInstanceMetaData metaDataXml = document.getBookInstanceMetaData(); 44 BookInstanceMetaData metaData = new BookInstanceMetaData(metaDataXml.getLabel(), metaDataXml.getCreatedOn().getTime(), metaDataXml.getCreatedBy()); 45 if (metaDataXml.isSetBookPath()) 46 metaData.setBookPath(metaDataXml.getBookPath()); 47 48 return metaData; 49 } 50 } 51 | Popular Tags |