code: protected void normalizeAndPrint(char c, boolean isAttValue) {
          
          switch (c) {
              case '<': {
                  fOut.print("&lt;");
                  break;
              }
              case '>': {
                  fOut.print("&gt;");
                  break;
              }
              case '&': {
                  fOut.print("&amp;");
                  break;
              }
              case '"': {
                  // A '"' that appears in character data
                  // does not need to be escaped.
                  if (isAttValue) {
                      fOut.print("&quot;");
                  } else {
                      fOut.print("\"");
                  }
                  break;
              }
              case '\r': {
                  // If CR is part of the document's content, it
                  // must not be printed as a literal otherwise
                  // it would be normalized to LF when the document
                  // is reparsed.
                  fOut.print("&#xD;");
                  break;
              }
              case '\n': {
                  if (fCanonical) {
                      fOut.print("&#xA;");
                      break;
                  }
                  // else, default print char
              }
              default: {
                  // In XML 1.1, control chars in the ranges [#x1-#x1F, #x7F-#x9F] must be escaped.
                  //
                  // Escape space characters that would be normalized to #x20 in attribute values
                  // when the document is reparsed.
                  //
                  // Escape NEL (0x85) and LSEP (0x2028) that appear in content
                  // if the document is XML 1.1, since they would be normalized to LF
                  // when the document is reparsed.
                  if (fXML11 && ((c >= 0x01 && c <= 0x1F && c != 0x09 && c != 0x0A)
                  || (c >= 0x7F && c <= 0x9F) || c == 0x2028)
                  || isAttValue && (c == 0x09 || c == 0x0A)) {
                      fOut.print("&#x");
                      fOut.print(Integer.toHexString(c).toUpperCase());
                      fOut.print(";");
                  } else {
                      fOut.print(c);
                  }
              }
          }
      }
docs: Normalizes and print the given character.