Subject: Re: [xsl] XSLT3 deep-equal() question From: "Alan Painter alan.painter@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Fri, 27 Mar 2020 18:24:52 -0000 |
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 <>)
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] XSLT3 deep-equal() questi, Michael Kay mike@xxx | Thread | [xsl] Why? A function that computes, Costello, Roger L. c |
Re: [xsl] XSLT3 deep-equal() questi, Michael Kay mike@xxx | Date | Re: [xsl] difference between an int, Mukul Gandhi gandhi. |
Month |