Example usage for javax.xml XMLConstants W3C_XML_SCHEMA_NS_URI

List of usage examples for javax.xml XMLConstants W3C_XML_SCHEMA_NS_URI

Introduction

In this page you can find the example usage for javax.xml XMLConstants W3C_XML_SCHEMA_NS_URI.

Prototype

String W3C_XML_SCHEMA_NS_URI

To view the source code for javax.xml XMLConstants W3C_XML_SCHEMA_NS_URI.

Click Source Link

Document

W3C XML Schema Namespace URI.

Usage

From source file:se.mithlond.services.shared.test.entity.PlainJaxbContextRule.java

/**
 * Acquires a JAXB Schema from the provided JAXBContext.
 *
 * @param ctx The context for which am XSD should be constructed.
 * @return A tuple holding the constructed XSD from the provided JAXBContext, and
 * the LSResourceResolver synthesized during the way.
 * @throws NullPointerException     if ctx was {@code null}.
 * @throws IllegalArgumentException if a JAXB-related exception occurred while extracting the schema.
 *//*from www . j a v a  2  s .c  o m*/
public static Tuple<Schema, LSResourceResolver> generateTransientXSD(final JAXBContext ctx)
        throws NullPointerException, IllegalArgumentException {

    // Check sanity
    org.apache.commons.lang3.Validate.notNull(ctx, "Cannot handle null ctx argument.");

    final SortedMap<String, ByteArrayOutputStream> namespace2SchemaMap = new TreeMap<>();

    try {
        ctx.generateSchema(new SchemaOutputResolver() {

            /**
             * {@inheritDoc}
             */
            @Override
            public Result createOutput(final String namespaceUri, final String suggestedFileName)
                    throws IOException {

                // The types should really be annotated with @XmlType(namespace = "... something ...")
                // to avoid using the default ("") namespace.
                if (namespaceUri.isEmpty()) {
                    log.warn("Received empty namespaceUri while resolving a generated schema. "
                            + "Did you forget to add a @XmlType(namespace = \"... something ...\") annotation "
                            + "to your class?");
                }

                // Create the result ByteArrayOutputStream
                final ByteArrayOutputStream out = new ByteArrayOutputStream();
                final StreamResult toReturn = new StreamResult(out);
                toReturn.setSystemId("");

                // Map the namespaceUri to the schemaResult.
                namespace2SchemaMap.put(namespaceUri, out);

                // All done.
                return toReturn;
            }
        });
    } catch (IOException e) {
        throw new IllegalArgumentException("Could not acquire Schema snippets.", e);
    }

    // Convert to an array of StreamSource.
    final MappedSchemaResourceResolver resourceResolver = new MappedSchemaResourceResolver();
    final StreamSource[] schemaSources = new StreamSource[namespace2SchemaMap.size()];
    int counter = 0;
    for (Map.Entry<String, ByteArrayOutputStream> current : namespace2SchemaMap.entrySet()) {

        final byte[] schemaSnippetAsBytes = current.getValue().toByteArray();
        resourceResolver.addNamespace2SchemaEntry(current.getKey(), new String(schemaSnippetAsBytes));

        if (log.isDebugEnabled()) {
            log.info("Generated schema [" + (counter + 1) + "/" + schemaSources.length + "]:\n "
                    + new String(schemaSnippetAsBytes));
        }

        // Copy the schema source to the schemaSources array.
        schemaSources[counter] = new StreamSource(new ByteArrayInputStream(schemaSnippetAsBytes), "");

        // Increase the counter
        counter++;
    }

    try {

        // All done.
        final SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
        schemaFactory.setResourceResolver(resourceResolver);
        final Schema transientSchema = schemaFactory.newSchema(schemaSources);

        // All done.
        return new Tuple<>(transientSchema, resourceResolver);

    } catch (final SAXException e) {
        throw new IllegalArgumentException("Could not create Schema from snippets.", e);
    }
}

From source file:se.skl.skltpservices.npoadapter.mapper.AbstractMapper.java

protected void initialiseValidator(String... xsds) {
    List<Source> schemaFiles = new ArrayList<Source>();
    for (String xsd : xsds) {
        schemaFiles.add(new StreamSource(getClass().getResourceAsStream(xsd)));
    }/*w  w  w.ja  v  a  2  s .  c om*/

    // Note - SchemaFactory is not threadsafe
    SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
    try {
        // Note - Schema is threadsafe
        schema = factory.newSchema(schemaFiles.toArray(new StreamSource[schemaFiles.size()]));
    } catch (SAXException s) {
        throw new RuntimeException(
                new InstantiationException("Failed to instantiate schema: " + s.getMessage()));
    }

}

