java.lang.IllegalArgumentException: No SchemaFactory that implements the schema language specified

StackOverflow https://stackoverflow.com/questions/22528848

  •  17-06-2023
  •  | 
  •  

Question

I am getting the following exception:

java.lang.IllegalArgumentException: No SchemaFactory that implements the schema language specified by: http://www.w3.org/2001/XMLSchema-instance could be loaded at javax.xml.validation.SchemaFactory.newInstance(SchemaFactory.java:204) at MAIN.SchemaImport3.validateXMLSchema(SchemaImport3.java:74) at MAIN.SchemaImport3.main(SchemaImport3.java:62)

Here is my code:

URL source;
source = new URL(schemaList.getDocumentBaseURI());
SchemaFactory factory = SchemaFactory.newInstance(
                         XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI);
Was it helpful?

Solution

Use XMLConstants.W3C_XML_SCHEMA_NS_URI:

SchemaFactory factory = SchemaFactory.newInstance( 
    XMLConstants.W3C_XML_SCHEMA_NS_URI 
);

The URI "http://www.w3.org/2001/XMLSchema-instance" (value of the XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI) is not an XML schema language by itself, but a property (or feature, or additional mechanism, if you like) of the XML Schema.

The proper name for the W3C XML Schema is "http://www.w3.org/2001/XMLSchema" (value of the XMLConstants.W3C_XML_SCHEMA_NS_URI).

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top