Example usage for javax.xml.validation Schema newValidator

List of usage examples for javax.xml.validation Schema newValidator

Introduction

In this page you can find the example usage for javax.xml.validation Schema newValidator.

Prototype

public abstract Validator newValidator();

Source Link

Document

Creates a new Validator for this Schema .

Usage

From source file:nl.armatiek.xslweb.web.servlet.XSLWebServlet.java

private void executeRequest(WebApp webApp, HttpServletRequest req, HttpServletResponse resp,
        OutputStream respOs) throws Exception {
    boolean developmentMode = webApp.getDevelopmentMode();

    String requestXML = (String) req.getAttribute(Definitions.ATTRNAME_REQUESTXML);

    PipelineHandler pipelineHandler = (PipelineHandler) req.getAttribute(Definitions.ATTRNAME_PIPELINEHANDLER);

    ErrorListener errorListener = new TransformationErrorListener(resp, developmentMode);
    MessageWarner messageWarner = new MessageWarner();

    List<PipelineStep> steps = pipelineHandler.getPipelineSteps();
    if (steps == null || steps.isEmpty()) {
        resp.sendError(HttpServletResponse.SC_NOT_FOUND, "Resource not found");
        return;/*from w  w w  .  j  av a 2  s  .c  o m*/
    }

    OutputStream os = (developmentMode) ? new ByteArrayOutputStream() : respOs;

    Properties outputProperties = getOutputProperties(webApp, errorListener, steps);

    Map<QName, XdmValue> baseStylesheetParameters = XSLWebUtils.getStylesheetParameters(webApp, req, resp,
            homeDir);

    addResponseTransformationStep(steps);

    Map<QName, XdmValue> extraStylesheetParameters = null;
    Source source = new StreamSource(new StringReader(requestXML));
    Destination destination = null;

    for (int i = 0; i < steps.size(); i++) {
        PipelineStep step = steps.get(i);
        if (step instanceof SerializerStep) {
            break;
        }
        PipelineStep nextStep = (i < steps.size() - 1) ? steps.get(i + 1) : null;
        if (step instanceof TransformerStep) {
            String xslPath = null;
            if (step instanceof SystemTransformerStep) {
                xslPath = new File(homeDir, "common/xsl/" + ((TransformerStep) step).getXslPath())
                        .getAbsolutePath();
            } else {
                xslPath = ((TransformerStep) step).getXslPath();
            }
            XsltExecutable templates = webApp.getTemplates(xslPath, errorListener);
            Xslt30Transformer transformer = templates.load30();
            transformer.getUnderlyingController().setMessageEmitter(messageWarner);
            transformer.setErrorListener(errorListener);
            Map<QName, XdmValue> stylesheetParameters = new HashMap<QName, XdmValue>();
            stylesheetParameters.putAll(baseStylesheetParameters);
            XSLWebUtils.addStylesheetParameters(stylesheetParameters, ((TransformerStep) step).getParameters());
            if (extraStylesheetParameters != null) {
                stylesheetParameters.putAll(extraStylesheetParameters);
                extraStylesheetParameters.clear();
            }
            transformer.setStylesheetParameters(stylesheetParameters);
            destination = getDestination(webApp, req, resp, os, outputProperties, step, nextStep);
            transformer.applyTemplates(source, destination);
        } else if (step instanceof SchemaValidatorStep) {
            SchemaValidatorStep svStep = (SchemaValidatorStep) step;
            List<String> schemaPaths = svStep.getSchemaPaths();
            Schema schema = webApp.getSchema(schemaPaths, errorListener);

            source = makeNodeInfoSource(source, webApp, errorListener);
            destination = null;

            Serializer serializer = webApp.getProcessor().newSerializer();
            ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
            serializer.setOutputStream(outputStream);
            serializer.setOutputProperty(Property.INDENT, "yes");
            serializer.serializeNode(new XdmNode((NodeInfo) source));
            Source validationSource = new StreamSource(new ByteArrayInputStream(outputStream.toByteArray()));

            Validator validator = schema.newValidator();
            ValidatorErrorHandler errorHandler = new ValidatorErrorHandler(
                    "Step: " + ((step.getName() != null) ? step.getName() : "noname"));
            validator.setErrorHandler(errorHandler);

            Properties properties = svStep.getProperties();
            if (properties != null) {
                @SuppressWarnings("rawtypes")
                Enumeration names = properties.propertyNames();
                while (names.hasMoreElements()) {
                    String name = (String) names.nextElement();
                    validator.setProperty(name, properties.getProperty(name));
                }
            }

            Properties features = svStep.getProperties();
            if (features != null) {
                @SuppressWarnings("rawtypes")
                Enumeration names = features.propertyNames();
                while (names.hasMoreElements()) {
                    String name = (String) names.nextElement();
                    validator.setProperty(name, features.getProperty(name));
                }
            }

            validator.validate(validationSource);

            Source resultsSource = errorHandler.getValidationResults();
            if (resultsSource != null) {
                NodeInfo resultsNodeInfo = webApp.getConfiguration().buildDocumentTree(resultsSource)
                        .getRootNode();
                String xslParamName = svStep.getXslParamName();
                if (xslParamName != null) {
                    if (extraStylesheetParameters == null) {
                        extraStylesheetParameters = new HashMap<QName, XdmValue>();
                    }
                    extraStylesheetParameters.put(new QName(svStep.getXslParamNamespace(), xslParamName),
                            new XdmNode(resultsNodeInfo));
                }
            }
        } else if (step instanceof SchematronValidatorStep) {
            SchematronValidatorStep svStep = (SchematronValidatorStep) step;

            source = makeNodeInfoSource(source, webApp, errorListener);
            destination = null;

            /* Execute schematron validation */
            XsltExecutable templates = webApp.getSchematron(svStep.getSchematronPath(), svStep.getPhase(),
                    errorListener);
            Xslt30Transformer transformer = templates.load30();
            transformer.getUnderlyingController().setMessageEmitter(messageWarner);
            transformer.setErrorListener(errorListener);
            XdmDestination svrlDest = new XdmDestination();

            transformer.applyTemplates(source, svrlDest);

            String xslParamName = svStep.getXslParamName();
            if (xslParamName != null) {
                if (extraStylesheetParameters == null) {
                    extraStylesheetParameters = new HashMap<QName, XdmValue>();
                }
                extraStylesheetParameters.put(new QName(svStep.getXslParamNamespace(), xslParamName),
                        svrlDest.getXdmNode());
            }
        } else if (step instanceof ResponseStep) {
            source = new StreamSource(new StringReader(((ResponseStep) step).getResponse()));
            continue;
        }

        if (destination instanceof SourceDestination) {
            /* Set source for next pipeline step: */
            source = ((SourceDestination) destination).asSource();
        }
    }

    if (developmentMode) {
        byte[] body = ((ByteArrayOutputStream) os).toByteArray();
        IOUtils.copy(new ByteArrayInputStream(body), respOs);
    }
}

