0
我试图验证使用XSD架构的XML,但它抛出验证的时间,java.net.MalformedURLException:无协议,而验证XML字符串XSD架构
java.net.MalformedURLException:没有协议:
我做了什么至今,
public boolean ValidateXML(String xmlContent) throws Exception {
try
{
SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = factory.newSchema(getClass().getClassLoader().getResource("ABC/XYX/PQR.xsd"));
Validator validator = schema.newValidator();
validator.validate(new StreamSource(xmlContent));
}...
到底哪里出问题了,validator.validate该步骤中,抛出一个异常,我需要在这里提供编码字符串?
如果我有文件做我的意思是xmlContent从文件,
validator.validate(new StreamSource(new File(filePath)));
那么它的正常工作。 我不想从一个文件,但是从字符串对象
是它的工作,谢谢。它需要被编码,不是String处理它。 – tyro
问题不是编码,而是StreamResource构造函数中的错误类型。如果您使用String参数调用StreamResource构造函数,它会尝试将此字符串解析为URL。在文档中查看: https://docs.oracle.com/javase/7/docs/api/javax/xml/transform/stream/StreamSource.html#StreamSource(java.lang.String) 我的建议调用具有InputStream参数的StreamResource构造函数,并使用InputStream包装xmlContent字符串。 –
清除,再次感谢 – tyro