Package: python-zsi Version: 2.1~a1-3 Severity: normal Tags: upstream patch
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 ZSI fails at doing a proper attribute check for nillable elements. It doen not take into account the XML namespace prefix "xsi" for the "nil" attribute. It has been reported upstream but there has been no reaction for more then 3 month. This is rather nasty as it prevents ZSI from being able to query most of the information from the Debian BTS SOAP interface: >>> from ZSI.client import Binding >>> b = Binding('http://bugs.debian.org/cgi-bin/soap.cgi') >>> b.get_status(123456) ZSI.EvaluateException: Non-nillable element is NIL [Element trace: /soap:Envelope/soap:Body/get_statusResponse/s-gensym3/item/value/fixed/item/value] The upstream bugreport at [0] contains a patch written by me to fix this problem. I've modified this patch a bit and it would be great if it could be included in the python-zsi package. [0] http://sourceforge.net/tracker/index.php?func=detail&aid=3155574&group_id=26590&atid=387667 - -- System Information: Debian Release: wheezy/sid APT prefers unstable APT policy: (500, 'unstable'), (1, 'experimental') Architecture: amd64 (x86_64) Kernel: Linux 2.6.38-2-amd64 (SMP w/2 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages python-zsi depends on: ii python 2.6.6-14 interactive high-level object-orie ii python-support 1.0.13 automated rebuilding support for P python-zsi recommends no packages. python-zsi suggests no packages. - -- no debconf information -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) iEYEARECAAYFAk2uilYACgkQeJ3z1zFMUGZlWQCghZPkj4uTId0zpSODd/E6BgWg /8YAnAgl7WLDxmE2BA+d1C+ksYdui4fD =eeKx -----END PGP SIGNATURE-----
--- /usr/lib/pymodules/python2.6/ZSI/TC.py 2011-01-11 14:49:24.653560293 +0100 +++ TC.py 2011-01-11 14:49:50.619867506 +0100 @@ -29,7 +29,7 @@ _is_xsd_or_soap_ns = lambda ns: ns in [ SCHEMA.XSD3, SOAP.ENC, SCHEMA.XSD1, SCHEMA.XSD2, ] -_find_nil = lambda E: _find_xsi_attr(E, "null") or _find_xsi_attr(E, "nil") +_find_nil = lambda E: _find_xsi_attr(E, "null") or _find_xsi_attr(E, "xsi:nil") or _find_xsi_attr(E, "nil") def _get_xsitype(pyclass): '''returns the xsi:type as a tuple, coupled with ZSI.schema