List of usage examples for javax.xml.validation SchemaFactory newSchema
public abstract Schema newSchema(Source[] schemas) throws SAXException;
From source file:org.lsc.configuration.JaxbXmlConfigurationHelper.java
/** * Load an XML file to the object/* w w w. j a v a2 s . c o m*/ * * @param filename * filename to read from * @return the completed configuration object * @throws FileNotFoundException * thrown if the file can not be accessed (either because of a * misconfiguration or due to a rights issue) * @throws LscConfigurationException */ public Lsc getConfiguration(String filename) throws LscConfigurationException { LOGGER.debug("Loading XML configuration from: " + filename); try { Unmarshaller unmarshaller = jaxbc.createUnmarshaller(); SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); Schema lscSchema = null; try { int i = 0; Set<URL> urls = new HashSet<URL>(); urls.addAll(ClasspathHelper.forPackage("org.lsc")); if (System.getProperty("LSC.PLUGINS.PACKAGEPATH") != null) { String[] pathElements = System.getProperty("LSC.PLUGINS.PACKAGEPATH") .split(System.getProperty("path.separator")); for (String pathElement : pathElements) { urls.addAll(ClasspathHelper.forPackage(pathElement)); } } Reflections reflections = new Reflections(new ConfigurationBuilder().addUrls(urls) .setScanners(new ResourcesScanner(), new SubTypesScanner())); Set<String> xsdFiles = reflections.getResources(Pattern.compile(".*\\.xsd")); Source[] schemasSource = new Source[xsdFiles.size()]; List<String> xsdFilesList = new ArrayList<String>(xsdFiles); Collections.reverse(xsdFilesList); for (String schemaFile : xsdFilesList) { LOGGER.debug("Importing XML schema file: " + schemaFile); InputStream schemaStream = this.getClass().getClassLoader().getResourceAsStream(schemaFile); schemasSource[i++] = new StreamSource(schemaStream); } lscSchema = schemaFactory.newSchema(schemasSource); unmarshaller.setSchema(lscSchema); } catch (VerifyError e) { throw new LscConfigurationException(e.toString(), e); } catch (SAXException e) { throw new LscConfigurationException(e); } return (Lsc) unmarshaller.unmarshal(new File(filename)); } catch (JAXBException e) { throw new LscConfigurationException(e); } }
From source file:org.mifos.framework.components.mifosmenu.MenuParser.java
/** * Method to parse xml and return crude menu * * @return array of crude Menu objects// w w w . ja v a 2 s . c o m */ public static Menu[] parse() throws SystemException { try { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); SchemaFactory schfactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); schfactory.setErrorHandler(null); Schema schema = schfactory.newSchema( new StreamSource(MifosResourceUtil.getClassPathResourceAsStream(FilePaths.MENUSCHEMA))); factory.setNamespaceAware(false); factory.setValidating(false); factory.setSchema(schema); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse(MifosResourceUtil.getClassPathResourceAsStream(FilePaths.MENUPATH)); NodeList tabNodeList = document.getElementsByTagName(MenuConstants.TOPMENUTAB); Menu leftMenus[] = new Menu[tabNodeList.getLength()]; for (int i = 0; i < tabNodeList.getLength(); i++) { leftMenus[i] = new Menu(); leftMenus[i].setTopMenuTabName(((Element) tabNodeList.item(i)).getAttribute(MenuConstants.NAME)); leftMenus[i].setMenuGroups(createMenuGroup(tabNodeList.item(i))); String menuHeading = ((Element) tabNodeList.item(i)) .getElementsByTagName(MenuConstants.LEFTMENULABEL).item(0).getFirstChild().getTextContent() .trim(); leftMenus[i].setMenuHeading(menuHeading); } return leftMenus; } catch (SAXParseException spe) { throw new MenuParseException(spe); } catch (SAXException sxe) { throw new MenuParseException(sxe); } catch (ParserConfigurationException pce) { throw new MenuParseException(pce); } catch (IOException ioe) { throw new MenuParseException(ioe); } }
From source file:org.modeldriven.fuml.bind.ValidatingUnmarshaler.java
/** * Creates an unmarshaler using the given factories and URL. Loads only the * given (subclass) schema as this is the "root" schema and it should * include any other schema resources it needs, and so on. Note all included * schemas MUST be found at the same class level as the root schema. * //from ww w. java 2 s . c o m * @param url * the Schema URL * @param context * the SAXB context * @param handler * the SAX handler * @param resolver * the SAX resolver * @return the unmarshaler * @throws JAXBException * @throws SAXException */ private Unmarshaller createUnmarshaler(URL url, JAXBContext context, Handler handler, Resolver resolver) throws JAXBException, SAXException { Unmarshaller u = context.createUnmarshaller(); // adds a custom object factory // u.setProperty("com.sun.xml.bind.ObjectFactory",new // ObjectFactoryEx()); SchemaFactory schemaFactory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema"); Schema schemaGrammar = schemaFactory.newSchema(url); u.setSchema(schemaGrammar); Validator schemaValidator = schemaGrammar.newValidator(); schemaValidator.setResourceResolver(resolver); schemaValidator.setErrorHandler(handler); return u; }
From source file:org.modeldriven.fuml.bind.ValidatingUnmarshaler.java
private Unmarshaller createUnmarshaler(URL url, JAXBContext context) throws JAXBException, SAXException { Unmarshaller u = context.createUnmarshaller(); // adds a custom object factory // u.setProperty("com.sun.xml.bind.ObjectFactory",new // ObjectFactoryEx()); SchemaFactory schemaFactory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema"); Schema schemaGrammar = schemaFactory.newSchema(url); u.setSchema(schemaGrammar);/* w w w .java 2s . c o m*/ return u; }
From source file:org.modeldriven.fuml.bind.ValidatingUnmarshaler.java
/** * Creates an unmarshaler using the given factories and sream. Loads only * the given (subclass) schema as this is the "root" schema and it should * include any other schema resources it needs, and so on. Note all included * schemas MUST be found at the same class level as the root schema. * // www . j a v a2s . c om * @param stream * the Schema stream * @param context * the SAXB context * @param handler * the SAX handler * @param resolver * the SAX resolver * @return the unmarshaler * @throws JAXBException * @throws SAXException */ private Unmarshaller createUnmarshaler(InputStream stream, JAXBContext context, Handler handler, Resolver resolver) throws JAXBException, SAXException { Unmarshaller u = context.createUnmarshaller(); SchemaFactory schemaFactory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema"); Schema schemaGrammar = schemaFactory.newSchema(new StreamSource(stream)); u.setSchema(schemaGrammar); Validator schemaValidator = schemaGrammar.newValidator(); schemaValidator.setResourceResolver(resolver); schemaValidator.setErrorHandler(handler); return u; }
From source file:org.modeldriven.fuml.bind.ValidatingUnmarshaler.java
private Unmarshaller createUnmarshaler(InputStream stream, JAXBContext context) throws JAXBException, SAXException { Unmarshaller u = context.createUnmarshaller(); SchemaFactory schemaFactory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema"); Schema schemaGrammar = schemaFactory.newSchema(new StreamSource(stream)); u.setSchema(schemaGrammar);/*from ww w. j a v a2 s.co m*/ return u; }
From source file:org.mule.config.spring.AbstractSchemaValidationTestCase.java
protected void doTest(String config) throws SAXException, IOException { try {/*from w ww. ja v a 2 s . c o m*/ SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); schemaFactory.setFeature("http://apache.org/xml/features/validation/schema-full-checking", true); Schema schema = schemaFactory.newSchema(getSchemasAsSources()); schema.newValidator().validate(load(config)); } catch (SAXParseException ex) { System.err.println(MessageFormat.format("SAX parsing exception occurs at line {0}, column {1}", ex.getLineNumber(), ex.getColumnNumber())); throw ex; } }
From source file:org.mule.module.xml.filters.SchemaValidationFilter.java
public void initialise() throws InitialisationException { super.initialise(); if (getSchemaObject() == null) { if (schemaLocations == null) { throw new InitialisationException(CoreMessages.objectIsNull("schemaLocations"), this); }//ww w . j a v a 2 s. c o m String[] split = StringUtils.splitAndTrim(schemaLocations, ","); Source[] schemas = new Source[split.length]; for (int i = 0; i < split.length; i++) { String loc = split[i]; InputStream schemaStream; try { schemaStream = loadSchemaStream(loc); } catch (IOException e) { throw new InitialisationException(e, this); } if (schemaStream == null) { throw new InitialisationException(CoreMessages.failedToLoad(loc), this); } schemas[i] = new StreamSource(schemaStream); } SchemaFactory schemaFactory = SchemaFactory.newInstance(getSchemaLanguage()); if (logger.isInfoEnabled()) { logger.info("Schema factory implementation: " + schemaFactory); } if (this.errorHandler != null) { schemaFactory.setErrorHandler(this.errorHandler); } if (this.resourceResolver != null) { schemaFactory.setResourceResolver(this.resourceResolver); } Schema schema; try { schema = schemaFactory.newSchema(schemas); } catch (SAXException e) { throw new InitialisationException(e, this); } setSchemaObject(schema); } if (getSchemaObject() == null) { throw new InitialisationException(CoreMessages.objectIsNull("schemaObject"), this); } }
From source file:org.multicore_association.measure.mem.generate.MemCodeGen.java
/** * Get the data which need to make CSource from SHIM file. * @return Flag for success judgements/*from www . j a va2 s . c om*/ */ private boolean getDataFromShim() { boolean ch = true; try { JAXBContext context = JAXBContext.newInstance(PACKAGENAME); Unmarshaller unmarshaller = context.createUnmarshaller(); /* validation check setup */ if (!shimSchemaPath.equals("")) { SchemaFactory sf = SchemaFactory.newInstance(javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI); Schema schema = sf.newSchema(new File(shimSchemaPath)); unmarshaller.setSchema(schema); unmarshaller.setEventHandler(new ValidationEventHandler() { @Override public boolean handleEvent(ValidationEvent event) { if ((event.getSeverity() == ValidationEvent.FATAL_ERROR) || (event.getSeverity() == ValidationEvent.ERROR)) { ValidationEventLocator loc = event.getLocator(); parseErrList.add(" Line[" + loc.getLineNumber() + "] : " + event.getMessage()); } return true; } }); } sysConf = unmarshaller.unmarshal(new StreamSource(shimf), SystemConfiguration.class).getValue(); if (parseErrList.size() > 0) { System.err.println("Error: input SHIM file validation error"); System.err.println(" Validation error location:"); for (int i = 0; i < parseErrList.size(); i++) { System.err.println(parseErrList.get(i)); } return false; } // JAXBElement<SystemConfiguration> root = unmarshaller.unmarshal(new StreamSource(shimf), SystemConfiguration.class); // sysConf = root.getValue(); } catch (Exception e) { System.err.println("Error: failed to parse the SHIM file, please check the contents of the file"); return false; } ch = makeCPUListFromShim(); if (!ch) { return ch; } ch = makeSlaveListFromShim(); if (!ch) { return ch; } ch = makeAddressSpaceListFromShim(); if (!ch) { return ch; } ch = makeAccessPatternListFromShim(); if (!ch) { return ch; } return ch; }
From source file:org.multicore_association.measure.mem.writeback.SetResultToShim.java
/** * Set the value to read the existing SHIM file. * @return Flag for success judgements/*from ww w .j av a 2 s . c o m*/ * @throws ShimFileFormatException * @throws ShimFileGenerateException */ private static boolean appendToExistingShim() { /* * append to existing llvm-shim */ SystemConfiguration sysConf = null; try { JAXBContext context = JAXBContext.newInstance(SystemConfiguration.class); Unmarshaller unmarshaller = context.createUnmarshaller(); /* validation check setup */ if (!shimSchemaPath.equals("")) { SchemaFactory sf = SchemaFactory.newInstance(javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI); Schema schema = sf.newSchema(new File(shimSchemaPath)); unmarshaller.setSchema(schema); unmarshaller.setEventHandler(new ValidationEventHandler() { @Override public boolean handleEvent(ValidationEvent event) { if ((event.getSeverity() == ValidationEvent.FATAL_ERROR) || (event.getSeverity() == ValidationEvent.ERROR)) { ValidationEventLocator loc = event.getLocator(); parseErrList.add(" Line[" + loc.getLineNumber() + "] : " + event.getMessage()); } return true; } }); } sysConf = unmarshaller.unmarshal(new StreamSource(shimf), SystemConfiguration.class).getValue(); if (parseErrList.size() > 0) { System.err.println("Error: input SHIM file validation error"); System.err.println(" Validation error location:"); for (int i = 0; i < parseErrList.size(); i++) { System.err.println(parseErrList.get(i)); } return false; } } catch (Exception e) { System.err.println("Error: failed to parse the SHIM file, please check the contents of the file"); e.printStackTrace(); return false; } AddressSpaceSet addrSpaceSet = sysConf.getAddressSpaceSet(); if (addrSpaceSet == null) { System.err.println("Error: failed to parse the SHIM file, please check the contents of the file"); return false; } List<AddressSpace> addrSpaceList = addrSpaceSet.getAddressSpace(); if (addrSpaceList == null) { System.err.println("Error: failed to parse the SHIM file, please check the contents of the file"); return false; } masterComponentMap = new HashMap<String, MasterComponent>(); slaveComponentMap = new HashMap<String, SlaveComponent>(); accessTypeMap = new HashMap<String, AccessType>(); List<String> route = new ArrayList<String>(); ComponentSet cs = sysConf.getComponentSet(); route.add(cs.getName()); makeRefMapFromComponentSet(cs, route); for (int i = 0; i < measureList.size(); i++) { MeasurementsCSVData data = measureList.get(i); route.clear(); /* * search AddressSpaceName */ AddressSpace addrSp = null; for (Iterator<AddressSpace> j = addrSpaceList.iterator(); j.hasNext();) { AddressSpace as = j.next(); if (as.getName() != null && as.getName().equals(data.getAddressSpaceName())) { addrSp = as; break; } } if (addrSp == null) { System.err.println("Error: Unknown 'Address Space' name (\"" + data.getAddressSpaceName() + "\")."); return false; } route.add(addrSp.getName()); /* * search SubSpaceName */ SubSpace subSp = null; List<SubSpace> ssList = addrSp.getSubSpace(); for (Iterator<SubSpace> j = ssList.iterator(); j.hasNext();) { SubSpace ss = j.next(); route.add(ss.getName()); String path = createPathName(route); route.remove(ss.getName()); if (path != null && path.equals(data.getSubSpaceName())) { subSp = ss; break; } } if (subSp == null) { System.err.println("Error: Unknown 'Sub Space' name (\"" + data.getSubSpaceName() + "\")."); return false; } /* * search SlaveComponentRef in MasterSlaveBinding */ MasterSlaveBindingSet msBindSet = null; msBindSet = subSp.getMasterSlaveBindingSet(); if (msBindSet == null) { continue; } MasterSlaveBinding msBind = null; List<MasterSlaveBinding> msBindList = msBindSet.getMasterSlaveBinding(); SlaveComponent scComp = slaveComponentMap.get(data.getSlaveComponentName()); if (scComp == null) { System.err.println( "Error: Unknown 'Slave Comonent' name (\"" + data.getSlaveComponentName() + "\")."); return false; } for (Iterator<MasterSlaveBinding> j = msBindList.iterator(); j.hasNext();) { MasterSlaveBinding msb = j.next(); SlaveComponent sca = (SlaveComponent) msb.getSlaveComponentRef(); if (sca != null && sca.getId().equals(scComp.getId())) { msBind = msb; break; } } if (msBind == null) { continue; } /* * search MasterComponentRef in Accessor */ Accessor accessor = null; List<Accessor> acList = msBind.getAccessor(); MasterComponent mcComp = masterComponentMap.get(data.getMasterComponentName()); if (mcComp == null) { System.err.println( "Error: Unknown 'Master Comonent' name (\"" + data.getMasterComponentName() + "\")."); return false; } for (Iterator<Accessor> j = acList.iterator(); j.hasNext();) { Accessor ac = j.next(); MasterComponent mc = (MasterComponent) ac.getMasterComponentRef(); if (mc != null && mc.getId().equals(mcComp.getId())) { accessor = ac; break; } } if (accessor == null) { continue; } /* * search PerformanceSet */ PerformanceSet perfrmSet = null; if (accessor.getPerformanceSet().size() != 0) { perfrmSet = accessor.getPerformanceSet().get(0); } if (perfrmSet == null) { continue; } /* * search Performance */ List<Performance> pfrmList = perfrmSet.getPerformance(); AccessType atComp = accessTypeMap.get(data.getAccessTypeName()); if (atComp == null) { System.err.println("Error: Unknown 'Access Type' name (\"" + data.getAccessTypeName() + "\")."); return false; } for (Iterator<Performance> j = pfrmList.iterator(); j.hasNext();) { Performance pfm = j.next(); AccessType at = (AccessType) pfm.getAccessTypeRef(); if (at != null && at.getId().equals(atComp.getId())) { Latency latency = new Latency(); Pitch pitch = new Pitch(); latency.setBest(data.getBestLatency()); latency.setWorst(data.getWorstLatency()); latency.setTypical(data.getTypicalLatency()); pitch.setBest(data.getBestPitch()); pitch.setWorst(data.getWorstPitch()); pitch.setTypical(data.getTypicalPitch()); pfm.setLatency(latency); pfm.setPitch(pitch); break; } } } try { JAXBContext context = JAXBContext.newInstance(SystemConfiguration.class.getPackage().getName()); Marshaller marshaller = context.createMarshaller(); /* validation check setup */ if (!shimSchemaPath.equals("")) { SchemaFactory sf = SchemaFactory.newInstance(javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI); Schema schema = sf.newSchema(new File(shimSchemaPath)); marshaller.setSchema(schema); } QName qname = new QName("", "SystemConfiguration"); JAXBElement<SystemConfiguration> elem = new JAXBElement<SystemConfiguration>(qname, SystemConfiguration.class, sysConf); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); // marshaller.marshal(elem, new PrintStream(shimf)); marshaller.marshal(elem, System.out); } catch (JAXBException e) { e.printStackTrace(); System.err.println("Error: exception occurs in SHIM file generation"); //$NON-NLS-1$ return false; } catch (SAXException e) { e.printStackTrace(); System.err.println("Error: output SHIM file validation error"); //$NON-NLS-1$ return false; } return true; }