user2176576
user2176576

Reputation: 756

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

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

Upvotes: 14

Views: 13432

Answers (1)

Oleg Estekhin
Oleg Estekhin

Reputation: 8395

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).

Upvotes: 21

Related Questions