2017-07-27 195 views
1

驗證xml響應/字符串我試圖驗證從RestAssured中檢索到的XML響應列表,其中引用了XSD。使用RestAssured驗證xml響應/字符串列表對xsds列表使用RestAssured

我試圖

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以及更多,但它們或者與我的目標無關,或者不適合我。

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

ClasspathResourceResolver解決從父XSD的所有引用:

回答

0

我要解決它。

`

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); 
    } 
} 

`