如何在空手道 DSL 中使用 SOAP 响应 (XML) 验证 XML 架构 (XSD)



我正在使用Karate dsl framework来自动化肥皂请求, 我想使用XML架构(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模式验证,因为空手道具有更简单的方法。实际上,当您使用 XMLmatch响应时,这比架构验证更好,因为您验证的是实际值,而不仅仅是 XML 的结构。

因此,请试着说服任何要求你这样做的人,这是不需要的。

如果您坚持要执行 XML 模式验证,那么请像您已经在尝试的那样使用 Java 代码。 首先让它在没有空手道的情况下作为普通的 Java 测试或main方法工作。然后,您可以轻松集成到空手道中,请参阅文档:https://github.com/intuit/karate#calling-java

否则,这不是一个真正与空手道有关的问题。

最新更新