Comparison between attributes, requires an Equal type class for QNames
Comparison for attributes, requires a comparison for individual attributes, allowing flexible definitions of equality
ComparisonContext represents both the path to a given comparison and the namespace declarations which are relevant for it.
Provides an immplicit to easily access the head QName in a path
Streams compared after transforming via joinTextAndCData
All CData nodes are converted to text nodes, adjoining Text nodes (including CData) are joined.
Their size is different
When types are different, or an end element vs XmlEvent
Re-packs the AttributeValueDifference, but will only occur when the attributes QName is present
Compares neither of the version, DTD nor encoding of a document, but prolog and end misc.
Wrap the creation of doclike things
Base wrapper for most usecases, extra type is here to keep lookup working
If the difference is due to an attribute thats included as well
Namespaces by default are not compared.
Namespaces by default are not compared. They aren't marked as implicit as you really have to be explicitly wanting to compare them.
An Attributes comparison and a QName Equal instance are required. This also allows, for example, specification of equality using prefixes for the Elem, but not on the Attributes.
This can only be returned when an ElemComparisom has been suplied with a custom namespaces implementation.
All default exact Xml Equal and XmlComparison trait instances.
All default exact Xml Equal and XmlComparison trait instances.
CData, Comments, PI are all kept as is, DTD, encoding and prolog etc are not. Text nodes are not joined. Use LogicalXmlEquals to focus more on content only.
Modifies the stream to turn CData nodes into Text nodes and join all adjacent Text nodes togeter i.e.
Modifies the stream to turn CData nodes into Text nodes and join all adjacent Text nodes togeter i.e. a "tree" with children (Text, CData, Text, CData) will become a single Text child.
CData can be kept if keepCData is set to true
The size is the same but one of lefts qnames is not present in right
Makes the given path the top path
Only added to provide a complete compare
set
This interface allows for non xml matching, for example a forward Iterator from a Text child.
This interface allows for non xml matching, for example a forward Iterator from a Text child. This would be impossible to model as an xml document, but could be useful for comparison.
This trait boxes a given conversion, stopping accidental serialize calls on the resulting streams.
Collection of all implicit conversions to StreamComparables.
Collection of all implicit conversions to StreamComparables.
NOTE: The results are only usable with compare / ===, and should not be used to serialize
Compares based on streams.
Compares based on streams. Requires comparisons for XmlItem, Elem and a QName Equal instance for testing EndElems.
Wraps a given T with a conversion from T to an xml stream
For Iterator[PullType]s that actually are, lets help the inference and implicit lookup out
Like Equals but also gives a path in addition to the fun reason
Why did equality fail, pattern match fun
Base functions for equality
Compares XmlItems, providing Some qnameTokenComparison will force that to be used to decide if qname comparison should be used or not
Comparisoms built on exact qname comparisom, prefixes can be important for some systems
Provides simple access to ExactXmlEquals
A collection of stream filters to help with equality
Magik object for when we aren't attempting to calculate whats wrong
Make it available without dragging the rest of the world in
Compares neither of the version, DTD nor encoding of a document, but prolog and end misc. Requires a @T that can be converted to a DocLike and a body @B. B must have an XmlComparison available and there must exist conversions from T to DocLike and T to B.