[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Concerned about the increasing reliance on XPath
On 9 May 2011 18:52, Philip Fearon <pgfearo@googlemail.com> wrote: > Yes, it seems each vendor has adopted their own 'harness' for setting > the XPath evaluation context so that saved XPaths are portable. Yes, but this highlights my issue; they are portable *within instances of that implementation and not (as much as we'd like) between implementations* > > SketchPath's approach is to create grouped sets of XPath expressions > that are saved in simple XML files so they can be reused easily as a > resource in other applications. > (These same XML files are also used to set parameters and processor > settings for an XSLT test tool). > > As well as the XPath itself, additional metadata is stored for each expression: > 1. A name for the expression - other expressions can use this name to > reuse the expression as a variable > 2. An XPath identifying the context node for evaluation > 3. A descriptive comment Yes, my interest has been in Tamelizer (GoogleCode project) and this does the same > > Each XML file includes a set of namespace bindings to be used for > expression evaluation - (these are actually just XPath expressions in > a special 'namespaces' group with names corresponding to the namespace > prefix) Tamelizer uses TAML-X, an XPath profile of TAML (OASIS-open.org, potential standard in progress) which puts namespace bindings in each TAML-X file. I didn't realise it but it might be that more portability would come by putting the bindings into each TAML test assertion (as I recently suggested for Schematron too) so that they can be copied and pasted between files. I do notice though that some standards are appearing which express test assertions in a spec using XPath and I wonder if they have thought about these details like namespace bindings and making explicit any defaults. > > - A sample XML fof the grouped XPath expressions and their metadata is > shown below > > <?xml version="1.0" encoding="UTF-8"?> > <cwb:expressions xmlns:cwb="http://www.qutoric.com/2010/XPathCollection"> > <cwb:xsl-param group="" source=""/> > <cwb:namespace-declarations> > <cwb:expression name="spec"> > <cwb:main>'http://expath.org/ns/xmlspec'</cwb:main> > <cwb:comment>Created: 09/05/2011 18:18:45</cwb:comment> > </cwb:expression> > </cwb:namespace-declarations> > <cwb:xpath> > <cwb:global> > <cwb:expression name="code-1"> > <cwb:main>p/code</cwb:main> > <cwb:context>/spec/body/div1[3]/div2[2]</cwb:context> > <cwb:comment>Created: 09/05/2011 18:24:16</cwb:comment> > </cwb:expression> > </cwb:global> > <cwb:local> > <cwb:group name="alpha"> > <cwb:expression name="header-1"> > <cwb:main>/spec/header</cwb:main> > <cwb:comment>Created: 09/05/2011 18:16:13</cwb:comment> > </cwb:expression> > </cwb:group> > <cwb:group name="beta"> > <cwb:expression name="head-1"> > <cwb:main>/spec/body/div1[1]/head</cwb:main> > <cwb:comment>Created: 09/05/2011 18:17:44</cwb:comment> > </cwb:expression> > <cwb:expression name="head-2"> > <cwb:main>/spec/body/div1[1]/head</cwb:main> > <cwb:comment>Created: 09/05/2011 18:18:00</cwb:comment> > </cwb:expression> > <cwb:expression name="Name1"> > <cwb:main>count(spec/body/div1/div2)</cwb:main> > <cwb:comment>Created: 09/05/2011 18:19:28</cwb:comment> > </cwb:expression> > </cwb:group> > </cwb:local> > </cwb:xpath> > <cwb:recyclebin/> > </cwb:expressions> Yes, I like that. Maybe there would be more portability if your XML language could also allow every group to inlude the bindings though, like this: <cwb:group name="alpha"> <cwb:expression name="header-1"> <cwb:namespace-declarations> <cwb:expression name="spec"> <cwb:main>'http://expath.org/ns/xmlspec'</cwb:main> <cwb:comment>Created: 09/05/2011 18:18:45</cwb:comment> </cwb:expression> </cwb:namespace-declarations> <cwb:main>/spec/header</cwb:main> <cwb:comment>Created: 09/05/2011 18:16:13</cwb:comment> </cwb:expression> </cwb:group> See also my own XPath based test assertions for the Universal Business Language using the TAML-X profile http://lists.oasis-open.org/archives/tag-comment/201104/zip00000.zip and earlier ones here for a previous version of TAML http://lists.oasis-open.org/archives/ubl-comment/201003/msg00001.html Maybe here too each test assertion should optionally allow the namespaces to be declared for it locally. --- Stephen D Green > > ----------- > > Phil Fearon > http://qutoric.com > > On Mon, May 9, 2011 at 5:13 PM, G. Ken Holman > <gkholman@cranesoftwrights.com> wrote: >> At 2011-05-09 16:49 +0100, Stephen D Green wrote: >>> >>> I think we tend to hope that XPath expressions can be >>> written such that they are immune from such implementation >>> specifics >> >> XPath cannot function in a vacuum. >> > > _______________________________________________________________________ > > XML-DEV is a publicly archived, unmoderated list hosted by OASIS > to support XML implementation and development. To minimize > spam in the archives, you must subscribe before posting. > > [Un]Subscribe/change address: http://www.oasis-open.org/mlmanage/ > Or unsubscribe: xml-dev-unsubscribe@lists.xml.org > subscribe: xml-dev-subscribe@lists.xml.org > List archive: http://lists.xml.org/archives/xml-dev/ > List Guidelines: http://www.oasis-open.org/maillists/guidelines.php > >
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] |
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|