code: private static function cleanNameString($name)
      {
          if (!strlen($name)) {
              throw new InvalidArgumentException("Empty string specified");
          }
          $cleanName = self::cleanString($name);
          if (!NameValidator::validate($cleanName)) {
              throw new InvalidArgumentException("'{$cleanName}' is not a valid name");
          }
          return $cleanName;
      }
docs: 指定された文字列について, 不正な UTF-8 のバイト列をあらかじめ除去した上で,
  要素名または属性名として適切かどうかを調べます.
  
  @param  string $name 要素名
  @return string       不正なシーケンスを除去した結果の文字列
  @throws InvalidArgumentException 引数が要素名または属性名として不適切な場合