xsl-list
[Top] [All Lists]

RE: XPath and root-less namespace problem

2003-05-14 23:33:47
FAQ,

<definitions xmlns="http://schemas.xmlsoap.org/wsdl/";
xmlns:xs="http://www.w3.org/2001/XMLSchema"; name="IZPOP3service"
targetNamespace="http://www.zanetti-dev.com/";
xmlns:tns="http://www.zanetti-dev.com/";
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/";
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/";
xmlns:ns1="http://www.zanetti-dev.com/XMLSchema";
xmlns:ns2="http://www.borland.com/namespaces/Types";>
  <service name="IZPOP3service">
    <port name="IZPOP3Port" binding="tns:IZPOP3binding">
      <soap:address
location="http://www.zanetti-dev.com/scripts/zpop3ws.exe/soap/
IZPOP3"/>
    </port>
  </service>
</definitions>

My XPath of:

    //definitions/service/port[(_at_)name='IZPOP3service']/*/@location

returns nothing.

However, if I remove the 
"xmlns='http://schemas.xmlsoap.org/wsdl'" from my
code, it works BEAUTIFULLY.  I can fully traverse this file, 
and can do any
XPath I want to.  But that's not the right way to do this.

See <http://www.w3.org/TR/xpath#node-tests>

  "--except that the default namespace declared with xmlns is not used--"

Thus

  //x:definitions/x:service/x:port[(_at_)name='IZPOP3service']/*/@location

with ns-prefix x bound to URL http://schemas.xmlsoap.org/wsdl/ will work.

Cheers,

Jarno - Delerium: Heavens Earth

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list