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:
Utility.py -- catch any exceptions thrown when a DOM is loaded up,
throw a ParseError with old ex.args and inform which file
caused the problem.
XMLSchema.py -- For attributeGroup incorrectly adding global
attribute declarations, but these are declared locally.
----------------------------------------------------------------------
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:
XMLSchema.py -- Shouldn't check attributes for WSDL definition
since it's legal to specify <any> attribute in <definition>
----------------------------------------------------------------------
Modified Files:
XMLSchema.py -- required another condition in getItemTrace,
need to check if at <xsd:schema> or <wsdl:definition>,
also added some info to SchemaError throw in checkAttributes.
Now provides namespace/attribute and the Schema Item containing
the offending attribute.
----------------------------------------------------------------------
~
Modified Files:
XMLSchema.py
-- added a few convience methods, and 'disabled' a few methods
to force a sane usage.
__init__.py
-- removed use of python logging module, and replaced it with
the below.
Added Files:
logging.py
-- simple interface to log message to, can write your own
logger class. By default do no logging.
----------------------------------------------------------------------
Modified Files:
__init__.py -- changed "Base", which contains a logger, to
no-op logging if the logging configuration file is not
found and avoid the overhead of using the logging module.
----------------------------------------------------------------------
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.
----------------------------------------------------------------------
Enter Log. Lines beginning with `CVS:' are removed automatically
Committing in .
Modified Files:
__init__.py -- added some code for doing logging
----------------------------------------------------------------------
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:
XMLSchema.py -- added some code to generate user interpretable
exceptions.
BEFORE:
File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/ZSI/wstools/Utility.py", line 600, in __getitem__
return self.data[key]
KeyError: u'xtvd'
AFTER:
File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/ZSI/wstools/XMLSchema.py", line 465, in getQNameAttribute
raise KeyError, "targetNamespace(%s) collection(%s) has no item(%s)"\
KeyError: u'targetNamespace(urn:TMSWebServices) collection(types) has no item(xtvd)'
----------------------------------------------------------------------
Modified Files:
Utility.py
XMLSchema.py -- just moved SplitQName out of here and into Utility
Added Files:
Namespaces.py -- WSDL, SOAP, SCHEMA, XMLNS namespaces here. Doesn't
require PyXml
----------------------------------------------------------------------
Modified Files:
Utility.py
-- Fix to DOM singleton hasAttr method. _attr and _attrNS are
instance variables of the minidom Element, and are implementation
specific. Now hasAttr method will work when using FtNode.Element,
which is what ZSI ParsedSoap defaults to (Ft.Doc).
----------------------------------------------------------------------
Modified Files:
WSDLTools.py -- qualified Names are now stored as tuples (namespace, localName).
These tuples are used as keys into CollectionNS instances.
----------------------------------------------------------------------
Modified Files:
XMLSchema.py -- fixed a few problem with the XML namespace, mainly
affecting the use of 'xml:lang'. Fixed a bug identifying
attributeGroup references vs. definitions. Also changed the
inheritance of MarkerInterface, and moved the classes involved
before all Schema classes.
Now will parse "XML Schema Part 1: Structures", and
"XML Schema Part 2: Datatypes" XML Schema definitions.
----------------------------------------------------------------------
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:
Utility.py -- fixed bug in _clone_node patch. This method
was being called with qualifiedName for namespaced attributes,
and bombing. It is supposed to be called like so:
getAttributeNodeNS(self, namespaceURI, localName)
Really could remove the if/else clause here but I
decided to leave it there just to keep the 3 distinctions
in the code.
----------------------------------------------------------------------
Modified Files:
XMLSchema.py -- added substutionGroup to the list of attributes
that can be specified in an ElementDeclaration.
----------------------------------------------------------------------