1
22
23 package com.liferay.portal.util;
24
25 import org.apache.commons.logging.Log;
26 import org.apache.commons.logging.LogFactory;
27
28 import org.dom4j.io.SAXReader;
29
30
36 public class SAXReaderFactory {
37
38 public static SAXReader getInstance() {
39 return getInstance(true);
40 }
41
42 public static SAXReader getInstance(boolean validate) {
43
44
50 SAXReader reader = null;
51
52 try {
53 reader = new SAXReader(_SAX_PARSER_IMPL, validate);
54
55 reader.setEntityResolver(new EntityResolver());
56
57 reader.setFeature(_FEATURES_VALIDATION, validate);
58 reader.setFeature(_FEATURES_VALIDATION_SCHEMA, validate);
59 reader.setFeature(
60 _FEATURES_VALIDATION_SCHEMA_FULL_CHECKING, validate);
61 reader.setFeature(_FEATURES_DYNAMIC, validate);
62 }
63 catch (Exception e) {
64 _log.warn("XSD validation is diasabled because " + e.getMessage());
65
66 reader = new SAXReader(validate);
67
68 reader.setEntityResolver(new EntityResolver());
69 }
70
71 return reader;
72 }
73
74 private static final String _SAX_PARSER_IMPL =
75 "org.apache.xerces.parsers.SAXParser";
76
77 private static final String _FEATURES_VALIDATION =
78 "http://xml.org/sax/features/validation";
79
80 private static final String _FEATURES_VALIDATION_SCHEMA =
81 "http://apache.org/xml/features/validation/schema";
82
83 private static final String _FEATURES_VALIDATION_SCHEMA_FULL_CHECKING =
84 "http://apache.org/xml/features/validation/schema-full-checking";
85
86 private static final String _FEATURES_DYNAMIC =
87 "http://apache.org/xml/features/validation/dynamic";
88
89 private static Log _log = LogFactory.getLog(SAXReaderFactory.class);
90
91 }