def _Struct(self, oNode, DATA): """ DATA RECEIVED WILL BE AN XML NODE. """ try: TDATA = {} for oChild in DATA: TDATA[oChild.tag] = oChild RVAL = {} for oPropNode in oNode.Prop: oFunc = getattr(self, "_"+oPropNode.Type) try: if oPropNode.Name in TDATA: value = TDATA[oPropNode.Name] rValue = oFunc(oPropNode, value) if rValue == None and oPropNode.Default: RVAL[oPropNode.Name] = oPropNode.Default elif rValue == None and not oPropNode.Default and oPropNode.Nullable: RVAL[oPropNode.Name] = rValue elif rValue != None: RVAL[oPropNode.Name] = rValue elif rValue == None and not oPropNode.Default and not oPropNode.Nullable: raise KeyError("[%s] must be set, Nullable or Defaulted" % oPropNode.Name) else: raise KeyError("[%s] must be set, Nullable or Defaulted" % oPropNode.Name) elif oPropNode.Name not in TDATA and oPropNode.Nullable and oPropNode.Default: TDATA[oPropNode.Name] = ElementTree.Element(oPropNode.Name) RVAL[oPropNode.Name] = oPropNode.Default elif oPropNode.Name not in TDATA and oPropNode.Nullable and not oPropNode.Default: TDATA[oPropNode.Name] = ElementTree.Element(oPropNode.Name) RVAL[oPropNode.Name] = None elif oPropNode.Name not in TDATA and not oPropNode.Nullable and oPropNode.Default: TDATA[oPropNode.Name] = ElementTree.Element(oPropNode.Name) RVAL[oPropNode.Name] = oPropNode.Default elif oPropNode.Name not in TDATA and not oPropNode.Nullable and not oPropNode.Default: raise KeyError("[%s] must be set, Nullable or Defaulted" % oPropNode.Name) else: raise KeyError("[%s] must be set, Nullable or Defaulted" % oPropNode.Name) except _ConversionError, e: e.InsertStack(oNode, e) raise except Exception, e: if Debug: raise raise _ConversionError(oNode, DATA, "%s: %s" % (e.__class__.__name__, e.message))
def _Unicode(self, oNode, DATA): raise _ConversionError(oNode, DATA, "Unsupported data type %s" % type(DATA))
for oChild in DATA: key = oChild.attrib[oKeyNode.Name] key = oKeyFunc(self, oKeyNode, key) RVAL[key] = oValueFunc(oValueNode, oChild) return RVAL except _ConversionError, e: e.InsertStack(oNode, key) raise except Exception, e: if Debug: raise raise _ConversionError(oNode, DATA, "%s: %s" % (e.__class__.__name__, e.message)) #============================================================================================== def _Struct(self, oNode, DATA): """ DATA RECEIVED WILL BE AN XML NODE. """ try: TDATA = {} for oChild in DATA: TDATA[oChild.tag] = oChild RVAL = {} for oPropNode in oNode.Prop: oFunc = getattr(self, "_"+oPropNode.Type)