如何用空手道dsl中的肥皂响应(xml)验证xml模式(XSD)

问题描述 投票:-1回答:1

我正在使用Karate dsl framework自动执行肥皂请求,我想用XML Schema(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;
    }
java soap xsd xsd-validation karate
1个回答
0
投票

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

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

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

如果您坚持要进行XML Schema验证,请像已经尝试使用Java代码那样进行操作。首先将其作为空手测试或match方法在没有空手道的情况下运行即可。然后,您可以轻松地集成到空手道中,请参考文档:main

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

© www.soinside.com 2019 - 2024. All rights reserved.