Escape non-printable characters in xeXMLWriter.

Change-Id: If9baae21331dcf5bde587bd99803f5ca2bc88483
diff --git a/executor/xeXMLWriter.cpp b/executor/xeXMLWriter.cpp
index 387c8c9..feaa2c9 100644
--- a/executor/xeXMLWriter.cpp
+++ b/executor/xeXMLWriter.cpp
@@ -41,6 +41,38 @@
 		case '&':	return "&";
 		case '\'':	return "'";
 		case '"':	return """;
+
+		// Non-printable characters.
+		case 0:		return "<NUL>";
+		case 1:		return "<SOH>";
+		case 2:		return "<STX>";
+		case 3:		return "<ETX>";
+		case 4:		return "<EOT>";
+		case 5:		return "<ENQ>";
+		case 6:		return "<ACK>";
+		case 7:		return "<BEL>";
+		case 8:		return "<BS>";
+		case 11:	return "<VT>";
+		case 12:	return "<FF>";
+		case 14:	return "<SO>";
+		case 15:	return "<SI>";
+		case 16:	return "<DLE>";
+		case 17:	return "<DC1>";
+		case 18:	return "<DC2>";
+		case 19:	return "<DC3>";
+		case 20:	return "<DC4>";
+		case 21:	return "<NAK>";
+		case 22:	return "<SYN>";
+		case 23:	return "<ETB>";
+		case 24:	return "<CAN>";
+		case 25:	return "<EM>";
+		case 26:	return "<SUB>";
+		case 27:	return "<ESC>";
+		case 28:	return "<FS>";
+		case 29:	return "<GS>";
+		case 30:	return "<RS>";
+		case 31:	return "<US>";
+
 		default:	return DE_NULL;
 	}
 }