[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Concerned about the increasing reliance on XPath

  • From: Stephen D Green <stephengreenubl@gmail.com>
  • To: Andrew Welch <andrew.j.welch@gmail.com>
  • Date: Mon, 9 May 2011 17:16:57 +0100

Re:  Concerned about the increasing reliance on XPath
OK. But here is a newbie to XPath and in this case they
are using XPath with a particular version of .NET and its
built-in XPathNavigator. Are they going to be aware of the
huge difference it might have on the result of evaluating
their XPath expressions against some XML which settings
they use, 1) for defaults (perhaps not under their control)
and 2) for bindings? How do they even do these bindings?
Then what if they upgrade their code to a new version of
.NET.
Presumably this isn't confined to .NET since I'd reckon
any implementation of XPath must have similar challenges.
----
Stephen D Green



On 9 May 2011 17:04, Andrew Welch <andrew.j.welch@gmail.com> wrote:
> On 9 May 2011 16:43, Stephen D Green <stephengreenubl@gmail.com> wrote:
>> I tried to think of a way to write the XPath expression so
>> it gives the same result whatever the version of XPath
>> and it gets rather complex and obscure and not what I'd
>> be expecting a non-specialist developer to do or understand
>> well enough to be able to maintain it but it does evaluate
>> to true whatever the version and maybe (?) whatever the
>> namespace bindings
>>
>> /*[local-name()='a']/@version-id = 0.4
>
> To select a elements in any namespace, that could/should be:
>
> /*:a/@version-id
>
>> What would I have to do to ensure it didn't get the same result
>> with another default namespace though? I guess I'd have to
>> make the expression even more complex:
>>
>> /*[local-name()='a'][namespace-uri()='http://example.com']/@version-id = 0.4
>
> You've just stumbled across the big problem with namespaces in xpath -
> you have to set up the mappings outside of the xpath itself.
>
> Often the best thing to do is use a prefix (not change the default
> namespace) and then its clear in the xpath a namespace is involved.
>
> So in your example you could do:
>
> /a/@version-id.....
>
> along with the default namespace changed to "http://example.com", but
> you could just as easily do:
>
> /e:a/@version-id....
>
> and then whoever is looking at the xpath knows they need to have a
> look at the mapping for e.
>
>
> --
> Andrew Welch
> http://andrewjwelch.com
>


[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!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
 

Stylus Studio has published XML-DEV in RSS and ATOM formats, enabling users to easily subcribe to the list from their preferred news reader application.


Stylus Studio Sponsored Links are added links designed to provide related and additional information to the visitors of this website. they were not included by the author in the initial post. To view the content without the Sponsor Links please click here.

Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.