Package org.custommonkey.xmlunit
Class Diff
java.lang.Object
org.custommonkey.xmlunit.Diff
- All Implemented Interfaces:
ComparisonController,DifferenceListener
- Direct Known Subclasses:
DetailedDiff
Compares and describes any difference between XML documents.
Two documents are either:
The difference between compared documents is contained in a message buffer held in this class, accessible either through the
Examples and more at xmlunit.sourceforge.net
- identical: the content and sequence of the nodes in the documents are exactly the same
- similar: the content of the nodes in the documents are the same, but minor differences exist e.g. sequencing of sibling elements, values of namespace prefixes, use of implied attribute values
- different: the contents of the documents are fundamentally different
The difference between compared documents is contained in a message buffer held in this class, accessible either through the
appendMessage
or toString methods. NB: When comparing documents, the
comparison is halted as soon as the status (identical / similar / different)
is known with certainty. For a list of all differences between the documents
an instance of the DetailedDiff class can be used
instead.
Examples and more at xmlunit.sourceforge.net
-
Field Summary
Fields inherited from interface org.custommonkey.xmlunit.DifferenceListener
RETURN_ACCEPT_DIFFERENCE, RETURN_IGNORE_DIFFERENCE_NODES_IDENTICAL, RETURN_IGNORE_DIFFERENCE_NODES_SIMILAR, RETURN_UPGRADE_DIFFERENCE_NODES_DIFFERENT -
Constructor Summary
ConstructorsModifierConstructorDescriptionConstruct a Diff that compares the XML read from two ReadersConstruct a Diff that compares the XML in two StringsConstruct a Diff that compares the XML in a control Document against the result of a transformationConstruct a Diff that compares the XML in two JAXP DOMSourcesprotectedConstruct a Diff from a prototypical instance.Construct a Diff that compares the XML in two DocumentsDiff(Document controlDoc, Document testDoc, DifferenceEngine comparator) Construct a Diff that compares the XML in two Documents using a specific DifferenceEngineDiff(Document controlDoc, Document testDoc, DifferenceEngine comparator, ElementQualifier elementQualifier) Construct a Diff that compares the XML in two Documents using a specific DifferenceEngine and ElementQualifierDiff(InputSource control, InputSource test) Construct a Diff that compares the XML read from two JAXP InputSources -
Method Summary
Modifier and TypeMethodDescriptionappendMessage(StringBuffer toAppendTo) Append the message from the result of this Diff instance to a specified StringBufferprotected final voidcompare()Top of the recursive comparison execution treeintdifferenceFound(Difference difference) DifferenceListener implementation.booleanhaltComparison(Difference afterDifference) ComparisonController implementation.booleanReturn the result of a comparison.voidoverrideDifferenceListener(DifferenceListener delegate) Override theDifferenceListenerused to determine how to handle differences that are found.voidoverrideElementQualifier(ElementQualifier delegate) Override theElementQualifierused to determine which control and test nodes are comparable for this difference comparison.voidoverrideMatchTracker(MatchTracker delegate) Override theMatchTrackerused to track successfully matched nodes.booleansimilar()Return the result of a comparison.voidskippedComparison(Node control, Node test) DifferenceListener implementation.toString()Get the result of this Diff instance as a String
-
Constructor Details
-
Diff
Construct a Diff that compares the XML in two Strings- Throws:
SAXExceptionIOException
-
Diff
Construct a Diff that compares the XML read from two Readers- Throws:
SAXExceptionIOException
-
Diff
Construct a Diff that compares the XML in two Documents -
Diff
public Diff(String control, Transform testTransform) throws IOException, TransformerException, SAXException Construct a Diff that compares the XML in a control Document against the result of a transformation -
Diff
Construct a Diff that compares the XML read from two JAXP InputSources- Throws:
SAXExceptionIOException
-
Diff
Construct a Diff that compares the XML in two JAXP DOMSources -
Diff
Construct a Diff that compares the XML in two Documents using a specific DifferenceEngine -
Diff
public Diff(Document controlDoc, Document testDoc, DifferenceEngine comparator, ElementQualifier elementQualifier) Construct a Diff that compares the XML in two Documents using a specific DifferenceEngine and ElementQualifier -
Diff
Construct a Diff from a prototypical instance. Used by extension subclasses- Parameters:
prototype- a prototypical instance
-
-
Method Details
-
compare
protected final void compare()Top of the recursive comparison execution tree -
similar
public boolean similar()Return the result of a comparison. Two documents are considered to be "similar" if they contain the same elements and attributes regardless of order. -
identical
public boolean identical()Return the result of a comparison. Two documents are considered to be "identical" if they contain the same elements and attributes in the same order. -
differenceFound
DifferenceListener implementation. If theoverrideDifferenceListenermethod has been called then the interpretation of the difference will be delegated.- Specified by:
differenceFoundin interfaceDifferenceListener- Parameters:
difference-- Returns:
- a DifferenceListener.RETURN_... constant indicating how the difference was interpreted. Always RETURN_ACCEPT_DIFFERENCE if the call is not delegated.
-
skippedComparison
DifferenceListener implementation. If theoverrideDifferenceListenermethod has been called then the call will be delegated otherwise a message is printed toSystem.err.- Specified by:
skippedComparisonin interfaceDifferenceListener- Parameters:
control-test-- See Also:
-
haltComparison
ComparisonController implementation.- Specified by:
haltComparisonin interfaceComparisonController- Parameters:
afterDifference-- Returns:
- true if the difference is not recoverable and the comparison should be halted, or false if the difference is recoverable and the comparison can continue
- See Also:
-
appendMessage
Append the message from the result of this Diff instance to a specified StringBuffer- Parameters:
toAppendTo-- Returns:
- specified StringBuffer with message appended
-
toString
Get the result of this Diff instance as a StringNote:
This method will perform the comparison and cache the result if it hasn't been performed already. Any configuration changes made after calling this method will be ignored. -
overrideDifferenceListener
Override theDifferenceListenerused to determine how to handle differences that are found.- Parameters:
delegate- the DifferenceListener instance to delegate handling to.
-
overrideElementQualifier
Override theElementQualifierused to determine which control and test nodes are comparable for this difference comparison.- Parameters:
delegate- the ElementQualifier instance to delegate to.
-
overrideMatchTracker
Override theMatchTrackerused to track successfully matched nodes.- Parameters:
delegate- the MatchTracker instance to delegate handling to.
-