1 16 package org.outerj.daisy.books.store.impl; 17 18 import org.outerj.daisy.books.store.*; 19 import org.outerj.daisy.xmlutil.LocalSAXParserFactory; 20 import org.outerx.daisy.x10Bookstoremeta.PublicationsInfoDocument; 21 import org.apache.xmlbeans.XmlOptions; 22 23 import java.io.InputStream ; 24 25 28 public class PublicationsInfoBuilder { 29 public static PublicationsInfo build(InputStream is) throws Exception { 30 try { 31 XmlOptions xmlOptions = new XmlOptions().setLoadUseXMLReader(LocalSAXParserFactory.newXmlReader()); 32 return build(PublicationsInfoDocument.Factory.parse(is, xmlOptions)); 33 } finally { 34 is.close(); 35 } 36 } 37 38 public static PublicationsInfo build(PublicationsInfoDocument publicationsInfoDocument) throws Exception { 39 String errors = XmlUtil.validate(publicationsInfoDocument); 40 if (errors != null) 41 throw new Exception ("The publications info XML is not valid according to its XML Schema, encountered errors: " + errors); 42 43 PublicationsInfoDocument.PublicationsInfo.PublicationInfo[] infosXml = publicationsInfoDocument.getPublicationsInfo().getPublicationInfoArray(); 44 PublicationInfo[] infos = new PublicationInfo[infosXml.length]; 45 for (int i = 0; i < infos.length; i++) { 46 infos[i] = new PublicationInfo(infosXml[i].getName(), infosXml[i].getLabel(), infosXml[i].getStartResource(), 47 infosXml[i].getPackage(), infosXml[i].getPublishedBy(), infosXml[i].getPublishedOn().getTime()); 48 } 49 50 return new PublicationsInfo(infos); 51 } 52 } 53 | Popular Tags |