From source file:nl.b3p.viewer.admin.stripes.GeoServiceActionBean.java

public Resolution validateSldXml() {
    Resolution jsp = new ForwardResolution(JSP_EDIT_SLD);
    Document sldXmlDoc = null;/*from w  w w.ja  va  2 s .c o m*/
    String stage = "Fout bij parsen XML document";
    try {
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        dbf.setNamespaceAware(true);
        DocumentBuilder db = dbf.newDocumentBuilder();

        sldXmlDoc = db.parse(new ByteArrayInputStream(sld.getSldBody().getBytes("UTF-8")));

        stage = "Fout bij controleren SLD";

        Element root = sldXmlDoc.getDocumentElement();
        if (!"StyledLayerDescriptor".equals(root.getLocalName())) {
            throw new Exception("Root element moet StyledLayerDescriptor zijn");
        }
        String version = root.getAttribute("version");
        if (version == null || !("1.0.0".equals(version) || "1.1.0".equals(version))) {
            throw new Exception("Geen of ongeldige SLD versie!");
        }

        SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
        Schema s = sf
                .newSchema(new URL("http://schemas.opengis.net/sld/" + version + "/StyledLayerDescriptor.xsd"));
        s.newValidator().validate(new DOMSource(sldXmlDoc));

    } catch (Exception e) {
        String extra = "";
        if (e instanceof SAXParseException) {
            SAXParseException spe = (SAXParseException) e;
            if (spe.getLineNumber() != -1) {
                extra = " (regel " + spe.getLineNumber();
                if (spe.getColumnNumber() != -1) {
                    extra += ", kolom " + spe.getColumnNumber();
                }
                extra += ")";
            }
        }
        getContext().getValidationErrors()
                .addGlobalError(new SimpleError("{2}: {3}{4}", stage, ExceptionUtils.getMessage(e), extra));
        return jsp;
    }

    getContext().getMessages().add(new SimpleMessage("SLD is valide!"));

    return jsp;
}

From source file:org.activiti.bpmn.converter.BpmnXMLConverter.java

public void validateModel(InputStreamProvider inputStreamProvider) throws Exception {
    Schema schema = createSchema();

    Validator validator = schema.newValidator();
    validator.validate(new StreamSource(inputStreamProvider.getInputStream()));
}

From source file:org.activiti.bpmn.converter.BpmnXMLConverter.java

public void validateModel(XMLStreamReader xmlStreamReader) throws Exception {
    Schema schema = createSchema();

    Validator validator = schema.newValidator();
    validator.validate(new StAXSource(xmlStreamReader));
}

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;//  w  w w .j a  v a2  s .  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/*  w ww.  j  a  v a  2s.  com*/
 * @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.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./*from  w  ww  .ja v  a  2 s  .co  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  . j  a 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;//  w w w  .j av  a 2s.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;/*from   w w  w  . jav  a 2s.  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));
}