当前位置: 首页 > 知识库问答 >
问题:

如何在空手道dsl中用soap响应(xml)验证xml模式(XSD)

郭盛
2023-03-14

我正在使用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;
    }

共有1个答案

李俭
2023-03-14

这是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。不工作