<?xml version="1.0" encoding="iso-8859-1"?> <?xml-stylesheet href="../../make-menu.xsl" type="text/xsl"?><html> <head> <this-is section="extensions" page="functions" subpage="deepequal"/> <!-- Generated at 2011-12-09T20:47:22.916Z--><title>Saxonica: XSLT and XQuery Processing: saxon:deep-equal()</title> <meta name="coverage" content="Worldwide"/> <meta name="copyright" content="Copyright Saxonica Ltd"/> <meta name="title" content="Saxonica: XSLT and XQuery Processing: saxon:deep-equal()"/> <meta name="robots" content="noindex,nofollow"/> <link rel="stylesheet" href="../../saxondocs.css" type="text/css"/> </head> <body class="main"> <h1>saxon:deep-equal()</h1> <p><b>saxon:deep-equal($seq1 as item()*, $seq2 as item()*, $collation as xs:string?, $flags as xs:string) ==> xs:boolean</b></p> <p>This function compares two sequences $seq1 and $seq2 for deep equality. The two sequences are supplied in the first two arguments. In the absence of any $flags, the function returns the same result as the <code>deep-equal</code> function in the standard XPath library. The $flags argument is used to modify the way in which the comparison is performed. </p> <p>The $collation argument is mandatory. Supply an empty sequence to use the default collation.</p> <p>The flags argument is a string containing characters acting as flags that cause the function to behave differently from the standard <code>fn:deep-equal()</code> function. The following flags are defined:</p> <table> <tbody> <tr> <td content="para"> <p>N</p> </td> <td content="para"> <p>Include namespace nodes in the comparison. For two elements to be deep-equal, they must have the same in-scope namespaces (that is, same prefix and same URI).</p> </td> </tr> <tr> <td content="para"> <p>F</p> </td> <td content="para"> <p>Include namespace prefixes in the comparison. For two elements or attributes to be equal, their names must use the same namespace prefix (or none).</p> </td> </tr> <tr> <td content="para"> <p>C</p> </td> <td content="para"> <p>Include comment nodes in the comparison. For two element or document nodes to be deep-equal, they must have the same comment node children.</p> </td> </tr> <tr> <td content="para"> <p>P</p> </td> <td content="para"> <p>Include processing-instruction nodes in the comparison. For two element or document nodes to be deep-equal, they must have the same processing-instruction node children.</p> </td> </tr> <tr> <td content="para"> <p>J</p> </td> <td content="para"> <p>Join adjacent text nodes (for example, nodes either side of an ignored comment)</p> </td> </tr> <tr> <td content="para"> <p>S</p> </td> <td content="para"> <p>Compare string values rather than typed values of simple-typed elements and attributes.</p> </td> </tr> <tr> <td content="para"> <p>A</p> </td> <td content="para"> <p>Compare type annotations on elements and attributes. The type annotations must match exactly.</p> </td> </tr> <tr> <td content="para"> <p>I</p> </td> <td content="para"> <p>Compare the is-ID and is-IDREF properties on elements and attributes.</p> </td> </tr> <tr> <td content="para"> <p>w</p> </td> <td content="para"> <p>Exclude whitespace text nodes from the comparison. Any whitespace text node in either tree is ignored (except when determining the typed value of an element annotated with a simple type or a complex type with simple content).</p> </td> </tr> <tr> <td content="para"> <p>?</p> </td> <td content="para"> <p>Explain reason for a non-match. If the result is not-equal, a warning message explaining the reason will be sent to the ErrorListener. (In general, a sequence of warning messages will be sent, starting with the lowest-level difference and moving up the tree).</p> </td> </tr> </tbody> </table> <table width="100%"> <tr> <td> <p align="right"><a class="nav" href="discarddocument.xml">Next</a></p> </td> </tr> </table> </body> </html>