XmlCustomFormatter.cs 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. //
  2. // System.Xml.Serialization.XmlCustomFormatter.cs
  3. //
  4. // Author:
  5. // Tim Coleman ([email protected])
  6. //
  7. // Copyright (C) Tim Coleman, 2002
  8. //
  9. using System;
  10. using System.Text;
  11. using System.Xml;
  12. namespace System.Xml.Serialization {
  13. internal class XmlCustomFormatter {
  14. #region Methods
  15. internal static string FromByteArrayBase64 (byte[] value)
  16. {
  17. return Convert.ToBase64String(value);
  18. }
  19. internal static string FromByteArrayHex (byte[] value)
  20. {
  21. StringBuilder output = new StringBuilder ();
  22. foreach (byte val in value)
  23. output.Append (val.ToString ("X2"));
  24. return output.ToString ();
  25. }
  26. internal static string FromChar (char value)
  27. {
  28. return ((int) value).ToString ();
  29. }
  30. internal static string FromDate (DateTime value)
  31. {
  32. return XmlConvert.ToString (value, "yyyy-MM-dd");
  33. }
  34. internal static string FromDateTime (DateTime value)
  35. {
  36. return XmlConvert.ToString (value, "yyyy-MM-ddTHH:mm:ss.fffffffzzz");
  37. }
  38. internal static string FromTime (DateTime value)
  39. {
  40. return XmlConvert.ToString (value, "HH:mm:ss.fffffffzzz");
  41. }
  42. internal static string FromEnum (long value, string[] values, long[] ids)
  43. {
  44. int length = ids.Length;
  45. for (int i = 0; i < length; i ++) {
  46. if (ids[i] == value)
  47. if (i >= values.Length)
  48. return String.Empty;
  49. else
  50. return values[i].ToString ();
  51. }
  52. return value.ToString ();
  53. }
  54. internal static string FromXmlName (string name)
  55. {
  56. return XmlConvert.EncodeName (name);
  57. }
  58. internal static string FromXmlNCName (string ncName)
  59. {
  60. return XmlConvert.EncodeLocalName (ncName);
  61. }
  62. internal static string FromXmlNmToken (string nmToken)
  63. {
  64. return XmlConvert.EncodeNmToken (nmToken);
  65. }
  66. internal static string FromXmlNmTokens (string nmTokens)
  67. {
  68. StringBuilder output = new StringBuilder ();
  69. string [] tokens = nmTokens.Split (' ');
  70. foreach (string token in tokens)
  71. output.Append (FromXmlNmToken (token));
  72. return output.ToString ();
  73. }
  74. internal static byte[] ToByteArrayBase64 (string value)
  75. {
  76. return Convert.FromBase64String(value);
  77. }
  78. internal static char ToChar (string value)
  79. {
  80. return (char) XmlConvert.ToUInt16 (value);
  81. }
  82. internal static DateTime ToDate (string value)
  83. {
  84. return ToDateTime (value);
  85. }
  86. internal static DateTime ToDateTime (string value)
  87. {
  88. return XmlConvert.ToDateTime (value);
  89. }
  90. internal static DateTime ToTime (string value)
  91. {
  92. return ToDateTime (value);
  93. }
  94. internal static string ToXmlName (string value)
  95. {
  96. return XmlConvert.DecodeName (value);
  97. }
  98. internal static string ToXmlNCName (string value)
  99. {
  100. return ToXmlName (value);
  101. }
  102. internal static string ToXmlNmToken (string value)
  103. {
  104. return ToXmlName (value);
  105. }
  106. internal static string ToXmlNmTokens (string value)
  107. {
  108. return ToXmlName (value);
  109. }
  110. #endregion // Methods
  111. }
  112. }