docs: def xml(self, indent = ""):
          """This methods renders an XML representation of this parameter, along with
          its selected value, and feedback on validation errors"""
          xml = indent + "<" + self.__class__.__name__
          xml += ' id="'+self.id + '"'
          xml += ' name="'+xmlescape(self.name) + '"'
          xml += ' description="'+xmlescape(self.description) + '"'
          if self.paramflag:
              xml += ' flag="'+self.paramflag + '"'
          for key, v in self.kwargs.items():
              if key not in ('value','error','name','description','flag','paramflag', 'validator'):
                  if isinstance(v, bool):
                      xml += ' ' + key + '="' + str(int(v))+ '"'
                  elif isinstance(v, list):
                      xml += ' ' + key + '="'+xmlescape(",".join(v))+ '"'
                  elif isinstance(v, str)  or ( sys.version < '3' and isinstance(v, unicode)): #pylint: disable=undefined-variable
                      xml += ' ' + key + '="'+xmlescape(v)+ '"'
                  else:
                      xml += ' ' + key + '="'+xmlescape(str(v))+ '"'
          if self.hasvalue:
              if sys.version < '3':
                  xml += ' value="'+xmlescape(unicode(self.value)) + '"' #pylint: disable=undefined-variable
              else:
                  xml += ' value="'+xmlescape(str(self.value)) + '"'
          if self.error:
              xml += ' error="'+xmlescape(self.error) + '"'
          xml += " />"
          return xml