[xsl] XSLT3 deep-equal() question

Subject: [xsl] XSLT3 deep-equal() question
From: "Alan Painter alan.painter@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 27 Mar 2020 16:43:11 -0000
Hello XSLT Community,

I'm Using XSLT3 (Saxon 9.9 HE).

I'm wondering if it's reasonable to expect deep-equal() to always return
true in the following scenario.  I suspect "yes" but wondering what corner
cases that I might encounter.

We'll be pushing some data-oriented source documents, with no external
entities, through templates which are all in a mode defined from
"shallow-copy" similar to the below.

What I'm wondering under what conditions of source documents that the
following stylesheet would return "false" rather than "true".  (Again,
excluding external entities.) I'm hoping that the list of conditions is nil
or very small.

Thanks for any help.


  <xsl:mode name="a" on-no-match="shallow-copy"/>

  <xsl:output method="text" />

  <xsl:template match="/" >
      <xsl:variable name="afterApply">
          <xsl:apply-templates select="/" mode="a"/>
      <xsl:sequence select="deep-equal(/, $afterApply) => string()" />


Alan Painter
Confined in France

Current Thread