java.net.MalformedURLException:使用 xsd 模式验证 xml 字符串时没有协议

tyr*_*yro 1 java xml xsd

我正在尝试使用 xsd 模式验证 xml,但在验证时它会抛出,

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));
}...
Run Code Online (Sandbox Code Playgroud)

出了什么问题,validator.validate这一步抛出异常,我需要在这里提供编码字符串吗?

如果我用文件来做,我指的是文件中的 xmlContent,

validator.validate(new StreamSource(new File(filePath)));
Run Code Online (Sandbox Code Playgroud)

然后就可以正常工作了。我不想要来自文件的 xml 内容,而是来自字符串对象

小智 7

将字符串转换为 StreamResource:

validator.validate(new StreamSource(new ByteArrayInputStream(xmlContent.getBytes(StandardCharsets.UTF_8))));
Run Code Online (Sandbox Code Playgroud)