schema.Assign(mapElementPtr->item1);
schema = mapElementPtr->item1;
TextToSchema(    const nsString& text,    nsACString& schema){  /* return if no SchemaStrings list exists */  if (!wallet_SchemaStrings_list) {    return;  }  /* try each schema entry in schemastring table to see if it's acceptable */  wallet_MapElement * mapElementPtr;  PRInt32 count = LIST_COUNT(wallet_SchemaStrings_list);  for (PRInt32 i=0; i<count; i++) {    /* get each string associated with this schema */    PRBool isSubstring = PR_TRUE;    mapElementPtr = NS_STATIC_CAST(wallet_MapElement*, wallet_SchemaStrings_list->ElementAt(i));    wallet_Sublist * sublistPtr;    PRInt32 count2 = LIST_COUNT(mapElementPtr->itemList);    if (count2) {      for (PRInt32 i2=0; i2<count2; i2++) {        /* see if displayable text contains this string */        sublistPtr = NS_STATIC_CAST(wallet_Sublist*, mapElementPtr->itemList->ElementAt(i2));        if (text.Find(sublistPtr->item, PR_TRUE) == -1) {           /* displayable text does not contain this string, reject this schema */          isSubstring = PR_FALSE;          break;        }      }    } else if (text.Find(mapElementPtr->item2, PR_TRUE) == -1) {       /* displayable text does not contain this string, reject this schema */      isSubstring = PR_FALSE;    }    if (isSubstring) {      /* all strings were contained in the displayable text, accept this schema */      schema.Assign(mapElementPtr->item1);      return;    }  }}