java如何在空手道dsl中用soap响应(xml)验证xml模式(XSD)
我正在使用Karate dsl framework
自动执行soap请求,
我想用XMLSchema(XSD)验证XML格式的响应
我需要SchemaUtil.java
代码和函数来调用它。功能文件。我尝试使用RESTAPI和空手道演示来验证json模式,并找到了正确的结果,但soap(xml,xsd)没有得到验证。我正在尝试使用这个SchemaUtil.java
进行XSD验证
public static boolean validateXMLSchema(String xsdPath, String xmlPath){
try {
SchemaFactory factory =
SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = factory.newSchema(new File(xsdPath));
Validator validator = schema.newValidator();
validator.validate(new StreamSource(new File(xmlPath)));
} catch (IOException | SAXException e) {
System.out.println("Exception: "+e.getMessage());
return false;
}
return true;
}
# 1 楼答案
这是JSON模式的一个示例,请尝试对XML采用相同的方法:^{}
在空手道中,通常不需要进行JSON或XML模式验证,因为空手道有一种更简单的方法。实际上,当您使用XML来
match
响应时,这比模式验证要好,因为您验证的是实际值,而不仅仅是XML的结构所以请试着说服要求你这么做的人,这是不必要的
如果您坚持要进行XML模式验证,那么请像您已经尝试过的那样使用Java代码。作为一个普通的Java测试或
main
方法,首先让它在没有空手道的情况下工作。然后你可以很容易地融入空手道,参考文档:https://github.com/intuit/karate#calling-java否则,这就不是空手道的问题了