Example usage for javax.xml.validation Validator validate

List of usage examples for javax.xml.validation Validator validate

Introduction

In this page you can find the example usage for javax.xml.validation Validator validate.

Prototype

public void validate(Source source) throws SAXException, IOException 

Source Link

Document

Validates the specified input.

Usage

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());
}