package org.openflexo.foundation.ontology.xsd; import java.io.File; import java.io.IOException; import java.util.logging.Level; import org.xml.sax.ErrorHandler; import org.xml.sax.SAXException; import org.xml.sax.SAXParseException; import com.sun.xml.xsom.XSSchemaSet; import com.sun.xml.xsom.parser.XSOMParser; public class XSOMUtils { private static final java.util.logging.Logger logger = org.openflexo.logging.FlexoLogger.getLogger(XSOMUtils.class.getPackage() .getName()); public static XSSchemaSet read(File xsdFile) { if (logger.isLoggable(Level.INFO)) { logger.info("Loading a XML Schema from file " + xsdFile.getName()); } XSOMParser parser = new XSOMParser(); parser.setErrorHandler(new ErrorHandler() { @Override public void error(SAXParseException exception) throws SAXException { if (logger.isLoggable(Level.WARNING)) { logger.warning(exception.getMessage()); } } @Override public void fatalError(SAXParseException exception) throws SAXException { if (logger.isLoggable(Level.WARNING)) { logger.warning(exception.getMessage()); } } @Override public void warning(SAXParseException exception) throws SAXException { if (logger.isLoggable(Level.WARNING)) { logger.warning(exception.getMessage()); } } }); try { parser.parse(xsdFile); } catch (SAXException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } XSSchemaSet result = null; try { result = parser.getResult(); } catch (SAXException e) { e.printStackTrace(); } return result; } }