Skip to content

Commit

Permalink
#44 Default SAXParser features are set when SAXParser is created, so …
Browse files Browse the repository at this point in the history
…they can be overriden.
  • Loading branch information
FilipJirsak committed Jul 1, 2018
1 parent 92d8795 commit 161078a
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 22 deletions.
15 changes: 15 additions & 0 deletions src/main/java/org/dom4j/io/SAXHelper.java
Expand Up @@ -103,6 +103,21 @@ public static XMLReader createXMLReader(boolean validating)
throw new SAXException("Couldn't create SAX reader");
}

// configure namespace support
SAXHelper.setParserFeature(reader, "http://xml.org/sax/features/namespaces", true);
SAXHelper.setParserFeature(reader, "http://xml.org/sax/features/namespace-prefixes", false);

// external entites
// SAXHelper.setParserFeature(reader, "http://xml.org/sax/properties/external-general-entities", false);
// SAXHelper.setParserFeature(reader, "http://xml.org/sax/properties/external-parameter-entities", false);

// external DTD
SAXHelper.setParserFeature(reader,"http://apache.org/xml/features/nonvalidating/load-external-dtd", false);


// use Locator2 if possible
SAXHelper.setParserFeature(reader,"http://xml.org/sax/features/use-locator2", true);

return reader;
}

Expand Down
23 changes: 1 addition & 22 deletions src/main/java/org/dom4j/io/SAXReader.java
Expand Up @@ -65,11 +65,7 @@
public class SAXReader {
private static final String SAX_STRING_INTERNING =
"http://xml.org/sax/features/string-interning";
private static final String SAX_NAMESPACE_PREFIXES =
"http://xml.org/sax/features/namespace-prefixes";
private static final String SAX_NAMESPACES =
"http://xml.org/sax/features/namespaces";
private static final String SAX_DECL_HANDLER =
private static final String SAX_DECL_HANDLER =
"http://xml.org/sax/properties/declaration-handler";
private static final String SAX_LEXICAL_HANDLER =
"http://xml.org/sax/properties/lexical-handler";
Expand Down Expand Up @@ -902,27 +898,10 @@ protected void configureReader(XMLReader reader, DefaultHandler handler)
SAXHelper.setParserProperty(reader, SAX_DECL_HANDLER, handler);
}

// configure namespace support
SAXHelper.setParserFeature(reader, SAX_NAMESPACES, true);

SAXHelper.setParserFeature(reader, SAX_NAMESPACE_PREFIXES, false);

// string interning
SAXHelper.setParserFeature(reader, SAX_STRING_INTERNING,
isStringInternEnabled());

// external entites
/*
* SAXHelper.setParserFeature( reader,
* "http://xml.org/sax/properties/external-general-entities",
* includeExternalGeneralEntities ); SAXHelper.setParserFeature( reader,
* "http://xml.org/sax/properties/external-parameter-entities",
* includeExternalParameterEntities );
*/
// use Locator2 if possible
SAXHelper.setParserFeature(reader,
"http://xml.org/sax/features/use-locator2", true);

try {
// configure validation support
reader.setFeature("http://xml.org/sax/features/validation",
Expand Down
2 changes: 2 additions & 0 deletions src/test/java/org/dom4j/io/DTDTest.java
Expand Up @@ -445,6 +445,8 @@ protected Document readDocument(String resourceName,
reader.setEntityResolver(new MyEntityResolver(DTD_FILE,
DTD_PUBLICID, DTD_SYSTEM_ID));

reader.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", true);

return getDocument(resourceName, reader);
}

Expand Down

0 comments on commit 161078a

Please sign in to comment.