List of usage examples for javax.xml.validation Validator validate
public void validate(Source source) throws SAXException, IOException
From source file:org.apache.maven.plugin.changes.schema.DefaultChangesSchemaValidator.java
public XmlValidationHandler validateXmlWithSchema(File file, String schemaVersion, boolean failOnValidationError) throws SchemaValidatorException { Reader reader = null;//from www . j ava 2s . c o m try { String schemaPath = CHANGES_SCHEMA_PATH + "changes-" + schemaVersion + ".xsd"; Schema schema = getSchema(schemaPath); Validator validator = schema.newValidator(); XmlValidationHandler baseHandler = new XmlValidationHandler(failOnValidationError); validator.setErrorHandler(baseHandler); reader = new XmlStreamReader(file); validator.validate(new StreamSource(reader)); return baseHandler; } catch (IOException e) { throw new SchemaValidatorException("IOException : " + e.getMessage(), e); } catch (SAXException e) { throw new SchemaValidatorException("SAXException : " + e.getMessage(), e); } catch (Exception e) { throw new SchemaValidatorException("Exception : " + e.getMessage(), e); } finally { IOUtil.close(reader); } }
From source file:org.apache.oozie.cli.OozieCLI.java
/** * Validate on client-side. This is only for backward compatibility. Need to removed after <tt>4.2.0</tt> higher version. * @param commandLine//www. j a v a 2s . c o m * @throws OozieCLIException */ @Deprecated @VisibleForTesting void validateCommandV41(CommandLine commandLine) throws OozieCLIException { String[] args = commandLine.getArgs(); if (args.length != 1) { throw new OozieCLIException("One file must be specified"); } File file = new File(args[0]); if (file.exists()) { try { List<StreamSource> sources = new ArrayList<StreamSource>(); sources.add(new StreamSource(Thread.currentThread().getContextClassLoader() .getResourceAsStream("oozie-workflow-0.1.xsd"))); sources.add(new StreamSource(Thread.currentThread().getContextClassLoader() .getResourceAsStream("shell-action-0.1.xsd"))); sources.add(new StreamSource(Thread.currentThread().getContextClassLoader() .getResourceAsStream("shell-action-0.2.xsd"))); sources.add(new StreamSource(Thread.currentThread().getContextClassLoader() .getResourceAsStream("shell-action-0.3.xsd"))); sources.add(new StreamSource(Thread.currentThread().getContextClassLoader() .getResourceAsStream("email-action-0.1.xsd"))); sources.add(new StreamSource(Thread.currentThread().getContextClassLoader() .getResourceAsStream("email-action-0.2.xsd"))); sources.add(new StreamSource(Thread.currentThread().getContextClassLoader() .getResourceAsStream("distcp-action-0.1.xsd"))); sources.add(new StreamSource(Thread.currentThread().getContextClassLoader() .getResourceAsStream("distcp-action-0.2.xsd"))); sources.add(new StreamSource(Thread.currentThread().getContextClassLoader() .getResourceAsStream("oozie-workflow-0.2.xsd"))); sources.add(new StreamSource(Thread.currentThread().getContextClassLoader() .getResourceAsStream("oozie-workflow-0.2.5.xsd"))); sources.add(new StreamSource(Thread.currentThread().getContextClassLoader() .getResourceAsStream("oozie-workflow-0.3.xsd"))); sources.add(new StreamSource(Thread.currentThread().getContextClassLoader() .getResourceAsStream("oozie-workflow-0.4.xsd"))); sources.add(new StreamSource(Thread.currentThread().getContextClassLoader() .getResourceAsStream("oozie-workflow-0.4.5.xsd"))); sources.add(new StreamSource(Thread.currentThread().getContextClassLoader() .getResourceAsStream("oozie-workflow-0.5.xsd"))); sources.add(new StreamSource(Thread.currentThread().getContextClassLoader() .getResourceAsStream("oozie-coordinator-0.1.xsd"))); sources.add(new StreamSource(Thread.currentThread().getContextClassLoader() .getResourceAsStream("oozie-coordinator-0.2.xsd"))); sources.add(new StreamSource(Thread.currentThread().getContextClassLoader() .getResourceAsStream("oozie-coordinator-0.3.xsd"))); sources.add(new StreamSource(Thread.currentThread().getContextClassLoader() .getResourceAsStream("oozie-coordinator-0.4.xsd"))); sources.add(new StreamSource(Thread.currentThread().getContextClassLoader() .getResourceAsStream("oozie-bundle-0.1.xsd"))); sources.add(new StreamSource(Thread.currentThread().getContextClassLoader() .getResourceAsStream("oozie-bundle-0.2.xsd"))); sources.add(new StreamSource( Thread.currentThread().getContextClassLoader().getResourceAsStream("oozie-sla-0.1.xsd"))); sources.add(new StreamSource( Thread.currentThread().getContextClassLoader().getResourceAsStream("oozie-sla-0.2.xsd"))); sources.add(new StreamSource( Thread.currentThread().getContextClassLoader().getResourceAsStream("hive-action-0.2.xsd"))); sources.add(new StreamSource( Thread.currentThread().getContextClassLoader().getResourceAsStream("hive-action-0.3.xsd"))); sources.add(new StreamSource( Thread.currentThread().getContextClassLoader().getResourceAsStream("hive-action-0.4.xsd"))); sources.add(new StreamSource( Thread.currentThread().getContextClassLoader().getResourceAsStream("hive-action-0.5.xsd"))); sources.add(new StreamSource( Thread.currentThread().getContextClassLoader().getResourceAsStream("hive-action-0.6.xsd"))); sources.add(new StreamSource(Thread.currentThread().getContextClassLoader() .getResourceAsStream("sqoop-action-0.2.xsd"))); sources.add(new StreamSource(Thread.currentThread().getContextClassLoader() .getResourceAsStream("sqoop-action-0.3.xsd"))); sources.add(new StreamSource(Thread.currentThread().getContextClassLoader() .getResourceAsStream("sqoop-action-0.4.xsd"))); sources.add(new StreamSource( Thread.currentThread().getContextClassLoader().getResourceAsStream("ssh-action-0.1.xsd"))); sources.add(new StreamSource( Thread.currentThread().getContextClassLoader().getResourceAsStream("ssh-action-0.2.xsd"))); sources.add(new StreamSource(Thread.currentThread().getContextClassLoader() .getResourceAsStream("hive2-action-0.1.xsd"))); sources.add(new StreamSource(Thread.currentThread().getContextClassLoader() .getResourceAsStream("hive2-action-0.2.xsd"))); sources.add(new StreamSource(Thread.currentThread().getContextClassLoader() .getResourceAsStream("spark-action-0.1.xsd"))); sources.add(new StreamSource(Thread.currentThread().getContextClassLoader() .getResourceAsStream("spark-action-0.2.xsd"))); SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); Schema schema = factory.newSchema(sources.toArray(new StreamSource[sources.size()])); Validator validator = schema.newValidator(); validator.validate(new StreamSource(new FileReader(file))); System.out.println("Valid workflow-app"); } catch (Exception ex) { throw new OozieCLIException("Invalid app definition, " + ex.toString(), ex); } } else { throw new OozieCLIException("File does not exists"); } }
From source file:org.apache.oozie.workflow.lite.LiteWorkflowAppParser.java
/** * Parse and validate xml to {@link LiteWorkflowApp} * * @param reader//from w w w .ja v a 2s. c o m * @return LiteWorkflowApp * @throws WorkflowException */ public LiteWorkflowApp validateAndParse(Reader reader, Configuration jobConf, Configuration configDefault) throws WorkflowException { try { StringWriter writer = new StringWriter(); IOUtils.copyCharStream(reader, writer); String strDef = writer.toString(); if (schema != null) { Validator validator = schema.newValidator(); validator.validate(new StreamSource(new StringReader(strDef))); } Element wfDefElement = XmlUtils.parseXml(strDef); ParameterVerifier.verifyParameters(jobConf, wfDefElement); LiteWorkflowApp app = parse(strDef, wfDefElement, configDefault, jobConf); boolean validateForkJoin = false; if (jobConf.getBoolean(WF_VALIDATE_FORK_JOIN, true) && ConfigurationService.getBoolean(VALIDATE_FORK_JOIN)) { validateForkJoin = true; } LiteWorkflowValidator validator = new LiteWorkflowValidator(); validator.validateWorkflow(app, validateForkJoin); return app; } catch (ParameterVerifierException ex) { throw new WorkflowException(ex); } catch (JDOMException ex) { throw new WorkflowException(ErrorCode.E0700, ex.getMessage(), ex); } catch (SAXException ex) { throw new WorkflowException(ErrorCode.E0701, ex.getMessage(), ex); } catch (IOException ex) { throw new WorkflowException(ErrorCode.E0702, ex.getMessage(), ex); } }
From source file:org.apache.servicemix.jbi.deployer.descriptor.DescriptorFactory.java
/** * Build a jbi descriptor from the specified binary data. * The descriptor is validated against the schema, but no * semantic validation is performed./* www .java 2 s . c o m*/ * * @param bytes hold the content of the JBI descriptor xml document * @return the Descriptor object */ public static Descriptor buildDescriptor(final byte[] bytes) { try { // Validate descriptor SchemaFactory schemaFactory = SchemaFactory.newInstance(XSD_SCHEMA_LANGUAGE); Schema schema = schemaFactory.newSchema(DescriptorFactory.class.getResource(JBI_DESCRIPTOR_XSD)); Validator validator = schema.newValidator(); validator.setErrorHandler(new ErrorHandler() { public void warning(SAXParseException exception) throws SAXException { //log.debug("Validation warning on " + url + ": " + exception); } public void error(SAXParseException exception) throws SAXException { //log.info("Validation error on " + url + ": " + exception); } public void fatalError(SAXParseException exception) throws SAXException { throw exception; } }); validator.validate(new StreamSource(new ByteArrayInputStream(bytes))); // Parse descriptor DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setNamespaceAware(true); DocumentBuilder docBuilder = factory.newDocumentBuilder(); Document doc = docBuilder.parse(new ByteArrayInputStream(bytes)); Element jbi = doc.getDocumentElement(); Descriptor desc = new Descriptor(); desc.setVersion(Double.parseDouble(getAttribute(jbi, VERSION))); Element child = getFirstChildElement(jbi); if (COMPONENT.equals(child.getLocalName())) { ComponentDesc component = new ComponentDesc(); component.setType(child.getAttribute(TYPE)); component.setComponentClassLoaderDelegation(getAttribute(child, COMPONENT_CLASS_LOADER_DELEGATION)); component.setBootstrapClassLoaderDelegation(getAttribute(child, BOOTSTRAP_CLASS_LOADER_DELEGATION)); List<SharedLibraryList> sls = new ArrayList<SharedLibraryList>(); DocumentFragment ext = null; for (Element e = getFirstChildElement(child); e != null; e = getNextSiblingElement(e)) { if (IDENTIFICATION.equals(e.getLocalName())) { component.setIdentification(readIdentification(e)); } else if (COMPONENT_CLASS_NAME.equals(e.getLocalName())) { component.setComponentClassName(getText(e)); component.setDescription(getAttribute(e, DESCRIPTION)); } else if (COMPONENT_CLASS_PATH.equals(e.getLocalName())) { ClassPath componentClassPath = new ClassPath(); ArrayList<String> l = new ArrayList<String>(); for (Element e2 = getFirstChildElement(e); e2 != null; e2 = getNextSiblingElement(e2)) { if (PATH_ELEMENT.equals(e2.getLocalName())) { l.add(getText(e2)); } } componentClassPath.setPathList(l); component.setComponentClassPath(componentClassPath); } else if (BOOTSTRAP_CLASS_NAME.equals(e.getLocalName())) { component.setBootstrapClassName(getText(e)); } else if (BOOTSTRAP_CLASS_PATH.equals(e.getLocalName())) { ClassPath bootstrapClassPath = new ClassPath(); ArrayList<String> l = new ArrayList<String>(); for (Element e2 = getFirstChildElement(e); e2 != null; e2 = getNextSiblingElement(e2)) { if (PATH_ELEMENT.equals(e2.getLocalName())) { l.add(getText(e2)); } } bootstrapClassPath.setPathList(l); component.setBootstrapClassPath(bootstrapClassPath); } else if (SHARED_LIBRARY.equals(e.getLocalName())) { SharedLibraryList sl = new SharedLibraryList(); sl.setName(getText(e)); sl.setVersion(getAttribute(e, VERSION)); sls.add(sl); } else { if (ext == null) { ext = doc.createDocumentFragment(); } ext.appendChild(e); } } component.setSharedLibraries(sls.toArray(new SharedLibraryList[sls.size()])); if (ext != null) { InstallationDescriptorExtension descriptorExtension = new InstallationDescriptorExtension(); descriptorExtension.setDescriptorExtension(ext); component.setDescriptorExtension(descriptorExtension); } desc.setComponent(component); } else if (SHARED_LIBRARY.equals(child.getLocalName())) { SharedLibraryDesc sharedLibrary = new SharedLibraryDesc(); sharedLibrary.setClassLoaderDelegation(getAttribute(child, CLASS_LOADER_DELEGATION)); sharedLibrary.setVersion(getAttribute(child, VERSION)); for (Element e = getFirstChildElement(child); e != null; e = getNextSiblingElement(e)) { if (IDENTIFICATION.equals(e.getLocalName())) { sharedLibrary.setIdentification(readIdentification(e)); } else if (SHARED_LIBRARY_CLASS_PATH.equals(e.getLocalName())) { ClassPath sharedLibraryClassPath = new ClassPath(); ArrayList<String> l = new ArrayList<String>(); for (Element e2 = getFirstChildElement(e); e2 != null; e2 = getNextSiblingElement(e2)) { if (PATH_ELEMENT.equals(e2.getLocalName())) { l.add(getText(e2)); } } sharedLibraryClassPath.setPathList(l); sharedLibrary.setSharedLibraryClassPath(sharedLibraryClassPath); } } desc.setSharedLibrary(sharedLibrary); } else if (SERVICE_ASSEMBLY.equals(child.getLocalName())) { ServiceAssemblyDesc serviceAssembly = new ServiceAssemblyDesc(); ArrayList<ServiceUnitDesc> sus = new ArrayList<ServiceUnitDesc>(); for (Element e = getFirstChildElement(child); e != null; e = getNextSiblingElement(e)) { if (IDENTIFICATION.equals(e.getLocalName())) { serviceAssembly.setIdentification(readIdentification(e)); } else if (SERVICE_UNIT.equals(e.getLocalName())) { ServiceUnitDesc su = new ServiceUnitDesc(); for (Element e2 = getFirstChildElement(e); e2 != null; e2 = getNextSiblingElement(e2)) { if (IDENTIFICATION.equals(e2.getLocalName())) { su.setIdentification(readIdentification(e2)); } else if (TARGET.equals(e2.getLocalName())) { Target target = new Target(); for (Element e3 = getFirstChildElement(e2); e3 != null; e3 = getNextSiblingElement( e3)) { if (ARTIFACTS_ZIP.equals(e3.getLocalName())) { target.setArtifactsZip(getText(e3)); } else if (COMPONENT_NAME.equals(e3.getLocalName())) { target.setComponentName(getText(e3)); } } su.setTarget(target); } } sus.add(su); } else if (CONNECTIONS.equals(e.getLocalName())) { Connections connections = new Connections(); ArrayList<Connection> cns = new ArrayList<Connection>(); for (Element e2 = getFirstChildElement(e); e2 != null; e2 = getNextSiblingElement(e2)) { if (CONNECTION.equals(e2.getLocalName())) { Connection cn = new Connection(); for (Element e3 = getFirstChildElement(e2); e3 != null; e3 = getNextSiblingElement( e3)) { if (CONSUMER.equals(e3.getLocalName())) { Consumer consumer = new Consumer(); consumer.setInterfaceName(readAttributeQName(e3, INTERFACE_NAME)); consumer.setServiceName(readAttributeQName(e3, SERVICE_NAME)); consumer.setEndpointName(getAttribute(e3, ENDPOINT_NAME)); cn.setConsumer(consumer); } else if (PROVIDER.equals(e3.getLocalName())) { Provider provider = new Provider(); provider.setServiceName(readAttributeQName(e3, SERVICE_NAME)); provider.setEndpointName(getAttribute(e3, ENDPOINT_NAME)); cn.setProvider(provider); } } cns.add(cn); } } connections.setConnections(cns.toArray(new Connection[cns.size()])); serviceAssembly.setConnections(connections); } } serviceAssembly.setServiceUnits(sus.toArray(new ServiceUnitDesc[sus.size()])); desc.setServiceAssembly(serviceAssembly); } else if (SERVICES.equals(child.getLocalName())) { Services services = new Services(); services.setBindingComponent( Boolean.valueOf(getAttribute(child, BINDING_COMPONENT)).booleanValue()); ArrayList<Provides> provides = new ArrayList<Provides>(); ArrayList<Consumes> consumes = new ArrayList<Consumes>(); for (Element e = getFirstChildElement(child); e != null; e = getNextSiblingElement(e)) { if (PROVIDES.equals(e.getLocalName())) { Provides p = new Provides(); p.setInterfaceName(readAttributeQName(e, INTERFACE_NAME)); p.setServiceName(readAttributeQName(e, SERVICE_NAME)); p.setEndpointName(getAttribute(e, ENDPOINT_NAME)); provides.add(p); } else if (CONSUMES.equals(e.getLocalName())) { Consumes c = new Consumes(); c.setInterfaceName(readAttributeQName(e, INTERFACE_NAME)); c.setServiceName(readAttributeQName(e, SERVICE_NAME)); c.setEndpointName(getAttribute(e, ENDPOINT_NAME)); c.setLinkType(getAttribute(e, LINK_TYPE)); consumes.add(c); } } services.setProvides(provides.toArray(new Provides[provides.size()])); services.setConsumes(consumes.toArray(new Consumes[consumes.size()])); desc.setServices(services); } checkDescriptor(desc); return desc; } catch (Exception e) { throw new RuntimeException(e); } }
From source file:org.apache.shindig.social.opensocial.util.XSDValidator.java
/** * Validate a xml input stream against a supplied schema. * * @param xml/* www.ja va2 s. c o m*/ * a stream containing the xml * @param schema * a stream containing the schema * @return a list of errors or warnings, a 0 lenght string if none. */ public static String validate(InputStream xml, InputStream schema) { SAXParserFactory factory = SAXParserFactory.newInstance(); factory.setNamespaceAware(true); factory.setValidating(true); final StringBuilder errors = new StringBuilder(); try { SchemaFactory schemaFactory = SchemaFactory.newInstance(W3C_XML_SCHEMA); Schema s = schemaFactory.newSchema(new StreamSource(schema)); Validator validator = s.newValidator(); final LSResourceResolver lsr = validator.getResourceResolver(); validator.setResourceResolver(new LSResourceResolver() { public LSInput resolveResource(String arg0, String arg1, String arg2, String arg3, String arg4) { log.info("resolveResource(" + arg0 + ',' + arg1 + ',' + arg2 + ',' + arg3 + ',' + arg4 + ')'); return lsr.resolveResource(arg0, arg1, arg2, arg3, arg4); } }); validator.validate(new StreamSource(xml)); } catch (IOException e) { } catch (SAXException e) { errors.append(e.getMessage()).append('\n'); } return errors.toString(); }
From source file:org.apache.stratos.adc.mgt.utils.PolicyHolder.java
public void validate(final OMElement omElement, final File schemaFile) throws SAXException, IOException { Element sourceElement;/*from w ww . ja v a2 s .c o m*/ // if the OMElement is created using DOM implementation use it if (omElement instanceof ElementImpl) { sourceElement = (Element) omElement; } else { // else convert from llom to dom sourceElement = getDOMElement(omElement); } // Create a SchemaFactory capable of understanding WXS schemas. // Load a WXS schema, represented by a Schema instance. SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); Source source = new StreamSource(schemaFile); // Create a Validator object, which can be used to validate // an instance document. Schema schema = factory.newSchema(source); Validator validator = schema.newValidator(); // Validate the DOM tree. validator.validate(new DOMSource(sourceElement)); }
From source file:org.apache.stratos.cloud.controller.axiom.AxiomXpathParser.java
public void validate(final OMElement omElement, final File schemaFile) throws Exception { Element sourceElement;/*w ww . j ava2 s . co m*/ // if the OMElement is created using DOM implementation use it if (omElement instanceof ElementImpl) { sourceElement = (Element) omElement; } else { // else convert from llom to dom sourceElement = getDOMElement(omElement); } // Create a SchemaFactory capable of understanding WXS schemas. // Load a WXS schema, represented by a Schema instance. SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); Source source = new StreamSource(schemaFile); // Create a Validator object, which can be used to validate // an instance document. Schema schema = factory.newSchema(source); Validator validator = schema.newValidator(); // Validate the DOM tree. validator.validate(new DOMSource(sourceElement)); }
From source file:org.apache.stratos.cloud.controller.axiom.AxiomXpathParserUtil.java
public static void validate(final OMElement omElement, final File schemaFile) throws SAXException, IOException { Element sourceElement;/*from w w w .j a va2 s . c om*/ // if the OMElement is created using DOM implementation use it if (omElement instanceof ElementImpl) { sourceElement = (Element) omElement; } else { // else convert from llom to dom sourceElement = getDOMElement(omElement); } // Create a SchemaFactory capable of understanding WXS schemas. // Load a WXS schema, represented by a Schema instance. SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); Source source = new StreamSource(schemaFile); // Create a Validator object, which can be used to validate // an instance document. Schema schema = factory.newSchema(source); Validator validator = schema.newValidator(); // Validate the DOM tree. validator.validate(new DOMSource(sourceElement)); }
From source file:org.apache.stratos.manager.utils.PolicyHolder.java
public void validate(final OMElement omElement, final File schemaFile) throws SAXException, IOException { Element sourceElement;//from ww w . j a va 2 s .c om // if the OMElement is created using DOM implementation use it if (omElement instanceof ElementImpl) { sourceElement = (Element) omElement; } else { // else convert from llom to dom sourceElement = getDOMElement(omElement); } // Create a SchemaFactory capable of understanding WXS schemas. // Load a WXS schema, represented by a Schema subscription. SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); Source source = new StreamSource(schemaFile); // Create a Validator object, which can be used to validate // an subscription document. Schema schema = factory.newSchema(source); Validator validator = schema.newValidator(); // Validate the DOM tree. validator.validate(new DOMSource(sourceElement)); }
From source file:org.apache.synapse.format.syslog.SyslogMessageBuilderTest.java
private SyslogMessage test(String message) throws Exception { MessageContext msgContext = new MessageContext(); ByteArrayInputStream in = new ByteArrayInputStream(message.getBytes("us-ascii")); OMElement element = new SyslogMessageBuilder().processDocument(in, null, msgContext); SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); Schema schema = factory.newSchema( new StreamSource(SyslogMessageBuilderTest.class.getResource("schema.xsd").toExternalForm())); Validator validator = schema.newValidator(); validator.setErrorHandler(new ErrorHandler() { public void error(SAXParseException exception) throws SAXException { throw exception; }// www . j av a 2s .co m public void fatalError(SAXParseException exception) throws SAXException { throw exception; } public void warning(SAXParseException exception) throws SAXException { throw exception; } }); validator.validate(new OMSource(element)); String pidString = element.getAttributeValue(new QName(SyslogConstants.PID)); return new SyslogMessage(element.getAttributeValue(new QName(SyslogConstants.FACILITY)), element.getAttributeValue(new QName(SyslogConstants.SEVERITY)), element.getAttributeValue(new QName(SyslogConstants.TAG)), pidString == null ? -1 : Integer.parseInt(pidString), element.getText()); }