Re: [xsl] Friday challenge: XSLT thats creates XPaths for meaningfully equivalent comparisons of XML files

Subject: Re: [xsl] Friday challenge: XSLT thats creates XPaths for meaningfully equivalent comparisons of XML files
From: David Carlisle <davidc@xxxxxxxxx>
Date: Fri, 13 Apr 2007 12:41:07 +0100
<checkXML>
   <xml src="file:/C:/test.xml">
      <check>/root[1]/foo[1]/text[1] = 'foo'</check>
      <check>/root[1]/foo[1]/@fooatt = 'att'</check>
      <check>/root[1]/bar[1]/text[1] = 'bar'</check>
      <check>/root[1]/bar[2]/text[1] = 'baz'</check>
   </xml>
</checkXML>

If you were looking for an existing format for that you could write the above
as a schematron fairly easily.

In either case though there is the usual nuisance about serialising
xpaths and reading them back later of getting the namespace context
right.

The beta Schematron has some code to generate namespace-safe xpaths
from any node, which could be used, see:
http://eccnet.eccnet.com/pipermail/schematron-love-in/2007-February/000558.html


In either case though it seems like you could be generating a lot of
xpaths and then having to iterate over them, while schematron, or what I
guess checkXML could do is more general, for the specific job of
checking two documents can't you have a stylesheet that just tree walks
over the two trees in tandem, that way you never (much) need to
generate namespace-safe xpaths, as you can get the relevant  node names
as Qnames and do namespace aware QName comparisons. It's just
serialising the names to an Xpath string that loses the context.

David

Current Thread