Java 使用restasured根据XSD列表验证xml响应/字符串

Java 使用restasured根据XSD列表验证xml响应/字符串,java,xml,validation,xsd,rest-assured,Java,Xml,Validation,Xsd,Rest Assured,我试图验证从重启中检索到的XML响应,该响应包含在中引用的XSD列表 我试过了 given().param(...).when().get(URL).then().assertThat().body(matchesXsd(xsd)) 如果我有一个包含所有模式定义的XSDs文件,那么这是可行的,但是我怎么能有多个XSD呢?这些XSD本身也会被引用。此外,所有XSD都是项目的本地XSD 我尝试了很多次,但不是与我的目标无关就是对我无效。我通过以下方式解决了这个问题: given().param(

我试图验证从重启中检索到的XML响应,该响应包含在中引用的XSD列表

我试过了

 given().param(...).when().get(URL).then().assertThat().body(matchesXsd(xsd))
如果我有一个包含所有模式定义的XSDs文件,那么这是可行的,但是我怎么能有多个XSD呢?这些XSD本身也会被引用。此外,所有XSD都是项目的本地XSD

我尝试了很多次,但不是与我的目标无关就是对我无效。

我通过以下方式解决了这个问题:

given().param(…).when().get(URL).then().assertThat().body(matchesXsd(getSystemResourceAsStream(“parent.xsd”))。使用(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);
    }
}