Package net.sf.saxon.functions
Class DeepEqual
- java.lang.Object
-
- net.sf.saxon.expr.ComputedExpression
-
- net.sf.saxon.expr.FunctionCall
-
- net.sf.saxon.functions.SystemFunction
-
- net.sf.saxon.functions.CollatingFunction
-
- net.sf.saxon.functions.DeepEqual
-
- All Implemented Interfaces:
java.io.Serializable
,javax.xml.transform.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:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static int
COMPARE_ANNOTATIONS
Flag indicating that elements and attributes must have the same type annotation to be considered deep-equalstatic int
COMPARE_STRING_VALUES
Flag indicating that elements and attributes should always be compared according to their string value, not their typed valuestatic int
EXCLUDE_WHITESPACE_TEXT_NODES
Flag indicating that whitespace text nodes are ignored when comparing element nodesstatic int
INCLUDE_COMMENTS
Flag indicating that comment children are taken into account when comparing element or document nodesstatic int
INCLUDE_NAMESPACES
Flag indicating that two elements should only be considered equal if they have the same in-scope namespacesstatic int
INCLUDE_PREFIXES
Flag indicating that two element or attribute nodes are considered equal only if their names use the same namespace prefixstatic int
INCLUDE_PROCESSING_INSTRUCTIONS
Flag indicating that processing instruction nodes are taken into account when comparing element or document nodesstatic int
JOIN_ADJACENT_TEXT_NODES
Flag indicating that adjacent text nodes in the top-level sequence are to be mergedstatic 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-
Fields inherited from class net.sf.saxon.functions.CollatingFunction
collation
-
Fields inherited from class net.sf.saxon.functions.SystemFunction
operation
-
Fields inherited from class net.sf.saxon.expr.FunctionCall
argument
-
Fields inherited from class net.sf.saxon.expr.ComputedExpression
locationId, staticProperties
-
Fields inherited from interface net.sf.saxon.expr.Expression
EVALUATE_METHOD, ITERATE_METHOD, PROCESS_METHOD
-
-
Constructor Summary
Constructors Constructor Description DeepEqual()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static boolean
deepEquals(SequenceIterator op1, SequenceIterator op2, GenericAtomicComparer collator, Configuration config, int flags)
Determine when two sequences are deep-equalItem
evaluateItem(XPathContext context)
Evaluate the expressionExpression
preEvaluate(StaticContext env)
preEvaluate: if all arguments are known statically, evaluate early-
Methods inherited from class net.sf.saxon.functions.CollatingFunction
checkArguments, getAtomicComparer, getCollator
-
Methods inherited from class net.sf.saxon.functions.SystemFunction
addContextDocumentArgument, computeCardinality, computeSpecialProperties, display, getDetails, getErrorCodeForTypeErrors, getItemType, getRequiredType, main, makeSystemFunction, setDetails, useContextItemAsDefault
-
Methods inherited from class net.sf.saxon.expr.FunctionCall
checkArgumentCount, getArguments, getDisplayName, getFunctionNameCode, getNumberOfArguments, iterateSubExpressions, optimize, promote, replaceSubExpression, setArguments, setFunctionNameCode, simplify, simplifyArguments, typeCheck
-
Methods inherited from class net.sf.saxon.expr.ComputedExpression
adoptChildExpression, checkPermittedContents, computeDependencies, computeStaticProperties, doPromotion, dynamicError, effectiveBooleanValue, evaluateAsString, getCardinality, getColumnNumber, getConstructType, getDependencies, getExecutable, getHostLanguage, getImplementationMethod, getInstructionInfo, getIntrinsicDependencies, getLineNumber, getLocationId, getLocationProvider, getParentExpression, getPublicId, getSlotsUsed, getSpecialProperties, getSystemId, hasBadParentPointer, iterate, markTailFunctionCalls, process, resetStaticProperties, setLocationId, setParentExpression, setParentExpression, suppressValidation, typeError
-
-
-
-
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
-
-
Method Detail
-
preEvaluate
public Expression preEvaluate(StaticContext env) throws XPathException
preEvaluate: if all arguments are known statically, evaluate early- Overrides:
preEvaluate
in classFunctionCall
- Throws:
XPathException
-
evaluateItem
public Item evaluateItem(XPathContext context) throws XPathException
Evaluate the expression- Specified by:
evaluateItem
in interfaceExpression
- Overrides:
evaluateItem
in classComputedExpression
- 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 sequenceop2
- the second sequencecollator
- the collator to be usedconfig
- 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
-
-