- From: Michael Kay <mike@saxonica.com>
- Date: Wed, 28 Nov 2007 12:40:59 -0000
- To: "'Andrew Welch'" <andrew.j.welch@gmail.com>, <xmlschema-dev@w3.org>
In 1.1 - as implemented by Saxon 9.0 - you can do <xs:assert test="not(deep-equal(old, new))"/> But if it's as simple as this I think you can also do it in 1.0: * define that both old and new exist in the usual way * define at the update level <xs:unique> <xs:selector xpath="*"/> <xs:field xpath="data1"/> <xs:field xpath="data2"/> </xs:unique> > -----Original Message----- > From: xmlschema-dev-request@w3.org > [mailto:xmlschema-dev-request@w3.org] On Behalf Of Andrew Welch > Sent: 28 November 2007 10:57 > To: xmlschema-dev@w3.org > Subject: Check two elements are not deep equal > > > Is it possible in XML Schema 1.0 to ensure two elements are > not deep equal - the equivalent of this XPath: > > //update[not(deep-equal(old/*, new/*))] > > for this structure: > > <update> > <old> > <data1>some value</data1> > <data2>some other value</data2> > </old> > <new> > <data1>some value</data1> > <data2>some other value</data2> > </new> > </update> > > The <update> element should contain an <old> and a <new> with > at least one value different in the <new>... so in the > example the test should fail as the contents of both are the same. > > > thanks > andrew >
Received on Wednesday, 28 November 2007 12:41:18 UTC