67 |
67 |
68 ErrorReceiverFilter errorFilter = new ErrorReceiverFilter(errorHandler); |
68 ErrorReceiverFilter errorFilter = new ErrorReceiverFilter(errorHandler); |
69 boolean hadErrors = false; |
69 boolean hadErrors = false; |
70 |
70 |
71 SchemaFactory sf = XmlFactory.createSchemaFactory(W3C_XML_SCHEMA_NS_URI, disableXmlSecurity); |
71 SchemaFactory sf = XmlFactory.createSchemaFactory(W3C_XML_SCHEMA_NS_URI, disableXmlSecurity); |
|
72 XmlFactory.allowExternalAccess(sf, "all", disableXmlSecurity); |
72 sf.setErrorHandler(errorFilter); |
73 sf.setErrorHandler(errorFilter); |
73 if( entityResolver != null ) { |
74 if( entityResolver != null ) { |
74 sf.setResourceResolver(new LSResourceResolver() { |
75 sf.setResourceResolver(new LSResourceResolver() { |
75 public LSInput resolveResource(String type, String namespaceURI, String publicId, String systemId, String baseURI) { |
76 public LSInput resolveResource(String type, String namespaceURI, String publicId, String systemId, String baseURI) { |
76 try { |
77 try { |
89 } |
90 } |
90 }); |
91 }); |
91 } |
92 } |
92 |
93 |
93 try { |
94 try { |
|
95 XmlFactory.allowExternalDTDAccess(sf, "all", disableXmlSecurity); |
94 sf.newSchema(getSchemaSource(schemas, entityResolver)); |
96 sf.newSchema(getSchemaSource(schemas, entityResolver)); |
95 } catch (SAXException e) { |
97 } catch (SAXException e) { |
96 // TODO: we haven't thrown exceptions from here before. should we just trap them and return false? |
98 // TODO: we haven't thrown exceptions from here before. should we just trap them and return false? |
97 hadErrors = true; |
99 hadErrors = true; |
98 } catch( OutOfMemoryError e) { |
100 } catch( OutOfMemoryError e) { |