Java 如何在SAXParserFactory上设置useCatalog功能?

Java 如何在SAXParserFactory上设置useCatalog功能?,java,xml,sax,Java,Xml,Sax,编辑:通过从build.gradle中删除xercesImpl jar解决 我试图在SAXParserFactory实例上设置useCatalog功能。在我的测试中,我回来了 SAXNotRecognizedException:功能'http://javax.xml.XMLConstants/feature/useCatalog'未被识别。 设置SAXParserFactory的useCatalog功能的正确方法是什么 我还试图在SAXParser上设置CATALOG\u文件属性,但测试返回 S

编辑:通过从build.gradle中删除xercesImpl jar解决

我试图在
SAXParserFactory
实例上设置useCatalog功能。在我的测试中,我回来了

SAXNotRecognizedException:功能'http://javax.xml.XMLConstants/feature/useCatalog'未被识别。

设置SAXParserFactory的useCatalog功能的正确方法是什么

我还试图在
SAXParser
上设置
CATALOG\u文件
属性,但测试返回

SAXNotRecognizedException:无法识别属性“javax.xml.catalog.files”。

SAXParser
上设置catalog属性的正确方法是什么

我的示例代码遵循为
XMLConstants提供的JavaDoc示例

private static final String CATALOG_FILE = CatalogFeatures.Feature.FILES.getPropertyName();
private static final String CATALOG_PREFER = CatalogFeatures.Feature.PREFER.getPropertyName();

SAXParserFactory spf = SAXParserFactory.newInstance();
spf.setNamespaceAware(true);
spf.setXIncludeAware(true);
spf.setFeature(XMLConstants.USE_CATALOG, true);
SAXParser parser = spf.newSAXParser();

if (catalogURIs.size() > 0) {
    List<URI> catalogUriList = new ArrayList<>();

    for (String uriString : catalogURIs) {
        catalogUriList.add(URI.create(uriString));
    }

    CatalogResolver resolver =
            CatalogManager.catalogResolver(CatalogFeatures.defaults(),
            catalogUriList.toArray(new URI[catalogUriList.size()]));
    parser.setProperty(CATALOG_FILE, resolver);
    parser.setProperty(CATALOG_PREFER, "system");
}
private static final String CATALOG_FILE=CatalogFeatures.Feature.FILES.getPropertyName();
私有静态最终字符串CATALOG_preference=CatalogFeatures.Feature.preference.getPropertyName();
SAXParserFactory spf=SAXParserFactory.newInstance();
spf.setNamespaceAware(true);
spf.setXIncludeAware(真);
setFeature(xmlstants.USE_CATALOG,true);
SAXParser=spf.newSAXParser();
如果(catalogris.size()>0){
列表目录列表=新的ArrayList();
for(字符串uriString:catalogris){
catalogilist.add(URI.create(uriString));
}
目录分解器分解器=
CatalogManager.catalogResolver(CatalogFeatures.Default(),
catalogilist.toArray(新URI[catalogilist.size()]);
setProperty(目录文件,解析器);
setProperty(CATALOG_PREFER,“system”);
}

通过从build.gradle中删除xercesImpl jar解决。