【问题标题】:how to validate xml schema (XSD) with soap response (xml) in karate dsl如何在空手道 dsl 中使用肥皂响应 (xml) 验证 xml 架构 (XSD)
【发布时间】:2019-09-29 06:33:28
【问题描述】:

我正在使用Karate dsl framework 来自动执行肥皂请求, 我想使用 XML Schema (XSD) 验证 XML 格式的响应。

我需要SchemaUtil.java 代码和函数才能在 .feature 文件中调用它。我尝试使用 Rest API,karate demo 来验证 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;
    }

【问题讨论】:

    标签: java soap xsd xsd-validation karate


    【解决方案1】:

    这是 JSON 模式的示例,请尝试对 XML 遵循相同的方法:schema.feature

    通常在空手道中您不需要进行 JSON 或 XML 模式验证,因为空手道有一个更简单的方法。实际上,当您使用 XML 到 match 响应时,这比模式验证更好,因为您正在验证实际值,而不仅仅是 XML 的结构。

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

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

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

    【讨论】:

      猜你喜欢
      • 2017-11-09
      • 2012-09-16
      • 1970-01-01
      • 1970-01-01
      • 2012-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多