Menu

#162 Parsing fails with nonlocal href attribute

v2.0
open
zsi (169)
5
2006-10-18
2006-08-07
No

I have a WSDL that defines an attribute with the name
"href". When I receive a web service response with from
the non-Python web service I get an error message

File
"C:\Dev\workspaces\python\pywebsvcs\zsi\ZSI\client.py",
line 442, in Receive
reply = self.ps.Parse(tc)
File
"C:\Dev\workspaces\python\pywebsvcs\zsi\ZSI\parse.py",
line 323, in Parse
return how.parse(self.body_root, self)
File
"C:\Dev\workspaces\python\pywebsvcs\zsi\ZSI\TCcompound.py",
line 207, in parse
value = what.parse(c_elt, ps)
File
"C:\Dev\workspaces\python\pywebsvcs\zsi\ZSI\TCcompound.py",
line 207, in parse
value = what.parse(c_elt, ps)
File
"C:\Dev\workspaces\python\pywebsvcs\zsi\ZSI\TCcompound.py",
line 147, in parse
return what.parse(elt, ps)
File
"C:\Dev\workspaces\python\pywebsvcs\zsi\ZSI\TCcompound.py",
line 207, in parse
value = what.parse(c_elt, ps)
File
"C:\Dev\workspaces\python\pywebsvcs\zsi\ZSI\TCcompound.py",
line 207, in parse
value = what.parse(c_elt, ps)
File
"C:\Dev\workspaces\python\pywebsvcs\zsi\ZSI\TCcompound.py",
line 154, in parse
elt = ps.FindLocalHREF(href, elt)
File
"C:\Dev\workspaces\python\pywebsvcs\zsi\ZSI\parse.py",
line 244, in FindLocalHREF
self.Backtrace(elt))
ZSI.EvaluateException: Absolute HREF
("CDDA070450F408E409A874C252CAF1EC") not implemented

Notice that my href value doesn't start with '#' and it
isn't a reference to another part of the web service
response XML. It is a reference to a SOAP with
Attachment's Content-Id that is part of the response.
Can this check be less strict?

def FindLocalHREF(self, href, elt, headers=1):
'''Find a local HREF in the data elements.
'''
if href[0] != '#':
raise EvaluateException(
'Absolute HREF ("%s") not implemented'
% href,
self.Backtrace(elt))

Discussion

  • Joshua Boverhof

    Joshua Boverhof - 2006-10-18
    • assigned_to: nobody --> boverhof
     
  • Joshua Boverhof

    Joshua Boverhof - 2006-10-18

    Logged In: YES
    user_id=711996

    I think what needs to happen here is "ResolveHREF" needs to be called, not
    "FindLocalHREF".

    This would happen if the typecode was a TC.XML or TC.String.

    Now how to make something meaningfull happen after that is more work. I'm
    not sure how hard it would be to set/use the resolvers.MIMEResolver.

     

Log in to post a comment.