def getXML(self, blockette, pos=0): """ """ if self.ignore: # debug if blockette.debug: print(' %s: ignored') return [] try: result = getattr(blockette, self.attribute_name) except: if blockette.strict: msg = "Missing attribute %s in Blockette %s" raise Exception(msg % (self.name, blockette)) result = self.default # watch for multiple entries if isinstance(result, list): result = result[pos] # optional if empty if self.optional: try: result = result.strip() except: pass if not result: # debug if blockette.debug: print(' %s: skipped because optional') return [] # reformat float if isinstance(self, Float): result = self.write(result) # Converts to XPath if necessary. if self.xpath: result = setXPath(self.xpath, result) # create XML element node = Element(self.field_name) if isinstance(result, bytes): node.text = result.decode().strip() else: node.text = str(result).strip() # debug if blockette.debug: print(' %s: %s' % (self, [node])) return [node]
def getXML(self, xseed_version, *args, **kwargs): """ Write XML. """ if xseed_version == '1.0': msg = 'The xsd-validation file for XML-SEED version 1.0 does ' + \ 'not support Blockette 60. It will be written but ' + \ 'please be aware that the file cannot be validated.\n' + \ 'If you want to validate your file please use XSEED ' + \ 'version 1.1.\n' sys.stdout.write(msg) node = Element('response_reference', blockette="060") SubElement(node, 'number_of_stages').text = str(len(self.stages)) # Loop over stages. for _i in xrange(len(self.stages)): inner_stage = SubElement(node, 'stage') SubElement(inner_stage, 'stage_sequence_number').text = str(_i + 1) SubElement(inner_stage, 'number_of_responses').text = \ str(len(self.stages[_i])) for _j in xrange(len(self.stages[_i])): SubElement(inner_stage, 'response_lookup_key').text = \ setXPath('dictionary', self.stages[_i][_j]) return node
def getXML(self, xseed_version, *args, **kwargs): # @UnusedVariable """ Write XML. """ if xseed_version == '1.0': msg = 'The xsd-validation file for XML-SEED version 1.0 does ' + \ 'not support Blockette 60. It will be written but ' + \ 'please be aware that the file cannot be validated.\n' + \ 'If you want to validate your file please use XSEED ' + \ 'version 1.1.\n' sys.stdout.write(msg) node = Element('response_reference', blockette="060") SubElement(node, 'number_of_stages').text = str(len(self.stages)) # Loop over stages. for _i in range(len(self.stages)): inner_stage = SubElement(node, 'stage') SubElement(inner_stage, 'stage_sequence_number').text = str(_i + 1) SubElement(inner_stage, 'number_of_responses').text = \ str(len(self.stages[_i])) for _j in range(len(self.stages[_i])): SubElement(inner_stage, 'response_lookup_key').text = \ setXPath('dictionary', self.stages[_i][_j]) return node