我正在使用Karate dsl framework
自动执行肥皂请求,我想用XML Schema(XSD)验证XML格式的响应。
我需要SchemaUtil.java
代码和函数才能在.feature文件中调用它。我尝试过Rest API,用于验证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;
}
这是JSON模式的示例,请尝试对XML采用相同的方法:schema.feature
。
通常在空手道中,您不需要进行JSON或XML模式验证,因为空手道的方法较为简单。实际上,当您使用XML来schema.feature
响应时,这比模式验证要更好,因为您正在验证实际值,而不仅仅是XML的结构。
因此,请尝试说服要求您这样做的人,不需要这样做。
如果您坚持要进行XML Schema验证,请像已经尝试使用Java代码那样进行操作。首先将其作为空手测试或match
方法在没有空手道的情况下运行即可。然后,您可以轻松地集成到空手道中,请参考文档:main
否则,这不是与空手道有关的问题。