Sadly, we are not doing schema-validation.
Thanks for the confirmation, Michael. I can now forge ahead with
confidence.
Martin, to address your question, I will have other templates in the mode,
obviously to "change things" w.r.t. the original document events. But what
I want to know is if I can rely on deep-equal() to tell if a change has
been made.
BTW, Martin, I find your site to be an excellent tool. Thanks so much for
that.
(i.e. https://xsltfiddle.liberty-development.net/ )
Thanks very much for the confirmation -- mischief managed -- and have good
confined weekend.
On Fri, Mar 27, 2020 at 6:35 PM Michael Kay mike@xxxxxxxxxxxx <
xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
> The shallow-copy drops type annotations on element nodes, so there could
> be a false result if the input is typed (i.e. schema-validated). The effect
> of type annotations on deep-equal() is somewhat arcane (I have no
> recollection of how the rules were arrived at).
>
> Apart from that I think you're guaranteed a true result. But I could be
> wrong!
>
> I can't see why having external entities would make any difference.
>
> Michael Kay
> Saxonica
>
> On 27 Mar 2020, at 16:43, Alan Painter alan.painter@xxxxxxxxx <
> xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
>
> 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:stylesheet
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> xmlns:xs="http://www.w3.org/2001/XMLSchema"
> version="3.0">
>
> <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:variable>
> <xsl:sequence select="deep-equal(/, $afterApply) => string()" />
> </xsl:template>
>
> </xsl:stylesheet>
>
> Alan Painter
> Confined in France
>
>
> XSL-List info and archive <http://www.mulberrytech.com/xsl/xsl-list>
> EasyUnsubscribe <http://lists.mulberrytech.com/unsub/xsl-list/293509> (by
> email)
>
>
> XSL-List info and archive <http://www.mulberrytech.com/xsl/xsl-list>
> EasyUnsubscribe <http://lists.mulberrytech.com/unsub/xsl-list/552232> (by
> email <>)
|