xsl-list
[Top] [All Lists]

XPath and root-less namespace problem

2003-05-14 17:41:13
Hello all:

I'm running into a bit of a snag trying to create an XSL that will parse the
following information:

<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.

What am I doing wrong?  Short of writing some code that will remove any
occurances of the words "xmlns='pattern'" from an XML document, I need to
figure this out.

I've been able to grab the Node.getDocumentElement() and try a query using
the above XPath, but nothing has worked.  I've even tried an arbitrary
namespace call of:

    //noexist:definitions/service/port ... /@location

And various deviations of that, and it still doesn't work.  I'm at an
impass - my code with namespaces that are non-root work.  Root namespaces
break everything.

Can anyone shed some light as to what I might be doing wrong and/or how to
fix this so it works?

-- Ken


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