code: def checkSubstitute(self, typecode):
          '''If this is True, allow typecode to be substituted
          for "self" typecode.
          '''
          if not isinstance(typecode, ElementDeclaration): 
              return False
  
          try:
              nsuri,ncname = typecode.substitutionGroup
          except (AttributeError, TypeError):
              return False
  
          if (nsuri,ncname) != (self.schema,self.literal):
              # allow slop with the empty namespace 
              if not nsuri and not self.schema and ncname == self.literal:
                   return True
  
              return False
  
          sub = GED(self.schema, self.literal)
          if sub is None or sub is not typecode:
              return False
  
          return Truf checkSubstitute(self, typecode):
          '''If this is True, allow typecode to be substituted
          for "self" typecode.
          '''
          if not isinstance(typecode, ElementDeclaration): 
              return False
  
          try:
              nsuri,ncname = typecode.substitutionGroup
          except (AttributeError, TypeError):
              return False
  
          if (nsuri,ncname) != (self.schema,self.literal):
              # allow slop with the empty namespace 
              if not nsuri and not self.schema and ncname == self.literal:
                   return True
  
              return False
  
          sub = GED(self.schema, self.literal)
          if sub is None or sub is not typecode:
              return False
  
          return True
docs: If this is True, allow typecode to be substituted
          for "self" typecode.