From source file:test.common.TestBase.java

/**
 * @throws IOException//w  w w  . ja  v a 2 s  .  c  om
 * @throws SAXException
 * @throws ParserConfigurationException
 */
private static void initializeSchemas() throws IOException, SAXException, ParserConfigurationException {
    File[] schemaFiles = ResourceUtil.getFilenamesInDirectory("xsd/", TestBase.class.getClassLoader());
    PrintWriter pwriter = new PrintWriter("target/schemas.txt");
    logger.debug("Number of schema files: " + schemaFiles.length);
    pwriter.println("Number of schema files: " + schemaFiles.length);

    schemas = new HashMap<String, Schema>();
    SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
    //        sf.setResourceResolver(new ImportResolver());
    for (File file : schemaFiles) {
        logger.debug("Schema file: " + file.getCanonicalPath());
        pwriter.println("Schema file: " + file.getCanonicalPath());

        try {

            //TODO remove this hack when xsd files are cleared
            if (file.getCanonicalPath().contains("rest")) {
                logger.debug("Skipping schema file: " + file.getCanonicalPath());
                continue;
            }
            if (file.getCanonicalPath().endsWith("srw-types.xsd") && !file.getCanonicalPath().contains("0.8")) {
                logger.debug("Skipping schema file: " + file.getCanonicalPath());
                continue;
            }
            // end TODO                

            Schema schema = sf.newSchema(file);

            SAXParserFactory factory = SAXParserFactory.newInstance();
            SAXParser parser = factory.newSAXParser();
            DefaultHandler handler = new DefaultHandler() {
                private String nameSpace = null;
                private boolean found = false;

                public void startElement(String uri, String localName, String qName, Attributes attributes) {
                    if (!found) {
                        String tagName = null;
                        int ix = qName.indexOf(":");
                        if (ix >= 0) {
                            tagName = qName.substring(ix + 1);
                        } else {
                            tagName = qName;
                        }
                        if ("schema".equals(tagName)) {
                            nameSpace = attributes.getValue("targetNamespace");
                            found = true;
                        }
                    }
                }

                public String toString() {
                    return nameSpace;
                }
            };
            parser.parse(file, handler);
            if (handler.toString() != null) {
                Schema s = schemas.get(handler.toString());
                if (s != null) {
                    logger.debug("overwriting key '" + handler.toString() + "'");
                }
                schemas.put(handler.toString(), schema);
                logger.debug("Successfully added: " + file.getCanonicalPath() + " key: '" + handler.toString()
                        + "' value: " + schema.toString() + " " + schema.newValidator());
            } else {
                logger.warn("Error reading xml schema: " + file);
            }
        } catch (Exception e) {
            logger.warn("Invalid xml schema " + file + " , cause " + e.getLocalizedMessage());
            logger.debug("Stacktrace: ", e);
        }
    }
    logger.info("XSD Schemas found: " + schemas);
    pwriter.close();
}

From source file:test.framework.TestBase.java

/**
 * Gets the <code>Schema</code> object for the provided <code>File</code>.
 * // w  w  w  .j  av a2 s .  c  o  m
 * @param schemaStream The file containing the schema.
 * @return The <code>Schema</code> object.
 * @throws Exception If anything fails.
 */
private static Schema getSchema(final String schemaFileName) throws Exception {
    if (schemaFileName == null) {
        throw new Exception("No schema input file name provided");
    }
    File schemaFile = new File(schemaFileName);
    SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
    Schema theSchema = sf.newSchema(schemaFile);
    return theSchema;
}

From source file:voldemort.xml.ClusterMapper.java

public ClusterMapper() {
    try {/*from   w w w.j av  a 2  s . c o m*/
        SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
        Source source = new StreamSource(ClusterMapper.class.getResourceAsStream("cluster.xsd"));
        this.schema = factory.newSchema(source);
    } catch (SAXException e) {
        throw new MappingException(e);
    }
}

From source file:voldemort.xml.StoreDefinitionsMapper.java

public StoreDefinitionsMapper() {
    try {//w  ww . j a v a2 s.  c o  m
        SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
        Source source = new StreamSource(StoreDefinitionsMapper.class.getResourceAsStream("stores.xsd"));
        this.schema = factory.newSchema(source);
    } catch (SAXException e) {
        throw new MappingException(e);
    }
}