2017-07-27 6 views
1

RestAssuredから取得したXML応答を、参照されているXSDのリストで検証しようとしています。RestAssuredを使用してxsdsのリストに対してXML応答/文字列を検証する

私はすべてのスキーマ定義を含む1つのXSDファイルを持っていますが、どのように、私は複数のXSDを持つことができる場合、これは動作します

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

を試してみましたか?これらのXSDも、それらの内部で参照されます。また、すべてのXSDはプロジェクトのローカルです。

私はRest-Assured XSD References Other XSDsValidate an XML File Against Multiple Schema Definitionsと少数を試しましたが、私の目標とは無関係であったか、私のために働いていませんでした。

答えて

0

私はでそれを解決:ClasspathResourceResolverは親XSDからすべての参照を解決し

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

`

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

`

関連する問題