Interface DifferenceEngine

All Known Implementing Classes:
AbstractDifferenceEngine, DOMDifferenceEngine

public interface DifferenceEngine
XMLUnit's difference engine.
  • Method Details

    • addComparisonListener

      void addComparisonListener(ComparisonListener l)
      Registers a listener that is notified of each comparison.
      Parameters:
      l - the listener to add
    • addMatchListener

      void addMatchListener(ComparisonListener l)
      Registers a listener that is notified of each comparison with outcome ComparisonResult.EQUAL.
      Parameters:
      l - the listener to add
    • addDifferenceListener

      void addDifferenceListener(ComparisonListener l)
      Registers a listener that is notified of each comparison with outcome other than ComparisonResult.EQUAL.
      Parameters:
      l - the listener to add
    • setNodeMatcher

      void setNodeMatcher(NodeMatcher n)
      Sets the strategy for selecting nodes to compare.
      Parameters:
      n - the strategy to use
    • setAttributeFilter

      void setAttributeFilter(Predicate<Attr> attributeFilter)
      Sets the optional strategy that decides which attributes to consider and which to ignore during comparison.

      Only attributes for which the predicate returns true are part of the comparison. By default all attributes are considered.

      The "special" namespace, namespace-location and schema-instance-type attributes can not be ignored this way. If you want to suppress comparison of them you'll need to implement DifferenceEvaluator.

      Note that NodeMatcher will not by aware of the configured attribute filter and if its decision is based on attributes it will in general also consider attributes the filter would suppress.

      Parameters:
      attributeFilter - the strategy to use
    • setNodeFilter

      void setNodeFilter(Predicate<Node> nodeFilter)
      Sets the optional strategy that decides which nodes to consider and which to ignore during comparison.

      Only nodes for which the predicate returns true are part of the comparison. By default nodes that are not document types are considered.

      Parameters:
      nodeFilter - the strategy to use
    • setDifferenceEvaluator

      void setDifferenceEvaluator(DifferenceEvaluator e)
      Evaluates the severity of a difference.
      Parameters:
      e - the evaluator to use
    • setComparisonController

      void setComparisonController(ComparisonController c)
      Determines whether the comparison should stop after given difference has been found.
      Parameters:
      c - the controller to use
    • setNamespaceContext

      void setNamespaceContext(Map<String,String> prefix2Uri)
      Establish a namespace context that will be used in Comparison.Detail#getXPath.

      Without a namespace context (or with an empty context) the XPath expressions will only use local names for elements and attributes.

      Parameters:
      prefix2Uri - maps from prefix to namespace URI.
    • compare

      void compare(Source control, Source test)
      Compares two pieces of XML and invokes the registered listeners.
      Parameters:
      control - the reference source of "good" XML
      test - the source under test to compare against control