Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

#33 Allow skipping unknown XML elements

2.00_pre-release
closed-fixed
Martin Kutter
7
2009-05-22
2008-03-10
Martin Kutter
No

Though some people claim that XML Validation is the highest goal for SOAP processors, it can have very bad effects - in fact quite the opposite, i.e. accepting (formally) invalid XML in a defined way is required.

This is especially true in SOA environments: Imagine a SOAP server and a SOAP Client, both aiming to perform an upgrade, which adds a child element to a datatype.

The client usually cannot upgrade before the server is upgraded (because additional elements usually imply additional processing which will fail without the additional attribute).

The server cannot upgrade, because the client will fail fatally because of a unknown XML element.

This scenario results in an undesirable situation where SOAP Client and Server can only be upgraded simultaneously, which effectifely prevents "rolling" updates where several systems in a cluster (and in clusters in different tiers) are updated one ofter another.

One way to allow such "rolling" updates is handling unknown XML elements / attributes in a defined non-fatal way.

The probably best way to do so is just to skip them - the application above can't handle these, anyway, and returning __SKIP__ is the natural way for SOAP::WSDL's typemaps.

Discussion

  • Martin Kutter
    Martin Kutter
    2009-01-14

    Typemaps are to be removed in 2.1, so there's a differenc concept needed.
    Maybe we could implement this in the parser (which would have the charming notion of allowing to switch on "lax" behaviour on a per-object base)?

     
  • Martin Kutter
    Martin Kutter
    2009-01-14

    • priority: 5 --> 7
     
  • Martin Kutter
    Martin Kutter
    2009-01-14

    Partly implemented (for clients only) as of rev766.

     
  • Martin Kutter
    Martin Kutter
    2009-01-29

    There's no additional stuff to be done for CGI-based servers - see SOAP::WSDL::Manual::Cookbook

    For mod_perl based servers you'll have to write your own handler class, though.

     
  • Martin Kutter
    Martin Kutter
    2009-02-20

    • status: open --> pending-fixed
     
  • This Tracker item was closed automatically by the system. It was
    previously set to a Pending status, and the original submitter
    did not respond within 90 days (the time period specified by
    the administrator of this Tracker).

     
    • status: pending-fixed --> closed-fixed