我已經在這個問題上存在了一段時間,但仍然無法完成它。我有一個使用XML Schema文件的Java項目,這些文件通過導入連接。所有這些都在同一水平的有效資源目錄,所以我使用類似:文件 schema.xsd當資源被路徑綁定時使用Java getResource
<xs:import schemaLocation="types.xsd"/>
導入一個從另一個。現在,當我搶的
getResourceAsStream(absolutePath)
架構來驗證它,我可以加載它的所有權利;問題在於驗證程序將在主項目目錄中尋找導入的 types.xsd而不是資源目錄。有沒有辦法解決這個問題,而不必硬編碼schemaLocation中的相對(構建結構相關)路徑?
你使用了什麼Validator?另外,它看起來像是將文件流傳遞給驗證器,所以它無法知道文件的位置。也許有一個setter或另一個構造函數需要一個文件或一個字符串路徑? – Luciano
是的,傳遞一個字符串有竅門!它現在看起來很簡單,非常感謝! ;) 我使用的'javax.xml.validation.Validator'在我的配置中是SAX。 –