XML.orgXML.org
FOCUS AREAS |XML-DEV |XML.org DAILY NEWSLINK |REGISTRY |RESOURCES |ABOUT
OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]
Re: [xml-dev] Concerned about the increasing reliance on XPath

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]


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 1993-2007 XML.org. This site is hosted by OASIS