我正在嘗試執行xml驗證。我在運行時給出了一個模式列表(可能用jar包裝)。根據我向SchemaFactory提供架構的順序,驗證通過或失敗。驗證XML在運行時加載架構,失敗取決於架構順序
下面是我在做什麼:
private void validateXml(String xml, List<URI> schemas){
Source[] source = new StreamSource[schemas.size()];
int i=0;
for (URI f : schemas){
source[i++] = new StreamSource(f.openStream());
}
SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NA_URI);
sf.setResourceResolver(new MyClassPathResourceResolver());
Schema schema = schemaFactory.newSchema(source);
Validator validator = schema.newValidator();
validator.validate(new StreamSource(new ByteArrayInputStream(xml.getBytes()));
又來了,這如果傳遞的集架構不架構開始未能將XML referrs的根元素。有沒有解決這個問題,還是我做錯了什麼?
你可以在哪裏發佈模式和XML嗎? – davidfmatheson 2012-08-22 12:46:16
@davidfmatheson不幸的是,這是不可能的,我可以說它是一組模式,根模式和第二模式,它們允許用不同的標記替換第一模式的主體。 – 2012-08-22 12:54:01