Search for Action attributes not only in WSA*.ADDRESS namespaces
but also in WSAW*. wsaw is used by Globus Toolkit 4.2+
See http://www.w3.org/TR/ws-addr-wsdl/ for wsaw definition.
Modified Files:
ZSI/generate/__init__.py
-- added a BP message.
ZSI/generate/wsdl2python.py
ZSI/generate/containers.py
-- Changed rpc/enc generation so that a new Struct with pname=None is constructed
with the "conventional" typecode. Also moved a lot of "setup" code into "setUp"
method.
ZSI/wstools/WSDLTools.py
-- removed some comments
----------------------------------------------------------------------
Modified Files:
Namespaces.py
-- added some new WSRF namespaces.
WSDLTools.py
-- look for resourceProperties in all relevant namespaces.
XMLSchema.py
-- added 1 convenience method.
----------------------------------------------------------------------
Modified Files:
Utility.py
-- created a new func "basejoin" for python2.3, because python2.3
and python2.4 have different implementations(python2.3 is broke in
it's handling of current directory ./ ).
WSDLTools.py
-- fixed problem with wsdl:imports in WSDLTools.load, need to
_import all <wsdl:import>'s then check again if any <wsdl:import>'s
were added to main document and do again and again. Also fixed
problem with assigning base locations to these <wsdl:import>'s.
-- Remove all <wsdl:import>'s after they have been processed, or
deemed to be redundant.
-- grab basejoin from wstools.Utility
XMLSchema.py
-- grab basejoin from wstools.Utility
----------------------------------------------------------------------
Modified Files:
WSDLTools.py
-- removed a line that was screwing up imports/includes of
when WSDL file was specified to "wsdl2py" via a relative path.
XMLSchema.py
-- stop requiring suffix "xsd" for schema files.
----------------------------------------------------------------------
Modified Files:
Namespaces.py
-- Added a SOAP-1.2 binding
WSDLTools.py
-- Added some methods from grabbing ElementDeclaration and
TypeDefintion from Message instances.
XMLSchema.py
-- fixed a bug in SchemaReader.
logging.py
-- added a couple more functions, and a level to basic logger.
----------------------------------------------------------------------
Modified Files:
** removed all "imports" of ZSI or ZSI.wstools, so wstools
can be used independently by SOAPpy.
Namespaces.py
-- added a namespace
Utility.py
-- moved ZSI.utility here, and the "Base" class for logging.
WSDLTools.py
-- added a "toDom" and "GetWSDL" methods to several classes,
so now you can construct a WSDL instance and then call
WSDL.toDom() --> DOM --> and create a WSDL file.
__init__.py
-- removed "Base" class for logging.
Added Files:
c14n.py
-- moved the c14n stuff from ZSI.compat here.
----------------------------------------------------------------------
Modified Files:
WSDLTools.py -- uncommented some "import" code that I didn't
think was of any use. Now I need it.
----------------------------------------------------------------------
Modified Files:
WSDLTools.py
XMLSchema.py
--removed some print statements I left behind.
----------------------------------------------------------------------
Modified Files:
WSDLTools.py
-- resolution of default WS-Action was incorrect when using
imported portTypes.
XMLSchema.py
-- added a couple helper functions, and a few more Markers
for introspecting modelGroups and simpleType derivations.
----------------------------------------------------------------------
Modified Files:
WSDLTools.py -- Commented out the "imports" collection,
which isn't of much use.
Now URLs are resolved relative to the importing document.
Support for this scenario:
--- /Users/boverhof/Desktop/Wsdl/Service/whatever.wsdl
<definition>
<import location="../hello/hello.wsdl"/>
...
</definition>
--- /Users/boverhof/Desktop/Wsdl/hello/hello.wsdl
<definition>
<import location="goodbye.wsdl"/>
...
</definition>
--- /Users/boverhof/Desktop/Wsdl/hello/goodbye.wsdl
<definition>
...
</definition>
----------------------------------------------------------------------
Modified Files:
WSDLTools.py -- SoapBinding item soap:header message attribute
needs to be stored as a (namespace,name) tuple to enable
lookup.
----------------------------------------------------------------------
Modified Files:
WSDLTools.py -- Had to change how the default wsa:Action values
are set up. Must wait until entire WSDL is loaded, otherwise
can get into situations where the objects we need to access
haven't been initialized yet because of the order of WSDL
information items in the WSDL definition.
----------------------------------------------------------------------
Modified Files:
Namespaces.py -- added a bunch of namespaces (encryption, ws-address, ws-resourcepolicy, etc)
WSDLTools.py -- added functionality for getting WS-ResourceProperties and
ws-Address information out of WSDL. Ran all unittests and passed.
----------------------------------------------------------------------
Modified Files:
WSDLTools.py -- qualified Names are now stored as tuples (namespace, localName).
These tuples are used as keys into CollectionNS instances.
----------------------------------------------------------------------
Modified Files:
Utility.py -- added a CollectionNS class that keys items via
(targetNamespace, name).
WSDLTools.py --
Made WSDL Collections into CollectionNS instances,
this fixes problem with collisions, caused by wsdl:imports,
between items with same name but defined in different
targetNamespaces. So now all items can be accessed via
(namespace,name), but ONLY those items defined in
WSDL.targetNamepsace (not an import.targetNamespace) can
be accessed using just 'name'.
Also changed how portType is "loaded". Now instead of
dropping all the operation nodes in "load", I drop
the portType node into "load". This makes sense because
portType really should know about itself, and the
XML Schema definition of "portType" includes an "anyAttribute"
and I need to make this stuff available. I may change the
other WSDL information items to do this to be consistent.
----------------------------------------------------------------------
Modified Files:
WSDLTools.py - small fix for the creation of the output parameters,
to enable return messages to be properly typecoded.
----------------------------------------------------------------------
Modified Files:
WSDLTools.py -- partial bug fix for [ 850905 ] wsdl2py crash on a more sophisticated WSDL.
We do expect a list, but nmtokens is a list separated by a single space. So if
"parts" is a string, the just split it to create a list.
----------------------------------------------------------------------
Modified Files:
Utility.py
WSDLTools.py
XMLSchema.py
-- Fixed [ 810251 ] default method broken in wstools.Utility.Collection
-- Also fixed problem with includes Collection key, and changed
Types(Collection) class to declare a different default key instead
of redefining several methods.
----------------------------------------------------------------------
Modified Files:
WSDLTools.py
XMLSchema.py
-- Fixed [ 808505 ] ZSI fails with <xs:include ... />
Now schema include statements should be handled correctly.
-- Also fixed a problem with relative uri handling for XMLSchema
and SchemaReader.
----------------------------------------------------------------------
Modified Files:
WSDLTools.py -- added a line in Reader to to set WSDL.location
for files so that imports with relative paths will work for
file paths as well as urls.
XMLSchema.py -- a couple Attribute fixes, and the WSDLAdapter
wasn't passing it's parent into the XMLSchemaComponent
constructor which was messing up import lookups.
----------------------------------------------------------------------
WSDLTools.py -- just a few minor changes so the new schema class
will be used instead of the schema tns placeholder.
Might want to add an argument to WSDL.load method so that
programmer can specify the placeholder or actual
implementation.
XMLSchema.py -- mostly new, unused original code is commented out at the bottom.
(which doesn't), so that SOAPpy can use wstools without needing ZSI
around... which is kinda the point of generic common-code. :)
class SOAPCallInfo:
class ParameterInfo:
class HeaderInfo(ParameterInfo):
def callInfoFromWSDL(port, name):
Next step is to move what's left of wstools/ServiceProxy.py into the ZSI
module (and fix up the imports), so that wstools has *no* soap-stack-specific
code in it.