Difference between revisions of "ZSI"
Jump to navigation
Jump to search
PeterHarding (talk | contribs) |
PeterHarding (talk | contribs) |
||
Line 1: | Line 1: | ||
= Zolera SOAP Infrastructure (ZSI) = | = Zolera SOAP Infrastructure (ZSI) = | ||
Line 16: | Line 17: | ||
In order to disable the inclusion of typing strings in the XML the following customisation was made to TCcompound.py script. This involved adding the line: | In order to disable the inclusion of typing strings in the XML the following customisation was made to TCcompound.py script. This involved adding the line: | ||
<pre> | |||
'kw['typed'] = False' | 'kw['typed'] = False' | ||
</pre> | |||
at line 435 of the file. This turns off the explicit typing within the XML. | at line 435 of the file. This turns off the explicit typing within the XML. | ||
<pre> | |||
# anames and serialize them. Only support one <any> in all content. | # anames and serialize them. Only support one <any> in all content. | ||
# Must be self-describing instances | # Must be self-describing instances | ||
Line 101: | Line 102: | ||
raise EvaluateException('Got None for nillable(%s), minOccurs(%d) element (%s,%s), %s' % | raise EvaluateException('Got None for nillable(%s), minOccurs(%d) element (%s,%s), %s' % | ||
</pre> | |||
[[Category:Python]] | |||
[[Category:SOAP]] |
Revision as of 12:20, 25 January 2008
Zolera SOAP Infrastructure (ZSI)
See Also:
ZSI Module Customizations
Disabling Explicit Type Strings in XML
In order to disable the inclusion of typing strings in the XML the following customisation was made to TCcompound.py script. This involved adding the line:
'kw['typed'] = False'
at line 435 of the file. This turns off the explicit typing within the XML.
# anames and serialize them. Only support one <any> in all content. # Must be self-describing instances # Regular handling of declared elements aname = what.aname v = f(aname) # print '@PLH@ what.__dict__ = "%s"' % what.__dict__ # print '@PLH@ pname = "%s", v = "%s"' % (what.pname, v) # print '@PLH@ v = "%s"' % v indx += 1 if what.minOccurs == 0 and v is None: continue # Default to typecode, if self-describing instance, and check # to make sure it is derived from what. whatTC = what if whatTC.maxOccurs > 1 and v is not None: if type(v) not in _seqtypes: raise EvaluateException('pyobj (%s,%s), aname "%s": maxOccurs %s, expecting a %s' %( self.nspname,self.pname,what.aname,whatTC.maxOccurs,_seqtypes), sw.Backtrace(elt)) for v2 in v: occurs += 1 if occurs > whatTC.maxOccurs: raise EvaluateException('occurances (%d) exceeded maxOccurs(%d) for <%s>' %( occurs, whatTC.maxOccurs, what.pname), sw.Backtrace(elt)) what = _get_type_or_substitute(whatTC, v2, sw, elt) # print '@PLH@ what = "%s"' % what if debug and what is not whatTC: self.logger.debug('substitute derived type: %s' % what.__class__) # print '@PLH@ elem = "%s"\n sw = "%s"\n v2 = "%s"' % (elem, sw, v2) what.serialize(elem, sw, v2, **kw) # try: # what.serialize(elem, sw, v2, **kw) # except Exception, e: # raise EvaluateException('Serializing %s.%s, %s %s' % # (n, whatTC.aname or '?', e.__class__.__name__, str(e))) if occurs < whatTC.minOccurs: raise EvaluateException(\ 'occurances(%d) less than minOccurs(%d) for <%s>' % (occurs, whatTC.minOccurs, what.pname), sw.Backtrace(elt)) continue if v is not None or what.nillable is True: what = _get_type_or_substitute(whatTC, v, sw, elt) if debug and what is not whatTC: self.logger.debug('substitute derived type: %s' % what.__class__) kw['typed'] = False # print '@PLH@ elem = "%s"\n sw = "%s"\n v = "%s" kw = "%s"' % (elem, sw, v, kw) what.serialize(elem, sw, v, **kw) # try: # what.serialize(elem, sw, v, **kw) # except (ParseException, EvaluateException), e: # raise # except Exception, e: # raise EvaluateException('Serializing %s.%s, %s %s' % # (n, whatTC.aname or '?', e.__class__.__name__, str(e)), # sw.Backtrace(elt)) continue raise EvaluateException('Got None for nillable(%s), minOccurs(%d) element (%s,%s), %s' %