docs: def parse(self, elt, ps, **kw):
          '''attempt to parse sequentially.  No way to know ahead of time
          what this instance represents.  Must be simple type so it can
          not have attributes nor children, so this isn't too bad.
          '''
          self.setMemberTypeCodes()
          (nsuri,typeName) = self.checkname(elt, ps)
  
          #if (nsuri,typeName) not in self.memberTypes:
          #    raise EvaluateException(
          #            'Union Type mismatch got (%s,%s) not in %s' % \
          #            (nsuri, typeName, self.memberTypes), ps.Backtrace(elt))
  
          for indx in range(len(self.memberTypeCodes)):
              typecode = self.memberTypeCodes[indx]
              try:
                  pyobj = typecode.parse(elt, ps)
              except ParseException, ex:
                  continue
              except Exception, ex:
                  continue
  
              if indx > 0:
                  self.memberTypeCodes.remove(typecode)
                  self.memberTypeCodes.insert(0, typecode)
              break
  
          else:
              raise
  
          return pyobj