private Schema newSchema() throws SAXException { SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); factory.setResourceResolver(resourceResolver); return factory.newSchema(); }
@SuppressWarnings("deprecation") // on JDK 9 private Schema loadSchema(Resource[] resources, String schemaLanguage) throws IOException, SAXException { if (logger.isDebugEnabled()) { logger.debug("Setting validation schema to " + StringUtils.arrayToCommaDelimitedString(this.schemaResources)); } Assert.notEmpty(resources, "No resources given"); Assert.hasLength(schemaLanguage, "No schema language provided"); Source[] schemaSources = new Source[resources.length]; XMLReader xmlReader = org.xml.sax.helpers.XMLReaderFactory.createXMLReader(); xmlReader.setFeature("http://xml.org/sax/features/namespace-prefixes", true); for (int i = 0; i < resources.length; i++) { Resource resource = resources[i]; Assert.isTrue(resource != null && resource.exists(), () -> "Resource does not exist: " + resource); InputSource inputSource = SaxResourceUtils.createInputSource(resource); schemaSources[i] = new SAXSource(xmlReader, inputSource); } SchemaFactory schemaFactory = SchemaFactory.newInstance(schemaLanguage); if (this.schemaResourceResolver != null) { schemaFactory.setResourceResolver(this.schemaResourceResolver); } return schemaFactory.newSchema(schemaSources); }
// note that if your XML already declares the XSD to which it has to conform, then there's no need to declare the schemaName here void validate(String xml, String schemaName) throws Exception { DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); builderFactory.setNamespaceAware(true); DocumentBuilder parser = builderFactory .newDocumentBuilder(); // parse the XML into a document object Document document = parser.parse(new StringInputStream(xml)); SchemaFactory factory = SchemaFactory .newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); // associate the schema factory with the resource resolver, which is responsible for resolving the imported XSD's factory.setResourceResolver(new ResourceResolver()); // note that if your XML already declares the XSD to which it has to conform, then there's no need to create a validator from a Schema object Source schemaFile = new StreamSource(getClass().getClassLoader() .getResourceAsStream(schemaName)); Schema schema = factory.newSchema(schemaFile); Validator validator = schema.newValidator(); validator.validate(new DOMSource(document)); }
private void load() throws SAXException { int c = 0; for (String s : schemas.keySet()) if (s.endsWith(".xsd")) c++; StreamSource[] sources = new StreamSource[c]; int i = 0; for (String s : schemas.keySet()) { if (s.endsWith(".xsd")) { sources[i] = new StreamSource(new ByteArrayInputStream(schemas.get(s)), s); i++; } } SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); schemaFactory.setErrorHandler(new MyErrorHandler(errors, null)); schemaFactory.setResourceResolver(new MyResourceResolver()); schema = schemaFactory.newSchema(sources); }
private Schema loadSchema(String theVersion, String theSchemaName) { String key = theVersion + "-" + theSchemaName; synchronized (myKeyToSchema) { Schema schema = myKeyToSchema.get(key); if (schema != null) { return schema; } Source baseSource = loadXml(null, theSchemaName); SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); schemaFactory.setResourceResolver(new MyResourceResolver()); try { try { /* * See https://github.com/jamesagnew/hapi-fhir/issues/339 * https://www.owasp.org/index.php/XML_External_Entity_(XXE)_Processing */ schemaFactory.setProperty(XMLConstants.ACCESS_EXTERNAL_DTD, ""); }catch (SAXNotRecognizedException snex){ ourLog.warn("Jaxp 1.5 Support not found.",snex); } schema = schemaFactory.newSchema(new Source[] { baseSource }); } catch (SAXException e) { throw new ConfigurationException("Could not load/parse schema file: " + theSchemaName, e); } myKeyToSchema.put(key, schema); return schema; } }
private Schema newSchema() throws SAXException { SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); factory.setResourceResolver(resourceResolver); return factory.newSchema(); }
private Schema parseAsSchema(Source input, LSResourceResolver resolver) throws SAXException { SchemaFactory schemaFactory = SchemaFactory .newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); Schema schema; schemaFactory.setResourceResolver(resolver); schema = schemaFactory.newSchema(input); return schema; }
private Schema parseAsSchema(Source input, LSResourceResolver resolver) throws SAXException { SchemaFactory schemaFactory = SchemaFactory .newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); Schema schema; schemaFactory.setResourceResolver(resolver); schema = schemaFactory.newSchema(input); return schema; }
SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); URL schemaUrl = getClass().getResource(schemaSource); String catalog = getClass().getResource("/catalog.xml").getFile(); XMLCatalogResolver resolver = new XMLCatalogResolver(new String[] { catalog }); factory.setResourceResolver(resolver);
public SchemaLoader(String schemaName) { try { Resource schemaResource = getSchema(schemaName); SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); schemaFactory.setResourceResolver(this); schema = schemaFactory.newSchema(new StreamSource(schemaResource.getInputStream())); } catch (SAXException | IOException e) { throw new RuntimeException("Could not load schemas", e); } }
private void parseJavaxSchema() throws SAXException, IOException { schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); Source[] sources = new Source[schemaDescriptions.size()]; int i = 0; for (SchemaDescription schemaDescription : schemaDescriptions) { Source source = schemaDescription.getSource(); sources[i] = source; i++; } schemaFactory.setResourceResolver(entityResolver); javaxSchema = schemaFactory.newSchema(sources); }
public SchemaLoader(String schemaName) { try { Resource schemaResource = getSchema(schemaName); SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); schemaFactory.setResourceResolver(this); schema = schemaFactory.newSchema(new StreamSource(schemaResource.getInputStream())); } catch (SAXException | IOException e) { throw new RuntimeException("Could not load schemas", e); } }
public void parseAndValidate(File xmlFile, ContentHandler handler) { SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); schemaFactory.setResourceResolver(new MySchemaResolver()); Schema schema = schemaFactory.newSchema(); Validator v = schema.newValidator(); v.setResourceResolver(schemaFactory.getResourceResolver()); InputSource is = new InputSource(new FileInputStream(xmlFile)); v.validate(new SAXSource(is), new SAXResult(handler)); }
public void prepare(Path path) throws ValidatorException { try { SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); schemaFactory.setResourceResolver(new PathLSResolveResource(path.getParent())); Schema schema = schemaFactory.newSchema(new StreamSource(Files.newInputStream(path))); validator = schema.newValidator(); } catch (Exception e) { throw new ValidatorException(e.getMessage(), e); } }
@Override protected Schema createResource(Object... params) { // SchemaFactory is neither thread-safe nor reentrant SchemaFactory factory = SchemaFactory.newInstance(getSchemaLanguage()); // Register resource resolver to resolve external XML schemas factory.setResourceResolver(RESOURCE_RESOLVER); try { return factory.newSchema(resourceContent(params)); } catch (SAXException e) { throw new IllegalArgumentException("Could not initialize XSD schema", e); } }
private SchemaFactory createSchemaFactory() { SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); schemaFactory.setResourceResolver(new OrcidResourceResolver(schemaFactory.getResourceResolver())); return schemaFactory; }
public static Schema generateXmlSchema(ResourceLoader resourceLoader, XmlSchemaExternalType xmlTypeDefinition) throws SAXException { SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); factory.setResourceResolver(new XsdResourceResolver(resourceLoader, xmlTypeDefinition.getSchemaPath())); String includedResourceUri = resolveResourceUriIfIncluded(xmlTypeDefinition); return factory.newSchema(new StreamSource(new StringReader(xmlTypeDefinition.getSchemaValue()), includedResourceUri)); }
public static Schema generateXmlSchema(ResourceLoader resourceLoader, XmlSchemaExternalType xmlTypeDefinition) throws SAXException { SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); factory.setResourceResolver(new XsdResourceResolver(resourceLoader, xmlTypeDefinition.getSchemaPath())); String includedResourceUri = resolveResourceUriIfIncluded(xmlTypeDefinition); return factory.newSchema(new StreamSource(new StringReader(xmlTypeDefinition.getSchemaValue()), includedResourceUri)); }
private javax.xml.validation.Schema getSchema() throws SAXException { final SchemaFactory sf = SchemaFactory.newInstance(javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI); sf.setErrorHandler(this); sf.setResourceResolver(getResourceResolver()); return sf.newSchema(getSchemaSourcesArray()); }
private Schema generateSchema(JAXBContext context, Class<?> type) { LocalResolver resolver = new LocalResolver(); generateSchemaFromContext(context, resolver); resolver.postProcess(); SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); sf.setErrorHandler(new StrictErrorHandler()); sf.setResourceResolver(resolver); return createSchema(sf, type, resolver); }