code: def text_to_data(self, text, elt, ps):
          '''convert text into typecode specific data.
          '''
          if text is None:
              return None
          m = Duration.lex_pattern.match(text)
          if m is None:
              raise EvaluateException('Illegal duration', ps.Backtrace(elt))
          d = m.groupdict()
          if d['T'] and (d['h'] is None and d['m'] is None and d['s'] is None):
              raise EvaluateException('Duration has T without time')
          try:
              retval = _dict_to_tuple(d)
          except ValueError, e:
              raise EvaluateException(str(e))
      
          if self.pyclass is not None:
              return self.pyclass(retval)
          return retvaf text_to_data(self, text, elt, ps):
          '''convert text into typecode specific data.
          '''
          if text is None:
              return None
          m = Duration.lex_pattern.match(text)
          if m is None:
              raise EvaluateException('Illegal duration', ps.Backtrace(elt))
          d = m.groupdict()
          if d['T'] and (d['h'] is None and d['m'] is None and d['s'] is None):
              raise EvaluateException('Duration has T without time')
          try:
              retval = _dict_to_tuple(d)
          except ValueError, e:
              raise EvaluateException(str(e))
      
          if self.pyclass is not None:
              return self.pyclass(retval)
          return retval
docs: convert text into typecode specific data.