Home. 
.

transparent

transparent

transparent

Altova Mailing List Archives


Re: [xml-dev] XPath terminology

From: Philippe Poulard <Philippe.Poulard@------.-----.-->
To: Michael Kay <michael.h.kay@--------.--->
Date: 3/4/2004 9:06:00 AM
Michael Kay wrote:
> # >
> # > examples :
> # > /foo/bar[2]/oof[5]/@rab
> # > /foo/bar[2]/oof[5]/text()[2]
> # >
> # > is there a name or should i invent one ?
> # 
> # I'm pretty sure that this is what Ted Nelson called a "Tumbler" in the
> # Xanadu terminology. -Tim
> 
> It is not, of course, the simplest XPath expression to reach a given node.
> There are shorter expressions such as
> 
> /*[1]/*[3]/*[4]
> 
> Or
> 
> (//*)[87]
> 
> Both the above also have the great advantage that they have no dependency on
> namespace prefixes.
> 
> Michael Kay
> 

I won't retain the last form because it doesn't cross the tree from 
child to child

For debugging purpose, I'm looking for a path that allow to localize at 
a glance the pointed node by simply loading the xml file on a browser, 
for example.

Of course, with flat structures, it would be hard to do so with *[846]

I would also prefer the form where the elements are named instead of using *
However the * usage could be reserved when a prefix is redefined in the 
document. To preserve simplicity, * must be used if a prefix is 
redefined; thus, when a prefix is used, it is bound to the same URI that 
those declared in the document. It is better, I think, to use the same 
prefixes used in the document than create new ones if they are redefined 
because the path produced would work only with explicit prefix mappings 
other than those that appear in the document.

I got it ! Thanks :)

But what about the name ?

PS :
if my explanations wasn't so clear, i was talking about something like 
this :

<a:foo xmlns:a="a">
   <a:bar xmlns:a="A">
</a:foo>

the path /a:foo/a1:bar is not good, because a1 is not present in the 
document; /*/* must be used instead

/a:foo/* and /*/a:bar can't be used because another declaration could 
appear somewhere else in the document, in another branch
-- 
Cordialement,

            ///
           (. .)
  -----ooO--(_)--Ooo-----
|   Philippe Poulard    |
  -----------------------


transparent
Print
Mail
Like It
Disclaimer
.

These Archives are provided for informational purposes only and have been generated directly from the Altova mailing list archive system and are comprised of the lists set forth on www.altova.com/list/index.html. Therefore, Altova does not warrant or guarantee the accuracy, reliability, completeness, usefulness, non-infringement of intellectual property rights, or quality of any content on the Altova Mailing List Archive(s), regardless of who originates that content. You expressly understand and agree that you bear all risks associated with using or relying on that content. Altova will not be liable or responsible in any way for any content posted including, but not limited to, any errors or omissions in content, or for any losses or damage of any kind incurred as a result of the use of or reliance on any content. This disclaimer and limitation on liability is in addition to the disclaimers and limitations contained in the Website Terms of Use and elsewhere on the site.

.
.

transparent

transparent