有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我正在使用Karate dsl framework自动执行soap请求, 我想用XMLSchema(XSD)验证XML格式的响应

我需要SchemaUtil.java代码和函数来调用它。功能文件。我尝试使用RESTAPI和空手道演示来验证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;
    }

共 (1) 个答案

  1. # 1 楼答案

    这是JSON模式的一个示例,请尝试对XML采用相同的方法:^{}

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

    所以请试着说服要求你这么做的人,这是不必要的

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

    否则,这就不是空手道的问题了