Esempio n. 1
0
	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))
Esempio n. 2
0
	def _Unicode(self, oNode, DATA):
		raise _ConversionError(oNode, DATA, "Unsupported data type %s" % type(DATA))
Esempio n. 3
0
			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)