]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-2166 Cardinality of checkstyle rule Member Name should be updated to multiple...
authorsimonbrandhof <simon.brandhof@gmail.com>
Thu, 3 Feb 2011 16:54:47 +0000 (17:54 +0100)
committersimonbrandhof <simon.brandhof@gmail.com>
Thu, 3 Feb 2011 16:54:47 +0000 (17:54 +0100)
plugins/sonar-checkstyle-plugin/src/main/resources/org/sonar/plugins/checkstyle/rules.xml
plugins/sonar-findbugs-plugin/src/main/resources/org/sonar/plugins/findbugs/rules.xml
plugins/sonar-pmd-plugin/src/main/resources/org/sonar/plugins/pmd/rules.xml

index 6db384817824a4d64a09a799edac86bc3c5ec488..74bdfd05e8339de2802ef996f6cbfc829d5ef87e 100644 (file)
@@ -1,7 +1,8 @@
  <rules>
 
   <!-- Checkstyle 5.0 -->
-  <rule key="com.puppycrawl.tools.checkstyle.checks.header.HeaderCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.header.HeaderCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Header]]></name>
     <configKey><![CDATA[Checker/Header]]></configKey>
 
@@ -23,7 +24,8 @@
     </param>
   </rule>
 
-  <rule key="com.puppycrawl.tools.checkstyle.checks.header.RegexpHeaderCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.header.RegexpHeaderCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Regexp Header]]></name>
     <configKey><![CDATA[Checker/RegexpHeader]]></configKey>
 
@@ -65,7 +67,8 @@
   </rule>
 
 
-  <rule key="com.puppycrawl.tools.checkstyle.checks.annotation.AnnotationUseStyleCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.annotation.AnnotationUseStyleCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Annotation Use Style]]></name>
     <configKey><![CDATA[Checker/TreeWalker/AnnotationUseStyle]]></configKey>
 
@@ -81,7 +84,8 @@
     </param>
   </rule>
 
-  <rule key="com.puppycrawl.tools.checkstyle.checks.annotation.MissingDeprecatedCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.annotation.MissingDeprecatedCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Missing Deprecated]]></name>
     <configKey><![CDATA[Checker/TreeWalker/MissingDeprecated]]></configKey>
     
@@ -89,7 +93,8 @@
       <![CDATA[Verifies that both the java.lang.Deprecated annotation is present and the @deprecated Javadoc tag is present when either is present.]]></description>
   </rule>
 
-  <rule key="com.puppycrawl.tools.checkstyle.checks.annotation.MissingOverrideCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.annotation.MissingOverrideCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Missing Override]]></name>
     <configKey><![CDATA[Checker/TreeWalker/MissingOverride]]></configKey>
     
     </param>
   </rule>
 
-  <rule key="com.puppycrawl.tools.checkstyle.checks.annotation.PackageAnnotationCheck" priority="MINOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.annotation.PackageAnnotationCheck">
+<priority>MINOR</priority>
     <name><![CDATA[Package Annotation]]></name>
     <configKey><![CDATA[Checker/TreeWalker/PackageAnnotation]]></configKey>
     
 <p>The JLS does not enforce the placement of package annotations. This placement may vary based on implementation. The JLS does highly recommend that all package annotations are placed in the package-info.java file. See <a href="http://java.sun.com/docs/books/jls/third_edition/html/j3TOC.html">Java Language specification, sections 7.4.1.1</a>.</p>]]></description>
   </rule>
 
-  <rule key="com.puppycrawl.tools.checkstyle.checks.annotation.SuppressWarningsCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.annotation.SuppressWarningsCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Suppress Warnings]]></name>
     <configKey><![CDATA[Checker/TreeWalker/SuppressWarnings]]></configKey>
     
@@ -128,7 +135,8 @@ For example: @SupressWarnings((false) ? (true) ? "unchecked" : "foo" : "unused")
     </param>
   </rule>
 
-  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.EqualsAvoidNullCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.EqualsAvoidNullCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Equals Avoid Null]]></name>
     <configKey><![CDATA[Checker/TreeWalker/EqualsAvoidNull]]></configKey>
     
@@ -161,7 +169,8 @@ should be refactored to:
   </rule>
 
 
-<rule key="com.puppycrawl.tools.checkstyle.checks.coding.NoCloneCheck" priority="MAJOR">
+<rule key="com.puppycrawl.tools.checkstyle.checks.coding.NoCloneCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[No Clone Check]]></name>
     <configKey><![CDATA[Checker/TreeWalker/NoCloneCheck]]></configKey>
     
@@ -207,14 +216,16 @@ should be refactored to:
   </rule>
 
 
-  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.NoFinalizerCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.NoFinalizerCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[No Finalizer]]></name>
     <configKey><![CDATA[Checker/TreeWalker/NoFinalizer]]></configKey>
     
     <description><![CDATA[<p>Verifies there are no finalize() methods defined in a class.</p>]]></description>
   </rule>
 
-  <rule key="com.puppycrawl.tools.checkstyle.checks.imports.AvoidStaticImportCheck" priority="MINOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.imports.AvoidStaticImportCheck">
+<priority>MINOR</priority>
     <name><![CDATA[Avoid Static Import]]></name>
     <configKey><![CDATA[Checker/TreeWalker/AvoidStaticImport]]></configKey>
     
@@ -227,7 +238,8 @@ For example: Excluding java.lang.Math.*. will allow the import of each static me
     </param>
   </rule>
 
-  <rule key="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocPackageCheck" priority="MINOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocPackageCheck">
+<priority>MINOR</priority>
     <name><![CDATA[Javadoc Package]]></name>
     <configKey><![CDATA[Checker/JavadocPackage]]></configKey>
     
@@ -238,7 +250,8 @@ For example: Excluding java.lang.Math.*. will allow the import of each static me
     </param>
   </rule>
 
-  <rule key="com.puppycrawl.tools.checkstyle.checks.regexp.RegexpMultilineCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.regexp.RegexpMultilineCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Regexp Multiline]]></name>
     <configKey><![CDATA[Checker/RegexpMultiline]]></configKey>
     
@@ -261,7 +274,8 @@ For example: Excluding java.lang.Math.*. will allow the import of each static me
     </param>
   </rule>
 
-  <rule key="com.puppycrawl.tools.checkstyle.checks.regexp.RegexpSinglelineCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.regexp.RegexpSinglelineCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Regexp Singleline]]></name>
     <configKey><![CDATA[Checker/RegexpSingleline]]></configKey>
     
@@ -284,7 +298,8 @@ For example: Excluding java.lang.Math.*. will allow the import of each static me
     </param>
   </rule>
 
-  <rule key="com.puppycrawl.tools.checkstyle.checks.regexp.RegexpSinglelineJavaCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.regexp.RegexpSinglelineJavaCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Regexp Singleline Java]]></name>
     <configKey><![CDATA[Checker/TreeWalker/RegexpSinglelineJava]]></configKey>
     
@@ -310,7 +325,8 @@ For example: Excluding java.lang.Math.*. will allow the import of each static me
     </param>
   </rule>
 
-  <rule key="com.puppycrawl.tools.checkstyle.checks.sizes.OuterTypeNumberCheck" priority="MINOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.sizes.OuterTypeNumberCheck">
+<priority>MINOR</priority>
     <name><![CDATA[Outer Type Number]]></name>
     <configKey><![CDATA[Checker/TreeWalker/OuterTypeNumber]]></configKey>
 
@@ -320,7 +336,8 @@ For example: Excluding java.lang.Math.*. will allow the import of each static me
     </param>
   </rule>
 
-  <rule key="com.puppycrawl.tools.checkstyle.checks.whitespace.FileTabCharacterCheck" priority="MINOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.whitespace.FileTabCharacterCheck">
+<priority>MINOR</priority>
     <name><![CDATA[File Tab Character]]></name>
     <configKey><![CDATA[Checker/FileTabCharacter]]></configKey>
 
@@ -334,7 +351,8 @@ For example: Excluding java.lang.Math.*. will allow the import of each static me
     </param>
   </rule>
 
-  <rule key="com.puppycrawl.tools.checkstyle.checks.whitespace.GenericWhitespaceCheck" priority="MINOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.whitespace.GenericWhitespaceCheck">
+<priority>MINOR</priority>
     <name><![CDATA[Generic Whitespace]]></name>
     <configKey><![CDATA[Checker/TreeWalker/GenericWhitespace]]></configKey>
 
@@ -359,7 +377,8 @@ But the following example is not:
   <!-- Checkstyle 4.4 and less -->
   
   
-  <rule key="com.puppycrawl.tools.checkstyle.checks.metrics.JavaNCSSCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.metrics.JavaNCSSCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[JavaNCSS]]></name>
     <configKey><![CDATA[Checker/TreeWalker/JavaNCSS]]></configKey>
     
@@ -383,7 +402,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
     </param>
   </rule>
 
-  <rule key="com.puppycrawl.tools.checkstyle.checks.imports.RedundantImportCheck" priority="MINOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.imports.RedundantImportCheck">
+<priority>MINOR</priority>
     <name><![CDATA[Redundant import]]></name>
     <configKey><![CDATA[Checker/TreeWalker/RedundantImport]]></configKey>
 
@@ -395,7 +415,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
 ]]></description>
   </rule>
 
-  <rule key="com.puppycrawl.tools.checkstyle.checks.naming.AbstractClassNameCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.naming.AbstractClassNameCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Abstract Class Name]]></name>
     <configKey><![CDATA[Checker/TreeWalker/AbstractClassName]]></configKey>
 
@@ -406,7 +427,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
         <![CDATA[Validates identifiers for abstract classes. Default is ^Abstract.*$|^.*Factory$]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.sizes.AnonInnerLengthCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.sizes.AnonInnerLengthCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Anon Inner Length]]></name>
     <configKey><![CDATA[Checker/TreeWalker/AnonInnerLength]]></configKey>
     
@@ -415,13 +437,15 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
       <description><![CDATA[maximum allowable number of lines. Default is 20.]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.ArrayTrailingCommaCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.ArrayTrailingCommaCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Array Trailing Comma]]></name>
     <configKey><![CDATA[Checker/TreeWalker/ArrayTrailingComma]]></configKey>
 
     <description><![CDATA[Checks if array initialization contains optional trailing comma.]]></description>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.ArrayTypeStyleCheck" priority="MINOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.ArrayTypeStyleCheck">
+<priority>MINOR</priority>
     <name><![CDATA[Array Type Style]]></name>
     <configKey><![CDATA[Checker/TreeWalker/ArrayTypeStyle]]></configKey>
 
@@ -432,13 +456,15 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
         <![CDATA[Controls whether to enforce Java style (true) or C style (false). Default is true.]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.AvoidInlineConditionalsCheck" priority="MINOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.AvoidInlineConditionalsCheck">
+<priority>MINOR</priority>
     <name><![CDATA[Avoid Inline Conditionals]]></name>
     <configKey><![CDATA[Checker/TreeWalker/AvoidInlineConditionals]]></configKey>
 
     <description><![CDATA[Detects inline conditionals.]]></description>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.blocks.AvoidNestedBlocksCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.blocks.AvoidNestedBlocksCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Avoid Nested Blocks]]></name>
     <configKey><![CDATA[Checker/TreeWalker/AvoidNestedBlocks]]></configKey>
 
@@ -447,7 +473,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
       <description><![CDATA[Allow nested blocks in case statements. Default is false.]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.imports.AvoidStarImportCheck" priority="MINOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.imports.AvoidStarImportCheck">
+<priority>MINOR</priority>
     <name><![CDATA[Avoid Star Import]]></name>
     <configKey><![CDATA[Checker/TreeWalker/AvoidStarImport]]></configKey>
     
@@ -457,7 +484,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
         <![CDATA[packages where star imports are allowed. Note that this property is not recursive, subpackages of excluded packages are not automatically excluded.]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.metrics.BooleanExpressionComplexityCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.metrics.BooleanExpressionComplexityCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Boolean Expression Complexity]]></name>
     <configKey><![CDATA[Checker/TreeWalker/BooleanExpressionComplexity]]></configKey>
     
@@ -471,7 +499,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
       <description><![CDATA[tokens to check. Default is LAND,BAND,LOR,BOR,BXOR.]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.metrics.ClassDataAbstractionCouplingCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.metrics.ClassDataAbstractionCouplingCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Class Data Abstraction Coupling]]></name>
     <configKey><![CDATA[Checker/TreeWalker/ClassDataAbstractionCoupling]]></configKey>
     
@@ -481,7 +510,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
       <description><![CDATA[the maximum threshold allowed. Default is 7.]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.metrics.ClassFanOutComplexityCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.metrics.ClassFanOutComplexityCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Class Fan Out Complexity]]></name>
     <configKey><![CDATA[Checker/TreeWalker/ClassFanOutComplexity]]></configKey>
     
@@ -490,7 +520,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
       <description><![CDATA[the maximum threshold allowed. Default is 20.]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.naming.ConstantNameCheck" priority="MINOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.naming.ConstantNameCheck">
+<priority>MINOR</priority>
     <name><![CDATA[Constant Name]]></name>
     <configKey><![CDATA[Checker/TreeWalker/ConstantName]]></configKey>
 
@@ -501,14 +532,16 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
         <![CDATA[Validates identifiers for constants (static,  final fields). Default is ^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.CovariantEqualsCheck" priority="CRITICAL">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.CovariantEqualsCheck">
+<priority>CRITICAL</priority>
     <name><![CDATA[Covariant Equals]]></name>
     <configKey><![CDATA[Checker/TreeWalker/CovariantEquals]]></configKey>
     
     <description>
       <![CDATA[Checks that if a class defines a covariant method equals, then it defines method equals(java.lang.Object).]]></description>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.metrics.CyclomaticComplexityCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.metrics.CyclomaticComplexityCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Cyclomatic Complexity]]></name>
     <configKey><![CDATA[Checker/TreeWalker/CyclomaticComplexity]]></configKey>
     
@@ -518,33 +551,38 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
       <description><![CDATA[the maximum threshold allowed. Default is 10.]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.DeclarationOrderCheck" priority="INFO">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.DeclarationOrderCheck">
+<priority>INFO</priority>
     <name><![CDATA[Declaration Order]]></name>
     <configKey><![CDATA[Checker/TreeWalker/DeclarationOrder]]></configKey>
 
     <description>
       <![CDATA[Checks that the parts of a class or interface declaration appear in the order suggested by the Code Convention for the Java Programming Language : <ul><li>Class (static) variables. First the public class variables, then the protected, then package level (no access modifier), and then the private.</li><li>Instance variables. First the public class variables, then the protected, then package level (no access modifier), and then the private.</li><li>Constructors</li><li>Methods</li></ul>]]></description>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.DefaultComesLastCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.DefaultComesLastCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Default Comes Last]]></name>
     <configKey><![CDATA[Checker/TreeWalker/DefaultComesLast]]></configKey>
 
     <description><![CDATA[Check that the default is after all the cases in a switch statement.]]></description>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.design.DesignForExtensionCheck" priority="MINOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.design.DesignForExtensionCheck">
+<priority>MINOR</priority>
     <name><![CDATA[Design For Extension]]></name>
     <configKey><![CDATA[Checker/TreeWalker/DesignForExtension]]></configKey>
     
     <description><![CDATA[Checks that classes are designed for inheritance.]]></description>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.DoubleCheckedLockingCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.DoubleCheckedLockingCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Double Checked Locking]]></name>
     <configKey><![CDATA[Checker/TreeWalker/DoubleCheckedLocking]]></configKey>
     
     <description>
       <![CDATA[Detect the double-checked locking idiom, a technique that tries to avoid synchronization overhead but is incorrect because of subtle artifacts of the java memory model.]]></description>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.blocks.EmptyBlockCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.blocks.EmptyBlockCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Empty Block]]></name>
     <configKey><![CDATA[Checker/TreeWalker/EmptyBlock]]></configKey>
     
@@ -557,7 +595,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
       <description><![CDATA[blocks to check]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.whitespace.EmptyForInitializerPadCheck" priority="MINOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.whitespace.EmptyForInitializerPadCheck">
+<priority>MINOR</priority>
     <name><![CDATA[Empty For Initializer Pad]]></name>
     <configKey><![CDATA[Checker/TreeWalker/EmptyForInitializerPad]]></configKey>
 
@@ -567,7 +606,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
       <description><![CDATA[policy on how to pad an empty for iterator]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.whitespace.EmptyForIteratorPadCheck" priority="MINOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.whitespace.EmptyForIteratorPadCheck">
+<priority>MINOR</priority>
     <name><![CDATA[Empty For Iterator Pad]]></name>
     <configKey><![CDATA[Checker/TreeWalker/EmptyForIteratorPad]]></configKey>
 
@@ -577,19 +617,22 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
       <description><![CDATA[policy on how to pad an empty for iterator]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.EmptyStatementCheck" priority="MINOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.EmptyStatementCheck">
+<priority>MINOR</priority>
     <name><![CDATA[Empty Statement]]></name>
     <configKey><![CDATA[Checker/TreeWalker/EmptyStatement]]></configKey>
     
     <description><![CDATA[Detects empty statements (standalone ';').]]></description>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.EqualsHashCodeCheck" priority="CRITICAL">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.EqualsHashCodeCheck">
+<priority>CRITICAL</priority>
     <name><![CDATA[Equals Hash Code]]></name>
     <configKey><![CDATA[Checker/TreeWalker/EqualsHashCode]]></configKey>
     
     <description><![CDATA[Checks that classes that override equals() also override hashCode().]]></description>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.sizes.ExecutableStatementCountCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.sizes.ExecutableStatementCountCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Executable Statement Count]]></name>
     <configKey><![CDATA[Checker/TreeWalker/ExecutableStatementCount]]></configKey>
     
@@ -603,14 +646,16 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
       <description><![CDATA[members to check]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.ExplicitInitializationCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.ExplicitInitializationCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Explicit Initialization]]></name>
     <configKey><![CDATA[Checker/TreeWalker/ExplicitInitialization]]></configKey>
     
     <description>
       <![CDATA[Checks if any class or object member explicitly initialized to default for its type value (null for object references, zero for numeric types and char and false for boolean.]]></description>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.FallThroughCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.FallThroughCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Fall Through]]></name>
     <configKey><![CDATA[Checker/TreeWalker/FallThrough]]></configKey>
     
@@ -625,7 +670,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
 
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.sizes.FileLengthCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.sizes.FileLengthCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[File Length]]></name>
     <configKey><![CDATA[Checker/FileLength]]></configKey>
     
@@ -635,13 +681,15 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
       <description><![CDATA[maximum allowable number of lines. Default is 2000.]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.design.FinalClassCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.design.FinalClassCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Final Class]]></name>
     <configKey><![CDATA[Checker/TreeWalker/FinalClass]]></configKey>
 
     <description><![CDATA[Checks that class which has only private constructors is declared as final.]]></description>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.FinalLocalVariableCheck" priority="MINOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.FinalLocalVariableCheck">
+<priority>MINOR</priority>
     <name><![CDATA[Final Local Variable]]></name>
     <configKey><![CDATA[Checker/TreeWalker/FinalLocalVariable]]></configKey>
 
@@ -651,7 +699,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
       <description><![CDATA[tokens to check]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.FinalParametersCheck" priority="MINOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.FinalParametersCheck">
+<priority>MINOR</priority>
     <name><![CDATA[Final Parameters]]></name>
     <configKey><![CDATA[Checker/TreeWalker/FinalParameters]]></configKey>
 
@@ -661,7 +710,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
     </param>
   </rule>
 
-  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.HiddenFieldCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.HiddenFieldCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Hidden Field]]></name>
     <configKey><![CDATA[Checker/TreeWalker/HiddenField]]></configKey>
 
@@ -687,14 +737,16 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
         <![CDATA[Controls whether to ignore parameters of abstract methods. Default is false.]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.design.HideUtilityClassConstructorCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.design.HideUtilityClassConstructorCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Hide Utility Class Constructor]]></name>
     <configKey><![CDATA[Checker/TreeWalker/HideUtilityClassConstructor]]></configKey>
     
     <description>
       <![CDATA[Make sure that utility classes (classes that contain only static methods) do not have a public constructor.]]></description>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.IllegalCatchCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.IllegalCatchCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Illegal Catch]]></name>
     <configKey><![CDATA[Checker/TreeWalker/IllegalCatch]]></configKey>
     
@@ -704,7 +756,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
       <description><![CDATA[exception class names to reject]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.imports.IllegalImportCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.imports.IllegalImportCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Illegal Import]]></name>
     <configKey><![CDATA[Checker/TreeWalker/IllegalImport]]></configKey>
 
@@ -713,7 +766,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
       <description><![CDATA[packages to reject]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.IllegalInstantiationCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.IllegalInstantiationCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Illegal Instantiation]]></name>
     <configKey><![CDATA[Checker/TreeWalker/IllegalInstantiation]]></configKey>
     
@@ -723,7 +777,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
       <description><![CDATA[classes that should not be instantiated]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.IllegalThrowsCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.IllegalThrowsCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Illegal Throws]]></name>
     <configKey><![CDATA[Checker/TreeWalker/IllegalThrows]]></configKey>
     
@@ -733,7 +788,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
       <description><![CDATA[throw class names to reject]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.IllegalTokenCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.IllegalTokenCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Illegal Token]]></name>
     <configKey><![CDATA[Checker/TreeWalker/IllegalToken]]></configKey>
 
@@ -743,7 +799,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
       <description><![CDATA[tokens to check. Default value is LITERAL_SWITCH, POST_INC, POST_DEC.]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.IllegalTokenTextCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.IllegalTokenTextCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Illegal Token Text]]></name>
     <configKey><![CDATA[Checker/TreeWalker/IllegalTokenText]]></configKey>
 
@@ -763,7 +820,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
         <![CDATA[Message which is used to notify about violations; if empty then the default message is used.]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.IllegalTypeCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.IllegalTypeCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Illegal Type]]></name>
     <configKey><![CDATA[Checker/TreeWalker/IllegalType]]></configKey>
     
@@ -786,7 +844,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
       <description><![CDATA[pattern for illegal class name]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.imports.ImportOrderCheck" priority="MINOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.imports.ImportOrderCheck">
+<priority>MINOR</priority>
     <name><![CDATA[Import Order]]></name>
     <configKey><![CDATA[Checker/TreeWalker/ImportOrder]]></configKey>
 
@@ -819,7 +878,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
         <![CDATA[whether string comparision should be case sensitive or not. Default is true.]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.indentation.IndentationCheck" priority="MINOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.indentation.IndentationCheck">
+<priority>MINOR</priority>
     <name><![CDATA[Indentation]]></name>
     <configKey><![CDATA[Checker/TreeWalker/Indentation]]></configKey>
 
@@ -835,7 +895,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
       <description><![CDATA[how much to indent a case label. Default is 4.]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.InnerAssignmentCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.InnerAssignmentCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Inner Assignment]]></name>
     <configKey><![CDATA[Checker/TreeWalker/InnerAssignment]]></configKey>
 
@@ -846,7 +907,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
       <description><![CDATA[assignments to check]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.design.InterfaceIsTypeCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.design.InterfaceIsTypeCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Interface Is Type]]></name>
     <configKey><![CDATA[Checker/TreeWalker/InterfaceIsType]]></configKey>
 
@@ -858,7 +920,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
 
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocMethodCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocMethodCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Javadoc Method]]></name>
     <configKey><![CDATA[Checker/TreeWalker/JavadocMethod]]></configKey>
 
@@ -922,7 +985,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
 
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocStyleCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocStyleCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Javadoc Style]]></name>
     <configKey><![CDATA[Checker/TreeWalker/JavadocStyle]]></configKey>
 
@@ -965,7 +1029,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
       <description><![CDATA[definitions to check]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocTypeCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocTypeCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Javadoc Type]]></name>
     <configKey><![CDATA[Checker/TreeWalker/JavadocType]]></configKey>
 
@@ -993,7 +1058,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
       <description><![CDATA[definitions to check]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocVariableCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocVariableCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Javadoc Variable]]></name>
     <configKey><![CDATA[Checker/TreeWalker/JavadocVariable]]></configKey>
 
@@ -1005,7 +1071,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
       <description><![CDATA[visibility scope where Javadoc comments are not checked]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.blocks.LeftCurlyCheck" priority="MINOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.blocks.LeftCurlyCheck">
+<priority>MINOR</priority>
     <name><![CDATA[Left Curly]]></name>
     <configKey><![CDATA[Checker/TreeWalker/LeftCurly]]></configKey>
 
@@ -1024,7 +1091,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
 
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.sizes.LineLengthCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.sizes.LineLengthCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Line Length]]></name>
     <configKey><![CDATA[Checker/TreeWalker/LineLength]]></configKey>
     
@@ -1041,7 +1109,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
       <description><![CDATA[number of expanded spaces for a tab character. Default is 8.]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.naming.LocalFinalVariableNameCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.naming.LocalFinalVariableNameCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Local Final Variable Name]]></name>
     <configKey><![CDATA[Checker/TreeWalker/LocalFinalVariableName]]></configKey>
 
@@ -1052,7 +1121,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
         <![CDATA[Validates identifiers for local, final variables, including catch parameters]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.naming.LocalVariableNameCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.naming.LocalVariableNameCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Local Variable Name]]></name>
     <configKey><![CDATA[Checker/TreeWalker/LocalVariableName]]></configKey>
 
@@ -1067,7 +1137,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
         <![CDATA[Controls whether the check applies to variable declarations or catch clause parameters]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.MagicNumberCheck" priority="MINOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.MagicNumberCheck">
+<priority>MINOR</priority>
     <name><![CDATA[Magic Number]]></name>
     <configKey><![CDATA[Checker/TreeWalker/MagicNumber]]></configKey>
     
@@ -1079,7 +1150,9 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
       <description><![CDATA[non-magic numbers. Default is -1,0,1,2.]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.naming.MemberNameCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.naming.MemberNameCheck" >
+<priority>MAJOR</priority>
+    <cardinality>MULTIPLE</cardinality>
     <name><![CDATA[Member Name]]></name>
     <configKey><![CDATA[Checker/TreeWalker/MemberName]]></configKey>
 
@@ -1102,7 +1175,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
       <description><![CDATA[Controls whether to apply the check to private member. Default is true.]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.sizes.MethodLengthCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.sizes.MethodLengthCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Method Length]]></name>
     <configKey><![CDATA[Checker/TreeWalker/MethodLength]]></configKey>
     
@@ -1118,7 +1192,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
       <description><![CDATA[blocks to check]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.naming.MethodNameCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.naming.MethodNameCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Method Name]]></name>
     <configKey><![CDATA[Checker/TreeWalker/MethodName]]></configKey>
 
@@ -1128,7 +1203,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
       <description><![CDATA[Validates identifiers for methods]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.whitespace.MethodParamPadCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.whitespace.MethodParamPadCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Method Param Pad]]></name>
     <configKey><![CDATA[Checker/TreeWalker/MethodParamPad]]></configKey>
 
@@ -1145,34 +1221,39 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
       <description><![CDATA[tokens to check]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.MissingCtorCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.MissingCtorCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Missing Constructor]]></name>
     <configKey><![CDATA[Checker/TreeWalker/MissingCtor]]></configKey>
 
     <description>
       <![CDATA[Checks that classes (except abstract one) define a constructor and don't rely on the default one.]]></description>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.MissingSwitchDefaultCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.MissingSwitchDefaultCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Missing Switch Default]]></name>
     <configKey><![CDATA[Checker/TreeWalker/MissingSwitchDefault]]></configKey>
     
     <description><![CDATA[Checks that switch statement has default clause.]]></description>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.ModifiedControlVariableCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.ModifiedControlVariableCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Modified Control Variable]]></name>
     <configKey><![CDATA[Checker/TreeWalker/ModifiedControlVariable]]></configKey>
     
     <description>
       <![CDATA[Check for ensuring that for loop control variables are not modified inside the for block.]]></description>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.modifier.ModifierOrderCheck" priority="MINOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.modifier.ModifierOrderCheck">
+<priority>MINOR</priority>
     <name><![CDATA[Modifier Order]]></name>
     <configKey><![CDATA[Checker/TreeWalker/ModifierOrder]]></configKey>
 
     <description>
       <![CDATA[Checks that the order of modifiers conforms to the suggestions in the Java Language specification, sections 8.1.1, 8.3.1 and 8.4.3. The correct order is : public, protected, private, abstract, static, final, transient, volatile, synchronized, native, strictfp.]]></description>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.MultipleStringLiteralsCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.MultipleStringLiteralsCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Multiple String Literals]]></name>
     <configKey><![CDATA[Checker/TreeWalker/MultipleStringLiterals]]></configKey>
     <cardinality>MULTIPLE</cardinality>
@@ -1191,14 +1272,16 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
         <![CDATA[Token type names where duplicate strings are ignored even if they don't match ignoredStringsRegexp. This allows you to exclude syntactical contexts like Annotations or static initializers from the check.]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.MultipleVariableDeclarationsCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.MultipleVariableDeclarationsCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Multiple Variable Declarations]]></name>
     <configKey><![CDATA[Checker/TreeWalker/MultipleVariableDeclarations]]></configKey>
 
     <description>
       <![CDATA[Checks that each variable declaration is in its own statement and on its own line.]]></description>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.design.MutableExceptionCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.design.MutableExceptionCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Mutable Exception]]></name>
     <configKey><![CDATA[Checker/TreeWalker/MutableException]]></configKey>
 
@@ -1209,7 +1292,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
 
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.metrics.NPathComplexityCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.metrics.NPathComplexityCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[NPath Complexity]]></name>
     <configKey><![CDATA[Checker/TreeWalker/NPathComplexity]]></configKey>
     
@@ -1220,7 +1304,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
 
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.blocks.NeedBracesCheck" priority="MINOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.blocks.NeedBracesCheck">
+<priority>MINOR</priority>
     <name><![CDATA[Need Braces]]></name>
     <configKey><![CDATA[Checker/TreeWalker/NeedBraces]]></configKey>
 
@@ -1229,7 +1314,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
       <description><![CDATA[blocks to check]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.NestedIfDepthCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.NestedIfDepthCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Nested If Depth]]></name>
     <configKey><![CDATA[Checker/TreeWalker/NestedIfDepth]]></configKey>
     
@@ -1238,7 +1324,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
       <description><![CDATA[allowed nesting depth. Default is 1.]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.NestedTryDepthCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.NestedTryDepthCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Nested Try Depth]]></name>
     <configKey><![CDATA[Checker/TreeWalker/NestedTryDepth]]></configKey>
     
@@ -1247,7 +1334,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
       <description><![CDATA[allowed nesting depth. Default is 1.]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.NewlineAtEndOfFileCheck" priority="MINOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.NewlineAtEndOfFileCheck">
+<priority>MINOR</priority>
     <name><![CDATA[Newline At End Of File]]></name>
     <configKey><![CDATA[Checker/NewlineAtEndOfFile]]></configKey>
 
@@ -1262,7 +1350,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
 
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.whitespace.NoWhitespaceAfterCheck" priority="MINOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.whitespace.NoWhitespaceAfterCheck">
+<priority>MINOR</priority>
     <name><![CDATA[No Whitespace After]]></name>
     <configKey><![CDATA[Checker/TreeWalker/NoWhitespaceAfter]]></configKey>
 
@@ -1276,7 +1365,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
       <description><![CDATA[tokens to check]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.whitespace.NoWhitespaceBeforeCheck" priority="MINOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.whitespace.NoWhitespaceBeforeCheck">
+<priority>MINOR</priority>
     <name><![CDATA[No Whitespace Before]]></name>
     <configKey><![CDATA[Checker/TreeWalker/NoWhitespaceBefore]]></configKey>
 
@@ -1289,7 +1379,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
       <description><![CDATA[tokens to check]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.whitespace.OperatorWrapCheck" priority="MINOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.whitespace.OperatorWrapCheck">
+<priority>MINOR</priority>
     <name><![CDATA[Operator Wrap]]></name>
     <configKey><![CDATA[Checker/TreeWalker/OperatorWrap]]></configKey>
 
@@ -1304,14 +1395,16 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
 
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.PackageDeclarationCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.PackageDeclarationCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Package Declaration]]></name>
     <configKey><![CDATA[Checker/TreeWalker/PackageDeclaration]]></configKey>
     
     <description><![CDATA[Ensures there is a package declaration.]]></description>
   </rule>
 
-  <rule key="com.puppycrawl.tools.checkstyle.checks.naming.PackageNameCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.naming.PackageNameCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Package Name]]></name>
     <configKey><![CDATA[Checker/TreeWalker/PackageName]]></configKey>
 
@@ -1322,13 +1415,15 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
 
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.ParameterAssignmentCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.ParameterAssignmentCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Parameter Assignment]]></name>
     <configKey><![CDATA[Checker/TreeWalker/ParameterAssignment]]></configKey>
 
     <description><![CDATA[Disallow assignment of parameters.]]></description>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.naming.ParameterNameCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.naming.ParameterNameCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Parameter Name]]></name>
     <configKey><![CDATA[Checker/TreeWalker/ParameterName]]></configKey>
 
@@ -1339,7 +1434,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
 
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.sizes.ParameterNumberCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.sizes.ParameterNumberCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Parameter Number]]></name>
     <configKey><![CDATA[Checker/TreeWalker/ParameterNumber]]></configKey>
     
@@ -1353,7 +1449,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
 
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.whitespace.ParenPadCheck" priority="MINOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.whitespace.ParenPadCheck">
+<priority>MINOR</priority>
     <name><![CDATA[Paren Pad]]></name>
     <configKey><![CDATA[Checker/TreeWalker/ParenPad]]></configKey>
 
@@ -1366,7 +1463,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
       <description><![CDATA[tokens to check]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.modifier.RedundantModifierCheck" priority="MINOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.modifier.RedundantModifierCheck">
+<priority>MINOR</priority>
     <name><![CDATA[Redundant Modifier]]></name>
     <configKey><![CDATA[Checker/TreeWalker/RedundantModifier]]></configKey>
     
@@ -1375,7 +1473,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
       <description><![CDATA[tokens to check]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.RedundantThrowsCheck" priority="MINOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.RedundantThrowsCheck">
+<priority>MINOR</priority>
     <name><![CDATA[Redundant Throws]]></name>
     <configKey><![CDATA[Checker/TreeWalker/RedundantThrows]]></configKey>
     
@@ -1390,7 +1489,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
         <![CDATA[whether subclass of another declared exception is allowed in throws clause. Default is false.]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.RegexpCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.RegexpCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Regexp]]></name>
     <configKey><![CDATA[Checker/TreeWalker/Regexp]]></configKey>
 
@@ -1421,7 +1521,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
     </param>
   </rule>
 
-  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.RequireThisCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.RequireThisCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Require This]]></name>
     <configKey><![CDATA[Checker/TreeWalker/RequireThis]]></configKey>
 
@@ -1434,7 +1535,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
     </param>
   </rule>
   
-  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.ReturnCountCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.ReturnCountCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Return Count]]></name>
     <configKey><![CDATA[Checker/TreeWalker/ReturnCount]]></configKey>
     
@@ -1446,7 +1548,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
       <description><![CDATA[method names to ingone]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.blocks.RightCurlyCheck" priority="MINOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.blocks.RightCurlyCheck">
+<priority>MINOR</priority>
     <name><![CDATA[Right Curly]]></name>
     <configKey><![CDATA[Checker/TreeWalker/RightCurly]]></configKey>
 
@@ -1460,19 +1563,22 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
     </param>
   </rule>
 
-  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.SimplifyBooleanExpressionCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.SimplifyBooleanExpressionCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Simplify Boolean Expression]]></name>
     <configKey><![CDATA[Checker/TreeWalker/SimplifyBooleanExpression]]></configKey>
     
     <description><![CDATA[Checks for overly complicated boolean expressions.]]></description>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.SimplifyBooleanReturnCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.SimplifyBooleanReturnCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Simplify Boolean Return]]></name>
     <configKey><![CDATA[Checker/TreeWalker/SimplifyBooleanReturn]]></configKey>
     
     <description><![CDATA[Checks for overly complicated boolean return statements.]]></description>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.naming.StaticVariableNameCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.naming.StaticVariableNameCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Static Variable Name]]></name>
     <configKey><![CDATA[Checker/TreeWalker/StaticVariableName]]></configKey>
 
@@ -1482,7 +1588,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
       <description><![CDATA[Validates identifiers for static, non-final fields]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.duplicates.StrictDuplicateCodeCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.duplicates.StrictDuplicateCodeCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Strict Duplicate Code]]></name>
     <configKey><![CDATA[Checker/StrictDuplicateCode]]></configKey>
     
@@ -1495,25 +1602,29 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
       <description><![CDATA[name of the file charset]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.StringLiteralEqualityCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.StringLiteralEqualityCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[String Literal Equality]]></name>
     <configKey><![CDATA[Checker/TreeWalker/StringLiteralEquality]]></configKey>
     
     <description><![CDATA[Checks that string literals are not used with == or !=.]]></description>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.SuperCloneCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.SuperCloneCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Super Clone]]></name>
     <configKey><![CDATA[Checker/TreeWalker/SuperClone]]></configKey>
     
     <description><![CDATA[Checks that an overriding clone() method invokes super.clone().]]></description>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.SuperFinalizeCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.SuperFinalizeCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Super Finalize]]></name>
     <configKey><![CDATA[Checker/TreeWalker/SuperFinalize]]></configKey>
     
     <description><![CDATA[Checks that an overriding finalize() method invokes super.finalize().]]></description>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.design.ThrowsCountCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.design.ThrowsCountCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Throws Count]]></name>
     <configKey><![CDATA[Checker/TreeWalker/ThrowsCount]]></configKey>
     
@@ -1522,7 +1633,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
       <description><![CDATA[maximum allowed number of throws statments]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.TodoCommentCheck" priority="MINOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.TodoCommentCheck">
+<priority>MINOR</priority>
     <name><![CDATA[Comment pattern matcher]]></name>
     <configKey><![CDATA[Checker/TreeWalker/TodoComment]]></configKey>
     
@@ -1532,7 +1644,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
       <description><![CDATA[Regular expression pattern to check. Default is TODO:]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.indentation.TrailingCommentCheck" priority="MINOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.indentation.TrailingCommentCheck">
+<priority>MINOR</priority>
     <name><![CDATA[Trailing Comment]]></name>
     <configKey><![CDATA[Checker/TreeWalker/TrailingComment]]></configKey>
 
@@ -1549,7 +1662,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
    <!--
    Deactivated. See http://jira.codehaus.org/browse/SONAR-1698
 
-   <rule key="com.puppycrawl.tools.checkstyle.checks.TranslationCheck" priority="MINOR">
+   <rule key="com.puppycrawl.tools.checkstyle.checks.TranslationCheck">
+<priority>MINOR</priority>
     <name><![CDATA[Translation]]></name>
     <configKey><![CDATA[Checker/Translation]]></configKey>
     
@@ -1562,7 +1676,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
     </param>
   </rule>-->
    
-  <rule key="com.puppycrawl.tools.checkstyle.checks.naming.TypeNameCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.naming.TypeNameCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Type Name]]></name>
     <configKey><![CDATA[Checker/TreeWalker/TypeName]]></configKey>
 
@@ -1575,7 +1690,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
 
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.whitespace.TypecastParenPadCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.whitespace.TypecastParenPadCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Typecast Paren Pad]]></name>
     <configKey><![CDATA[Checker/TreeWalker/TypecastParenPad]]></configKey>
 
@@ -1589,7 +1705,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
 
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.UncommentedMainCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.UncommentedMainCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Uncommented Main]]></name>
     <configKey><![CDATA[Checker/TreeWalker/UncommentedMain]]></configKey>
 
@@ -1600,26 +1717,30 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
 
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.UnnecessaryParenthesesCheck" priority="MINOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.coding.UnnecessaryParenthesesCheck">
+<priority>MINOR</priority>
     <name><![CDATA[Unnecessary Parentheses]]></name>
     <configKey><![CDATA[Checker/TreeWalker/UnnecessaryParentheses]]></configKey>
 
     <description><![CDATA[Checks if unnecessary parentheses are used in a statement or expression.]]></description>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.imports.UnusedImportsCheck" priority="INFO">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.imports.UnusedImportsCheck">
+<priority>INFO</priority>
     <name><![CDATA[Unused Imports]]></name>
     <configKey><![CDATA[Checker/TreeWalker/UnusedImports]]></configKey>
     
     <description><![CDATA[Checks for unused import statements.]]></description>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.UpperEllCheck" priority="MINOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.UpperEllCheck">
+<priority>MINOR</priority>
     <name><![CDATA[Upper Ell]]></name>
     <configKey><![CDATA[Checker/TreeWalker/UpperEll]]></configKey>
 
     <description><![CDATA[Checks that long constants are defined with an upper ell. That is ' L' and not 'l'. 
     This is in accordance to the Java Language Specification, <a href="http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#48282">Section 3.10.1</a>.]]></description>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.design.VisibilityModifierCheck" priority="MAJOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.design.VisibilityModifierCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Visibility Modifier]]></name>
     <configKey><![CDATA[Checker/TreeWalker/VisibilityModifier]]></configKey>
     
@@ -1636,7 +1757,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
         <![CDATA[pattern for public members that should be ignored. Default is ^serialVersionUID$.]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.whitespace.WhitespaceAfterCheck" priority="MINOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.whitespace.WhitespaceAfterCheck">
+<priority>MINOR</priority>
     <name><![CDATA[Whitespace After]]></name>
     <configKey><![CDATA[Checker/TreeWalker/WhitespaceAfter]]></configKey>
 
@@ -1646,7 +1768,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
       <description><![CDATA[tokens to check]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.whitespace.WhitespaceAroundCheck" priority="MINOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.whitespace.WhitespaceAroundCheck">
+<priority>MINOR</priority>
     <name><![CDATA[Whitespace Around]]></name>
     <configKey><![CDATA[Checker/TreeWalker/WhitespaceAround]]></configKey>
 
@@ -1664,7 +1787,8 @@ Rationale: Too large methods and classes are hard to read and costly to maintain
       <description><![CDATA[allow empty method bodies. Default is false.]]></description>
     </param>
   </rule>
-  <rule key="com.puppycrawl.tools.checkstyle.checks.javadoc.WriteTagCheck" priority="MINOR">
+  <rule key="com.puppycrawl.tools.checkstyle.checks.javadoc.WriteTagCheck">
+<priority>MINOR</priority>
     <name><![CDATA[Write Tag]]></name>
     <configKey><![CDATA[Checker/TreeWalker/WriteTag]]></configKey>
 
index cb1c9949065b93ad8bbaf3df4e7de549b19e24e5..bcd34822b75af45e4c1852dfaf740a9ce861361b 100644 (file)
@@ -1,13 +1,15 @@
 <rules>
   <!-- Findbugs 1.3.9 -->
-  <rule key="BC_IMPOSSIBLE_DOWNCAST" priority="BLOCKER">
+  <rule key="BC_IMPOSSIBLE_DOWNCAST">
+<priority>BLOCKER</priority>
     <name><![CDATA[Correctness - Impossible downcast]]></name>
     <configKey><![CDATA[BC_IMPOSSIBLE_DOWNCAST]]></configKey>
     
     <description>
       <![CDATA[This cast will always throw a ClassCastException. The analysis believes it knows the precise type of the value being cast, and the attempt to downcast it to a subtype will always fail by throwing a ClassCastException.]]></description>
   </rule>
-  <rule key="BC_IMPOSSIBLE_DOWNCAST_OF_TOARRAY" priority="BLOCKER">
+  <rule key="BC_IMPOSSIBLE_DOWNCAST_OF_TOARRAY">
+<priority>BLOCKER</priority>
     <name><![CDATA[Correctness - Impossible downcast of toArray() result]]></name>
     <configKey><![CDATA[BC_IMPOSSIBLE_DOWNCAST_OF_TOARRAY]]></configKey>
     
 <p>The correct way to do get an array of a specific type from a collection is to use <code>c.toArray(new String[]);</code> or <code>c.toArray(new String[c.size()]);</code> (the latter is slightly more efficient).</p>
 <p>There is one common/known exception exception to this. The toArray() method of lists returned by Arrays.asList(...) will return a covariantly typed array. For example, <code>Arrays.asArray(new String[] { "a" }).toArray()</code> will return a String []. FindBugs attempts to detect and suppress such cases, but may miss some.</p>]]></description>
   </rule>
-  <rule key="EC_INCOMPATIBLE_ARRAY_COMPARE" priority="BLOCKER">
+  <rule key="EC_INCOMPATIBLE_ARRAY_COMPARE">
+<priority>BLOCKER</priority>
     <name><![CDATA[Correctness - equals(...) used to compare incompatible arrays]]></name>
     <configKey><![CDATA[EC_INCOMPATIBLE_ARRAY_COMPARE]]></configKey>
     
     <description>
       <![CDATA[This method invokes the .equals(Object o) to compare two arrays, but the arrays of of incompatible types (e.g., String[] and StringBuffer[], or String[] and int[]). They will never be equal. In addition, when equals(...) is used to compare arrays it only checks to see if they are the same array, and ignores the contents of the arrays.]]></description>
   </rule>
-  <rule key="EC_INCOMPATIBLE_ARRAY_COMPARE" priority="BLOCKER">
+  <rule key="EC_INCOMPATIBLE_ARRAY_COMPARE">
+<priority>BLOCKER</priority>
     <name><![CDATA[Correctness - equals(...) used to compare incompatible arrays]]></name>
     <configKey><![CDATA[EC_INCOMPATIBLE_ARRAY_COMPARE]]></configKey>
     
     <description>
       <![CDATA[This method invokes the .equals(Object o) to compare two arrays, but the arrays of of incompatible types (e.g., String[] and StringBuffer[], or String[] and int[]). They will never be equal. In addition, when equals(...) is used to compare arrays it only checks to see if they are the same array, and ignores the contents of the arrays.]]></description>
   </rule>
-  <rule key="LG_LOST_LOGGER_DUE_TO_WEAK_REFERENCE" priority="MAJOR">
+  <rule key="LG_LOST_LOGGER_DUE_TO_WEAK_REFERENCE">
+<priority>MAJOR</priority>
     <name><![CDATA[Correctness - Potential lost logger changes due to weak reference in OpenJDK ]]></name>
     <configKey><![CDATA[LG_LOST_LOGGER_DUE_TO_WEAK_REFERENCE]]></configKey>
     
@@ -58,7 +63,8 @@
 ]]></description>
   </rule>
 
-  <rule key="NP_CLOSING_NULL" priority="BLOCKER">
+  <rule key="NP_CLOSING_NULL">
+<priority>BLOCKER</priority>
     <name><![CDATA[Correctness - close() invoked on a value that is always null]]></name>
     <configKey><![CDATA[NP_CLOSING_NULL]]></configKey>
     
@@ -66,7 +72,8 @@
       <![CDATA[close() is being invoked on a value that is always null. If this statement is executed, a null pointer exception will occur. But the big risk here you never close something that should be closed.]]></description>
   </rule>
 
-  <rule key="RC_REF_COMPARISON_BAD_PRACTICE" priority="MAJOR">
+  <rule key="RC_REF_COMPARISON_BAD_PRACTICE">
+<priority>MAJOR</priority>
     <name><![CDATA[Correctness - Suspicious reference comparison to constant]]></name>
     <configKey><![CDATA[RC_REF_COMPARISON_BAD_PRACTICE]]></configKey>
     
@@ -74,7 +81,8 @@
       <![CDATA[This method compares a reference value to a constant using the == or != operator, where the correct way to compare instances of this type is generally with the equals() method. It is possible to create distinct instances that are equal but do not compare as == since they are different objects. Examples of classes which should generally not be compared by reference are java.lang.Integer, java.lang.Float, etc.]]></description>
   </rule>
 
-  <rule key="RC_REF_COMPARISON_BAD_PRACTICE_BOOLEAN" priority="MAJOR">
+  <rule key="RC_REF_COMPARISON_BAD_PRACTICE_BOOLEAN">
+<priority>MAJOR</priority>
     <name><![CDATA[Correctness - Suspicious reference comparison of Boolean values]]></name>
     <configKey><![CDATA[RC_REF_COMPARISON_BAD_PRACTICE_BOOLEAN]]></configKey>
     
@@ -82,7 +90,8 @@
       <![CDATA[This method compares two Boolean values using the == or != operator. Normally, there are only two Boolean values (Boolean.TRUE and Boolean.FALSE), but it is possible to create other Boolean objects using the new Boolean(b) constructor. It is best to avoid such objects, but if they do exist, then checking Boolean objects for equality using == or != will give results than are different than you would get using .equals(...)]]></description>
   </rule>
 
-  <rule key="RV_RETURN_VALUE_OF_PUTIFABSENT_IGNORED" priority="MAJOR">
+  <rule key="RV_RETURN_VALUE_OF_PUTIFABSENT_IGNORED">
+<priority>MAJOR</priority>
     <name><![CDATA[Correctness - Return value of putIfAbsent ignored, value passed to putIfAbsent reused ]]></name>
     <configKey><![CDATA[RV_RETURN_VALUE_OF_PUTIFABSENT_IGNORED]]></configKey>
     
@@ -90,7 +99,8 @@
       <![CDATA[The putIfAbsent method is typically used to ensure that a single value is associated with a given key (the first value for which put if absent succeeds). If you ignore the return value and retain a reference to the value passed in, you run the risk of retaining a value that is not the one that is associated with the key in the map. If it matters which one you use and you use the one that isn't stored in the map, your program will behave incorrectly.]]></description>
   </rule>
 
-  <rule key="SIC_THREADLOCAL_DEADLY_EMBRACE" priority="MAJOR">
+  <rule key="SIC_THREADLOCAL_DEADLY_EMBRACE">
+<priority>MAJOR</priority>
     <name><![CDATA[Correctness - Deadly embrace of non-static inner class and thread local]]></name>
     <configKey><![CDATA[SIC_THREADLOCAL_DEADLY_EMBRACE]]></configKey>
     
       <![CDATA[This class is an inner class, but should probably be a static inner class. As it is, there is a serious danger of a deadly embrace between the inner class and the thread local in the outer class. Because the inner class isn't static, it retains a reference to the outer class. If the thread local contains a reference to an instance of the inner class, the inner and outer instance will both be reachable and not eligible for garbage collection.]]></description>
   </rule>
 
-  <rule key="UR_UNINIT_READ_CALLED_FROM_SUPER_CONSTRUCTOR" priority="MAJOR">
+  <rule key="UR_UNINIT_READ_CALLED_FROM_SUPER_CONSTRUCTOR">
+<priority>MAJOR</priority>
     <name><![CDATA[Correctness - Uninitialized read of field method called from constructor of superclass]]></name>
     <configKey><![CDATA[UR_UNINIT_READ_CALLED_FROM_SUPER_CONSTRUCTOR]]></configKey>
     
 <p>When a B is constructed, the constructor for the A class is invoked before the constructor for B sets value. Thus, when the constructor for A invokes getValue, an uninitialized value is read for value.</p>]]></description>
   </rule>
 
-  <rule key="VA_FORMAT_STRING_EXPECTED_MESSAGE_FORMAT_SUPPLIED" priority="MAJOR">
+  <rule key="VA_FORMAT_STRING_EXPECTED_MESSAGE_FORMAT_SUPPLIED">
+<priority>MAJOR</priority>
     <name><![CDATA[Correctness - MessageFormat supplied where printf style format expected ]]></name>
     <configKey><![CDATA[VA_FORMAT_STRING_EXPECTED_MESSAGE_FORMAT_SUPPLIED]]></configKey>
     
 
 
   <!-- Before Findbugs 1.3.9 -->
-  <rule key="UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR" priority="MINOR">
+  <rule key="UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR">
+<priority>MINOR</priority>
     <name><![CDATA[Correctness - Field not initialized in constructor]]></name>
     <configKey><![CDATA[UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR]]></configKey>
     
     <description><![CDATA[<p>This field is never initialized within any constructor, and is therefore could be null after the object is constructed. This could be a either an error or a questionable design, since it means a null pointer exception will be generated if that field is dereferenced before being initialized.</p>]]></description>
   </rule>
-  <rule key="NP_UNWRITTEN_FIELD" priority="MAJOR">
+  <rule key="NP_UNWRITTEN_FIELD">
+<priority>MAJOR</priority>
     <name><![CDATA[Correctness - Read of unwritten field]]></name>
     <configKey><![CDATA[NP_UNWRITTEN_FIELD]]></configKey>
     
     <description><![CDATA[<p>The program is dereferencing a field that does not seem to ever have a non-null value written to it. Dereferencing this value will generate a null pointer exception.</p>]]></description>
   </rule>
-  <rule key="UWF_UNWRITTEN_FIELD" priority="MINOR">
+  <rule key="UWF_UNWRITTEN_FIELD">
+<priority>MINOR</priority>
     <name><![CDATA[Correctness - Unwritten field]]></name>
     <configKey><![CDATA[UWF_UNWRITTEN_FIELD]]></configKey>
     
     <description><![CDATA[<p>This field is never written.  All reads of it will return the default value. Check for errors (should it have been initialized?), or remove it if it is useless.</p>]]></description>
   </rule>
-  <rule key="SKIPPED_CLASS_TOO_BIG" priority="MINOR">
+  <rule key="SKIPPED_CLASS_TOO_BIG">
+<priority>MINOR</priority>
     <name><![CDATA[Dodgy - Class too big for analysis]]></name>
     <configKey><![CDATA[SKIPPED_CLASS_TOO_BIG]]></configKey>
     
     <description><![CDATA[<p>This class is bigger than can be effectively handled, and was not fully analyzed for errors.
 </p>]]></description>
   </rule>
-  <rule key="DMI_SCHEDULED_THREAD_POOL_EXECUTOR_WITH_ZERO_CORE_THREADS" priority="MINOR">
+  <rule key="DMI_SCHEDULED_THREAD_POOL_EXECUTOR_WITH_ZERO_CORE_THREADS">
+<priority>MINOR</priority>
     <name><![CDATA[Correctness - Creation of ScheduledThreadPoolExecutor with zero core threads]]></name>
     <configKey><![CDATA[DMI_SCHEDULED_THREAD_POOL_EXECUTOR_WITH_ZERO_CORE_THREADS]]></configKey>
     
 A ScheduledThreadPoolExecutor with zero core threads will never execute anything; changes to the max pool size are ignored.
 </p>]]></description>
   </rule>
-  <rule key="DMI_FUTILE_ATTEMPT_TO_CHANGE_MAXPOOL_SIZE_OF_SCHEDULED_THREAD_POOL_EXECUTOR" priority="MINOR">
+  <rule key="DMI_FUTILE_ATTEMPT_TO_CHANGE_MAXPOOL_SIZE_OF_SCHEDULED_THREAD_POOL_EXECUTOR">
+<priority>MINOR</priority>
     <name><![CDATA[Correctness - Futile attempt to change max pool size of ScheduledThreadPoolExecutor]]></name>
     <configKey><![CDATA[DMI_FUTILE_ATTEMPT_TO_CHANGE_MAXPOOL_SIZE_OF_SCHEDULED_THREAD_POOL_EXECUTOR]]></configKey>
     
@@ -175,21 +193,24 @@ A ScheduledThreadPoolExecutor with zero core threads will never execute anything
 While ScheduledThreadPoolExecutor inherits from ThreadPoolExecutor, a few of the inherited tuning methods are not useful for it. In particular, because it acts as a fixed-sized pool using corePoolSize threads and an unbounded queue, adjustments to maximumPoolSize have no useful effect.
        </p>]]></description>
   </rule>
-  <rule key="DMI_UNSUPPORTED_METHOD" priority="MAJOR">
+  <rule key="DMI_UNSUPPORTED_METHOD">
+<priority>MAJOR</priority>
     <name><![CDATA[Dodgy - Call to unsupported method]]></name>
     <configKey><![CDATA[DMI_UNSUPPORTED_METHOD]]></configKey>
     
     <description><![CDATA[<p>All targets of this method invocation throw an UnsupportedOperationException.
 </p>]]></description>
   </rule>
-  <rule key="DMI_EMPTY_DB_PASSWORD" priority="CRITICAL">
+  <rule key="DMI_EMPTY_DB_PASSWORD">
+<priority>CRITICAL</priority>
     <name><![CDATA[Security - Empty database password]]></name>
     <configKey><![CDATA[DMI_EMPTY_DB_PASSWORD]]></configKey>
     
     <description><![CDATA[<p>This code creates a database connect using a blank or empty password. This indicates that the database is not protected by a password. 
 </p>]]></description>
   </rule>
-  <rule key="DMI_CONSTANT_DB_PASSWORD" priority="BLOCKER">
+  <rule key="DMI_CONSTANT_DB_PASSWORD">
+<priority>BLOCKER</priority>
     <name><![CDATA[Security - Hardcoded constant database password]]></name>
     <configKey><![CDATA[DMI_CONSTANT_DB_PASSWORD]]></configKey>
     
@@ -197,7 +218,8 @@ While ScheduledThreadPoolExecutor inherits from ThreadPoolExecutor, a few of the
        easily learn the password.
 </p>]]></description>
   </rule>
-  <rule key="HRS_REQUEST_PARAMETER_TO_COOKIE" priority="MAJOR">
+  <rule key="HRS_REQUEST_PARAMETER_TO_COOKIE">
+<priority>MAJOR</priority>
     <name><![CDATA[Security - HTTP cookie formed from untrusted input]]></name>
     <configKey><![CDATA[HRS_REQUEST_PARAMETER_TO_COOKIE]]></configKey>
     
@@ -210,7 +232,8 @@ vulnerabilities that FindBugs doesn't report. If you are concerned about HTTP re
 consider using a commercial static analysis or pen-testing tool.
 </p>]]></description>
   </rule>
-  <rule key="HRS_REQUEST_PARAMETER_TO_HTTP_HEADER" priority="MAJOR">
+  <rule key="HRS_REQUEST_PARAMETER_TO_HTTP_HEADER">
+<priority>MAJOR</priority>
     <name><![CDATA[Security - HTTP Response splitting vulnerability]]></name>
     <configKey><![CDATA[HRS_REQUEST_PARAMETER_TO_HTTP_HEADER]]></configKey>
     
@@ -223,7 +246,8 @@ vulnerabilities that FindBugs doesn't report. If you are concerned about HTTP re
 consider using a commercial static analysis or pen-testing tool.
 </p>]]></description>
   </rule>
-  <rule key="XSS_REQUEST_PARAMETER_TO_SERVLET_WRITER" priority="CRITICAL">
+  <rule key="XSS_REQUEST_PARAMETER_TO_SERVLET_WRITER">
+<priority>CRITICAL</priority>
     <name><![CDATA[Security - Servlet reflected cross site scripting vulnerability]]></name>
     <configKey><![CDATA[XSS_REQUEST_PARAMETER_TO_SERVLET_WRITER]]></configKey>
     
@@ -236,7 +260,8 @@ vulnerabilities that FindBugs doesn't report. If you are concerned about cross s
 consider using a commercial static analysis or pen-testing tool.
 </p>]]></description>
   </rule>
-  <rule key="XSS_REQUEST_PARAMETER_TO_SEND_ERROR" priority="CRITICAL">
+  <rule key="XSS_REQUEST_PARAMETER_TO_SEND_ERROR">
+<priority>CRITICAL</priority>
     <name><![CDATA[Security - Servlet reflected cross site scripting vulnerability]]></name>
     <configKey><![CDATA[XSS_REQUEST_PARAMETER_TO_SEND_ERROR]]></configKey>
     
@@ -250,7 +275,8 @@ vulnerabilities that FindBugs doesn't report. If you are concerned about cross s
 consider using a commercial static analysis or pen-testing tool.
 </p>]]></description>
   </rule>
-  <rule key="XSS_REQUEST_PARAMETER_TO_JSP_WRITER" priority="CRITICAL">
+  <rule key="XSS_REQUEST_PARAMETER_TO_JSP_WRITER">
+<priority>CRITICAL</priority>
     <name><![CDATA[Security - JSP reflected cross site scripting vulnerability]]></name>
     <configKey><![CDATA[XSS_REQUEST_PARAMETER_TO_JSP_WRITER]]></configKey>
     
@@ -263,7 +289,8 @@ vulnerabilities that FindBugs doesn't report. If you are concerned about cross s
 consider using a commercial static analysis or pen-testing tool.
 </p>]]></description>
   </rule>
-  <rule key="SW_SWING_METHODS_INVOKED_IN_SWING_THREAD" priority="MAJOR">
+  <rule key="SW_SWING_METHODS_INVOKED_IN_SWING_THREAD">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - Certain swing methods needs to be invoked in Swing thread]]></name>
     <configKey><![CDATA[SW_SWING_METHODS_INVOKED_IN_SWING_THREAD]]></configKey>
     
@@ -277,21 +304,24 @@ could result in deadlocks or other related threading issues. A pack call causes
 components to be realized. As they are being realized (that is, not necessarily
 visible), they could trigger listener notification on the event dispatch thread.</p>]]></description>
   </rule>
-  <rule key="IL_INFINITE_LOOP" priority="CRITICAL">
+  <rule key="IL_INFINITE_LOOP">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - An apparent infinite loop]]></name>
     <configKey><![CDATA[IL_INFINITE_LOOP]]></configKey>
     
     <description><![CDATA[<p>This loop doesn't seem to have a way to terminate (other than by perhaps
 throwing an exception).</p>]]></description>
   </rule>
-  <rule key="IL_INFINITE_RECURSIVE_LOOP" priority="CRITICAL">
+  <rule key="IL_INFINITE_RECURSIVE_LOOP">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - An apparent infinite recursive loop]]></name>
     <configKey><![CDATA[IL_INFINITE_RECURSIVE_LOOP]]></configKey>
     
     <description><![CDATA[<p>This method unconditionally invokes itself. This would seem to indicate
 an infinite recursive loop that will result in a stack overflow.</p>]]></description>
   </rule>
-  <rule key="IL_CONTAINER_ADDED_TO_ITSELF" priority="CRITICAL">
+  <rule key="IL_CONTAINER_ADDED_TO_ITSELF">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - A collection is added to itself]]></name>
     <configKey><![CDATA[IL_CONTAINER_ADDED_TO_ITSELF]]></configKey>
     
@@ -299,7 +329,8 @@ an infinite recursive loop that will result in a stack overflow.</p>]]></descrip
 set will throw a StackOverflowException.
 </p>]]></description>
   </rule>
-  <rule key="VO_VOLATILE_REFERENCE_TO_ARRAY" priority="MAJOR">
+  <rule key="VO_VOLATILE_REFERENCE_TO_ARRAY">
+<priority>MAJOR</priority>
     <name>
       <![CDATA[Multithreaded correctness - A volatile reference to an array doesn't treat the array elements as volatile]]></name>
     <configKey><![CDATA[VO_VOLATILE_REFERENCE_TO_ARRAY]]></configKey>
@@ -311,7 +342,8 @@ are non-volatile. To get volatile array elements, you will need to use
 one of the atomic array classes in java.util.concurrent (provided
 in Java 5.0).</p>]]></description>
   </rule>
-  <rule key="UI_INHERITANCE_UNSAFE_GETRESOURCE" priority="MAJOR">
+  <rule key="UI_INHERITANCE_UNSAFE_GETRESOURCE">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - Usage of GetResource may be unsafe if class is extended]]></name>
     <configKey><![CDATA[UI_INHERITANCE_UNSAFE_GETRESOURCE]]></configKey>
     
@@ -319,7 +351,8 @@ in Java 5.0).</p>]]></description>
 results other than expected if this class is extended by a class in
 another package.</p>]]></description>
   </rule>
-  <rule key="NP_BOOLEAN_RETURN_NULL" priority="MAJOR">
+  <rule key="NP_BOOLEAN_RETURN_NULL">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - Method with Boolean return type returns explicit null]]></name>
     <configKey><![CDATA[NP_BOOLEAN_RETURN_NULL]]></configKey>
     
@@ -330,7 +363,8 @@ another package.</p>]]></description>
        this will result in a NullPointerException.
         </p>]]></description>
   </rule>
-  <rule key="NP_SYNC_AND_NULL_CHECK_FIELD" priority="MAJOR">
+  <rule key="NP_SYNC_AND_NULL_CHECK_FIELD">
+<priority>MAJOR</priority>
     <name><![CDATA[Multithreaded correctness - Synchronize and null check on the same field.]]></name>
     <configKey><![CDATA[NP_SYNC_AND_NULL_CHECK_FIELD]]></configKey>
     
@@ -339,7 +373,8 @@ If it is null and then synchronized on a NullPointerException will be
 thrown and the check would be pointless. Better to synchronize on 
 another field.</p>]]></description>
   </rule>
-  <rule key="RpC_REPEATED_CONDITIONAL_TEST" priority="MAJOR">
+  <rule key="RpC_REPEATED_CONDITIONAL_TEST">
+<priority>MAJOR</priority>
     <name><![CDATA[Correctness - Repeated conditional tests]]></name>
     <configKey><![CDATA[RpC_REPEATED_CONDITIONAL_TEST]]></configKey>
     
@@ -348,7 +383,8 @@ another field.</p>]]></description>
 (e.g., <code>x == 0 || y == 0</code>). 
 </p>]]></description>
   </rule>
-  <rule key="AM_CREATES_EMPTY_ZIP_FILE_ENTRY" priority="MAJOR">
+  <rule key="AM_CREATES_EMPTY_ZIP_FILE_ENTRY">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - Creates an empty zip file entry]]></name>
     <configKey><![CDATA[AM_CREATES_EMPTY_ZIP_FILE_ENTRY]]></configKey>
     
@@ -359,7 +395,8 @@ should be written to the ZipFile between the calls to
 <code>putNextEntry()</code> and
 <code>closeEntry()</code>.</p>]]></description>
   </rule>
-  <rule key="AM_CREATES_EMPTY_JAR_FILE_ENTRY" priority="MAJOR">
+  <rule key="AM_CREATES_EMPTY_JAR_FILE_ENTRY">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - Creates an empty jar file entry]]></name>
     <configKey><![CDATA[AM_CREATES_EMPTY_JAR_FILE_ENTRY]]></configKey>
     
@@ -370,7 +407,8 @@ should be written to the JarFile between the calls to
 <code>putNextEntry()</code> and
 <code>closeEntry()</code>.</p>]]></description>
   </rule>
-  <rule key="IMSE_DONT_CATCH_IMSE" priority="MAJOR">
+  <rule key="IMSE_DONT_CATCH_IMSE">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - Dubious catching of IllegalMonitorStateException]]></name>
     <configKey><![CDATA[IMSE_DONT_CATCH_IMSE]]></configKey>
     
@@ -378,7 +416,8 @@ should be written to the JarFile between the calls to
    thrown in case of a design flaw in your code (calling wait or
    notify on an object you do not hold a lock on).</p>]]></description>
   </rule>
-  <rule key="FL_MATH_USING_FLOAT_PRECISION" priority="CRITICAL">
+  <rule key="FL_MATH_USING_FLOAT_PRECISION">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Method performs math using floating point precision]]></name>
     <configKey><![CDATA[FL_MATH_USING_FLOAT_PRECISION]]></configKey>
     
@@ -387,7 +426,8 @@ should be written to the JarFile between the calls to
    Floating point precision is very imprecise. For example,
    16777216.0f + 1.0f = 16777216.0f. Consider using double math instead.</p>]]></description>
   </rule>
-  <rule key="CN_IDIOM" priority="MAJOR">
+  <rule key="CN_IDIOM">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - Class implements Cloneable but does not define or use clone method]]></name>
     <configKey><![CDATA[CN_IDIOM]]></configKey>
     
@@ -395,7 +435,8 @@ should be written to the JarFile between the calls to
    Class implements Cloneable but does not define or
    use the clone method.</p>]]></description>
   </rule>
-  <rule key="CN_IMPLEMENTS_CLONE_BUT_NOT_CLONEABLE" priority="MAJOR">
+  <rule key="CN_IMPLEMENTS_CLONE_BUT_NOT_CLONEABLE">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - Class defines clone() but doesn't implement Cloneable]]></name>
     <configKey><![CDATA[CN_IMPLEMENTS_CLONE_BUT_NOT_CLONEABLE]]></configKey>
     
@@ -404,7 +445,8 @@ There are some situations in which this is OK (e.g., you want to control how sub
 can clone themselves), but just make sure that this is what you intended.
 </p>]]></description>
   </rule>
-  <rule key="CN_IDIOM_NO_SUPER_CALL" priority="MAJOR">
+  <rule key="CN_IDIOM_NO_SUPER_CALL">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - clone method does not call super.clone()]]></name>
     <configKey><![CDATA[CN_IDIOM_NO_SUPER_CALL]]></configKey>
     
@@ -417,14 +459,16 @@ which violates the standard contract for clone().</p>
 <p> If all clone() methods call super.clone(), then they are guaranteed
 to use Object.clone(), which always returns an object of the correct type.</p>]]></description>
   </rule>
-  <rule key="NM_FUTURE_KEYWORD_USED_AS_IDENTIFIER" priority="MAJOR">
+  <rule key="NM_FUTURE_KEYWORD_USED_AS_IDENTIFIER">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - Use of identifier that is a keyword in later versions of Java]]></name>
     <configKey><![CDATA[NM_FUTURE_KEYWORD_USED_AS_IDENTIFIER]]></configKey>
     
     <description><![CDATA[<p>The identifier is a word that is reserved as a keyword in later versions of Java, and your code will need to be changed
 in order to compile it in later versions of Java.</p>]]></description>
   </rule>
-  <rule key="NM_FUTURE_KEYWORD_USED_AS_MEMBER_IDENTIFIER" priority="MAJOR">
+  <rule key="NM_FUTURE_KEYWORD_USED_AS_MEMBER_IDENTIFIER">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - Use of identifier that is a keyword in later versions of Java]]></name>
     <configKey><![CDATA[NM_FUTURE_KEYWORD_USED_AS_MEMBER_IDENTIFIER]]></configKey>
     
@@ -432,7 +476,8 @@ in order to compile it in later versions of Java.</p>]]></description>
 any code that references this API, 
 will need to be changed in order to compile it in later versions of Java.</p>]]></description>
   </rule>
-  <rule key="DE_MIGHT_DROP" priority="MAJOR">
+  <rule key="DE_MIGHT_DROP">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - Method might drop exception]]></name>
     <configKey><![CDATA[DE_MIGHT_DROP]]></configKey>
     
@@ -440,7 +485,8 @@ will need to be changed in order to compile it in later versions of Java.</p>]]>
   should be handled or reported in some way, or they should be thrown
   out of the method.</p>]]></description>
   </rule>
-  <rule key="DE_MIGHT_IGNORE" priority="MAJOR">
+  <rule key="DE_MIGHT_IGNORE">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - Method might ignore exception]]></name>
     <configKey><![CDATA[DE_MIGHT_IGNORE]]></configKey>
     
@@ -448,7 +494,8 @@ will need to be changed in order to compile it in later versions of Java.</p>]]>
   should be handled or reported in some way, or they should be thrown
   out of the method.</p>]]></description>
   </rule>
-  <rule key="DP_DO_INSIDE_DO_PRIVILEGED" priority="MAJOR">
+  <rule key="DP_DO_INSIDE_DO_PRIVILEGED">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - Method invoked that should be only be invoked inside a doPrivileged block]]></name>
     <configKey><![CDATA[DP_DO_INSIDE_DO_PRIVILEGED]]></configKey>
     
@@ -456,7 +503,8 @@ will need to be changed in order to compile it in later versions of Java.</p>]]>
   If this code will be granted security permissions, but might be invoked by code that does not
   have security permissions, then the invocation needs to occur inside a doPrivileged block.</p>]]></description>
   </rule>
-  <rule key="DP_CREATE_CLASSLOADER_INSIDE_DO_PRIVILEGED" priority="MAJOR">
+  <rule key="DP_CREATE_CLASSLOADER_INSIDE_DO_PRIVILEGED">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - Classloaders should only be created inside doPrivileged block]]></name>
     <configKey><![CDATA[DP_CREATE_CLASSLOADER_INSIDE_DO_PRIVILEGED]]></configKey>
     
@@ -464,7 +512,8 @@ will need to be changed in order to compile it in later versions of Java.</p>]]>
   If this code will be granted security permissions, but might be invoked by code that does not
   have security permissions, then the classloader creation needs to occur inside a doPrivileged block.</p>]]></description>
   </rule>
-  <rule key="JCIP_FIELD_ISNT_FINAL_IN_IMMUTABLE_CLASS" priority="MINOR">
+  <rule key="JCIP_FIELD_ISNT_FINAL_IN_IMMUTABLE_CLASS">
+<priority>MINOR</priority>
     <name><![CDATA[Bad practice - Fields of immutable classes should be final]]></name>
     <configKey><![CDATA[JCIP_FIELD_ISNT_FINAL_IN_IMMUTABLE_CLASS]]></configKey>
     
@@ -472,7 +521,8 @@ will need to be changed in order to compile it in later versions of Java.</p>]]>
 that all fields are final.
    .</p>]]></description>
   </rule>
-  <rule key="DMI_THREAD_PASSED_WHERE_RUNNABLE_EXPECTED" priority="MAJOR">
+  <rule key="DMI_THREAD_PASSED_WHERE_RUNNABLE_EXPECTED">
+<priority>MAJOR</priority>
     <name><![CDATA[Dodgy - Thread passed where Runnable expected]]></name>
     <configKey><![CDATA[DMI_THREAD_PASSED_WHERE_RUNNABLE_EXPECTED]]></configKey>
     
@@ -481,7 +531,8 @@ a Runnable is expected. This is rather unusual, and may indicate a logic error
 or cause unexpected behavior.
    </p>]]></description>
   </rule>
-  <rule key="DMI_COLLECTION_OF_URLS" priority="BLOCKER">
+  <rule key="DMI_COLLECTION_OF_URLS">
+<priority>BLOCKER</priority>
     <name><![CDATA[Performance - Maps and sets of URLs can be performance hogs]]></name>
     <configKey><![CDATA[DMI_COLLECTION_OF_URLS]]></configKey>
     
@@ -491,7 +542,8 @@ See <a href="http://michaelscharf.blogspot.com/2006/11/javaneturlequals-and-hash
 Consider using <code>java.net.URI</code> instead.
    </p>]]></description>
   </rule>
-  <rule key="DMI_BLOCKING_METHODS_ON_URL" priority="BLOCKER">
+  <rule key="DMI_BLOCKING_METHODS_ON_URL">
+<priority>BLOCKER</priority>
     <name><![CDATA[Performance - The equals and hashCode methods of URL are blocking]]></name>
     <configKey><![CDATA[DMI_BLOCKING_METHODS_ON_URL]]></configKey>
     
@@ -501,7 +553,8 @@ See <a href="http://michaelscharf.blogspot.com/2006/11/javaneturlequals-and-hash
 Consider using <code>java.net.URI</code> instead.
    </p>]]></description>
   </rule>
-  <rule key="DMI_ANNOTATION_IS_NOT_VISIBLE_TO_REFLECTION" priority="MAJOR">
+  <rule key="DMI_ANNOTATION_IS_NOT_VISIBLE_TO_REFLECTION">
+<priority>MAJOR</priority>
     <name>
       <![CDATA[Correctness - Can't use reflection to check for presence of annotation without runtime retention]]></name>
     <configKey><![CDATA[DMI_ANNOTATION_IS_NOT_VISIBLE_TO_REFLECTION]]></configKey>
@@ -510,7 +563,8 @@ Consider using <code>java.net.URI</code> instead.
 (e.g., by using the isAnnotationPresent method).
    .</p>]]></description>
   </rule>
-  <rule key="DM_EXIT" priority="MAJOR">
+  <rule key="DM_EXIT">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - Method invokes System.exit(...)]]></name>
     <configKey><![CDATA[DM_EXIT]]></configKey>
     
@@ -519,7 +573,8 @@ Consider using <code>java.net.URI</code> instead.
    hard or impossible for your code to be invoked by other code.
    Consider throwing a RuntimeException instead.</p>]]></description>
   </rule>
-  <rule key="DM_RUN_FINALIZERS_ON_EXIT" priority="MAJOR">
+  <rule key="DM_RUN_FINALIZERS_ON_EXIT">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - Method invokes dangerous method runFinalizersOnExit]]></name>
     <configKey><![CDATA[DM_RUN_FINALIZERS_ON_EXIT]]></configKey>
     
@@ -527,7 +582,8 @@ Consider using <code>java.net.URI</code> instead.
 or Runtime.runFinalizersOnExit for any reason: they are among the most
 dangerous methods in the Java libraries.</em> -- Joshua Bloch</p>]]></description>
   </rule>
-  <rule key="DM_STRING_CTOR" priority="MAJOR">
+  <rule key="DM_STRING_CTOR">
+<priority>MAJOR</priority>
     <name><![CDATA[Performance - Method invokes inefficient new String(String) constructor]]></name>
     <configKey><![CDATA[DM_STRING_CTOR]]></configKey>
     
@@ -536,7 +592,8 @@ dangerous methods in the Java libraries.</em> -- Joshua Bloch</p>]]></descriptio
   from the <code>String</code> passed as a parameter.&nbsp; Just use the
   argument <code>String</code> directly.</p>]]></description>
   </rule>
-  <rule key="DM_STRING_VOID_CTOR" priority="MAJOR">
+  <rule key="DM_STRING_VOID_CTOR">
+<priority>MAJOR</priority>
     <name><![CDATA[Performance - Method invokes inefficient new String() constructor]]></name>
     <configKey><![CDATA[DM_STRING_VOID_CTOR]]></configKey>
     
@@ -547,14 +604,16 @@ dangerous methods in the Java libraries.</em> -- Joshua Bloch</p>]]></descriptio
   will be represented by the same <code>String</code> object.&nbsp; Therefore,
   you should just use the empty string constant directly.</p>]]></description>
   </rule>
-  <rule key="DM_STRING_TOSTRING" priority="INFO">
+  <rule key="DM_STRING_TOSTRING">
+<priority>INFO</priority>
     <name><![CDATA[Performance - Method invokes toString() method on a String]]></name>
     <configKey><![CDATA[DM_STRING_TOSTRING]]></configKey>
     
     <description><![CDATA[<p> Calling <code>String.toString()</code> is just a redundant operation.
   Just use the String.</p>]]></description>
   </rule>
-  <rule key="DM_GC" priority="MAJOR">
+  <rule key="DM_GC">
+<priority>MAJOR</priority>
     <name><![CDATA[Performance - Explicit garbage collection; extremely dubious except in benchmarking code]]></name>
     <configKey><![CDATA[DM_GC]]></configKey>
     
@@ -566,7 +625,8 @@ dangerous methods in the Java libraries.</em> -- Joshua Bloch</p>]]></descriptio
    can be expensive. Any situation that forces hundreds or thousands
    of garbage collections will bring the machine to a crawl.</p>]]></description>
   </rule>
-  <rule key="DM_BOOLEAN_CTOR" priority="MAJOR">
+  <rule key="DM_BOOLEAN_CTOR">
+<priority>MAJOR</priority>
     <name>
       <![CDATA[Performance - Method invokes inefficient Boolean constructor; use Boolean.valueOf(...) instead]]></name>
     <configKey><![CDATA[DM_BOOLEAN_CTOR]]></configKey>
@@ -576,7 +636,8 @@ dangerous methods in the Java libraries.</em> -- Joshua Bloch</p>]]></descriptio
   only two useful values of this type.&nbsp; Use the <code>Boolean.valueOf()</code>
   method (or Java 1.5 autoboxing) to create <code>Boolean</code> objects instead.</p>]]></description>
   </rule>
-  <rule key="DM_NUMBER_CTOR" priority="CRITICAL">
+  <rule key="DM_NUMBER_CTOR">
+<priority>CRITICAL</priority>
     <name><![CDATA[Performance - Method invokes inefficient Number constructor; use static valueOf instead]]></name>
     <configKey><![CDATA[DM_NUMBER_CTOR]]></configKey>
     
@@ -596,7 +657,8 @@ dangerous methods in the Java libraries.</em> -- Joshua Bloch</p>]]></descriptio
       <code>Long</code>, <code>Integer</code>, <code>Short</code>, <code>Character</code>, and <code>Byte</code>.
       </p>]]></description>
   </rule>
-  <rule key="DM_FP_NUMBER_CTOR" priority="MAJOR">
+  <rule key="DM_FP_NUMBER_CTOR">
+<priority>MAJOR</priority>
     <name>
       <![CDATA[Performance - Method invokes inefficient floating-point Number constructor; use static valueOf instead]]></name>
     <configKey><![CDATA[DM_FP_NUMBER_CTOR]]></configKey>
@@ -611,7 +673,8 @@ dangerous methods in the Java libraries.</em> -- Joshua Bloch</p>]]></descriptio
       use either autoboxing or the <code>valueOf()</code> method when creating instances of <code>Double</code> and <code>Float</code>.
       </p>]]></description>
   </rule>
-  <rule key="DM_CONVERT_CASE" priority="INFO">
+  <rule key="DM_CONVERT_CASE">
+<priority>INFO</priority>
     <name><![CDATA[Internationalization - Consider using Locale parameterized version of invoked method]]></name>
     <configKey><![CDATA[DM_CONVERT_CASE]]></configKey>
     
@@ -620,7 +683,8 @@ dangerous methods in the Java libraries.</em> -- Joshua Bloch</p>]]></descriptio
       <table><tr><td>String.toUpperCase( Locale l )</td></tr><tr><td>String.toLowerCase( Locale l )</td></tr></table>
       <p>versions instead.</p>]]></description>
   </rule>
-  <rule key="BX_UNBOXED_AND_COERCED_FOR_TERNARY_OPERATOR" priority="MAJOR">
+  <rule key="BX_UNBOXED_AND_COERCED_FOR_TERNARY_OPERATOR">
+<priority>MAJOR</priority>
     <name><![CDATA[Correctness - Primitive value is unboxed and coerced for ternary operator]]></name>
     <configKey><![CDATA[BX_UNBOXED_AND_COERCED_FOR_TERNARY_OPERATOR]]></configKey>
     
@@ -633,7 +697,8 @@ and <code>e2</code> is of type <code>Float</code>, then <code>e1</code> is unbox
 converted to a floating point value, and boxed. See JLS Section 15.25.
 </p>]]></description>
   </rule>
-  <rule key="BX_BOXING_IMMEDIATELY_UNBOXED" priority="MAJOR">
+  <rule key="BX_BOXING_IMMEDIATELY_UNBOXED">
+<priority>MAJOR</priority>
     <name><![CDATA[Performance - Primitive value is boxed and then immediately unboxed]]></name>
     <configKey><![CDATA[BX_BOXING_IMMEDIATELY_UNBOXED]]></configKey>
     
@@ -642,14 +707,16 @@ converted to a floating point value, and boxed. See JLS Section 15.25.
 to immediately undo the work of the boxing.
 </p>]]></description>
   </rule>
-  <rule key="BX_BOXING_IMMEDIATELY_UNBOXED_TO_PERFORM_COERCION" priority="MAJOR">
+  <rule key="BX_BOXING_IMMEDIATELY_UNBOXED_TO_PERFORM_COERCION">
+<priority>MAJOR</priority>
     <name><![CDATA[Performance - Primitive value is boxed then unboxed to perform primitive coercion]]></name>
     <configKey><![CDATA[BX_BOXING_IMMEDIATELY_UNBOXED_TO_PERFORM_COERCION]]></configKey>
     
     <description><![CDATA[<p>A primitive boxed value constructed and then immediately converted into a different primitive type
 (e.g., <code>new Double(d).intValue()</code>). Just perform direct primitive coercion (e.g., <code>(int) d</code>).</p>]]></description>
   </rule>
-  <rule key="DM_BOXED_PRIMITIVE_TOSTRING" priority="MAJOR">
+  <rule key="DM_BOXED_PRIMITIVE_TOSTRING">
+<priority>MAJOR</priority>
     <name><![CDATA[Performance - Method allocates a boxed primitive just to call toString]]></name>
     <configKey><![CDATA[DM_BOXED_PRIMITIVE_TOSTRING]]></configKey>
     
@@ -666,14 +733,16 @@ to immediately undo the work of the boxing.
      <tr><td>new Boolean(true).toString()</td><td>Boolean.toString(true)</td></tr>
   </table>]]></description>
   </rule>
-  <rule key="DM_NEW_FOR_GETCLASS" priority="MAJOR">
+  <rule key="DM_NEW_FOR_GETCLASS">
+<priority>MAJOR</priority>
     <name><![CDATA[Performance - Method allocates an object, only to get the class object]]></name>
     <configKey><![CDATA[DM_NEW_FOR_GETCLASS]]></configKey>
     
     <description><![CDATA[<p>This method allocates an object just to call getClass() on it, in order to
   retrieve the Class object for it. It is simpler to just access the .class property of the class.</p>]]></description>
   </rule>
-  <rule key="DM_MONITOR_WAIT_ON_CONDITION" priority="MAJOR">
+  <rule key="DM_MONITOR_WAIT_ON_CONDITION">
+<priority>MAJOR</priority>
     <name><![CDATA[Multithreaded correctness - Monitor wait() called on Condition]]></name>
     <configKey><![CDATA[DM_MONITOR_WAIT_ON_CONDITION]]></configKey>
     
@@ -684,7 +753,8 @@ to immediately undo the work of the boxing.
       methods defined by the <code>Condition</code> interface.
       </p>]]></description>
   </rule>
-  <rule key="RV_01_TO_INT" priority="MAJOR">
+  <rule key="RV_01_TO_INT">
+<priority>MAJOR</priority>
     <name><![CDATA[Correctness - Random value from 0 to 1 is coerced to the integer 0]]></name>
     <configKey><![CDATA[RV_01_TO_INT]]></configKey>
     
@@ -692,7 +762,8 @@ to immediately undo the work of the boxing.
 want to multiple the random value by something else before coercing it to an integer, or use the <code>Random.nextInt(n)</code> method.
 </p>]]></description>
   </rule>
-  <rule key="DM_NEXTINT_VIA_NEXTDOUBLE" priority="MAJOR">
+  <rule key="DM_NEXTINT_VIA_NEXTDOUBLE">
+<priority>MAJOR</priority>
     <name>
       <![CDATA[Performance - Use the nextInt method of Random rather than nextDouble to generate a random integer]]></name>
     <configKey><![CDATA[DM_NEXTINT_VIA_NEXTDOUBLE]]></configKey>
@@ -701,7 +772,8 @@ want to multiple the random value by something else before coercing it to an int
 using <code>r.nextInt(n)</code>, rather than using <code>(int)(r.nextDouble() * n)</code>.
 </p>]]></description>
   </rule>
-  <rule key="SQL_NONCONSTANT_STRING_PASSED_TO_EXECUTE" priority="CRITICAL">
+  <rule key="SQL_NONCONSTANT_STRING_PASSED_TO_EXECUTE">
+<priority>CRITICAL</priority>
     <name><![CDATA[Security - Nonconstant string passed to execute method on an SQL statement]]></name>
     <configKey><![CDATA[SQL_NONCONSTANT_STRING_PASSED_TO_EXECUTE]]></configKey>
     
@@ -711,7 +783,8 @@ a prepared statement instead. It is more efficient and less vulnerable to
 SQL injection attacks.
 </p>]]></description>
   </rule>
-  <rule key="SQL_PREPARED_STATEMENT_GENERATED_FROM_NONCONSTANT_STRING" priority="CRITICAL">
+  <rule key="SQL_PREPARED_STATEMENT_GENERATED_FROM_NONCONSTANT_STRING">
+<priority>CRITICAL</priority>
     <name><![CDATA[Security - A prepared statement is generated from a nonconstant String]]></name>
     <configKey><![CDATA[SQL_PREPARED_STATEMENT_GENERATED_FROM_NONCONSTANT_STRING]]></configKey>
     
@@ -720,7 +793,8 @@ If unchecked, tainted data from a user is used in building this String, SQL inje
 be used to make the prepared statement do something unexpected and undesirable.
 </p>]]></description>
   </rule>
-  <rule key="DM_USELESS_THREAD" priority="MAJOR">
+  <rule key="DM_USELESS_THREAD">
+<priority>MAJOR</priority>
     <name><![CDATA[Multithreaded correctness - A thread was created using the default empty run method]]></name>
     <configKey><![CDATA[DM_USELESS_THREAD]]></configKey>
     
@@ -728,7 +802,8 @@ be used to make the prepared statement do something unexpected and undesirable.
   by passing a Runnable object. This thread, then, does nothing but waste time.
 </p>]]></description>
   </rule>
-  <rule key="DC_DOUBLECHECK" priority="MAJOR">
+  <rule key="DC_DOUBLECHECK">
+<priority>MAJOR</priority>
     <name><![CDATA[Multithreaded correctness - Possible double check of field]]></name>
     <configKey><![CDATA[DC_DOUBLECHECK]]></configKey>
     
@@ -738,14 +813,16 @@ be used to make the prepared statement do something unexpected and undesirable.
   <a href="http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html"
   >http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html</a>.</p>]]></description>
   </rule>
-  <rule key="FI_FINALIZER_NULLS_FIELDS" priority="MAJOR">
+  <rule key="FI_FINALIZER_NULLS_FIELDS">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - Finalizer nulls fields]]></name>
     <configKey><![CDATA[FI_FINALIZER_NULLS_FIELDS]]></configKey>
     
     <description><![CDATA[<p> This finalizer nulls out fields.  This is usually an error, as it does not aid garbage collection,
   and the object is going to be garbage collected anyway.]]></description>
   </rule>
-  <rule key="FI_FINALIZER_ONLY_NULLS_FIELDS" priority="MAJOR">
+  <rule key="FI_FINALIZER_ONLY_NULLS_FIELDS">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - Finalizer only nulls fields]]></name>
     <configKey><![CDATA[FI_FINALIZER_ONLY_NULLS_FIELDS]]></configKey>
     
@@ -753,21 +830,24 @@ be used to make the prepared statement do something unexpected and undesirable.
 the object be garbage collected, finalized, and then garbage collected again. You should just remove the finalize
 method.]]></description>
   </rule>
-  <rule key="FI_PUBLIC_SHOULD_BE_PROTECTED" priority="MAJOR">
+  <rule key="FI_PUBLIC_SHOULD_BE_PROTECTED">
+<priority>MAJOR</priority>
     <name><![CDATA[Malicious code vulnerability - Finalizer should be protected, not public]]></name>
     <configKey><![CDATA[FI_PUBLIC_SHOULD_BE_PROTECTED]]></configKey>
     
     <description><![CDATA[<p> A class's <code>finalize()</code> method should have protected access,
    not public.</p>]]></description>
   </rule>
-  <rule key="FI_EMPTY" priority="MAJOR">
+  <rule key="FI_EMPTY">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - Empty finalizer should be deleted]]></name>
     <configKey><![CDATA[FI_EMPTY]]></configKey>
     
     <description><![CDATA[<p> Empty <code>finalize()</code> methods are useless, so they should
   be deleted.</p>]]></description>
   </rule>
-  <rule key="FI_NULLIFY_SUPER" priority="CRITICAL">
+  <rule key="FI_NULLIFY_SUPER">
+<priority>CRITICAL</priority>
     <name><![CDATA[Bad practice - Finalizer nullifies superclass finalizer]]></name>
     <configKey><![CDATA[FI_NULLIFY_SUPER]]></configKey>
     
@@ -776,7 +856,8 @@ method.]]></description>
   actions defined for the superclass will not be performed.&nbsp;
   Unless this is intended, delete this method.</p>]]></description>
   </rule>
-  <rule key="FI_USELESS" priority="MINOR">
+  <rule key="FI_USELESS">
+<priority>MINOR</priority>
     <name><![CDATA[Bad practice - Finalizer does nothing but call superclass finalizer]]></name>
     <configKey><![CDATA[FI_USELESS]]></configKey>
     
@@ -784,7 +865,8 @@ method.]]></description>
   the superclass's <code>finalize()</code> method, making it
   redundant.&nbsp; Delete it.</p>]]></description>
   </rule>
-  <rule key="FI_MISSING_SUPER_CALL" priority="MAJOR">
+  <rule key="FI_MISSING_SUPER_CALL">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - Finalizer does not call superclass finalizer]]></name>
     <configKey><![CDATA[FI_MISSING_SUPER_CALL]]></configKey>
     
@@ -793,7 +875,8 @@ method.]]></description>
   actions defined for the superclass will not be performed.&nbsp;
   Add a call to <code>super.finalize()</code>.</p>]]></description>
   </rule>
-  <rule key="FI_EXPLICIT_INVOCATION" priority="MAJOR">
+  <rule key="FI_EXPLICIT_INVOCATION">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - Explicit invocation of finalizer]]></name>
     <configKey><![CDATA[FI_EXPLICIT_INVOCATION]]></configKey>
     
@@ -805,7 +888,8 @@ finalize method on all the finalizable object, possibly at the same time in diff
 Thus, it is a particularly bad idea, in the finalize method for a class X, invoke finalize
 on objects referenced by X, because they may already be getting finalized in a separate thread.]]></description>
   </rule>
-  <rule key="EQ_CHECK_FOR_OPERAND_NOT_COMPATIBLE_WITH_THIS" priority="MAJOR">
+  <rule key="EQ_CHECK_FOR_OPERAND_NOT_COMPATIBLE_WITH_THIS">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - Equals checks for noncompatible operand]]></name>
     <configKey><![CDATA[EQ_CHECK_FOR_OPERAND_NOT_COMPATIBLE_WITH_THIS]]></configKey>
     
@@ -827,7 +911,8 @@ public boolean equals(Object o) {
 is symmetric and transitive. Without those properties, very unexpected behavoirs are possible.
 </p>]]></description>
   </rule>
-  <rule key="EQ_DONT_DEFINE_EQUALS_FOR_ENUM" priority="MAJOR">
+  <rule key="EQ_DONT_DEFINE_EQUALS_FOR_ENUM">
+<priority>MAJOR</priority>
     <name><![CDATA[Correctness - Covariant equals() method defined for enum]]></name>
     <configKey><![CDATA[EQ_DONT_DEFINE_EQUALS_FOR_ENUM]]></configKey>
     
@@ -839,7 +924,8 @@ the covariant enum method, and as not equal when compared normally.
 Don't do it.
 </p>]]></description>
   </rule>
-  <rule key="EQ_SELF_USE_OBJECT" priority="MAJOR">
+  <rule key="EQ_SELF_USE_OBJECT">
+<priority>MAJOR</priority>
     <name><![CDATA[Correctness - Covariant equals() method defined, Object.equals(Object) inherited]]></name>
     <configKey><![CDATA[EQ_SELF_USE_OBJECT]]></configKey>
     
@@ -849,7 +935,8 @@ Don't do it.
   The class should probably define a <code>boolean equals(Object)</code> method.
   </p>]]></description>
   </rule>
-  <rule key="EQ_OTHER_USE_OBJECT" priority="MAJOR">
+  <rule key="EQ_OTHER_USE_OBJECT">
+<priority>MAJOR</priority>
     <name><![CDATA[Correctness - equals() method defined that doesn't override Object.equals(Object)]]></name>
     <configKey><![CDATA[EQ_OTHER_USE_OBJECT]]></configKey>
     
@@ -859,7 +946,8 @@ Don't do it.
   The class should probably define a <code>boolean equals(Object)</code> method.
   </p>]]></description>
   </rule>
-  <rule key="EQ_OTHER_NO_OBJECT" priority="MAJOR">
+  <rule key="EQ_OTHER_NO_OBJECT">
+<priority>MAJOR</priority>
     <name><![CDATA[Correctness - equals() method defined that doesn't override equals(Object)]]></name>
     <configKey><![CDATA[EQ_OTHER_NO_OBJECT]]></configKey>
     
@@ -885,7 +973,8 @@ that the equals method for the subclass just return the result of
 invoking super.equals(o).
   </p>]]></description>
   </rule>
-  <rule key="EQ_SELF_NO_OBJECT" priority="MAJOR">
+  <rule key="EQ_SELF_NO_OBJECT">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - Covariant equals() method defined]]></name>
     <configKey><![CDATA[EQ_SELF_NO_OBJECT]]></configKey>
     
@@ -894,7 +983,8 @@ invoking super.equals(o).
   <code>java.lang.Object</code>, the parameter of <code>equals()</code>
   must have type <code>java.lang.Object</code>.</p>]]></description>
   </rule>
-  <rule key="EQ_OVERRIDING_EQUALS_NOT_SYMMETRIC" priority="MAJOR">
+  <rule key="EQ_OVERRIDING_EQUALS_NOT_SYMMETRIC">
+<priority>MAJOR</priority>
     <name><![CDATA[Correctness - equals method overrides equals in superclass and may not be symmetric]]></name>
     <configKey><![CDATA[EQ_OVERRIDING_EQUALS_NOT_SYMMETRIC]]></configKey>
     
@@ -906,7 +996,8 @@ checks that the argument is an instanceof B, it is quite likely that the equival
 methods is not symmetric.
 </p>]]></description>
   </rule>
-  <rule key="EQ_GETCLASS_AND_CLASS_CONSTANT" priority="CRITICAL">
+  <rule key="EQ_GETCLASS_AND_CLASS_CONSTANT">
+<priority>CRITICAL</priority>
     <name><![CDATA[Bad practice - equals method fails for subtypes]]></name>
     <configKey><![CDATA[EQ_GETCLASS_AND_CLASS_CONSTANT]]></configKey>
     
@@ -916,7 +1007,8 @@ it might check if <code>Foo.class == o.getClass()</code>).
 It is better to check if <code>this.getClass() == o.getClass()</code>.
 </p>]]></description>
   </rule>
-  <rule key="EQ_UNUSUAL" priority="MINOR">
+  <rule key="EQ_UNUSUAL">
+<priority>MINOR</priority>
     <name><![CDATA[Dodgy - Unusual equals method ]]></name>
     <configKey><![CDATA[EQ_UNUSUAL]]></configKey>
     
@@ -925,7 +1017,8 @@ is compatible with the type of the <code>this</code> object. There might not be
 this code, but it is worth reviewing.
 </p>]]></description>
   </rule>
-  <rule key="EQ_COMPARING_CLASS_NAMES" priority="MAJOR">
+  <rule key="EQ_COMPARING_CLASS_NAMES">
+<priority>MAJOR</priority>
     <name><![CDATA[Correctness - equals method compares class names rather than class objects]]></name>
     <configKey><![CDATA[EQ_COMPARING_CLASS_NAMES]]></configKey>
     
@@ -934,7 +1027,8 @@ of their classes are equal. You can have different classes with the same name if
 different class loaders. Just check to see if the class objects are the same.
 </p>]]></description>
   </rule>
-  <rule key="EQ_ALWAYS_TRUE" priority="BLOCKER">
+  <rule key="EQ_ALWAYS_TRUE">
+<priority>BLOCKER</priority>
     <name><![CDATA[Correctness - equals method always returns true]]></name>
     <configKey><![CDATA[EQ_ALWAYS_TRUE]]></configKey>
     
@@ -942,7 +1036,8 @@ different class loaders. Just check to see if the class objects are the same.
 Plus, it means that the equals method is not symmetric.
 </p>]]></description>
   </rule>
-  <rule key="EQ_ALWAYS_FALSE" priority="BLOCKER">
+  <rule key="EQ_ALWAYS_FALSE">
+<priority>BLOCKER</priority>
     <name><![CDATA[Correctness - equals method always returns false]]></name>
     <configKey><![CDATA[EQ_ALWAYS_FALSE]]></configKey>
     
@@ -955,7 +1050,8 @@ public boolean equals(Object o) { return this == o; }
 </pre>
 </p>]]></description>
   </rule>
-  <rule key="HSC_HUGE_SHARED_STRING_CONSTANT" priority="CRITICAL">
+  <rule key="HSC_HUGE_SHARED_STRING_CONSTANT">
+<priority>CRITICAL</priority>
     <name><![CDATA[Performance - Huge string constants is duplicated across multiple class files]]></name>
     <configKey><![CDATA[HSC_HUGE_SHARED_STRING_CONSTANT]]></configKey>
     
@@ -968,7 +1064,8 @@ that classfile. See <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=
        the size of the JDK by 1 megabyte.
 </p>]]></description>
   </rule>
-  <rule key="NP_ARGUMENT_MIGHT_BE_NULL" priority="MAJOR">
+  <rule key="NP_ARGUMENT_MIGHT_BE_NULL">
+<priority>MAJOR</priority>
     <name><![CDATA[Correctness - Method does not check for null argument]]></name>
     <configKey><![CDATA[NP_ARGUMENT_MIGHT_BE_NULL]]></configKey>
     
@@ -978,7 +1075,8 @@ that classfile. See <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=
        without a preceding null check.
       </p>]]></description>
   </rule>
-  <rule key="NP_EQUALS_SHOULD_HANDLE_NULL_ARGUMENT" priority="CRITICAL">
+  <rule key="NP_EQUALS_SHOULD_HANDLE_NULL_ARGUMENT">
+<priority>CRITICAL</priority>
     <name><![CDATA[Bad practice - equals() method does not check for null argument]]></name>
     <configKey><![CDATA[NP_EQUALS_SHOULD_HANDLE_NULL_ARGUMENT]]></configKey>
     
@@ -989,7 +1087,8 @@ that classfile. See <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=
       false if passed a null value.
       </p>]]></description>
   </rule>
-  <rule key="CO_SELF_NO_OBJECT" priority="MAJOR">
+  <rule key="CO_SELF_NO_OBJECT">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - Covariant compareTo() method defined]]></name>
     <configKey><![CDATA[CO_SELF_NO_OBJECT]]></configKey>
     
@@ -998,7 +1097,8 @@ that classfile. See <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=
   <code>Comparable</code> interface, the parameter of <code>compareTo()</code>
   must have type <code>java.lang.Object</code>.</p>]]></description>
   </rule>
-  <rule key="HE_SIGNATURE_DECLARES_HASHING_OF_UNHASHABLE_CLASS" priority="CRITICAL">
+  <rule key="HE_SIGNATURE_DECLARES_HASHING_OF_UNHASHABLE_CLASS">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Signature declares use of unhashable class in hashed construct]]></name>
     <configKey><![CDATA[HE_SIGNATURE_DECLARES_HASHING_OF_UNHASHABLE_CLASS]]></configKey>
     
@@ -1009,7 +1109,8 @@ from Object is unhashable, since it doesn't fulfill the requirement that
 equal objects have equal hashCodes.
 </p>]]></description>
   </rule>
-  <rule key="HE_USE_OF_UNHASHABLE_CLASS" priority="CRITICAL">
+  <rule key="HE_USE_OF_UNHASHABLE_CLASS">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Use of class without a hashCode() method in a hashed data structure]]></name>
     <configKey><![CDATA[HE_USE_OF_UNHASHABLE_CLASS]]></configKey>
     
@@ -1018,7 +1119,8 @@ and thus doesn't fulfill the requirement that equal objects have equal hashCodes
 An instance of this class is used in a hash data structure, making the need to
 fix this problem of highest importance.]]></description>
   </rule>
-  <rule key="HE_HASHCODE_USE_OBJECT_EQUALS" priority="CRITICAL">
+  <rule key="HE_HASHCODE_USE_OBJECT_EQUALS">
+<priority>CRITICAL</priority>
     <name><![CDATA[Bad practice - Class defines hashCode() and uses Object.equals()]]></name>
     <configKey><![CDATA[HE_HASHCODE_USE_OBJECT_EQUALS]]></configKey>
     
@@ -1037,7 +1139,8 @@ the recommended <code>hashCode</code> implementation to use is:</p>
   return 42; // any arbitrary constant will do 
   }</pre></p>]]></description>
   </rule>
-  <rule key="EQ_COMPARETO_USE_OBJECT_EQUALS" priority="CRITICAL">
+  <rule key="EQ_COMPARETO_USE_OBJECT_EQUALS">
+<priority>CRITICAL</priority>
     <name><![CDATA[Bad practice - Class defines compareTo(...) and uses Object.equals()]]></name>
     <configKey><![CDATA[EQ_COMPARETO_USE_OBJECT_EQUALS]]></configKey>
     
@@ -1057,7 +1160,8 @@ should clearly indicate this fact. The recommended language
 is "Note: this class has a natural ordering that is inconsistent with equals."
 </blockquote>]]></description>
   </rule>
-  <rule key="HE_HASHCODE_NO_EQUALS" priority="CRITICAL">
+  <rule key="HE_HASHCODE_NO_EQUALS">
+<priority>CRITICAL</priority>
     <name><![CDATA[Bad practice - Class defines hashCode() but not equals()]]></name>
     <configKey><![CDATA[HE_HASHCODE_NO_EQUALS]]></configKey>
     
@@ -1065,7 +1169,8 @@ is "Note: this class has a natural ordering that is inconsistent with equals."
   <code>equals()</code> method.&nbsp; Therefore, the class may
   violate the invariant that equal objects must have equal hashcodes.</p>]]></description>
   </rule>
-  <rule key="HE_EQUALS_USE_HASHCODE" priority="CRITICAL">
+  <rule key="HE_EQUALS_USE_HASHCODE">
+<priority>CRITICAL</priority>
     <name><![CDATA[Bad practice - Class defines equals() and uses Object.hashCode()]]></name>
     <configKey><![CDATA[HE_EQUALS_USE_HASHCODE]]></configKey>
     
@@ -1083,7 +1188,8 @@ the recommended <code>hashCode</code> implementation to use is:</p>
   return 42; // any arbitrary constant will do 
   }</pre>]]></description>
   </rule>
-  <rule key="HE_INHERITS_EQUALS_USE_HASHCODE" priority="CRITICAL">
+  <rule key="HE_INHERITS_EQUALS_USE_HASHCODE">
+<priority>CRITICAL</priority>
     <name><![CDATA[Bad practice - Class inherits equals() and uses Object.hashCode()]]></name>
     <configKey><![CDATA[HE_INHERITS_EQUALS_USE_HASHCODE]]></configKey>
     
@@ -1099,7 +1205,8 @@ the recommended <code>hashCode</code> implementation to use is:</p>
    define the <code>hashCode()</code> method
    to throw <code>UnsupportedOperationException</code>.</p>]]></description>
   </rule>
-  <rule key="HE_EQUALS_NO_HASHCODE" priority="MAJOR">
+  <rule key="HE_EQUALS_NO_HASHCODE">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - Class defines equals() but not hashCode()]]></name>
     <configKey><![CDATA[HE_EQUALS_NO_HASHCODE]]></configKey>
     
@@ -1107,7 +1214,8 @@ the recommended <code>hashCode</code> implementation to use is:</p>
   override <code>hashCode()</code>.&nbsp; Therefore, the class may violate the
   invariant that equal objects must have equal hashcodes.</p>]]></description>
   </rule>
-  <rule key="EQ_ABSTRACT_SELF" priority="MAJOR">
+  <rule key="EQ_ABSTRACT_SELF">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - Abstract class defines covariant equals() method]]></name>
     <configKey><![CDATA[EQ_ABSTRACT_SELF]]></configKey>
     
@@ -1116,7 +1224,8 @@ the recommended <code>hashCode</code> implementation to use is:</p>
   <code>java.lang.Object</code>, the parameter of <code>equals()</code>
   must have type <code>java.lang.Object</code>.</p>]]></description>
   </rule>
-  <rule key="ES_COMPARING_STRINGS_WITH_EQ" priority="MAJOR">
+  <rule key="ES_COMPARING_STRINGS_WITH_EQ">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - Comparison of String objects using == or !=]]></name>
     <configKey><![CDATA[ES_COMPARING_STRINGS_WITH_EQ]]></configKey>
     
@@ -1127,7 +1236,8 @@ interned using the <code>String.intern()</code> method, the same string
 value may be represented by two different String objects. Consider
 using the <code>equals(Object)</code> method instead.</p>]]></description>
   </rule>
-  <rule key="ES_COMPARING_PARAMETER_STRING_WITH_EQ" priority="MAJOR">
+  <rule key="ES_COMPARING_PARAMETER_STRING_WITH_EQ">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - Comparison of String parameter using == or !=]]></name>
     <configKey><![CDATA[ES_COMPARING_PARAMETER_STRING_WITH_EQ]]></configKey>
     
@@ -1137,7 +1247,8 @@ pass only String constants or interned strings to a method is unnecessarily
 fragile, and rarely leads to measurable performance gains. Consider
 using the <code>equals(Object)</code> method instead.</p>]]></description>
   </rule>
-  <rule key="CO_ABSTRACT_SELF" priority="MAJOR">
+  <rule key="CO_ABSTRACT_SELF">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - Abstract class defines covariant compareTo() method]]></name>
     <configKey><![CDATA[CO_ABSTRACT_SELF]]></configKey>
     
@@ -1146,14 +1257,16 @@ using the <code>equals(Object)</code> method instead.</p>]]></description>
   <code>Comparable</code> interface, the parameter of <code>compareTo()</code>
   must have type <code>java.lang.Object</code>.</p>]]></description>
   </rule>
-  <rule key="IS_FIELD_NOT_GUARDED" priority="CRITICAL">
+  <rule key="IS_FIELD_NOT_GUARDED">
+<priority>CRITICAL</priority>
     <name><![CDATA[Multithreaded correctness - Field not guarded against concurrent access]]></name>
     <configKey><![CDATA[IS_FIELD_NOT_GUARDED]]></configKey>
     
     <description><![CDATA[<p> This field is annotated with net.jcip.annotations.GuardedBy, 
 but can be accessed in a way that seems to violate the annotation.</p>]]></description>
   </rule>
-  <rule key="MSF_MUTABLE_SERVLET_FIELD" priority="MAJOR">
+  <rule key="MSF_MUTABLE_SERVLET_FIELD">
+<priority>MAJOR</priority>
     <name><![CDATA[Multithreaded correctness - Mutable servlet field]]></name>
     <configKey><![CDATA[MSF_MUTABLE_SERVLET_FIELD]]></configKey>
     
@@ -1164,7 +1277,8 @@ have multiple threads invoke methods on that instance to service multiple
 simultaneous requests.
 Thus, having a mutable instance field generally creates race conditions.]]></description>
   </rule>
-  <rule key="IS2_INCONSISTENT_SYNC" priority="CRITICAL">
+  <rule key="IS2_INCONSISTENT_SYNC">
+<priority>CRITICAL</priority>
     <name><![CDATA[Multithreaded correctness - Inconsistent synchronization]]></name>
     <configKey><![CDATA[IS2_INCONSISTENT_SYNC]]></configKey>
     
@@ -1192,7 +1306,8 @@ Thus, having a mutable instance field generally creates race conditions.]]></des
   distinguishing locked vs. unlocked accesses, the code in question may still
   be correct.</p>]]></description>
   </rule>
-  <rule key="NN_NAKED_NOTIFY" priority="CRITICAL">
+  <rule key="NN_NAKED_NOTIFY">
+<priority>CRITICAL</priority>
     <name><![CDATA[Multithreaded correctness - Naked notify]]></name>
     <configKey><![CDATA[NN_NAKED_NOTIFY]]></configKey>
     
@@ -1207,7 +1322,8 @@ Thus, having a mutable instance field generally creates race conditions.]]></des
   mutable object state may have taken place in a method which then called
   the method containing the notification.</p>]]></description>
   </rule>
-  <rule key="MS_EXPOSE_REP" priority="CRITICAL">
+  <rule key="MS_EXPOSE_REP">
+<priority>CRITICAL</priority>
     <name>
       <![CDATA[Malicious code vulnerability - Public static method may expose internal representation by returning array]]></name>
     <configKey><![CDATA[MS_EXPOSE_REP]]></configKey>
@@ -1218,7 +1334,8 @@ Thus, having a mutable instance field generally creates race conditions.]]></des
    the underlying array.
    One fix is to return a copy of the array.</p>]]></description>
   </rule>
-  <rule key="EI_EXPOSE_REP" priority="MAJOR">
+  <rule key="EI_EXPOSE_REP">
+<priority>MAJOR</priority>
     <name>
       <![CDATA[Malicious code vulnerability - May expose internal representation by returning reference to mutable object]]></name>
     <configKey><![CDATA[EI_EXPOSE_REP]]></configKey>
@@ -1231,7 +1348,8 @@ Thus, having a mutable instance field generally creates race conditions.]]></des
    important properties, you will need to do something different.
   Returning a new copy of the object is better approach in many situations.</p>]]></description>
   </rule>
-  <rule key="EI_EXPOSE_REP2" priority="MAJOR">
+  <rule key="EI_EXPOSE_REP2">
+<priority>MAJOR</priority>
     <name>
       <![CDATA[Malicious code vulnerability - May expose internal representation by incorporating reference to mutable object]]></name>
     <configKey><![CDATA[EI_EXPOSE_REP2]]></configKey>
@@ -1244,7 +1362,8 @@ Thus, having a mutable instance field generally creates race conditions.]]></des
    important properties, you will need to do something different.
   Storing a copy of the object is better approach in many situations.</p>]]></description>
   </rule>
-  <rule key="EI_EXPOSE_STATIC_REP2" priority="MAJOR">
+  <rule key="EI_EXPOSE_STATIC_REP2">
+<priority>MAJOR</priority>
     <name>
       <![CDATA[Malicious code vulnerability - May expose internal static state by storing a mutable object into a static field]]></name>
     <configKey><![CDATA[EI_EXPOSE_STATIC_REP2]]></configKey>
@@ -1256,7 +1375,8 @@ Thus, having a mutable instance field generally creates race conditions.]]></des
    important properties, you will need to do something different.
   Storing a copy of the object is better approach in many situations.</p>]]></description>
   </rule>
-  <rule key="RU_INVOKE_RUN" priority="MAJOR">
+  <rule key="RU_INVOKE_RUN">
+<priority>MAJOR</priority>
     <name><![CDATA[Multithreaded correctness - Invokes run on a thread (did you mean to start it instead?)]]></name>
     <configKey><![CDATA[RU_INVOKE_RUN]]></configKey>
     
@@ -1265,7 +1385,8 @@ Thus, having a mutable instance field generally creates race conditions.]]></des
   they are going to have their <code>run()</code> method invoked in a new thread,
   in which case <code>Thread.start()</code> is the right method to call.</p>]]></description>
   </rule>
-  <rule key="SP_SPIN_ON_FIELD" priority="MAJOR">
+  <rule key="SP_SPIN_ON_FIELD">
+<priority>MAJOR</priority>
     <name><![CDATA[Multithreaded correctness - Method spins on field]]></name>
     <configKey><![CDATA[SP_SPIN_ON_FIELD]]></configKey>
     
@@ -1274,7 +1395,8 @@ Thus, having a mutable instance field generally creates race conditions.]]></des
   infinite loop.&nbsp; The class should be changed so it uses proper
   synchronization (including wait and notify calls).</p>]]></description>
   </rule>
-  <rule key="NS_DANGEROUS_NON_SHORT_CIRCUIT" priority="CRITICAL">
+  <rule key="NS_DANGEROUS_NON_SHORT_CIRCUIT">
+<priority>CRITICAL</priority>
     <name><![CDATA[Dodgy - Potentially dangerous use of non-short-circuit logic]]></name>
     <configKey><![CDATA[NS_DANGEROUS_NON_SHORT_CIRCUIT]]></configKey>
     
@@ -1297,7 +1419,8 @@ Language Specification</a> for details
 
 </p>]]></description>
   </rule>
-  <rule key="NS_NON_SHORT_CIRCUIT" priority="MAJOR">
+  <rule key="NS_NON_SHORT_CIRCUIT">
+<priority>MAJOR</priority>
     <name><![CDATA[Dodgy - Questionable use of non-short-circuit logic]]></name>
     <configKey><![CDATA[NS_NON_SHORT_CIRCUIT]]></configKey>
     
@@ -1315,7 +1438,8 @@ Language Specification</a> for details
 
 </p>]]></description>
   </rule>
-  <rule key="TLW_TWO_LOCK_WAIT" priority="MAJOR">
+  <rule key="TLW_TWO_LOCK_WAIT">
+<priority>MAJOR</priority>
     <name><![CDATA[Multithreaded correctness - Wait with two locks held]]></name>
     <configKey><![CDATA[TLW_TWO_LOCK_WAIT]]></configKey>
     
@@ -1328,7 +1452,8 @@ Language Specification</a> for details
 This not necessarily a bug, but is worth examining
   closely.</p>]]></description>
   </rule>
-  <rule key="UW_UNCOND_WAIT" priority="MAJOR">
+  <rule key="UW_UNCOND_WAIT">
+<priority>MAJOR</priority>
     <name><![CDATA[Multithreaded correctness - Unconditional wait]]></name>
     <configKey><![CDATA[UW_UNCOND_WAIT]]></configKey>
     
@@ -1338,7 +1463,8 @@ This not necessarily a bug, but is worth examining
        before calling wait; any previous notifications will be ignored.
   </p>]]></description>
   </rule>
-  <rule key="UR_UNINIT_READ" priority="MAJOR">
+  <rule key="UR_UNINIT_READ">
+<priority>MAJOR</priority>
     <name><![CDATA[Correctness - Uninitialized read of field in constructor]]></name>
     <configKey><![CDATA[UR_UNINIT_READ]]></configKey>
     
@@ -1346,7 +1472,8 @@ This not necessarily a bug, but is worth examining
   This is often caused when the programmer mistakenly uses the field instead
   of one of the constructor's parameters.</p>]]></description>
   </rule>
-  <rule key="UG_SYNC_SET_UNSYNC_GET" priority="MAJOR">
+  <rule key="UG_SYNC_SET_UNSYNC_GET">
+<priority>MAJOR</priority>
     <name><![CDATA[Multithreaded correctness - Unsynchronized get method, synchronized set method]]></name>
     <configKey><![CDATA[UG_SYNC_SET_UNSYNC_GET]]></configKey>
     
@@ -1356,7 +1483,8 @@ This not necessarily a bug, but is worth examining
   method will not necessarily see a consistent state for the object.&nbsp;
   The get method should be made synchronized.</p>]]></description>
   </rule>
-  <rule key="IC_INIT_CIRCULARITY" priority="CRITICAL">
+  <rule key="IC_INIT_CIRCULARITY">
+<priority>CRITICAL</priority>
     <name><![CDATA[Dodgy - Initialization circularity]]></name>
     <configKey><![CDATA[IC_INIT_CIRCULARITY]]></configKey>
     
@@ -1364,7 +1492,8 @@ This not necessarily a bug, but is worth examining
   classes referenced by the bug instance.&nbsp; Many kinds of unexpected
   behavior may arise from such circularity.</p>]]></description>
   </rule>
-  <rule key="IC_SUPERCLASS_USES_SUBCLASS_DURING_INITIALIZATION" priority="MAJOR">
+  <rule key="IC_SUPERCLASS_USES_SUBCLASS_DURING_INITIALIZATION">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - Superclass uses subclass during initialization]]></name>
     <configKey><![CDATA[IC_SUPERCLASS_USES_SUBCLASS_DURING_INITIALIZATION]]></configKey>
     
@@ -1382,7 +1511,8 @@ public class CircularClassInitialization {
 }
 </pre>]]></description>
   </rule>
-  <rule key="IT_NO_SUCH_ELEMENT" priority="MINOR">
+  <rule key="IT_NO_SUCH_ELEMENT">
+<priority>MINOR</priority>
     <name><![CDATA[Bad practice - Iterator next() method can't throw NoSuchElementException]]></name>
     <configKey><![CDATA[IT_NO_SUCH_ELEMENT]]></configKey>
     
@@ -1392,7 +1522,8 @@ public class CircularClassInitialization {
   method should be changed so it throws <code>NoSuchElementException</code>
   if is called when there are no more elements to return.</p>]]></description>
   </rule>
-  <rule key="DL_SYNCHRONIZATION_ON_SHARED_CONSTANT" priority="CRITICAL">
+  <rule key="DL_SYNCHRONIZATION_ON_SHARED_CONSTANT">
+<priority>CRITICAL</priority>
     <name><![CDATA[Multithreaded correctness - Synchronization on interned String could lead to deadlock]]></name>
     <configKey><![CDATA[DL_SYNCHRONIZATION_ON_SHARED_CONSTANT]]></configKey>
     
@@ -1409,7 +1540,8 @@ is locking on something that other code might also be locking. This could result
 blocking and deadlock behavior. See <a href="http://www.javalobby.org/java/forums/t96352.html">http://www.javalobby.org/java/forums/t96352.html</a> and <a href="http://jira.codehaus.org/browse/JETTY-352">http://jira.codehaus.org/browse/JETTY-352</a>.
 </p>]]></description>
   </rule>
-  <rule key="DL_SYNCHRONIZATION_ON_BOOLEAN" priority="CRITICAL">
+  <rule key="DL_SYNCHRONIZATION_ON_BOOLEAN">
+<priority>CRITICAL</priority>
     <name><![CDATA[Multithreaded correctness - Synchronization on Boolean could lead to deadlock]]></name>
     <configKey><![CDATA[DL_SYNCHRONIZATION_ON_BOOLEAN]]></configKey>
     
@@ -1429,7 +1561,8 @@ private static Boolean inited = Boolean.FALSE;
 <p>Since there normally exist only two Boolean objects, this code could be synchronizing on the same object as other, unrelated code, leading to unresponsiveness
 and possible deadlock</p>]]></description>
   </rule>
-  <rule key="DL_SYNCHRONIZATION_ON_UNSHARED_BOXED_PRIMITIVE" priority="CRITICAL">
+  <rule key="DL_SYNCHRONIZATION_ON_UNSHARED_BOXED_PRIMITIVE">
+<priority>CRITICAL</priority>
     <name><![CDATA[Multithreaded correctness - Synchronization on boxed primitive values]]></name>
     <configKey><![CDATA[DL_SYNCHRONIZATION_ON_UNSHARED_BOXED_PRIMITIVE]]></configKey>
     
@@ -1454,7 +1587,8 @@ might replace this with the use of an interned Integer object shared
 throughout the JVM, leading to very confusing behavior and potential deadlock.
 </p>]]></description>
   </rule>
-  <rule key="DL_SYNCHRONIZATION_ON_BOXED_PRIMITIVE" priority="CRITICAL">
+  <rule key="DL_SYNCHRONIZATION_ON_BOXED_PRIMITIVE">
+<priority>CRITICAL</priority>
     <name><![CDATA[Multithreaded correctness - Synchronization on boxed primitive could lead to deadlock]]></name>
     <configKey><![CDATA[DL_SYNCHRONIZATION_ON_BOXED_PRIMITIVE]]></configKey>
     
@@ -1472,7 +1606,8 @@ private static Integer count = 0;
 this code could be synchronizing on the same object as other, unrelated code, leading to unresponsiveness
 and possible deadlock</p>]]></description>
   </rule>
-  <rule key="ESync_EMPTY_SYNC" priority="MAJOR">
+  <rule key="ESync_EMPTY_SYNC">
+<priority>MAJOR</priority>
     <name><![CDATA[Multithreaded correctness - Empty synchronized block]]></name>
     <configKey><![CDATA[ESync_EMPTY_SYNC]]></configKey>
     
@@ -1486,7 +1621,8 @@ are almost never a better solution
 than less contrived solutions.
 </p>]]></description>
   </rule>
-  <rule key="IS_INCONSISTENT_SYNC" priority="MAJOR">
+  <rule key="IS_INCONSISTENT_SYNC">
+<priority>MAJOR</priority>
     <name><![CDATA[Multithreaded correctness - Inconsistent synchronization]]></name>
     <configKey><![CDATA[IS_INCONSISTENT_SYNC]]></configKey>
     
@@ -1510,7 +1646,8 @@ than less contrived solutions.
   distinguishing locked vs. unlocked accesses, the code in question may still
   be correct.</p>]]></description>
   </rule>
-  <rule key="ML_SYNC_ON_FIELD_TO_GUARD_CHANGING_THAT_FIELD" priority="MAJOR">
+  <rule key="ML_SYNC_ON_FIELD_TO_GUARD_CHANGING_THAT_FIELD">
+<priority>MAJOR</priority>
     <name><![CDATA[Multithreaded correctness - Synchronization on field in futile attempt to guard that field]]></name>
     <configKey><![CDATA[ML_SYNC_ON_FIELD_TO_GUARD_CHANGING_THAT_FIELD]]></configKey>
     
@@ -1536,7 +1673,8 @@ private Long getNotificationSequenceNumber() {
 
 </p>]]></description>
   </rule>
-  <rule key="ML_SYNC_ON_UPDATED_FIELD" priority="MAJOR">
+  <rule key="ML_SYNC_ON_UPDATED_FIELD">
+<priority>MAJOR</priority>
     <name><![CDATA[Multithreaded correctness - Method synchronizes on an updated field]]></name>
     <configKey><![CDATA[ML_SYNC_ON_UPDATED_FIELD]]></configKey>
     
@@ -1545,7 +1683,8 @@ private Long getNotificationSequenceNumber() {
    This is unlikely to have useful semantics, since different
 threads may be synchronizing on different objects.</p>]]></description>
   </rule>
-  <rule key="MS_OOI_PKGPROTECT" priority="MAJOR">
+  <rule key="MS_OOI_PKGPROTECT">
+<priority>MAJOR</priority>
     <name>
       <![CDATA[Malicious code vulnerability - Field should be moved out of an interface and made package protected]]></name>
     <configKey><![CDATA[MS_OOI_PKGPROTECT]]></configKey>
@@ -1562,7 +1701,8 @@ defined in an interface references a mutable
    to avoid
         this vulnerability.</p>]]></description>
   </rule>
-  <rule key="MS_FINAL_PKGPROTECT" priority="MAJOR">
+  <rule key="MS_FINAL_PKGPROTECT">
+<priority>MAJOR</priority>
     <name><![CDATA[Malicious code vulnerability - Field should be both final and package protected]]></name>
     <configKey><![CDATA[MS_FINAL_PKGPROTECT]]></configKey>
     
@@ -1573,7 +1713,8 @@ defined in an interface references a mutable
    to avoid
         this vulnerability.</p>]]></description>
   </rule>
-  <rule key="MS_SHOULD_BE_FINAL" priority="MAJOR">
+  <rule key="MS_SHOULD_BE_FINAL">
+<priority>MAJOR</priority>
     <name><![CDATA[Malicious code vulnerability - Field isn't final but should be]]></name>
     <configKey><![CDATA[MS_SHOULD_BE_FINAL]]></configKey>
     
@@ -1583,7 +1724,8 @@ defined in an interface references a mutable
         The field could be made final to avoid
         this vulnerability.</p>]]></description>
   </rule>
-  <rule key="MS_PKGPROTECT" priority="MAJOR">
+  <rule key="MS_PKGPROTECT">
+<priority>MAJOR</priority>
     <name><![CDATA[Malicious code vulnerability - Field should be package protected]]></name>
     <configKey><![CDATA[MS_PKGPROTECT]]></configKey>
     
@@ -1592,7 +1734,8 @@ defined in an interface references a mutable
    The field could be made package protected to avoid
    this vulnerability.</p>]]></description>
   </rule>
-  <rule key="MS_MUTABLE_HASHTABLE" priority="MAJOR">
+  <rule key="MS_MUTABLE_HASHTABLE">
+<priority>MAJOR</priority>
     <name><![CDATA[Malicious code vulnerability - Field is a mutable Hashtable]]></name>
     <configKey><![CDATA[MS_MUTABLE_HASHTABLE]]></configKey>
     
@@ -1601,7 +1744,8 @@ defined in an interface references a mutable
         by accident from another package.
    This code can freely modify the contents of the Hashtable.</p>]]></description>
   </rule>
-  <rule key="MS_MUTABLE_ARRAY" priority="MAJOR">
+  <rule key="MS_MUTABLE_ARRAY">
+<priority>MAJOR</priority>
     <name><![CDATA[Malicious code vulnerability - Field is a mutable array]]></name>
     <configKey><![CDATA[MS_MUTABLE_ARRAY]]></configKey>
     
@@ -1610,7 +1754,8 @@ defined in an interface references a mutable
         by accident from another package.
    This code can freely modify the contents of the array.</p>]]></description>
   </rule>
-  <rule key="MS_CANNOT_BE_FINAL" priority="MAJOR">
+  <rule key="MS_CANNOT_BE_FINAL">
+<priority>MAJOR</priority>
     <name><![CDATA[Malicious code vulnerability - Field isn't final and can't be protected from malicious code]]></name>
     <configKey><![CDATA[MS_CANNOT_BE_FINAL]]></configKey>
     
@@ -1620,7 +1765,8 @@ defined in an interface references a mutable
    Unfortunately, the way the field is used doesn't allow
    any easy fix to this problem.</p>]]></description>
   </rule>
-  <rule key="IA_AMBIGUOUS_INVOCATION_OF_INHERITED_OR_OUTER_METHOD" priority="MAJOR">
+  <rule key="IA_AMBIGUOUS_INVOCATION_OF_INHERITED_OR_OUTER_METHOD">
+<priority>MAJOR</priority>
     <name><![CDATA[Dodgy - Ambiguous invocation of either an inherited or outer method]]></name>
     <configKey><![CDATA[IA_AMBIGUOUS_INVOCATION_OF_INHERITED_OR_OUTER_METHOD]]></configKey>
     
@@ -1632,7 +1778,8 @@ thus it will be clear to other readers of your code and to FindBugs
 that you want to invoke the inherited method, not the method in the outer class.
 </p>]]></description>
   </rule>
-  <rule key="NM_SAME_SIMPLE_NAME_AS_SUPERCLASS" priority="MAJOR">
+  <rule key="NM_SAME_SIMPLE_NAME_AS_SUPERCLASS">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - Class names shouldn't shadow simple name of superclass]]></name>
     <configKey><![CDATA[NM_SAME_SIMPLE_NAME_AS_SUPERCLASS]]></configKey>
     
@@ -1643,7 +1790,8 @@ to resolve references and creates many
 opportunities to accidently define methods that do not override methods in their superclasses.
 </p>]]></description>
   </rule>
-  <rule key="NM_SAME_SIMPLE_NAME_AS_INTERFACE" priority="MAJOR">
+  <rule key="NM_SAME_SIMPLE_NAME_AS_INTERFACE">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - Class names shouldn't shadow simple name of implemented interface]]></name>
     <configKey><![CDATA[NM_SAME_SIMPLE_NAME_AS_INTERFACE]]></configKey>
     
@@ -1654,7 +1802,8 @@ to resolve references and creates many
 opportunities to accidently define methods that do not override methods in their superclasses.
 </p>]]></description>
   </rule>
-  <rule key="NM_VERY_CONFUSING" priority="MAJOR">
+  <rule key="NM_VERY_CONFUSING">
+<priority>MAJOR</priority>
     <name><![CDATA[Correctness - Very confusing method names]]></name>
     <configKey><![CDATA[NM_VERY_CONFUSING]]></configKey>
     
@@ -1663,7 +1812,8 @@ This is very confusing because if the capitalization were
 identical then one of the methods would override the other.
 </p>]]></description>
   </rule>
-  <rule key="NM_VERY_CONFUSING_INTENTIONAL" priority="MAJOR">
+  <rule key="NM_VERY_CONFUSING_INTENTIONAL">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - Very confusing method names (but perhaps intentional)]]></name>
     <configKey><![CDATA[NM_VERY_CONFUSING_INTENTIONAL]]></configKey>
     
@@ -1674,7 +1824,8 @@ seems that the existence of both of these methods is intentional, but is sure is
 You should try hard to eliminate one of them, unless you are forced to have both due to frozen APIs.
 </p>]]></description>
   </rule>
-  <rule key="NM_WRONG_PACKAGE" priority="MAJOR">
+  <rule key="NM_WRONG_PACKAGE">
+<priority>MAJOR</priority>
     <name>
       <![CDATA[Correctness - Method doesn't override method in superclass due to wrong package for parameter]]></name>
     <configKey><![CDATA[NM_WRONG_PACKAGE]]></configKey>
@@ -1702,7 +1853,8 @@ override the
 types are <code>Foo</code>'s from different packages.
 </p>]]></description>
   </rule>
-  <rule key="NM_WRONG_PACKAGE_INTENTIONAL" priority="MAJOR">
+  <rule key="NM_WRONG_PACKAGE_INTENTIONAL">
+<priority>MAJOR</priority>
     <name>
       <![CDATA[Bad practice - Method doesn't override method in superclass due to wrong package for parameter]]></name>
     <configKey><![CDATA[NM_WRONG_PACKAGE_INTENTIONAL]]></configKey>
@@ -1736,13 +1888,15 @@ so this is presumably understood. However, such methods are exceptionally confus
 removing or deprecating the method with the similar but not identical signature.
 </p>]]></description>
   </rule>
-  <rule key="NM_CONFUSING" priority="MAJOR">
+  <rule key="NM_CONFUSING">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - Confusing method names]]></name>
     <configKey><![CDATA[NM_CONFUSING]]></configKey>
     
     <description><![CDATA[<p> The referenced methods have names that differ only by capitalization.</p>]]></description>
   </rule>
-  <rule key="NM_METHOD_CONSTRUCTOR_CONFUSION" priority="MAJOR">
+  <rule key="NM_METHOD_CONSTRUCTOR_CONFUSION">
+<priority>MAJOR</priority>
     <name><![CDATA[Correctness - Apparent method/constructor confusion]]></name>
     <configKey><![CDATA[NM_METHOD_CONSTRUCTOR_CONFUSION]]></configKey>
     
@@ -1752,14 +1906,16 @@ removing or deprecating the method with the similar but not identical signature.
        but can't get rid of this method due to backwards compatibility, deprecate the method.
 </p>]]></description>
   </rule>
-  <rule key="NM_CLASS_NOT_EXCEPTION" priority="MAJOR">
+  <rule key="NM_CLASS_NOT_EXCEPTION">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - Class is not derived from an Exception, even though it is named as such]]></name>
     <configKey><![CDATA[NM_CLASS_NOT_EXCEPTION]]></configKey>
     
     <description><![CDATA[<p> This class is not derived from another exception, but ends with 'Exception'. This will
 be confusing to users of this class.</p>]]></description>
   </rule>
-  <rule key="RR_NOT_CHECKED" priority="MAJOR">
+  <rule key="RR_NOT_CHECKED">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - Method ignores results of InputStream.read()]]></name>
     <configKey><![CDATA[RR_NOT_CHECKED]]></configKey>
     
@@ -1771,7 +1927,8 @@ be confusing to users of this class.</p>]]></description>
   reads from input streams usually do read the full amount of data requested,
   causing the program to fail only sporadically.</p>]]></description>
   </rule>
-  <rule key="SR_NOT_CHECKED" priority="MAJOR">
+  <rule key="SR_NOT_CHECKED">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - Method ignores results of InputStream.skip()]]></name>
     <configKey><![CDATA[SR_NOT_CHECKED]]></configKey>
     
@@ -1785,7 +1942,8 @@ be confusing to users of this class.</p>]]></description>
   skip() will only skip data in the buffer, and will routinely fail to skip the
   requested number of bytes.</p>]]></description>
   </rule>
-  <rule key="SE_READ_RESOLVE_IS_STATIC" priority="MAJOR">
+  <rule key="SE_READ_RESOLVE_IS_STATIC">
+<priority>MAJOR</priority>
     <name><![CDATA[Correctness - The readResolve method must not be declared as a static method.  ]]></name>
     <configKey><![CDATA[SE_READ_RESOLVE_IS_STATIC]]></configKey>
     
@@ -1793,7 +1951,8 @@ be confusing to users of this class.</p>]]></description>
 mechanism, it must not be declared as a static method.
 </p>]]></description>
   </rule>
-  <rule key="SE_PRIVATE_READ_RESOLVE_NOT_INHERITED" priority="MAJOR">
+  <rule key="SE_PRIVATE_READ_RESOLVE_NOT_INHERITED">
+<priority>MAJOR</priority>
     <name><![CDATA[Dodgy - private readResolve method not inherited by subclasses]]></name>
     <configKey><![CDATA[SE_PRIVATE_READ_RESOLVE_NOT_INHERITED]]></configKey>
     
@@ -1801,7 +1960,8 @@ mechanism, it must not be declared as a static method.
 This might be intentional and OK, but should be reviewed to ensure it is what is intended.
 </p>]]></description>
   </rule>
-  <rule key="SE_READ_RESOLVE_MUST_RETURN_OBJECT" priority="MAJOR">
+  <rule key="SE_READ_RESOLVE_MUST_RETURN_OBJECT">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - The readResolve method must be declared with a return type of Object. ]]></name>
     <configKey><![CDATA[SE_READ_RESOLVE_MUST_RETURN_OBJECT]]></configKey>
     
@@ -1809,7 +1969,8 @@ This might be intentional and OK, but should be reviewed to ensure it is what is
 mechanism, it must be declared to have a return type of Object.
 </p>]]></description>
   </rule>
-  <rule key="SE_TRANSIENT_FIELD_OF_NONSERIALIZABLE_CLASS" priority="MAJOR">
+  <rule key="SE_TRANSIENT_FIELD_OF_NONSERIALIZABLE_CLASS">
+<priority>MAJOR</priority>
     <name><![CDATA[Dodgy - Transient field of class that isn't Serializable. ]]></name>
     <configKey><![CDATA[SE_TRANSIENT_FIELD_OF_NONSERIALIZABLE_CLASS]]></configKey>
     
@@ -1819,7 +1980,8 @@ This may be leftover marking from a previous version of the code in which the cl
 it may indicate a misunderstanding of how serialization works.
 </p>]]></description>
   </rule>
-  <rule key="SE_TRANSIENT_FIELD_NOT_RESTORED" priority="MAJOR">
+  <rule key="SE_TRANSIENT_FIELD_NOT_RESTORED">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - Transient field that isn't set by deserialization. ]]></name>
     <configKey><![CDATA[SE_TRANSIENT_FIELD_NOT_RESTORED]]></configKey>
     
@@ -1827,7 +1989,8 @@ it may indicate a misunderstanding of how serialization works.
 deserialized instance of the class.
 </p>]]></description>
   </rule>
-  <rule key="SE_METHOD_MUST_BE_PRIVATE" priority="MAJOR">
+  <rule key="SE_METHOD_MUST_BE_PRIVATE">
+<priority>MAJOR</priority>
     <name><![CDATA[Correctness - Method must be private in order for serialization to work]]></name>
     <configKey><![CDATA[SE_METHOD_MUST_BE_PRIVATE]]></configKey>
     
@@ -1835,7 +1998,8 @@ deserialized instance of the class.
   for custom serialization/deserialization. But since that method isn't declared private,
   it will be silently ignored by the serialization/deserialization API.</p>]]></description>
   </rule>
-  <rule key="SE_NO_SUITABLE_CONSTRUCTOR_FOR_EXTERNALIZATION" priority="MAJOR">
+  <rule key="SE_NO_SUITABLE_CONSTRUCTOR_FOR_EXTERNALIZATION">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - Class is Externalizable but doesn't define a void constructor]]></name>
     <configKey><![CDATA[SE_NO_SUITABLE_CONSTRUCTOR_FOR_EXTERNALIZATION]]></configKey>
     
@@ -1845,7 +2009,8 @@ deserialized instance of the class.
    constructor. Since this class does not have one,
    serialization and deserialization will fail at runtime.</p>]]></description>
   </rule>
-  <rule key="SE_NO_SUITABLE_CONSTRUCTOR" priority="MAJOR">
+  <rule key="SE_NO_SUITABLE_CONSTRUCTOR">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - Class is Serializable but its superclass doesn't define a void constructor]]></name>
     <configKey><![CDATA[SE_NO_SUITABLE_CONSTRUCTOR]]></configKey>
     
@@ -1856,7 +2021,8 @@ deserialized instance of the class.
    Since the superclass does not have one,
    serialization and deserialization will fail at runtime.</p>]]></description>
   </rule>
-  <rule key="SE_NO_SERIALVERSIONID" priority="MAJOR">
+  <rule key="SE_NO_SERIALVERSIONID">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - Class is Serializable, but doesn't define serialVersionUID]]></name>
     <configKey><![CDATA[SE_NO_SERIALVERSIONID]]></configKey>
     
@@ -1873,7 +2039,8 @@ deserialized instance of the class.
    To ensure interoperability of Serializable across versions,
    consider adding an explicit serialVersionUID.</p>]]></description>
   </rule>
-  <rule key="SE_COMPARATOR_SHOULD_BE_SERIALIZABLE" priority="MAJOR">
+  <rule key="SE_COMPARATOR_SHOULD_BE_SERIALIZABLE">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - Comparator doesn't implement Serializable]]></name>
     <configKey><![CDATA[SE_COMPARATOR_SHOULD_BE_SERIALIZABLE]]></configKey>
     
@@ -1886,7 +2053,8 @@ As most comparators have little or no state, making them serializable
 is generally easy and good defensive programming.
 </p>]]></description>
   </rule>
-  <rule key="WS_WRITEOBJECT_SYNC" priority="CRITICAL">
+  <rule key="WS_WRITEOBJECT_SYNC">
+<priority>CRITICAL</priority>
     <name>
       <![CDATA[Multithreaded correctness - Class's writeObject() method is synchronized but nothing else is]]></name>
     <configKey><![CDATA[WS_WRITEOBJECT_SYNC]]></configKey>
@@ -1894,7 +2062,8 @@ is generally easy and good defensive programming.
     <description><![CDATA[<p> This class has a <code>writeObject()</code> method which is synchronized;
   however, no other method of the class is synchronized.</p>]]></description>
   </rule>
-  <rule key="RS_READOBJECT_SYNC" priority="CRITICAL">
+  <rule key="RS_READOBJECT_SYNC">
+<priority>CRITICAL</priority>
     <name><![CDATA[Multithreaded correctness - Class's readObject() method is synchronized]]></name>
     <configKey><![CDATA[RS_READOBJECT_SYNC]]></configKey>
     
@@ -1905,7 +2074,8 @@ is generally easy and good defensive programming.
   method itself is causing the object to become visible to another thread,
   that is an example of very dubious coding style.</p>]]></description>
   </rule>
-  <rule key="SE_NONSTATIC_SERIALVERSIONID" priority="MAJOR">
+  <rule key="SE_NONSTATIC_SERIALVERSIONID">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - serialVersionUID isn't static]]></name>
     <configKey><![CDATA[SE_NONSTATIC_SERIALVERSIONID]]></configKey>
     
@@ -1914,7 +2084,8 @@ is generally easy and good defensive programming.
    if it is intended to specify
    the version UID for purposes of serialization.</p>]]></description>
   </rule>
-  <rule key="SE_NONFINAL_SERIALVERSIONID" priority="CRITICAL">
+  <rule key="SE_NONFINAL_SERIALVERSIONID">
+<priority>CRITICAL</priority>
     <name><![CDATA[Bad practice - serialVersionUID isn't final]]></name>
     <configKey><![CDATA[SE_NONFINAL_SERIALVERSIONID]]></configKey>
     
@@ -1923,7 +2094,8 @@ is generally easy and good defensive programming.
    if it is intended to specify
    the version UID for purposes of serialization.</p>]]></description>
   </rule>
-  <rule key="SE_NONLONG_SERIALVERSIONID" priority="MAJOR">
+  <rule key="SE_NONLONG_SERIALVERSIONID">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - serialVersionUID isn't long]]></name>
     <configKey><![CDATA[SE_NONLONG_SERIALVERSIONID]]></configKey>
     
@@ -1932,7 +2104,8 @@ is generally easy and good defensive programming.
    if it is intended to specify
    the version UID for purposes of serialization.</p>]]></description>
   </rule>
-  <rule key="SE_BAD_FIELD_INNER_CLASS" priority="MINOR">
+  <rule key="SE_BAD_FIELD_INNER_CLASS">
+<priority>MINOR</priority>
     <name><![CDATA[Bad practice - Non-serializable class has a serializable inner class]]></name>
     <configKey><![CDATA[SE_BAD_FIELD_INNER_CLASS]]></configKey>
     
@@ -1945,7 +2118,8 @@ problem. Making the outer class serializable might also work, but that would
 mean serializing an instance of the inner class would always also serialize the instance
 of the outer class, which it often not what you really want.]]></description>
   </rule>
-  <rule key="SE_INNER_CLASS" priority="MAJOR">
+  <rule key="SE_INNER_CLASS">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - Serializable inner class]]></name>
     <configKey><![CDATA[SE_INNER_CLASS]]></configKey>
     
@@ -1955,14 +2129,16 @@ so this won't fail, but it might serialize a lot more data than intended.
 If possible, making the inner class a static inner class (also known as a nested class) should solve the 
 problem.]]></description>
   </rule>
-  <rule key="SE_BAD_FIELD_STORE" priority="CRITICAL">
+  <rule key="SE_BAD_FIELD_STORE">
+<priority>CRITICAL</priority>
     <name><![CDATA[Bad practice - Non-serializable value stored into instance field of a serializable class]]></name>
     <configKey><![CDATA[SE_BAD_FIELD_STORE]]></configKey>
     
     <description><![CDATA[<p> A non-serializable value is stored into a non-transient field
 of a serializable class.</p>]]></description>
   </rule>
-  <rule key="SC_START_IN_CTOR" priority="CRITICAL">
+  <rule key="SC_START_IN_CTOR">
+<priority>CRITICAL</priority>
     <name><![CDATA[Multithreaded correctness - Constructor invokes Thread.start()]]></name>
     <configKey><![CDATA[SC_START_IN_CTOR]]></configKey>
     
@@ -1970,7 +2146,8 @@ of a serializable class.</p>]]></description>
    the class is ever extended/subclassed, since the thread will be started
    before the subclass constructor is started.</p>]]></description>
   </rule>
-  <rule key="SS_SHOULD_BE_STATIC" priority="MAJOR">
+  <rule key="SS_SHOULD_BE_STATIC">
+<priority>MAJOR</priority>
     <name><![CDATA[Performance - Unread field: should this field be static?]]></name>
     <configKey><![CDATA[SS_SHOULD_BE_STATIC]]></configKey>
     
@@ -1978,19 +2155,22 @@ of a serializable class.</p>]]></description>
    is initialized to a compile-time static value.
    Consider making the field static.</p>]]></description>
   </rule>
-  <rule key="UUF_UNUSED_FIELD" priority="MAJOR">
+  <rule key="UUF_UNUSED_FIELD">
+<priority>MAJOR</priority>
     <name><![CDATA[Performance - Unused field]]></name>
     <configKey><![CDATA[UUF_UNUSED_FIELD]]></configKey>
     
     <description><![CDATA[<p> This field is never used.&nbsp; Consider removing it from the class.</p>]]></description>
   </rule>
-  <rule key="URF_UNREAD_FIELD" priority="MAJOR">
+  <rule key="URF_UNREAD_FIELD">
+<priority>MAJOR</priority>
     <name><![CDATA[Performance - Unread field]]></name>
     <configKey><![CDATA[URF_UNREAD_FIELD]]></configKey>
     
     <description><![CDATA[<p> This field is never read.&nbsp; Consider removing it from the class.</p>]]></description>
   </rule>
-  <rule key="QF_QUESTIONABLE_FOR_LOOP" priority="CRITICAL">
+  <rule key="QF_QUESTIONABLE_FOR_LOOP">
+<priority>CRITICAL</priority>
     <name><![CDATA[Dodgy - Complicated, subtle or wrong increment in for-loop ]]></name>
     <configKey><![CDATA[QF_QUESTIONABLE_FOR_LOOP]]></configKey>
     
@@ -1999,7 +2179,8 @@ of a serializable class.</p>]]></description>
    by the for loop.
 </p>]]></description>
   </rule>
-  <rule key="UWF_NULL_FIELD" priority="CRITICAL">
+  <rule key="UWF_NULL_FIELD">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Field only ever set to null]]></name>
     <configKey><![CDATA[UWF_NULL_FIELD]]></configKey>
     
@@ -2007,7 +2188,8 @@ of a serializable class.</p>]]></description>
 all reads of the field will return null.
 Check for errors, or remove it if it is useless.</p>]]></description>
   </rule>
-  <rule key="ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD" priority="CRITICAL">
+  <rule key="ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD">
+<priority>CRITICAL</priority>
     <name><![CDATA[Dodgy - Write to static field from instance method]]></name>
     <configKey><![CDATA[ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD]]></configKey>
     
@@ -2016,7 +2198,8 @@ correct if multiple instances are being manipulated,
 and generally bad practice.
 </p>]]></description>
   </rule>
-  <rule key="NP_LOAD_OF_KNOWN_NULL_VALUE" priority="CRITICAL">
+  <rule key="NP_LOAD_OF_KNOWN_NULL_VALUE">
+<priority>CRITICAL</priority>
     <name><![CDATA[Dodgy - Load of known null value]]></name>
     <configKey><![CDATA[NP_LOAD_OF_KNOWN_NULL_VALUE]]></configKey>
     
@@ -2026,7 +2209,8 @@ intended to refer to a different variable, or perhaps the earlier check to see i
 variable is null should have been a check to see if it was nonnull).
 </p>]]></description>
   </rule>
-  <rule key="NP_DEREFERENCE_OF_READLINE_VALUE" priority="CRITICAL">
+  <rule key="NP_DEREFERENCE_OF_READLINE_VALUE">
+<priority>CRITICAL</priority>
     <name><![CDATA[Dodgy - Dereference of the result of readLine() without nullcheck]]></name>
     <configKey><![CDATA[NP_DEREFERENCE_OF_READLINE_VALUE]]></configKey>
     
@@ -2034,7 +2218,8 @@ variable is null should have been a check to see if it was nonnull).
 to read, readLine() will return null and dereferencing that will generate a null pointer exception.
 </p>]]></description>
   </rule>
-  <rule key="NP_IMMEDIATE_DEREFERENCE_OF_READLINE" priority="CRITICAL">
+  <rule key="NP_IMMEDIATE_DEREFERENCE_OF_READLINE">
+<priority>CRITICAL</priority>
     <name><![CDATA[Dodgy - Immediate dereference of the result of readLine()]]></name>
     <configKey><![CDATA[NP_IMMEDIATE_DEREFERENCE_OF_READLINE]]></configKey>
     
@@ -2042,7 +2227,8 @@ to read, readLine() will return null and dereferencing that will generate a null
 to read, readLine() will return null and dereferencing that will generate a null pointer exception.
 </p>]]></description>
   </rule>
-  <rule key="SIC_INNER_SHOULD_BE_STATIC" priority="MAJOR">
+  <rule key="SIC_INNER_SHOULD_BE_STATIC">
+<priority>MAJOR</priority>
     <name><![CDATA[Performance - Should be a static inner class]]></name>
     <configKey><![CDATA[SIC_INNER_SHOULD_BE_STATIC]]></configKey>
     
@@ -2053,7 +2239,8 @@ to read, readLine() will return null and dereferencing that will generate a null
    made static.
 </p>]]></description>
   </rule>
-  <rule key="SIC_INNER_SHOULD_BE_STATIC_ANON" priority="MAJOR">
+  <rule key="SIC_INNER_SHOULD_BE_STATIC_ANON">
+<priority>MAJOR</priority>
     <name><![CDATA[Performance - Could be refactored into a named static inner class]]></name>
     <configKey><![CDATA[SIC_INNER_SHOULD_BE_STATIC_ANON]]></configKey>
     
@@ -2065,7 +2252,8 @@ to read, readLine() will return null and dereferencing that will generate a null
 classes cannot be marked as static, doing this will require refactoring
 the inner class so that it is a named inner class.</p>]]></description>
   </rule>
-  <rule key="SIC_INNER_SHOULD_BE_STATIC_NEEDS_THIS" priority="MAJOR">
+  <rule key="SIC_INNER_SHOULD_BE_STATIC_NEEDS_THIS">
+<priority>MAJOR</priority>
     <name><![CDATA[Performance - Could be refactored into a static inner class]]></name>
     <configKey><![CDATA[SIC_INNER_SHOULD_BE_STATIC_NEEDS_THIS]]></configKey>
     
@@ -2080,7 +2268,8 @@ inner object.&nbsp; This reference makes the instances
    pass a reference to the outer instance to the constructor
    for the inner class.</p>]]></description>
   </rule>
-  <rule key="WA_NOT_IN_LOOP" priority="CRITICAL">
+  <rule key="WA_NOT_IN_LOOP">
+<priority>CRITICAL</priority>
     <name><![CDATA[Multithreaded correctness - Wait not in loop ]]></name>
     <configKey><![CDATA[WA_NOT_IN_LOOP]]></configKey>
     
@@ -2089,7 +2278,8 @@ inner object.&nbsp; This reference makes the instances
   the condition the caller intended to wait for might not be the one
   that actually occurred.</p>]]></description>
   </rule>
-  <rule key="WA_AWAIT_NOT_IN_LOOP" priority="CRITICAL">
+  <rule key="WA_AWAIT_NOT_IN_LOOP">
+<priority>CRITICAL</priority>
     <name><![CDATA[Multithreaded correctness - Condition.await() not in loop ]]></name>
     <configKey><![CDATA[WA_AWAIT_NOT_IN_LOOP]]></configKey>
     
@@ -2099,7 +2289,8 @@ inner object.&nbsp; This reference makes the instances
   the condition the caller intended to wait for might not be the one
   that actually occurred.</p>]]></description>
   </rule>
-  <rule key="NO_NOTIFY_NOT_NOTIFYALL" priority="CRITICAL">
+  <rule key="NO_NOTIFY_NOT_NOTIFYALL">
+<priority>CRITICAL</priority>
     <name><![CDATA[Multithreaded correctness - Using notify() rather than notifyAll()]]></name>
     <configKey><![CDATA[NO_NOTIFY_NOT_NOTIFYALL]]></configKey>
     
@@ -2108,7 +2299,8 @@ inner object.&nbsp; This reference makes the instances
   only wakes up one thread, meaning that the thread woken up might not be the
   one waiting for the condition that the caller just satisfied.</p>]]></description>
   </rule>
-  <rule key="RV_CHECK_FOR_POSITIVE_INDEXOF" priority="MINOR">
+  <rule key="RV_CHECK_FOR_POSITIVE_INDEXOF">
+<priority>MINOR</priority>
     <name><![CDATA[Dodgy - Method checks to see if result of String.indexOf is positive]]></name>
     <configKey><![CDATA[RV_CHECK_FOR_POSITIVE_INDEXOF]]></configKey>
     
@@ -2117,7 +2309,8 @@ inner object.&nbsp; This reference makes the instances
    positive only if the substring checked for occurs at some place other than at the beginning of
    the String.</p>]]></description>
   </rule>
-  <rule key="RV_DONT_JUST_NULL_CHECK_READLINE" priority="MAJOR">
+  <rule key="RV_DONT_JUST_NULL_CHECK_READLINE">
+<priority>MAJOR</priority>
     <name><![CDATA[Dodgy - Method discards result of readLine after checking if it is nonnull]]></name>
     <configKey><![CDATA[RV_DONT_JUST_NULL_CHECK_READLINE]]></configKey>
     
@@ -2125,7 +2318,8 @@ inner object.&nbsp; This reference makes the instances
 value is non-null. In almost all situations, if the result is non-null, you will want
 to use that non-null value. Calling readLine again will give you a different line.</p>]]></description>
   </rule>
-  <rule key="RV_RETURN_VALUE_IGNORED" priority="MINOR">
+  <rule key="RV_RETURN_VALUE_IGNORED">
+<priority>MINOR</priority>
     <name><![CDATA[Correctness - Method ignores return value]]></name>
     <configKey><![CDATA[RV_RETURN_VALUE_IGNORED]]></configKey>
     
@@ -2150,7 +2344,8 @@ dateString = dateString.trim();
 </pre>
 </blockquote>]]></description>
   </rule>
-  <rule key="RV_RETURN_VALUE_IGNORED_BAD_PRACTICE" priority="MAJOR">
+  <rule key="RV_RETURN_VALUE_IGNORED_BAD_PRACTICE">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - Method ignores exceptional return value]]></name>
     <configKey><![CDATA[RV_RETURN_VALUE_IGNORED_BAD_PRACTICE]]></configKey>
     
@@ -2163,7 +2358,8 @@ If you don't check the result, you won't notice if the method invocation
 signals unexpected behavior by returning an atypical return value.
 </p>]]></description>
   </rule>
-  <rule key="RV_EXCEPTION_NOT_THROWN" priority="CRITICAL">
+  <rule key="RV_EXCEPTION_NOT_THROWN">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Exception created and dropped rather than thrown]]></name>
     <configKey><![CDATA[RV_EXCEPTION_NOT_THROWN]]></configKey>
     
@@ -2183,7 +2379,8 @@ if (x &lt; 0)
 </pre>
 </blockquote>]]></description>
   </rule>
-  <rule key="RV_RETURN_VALUE_IGNORED2" priority="MAJOR">
+  <rule key="RV_RETURN_VALUE_IGNORED2">
+<priority>MAJOR</priority>
     <name><![CDATA[Correctness - Method ignores return value]]></name>
     <configKey><![CDATA[RV_RETURN_VALUE_IGNORED2]]></configKey>
     
@@ -2208,21 +2405,24 @@ dateString = dateString.trim();
 </pre>
 </blockquote>]]></description>
   </rule>
-  <rule key="NP_ALWAYS_NULL" priority="CRITICAL">
+  <rule key="NP_ALWAYS_NULL">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Null pointer dereference]]></name>
     <configKey><![CDATA[NP_ALWAYS_NULL]]></configKey>
     
     <description><![CDATA[<p> A null pointer is dereferenced here.&nbsp; This will lead to a
 <code>NullPointerException</code> when the code is executed.</p>]]></description>
   </rule>
-  <rule key="NP_STORE_INTO_NONNULL_FIELD" priority="CRITICAL">
+  <rule key="NP_STORE_INTO_NONNULL_FIELD">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Store of null value into field annotated NonNull]]></name>
     <configKey><![CDATA[NP_STORE_INTO_NONNULL_FIELD]]></configKey>
     
     <description>
       <![CDATA[<p> A value that could be null is stored into a field that has been annotated as NonNull. </p>]]></description>
   </rule>
-  <rule key="NP_ALWAYS_NULL_EXCEPTION" priority="CRITICAL">
+  <rule key="NP_ALWAYS_NULL_EXCEPTION">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Null pointer dereference in method on exception path]]></name>
     <configKey><![CDATA[NP_ALWAYS_NULL_EXCEPTION]]></configKey>
     
@@ -2234,7 +2434,8 @@ this may be a false warning.</p>
 <p> Also note that FindBugs considers the default case of a switch statement to
 be an exception path, since the default case is often infeasible.</p>]]></description>
   </rule>
-  <rule key="NP_PARAMETER_MUST_BE_NONNULL_BUT_MARKED_AS_NULLABLE" priority="CRITICAL">
+  <rule key="NP_PARAMETER_MUST_BE_NONNULL_BUT_MARKED_AS_NULLABLE">
+<priority>CRITICAL</priority>
     <name><![CDATA[Dodgy - Parameter must be nonnull but is marked as nullable]]></name>
     <configKey><![CDATA[NP_PARAMETER_MUST_BE_NONNULL_BUT_MARKED_AS_NULLABLE]]></configKey>
     
@@ -2243,7 +2444,8 @@ but the parameter is explicitly annotated as being Nullable. Either the use
 of the parameter or the annotation is wrong.
 </p>]]></description>
   </rule>
-  <rule key="NP_NULL_ON_SOME_PATH" priority="CRITICAL">
+  <rule key="NP_NULL_ON_SOME_PATH">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Possible null pointer dereference]]></name>
     <configKey><![CDATA[NP_NULL_ON_SOME_PATH]]></configKey>
     
@@ -2254,7 +2456,8 @@ Of course, the problem might be that the branch or statement is infeasible and t
 the null pointer exception can't ever be executed; deciding that is beyond the ability of FindBugs.
 </p>]]></description>
   </rule>
-  <rule key="NP_NULL_ON_SOME_PATH_MIGHT_BE_INFEASIBLE" priority="CRITICAL">
+  <rule key="NP_NULL_ON_SOME_PATH_MIGHT_BE_INFEASIBLE">
+<priority>CRITICAL</priority>
     <name><![CDATA[Dodgy - Possible null pointer dereference on path that might be infeasible]]></name>
     <configKey><![CDATA[NP_NULL_ON_SOME_PATH_MIGHT_BE_INFEASIBLE]]></configKey>
     
@@ -2266,7 +2469,8 @@ the null pointer exception can't ever be executed; deciding that is beyond the a
 Due to the fact that this value had been previously tested for nullness, this is a definite possibility.
 </p>]]></description>
   </rule>
-  <rule key="NP_NULL_ON_SOME_PATH_EXCEPTION" priority="CRITICAL">
+  <rule key="NP_NULL_ON_SOME_PATH_EXCEPTION">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Possible null pointer dereference in method on exception path]]></name>
     <configKey><![CDATA[NP_NULL_ON_SOME_PATH_EXCEPTION]]></configKey>
     
@@ -2279,7 +2483,8 @@ this may be a false warning.</p>
 <p> Also note that FindBugs considers the default case of a switch statement to
 be an exception path, since the default case is often infeasible.</p>]]></description>
   </rule>
-  <rule key="NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE" priority="CRITICAL">
+  <rule key="NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE">
+<priority>CRITICAL</priority>
     <name><![CDATA[Dodgy - Possible null pointer dereference due to return value of called method]]></name>
     <configKey><![CDATA[NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE]]></configKey>
     
@@ -2288,7 +2493,8 @@ and the return value of that method is one that should generally be checked
 for null.  This may lead to a <code>NullPointerException</code> when the code is executed.
 </p>]]></description>
   </rule>
-  <rule key="NP_NULL_PARAM_DEREF_NONVIRTUAL" priority="CRITICAL">
+  <rule key="NP_NULL_PARAM_DEREF_NONVIRTUAL">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Non-virtual method call passes null for nonnull parameter]]></name>
     <configKey><![CDATA[NP_NULL_PARAM_DEREF_NONVIRTUAL]]></configKey>
     
@@ -2299,7 +2505,8 @@ for null.  This may lead to a <code>NullPointerException</code> when the code is
        dereferenced.
       </p>]]></description>
   </rule>
-  <rule key="NP_NULL_PARAM_DEREF_ALL_TARGETS_DANGEROUS" priority="CRITICAL">
+  <rule key="NP_NULL_PARAM_DEREF_ALL_TARGETS_DANGEROUS">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Method call passes null for nonnull parameter]]></name>
     <configKey><![CDATA[NP_NULL_PARAM_DEREF_ALL_TARGETS_DANGEROUS]]></configKey>
     
@@ -2311,7 +2518,8 @@ for null.  This may lead to a <code>NullPointerException</code> when the code is
        dereferenced.
       </p>]]></description>
   </rule>
-  <rule key="NP_NULL_PARAM_DEREF" priority="CRITICAL">
+  <rule key="NP_NULL_PARAM_DEREF">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Method call passes null for nonnull parameter]]></name>
     <configKey><![CDATA[NP_NULL_PARAM_DEREF]]></configKey>
     
@@ -2322,7 +2530,8 @@ for null.  This may lead to a <code>NullPointerException</code> when the code is
        dereferenced.
       </p>]]></description>
   </rule>
-  <rule key="NP_NONNULL_PARAM_VIOLATION" priority="CRITICAL">
+  <rule key="NP_NONNULL_PARAM_VIOLATION">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Method call passes null to a nonnull parameter ]]></name>
     <configKey><![CDATA[NP_NONNULL_PARAM_VIOLATION]]></configKey>
     
@@ -2333,7 +2542,8 @@ for null.  This may lead to a <code>NullPointerException</code> when the code is
        always dereferenced.
       </p>]]></description>
   </rule>
-  <rule key="NP_NONNULL_RETURN_VIOLATION" priority="CRITICAL">
+  <rule key="NP_NONNULL_RETURN_VIOLATION">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Method may return null, but is declared @NonNull]]></name>
     <configKey><![CDATA[NP_NONNULL_RETURN_VIOLATION]]></configKey>
     
@@ -2342,7 +2552,8 @@ for null.  This may lead to a <code>NullPointerException</code> when the code is
       which it overrides) is declared to return @NonNull.
       </p>]]></description>
   </rule>
-  <rule key="NP_CLONE_COULD_RETURN_NULL" priority="CRITICAL">
+  <rule key="NP_CLONE_COULD_RETURN_NULL">
+<priority>CRITICAL</priority>
     <name><![CDATA[Bad practice - Clone method may return null]]></name>
     <configKey><![CDATA[NP_CLONE_COULD_RETURN_NULL]]></configKey>
     
@@ -2352,7 +2563,8 @@ for null.  This may lead to a <code>NullPointerException</code> when the code is
        instead.
       </p>]]></description>
   </rule>
-  <rule key="NP_TOSTRING_COULD_RETURN_NULL" priority="CRITICAL">
+  <rule key="NP_TOSTRING_COULD_RETURN_NULL">
+<priority>CRITICAL</priority>
     <name><![CDATA[Bad practice - toString method may return null]]></name>
     <configKey><![CDATA[NP_TOSTRING_COULD_RETURN_NULL]]></configKey>
     
@@ -2362,7 +2574,8 @@ for null.  This may lead to a <code>NullPointerException</code> when the code is
        other code to break. Return the empty string or some other appropriate string rather than null.
       </p>]]></description>
   </rule>
-  <rule key="NP_GUARANTEED_DEREF" priority="BLOCKER">
+  <rule key="NP_GUARANTEED_DEREF">
+<priority>BLOCKER</priority>
     <name><![CDATA[Correctness - Null value is guaranteed to be dereferenced]]></name>
     <configKey><![CDATA[NP_GUARANTEED_DEREF]]></configKey>
     
@@ -2373,7 +2586,8 @@ for null.  This may lead to a <code>NullPointerException</code> when the code is
                          (except on forward paths involving runtime exceptions).
                          </p>]]></description>
   </rule>
-  <rule key="NP_GUARANTEED_DEREF_ON_EXCEPTION_PATH" priority="CRITICAL">
+  <rule key="NP_GUARANTEED_DEREF_ON_EXCEPTION_PATH">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Value is null and guaranteed to be dereferenced on exception path]]></name>
     <configKey><![CDATA[NP_GUARANTEED_DEREF_ON_EXCEPTION_PATH]]></configKey>
     
@@ -2385,14 +2599,16 @@ for null.  This may lead to a <code>NullPointerException</code> when the code is
                          (except on forward paths involving runtime exceptions).
                          </p>]]></description>
   </rule>
-  <rule key="SI_INSTANCE_BEFORE_FINALS_ASSIGNED" priority="CRITICAL">
+  <rule key="SI_INSTANCE_BEFORE_FINALS_ASSIGNED">
+<priority>CRITICAL</priority>
     <name><![CDATA[Bad practice - Static initializer creates instance before all static final fields assigned]]></name>
     <configKey><![CDATA[SI_INSTANCE_BEFORE_FINALS_ASSIGNED]]></configKey>
     
     <description><![CDATA[<p> The class's static initializer creates an instance of the class
 before all of the static final fields are assigned.</p>]]></description>
   </rule>
-  <rule key="OS_OPEN_STREAM" priority="CRITICAL">
+  <rule key="OS_OPEN_STREAM">
+<priority>CRITICAL</priority>
     <name><![CDATA[Bad practice - Method may fail to close stream]]></name>
     <configKey><![CDATA[OS_OPEN_STREAM]]></configKey>
     
@@ -2404,7 +2620,8 @@ a file descriptor leak.&nbsp; It is generally a good
 idea to use a <code>finally</code> block to ensure that streams are
 closed.</p>]]></description>
   </rule>
-  <rule key="OS_OPEN_STREAM_EXCEPTION_PATH" priority="CRITICAL">
+  <rule key="OS_OPEN_STREAM_EXCEPTION_PATH">
+<priority>CRITICAL</priority>
     <name><![CDATA[Bad practice - Method may fail to close stream on exception]]></name>
     <configKey><![CDATA[OS_OPEN_STREAM_EXCEPTION_PATH]]></configKey>
     
@@ -2415,7 +2632,8 @@ This may result in a file descriptor leak.&nbsp; It is generally a good
 idea to use a <code>finally</code> block to ensure that streams are
 closed.</p>]]></description>
   </rule>
-  <rule key="PZLA_PREFER_ZERO_LENGTH_ARRAYS" priority="MAJOR">
+  <rule key="PZLA_PREFER_ZERO_LENGTH_ARRAYS">
+<priority>MAJOR</priority>
     <name><![CDATA[Dodgy - Consider returning a zero length array rather than null]]></name>
     <configKey><![CDATA[PZLA_PREFER_ZERO_LENGTH_ARRAYS]]></configKey>
     
@@ -2430,7 +2648,8 @@ For example, <code>File.listFiles()</code> returns an empty list
 if given a directory containing no files, and returns null if the file
 is not a directory.</p>]]></description>
   </rule>
-  <rule key="UCF_USELESS_CONTROL_FLOW" priority="CRITICAL">
+  <rule key="UCF_USELESS_CONTROL_FLOW">
+<priority>CRITICAL</priority>
     <name><![CDATA[Dodgy - Useless control flow]]></name>
     <configKey><![CDATA[UCF_USELESS_CONTROL_FLOW]]></configKey>
     
@@ -2445,7 +2664,8 @@ block for an <code>if</code> statement:</p>
        }
 </pre>]]></description>
   </rule>
-  <rule key="UCF_USELESS_CONTROL_FLOW_NEXT_LINE" priority="CRITICAL">
+  <rule key="UCF_USELESS_CONTROL_FLOW_NEXT_LINE">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Useless control flow to next line]]></name>
     <configKey><![CDATA[UCF_USELESS_CONTROL_FLOW_NEXT_LINE]]></configKey>
     
@@ -2459,7 +2679,8 @@ body of an <code>if</code> statement, e.g.:</p>
         System.out.println("Hello, " + argv[0]);
 </pre>]]></description>
   </rule>
-  <rule key="RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE" priority="CRITICAL">
+  <rule key="RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Nullcheck of value previously dereferenced]]></name>
     <configKey><![CDATA[RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE]]></configKey>
     
@@ -2470,35 +2691,40 @@ Essentially, this code and the previous dereference
 disagree as to whether this value is allowed to be null. Either the check is redundant
 or the previous dereference is erroneous.</p>]]></description>
   </rule>
-  <rule key="RCN_REDUNDANT_NULLCHECK_OF_NULL_VALUE" priority="CRITICAL">
+  <rule key="RCN_REDUNDANT_NULLCHECK_OF_NULL_VALUE">
+<priority>CRITICAL</priority>
     <name><![CDATA[Dodgy - Redundant nullcheck of value known to be null]]></name>
     <configKey><![CDATA[RCN_REDUNDANT_NULLCHECK_OF_NULL_VALUE]]></configKey>
     
     <description><![CDATA[<p> This method contains a redundant check of a known null value against
 the constant null.</p>]]></description>
   </rule>
-  <rule key="RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE" priority="CRITICAL">
+  <rule key="RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE">
+<priority>CRITICAL</priority>
     <name><![CDATA[Dodgy - Redundant nullcheck of value known to be non-null]]></name>
     <configKey><![CDATA[RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE]]></configKey>
     
     <description><![CDATA[<p> This method contains a redundant check of a known non-null value against
 the constant null.</p>]]></description>
   </rule>
-  <rule key="RCN_REDUNDANT_COMPARISON_TWO_NULL_VALUES" priority="CRITICAL">
+  <rule key="RCN_REDUNDANT_COMPARISON_TWO_NULL_VALUES">
+<priority>CRITICAL</priority>
     <name><![CDATA[Dodgy - Redundant comparison of two null values]]></name>
     <configKey><![CDATA[RCN_REDUNDANT_COMPARISON_TWO_NULL_VALUES]]></configKey>
     
     <description><![CDATA[<p> This method contains a redundant comparison of two references known to
 both be definitely null.</p>]]></description>
   </rule>
-  <rule key="RCN_REDUNDANT_COMPARISON_OF_NULL_AND_NONNULL_VALUE" priority="CRITICAL">
+  <rule key="RCN_REDUNDANT_COMPARISON_OF_NULL_AND_NONNULL_VALUE">
+<priority>CRITICAL</priority>
     <name><![CDATA[Dodgy - Redundant comparison of non-null value to null]]></name>
     <configKey><![CDATA[RCN_REDUNDANT_COMPARISON_OF_NULL_AND_NONNULL_VALUE]]></configKey>
     
     <description><![CDATA[<p> This method contains a reference known to be non-null with another reference
 known to be null.</p>]]></description>
   </rule>
-  <rule key="UL_UNRELEASED_LOCK" priority="CRITICAL">
+  <rule key="UL_UNRELEASED_LOCK">
+<priority>CRITICAL</priority>
     <name><![CDATA[Multithreaded correctness - Method does not release lock on all paths]]></name>
     <configKey><![CDATA[UL_UNRELEASED_LOCK]]></configKey>
     
@@ -2516,7 +2742,8 @@ for using a JSR-166 lock is:
     }
 </pre>]]></description>
   </rule>
-  <rule key="UL_UNRELEASED_LOCK_EXCEPTION_PATH" priority="CRITICAL">
+  <rule key="UL_UNRELEASED_LOCK_EXCEPTION_PATH">
+<priority>CRITICAL</priority>
     <name><![CDATA[Multithreaded correctness - Method does not release lock on all exception paths]]></name>
     <configKey><![CDATA[UL_UNRELEASED_LOCK_EXCEPTION_PATH]]></configKey>
     
@@ -2534,7 +2761,8 @@ for using a JSR-166 lock is:
     }
 </pre>]]></description>
   </rule>
-  <rule key="RC_REF_COMPARISON" priority="CRITICAL">
+  <rule key="RC_REF_COMPARISON">
+<priority>CRITICAL</priority>
     <name><![CDATA[Bad practice - Suspicious reference comparison]]></name>
     <configKey><![CDATA[RC_REF_COMPARISON]]></configKey>
     
@@ -2543,7 +2771,8 @@ where the correct way to compare instances of this type is generally
 with the equals() method.  Examples of classes which should generally
 not be compared by reference are java.lang.Integer, java.lang.Float, etc.</p>]]></description>
   </rule>
-  <rule key="EC_UNRELATED_TYPES_USING_POINTER_EQUALITY" priority="CRITICAL">
+  <rule key="EC_UNRELATED_TYPES_USING_POINTER_EQUALITY">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Using pointer equality to compare different types]]></name>
     <configKey><![CDATA[EC_UNRELATED_TYPES_USING_POINTER_EQUALITY]]></configKey>
     
@@ -2551,7 +2780,8 @@ not be compared by reference are java.lang.Integer, java.lang.Float, etc.</p>]]>
 different types.  The result of this comparison will always be false at runtime.
 </p>]]></description>
   </rule>
-  <rule key="EC_UNRELATED_TYPES" priority="CRITICAL">
+  <rule key="EC_UNRELATED_TYPES">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Call to equals() comparing different types]]></name>
     <configKey><![CDATA[EC_UNRELATED_TYPES]]></configKey>
     
@@ -2568,7 +2798,8 @@ contract defined by java.lang.Object.equals(Object),
 the result of this comparison will always be false at runtime.
 </p>]]></description>
   </rule>
-  <rule key="EC_UNRELATED_INTERFACES" priority="CRITICAL">
+  <rule key="EC_UNRELATED_INTERFACES">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Call to equals() comparing different interface types]]></name>
     <configKey><![CDATA[EC_UNRELATED_INTERFACES]]></configKey>
     
@@ -2586,7 +2817,8 @@ contract defined by java.lang.Object.equals(Object),
 the result of this comparison will always be false at runtime.
 </p>]]></description>
   </rule>
-  <rule key="EC_UNRELATED_CLASS_AND_INTERFACE" priority="CRITICAL">
+  <rule key="EC_UNRELATED_CLASS_AND_INTERFACE">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Call to equals() comparing unrelated class and interface]]></name>
     <configKey><![CDATA[EC_UNRELATED_CLASS_AND_INTERFACE]]></configKey>
     
@@ -2605,7 +2837,8 @@ contract defined by java.lang.Object.equals(Object),
 the result of this comparison will always be false at runtime.
 </p>]]></description>
   </rule>
-  <rule key="EC_NULL_ARG" priority="CRITICAL">
+  <rule key="EC_NULL_ARG">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Call to equals() with null argument]]></name>
     <configKey><![CDATA[EC_NULL_ARG]]></configKey>
     
@@ -2613,7 +2846,8 @@ the result of this comparison will always be false at runtime.
 the argument. According to the contract of the equals() method,
 this call should always return <code>false</code>.</p>]]></description>
   </rule>
-  <rule key="MWN_MISMATCHED_WAIT" priority="CRITICAL">
+  <rule key="MWN_MISMATCHED_WAIT">
+<priority>CRITICAL</priority>
     <name><![CDATA[Multithreaded correctness - Mismatched wait()]]></name>
     <configKey><![CDATA[MWN_MISMATCHED_WAIT]]></configKey>
     
@@ -2621,7 +2855,8 @@ this call should always return <code>false</code>.</p>]]></description>
 on the object.&nbsp;  Calling wait() without a lock held will result in
 an <code>IllegalMonitorStateException</code> being thrown.</p>]]></description>
   </rule>
-  <rule key="MWN_MISMATCHED_NOTIFY" priority="CRITICAL">
+  <rule key="MWN_MISMATCHED_NOTIFY">
+<priority>CRITICAL</priority>
     <name><![CDATA[Multithreaded correctness - Mismatched notify()]]></name>
     <configKey><![CDATA[MWN_MISMATCHED_NOTIFY]]></configKey>
     
@@ -2629,7 +2864,8 @@ an <code>IllegalMonitorStateException</code> being thrown.</p>]]></description>
 on the object.&nbsp;  Calling notify() or notifyAll() without a lock held will result in
 an <code>IllegalMonitorStateException</code> being thrown.</p>]]></description>
   </rule>
-  <rule key="SA_LOCAL_SELF_ASSIGNMENT" priority="CRITICAL">
+  <rule key="SA_LOCAL_SELF_ASSIGNMENT">
+<priority>CRITICAL</priority>
     <name><![CDATA[Dodgy - Self assignment of local variable]]></name>
     <configKey><![CDATA[SA_LOCAL_SELF_ASSIGNMENT]]></configKey>
     
@@ -2644,7 +2880,8 @@ an <code>IllegalMonitorStateException</code> being thrown.</p>]]></description>
 Such assignments are useless, and may indicate a logic error or typo.
 </p>]]></description>
   </rule>
-  <rule key="SA_FIELD_SELF_ASSIGNMENT" priority="CRITICAL">
+  <rule key="SA_FIELD_SELF_ASSIGNMENT">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Self assignment of field]]></name>
     <configKey><![CDATA[SA_FIELD_SELF_ASSIGNMENT]]></configKey>
     
@@ -2658,7 +2895,8 @@ Such assignments are useless, and may indicate a logic error or typo.
 </pre>
 <p>Such assignments are useless, and may indicate a logic error or typo.</p>]]></description>
   </rule>
-  <rule key="SA_FIELD_DOUBLE_ASSIGNMENT" priority="CRITICAL">
+  <rule key="SA_FIELD_DOUBLE_ASSIGNMENT">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Double assignment of field]]></name>
     <configKey><![CDATA[SA_FIELD_DOUBLE_ASSIGNMENT]]></configKey>
     
@@ -2672,7 +2910,8 @@ Such assignments are useless, and may indicate a logic error or typo.
 </pre>
 <p>Assigning to a field twice is useless, and may indicate a logic error or typo.</p>]]></description>
   </rule>
-  <rule key="SA_LOCAL_DOUBLE_ASSIGNMENT" priority="CRITICAL">
+  <rule key="SA_LOCAL_DOUBLE_ASSIGNMENT">
+<priority>CRITICAL</priority>
     <name><![CDATA[Dodgy - Double assignment of local variable ]]></name>
     <configKey><![CDATA[SA_LOCAL_DOUBLE_ASSIGNMENT]]></configKey>
     
@@ -2686,7 +2925,8 @@ Such assignments are useless, and may indicate a logic error or typo.
 </pre>
 <p>Assigning the same value to a variable twice is useless, and may indicate a logic error or typo.</p>]]></description>
   </rule>
-  <rule key="SA_FIELD_SELF_COMPUTATION" priority="CRITICAL">
+  <rule key="SA_FIELD_SELF_COMPUTATION">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Nonsensical self computation involving a field (e.g., x & x)]]></name>
     <configKey><![CDATA[SA_FIELD_SELF_COMPUTATION]]></configKey>
     
@@ -2697,7 +2937,8 @@ and may indicate a typo or
 a logic error.  Double check the computation.
 </p>]]></description>
   </rule>
-  <rule key="SA_LOCAL_SELF_COMPUTATION" priority="CRITICAL">
+  <rule key="SA_LOCAL_SELF_COMPUTATION">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Nonsensical self computation involving a variable (e.g., x & x)]]></name>
     <configKey><![CDATA[SA_LOCAL_SELF_COMPUTATION]]></configKey>
     
@@ -2708,7 +2949,8 @@ and may indicate a typo or
 a logic error.  Double check the computation.
 </p>]]></description>
   </rule>
-  <rule key="SA_FIELD_SELF_COMPARISON" priority="CRITICAL">
+  <rule key="SA_FIELD_SELF_COMPARISON">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Self comparison of field with itself]]></name>
     <configKey><![CDATA[SA_FIELD_SELF_COMPARISON]]></configKey>
     
@@ -2716,7 +2958,8 @@ a logic error.  Double check the computation.
 a logic error.  Make sure that you are comparing the right things.
 </p>]]></description>
   </rule>
-  <rule key="SA_LOCAL_SELF_COMPARISON" priority="CRITICAL">
+  <rule key="SA_LOCAL_SELF_COMPARISON">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Self comparison of value with itself]]></name>
     <configKey><![CDATA[SA_LOCAL_SELF_COMPARISON]]></configKey>
     
@@ -2724,7 +2967,8 @@ a logic error.  Make sure that you are comparing the right things.
 a logic error.  Make sure that you are comparing the right things.
 </p>]]></description>
   </rule>
-  <rule key="DMI_LONG_BITS_TO_DOUBLE_INVOKED_ON_INT" priority="CRITICAL">
+  <rule key="DMI_LONG_BITS_TO_DOUBLE_INVOKED_ON_INT">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Double.longBitsToDouble invoked on an int]]></name>
     <configKey><![CDATA[DMI_LONG_BITS_TO_DOUBLE_INVOKED_ON_INT]]></configKey>
     
@@ -2733,7 +2977,8 @@ a logic error.  Make sure that you are comparing the right things.
        to give the intended result.
 </p>]]></description>
   </rule>
-  <rule key="DMI_RANDOM_USED_ONLY_ONCE" priority="CRITICAL">
+  <rule key="DMI_RANDOM_USED_ONLY_ONCE">
+<priority>CRITICAL</priority>
     <name><![CDATA[Bad practice - Random object created and used only once]]></name>
     <configKey><![CDATA[DMI_RANDOM_USED_ONLY_ONCE]]></configKey>
     
@@ -2748,7 +2993,8 @@ number; the values are too easily guessable. You should strongly consider using
 (and avoid allocating a new SecureRandom for each random number needed).
 </p>]]></description>
   </rule>
-  <rule key="RV_ABSOLUTE_VALUE_OF_RANDOM_INT" priority="CRITICAL">
+  <rule key="RV_ABSOLUTE_VALUE_OF_RANDOM_INT">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Bad attempt to compute absolute value of signed 32-bit random integer]]></name>
     <configKey><![CDATA[RV_ABSOLUTE_VALUE_OF_RANDOM_INT]]></configKey>
     
@@ -2758,7 +3004,8 @@ generator is <code>Integer.MIN_VALUE</code>, then the result will be negative as
 <code>Math.abs(Integer.MIN_VALUE) == Integer.MIN_VALUE</code>).
 </p>]]></description>
   </rule>
-  <rule key="RV_ABSOLUTE_VALUE_OF_HASHCODE" priority="CRITICAL">
+  <rule key="RV_ABSOLUTE_VALUE_OF_HASHCODE">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Bad attempt to compute absolute value of signed 32-bit hashcode ]]></name>
     <configKey><![CDATA[RV_ABSOLUTE_VALUE_OF_HASHCODE]]></configKey>
     
@@ -2768,7 +3015,8 @@ is <code>Integer.MIN_VALUE</code>, then the result will be negative as well (sin
 <code>Math.abs(Integer.MIN_VALUE) == Integer.MIN_VALUE</code>).
 </p>]]></description>
   </rule>
-  <rule key="RV_REM_OF_RANDOM_INT" priority="CRITICAL">
+  <rule key="RV_REM_OF_RANDOM_INT">
+<priority>CRITICAL</priority>
     <name><![CDATA[Dodgy - Remainder of 32-bit signed random integer]]></name>
     <configKey><![CDATA[RV_REM_OF_RANDOM_INT]]></configKey>
     
@@ -2779,7 +3027,8 @@ can also be negative. Be sure this is intended, and strongly
 consider using the Random.nextInt(int) method instead.
 </p>]]></description>
   </rule>
-  <rule key="RV_REM_OF_HASHCODE" priority="CRITICAL">
+  <rule key="RV_REM_OF_HASHCODE">
+<priority>CRITICAL</priority>
     <name><![CDATA[Dodgy - Remainder of hashCode could be negative]]></name>
     <configKey><![CDATA[RV_REM_OF_HASHCODE]]></configKey>
     
@@ -2798,14 +3047,16 @@ value of the result of the remainder operation (i.e., use
 <code>Math.abs(x.hashCode()%n)</code>
 </p>]]></description>
   </rule>
-  <rule key="INT_BAD_COMPARISON_WITH_NONNEGATIVE_VALUE" priority="CRITICAL">
+  <rule key="INT_BAD_COMPARISON_WITH_NONNEGATIVE_VALUE">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Bad comparison of nonnegative value with negative constant]]></name>
     <configKey><![CDATA[INT_BAD_COMPARISON_WITH_NONNEGATIVE_VALUE]]></configKey>
     
     <description><![CDATA[<p> This code compares a value that is guaranteed to be non-negative with a negative constant.
 </p>]]></description>
   </rule>
-  <rule key="INT_BAD_COMPARISON_WITH_SIGNED_BYTE" priority="CRITICAL">
+  <rule key="INT_BAD_COMPARISON_WITH_SIGNED_BYTE">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Bad comparison of signed byte]]></name>
     <configKey><![CDATA[INT_BAD_COMPARISON_WITH_SIGNED_BYTE]]></configKey>
     
@@ -2815,7 +3066,8 @@ To convert a signed byte <code>b</code> to an unsigned value in the range 0..255
 use <code>0xff &amp; b</code>
 </p>]]></description>
   </rule>
-  <rule key="INT_VACUOUS_BIT_OPERATION" priority="CRITICAL">
+  <rule key="INT_VACUOUS_BIT_OPERATION">
+<priority>CRITICAL</priority>
     <name><![CDATA[Dodgy - Vacuous bit mask operation on integer value]]></name>
     <configKey><![CDATA[INT_VACUOUS_BIT_OPERATION]]></configKey>
     
@@ -2824,7 +3076,8 @@ use <code>0xff &amp; b</code>
 
 </p>]]></description>
   </rule>
-  <rule key="INT_VACUOUS_COMPARISON" priority="CRITICAL">
+  <rule key="INT_VACUOUS_COMPARISON">
+<priority>CRITICAL</priority>
     <name><![CDATA[Dodgy - Vacuous comparison of integer value]]></name>
     <configKey><![CDATA[INT_VACUOUS_COMPARISON]]></configKey>
     
@@ -2832,7 +3085,8 @@ use <code>0xff &amp; b</code>
 the same value (e.g., x &lt;= Integer.MAX_VALUE).
 </p>]]></description>
   </rule>
-  <rule key="INT_BAD_REM_BY_1" priority="CRITICAL">
+  <rule key="INT_BAD_REM_BY_1">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Integer remainder modulo 1]]></name>
     <configKey><![CDATA[INT_BAD_REM_BY_1]]></configKey>
     
@@ -2840,7 +3094,8 @@ the same value (e.g., x &lt;= Integer.MAX_VALUE).
 Did you mean (exp &amp; 1) or (exp % 2) instead?
 </p>]]></description>
   </rule>
-  <rule key="BIT_IOR_OF_SIGNED_BYTE" priority="CRITICAL">
+  <rule key="BIT_IOR_OF_SIGNED_BYTE">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Bitwise OR of signed byte value]]></name>
     <configKey><![CDATA[BIT_IOR_OF_SIGNED_BYTE]]></configKey>
     
@@ -2868,7 +3123,8 @@ for(int i = 0; i &lt; 4; i++)
   result = ((result &lt;&lt; 8) | (b[i] &amp; 0xff));
 </pre>]]></description>
   </rule>
-  <rule key="BIT_ADD_OF_SIGNED_BYTE" priority="CRITICAL">
+  <rule key="BIT_ADD_OF_SIGNED_BYTE">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Bitwise add of signed byte value]]></name>
     <configKey><![CDATA[BIT_ADD_OF_SIGNED_BYTE]]></configKey>
     
@@ -2896,7 +3152,8 @@ for(int i = 0; i &lt; 4; i++)
   result = ((result &lt;&lt; 8) + (b[i] &amp; 0xff));
 </pre>]]></description>
   </rule>
-  <rule key="BIT_AND" priority="CRITICAL">
+  <rule key="BIT_AND">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Incompatible bit masks]]></name>
     <configKey><![CDATA[BIT_AND]]></configKey>
     
@@ -2905,7 +3162,8 @@ which will always compare unequal
 due to the specific values of constants C and D.
 This may indicate a logic error or typo.</p>]]></description>
   </rule>
-  <rule key="BIT_SIGNED_CHECK" priority="CRITICAL">
+  <rule key="BIT_SIGNED_CHECK">
+<priority>CRITICAL</priority>
     <name><![CDATA[Bad practice - Check for sign of bitwise operation]]></name>
     <configKey><![CDATA[BIT_SIGNED_CHECK]]></configKey>
     
@@ -2921,7 +3179,8 @@ to use '!= 0' instead of '&gt; 0'.
 <em>Boris Bokowski</em>
 </p>]]></description>
   </rule>
-  <rule key="BIT_SIGNED_CHECK_HIGH_BIT" priority="CRITICAL">
+  <rule key="BIT_SIGNED_CHECK_HIGH_BIT">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Check for sign of bitwise operation]]></name>
     <configKey><![CDATA[BIT_SIGNED_CHECK_HIGH_BIT]]></configKey>
     
@@ -2937,7 +3196,8 @@ to use '!= 0' instead of '&gt; 0'.
 <em>Boris Bokowski</em>
 </p>]]></description>
   </rule>
-  <rule key="BIT_AND_ZZ" priority="CRITICAL">
+  <rule key="BIT_AND_ZZ">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Check to see if ((...) & 0) == 0]]></name>
     <configKey><![CDATA[BIT_AND_ZZ]]></configKey>
     
@@ -2945,7 +3205,8 @@ to use '!= 0' instead of '&gt; 0'.
 which will always compare equal.
 This may indicate a logic error or typo.</p>]]></description>
   </rule>
-  <rule key="BIT_IOR" priority="CRITICAL">
+  <rule key="BIT_IOR">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Incompatible bit masks]]></name>
     <configKey><![CDATA[BIT_IOR]]></configKey>
     
@@ -2958,7 +3219,8 @@ This may indicate a logic error or typo.</p>
 a membership test in a bit set, but uses the bitwise OR
 operator ("|") instead of bitwise AND ("&amp;").</p>]]></description>
   </rule>
-  <rule key="LI_LAZY_INIT_STATIC" priority="CRITICAL">
+  <rule key="LI_LAZY_INIT_STATIC">
+<priority>CRITICAL</priority>
     <name><![CDATA[Multithreaded correctness - Incorrect lazy initialization of static field]]></name>
     <configKey><![CDATA[LI_LAZY_INIT_STATIC]]></configKey>
     
@@ -2971,7 +3233,8 @@ For more information, see the
 <a href="http://www.cs.umd.edu/~pugh/java/memoryModel/">Java Memory Model web site</a>.
 </p>]]></description>
   </rule>
-  <rule key="LI_LAZY_INIT_UPDATE_STATIC" priority="CRITICAL">
+  <rule key="LI_LAZY_INIT_UPDATE_STATIC">
+<priority>CRITICAL</priority>
     <name><![CDATA[Multithreaded correctness - Incorrect lazy initialization and update of static field]]></name>
     <configKey><![CDATA[LI_LAZY_INIT_UPDATE_STATIC]]></configKey>
     
@@ -2983,7 +3246,8 @@ you have a <em>very serious</em> multithreading bug, unless something else preve
 any other thread from accessing the stored object until it is fully initialized.
 </p>]]></description>
   </rule>
-  <rule key="JLM_JSR166_LOCK_MONITORENTER" priority="CRITICAL">
+  <rule key="JLM_JSR166_LOCK_MONITORENTER">
+<priority>CRITICAL</priority>
     <name><![CDATA[Multithreaded correctness - Synchronization performed on java.util.concurrent Lock]]></name>
     <configKey><![CDATA[JLM_JSR166_LOCK_MONITORENTER]]></configKey>
     
@@ -2992,7 +3256,8 @@ any other thread from accessing the stored object until it is fully initialized.
 the <code>lock()</code> and <code>unlock()</code> methods instead.
 </p>]]></description>
   </rule>
-  <rule key="UPM_UNCALLED_PRIVATE_METHOD" priority="CRITICAL">
+  <rule key="UPM_UNCALLED_PRIVATE_METHOD">
+<priority>CRITICAL</priority>
     <name><![CDATA[Performance - Private method is never called]]></name>
     <configKey><![CDATA[UPM_UNCALLED_PRIVATE_METHOD]]></configKey>
     
@@ -3002,7 +3267,8 @@ it is more likely that the method is never used, and should be
 removed.
 </p>]]></description>
   </rule>
-  <rule key="UMAC_UNCALLABLE_METHOD_OF_ANONYMOUS_CLASS" priority="CRITICAL">
+  <rule key="UMAC_UNCALLABLE_METHOD_OF_ANONYMOUS_CLASS">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Uncallable method defined in anonymous class]]></name>
     <configKey><![CDATA[UMAC_UNCALLABLE_METHOD_OF_ANONYMOUS_CLASS]]></configKey>
     
@@ -3014,7 +3280,8 @@ override a method declared in a superclass, and due to an typo or other error th
 in fact, override the method it is intended to.
 </p>]]></description>
   </rule>
-  <rule key="ODR_OPEN_DATABASE_RESOURCE" priority="CRITICAL">
+  <rule key="ODR_OPEN_DATABASE_RESOURCE">
+<priority>CRITICAL</priority>
     <name><![CDATA[Bad practice - Method may fail to close database resource]]></name>
     <configKey><![CDATA[ODR_OPEN_DATABASE_RESOURCE]]></configKey>
     
@@ -3027,7 +3294,8 @@ result in poor performance, and could cause the application to
 have problems communicating with the database.
 </p>]]></description>
   </rule>
-  <rule key="ODR_OPEN_DATABASE_RESOURCE_EXCEPTION_PATH" priority="CRITICAL">
+  <rule key="ODR_OPEN_DATABASE_RESOURCE_EXCEPTION_PATH">
+<priority>CRITICAL</priority>
     <name><![CDATA[Bad practice - Method may fail to close database resource on exception]]></name>
     <configKey><![CDATA[ODR_OPEN_DATABASE_RESOURCE_EXCEPTION_PATH]]></configKey>
     
@@ -3039,7 +3307,8 @@ close database resources on all paths out of a method may
 result in poor performance, and could cause the application to
 have problems communicating with the database.</p>]]></description>
   </rule>
-  <rule key="SBSC_USE_STRINGBUFFER_CONCATENATION" priority="CRITICAL">
+  <rule key="SBSC_USE_STRINGBUFFER_CONCATENATION">
+<priority>CRITICAL</priority>
     <name><![CDATA[Performance - Method concatenates strings using + in a loop]]></name>
     <configKey><![CDATA[SBSC_USE_STRINGBUFFER_CONCATENATION]]></configKey>
     
@@ -3068,7 +3337,8 @@ a StringBuffer (or StringBuilder in Java 1.5) explicitly.</p>
   String s = buf.toString();
 </pre>]]></description>
   </rule>
-  <rule key="ITA_INEFFICIENT_TO_ARRAY" priority="CRITICAL">
+  <rule key="ITA_INEFFICIENT_TO_ARRAY">
+<priority>CRITICAL</priority>
     <name><![CDATA[Performance - Method uses toArray() with zero-length array argument]]></name>
     <configKey><![CDATA[ITA_INEFFICIENT_TO_ARRAY]]></configKey>
     
@@ -3080,7 +3350,8 @@ elements of the collection, then it is populated and returned
 directly. This avoids the need to create a second array
 (by reflection) to return as the result.</p>]]></description>
   </rule>
-  <rule key="IJU_ASSERT_METHOD_INVOKED_FROM_RUN_METHOD" priority="CRITICAL">
+  <rule key="IJU_ASSERT_METHOD_INVOKED_FROM_RUN_METHOD">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - JUnit assertion in run method will not be noticed by JUnit]]></name>
     <configKey><![CDATA[IJU_ASSERT_METHOD_INVOKED_FROM_RUN_METHOD]]></configKey>
     
@@ -3091,28 +3362,32 @@ the test method, the exception will terminate the thread but not result
 in the test failing.
 </p>]]></description>
   </rule>
-  <rule key="IJU_SETUP_NO_SUPER" priority="CRITICAL">
+  <rule key="IJU_SETUP_NO_SUPER">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - TestCase defines setUp that doesn't call super.setUp()]]></name>
     <configKey><![CDATA[IJU_SETUP_NO_SUPER]]></configKey>
     
     <description><![CDATA[<p> Class is a JUnit TestCase and implements the setUp method. The setUp method should call
 super.setUp(), but doesn't.</p>]]></description>
   </rule>
-  <rule key="IJU_TEARDOWN_NO_SUPER" priority="CRITICAL">
+  <rule key="IJU_TEARDOWN_NO_SUPER">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - TestCase defines tearDown that doesn't call super.tearDown()]]></name>
     <configKey><![CDATA[IJU_TEARDOWN_NO_SUPER]]></configKey>
     
     <description><![CDATA[<p> Class is a JUnit TestCase and implements the tearDown method. The tearDown method should call
 super.tearDown(), but doesn't.</p>]]></description>
   </rule>
-  <rule key="IJU_SUITE_NOT_STATIC" priority="CRITICAL">
+  <rule key="IJU_SUITE_NOT_STATIC">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - TestCase implements a non-static suite method ]]></name>
     <configKey><![CDATA[IJU_SUITE_NOT_STATIC]]></configKey>
     
     <description><![CDATA[<p> Class is a JUnit TestCase and implements the suite() method.
  The suite method should be declared as being static, but isn't.</p>]]></description>
   </rule>
-  <rule key="IJU_BAD_SUITE_METHOD" priority="CRITICAL">
+  <rule key="IJU_BAD_SUITE_METHOD">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - TestCase declares a bad suite method ]]></name>
     <configKey><![CDATA[IJU_BAD_SUITE_METHOD]]></configKey>
     
@@ -3123,13 +3398,15 @@ or
 <pre>public static junit.framework.TestSuite suite()</pre>
 </p>]]></description>
   </rule>
-  <rule key="IJU_NO_TESTS" priority="CRITICAL">
+  <rule key="IJU_NO_TESTS">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - TestCase has no tests]]></name>
     <configKey><![CDATA[IJU_NO_TESTS]]></configKey>
     
     <description><![CDATA[<p> Class is a JUnit TestCase but has not implemented any test methods</p>]]></description>
   </rule>
-  <rule key="BOA_BADLY_OVERRIDDEN_ADAPTER" priority="CRITICAL">
+  <rule key="BOA_BADLY_OVERRIDDEN_ADAPTER">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Class overrides a method implemented in super class Adapter wrongly]]></name>
     <configKey><![CDATA[BOA_BADLY_OVERRIDDEN_ADAPTER]]></configKey>
     
@@ -3137,28 +3414,32 @@ or
 a listener defined in the java.awt.event or javax.swing.event package. As a result, this method will not
 get called when the event occurs.</p>]]></description>
   </rule>
-  <rule key="SQL_BAD_RESULTSET_ACCESS" priority="CRITICAL">
+  <rule key="SQL_BAD_RESULTSET_ACCESS">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Method attempts to access a result set field with index 0]]></name>
     <configKey><![CDATA[SQL_BAD_RESULTSET_ACCESS]]></configKey>
     
     <description><![CDATA[<p> A call to getXXX or updateXXX methods of a result set was made where the
 field index is 0. As ResultSet fields start at index 1, this is always a mistake.</p>]]></description>
   </rule>
-  <rule key="SQL_BAD_PREPARED_STATEMENT_ACCESS" priority="CRITICAL">
+  <rule key="SQL_BAD_PREPARED_STATEMENT_ACCESS">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Method attempts to access a prepared statement parameter with index 0]]></name>
     <configKey><![CDATA[SQL_BAD_PREPARED_STATEMENT_ACCESS]]></configKey>
     
     <description><![CDATA[<p> A call to a setXXX method of a prepared statement was made where the
 parameter index is 0. As parameter indexes start at index 1, this is always a mistake.</p>]]></description>
   </rule>
-  <rule key="SIO_SUPERFLUOUS_INSTANCEOF" priority="CRITICAL">
+  <rule key="SIO_SUPERFLUOUS_INSTANCEOF">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Unnecessary type check done using instanceof operator]]></name>
     <configKey><![CDATA[SIO_SUPERFLUOUS_INSTANCEOF]]></configKey>
     
     <description><![CDATA[<p> Type check performed using the instanceof operator where it can be statically determined whether the object
 is of the type requested. </p>]]></description>
   </rule>
-  <rule key="EC_ARRAY_AND_NONARRAY" priority="CRITICAL">
+  <rule key="EC_ARRAY_AND_NONARRAY">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - equals() used to compare array and nonarray]]></name>
     <configKey><![CDATA[EC_ARRAY_AND_NONARRAY]]></configKey>
     
@@ -3171,7 +3452,8 @@ To compare the
 contents of the arrays, use java.util.Arrays.equals(Object[], Object[]).
 </p>]]></description>
   </rule>
-  <rule key="EC_BAD_ARRAY_COMPARE" priority="CRITICAL">
+  <rule key="EC_BAD_ARRAY_COMPARE">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Invocation of equals() on an array, which is equivalent to ==]]></name>
     <configKey><![CDATA[EC_BAD_ARRAY_COMPARE]]></configKey>
     
@@ -3181,7 +3463,8 @@ method of Object, calling equals on an array is the same as comparing their addr
 contents of the arrays, use java.util.Arrays.equals(Object[], Object[]).
 </p>]]></description>
   </rule>
-  <rule key="STI_INTERRUPTED_ON_CURRENTTHREAD" priority="CRITICAL">
+  <rule key="STI_INTERRUPTED_ON_CURRENTTHREAD">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Unneeded use of currentThread() call, to call interrupted() ]]></name>
     <configKey><![CDATA[STI_INTERRUPTED_ON_CURRENTTHREAD]]></configKey>
     
@@ -3190,7 +3473,8 @@ This method invokes the Thread.currentThread() call, just to call the interrupte
 static method, is more simple and clear to use Thread.interrupted().
 </p>]]></description>
   </rule>
-  <rule key="STI_INTERRUPTED_ON_UNKNOWNTHREAD" priority="CRITICAL">
+  <rule key="STI_INTERRUPTED_ON_UNKNOWNTHREAD">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Static Thread.interrupted() method invoked on thread instance]]></name>
     <configKey><![CDATA[STI_INTERRUPTED_ON_UNKNOWNTHREAD]]></configKey>
     
@@ -3200,7 +3484,8 @@ not the current thread. As the interrupted() method is static, the interrupted m
 object than the one the author intended.
 </p>]]></description>
   </rule>
-  <rule key="IP_PARAMETER_IS_DEAD_BUT_OVERWRITTEN" priority="CRITICAL">
+  <rule key="IP_PARAMETER_IS_DEAD_BUT_OVERWRITTEN">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - A parameter is dead upon entry to a method but overwritten]]></name>
     <configKey><![CDATA[IP_PARAMETER_IS_DEAD_BUT_OVERWRITTEN]]></configKey>
     
@@ -3211,7 +3496,8 @@ the write to the parameter will be conveyed back to
 the caller.
 </p>]]></description>
   </rule>
-  <rule key="DLS_DEAD_LOCAL_STORE" priority="CRITICAL">
+  <rule key="DLS_DEAD_LOCAL_STORE">
+<priority>CRITICAL</priority>
     <name><![CDATA[Dodgy - Dead store to local variable]]></name>
     <configKey><![CDATA[DLS_DEAD_LOCAL_STORE]]></configKey>
     
@@ -3227,7 +3513,8 @@ final local variables.  Because FindBugs is a bytecode-based tool,
 there is no easy way to eliminate these false positives.
 </p>]]></description>
   </rule>
-  <rule key="DLS_DEAD_LOCAL_STORE_IN_RETURN" priority="CRITICAL">
+  <rule key="DLS_DEAD_LOCAL_STORE_IN_RETURN">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Useless assignment in return statement]]></name>
     <configKey><![CDATA[DLS_DEAD_LOCAL_STORE_IN_RETURN]]></configKey>
     
@@ -3236,7 +3523,8 @@ This statement assigns to a local variable in a return statement. This assignmen
 has effect. Please verify that this statement does the right thing.
 </p>]]></description>
   </rule>
-  <rule key="DLS_DEAD_STORE_OF_CLASS_LITERAL" priority="CRITICAL">
+  <rule key="DLS_DEAD_STORE_OF_CLASS_LITERAL">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Dead store of class literal]]></name>
     <configKey><![CDATA[DLS_DEAD_STORE_OF_CLASS_LITERAL]]></configKey>
     
@@ -3251,7 +3539,8 @@ In Java 5 and later, it does not.
 for more details and examples, and suggestions on how to force class initialization in Java 5.
 </p>]]></description>
   </rule>
-  <rule key="DLS_DEAD_LOCAL_STORE_OF_NULL" priority="CRITICAL">
+  <rule key="DLS_DEAD_LOCAL_STORE_OF_NULL">
+<priority>CRITICAL</priority>
     <name><![CDATA[Dodgy - Dead store of null to local variable]]></name>
     <configKey><![CDATA[DLS_DEAD_LOCAL_STORE_OF_NULL]]></configKey>
     
@@ -3260,7 +3549,8 @@ read. This store may have been introduced to assist the garbage collector, but
 as of Java SE 6.0, this is no longer needed or useful.
 </p>]]></description>
   </rule>
-  <rule key="MF_METHOD_MASKS_FIELD" priority="MAJOR">
+  <rule key="MF_METHOD_MASKS_FIELD">
+<priority>MAJOR</priority>
     <name><![CDATA[Correctness - Method defines a variable that obscures a field]]></name>
     <configKey><![CDATA[MF_METHOD_MASKS_FIELD]]></configKey>
     
@@ -3269,7 +3559,8 @@ in this class or a superclass.  This may cause the method to
 read an uninitialized value from the field, leave the field uninitialized,
 or both.</p>]]></description>
   </rule>
-  <rule key="MF_CLASS_MASKS_FIELD" priority="MAJOR">
+  <rule key="MF_CLASS_MASKS_FIELD">
+<priority>MAJOR</priority>
     <name><![CDATA[Correctness - Class defines field that masks a superclass field]]></name>
     <configKey><![CDATA[MF_CLASS_MASKS_FIELD]]></configKey>
     
@@ -3278,7 +3569,8 @@ instance field in a superclass.  This is confusing, and
 may indicate an error if methods update or access one of
 the fields when they wanted the other.</p>]]></description>
   </rule>
-  <rule key="WMI_WRONG_MAP_ITERATOR" priority="CRITICAL">
+  <rule key="WMI_WRONG_MAP_ITERATOR">
+<priority>CRITICAL</priority>
     <name><![CDATA[Performance - Inefficient use of keySet iterator instead of entrySet iterator]]></name>
     <configKey><![CDATA[WMI_WRONG_MAP_ITERATOR]]></configKey>
     
@@ -3286,14 +3578,16 @@ the fields when they wanted the other.</p>]]></description>
 a keySet iterator. It is more efficient to use an iterator on the entrySet of the map, to avoid the
 Map.get(key) lookup.</p>]]></description>
   </rule>
-  <rule key="ISC_INSTANTIATE_STATIC_CLASS" priority="MAJOR">
+  <rule key="ISC_INSTANTIATE_STATIC_CLASS">
+<priority>MAJOR</priority>
     <name><![CDATA[Bad practice - Needless instantiation of class that only supplies static methods]]></name>
     <configKey><![CDATA[ISC_INSTANTIATE_STATIC_CLASS]]></configKey>
     
     <description><![CDATA[<p> This class allocates an object that is based on a class that only supplies static methods. This object
 does not need to be created, just access the static methods directly using the class name as a qualifier.</p>]]></description>
   </rule>
-  <rule key="REC_CATCH_EXCEPTION" priority="MAJOR">
+  <rule key="REC_CATCH_EXCEPTION">
+<priority>MAJOR</priority>
     <name><![CDATA[Dodgy - Exception is caught when Exception is not thrown]]></name>
     <configKey><![CDATA[REC_CATCH_EXCEPTION]]></configKey>
     
@@ -3305,7 +3599,8 @@ does not need to be created, just access the static methods directly using the c
   masking potential bugs.
   </p>]]></description>
   </rule>
-  <rule key="FE_TEST_IF_EQUAL_TO_NOT_A_NUMBER" priority="CRITICAL">
+  <rule key="FE_TEST_IF_EQUAL_TO_NOT_A_NUMBER">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Doomed test for equality to NaN]]></name>
     <configKey><![CDATA[FE_TEST_IF_EQUAL_TO_NOT_A_NUMBER]]></configKey>
     
@@ -3322,7 +3617,8 @@ does not need to be created, just access the static methods directly using the c
        <code>x</code> is floating point precision).
     </p>]]></description>
   </rule>
-  <rule key="FE_FLOATING_POINT_EQUALITY" priority="CRITICAL">
+  <rule key="FE_FLOATING_POINT_EQUALITY">
+<priority>CRITICAL</priority>
     <name><![CDATA[Dodgy - Test for floating point equality]]></name>
     <configKey><![CDATA[FE_FLOATING_POINT_EQUALITY]]></configKey>
     
@@ -3338,7 +3634,8 @@ does not need to be created, just access the static methods directly using the c
    See the Java Language Specification, section 4.2.4.
     </p>]]></description>
   </rule>
-  <rule key="UM_UNNECESSARY_MATH" priority="CRITICAL">
+  <rule key="UM_UNNECESSARY_MATH">
+<priority>CRITICAL</priority>
     <name><![CDATA[Performance - Method calls static Math class method on a constant value]]></name>
     <configKey><![CDATA[UM_UNNECESSARY_MATH]]></configKey>
     
@@ -3421,7 +3718,8 @@ just use the constant. Methods detected are:
 </tr>
 </table>]]></description>
   </rule>
-  <rule key="RI_REDUNDANT_INTERFACES" priority="MAJOR">
+  <rule key="RI_REDUNDANT_INTERFACES">
+<priority>MAJOR</priority>
     <name><![CDATA[Dodgy - Class implements same interface as superclass]]></name>
     <configKey><![CDATA[RI_REDUNDANT_INTERFACES]]></configKey>
     
@@ -3433,7 +3731,8 @@ just use the constant. Methods detected are:
     the interface's implementation.
     </p>]]></description>
   </rule>
-  <rule key="MTIA_SUSPECT_STRUTS_INSTANCE_FIELD" priority="CRITICAL">
+  <rule key="MTIA_SUSPECT_STRUTS_INSTANCE_FIELD">
+<priority>CRITICAL</priority>
     <name><![CDATA[Dodgy - Class extends Struts Action class and uses instance variables]]></name>
     <configKey><![CDATA[MTIA_SUSPECT_STRUTS_INSTANCE_FIELD]]></configKey>
     
@@ -3445,7 +3744,8 @@ just use the constant. Methods detected are:
     are reported. 
     </p>]]></description>
   </rule>
-  <rule key="MTIA_SUSPECT_SERVLET_INSTANCE_FIELD" priority="CRITICAL">
+  <rule key="MTIA_SUSPECT_SERVLET_INSTANCE_FIELD">
+<priority>CRITICAL</priority>
     <name><![CDATA[Dodgy - Class extends Servlet class and uses instance variables]]></name>
     <configKey><![CDATA[MTIA_SUSPECT_SERVLET_INSTANCE_FIELD]]></configKey>
     
@@ -3456,7 +3756,8 @@ just use the constant. Methods detected are:
     only using method local variables.
     </p>]]></description>
   </rule>
-  <rule key="PS_PUBLIC_SEMAPHORES" priority="CRITICAL">
+  <rule key="PS_PUBLIC_SEMAPHORES">
+<priority>CRITICAL</priority>
     <name><![CDATA[Dodgy - Class exposes synchronization and semaphores in its public interface]]></name>
     <configKey><![CDATA[PS_PUBLIC_SEMAPHORES]]></configKey>
     
@@ -3468,7 +3769,8 @@ just use the constant. Methods detected are:
     a public reference. Consider using a internal private member variable to control synchronization.
     </p>]]></description>
   </rule>
-  <rule key="ICAST_INTEGER_MULTIPLY_CAST_TO_LONG" priority="CRITICAL">
+  <rule key="ICAST_INTEGER_MULTIPLY_CAST_TO_LONG">
+<priority>CRITICAL</priority>
     <name><![CDATA[Dodgy - Result of integer multiplication cast to long]]></name>
     <configKey><![CDATA[ICAST_INTEGER_MULTIPLY_CAST_TO_LONG]]></configKey>
     
@@ -3494,7 +3796,8 @@ or
 </pre></code>
 </p>]]></description>
   </rule>
-  <rule key="ICAST_INT_CAST_TO_FLOAT_PASSED_TO_ROUND" priority="CRITICAL">
+  <rule key="ICAST_INT_CAST_TO_FLOAT_PASSED_TO_ROUND">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - int value cast to float and then passed to Math.round]]></name>
     <configKey><![CDATA[ICAST_INT_CAST_TO_FLOAT_PASSED_TO_ROUND]]></configKey>
     
@@ -3509,7 +3812,8 @@ to Math.round was intended to be performed using
 floating point arithmetic.
 </p>]]></description>
   </rule>
-  <rule key="ICAST_INT_CAST_TO_DOUBLE_PASSED_TO_CEIL" priority="CRITICAL">
+  <rule key="ICAST_INT_CAST_TO_DOUBLE_PASSED_TO_CEIL">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - int value cast to double and then passed to Math.ceil]]></name>
     <configKey><![CDATA[ICAST_INT_CAST_TO_DOUBLE_PASSED_TO_CEIL]]></configKey>
     
@@ -3524,7 +3828,8 @@ to Math.ceil was intended to be performed using double precision
 floating point arithmetic.
 </p>]]></description>
   </rule>
-  <rule key="ICAST_IDIV_CAST_TO_DOUBLE" priority="CRITICAL">
+  <rule key="ICAST_IDIV_CAST_TO_DOUBLE">
+<priority>CRITICAL</priority>
     <name><![CDATA[Dodgy - int division result cast to double or float]]></name>
     <configKey><![CDATA[ICAST_IDIV_CAST_TO_DOUBLE]]></configKey>
     
@@ -3549,7 +3854,8 @@ double value2 =  x / (double) y;
 </pre>
 </blockquote>]]></description>
   </rule>
-  <rule key="J2EE_STORE_OF_NON_SERIALIZABLE_OBJECT_INTO_SESSION" priority="CRITICAL">
+  <rule key="J2EE_STORE_OF_NON_SERIALIZABLE_OBJECT_INTO_SESSION">
+<priority>CRITICAL</priority>
     <name><![CDATA[Bad practice - Store of non serializable object into HttpSession]]></name>
     <configKey><![CDATA[J2EE_STORE_OF_NON_SERIALIZABLE_OBJECT_INTO_SESSION]]></configKey>
     
@@ -3558,7 +3864,8 @@ This code seems to be storing a non-serializable object into an HttpSession.
 If this session is passivated or migrated, an error will result.
 </p>]]></description>
   </rule>
-  <rule key="DMI_NONSERIALIZABLE_OBJECT_WRITTEN" priority="CRITICAL">
+  <rule key="DMI_NONSERIALIZABLE_OBJECT_WRITTEN">
+<priority>CRITICAL</priority>
     <name><![CDATA[Dodgy - Non serializable object written to ObjectOutput]]></name>
     <configKey><![CDATA[DMI_NONSERIALIZABLE_OBJECT_WRITTEN]]></configKey>
     
@@ -3567,7 +3874,8 @@ This code seems to be passing a non-serializable object to the ObjectOutput.writ
 If the object is, indeed, non-serializable, an error will result.
 </p>]]></description>
   </rule>
-  <rule key="VA_FORMAT_STRING_NO_PREVIOUS_ARGUMENT" priority="CRITICAL">
+  <rule key="VA_FORMAT_STRING_NO_PREVIOUS_ARGUMENT">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - No previous argument for format string]]></name>
     <configKey><![CDATA[VA_FORMAT_STRING_NO_PREVIOUS_ARGUMENT]]></configKey>
     
@@ -3581,7 +3889,8 @@ For example,
 <p>would throw a MissingFormatArgumentException when executed.
 </p>]]></description>
   </rule>
-  <rule key="VA_FORMAT_STRING_BAD_CONVERSION" priority="CRITICAL">
+  <rule key="VA_FORMAT_STRING_BAD_CONVERSION">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - The type of a supplied argument doesn't match format specifier]]></name>
     <configKey><![CDATA[VA_FORMAT_STRING_BAD_CONVERSION]]></configKey>
     
@@ -3592,7 +3901,8 @@ For example, <code>String.format("%d", "1")</code> will generate an exception, s
 the String "1" is incompatible with the format specifier %d.
 </p>]]></description>
   </rule>
-  <rule key="VA_FORMAT_STRING_BAD_CONVERSION_TO_BOOLEAN" priority="MAJOR">
+  <rule key="VA_FORMAT_STRING_BAD_CONVERSION_TO_BOOLEAN">
+<priority>MAJOR</priority>
     <name><![CDATA[Dodgy - Non-Boolean argument formatted using %b format specifier]]></name>
     <configKey><![CDATA[VA_FORMAT_STRING_BAD_CONVERSION_TO_BOOLEAN]]></configKey>
     
@@ -3602,7 +3912,8 @@ exception; instead, it will print true for any nonnull value, and false for null
 This feature of format strings is strange, and may not be what you intended.
 </p>]]></description>
   </rule>
-  <rule key="VA_FORMAT_STRING_BAD_CONVERSION_FROM_ARRAY" priority="MAJOR">
+  <rule key="VA_FORMAT_STRING_BAD_CONVERSION_FROM_ARRAY">
+<priority>MAJOR</priority>
     <name><![CDATA[Correctness - Array formatted in useless way using format string]]></name>
     <configKey><![CDATA[VA_FORMAT_STRING_BAD_CONVERSION_FROM_ARRAY]]></configKey>
     
@@ -3613,7 +3924,8 @@ of the array.
 Consider wrapping the array using <code>Arrays.asList(...)</code> before handling it off to a formatted.
 </p>]]></description>
   </rule>
-  <rule key="VA_FORMAT_STRING_ARG_MISMATCH" priority="CRITICAL">
+  <rule key="VA_FORMAT_STRING_ARG_MISMATCH">
+<priority>CRITICAL</priority>
     <name>
       <![CDATA[Correctness - Number of format-string arguments does not correspond to number of placeholders]]></name>
     <configKey><![CDATA[VA_FORMAT_STRING_ARG_MISMATCH]]></configKey>
@@ -3625,7 +3937,8 @@ but the number of arguments passed does not match with the number of
 author intended.
 </p>]]></description>
   </rule>
-  <rule key="VA_FORMAT_STRING_EXTRA_ARGUMENTS_PASSED" priority="MAJOR">
+  <rule key="VA_FORMAT_STRING_EXTRA_ARGUMENTS_PASSED">
+<priority>MAJOR</priority>
     <name><![CDATA[Correctness - More arguments are passed that are actually used in the format string]]></name>
     <configKey><![CDATA[VA_FORMAT_STRING_EXTRA_ARGUMENTS_PASSED]]></configKey>
     
@@ -3636,7 +3949,8 @@ This won't cause a runtime exception, but the code may be silently omitting
 information that was intended to be included in the formatted string.
 </p>]]></description>
   </rule>
-  <rule key="VA_FORMAT_STRING_ILLEGAL" priority="CRITICAL">
+  <rule key="VA_FORMAT_STRING_ILLEGAL">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Illegal format string]]></name>
     <configKey><![CDATA[VA_FORMAT_STRING_ILLEGAL]]></configKey>
     
@@ -3646,7 +3960,8 @@ and a runtime exception will occur when
 this statement is executed.
 </p>]]></description>
   </rule>
-  <rule key="VA_FORMAT_STRING_MISSING_ARGUMENT" priority="CRITICAL">
+  <rule key="VA_FORMAT_STRING_MISSING_ARGUMENT">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Format string references missing argument]]></name>
     <configKey><![CDATA[VA_FORMAT_STRING_MISSING_ARGUMENT]]></configKey>
     
@@ -3656,7 +3971,8 @@ A runtime exception will occur when
 this statement is executed.
 </p>]]></description>
   </rule>
-  <rule key="VA_FORMAT_STRING_BAD_ARGUMENT" priority="CRITICAL">
+  <rule key="VA_FORMAT_STRING_BAD_ARGUMENT">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Format string placeholder incompatible with passed argument]]></name>
     <configKey><![CDATA[VA_FORMAT_STRING_BAD_ARGUMENT]]></configKey>
     
@@ -3672,7 +3988,8 @@ A runtime exception will occur when
 this statement is executed.
 </p>]]></description>
   </rule>
-  <rule key="VA_PRIMITIVE_ARRAY_PASSED_TO_OBJECT_VARARG" priority="CRITICAL">
+  <rule key="VA_PRIMITIVE_ARRAY_PASSED_TO_OBJECT_VARARG">
+<priority>CRITICAL</priority>
     <name>
       <![CDATA[Correctness - Primitive array passed to function expecting a variable number of object arguments]]></name>
     <configKey><![CDATA[VA_PRIMITIVE_ARRAY_PASSED_TO_OBJECT_VARARG]]></configKey>
@@ -3682,7 +3999,8 @@ This code passes a primitive array to a function that takes a variable number of
 This creates an array of length one to hold the primitive array and passes it to the function.
 </p>]]></description>
   </rule>
-  <rule key="BC_EQUALS_METHOD_SHOULD_WORK_FOR_ALL_OBJECTS" priority="CRITICAL">
+  <rule key="BC_EQUALS_METHOD_SHOULD_WORK_FOR_ALL_OBJECTS">
+<priority>CRITICAL</priority>
     <name><![CDATA[Bad practice - Equals method should not assume anything about the type of its argument]]></name>
     <configKey><![CDATA[BC_EQUALS_METHOD_SHOULD_WORK_FOR_ALL_OBJECTS]]></configKey>
     
@@ -3692,7 +4010,8 @@ about the type of <code>o</code>. It should simply return
 false if <code>o</code> is not the same type as <code>this</code>.
 </p>]]></description>
   </rule>
-  <rule key="BC_BAD_CAST_TO_ABSTRACT_COLLECTION" priority="MAJOR">
+  <rule key="BC_BAD_CAST_TO_ABSTRACT_COLLECTION">
+<priority>MAJOR</priority>
     <name><![CDATA[Dodgy - Questionable cast to abstract collection ]]></name>
     <configKey><![CDATA[BC_BAD_CAST_TO_ABSTRACT_COLLECTION]]></configKey>
     
@@ -3704,7 +4023,8 @@ you are casting to. If all you need is to be able
 to iterate through a collection, you don't need to cast it to a Set or List.
 </p>]]></description>
   </rule>
-  <rule key="BC_IMPOSSIBLE_CAST" priority="BLOCKER">
+  <rule key="BC_IMPOSSIBLE_CAST">
+<priority>BLOCKER</priority>
     <name><![CDATA[Correctness - Impossible cast]]></name>
     <configKey><![CDATA[BC_IMPOSSIBLE_CAST]]></configKey>
     
@@ -3712,7 +4032,8 @@ to iterate through a collection, you don't need to cast it to a Set or List.
 This cast will always throw a ClassCastException.
 </p>]]></description>
   </rule>
-  <rule key="NP_NULL_INSTANCEOF" priority="BLOCKER">
+  <rule key="NP_NULL_INSTANCEOF">
+<priority>BLOCKER</priority>
     <name><![CDATA[Correctness - A known null value is checked to see if it is an instance of a type]]></name>
     <configKey><![CDATA[NP_NULL_INSTANCEOF]]></configKey>
     
@@ -3722,7 +4043,8 @@ Although this is safe, make sure it isn't
 an indication of some misunderstanding or some other logic error.
 </p>]]></description>
   </rule>
-  <rule key="BC_IMPOSSIBLE_INSTANCEOF" priority="CRITICAL">
+  <rule key="BC_IMPOSSIBLE_INSTANCEOF">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - instanceof will always return false]]></name>
     <configKey><![CDATA[BC_IMPOSSIBLE_INSTANCEOF]]></configKey>
     
@@ -3731,7 +4053,8 @@ This instanceof test will always return false. Although this is safe, make sure
 an indication of some misunderstanding or some other logic error.
 </p>]]></description>
   </rule>
-  <rule key="BC_VACUOUS_INSTANCEOF" priority="CRITICAL">
+  <rule key="BC_VACUOUS_INSTANCEOF">
+<priority>CRITICAL</priority>
     <name><![CDATA[Dodgy - instanceof will always return true]]></name>
     <configKey><![CDATA[BC_VACUOUS_INSTANCEOF]]></configKey>
     
@@ -3743,7 +4066,8 @@ If you really want to test the value for being null, perhaps it would be clearer
 better to do a null test rather than an instanceof test.
 </p>]]></description>
   </rule>
-  <rule key="BC_UNCONFIRMED_CAST" priority="CRITICAL">
+  <rule key="BC_UNCONFIRMED_CAST">
+<priority>CRITICAL</priority>
     <name><![CDATA[Dodgy - Unchecked/unconfirmed cast]]></name>
     <configKey><![CDATA[BC_UNCONFIRMED_CAST]]></configKey>
     
@@ -3753,7 +4077,8 @@ the type it is being cast to. Ensure that your program logic ensures that this
 cast will not fail.
 </p>]]></description>
   </rule>
-  <rule key="BC_BAD_CAST_TO_CONCRETE_COLLECTION" priority="CRITICAL">
+  <rule key="BC_BAD_CAST_TO_CONCRETE_COLLECTION">
+<priority>CRITICAL</priority>
     <name><![CDATA[Dodgy - Questionable cast to concrete collection]]></name>
     <configKey><![CDATA[BC_BAD_CAST_TO_CONCRETE_COLLECTION]]></configKey>
     
@@ -3766,7 +4091,8 @@ point. Unless you have a particular reason to do so, just use the abstract
 collection class.
 </p>]]></description>
   </rule>
-  <rule key="RE_POSSIBLE_UNINTENDED_PATTERN" priority="CRITICAL">
+  <rule key="RE_POSSIBLE_UNINTENDED_PATTERN">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - "." used for regular expression]]></name>
     <configKey><![CDATA[RE_POSSIBLE_UNINTENDED_PATTERN]]></configKey>
     
@@ -3778,7 +4104,8 @@ s.replaceAll(".", "/") will return a String in which <em>every</em>
 character has been replaced by a / character.
 </p>]]></description>
   </rule>
-  <rule key="RE_BAD_SYNTAX_FOR_REGULAR_EXPRESSION" priority="CRITICAL">
+  <rule key="RE_BAD_SYNTAX_FOR_REGULAR_EXPRESSION">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Invalid syntax for regular expression]]></name>
     <configKey><![CDATA[RE_BAD_SYNTAX_FOR_REGULAR_EXPRESSION]]></configKey>
     
@@ -3788,7 +4115,8 @@ for regular expressions. This statement will throw a PatternSyntaxException when
 executed.
 </p>]]></description>
   </rule>
-  <rule key="RE_CANT_USE_FILE_SEPARATOR_AS_REGULAR_EXPRESSION" priority="CRITICAL">
+  <rule key="RE_CANT_USE_FILE_SEPARATOR_AS_REGULAR_EXPRESSION">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - File.separator used for regular expression]]></name>
     <configKey><![CDATA[RE_CANT_USE_FILE_SEPARATOR_AS_REGULAR_EXPRESSION]]></configKey>
     
@@ -3802,7 +4130,8 @@ regular expression as an escape character. Amoung other options, you can just us
 
 </p>]]></description>
   </rule>
-  <rule key="DLS_OVERWRITTEN_INCREMENT" priority="CRITICAL">
+  <rule key="DLS_OVERWRITTEN_INCREMENT">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Overwritten increment]]></name>
     <configKey><![CDATA[DLS_OVERWRITTEN_INCREMENT]]></configKey>
     
@@ -3812,7 +4141,8 @@ immediately overwrites it. For example, <code>i = i++</code> immediately
 overwrites the incremented value with the original value.
 </p>]]></description>
   </rule>
-  <rule key="ICAST_QUESTIONABLE_UNSIGNED_RIGHT_SHIFT" priority="CRITICAL">
+  <rule key="ICAST_QUESTIONABLE_UNSIGNED_RIGHT_SHIFT">
+<priority>CRITICAL</priority>
     <name><![CDATA[Dodgy - Unsigned right shift cast to short/byte]]></name>
     <configKey><![CDATA[ICAST_QUESTIONABLE_UNSIGNED_RIGHT_SHIFT]]></configKey>
     
@@ -3823,7 +4153,8 @@ Since the upper bits are discarded, there may be no difference between
 a signed and unsigned right shift (depending upon the size of the shift).
 </p>]]></description>
   </rule>
-  <rule key="ICAST_BAD_SHIFT_AMOUNT" priority="CRITICAL">
+  <rule key="ICAST_BAD_SHIFT_AMOUNT">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Integer shift by an amount not in the range 0..31]]></name>
     <configKey><![CDATA[ICAST_BAD_SHIFT_AMOUNT]]></configKey>
     
@@ -3835,7 +4166,8 @@ value to decide how much to shift by. This probably isn't want was expected,
 and it at least confusing.
 </p>]]></description>
   </rule>
-  <rule key="IM_MULTIPLYING_RESULT_OF_IREM" priority="CRITICAL">
+  <rule key="IM_MULTIPLYING_RESULT_OF_IREM">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Integer multiply of result of integer remainder]]></name>
     <configKey><![CDATA[IM_MULTIPLYING_RESULT_OF_IREM]]></configKey>
     
@@ -3845,7 +4177,8 @@ Be sure you don't have your operator precedence confused. For example
 i % 60 * 1000 is (i % 60) * 1000, not i % (60 * 1000).
 </p>]]></description>
   </rule>
-  <rule key="DMI_INVOKING_HASHCODE_ON_ARRAY" priority="CRITICAL">
+  <rule key="DMI_INVOKING_HASHCODE_ON_ARRAY">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Invocation of hashCode on an array]]></name>
     <configKey><![CDATA[DMI_INVOKING_HASHCODE_ON_ARRAY]]></configKey>
     
@@ -3858,7 +4191,8 @@ use <code>java.util.Arrays.hashCode(a)</code>.
 
 </p>]]></description>
   </rule>
-  <rule key="DMI_INVOKING_TOSTRING_ON_ARRAY" priority="CRITICAL">
+  <rule key="DMI_INVOKING_TOSTRING_ON_ARRAY">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Invocation of toString on an array]]></name>
     <configKey><![CDATA[DMI_INVOKING_TOSTRING_ON_ARRAY]]></configKey>
     
@@ -3868,7 +4202,8 @@ such as [C@16f0472. Consider using Arrays.toString to convert the array into a r
 String that gives the contents of the array. See Programming Puzzlers, chapter 3, puzzle 12.
 </p>]]></description>
   </rule>
-  <rule key="DMI_INVOKING_TOSTRING_ON_ANONYMOUS_ARRAY" priority="CRITICAL">
+  <rule key="DMI_INVOKING_TOSTRING_ON_ANONYMOUS_ARRAY">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Invocation of toString on an array]]></name>
     <configKey><![CDATA[DMI_INVOKING_TOSTRING_ON_ANONYMOUS_ARRAY]]></configKey>
     
@@ -3878,7 +4213,8 @@ such as [C@16f0472. Consider using Arrays.toString to convert the array into a r
 String that gives the contents of the array. See Programming Puzzlers, chapter 3, puzzle 12.
 </p>]]></description>
   </rule>
-  <rule key="IM_AVERAGE_COMPUTATION_COULD_OVERFLOW" priority="CRITICAL">
+  <rule key="IM_AVERAGE_COMPUTATION_COULD_OVERFLOW">
+<priority>CRITICAL</priority>
     <name><![CDATA[Dodgy - Computation of average could overflow]]></name>
     <configKey><![CDATA[IM_AVERAGE_COMPUTATION_COULD_OVERFLOW]]></configKey>
     
@@ -3896,7 +4232,8 @@ in the JDK libraries, and Joshua Bloch
 publicized the bug pattern</a>.
 </p>]]></description>
   </rule>
-  <rule key="IM_BAD_CHECK_FOR_ODD" priority="CRITICAL">
+  <rule key="IM_BAD_CHECK_FOR_ODD">
+<priority>CRITICAL</priority>
     <name><![CDATA[Dodgy - Check for oddness that won't work for negative numbers ]]></name>
     <configKey><![CDATA[IM_BAD_CHECK_FOR_ODD]]></configKey>
     
@@ -3906,7 +4243,8 @@ for negative numbers (e.g., (-5) % 2 == -1). If this code is intending to check
 for oddness, consider using x &amp; 1 == 1, or x % 2 != 0.
 </p>]]></description>
   </rule>
-  <rule key="DMI_HARDCODED_ABSOLUTE_FILENAME" priority="CRITICAL">
+  <rule key="DMI_HARDCODED_ABSOLUTE_FILENAME">
+<priority>CRITICAL</priority>
     <name><![CDATA[Dodgy - Code contains a hard coded reference to an absolute pathname]]></name>
     <configKey><![CDATA[DMI_HARDCODED_ABSOLUTE_FILENAME]]></configKey>
     
@@ -3914,7 +4252,8 @@ for oddness, consider using x &amp; 1 == 1, or x % 2 != 0.
 (e.g., <code>new File("/home/dannyc/workspace/j2ee/src/share/com/sun/enterprise/deployment");</code>
 </p>]]></description>
   </rule>
-  <rule key="DMI_BAD_MONTH" priority="CRITICAL">
+  <rule key="DMI_BAD_MONTH">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Bad constant value for month]]></name>
     <configKey><![CDATA[DMI_BAD_MONTH]]></configKey>
     
@@ -3923,7 +4262,8 @@ This code passes a constant month
 value outside the expected range of 0..11 to a method.
 </p>]]></description>
   </rule>
-  <rule key="DMI_USELESS_SUBSTRING" priority="CRITICAL">
+  <rule key="DMI_USELESS_SUBSTRING">
+<priority>CRITICAL</priority>
     <name><![CDATA[Dodgy - Invocation of substring(0), which returns the original value]]></name>
     <configKey><![CDATA[DMI_USELESS_SUBSTRING]]></configKey>
     
@@ -3931,7 +4271,8 @@ value outside the expected range of 0..11 to a method.
 This code invokes substring(0) on a String, which returns the original value.
 </p>]]></description>
   </rule>
-  <rule key="DMI_CALLING_NEXT_FROM_HASNEXT" priority="CRITICAL">
+  <rule key="DMI_CALLING_NEXT_FROM_HASNEXT">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - hasNext method invokes next]]></name>
     <configKey><![CDATA[DMI_CALLING_NEXT_FROM_HASNEXT]]></configKey>
     
@@ -3941,7 +4282,8 @@ since the hasNext() method is not supposed to change the state of the iterator,
 and the next method is supposed to change the state of the iterator.
 </p>]]></description>
   </rule>
-  <rule key="SWL_SLEEP_WITH_LOCK_HELD" priority="CRITICAL">
+  <rule key="SWL_SLEEP_WITH_LOCK_HELD">
+<priority>CRITICAL</priority>
     <name><![CDATA[Multithreaded correctness - Method calls Thread.sleep() with a lock held]]></name>
     <configKey><![CDATA[SWL_SLEEP_WITH_LOCK_HELD]]></configKey>
     
@@ -3953,7 +4295,8 @@ and the next method is supposed to change the state of the iterator.
       to run.
       </p>]]></description>
   </rule>
-  <rule key="DB_DUPLICATE_BRANCHES" priority="CRITICAL">
+  <rule key="DB_DUPLICATE_BRANCHES">
+<priority>CRITICAL</priority>
     <name><![CDATA[Dodgy - Method uses the same code for two branches]]></name>
     <configKey><![CDATA[DB_DUPLICATE_BRANCHES]]></configKey>
     
@@ -3962,7 +4305,8 @@ and the next method is supposed to change the state of the iterator.
        Check to ensure that this isn't a coding mistake.
       </p>]]></description>
   </rule>
-  <rule key="DB_DUPLICATE_SWITCH_CLAUSES" priority="CRITICAL">
+  <rule key="DB_DUPLICATE_SWITCH_CLAUSES">
+<priority>CRITICAL</priority>
     <name><![CDATA[Dodgy - Method uses the same code for two switch clauses]]></name>
     <configKey><![CDATA[DB_DUPLICATE_SWITCH_CLAUSES]]></configKey>
     
@@ -3972,7 +4316,8 @@ and the next method is supposed to change the state of the iterator.
        a coding mistake.
       </p>]]></description>
   </rule>
-  <rule key="XFB_XML_FACTORY_BYPASS" priority="CRITICAL">
+  <rule key="XFB_XML_FACTORY_BYPASS">
+<priority>CRITICAL</priority>
     <name><![CDATA[Dodgy - Method directly allocates a specific implementation of xml interfaces]]></name>
     <configKey><![CDATA[XFB_XML_FACTORY_BYPASS]]></configKey>
     
@@ -3989,7 +4334,8 @@ and the next method is supposed to change the state of the iterator.
       </ul>
       <p>for details.</p>]]></description>
   </rule>
-  <rule key="CI_CONFUSED_INHERITANCE" priority="MINOR">
+  <rule key="CI_CONFUSED_INHERITANCE">
+<priority>MINOR</priority>
     <name><![CDATA[Dodgy - Class is final but declares protected field]]></name>
     <configKey><![CDATA[CI_CONFUSED_INHERITANCE]]></configKey>
     
@@ -4000,7 +4346,8 @@ and the next method is supposed to change the state of the iterator.
       use for the field.
       </p>]]></description>
   </rule>
-  <rule key="QBA_QUESTIONABLE_BOOLEAN_ASSIGNMENT" priority="CRITICAL">
+  <rule key="QBA_QUESTIONABLE_BOOLEAN_ASSIGNMENT">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Method assigns boolean literal in boolean expression]]></name>
     <configKey><![CDATA[QBA_QUESTIONABLE_BOOLEAN_ASSIGNMENT]]></configKey>
     
@@ -4010,7 +4357,8 @@ and the next method is supposed to change the state of the iterator.
       ==, not an assignment using =.
       </p>]]></description>
   </rule>
-  <rule key="GC_UNCHECKED_TYPE_IN_GENERIC_CALL" priority="CRITICAL">
+  <rule key="GC_UNCHECKED_TYPE_IN_GENERIC_CALL">
+<priority>CRITICAL</priority>
     <name><![CDATA[Bad practice - Unchecked type in generic call]]></name>
     <configKey><![CDATA[GC_UNCHECKED_TYPE_IN_GENERIC_CALL]]></configKey>
     
@@ -4022,7 +4370,8 @@ and the next method is supposed to change the state of the iterator.
        object being passed as a parameter is of an appropriate type.
        </p>]]></description>
   </rule>
-  <rule key="GC_UNRELATED_TYPES" priority="CRITICAL">
+  <rule key="GC_UNRELATED_TYPES">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - No relationship between generic parameter and method argument]]></name>
     <configKey><![CDATA[GC_UNRELATED_TYPES]]></configKey>
     
@@ -4050,7 +4399,8 @@ and the next method is supposed to change the state of the iterator.
        <code>Foo</code> class) used to perform the equality checks.
        </p>]]></description>
   </rule>
-  <rule key="DMI_COLLECTIONS_SHOULD_NOT_CONTAIN_THEMSELVES" priority="CRITICAL">
+  <rule key="DMI_COLLECTIONS_SHOULD_NOT_CONTAIN_THEMSELVES">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Collections should not contain themselves]]></name>
     <configKey><![CDATA[DMI_COLLECTIONS_SHOULD_NOT_CONTAIN_THEMSELVES]]></configKey>
     
@@ -4060,7 +4410,8 @@ problems if it were true (such as the computation of the hash code resulting in
 It is likely that the wrong value is being passed as a parameter.
        </p>]]></description>
   </rule>
-  <rule key="DMI_VACUOUS_SELF_COLLECTION_CALL" priority="CRITICAL">
+  <rule key="DMI_VACUOUS_SELF_COLLECTION_CALL">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Vacuous call to collections]]></name>
     <configKey><![CDATA[DMI_VACUOUS_SELF_COLLECTION_CALL]]></configKey>
     
@@ -4068,7 +4419,8 @@ It is likely that the wrong value is being passed as a parameter.
 always be true, and <code>c.retainAll(c)</code> should have no effect.
        </p>]]></description>
   </rule>
-  <rule key="DMI_USING_REMOVEALL_TO_CLEAR_COLLECTION" priority="CRITICAL">
+  <rule key="DMI_USING_REMOVEALL_TO_CLEAR_COLLECTION">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Don't use removeAll to clear a collection]]></name>
     <configKey><![CDATA[DMI_USING_REMOVEALL_TO_CLEAR_COLLECTION]]></configKey>
     
@@ -4076,7 +4428,8 @@ always be true, and <code>c.retainAll(c)</code> should have no effect.
 not <code>c.removeAll(c)</code>.
        </p>]]></description>
   </rule>
-  <rule key="STCAL_STATIC_CALENDAR_INSTANCE" priority="CRITICAL">
+  <rule key="STCAL_STATIC_CALENDAR_INSTANCE">
+<priority>CRITICAL</priority>
     <name><![CDATA[Multithreaded correctness - Static Calendar]]></name>
     <configKey><![CDATA[STCAL_STATIC_CALENDAR_INSTANCE]]></configKey>
     
@@ -4089,7 +4442,8 @@ random ArrayIndexOutOfBoundsExceptions or IndexOutOfBoundsExceptions in sun.util
 <p>For more information on this see <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6231579">Sun Bug #6231579</a>
 and <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6178997">Sun Bug #6178997</a>.</p>]]></description>
   </rule>
-  <rule key="STCAL_INVOKE_ON_STATIC_CALENDAR_INSTANCE" priority="CRITICAL">
+  <rule key="STCAL_INVOKE_ON_STATIC_CALENDAR_INSTANCE">
+<priority>CRITICAL</priority>
     <name><![CDATA[Multithreaded correctness - Call to static Calendar]]></name>
     <configKey><![CDATA[STCAL_INVOKE_ON_STATIC_CALENDAR_INSTANCE]]></configKey>
     
@@ -4099,7 +4453,8 @@ field. This looks suspicous.</p>
 <p>For more information on this see <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6231579">Sun Bug #6231579</a>
 and <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6178997">Sun Bug #6178997</a>.</p>]]></description>
   </rule>
-  <rule key="STCAL_STATIC_SIMPLE_DATE_FORMAT_INSTANCE" priority="CRITICAL">
+  <rule key="STCAL_STATIC_SIMPLE_DATE_FORMAT_INSTANCE">
+<priority>CRITICAL</priority>
     <name><![CDATA[Multithreaded correctness - Static DateFormat]]></name>
     <configKey><![CDATA[STCAL_STATIC_SIMPLE_DATE_FORMAT_INSTANCE]]></configKey>
     
@@ -4111,7 +4466,8 @@ application.</p>
 <p>For more information on this see <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6231579">Sun Bug #6231579</a>
 and <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6178997">Sun Bug #6178997</a>.</p>]]></description>
   </rule>
-  <rule key="STCAL_INVOKE_ON_STATIC_DATE_FORMAT_INSTANCE" priority="CRITICAL">
+  <rule key="STCAL_INVOKE_ON_STATIC_DATE_FORMAT_INSTANCE">
+<priority>CRITICAL</priority>
     <name><![CDATA[Multithreaded correctness - Call to static DateFormat]]></name>
     <configKey><![CDATA[STCAL_INVOKE_ON_STATIC_DATE_FORMAT_INSTANCE]]></configKey>
     
@@ -4121,7 +4477,8 @@ field. This looks suspicous.</p>
 <p>For more information on this see <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6231579">Sun Bug #6231579</a>
 and <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6178997">Sun Bug #6178997</a>.</p>]]></description>
   </rule>
-  <rule key="TQ_ALWAYS_VALUE_USED_WHERE_NEVER_REQUIRED" priority="CRITICAL">
+  <rule key="TQ_ALWAYS_VALUE_USED_WHERE_NEVER_REQUIRED">
+<priority>CRITICAL</priority>
     <name>
       <![CDATA[Correctness - Value annotated as carrying a type qualifier used where a value that must not carry that qualifier is required]]></name>
     <configKey><![CDATA[TQ_ALWAYS_VALUE_USED_WHERE_NEVER_REQUIRED]]></configKey>
@@ -4152,7 +4509,8 @@ public @NonNegative Integer example(@Negative Integer value) {
 </pre>
         </blockquote>]]></description>
   </rule>
-  <rule key="TQ_NEVER_VALUE_USED_WHERE_ALWAYS_REQUIRED" priority="CRITICAL">
+  <rule key="TQ_NEVER_VALUE_USED_WHERE_ALWAYS_REQUIRED">
+<priority>CRITICAL</priority>
     <name>
       <![CDATA[Correctness - Value annotated as never carrying a type qualifier used where value carrying that qualifier is required]]></name>
     <configKey><![CDATA[TQ_NEVER_VALUE_USED_WHERE_ALWAYS_REQUIRED]]></configKey>
@@ -4172,7 +4530,8 @@ public @NonNegative Integer example(@Negative Integer value) {
         TODO: example
         </p>]]></description>
   </rule>
-  <rule key="TQ_MAYBE_SOURCE_VALUE_REACHES_ALWAYS_SINK" priority="CRITICAL">
+  <rule key="TQ_MAYBE_SOURCE_VALUE_REACHES_ALWAYS_SINK">
+<priority>CRITICAL</priority>
     <name>
       <![CDATA[Correctness - Value that might not carry a type qualifier is always used in a way requires that type qualifier]]></name>
     <configKey><![CDATA[TQ_MAYBE_SOURCE_VALUE_REACHES_ALWAYS_SINK]]></configKey>
@@ -4183,7 +4542,8 @@ public @NonNegative Integer example(@Negative Integer value) {
        in a way that requires values denoted by that type qualifier.
       </p>]]></description>
   </rule>
-  <rule key="TQ_MAYBE_SOURCE_VALUE_REACHES_NEVER_SINK" priority="CRITICAL">
+  <rule key="TQ_MAYBE_SOURCE_VALUE_REACHES_NEVER_SINK">
+<priority>CRITICAL</priority>
     <name>
       <![CDATA[Correctness - Value that might carry a type qualifier is always used in a way prohibits it from having that type qualifier]]></name>
     <configKey><![CDATA[TQ_MAYBE_SOURCE_VALUE_REACHES_NEVER_SINK]]></configKey>
@@ -4194,7 +4554,8 @@ public @NonNegative Integer example(@Negative Integer value) {
        in a way that prohibits values denoted by that type qualifier.
       </p>]]></description>
   </rule>
-  <rule key="TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_NEVER_SINK" priority="CRITICAL">
+  <rule key="TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_NEVER_SINK">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Explicit annotation inconsistent with use]]></name>
     <configKey><![CDATA[TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_NEVER_SINK]]></configKey>
     
@@ -4204,7 +4565,8 @@ public @NonNegative Integer example(@Negative Integer value) {
        Either the usage or the annotation is incorrect.
       </p>]]></description>
   </rule>
-  <rule key="TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_ALWAYS_SINK" priority="CRITICAL">
+  <rule key="TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_ALWAYS_SINK">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Explicit annotation inconsistent with use]]></name>
     <configKey><![CDATA[TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_ALWAYS_SINK]]></configKey>
     
@@ -4214,7 +4576,8 @@ public @NonNegative Integer example(@Negative Integer value) {
        Either the usage or the annotation is incorrect.
       </p>]]></description>
   </rule>
-  <rule key="IO_APPENDING_TO_OBJECT_OUTPUT_STREAM" priority="CRITICAL">
+  <rule key="IO_APPENDING_TO_OBJECT_OUTPUT_STREAM">
+<priority>CRITICAL</priority>
     <name><![CDATA[Correctness - Doomed attempt to append to an object output stream]]></name>
     <configKey><![CDATA[IO_APPENDING_TO_OBJECT_OUTPUT_STREAM]]></configKey>
     
@@ -4232,7 +4595,8 @@ public @NonNegative Integer example(@Negative Integer value) {
       TODO: example.
       </p>]]></description>
   </rule>
-  <rule key="WL_USING_GETCLASS_RATHER_THAN_CLASS_LITERAL" priority="CRITICAL">
+  <rule key="WL_USING_GETCLASS_RATHER_THAN_CLASS_LITERAL">
+<priority>CRITICAL</priority>
     <name><![CDATA[Multithreaded correctness - Sychronization on getClass rather than class literal]]></name>
     <configKey><![CDATA[WL_USING_GETCLASS_RATHER_THAN_CLASS_LITERAL]]></configKey>
     
@@ -4262,7 +4626,8 @@ public @NonNegative Integer example(@Negative Integer value) {
      </pre></p>
       <p>Bug pattern contributed by Jason Mehrens</p>]]></description>
   </rule>
-  <rule key="SF_SWITCH_FALLTHROUGH" priority="CRITICAL">
+  <rule key="SF_SWITCH_FALLTHROUGH">
+<priority>CRITICAL</priority>
     <name>
       <![CDATA[Switch statement found where one case falls through to the next case]]></name>
     <configKey><![CDATA[SF_SWITCH_FALLTHROUGH]]></configKey>
@@ -4272,7 +4637,8 @@ public @NonNegative Integer example(@Negative Integer value) {
       through to the next case. Usually you need to end this case with a break or return.
       </p>]]></description>
   </rule>  
-  <rule key="SF_SWITCH_NO_DEFAULT" priority="MAJOR">
+  <rule key="SF_SWITCH_NO_DEFAULT">
+<priority>MAJOR</priority>
     <name>
       <![CDATA[Switch statement found where default case is missing]]></name>
     <configKey><![CDATA[SF_SWITCH_NO_DEFAULT]]></configKey>
@@ -4282,7 +4648,8 @@ public @NonNegative Integer example(@Negative Integer value) {
       Usually you need to provide a default case.
       </p>]]></description>
   </rule> 
-  <rule key="SF_DEAD_STORE_DUE_TO_SWITCH_FALLTHROUGH" priority="CRITICAL">
+  <rule key="SF_DEAD_STORE_DUE_TO_SWITCH_FALLTHROUGH">
+<priority>CRITICAL</priority>
     <name>
       <![CDATA[Dead store due to switch statement fall through]]></name>
     <configKey><![CDATA[SF_DEAD_STORE_DUE_TO_SWITCH_FALLTHROUGH]]></configKey>
@@ -4293,7 +4660,8 @@ public @NonNegative Integer example(@Negative Integer value) {
       break or return at the end of the previous case.
       </p>]]></description>
   </rule>
-  <rule key="SF_DEAD_STORE_DUE_TO_SWITCH_FALLTHROUGH_TO_THROW" priority="CRITICAL">
+  <rule key="SF_DEAD_STORE_DUE_TO_SWITCH_FALLTHROUGH_TO_THROW">
+<priority>CRITICAL</priority>
     <name>
       <![CDATA[Dead store due to switch statement fall through to throw]]></name>
     <configKey><![CDATA[SF_DEAD_STORE_DUE_TO_SWITCH_FALLTHROUGH_TO_THROW]]></configKey>
@@ -4303,7 +4671,8 @@ public @NonNegative Integer example(@Negative Integer value) {
       It is likely that you forgot to put a break or return at the end of the previous case.
       </p>]]></description>
   </rule>
-  <rule key="NM_CLASS_NAMING_CONVENTION" priority="MAJOR">
+  <rule key="NM_CLASS_NAMING_CONVENTION">
+<priority>MAJOR</priority>
     <name>
       <![CDATA[Class names should start with an upper case letter]]></name>
     <configKey><![CDATA[NM_CLASS_NAMING_CONVENTION]]></configKey>
@@ -4314,7 +4683,8 @@ public @NonNegative Integer example(@Negative Integer value) {
       (unless the abbreviation is much more widely used than the long form, such as URL or HTML).
       </p>]]></description>
   </rule> 
-  <rule key="NM_FIELD_NAMING_CONVENTION" priority="MAJOR">
+  <rule key="NM_FIELD_NAMING_CONVENTION">
+<priority>MAJOR</priority>
     <name>
       <![CDATA[Field names should start with a lower case letter]]></name>
     <configKey><![CDATA[NM_FIELD_NAMING_CONVENTION]]></configKey>
@@ -4324,7 +4694,8 @@ public @NonNegative Integer example(@Negative Integer value) {
       with a lowercase first letter and the first letters of subsequent words capitalized.
       </p>]]></description>
   </rule> 
-  <rule key="NM_METHOD_NAMING_CONVENTION" priority="MAJOR">
+  <rule key="NM_METHOD_NAMING_CONVENTION">
+<priority>MAJOR</priority>
     <name>
       <![CDATA[Method names should start with a lower case letter]]></name>
     <configKey><![CDATA[NM_METHOD_NAMING_CONVENTION]]></configKey>
@@ -4334,7 +4705,8 @@ public @NonNegative Integer example(@Negative Integer value) {
       with the first letter of each internal word capitalized.
       </p>]]></description>
   </rule>  
-  <rule key="SE_BAD_FIELD" priority="MAJOR">
+  <rule key="SE_BAD_FIELD">
+<priority>MAJOR</priority>
     <name>
       <![CDATA[Non-transient non-serializable instance field in serializable class]]></name>
     <configKey><![CDATA[SE_BAD_FIELD]]></configKey>
@@ -4346,7 +4718,8 @@ public @NonNegative Integer example(@Negative Integer value) {
       Objects of this class will not be deserialized correctly if a non-Serializable object is stored in this field.
       </p>]]></description>
   </rule>    
-  <rule key="NM_BAD_EQUAL" priority="CRITICAL">
+  <rule key="NM_BAD_EQUAL">
+<priority>CRITICAL</priority>
     <name>
       <![CDATA[Class defines equal(Object); should it be equals(Object)?]]></name>
     <configKey><![CDATA[NM_BAD_EQUAL]]></configKey>
@@ -4357,7 +4730,8 @@ public @NonNegative Integer example(@Negative Integer value) {
       in <code>java.lang.Object</code>, which is probably what was intended.
       </p>]]></description>
   </rule>         
- <rule key="NM_LCASE_HASHCODE" priority="CRITICAL">
+ <rule key="NM_LCASE_HASHCODE">
+<priority>CRITICAL</priority>
     <name>
       <![CDATA[Class defines hashcode(); should it be hashCode()?]]></name>
     <configKey><![CDATA[NM_LCASE_HASHCODE]]></configKey>
@@ -4368,7 +4742,8 @@ public @NonNegative Integer example(@Negative Integer value) {
       method in <code>java.lang.Object</code>, which is probably what was intended.
       </p>]]></description>
   </rule>  
- <rule key="NM_LCASE_TOSTRING" priority="MAJOR">
+ <rule key="NM_LCASE_TOSTRING">
+<priority>MAJOR</priority>
     <name>
       <![CDATA[Class defines tostring(); should it be toString()?]]></name>
     <configKey><![CDATA[NM_LCASE_TOSTRING]]></configKey>
@@ -4379,7 +4754,8 @@ public @NonNegative Integer example(@Negative Integer value) {
       method in <code>java.lang.Object</code>, which is probably what was intended.
       </p>]]></description>
   </rule>   
- <rule key="NM_LCASE_TOSTRING" priority="MAJOR">
+ <rule key="NM_LCASE_TOSTRING">
+<priority>MAJOR</priority>
     <name>
       <![CDATA[Class defines tostring(); should it be toString()?]]></name>
     <configKey><![CDATA[NM_LCASE_TOSTRING]]></configKey>
@@ -4391,7 +4767,8 @@ public @NonNegative Integer example(@Negative Integer value) {
       </p>]]></description>
   </rule>
 
-  <rule key="BAC_BAD_APPLET_CONSTRUCTOR" priority="INFO">
+  <rule key="BAC_BAD_APPLET_CONSTRUCTOR">
+<priority>INFO</priority>
     <name><![CDATA[Experimental - Bad Applet Constructor relies on uninitialized AppletStub]]></name>
     <configKey><![CDATA[BAC_BAD_APPLET_CONSTRUCTOR]]></configKey>
     <description><![CDATA[<p>
@@ -4401,7 +4778,8 @@ public @NonNegative Integer example(@Negative Integer value) {
       </p>]]></description>
   </rule>
 
-  <rule key="UOE_USE_OBJECT_EQUALS" priority="INFO">
+  <rule key="UOE_USE_OBJECT_EQUALS">
+<priority>INFO</priority>
     <name><![CDATA[Experimental - Calls to equals on a final class that doesn't override Object's equals method]]></name>
     <configKey><![CDATA[UOE_USE_OBJECT_EQUALS]]></configKey>
     <description><![CDATA[<p>
@@ -4416,7 +4794,8 @@ public @NonNegative Integer example(@Negative Integer value) {
       </p>]]></description>
   </rule>
 
-  <rule key="CD_CIRCULAR_DEPENDENCY" priority="INFO">
+  <rule key="CD_CIRCULAR_DEPENDENCY">
+<priority>INFO</priority>
     <name><![CDATA[Experimental - Test for circular dependencies among classes]]></name>
     <configKey><![CDATA[CD_CIRCULAR_DEPENDENCY]]></configKey>
     <description><![CDATA[<p>
@@ -4426,7 +4805,8 @@ public @NonNegative Integer example(@Negative Integer value) {
       </p>]]></description>
   </rule>
 
-  <rule key="IMA_INEFFICIENT_MEMBER_ACCESS" priority="INFO">
+  <rule key="IMA_INEFFICIENT_MEMBER_ACCESS">
+<priority>INFO</priority>
     <name><![CDATA[Experimental - Method accesses a private member variable of owning class]]></name>
     <configKey><![CDATA[IMA_INEFFICIENT_MEMBER_ACCESS]]></configKey>
     <description><![CDATA[<p>
@@ -4437,7 +4817,8 @@ public @NonNegative Integer example(@Negative Integer value) {
       </p>]]></description>
   </rule>
 
-  <rule key="USM_USELESS_SUBCLASS_METHOD" priority="INFO">
+  <rule key="USM_USELESS_SUBCLASS_METHOD">
+<priority>INFO</priority>
     <name><![CDATA[Experimental - Method superfluously delegates to parent class method]]></name>
     <configKey><![CDATA[USM_USELESS_SUBCLASS_METHOD]]></configKey>
     <description><![CDATA[<p>
@@ -4446,7 +4827,8 @@ public @NonNegative Integer example(@Negative Integer value) {
       </p>]]></description>
   </rule>
 
-  <rule key="USM_USELESS_ABSTRACT_METHOD" priority="INFO">
+  <rule key="USM_USELESS_ABSTRACT_METHOD">
+<priority>INFO</priority>
     <name><![CDATA[Experimental - Abstract Method is already defined in implemented interface]]></name>
     <configKey><![CDATA[USM_USELESS_ABSTRACT_METHOD]]></configKey>
     <description><![CDATA[<p>
@@ -4455,7 +4837,8 @@ public @NonNegative Integer example(@Negative Integer value) {
       </p>]]></description>
   </rule>
 
-  <rule key="OBL_UNSATISFIED_OBLIGATION" priority="INFO">
+  <rule key="OBL_UNSATISFIED_OBLIGATION">
+<priority>INFO</priority>
     <name><![CDATA[Experimental - Method may fail to clean up stream or resource]]></name>
     <configKey><![CDATA[OBL_UNSATISFIED_OBLIGATION]]></configKey>
     <description><![CDATA[<p>
@@ -4494,7 +4877,8 @@ public @NonNegative Integer example(@Negative Integer value) {
       </p>]]></description>
   </rule>
 
-  <rule key="FB_UNEXPECTED_WARNING" priority="INFO">
+  <rule key="FB_UNEXPECTED_WARNING">
+<priority>INFO</priority>
     <name><![CDATA[Experimental - Unexpected/undesired warning from FindBugs]]></name>
     <configKey><![CDATA[FB_UNEXPECTED_WARNING]]></configKey>
     <description><![CDATA[<p>
@@ -4503,7 +4887,8 @@ public @NonNegative Integer example(@Negative Integer value) {
       </p>]]></description>
   </rule>
 
-  <rule key="FB_MISSING_EXPECTED_WARNING" priority="INFO">
+  <rule key="FB_MISSING_EXPECTED_WARNING">
+<priority>INFO</priority>
     <name><![CDATA[Experimental - Missing expected or desired warning from FindBugs]]></name>
     <configKey><![CDATA[FB_MISSING_EXPECTED_WARNING]]></configKey>
     <description><![CDATA[<p>
@@ -4512,7 +4897,8 @@ public @NonNegative Integer example(@Negative Integer value) {
       </p>]]></description>
   </rule>
 
-  <rule key="LG_LOST_LOGGER_DUE_TO_WEAK_REFERENCE" priority="INFO">
+  <rule key="LG_LOST_LOGGER_DUE_TO_WEAK_REFERENCE">
+<priority>INFO</priority>
     <name><![CDATA[Experimental - Potential lost logger changes due to weak reference in OpenJDK]]></name>
     <configKey><![CDATA[LG_LOST_LOGGER_DUE_TO_WEAK_REFERENCE]]></configKey>
     <description><![CDATA[<p>
index c8d5c5fa47369f6476f4df26168b1ece0ce9dc6c..dc94cd194430d3114fb76c4e17a9469cf9f94447 100644 (file)
@@ -1,6 +1,7 @@
 <rules>
   <!-- PMD 4.2.5 -->
-  <rule key="AvoidThrowingNewInstanceOfSameException" priority="MAJOR">
+  <rule key="AvoidThrowingNewInstanceOfSameException" >
+<priority>MAJOR</priority>
     <name><![CDATA[Strict Exception - Avoid throwing new instance of same exception]]></name>
     <configKey>rulesets/strictexception.xml/AvoidThrowingNewInstanceOfSameException</configKey>
     
@@ -20,7 +21,8 @@ public class Foo {
 </pre>]]></description>
   </rule>
 
-  <rule key="CallSuperFirst" priority="MAJOR">
+  <rule key="CallSuperFirst" >
+<priority>MAJOR</priority>
     <name><![CDATA[Android - call super first]]></name>
     <configKey>rulesets/android.xml/CallSuperFirst</configKey>
     
@@ -36,7 +38,8 @@ public class DummyActivity extends Activity {
 </pre>]]></description>
   </rule>
 
-  <rule key="CallSuperLast" priority="MAJOR">
+  <rule key="CallSuperLast" >
+<priority>MAJOR</priority>
     <name><![CDATA[Android - call super last]]></name>
     <configKey>rulesets/android.xml/CallSuperLast</configKey>
 
@@ -52,7 +55,8 @@ public class DummyActivity extends Activity {
 </pre>]]></description>
   </rule>
 
-  <rule key="ProtectLogD" priority="MAJOR">
+  <rule key="ProtectLogD" >
+<priority>MAJOR</priority>
     <name><![CDATA[Android - Protect LOGD]]></name>
     <configKey>rulesets/android.xml/ProtectLogD</configKey>
 
@@ -71,7 +75,8 @@ public class DummyActivity extends Activity {
 </pre>]]></description>
   </rule>
 
-  <rule key="ProtectLogV" priority="MAJOR">
+  <rule key="ProtectLogV" >
+<priority>MAJOR</priority>
     <name><![CDATA[Android - Protect LOGV]]></name>
     <configKey>rulesets/android.xml/ProtectLogV</configKey>
     
@@ -91,7 +96,8 @@ public class DummyActivity extends Activity {
 
 
   <!-- PMD 4.2.3 -->
-  <rule key="EmptyInitializer" priority="MAJOR">
+  <rule key="EmptyInitializer" >
+<priority>MAJOR</priority>
     <name><![CDATA[Basic - Empty Initializer]]></name>
     <configKey>rulesets/basic.xml/EmptyInitializer</configKey>
     
@@ -112,7 +118,8 @@ public class Foo {
 
 
   <!-- PMD 4.2.2 -->
-  <rule key="CyclomaticComplexity" priority="MAJOR">
+  <rule key="CyclomaticComplexity" >
+<priority>MAJOR</priority>
     <name><![CDATA[Code size - cyclomatic complexity]]></name>
     <configKey>rulesets/codesize.xml/CyclomaticComplexity</configKey>
     
@@ -133,7 +140,8 @@ public class Foo {
     </param>
   </rule>
 
-  <rule key="AvoidStringBufferField" priority="MAJOR">
+  <rule key="AvoidStringBufferField" >
+<priority>MAJOR</priority>
     <name><![CDATA[Avoid StringBuffer field]]></name>
     <configKey>rulesets/strings.xml/AvoidStringBufferField</configKey>
     
@@ -146,7 +154,8 @@ class Foo {
 </pre>]]></description>
   </rule>
 
-  <rule key="DoNotThrowExceptionInFinally" priority="MAJOR">
+  <rule key="DoNotThrowExceptionInFinally" >
+<priority>MAJOR</priority>
     <name><![CDATA[Strict Exception - Do not throw exception in finally]]></name>
     <configKey><![CDATA[rulesets/strictexception.xml/DoNotThrowExceptionInFinally]]></configKey>
     
@@ -173,7 +182,8 @@ public class Foo
 ]]></description>
   </rule>
 
-  <rule key="TooManyMethods" priority="MAJOR">
+  <rule key="TooManyMethods" >
+<priority>MAJOR</priority>
     <name><![CDATA[Too many methods]]></name>
     <configKey><![CDATA[rulesets/codesize.xml/TooManyMethods]]></configKey>
     
@@ -185,7 +195,8 @@ public class Foo
     </param>
   </rule>
 
-  <rule key="ReturnEmptyArrayRatherThanNull" priority="MINOR">
+  <rule key="ReturnEmptyArrayRatherThanNull" >
+<priority>MINOR</priority>
     <name><![CDATA[Return empty array rather than null]]></name>
     <configKey><![CDATA[rulesets/design.xml/ReturnEmptyArrayRatherThanNull]]></configKey>
     
@@ -211,7 +222,8 @@ public class Example
 ]]></description>
   </rule>
 
-  <rule key="TooFewBranchesForASwitchStatement" priority="MINOR">
+  <rule key="TooFewBranchesForASwitchStatement" >
+<priority>MINOR</priority>
     <name><![CDATA[Too few branches for a switch statement]]></name>
     <configKey><![CDATA[rulesets/design.xml/TooFewBranchesForASwitchStatement]]></configKey>
     
@@ -237,7 +249,8 @@ public class Foo {
     </param>
   </rule>
 
-  <rule key="AbstractClassWithoutAnyMethod" priority="MAJOR">
+  <rule key="AbstractClassWithoutAnyMethod" >
+<priority>MAJOR</priority>
     <name><![CDATA[Abstract class without any methods]]></name>
     <configKey><![CDATA[rulesets/design.xml/AbstractClassWithoutAnyMethod]]></configKey>
     
@@ -252,7 +265,8 @@ public class abstract Example {
 
   </rule>
 
-  <rule key="DoNotCallGarbageCollectionExplicitly" priority="CRITICAL">
+  <rule key="DoNotCallGarbageCollectionExplicitly" >
+<priority>CRITICAL</priority>
     <name><![CDATA[Do not call garbage collection explicitly]]></name>
     <configKey><![CDATA[rulesets/controversial.xml/DoNotCallGarbageCollectionExplicitly]]></configKey>
     
@@ -279,7 +293,8 @@ public class abstract Example {
 </pre>]]></description>
   </rule>
 
-  <rule key="AvoidMultipleUnaryOperators" priority="MAJOR">
+  <rule key="AvoidMultipleUnaryOperators" >
+<priority>MAJOR</priority>
     <name><![CDATA[Avoid Multiple Unary Operators]]></name>
     <configKey><![CDATA[rulesets/basic.xml/AvoidMultipleUnaryOperators]]></configKey>
     
@@ -307,7 +322,8 @@ int j = -~7;
   </rule>
 
 
-  <rule key="DoubleCheckedLocking" priority="MAJOR">
+  <rule key="DoubleCheckedLocking" >
+<priority>MAJOR</priority>
     <name><![CDATA[Double checked locking]]></name>
     <configKey><![CDATA[rulesets/basic.xml/DoubleCheckedLocking]]></configKey>
     
@@ -330,7 +346,8 @@ public class Foo {
 </pre> ]]></description>
   </rule>
 
-  <rule key="NPathComplexity" priority="MAJOR">
+  <rule key="NPathComplexity" >
+<priority>MAJOR</priority>
     <name><![CDATA[NPath complexity]]></name>
     <configKey><![CDATA[rulesets/codesize.xml/NPathComplexity]]></configKey>
     
@@ -350,7 +367,8 @@ public class Foo {
   </rule>
 
 
-  <rule key="SimplifyBooleanReturns" priority="MINOR">
+  <rule key="SimplifyBooleanReturns" >
+<priority>MINOR</priority>
     <name><![CDATA[Simplify boolean returns]]></name>
     <configKey><![CDATA[rulesets/design.xml/SimplifyBooleanReturns]]></configKey>
     
@@ -374,7 +392,8 @@ public class Foo {
       ]]></description>
   </rule>
 
-  <rule key="SimplifyBooleanExpressions" priority="MAJOR">
+  <rule key="SimplifyBooleanExpressions" >
+<priority>MAJOR</priority>
     <name><![CDATA[Avoid unnecessary comparisons in boolean expressions]]></name>
     <configKey><![CDATA[rulesets/design.xml/SimplifyBooleanExpressions]]></configKey>
     
@@ -392,7 +411,8 @@ public class Bar {
       ]]></description>
   </rule>
   
-  <rule key="SwitchStmtsShouldHaveDefault" priority="MAJOR">
+  <rule key="SwitchStmtsShouldHaveDefault" >
+<priority>MAJOR</priority>
     <name><![CDATA[Switch statements should have default]]></name>
     <configKey><![CDATA[rulesets/design.xml/SwitchStmtsShouldHaveDefault]]></configKey>
     
@@ -411,7 +431,8 @@ public class Foo {
       ]]></description>
   </rule>
 
-  <rule key="DefaultLabelNotLastInSwitchStmt" priority="MAJOR">
+  <rule key="DefaultLabelNotLastInSwitchStmt" >
+<priority>MAJOR</priority>
     <name><![CDATA[Default label not last in switch statement]]></name>
     <configKey><![CDATA[rulesets/design.xml/DefaultLabelNotLastInSwitchStmt]]></configKey>
     
@@ -434,7 +455,8 @@ public class Foo {
   </rule>
 
 
-  <rule key="ClassWithOnlyPrivateConstructorsShouldBeFinal" priority="MAJOR">
+  <rule key="ClassWithOnlyPrivateConstructorsShouldBeFinal" >
+<priority>MAJOR</priority>
     <name><![CDATA[Class with only private constructors should be final]]></name>
     <configKey><![CDATA[rulesets/design.xml/ClassWithOnlyPrivateConstructorsShouldBeFinal]]></configKey>
     
@@ -447,7 +469,8 @@ public class Foo {  //Should be final
   </pre>]]></description>
   </rule>
 
-  <rule key="AvoidFinalLocalVariable" priority="MAJOR">
+  <rule key="AvoidFinalLocalVariable" >
+<priority>MAJOR</priority>
     <name><![CDATA[Avoid Final Local Variable]]></name>
     <configKey><![CDATA[rulesets/controversial.xml/AvoidFinalLocalVariable]]></configKey>
     
@@ -462,7 +485,8 @@ public class MyClass {
   </pre>]]></description>
   </rule>
 
-  <rule key="UnnecessaryParentheses" priority="MINOR">
+  <rule key="UnnecessaryParentheses" >
+<priority>MINOR</priority>
     <name><![CDATA[Unnecessary parentheses]]></name>
     <configKey><![CDATA[rulesets/controversial.xml/UnnecessaryParentheses]]></configKey>
     
@@ -477,7 +501,8 @@ public class Foo {
   </pre>]]></description>
   </rule>
 
-  <rule key="OverrideBothEqualsAndHashcode" priority="CRITICAL">
+  <rule key="OverrideBothEqualsAndHashcode" >
+<priority>CRITICAL</priority>
     <name><![CDATA[Override both equals and hashcode]]></name>
     <configKey><![CDATA[rulesets/basic.xml/OverrideBothEqualsAndHashcode]]></configKey>
     
@@ -511,7 +536,8 @@ public class Foo {
   </rule>
 
 
-  <rule key="UnusedImports" priority="INFO">
+  <rule key="UnusedImports" >
+<priority>INFO</priority>
     <name><![CDATA[Unused imports]]></name>
     <configKey><![CDATA[rulesets/imports.xml/UnusedImports]]></configKey>
     
@@ -524,7 +550,8 @@ public class Foo {}
   </pre>]]></description>
   </rule>
 
-  <rule key="LocalVariableCouldBeFinal" priority="MINOR">
+  <rule key="LocalVariableCouldBeFinal" >
+<priority>MINOR</priority>
     <name><![CDATA[Local variable could be final]]></name>
     <configKey><![CDATA[rulesets/optimizations.xml/LocalVariableCouldBeFinal]]></configKey>
     
@@ -541,7 +568,8 @@ public class Bar {
   </rule>
 
 
-  <rule key="AbstractNaming" priority="MAJOR">
+  <rule key="AbstractNaming" >
+<priority>MAJOR</priority>
     <name><![CDATA[Abstract naming]]></name>
     <configKey><![CDATA[rulesets/naming.xml/AbstractNaming]]></configKey>
     
@@ -553,7 +581,8 @@ public abstract class Foo { // should be AbstractFoo
   </pre>]]></description>
   </rule>
 
-  <rule key="NoPackage" priority="MAJOR">
+  <rule key="NoPackage" >
+<priority>MAJOR</priority>
     <name><![CDATA[No package]]></name>
     <configKey><![CDATA[rulesets/naming.xml/NoPackage]]></configKey>
     
@@ -567,7 +596,8 @@ public class ClassInDefaultPackage {
   </rule>
 
 
-  <rule key="PackageCase" priority="MAJOR">
+  <rule key="PackageCase" >
+<priority>MAJOR</priority>
     <name><![CDATA[Package case]]></name>
     <configKey><![CDATA[rulesets/naming.xml/PackageCase]]></configKey>
     
@@ -580,7 +610,8 @@ public class SomeClass {
 </pre>]]></description>
   </rule>
 
-  <rule key="ByteInstantiation" priority="MAJOR">
+  <rule key="ByteInstantiation" >
+<priority>MAJOR</priority>
     <name><![CDATA[Java5 migration - Byte instantiation]]></name>
     <configKey><![CDATA[rulesets/migrating.xml/ByteInstantiation]]></configKey>
 
@@ -594,7 +625,8 @@ Byte.valueOf(0);
 </pre>]]></description>
   </rule>
 
-  <rule key="ShortInstantiation" priority="MAJOR">
+  <rule key="ShortInstantiation" >
+<priority>MAJOR</priority>
     <name><![CDATA[Java5 migration - Short instantiation]]></name>
     <configKey><![CDATA[rulesets/migrating.xml/ShortInstantiation]]></configKey>
 
@@ -609,7 +641,8 @@ Short.valueOf(0);
   </rule>
 
 
-  <rule key="LongInstantiation" priority="MAJOR">
+  <rule key="LongInstantiation" >
+<priority>MAJOR</priority>
     <name><![CDATA[Java5 migration - Long instantiation]]></name>
     <configKey><![CDATA[rulesets/migrating.xml/LongInstantiation]]></configKey>
 
@@ -623,7 +656,8 @@ Long.valueOf(0);
   </pre>]]></description>
   </rule>
 
-  <rule key="ProperCloneImplementation" priority="CRITICAL">
+  <rule key="ProperCloneImplementation" >
+<priority>CRITICAL</priority>
     <name><![CDATA[Proper clone implementation]]></name>
     <configKey><![CDATA[rulesets/clone.xml/ProperCloneImplementation]]></configKey>
 
@@ -645,153 +679,177 @@ class Foo{
 
 
   <!-- PMD <= 4.1.1 -->
-  <rule key="EmptyFinalizer" priority="MAJOR">
+  <rule key="EmptyFinalizer" >
+<priority>MAJOR</priority>
     <name><![CDATA[Empty Finalizer]]></name>
     <configKey><![CDATA[rulesets/finalizers.xml/EmptyFinalizer]]></configKey>
     
     <description><![CDATA[If the finalize() method is empty, then it does not need to exist.]]></description>
   </rule>
-  <rule key="FinalizeOnlyCallsSuperFinalize" priority="MAJOR">
+  <rule key="FinalizeOnlyCallsSuperFinalize" >
+<priority>MAJOR</priority>
     <name><![CDATA[Finalize Only Calls Super Finalize]]></name>
     <configKey><![CDATA[rulesets/finalizers.xml/FinalizeOnlyCallsSuperFinalize]]></configKey>
     
     <description><![CDATA[If the finalize() is implemented, it should do something besides just calling super.finalize().]]></description>
   </rule>
-  <rule key="FinalizeOverloaded" priority="MAJOR">
+  <rule key="FinalizeOverloaded" >
+<priority>MAJOR</priority>
     <name><![CDATA[Finalize Overloaded]]></name>
     <configKey><![CDATA[rulesets/finalizers.xml/FinalizeOverloaded]]></configKey>
     
     <description>
       <![CDATA[Methods named finalize() should not have parameters. It is confusing and probably a bug to overload finalize(). It will not be called by the VM.]]></description>
   </rule>
-  <rule key="FinalizeDoesNotCallSuperFinalize" priority="MAJOR">
+  <rule key="FinalizeDoesNotCallSuperFinalize" >
+<priority>MAJOR</priority>
     <name><![CDATA[Finalize Does Not Call Super Finalize]]></name>
     <configKey><![CDATA[rulesets/finalizers.xml/FinalizeDoesNotCallSuperFinalize]]></configKey>
     
     <description><![CDATA[If the finalize() is implemented, its last action should be to call super.finalize.]]></description>
   </rule>
-  <rule key="FinalizeShouldBeProtected" priority="MAJOR">
+  <rule key="FinalizeShouldBeProtected" >
+<priority>MAJOR</priority>
     <name><![CDATA[Finalize Should Be Protected]]></name>
     <configKey><![CDATA[rulesets/finalizers.xml/FinalizeShouldBeProtected]]></configKey>
     
     <description><![CDATA[If you override finalize(), make it protected. If you make it public, other classes may call it.]]></description>
   </rule>
-  <rule key="AvoidCallingFinalize" priority="MAJOR">
+  <rule key="AvoidCallingFinalize" >
+<priority>MAJOR</priority>
     <name><![CDATA[Avoid Calling Finalize]]></name>
     <configKey><![CDATA[rulesets/finalizers.xml/AvoidCallingFinalize]]></configKey>
     
     <description>
       <![CDATA[Object.finalize() is called by the garbage collector on an object when garbage collection determines that there are no more references to the object. ]]></description>
   </rule>
-  <rule key="DontNestJsfInJstlIteration" priority="MAJOR">
+  <rule key="DontNestJsfInJstlIteration" >
+<priority>MAJOR</priority>
     <name><![CDATA[Dont Nest Jsf In Jstl Iteration]]></name>
     <configKey><![CDATA[rulesets/basic-jsf.xml/DontNestJsfInJstlIteration]]></configKey>
     
     <description><![CDATA[Do not nest JSF component custom actions inside a custom action that iterates over its body.]]></description>
   </rule>
-  <rule key="UnusedPrivateField" priority="MAJOR">
+  <rule key="UnusedPrivateField" >
+<priority>MAJOR</priority>
     <name><![CDATA[Unused Private Field]]></name>
     <configKey><![CDATA[rulesets/unusedcode.xml/UnusedPrivateField]]></configKey>
     
     <description><![CDATA[Detects when a private field is declared and/or assigned a value, but not used.]]></description>
   </rule>
-  <rule key="UnusedLocalVariable" priority="MAJOR">
+  <rule key="UnusedLocalVariable" >
+<priority>MAJOR</priority>
     <name><![CDATA[Unused local variable]]></name>
     <configKey><![CDATA[rulesets/unusedcode.xml/UnusedLocalVariable]]></configKey>
     
     <description><![CDATA[Detects when a local variable is declared and/or assigned, but not used.]]></description>
   </rule>
-  <rule key="UnusedPrivateMethod" priority="MAJOR">
+  <rule key="UnusedPrivateMethod" >
+<priority>MAJOR</priority>
     <name><![CDATA[Unused private method]]></name>
     <configKey><![CDATA[rulesets/unusedcode.xml/UnusedPrivateMethod]]></configKey>
     
     <description><![CDATA[Unused Private Method detects when a private method is declared but is unused. This PMD rule should be switched off and replaced by its equivalent from Squid that is more effective : it generates less false-positives and detects more dead code.]]></description>
   </rule>
-  <rule key="UnusedFormalParameter" priority="MAJOR">
+  <rule key="UnusedFormalParameter" >
+<priority>MAJOR</priority>
     <name><![CDATA[Unused formal parameter]]></name>
     <configKey><![CDATA[rulesets/unusedcode.xml/UnusedFormalParameter]]></configKey>
     
     <description><![CDATA[Avoid passing parameters to methods or constructors and then not using those parameters. ]]></description>
   </rule>
-  <rule key="UnnecessaryConstructor" priority="MAJOR">
+  <rule key="UnnecessaryConstructor" >
+<priority>MAJOR</priority>
     <name><![CDATA[Unnecessary constructor]]></name>
     <configKey><![CDATA[rulesets/controversial.xml/UnnecessaryConstructor]]></configKey>
     
     <description>
       <![CDATA[This rule detects when a constructor is not necessary; i.e., when there's only one constructor, it's public, has an empty body, and takes no arguments.]]></description>
   </rule>
-  <rule key="NullAssignment" priority="MAJOR">
+  <rule key="NullAssignment" >
+<priority>MAJOR</priority>
     <name><![CDATA[Null Assignment]]></name>
     <configKey><![CDATA[rulesets/controversial.xml/NullAssignment]]></configKey>
     
     <description>
       <![CDATA[Assigning a null to a variable (outside of its declaration) is usually bad form. Some times, the assignment is an indication that the programmer doesn't completely understand what is going on in the code. NOTE: This sort of assignment may in rare cases be useful to encourage garbage collection. If that's what you're using it for, by all means, disregard this rule :-)]]></description>
   </rule>
-  <rule key="OnlyOneReturn" priority="MINOR">
+  <rule key="OnlyOneReturn" >
+<priority>MINOR</priority>
     <name><![CDATA[Only One Return]]></name>
     <configKey><![CDATA[rulesets/controversial.xml/OnlyOneReturn]]></configKey>
     
     <description><![CDATA[A method should have only one exit point, and that should be the last statement in the method.]]></description>
   </rule>
-  <rule key="UnusedModifier" priority="INFO">
+  <rule key="UnusedModifier" >
+<priority>INFO</priority>
     <name><![CDATA[Unused Modifier]]></name>
     <configKey><![CDATA[rulesets/controversial.xml/UnusedModifier]]></configKey>
     
     <description>
       <![CDATA[Fields in interfaces are automatically public static final, and methods are public abstract. Classes or interfaces nested in an interface are automatically public and static (all nested interfaces are automatically static). For historical reasons, modifiers which are implied by the context are accepted by the compiler, but are superfluous.]]></description>
   </rule>
-  <rule key="AssignmentInOperand" priority="MAJOR">
+  <rule key="AssignmentInOperand" >
+<priority>MAJOR</priority>
     <name><![CDATA[Assignment In Operand]]></name>
     <configKey><![CDATA[rulesets/controversial.xml/AssignmentInOperand]]></configKey>
     
     <description><![CDATA[Avoid assignments in operands; this can make code more complicated and harder to read.]]></description>
   </rule>
-  <rule key="AtLeastOneConstructor" priority="MAJOR">
+  <rule key="AtLeastOneConstructor" >
+<priority>MAJOR</priority>
     <name><![CDATA[At Least One Constructor]]></name>
     <configKey><![CDATA[rulesets/controversial.xml/AtLeastOneConstructor]]></configKey>
     
     <description><![CDATA[Each class should declare at least one constructor.]]></description>
   </rule>
-  <rule key="DontImportSun" priority="MINOR">
+  <rule key="DontImportSun" >
+<priority>MINOR</priority>
     <name><![CDATA[Dont Import Sun]]></name>
     <configKey><![CDATA[rulesets/controversial.xml/DontImportSun]]></configKey>
 
     <description><![CDATA[Avoid importing anything from the 'sun.*' packages. These packages are not portable and are likely to change.]]></description>
   </rule>
-  <rule key="SuspiciousOctalEscape" priority="MAJOR">
+  <rule key="SuspiciousOctalEscape" >
+<priority>MAJOR</priority>
     <name><![CDATA[Suspicious Octal Escape]]></name>
     <configKey><![CDATA[rulesets/controversial.xml/SuspiciousOctalEscape]]></configKey>
     
     <description>
       <![CDATA[A suspicious octal escape sequence was found inside a String literal. The Java language specification (section 3.10.6) says an octal escape sequence inside a literal String shall consist of a backslash followed by: OctalDigit | OctalDigit OctalDigit | ZeroToThree OctalDigit OctalDigit Any octal escape sequence followed by non-octal digits can be confusing, e.g. "\038" is interpreted as the octal escape sequence "\03" followed by the literal character 8.]]></description>
   </rule>
-  <rule key="CallSuperInConstructor" priority="MINOR">
+  <rule key="CallSuperInConstructor" >
+<priority>MINOR</priority>
     <name><![CDATA[Call Super In Constructor]]></name>
     <configKey><![CDATA[rulesets/controversial.xml/CallSuperInConstructor]]></configKey>
     
     <description>
       <![CDATA[It is a good practice to call super() in a constructor. If super() is not called but another constructor (such as an overloaded constructor) is called, this rule will not report it.]]></description>
   </rule>
-  <rule key="SingularField" priority="MINOR">
+  <rule key="SingularField" >
+<priority>MINOR</priority>
     <name><![CDATA[Singular Field]]></name>
     <configKey><![CDATA[rulesets/design.xml/SingularField]]></configKey>
     
     <description><![CDATA[A field that's only used by one method could perhaps be replaced by a local variable.]]></description>
   </rule>
-  <rule key="DefaultPackage" priority="MINOR">
+  <rule key="DefaultPackage" >
+<priority>MINOR</priority>
     <name><![CDATA[Default Package]]></name>
     <configKey><![CDATA[rulesets/controversial.xml/DefaultPackage]]></configKey>
     
     <description><![CDATA[Use explicit scoping instead of the default package private level.]]></description>
   </rule>
-  <rule key="BooleanInversion" priority="MAJOR">
+  <rule key="BooleanInversion" >
+<priority>MAJOR</priority>
     <name><![CDATA[Boolean Inversion]]></name>
     <configKey><![CDATA[rulesets/controversial.xml/BooleanInversion]]></configKey>
 
     <description>
       <![CDATA[Use bitwise inversion to invert boolean values - it's the fastest way to do this. See http://www.javaspecialists.co.za/archive/newsletter.do?issue=042&locale=en_US for specific details]]></description>
   </rule>
-  <rule key="DataflowAnomalyAnalysis" priority="MAJOR">
+  <rule key="DataflowAnomalyAnalysis" >
+<priority>MAJOR</priority>
     <name><![CDATA[Dataflow Anomaly Analysis]]></name>
     <configKey><![CDATA[rulesets/controversial.xml/DataflowAnomalyAnalysis]]></configKey>
     
@@ -807,7 +865,8 @@ class Foo{
 
     </param>
   </rule>
-  <rule key="CouplingBetweenObjects" priority="MAJOR">
+  <rule key="CouplingBetweenObjects" >
+<priority>MAJOR</priority>
     <name><![CDATA[Coupling between objects]]></name>
     <configKey><![CDATA[rulesets/coupling.xml/CouplingBetweenObjects]]></configKey>
     
@@ -818,7 +877,8 @@ class Foo{
 
     </param>
   </rule>
-  <rule key="ExcessiveImports" priority="MAJOR">
+  <rule key="ExcessiveImports" >
+<priority>MAJOR</priority>
     <name><![CDATA[Coupling - excessive imports]]></name>
     <configKey><![CDATA[rulesets/coupling.xml/ExcessiveImports]]></configKey>
     
@@ -829,68 +889,79 @@ class Foo{
 
     </param>
   </rule>
-  <rule key="LooseCoupling" priority="MAJOR">
+  <rule key="LooseCoupling" >
+<priority>MAJOR</priority>
     <name><![CDATA[Loose coupling]]></name>
     <configKey><![CDATA[rulesets/coupling.xml/LooseCoupling]]></configKey>
     
     <description><![CDATA[Avoid using implementation types (i.e., HashSet); use the interface (i.e, Set) instead]]></description>
   </rule>
-  <rule key="MethodArgumentCouldBeFinal" priority="MINOR">
+  <rule key="MethodArgumentCouldBeFinal" >
+<priority>MINOR</priority>
     <name><![CDATA[Method Argument Could Be Final]]></name>
     <configKey><![CDATA[rulesets/optimizations.xml/MethodArgumentCouldBeFinal]]></configKey>
 
     <description><![CDATA[A method argument that is never assigned can be declared final.]]></description>
   </rule>
-  <rule key="AvoidInstantiatingObjectsInLoops" priority="MINOR">
+  <rule key="AvoidInstantiatingObjectsInLoops" >
+<priority>MINOR</priority>
     <name><![CDATA[Avoid instantiating objects in loops]]></name>
     <configKey><![CDATA[rulesets/optimizations.xml/AvoidInstantiatingObjectsInLoops]]></configKey>
 
     <description><![CDATA[Detects when a new object is created inside a loop]]></description>
   </rule>
-  <rule key="UseArrayListInsteadOfVector" priority="MAJOR">
+  <rule key="UseArrayListInsteadOfVector" >
+<priority>MAJOR</priority>
     <name><![CDATA[Use Array List Instead Of Vector]]></name>
     <configKey><![CDATA[rulesets/optimizations.xml/UseArrayListInsteadOfVector]]></configKey>
 
     <description><![CDATA[ArrayList is a much better Collection implementation than Vector.]]></description>
   </rule>
-  <rule key="SimplifyStartsWith" priority="MINOR">
+  <rule key="SimplifyStartsWith" >
+<priority>MINOR</priority>
     <name><![CDATA[Simplify Starts With]]></name>
     <configKey><![CDATA[rulesets/optimizations.xml/SimplifyStartsWith]]></configKey>
 
     <description><![CDATA[Since it passes in a literal of length 1, this call to String.startsWith can be rewritten using String.charAt(0) to save some time.]]></description>
   </rule>
-  <rule key="UseStringBufferForStringAppends" priority="MAJOR">
+  <rule key="UseStringBufferForStringAppends" >
+<priority>MAJOR</priority>
     <name><![CDATA[Use String Buffer For String Appends]]></name>
     <configKey><![CDATA[rulesets/optimizations.xml/UseStringBufferForStringAppends]]></configKey>
 
     <description><![CDATA[Finds usages of += for appending strings.]]></description>
   </rule>
-  <rule key="UseArraysAsList" priority="MAJOR">
+  <rule key="UseArraysAsList" >
+<priority>MAJOR</priority>
     <name><![CDATA[Use Arrays As List]]></name>
     <configKey><![CDATA[rulesets/optimizations.xml/UseArraysAsList]]></configKey>
 
     <description>
       <![CDATA[The class java.util.Arrays has a asList method that should be use when you want to create a new List from an array of objects. It is faster than executing a loop to cpy all the elements of the array one by one]]></description>
   </rule>
-  <rule key="AvoidArrayLoops" priority="MAJOR">
+  <rule key="AvoidArrayLoops" >
+<priority>MAJOR</priority>
     <name><![CDATA[Avoid Array Loops]]></name>
     <configKey><![CDATA[rulesets/optimizations.xml/AvoidArrayLoops]]></configKey>
 
     <description><![CDATA[Instead of copying data between two arrays, use System.arrayCopy method]]></description>
   </rule>
-  <rule key="UnnecessaryWrapperObjectCreation" priority="MAJOR">
+  <rule key="UnnecessaryWrapperObjectCreation" >
+<priority>MAJOR</priority>
     <name><![CDATA[Unnecessary Wrapper Object Creation]]></name>
     <configKey><![CDATA[rulesets/optimizations.xml/UnnecessaryWrapperObjectCreation]]></configKey>
 
     <description><![CDATA[Parsing method should be called directy instead. ]]></description>
   </rule>
-  <rule key="UseProperClassLoader" priority="CRITICAL">
+  <rule key="UseProperClassLoader" >
+<priority>CRITICAL</priority>
     <name><![CDATA[Use Proper Class Loader]]></name>
     <configKey><![CDATA[rulesets/j2ee.xml/UseProperClassLoader]]></configKey>
     
     <description><![CDATA[In J2EE getClassLoader() might not work as expected. Use Thread.currentThread().getContextClassLoader() instead.]]></description>
   </rule>
-  <rule key="EmptyCatchBlock" priority="CRITICAL">
+  <rule key="EmptyCatchBlock" >
+<priority>CRITICAL</priority>
     <name><![CDATA[Empty Catch Block]]></name>
     <configKey><![CDATA[rulesets/basic.xml/EmptyCatchBlock]]></configKey>
     
@@ -901,38 +972,44 @@ class Foo{
 
     </param>
   </rule>
-  <rule key="EmptyIfStmt" priority="CRITICAL">
+  <rule key="EmptyIfStmt" >
+<priority>CRITICAL</priority>
     <name><![CDATA[Empty If Stmt]]></name>
     <configKey><![CDATA[rulesets/basic.xml/EmptyIfStmt]]></configKey>
     
     <description><![CDATA[Empty If Statement finds instances where a condition is checked but nothing is done about it.]]></description>
   </rule>
-  <rule key="EmptyWhileStmt" priority="CRITICAL">
+  <rule key="EmptyWhileStmt" >
+<priority>CRITICAL</priority>
     <name><![CDATA[Empty While Stmt]]></name>
     <configKey><![CDATA[rulesets/basic.xml/EmptyWhileStmt]]></configKey>
     
     <description>
       <![CDATA[Empty While Statement finds all instances where a while statement does nothing. If it is a timing loop, then you should use Thread.sleep() for it; if it's a while loop that does a lot in the exit expression, rewrite it to make it clearer.]]></description>
   </rule>
-  <rule key="EmptyTryBlock" priority="MAJOR">
+  <rule key="EmptyTryBlock" >
+<priority>MAJOR</priority>
     <name><![CDATA[Empty Try Block]]></name>
     <configKey><![CDATA[rulesets/basic.xml/EmptyTryBlock]]></configKey>
     
     <description><![CDATA[Avoid empty try blocks - what's the point?]]></description>
   </rule>
-  <rule key="EmptyFinallyBlock" priority="CRITICAL">
+  <rule key="EmptyFinallyBlock" >
+<priority>CRITICAL</priority>
     <name><![CDATA[Empty Finally Block]]></name>
     <configKey><![CDATA[rulesets/basic.xml/EmptyFinallyBlock]]></configKey>
     
     <description><![CDATA[Avoid empty finally blocks - these can be deleted.]]></description>
   </rule>
-  <rule key="EmptySwitchStatements" priority="MAJOR">
+  <rule key="EmptySwitchStatements" >
+<priority>MAJOR</priority>
     <name><![CDATA[Empty Switch Statements]]></name>
     <configKey><![CDATA[rulesets/basic.xml/EmptySwitchStatements]]></configKey>
     
     <description><![CDATA[Avoid empty switch statements.]]></description>
   </rule>
-  <rule key="JumbledIncrementer" priority="MAJOR">
+  <rule key="JumbledIncrementer" >
+<priority>MAJOR</priority>
     <name><![CDATA[Jumbled Incrementer]]></name>
     <configKey><![CDATA[rulesets/basic.xml/JumbledIncrementer]]></configKey>
     
@@ -949,101 +1026,117 @@ public class JumbledIncrementerRule1 {
   }
 }</pre>]]></description>
   </rule>
-  <rule key="ForLoopShouldBeWhileLoop" priority="MINOR">
+  <rule key="ForLoopShouldBeWhileLoop" >
+<priority>MINOR</priority>
     <name><![CDATA[For Loop Should Be While Loop]]></name>
     <configKey><![CDATA[rulesets/basic.xml/ForLoopShouldBeWhileLoop]]></configKey>
     
     <description><![CDATA[Some for loops can be simplified to while loops - this makes them more concise.]]></description>
   </rule>
-  <rule key="UnnecessaryConversionTemporary" priority="MAJOR">
+  <rule key="UnnecessaryConversionTemporary" >
+<priority>MAJOR</priority>
     <name><![CDATA[Unnecessary Conversion Temporary]]></name>
     <configKey><![CDATA[rulesets/basic.xml/UnnecessaryConversionTemporary]]></configKey>
 
     <description><![CDATA[Avoid unnecessary temporaries when converting primitives to Strings]]></description>
   </rule>
-  <rule key="ReturnFromFinallyBlock" priority="MAJOR">
+  <rule key="ReturnFromFinallyBlock" >
+<priority>MAJOR</priority>
     <name><![CDATA[Return From Finally Block]]></name>
     <configKey><![CDATA[rulesets/basic.xml/ReturnFromFinallyBlock]]></configKey>
     
     <description><![CDATA[Avoid returning from a finally block - this can discard exceptions.]]></description>
   </rule>
-  <rule key="EmptySynchronizedBlock" priority="CRITICAL">
+  <rule key="EmptySynchronizedBlock" >
+<priority>CRITICAL</priority>
     <name><![CDATA[Empty Synchronized Block]]></name>
     <configKey><![CDATA[rulesets/basic.xml/EmptySynchronizedBlock]]></configKey>
     
     <description><![CDATA[Avoid empty synchronized blocks - they're useless.]]></description>
   </rule>
-  <rule key="UnnecessaryReturn" priority="MINOR">
+  <rule key="UnnecessaryReturn" >
+<priority>MINOR</priority>
     <name><![CDATA[Unnecessary Return]]></name>
     <configKey><![CDATA[rulesets/basic.xml/UnnecessaryReturn]]></configKey>
     
     <description><![CDATA[Avoid unnecessary return statements]]></description>
   </rule>
-  <rule key="EmptyStaticInitializer" priority="MAJOR">
+  <rule key="EmptyStaticInitializer" >
+<priority>MAJOR</priority>
     <name><![CDATA[Empty Static Initializer]]></name>
     <configKey><![CDATA[rulesets/basic.xml/EmptyStaticInitializer]]></configKey>
     
     <description><![CDATA[An empty static initializer was found.]]></description>
   </rule>
-  <rule key="UnconditionalIfStatement" priority="CRITICAL">
+  <rule key="UnconditionalIfStatement" >
+<priority>CRITICAL</priority>
     <name><![CDATA[Unconditional If Statement]]></name>
     <configKey><![CDATA[rulesets/basic.xml/UnconditionalIfStatement]]></configKey>
     
     <description><![CDATA[Do not use if statements that are always true or always false.]]></description>
   </rule>
-  <rule key="EmptyStatementNotInLoop" priority="MAJOR">
+  <rule key="EmptyStatementNotInLoop" >
+<priority>MAJOR</priority>
     <name><![CDATA[Empty Statement Not In Loop]]></name>
     <configKey><![CDATA[rulesets/basic.xml/EmptyStatementNotInLoop]]></configKey>
     
     <description>
       <![CDATA[An empty statement (aka a semicolon by itself) that is not used as the sole body of a for loop or while loop is probably a bug. It could also be a double semicolon, which is useless and should be removed.]]></description>
   </rule>
-  <rule key="BooleanInstantiation" priority="MAJOR">
+  <rule key="BooleanInstantiation" >
+<priority>MAJOR</priority>
     <name><![CDATA[Boolean Instantiation]]></name>
     <configKey><![CDATA[rulesets/basic.xml/BooleanInstantiation]]></configKey>
 
     <description><![CDATA[Avoid instantiating Boolean objects; you can reference Boolean.TRUE, Boolean.FALSE, or call Boolean.valueOf() instead.]]></description>
   </rule>
-  <rule key="UnnecessaryFinalModifier" priority="INFO">
+  <rule key="UnnecessaryFinalModifier" >
+<priority>INFO</priority>
     <name><![CDATA[Unnecessary Final Modifier]]></name>
     <configKey><![CDATA[rulesets/basic.xml/UnnecessaryFinalModifier]]></configKey>
     
     <description><![CDATA[When a class has the final modifier, all the methods are automatically final.]]></description>
   </rule>
-  <rule key="CollapsibleIfStatements" priority="MINOR">
+  <rule key="CollapsibleIfStatements" >
+<priority>MINOR</priority>
     <name><![CDATA[Collapsible If Statements]]></name>
     <configKey><![CDATA[rulesets/basic.xml/CollapsibleIfStatements]]></configKey>
     
     <description><![CDATA[Sometimes two 'if' statements can be consolidated by separating their conditions with a boolean short-circuit operator.]]></description>
   </rule>
-  <rule key="UselessOverridingMethod" priority="MAJOR">
+  <rule key="UselessOverridingMethod" >
+<priority>MAJOR</priority>
     <name><![CDATA[Useless Overriding Method]]></name>
     <configKey><![CDATA[rulesets/basic.xml/UselessOverridingMethod]]></configKey>
     
     <description><![CDATA[The overriding method merely calls the same method defined in a superclass]]></description>
   </rule>
-  <rule key="ClassCastExceptionWithToArray" priority="MAJOR">
+  <rule key="ClassCastExceptionWithToArray" >
+<priority>MAJOR</priority>
     <name><![CDATA[Class Cast Exception With To Array]]></name>
     <configKey><![CDATA[rulesets/basic.xml/ClassCastExceptionWithToArray]]></configKey>
     
     <description>
       <![CDATA[if you need to get an array of a class from your Collection, you should pass an array of the desidered class as the parameter of the toArray method. Otherwise you will get a ClassCastException.]]></description>
   </rule>
-  <rule key="AvoidDecimalLiteralsInBigDecimalConstructor" priority="MAJOR">
+  <rule key="AvoidDecimalLiteralsInBigDecimalConstructor" >
+<priority>MAJOR</priority>
     <name><![CDATA[Avoid Decimal Literals In Big Decimal Constructor]]></name>
     <configKey><![CDATA[rulesets/basic.xml/AvoidDecimalLiteralsInBigDecimalConstructor]]></configKey>
     
     <description>
       <![CDATA[One might assume that new BigDecimal(.1) is exactly equal to .1, but it is actually equal to .1000000000000000055511151231257827021181583404541015625. This is so because .1 cannot be represented exactly as a double (or, for that matter, as a binary fraction of any finite length). Thus, the long value that is being passed in to the constructor is not exactly equal to .1, appearances notwithstanding. The (String) constructor, on the other hand, is perfectly predictable: 'new BigDecimal(.1)' is exactly equal to .1, as one would expect. Therefore, it is generally recommended that the (String) constructor be used in preference to this one.]]></description>
   </rule>
-  <rule key="UselessOperationOnImmutable" priority="CRITICAL">
+  <rule key="UselessOperationOnImmutable" >
+<priority>CRITICAL</priority>
     <name><![CDATA[Useless Operation On Immutable]]></name>
     <configKey><![CDATA[rulesets/basic.xml/UselessOperationOnImmutable]]></configKey>
     
     <description>
       <![CDATA[An operation on an Immutable object (BigDecimal or BigInteger) won't change the object itself. The result of the operation is a new object. Therefore, ignoring the operation result is an error.]]></description>
   </rule>
-  <rule key="MisplacedNullCheck" priority="CRITICAL">
+  <rule key="MisplacedNullCheck" >
+<priority>CRITICAL</priority>
     <name><![CDATA[Misplaced Null Check]]></name>
     <configKey><![CDATA[rulesets/basic.xml/MisplacedNullCheck]]></configKey>
     
@@ -1057,47 +1150,54 @@ if (object1!=null && object2.equals(object1)) {
 }      
       </pre>]]></description>
   </rule>
-  <rule key="UnusedNullCheckInEquals" priority="MAJOR">
+  <rule key="UnusedNullCheckInEquals" >
+<priority>MAJOR</priority>
     <name><![CDATA[Unused Null Check In Equals]]></name>
     <configKey><![CDATA[rulesets/basic.xml/UnusedNullCheckInEquals]]></configKey>
     
     <description>
       <![CDATA[After checking an object reference for null, you should invoke equals() on that object rather than passing it to another object's equals() method.]]></description>
   </rule>
-  <rule key="AvoidThreadGroup" priority="CRITICAL">
+  <rule key="AvoidThreadGroup" >
+<priority>CRITICAL</priority>
     <name><![CDATA[Avoid Thread Group]]></name>
     <configKey><![CDATA[rulesets/basic.xml/AvoidThreadGroup]]></configKey>
     
     <description><![CDATA[Avoid using ThreadGroup; although it is intended to be used in a threaded environment it contains methods that are not thread safe.]]></description>
   </rule>
-  <rule key="BrokenNullCheck" priority="CRITICAL">
+  <rule key="BrokenNullCheck" >
+<priority>CRITICAL</priority>
     <name><![CDATA[Broken Null Check]]></name>
     <configKey><![CDATA[rulesets/basic.xml/BrokenNullCheck]]></configKey>
     
     <description>
       <![CDATA[The null check is broken since it will throw a Nullpointer itself. The reason is that a method is called on the object when it is null. It is likely that you used || instead of && or vice versa.]]></description>
   </rule>
-  <rule key="BigIntegerInstantiation" priority="MAJOR">
+  <rule key="BigIntegerInstantiation" >
+<priority>MAJOR</priority>
     <name><![CDATA[Big Integer Instantiation]]></name>
     <configKey><![CDATA[rulesets/basic.xml/BigIntegerInstantiation]]></configKey>
 
     <description>
       <![CDATA[Don't create instances of already existing BigInteger (BigInteger.ZERO, BigInteger.ONE) and for 1.5 on, BigInteger.TEN and BigDecimal (BigDecimal.ZERO, BigDecimal.ONE, BigDecimal.TEN)]]></description>
   </rule>
-  <rule key="AvoidUsingOctalValues" priority="MAJOR">
+  <rule key="AvoidUsingOctalValues" >
+<priority>MAJOR</priority>
     <name><![CDATA[Avoid Using Octal Values]]></name>
     <configKey><![CDATA[rulesets/basic.xml/AvoidUsingOctalValues]]></configKey>
     
     <description><![CDATA[Integer literals should not start with zero. Zero means that the rest of literal will be interpreted as an octal value. ]]></description>
   </rule>
-  <rule key="UseSingleton" priority="MAJOR">
+  <rule key="UseSingleton" >
+<priority>MAJOR</priority>
     <name><![CDATA[Use Singleton]]></name>
     <configKey><![CDATA[rulesets/design.xml/UseSingleton]]></configKey>
 
     <description>
       <![CDATA[If you have a class that has nothing but static methods, consider making it a Singleton. Note that this doesn't apply to abstract classes, since their subclasses may well include non-static methods. Also, if you want this class to be a Singleton, remember to add a private constructor to prevent instantiation.]]></description>
   </rule>
-  <rule key="AvoidDeeplyNestedIfStmts" priority="MAJOR">
+  <rule key="AvoidDeeplyNestedIfStmts" >
+<priority>MAJOR</priority>
     <name><![CDATA[Avoid Deeply Nested If Stmts]]></name>
     <configKey><![CDATA[rulesets/design.xml/AvoidDeeplyNestedIfStmts]]></configKey>
     
@@ -1107,13 +1207,15 @@ if (object1!=null && object2.equals(object1)) {
 
     </param>
   </rule>
-  <rule key="AvoidReassigningParameters" priority="MAJOR">
+  <rule key="AvoidReassigningParameters" >
+<priority>MAJOR</priority>
     <name><![CDATA[Avoid Reassigning Parameters]]></name>
     <configKey><![CDATA[rulesets/design.xml/AvoidReassigningParameters]]></configKey>
     
     <description><![CDATA[Reassigning values to parameters is a questionable practice. Use a temporary local variable instead.]]></description>
   </rule>
-  <rule key="SwitchDensity" priority="MAJOR">
+  <rule key="SwitchDensity" >
+<priority>MAJOR</priority>
     <name><![CDATA[Switch Density]]></name>
     <configKey><![CDATA[rulesets/design.xml/SwitchDensity]]></configKey>
     
@@ -1124,7 +1226,8 @@ if (object1!=null && object2.equals(object1)) {
 
     </param>
   </rule>
-  <rule key="ConstructorCallsOverridableMethod" priority="MAJOR">
+  <rule key="ConstructorCallsOverridableMethod" >
+<priority>MAJOR</priority>
     <name><![CDATA[Constructor Calls Overridable Method]]></name>
     <configKey><![CDATA[rulesets/design.xml/ConstructorCallsOverridableMethod]]></configKey>
     
@@ -1157,20 +1260,23 @@ public class JuniorClass extends SeniorClass {
 }
 </pre>]]></description>
   </rule>
-  <rule key="AccessorClassGeneration" priority="MAJOR">
+  <rule key="AccessorClassGeneration" >
+<priority>MAJOR</priority>
     <name><![CDATA[Accessor Class Generation]]></name>
     <configKey><![CDATA[rulesets/design.xml/AccessorClassGeneration]]></configKey>
     
     <description>
       <![CDATA[Instantiation by way of private constructors from outside of the constructor's class often causes the generation of an accessor. A factory method, or non-privitization of the constructor can eliminate this situation. The generated class file is actually an interface. It gives the accessing class the ability to invoke a new hidden package scope constructor that takes the interface as a supplementary parameter. This turns a private constructor effectively into one with package scope, and is challenging to discern.]]></description>
   </rule>
-  <rule key="FinalFieldCouldBeStatic" priority="MINOR">
+  <rule key="FinalFieldCouldBeStatic" >
+<priority>MINOR</priority>
     <name><![CDATA[Final Field Could Be Static]]></name>
     <configKey><![CDATA[rulesets/design.xml/FinalFieldCouldBeStatic]]></configKey>
 
     <description><![CDATA[If a final field is assigned to a compile-time constant, it could be made static, thus saving overhead in each object at runtime.]]></description>
   </rule>
-  <rule key="CloseResource" priority="MAJOR">
+  <rule key="CloseResource" >
+<priority>MAJOR</priority>
     <name><![CDATA[Close Resource]]></name>
     <configKey><![CDATA[rulesets/design.xml/CloseResource]]></configKey>
     
@@ -1191,177 +1297,205 @@ try {
       <description><![CDATA[Methods which may close this resource. Default is 'close'.]]></description>
     </param>
   </rule>
-  <rule key="NonStaticInitializer" priority="MAJOR">
+  <rule key="NonStaticInitializer" >
+<priority>MAJOR</priority>
     <name><![CDATA[Non Static Initializer]]></name>
     <configKey><![CDATA[rulesets/design.xml/NonStaticInitializer]]></configKey>
     
     <description>
       <![CDATA[A nonstatic initializer block will be called any time a constructor is invoked (just prior to invoking the constructor). While this is a valid language construct, it is rarely used and is confusing. Example :<br/><code>public class MyClass {<br/>// this block gets run before any call to a constructor {<br/>System.out.println("I am about to construct myself");<br/>}<br/>}</code>]]></description>
   </rule>
-  <rule key="NonCaseLabelInSwitchStatement" priority="MAJOR">
+  <rule key="NonCaseLabelInSwitchStatement" >
+<priority>MAJOR</priority>
     <name><![CDATA[Non Case Label In Switch Statement]]></name>
     <configKey><![CDATA[rulesets/design.xml/NonCaseLabelInSwitchStatement]]></configKey>
     
     <description>
       <![CDATA[A non-case label (e.g. a named break/continue label) was present in a switch statement. This legal, but confusing. It is easy to mix up the case labels and the non-case labels.]]></description>
   </rule>
-  <rule key="OptimizableToArrayCall" priority="MAJOR">
+  <rule key="OptimizableToArrayCall" >
+<priority>MAJOR</priority>
     <name><![CDATA[Optimizable To Array Call]]></name>
     <configKey><![CDATA[rulesets/design.xml/OptimizableToArrayCall]]></configKey>
 
     <description><![CDATA[A call to Collection.toArray can use the Collection's size vs an empty Array of the desired type.]]></description>
   </rule>
-  <rule key="BadComparison" priority="MAJOR">
+  <rule key="BadComparison" >
+<priority>MAJOR</priority>
     <name><![CDATA[Bad Comparison]]></name>
     <configKey><![CDATA[rulesets/design.xml/BadComparison]]></configKey>
     
     <description><![CDATA[Avoid equality comparisons with Double.NaN - these are likely to be logic errors.]]></description>
   </rule>
-  <rule key="EqualsNull" priority="CRITICAL">
+  <rule key="EqualsNull" >
+<priority>CRITICAL</priority>
     <name><![CDATA[Equals Null]]></name>
     <configKey><![CDATA[rulesets/design.xml/EqualsNull]]></configKey>
     
     <description><![CDATA[Inexperienced programmers sometimes confuse comparison concepts and use equals() to compare to null.]]></description>
   </rule>
-  <rule key="ConfusingTernary" priority="MAJOR">
+  <rule key="ConfusingTernary" >
+<priority>MAJOR</priority>
     <name><![CDATA[Confusing Ternary]]></name>
     <configKey><![CDATA[rulesets/design.xml/ConfusingTernary]]></configKey>
     
     <description>
       <![CDATA[In an if expression with an else clause, avoid negation in the test. For example, rephrase: if (x != y) diff(); else same(); as: if (x == y) same(); else diff(); Most if (x != y) cases without an else are often return cases, so consistent use of this rule makes the code easier to read. Also, this resolves trivial ordering problems, such as does the error case go first? or does the common case go first?.]]></description>
   </rule>
-  <rule key="InstantiationToGetClass" priority="MAJOR">
+  <rule key="InstantiationToGetClass" >
+<priority>MAJOR</priority>
     <name><![CDATA[Instantiation To Get Class]]></name>
     <configKey><![CDATA[rulesets/design.xml/InstantiationToGetClass]]></configKey>
     
     <description>
       <![CDATA[Avoid instantiating an object just to call getClass() on it; use the .class public member instead. Example : replace <code>Class c = new String().getClass();</code> with <code>Class c = String.class;</code>]]></description>
   </rule>
-  <rule key="IdempotentOperations" priority="MAJOR">
+  <rule key="IdempotentOperations" >
+<priority>MAJOR</priority>
     <name><![CDATA[Idempotent Operations]]></name>
     <configKey><![CDATA[rulesets/design.xml/IdempotentOperations]]></configKey>
 
     <description><![CDATA[Avoid idempotent operations - they are have no effect. Example : <br/><code>int x = 2;<br/> x = x;</code>]]></description>
   </rule>
-  <rule key="SimpleDateFormatNeedsLocale" priority="MAJOR">
+  <rule key="SimpleDateFormatNeedsLocale" >
+<priority>MAJOR</priority>
     <name><![CDATA[Simple Date Format Needs Locale]]></name>
     <configKey><![CDATA[rulesets/design.xml/SimpleDateFormatNeedsLocale]]></configKey>
     
     <description><![CDATA[Be sure to specify a Locale when creating a new instance of SimpleDateFormat.]]></description>
   </rule>
-  <rule key="ImmutableField" priority="MAJOR">
+  <rule key="ImmutableField" >
+<priority>MAJOR</priority>
     <name><![CDATA[Immutable Field]]></name>
     <configKey><![CDATA[rulesets/design.xml/ImmutableField]]></configKey>
     
     <description>
       <![CDATA[Identifies private fields whose values never change once they are initialized either in the declaration of the field or by a constructor. This aids in converting existing classes to immutable classes.]]></description>
   </rule>
-  <rule key="UseLocaleWithCaseConversions" priority="MAJOR">
+  <rule key="UseLocaleWithCaseConversions" >
+<priority>MAJOR</priority>
     <name><![CDATA[Use Locale With Case Conversions]]></name>
     <configKey><![CDATA[rulesets/design.xml/UseLocaleWithCaseConversions]]></configKey>
     
     <description><![CDATA[When doing a String.toLowerCase()/toUpperCase() call, use a Locale. This avoids problems with certain locales, i.e. Turkish.]]></description>
   </rule>
-  <rule key="AvoidProtectedFieldInFinalClass" priority="MAJOR">
+  <rule key="AvoidProtectedFieldInFinalClass" >
+<priority>MAJOR</priority>
     <name><![CDATA[Avoid Protected Field In Final Class]]></name>
     <configKey><![CDATA[rulesets/design.xml/AvoidProtectedFieldInFinalClass]]></configKey>
     
     <description>
       <![CDATA[Do not use protected fields in final classes since they cannot be subclassed. Clarify your intent by using private or package access modifiers instead.]]></description>
   </rule>
-  <rule key="AssignmentToNonFinalStatic" priority="MAJOR">
+  <rule key="AssignmentToNonFinalStatic" >
+<priority>MAJOR</priority>
     <name><![CDATA[Assignment To Non Final Static]]></name>
     <configKey><![CDATA[rulesets/design.xml/AssignmentToNonFinalStatic]]></configKey>
     
     <description><![CDATA[Identifies a possible unsafe usage of a static field.]]></description>
   </rule>
-  <rule key="MissingStaticMethodInNonInstantiatableClass" priority="MAJOR">
+  <rule key="MissingStaticMethodInNonInstantiatableClass" >
+<priority>MAJOR</priority>
     <name><![CDATA[Missing Static Method In Non Instantiatable Class]]></name>
     <configKey><![CDATA[rulesets/design.xml/MissingStaticMethodInNonInstantiatableClass]]></configKey>
     
     <description><![CDATA[A class that has private constructors and does not have any static methods or fields cannot be used.]]></description>
   </rule>
-  <rule key="AvoidSynchronizedAtMethodLevel" priority="MAJOR">
+  <rule key="AvoidSynchronizedAtMethodLevel" >
+<priority>MAJOR</priority>
     <name><![CDATA[Avoid Synchronized At Method Level]]></name>
     <configKey><![CDATA[rulesets/design.xml/AvoidSynchronizedAtMethodLevel]]></configKey>
     
     <description>
       <![CDATA[Method level synchronization can backfire when new code is added to the method. Block-level synchronization helps to ensure that only the code that needs synchronization gets it.]]></description>
   </rule>
-  <rule key="MissingBreakInSwitch" priority="CRITICAL">
+  <rule key="MissingBreakInSwitch" >
+<priority>CRITICAL</priority>
     <name><![CDATA[Missing Break In Switch]]></name>
     <configKey><![CDATA[rulesets/design.xml/MissingBreakInSwitch]]></configKey>
     
     <description><![CDATA[A switch statement without an enclosed break statement may be a bug.]]></description>
   </rule>
-  <rule key="UseNotifyAllInsteadOfNotify" priority="MAJOR">
+  <rule key="UseNotifyAllInsteadOfNotify" >
+<priority>MAJOR</priority>
     <name><![CDATA[Use Notify All Instead Of Notify]]></name>
     <configKey><![CDATA[rulesets/design.xml/UseNotifyAllInsteadOfNotify]]></configKey>
     
     <description>
       <![CDATA[Thread.notify() awakens a thread monitoring the object. If more than one thread is monitoring, then only one is chosen. The thread chosen is arbitrary; thus it's usually safer to call notifyAll() instead.]]></description>
   </rule>
-  <rule key="AvoidInstanceofChecksInCatchClause" priority="MINOR">
+  <rule key="AvoidInstanceofChecksInCatchClause" >
+<priority>MINOR</priority>
     <name><![CDATA[Avoid Instanceof Checks In Catch Clause]]></name>
     <configKey><![CDATA[rulesets/design.xml/AvoidInstanceofChecksInCatchClause]]></configKey>
     
     <description><![CDATA[Each caught exception type should be handled in its own catch clause.]]></description>
   </rule>
-  <rule key="AbstractClassWithoutAbstractMethod" priority="MAJOR">
+  <rule key="AbstractClassWithoutAbstractMethod" >
+<priority>MAJOR</priority>
     <name><![CDATA[Abstract Class Without Abstract Method]]></name>
     <configKey><![CDATA[rulesets/design.xml/AbstractClassWithoutAbstractMethod]]></configKey>
     
     <description>
       <![CDATA[The abstract class does not contain any abstract methods. An abstract class suggests an incomplete implementation, which is to be completed by subclasses implementing the abstract methods. If the class is intended to be used as a base class only (not to be instantiated direcly) a protected constructor can be provided prevent direct instantiation.]]></description>
   </rule>
-  <rule key="SimplifyConditional" priority="MAJOR">
+  <rule key="SimplifyConditional" >
+<priority>MAJOR</priority>
     <name><![CDATA[Simplify Conditional]]></name>
     <configKey><![CDATA[rulesets/design.xml/SimplifyConditional]]></configKey>
     
     <description><![CDATA[No need to check for null before an instanceof; the instanceof keyword returns false when given a null argument.]]></description>
   </rule>
-  <rule key="CompareObjectsWithEquals" priority="MAJOR">
+  <rule key="CompareObjectsWithEquals" >
+<priority>MAJOR</priority>
     <name><![CDATA[Compare Objects With Equals]]></name>
     <configKey><![CDATA[rulesets/design.xml/CompareObjectsWithEquals]]></configKey>
     
     <description><![CDATA[Use equals() to compare object references; avoid comparing them with ==.]]></description>
   </rule>
-  <rule key="PositionLiteralsFirstInComparisons" priority="MAJOR">
+  <rule key="PositionLiteralsFirstInComparisons" >
+<priority>MAJOR</priority>
     <name><![CDATA[Position Literals First In Comparisons]]></name>
     <configKey><![CDATA[rulesets/design.xml/PositionLiteralsFirstInComparisons]]></configKey>
     
     <description>
       <![CDATA[Position literals first in String comparisons - that way if the String is null you won't get a NullPointerException, it'll just return false.]]></description>
   </rule>
-  <rule key="UnnecessaryLocalBeforeReturn" priority="MAJOR">
+  <rule key="UnnecessaryLocalBeforeReturn" >
+<priority>MAJOR</priority>
     <name><![CDATA[Unnecessary Local Before Return]]></name>
     <configKey><![CDATA[rulesets/design.xml/UnnecessaryLocalBeforeReturn]]></configKey>
 
     <description><![CDATA[Avoid unnecessarily creating local variables]]></description>
   </rule>
-  <rule key="NonThreadSafeSingleton" priority="MAJOR">
+  <rule key="NonThreadSafeSingleton" >
+<priority>MAJOR</priority>
     <name><![CDATA[Non Thread Safe Singleton]]></name>
     <configKey><![CDATA[rulesets/design.xml/NonThreadSafeSingleton]]></configKey>
     
     <description>
       <![CDATA[Non-thread safe singletons can result in bad state changes. Eliminate static singletons if possible by instantiating the object directly. Static singletons are usually not needed as only a single instance exists anyway. Other possible fixes are to synchronize the entire method or to use an initialize-on-demand holder class (do not use the double-check idiom). See Effective Java, item 48.]]></description>
-    <param key="checkNonStaticMethods" type="b" priority="MAJOR">
+    <param key="checkNonStaticMethods" type="b" >
+<priority>MAJOR</priority>
       <description><![CDATA[Do not set this to false and checkNonStaticFields to true. Default is true.]]></description>
 
     </param>
-    <param key="checkNonStaticFields" type="b" priority="MAJOR">
+    <param key="checkNonStaticFields" type="b" >
+<priority>MAJOR</priority>
       <description><![CDATA[Do not set this to true and checkNonStaticMethods to false. Default is false.]]></description>
 
     </param>
   </rule>
-  <rule key="UncommentedEmptyMethod" priority="MAJOR">
+  <rule key="UncommentedEmptyMethod" >
+<priority>MAJOR</priority>
     <name><![CDATA[Uncommented Empty Method]]></name>
     <configKey><![CDATA[rulesets/design.xml/UncommentedEmptyMethod]]></configKey>
     
     <description>
       <![CDATA[Uncommented Empty Method finds instances where a method does not contain statements, but there is no comment. By explicitly commenting empty methods it is easier to distinguish between intentional (commented) and unintentional empty methods.]]></description>
   </rule>
-  <rule key="UncommentedEmptyConstructor" priority="MAJOR">
+  <rule key="UncommentedEmptyConstructor" >
+<priority>MAJOR</priority>
     <name><![CDATA[Uncommented Empty Constructor]]></name>
     <configKey><![CDATA[rulesets/design.xml/UncommentedEmptyConstructor]]></configKey>
     
@@ -1372,93 +1506,107 @@ try {
 
     </param>
   </rule>
-  <rule key="AvoidConstantsInterface" priority="MAJOR">
+  <rule key="AvoidConstantsInterface" >
+<priority>MAJOR</priority>
     <name><![CDATA[Avoid Constants Interface]]></name>
     <configKey><![CDATA[rulesets/design.xml/AvoidConstantsInterface]]></configKey>
     
     <description><![CDATA[An interface should be used only to model a behaviour of a class: using an interface as a container of constants is a poor usage pattern.]]></description>
   </rule>
-  <rule key="UnsynchronizedStaticDateFormatter" priority="MAJOR">
+  <rule key="UnsynchronizedStaticDateFormatter" >
+<priority>MAJOR</priority>
     <name><![CDATA[Unsynchronized Static Date Formatter]]></name>
     <configKey><![CDATA[rulesets/design.xml/UnsynchronizedStaticDateFormatter]]></configKey>
     
     <description>
       <![CDATA[SimpleDateFormat is not synchronized. Sun recomends separate format instances for each thread. If multiple threads must access a static formatter, the formatter must be synchronized either on method or block level.]]></description>
   </rule>
-  <rule key="PreserveStackTrace" priority="MAJOR">
+  <rule key="PreserveStackTrace" >
+<priority>MAJOR</priority>
     <name><![CDATA[Preserve Stack Trace]]></name>
     <configKey><![CDATA[rulesets/design.xml/PreserveStackTrace]]></configKey>
     
     <description>
       <![CDATA[Throwing a new exception from a catch block without passing the original exception into the new Exception will cause the true stack trace to be lost, and can make it difficult to debug effectively.]]></description>
   </rule>
-  <rule key="UseCollectionIsEmpty" priority="MINOR">
+  <rule key="UseCollectionIsEmpty" >
+<priority>MINOR</priority>
     <name><![CDATA[Use Collection Is Empty]]></name>
     <configKey><![CDATA[rulesets/design.xml/UseCollectionIsEmpty]]></configKey>
     
     <description>
       <![CDATA[The isEmpty() method on java.util.Collection is provided to see if a collection has any elements. Comparing the value of size() to 0 merely duplicates existing behavior. ]]></description>
   </rule>
-  <rule key="MethodReturnsInternalArray" priority="CRITICAL">
+  <rule key="MethodReturnsInternalArray" >
+<priority>CRITICAL</priority>
     <name><![CDATA[Security - Method returns internal array]]></name>
     <configKey><![CDATA[rulesets/sunsecure.xml/MethodReturnsInternalArray]]></configKey>
     
     <description><![CDATA[Exposing internal arrays directly allows the user to modify some code that could be critical. It is safer to return a copy of the array.]]></description>
   </rule>
-  <rule key="ArrayIsStoredDirectly" priority="CRITICAL">
+  <rule key="ArrayIsStoredDirectly" >
+<priority>CRITICAL</priority>
     <name><![CDATA[Security - Array is stored directly]]></name>
     <configKey><![CDATA[rulesets/sunsecure.xml/ArrayIsStoredDirectly]]></configKey>
     
     <description>
       <![CDATA[Constructors and methods receiving arrays should clone objects and store the copy. This prevents that future changes from the user affect the internal functionality. ]]></description>
   </rule>
-  <rule key="AvoidCatchingThrowable" priority="CRITICAL">
+  <rule key="AvoidCatchingThrowable" >
+<priority>CRITICAL</priority>
     <name><![CDATA[Avoid Catching Throwable]]></name>
     <configKey><![CDATA[rulesets/strictexception.xml/AvoidCatchingThrowable]]></configKey>
     
     <description><![CDATA[This is dangerous because it casts too wide a net; it can catch things like OutOfMemoryError.]]></description>
   </rule>
-  <rule key="SignatureDeclareThrowsException" priority="MAJOR">
+  <rule key="SignatureDeclareThrowsException" >
+<priority>MAJOR</priority>
     <name><![CDATA[Signature Declare Throws Exception]]></name>
     <configKey><![CDATA[rulesets/strictexception.xml/SignatureDeclareThrowsException]]></configKey>
     
     <description>
       <![CDATA[It is unclear which exceptions that can be thrown from the methods. It might be difficult to document and understand the vague interfaces. Use either a class derived from RuntimeException or a checked exception.]]></description>
   </rule>
-  <rule key="ExceptionAsFlowControl" priority="MAJOR">
+  <rule key="ExceptionAsFlowControl" >
+<priority>MAJOR</priority>
     <name><![CDATA[Exception As Flow Control]]></name>
     <configKey><![CDATA[rulesets/strictexception.xml/ExceptionAsFlowControl]]></configKey>
     
     <description><![CDATA[Using Exceptions as flow control leads to GOTOish code and obscures true exceptions when debugging.]]></description>
   </rule>
-  <rule key="AvoidCatchingNPE" priority="MAJOR">
+  <rule key="AvoidCatchingNPE" >
+<priority>MAJOR</priority>
     <name><![CDATA[Avoid Catching NPE]]></name>
     <configKey><![CDATA[rulesets/strictexception.xml/AvoidCatchingNPE]]></configKey>
     
     <description>
       <![CDATA[Code should never throw NPE under normal circumstances. A catch block may hide the original error, causing other more subtle errors in its wake.]]></description>
   </rule>
-  <rule key="AvoidThrowingRawExceptionTypes" priority="MAJOR">
+  <rule key="AvoidThrowingRawExceptionTypes" >
+<priority>MAJOR</priority>
     <name><![CDATA[Avoid Throwing Raw Exception Types]]></name>
     <configKey><![CDATA[rulesets/strictexception.xml/AvoidThrowingRawExceptionTypes]]></configKey>
     
     <description>
       <![CDATA[Avoid throwing certain exception types. Rather than throw a raw RuntimeException, Throwable, Exception, or Error, use a subclassed exception or error instead.]]></description>
   </rule>
-  <rule key="AvoidThrowingNullPointerException" priority="MAJOR">
+  <rule key="AvoidThrowingNullPointerException" >
+<priority>MAJOR</priority>
     <name><![CDATA[Avoid Throwing Null Pointer Exception]]></name>
     <configKey><![CDATA[rulesets/strictexception.xml/AvoidThrowingNullPointerException]]></configKey>
     
     <description>
       <![CDATA[Avoid throwing a NullPointerException - it's confusing because most people will assume that the virtual machine threw it. Consider using an IllegalArgumentException instead; this will be clearly seen as a programmer-initiated exception.]]></description>
   </rule>
-  <rule key="AvoidRethrowingException" priority="MAJOR">
+  <rule key="AvoidRethrowingException" >
+<priority>MAJOR</priority>
     <name><![CDATA[Avoid Rethrowing Exception]]></name>
     <configKey><![CDATA[rulesets/strictexception.xml/AvoidRethrowingException]]></configKey>
     
     <description><![CDATA[Catch blocks that merely rethrow a caught exception only add to code size and runtime complexity.]]></description>
   </rule>
-  <rule key="BeanMembersShouldSerialize" priority="MAJOR">
+  <rule key="BeanMembersShouldSerialize" >
+<priority>MAJOR</priority>
     <name><![CDATA[Bean Members Should Serialize]]></name>
     <configKey><![CDATA[rulesets/javabeans.xml/BeanMembersShouldSerialize]]></configKey>
     
@@ -1469,20 +1617,23 @@ try {
 
     </param>
   </rule>
-  <rule key="MissingSerialVersionUID" priority="MAJOR">
+  <rule key="MissingSerialVersionUID" >
+<priority>MAJOR</priority>
     <name><![CDATA[Missing Serial Version UID]]></name>
     <configKey><![CDATA[rulesets/javabeans.xml/MissingSerialVersionUID]]></configKey>
     
     <description><![CDATA[Classes that are serializable should provide a serialVersionUID field. ]]></description>
   </rule>
-  <rule key="CloneMethodMustImplementCloneable" priority="MAJOR">
+  <rule key="CloneMethodMustImplementCloneable" >
+<priority>MAJOR</priority>
     <name><![CDATA[Clone method must implement Cloneable]]></name>
     <configKey><![CDATA[rulesets/clone.xml/CloneMethodMustImplementCloneable]]></configKey>
     
     <description>
       <![CDATA[The method clone() should only be implemented if the class implements the Cloneable interface with the exception of a final method that only throws CloneNotSupportedException. This version uses PMD's type resolution facilities, and can detect if the class implements or extends a Cloneable class ]]></description>
   </rule>
-  <rule key="AvoidDuplicateLiterals" priority="MAJOR">
+  <rule key="AvoidDuplicateLiterals" >
+<priority>MAJOR</priority>
     <name><![CDATA[Avoid Duplicate Literals]]></name>
     <configKey><![CDATA[rulesets/strings.xml/AvoidDuplicateLiterals]]></configKey>
     
@@ -1516,44 +1667,51 @@ public class Foo {
       <description><![CDATA[File containing strings to skip (one string per line), only used if exceptionlist is not set.]]></description>
     </param>
   </rule>
-  <rule key="StringInstantiation" priority="MAJOR">
+  <rule key="StringInstantiation" >
+<priority>MAJOR</priority>
     <name><![CDATA[String Instantiation]]></name>
     <configKey><![CDATA[rulesets/strings.xml/StringInstantiation]]></configKey>
 
     <description><![CDATA[Avoid instantiating String objects; this is usually unnecessary.]]></description>
   </rule>
-  <rule key="StringToString" priority="MAJOR">
+  <rule key="StringToString" >
+<priority>MAJOR</priority>
     <name><![CDATA[String To String]]></name>
     <configKey><![CDATA[rulesets/strings.xml/StringToString]]></configKey>
     
     <description><![CDATA[Avoid calling toString() on String objects; this is unnecessary.]]></description>
   </rule>
-  <rule key="InefficientStringBuffering" priority="MAJOR">
+  <rule key="InefficientStringBuffering" >
+<priority>MAJOR</priority>
     <name><![CDATA[Inefficient String Buffering]]></name>
     <configKey><![CDATA[rulesets/strings.xml/InefficientStringBuffering]]></configKey>
 
     <description><![CDATA[Avoid concatenating non literals in a StringBuffer constructor or append().]]></description>
   </rule>
-  <rule key="UnnecessaryCaseChange" priority="MINOR">
+  <rule key="UnnecessaryCaseChange" >
+<priority>MINOR</priority>
     <name><![CDATA[Unnecessary Case Change]]></name>
     <configKey><![CDATA[rulesets/strings.xml/UnnecessaryCaseChange]]></configKey>
 
     <description><![CDATA[Using equalsIgnoreCase() is faster than using toUpperCase/toLowerCase().equals()]]></description>
   </rule>
-  <rule key="UseStringBufferLength" priority="MINOR">
+  <rule key="UseStringBufferLength" >
+<priority>MINOR</priority>
     <name><![CDATA[Use String Buffer Length]]></name>
     <configKey><![CDATA[rulesets/strings.xml/UseStringBufferLength]]></configKey>
 
     <description>
       <![CDATA[Use StringBuffer.length() to determine StringBuffer length rather than using StringBuffer.toString().equals() or StringBuffer.toString().length() ==.]]></description>
   </rule>
-  <rule key="AppendCharacterWithChar" priority="MINOR">
+  <rule key="AppendCharacterWithChar" >
+<priority>MINOR</priority>
     <name><![CDATA[Append Character With Char]]></name>
     <configKey><![CDATA[rulesets/strings.xml/AppendCharacterWithChar]]></configKey>
 
     <description><![CDATA[Avoid concatenating characters as strings in StringBuffer.append.]]></description>
   </rule>
-  <rule key="ConsecutiveLiteralAppends" priority="MINOR">
+  <rule key="ConsecutiveLiteralAppends" >
+<priority>MINOR</priority>
     <name><![CDATA[Consecutive Literal Appends]]></name>
     <configKey><![CDATA[rulesets/strings.xml/ConsecutiveLiteralAppends]]></configKey>
 
@@ -1563,39 +1721,45 @@ public class Foo {
 
     </param>
   </rule>
-  <rule key="UseIndexOfChar" priority="MAJOR">
+  <rule key="UseIndexOfChar" >
+<priority>MAJOR</priority>
     <name><![CDATA[Use Index Of Char]]></name>
     <configKey><![CDATA[rulesets/strings.xml/UseIndexOfChar]]></configKey>
 
     <description><![CDATA[Use String.indexOf(char) when checking for the index of a single character; it executes faster.]]></description>
   </rule>
-  <rule key="InefficientEmptyStringCheck" priority="MAJOR">
+  <rule key="InefficientEmptyStringCheck" >
+<priority>MAJOR</priority>
     <name><![CDATA[Inefficient Empty String Check]]></name>
     <configKey><![CDATA[rulesets/strings.xml/InefficientEmptyStringCheck]]></configKey>
 
     <description>
       <![CDATA[String.trim().length() is an inefficient way to check if a String is really empty, as it creates a new String object just to check its size. Consider creating a static function that loops through a string, checking Character.isWhitespace() on each character and returning false if a non-whitespace character is found.]]></description>
   </rule>
-  <rule key="InsufficientStringBufferDeclaration" priority="MAJOR">
+  <rule key="InsufficientStringBufferDeclaration" >
+<priority>MAJOR</priority>
     <name><![CDATA[Insufficient String Buffer Declaration]]></name>
     <configKey><![CDATA[rulesets/strings.xml/InsufficientStringBufferDeclaration]]></configKey>
 
     <description>
       <![CDATA[Failing to pre-size a StringBuffer properly could cause it to re-size many times during runtime. This rule checks the characters that are actually passed into StringBuffer.append(), but represents a best guess worst case scenario. An empty StringBuffer constructor initializes the object to 16 characters. This default is assumed if the length of the constructor can not be determined.]]></description>
   </rule>
-  <rule key="UselessStringValueOf" priority="MINOR">
+  <rule key="UselessStringValueOf" >
+<priority>MINOR</priority>
     <name><![CDATA[Useless String Value Of]]></name>
     <configKey><![CDATA[rulesets/strings.xml/UselessStringValueOf]]></configKey>
 
     <description><![CDATA[No need to call String.valueOf to append to a string; just use the valueOf() argument directly.]]></description>
   </rule>
-  <rule key="StringBufferInstantiationWithChar" priority="MAJOR">
+  <rule key="StringBufferInstantiationWithChar" >
+<priority>MAJOR</priority>
     <name><![CDATA[String Buffer Instantiation With Char]]></name>
     <configKey><![CDATA[rulesets/strings.xml/StringBufferInstantiationWithChar]]></configKey>
     
     <description><![CDATA[StringBuffer sb = new StringBuffer('c'); The char will be converted into int to intialize StringBuffer size. ]]></description>
   </rule>
-  <rule key="ExcessiveMethodLength" priority="MAJOR">
+  <rule key="ExcessiveMethodLength" >
+<priority>MAJOR</priority>
     <name><![CDATA[Excessive Method Length]]></name>
     <configKey><![CDATA[rulesets/codesize.xml/ExcessiveMethodLength]]></configKey>
     
@@ -1606,7 +1770,8 @@ public class Foo {
 
     </param>
   </rule>
-  <rule key="ExcessiveParameterList" priority="MAJOR">
+  <rule key="ExcessiveParameterList" >
+<priority>MAJOR</priority>
     <name><![CDATA[Excessive Parameter List]]></name>
     <configKey><![CDATA[rulesets/codesize.xml/ExcessiveParameterList]]></configKey>
     
@@ -1617,7 +1782,8 @@ public class Foo {
 
     </param>
   </rule>
-  <rule key="ExcessiveClassLength" priority="MAJOR">
+  <rule key="ExcessiveClassLength" >
+<priority>MAJOR</priority>
     <name><![CDATA[Excessive Class Length]]></name>
     <configKey><![CDATA[rulesets/codesize.xml/ExcessiveClassLength]]></configKey>
     
@@ -1628,7 +1794,8 @@ public class Foo {
 
     </param>
   </rule>
-  <rule key="ExcessivePublicCount" priority="MAJOR">
+  <rule key="ExcessivePublicCount" >
+<priority>MAJOR</priority>
     <name><![CDATA[Excessive Public Count]]></name>
     <configKey><![CDATA[rulesets/codesize.xml/ExcessivePublicCount]]></configKey>
     
@@ -1639,7 +1806,8 @@ public class Foo {
 
     </param>
   </rule>
-  <rule key="TooManyFields" priority="MAJOR">
+  <rule key="TooManyFields" >
+<priority>MAJOR</priority>
     <name><![CDATA[Too Many Fields]]></name>
     <configKey><![CDATA[rulesets/codesize.xml/TooManyFields]]></configKey>
     
@@ -1650,7 +1818,8 @@ public class Foo {
 
     </param>
   </rule>
-  <rule key="NcssMethodCount" priority="MAJOR">
+  <rule key="NcssMethodCount" >
+<priority>MAJOR</priority>
     <name><![CDATA[Ncss Method Count]]></name>
     <configKey><![CDATA[rulesets/codesize.xml/NcssMethodCount]]></configKey>
     
@@ -1660,7 +1829,8 @@ public class Foo {
       <description><![CDATA[The method NCSS count reporting threshold. Default is 100.]]></description>
     </param>
   </rule>
-  <rule key="NcssTypeCount" priority="MAJOR">
+  <rule key="NcssTypeCount" >
+<priority>MAJOR</priority>
     <name><![CDATA[Ncss Type Count]]></name>
     <configKey><![CDATA[rulesets/codesize.xml/NcssTypeCount]]></configKey>
     
@@ -1670,7 +1840,8 @@ public class Foo {
       <description><![CDATA[The type NCSS count reporting threshold. Default is 1500.]]></description>
     </param>
   </rule>
-  <rule key="NcssConstructorCount" priority="MAJOR">
+  <rule key="NcssConstructorCount" >
+<priority>MAJOR</priority>
     <name><![CDATA[Ncss Constructor Count]]></name>
     <configKey><![CDATA[rulesets/codesize.xml/NcssConstructorCount]]></configKey>
     
@@ -1680,37 +1851,43 @@ public class Foo {
       <description><![CDATA[The constructor NCSS count reporting threshold. Default is 100.]]></description>
     </param>
   </rule>
-  <rule key="DuplicateImports" priority="MINOR">
+  <rule key="DuplicateImports" >
+<priority>MINOR</priority>
     <name><![CDATA[Duplicate Imports]]></name>
     <configKey><![CDATA[rulesets/imports.xml/DuplicateImports]]></configKey>
     
     <description><![CDATA[Avoid duplicate import statements.]]></description>
   </rule>
-  <rule key="DontImportJavaLang" priority="MINOR">
+  <rule key="DontImportJavaLang" >
+<priority>MINOR</priority>
     <name><![CDATA[Dont Import Java Lang]]></name>
     <configKey><![CDATA[rulesets/imports.xml/DontImportJavaLang]]></configKey>
     
     <description><![CDATA[Avoid importing anything from the package 'java.lang'. These classes are automatically imported (JLS 7.5.3).]]></description>
   </rule>
-  <rule key="ImportFromSamePackage" priority="MINOR">
+  <rule key="ImportFromSamePackage" >
+<priority>MINOR</priority>
     <name><![CDATA[Import From Same Package]]></name>
     <configKey><![CDATA[rulesets/imports.xml/ImportFromSamePackage]]></configKey>
     
     <description><![CDATA[No need to import a type that lives in the same package.]]></description>
   </rule>
-  <rule key="CloneThrowsCloneNotSupportedException" priority="MAJOR">
+  <rule key="CloneThrowsCloneNotSupportedException" >
+<priority>MAJOR</priority>
     <name><![CDATA[Clone Throws Clone Not Supported Exception]]></name>
     <configKey><![CDATA[rulesets/clone.xml/CloneThrowsCloneNotSupportedException]]></configKey>
     
     <description><![CDATA[The method clone() should throw a CloneNotSupportedException.]]></description>
   </rule>
-  <rule key="UseCorrectExceptionLogging" priority="MAJOR">
+  <rule key="UseCorrectExceptionLogging" >
+<priority>MAJOR</priority>
     <name><![CDATA[Use Correct Exception Logging]]></name>
     <configKey><![CDATA[rulesets/logging-jakarta-commons.xml/UseCorrectExceptionLogging]]></configKey>
     
     <description><![CDATA[To make sure the full stacktrace is printed out, use the logging statement with 2 arguments: a String and a Throwable.]]></description>
   </rule>
-  <rule key="ProperLogger" priority="MAJOR">
+  <rule key="ProperLogger" >
+<priority>MAJOR</priority>
     <name><![CDATA[Proper Logger]]></name>
     <configKey><![CDATA[rulesets/logging-jakarta-commons.xml/ProperLogger]]></configKey>
     
@@ -1721,13 +1898,15 @@ public class Foo {
 
     </param>
   </rule>
-  <rule key="ShortVariable" priority="MAJOR">
+  <rule key="ShortVariable" >
+<priority>MAJOR</priority>
     <name><![CDATA[Short Variable]]></name>
     <configKey><![CDATA[rulesets/naming.xml/ShortVariable]]></configKey>
     
     <description><![CDATA[Detects when a field, local, or parameter has a very short name.]]></description>
   </rule>
-  <rule key="LongVariable" priority="MAJOR">
+  <rule key="LongVariable" >
+<priority>MAJOR</priority>
     <name><![CDATA[Long Variable]]></name>
     <configKey><![CDATA[rulesets/naming.xml/LongVariable]]></configKey>
     
@@ -1737,7 +1916,8 @@ public class Foo {
 
     </param>
   </rule>
-  <rule key="ShortMethodName" priority="MAJOR">
+  <rule key="ShortMethodName" >
+<priority>MAJOR</priority>
     <name><![CDATA[Naming - Short method name]]></name>
     <configKey><![CDATA[rulesets/naming.xml/ShortMethodName]]></configKey>
     
@@ -1749,7 +1929,8 @@ public class ShortMethod {
 }
 </pre>]]></description>
   </rule>
-  <rule key="VariableNamingConventions" priority="MAJOR">
+  <rule key="VariableNamingConventions" >
+<priority>MAJOR</priority>
     <name><![CDATA[Naming - Variable naming conventions]]></name>
     <configKey><![CDATA[rulesets/naming.xml/VariableNamingConventions]]></configKey>
     
@@ -1772,7 +1953,8 @@ public class ShortMethod {
 
     </param>
   </rule>
-  <rule key="MethodNamingConventions" priority="MAJOR">
+  <rule key="MethodNamingConventions" >
+<priority>MAJOR</priority>
     <name><![CDATA[Naming - Method naming conventions]]></name>
     <configKey>rulesets/naming.xml/MethodNamingConventions</configKey>
     
@@ -1784,19 +1966,22 @@ public class Foo {
   }
 }]]></description>
   </rule>
-  <rule key="ClassNamingConventions" priority="MAJOR">
+  <rule key="ClassNamingConventions" >
+<priority>MAJOR</priority>
     <name><![CDATA[Naming - Class naming conventions]]></name>
     <configKey><![CDATA[rulesets/naming.xml/ClassNamingConventions]]></configKey>
     
     <description><![CDATA[Class names should always begin with an upper case character.]]></description>
   </rule>
-  <rule key="AvoidDollarSigns" priority="MINOR">
+  <rule key="AvoidDollarSigns" >
+<priority>MINOR</priority>
     <name><![CDATA[Naming - Avoid dollar signs]]></name>
     <configKey><![CDATA[rulesets/naming.xml/AvoidDollarSigns]]></configKey>
     
     <description><![CDATA[Avoid using dollar signs in variable/method/class/interface names.]]></description>
   </rule>
-  <rule key="MethodWithSameNameAsEnclosingClass" priority="MAJOR">
+  <rule key="MethodWithSameNameAsEnclosingClass" >
+<priority>MAJOR</priority>
     <name><![CDATA[Naming - Method with same name as enclosing class]]></name>
     <configKey><![CDATA[rulesets/naming.xml/MethodWithSameNameAsEnclosingClass]]></configKey>
     
@@ -1810,7 +1995,8 @@ public class MyClass {
 }
 </pre>]]></description>
   </rule>
-  <rule key="SuspiciousHashcodeMethodName" priority="MAJOR">
+  <rule key="SuspiciousHashcodeMethodName" >
+<priority>MAJOR</priority>
     <name><![CDATA[Naming - Suspicious Hashcode method name]]></name>
     <configKey><![CDATA[rulesets/naming.xml/SuspiciousHashcodeMethodName]]></configKey>
     
@@ -1822,7 +2008,8 @@ public class Foo {
   }
 }</pre>]]></description>
   </rule>
-  <rule key="SuspiciousConstantFieldName" priority="MAJOR">
+  <rule key="SuspiciousConstantFieldName" >
+<priority>MAJOR</priority>
     <name><![CDATA[Naming - Suspicious constant field name]]></name>
     <configKey><![CDATA[rulesets/naming.xml/SuspiciousConstantFieldName]]></configKey>
     
@@ -1836,7 +2023,8 @@ public class Foo {
 }
 </pre>]]></description>
   </rule>
-  <rule key="SuspiciousEqualsMethodName" priority="CRITICAL">
+  <rule key="SuspiciousEqualsMethodName" >
+<priority>CRITICAL</priority>
     <name><![CDATA[Naming - Suspicious equals method name]]></name>
     <configKey><![CDATA[rulesets/naming.xml/SuspiciousEqualsMethodName]]></configKey>
     
@@ -1853,7 +2041,8 @@ public class Foo {
 }
 </pre>]]></description>
   </rule>
-  <rule key="AvoidFieldNameMatchingTypeName" priority="MAJOR">
+  <rule key="AvoidFieldNameMatchingTypeName" >
+<priority>MAJOR</priority>
     <name><![CDATA[Naming - Avoid field name matching type name]]></name>
     <configKey><![CDATA[rulesets/naming.xml/AvoidFieldNameMatchingTypeName]]></configKey>
     
@@ -1866,7 +2055,8 @@ public class Foo extends Bar {
 }
 </pre>]]></description>
   </rule>
-  <rule key="AvoidFieldNameMatchingMethodName" priority="MAJOR">
+  <rule key="AvoidFieldNameMatchingMethodName" >
+<priority>MAJOR</priority>
     <name><![CDATA[Naming - Avoid field name matching method name]]></name>
     <configKey><![CDATA[rulesets/naming.xml/AvoidFieldNameMatchingMethodName]]></configKey>
     
@@ -1881,7 +2071,8 @@ public class Foo {
 }
 </pre>]]></description>
   </rule>
-  <rule key="MisleadingVariableName" priority="MAJOR">
+  <rule key="MisleadingVariableName" >
+<priority>MAJOR</priority>
     <name><![CDATA[Naming - Misleading variable name]]></name>
     <configKey><![CDATA[rulesets/naming.xml/MisleadingVariableName]]></configKey>
     
@@ -1895,91 +2086,106 @@ public class Foo {
 }
 </pre>]]></description>
   </rule>
-  <rule key="ReplaceVectorWithList" priority="MAJOR">
+  <rule key="ReplaceVectorWithList" >
+<priority>MAJOR</priority>
     <name><![CDATA[Replace Vector With List]]></name>
     <configKey><![CDATA[rulesets/migrating.xml/ReplaceVectorWithList]]></configKey>
 
     <description><![CDATA[Consider replacing Vector usages with the newer java.util.ArrayList if expensive threadsafe operation is not required.]]></description>
   </rule>
-  <rule key="ReplaceHashtableWithMap" priority="MAJOR">
+  <rule key="ReplaceHashtableWithMap" >
+<priority>MAJOR</priority>
     <name><![CDATA[Replace Hashtable With Map]]></name>
     <configKey><![CDATA[rulesets/migrating.xml/ReplaceHashtableWithMap]]></configKey>
 
     <description><![CDATA[Consider replacing this Hashtable with the newer java.util.Map]]></description>
   </rule>
-  <rule key="ReplaceEnumerationWithIterator" priority="MAJOR">
+  <rule key="ReplaceEnumerationWithIterator" >
+<priority>MAJOR</priority>
     <name><![CDATA[Replace Enumeration With Iterator]]></name>
     <configKey><![CDATA[rulesets/migrating.xml/ReplaceEnumerationWithIterator]]></configKey>
 
     <description><![CDATA[Consider replacing this Enumeration with the newer java.util.Iterator]]></description>
   </rule>
-  <rule key="AvoidEnumAsIdentifier" priority="MAJOR">
+  <rule key="AvoidEnumAsIdentifier" >
+<priority>MAJOR</priority>
     <name><![CDATA[Avoid Enum As Identifier]]></name>
     <configKey><![CDATA[rulesets/migrating.xml/AvoidEnumAsIdentifier]]></configKey>
 
     <description><![CDATA[Finds all places 'enum' is used as an identifier is used.]]></description>
   </rule>
-  <rule key="AvoidAssertAsIdentifier" priority="MAJOR">
+  <rule key="AvoidAssertAsIdentifier" >
+<priority>MAJOR</priority>
     <name><![CDATA[Avoid Assert As Identifier]]></name>
     <configKey><![CDATA[rulesets/migrating.xml/AvoidAssertAsIdentifier]]></configKey>
 
     <description><![CDATA[Finds all places 'assert' is used as an identifier is used.]]></description>
   </rule>
-  <rule key="IntegerInstantiation" priority="MAJOR">
+  <rule key="IntegerInstantiation" >
+<priority>MAJOR</priority>
     <name><![CDATA[Integer Instantiation]]></name>
     <configKey><![CDATA[rulesets/migrating.xml/IntegerInstantiation]]></configKey>
 
     <description><![CDATA[In JDK 1.5, calling new Integer() causes memory allocation. Integer.valueOf() is more memory friendly.]]></description>
   </rule>
-  <rule key="MoreThanOneLogger" priority="MAJOR">
+  <rule key="MoreThanOneLogger" >
+<priority>MAJOR</priority>
     <name><![CDATA[More Than One Logger]]></name>
     <configKey><![CDATA[rulesets/logging-java.xml/MoreThanOneLogger]]></configKey>
     
     <description><![CDATA[Normally only one logger is used in each class.]]></description>
   </rule>
-  <rule key="LoggerIsNotStaticFinal" priority="MAJOR">
+  <rule key="LoggerIsNotStaticFinal" >
+<priority>MAJOR</priority>
     <name><![CDATA[Logger Is Not Static Final]]></name>
     <configKey><![CDATA[rulesets/logging-java.xml/LoggerIsNotStaticFinal]]></configKey>
 
     <description><![CDATA[In most cases, the Logger can be declared static and final.]]></description>
   </rule>
-  <rule key="SystemPrintln" priority="MAJOR">
+  <rule key="SystemPrintln" >
+<priority>MAJOR</priority>
     <name><![CDATA[System Println]]></name>
     <configKey><![CDATA[rulesets/logging-java.xml/SystemPrintln]]></configKey>
     
     <description><![CDATA[System.(out|err).print is used, consider using a logger.]]></description>
   </rule>
-  <rule key="AvoidPrintStackTrace" priority="MAJOR">
+  <rule key="AvoidPrintStackTrace" >
+<priority>MAJOR</priority>
     <name><![CDATA[Avoid Print Stack Trace]]></name>
     <configKey><![CDATA[rulesets/logging-java.xml/AvoidPrintStackTrace]]></configKey>
     
     <description><![CDATA[Avoid printStackTrace(); use a logger call instead.]]></description>
   </rule>
-  <rule key="IfStmtsMustUseBraces" priority="MAJOR">
+  <rule key="IfStmtsMustUseBraces" >
+<priority>MAJOR</priority>
     <name><![CDATA[If Stmts Must Use Braces]]></name>
     <configKey><![CDATA[rulesets/braces.xml/IfStmtsMustUseBraces]]></configKey>
     
     <description><![CDATA[Avoid using if statements without using curly braces.]]></description>
   </rule>
-  <rule key="WhileLoopsMustUseBraces" priority="MAJOR">
+  <rule key="WhileLoopsMustUseBraces" >
+<priority>MAJOR</priority>
     <name><![CDATA[While Loops Must Use Braces]]></name>
     <configKey><![CDATA[rulesets/braces.xml/WhileLoopsMustUseBraces]]></configKey>
     
     <description><![CDATA[Avoid using 'while' statements without using curly braces.]]></description>
   </rule>
-  <rule key="IfElseStmtsMustUseBraces" priority="MAJOR">
+  <rule key="IfElseStmtsMustUseBraces" >
+<priority>MAJOR</priority>
     <name><![CDATA[If Else Stmts Must Use Braces]]></name>
     <configKey><![CDATA[rulesets/braces.xml/IfElseStmtsMustUseBraces]]></configKey>
     
     <description><![CDATA[Avoid using if..else statements without using curly braces.]]></description>
   </rule>
-  <rule key="ForLoopsMustUseBraces" priority="MAJOR">
+  <rule key="ForLoopsMustUseBraces" >
+<priority>MAJOR</priority>
     <name><![CDATA[For Loops Must Use Braces]]></name>
     <configKey><![CDATA[rulesets/braces.xml/ForLoopsMustUseBraces]]></configKey>
     
     <description><![CDATA[Avoid using 'for' statements without using curly braces, like <code>for (int i=0; i<42;i++) foo();</code>]]></description>
   </rule>
-  <rule key="AvoidUsingHardCodedIP" priority="MAJOR">
+  <rule key="AvoidUsingHardCodedIP" >
+<priority>MAJOR</priority>
     <name><![CDATA[Avoid Using Hard Coded IP]]></name>
     <configKey><![CDATA[rulesets/basic.xml/AvoidUsingHardCodedIP]]></configKey>
     
@@ -1989,42 +2195,48 @@ public class Foo {
 
     </param>
   </rule>
-  <rule key="CheckResultSet" priority="MAJOR">
+  <rule key="CheckResultSet" >
+<priority>MAJOR</priority>
     <name><![CDATA[Check ResultSet]]></name>
     <configKey><![CDATA[rulesets/basic.xml/CheckResultSet]]></configKey>
     
     <description>
       <![CDATA[Always check the return of one of the navigation method (next,previous,first,last) of a ResultSet. Indeed, if the value return is "false", the developer should deal with it !]]></description>
   </rule>
-  <rule key="AvoidUsingShortType" priority="MAJOR">
+  <rule key="AvoidUsingShortType" >
+<priority>MAJOR</priority>
     <name><![CDATA[Avoid Using Short Type]]></name>
     <configKey><![CDATA[rulesets/controversial.xml/AvoidUsingShortType]]></configKey>
 
     <description>
       <![CDATA[Java uses the short type to reduce memory usage, not to optimize calculation. On the contrary, the jvm does not has an arithmetic capabilities with the type short. So, the P-code must convert the short into int, then do the proper caculation and then again, convert int to short. So, use of the "short" type may have a great effect on memory usage.]]></description>
   </rule>
-  <rule key="AvoidUsingVolatile" priority="MAJOR">
+  <rule key="AvoidUsingVolatile" >
+<priority>MAJOR</priority>
     <name><![CDATA[Avoid Using Volatile]]></name>
     <configKey><![CDATA[rulesets/controversial.xml/AvoidUsingVolatile]]></configKey>
     
     <description>
       <![CDATA[Use of the keyword "volatile" is general used to fine tune a Java application, and therefore, requires a good expertise of the Java Memory Model. Morover, its range of action is somewhat misknown. Therefore, the volatile keyword should not be used for maintenance purpose and portability.]]></description>
   </rule>
-  <rule key="AvoidUsingNativeCode" priority="MAJOR">
+  <rule key="AvoidUsingNativeCode" >
+<priority>MAJOR</priority>
     <name><![CDATA[Avoid Using Native Code]]></name>
     <configKey><![CDATA[rulesets/controversial.xml/AvoidUsingNativeCode]]></configKey>
 
     <description>
       <![CDATA[As JVM and Java language offer already many help in creating application, it should be very rare to have to rely on non-java code. Even though, it is rare to actually have to use Java Native Interface (JNI). As the use of JNI make application less portable, and harder to maintain, it is not recommended.]]></description>
   </rule>
-  <rule key="AvoidAccessibilityAlteration" priority="MAJOR">
+  <rule key="AvoidAccessibilityAlteration" >
+<priority>MAJOR</priority>
     <name><![CDATA[Avoid Accessibility Alteration]]></name>
     <configKey><![CDATA[rulesets/controversial.xml/AvoidAccessibilityAlteration]]></configKey>
     
     <description>
       <![CDATA[Methods such as getDeclaredConstructors(), getDeclaredConstructor(Class[]) and setAccessible(), as the interface PrivilegedAction, allow to alter, at runtime, the visilibilty of variable, classes, or methods, even if they are private. Obviously, no one should do so, as such behavior is against everything encapsulation principal stands for.]]></description>
   </rule>
-  <rule key="EmptyMethodInAbstractClassShouldBeAbstract" priority="MAJOR">
+  <rule key="EmptyMethodInAbstractClassShouldBeAbstract" >
+<priority>MAJOR</priority>
     <name><![CDATA[Empty Method In Abstract Class Should Be Abstract]]></name>
     <configKey><![CDATA[rulesets/design.xml/EmptyMethodInAbstractClassShouldBeAbstract]]></configKey>
     
@@ -2045,7 +2257,8 @@ public abstract class ShouldBeAbstract
 }
 </pre>]]></description>
   </rule>
-  <rule key="TooManyStaticImports" priority="MAJOR">
+  <rule key="TooManyStaticImports" >
+<priority>MAJOR</priority>
     <name><![CDATA[Too Many Static Imports]]></name>
     <configKey><![CDATA[rulesets/imports.xml/TooManyStaticImports]]></configKey>
     
@@ -2056,74 +2269,86 @@ public abstract class ShouldBeAbstract
 
     </param>
   </rule>
-  <rule key="DoNotCallSystemExit" priority="MAJOR">
+  <rule key="DoNotCallSystemExit" >
+<priority>MAJOR</priority>
     <name><![CDATA[Do Not Call System Exit]]></name>
     <configKey><![CDATA[rulesets/j2ee.xml/DoNotCallSystemExit]]></configKey>
     
     <description><![CDATA[Web applications should not call System.exit(), since only the web container or the application server should stop the JVM.]]></description>
   </rule>
-  <rule key="StaticEJBFieldShouldBeFinal" priority="MAJOR">
+  <rule key="StaticEJBFieldShouldBeFinal" >
+<priority>MAJOR</priority>
     <name><![CDATA[Static EJB Field Should Be Final]]></name>
     <configKey><![CDATA[rulesets/j2ee.xml/StaticEJBFieldShouldBeFinal]]></configKey>
     
     <description>
       <![CDATA[According to the J2EE specification (p.494), an EJB should not have any static fields with write access. However, static read only fields are allowed. This ensures proper behavior especially when instances are distributed by the container on several JREs.]]></description>
   </rule>
-  <rule key="DoNotUseThreads" priority="MAJOR">
+  <rule key="DoNotUseThreads" >
+<priority>MAJOR</priority>
     <name><![CDATA[Do Not Use Threads]]></name>
     <configKey><![CDATA[rulesets/j2ee.xml/DoNotUseThreads]]></configKey>
     
     <description><![CDATA[The J2EE specification explicitly forbid use of threads.]]></description>
   </rule>
-  <rule key="MDBAndSessionBeanNamingConvention" priority="MAJOR">
+  <rule key="MDBAndSessionBeanNamingConvention" >
+<priority>MAJOR</priority>
     <name><![CDATA[Message Driven Bean And Session Bean Naming Convention]]></name>
     <configKey><![CDATA[rulesets/j2ee.xml/MDBAndSessionBeanNamingConvention]]></configKey>
     
     <description><![CDATA[The EJB Specification state that any MessageDrivenBean or SessionBean should be suffixed by Bean.]]></description>
   </rule>
-  <rule key="RemoteSessionInterfaceNamingConvention" priority="MAJOR">
+  <rule key="RemoteSessionInterfaceNamingConvention" >
+<priority>MAJOR</priority>
     <name><![CDATA[Remote Session Interface Naming Convention]]></name>
     <configKey><![CDATA[rulesets/j2ee.xml/RemoteSessionInterfaceNamingConvention]]></configKey>
     
     <description><![CDATA[Remote Home interface of a Session EJB should be suffixed by "Home".]]></description>
   </rule>
-  <rule key="LocalInterfaceSessionNamingConvention" priority="MAJOR">
+  <rule key="LocalInterfaceSessionNamingConvention" >
+<priority>MAJOR</priority>
     <name><![CDATA[Local Interface Session Naming Convention]]></name>
     <configKey><![CDATA[rulesets/j2ee.xml/LocalInterfaceSessionNamingConvention]]></configKey>
     
     <description><![CDATA[The Local Interface of a Session EJB should be suffixed by "Local".]]></description>
   </rule>
-  <rule key="LocalHomeNamingConvention" priority="MAJOR">
+  <rule key="LocalHomeNamingConvention" >
+<priority>MAJOR</priority>
     <name><![CDATA[Local Home Naming Convention]]></name>
     <configKey><![CDATA[rulesets/j2ee.xml/LocalHomeNamingConvention]]></configKey>
     
     <description><![CDATA[The Local Home interface of a Session EJB should be suffixed by "LocalHome".]]></description>
   </rule>
-  <rule key="RemoteInterfaceNamingConvention" priority="MAJOR">
+  <rule key="RemoteInterfaceNamingConvention" >
+<priority>MAJOR</priority>
     <name><![CDATA[Remote Interface Naming Convention]]></name>
     <configKey><![CDATA[rulesets/j2ee.xml/RemoteInterfaceNamingConvention]]></configKey>
     
     <description><![CDATA[Remote Interface of a Session EJB should NOT be suffixed.]]></description>
   </rule>
-  <rule key="UseEqualsToCompareStrings" priority="MAJOR">
+  <rule key="UseEqualsToCompareStrings" >
+<priority>MAJOR</priority>
     <name><![CDATA[Use Equals To Compare Strings]]></name>
     <configKey><![CDATA[rulesets/strings.xml/UseEqualsToCompareStrings]]></configKey>
     
     <description><![CDATA[Using "==" or "!=" to compare strings only works if intern version is used on both sides.]]></description>
   </rule>
-  <rule key="DoNotExtendJavaLangError" priority="MAJOR">
+  <rule key="DoNotExtendJavaLangError" >
+<priority>MAJOR</priority>
     <name><![CDATA[Do Not Extend Java Lang Error]]></name>
     <configKey><![CDATA[rulesets/strictexception.xml/DoNotExtendJavaLangError]]></configKey>
     
     <description><![CDATA[Errors are system exceptions. Do not extend them.]]></description>
   </rule>
-  <rule key="AddEmptyString" priority="MAJOR">
+  <rule key="AddEmptyString" >
+<priority>MAJOR</priority>
     <name><![CDATA[Add Empty String]]></name>
     <configKey><![CDATA[rulesets/optimizations.xml/AddEmptyString]]></configKey>
 
     <description><![CDATA[Finds empty string literals which are being added. This is an inefficient way to convert any type to a String.]]></description>
   </rule>
-  <rule key="BooleanGetMethodName" priority="MAJOR">
+  <rule key="BooleanGetMethodName" >
+<priority>MAJOR</priority>
     <name><![CDATA[Boolean Get Method Name]]></name>
     <configKey><![CDATA[rulesets/naming.xml/BooleanGetMethodName]]></configKey>
     
@@ -2133,7 +2358,8 @@ public abstract class ShouldBeAbstract
 
     </param>
   </rule>
-  <rule key="XPathRule" priority="MAJOR">
+  <rule key="XPathRule" >
+<priority>MAJOR</priority>
     <name><![CDATA[XPath rule template]]></name>
     <configKey><![CDATA[net.sourceforge.pmd.rules.XPathRule]]></configKey>