【问题标题】:Validate xml response/string against list of xsds using RestAssured使用 RestAssured 针对 xsd 列表验证 xml 响应/字符串
【发布时间】:2018-01-02 15:14:28
【问题描述】:

我正在尝试使用其中引用的 XSD 列表验证从 RestAssured 检索到的 XML 响应。

我试过了

 given().param(...).when().get(URL).then().assertThat().body(matchesXsd(xsd))

如果我有一个包含所有架构定义的 XSD 文件,这将有效,但我如何才能拥有多个 XSD?这些 XSD 在其内部也被引用。此外,所有 XSD 都是项目本地的。

我尝试了 Rest-Assured XSD References Other XSDsValidate an XML File Against Multiple Schema Definitions 等等,但它们要么与我的目标无关,要么对我不起作用。

【问题讨论】:

    标签: java xml validation xsd rest-assured


    【解决方案1】:

    我解决了这个问题:

    given().param(...).when().get(URL).then().assertThat().body(matchesXsd(getSystemResourceAsStream("parent.xsd")).using(new ClasspathResourceResolver()));

    ClasspathResourceResolver 解析来自父 XSD 的所有引用。

    `

    public class ClasspathResourceResolver implements LSResourceResolver {
    
        @Override
        public LSInput resolveResource(String type, String namespaceURI, String publicId, String systemId, String baseURI) {
            InputStream resource = getSystemResourceAsStream(systemId);
            return new DOMInputImpl(publicId, systemId, baseURI, resource, null);
        }
    }
    

    `

    【讨论】:

      猜你喜欢
      • 2013-07-30
      • 1970-01-01
      • 2014-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-09
      • 2020-01-20
      • 1970-01-01
      相关资源
      最近更新 更多