Class DeepEqual

    • Field Detail

      • 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:
        Constant Field Values
      • 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:
        Constant Field Values
      • 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:
        Constant Field Values
      • 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:
        Constant Field Values
      • 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:
        Constant Field Values
      • 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:
        Constant Field Values
      • 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:
        Constant Field Values
      • 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:
        Constant Field Values
      • 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:
        Constant Field Values
    • Constructor Detail

      • DeepEqual

        public DeepEqual()
    • Method Detail

      • preEvaluate

        public Expression preEvaluate​(ExpressionVisitor visitor)
                               throws XPathException
        preEvaluate: if all arguments are known statically, evaluate early
        Overrides:
        preEvaluate in class FunctionCall
        Parameters:
        visitor - an expression visitor
        Returns:
        the result of the early evaluation, or the original expression, or potentially a simplified expression
        Throws:
        XPathException
      • evaluateItem

        public Item evaluateItem​(XPathContext context)
                          throws XPathException
        Evaluate the expression
        Specified by:
        evaluateItem in interface EvaluableItem
        Overrides:
        evaluateItem in class Expression
        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