forked from phoedos/pmd
Update RuleSetWriter to handle non-Apache TRAX implementations, add an option to not use XML Namespaces
git-svn-id: https://pmd.svn.sourceforge.net/svnroot/pmd/branches/pmd/4.2.x@5992 51baf565-9d33-0410-a72c-fc3788e3496d
This commit is contained in:
parent
159cbfa9e9
commit
7a3d8ceb9a
@ -4,6 +4,7 @@
|
||||
Fixed bug 1928009 - Error using migration ruleset in PMD 4.2
|
||||
Fixed bug 1932242 - EmptyMethodInAbstractClassShouldBeAbstract false +
|
||||
ruleset.dtd and ruleset_xml_schema.xsd added to jar file in rulesets directory
|
||||
Update RuleSetWriter to handle non-Apache TRAX implementations, add an option to not use XML Namespaces
|
||||
|
||||
March 25, 2008 - 4.2:
|
||||
|
||||
|
@ -30,11 +30,17 @@ import org.w3c.dom.Text;
|
||||
*/
|
||||
public class RuleSetWriter {
|
||||
private final OutputStream outputStream;
|
||||
private final boolean outputNamespace;
|
||||
private Document document;
|
||||
private Set<String> ruleSetFileNames;
|
||||
|
||||
public RuleSetWriter(OutputStream outputStream) {
|
||||
this(outputStream, true);
|
||||
}
|
||||
|
||||
public RuleSetWriter(OutputStream outputStream, boolean outputNamespace) {
|
||||
this.outputStream = outputStream;
|
||||
this.outputNamespace = outputNamespace;
|
||||
}
|
||||
|
||||
public void close() throws IOException {
|
||||
@ -57,7 +63,11 @@ public class RuleSetWriter {
|
||||
transformer.setOutputProperty(OutputKeys.METHOD, "xml");
|
||||
// This is as close to pretty printing as we'll get using standard Java APIs.
|
||||
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
|
||||
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "3");
|
||||
try {
|
||||
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "3");
|
||||
} catch (IllegalArgumentException e) {
|
||||
// Not Apache
|
||||
}
|
||||
transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
|
||||
transformer.transform(new DOMSource(document), new StreamResult(outputStream));
|
||||
} catch (DOMException e) {
|
||||
@ -73,11 +83,15 @@ public class RuleSetWriter {
|
||||
|
||||
private Element createRuleSetElement(RuleSet ruleSet) {
|
||||
Element ruleSetElement = document.createElement("ruleset");
|
||||
ruleSetElement.setAttribute("xmlns", "http://pmd.sf.net/ruleset/1.0.0");
|
||||
ruleSetElement.setAttributeNS("http://www.w3.org/2001/XMLSchema-instance", "xsi:schemaLocation",
|
||||
"http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd");
|
||||
ruleSetElement.setAttributeNS("http://www.w3.org/2001/XMLSchema-instance", "xsi:noNamespaceSchemaLocation",
|
||||
"http://pmd.sf.net/ruleset_xml_schema.xsd");
|
||||
if (outputNamespace) {
|
||||
ruleSetElement.setAttribute("language", ruleSet.getLanguage().getName());
|
||||
// TODO Should we keep track of schema versions?
|
||||
ruleSetElement.setAttribute("xmlns", "http://pmd.sf.net/ruleset/1.0.0");
|
||||
ruleSetElement.setAttributeNS("http://www.w3.org/2001/XMLSchema-instance", "xsi:schemaLocation",
|
||||
"http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd");
|
||||
ruleSetElement.setAttributeNS("http://www.w3.org/2001/XMLSchema-instance", "xsi:noNamespaceSchemaLocation",
|
||||
"http://pmd.sf.net/ruleset_xml_schema.xsd");
|
||||
}
|
||||
ruleSetElement.setAttribute("name", ruleSet.getName());
|
||||
|
||||
if (ruleSet.getLanguage() != null) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user