为什么在设置 isSupportingExternalEntities 时出现 SAXNotRecognizedException?
Why I am getting SAXNotRecognizedException while setting isSupportingExternalEntities?
我收到 SAXNotRecognizedException,同时尝试在 Java 8
中设置 'isSupportingExternalEntities' 的 属性
final SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
sf.setProperty(XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES, Boolean.FALSE);
异常:
org.xml.sax.SAXNotRecognizedException: 属性 'javax.xml.stream.isSupportingExternalEntities' 无法识别。
我猜你用错了 属性 SchemeFactory。根据 OWASP docs 你应该使用下面的代码
SchemaFactory factory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
factory.setProperty(XMLConstants.ACCESS_EXTERNAL_DTD, "");
factory.setProperty(XMLConstants.ACCESS_EXTERNAL_SCHEMA, "");
Schema schema = factory.newSchema(Source);
我收到 SAXNotRecognizedException,同时尝试在 Java 8
中设置 'isSupportingExternalEntities' 的 属性final SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
sf.setProperty(XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES, Boolean.FALSE);
异常:
org.xml.sax.SAXNotRecognizedException: 属性 'javax.xml.stream.isSupportingExternalEntities' 无法识别。
我猜你用错了 属性 SchemeFactory。根据 OWASP docs 你应该使用下面的代码
SchemaFactory factory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
factory.setProperty(XMLConstants.ACCESS_EXTERNAL_DTD, "");
factory.setProperty(XMLConstants.ACCESS_EXTERNAL_SCHEMA, "");
Schema schema = factory.newSchema(Source);