Re: newbie XPATH newsgroup ?
"rvj" <[email protected]>
| Newsgroups | gmane.comp.mozilla.devel.xml |
|---|---|
| Organization | Another Netscape Collabra Server User |
| Message-ID | <[email protected]> |
PPS I guess also that the <xpath/> element would also need to define the default namespace for the xpath attribute <xpath xmlns="www.xpath.namspace" xpath="xpathstring"/> ..............lost in (name)space ?????????????? "rvj" <[email protected]> wrote in message news:[email protected]... > PS > > I'm not sure where the attachment came from in the previous post so IGNORE > it! > > > "rvj" <[email protected]> wrote in message > news:[email protected]... > > OK > > > > > > I'm not sure about your question, > > > > First of all neither am I ! > > > > This is day #6 of my XPath investigations. > > > > What I am trying to understand are the implications of namespaces for > XPath > > expressions. !! > > > > As I understand it, XPath support two basic namespace approaches > > > > 1) Using QNames which in turn define two distinct syntaxes > > a) URL based which are RESOLVABLE because they point to real locations > > (versioning) > > b) URN based which are abstract references but are essentially > UNRESOLVABLE > > ! > > > > 2) Universal/Expanded names which as I understand are NOT XML namespace > > recommendations BUT nevertheless are an appendix to the XML Namspace > > specification and provide a physical reference for a namespace !! > > > > Universal/Expanded names have NOT been recommended purely because they > are > > a little more verbose. > > > > ******************************************************* > > > > Thats just the introduction !!! > > > > Now XPATH (as far as I am concerned ) has nothing to do wish XSL! (XSL > and > > XSLT are just utilities) > > > > ******************************************************** > > The issue is HOW BEST TO DECLARE XPATH NAMESPACES > > ******************************************************** > > > > Firstly, should it be > > > > a) universal namespaces OR > > b) namespace versioning > > > > So if we take a simple example of multiple namespace document a > > non-resolvable XPath expression such as > > > > /ns1:author/ns2:author > > > > what is the best way of converting this to a resolvable XPath expression > > > > Currently (if you are using the MS parser) you identify the namespaces > using > > a separate property called SelectNamespaces. > > > > An XPath expression assumes that the document contains the relevant > > namespace declarations > > > > xpath="/ns1:author[@id='x']/ns2:author[@id='y']" > > > > However resolvable references can be provided (for verification purposes) > > using > > > > a) universal/expanded names > > > > xpath= > > > "<{http://www.somepath/or/other}author[@id='x']/<{http://www.someotherpath/o > > r/other}:author[@id='y']" > > > > > > b) namespace versioning > > > > > > > xpath="http:/www.namespace1/author[@id='x']/http:/www.namespace2/author[@id= > > 'y']" > > > > ************************************************************************** > > > > Secondly, (and this is off-the-wall stuff), it appears that it would be > much > > simpler to declare namespaces using an XML XPATH structure that mimics > the > > structure of the source document (XML) > > > > For example, lets assume that an XPATH expression COULD also be > represented > > as an XML structure via an element called XPATH with an attribute called > > XPATH. > > > > For example > > > > <xpath xpath= "/ns1:author[@id='x']/ns2:author[@id='y'] /> > > > > In otherwords instead of parsing a literal string, the parser could accept > > an XML structure ! > > > > It appears that this is also simpler to declare resolveable XPATH > expression > > using standard namespace declarations. For example > > > > <xpath> > > <ns1:author xmlns:ns1="www.namespace1" xpath="@id='x'"> > > <ns2:author xmlns:ns2="www.namespace2" xpath="@id='y'"/> > > <ns1:author> > > </xpath> > > > > **************************************************************** > > Does any of this make sense ? > > **************************************************************** > > > > BTW The article that has provided the basis of my confusion is > > > > > http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnexxml/htm > > l/xml05202002.asp > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > "Markus Siebeneicher" <[email protected]> wrote in message > > news:[email protected]... > > > Markus Siebeneicher wrote: > > > > > > > rvj wrote: > > > > > > > >> correction : something like > > > >> > > > >> > > > >>> <ns1:author ns1:author="www.foo1" xpath="author[@id='x']> > > > >>> <ns2:author ns2:author=www.foo2 xpath="author[@id='y']/> > > > >>> <ns1:author> > > > >>> > > > >> > > > >> > > > >> "rvj" <[email protected]> wrote in message > > > >> news:[email protected]... > > > >> > > > >>> I think the correct term is serialized but really what I am trying > to > > > >>> understand is XPath with multiple namespaces > > > >>> > > > >>> For example if you search for an attribute called 'author' but with > > > >>> multiple namespaces. Given > > > >>> > > > >>> xpath= "/ns1:author[@id='x']/ns2:author[@id='y'] > > > >>> > > > >>> is it possible to declare the namespace references in the xpath? > > > >>> > > > >>> It seems that a serialized xpath format would make this a lot > > > >>> easier to > > > >>> read > > > >>> > > > >>> <ns1:author ns1:author="www.foo1" xpath="@id='x'> > > > >>> <ns2:author ns2:author=www.foo2 xpath="@id='y'/> > > > >>> <ns1:author> > > > >>> > > > >>> Any recommended reading for XPath+multiple namespaces? > > > >>> > > > >>> > > > >>> "rvj" <[email protected]> wrote in message > > > >>> news:[email protected]... > > > >>> > > > >>>> a) is there a XPath newsgroup > > > >>>> > > > >>>> b) very simply all I want to know is there is a mechanism > > > >>> > > > >>> > > > >>> (exists/proposed) > > > >>> > > > >>>> for switching between a compact XPath representation and a more > > verbose > > > >>> > > > >>> > > > >>> XML > > > >>> > > > >>>> structured representation ? > > > >>>> > > > >>>> where > > > >>>> > > > >>>> /provider[@id=123]/library[@id=234]/detail[@id=345]/* > > > >>>> > > > >>>> can be alternatively represented something like > > > >>>> > > > >>>> <provider xpath="[@id=123]" > > > > >>>> <library xpath="[@id=234]" > > > > >>>> <detail xpath="[id=345]/*" /> > > > >>>> </library> > > > >>>> </provider> > > > >>>> > > > >>>> > > > >>> > > > >> > > > >> > > > > > > > > I'm not sure about your question, but maybe this is a usefull > suggestion > > > > to your research -> > > > > /*[name()='ns1:author'][@id='123']/*[name()='ns2:author'][@id='234'] > > > > > > a proper mailing list about xsl and xpath is definitly the xsl mulberry > > > list, (http://www.mulberrytech.com/xsl/xsl-list). > > > > > > > >