Class DeepEqual

All Implemented Interfaces:
Serializable, SourceLocator, Container, Expression, InstructionInfoProvider

public class DeepEqual extends CollatingFunction
XSLT 2.0 deep-equal() function. Supports deep comparison of two sequences (of nodes and/or atomic values) optionally using a collation
See Also:
  • Field Details

    • INCLUDE_NAMESPACES

      public static final int INCLUDE_NAMESPACES
      Flag indicating that two elements should only be considered equal if they have the same in-scope namespaces
      See Also:
    • INCLUDE_PREFIXES

      public static final int INCLUDE_PREFIXES
      Flag indicating that two element or attribute nodes are considered equal only if their names use the same namespace prefix
      See Also:
    • INCLUDE_COMMENTS

      public static final int INCLUDE_COMMENTS
      Flag indicating that comment children are taken into account when comparing element or document nodes
      See Also:
    • INCLUDE_PROCESSING_INSTRUCTIONS

      public static final int INCLUDE_PROCESSING_INSTRUCTIONS
      Flag indicating that processing instruction nodes are taken into account when comparing element or document nodes
      See Also:
    • EXCLUDE_WHITESPACE_TEXT_NODES

      public static final int EXCLUDE_WHITESPACE_TEXT_NODES
      Flag indicating that whitespace text nodes are ignored when comparing element nodes
      See Also:
    • COMPARE_STRING_VALUES

      public static final int COMPARE_STRING_VALUES
      Flag indicating that elements and attributes should always be compared according to their string value, not their typed value
      See Also:
    • COMPARE_ANNOTATIONS

      public static final int COMPARE_ANNOTATIONS
      Flag indicating that elements and attributes must have the same type annotation to be considered deep-equal
      See Also:
    • WARNING_IF_FALSE

      public static final int WARNING_IF_FALSE
      Flag indicating that a warning message explaining the reason why the sequences were deemed non-equal should be sent to the ErrorListener
      See Also:
    • JOIN_ADJACENT_TEXT_NODES

      public static final int JOIN_ADJACENT_TEXT_NODES
      Flag indicating that adjacent text nodes in the top-level sequence are to be merged
      See Also:
  • Constructor Details

    • DeepEqual

      public DeepEqual()
  • Method Details

    • preEvaluate

      public Expression preEvaluate(StaticContext env) throws XPathException
      preEvaluate: if all arguments are known statically, evaluate early
      Overrides:
      preEvaluate in class FunctionCall
      Throws:
      XPathException
    • evaluateItem

      public Item evaluateItem(XPathContext context) throws XPathException
      Evaluate the expression
      Specified by:
      evaluateItem in interface Expression
      Overrides:
      evaluateItem in class ComputedExpression
      Parameters:
      context - The context in which the expression is to be evaluated
      Returns:
      the node or atomic value that results from evaluating the expression; or null to indicate that the result is an empty sequence
      Throws:
      XPathException - if any dynamic error occurs evaluating the expression
    • deepEquals

      public static boolean deepEquals(SequenceIterator op1, SequenceIterator op2, GenericAtomicComparer collator, Configuration config, int flags)
      Determine when two sequences are deep-equal
      Parameters:
      op1 - the first sequence
      op2 - the second sequence
      collator - the collator to be used
      config - the configuration (gives access to the NamePool)
      flags - bit-significant integer giving comparison options. Always zero for standard F+O deep-equals comparison.
      Returns:
      true if the sequences are deep-equal