[Bug 26226] msxml4 emits too much xmlns attributes

wine-bugs at winehq.org wine-bugs at winehq.org
Sun Jul 8 05:59:51 CDT 2012


http://bugs.winehq.org/show_bug.cgi?id=26226

Ulrik Dickow <u.dickow at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #40507|0                           |1
        is obsolete|                            |
  Attachment #40511|0                           |1
        is obsolete|                            |

--- Comment #35 from Ulrik Dickow <u.dickow at gmail.com> 2012-07-08 05:59:51 CDT ---
Created attachment 40928
  --> http://bugs.winehq.org/attachment.cgi?id=40928
Trace BridgeCentral 2.2.5 vs. Buhl2012 diff wine-1.5.8-git1 (debug02b)

My patches (try 1 as well as try 2) fix the bug for BridgeCentral, but
unfortunately not for the Buhl app (neither 2011 nor 2012 version).

This attachment is a 'diff -u999' between slightly edited versions of
msxml-traces of the first SOAP request of BridgeCentral 2.2.5 (left) versus the
2012 version of the Buhl app
(http://www.buhl.de/produkte/alle/wiso-euer-und-kasse-2012/product.html#Testversion)
(right), running on a wine 1.5.8 patched with Marcus' one-line "fprinf full
request"-patch (attachment 33432) and try 2 of my "msxml3: Support
xmlns..."-patch
(http://www.winehq.org/pipermail/wine-devel/2012-June/096069.html , obsoletes
attachment 40511).  (Attachment 40507 was obsoleted by the improved version
included in Wine 1.5.7 via commit fc8ab63563663f5076d86fa814289d2e046e5125).

The "slight editing" was to wipe out: 1) all 6+ digit hex numbers (piped
through 'perl -pe "s/0x[0-9a-f]{6,}/0x.../g"' and 2) the login numbers/codes
for my bridge club.

We see that both apps use Borland SOAP 1.2 to generate exactly the same msxml
calls to create the SOAP-ENV:Envelope and SOAP-ENV:Body elements, including
xmlns attributes.  At the third level the only difference is the app specific
names and xmlns URIs of the elements (KlubLogin vs. CheckActionCode etc.).  But
at the fourth, innermost level, the Buhl app does some extra attribute node
list walking and strangely ends up using the URI of the xmlns:xsd attribute
instead of re-using the URI of the third level element
(https://on4u3.buhl.de/buhl/WebActionCode/).  This results in bad XML for the
Buhl app (wrong URI in innermost element), while BridgeCentral makes fully
valid XML (correct URIs, although child redundancies not optimized away).

The problem probably is that we don't create attribute nodes for the
"redundant" xmlns attributes.  A full fix would be to create all the attribute
nodes that the app asks for, but then use a much more intelligent set of
functions for creating final XML (*_get_xml).  At the same time that would
solve the minor problem of redundant xmlns attributes printed in children. 
However, this strategy is not as easy as the "skip attribute creation hack"
with the current libxml2.

Until a full fix is developed for either libxml2 or wine, my patch is useful as
a temporary solution to solve the problem for some, but not all applications.

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list