java.lang.IllegalArgumentException:没有实现指定的模式语言的SchemaFactory

时间:2014-03-20 09:40:43

标签: java xml wsdl schema

我收到以下异常:

  

java.lang.IllegalArgumentException:无法加载实现由http://www.w3.org/2001/XMLSchema-instance指定的模式语言的SchemaFactory       在javax.xml.validation.SchemaFactory.newInstance(SchemaFactory.java:204)       在MAIN.SchemaImport3.validateXMLSchema(SchemaImport3.java:74)       在MAIN.SchemaImport3.main(SchemaImport3.java:62)

这是我的代码:

URL source;
source = new URL(schemaList.getDocumentBaseURI());
SchemaFactory factory = SchemaFactory.newInstance(
                         XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI);

1 个答案:

答案 0 :(得分:11)

使用XMLConstants.W3C_XML_SCHEMA_NS_URI

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

URI“http://www.w3.org/2001/XMLSchema-instance”(XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI的值)本身不是XML模式语言,而是XML Schema的属性(或功能或其他机制,如果您愿意)

W3C XML Schema的正确名称是“http://www.w3.org/2001/XMLSchema”(XMLConstants.W3C_XML_SCHEMA_NS_URI的值)。