Java 使用restasured根据XSD列表验证xml响应/字符串
我试图验证从重启中检索到的XML响应,该响应包含在中引用的XSD列表 我试过了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(
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);
}
}