我正在使用Karate dsl框架
来自动处理肥皂请求,我想使用XML Schema(XSD)验证XML格式的响应。
我需要模式。java调用它的代码和函数。功能文件。我尝试使用RESTAPI和空手道演示来验证json模式,并找到了正确的结果,但soap(xml、xsd)没有得到。我正在尝试这个模式。用于XSD验证的java。
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采用相同的方法:<代码>模式。功能 。
通常在Karate中,您不需要进行JSON或XML模式验证,因为Karate有更简单的方法。实际上,当您使用XML来匹配
响应时,这比模式验证更好,因为您正在验证实际值,而不仅仅是XML的结构。
所以请试着说服要求你这么做的人,这是不需要的。
如果您坚持要进行XML模式验证,那么请像您已经尝试的那样使用Java代码。让它在没有空手道的情况下首先作为一个普通的Java测试或主方法工作。然后您可以轻松融入空手道,请参阅以下文档:https://github.com/intuit/karate#calling-爪哇
否则,这并不是一个与空手道有关的问题。
我有一个肥皂信封 肥皂xsd只是的本地版本http://schemas.xmlsoap.org/soap/envelope/保存到soap。xsd 当我尝试验证这一点时,它表示根据targetAction,架构目标不正确 所有试验和错误都指向xmlns: xsi标记给出错误 我想知道这是否与SOAP 1.0和1.1有关 (我已经能够用完全相同的方法验证soap中的xml)我很确定这可以在一个元素中
使用https://www.freeformatter.com/xml-validator-xsd.html 如果我将soapenf完全从这里的响应和模式的混合中去掉,它工作得很好,但我希望两者都能做到。 (仅供参考,我想指出这个wsdl和xsd没有在endpoint上公开,CISCO提供了wsdl和xsd文件的zip文件)然后您可以根据wsdl/xsd向服务器发送请求,它会工作。但是wsdl和x
我一直在验证下面的回答。 当我使用空手道发出获取请求时,我会得到以下响应,我想验证它。 我试过: 它说它不是字符串。你能帮我确认一下这个请求吗?
我正在使用空手道验证GET请求的整个json响应。 下面是来自请求的json响应示例(我只为items显示了两个元素) 以下是我试图验证的方式: 但是,我得到了一个断言错误:
我得到的答复如下: 如何提取属性xmlns为https://www.w3schools.com/xml/的值? def response=“”“ soap:body37.77777777777778”“
我试图验证非json格式的错误响应体。我尝试了使用模式以及使用包含匹配的关键字。这对我不起作用。 在post调用中观察到多个匹配时从API返回的实际响应: 我的空手道特点: 尝试*匹配实际的[0] == '#(^partSchema)'也从https://gist.github.com/ptrthomas/2a1e30bcb4d782279019b3d5c10b3ed1。不工作